:root{--ink:#14213d;--blue:#2878f0;--blue-soft:#eaf2ff;--bg:#f5f7fb;--surface:#fff;--line:#e3e8f1;--muted:#6d788b;--shadow:0 12px 32px rgba(24,42,72,.09);--radius:16px}body{background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.dashboard{grid-template-columns:248px 1fr;background:var(--bg)}aside{background:linear-gradient(180deg,#071b35,#0a294c);padding:30px 16px;box-shadow:8px 0 30px #071b3522}.brand{font-family:Inter,ui-sans-serif,sans-serif;font-size:23px;font-weight:800;letter-spacing:-1.1px}.brand span{color:#4f8ef7;font-style:normal}aside p{margin:2px 10px 26px}.nav{border:0;border-radius:10px;padding:12px 13px;font-family:inherit;font-size:14px}.nav:hover{background:#183c66;color:#fff}.nav.on{background:linear-gradient(135deg,#165dc5,#257bf0);border-color:transparent;box-shadow:0 8px 16px #061b3744}.out{border-radius:10px}.profile-switch{border-top:1px solid #ffffff1f;padding-top:15px}.profile-switch button{border-radius:9px}.profile-switch button.active{background:#164d92;border-color:#2776df}main{max-width:1560px;padding:38px 42px 48px}header{border:0;padding-bottom:10px}header small,.ledger span,.summary span{color:#72809a;letter-spacing:.45px;font-size:11px}h1,h2{font-family:Inter,ui-sans-serif,sans-serif;font-weight:750;letter-spacing:-1.2px}h1{font-size:42px}.status{background:var(--surface);border:1px solid var(--line);padding:8px 12px;border-radius:9px;color:var(--muted);box-shadow:0 4px 12px #16253c08}.summary{gap:16px;border:0;background:transparent;margin:26px 0 28px}.summary article{min-height:150px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);padding:22px}.summary article:last-child{border:1px solid var(--line)}.summary strong{font-family:Inter,ui-sans-serif,sans-serif;font-size:29px;font-weight:800;letter-spacing:-1px}.summary small{color:var(--muted)}.chart{overflow:hidden}.bars{height:64px;gap:7px}.bars i{background:linear-gradient(180deg,#4d93fa,#2878f0);border-radius:5px 5px 2px 2px}.labels{color:#7c8799}.ledger{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;background:var(--surface)}.ledger-title{margin-bottom:12px}.ledger h2{font-size:26px}.hint{background:#f7f9fd;border-radius:8px;padding:9px 11px;margin:0 0 14px;color:var(--muted)}.matrix{border:1px solid var(--line);border-radius:11px;overflow:auto}table{min-width:1050px}th,td{border-bottom:1px solid var(--line);padding:14px 11px}thead th{background:#f8faff;color:#71809a;font-size:10px}th:first-child{min-width:190px;color:var(--ink)}.cell-edit{font-family:inherit;color:var(--ink)!important;font-weight:600}.cell-edit:hover,.cell-edit:focus{background:var(--blue-soft);outline:0;border-radius:6px}.total,.grand td,.grand th{background:#eff6ff!important;color:#1359bc!important}.year button{border-radius:8px;border:1px solid #d7e1ef;background:#fff;color:var(--blue);font-weight:700}.year b{font-family:inherit}.config-edit{border-radius:9px;border-color:#d6e1f0;color:var(--blue);box-shadow:0 3px 8px #1630520b}.admin-page{padding:38px 42px;background:var(--bg);max-width:1260px}.admin-section{border-radius:var(--radius);box-shadow:var(--shadow);border-color:var(--line)}.admin-actions button,.admin-back{border-radius:9px;background:linear-gradient(135deg,#1964d4,#2878f0);border:0}.admin-category{border-radius:10px;background:#f2f6fc}.admin-provider{border-radius:10px;border-color:var(--line)}@media(max-width:800px){.dashboard{display:block}.dashboard main{padding:72px 14px 30px}.dashboard header{padding:0 2px 14px}.dashboard h1{font-size:32px}.status{font-size:11px}.summary{gap:10px;margin:12px 0 18px}.summary article{min-height:0;border-radius:13px;padding:17px}.ledger{padding:16px 0;border-radius:14px}.ledger-title,.hint{margin-left:12px;margin-right:12px}.matrix{border-radius:0;border-left:0;border-right:0}.admin-page{padding:70px 14px 28px}}

/* Dashboard summary cards */
.dashboard.top-nav-mode main{padding-top:52px!important}
.dashboard.top-nav-mode .summary{grid-template-columns:minmax(0,1fr) minmax(280px,1.45fr) minmax(0,1fr);align-items:stretch;margin:16px 0 18px}
.dashboard.top-nav-mode .summary article{min-height:142px}
.dashboard.top-nav-mode .summary .category-card{display:flex;flex-direction:column;gap:10px;overflow:hidden}
.category-list{display:grid;gap:5px;min-width:0}
.category-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;align-items:baseline;border-bottom:1px solid #edf1f6;padding-bottom:4px}
.category-list>div:last-child{border-bottom:0;padding-bottom:0}
.category-list b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.category-list strong{font-size:13px!important;letter-spacing:-.3px!important;white-space:nowrap}
.category-list small{grid-column:1/-1;font-size:10px}
.trend-chart{width:100%;min-height:230px;margin:0 0 22px;padding:22px 24px 18px;border:1px solid #d2e1f2;border-radius:var(--radius);background:linear-gradient(180deg,#fafdff,#edf5fd);box-shadow:0 10px 24px #5d83aa18;overflow:hidden}
.trend-chart-title{display:flex;justify-content:space-between;align-items:baseline;gap:12px;color:#72809a;font-size:11px;font-weight:700;letter-spacing:.45px}
.trend-chart-title small{font-weight:500;letter-spacing:0;color:var(--muted)}
.trend-chart .bars{height:155px;margin:20px 4px 8px;gap:12px}
.trend-chart .bars i{background:linear-gradient(180deg,#4d93fa,#2878f0);border-radius:6px 6px 2px 2px}
.trend-chart .labels{font-size:11px}
@media(max-width:800px){.dashboard.top-nav-mode main{padding-top:94px!important}.dashboard.top-nav-mode .summary{grid-template-columns:1fr;margin:12px 0 14px}.dashboard.top-nav-mode .summary article{min-height:0}.trend-chart{min-height:190px;margin-bottom:16px;padding:16px 14px 14px}.trend-chart .bars{height:118px;margin-top:18px;gap:5px}.trend-chart-title{display:block}.trend-chart-title small{display:block;margin-top:4px}}

.trend-chart .bars .bar-current{background:linear-gradient(180deg,#4d93fa,#2878f0)!important}.trend-chart .bars .bar-previous{background:#a9c9f5!important}.trend-chart .bars .bar-previous-2{background:#dceafa!important}

.matrix thead th:not(:first-child){text-align:center!important}

.empty-cell{display:inline-block;width:28px;height:10px;border-radius:5px;background:#edf3fa;box-shadow:inset 0 2px 4px rgba(39,76,117,.18),0 1px 0 #fff;vertical-align:middle}
.cell-edit:has(.empty-cell){min-height:24px}

.matrix .meter-last{display:block;margin-top:3px;font-size:10px!important;line-height:1.2;font-style:italic;font-weight:500;color:#71809a}
.matrix .cell-meter-reading{display:block;min-height:0;margin-top:2px;text-align:right;font-size:10px;font-style:italic;line-height:1.15;color:#71809a}
.matrix .cell-meter-reading span{display:block}
@media(min-width:801px){.dashboard.top-nav-mode main{max-width:1800px;padding-left:24px!important;padding-right:24px!important}.dashboard.top-nav-mode .ledger{width:100%}}

.dashboard *,.admin-page *,.portal-dialog *{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important}
.dashboard .matrix th,.dashboard .matrix td{font-weight:400}
.dashboard .matrix th:first-child{font-weight:500}
.dashboard .matrix .total,.dashboard .matrix .grand th,.dashboard .matrix .grand td{font-weight:600}
.matrix .cell-edit{gap:5px;font-weight:400!important}
.matrix .cell-main{display:inline-flex;flex-direction:column;align-items:flex-end;min-width:0;line-height:1.15}
.matrix .cell-meter-reading{display:block;margin-top:2px;text-align:right;font-size:10px!important;font-style:italic;font-weight:400!important;line-height:1.1;color:#71809a}
.matrix .cell-meter-reading span{display:block}
