:root{--bg:#f5f4ef;--panel:#fff;--ink:#19211c;--muted:#6f776f;--line:#dedfd8;--brand:#176b4d;--shadow:0 12px 35px #1a281f14}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font:14px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}button,input,select{font:inherit}.shell{max-width:1500px;margin:auto;padding:24px}.hero{display:flex;justify-content:space-between;align-items: flex-end;gap:20px;margin-bottom:20px}.eyebrow{letter-spacing:.13em;text-transform:uppercase;color:var(--brand);font-size:12px;font-weight:800}h1{letter-spacing:-.045em;margin:7px 0 6px;font-size:clamp(27px,4vw,48px);line-height:1.02}.sub{color:var(--muted)}.load{display:flex;flex-wrap:wrap;gap:8px}.btn{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;padding:9px 12px;font-weight:700}.btn.primary{background:var(--brand);color:#fff;border-color:var(--brand)}.btn input{display:none}.cards{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:18px 0}.card,.panel{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px}.card,.panel{padding:16px}.label{color:var(--muted);font-size:12px;font-weight:700}.value{margin-top:3px;font-size:25px;font-weight:850}.grid{display:grid;grid-template-columns:1.25fr .75fr;gap:14px}.panel h2{margin:0 0 14px;font-size:15px}.histogram{display:flex;border-bottom:1px solid var(--line);align-items: flex-end;gap:5px;height:230px;padding:10px 4px 28px}.histcol{display:flex;color:var(--muted);flex-direction:column;flex:1;justify-content:flex-end;align-items: center;gap:3px;height:190px;font-size:10px}.histcol i{display:block;background:var(--brand);width:calc(100% - 8px);min-height:1px}.histcol b{position:absolute;font-weight:500;transform:translateY(20px)}.bars{display:grid;overflow-y:auto;scrollbar-gutter:stable;gap:10px;max-height:230px;padding-right:7px}.barrow{display:grid;grid-template-columns:minmax(120px,1fr)3fr 60px;align-items: center;gap:10px}.track{overflow:hidden;background:#edf0eb;border-radius:99px;height:9px}.fill{background:var(--brand);border-radius:99px;height:100%}.wide{margin-top:14px}.quadrant{display:block;cursor:crosshair;width:100%;height:520px}.charttip{position:fixed;pointer-events:none;color:#fff;white-space:pre-line;z-index:20;background:#17231c;border-radius:8px;padding:8px 10px}.legend,.footer{color:var(--muted);margin-top:8px;font-size:12px}.controls{display:grid;grid-template-columns:minmax(240px,2fr)repeat(4,minmax(120px,1fr));gap:9px;margin:14px 0}.control{border:1px solid var(--line);background:#fff;border-radius:10px;width:100%;padding:10px 11px}.tablewrap{overflow:auto;border:1px solid var(--line);background:#fff;border-radius:12px;max-height:630px}table{border-collapse:separate;border-spacing:0;width:100%;min-width:1250px}th,td{text-align:left;white-space:nowrap;border-bottom:1px solid #ecece6;padding:10px 12px}th{position:sticky;z-index:2;color:#59615b;text-transform:uppercase;cursor:pointer;background:#f8f8f4;font-size:11px;top:0}td.kw{font-weight:760}td.kw a{color:#183c2e;text-decoration:none;border-bottom:1px solid #0000}td.kw a:hover{color:var(--brand);border-bottom-color:currentColor}.num{text-align:right;font-variant-numeric:tabular-nums}.pill{display:inline-flex;color:#1c654b;background:#edf7f1;border-radius:99px;padding:3px 7px;font-size:11px}.risk{color:#98400f;background:#fff0e8}@media (max-width:980px){.cards{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}.controls{grid-template-columns:1fr 1fr}.hero{flex-direction:column;align-items: flex-start}}@media (max-width:560px){.shell{padding:14px}.cards,.controls{grid-template-columns:1fr}}.quadrantWrap{position:relative}.chartLegend{display:flex;color:var(--muted);flex-wrap:wrap;align-items: center;gap:8px 12px;margin-top:8px;font-size:12px}.chartLegend span{border-right:1px solid var(--line);padding-right:10px}.rating{display:inline-block;border-radius:50%;width:9px;height:9px;margin-right:-8px}.rating.low{background:#aeb2ad}.rating.mid{background:#7aa88d}.rating.warm{background:#d09a35}.rating.high{background:#176b4d}.rating.missing{background:#9ca39e}
