:root{--background:#080b0c;--panel:#111719;--soft:#171f22;--ink:#eff7f2;--muted:#8a9891;--border:#ffffff1a;--border-soft:#ffffff12;--green:#73ffb1;--tomato:#ff7d6e;--blue:#58b9ff;color:var(--ink);background:radial-gradient(circle at 12% -10%, #73ffb11f, transparent 34%), radial-gradient(circle at 90% 12%, #58b9ff1f, transparent 28%), var(--background);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5}*{box-sizing:border-box}body{min-width:320px;min-height:100svh;margin:0}button,input,textarea{font-family:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.app-shell{min-height:100svh;padding:22px}.topbar{justify-content:space-between;align-items:center;gap:18px;max-width:1480px;margin:0 auto 18px;display:flex}.brand-block{align-items:center;gap:12px;min-width:0;display:flex}.brand-mark{color:var(--green);letter-spacing:0;background:linear-gradient(135deg,#76ffb038,#5bb0ff29);border:1px solid #84ffbc3d;border-radius:8px;justify-content:center;align-items:center;min-width:48px;height:38px;padding:0 10px;font-size:13px;font-weight:820;display:inline-flex}.topbar h1,.signin-panel h1,.loader-card h1{color:var(--ink);letter-spacing:0;margin:0;font-size:30px;font-weight:760;line-height:1}.topbar p,.panel-heading p,.identity span,.sheet-footer,.signin-panel p,.loader-card p{color:var(--muted)}.topbar p{margin:7px 0 0;font-size:14px}.topbar-actions{align-items:center;gap:10px;min-width:0;display:flex}.identity{min-width:0;line-height:1.2;display:grid}.identity strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.identity span{text-overflow:ellipsis;white-space:nowrap;max-width:190px;font-size:12px;overflow:hidden}.avatar{border:1px solid #ffffff24;border-radius:50%;width:34px;height:34px}.dashboard-grid{grid-template-columns:minmax(270px,.85fr) minmax(420px,1.35fr) minmax(280px,.9fr);gap:14px;min-width:0;max-width:1480px;margin:0 auto;display:grid}.panel,.signin-panel,.loader-card,.error-banner{background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:0 24px 80px #00000038}.panel{min-width:0;padding:16px}.hero-panel{grid-row:span 2}.wide-panel{grid-column:span 2}.panel-heading{color:var(--green);justify-content:space-between;align-items:flex-start;margin-bottom:14px;display:flex}.panel-heading h2{color:var(--ink);letter-spacing:0;margin:0;font-size:17px;font-weight:740;line-height:1.1}.panel-heading p{margin:5px 0 0;font-size:12px}.fuel-score{text-align:center;background:radial-gradient(circle at 30% 20%,#6fffb22e,#0000 36%),linear-gradient(135deg,#ffffff12,#ffffff05);border:1px solid #ffffff1a;border-radius:8px;place-items:center;min-height:146px;display:grid}.fuel-score strong{color:var(--ink);font-size:clamp(38px,7vw,64px);font-weight:820;line-height:1}.fuel-score span{color:var(--muted);margin-top:-18px;font-size:13px}.connection-card{color:var(--green);background:#73ffb10f;border:1px solid #73ffb129;border-radius:8px;align-items:flex-start;gap:10px;margin-top:16px;padding:12px;display:flex}.connection-card strong,.connection-card span{display:block}.connection-card strong{color:var(--ink);margin-bottom:3px;font-size:13px}.connection-card span{color:var(--muted);font-size:12px}.metric-grid,.mini-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.metric-card{background:#ffffff0a;border:1px solid #ffffff14;border-radius:8px;min-height:116px;padding:13px}.metric-card>span{color:var(--green);margin-bottom:16px;display:inline-flex}.metric-card p{color:var(--muted);margin:0 0 3px;font-size:12px;font-weight:690}.metric-card strong{color:var(--ink);overflow-wrap:anywhere;font-size:clamp(20px,3vw,28px);font-weight:790;line-height:1.1;display:block}.metric-card small{color:var(--muted);margin-top:4px;font-size:12px;display:block}.metric-card.positive>span,.metric-card.positive strong{color:var(--blue)}.metric-card.negative>span,.metric-card.negative strong{color:var(--tomato)}.progress-stack{gap:12px;display:grid}.progress-row{gap:7px;display:grid}.progress-row>div:first-child{justify-content:space-between;align-items:baseline;display:flex}.progress-row span,.progress-row small{color:var(--muted);font-size:12px;font-weight:690}.progress-row strong{color:var(--ink);font-size:13px}.progress-track{background:#ffffff12;border-radius:999px;height:8px;overflow:hidden}.progress-track span{background:linear-gradient(90deg, var(--green), var(--blue));border-radius:inherit;min-width:0;height:100%;display:block}.progress-track span.missing{background:#ffffff24;width:0!important}.chart-panel{min-height:254px}.dual-chart,.line-chart{gap:12px;min-height:174px;display:grid}.chart-legend,.chart-summary{justify-content:space-between;align-items:center;gap:14px;display:flex}.legend-item,.chart-summary span{color:var(--muted);font-size:12px}.legend-item:before{content:"";border-radius:999px;width:8px;height:8px;margin-right:6px;display:inline-block}.legend-item.consumed:before{background:var(--green)}.legend-item.expenditure:before{background:var(--blue)}.bar-grid{grid-template-columns:repeat(21,minmax(0,1fr));align-items:end;gap:6px;min-height:156px;display:grid}.bar-day{gap:6px;min-width:0;display:grid}.bar-day small{color:var(--muted);text-align:center;font-size:10px}.bar-pair{grid-template-columns:1fr 1fr;align-items:end;gap:3px;height:132px;display:grid}.bar-pair span{border-radius:999px 999px 3px 3px;min-height:4px;display:block}.bar-pair .consumed{background:linear-gradient(180deg, var(--green), #73ffb14d)}.bar-pair .expenditure{background:linear-gradient(180deg, var(--blue), #4fb6ff4d)}.bar-pair .missing{background:#ffffff1f}.line-chart svg{color:var(--green);width:100%;height:150px;overflow:visible}.line-chart circle{fill:var(--panel);stroke:var(--green);stroke-width:2px}.empty-chart,.empty-list{color:var(--muted);text-align:center;border:1px dashed #ffffff24;border-radius:8px;justify-content:center;align-items:center;min-height:132px;display:flex}.entry-list{gap:9px;max-height:360px;padding-right:2px;display:grid;overflow:auto}.entry-row{background:#ffffff0a;border:1px solid #ffffff14;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px;display:grid}.entry-row strong{color:var(--ink);margin-bottom:3px;font-size:14px;display:block}.entry-row span,.entry-row small{color:var(--muted);font-size:12px}.entry-metrics{justify-items:end;gap:4px;display:grid}.center-screen{justify-content:center;align-items:center;min-height:100svh;padding:22px;display:flex}.signin-panel,.loader-card{gap:16px;width:100%;max-width:480px;padding:24px;display:grid}.loader-card{text-align:center;justify-items:center}.signin-panel p,.loader-card p{margin:0;font-size:14px}.primary-action,.icon-action,.icon-only,.link-danger{cursor:pointer;font:inherit;letter-spacing:0;border:0;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.primary-action{background:var(--green);color:#08120d;gap:8px;min-height:44px;padding:0 16px;font-size:14px;font-weight:780}.icon-action,.icon-only{color:var(--ink);background:#ffffff12;border:1px solid #ffffff1a;min-height:38px}.icon-action{gap:7px;padding:0 12px;font-size:13px;font-weight:720}.icon-only{min-width:38px}.link-danger{color:var(--tomato);background:0 0;margin-top:12px;padding:6px 0 0;font-size:12px;font-weight:720}button:disabled{cursor:not-allowed;opacity:.62}.error-banner{color:#ffd6d1;max-width:1480px;margin:0 auto 14px;padding:12px 14px;font-size:13px}.error-banner.compact{margin:0}.sheet-footer{flex-wrap:wrap;align-items:center;gap:10px 18px;max-width:1480px;margin:18px auto 0;display:flex}.sheet-footer a{color:var(--green);text-decoration:none}.sheet-footer a:hover{text-decoration:underline}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=1180px){.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-panel{grid-row:auto}.wide-panel{grid-column:span 2}}@media (width<=760px){.app-shell{padding:14px}.topbar,.topbar-actions{flex-direction:column;align-items:stretch}.topbar-actions{width:100%}.identity span{max-width:none}.dashboard-grid,.metric-grid,.mini-metrics{grid-template-columns:1fr}.wide-panel{grid-column:auto}.entry-row{grid-template-columns:1fr}.entry-metrics{justify-items:start}.bar-grid{gap:4px;overflow-x:auto}.bar-day{min-width:18px}}
