:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:#1d2925;background:#f4f6f5}*{box-sizing:border-box}body{margin:0;background:#f4f6f5}a{color:#2f6f63;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-columns:240px 1fr}.sidebar{background:#173b35;color:#fff;padding:26px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:11px;color:#fff;font-size:18px;margin:0 8px 36px}.brand span,.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:#e4a853;color:#173b35;font-weight:800}.nav-label{text-transform:uppercase;letter-spacing:.12em;font-size:10px;color:#93b5ae;margin:0 10px 10px}.sidebar nav{display:grid;gap:4px}.sidebar nav a{padding:11px 12px;border-radius:9px;color:#cde0dc;font-size:14px}.sidebar nav a:hover,.sidebar nav a.active{background:#285249;color:#fff}.logout{margin-top:auto}.logout button{width:100%;border:1px solid #53756e;background:transparent;color:#d9e8e5;padding:10px;border-radius:9px}.topbar{height:65px;background:#fff;border-bottom:1px solid #e0e6e3;display:flex;align-items:center;justify-content:flex-end;gap:20px;padding:0 34px;color:#65736e;font-size:13px}.avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#d8e7e3;color:#245b51;font-weight:700}.content{max-width:1440px;margin:auto;padding:34px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.page-heading h1{font-size:28px;margin:0 0 5px}.page-heading p{margin:0;color:#697873}.btn{border:1px solid #cad5d1;background:#fff;color:#264e47;border-radius:8px;padding:9px 14px;font-weight:650;display:inline-block}.btn:hover{border-color:#2f6f63}.btn.primary,.nanny-primary{background:#2f6f63;color:#fff;border-color:#2f6f63}.btn.small{padding:6px 10px;font-size:12px}.wide{width:100%;text-align:center}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.metric{background:#fff;border:1px solid #e0e6e3;border-radius:13px;padding:20px;box-shadow:0 2px 8px #183b3508;display:flex;flex-direction:column;gap:6px}.metric span{color:#64736e;font-size:13px}.metric strong{font-size:25px}.metric small{color:#8b9995}.metric.accent{background:#f8f2e6;border-color:#ead9b7}.metric-grid.compact .metric{padding:16px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-layout{grid-template-columns:minmax(280px,380px) 1fr;align-items:start}.panel{background:#fff;border:1px solid #e0e6e3;border-radius:13px;padding:20px;box-shadow:0 2px 8px #183b3508;margin-bottom:20px;overflow:auto}.panel h2{font-size:17px;margin:0 0 18px}.panel h3{font-size:15px}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:10px}.panel-title h2{margin:0}.account-row,.bill-row,.shift-row{display:flex;align-items:center;gap:13px;padding:13px 4px;border-bottom:1px solid #edf0ef;color:inherit}.account-row:last-child,.bill-row:last-child,.shift-row:last-child{border:0}.account-row>span:nth-child(1),.bill-row>span:nth-child(2),.shift-row>span:nth-child(2){display:flex;flex-direction:column;gap:3px;flex:1}.account-row small,.bill-row small,.shift-row small{color:#7d8985}.date-tile{width:43px;height:43px;border-radius:9px;background:#edf4f2;display:flex!important;align-items:center;justify-content:center;flex-direction:column;line-height:1}.date-tile small{font-size:10px;text-transform:uppercase;margin-top:4px}.empty{text-align:center;color:#72807c;padding:28px 12px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}label{display:flex;flex-direction:column;gap:6px;color:#43524d;font-size:13px;font-weight:650;margin-bottom:13px}input,select,textarea{width:100%;border:1px solid #cbd6d2;border-radius:8px;background:#fff;padding:9px 10px;color:#1d2925}input:focus,select:focus,textarea:focus{outline:2px solid #9cc5bb;border-color:#4c8b7d}textarea{min-height:82px}.check{flex-direction:row;align-items:center;font-weight:500}.check input{width:auto}hr{border:0;border-top:1px solid #e5e9e7;margin:22px 0}.toolbar{display:flex;gap:15px;align-items:end;margin-bottom:15px}.toolbar label{min-width:210px;margin:0}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;color:#6d7a76;font-size:11px;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid #dde4e1;padding:10px 8px}td{padding:12px 8px;border-bottom:1px solid #edf0ef}.money{text-align:right!important;font-variant-numeric:tabular-nums}.positive{color:#257157}.negative{color:#bd4c42}.badge{display:inline-block;background:#edf2f0;color:#54645f;border-radius:999px;padding:4px 8px;font-size:10px;text-transform:uppercase;letter-spacing:.03em}.badge.paid,.badge.approved{background:#e0f0e9;color:#226148}.badge.overdue,.badge.rejected{background:#f8e2df;color:#9a3f38}.alert{padding:11px 13px;border-radius:8px;margin:12px 0;font-size:13px}.alert.error{background:#fbe7e4;color:#9c3931}.alert.success{background:#e2f2eb;color:#226148}.muted{color:#73817d}.month-nav{display:flex;gap:13px;align-items:center;background:#fff;border:1px solid #dce4e1;border-radius:9px;padding:5px}.month-nav button{border:0;background:transparent;font-size:20px;color:#315e55}.money-input{max-width:115px;text-align:right;padding:6px}.progress{width:100px;height:6px;background:#e9eeec;border-radius:99px;overflow:hidden;display:inline-block;margin-right:8px}.progress i{display:block;height:100%;background:#e4a853}.nanny-hero{background:linear-gradient(135deg,#e7f3ef,#f8f2e6);border-radius:18px;padding:34px;margin-bottom:20px}.nanny-hero h1{font-size:34px;margin:6px 0}.nanny-hero p{color:#60706b;margin:0 0 20px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:#397568;font-size:11px;font-weight:750}.nanny-primary{background:#b8674d;border-color:#b8674d}.time-card{max-width:540px}.calculated{background:#eef5f3;border-radius:10px;padding:16px;display:flex;justify-content:space-between;margin:15px 0}.reconcile-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0}.reconcile-summary>div{background:#fff;border:1px solid #dce4e1;border-radius:10px;padding:15px;display:flex;flex-direction:column}.reconcile-summary strong{font-size:20px}.reconcile-summary .balanced{background:#e5f3ed}.reconcile-summary .difference{background:#f9e8e5}.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.donut{width:210px;height:210px;border-radius:50%;margin:20px auto;display:grid;place-items:center;position:relative}.donut:after{content:"";position:absolute;width:120px;height:120px;background:#fff;border-radius:50%}.donut>div{z-index:1;text-align:center;display:flex;flex-direction:column}.donut strong{font-size:21px}.donut small{color:#71807b}.legend>div{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:9px;padding:7px}.legend i{width:9px;height:9px;border-radius:3px}.bars{height:270px;display:flex;align-items:end;gap:12px;padding-top:20px}.bar-col{height:100%;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px}.bar-col span{width:70%;min-height:3px;background:#4d877a;border-radius:6px 6px 0 0}.bar-col small{color:#74827e}.bar-col b{font-size:10px}.category-group{padding:12px 0;border-bottom:1px solid #e7ecea;display:flex;flex-direction:column;gap:5px}.category-group span{color:#74817d;font-size:13px}.note code{background:#eef2f1;padding:2px 5px;border-radius:4px}.login-body{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#173b35,#2f6f63)}.login-card{background:#fff;padding:34px;border-radius:16px;width:min(92vw,390px);box-shadow:0 24px 70px #0a211c66}.login-card h1{margin-bottom:5px}.login-card .brand-mark{margin-bottom:20px}.validation-message{color:#ad3f37;font-size:12px}#blazor-error-ui{display:none;position:fixed;bottom:0;width:100%;background:#f8df9d;padding:10px;z-index:999}
@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;padding:14px}.brand{margin:0 0 12px}.sidebar nav{display:flex;overflow:auto}.sidebar nav a{white-space:nowrap}.nav-label{display:none}.logout{position:absolute;right:14px;top:14px}.logout button{width:auto}.topbar{display:none}.content{padding:20px}.metric-grid{grid-template-columns:1fr 1fr}.two-col,.form-layout{grid-template-columns:1fr}}@media(max-width:560px){.content{padding:14px}.metric-grid{grid-template-columns:1fr}.page-heading{align-items:flex-start;flex-direction:column}.field-grid{grid-template-columns:1fr}.toolbar{flex-direction:column;align-items:stretch}.reconcile-summary{grid-template-columns:1fr}.panel{padding:14px}.ledger-panel{overflow-x:auto}.nanny-hero{padding:24px}}

.btn.danger{color:#a13f37;border-color:#e8c2bd}.icon-btn{display:inline-grid;place-items:center;width:32px;height:32px;padding:0;font-size:18px;line-height:1}.actions-cell{display:flex;align-items:center;justify-content:flex-end;gap:6px;min-height:32px;white-space:nowrap}td.actions-cell{display:table-cell;min-height:0;text-align:right;vertical-align:middle}td.actions-cell>*{margin-left:6px;vertical-align:middle}td.actions-cell>:first-child{margin-left:0}.transactions-table td{vertical-align:middle}.status-toggle{border:0;font:inherit;cursor:pointer}.status-toggle:disabled{cursor:not-allowed;opacity:.65}

.account-row>a{display:flex;flex-direction:column;gap:3px;flex:1;color:inherit}

.row-actions{display:flex;gap:6px;align-items:center}

.urgent-panel{border-color:#e5a89f;background:#fff9f8}.urgent-panel h2{color:#963c34}.danger-tile{background:#f8e2df;color:#9a3f38}.urgent-row{background:#fff9f8}.notice-form{max-width:720px}

.account-section-label{margin:18px 4px 4px;padding-top:12px;border-top:1px solid #dfe6e3;color:#74817d;font-size:10px;font-weight:750;letter-spacing:.1em;text-transform:uppercase}.grouped-account{background:#fafcfb;margin:0 -6px;padding-left:10px;padding-right:10px;border-radius:8px}

.monthly-check .panel-title{align-items:flex-start}.monthly-check .panel-title p{margin:4px 0 0}.review-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.review-item{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #dde5e2;border-radius:10px;padding:13px}.review-item>span:first-child{display:flex;flex-direction:column;gap:3px}.review-item small{color:#7b8884}.review-item.complete{background:#f2f8f5;border-color:#cde4da}.review-item.pending{background:#fffaf2;border-color:#ead9b7}.review-status{color:#28705a;font-size:12px;font-weight:650}

.reminder-panel{border-color:#e8cf9f;background:#fffdf8}.reminder-panel h2{color:#78571e}

.category-tree-cell{padding-inline-start:calc(8px + var(--category-depth,0) * 22px)}.category-branch{color:#8a9994;margin-right:7px;font-weight:400}

.savings-account-report{padding:14px 0;border-bottom:1px solid #e7ecea}.savings-account-report:last-child{border-bottom:0}.savings-report-values{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0}.savings-report-values span{display:flex;flex-direction:column;color:#74817d;font-size:12px}.savings-report-values b{color:#273630;font-size:14px;margin-top:2px}.savings-progress{width:100%;margin:7px 0}.savings-progress i{background:#2f6f63}

.entry-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;background:#edf2f0;border-radius:10px;padding:4px;margin-bottom:20px}.entry-tab{border:0;background:transparent;color:#61716c;border-radius:7px;padding:9px 7px;font-size:12px;font-weight:700}.entry-tab.active{background:#fff;color:#245b51;box-shadow:0 1px 4px #173b3518}

.review-item[href]{color:inherit}.review-item[href]:hover{border-color:#9bbfb6;background:#f5faf8}.review-link{color:#2f6f63;font-size:12px;font-weight:700;white-space:nowrap}.account-ledger-heading>div:first-child{display:flex;flex-direction:column;gap:3px}.account-ledger-heading h2{margin:0}.account-ledger-actions{display:flex;align-items:center;gap:10px}

/* Savings and budget report summaries */
.report-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin-bottom:1rem}
.report-summary-grid>div{background:var(--surface-soft,#f5f7f6);border-radius:.65rem;padding:.7rem .8rem}
.report-summary-grid span,.report-summary-grid strong{display:block}
.report-summary-grid span{font-size:.78rem;color:var(--muted,#64706c);margin-bottom:.2rem}
.savings-status-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 0;border-top:1px solid var(--border,#dfe5e2)}
.savings-status-row>span,.budget-source-note{display:block}
.savings-status-row small{display:block;margin-top:.15rem}
.budget-source-note{margin-top:.15rem}
@media(max-width:700px){.overview-reports{grid-template-columns:1fr}.savings-status-row{align-items:flex-start;flex-direction:column;gap:.25rem}}

/* Removed-category recovery countdown */
.deletion-countdown{color:var(--danger,#a33b32);font-weight:600;margin-top:.25rem}

/* Income and pay schedules */
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.table-scroll{overflow-x:auto}
.income-schedule-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 0;border-top:1px solid var(--border,#dfe5e2)}
.income-schedule-row>span:first-child,.income-status{display:block}
.income-schedule-row small{display:block;margin-top:.15rem}
.income-schedule-actions{display:flex;align-items:center;justify-content:flex-end;gap:.45rem;flex-wrap:wrap}
.income-schedule-actions .money-input{width:8rem}
@media(max-width:700px){.form-grid{grid-template-columns:1fr}.income-schedule-row{align-items:flex-start;flex-direction:column}.income-schedule-actions{justify-content:flex-start}}

/* Working balances and scheduled payments */
.account-balance-pair{display:flex;flex-direction:column;align-items:flex-end;gap:.2rem;white-space:nowrap}
.account-balance-pair small{display:block}
.scheduled-payment-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.8rem;padding:.7rem 0;border-top:1px solid var(--border,#dfe5e2)}
.scheduled-payment-row small{display:block;margin-top:.15rem}
.cashflow-warning{border-color:var(--danger,#a33b32)!important;background:#fff4f2!important}
.cashflow-warning .review-link,.cashflow-warning b{color:var(--danger,#a33b32)}
@media(max-width:700px){.scheduled-payment-row{grid-template-columns:1fr}.account-balance-pair{align-items:flex-start}}

/* Savings goal recalibration */
.recalibration-note{display:block;color:var(--accent,#2f6f63);font-weight:600;margin-top:.25rem}
.recalibration-form{border-color:var(--accent,#2f6f63)}

/* Site-wide responsive foundation */
html{min-width:0;overflow-x:hidden}
body{min-width:0;overflow-wrap:anywhere}
img,svg,canvas,video{max-width:100%;height:auto}
.app-shell,.app-shell>main,.content,.panel,.two-col>*,.metric-grid>*,.field-grid>*,.form-grid>*{min-width:0}
.app-shell>main{width:100%}
.content{width:100%}
.page-heading>div:first-child,.panel-title>div:first-child,.account-row>a,.account-row>span:first-child,.bill-row>span,.shift-row>span{min-width:0}
.page-heading p,.panel p,.account-row small,.bill-row small,.shift-row small{overflow-wrap:anywhere}
.row-actions,.actions,.panel-title{flex-wrap:wrap}
.table-scroll{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
table{min-width:600px}
th,td{vertical-align:middle}
th.money,td.money,.badge{white-space:nowrap}
input[type="checkbox"],input[type="radio"]{width:auto;flex:0 0 auto}
.form-page,.transaction-entry-page{width:100%;max-width:760px}
.donut{max-width:100%;aspect-ratio:1;height:auto}
.category-tree-cell{padding-inline-start:min(calc(8px + var(--category-depth,0) * 22px),25vw)}

@media(max-width:900px){
    .sidebar{position:sticky;top:0;z-index:100;height:auto;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px 14px;box-shadow:0 2px 10px #102d2826}
    .brand{min-width:0;margin:0}
    .brand strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .sidebar nav{grid-column:1/-1;width:100%;display:flex;gap:4px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;padding-bottom:2px}
    .sidebar nav a{flex:0 0 auto;white-space:nowrap}
    .logout{position:static;margin:0;align-self:center}
    .logout button{min-height:40px;width:auto}
    .content{padding:20px}
    .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .two-col,.form-layout{grid-template-columns:minmax(0,1fr)}
}

@media(max-width:700px){
    .page-heading{align-items:flex-start;flex-direction:column;gap:14px;margin-bottom:18px}
    .page-heading>div,.page-heading>.row-actions,.page-heading>.month-nav{max-width:100%}
    .page-heading>.row-actions{width:100%}
    .panel-title{align-items:flex-start}
    .account-row,.bill-row,.shift-row{align-items:center;flex-wrap:wrap}
    .account-row>.row-actions,.bill-row>.row-actions,.shift-row>.row-actions{flex:1 0 100%}
    .account-row>.row-actions .btn,.bill-row>.row-actions .btn,.shift-row>.row-actions .btn{flex:1 1 auto;text-align:center}
    .actions{justify-content:flex-start}
    .actions .btn{flex:1 1 12rem;text-align:center}
    .toolbar label{min-width:0;width:100%}
    .calculated{align-items:flex-start;flex-direction:column;gap:6px}
    .bars{min-width:420px}
    .review-grid{grid-template-columns:minmax(0,1fr)}
    .review-item{align-items:center;flex-wrap:wrap}
    .savings-report-values,.report-summary-grid{grid-template-columns:minmax(0,1fr)}
}

@media(max-width:560px){
    .content{padding:14px 10px}
    .sidebar{padding:10px}
    .brand span{width:32px;height:32px}
    .brand strong{font-size:16px}
    .sidebar nav a{padding:10px;font-size:13px}
    .page-heading h1{font-size:24px}
    .metric-grid{grid-template-columns:minmax(0,1fr);gap:10px}
    .metric strong{font-size:22px}
    .panel{padding:14px 12px;border-radius:10px}
    .field-grid,.form-grid{grid-template-columns:minmax(0,1fr)}
    .row-actions{width:100%}
    .page-heading>.btn{align-self:stretch;text-align:center}
    .page-heading>.row-actions .btn{flex:1 1 auto;text-align:center}
    .month-nav{width:100%;justify-content:space-between}
    .entry-tabs{grid-template-columns:minmax(0,1fr)}
    .entry-tab{min-height:40px}
    .nanny-hero{padding:20px 16px}
    .nanny-hero h1{font-size:28px}
    .donut{width:min(210px,70vw)}
    .legend>div{grid-template-columns:12px minmax(0,1fr) auto;padding-inline:0}
    .login-body{padding:12px}
    .login-card{width:100%;padding:24px 18px}
    table{min-width:560px}
}

@media(max-width:380px){
    .brand strong{display:none}
    .btn{padding-inline:10px}
    .content{padding-inline:8px}
    .panel{padding-inline:10px}
}

/* Accessible collapsible navigation and mobile touch sizing */
.sidebar-header{min-width:0}
.sidebar-navigation{display:flex;flex:1;min-height:0;flex-direction:column}
.menu-toggle{display:none;width:42px;height:42px;border:1px solid #53756e;border-radius:9px;background:transparent;place-items:center;padding:9px}
.menu-toggle span{display:block;width:20px;height:2px;margin:2px 0;border-radius:2px;background:#fff}
.menu-toggle:focus-visible,.sidebar nav a:focus-visible,.btn:focus-visible{outline:3px solid #e4a853;outline-offset:2px}
.date-tile{flex:0 0 43px}
.panel{max-width:100%;overscroll-behavior-inline:contain}
input,select,textarea{min-width:0}
input:not([type="checkbox"]):not([type="radio"]),select{height:38px;line-height:1.25}
@media(max-width:900px){
    .sidebar{display:block}
    .sidebar-header{display:flex;align-items:center;justify-content:space-between;gap:12px}
    .menu-toggle{display:grid;flex:0 0 42px}
    .sidebar-navigation{display:none;max-height:calc(100vh - 72px);overflow-y:auto;padding-top:10px}
    .sidebar-navigation.open{display:flex}
    .sidebar nav{grid-column:auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));width:100%;overflow:visible;padding:0 0 8px}
    .sidebar nav a{white-space:normal;text-align:center}
    .nav-label{display:block;margin:8px 8px 6px}
    .logout{margin-top:8px}
    .logout button{width:100%;min-height:44px}
}
@media(max-width:560px){
    input,select,textarea{min-height:44px;font-size:16px}
    textarea{min-height:96px}
    .btn:not(.small),button:not(.small){min-height:42px}
    .sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:380px){
    .sidebar nav{grid-template-columns:minmax(0,1fr)}
}

/* Property list */
.property-summary{display:flex;min-width:0;flex-direction:column;gap:3px;color:inherit}
.property-summary small{color:var(--muted,#73817d);font-weight:400}

/* Dashboard checking and savings balance table */
.dashboard-account-table{min-width:430px;table-layout:fixed}
.dashboard-account-table th:first-child,.dashboard-account-table td:first-child{width:44%}
.dashboard-account-table th.money,.dashboard-account-table td.money{width:28%;white-space:nowrap}
.dashboard-account-table td>a{display:flex;min-width:0;flex-direction:column;gap:3px;color:inherit}
.dashboard-account-table td>a small{color:#7d8985}
.account-table-empty{margin:12px 4px 18px}
@media(max-width:560px){
    .dashboard-account-table{min-width:390px;font-size:12px}
    .dashboard-account-table th,.dashboard-account-table td{padding-inline:6px}
}

/* Dashboard reminders for pay awaiting actual amounts */
.pay-reminder{border-color:#e8cf9f;background:#fffdf8}
.pay-reminder b{color:#78571e}
.pay-occurrence-row:target{background:#fff8e8;outline:2px solid #e4a853;outline-offset:-2px}

/* Routed report tabs */
.report-tabs{display:flex;gap:4px;margin:0 0 20px;padding:4px;background:#e7eeeb;border:1px solid #d9e3df;border-radius:11px;overflow-x:auto;overscroll-behavior-inline:contain}
.report-tabs a{flex:1 0 auto;min-width:120px;padding:10px 14px;border-radius:8px;color:#50635d;text-align:center;font-size:13px;font-weight:700;white-space:nowrap}
.report-tabs a:hover{background:#f5f8f7;color:#245b51}
.report-tabs a.active{background:#fff;color:#245b51;box-shadow:0 1px 5px #173b351c}

.report-chart-layout{align-items:center}
.report-chart-layout .legend{align-self:stretch;display:flex;flex-direction:column;justify-content:center}

@media(max-width:560px){.report-tabs a{min-width:auto;padding-inline:11px}.report-tabs{margin-inline:-2px}.report-chart-layout{grid-template-columns:minmax(0,1fr)}}

/* Cash flow comparison report */
.cash-flow-key{display:flex;align-items:center;gap:14px;color:#73817d;font-size:12px;white-space:nowrap}
.cash-flow-key span{display:flex;align-items:center;gap:6px}.cash-flow-key i{width:10px;height:10px;border-radius:3px}
.cash-flow-key .income,.cash-flow-pair .income{background:#4d9a7c}.cash-flow-key .expense,.cash-flow-pair .expense{background:#c76d5d}
.cash-flow-chart-scroll{width:100%;overflow-x:auto;overscroll-behavior-inline:contain;padding:12px 0 4px}
.cash-flow-chart{display:grid;grid-template-columns:repeat(6,minmax(82px,1fr));gap:14px;min-width:620px;height:300px}
.cash-flow-month{display:grid;grid-template-rows:minmax(0,1fr) 20px 22px;min-width:0;text-align:center}
.cash-flow-pair{display:flex;align-items:flex-end;justify-content:center;gap:8px;height:100%;border-bottom:1px solid #52625d}
.cash-flow-pair i{display:block;width:min(30px,38%);min-height:0;border-radius:5px 5px 0 0}
.cash-flow-pair i:hover{filter:brightness(1.15)}.cash-flow-month strong{padding-top:5px;font-size:12px}.cash-flow-month small{font-size:10px}
@media(max-width:560px){.cash-flow-chart{min-width:560px;height:260px}.cash-flow-key{width:100%}.panel-title:has(.cash-flow-key){align-items:flex-start;flex-direction:column}}
/* Main navigation groups and bottom utility area */
.nav-spacer{display:block;height:1px;margin:7px 8px;background:#41675f}
.utility-nav{margin-top:auto;padding-top:10px;border-top:1px solid #41675f}.sidebar .utility-nav a{text-align:center}
.sidebar-navigation:has(.utility-nav) .logout{margin-top:8px}
@media(max-width:900px){
    .nav-spacer{grid-column:1/-1;width:auto}
    .sidebar .utility-nav{grid-template-columns:minmax(0,1fr);margin-top:8px;padding-top:10px}
    .sidebar .utility-nav a{width:100%}
}

/* Trailing-year weekly nanny cost chart */
.weekly-cost-chart-scroll{width:100%;overflow-x:auto;overscroll-behavior-inline:contain;padding:8px 0 4px}
.weekly-cost-chart{display:flex;align-items:stretch;gap:4px;min-width:1040px;height:310px;padding-top:18px}
.weekly-cost-bar{display:grid;grid-template-rows:24px minmax(0,1fr) 20px;flex:1;min-width:16px;text-align:center}
.weekly-cost-value{font-size:9px;color:#61716c;transform:rotate(-55deg);transform-origin:center;white-space:nowrap}
.weekly-cost-track{display:flex;align-items:flex-end;width:100%;height:100%;border-bottom:1px solid #cfdad6}
.weekly-cost-track i{display:block;width:100%;min-height:0;border-radius:4px 4px 0 0;background:#4d877a}
.weekly-cost-bar:hover .weekly-cost-track i{background:#e4a853}
.weekly-cost-bar small{padding-top:4px;color:#74827e;font-size:10px}
.weekly-cost-detail{margin-top:16px}
details>summary{cursor:pointer;color:#2f6f63}
@media(max-width:560px){.weekly-cost-chart{min-width:900px;height:270px}.weekly-cost-value{display:none}}

.transaction-kind-fieldset{border:0;padding:0;margin:0 0 24px}.transaction-kind-fieldset legend{color:#43524d;font-size:13px;font-weight:750;margin-bottom:9px}.transaction-kind-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.transaction-kind-option{flex-direction:row;align-items:flex-start;gap:9px;margin:0;padding:12px;border:1px solid #cbd6d2;border-radius:10px;background:#fff;cursor:pointer}.transaction-kind-option:has(input:checked){border-color:#2f6f63;background:#edf5f2;box-shadow:0 0 0 1px #2f6f63}.transaction-kind-option input{margin-top:3px}.transaction-kind-option span{display:flex;flex-direction:column;gap:2px}.transaction-kind-option small{color:#73817d;font-weight:500}.transaction-kind-option:has(input:disabled){cursor:default;opacity:.75}.bill-kind-options{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:700px){.transaction-kind-options{grid-template-columns:1fr}}
.general-savings-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.general-savings-summary>span{display:flex;flex-direction:column;gap:4px;padding:12px;background:#f4f8f6;border-radius:9px;color:#66756f;font-size:12px}.general-savings-summary strong{color:#1d2925;font-size:17px}.general-savings-summary small{grid-column:1/-1}.savings-spending-form{border-color:#c9ddd7}
@media(max-width:700px){.general-savings-summary{grid-template-columns:1fr}.general-savings-summary small{grid-column:auto}}

/* Dark application theme */
:root{
    color-scheme:dark;
    --page-bg:#0d1513;
    --sidebar-bg:#0a211c;
    --surface:#17231f;
    --surface-raised:#1c2b26;
    --surface-soft:#22342e;
    --border:#344a42;
    --border-strong:#49655b;
    --text:#edf5f2;
    --muted:#9aada6;
    --accent:#78c9b5;
    --accent-strong:#3d8b79;
    --gold:#e4b45d;
    --success:#76d0a5;
    --warning:#e5b862;
    --danger:#ff9188;
    /* Compatibility aliases used by component-scoped theme styles. */
    --panel:var(--surface);
    --background:var(--page-bg);
    color:var(--text);
    background:var(--page-bg)
}
html,body{background:var(--page-bg);color:var(--text)}
body{accent-color:var(--accent)}
a,.review-link,details>summary{color:var(--accent)}
.app-shell>main{background:linear-gradient(145deg,#101a17 0%,var(--page-bg) 48%,#111c19 100%)}
.sidebar{background:var(--sidebar-bg);box-shadow:4px 0 24px #0005}
.sidebar nav a{color:#b9d2cb}
.sidebar nav a:hover,.sidebar nav a.active{background:#21493f;color:#fff}
.nav-label{color:#83a79d}.nav-spacer,.utility-nav{border-color:#31584e}.nav-spacer{background:#31584e}
.topbar{background:#121f1b;border-color:var(--border);color:var(--muted)}
.avatar{background:#29473f;color:#bce6db}
.page-heading p{color:var(--muted)}
.panel,.metric,.login-card{background:var(--surface);border-color:var(--border);color:var(--text);box-shadow:0 8px 24px #0003}
.metric span,.metric small,.empty,.muted,.account-row small,.bill-row small,.shift-row small,.income-schedule-row small,.scheduled-payment-row small,.weekly-cost-value,.weekly-cost-bar small{color:var(--muted)}
.metric.accent{background:linear-gradient(145deg,#2f3023,#232b22);border-color:#6e633d}
.btn{background:var(--surface-raised);border-color:var(--border-strong);color:var(--text)}
.btn:hover{background:#253a33;border-color:var(--accent);color:#fff}
.btn.primary,.nanny-primary{background:var(--accent-strong);border-color:#5cae9b;color:#fff}
.btn.primary:hover,.nanny-primary:hover{background:#4a9c89}
.btn.danger{background:#3b2221;border-color:#74423f;color:var(--danger)}
label,.transaction-kind-fieldset legend{color:#c6d5d0}
input,select,textarea{background:#101a17;border-color:var(--border-strong);color:var(--text)}
input::placeholder,textarea::placeholder{color:#70847e}
input:focus,select:focus,textarea:focus{outline-color:#5a9e8f;border-color:var(--accent)}
input:disabled,select:disabled,textarea:disabled,input[readonly]{background:#141e1b;color:#879a94;opacity:1}
select option{background:#101a17;color:var(--text)}
hr,th,td,.account-row,.bill-row,.shift-row,.category-group,.income-schedule-row,.scheduled-payment-row,.savings-account-report,.savings-status-row{border-color:var(--border)}
th{color:#a7bab4} tbody tr:hover{background:#1b2a25}
.positive{color:var(--success)}.negative,.validation-message,.deletion-countdown{color:var(--danger)}
.badge{background:#293b35;color:#c0d1cc}
.badge.paid,.badge.approved{background:#1d4437;color:#8ee0ba}
.badge.overdue,.badge.rejected{background:#492725;color:#ffaaa3}
.badge.due{background:#493b21;color:#f0c976}
.alert.error{background:#452321;color:#ffb0aa;border:1px solid #74403c}
.alert.success{background:#193f33;color:#91dfbc;border:1px solid #356d5a}
.month-nav{background:var(--surface);border-color:var(--border)}
.month-nav button{color:var(--accent)}
.date-tile{background:#243832;color:#cce4dd}
.progress{background:#2b3b36}.progress i,.savings-progress i{background:var(--gold)}
.nanny-hero{background:linear-gradient(135deg,#183b33,#3b3020);border:1px solid var(--border)}
.nanny-hero p{color:#afc0ba}.eyebrow{color:#91d5c4}
.calculated,.report-summary-grid>div,.general-savings-summary>span{background:var(--surface-soft);color:#a9bbb5}
.general-savings-summary strong,.savings-report-values b{color:var(--text)}
.reconcile-summary>div{background:var(--surface-raised);border-color:var(--border)}
.reconcile-summary .balanced{background:#193a30}.reconcile-summary .difference{background:#402321}
.donut:after{background:var(--surface)}.donut small,.bar-col small,.category-group span,.savings-report-values span{color:var(--muted)}
.note code{background:#253630;color:#c9d9d4}
.login-body{background:radial-gradient(circle at top,#214a40 0%,#0b1d19 48%,#070d0c 100%)}
#blazor-error-ui{background:#59431e;color:#fff0ca;border-top:1px solid #8a6b31}
.urgent-panel{border-color:#75433f;background:#291c1b}.urgent-panel h2{color:#ffaaa3}.danger-tile{background:#492725;color:#ffaaa3}.urgent-row{background:#261b1a}
.reminder-panel,.pay-reminder{border-color:#695b35;background:#272318}.reminder-panel h2,.pay-reminder b{color:#efc877}
.pay-occurrence-row:target{background:#332a18;outline-color:var(--gold)}
.grouped-account{background:#1b2925}.account-section-label{border-color:var(--border);color:var(--muted)}
.review-item{border-color:var(--border);background:var(--surface-raised)}
.review-item.complete{background:#19382f;border-color:#346352}.review-item.pending{background:#2b261b;border-color:#62552f}
.review-item[href]:hover{background:#21342e;border-color:#5d897d}.review-status{color:var(--success)}
.entry-tabs,.report-tabs{background:#111c19;border-color:var(--border)}
.entry-tab{color:var(--muted)}.entry-tab.active,.report-tabs a.active{background:#263a34;color:#aee1d5;box-shadow:0 2px 8px #0005}
.report-tabs a{color:#a5b7b1}.report-tabs a:hover{background:#20312c;color:#d7eee8}

.transaction-kind-option{background:var(--surface-raised);border-color:var(--border-strong);color:var(--text)}
.transaction-kind-option:has(input:checked){background:#203d35;border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.transaction-kind-option small{color:var(--muted)}
.cashflow-warning{background:#2c1d1c!important;border-color:#75433f!important}.cashflow-warning .review-link,.cashflow-warning b{color:var(--danger)}
.recalibration-note{color:var(--accent)}.recalibration-form,.savings-spending-form{border-color:#4f796e}
.weekly-cost-track{border-color:var(--border)}.weekly-cost-track i,.bar-col span{background:#4d9a88}
.menu-toggle{border-color:var(--border-strong)}
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:#101916}
::-webkit-scrollbar-thumb{background:#385249;border:2px solid #101916;border-radius:999px}
::-webkit-scrollbar-thumb:hover{background:#4c6d63}
/* Income source details */
.income-schedule-row>a{display:flex;min-width:0;flex:1;flex-direction:column;color:inherit}
.two-option-kind{grid-template-columns:repeat(2,minmax(0,1fr))}
.income-source-details>span{display:flex;flex-direction:column;gap:4px;padding:12px;background:var(--surface-soft,#f4f8f6);border-radius:9px}
.income-source-details small{color:var(--muted,#66756f)}
@media(max-width:700px){.two-option-kind{grid-template-columns:minmax(0,1fr)}}
/* Creditworthiness tracking and report */
.credit-person-selector .entry-tabs{margin:0}
.credit-person-selector label{max-width:360px;margin:0}
.credit-report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.credit-trend-panel{min-width:0}
.credit-chart-scroll{width:100%;overflow-x:auto;overscroll-behavior-inline:contain}
.credit-scatterplot{display:block;width:100%;min-width:520px;height:auto}
.credit-grid-line{stroke:var(--border);stroke-width:1;stroke-dasharray:5 5}
.credit-axis-label{fill:var(--muted);font-size:12px}
.credit-date-label{font-size:11px}
.credit-trend-line{fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;opacity:.8}
.credit-score-point{fill:var(--gold);stroke:var(--surface);stroke-width:3}
.credit-score-point:hover{fill:var(--accent)}
@media(max-width:900px){.credit-report-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:560px){.credit-scatterplot{min-width:470px}.credit-person-selector .entry-tabs{overflow-x:auto}.credit-person-selector .entry-tab{flex:1 0 auto}}
/* Admin and account workspaces */
.workspace-tabs{margin-bottom:18px}
.section-heading{margin:0 0 16px}.section-heading h2{margin-bottom:4px}.section-heading p{margin:0}
@media(max-width:560px){.workspace-tabs a{min-width:145px}}

/* Site-wide form, action, and feedback consistency */
.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.4rem;
    line-height:1.2
}
.block{display:block;margin-top:.2rem}
.form-panel{width:100%;max-width:760px}
.panel-title p{margin:.25rem 0 0}
.text-danger{color:var(--danger)!important}
.badge.danger{background:#492725;color:#ffaaa3}
.alert.note{
    margin:0 0 1rem;
    padding:.75rem 1rem;
    border:1px solid #695b35;
    border-radius:8px;
    background:#272318;
    color:#efc877
}
.danger-zone{
    margin-top:1.25rem;
    padding:1rem;
    border:1px solid #75433f;
    border-radius:10px;
    background:#291c1b
}
.danger-zone>:first-child{margin-top:0}
.danger-zone>:last-child{margin-bottom:0}
.validation-summary-errors{
    margin:0 0 1rem;
    padding:.75rem 1rem;
    border:1px solid #74403c;
    border-radius:8px;
    background:#452321;
    color:#ffb0aa
}
.validation-summary-errors ul{margin:0;padding-left:1.2rem}
:is(form,.panel,.empty)>.btn:last-child{margin-top:.5rem}
form>:is(.row-actions,.actions):last-child{margin-top:1rem}

@media(max-width:560px){
    .form-panel{max-width:none}
    form>:is(.row-actions,.actions):last-child>.btn{flex:1 1 auto}
}
