:root{--bg: #12151a;--surface: #1a1f26;--surface-2: #1e252e;--ink: #e8edf2;--ink-2: #c3cbd4;--muted: #8b949e;--line: #2d3640;--line-strong: #3d4854;--brand: #f2a144;--brand-hover: #f6b469;--brand-ink: #12151a;--brand-soft: color-mix(in srgb, #f2a144 14%, transparent);--danger: #e05a45;--danger-soft: color-mix(in srgb, #e05a45 15%, transparent);--warn: #f2a144;--warn-soft: color-mix(in srgb, #f2a144 14%, transparent);--info: #4f8fd6;--info-soft: color-mix(in srgb, #4f8fd6 16%, transparent);--ok: #3dba7e;--ok-soft: color-mix(in srgb, #3dba7e 15%, transparent);--radius: 14px;--radius-sm: 10px;--shadow: 0 1px 2px rgb(0 0 0 / .25), 0 6px 18px rgb(0 0 0 / .25);--font: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font);font-size:16px;line-height:1.5;color:var(--ink);background:radial-gradient(900px 420px at 0% 0%,#243041 0%,transparent 55%),radial-gradient(700px 360px at 100% 0%,#2a2118 0%,transparent 50%),var(--bg);background-attachment:fixed;-webkit-font-smoothing:antialiased}button,input{font:inherit;color:inherit}h1,h2,h3{margin:0;line-height:1.25;letter-spacing:-.01em}p{margin:0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}:focus-visible{outline:3px solid color-mix(in srgb,var(--brand) 55%,transparent);outline-offset:2px}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:10;background:#12151ae0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.topbar-inner{max-width:1200px;margin:0 auto;padding:.75rem 1.25rem;display:flex;align-items:center;gap:1.25rem}.brand{display:flex;align-items:center;gap:.6rem;border:0;background:none;padding:0;cursor:pointer;text-align:left}.brand-mark{display:block;width:36px;height:36px;border-radius:8px;object-fit:contain;flex-shrink:0}.brand strong{display:block;font-size:1rem}.brand small{display:block;font-size:.78rem;color:var(--muted)}.nav{display:flex;gap:.25rem;margin-left:auto}.nav button{border:0;background:none;padding:.55rem .9rem;border-radius:999px;font-weight:500;color:var(--ink-2);cursor:pointer;white-space:nowrap}.nav button:hover:not(:disabled){background:var(--surface-2)}.nav button.active{background:var(--brand-soft);color:var(--brand)}.nav button:disabled{color:var(--line-strong);cursor:not-allowed}.topbar-status{display:flex;align-items:center;gap:.5rem;margin-left:auto}.source-pill{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:500;padding:.3rem .65rem;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2);white-space:nowrap}.source-pill .dot{width:8px;height:8px;border-radius:50%;background:var(--muted)}.source-pill.live .dot{background:var(--ok);box-shadow:0 0 0 3px var(--ok-soft)}.source-pill.demo .dot{background:var(--warn)}.icon-btn{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;border:1px solid var(--line);background:var(--surface);cursor:pointer;color:var(--ink-2)}.icon-btn:hover:not(:disabled){border-color:var(--line-strong)}.icon-btn:disabled{opacity:.5;cursor:progress}.icon-btn.active{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}.help-wrap{position:relative}.help-popover{position:absolute;top:calc(100% + .5rem);right:0;z-index:20;width:min(360px,calc(100vw - 2rem));padding:.9rem 1rem;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow)}.help-popover-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.help-popover ul{margin:0;padding:0;list-style:none;display:grid;gap:.55rem;font-size:.9rem;color:var(--ink-2)}.help-popover li{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.page{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:1.5rem 1.25rem 3rem}.footer{display:flex;align-items:center;justify-content:center;gap:.4rem;padding:1rem;font-size:.82rem;color:var(--muted);border-top:1px solid var(--line);background:var(--surface)}.notice{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;padding:.8rem 1rem;margin-bottom:1.25rem;border-radius:var(--radius-sm);background:var(--warn-soft);color:#ffd9a8;border:1px solid color-mix(in srgb,var(--warn) 25%,transparent);font-size:.92rem}.notice>span{flex:1;min-width:200px}.notice>svg{flex-shrink:0}.link-btn{border:0;background:none;padding:0;margin-left:.25rem;color:var(--brand);font-weight:600;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.7rem 1.1rem;border-radius:var(--radius-sm);font-weight:600;font-size:.95rem;cursor:pointer;border:1px solid transparent;transition:background .12s ease,border-color .12s ease}.btn-primary{background:var(--brand);color:var(--brand-ink)}.btn-primary:hover{background:var(--brand-hover)}.btn-secondary{background:var(--surface);color:var(--brand);border-color:color-mix(in srgb,var(--brand) 35%,var(--line))}.btn-secondary:hover{background:var(--brand-soft)}.muted{color:var(--muted)}.muted-strong{color:var(--ink-2);font-weight:600}.hint{margin-top:.75rem;font-size:.86rem;color:var(--muted);display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.text-danger{color:var(--danger)}.text-warn{color:var(--warn)}.text-ok{color:var(--ok)}.bg-danger{background:var(--danger)!important}.bg-warn{background:var(--warn)!important}.bg-ok{background:var(--ok)!important}.status-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .6rem;border-radius:999px;font-size:.78rem;font-weight:600;white-space:nowrap}.status-badge.sev-act_now{background:var(--danger-soft);color:var(--danger)}.status-badge.sev-attention{background:var(--warn-soft);color:var(--warn)}.status-badge.sev-sensor{background:var(--info-soft);color:var(--info)}.status-badge.sev-ok{background:var(--ok-soft);color:var(--ok)}.health{display:flex;align-items:center;gap:.5rem;min-width:120px}.health-track{flex:1;height:8px;border-radius:999px;background:var(--line);overflow:hidden}.health-fill{display:block;height:100%;border-radius:999px;transition:width .3s ease}.health-fill.sev-act_now{background:var(--danger)}.health-fill.sev-attention{background:var(--warn)}.health-fill.sev-ok{background:var(--ok)}.health-value{font-weight:700;font-size:.9rem;min-width:2.6rem;text-align:right}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem 1.35rem;box-shadow:var(--shadow)}.card h2{font-size:1.1rem;margin-bottom:.75rem}.card h3{font-size:.95rem;margin:1.25rem 0 .6rem}.card-title-row{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.section{margin-top:2rem}.section-title{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;margin-bottom:.9rem}.section-actions{display:flex;align-items:center;gap:.65rem;flex-wrap:nowrap;margin-left:auto}.section-actions .search{min-width:0;width:min(280px,52vw);flex:0 1 auto}.section-actions .download-csv-btn{flex-shrink:0;white-space:nowrap}.section-title h2{font-size:1.25rem}.section-title p{color:var(--muted);font-size:.9rem}.hero{display:flex;align-items:center;gap:1.25rem;padding:1.5rem 1.6rem;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-left-width:6px}.hero.sev-act_now{border-left-color:var(--danger);background:linear-gradient(90deg,var(--danger-soft),var(--surface) 55%)}.hero.sev-attention{border-left-color:var(--warn);background:linear-gradient(90deg,var(--warn-soft),var(--surface) 55%)}.hero.sev-sensor{border-left-color:var(--info);background:linear-gradient(90deg,var(--info-soft),var(--surface) 55%)}.hero.sev-ok{border-left-color:var(--ok);background:linear-gradient(90deg,var(--ok-soft),var(--surface) 55%)}.hero-icon{display:grid;place-items:center;width:56px;height:56px;flex-shrink:0;border-radius:16px;background:var(--surface);box-shadow:var(--shadow)}.hero.sev-act_now .hero-icon{color:var(--danger)}.hero.sev-attention .hero-icon{color:var(--warn)}.hero.sev-sensor .hero-icon{color:var(--info)}.hero.sev-ok .hero-icon{color:var(--ok)}.hero-text{flex:1;min-width:0}.hero-text h1{font-size:clamp(1.35rem,2.6vw,1.75rem)}.hero-text p{margin-top:.3rem;color:var(--ink-2)}.hero-meta{font-size:.85rem;color:var(--muted)!important}.hero-score{text-align:right;padding-left:1.25rem;border-left:1px solid var(--line)}.hero-score-value{display:block;font-size:2.4rem;font-weight:800;line-height:1}.hero-score-label{display:block;margin-top:.3rem;font-size:.82rem;color:var(--muted)}.filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-top:1rem}.count-card{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto auto;column-gap:.75rem;align-items:center;text-align:left;padding:1rem;border-radius:var(--radius);border:2px solid var(--line);background:var(--surface);cursor:pointer;transition:border-color .12s ease,transform .12s ease}.count-card:hover{transform:translateY(-1px);border-color:var(--line-strong)}.count-icon{grid-row:span 3;display:grid;place-items:center;width:40px;height:40px;border-radius:12px}.count-num{font-size:1.6rem;font-weight:800;line-height:1.1}.count-label{font-weight:600;font-size:.92rem}.count-pct{font-size:.8rem;color:var(--muted)}.count-card.sev-act_now .count-icon{background:var(--danger-soft);color:var(--danger)}.count-card.sev-attention .count-icon{background:var(--warn-soft);color:var(--warn)}.count-card.sev-sensor .count-icon{background:var(--info-soft);color:var(--info)}.count-card.sev-ok .count-icon{background:var(--ok-soft);color:var(--ok)}.count-card.active.sev-act_now{border-color:var(--danger)}.count-card.active.sev-attention{border-color:var(--warn)}.count-card.active.sev-sensor{border-color:var(--info)}.count-card.active.sev-ok{border-color:var(--ok)}.search{display:flex;align-items:center;gap:.5rem;padding:.5rem .8rem;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--muted);min-width:min(320px,100%)}.search input{border:0;outline:0;background:none;width:100%;color:var(--ink)}.filter-note{margin-bottom:.75rem;font-size:.9rem;color:var(--ink-2)}.pump-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.75rem}.pump-tile{height:100%;display:flex;flex-direction:column;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);overflow:hidden;transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease}.pump-tile-body{flex:1;width:100%;text-align:left;display:flex;flex-direction:column;gap:.3rem;padding:1rem;border:0;background:none;cursor:pointer}.pump-tile-fault{font-size:.88rem;font-weight:600;color:var(--ink-2)}.pump-tile-fault span{font-weight:400;color:var(--muted)}.pump-tile-actions{display:grid;grid-template-columns:1fr;gap:.4rem;padding:0 1rem 1rem}.btn-sm{padding:.5rem .7rem;font-size:.85rem}.pump-tile:hover{border-color:var(--line-strong);box-shadow:var(--shadow);transform:translateY(-1px)}.pump-tile.sev-act_now{border-color:color-mix(in srgb,var(--danger) 45%,var(--line))}.pump-tile.sev-attention{border-color:color-mix(in srgb,var(--warn) 45%,var(--line))}.pump-tile-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.2rem}.pump-tile-head strong{white-space:nowrap}.pump-tile-head{flex-wrap:wrap}.pump-tile-system{font-weight:600;font-size:.95rem}.pump-tile-site,.pump-tile-mode{font-size:.84rem;color:var(--muted)}.pump-tile-row{display:flex;align-items:center;gap:.6rem;font-size:.84rem;color:var(--muted);margin:.35rem 0 .1rem}.pump-tile-row .health{flex:1}.empty,.empty-page{display:flex;flex-direction:column;align-items:center;gap:.6rem;padding:2.5rem 1rem;text-align:center;color:var(--muted);background:var(--surface);border:1px dashed var(--line-strong);border-radius:var(--radius)}.empty-page{padding:4rem 1rem}.empty-page h1{color:var(--ink);font-size:1.4rem}.legend{margin:1rem 0 0;padding:1rem 1.25rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line)}.legend summary,.tech summary{display:flex;align-items:center;gap:.4rem;font-weight:600;cursor:pointer;color:var(--ink-2)}.legend ul{margin:.85rem 0 0;padding:0;list-style:none;display:grid;gap:.6rem;font-size:.92rem;color:var(--ink-2)}.legend li{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.back-link{display:inline-flex;align-items:center;gap:.35rem;border:0;background:none;padding:0;margin-bottom:1rem;color:var(--brand);font-weight:600;cursor:pointer}.pump-hero{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:1.5rem;padding:1.5rem 1.6rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);border-left:6px solid var(--line-strong);box-shadow:var(--shadow)}.pump-hero.sev-act_now{border-left-color:var(--danger)}.pump-hero.sev-attention{border-left-color:var(--warn)}.pump-hero.sev-sensor{border-left-color:var(--info)}.pump-hero.sev-ok{border-left-color:var(--ok)}.pump-hero-top{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;font-size:.88rem;margin-bottom:.5rem}.pump-hero h1{font-size:clamp(1.3rem,2.4vw,1.65rem)}.pump-hero-summary{margin-top:.5rem;font-size:1.02rem;color:var(--ink-2)}.pump-hero-facts{margin:0;display:grid;gap:.75rem;align-content:center;padding-left:1.5rem;border-left:1px solid var(--line)}.pump-hero-facts dt{font-size:.8rem;color:var(--muted)}.pump-hero-facts dd{margin:.1rem 0 0;font-weight:500}.pump-hero-facts dd.strong{font-weight:700;font-size:1.05rem}.tabs{display:flex;gap:.5rem;margin:1.5rem 0 1rem;padding:.35rem;border-radius:999px;background:var(--surface);border:1px solid var(--line);width:fit-content;max-width:100%}.tabs button{display:inline-flex;align-items:center;gap:.45rem;border:0;background:none;padding:.65rem 1.15rem;border-radius:999px;font-weight:600;color:var(--ink-2);cursor:pointer}.tabs button.active{background:var(--brand);color:var(--brand-ink)}.tab-body{display:grid;gap:1rem}.tab-body>.grid-2{margin-bottom:0}.confidence{margin-top:1rem;padding:.85rem;border-radius:var(--radius-sm);background:var(--surface-2)}.confidence-head{display:flex;justify-content:space-between;gap:.75rem;margin-bottom:.5rem;font-size:.9rem;color:var(--ink-2)}.signs{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}.sign{display:grid;gap:.35rem;padding:.7rem .8rem;border-radius:var(--radius-sm);border:1px solid var(--line)}.sign div:first-child{display:flex;justify-content:space-between;gap:.75rem;flex-wrap:wrap;font-size:.92rem}.sign div:first-child span{color:var(--ink-2)}.sign-bar{height:6px;border-radius:999px;background:var(--line);overflow:hidden}.sign-bar span{display:block;height:100%;border-radius:999px}.sign.lvl-high .sign-bar span{background:var(--danger)}.sign.lvl-mid .sign-bar span{background:var(--warn)}.sign.lvl-low .sign-bar span{background:var(--info)}.sign.lvl-high div:first-child span{color:var(--danger);font-weight:600}.sign-note{margin:0;font-size:.8rem;color:var(--muted)}.sign-off{display:flex;align-items:center;gap:.4rem;margin:1rem 0 0;padding:.7rem .85rem;border-radius:var(--radius-sm);background:var(--ok-soft);color:var(--ok);font-size:.9rem;font-weight:600}.spectrum-callout{display:flex;gap:.65rem;align-items:flex-start;margin-top:1rem;padding:.85rem 1rem;border-radius:var(--radius-sm);border:1px solid color-mix(in srgb,var(--warn) 40%,var(--line));background:var(--warn-soft);color:var(--ink-2);font-size:.92rem}.spectrum-callout strong{display:block;margin-bottom:.2rem;color:var(--warn)}.spectrum-callout p{margin:0}.diagnose-panel{display:grid;gap:.85rem}.issue-legend{margin:0}.issue-accordion{display:grid;gap:.45rem;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;background:var(--surface-2)}.issue-acc{border-bottom:1px solid var(--line)}.issue-acc:last-child{border-bottom:0}.issue-acc.health-detected{border-left:3px solid var(--warn)}.issue-acc.health-ok{border-left:3px solid var(--ok)}.issue-acc-summary{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem .75rem;padding:.7rem .85rem;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.issue-acc-summary::-webkit-details-marker{display:none}.issue-acc-chevron{width:.45rem;height:.45rem;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(-45deg);transition:transform .15s ease;margin-left:.15rem}.issue-acc[open]>.issue-acc-summary .issue-acc-chevron{transform:rotate(45deg)}.issue-acc-title{font-weight:650;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;min-width:0}.health-badge{display:inline-flex;align-items:center;gap:.3rem;min-width:4.4rem;padding:.15rem .55rem;border-radius:999px;font-size:.75rem;font-weight:700;flex-shrink:0}.health-badge.detected{background:var(--warn-soft);color:var(--warn)}.health-badge.ok{background:var(--ok-soft);color:var(--ok)}.issue-reason{margin:0 0 .4rem;color:var(--ink-2);font-weight:600}.issue-acc-conf{display:flex;align-items:center;gap:.45rem;min-width:5.5rem;margin-left:auto}.issue-acc-conf strong{font-variant-numeric:tabular-nums;font-size:.9rem}.issue-group{display:grid;gap:.5rem}.issue-group h3{margin:0;font-size:.95rem}.issue-occ{display:inline-flex;align-items:center;gap:.4rem;font-size:.82rem;color:var(--ink-2)}.occ-list{display:grid;gap:.45rem;margin:0 0 .5rem;padding-left:1.2rem}.occ-list li{font-size:.86rem;color:var(--ink-2)}.occ-list li>*+*{margin-left:.5rem}.occ-time{color:var(--ink);font-weight:600}.occ-wrong{color:var(--danger);font-weight:600}.occ-evidence{display:block;margin:.15rem 0 0!important;color:var(--muted);font-size:.8rem;overflow-wrap:anywhere}.issue-acc-meter{width:3.25rem;height:.35rem;border-radius:999px;background:var(--surface);overflow:hidden}.issue-acc-meter>span{display:block;height:100%;border-radius:inherit;background:var(--brand)}.issue-acc-body{padding:.75rem .85rem .85rem 1.85rem;display:grid;gap:.55rem;border-top:1px dashed var(--line);margin-top:0}.issue-acc-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.55rem 1rem;margin:0}.issue-acc-meta div{display:grid;gap:.15rem}.issue-acc-meta dt{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.issue-acc-meta dd{margin:0;font-size:.88rem;color:var(--ink-2)}.issue-evidence{margin:0;font-size:.86rem;color:var(--muted);line-height:1.4}.issue-action{display:flex;align-items:flex-start;gap:.35rem;margin:0;font-size:.88rem;color:var(--ok)}.verdict-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .5rem;border-radius:999px;font-size:.75rem;font-weight:700;flex-shrink:0}.verdict-badge.pass{background:var(--ok-soft);color:var(--ok)}.verdict-badge.fail{background:var(--danger-soft);color:var(--danger)}.verdict-badge.unknown{background:var(--surface);color:var(--muted);border:1px solid var(--line)}.issue-section-acc{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);padding:.15rem 0}.issue-section-acc>summary{cursor:pointer;padding:.7rem .9rem;font-weight:650;list-style:none}.issue-section-acc>summary::-webkit-details-marker{display:none}.issue-section-acc>:not(summary){padding:0 .9rem .9rem}@media(max-width:640px){.issue-acc-conf{width:100%;margin-left:1.4rem;min-width:0}}.progress-pill{font-size:.8rem;font-weight:600;padding:.2rem .6rem;border-radius:999px;background:var(--brand-soft);color:var(--brand)}.checklist{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.checklist label{display:flex;align-items:flex-start;gap:.7rem;padding:.75rem .85rem;border-radius:var(--radius-sm);border:1px solid var(--line);cursor:pointer;transition:background .12s ease}.checklist label:hover{background:var(--surface-2)}.checklist input{width:18px;height:18px;margin-top:.15rem;accent-color:var(--ok);flex-shrink:0}.step-num{display:grid;place-items:center;width:24px;height:24px;flex-shrink:0;border-radius:50%;background:var(--brand-soft);color:var(--brand);font-size:.8rem;font-weight:700}.checklist li.done label{background:var(--ok-soft);border-color:color-mix(in srgb,var(--ok) 30%,var(--line))}.checklist li.done span:last-child{text-decoration:line-through;color:var(--muted)}.checklist li.done .step-num{background:var(--ok);color:var(--brand-ink)}.trend-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;margin-top:1rem}.trend{margin:0;padding:.9rem;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface-2)}.trend-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem}.trend-label{font-weight:600;font-size:.92rem}.trend-value{font-weight:700;font-size:1.1rem}.trend-value small{font-weight:500;color:var(--muted);font-size:.8rem}.trend-svg{width:100%;height:96px;display:block}.trend-line{stroke-width:2.5;vector-effect:non-scaling-stroke}.trend-area{opacity:.12}.trend-limit{stroke:var(--danger);stroke-dasharray:6 5;stroke-width:1.5;vector-effect:non-scaling-stroke}.tone-bad{stroke:var(--danger);fill:var(--danger);color:var(--danger)}.tone-warn{stroke:var(--warn);fill:var(--warn);color:var(--warn)}.tone-ok{stroke:var(--ok);fill:var(--ok);color:var(--ok)}.trend-line.tone-bad,.trend-line.tone-warn,.trend-line.tone-ok{fill:none}.trend-foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem;margin-top:.5rem;font-size:.8rem}.trend-note{font-weight:600}.trend-legend{display:inline-flex;align-items:center;gap:.35rem;color:var(--muted)}.limit-swatch{width:16px;border-top:2px dashed var(--danger)}.tech{padding:.9rem 1.1rem;border-radius:var(--radius-sm);border:1px dashed var(--line-strong);background:var(--surface-2);font-size:.88rem}.card .tech{margin-top:1.25rem}.tech dl{margin:.75rem 0 0;display:grid;gap:.4rem}.tech dl div{display:grid;grid-template-columns:minmax(140px,220px) 1fr;gap:.75rem}.tech dt{color:var(--muted)}.tech dd{margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;word-break:break-word}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.big-stat{display:grid;gap:.2rem;padding:1.25rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow)}.big-stat-num{font-size:2.2rem;font-weight:800;color:var(--brand);line-height:1.1}.big-stat-label{color:var(--ink-2);font-size:.92rem}.value-page .grid-2{margin-top:2rem}.compare{width:100%;border-collapse:collapse;font-size:.92rem}.compare th,.compare td{text-align:left;padding:.6rem .5rem;border-bottom:1px solid var(--line)}.compare th{font-size:.8rem;font-weight:600;color:var(--muted)}.compare td.highlight{background:color-mix(in srgb,var(--ok-soft) 60%,transparent);font-weight:600}.yes{display:inline-flex;align-items:center;gap:.25rem;color:var(--ok);font-weight:600}.no{color:var(--muted)}.kv{list-style:none;margin:0;padding:0;display:grid}.kv li{display:flex;justify-content:space-between;gap:1rem;padding:.6rem 0;border-bottom:1px solid var(--line);font-size:.92rem}.kv li span{color:var(--ink-2)}.kv li.total{border-bottom:0;font-size:1rem}.kv li.total strong{color:var(--brand)}.skeleton-page{display:grid;gap:1rem}.skeleton-label{display:flex;align-items:center;gap:.6rem;color:var(--muted);font-weight:500}.spinner{width:18px;height:18px;border:2.5px solid var(--line);border-top-color:var(--brand);border-radius:50%;animation:spin .75s linear infinite}.spin{animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.sk{border-radius:var(--radius);background:linear-gradient(90deg,#1e252e,#2a333d,#1e252e);background-size:200% 100%;animation:shimmer 1.3s ease-in-out infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.sk-hero{height:120px}.sk-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.sk-row.two{grid-template-columns:repeat(2,1fr)}.sk-card{height:90px}.sk-panel{height:260px}.sk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.75rem}.sk-tile{height:150px}@media(prefers-reduced-motion:reduce){.sk,.spinner,.spin{animation:none}}@media(max-width:960px){.filters,.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-2,.pump-hero{grid-template-columns:1fr}.pump-hero-facts{padding-left:0;border-left:0;border-top:1px solid var(--line);padding-top:1rem;grid-template-columns:repeat(2,minmax(0,1fr))}.outcomes{grid-template-columns:1fr}}@media(max-width:720px){.topbar-inner{flex-wrap:wrap}.nav{order:3;width:100%;margin-left:0;overflow-x:auto}.topbar-status{margin-left:auto}.hero{flex-direction:column;align-items:flex-start}.hero-score{text-align:left;padding-left:0;border-left:0}.tabs{width:100%}.tabs button{flex:1;justify-content:center;padding:.6rem .5rem;font-size:.88rem}.tech dl div{grid-template-columns:1fr;gap:.1rem}}.run-strip{display:flex;align-items:center;gap:.45rem;margin:0 0 1rem;font-size:.84rem;color:var(--muted)}.run-strip strong{color:var(--ink-2)}.run-strip>svg{flex-shrink:0}.notice-error{background:var(--danger-soft);color:#ffc4ba;border-color:color-mix(in srgb,var(--danger) 30%,transparent)}.analysis-dialog{width:min(720px,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);padding:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.analysis-dialog::backdrop{background:#0009}.analysis-form{display:flex;flex-direction:column;gap:1rem;padding:1.25rem}.analysis-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.analysis-head h2{font-size:1.2rem}.analysis-head .hint{margin-top:.3rem}.file-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.file-field{display:flex;flex-direction:column;gap:.4rem;padding:.75rem;border:1px dashed var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-2);cursor:pointer}.file-field.has-file{border-style:solid;border-color:color-mix(in srgb,var(--ok) 45%,var(--line))}.file-field.invalid{border-color:var(--danger)}.file-field:focus-within{outline:2px solid var(--brand);outline-offset:2px}.file-label{font-weight:600;font-size:.92rem}.file-label .req{color:var(--brand)}.file-label .opt{color:var(--muted);font-weight:400;font-size:.8rem}.file-field input[type=file]{max-width:100%;font-size:.82rem;color:var(--ink-2)}.file-help{font-size:.8rem;color:var(--muted);overflow-wrap:anywhere}.file-field.invalid .file-help{color:var(--danger)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem}.toggle{display:flex;align-items:center;gap:.55rem;font-size:.9rem;color:var(--ink-2);cursor:pointer}.toggle input{width:1rem;height:1rem;accent-color:var(--brand)}.analysis-result{padding:.8rem 1rem;border-radius:var(--radius-sm);background:var(--ok-soft);border:1px solid color-mix(in srgb,var(--ok) 30%,transparent);font-size:.92rem}.analysis-result p{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem}.analysis-notes{margin:.5rem 0 0 1.1rem;font-size:.82rem;color:var(--ink-2)}.analysis-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:.6rem}@media(max-width:640px){.file-grid{grid-template-columns:1fr}.topbar-status .btn-sm{padding-inline:.6rem}}.next-steps{display:grid;gap:1rem}.next-steps>.hint{margin:0}.next-step{display:grid;gap:.6rem;border-left:4px solid var(--line-strong)}.next-step.urgency-act_now{border-left-color:var(--danger)}.next-step.urgency-within_a_day{border-left-color:var(--warn)}.next-step.urgency-next_planned_stop{border-left-color:#e3c34a}.next-step.urgency-check_sensor{border-left-color:var(--info)}.next-step-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.next-step-head h2{margin:0}.next-step-meta{margin:.2rem 0 0;font-size:.84rem}.urgency-chip{flex-shrink:0;padding:.25rem .65rem;border-radius:999px;font-size:.78rem;font-weight:700;white-space:nowrap}.urgency-chip.urgency-act_now{background:var(--danger-soft);color:var(--danger)}.urgency-chip.urgency-within_a_day{background:var(--warn-soft);color:var(--warn)}.urgency-chip.urgency-next_planned_stop{background:color-mix(in srgb,#e3c34a 16%,transparent);color:#e3c34a}.urgency-chip.urgency-check_sensor{background:var(--info-soft);color:var(--info)}.next-step-when{display:flex;align-items:center;gap:.4rem;margin:0;color:var(--ink-2);font-weight:600}.next-step h3{margin:.2rem 0 0;font-size:.95rem}.next-step-list{display:grid;gap:.35rem;margin:0;padding-left:1.3rem}.next-step-confuse{margin:0}.next-steps-empty{display:flex;align-items:center;gap:.9rem;color:var(--ok)}.next-steps-empty h2{margin:0;color:var(--ink)}.next-steps-empty p{margin:.2rem 0 0}.section-actions{flex-wrap:wrap;max-width:100%}.section-actions .search{flex:1 1 200px;min-width:0}.issue-legend,.analysis-head .hint,.next-step-confuse{display:block}.next-step-confuse svg,.next-step-when svg{flex-shrink:0;vertical-align:-2px}.issue-acc-summary{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto auto;grid-template-areas:"chev badge title occ check"}.issue-acc-summary>.issue-acc-chevron{grid-area:chev}.issue-acc-summary>.health-badge{grid-area:badge}.issue-acc-summary>.issue-acc-title{grid-area:title}.issue-acc-summary>.issue-occ{grid-area:occ;justify-self:end}.issue-acc-summary>.verdict-badge{grid-area:check;justify-self:end}.analysis-dialog{overflow-x:hidden}.file-grid>*,.file-field{min-width:0}.file-field input[type=file]{width:100%}@media(max-width:640px){.issue-acc-summary{grid-template-columns:auto auto minmax(0,1fr) auto;grid-template-areas:"chev badge title title" ".    occ   occ   check";row-gap:.4rem}.issue-acc-summary>.issue-occ{justify-self:start}.issue-acc-title{white-space:normal}.issue-acc-body{padding-left:.85rem;padding-right:.85rem}.occ-list{padding-left:1rem}.next-step-head{flex-direction:column;gap:.5rem}.next-step-head .urgency-chip{order:-1}.analysis-dialog{width:calc(100vw - 1rem);max-height:calc(100dvh - 1rem)}.analysis-form{padding:1rem}.analysis-actions .btn{flex:1 1 auto}}.trend-grid{grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr))}.tech dd{min-width:0;overflow-wrap:anywhere}@media(max-width:640px){.tech dl div{grid-template-columns:1fr;gap:.15rem}}.issue-occ{white-space:nowrap}.pump-grid>li{display:flex}.pump-grid>li>.pump-tile{flex:1}.pump-tile-row{margin-top:auto;padding-top:.35rem}.pump-tile-system{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.file-remove{align-self:flex-start;margin-left:0;font-size:.82rem}.file-remove:disabled{opacity:.5;cursor:not-allowed}.btn:disabled,.btn:disabled:hover{opacity:.45;cursor:not-allowed;filter:saturate(.6)}.btn-primary:disabled:hover{background:var(--brand)}
