:root{--teal:#35c7bd;--teal-hover:#2aa69d;--teal-tint:#35c7bd1f;--teal-tint-strong:#35c7bd33;--orange:#ff8a3d;--ink:#0f3532;--body:#4a6763;--section:#f4faf8;--muted:#6e8f8a;--link:#2aa69d;--link-hover:#1e8079;--border:#0f35321a;--border-strong:#0f35322e;--danger:#c2543d;--danger-bg:#c2543d1a;--radius-card:20px;--radius-btn:14px;color:var(--body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fff;font-family:Nunito,system-ui,Segoe UI,Roboto,sans-serif;font-size:15px;font-weight:600;line-height:1.6}*{box-sizing:border-box}body{margin:0}h1,h2,h3{color:var(--ink);letter-spacing:-.02em;margin:0;font-weight:900}h1{font-size:28px}h2{font-size:22px}h3{font-size:17px}a{color:var(--link);text-decoration:none}a:hover{color:var(--link-hover)}code,.mono{font-family:ui-monospace,Consolas,monospace;font-size:.92em}.wordmark{color:var(--teal);letter-spacing:-.02em;font-weight:900}.wordmark .dot{color:var(--orange)}button{border-radius:var(--radius-btn);cursor:pointer;border:none;padding:10px 18px;font-family:inherit;font-size:15px;font-weight:800;transition:background-color .15s,color .15s}.btn-primary{background:var(--teal);color:#fff}.btn-primary:hover:not(:disabled){background:var(--teal-hover)}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.btn-secondary{background:var(--teal-tint);color:var(--ink)}.btn-secondary:hover:not(:disabled){background:var(--teal-tint-strong)}.btn-ghost{color:var(--muted);background:0 0;border-radius:9px;padding:4px 10px;font-size:13px;font-weight:700}.btn-ghost:hover{background:var(--teal-tint);color:var(--ink)}label{color:var(--ink);margin-bottom:6px;font-size:13px;font-weight:800;display:block}input,select{border:1.5px solid var(--border-strong);border-radius:var(--radius-btn);width:100%;color:var(--ink);background:#fff;padding:10px 12px;font-family:inherit;font-size:15px;font-weight:600}input:focus,select:focus{border-color:var(--teal);outline:none}select{width:auto;padding:7px 10px;font-size:14px;font-weight:700}.shell{flex-direction:column;min-height:100vh;display:flex}.topbar{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:20px;padding:14px clamp(16px,3vw,32px);display:flex}.topbar .wordmark{font-size:24px}.staff-badge{text-transform:uppercase;letter-spacing:.06em;color:var(--ink);background:var(--teal-tint);border-radius:999px;padding:3px 9px;font-size:11px;font-weight:800}nav.tabs{flex-wrap:wrap;gap:4px;margin-left:auto;display:flex}nav.tabs a{border-radius:var(--radius-btn);color:var(--body);padding:7px 14px;font-size:14px;font-weight:800;transition:background-color .15s,color .15s}nav.tabs a:hover{background:var(--teal-tint);color:var(--ink)}nav.tabs a.active{background:var(--teal);color:#fff}main{flex:1;width:100%;max-width:1220px;margin:0 auto;padding:clamp(20px,3vw,36px) clamp(16px,3vw,32px)}.view-head{flex-wrap:wrap;align-items:baseline;gap:14px;margin-bottom:20px;display:flex}.view-head .sub{color:var(--muted);font-size:14px}.view-head .spacer{margin-left:auto}.card{background:var(--section);border-radius:var(--radius-card);padding:20px}.section-gap{margin-top:28px}.tile-grid{grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:12px;display:grid}.tile{background:var(--section);border-radius:var(--radius-card);padding:16px 18px}.tile .n{color:var(--ink);letter-spacing:-.03em;font-size:30px;font-weight:900;line-height:1.1}.tile .label{color:var(--body);margin-top:2px;font-size:13px;font-weight:700}.tile .note{color:var(--muted);margin-top:6px;font-size:12px;font-weight:600}.tile.attention{box-shadow:inset 3px 0 0 var(--orange);background:#ff8a3d14}.tile.attention .n{color:var(--ink)}.group-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:24px 0 10px;font-size:12px;font-weight:800}.table-wrap{border:1px solid var(--border);border-radius:var(--radius-card);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap;background:var(--section);padding:11px 14px;font-size:12px;font-weight:800}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover{color:var(--ink)}td{border-bottom:1px solid var(--border);color:var(--ink);vertical-align:top;padding:10px 14px}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:var(--section)}.num{text-align:right;font-variant-numeric:tabular-nums}th.num{text-align:right}.dim{color:var(--muted)}.sensitive-hidden{color:var(--muted);letter-spacing:.12em}.sensitive-value{color:var(--ink)}.state{text-align:center;color:var(--muted);padding:40px 20px;font-weight:700}.state.error{color:var(--danger);background:var(--danger-bg);border-radius:var(--radius-card)}.centre-page{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.panel{background:#fff;border-radius:28px;width:100%;max-width:380px;padding:32px;box-shadow:0 24px 60px #0f35322e}.panel .wordmark{margin-bottom:4px;font-size:34px;display:block}.field{margin-bottom:14px}.form-error{background:var(--danger-bg);color:var(--danger);border-radius:var(--radius-btn);margin-bottom:14px;padding:10px 12px;font-size:13px;font-weight:700}.divider{color:var(--muted);align-items:center;gap:10px;margin:18px 0;font-size:12px;font-weight:700;display:flex}.divider:before,.divider:after{content:"";background:var(--border);flex:1;height:1px}.chart-legend{color:var(--body);flex-wrap:wrap;gap:16px;margin-bottom:12px;font-size:13px;font-weight:700;display:flex}.chart-legend .swatch{vertical-align:-1px;border-radius:3px;width:11px;height:11px;margin-right:6px;display:inline-block}.funnel-row{margin-bottom:14px}.funnel-head{color:var(--ink);justify-content:space-between;margin-bottom:4px;font-size:14px;font-weight:800;display:flex}.funnel-track{background:#0f35320f;border-radius:8px;height:26px;overflow:hidden}.funnel-fill{background:var(--teal);border-radius:8px;height:100%}.funnel-drop{color:var(--muted);margin-top:3px;font-size:12px;font-weight:700}.issue{border-bottom:1px solid var(--border);align-items:flex-start;gap:14px;padding:14px 16px;display:flex}.issue:last-child{border-bottom:none}.issue .count{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;min-width:44px;font-size:22px;font-weight:900}.issue.hot .count{color:var(--orange)}.issue .name{color:var(--ink);font-weight:800}.issue .hint{color:var(--body);margin-top:2px;font-size:13px}
