:root{font-family:'DM Sans',system-ui,sans-serif;color:#14232c;background:#f5f6f2;--green:#087b61;--mint:#dff4e9;--blue:#3572ed;--red:#e95550;--line:#e9ece8;--muted:#697782;--shadow:0 12px 38px #172b3010}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #69b7ec;outline-offset:2px}button{border:0}h1,h2,h3,p{margin-top:0}[hidden]{display:none!important}.topbar{height:66px;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:22px;padding:0 clamp(18px,3vw,48px);border-bottom:1px solid #e7ece8;position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:10px;font-size:22px;font-weight:800;line-height:1}.brand small{display:block;color:#8c9897;font-size:10px;font-weight:500;letter-spacing:.01em;margin-top:5px}.brand-mark{display:grid;place-items:center;width:36px;height:36px;background:#0b8066;color:#fff;border:4px solid #d9eee3;border-radius:11px;transform:rotate(-9deg)}.nav{display:flex;align-items:stretch;gap:7px;height:100%;overflow:auto}.nav button{background:none;color:#59636b;padding:0 13px;white-space:nowrap;font-size:13px}.nav button.active{color:#087b61;background:#edf7ef;border-bottom:3px solid #087b61;font-weight:700}.nav button:first-letter{font-size:19px}.top-actions{display:flex;align-items:center;gap:9px}.top-actions button,.top-actions select{background:#f5f6f2;border:0;border-radius:10px;padding:8px;color:#243641}.top-actions select{max-width:150px}main{max-width:1600px;margin:auto;padding:0 22px 28px}.hero{height:250px;margin:0 -22px 8px;position:relative;overflow:hidden;display:flex;align-items:center;background:linear-gradient(110deg,#faf8f0 2%,#e7f0de 50%,#b0c8b5 100%)}.hero-copy{padding-left:clamp(24px,4vw,65px);position:relative;z-index:2}.eyebrow{letter-spacing:.15em;font-size:10px;color:#117e63;font-weight:800}.hero h1{font-size:clamp(27px,3vw,43px);line-height:1.05;margin-bottom:9px;letter-spacing:-.04em}.hero h1 em{font-style:normal;font-size:.7em}.hero p:not(.eyebrow){font-size:16px;margin-bottom:7px}.hero small{font-size:12px;color:#5d6c68;font-style:italic}.quick{display:flex;flex-wrap:wrap;gap:9px;margin-top:23px}.pill{border-radius:30px;background:#ffffffea;padding:8px 15px 8px 8px;display:flex;align-items:center;gap:9px;font-size:12px;color:#25383d;box-shadow:0 4px 14px #253a3918}.pill b{width:29px;height:29px;display:grid;place-items:center;border-radius:50%;background:#098668;color:#fff;font-size:16px}.pill:nth-child(2) b{background:#e47d35}.pill:nth-child(3) b{background:#e76078}.pill:nth-child(4) b{background:#4387e9}.pill:nth-child(5) b{background:#7d68c6}.hero-art{position:absolute;right:0;top:0;width:47%;height:100%;overflow:hidden;background:radial-gradient(circle at 60% 25%,#fff9cf 2%,#f1dca9 14%,transparent 32%),linear-gradient(145deg,#d7eacc,#8bb2a3)}.hero-art:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#e9f1dc,transparent 30%)}.hero-art .land{position:absolute;width:140%;height:200px;border-radius:50% 50% 0 0;bottom:-110px;left:-10%;background:#588e78;transform:rotate(-8deg)}.hero-art .l2{background:#347a64;bottom:-145px;left:24%;transform:rotate(7deg)}.house-shape{position:absolute;right:38%;bottom:8px;color:#fff3d7;font-size:180px;line-height:.85;text-shadow:5px 8px #637d6099}.hero-art span{position:absolute;right:7%;top:35px;transform:rotate(-10deg);color:#355768;font-family:'Fraunces',serif;font-style:italic;font-size:17px;text-align:center;line-height:1.45}.metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:10px}.metric,.card{background:#fff;border:1px solid #eef0ed;border-radius:14px;box-shadow:var(--shadow)}.metric{min-height:103px;display:flex;gap:12px;padding:16px;align-items:center}.metric:first-child{background:linear-gradient(100deg,#dbf6e5,#fff)}.metric-icon{min-width:44px;height:44px;display:grid;place-items:center;background:#e6f2ed;color:#078364;border-radius:12px;font-size:24px}.metric:nth-child(2) .metric-icon{background:#e6efff;color:#3572ed}.metric:nth-child(3) .metric-icon,.metric:nth-child(5) .metric-icon{background:#fff0eb;color:#e95550}.metric small{display:block;color:#526477;font-size:11px}.metric strong{display:block;font-size:22px;margin:3px 0;color:#097b60;white-space:nowrap}.metric:nth-child(2) strong{color:#192a3a}.metric:nth-child(3) strong,.metric:nth-child(5) strong{color:#dc4a49}.metric .sub{font-size:10px;color:#859197}.grid{display:grid;grid-template-columns:1.1fr 1.2fr 1fr;gap:12px;margin-top:12px}.card{padding:18px;min-width:0}.card h2{font-size:16px;margin:0 0 14px;letter-spacing:-.02em}.card header{display:flex;align-items:center;justify-content:space-between}.card header button,.link{background:none;color:var(--blue);font-size:12px}.card .empty{padding:28px 10px;text-align:center;color:#849198;background:#f8faf8;border-radius:10px;font-size:13px}.row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);font-size:13px}.row:last-child{border:0}.row .avatar{min-width:38px;height:38px;border-radius:10px;background:#e4f2eb;color:#087b61;display:grid;place-items:center;font-size:19px}.row .grow{min-width:0;flex:1}.row small{display:block;color:#85919c;font-size:11px;margin-top:3px}.row strong{font-size:13px}.row .right{text-align:right;white-space:nowrap}.right.good{color:#008960}.right.bad{color:#e84f4d}.muted{color:var(--muted)}.progress{height:8px;background:#eef0eb;border-radius:9px;margin:8px 0 4px;overflow:hidden}.progress i{display:block;height:100%;background:#1baa83;border-radius:9px}.section-title{display:flex;justify-content:space-between;align-items:center;margin:24px 2px 8px}.section-title h2{font-size:20px;margin:0}.section-title button,.small-button{background:#edf7f2;color:#087b61;padding:8px 12px;border-radius:9px;font-weight:700;font-size:12px}.stack{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th{text-align:left;color:#839097;font-size:11px;font-weight:600;padding:9px;border-bottom:1px solid var(--line)}.data-table td{padding:12px 9px;border-bottom:1px solid var(--line)}.data-table td:last-child{text-align:right}.data-table button{background:#fff0ec;color:#c24842;padding:6px 8px;border-radius:7px}.tag{border-radius:20px;padding:4px 9px;background:#e9f7f0;color:#087b61;font-size:11px}.tag.warn{background:#fff0e2;color:#be6b25}.inline-form{display:flex;gap:8px;margin-top:14px}.inline-form input{min-width:0;flex:1}.inline-form button{background:#087b61;color:white;border-radius:9px;padding:8px 12px}.check{width:18px;height:18px;accent-color:#07896c;cursor:pointer}.note{background:#eff7f2;border-left:3px solid #26a47e;padding:12px;border-radius:4px;color:#49635b;font-size:12px;line-height:1.5}.bar-chart{height:160px;display:flex;align-items:end;gap:8px;padding:12px 0}.bar-chart div{flex:1;background:#eaf0f8;border-radius:5px 5px 0 0;min-height:2px;position:relative}.bar-chart div i{display:block;background:#2aab83;width:100%;height:100%;border-radius:5px 5px 0 0}.bar-chart div span{font-size:10px;position:absolute;bottom:-18px;left:0;color:#8a959b}.login-wrap{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 80% 15%,#d4eddf,transparent 35%),linear-gradient(135deg,#f8faf4,#e9f0ea)}.login-card{width:min(420px,90vw);padding:38px;background:white;border-radius:22px;box-shadow:0 22px 70px #1d4c3d18}.login-card h1{font-family:'Fraunces',serif;margin:40px 0 5px;font-size:30px}.login-card p{color:#84918d}.login-card label,dialog label{display:block;font-weight:600;font-size:12px;margin:17px 0 6px}.login-card input,dialog input,dialog select,.inline-form input{display:block;width:100%;padding:11px 12px;border:1px solid #dbe3df;border-radius:9px;background:#fff;margin-top:6px}.button{border-radius:9px;padding:11px 17px;font-weight:700}.button.primary{background:#087b61;color:#fff}.button.ghost{background:#f1f4f1;color:#52645d}.login-card .primary{width:100%;display:flex;justify-content:space-between;margin-top:22px}.hint{font-size:11px;margin-bottom:0}dialog{border:0;border-radius:18px;padding:0;width:min(440px,calc(100% - 28px));box-shadow:0 25px 90px #0c292a55}dialog::backdrop{background:#0e252b88}dialog form{padding:24px}.modal-head{display:flex;justify-content:space-between;align-items:center}.modal-head h2{margin:0}.modal-head button{background:none;font-size:28px;color:#8d9b98}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:26px}#toast{position:fixed;z-index:30;bottom:20px;right:20px;background:#193e36;color:#fff;padding:12px 18px;border-radius:10px;box-shadow:var(--shadow);display:none}#toast.show{display:block}footer{max-width:1600px;margin:auto;padding:18px 22px;color:#a0aaa5;font-size:11px}.private .amount{filter:blur(7px);user-select:none}@media(max-width:1150px){.nav button{padding:0 8px}.nav button span{display:none}.grid{grid-template-columns:1fr 1fr}.metrics{grid-template-columns:repeat(3,1fr)}.hero-art{width:38%}.hero-art span{display:none}}@media(max-width:700px){.topbar{height:60px;padding:0 12px}.brand{font-size:18px}.brand small{display:none}.top-actions select{max-width:95px}.nav{position:fixed;bottom:0;left:0;right:0;height:60px;background:white;justify-content:space-around;box-shadow:0 -6px 20px #183c3412;z-index:12}.nav button{font-size:20px}.nav button span{display:none}main{padding:0 12px 72px}.hero{height:auto;min-height:250px;margin:0 -12px;padding:28px 0 22px}.hero-copy{padding:0 17px}.hero-art{opacity:.32;width:62%}.hero h1{font-size:29px}.quick{gap:6px}.pill{font-size:11px;padding:6px 10px 6px 6px}.pill b{width:24px;height:24px}.metrics{grid-template-columns:repeat(2,1fr)}.metric{padding:11px;min-height:85px}.metric strong{font-size:17px}.metric-icon{min-width:33px;height:33px;font-size:17px}.grid,.stack{grid-template-columns:1fr}.card{padding:15px}footer{padding-bottom:80px}}@media(max-width:390px){.metrics{grid-template-columns:1fr 1fr}.metric-icon{display:none}.top-actions{gap:2px}}
:root{scroll-padding-top:72px}.skip-link{position:fixed;top:-60px;left:12px;padding:10px 14px;background:#fff;color:#14232c;border:2px solid #087b61;border-radius:8px;z-index:100}.skip-link:focus{top:8px}#main-content:focus{outline:none}.brand small,.metric .sub,.row small,.data-table th,.card .empty,footer,.modal-head button,.login-card p{color:#53635f}@media(max-width:1150px){.nav button span{display:block!important;position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}}@media(max-width:700px){.nav button{min-width:44px;min-height:44px}.top-actions button{min-width:44px;min-height:44px}dialog{max-height:calc(100dvh - 24px);overflow-y:auto}}
.sessions-panel{padding:24px}.session-list{list-style:none;margin:18px 0;padding:0}.session-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.session-list li small{display:block;margin-top:5px;color:#53635f;font-size:12px}.sessions-panel #session-status{min-height:1.4em;color:#53635f;font-size:12px}@media(max-width:390px){.top-actions select{max-width:72px}.brand{font-size:16px}}
#mfa-recovery-list{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6;background:#f1f4f1;padding:12px;border-radius:8px}#mfa-secret{overflow-wrap:anywhere}
.split-editor{margin-top:10px}.split-editor .hint{display:block;margin-top:7px}.split-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(120px,1fr) auto;align-items:end;gap:8px;margin:10px 0}.split-row label{font-size:13px}.split-row input{width:100%}@media(max-width:520px){.split-row{grid-template-columns:1fr 1fr}.split-row button{grid-column:1/-1;justify-self:start}}
.inline-form{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:14px 0}.inline-form label{flex:1 1 220px;font-size:13px}.inline-form input,.inline-form select{width:100%}
#assistant-widget{position:fixed;right:22px;bottom:22px;z-index:25}#assistant-launcher{border-radius:28px;padding:14px 20px;background:#087b61;color:#fff;font-weight:800;box-shadow:0 8px 26px #173b3440}#assistant-panel{position:absolute;right:0;bottom:62px;width:min(390px,calc(100vw - 28px));height:min(570px,calc(100dvh - 110px));background:#fff;border:1px solid #dfe8e2;border-radius:18px;box-shadow:0 18px 60px #173b3445;padding:16px;display:flex;flex-direction:column;gap:10px}#assistant-panel[hidden]{display:none}#assistant-panel header{display:flex;justify-content:space-between;align-items:center}#assistant-panel header h2{font-size:17px;margin:0}#assistant-panel header button{font-size:25px;background:transparent;color:#52635b}#assistant-panel .note{margin:0;font-size:11px;padding:8px}#assistant-account{width:100%;padding:8px;border:1px solid #dbe3df;border-radius:8px}#assistant-panel>label{font-size:11px;font-weight:700;color:#52635b}#assistant-messages{flex:1;overflow:auto;display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:6px;background:#f6f8f5;border-radius:12px}.assistant-message{max-width:92%;margin:0;padding:10px 12px;background:#e6f2ed;border-radius:12px;font-size:13px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.assistant-message.user{align-self:flex-end;background:#e9efff}.assistant-message.assistant{align-self:flex-start}#assistant-form{display:flex;gap:7px;align-items:flex-end}#assistant-form textarea{resize:vertical;min-width:0;flex:1;padding:10px;border:1px solid #dbe3df;border-radius:10px;font:inherit;font-size:13px}#assistant-form .button{padding:10px 13px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:700px){#assistant-widget{right:12px;bottom:74px}#assistant-launcher{padding:12px 16px}#assistant-panel{bottom:58px;height:min(590px,calc(100dvh - 150px))}}
.admin-card{max-width:760px;margin:18px auto}.admin-card h3{margin:22px 0 10px}.admin-card form>label:not(.admin-toggle){display:block;margin:18px 0;font-weight:700}.admin-card select{display:block;width:100%;max-width:360px;margin-top:7px;padding:10px;border:1px solid #dbe3df;border-radius:9px;background:white}.admin-toggle{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line);font-size:14px}.admin-toggle input{width:18px;height:18px;accent-color:#087b61}
:where(button,a,input,select,textarea,[tabindex]):focus-visible{outline:3px solid #145fc4;outline-offset:3px}
.inline-form{flex-wrap:wrap;align-items:end}
.inline-form label{flex:1 1 165px;min-width:0}
.inline-form input,.inline-form select{box-sizing:border-box;min-height:42px}
.table-scroll{max-width:100%;overflow-x:auto}
@media(max-width:700px){.inline-form{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.inline-form label{width:100%}.inline-form button,.small-button{min-height:42px;max-width:100%}.card{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media(max-width:390px){.topbar{height:auto;min-height:66px;flex-wrap:wrap;justify-content:flex-start;gap:0 8px;padding:8px 10px}.brand{order:1;flex:0 0 auto}.top-actions{order:2;flex:0 0 auto;margin-left:auto}.nav{order:3;flex:0 0 100%;min-width:0;height:44px}}
#mfa-qr{display:block;width:min(260px,100%);height:auto;margin:14px 0;background:#fff;padding:12px;border:1px solid var(--line);border-radius:12px}

/* Dashboard composition follows the supplied FamilyOS design reference. */
:root{font-family:Arial,system-ui,sans-serif;color:#101827;background:#faf9f5;--green:#07866a;--mint:#e3f4ea;--blue:#3578e5;--red:#f04f53;--line:#edf0ef;--muted:#708091;--shadow:0 4px 16px #1c30200b}
body{background:#faf9f5}.topbar{height:56px;padding:0 18px;gap:16px;border-bottom:1px solid #e7e9e5}.brand{min-width:176px;font-size:21px}.brand-mark{width:34px;height:34px;border-radius:50%;transform:none}.nav{gap:2px}.nav button{padding:0 12px;font-size:12px}.nav button.active{background:#fbf6ed;border-bottom:2px solid var(--green);border-radius:8px 8px 0 0}.top-actions{gap:6px}.top-actions button,.top-actions select{border-radius:50%;background:#f4f2ec;padding:9px}main{max-width:none;padding:0 clamp(14px,1.1vw,20px) 24px clamp(14px,1.1vw,20px);padding-right:clamp(300px,23vw,360px)}.hero{height:172px;margin:0 calc(-1 * clamp(14px,1.1vw,20px)) 8px;position:relative;background:linear-gradient(90deg,#faf6ec 0%,#faf6ec 25%,#faf6ec55 45%,transparent 64%),url('hero-family.jpg') right center / auto 100% no-repeat}.hero-copy{padding-left:clamp(24px,2.2vw,36px)}.hero .eyebrow{display:none}.hero h1{font-size:28px;letter-spacing:-.035em;margin:0 0 7px}.hero p:not(.eyebrow){font-size:15px;margin-bottom:7px}.hero small{font-size:11px}.quick{margin-top:17px;gap:8px}.pill{padding:5px 13px 5px 5px;font-size:10px;box-shadow:0 3px 12px #24382d12}.pill b{width:27px;height:27px}.hero-art{display:none}
.metrics{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:8px}.metric,.card{border:1px solid #f0efea;border-radius:12px;box-shadow:var(--shadow)}.metric{min-height:90px;padding:12px;gap:10px}.metric-icon{min-width:40px;height:40px;border-radius:11px}.metric strong{font-size:18px}.metric small{font-size:10px}.metric .sub{font-size:9px}.grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:9px}.card{padding:14px}.card h2{font-size:14px;margin-bottom:10px}.row{gap:9px;padding:9px 0;font-size:12px}.row .avatar{min-width:34px;height:34px;border-radius:9px}.row strong{font-size:12px}.section-title{margin:18px 2px 8px}
#assistant-widget{position:fixed;z-index:11;right:10px;top:226px;bottom:12px;width:calc(clamp(300px,23vw,360px) - 18px);display:flex;align-items:stretch}#assistant-launcher{display:none}#assistant-panel,#assistant-panel[hidden]{position:static;width:100%;height:auto;max-height:none;min-height:0;padding:12px;background:#fff;border:1px solid #eeefec;border-radius:13px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:9px}#assistant-panel header h2{font-size:16px}#assistant-panel .note{font-size:10px;line-height:1.35}#assistant-messages{min-height:190px;max-height:calc(100vh - 450px);background:#fff;padding:7px;border:1px solid #f0f0ed}#assistant-form textarea{font-size:12px;min-height:42px}#assistant-form .button{min-height:42px}
@media(max-width:1200px){.topbar{gap:8px}.brand{min-width:145px}.nav button{padding:0 7px}.top-actions select{max-width:105px}main{padding-right:300px}#assistant-widget{width:282px}.metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.hero{background-position:left top,right center;background-size:auto,auto 100%}}
@media(max-width:850px){main{padding-right:14px}.hero{margin-right:-14px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics{grid-template-columns:repeat(3,minmax(0,1fr))}#assistant-widget{position:static;width:auto;margin:0 14px 18px;min-height:0}#assistant-panel,#assistant-panel[hidden]{display:flex}.topbar{overflow-x:auto}.nav button{padding:0 7px}.nav button span{display:inline!important;position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto;white-space:nowrap}}
@media(max-width:700px){main{padding:0 12px 72px}.hero{height:auto;min-height:220px;margin:0 -12px 8px;background-size:auto,cover;background-position:left top,right center}.hero-copy{padding:10px 16px}.hero h1{font-size:26px}.hero-art{display:none}.quick{max-width:92%;margin-top:15px}.pill{background:#ffffffed}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.grid,.stack{grid-template-columns:1fr}.topbar{height:60px;overflow:visible}.nav{height:60px}.nav button span{display:none!important}.nav button{font-size:18px}.top-actions select{max-width:86px}#assistant-widget{position:fixed;right:12px;top:auto;bottom:74px;width:auto;margin:0}#assistant-launcher{display:block}#assistant-panel,#assistant-panel[hidden]{position:absolute;right:0;bottom:58px;width:min(390px,calc(100vw - 24px));height:min(590px,calc(100dvh - 150px));padding:14px;border-radius:16px;box-shadow:0 18px 60px #173b3445}#assistant-panel[hidden]{display:none!important}#assistant-messages{max-height:none;min-height:0}footer{padding-bottom:80px}}
@media(min-width:851px){.hero{margin-right:calc(-1 * clamp(300px,23vw,360px))}#assistant-panel[hidden]{display:flex!important}}
.hero{background-image:linear-gradient(90deg,#faf6ec 0%,#faf6ec 25%,#faf6ec55 45%,transparent 64%),url('hero-family.jpg')}
.monthly-bars{height:148px;gap:12px;padding:10px 4px;border-bottom:1px solid #e9ece8}.month-bars{height:100%;flex:1;min-width:0;display:flex;align-items:end;justify-content:center;gap:3px;position:relative;background:none!important;border-radius:0!important}.month-bars>span{display:block;width:42%;min-height:2px;border-radius:4px 4px 0 0}.month-bars .income-bar{background:#24ad83}.month-bars .expense-bar{background:#f26468}.month-bars small{position:absolute;bottom:-20px;left:50%;transform:translateX(-50%);font-size:10px;color:#73808d}.chart-legend{display:flex;justify-content:center;gap:16px;margin:21px 0 0;font-size:10px;color:#586777}.chart-legend span:first-child:before,.chart-legend span:last-child:before{content:'';display:inline-block;width:8px;height:8px;margin-right:5px;border-radius:50%;background:#24ad83}.chart-legend span:last-child:before{background:#f26468}
.expense-breakdown{display:flex;align-items:center;gap:18px;min-height:200px}.expense-donut{width:150px;height:150px;flex:0 0 150px;border-radius:50%;display:grid;place-items:center}.expense-donut>div{width:102px;height:102px;border-radius:50%;background:white;display:flex;flex-direction:column;align-items:center;justify-content:center}.expense-donut strong{font-size:17px}.expense-donut small{color:#73808d;font-size:12px;margin-top:4px}.expense-legend{flex:1;min-width:0}.expense-legend>div{display:flex;align-items:center;gap:8px;border-bottom:1px solid #f0f1ef;padding:8px 0;font-size:10px}.expense-legend i{width:12px;height:12px;flex:0 0 12px;border-radius:50%}.expense-legend span{flex:1;overflow:hidden;text-overflow:ellipsis}.expense-legend strong{font-size:10px;white-space:nowrap}.expense-legend small{color:#73808d}@media(max-width:1100px){.expense-breakdown{flex-wrap:wrap;justify-content:center}.expense-legend{min-width:130px}}

/* Match the reference dashboard's proportions and right column. */
@media(min-width:1201px){.topbar{justify-content:flex-start}.brand{min-width:176px}.nav{flex:1;justify-content:flex-start}.hero:after{content:'';position:absolute;z-index:1;bottom:0;left:0;width:61%;height:53px;background:linear-gradient(90deg,#faf6ec 0%,#faf6ec 58%,#faf6ecdd 82%,transparent 100%);pointer-events:none}.grid>article:nth-child(-n+3){min-height:280px}.grid>article:nth-child(n+4):nth-child(-n+6){min-height:220px}.grid>article:nth-child(n+7){min-height:155px}#assistant-widget{position:absolute;top:226px;bottom:auto;flex-direction:column;gap:10px;z-index:2}#assistant-panel,#assistant-panel[hidden]{height:540px;flex:none}#assistant-messages{max-height:none}.hero .pill:nth-child(6) b{background:#8c6bdc}}
.sidebar-card{background:#fff;border:1px solid #f0efea;border-radius:12px;padding:14px;box-shadow:var(--shadow)}.sidebar-card header{display:flex;justify-content:space-between;align-items:center}.sidebar-card h2{font-size:13px;margin:0 0 10px}.sidebar-card header button{background:none;color:#5279a4;font-size:10px}.family-members{display:flex;gap:12px;overflow:auto;padding:2px 0 10px}.family-member{display:flex;flex-direction:column;align-items:center;min-width:48px;gap:3px;text-align:center;font-size:10px}.family-avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;border:2px solid #65c7a8;background:#dcf3e9;color:#087b61;font-size:17px;font-weight:700}.family-member small,.sidebar-empty{color:#718097;font-size:10px}.sidebar-tasks{border-top:1px solid #f0f1ef;padding-top:10px}.sidebar-tasks .row{padding:5px 0;font-size:10px}.sidebar-tasks .empty{padding:10px;font-size:10px}.sidebar-tasks .check{width:14px;height:14px}
@media(max-width:1200px){#reference-sidebar{display:none}}
@media(min-width:1201px){.hero:after{width:70%;background:linear-gradient(90deg,#faf6ec 0%,#faf6ec 75%,#faf6ecf2 88%,transparent 100%)}#assistant-messages{flex:0 1 145px;min-height:80px}.assistant-prompts{display:grid;gap:6px;flex:1;align-content:start;overflow:auto}.assistant-prompts strong{font-size:10px;color:#526477;margin:3px 0}.assistant-prompts button{text-align:left;background:#fff;border:1px solid #e5eaf0;border-radius:7px;padding:8px;color:#637ba4;font-size:10px}.assistant-prompts button:before{content:'✦';color:#3494ec;margin-right:9px}}
@media(max-width:1200px){.assistant-prompts{display:none}}
.monthly-bars .month-bars>span{position:static;bottom:auto;left:auto}

/* ---------------------------------------------------------------
   Angleich an docs/design-reference.png: Kopfzeile, Listenzeilen,
   Unternavigation der Bereiche. Dieser Block gilt zuletzt.
   --------------------------------------------------------------- */

/* Kopfbild: zugeschnittenes Motiv statt der kompletten Entwurfsgrafik. */
.hero{background-image:linear-gradient(90deg,#faf6ec 0%,#faf6ec 24%,#faf6ec99 40%,#faf6ec00 58%),url('hero-family.jpg');background-position:left top,right center;background-size:auto,auto 100%;background-repeat:no-repeat}
@media(max-width:700px){.hero{background-image:linear-gradient(90deg,#faf6ecf2 0%,#faf6ece6 55%,#faf6ec99 100%),url('hero-family.jpg');background-size:auto,cover;background-position:left top,right center}}

/* Kopfzeile: Benutzerkachel wie in der Vorlage. */
@media(min-width:701px){.top-actions select{max-width:none;width:auto;min-width:118px;border-radius:999px;padding:8px 12px}}
.user-chip{display:flex;align-items:center;gap:9px;padding:4px 10px 4px 4px;border-radius:999px;background:#f4f2ec}
.user-chip[hidden]{display:none}
.user-avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#0b8066;color:#fff;font-weight:800;font-size:14px}
.user-meta{display:flex;flex-direction:column;line-height:1.2}
.user-meta strong{font-size:12px}
.user-meta small{font-size:10px;color:#6a7a75}
@media(max-width:1200px){.user-meta{display:none}.user-chip{padding:3px}}
@media(max-width:700px){.user-chip{display:none}}

/* Listenzeilen: Name links, Betrag rechts, Aktionen auf eigener Zeile. */
.line-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:12px}
.line-item:last-child{border-bottom:0}
.line-item .avatar{min-width:34px;height:34px;border-radius:9px;background:#e4f2eb;color:#087b61;display:grid;place-items:center;font-size:16px}
.account-item.kind-credit .avatar{background:#fdeceb;color:#d8514d}
.account-item.kind-savings .avatar{background:#eaf1ff;color:#3572ed}
.account-item.kind-cash .avatar{background:#fff2e2;color:#c2762a}
.line-main{min-width:0}
.line-main strong{display:block;font-size:12.5px;overflow-wrap:anywhere}
.line-main small{display:block;color:#6d7b86;font-size:10.5px;margin-top:2px;overflow-wrap:anywhere}
.line-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.line-head .percent{color:#07866a;font-weight:700;font-size:11px}
.line-value{white-space:nowrap;font-size:13px;text-align:right}
.line-value.bad{color:#dc4a49}
.line-actions{grid-column:2/4;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;margin-top:-2px}
.line-actions .small-button{padding:5px 9px;font-size:10.5px;font-weight:600}
.line-actions:empty{display:none}
.goal-item .line-actions{grid-column:auto;align-self:center;margin-top:0}
/* Zeilenaktionen bleiben ruhig im Hintergrund, bis die Zeile benutzt wird. */
@media(hover:hover) and (min-width:851px){
 .account-item .line-actions{max-height:0;opacity:0;overflow:hidden;margin:0;transition:max-height .15s ease,opacity .15s ease}
 .account-item:hover .line-actions,.account-item:focus-within .line-actions{max-height:70px;opacity:1;margin-top:4px}
}

/* Terminzeile mit Datumsplakette. */
.date-chip{display:grid;place-items:center;width:38px;height:40px;border-radius:10px;background:#fdf1e7;color:#c2672a;line-height:1}
.date-chip b{font-size:15px;font-weight:800}
.date-chip i{font-style:normal;font-size:9px;letter-spacing:.06em;margin-top:2px}
.trip-item .avatar{background:#eaf1ff;color:#3572ed}

/* Abhakbare Zeilen: ganze Zeile ist Klickfläche. */
.check-item{cursor:pointer;border-radius:8px;padding:8px 6px}
.check-item:hover{background:#f7faf8}
.check-item .check{width:17px;height:17px}
.check-item.is-done .line-main strong{color:#8b979d;text-decoration:line-through}
.check-item .line-due,.check-item .pending{color:#7d8a95;font-size:10px;white-space:nowrap}
.list-more{margin:8px 0 0;color:#7d8a95;font-size:10.5px}

/* Umschalter innerhalb einer Karte (Aktiv/Erledigt). */
.list-tabs{display:flex;gap:6px;margin:0 0 8px}
.list-tabs button{border-radius:999px;padding:5px 11px;font-size:10.5px;font-weight:600;background:#f3f5f2;color:#5c6b6a}
.list-tabs button.active{background:#e3f4ea;color:#07866a}

/* Unternavigation eines Bereichs. */
.section-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:10px 2px 12px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.section-tabs button{display:inline-flex;align-items:center;gap:7px;border-radius:999px;padding:8px 14px;font-size:12px;font-weight:600;background:#f3f5f2;color:#55646a}
.section-tabs button span{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#e6e9e4;color:#5d6b6c;font-size:10px}
.section-tabs button.active{background:#07866a;color:#fff}
.section-tabs button.active span{background:#ffffff33;color:#fff}
.tab-panel.tab-hidden{display:none}
.tab-panel>.section-title{grid-column:1/-1}

/* Familienmitglieder in der Seitenleiste. */
.family-add{background:none;padding:0;cursor:pointer}
.family-add .family-avatar{background:#f1f4f1;border:2px dashed #b9cfc5;color:#5d7b70}

/* Der Assistent ist auf großen Bildschirmen fest angedockt. */
@media(min-width:851px){#assistant-close{display:none}}

/* Filterleiste und Tabellen im Buchungsjournal. */
.tab-panel.single{grid-template-columns:minmax(0,1fr)}
.filter-bar{display:flex;flex-wrap:wrap;align-items:end;gap:10px;margin:0 0 14px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.filter-bar label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:600;color:#56656c}
.filter-bar .grow-field{flex:1 1 220px;min-width:0}
.filter-bar input,.filter-bar select{min-height:38px;padding:8px 10px;border:1px solid #dbe3df;border-radius:9px;background:#fff;font-size:12px}
.filter-bar .small-button{min-height:38px}
.filter-summary{margin:0 0 10px;color:#56656c;font-size:11.5px}
.data-table td.good{color:#07866a}
.data-table td.bad{color:#dc4a49}
.data-table .table-actions{display:flex;gap:6px;justify-content:flex-end}
.load-more{display:block;width:100%;margin-top:12px;background:#f3f5f2;color:#55646a}
.row .right{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:flex-end}

/* Monatsraster im Kalender und Schnelleingabe der Einkaufsliste. */
.tab-panel>.span-2,.stack>.span-2{grid-column:1/-1}
.cal-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.cal-head strong{flex:1;font-size:14px}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cal-weekday{padding:4px 0;text-align:center;color:#7d8a95;font-size:10px;font-weight:700;letter-spacing:.04em}
.cal-cell{min-height:74px;display:flex;flex-direction:column;align-items:stretch;gap:3px;padding:6px;border:1px solid var(--line);border-radius:9px;background:#fff;text-align:left;font-size:10px;color:#44535a}
.cal-cell.cal-empty{border-color:transparent;background:none;min-height:0}
.cal-cell b{font-size:11px;color:#55646a}
.cal-cell.is-today{border-color:#07866a;background:#f1faf5}
.cal-cell.is-today b{color:#07866a}
.cal-cell:hover:not(.cal-empty){border-color:#b7cfc6;background:#f8faf8}
.cal-event{display:block;padding:2px 5px;border-radius:5px;background:#e3f4ea;color:#07866a;font-size:9.5px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-more{color:#7d8a95;font-size:9px}
.quick-add{border-bottom:1px solid var(--line)}
@media(max-width:700px){.cal-cell{min-height:56px;padding:4px}.cal-event{font-size:8.5px}}

/* Profilseite. */
#user-chip{border:0;cursor:pointer;font:inherit;text-align:left}
#user-chip:hover{background:#eceae2}
#user-chip.active{background:#e3f4ea}#user-chip.active .user-meta strong{color:#07866a}
.profile-actions{justify-content:flex-start;margin-top:12px}
#profile-password-form label{display:block;font-weight:600;font-size:12px;margin:14px 0 0;color:#44535a}
#profile-password-form input{display:block;width:100%;max-width:340px;margin-top:6px;padding:10px 12px;border:1px solid #dbe3df;border-radius:9px;background:#fff}
#profile-password-form .button{margin-top:18px}
#profile-name-form{margin-bottom:6px;border-bottom:0;padding-bottom:0}
.card h3{margin:20px 0 8px;font-size:13px}
.line-item .avatar.is-on{background:#e3f4ea;color:#07866a}
.line-item .avatar.is-off{background:#f3f5f2;color:#8a979d}

.session-row .line-actions{grid-column:auto;align-self:center;margin-top:0}
.note:empty{display:none}
#route-map{display:block;width:100%;max-height:520px;margin:16px 0;border:1px solid #cbdedb;border-radius:12px;cursor:crosshair;background:#dcecf2}#route-details{margin:12px 0;color:#53635f}#route-points li{padding:5px}#route-points button{margin-left:8px;background:#f1f4f1;border-radius:6px;padding:4px 8px}
.route-map-controls{display:flex;gap:6px;margin-top:12px}.route-map-controls button{min-width:40px;min-height:40px;border:1px solid #dbe3df;border-radius:8px;background:white;color:#087b61}
.route-place-form{max-width:680px;margin:18px 0}.route-place-form>label{display:block;font-weight:700;font-size:13px;margin-bottom:6px}.route-search-wrap{position:relative}.route-place-form input[type=search]{width:100%;min-height:46px;border:1px solid #cbd9d2;border-radius:9px;padding:10px 12px;background:white}.route-place-form #route-place-results{position:absolute;top:100%;left:0;right:0;z-index:5;background:#fff;border:1px solid #dbe5df;border-radius:9px;box-shadow:0 8px 24px #173b3420;overflow:hidden}.route-place-form #route-place-results button{display:block;width:100%;background:#fff;text-align:left;padding:11px 12px;border-bottom:1px solid #edf1ed;font-size:13px;color:#243641}.route-place-form #route-place-results button:hover,.route-place-form #route-place-results button[aria-selected=true]{background:#e7f5ee}.route-place-form #route-place-status,.route-search-privacy{font-size:11px;color:#53635f;margin:7px 0 10px}.route-place-form .button{min-height:42px}
/* Reiseplanung */
.travel-page{margin:18px 0 36px;color:#14243a}.travel-page-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:4px 0 18px}.travel-page-head h2{font-size:26px;letter-spacing:-.035em;margin:4px 0}.travel-page-head p,.travel-panel-head p{color:#6e7f8e;font-size:13px;margin:0}.travel-kicker{font-size:10px;letter-spacing:.12em;color:#079171;font-weight:800}.travel-layout{display:grid;grid-template-columns:minmax(190px,240px) minmax(0,1fr);gap:14px;align-items:start}.travel-list-panel,.travel-panel,.travel-stats,.travel-empty{background:#fff;border:1px solid #edf0eb;border-radius:15px;box-shadow:0 5px 20px #1a3d2d0a}.travel-list-panel{padding:15px;position:sticky;top:72px}.travel-list-head{display:flex;justify-content:space-between;align-items:center;margin:2px 2px 12px}.travel-list-head h2{font-size:14px;margin:0}.travel-list-head>span,.travel-count{border-radius:20px;padding:5px 9px;background:#f0f6f2;color:#43806d;font-size:11px;font-weight:700}.travel-trip-list{display:grid;gap:7px}.travel-trip-card{width:100%;display:flex;align-items:center;gap:10px;text-align:left;border:1px solid transparent;border-radius:11px;background:#f8faf8;padding:11px 9px;color:#14243a}.travel-trip-card:hover{background:#f0f8f3}.travel-trip-card.is-selected{background:#eaf7ef;border-color:#c7ebd8}.travel-trip-icon,.travel-booking-icon{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:11px;color:#087d60;background:#d6f1e4;font-size:17px}.travel-trip-text,.travel-booking-name{min-width:0;flex:1}.travel-trip-text strong,.travel-booking-name strong{display:block;font-size:12px;overflow-wrap:anywhere}.travel-trip-text small,.travel-booking-name small{display:block;color:#768696;font-size:10px;line-height:1.4;margin-top:3px}.travel-trip-status{display:none}.travel-trip-chevron{font-size:20px;color:#83a092}.travel-main{min-width:0;display:grid;gap:14px}.travel-hero{min-height:150px;display:flex;align-items:end;justify-content:space-between;gap:15px;padding:24px;border-radius:16px;background:radial-gradient(ellipse at 95% 0,#bfeadd 0,transparent 45%),linear-gradient(120deg,#e5f6ec,#f7fbf4 70%,#e7f3eb);border:1px solid #dcefe4}.travel-hero h2{font-size:26px;letter-spacing:-.035em;margin:12px 0 6px}.travel-hero p{margin:0;font-size:13px;color:#496c62}.travel-hero p span{padding:0 5px}.travel-hero-status{display:inline-block;color:#087b61;background:#fff;border-radius:99px;padding:6px 10px;font-size:10px;font-weight:800}.travel-hero-link{color:#087b61;background:#ffffffca;border-radius:9px;padding:10px 12px;font-size:11px;font-weight:700;text-decoration:none;white-space:nowrap}.travel-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:15px 0}.travel-stats>div{padding:2px 16px;border-right:1px solid #edf1ed;min-width:0}.travel-stats>div:last-child{border:0}.travel-stats span,.travel-stats small{display:block;color:#748393;font-size:10px;line-height:1.4}.travel-stats strong{display:block;font-size:17px;margin:7px 0 3px;white-space:nowrap}.travel-negative{color:#d74a4a}.travel-budget-bar{height:5px;margin:-20px 16px 0;background:#eef4ee;border-radius:8px;overflow:hidden;z-index:1}.travel-budget-bar i{display:block;height:100%;background:#1bae83;border-radius:8px}.travel-panel{padding:20px;min-width:0}.travel-panel-head{display:flex;justify-content:space-between;align-items:start;gap:15px;margin-bottom:14px}.travel-panel-head h2{font-size:17px;letter-spacing:-.02em;margin:5px 0}.travel-route-select{font-size:11px;color:#6d7c89}.travel-route-select select{border:1px solid #dce7df;border-radius:8px;background:#fff;padding:7px;margin-left:5px;color:#283b4b}.travel-route #route-map{max-height:390px;margin:10px 0 14px}.travel-route #route-point-form{max-width:none}.travel-route #route-points{list-style:none;counter-reset:station;padding:0;margin:0 0 16px}.travel-route #route-points li{counter-increment:station;display:flex;align-items:center;gap:10px;border:1px solid #edf1ed;border-radius:10px;padding:9px;margin:6px 0;font-size:12px}.travel-route #route-points li:before{content:counter(station);display:grid;place-items:center;width:25px;height:25px;flex:none;border-radius:50%;background:#e1f5e9;color:#087b61;font-weight:800}.travel-route #route-points li>span:first-of-type{flex:1;overflow-wrap:anywhere}.route-point-actions{display:flex;gap:4px}.travel-route #route-points button{margin:0;min-width:32px;min-height:32px;color:#55746a}.travel-route #route-points button:disabled{opacity:.35}.travel-route #route-calculation,.travel-route .route-credit{font-size:11px;line-height:1.5;color:#718395;margin:10px 0 0}.travel-route .route-credit a{color:#527ca5}.travel-booking-list{display:grid;gap:8px}.travel-booking{border:1px solid #edf1ed;border-radius:11px;overflow:hidden}.travel-booking.is-cancelled{opacity:.65}.travel-booking-main{display:flex;gap:10px;align-items:center;padding:12px}.travel-booking-icon{background:#eaf2ff;color:#3975df}.travel-booking-price{text-align:right;white-space:nowrap}.travel-booking-price strong{display:block;font-size:12px}.travel-booking-price small{display:block;color:#718395;font-size:10px;margin-top:4px}.travel-booking-details{padding:0 12px 10px}.travel-booking-details summary,.travel-add-booking summary,.travel-edit summary{cursor:pointer;color:#087b61;font-size:12px;font-weight:700}.travel-booking-details p,.travel-muted{font-size:12px;color:#718395}.travel-add-booking{margin-top:12px;padding:12px;border:1px dashed #c9dfd1;border-radius:10px}.travel-edit summary{color:#213b35;font-size:14px}.travel-empty,.travel-empty-small{text-align:center;padding:50px 20px}.travel-empty>span,.travel-empty-small>span{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:#e3f5e9;color:#078a69;font-size:24px;margin:0 auto 14px}.travel-empty h2{font-size:20px;margin:0 0 8px}.travel-empty p,.travel-empty-small p{color:#758393;font-size:13px}.travel-empty-small{padding:24px 15px;background:#f8faf8;border-radius:10px}.travel-empty-small>span{width:36px;height:36px;font-size:17px;margin-bottom:8px}.travel-empty-small strong{font-size:12px}.travel-empty-small p{font-size:11px;margin:4px 0 0}
@media(max-width:1050px){.travel-layout{grid-template-columns:1fr}.travel-list-panel{position:static}.travel-trip-list{display:flex;overflow-x:auto}.travel-trip-card{min-width:200px;max-width:260px}.travel-trip-status{display:none}}
@media(max-width:700px){.travel-page-head{align-items:flex-start}.travel-page-head h2{font-size:23px}.travel-page-head .button{white-space:nowrap;padding:10px}.travel-hero{padding:18px;min-height:135px;align-items:start;flex-direction:column}.travel-hero h2{font-size:22px}.travel-stats{grid-template-columns:1fr 1fr;gap:15px 0}.travel-stats>div:nth-child(2){border-right:0}.travel-stats strong{font-size:16px}.travel-panel{padding:16px}.travel-route .inline-form{display:flex}.travel-budget-bar{margin-top:-20px}}
.travel-route #route-map{height:360px;max-height:none;z-index:0;cursor:grab;background:#dcecf2}.travel-route #route-map:active{cursor:grabbing}.travel-route .leaflet-container{font:12px Arial,system-ui,sans-serif}.travel-route .leaflet-control-attribution{font-size:10px}.travel-route .leaflet-tooltip{max-width:230px;overflow-wrap:anywhere;white-space:normal}
body.travel-view .hero,body.travel-view .metrics{display:none}@media(min-width:1201px){body.travel-view #assistant-widget{top:70px}}
.travel-booking-editor{margin:10px 0;padding:10px;border-radius:8px;background:#f7faf8}.travel-booking-editor summary{color:#457b6b}
.trip-tabs{display:flex;gap:6px;overflow-x:auto;padding:3px 0 6px;scrollbar-width:thin}.trip-tabs button{flex:none;padding:9px 13px;border-radius:9px;background:#fff;color:#677a85;border:1px solid #edf1ed;font-size:12px;font-weight:700}.trip-tabs button[aria-pressed=true]{background:#e4f6ec;color:#087b61;border-color:#c9e9d8}.trip-overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.trip-overview-grid button{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:7px;padding:16px;background:#f7faf8;border:1px solid #edf2ed;border-radius:12px;color:#183b35;min-width:0}.trip-overview-grid button:hover{background:#eaf7ef;border-color:#c9e9d8}.trip-overview-grid button>span{display:grid;place-items:center;width:35px;height:35px;border-radius:10px;background:#dff3e7;color:#087b61;font-size:18px}.trip-overview-grid strong{font-size:12px}.trip-overview-grid small,.trip-cost-summary small{font-size:11px;color:#718395}.trip-packing-list,.trip-estimate-list{display:grid;gap:7px;margin:12px 0}.trip-packing-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border:1px solid #edf1ed;border-radius:9px}.trip-packing-row label{display:flex;align-items:center;gap:10px;flex:1;font-size:13px}.trip-packing-row input{width:18px;height:18px;accent-color:#07866a}.trip-packing-row .is-packed{text-decoration:line-through;color:#889693}.trip-cost-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:15px 0}.trip-cost-summary>div{padding:16px;background:#f5faf6;border-radius:10px}.trip-cost-summary strong{display:block;margin-top:5px;font-size:19px}.trip-estimate{border:1px solid #edf1ed;border-radius:9px;padding:10px 12px}.trip-estimate summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px}.trip-estimate summary small{display:block;color:#718395;margin-top:4px}.trip-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin:14px 0}.trip-photo-grid figure{margin:0;border:1px solid #edf1ed;border-radius:10px;padding:7px;min-width:0}.trip-photo-grid img{display:block;width:100%;height:130px;object-fit:cover;border-radius:7px;background:#edf2ef}.trip-photo-grid figcaption{font-size:11px;overflow-wrap:anywhere;color:#526477;margin:7px 0}.route-toll-status{padding:11px 13px;border-radius:9px;background:#fff3e5;border-left:3px solid #ed8029;color:#875018;font-size:12px;line-height:1.5}.trip-detail-panel[hidden]{display:none!important}@media(max-width:700px){.trip-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.trip-tabs button{min-height:42px}.trip-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.trip-fuel-calculator{padding:12px;margin:12px 0;border:1px solid #e0eee5;border-radius:10px;background:#f8fbf9}.trip-fuel-calculator summary{cursor:pointer;color:#087b61;font-size:12px;font-weight:700}.trip-fuel-calculator p{font-size:11px;color:#718395;margin:8px 0}
/* Kleiner Familienhelfer */
#assistant-panel[hidden]{display:none!important}#assistant-widget:has(#assistant-panel[hidden]) #assistant-launcher{display:flex}#assistant-launcher{align-items:center;gap:9px;padding:8px 16px 8px 8px;background:#087b61;color:#fff;border-radius:28px;box-shadow:0 8px 25px #123b3450}#assistant-launcher .bot-face{transform:scale(.8);margin:-2px}#assistant-panel{background:linear-gradient(180deg,#f2fbf5 0,#fff 135px);border:1px solid #dceee2;border-radius:18px;box-shadow:0 12px 35px #183b2b14;gap:10px}#assistant-panel .bot-header{display:flex;align-items:center;gap:8px;padding:2px 0 9px;border-bottom:1px solid #e7f1ea}#assistant-panel .bot-header h2{font-size:15px;margin:0;color:#16382e}.bot-header-identity{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.bot-online{display:block;font-size:10px;color:#138b69;margin-top:4px}.bot-face{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:none;width:46px;height:41px;border-radius:15px;background:linear-gradient(145deg,#0ab17b,#087961);box-shadow:inset 0 -3px 0 #005d4a33,0 3px 9px #087b612c}.bot-antenna{position:absolute;top:-6px;left:21px;width:3px;height:7px;background:#087961;border-radius:3px}.bot-antenna:before{content:'';position:absolute;top:-3px;left:-2px;width:7px;height:7px;border-radius:50%;background:#f8bb4b}.bot-screen{display:flex;justify-content:center;align-items:center;gap:7px;width:34px;height:22px;border-radius:9px;background:#e9fff4}.bot-screen i{width:5px;height:7px;border-radius:50%;background:#125b50}.bot-smile{position:absolute;left:19px;bottom:5px;width:8px;height:3px;border-bottom:2px solid white;border-radius:50%}.bot-context{padding:7px 10px;border:1px solid #dceee2;background:#f3fbf6;border-radius:9px;font-size:11px;font-weight:700;color:#28735d;overflow-wrap:anywhere}.bot-help,.bot-privacy{font-size:10px;line-height:1.4;color:#687f74;margin:0}.bot-privacy{font-size:9px;color:#778b80}#assistant-messages{background:#f7faf8;border:1px solid #eef3ef;border-radius:12px;padding:9px;gap:8px}.assistant-message{background:#e7f5ec;color:#244438;border-radius:12px 12px 12px 4px;font-size:12px}.assistant-message.user{background:#eaf1ff;color:#293e5e;border-radius:12px 12px 4px 12px}.assistant-prompts strong{color:#557369}.assistant-prompts button{border-color:#e2eee6!important;color:#436b5c!important;background:#fff!important}.assistant-prompts button:before{content:'✦';color:#12a579}.assistant-prompts button:hover{background:#eef9f2!important}#assistant-form textarea{min-height:44px;resize:none;border-color:#dce9df;background:#fff}#assistant-form .button{min-width:44px;min-height:44px;border-radius:11px;padding:8px;background:#0b9872}.assistant-confirm{font-size:11px;padding:8px 12px;align-self:flex-start}
@media(min-width:1201px){#assistant-panel,#assistant-panel[hidden]{height:540px}.assistant-prompts{flex:1;min-height:60px}.bot-header .bot-face{width:46px}#assistant-widget:has(#assistant-panel[hidden]){align-items:flex-end}#assistant-widget:has(#assistant-panel[hidden]) #assistant-launcher{align-self:flex-end}}
@media(max-width:1200px){#assistant-panel:not([hidden]) .assistant-prompts{display:grid;gap:5px;max-height:150px;overflow:auto}#assistant-panel:not([hidden]) .assistant-prompts strong{font-size:10px}#assistant-panel:not([hidden]) .assistant-prompts button{text-align:left;border:1px solid #e2eee6;border-radius:8px;padding:8px;font-size:11px}}
@media(max-width:700px){#assistant-widget #assistant-launcher{display:flex}#assistant-panel:not([hidden]){height:min(610px,calc(100dvh - 150px));max-height:calc(100dvh - 150px)}#assistant-messages{flex:1;min-height:60px}.assistant-prompts{flex:none!important}#assistant-form{flex:none}.bot-privacy{flex:none}}
.travel-hero-actions{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.travel-ask-bot{font:inherit;font-size:11px;font-weight:700;border:0;background:#087b61;color:#fff;cursor:pointer}@media(max-width:700px){.travel-hero-actions{width:100%}.travel-hero-actions>*{min-height:42px;display:inline-flex;align-items:center}}
#assistant-panel #assistant-close{display:block;flex:none;min-width:36px;min-height:36px;border-radius:10px;background:#fff;color:#577468;font-size:22px;line-height:1}#assistant-panel #assistant-close:hover{background:#e8f5ed}@media(min-width:1201px){#assistant-messages{flex:0 1 110px}.assistant-prompts button{padding:7px 8px}}@media(max-width:700px){#assistant-panel #assistant-close{min-width:44px;min-height:44px}}
/* Großzügiger Chatbereich mit klarer Hierarchie. */
#assistant-panel{padding:18px;gap:12px;background:#fff;border:1px solid #dce9e1;border-radius:20px;box-shadow:0 14px 38px #183b2b1c}#assistant-panel .bot-header{padding:2px 0 14px}#assistant-panel .bot-header h2{font-size:17px}.bot-online{font-size:11px}.bot-context{padding:10px 12px;font-size:12px}.bot-help{font-size:11px}.bot-privacy{font-size:10px;line-height:1.45}#assistant-messages{min-height:180px;padding:14px;gap:12px;background:#f5f9f6;border-color:#e8f1ea}.assistant-message{max-width:88%;padding:12px 14px;font-size:14px;line-height:1.55;box-shadow:0 2px 8px #2444380a}.assistant-prompts{flex:0 0 auto!important;max-height:148px;overflow:auto}.assistant-prompts strong{font-size:11px!important}.assistant-prompts button{padding:9px 10px!important;font-size:11px!important}#assistant-form{align-items:stretch}#assistant-form textarea{font-size:14px;padding:12px;min-height:50px}#assistant-form .button{min-width:50px;min-height:50px;font-size:18px}
@media(min-width:1201px){main{padding-right:calc(clamp(390px,30vw,455px) + 28px)}.hero{margin-right:calc(-1 * (clamp(390px,30vw,455px) + 28px))}#assistant-widget{width:clamp(390px,30vw,455px);right:14px}#assistant-panel,#assistant-panel[hidden]{height:min(710px,calc(100vh - 245px));min-height:510px}body.travel-view #assistant-panel,body.travel-view #assistant-panel[hidden]{height:min(710px,calc(100vh - 88px))}#assistant-messages{flex:1 1 auto;max-height:none;min-height:180px}.assistant-prompts{display:grid;gap:5px;align-content:start}}
@media(min-width:701px) and (max-width:1200px){#assistant-panel:not([hidden]){height:min(700px,calc(100dvh - 100px));min-height:460px}#assistant-messages{flex:1 1 auto;max-height:none;min-height:150px}}
@media(max-width:700px){#assistant-widget{right:10px;bottom:74px}#assistant-panel:not([hidden]){width:min(480px,calc(100vw - 20px));height:min(730px,calc(100dvh - 110px));max-height:calc(100dvh - 110px);padding:15px;gap:9px}#assistant-messages{flex:1 1 auto;min-height:100px;padding:10px}.assistant-prompts{max-height:110px}.assistant-message{font-size:13px}.bot-help,.bot-privacy{font-size:10px}}
/* Familienhelfer: aufgeräumter Chat mit vergrößerbarer Ansicht. */
#assistant-panel{padding:0;gap:0;background:#fff;border:1px solid #dce9e2;border-radius:20px;overflow:hidden;box-shadow:0 14px 40px #123e3020}#assistant-panel .bot-header{padding:17px 18px;background:linear-gradient(120deg,#075d4e,#087c60);border:0;gap:5px}#assistant-panel .bot-header h2{color:#fff;font-size:16px;letter-spacing:-.015em}.bot-online{color:#c7f2db;font-size:11px}.bot-header-identity{gap:12px}.bot-header .bot-face{background:#dcf8e7;box-shadow:none}.bot-header .bot-screen{background:#08745a}.bot-header .bot-screen i{background:#f2fff6}.bot-header .bot-smile{border-color:#08745a}.bot-header .bot-antenna{background:#d5f2e0}#assistant-panel #assistant-close,#assistant-panel #assistant-expand{display:grid;place-items:center;width:36px;height:36px;min-width:36px;min-height:36px;padding:0;border-radius:10px;background:#ffffff18;color:#fff;font-size:21px;line-height:1}#assistant-panel #assistant-close:hover,#assistant-panel #assistant-expand:hover{background:#ffffff30}.bot-context{margin:14px 18px 0;padding:9px 12px;font-size:11px;background:#edf8f1;border-color:#dcefe2}.bot-help{margin:8px 18px 0;color:#71827a;line-height:1.4;font-size:11px}#assistant-messages{margin:12px 16px 0;padding:14px;flex:1 1 auto;min-height:130px;max-height:none;background:#f5f8f6;border:1px solid #eaf0eb;border-radius:13px}.assistant-message{font-size:13px;line-height:1.55;padding:12px 14px;background:#fff;border:1px solid #e6eee8;color:#263e34;box-shadow:0 2px 8px #163b2510}.assistant-message.user{background:#e1f3e8;border-color:#d3ecdd;color:#185c45}.assistant-message a{color:#126bb6;text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere}.assistant-search-note{display:block;font-size:10px;letter-spacing:.01em;color:#578574;border-top:1px solid #e9f0eb;margin-top:10px;padding-top:7px}.assistant-prompts{margin:10px 18px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:120px;overflow:auto;flex:0 0 auto!important}.assistant-prompts strong{grid-column:1/-1;font-size:10px!important;color:#71857a}.assistant-prompts button{min-width:0;text-align:left;font-size:11px!important;padding:8px 9px!important;border:1px solid #e5ede7!important;border-radius:9px;color:#516a5d!important;background:#fff!important}.assistant-prompts button:before{content:'';margin:0}#assistant-panel.has-conversation .assistant-prompts{display:none!important}#assistant-form{display:flex;align-items:stretch;gap:6px;margin:12px 16px 0;padding:5px;border:1px solid #dce8df;border-radius:13px;background:#fff}#assistant-form:focus-within{border-color:#48aa80;box-shadow:0 0 0 3px #d8f1e1}#assistant-form textarea{flex:1;min-width:0;min-height:46px;max-height:100px;border:0;outline:none;box-shadow:none;resize:vertical;padding:11px;font:inherit;font-size:13px;background:transparent}#assistant-form .button{width:46px;min-width:46px;min-height:46px;border-radius:10px;font-size:16px}.bot-privacy{margin:7px 18px 13px;color:#82948a;font-size:10px;line-height:1.4}#assistant-widget.is-expanded #assistant-panel:not([hidden]){position:fixed!important;z-index:80;top:50%!important;right:50%!important;bottom:auto!important;transform:translate(50%,-50%);width:min(760px,calc(100vw - 28px))!important;height:min(800px,calc(100dvh - 36px))!important;max-height:calc(100dvh - 36px)!important;box-shadow:0 24px 100px #071e1880}#assistant-widget.is-expanded #assistant-messages{min-height:200px}#assistant-widget.is-expanded .assistant-prompts{max-height:150px}
@media(min-width:1201px){main{padding-right:calc(clamp(420px,33vw,500px) + 28px)}.hero{margin-right:calc(-1 * (clamp(420px,33vw,500px) + 28px))}#assistant-widget{width:clamp(420px,33vw,500px);right:14px}#assistant-panel:not([hidden]){height:min(740px,calc(100vh - 245px));min-height:510px}body.travel-view #assistant-panel:not([hidden]){height:min(740px,calc(100vh - 88px))}}
@media(max-width:700px){#assistant-panel:not([hidden]){padding:0;gap:0}#assistant-panel .bot-header{padding:12px 14px}#assistant-panel #assistant-close,#assistant-panel #assistant-expand{width:44px;height:44px;min-width:44px;min-height:44px}.bot-context{margin:10px 12px 0}.bot-help{margin:6px 12px 0}#assistant-messages{margin:8px 10px 0;padding:10px;min-height:80px}.assistant-prompts{margin:8px 12px 0;max-height:85px}#assistant-form{margin:8px 10px 0}.bot-privacy{margin:6px 13px 10px}#assistant-widget.is-expanded #assistant-panel:not([hidden]){top:12px!important;right:10px!important;transform:none;width:calc(100vw - 20px)!important;height:calc(100dvh - 96px)!important;max-height:calc(100dvh - 96px)!important}#assistant-widget.is-expanded #assistant-messages{min-height:100px}}
#assistant-widget.is-expanded{z-index:80}
