.family-app{--paper:#f4f5f7;--gold:#c99b46;background:var(--paper)}.family-app .side-nav{position:fixed;inset:0 auto 0 0;width:230px;background:#14283e;color:white;padding:30px 20px;display:flex;flex-direction:column;z-index:20}.sidebar-brand{display:flex;align-items:center;gap:13px;color:white;text-decoration:none;font-weight:700;letter-spacing:1px;font-size:12px;margin-bottom:40px}.sidebar-brand .brand{flex-shrink:0;border-radius:8px;height:48px;width:43px;font-size:30px}.side-nav nav{display:grid;gap:6px}.side-nav nav a{color:#ccd7e2;text-decoration:none;padding:13px 16px;border-radius:10px;font-weight:600}.side-nav nav a:hover{background:#233f5b}.side-nav nav a[aria-current=page]{color:#172d45;background:#edd5a6}.sidebar-note{margin-top:auto;color:#aebccd;font-size:13px;padding-top:35px}.sidebar-garno{background:#e2bc75;color:#14283e}.sidebar-privacy{font-size:12px;color:#aebccd;margin-top:20px}.family-app .app-shell{margin-left:230px}.family-app .app-header{position:sticky;top:0;background:#fff;color:#172d45;padding:20px 34px;justify-content:space-between;border-bottom:1px solid #e3e7ec;z-index:10}.app-header h1{font:700 24px/1.3 system-ui;margin:5px 0 0}.app-header .eyebrow{color:#7e8792;font-size:10px}.app-header button{background:#172d45;border:1px solid #172d45;border-radius:25px}.family-app main{max-width:1250px;padding:30px 34px 50px}.family-app .card{border-color:#e3e7ec;box-shadow:none;padding:26px;border-radius:15px}.page-view>.card{margin:0}.home-hero{margin:10px 0 28px}.home-hero h1{max-width:600px;font-size:40px;margin:8px 0}.home-hero>p:last-child{color:#657382}.home-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:24px}.home-stats>a{background:#fff;border:1px solid #e3e7ec;padding:22px;border-radius:14px;color:#172d45;text-decoration:none;display:grid;gap:10px}.home-stats span{font-size:13px;color:#657382}.home-stats strong{font-size:32px;font-weight:650}.home-columns{display:grid;grid-template-columns:1fr 1fr;gap:22px}.home-columns .section-title>a{font-size:13px;color:#6f501a;font-weight:650;text-decoration:none}.home-list{list-style:none;padding:0;margin:0}.home-list li{border-top:1px solid #edf0f3;padding:14px 0;color:#657382}.home-list a{display:grid;gap:5px;color:#172d45;text-decoration:none}.home-list span{font-size:13px;color:#657382}.home-list strong{font-size:15px}.quick-button{margin-top:12px;background:#f1e2c5;color:#172d45}.family-app #shopping-controls{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.family-app #shopping-controls>label,.family-app #shopping-controls>input,.family-app #manual-add,.family-app #shopping-controls>.hint{grid-column:1/-1}.family-app #shopping-controls>label:first-child{grid-column:1}.family-app #shopping-controls>select#category{grid-column:1}.family-app #shopping-controls>label[for=shopping-view]{grid-column:2;grid-row:1}.family-app #shopping-view{grid-column:2;grid-row:2}#manual-add{background:#f4f6f8;border-radius:10px;padding:18px;display:grid;grid-template-columns:1fr auto;gap:8px 14px}#manual-add label{grid-column:1/-1}#manual-add input{margin:0}.family-app #items li{padding:20px 0}.family-app #items strong{font-size:18px}.primary-summary{color:#69480f;background:#f4e6cd;border-radius:8px;padding:12px 16px;margin:15px 0;display:list-item;width:fit-content}.family-app .tasks-card{margin-top:0}.family-app h3{margin-top:26px}.calendar-toolbar{display:flex;gap:14px;align-items:center;margin:20px 0;flex-wrap:wrap}.calendar-toolbar>label{margin:0 0 0 auto}.calendar-toolbar select{margin:0}.calendar-weekday{font-size:12px;font-weight:700;padding:6px;color:#657382}.calendar-blank{border:0;background:transparent}.family-app #calendar-grid{gap:8px}.calendar-day{min-height:105px;font-size:13px}.calendar-day span{font-size:12px}.family-app #calendar-events{list-style:none;padding:0}.family-app #calendar-events li{display:grid;gap:7px;padding:18px 0;border-top:1px solid #e3e7ec}.family-app #calendar-events span{color:#657382;font-size:14px}.family-app #calendar-events a{font-size:13px;color:#79591e}#garno-drawer{margin:0 0 0 auto;width:480px;max-width:100vw;height:100dvh;max-height:100dvh;border:0;padding:26px;background:white;color:#172d45;overflow-y:auto;border-left:1px solid #ddd}dialog::backdrop{background:#10243d80}.assistant-content .section-title{position:sticky;top:-26px;background:#fff;padding:18px 0;z-index:1}.assistant-content #identity{margin-left:auto}.assistant-content #conversation{max-height:36dvh;min-height:100px}.assistant-content #logout{margin-top:20px}.assistant-content textarea{min-height:120px}.assistant-content #send{width:100%}.assistant-content #command-mode-control label{font-size:12px;color:#657382}.mobile-nav{display:none!important}#more-menu{border:0;border-radius:16px;padding:25px;min-width:270px}#more-menu nav{display:grid;margin:16px 0}#more-menu nav a{padding:14px;color:#172d45;font-weight:700}.login-card{max-width:650px;margin:30px auto}.family-app:not(:has(.side-nav:not([hidden]))) .app-shell{margin-left:0}.family-app :focus-visible{outline:3px solid #aa761f;outline-offset:3px}@media(max-width:1000px){.family-app .side-nav{width:190px;padding:25px 15px}.family-app .app-shell{margin-left:190px}.family-app .app-header{padding:20px 24px}.family-app main{padding:25px 24px}.home-hero h1{font-size:34px}.home-columns{gap:16px}}@media(max-width:750px){.family-app .side-nav{display:none!important}.family-app .app-shell{margin-left:0}.family-app .app-header{padding:16px;gap:10px}.app-header h1{font-size:21px}.app-header button{font-size:12px;padding:9px 13px}.family-app main{padding:18px 16px 100px}.home-hero h1{font-size:31px}.home-stats{gap:9px}.home-stats>a{padding:14px 10px}.home-stats span{font-size:11px}.home-stats strong{font-size:25px}.home-columns{grid-template-columns:1fr}.family-app .card{padding:20px}.mobile-nav:not([hidden]){display:flex!important;position:fixed;inset:auto 0 0;background:white;border-top:1px solid #dce2e8;padding:8px 8px max(8px,env(safe-area-inset-bottom));justify-content:space-around;z-index:25}.mobile-nav a,.mobile-nav button{flex:1;color:#657382;background:transparent;text-align:center;font-size:11px;padding:10px 5px;border-radius:8px;text-decoration:none;font-weight:700;min-width:0}.mobile-nav a[aria-current=page]{color:#172d45;background:#f2e6d0}.mobile-nav button{border:0}#garno-drawer{width:100vw;padding:20px}.family-app #calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.calendar-day{min-height:85px;padding:4px;font-size:10px}.calendar-day strong{font-size:10px}.calendar-day span{font-size:9px}.calendar-weekday{font-size:10px;padding:2px}.calendar-toolbar{gap:9px}.calendar-toolbar strong{font-size:14px}.calendar-toolbar>label{width:100%;margin:0}#manual-add{grid-template-columns:1fr}#manual-add button{width:100%}}

.family-app #budget-month-chart{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.family-app .budget-month-chart-row{border:1px solid #e3e7ec;border-radius:10px;padding:14px}.family-app .budget-month-chart-row .budget-bar-row{grid-template-columns:65px minmax(20px,1fr);font-size:12px}.family-app .budget-month-chart-row .budget-bar-row>span:last-child{grid-column:2;text-align:right}.page-view{scroll-margin-top:100px}@media(max-width:1050px){.family-app #budget-month-chart{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:550px){.family-app #budget-month-chart{grid-template-columns:1fr}}

/* Compact shopping list; existing top controls retained. */
.family-app #shopping-controls>.shopping-price-info{grid-column:1/-1;margin:12px 0;color:#657382;font-size:12px}
.shopping-price-info summary{cursor:pointer;width:fit-content}.shopping-price-info p{max-width:65ch}
.family-app #items .shopping-row{display:flex;align-items:center;gap:14px;padding:12px 14px;min-height:68px;margin:0;border-bottom:1px solid #e3e7ec;border-top:0;border-radius:0}
.family-app #items .shopping-row.is-staple{background:#fff8e6;border:0;border-left:4px solid #b48120;border-bottom:1px solid #e3e7ec;padding-left:10px}
.family-app #items .shopping-row strong{font-size:16px;line-height:1.35;display:block}
.shopping-row-content{flex:1;min-width:0;overflow-wrap:anywhere}.family-app #items .shopping-row-detail{display:block;font-size:12px;color:#657382;margin-top:3px}
.family-app #items .shopping-bought{width:24px;height:24px;flex:0 0 24px;margin:10px;accent-color:#172d45;cursor:pointer}
.family-app #items .shopping-star{background:transparent;border:1px solid transparent;color:#8b641e;font-size:26px;line-height:1;padding:8px;min-width:44px;min-height:44px;margin:0;flex:0 0 44px}
.family-app #items .shopping-star:hover{background:#f3e4c7;border-color:#d4b574}.family-app #items .shopping-star[aria-pressed=true]{color:#8b641e}
.family-app #items .shopping-buy-again{font-size:12px;padding:10px;min-height:44px;margin:0;flex-shrink:0}
.shopping-history{font-size:12px;color:#657382;margin:4px 0 0}.shopping-history summary{cursor:pointer}.shopping-save-status{font-size:12px;color:#657382;margin:0}.shopping-save-status:empty{display:none}
@media(max-width:550px){.family-app #items .shopping-row{padding:10px 6px;gap:8px}.family-app #items .shopping-row.is-staple{padding-left:2px}.family-app #items .shopping-bought{margin:10px 6px}.family-app #items .shopping-row strong{font-size:15px}}

.header-actions{display:flex;gap:10px;align-items:center}.family-app .app-header #header-logout{background:white;color:#172d45;border:1px solid #b8c2cc;border-radius:8px;font-size:13px;padding:10px 14px}@media(max-width:550px){.header-actions{gap:6px}.family-app .app-header #header-logout{font-size:12px;padding:9px 10px}.app-header .eyebrow{display:none}}

.upload-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin:20px 0}.upload-fields label{display:flex;flex-direction:column;gap:7px}.upload-fields input,.upload-fields select{width:100%;min-height:44px}.upload-rows details{border-bottom:1px solid #e0e4e8;padding:14px 0}.upload-rows summary{line-height:1.6;overflow-wrap:anywhere}.upload-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}.upload-warning{background:#fff4d8;border-left:4px solid #b08d2b;padding:12px;margin:16px 0}#upload-history li{padding:16px 0}#upload-history button{margin-left:16px}#upload-status{white-space:pre-wrap}#upload-review>label{display:flex;gap:12px;align-items:center}#upload-review>label input{width:24px;height:24px;flex-shrink:0}

.upload-saved{border:2px solid #31805b;background:#f5fbf7}.upload-saved>h2{color:#216044}.upload-saved>a,.upload-saved>button{display:inline-flex;margin:12px 16px 12px 0;min-height:44px;align-items:center}#upload-review-feedback{font-weight:600;white-space:pre-wrap}

/* Family welcome: scoped to the signed-out screen. */
.family-app.is-signed-out{background:#f2efe8;background-image:radial-gradient(ellipse at 5% 0%,#e2d8c350,transparent 55%)}
.family-app.is-signed-out .app-header{display:none}
.family-app.is-signed-out .app-shell{margin-left:0}
.family-app.is-signed-out main{max-width:none;min-height:100svh;display:grid;place-items:center;padding:40px 28px}
.family-app .login-card{width:100%;max-width:1080px;margin:0;padding:0;border:1px solid #e0dcd2;border-radius:24px;overflow:hidden;box-shadow:0 18px 65px #14283e14}
.login-layout{display:grid;grid-template-columns:1fr 1fr;background:#fffdf9}
.login-welcome{display:flex;flex-direction:column;justify-content:space-between;padding:44px 48px;min-width:0}
.login-brand{display:flex;align-items:center;gap:15px;text-decoration:none;color:#172d45;font-weight:750;font-size:12px;line-height:1.55;letter-spacing:1.6px;width:fit-content}
.login-monogram{font:42px/1 Georgia,serif;display:grid;place-items:center;width:60px;height:66px;border:1px solid #bc9858;color:#a77d32;border-radius:14px}
.login-message{padding:50px 0 46px}
.login-eyebrow{font-size:10px;letter-spacing:2px;font-weight:750;color:#95743d;margin:0 0 18px}
.family-app .login-message h2{font:400 clamp(48px,5.4vw,72px)/1.02 Georgia,serif;letter-spacing:-2px;margin:0 0 24px;color:#14283e}
.login-tagline{font-size:18px;font-weight:550;line-height:1.55;margin:0 0 14px;color:#253e57}
.login-description{font-size:15px;color:#65707a;line-height:1.8;margin:0 0 30px}
.login-cta{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:345px;width:100%;background:#d8b66f;color:#172d45;padding:16px 20px;border:1px solid #c9a358;border-radius:12px;min-height:56px;font-size:14px;box-shadow:0 4px 10px #c29d5320;transition:background .15s}
.login-cta:hover{background:#e4c689}.login-cta>span{font-size:23px;line-height:1}.login-access{font-size:12px;color:#77828b;margin:14px 0 0}
.login-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:11px;color:#8a9096}.login-footer a{color:#596977;text-underline-offset:3px}
.login-photo{margin:0;background:#dde4dc;min-width:0;position:relative;aspect-ratio:3/4}
.login-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center bottom}
@media(max-width:850px) and (min-width:641px){.login-welcome{padding:30px}.login-message{padding:32px 0}.family-app .login-message h2{font-size:54px}.login-tagline{font-size:16px}.login-description{font-size:14px}.login-cta{font-size:13px;padding:14px}.login-footer{font-size:10px;flex-wrap:wrap}}
@media(max-width:640px){.family-app.is-signed-out main{min-height:100svh;padding:18px 14px 28px;align-items:start}.family-app .login-card{border-radius:20px;max-width:460px}.login-layout{grid-template-columns:1fr}.login-photo{grid-row:1;aspect-ratio:4/3}.login-welcome{padding:26px 26px 22px}.login-brand{font-size:10px;gap:12px;letter-spacing:1.4px}.login-monogram{width:43px;height:47px;font-size:30px;border-radius:10px}.login-message{padding:28px 0 24px}.login-eyebrow{font-size:9px;letter-spacing:1.6px;margin-bottom:12px}.family-app .login-message h2{font-size:46px;letter-spacing:-1.3px;margin-bottom:14px}.login-tagline{font-size:16px;margin-bottom:10px}.login-description{font-size:14px;margin-bottom:22px;line-height:1.65}.login-cta{max-width:none;min-height:54px}.login-access{margin-top:12px}.login-footer{font-size:10px;gap:10px}}
@media(prefers-reduced-motion:reduce){.login-cta{transition:none}}

.electricity-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:1rem 0}.electricity-metric{background:#0d213b;color:#fff;border-radius:10px;padding:1.1rem;display:flex;flex-direction:column;gap:.5rem}.electricity-metric strong{font-size:1.55rem;color:#ecc76c}.electricity-metric small{font-size:.875rem;color:#d5dfec}.electricity-table{overflow:auto;margin:1rem 0}.electricity-table table{width:100%;border-collapse:collapse;font-size:.9rem}.electricity-table th,.electricity-table td{padding:.75rem;text-align:left;border-bottom:1px solid #d9e0e8;vertical-align:top}.electricity-table th{background:#edf2f8;color:#0d213b}.electricity-table th{min-width:6rem}#electricity-bills details{border-bottom:1px solid #d9e0e8;padding:1rem 0}#electricity-bills summary{font-size:1rem;cursor:pointer;font-weight:600}.electricity-chart-row{display:grid;grid-template-columns:7rem minmax(4rem,1fr) 14rem;gap:1rem;align-items:center;margin:.6rem 0;font-size:.9rem}.electricity-chart-row meter{width:100%;height:1.5rem}.electricity-callout{border-left:4px solid #bf923c;background:#fff6d9;padding:1rem}.electricity-offer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;padding-top:1rem}.electricity-offer-grid label{display:flex;flex-direction:column;gap:.4rem}.electricity-offer-grid .electricity-confirm-label{grid-column:1/-1;display:block}.electricity-confirm-label input{width:auto;display:inline-block}#view-electricity .card{margin-bottom:1.5rem}#view-electricity textarea{width:100%;box-sizing:border-box}#view-electricity summary{cursor:pointer}#view-electricity input,#view-electricity select{max-width:100%}@media(max-width:1000px){.electricity-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.electricity-metrics,.electricity-offer-grid{grid-template-columns:1fr}.electricity-chart-row{grid-template-columns:6rem 1fr}.electricity-chart-row span:last-child{grid-column:2}.electricity-metric strong{font-size:1.4rem}}
/* Measured electricity insights. Text values and exact periods accompany every bar. */
.energy-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:22px 0}.energy-summary{border:1px solid #dce3ea;border-radius:12px;padding:18px;background:#f5f7fa}.energy-summary>span{font-size:.85rem;color:#536276}.energy-summary>strong{display:block;font-size:1.7rem;color:#172d45;margin:9px 0}.energy-summary p{font-size:.85rem;line-height:1.5;margin:0;color:#475569}.energy-bar-row{padding:14px 0;border-bottom:1px solid #e0e5eb}.energy-bar-row>strong{display:block;font-size:.95rem;margin-bottom:10px}.energy-bar-line{display:grid;grid-template-columns:110px minmax(60px,1fr) 140px;gap:12px;align-items:center;margin:8px 0;font-size:.85rem}.energy-bar-line b{text-align:right;font-variant-numeric:tabular-nums}.energy-bar-track{height:20px;background:#edf1f5;border-radius:4px;overflow:hidden}.energy-bar{height:100%;border-radius:4px}.energy-bar.previous{background:#8594a6}.energy-bar.recent{background:#b18b45}.energy-legend{display:flex;gap:22px;margin:16px 0;font-size:.85rem}.energy-legend span:before{content:'';display:inline-block;width:12px;height:12px;margin-right:8px;background:#8594a6}.energy-legend span:last-child:before{background:#b18b45}.energy-scenario-controls{display:flex;gap:24px;flex-wrap:wrap}.energy-scenario-controls label{display:flex;flex-direction:column;gap:10px;min-width:230px}.energy-scenario-controls input{width:100%;accent-color:#b18b45}#electricity-insights-takeaways li{margin:12px 0;line-height:1.65}#view-electricity h3{margin-top:30px}#electricity-cost-drivers>p{line-height:1.6}@media(max-width:1050px){.energy-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.energy-summary-grid{grid-template-columns:1fr}.energy-bar-line{grid-template-columns:85px minmax(30px,1fr) 104px;gap:8px;font-size:.78rem}.energy-summary>strong{font-size:1.6rem}}
