:root{color:#edf3f7;font-synthesis:none;--ink:#edf3f7;--muted:#91a3ad;--panel:#101b20;--line:#223139;--mint:#88e5c2;--mint-strong:#45c99a;--red:#ff857d;background:#071014;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 80% 5%,#12332d 0,#0000 28rem),#071014;min-width:320px;min-height:100vh;margin:0}button,select,input{font:inherit}.app-shell{width:min(1120px,100% - 40px);margin:0 auto}.topbar{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;min-height:86px;display:flex}.brand{color:var(--ink);align-items:center;gap:12px;text-decoration:none;display:inline-flex}.brand-mark{border:1px solid var(--mint-strong);width:42px;height:42px;color:var(--mint);letter-spacing:.08em;place-items:center;font-size:12px;display:grid}.brand>span:last-child{line-height:1.05;display:grid}.brand strong{letter-spacing:.16em;font-size:15px}.brand small{color:var(--muted);letter-spacing:.08em;margin-top:5px;font-size:11px}.language-picker{color:var(--muted);align-items:center;gap:10px;font-size:13px;display:flex}.language-picker select{color:var(--ink);border:1px solid var(--line);background:#101b20;border-radius:8px;padding:9px 30px 9px 11px}.hero{grid-template-columns:1.45fr .75fr;align-items:end;gap:52px;padding:74px 0 48px;display:grid}.eyebrow{color:var(--mint);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:9px;font-size:12px;font-weight:700;display:inline-flex}.eyebrow i{background:var(--mint);width:25px;height:1px}h1{letter-spacing:-.055em;max-width:820px;margin:20px 0 24px;font-size:clamp(42px,6vw,74px);line-height:.98}.hero-copy>p{color:var(--muted);max-width:720px;margin:0;font-size:18px;line-height:1.65}.hero-aside{gap:14px;display:grid}.data-source-card{background:linear-gradient(145deg, #20a9831f, var(--panel));box-shadow:var(--shadow);border:1px solid #20a9834d;gap:8px;padding:23px 24px;display:grid}.data-source-card>span{color:var(--mint-strong);letter-spacing:.12em;text-transform:uppercase;font-size:10px;font-weight:750}.data-source-card>strong{font-size:17px;line-height:1.25}.data-source-card p{color:var(--muted);margin:0;font-size:12px;line-height:1.5}.data-source-card a{color:var(--mint-strong);margin-top:5px;font-size:12px;font-weight:750;text-decoration:none}.data-source-card a:hover{text-decoration:underline}.privacy-card{background:#0f1f1fc7;border:1px solid #88e5c23d;gap:16px;padding:24px;display:flex}.privacy-card strong{font-size:14px}.privacy-card p{color:var(--muted);margin:7px 0 0;font-size:13px;line-height:1.55}.privacy-icon{color:var(--mint);border:1px solid #88e5c24d;border-radius:50%;flex:none;place-items:center;width:35px;height:35px;display:grid}.workspace{border:1px solid var(--line);background:#0b1519eb;grid-template-columns:minmax(300px,.8fr) minmax(380px,1.2fr);min-height:330px;display:grid}.workspace.is-dragging{border-color:var(--mint-strong);box-shadow:0 0 0 4px #20a9831f, var(--shadow)}.workspace.is-dragging .upload-card{background:#20a9830a}.upload-card{border-right:1px solid var(--line);flex-direction:column;align-items:flex-start;padding:36px;display:flex}.upload-heading{align-items:center;gap:10px;width:100%;font-size:14px;display:flex}.status-dot{background:#82919a;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 5px #82919a1a}.status-dot.is-ready{background:var(--mint-strong);box-shadow:0 0 0 5px #45c99a1a}.status-dot.is-error{background:var(--red);box-shadow:0 0 0 5px #ff857d1a}.local-badge{color:var(--mint);text-transform:uppercase;letter-spacing:.12em;border:1px solid #88e5c240;margin-left:auto;padding:5px 7px;font-size:10px}.progress{background:#26343b;width:100%;height:2px;margin-top:18px;overflow:hidden}.progress span{background:var(--mint);height:100%;transition:width .3s;display:block}.file-button{background:var(--mint);color:#071411;cursor:pointer;align-items:center;gap:10px;margin-top:48px;padding:16px 22px;font-weight:750;transition:transform .2s,background .2s;display:inline-flex}.file-button:hover{background:#a1eed0;transform:translateY(-2px)}.file-button.is-disabled{opacity:.5;cursor:wait;transform:none}.landing-actions{flex-wrap:wrap;gap:10px;margin-top:48px;display:flex}.landing-actions .file-button{margin-top:0}.file-button-secondary{color:var(--mint);background:0 0;border:1px solid #88e5c259}.file-button-secondary:hover{color:#071411;background:var(--mint)}.drop-hint{color:var(--muted);max-width:290px;margin:15px 0 0;font-size:12px;line-height:1.5}.landing-drop-zone{border:1.5px dashed var(--line);background:var(--panel-soft);text-align:center;cursor:pointer;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:205px;margin-top:32px;padding:26px 20px;transition:border-color .18s,background .18s,transform .18s;display:flex}.landing-drop-zone:hover,.landing-drop-zone.is-active{border-color:var(--mint-strong);background:#20a98312}.landing-drop-zone.is-active{transform:scale(1.01)}.landing-drop-zone.is-disabled{opacity:.55;cursor:wait;transform:none}.drop-upload-icon{width:42px;height:42px;color:var(--mint-strong);background:#20a9831a;border-radius:50%;place-items:center;font-size:24px;line-height:1;display:grid}.landing-drop-zone strong{color:var(--ink);margin-top:14px;font-size:14px}.landing-drop-zone small{max-width:310px;color:var(--muted);margin-top:7px;font-size:10px;line-height:1.5}.drop-browse{color:#fff;background:var(--mint-strong);border-radius:8px;margin-top:16px;padding:9px 14px;font-size:11px;font-weight:750}.landing-drop-zone.is-active strong{color:var(--mint-strong)}.reset-button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:1px solid #52626b;margin-top:auto;padding:16px 0 0}.error-message{color:#ffc0bb;border-left:2px solid var(--red);background:#ff857d17;margin-top:18px;padding:10px 12px;font-size:13px}.results{padding:36px}.section-label{color:var(--muted);text-transform:uppercase;letter-spacing:.15em;font-size:11px}.metrics{background:var(--line);grid-template-columns:1fr 1fr;gap:1px;margin-top:26px;display:grid}.metrics article{background:var(--panel);flex-direction:column;justify-content:space-between;min-height:106px;padding:20px;display:flex}.metrics span{color:var(--muted);font-size:12px}.metrics strong{letter-spacing:-.04em;font-size:28px}.metrics small{color:var(--muted);letter-spacing:0;font-size:13px}.empty-state{flex-direction:column;justify-content:center;padding:55px;display:flex}.empty-state>span{color:var(--mint);font-family:ui-monospace,monospace;font-size:12px}.empty-state strong{margin:22px 0 10px;font-size:26px}.empty-state p{max-width:440px;color:var(--muted);margin:0;line-height:1.6}.history-card{border:1px solid var(--line);background:#0b1519eb;margin-top:22px;padding:30px 36px}.history-card h2{margin:0 0 22px;font-size:18px}.history-row{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) 120px 140px;align-items:center;gap:20px;min-height:50px;font-size:13px;display:grid}.history-row strong{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.history-header{min-height:32px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;border:0;font-size:10px}.result-tag{border:1px solid var(--line);justify-self:start;padding:5px 8px}.result-added{color:var(--mint);border-color:#88e5c24d}.result-failed{color:var(--red);border-color:#ff857d4d}footer{color:#63757e;text-align:center;padding:32px 0 45px;font-size:11px}.visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.dashboard-shell{background:#081115;grid-template-columns:230px minmax(0,1fr);min-height:100vh;display:grid}.dashboard-sidebar{border-right:1px solid var(--line);background:#0b1519;flex-direction:column;height:100vh;padding:28px 18px;display:flex;position:sticky;top:0}.dashboard-brand{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:0 9px 29px;display:flex}.dashboard-brand>span:last-child{line-height:1.1;display:grid}.dashboard-brand strong{letter-spacing:.15em;font-size:14px}.dashboard-brand small{color:var(--muted);margin-top:5px;font-size:10px}.dashboard-sidebar nav{gap:5px;padding-top:25px;display:grid}.dashboard-sidebar nav button{color:var(--muted);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;gap:13px;padding:12px;display:flex}.dashboard-sidebar nav button span{color:#71858e;text-align:center;width:21px}.dashboard-sidebar nav button.is-active span{color:var(--mint)}.privacy-mini{border-top:1px solid var(--line);align-items:center;gap:10px;margin-top:auto;padding:23px 9px 0;display:flex}.privacy-mini i{background:var(--mint-strong);border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 5px #45c99a17}.privacy-mini span{display:grid}.privacy-mini strong{font-size:11px}.privacy-mini small{color:var(--muted);margin-top:3px;font-size:9px}.dashboard-main{min-width:0}.dashboard-topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:30px;min-height:144px;padding:28px clamp(24px,4vw,54px);display:flex}.dashboard-topbar h1{letter-spacing:-.04em;margin:5px 0 7px;font-size:clamp(28px,3vw,42px);line-height:1.05}.dashboard-topbar p{color:var(--muted);margin:0;font-size:13px}.dashboard-eyebrow{color:var(--mint);text-transform:uppercase;letter-spacing:.14em;font-size:10px;font-weight:750}.topbar-actions{flex:none}.mobile-nav{display:none}.period-bar{border-bottom:1px solid var(--line);align-items:center;gap:6px;min-height:58px;padding:0 clamp(24px,4vw,54px);display:flex}.period-bar>span{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-right:8px;font-size:11px}.period-bar button{color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;padding:7px 11px;font-size:12px}.dashboard-progress{background:#101d22;align-items:center;height:34px;padding:0 clamp(24px,4vw,54px);display:flex;position:relative;overflow:hidden}.dashboard-progress span{background:var(--mint);height:2px;transition:width .25s;position:absolute;inset:auto auto 0 0}.dashboard-progress strong{color:var(--muted);z-index:1;font-size:11px}.dashboard-error{color:#ffc0bb;background:#ff857d17;border-bottom:1px solid #ff857d33;padding:10px clamp(24px,4vw,54px);font-size:12px}.metric-grid{background:var(--line);border:1px solid var(--line);gap:1px;display:grid}.metric-grid-main{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:24px}.metric-grid-detail{border:0;grid-template-columns:repeat(4,minmax(0,1fr))}.dash-metric{background:var(--panel);flex-direction:column;justify-content:space-between;min-width:0;min-height:118px;padding:20px;display:flex}.dash-metric.is-accent{background:linear-gradient(140deg,#45c99a2b,#101b20f2)}.dash-metric>span{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px}.dash-metric strong{letter-spacing:-.04em;white-space:nowrap;font-size:clamp(23px,2vw,31px);line-height:1}.dash-metric strong small{color:var(--muted);letter-spacing:0;font-size:12px;font-weight:500}.dash-metric em{color:#70838c;white-space:nowrap;text-overflow:ellipsis;font-size:10px;font-style:normal;overflow:hidden}.two-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-bottom:24px;display:grid}.charts-row{grid-template-columns:minmax(320px,.85fr) minmax(420px,1.15fr)}.dash-panel{border:1px solid var(--line);background:#0d181deb;min-width:0;overflow:hidden}.dash-panel>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:20px;padding:20px 22px;display:flex}.dash-panel h3{letter-spacing:-.01em;margin:0;font-size:14px}.dash-panel header p{color:var(--muted);margin:6px 0 0;font-size:10px}.text-action{color:var(--mint);cursor:pointer;background:0 0;border:0;padding:0;font-size:11px}.bar-chart{justify-content:stretch;align-items:flex-end;gap:clamp(5px,1.2vw,14px);height:250px;padding:38px 22px 20px;display:flex;overflow:hidden}.bar-column{flex-direction:column;flex:1 1 0;justify-content:flex-end;align-items:center;min-width:8px;height:100%;display:flex;position:relative}.bar-column i{background:linear-gradient(180deg, var(--mint), #2c8064);border-radius:3px 3px 0 0;width:min(28px,76%);min-height:3px;display:block}.bar-column small{color:#71838c;white-space:nowrap;margin-top:9px;font-size:9px}.bar-value{bottom:calc(var(--bar-height,0%) + 4px);color:#9eb0b8;font-size:8px;position:absolute;transform:translateY(-5px)}.line-chart{padding:19px 22px 17px}.line-chart svg{width:100%;height:190px;display:block;overflow:visible}.line-chart svg line{stroke:#213139;stroke-width:1px}.line-chart svg polyline{fill:none;stroke-width:2.2px;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}.line-mint{stroke:var(--mint);background:var(--mint)}.line-amber{stroke:#eabf74;background:#eabf74}.line-muted{stroke:#66808c;background:#66808c}.chart-legend{color:var(--muted);flex-wrap:wrap;gap:16px;font-size:10px;display:flex}.chart-legend span{align-items:center;gap:6px;display:flex}.chart-legend i{width:14px;height:2px}.chart-range{color:#62757f;justify-content:space-between;margin-top:9px;font-size:9px;display:flex}.chart-empty{min-height:250px;color:var(--muted);place-items:center;font-size:12px;display:grid}.compact-records>div,.compact-records>.compact-record-button,.import-history>div{border:0;border-top:1px solid var(--line);width:100%;min-height:63px;color:var(--ink);font:inherit;text-align:left;background:0 0;justify-content:space-between;align-items:center;gap:20px;padding:15px 20px;display:flex}.compact-records>div:first-child,.compact-records>.compact-record-button:first-child,.import-history>div:first-child{border-top:0}.compact-record-button{cursor:pointer}.compact-record-button:focus-visible{outline:2px solid var(--mint);outline-offset:-3px}.compact-records span,.import-history span{min-width:0;display:grid}.compact-records span:last-child{text-align:right}.compact-records strong,.import-history strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.compact-records small,.import-history small{color:var(--muted);margin-top:5px;font-size:9px}.master-detail{grid-template-columns:minmax(250px,320px) minmax(0,1fr);align-items:start;gap:24px;display:grid}.record-list-panel{max-height:calc(100vh - 235px);position:sticky;top:20px}.record-list{max-height:calc(100vh - 305px);overflow:auto}.record-button{border:0;border-top:1px solid var(--line);width:100%;min-height:70px;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border-left:2px solid #0000;justify-content:space-between;align-items:center;gap:12px;padding:13px 15px;display:flex}.record-button:first-child{border-top:0}.record-button>span{gap:5px;min-width:0;display:grid}.record-button strong{white-space:nowrap;font-size:11px}.record-button small{color:var(--muted);white-space:nowrap;font-size:9px}.record-meta{text-align:right}.record-meta strong{color:var(--mint)}.detail-stack{gap:24px;min-width:0;display:grid}.detail-table>div{border-top:1px solid var(--line);color:var(--muted);grid-template-columns:35px repeat(4,minmax(85px,1fr));align-items:center;gap:12px;padding:14px 20px;font-size:10px;display:grid}.detail-table>div:first-child{border-top:0}.detail-table strong{color:var(--ink)}.section-empty{border:1px solid var(--line);text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:430px;display:flex}.section-empty>span{color:var(--mint);font-size:28px}.section-empty strong{margin-top:17px}.section-empty p{color:var(--muted);margin:7px 0 0;font-size:12px}.data-table{overflow-x:auto}.data-table>div{border-top:1px solid var(--line);color:#a5b4ba;grid-template-columns:repeat(5,minmax(90px,1fr));align-items:center;gap:12px;min-width:620px;min-height:47px;padding:9px 20px;font-size:10px;display:grid}.data-table>div:first-child{border-top:0}.data-table .table-head{color:#71838c;text-transform:uppercase;letter-spacing:.08em;font-size:8px}.severity{text-align:center;border:1px solid var(--line);text-transform:uppercase;border-radius:20px;min-width:54px;padding:4px 6px;font-size:8px;font-style:normal;display:inline-block}.severity-error{color:#ffaaa4;border-color:#ff857d59}.severity-warning{color:#f0c878;border-color:#f0c8784d}.severity-info{color:#91b7c8;border-color:#91b7c84d}.inline-success{color:var(--mint);padding:20px;font-size:11px}.data-layout{align-items:stretch}.data-actions{padding-bottom:4px}.dashboard-upload{cursor:pointer;text-align:center;border:1px dashed #38505a;flex-direction:column;justify-content:center;align-items:center;min-height:240px;margin:20px;display:flex}.dashboard-upload.is-disabled{opacity:.5;cursor:wait}.dashboard-upload input{display:none}.dashboard-upload>span{color:var(--mint);font-size:26px}.dashboard-upload strong{margin-top:12px;font-size:13px}.dashboard-upload small{max-width:330px;color:var(--muted);margin-top:7px;font-size:10px;line-height:1.5}.history-import-button,.export-button{border:1px solid var(--line);min-height:58px;color:var(--ink);cursor:pointer;text-align:left;background:#101d22;align-items:center;gap:12px;margin:0 20px 10px;padding:12px 15px;display:flex}.history-import-button:hover,.export-button:hover{border-color:#88e5c266}.history-import-button.is-disabled,.export-button:disabled{opacity:.5;cursor:wait}.history-import-button input{display:none}.history-import-button>span,.export-button>span:first-child{color:var(--mint);text-align:center;width:20px}.history-import-button strong,.export-button strong{font-size:11px}.export-button{width:calc(100% - 40px)}.export-button>span:last-child{gap:4px;display:grid}.export-button small{color:var(--muted);font-size:9px;font-weight:400}.history-warning{color:#b9a47c;border-left:2px solid #eabf74;margin:2px 20px 14px;padding-left:10px;font-size:9px;line-height:1.5}.danger-link{color:#ef9892;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #ef989266;margin:0 20px 20px;padding:2px 0;font-size:10px}.import-history code{color:#71838c;font-size:9px}.dashboard-main>footer{padding-top:0}@media (max-width:760px){.app-shell{width:min(100% - 24px,1120px)}.topbar{min-height:72px}.hero{grid-template-columns:1fr;gap:28px;padding:48px 0 32px}h1{font-size:44px}.workspace{grid-template-columns:1fr}.upload-card{border-right:0;border-bottom:1px solid var(--line)}.empty-state{min-height:250px;padding:36px}.history-row{grid-template-columns:minmax(0,1fr) 80px}.history-row>:last-child{grid-column:1/-1;margin-bottom:12px}.history-header>:last-child{display:none}.dashboard-shell{display:block}.dashboard-sidebar{display:none}.dashboard-topbar{min-height:126px;padding:22px 18px}.dashboard-topbar p{max-width:240px}.language-picker>span{display:none}.mobile-nav{border-bottom:1px solid var(--line);gap:4px;padding:8px 12px;display:flex;overflow-x:auto}.mobile-nav button{min-height:38px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:6px;flex:1 0 40px}.mobile-nav button.is-active{color:var(--mint);background:#88e5c20f;border-color:#88e5c240}.period-bar{padding:0 18px}.dashboard-content{padding:20px 12px 36px}.metric-grid-main,.metric-grid-detail{grid-template-columns:repeat(2,minmax(0,1fr))}.two-columns,.charts-row,.master-detail{grid-template-columns:1fr;gap:16px}.record-list-panel{max-height:330px;position:static}.record-list{max-height:260px}.detail-stack{gap:16px}.bar-chart{padding-inline:12px}.bar-value{display:none}.detail-table>div{min-width:600px}.detail-table{overflow-x:auto}}@media (min-width:761px) and (max-width:1050px){.dashboard-shell{grid-template-columns:190px minmax(0,1fr)}.metric-grid-main{grid-template-columns:repeat(2,minmax(0,1fr))}.charts-row{grid-template-columns:1fr}.master-detail{grid-template-columns:260px minmax(0,1fr)}.metric-grid-detail{grid-template-columns:repeat(2,minmax(0,1fr))}}:root,:root[data-theme=light]{color:#183330;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#183330;--muted:#718783;--panel:#fff;--panel-soft:#f7faf9;--line:#dce7e3;--grid:#e7efec;--mint:#20a983;--mint-strong:#159873;--red:#d8665b;--shadow:0 8px 28px #1f494113;background:#f3f7f5}:root[data-theme=dark]{color:#edf5f2;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#edf5f2;--muted:#91aaa5;--panel:#11211f;--panel-soft:#0e1c1a;--line:#29403c;--grid:#213632;--mint:#63d1ad;--mint-strong:#42bd95;--red:#ff8d83;--shadow:0 10px 32px #00000038;background:#0b1716}body{color:var(--ink);background:var(--panel-soft);transition:background .18s,color .18s}.topbar{border-color:var(--line)}.topbar-actions{align-items:center;gap:10px;display:flex}.language-picker select{color:var(--ink);background:var(--panel);border-color:var(--line)}.theme-toggle{border:1px solid var(--line);background:var(--panel);min-height:38px;color:var(--ink);cursor:pointer;border-radius:9px;align-items:center;gap:8px;padding:7px 11px;font-size:12px;display:inline-flex}.theme-toggle span{border:1.5px solid;border-radius:50%;width:15px;height:15px;position:relative}:root[data-theme=dark] .theme-toggle span{background:#f4cb66;border-color:#f4cb66;box-shadow:inset -5px -3px #11211f}.privacy-card,.workspace,.history-card{background:var(--panel);border-color:var(--line);box-shadow:var(--shadow)}.privacy-card p,.drop-hint,.empty-state p,.section-label{color:var(--muted)}.file-button{background:var(--mint);color:#fff;border-radius:9px}.file-button:hover{background:var(--mint-strong)}.file-button-secondary{background:var(--panel);color:var(--mint-strong);border-color:var(--line)}.file-button-secondary:hover{background:var(--panel-soft);color:var(--mint-strong)}.metrics{background:var(--line)}.metrics article{background:var(--panel)}.dashboard-shell{background:var(--panel-soft);grid-template-columns:220px minmax(0,1fr)}.dashboard-sidebar{z-index:3;background:var(--panel);border-color:var(--line);padding:24px 16px;box-shadow:3px 0 18px #1f494109}.dashboard-brand{border-color:var(--line)}.dashboard-brand>span:last-child{display:grid}.dashboard-brand small{color:var(--muted)}.brand-mark{color:#fff;background:linear-gradient(145deg,#22af88,#13866a);border:0;border-radius:11px;box-shadow:0 5px 14px #20a98338}.brand-mark img{object-fit:contain;width:34px;height:34px;display:block}.dashboard-sidebar nav{gap:4px}.dashboard-sidebar nav button{min-height:43px;color:var(--muted);border-radius:9px;font-weight:600}.dashboard-sidebar nav button:hover{color:var(--ink);background:var(--panel-soft)}.dashboard-sidebar nav button.is-active{color:#128467;background:#20a9831a}:root[data-theme=dark] .dashboard-sidebar nav button.is-active{color:var(--mint)}.nav-icon{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:19px;height:19px}.nav-icon path[d^=M4\ 13],.nav-icon path[d^=M3\ 7],.nav-icon path[d^=M13\ 2]{fill:currentColor;stroke:none}.privacy-mini{border-color:var(--line)}.privacy-mini small{color:var(--muted)}.sidebar-bottom{gap:12px;margin-top:auto;display:grid}.sidebar-bottom .privacy-mini{margin-top:0}.sidebar-unit-controls{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:8px;padding-top:12px;display:grid}.sidebar-unit-controls label{gap:5px;min-width:0;display:grid}.sidebar-unit-controls span{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;font-size:9px;font-weight:700}.sidebar-unit-controls select{border:1px solid var(--line);background:var(--panel);width:100%;min-width:0;color:var(--ink);font:inherit;border-radius:9px;padding:7px 6px;font-size:11px}.telemetry-tooltip{border:1px solid var(--line);background:var(--panel);min-width:190px;color:var(--ink);box-shadow:var(--shadow);border-radius:10px;gap:6px;padding:10px 12px;font-size:11px;display:grid}.telemetry-tooltip>strong{border-bottom:1px solid var(--line);padding-bottom:5px}.telemetry-tooltip>span{color:var(--muted);grid-template-columns:6px 1fr auto;align-items:center;gap:7px;display:grid}.telemetry-tooltip>span i{background:var(--accent);border-radius:50%;width:6px;height:6px}.telemetry-tooltip>span b{color:var(--ink);font-weight:700}.sidebar-kofi{min-height:40px;color:var(--mint-strong);background:#20a98314;border:1px solid #20a98347;border-radius:9px;justify-content:center;align-items:center;padding:10px 12px;font-size:11px;font-weight:750;text-decoration:none;display:flex}.sidebar-kofi:hover{background:#20a98324}.sidebar-version{color:var(--muted);padding:0 9px;font-size:9px}.dashboard-topbar{background:var(--panel);border-color:var(--line);min-height:126px;padding:24px clamp(26px,4vw,54px)}.dashboard-topbar h1{color:var(--ink);margin:5px 0 6px;font-size:clamp(29px,3vw,39px)}.dashboard-topbar p{color:var(--muted)}.dashboard-eyebrow{color:var(--mint-strong)}.period-bar{background:var(--panel);border-color:var(--line);min-height:56px;padding-inline:clamp(26px,4vw,54px)}.period-bar button{color:var(--muted);border-radius:8px}.period-bar button:hover{background:var(--panel-soft)}.period-bar button.is-active{color:#08775b;background:#20a9831a;border-color:#20a9833b}.period-bar{flex-wrap:wrap;padding-block:9px}.custom-period{color:var(--muted);align-items:center;gap:8px;margin-left:auto;display:flex}.custom-period label{text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:6px;font-size:10px;display:flex}.custom-period input{border:1px solid var(--line);color:var(--ink);background:var(--panel-soft);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;border-radius:7px;padding:7px 8px}:root[data-theme=dark] .custom-period input{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.dashboard-content{max-width:1580px;padding:30px clamp(24px,4vw,54px) 48px}.dashboard-grid{gap:22px;margin-bottom:22px;display:grid}.dashboard-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-grid{background:var(--line);border-color:var(--line);box-shadow:var(--shadow);border-radius:13px;gap:0;overflow:hidden}.overview-metrics{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:22px}.charging-metrics{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:22px}.battery-metrics{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:18px}.tyres-metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:22px}.charging-metrics,.battery-metrics,.tyres-metrics{box-shadow:none;background:0 0;border:0;border-radius:0;gap:14px;overflow:visible}.charging-metrics .dash-metric,.battery-metrics .dash-metric,.tyres-metrics .dash-metric{border:1px solid var(--line);box-shadow:var(--shadow);border-radius:13px}.charging-metrics .dash-metric:last-child,.battery-metrics .dash-metric:last-child,.tyres-metrics .dash-metric:last-child{border-right:1px solid var(--line)}.charging-type-layout{grid-template-columns:minmax(310px,.8fr) minmax(280px,1.2fr);align-items:center;gap:22px;padding:18px 20px 8px;display:grid}.charge-type-metrics{box-shadow:none;background:0 0;border:0;border-radius:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;overflow:visible}.charge-type-metrics .dash-metric{border:1px solid var(--line);min-height:132px;box-shadow:none;border-radius:12px}.dash-panel:has(.charging-type-layout){margin-bottom:22px}.report-metrics{box-shadow:none;background:0 0;border:0;border-radius:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:22px 0;overflow:visible}.report-metrics .dash-metric{border:1px solid var(--line);box-shadow:var(--shadow);border-radius:13px}.report-metrics .dash-metric:last-child{border-right:1px solid var(--line)}.activity-metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:22px}.quality-metrics{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:22px}.detail-metrics{box-shadow:none;border:0;border-radius:0;grid-template-columns:repeat(5,minmax(0,1fr))}.dash-metric{background:var(--panel);border-right:1px solid var(--line);min-height:122px;padding:20px}.dash-metric:last-child{border-right:0}.dash-metric>span{color:var(--muted)}.dash-metric strong{color:var(--ink);font-size:clamp(23px,2vw,30px)}.dash-metric strong small,.dash-metric em{color:var(--muted)}.dash-metric.tone-mint{box-shadow:inset 0 3px #20a983}.dash-metric.tone-cyan{box-shadow:inset 0 3px #63b7d4}.dash-metric.tone-violet{box-shadow:inset 0 3px #8a82d5}.dash-metric.tone-amber{box-shadow:inset 0 3px #e3a62f}.dash-metric.tone-coral{box-shadow:inset 0 3px #e27b66}.dash-panel{background:var(--panel);border-color:var(--line);box-shadow:var(--shadow);border-radius:13px}.dash-panel>header{border-color:var(--line);min-height:68px;padding:17px 20px}.dash-panel h3{color:var(--ink);font-size:14px}.dash-panel header p{color:var(--muted);font-size:10px}.chart-wrap{padding:15px 16px 9px 8px}.text-action{color:var(--mint-strong);font-weight:650}.compact-records>div,.import-history>div{border-color:var(--line)}.compact-records strong,.import-history strong{color:var(--ink)}.compact-records small,.import-history small{color:var(--muted)}.compact-records>div:hover,.compact-records>.compact-record-button:hover{background:var(--panel-soft)}.list-toolbar{justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px;display:flex}.list-toolbar input{width:min(380px,100%);color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:10px 13px}.list-toolbar span{color:var(--muted);font-size:12px}.master-detail{grid-template-columns:minmax(245px,300px) minmax(0,1fr);gap:22px}.master-detail>.dash-panel:first-child{max-height:calc(100vh - 110px);position:sticky;top:18px}.record-list{max-height:calc(100vh - 188px)}.record-button{color:var(--ink);border-color:var(--line)}.record-button:hover{background:var(--panel-soft)}.record-button.is-active{border-left-color:var(--mint);background:#20a98316}.record-button small{color:var(--muted)}.record-meta strong,.record-button>span:last-child strong{color:var(--mint-strong)}.detail-stack{gap:22px}.technical-grid{margin-bottom:0}.detail-table>div{color:var(--muted);border-color:var(--line);grid-template-columns:38px 90px repeat(4,minmax(90px,1fr))}.segment-number{color:#fff;background:var(--mint);border-radius:50%;place-items:center;width:25px;height:25px;display:grid}.section-empty{background:var(--panel);border-color:var(--line);border-radius:13px}.section-empty p{color:var(--muted)}.method-note,.threshold-note{background:#e3a62f12;border:1px solid #e3a62f4d;border-left:4px solid #e3a62f;border-radius:10px;margin-bottom:22px;padding:16px 18px}.method-note strong,.threshold-note strong{font-size:12px}.method-note p,.threshold-note p{color:var(--muted);margin:5px 0 0;font-size:11px;line-height:1.5}.data-table>div{color:var(--ink);border-color:var(--line)}.data-table .table-head{color:var(--muted);background:var(--panel-soft)}.parking-table>div{grid-template-columns:repeat(6,minmax(90px,1fr))}.parking-table.detailed{overflow-x:auto}.parking-table.detailed>div{grid-template-columns:110px 75px 100px 70px 80px 80px 90px 80px 80px 90px;min-width:1120px}.confidence{background:var(--panel-soft);color:var(--muted);border-radius:20px;justify-self:start;padding:4px 7px}.confidence-high{color:#168365;background:#20a9831a}.confidence-low{color:#ba5c51;background:#e27b661a}.quality-summary{background:linear-gradient(135deg, #20a9831a, var(--panel));border:1px solid var(--line);box-shadow:var(--shadow);border-radius:13px;justify-content:space-between;align-items:center;margin-bottom:22px;padding:24px;display:flex}.quality-summary>div:first-child{gap:5px;display:grid}.quality-summary span{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:11px}.quality-summary strong{font-size:20px}.quality-summary p{color:var(--muted);margin:0;font-size:11px}.quality-count{text-align:center}.quality-count strong{color:var(--mint-strong);font-size:35px;display:block}.signal-availability{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:20px;display:grid}.signal-availability article{border:1px solid var(--line);background:var(--panel-soft);border-radius:11px;min-width:0;padding:17px}.signal-availability article>header{border:0;justify-content:space-between;align-items:baseline;gap:10px;margin:0 0 11px;padding:0;display:flex}.signal-availability article>header strong{font-size:13px}.signal-availability article>header span{color:var(--muted);font-size:10px}.signal-bar{background:var(--grid);border-radius:20px;height:5px;overflow:hidden}.signal-bar i{border-radius:inherit;background:var(--mint);height:100%;display:block}.signal-group{margin-top:15px}.signal-group>span{color:var(--muted);letter-spacing:.07em;text-transform:uppercase;margin-bottom:7px;font-size:9px;font-weight:700;display:block}.signal-group>div{flex-wrap:wrap;gap:6px;display:flex}.signal-group small{border-radius:6px;padding:5px 7px;font-size:9px;line-height:1.25}.signal-group .is-available{color:var(--mint-strong);background:#20a98317}.signal-group .is-empty{color:var(--muted);background:var(--panel);border:1px solid var(--line)}.signal-availability details{color:var(--muted);margin-top:14px;font-size:10px}.signal-availability summary{cursor:pointer;color:var(--ink)}.signal-availability details p{margin:7px 0 0;line-height:1.5}.inline-success{color:var(--mint-strong)}.severity{border-color:var(--line)}.severity-high,.severity-critical,.severity-error{color:var(--red);border-color:#d8665b59}.severity-medium,.severity-warning{color:#b17a15;border-color:#e3a62f66}.dashboard-upload{border-color:var(--line);background:var(--panel-soft);border-radius:10px}.dashboard-upload:hover{border-color:var(--mint);background:#20a9830a}.dashboard-upload .nav-icon{color:var(--mint);width:28px;height:28px}.secondary-action,.primary-action{border:1px solid var(--line);background:var(--panel);min-height:48px;color:var(--ink);cursor:pointer;border-radius:9px;justify-content:center;align-items:center;margin:0 20px 10px;padding:12px 15px;display:flex}.secondary-action input{display:none}.primary-action{border-color:var(--mint);color:#fff;background:var(--mint);width:calc(100% - 40px);font-weight:700}.primary-action:hover{background:var(--mint-strong)}.history-warning{color:#9a7428}.danger-link{color:var(--red)}.export-help{color:var(--muted);margin:0 20px 8px;font-size:10px;line-height:1.5}.report-page>.dash-panel{margin-bottom:22px}.report-form{grid-template-columns:repeat(4,minmax(140px,1fr));align-items:end;gap:14px;padding:20px;display:grid}.report-form>label{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;gap:7px;font-size:10px;display:grid}.report-form input{border:1px solid var(--line);width:100%;min-height:43px;color:var(--ink);background:var(--panel-soft);text-transform:none;letter-spacing:0;border-radius:8px;padding:9px 11px}.report-form input[type=date]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark] .report-form input[type=date]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.input-with-unit{position:relative}.input-with-unit input{padding-right:62px}.input-with-unit small{color:var(--muted);text-transform:none;font-size:10px;position:absolute;top:50%;right:11px;transform:translateY(-50%)}.report-export{color:#fff;background:var(--mint);cursor:pointer;border:0;border-radius:10px;grid-column:1/-1;justify-content:center;align-items:center;gap:13px;min-height:60px;padding:12px 16px;display:flex}.report-export:hover{background:var(--mint-strong)}.report-export:disabled{opacity:.5;cursor:wait}.report-export .nav-icon{width:23px;height:23px}.report-export>span{text-align:left;gap:3px;display:grid}.report-export strong{font-size:12px}.report-export small{opacity:.82;font-size:9px;font-weight:400}.report-local-note{border-left:3px solid var(--mint);background:#20a9830f;gap:4px;margin:0 20px 20px;padding:12px 14px;display:grid}.report-local-note strong{font-size:10px}.report-local-note span{color:var(--muted);font-size:10px;line-height:1.45}.report-error{border-left:3px solid var(--red);color:var(--red);background:#d8665b14;margin:0 20px 18px;padding:10px 12px;font-size:10px}.report-period{border:1px solid var(--line);background:linear-gradient(135deg, #20a98317, var(--panel));box-shadow:var(--shadow);border-radius:12px;flex-wrap:wrap;align-items:baseline;gap:8px 16px;padding:18px 20px;display:flex}.report-period span{color:var(--mint-strong);letter-spacing:.1em;text-transform:uppercase;font-size:9px;font-weight:750}.report-period strong{font-size:18px}.report-period small{color:var(--muted);margin-left:auto;font-size:11px}.report-mini-table{overflow-x:auto}.report-mini-table>div{border-top:1px solid var(--line);min-width:500px;min-height:45px;color:var(--muted);grid-template-columns:1.2fr repeat(3,1fr);align-items:center;gap:12px;padding:9px 18px;font-size:10px;display:grid}.report-mini-table>div:first-child{border-top:0}.report-mini-table strong{color:var(--ink)}.report-mini-table .table-head{min-height:35px;color:var(--muted);background:var(--panel-soft);text-transform:uppercase;letter-spacing:.06em;font-size:8px}.progress-percent{color:var(--mint-strong);letter-spacing:-.04em;font-size:26px}.progress-phase{color:var(--muted);margin:9px 0 0;font-size:11px;line-height:1.4}.cancel-processing{border:1px solid var(--line);color:var(--muted);background:var(--panel);cursor:pointer;border-radius:7px;margin-top:10px;padding:7px 11px;font-size:10px}.cancel-processing:hover{color:var(--ink);border-color:var(--muted)}.processing-time-alert{color:var(--ink);background:#e3a62f12;border-left:3px solid #e3a62f;margin-top:20px;padding:13px 14px}.processing-time-alert strong{font-size:11px}.processing-time-alert p{color:var(--muted);margin:5px 0 0;font-size:10px;line-height:1.5}.support-card{background:linear-gradient(135deg, #20a98321, var(--panel));box-shadow:var(--shadow);border:1px solid #20a98340;border-radius:14px;justify-content:space-between;align-items:center;gap:28px;margin-top:24px;padding:34px 38px;display:flex}.support-card>div{max-width:650px}.support-card span{color:var(--mint-strong);letter-spacing:.13em;text-transform:uppercase;font-size:10px;font-weight:750}.support-card h2{letter-spacing:-.035em;margin:8px 0 7px;font-size:clamp(22px,3vw,32px)}.support-card p{color:var(--muted);margin:0;font-size:13px;line-height:1.55}.support-card a{background:var(--mint);color:#fff;border-radius:9px;flex:none;padding:14px 22px;font-weight:750;text-decoration:none;box-shadow:0 7px 20px #20a98333}.support-card a:hover{background:var(--mint-strong);transform:translateY(-1px)}.project-credit{border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:11px;flex-wrap:wrap;align-items:center;gap:6px;margin-top:16px;padding:18px 20px;font-size:11px;line-height:1.55;display:flex}.project-credit>span:first-child{width:100%;color:var(--mint-strong);letter-spacing:.1em;text-transform:uppercase;font-size:9px;font-weight:750}.project-credit a{color:var(--mint-strong);font-weight:700;text-decoration:none}.project-credit a:hover{text-decoration:underline}.site-footer{color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:7px 18px;display:flex}.site-footer a{color:var(--mint-strong);font-weight:700;text-decoration:none}.site-footer a:hover{text-decoration:underline}.dashboard-progress{background:var(--panel);border-bottom:1px solid var(--line);height:auto;padding:12px clamp(24px,4vw,54px) 13px;display:block}.dashboard-progress-heading{align-items:baseline;gap:12px;display:flex}.dashboard-progress-heading strong{color:var(--mint-strong);font-size:22px}.dashboard-progress-heading span{height:auto;color:var(--muted);background:0 0;font-size:11px;position:static}.dashboard-progress-heading .cancel-processing{margin:0 0 0 auto}.dashboard-progress>div:last-child{background:var(--grid);border-radius:20px;height:3px;margin-top:8px;overflow:hidden}.dashboard-progress>div:last-child i{border-radius:inherit;background:var(--mint);height:100%;transition:width .25s;display:block}.chart-empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:285px;padding:32px;display:flex}.chart-empty-state strong{font-size:13px}.chart-empty-state p{max-width:340px;color:var(--muted);margin:7px 0 0;font-size:11px;line-height:1.5}.driving-heatmap{min-width:720px;padding:18px 20px 22px;overflow:hidden}.dash-panel:has(.driving-heatmap){overflow-x:auto}.heatmap-hours,.heatmap-row{grid-template-columns:48px repeat(24,minmax(18px,1fr));align-items:center;gap:4px;display:grid}.heatmap-hours{margin-bottom:5px}.heatmap-hours small{color:var(--muted);text-align:center;font-size:8px}.heatmap-row{margin-top:4px}.heatmap-row strong{color:var(--muted);font-size:9px;font-weight:600}.heatmap-row i{background:var(--mint);border-radius:3px;height:18px}.dashboard-error{color:var(--red)}.dashboard-main>footer{color:var(--muted)}@media (max-width:1180px){.overview-metrics,.charging-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.master-detail .technical-grid{grid-template-columns:1fr}.overview-metrics .dash-metric:nth-child(n+4){border-top:1px solid var(--line)}.detail-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:850px){.dashboard-shell{display:block}.dashboard-sidebar{display:none}.mobile-nav{background:var(--panel);border-color:var(--line);padding:8px 12px;display:flex}.mobile-nav button{color:var(--muted);background:0 0;border:1px solid #0000;border-radius:8px}.mobile-nav button.is-active{color:var(--mint);background:#20a98314;border-color:#20a98333}.dashboard-grid.two,.master-detail{grid-template-columns:1fr}.master-detail>.dash-panel:first-child{max-height:360px;position:static}.record-list{max-height:290px}.overview-metrics,.charging-metrics,.battery-metrics,.tyres-metrics,.activity-metrics,.quality-metrics,.detail-metrics,.report-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.charging-type-layout,.signal-availability{grid-template-columns:1fr}.report-form{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-topbar{padding:20px 18px}.dashboard-content{padding:20px 12px 36px}.period-bar{padding-inline:18px}.custom-period{width:100%;margin-left:0}}@media (max-width:560px){.topbar-actions{gap:6px}.theme-toggle{font-size:0}.theme-toggle span{margin:0}.overview-metrics,.charging-metrics,.battery-metrics,.tyres-metrics,.activity-metrics,.quality-metrics,.detail-metrics,.report-metrics{grid-template-columns:1fr 1fr}.charge-type-metrics{grid-template-columns:1fr}.charging-type-layout{padding-inline:12px}.report-form{grid-template-columns:1fr}.dash-metric{min-height:108px;padding:15px}.dash-metric strong{font-size:21px}.dashboard-topbar p{display:none}.detail-table{overflow-x:auto}.detail-table>div{min-width:650px}.quality-summary{align-items:flex-start;gap:14px}.custom-period{flex-direction:column;align-items:flex-start}.custom-period>span{display:none}.report-period small{width:100%;margin-left:0}}@media (max-width:700px){.support-card{flex-direction:column;align-items:flex-start;padding:26px}.support-card a{text-align:center;width:100%}}
