:root{--ink: #14110f;--eucalypt: #2f6f4f;--honey: #e3a008;--signal: #c0392b;--surface: #ffffff;--bg: #f6f5f3;--line: #e4e0db;--muted: #6b6560;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button{font:inherit;cursor:pointer;border-radius:8px;border:1px solid var(--line);background:var(--surface);padding:8px 14px;min-height:40px}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--eucalypt);color:#fff;border-color:var(--eucalypt)}button.danger{background:var(--signal);color:#fff;border-color:var(--signal)}input,select,textarea{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);min-height:40px;width:100%}.app-header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:var(--surface);border-bottom:1px solid var(--line)}.app-header h1{font-size:18px;margin:0}.app-body{display:flex;align-items:flex-start}.sidenav{display:flex;flex-direction:column;gap:4px;width:200px;flex-shrink:0;padding:16px 12px;background:var(--surface);border-right:1px solid var(--line);position:sticky;top:0;height:calc(100vh - 57px);overflow-y:auto}.sidenav button{text-align:left;width:100%;border-color:transparent;background:transparent;min-height:36px;padding:6px 12px}.sidenav button:hover{background:var(--bg);border-color:var(--line)}.sidenav button[aria-selected=true]{background:var(--ink);color:#fff;border-color:var(--ink)}.app-main{flex:1;min-width:0}.container{max-width:920px;margin:0 auto;padding:20px}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:12px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.tag{display:inline-block;padding:2px 8px;border-radius:999px;background:var(--bg);border:1px solid var(--line);font-size:12px;color:var(--muted)}.tag.block{color:var(--signal);border-color:var(--signal)}.tag.warn{color:#b45309;border-color:#f59e0b;background:#f59e0b14}.muted{color:var(--muted);font-size:13px}.center{display:flex;min-height:60vh;align-items:center;justify-content:center}.login{width:340px;display:flex;flex-direction:column;gap:12px}.error{color:var(--signal);font-size:13px}.context{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px;white-space:pre-wrap;word-break:break-word}.timeline{list-style:none;margin:0;padding:0;position:relative}.timeline:before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:2px;background:var(--line)}.timeline-item{position:relative;padding:0 0 16px 24px}.timeline-item:last-child{padding-bottom:0}.timeline-dot{position:absolute;left:0;top:5px;width:12px;height:12px;border-radius:50%;border:2px solid var(--surface);box-shadow:0 0 0 1px var(--line)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.rtable{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}.rtable th,.rtable td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);font-size:14px;vertical-align:middle}.rtable thead th{font-size:12px;color:var(--muted);background:var(--bg)}.rtable tbody tr:last-child td{border-bottom:none}.rtable tbody tr.flagged{background:color-mix(in srgb,var(--signal) 6%,var(--surface))}.timeline{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:8px;overflow:hidden}.timeline li{display:flex;justify-content:space-between;gap:12px;padding:6px 10px;font-size:13px;border-bottom:1px solid var(--line)}.timeline li:last-child{border-bottom:none}.arb{border:1px solid var(--signal);border-radius:12px;padding:12px;background:color-mix(in srgb,var(--signal) 5%,var(--surface))}.evidence{border-top:1px solid var(--line);padding-top:12px}.weight{border:1px solid var(--line);border-radius:8px;padding:10px;background:var(--bg);margin-bottom:12px}.weight.swap{border-color:var(--signal);background:color-mix(in srgb,var(--signal) 8%,var(--surface))}.evrow{display:flex;gap:12px;padding:6px 0;font-size:14px;border-bottom:1px solid var(--line)}.evrow>.muted:first-child{flex:0 0 160px}.evlist{margin:6px 0 0;padding-left:18px;font-size:13px}.evlist li{margin-bottom:4px}.thumbs{display:flex;flex-wrap:wrap;gap:8px}.thumb{width:72px;height:72px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}.evkey{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--muted);word-break:break-all}.status-ok{color:#1f7a4d;border-color:#1f7a4d}.status-warning{color:#9a6a00;border-color:var(--honey)}.status-danger{color:#fff;background:var(--signal);border-color:var(--signal)}.gauge{position:relative;height:34px;background:var(--bg);border:1px solid var(--line);border-radius:8px;overflow:hidden;margin:8px 0 6px}.gauge-fill{position:absolute;top:0;bottom:0;left:0;border-radius:8px 0 0 8px;transition:width .2s ease}.gauge-fill.ok{background:color-mix(in srgb,var(--eucalypt) 55%,#fff)}.gauge-fill.warning{background:color-mix(in srgb,var(--honey) 70%,#fff)}.gauge-fill.danger{background:color-mix(in srgb,var(--signal) 70%,#fff)}.gauge-line{position:absolute;top:-3px;bottom:-3px;width:2px}.gauge-line.warn{background:var(--honey)}.gauge-line.mon{background:var(--signal)}.gauge-line span{position:absolute;top:-16px;left:50%;transform:translate(-50%);white-space:nowrap;font-size:10px;color:var(--muted)}.gauge-axis{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:12px}.metric{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px}.metric .big{font-size:30px;font-weight:700;line-height:1.1;margin:4px 0}.reference-note{font-size:12px;color:var(--muted);border-left:3px solid var(--honey);padding:6px 10px;background:var(--bg);border-radius:0 8px 8px 0;margin:8px 0 16px}.probe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin:12px 0 4px}.probe{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px}.probe.down{border:2px solid var(--signal);padding:11px 13px}.probe.down .probe-name{font-weight:700;color:var(--signal)}.probe-status{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:999px;border:1px solid var(--line);font-size:12px;font-weight:600;letter-spacing:.02em}.probe-status.ok{color:#1f7a4d;border-color:#1f7a4d;background:color-mix(in srgb,var(--eucalypt) 10%,var(--surface))}.probe-status.warn{color:#9a6a00;border-color:var(--honey);background:color-mix(in srgb,var(--honey) 14%,var(--surface))}.probe-status.down{color:#fff;background:var(--signal);border-color:var(--signal)}.probe-status.neutral{color:var(--muted);background:var(--bg)}.probe-name{font-size:14px;margin-top:8px}.probe-meta{font-size:12px;color:var(--muted);margin-top:3px}.count-pill{display:inline-block;min-width:30px;text-align:center;padding:1px 8px;border-radius:999px;background:var(--ink);color:#fff;font-size:12px;font-weight:700}.egroup{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin-bottom:6px}.egroup summary{cursor:pointer}.egroup-items{margin-top:8px;border-top:1px solid var(--line)}.egroup-item{padding:6px 0;border-bottom:1px solid var(--line)}.egroup-item:last-child{border-bottom:none}.allclear{color:#1f7a4d;background:color-mix(in srgb,var(--eucalypt) 8%,var(--surface));border:1px solid #1f7a4d;border-radius:12px;padding:12px 14px;font-size:14px}.sub-lines{margin-top:8px;border-top:1px solid var(--line);padding-top:8px;display:flex;flex-direction:column;gap:4px}.sub-line{display:flex;justify-content:space-between;gap:12px;font-size:13px}.skeleton{color:var(--muted);font-weight:400}.period-btns button[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}.governance{border:2px solid var(--honey);background:color-mix(in srgb,var(--honey) 5%,var(--surface));border-radius:12px;padding:16px;margin:16px 0}.policy-big{font-size:34px;font-weight:800;line-height:1.1;margin-top:8px}.banner-danger{background:color-mix(in srgb,var(--signal) 10%,var(--surface));border:1px solid var(--signal);color:var(--signal);padding:10px 12px;border-radius:8px;font-size:13px;font-weight:600;margin:10px 0}.worked-example{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:13px}.rtable tbody tr.revoked td{opacity:.55}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--ink) 45%,transparent);display:flex;align-items:center;justify-content:center;z-index:20;padding:20px}.modal{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:20px;width:min(560px,100%);box-shadow:0 12px 40px color-mix(in srgb,var(--ink) 25%,transparent)}.camp-step{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}.camp-sub{font-size:14px;font-weight:700;margin:18px 0 6px}.camp-label{display:block;font-size:12px;font-weight:600;margin-bottom:4px}.camp-details{margin-top:12px;font-size:13px}.camp-details summary{cursor:pointer;color:var(--muted)}.camp-exclusions,.camp-blockers{margin:8px 0 0;padding-left:18px;font-size:13px;line-height:1.6}.camp-warn{margin-top:10px;padding:10px 12px;border-radius:8px;font-size:13px;line-height:1.55;color:color-mix(in srgb,var(--honey) 60%,var(--ink));background:color-mix(in srgb,var(--honey) 12%,var(--surface));border:1px solid var(--honey)}.camp-channels{display:flex;flex-direction:column;gap:10px}.camp-channel{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:10px;cursor:pointer}.camp-channel input{width:auto;min-height:0;margin-top:3px}.camp-channel span{display:flex;flex-direction:column;gap:3px}.camp-channel-off{cursor:default;background:var(--bg)}.camp-tag-off{align-self:flex-start;margin-top:2px}.camp-reason{font-size:12px;color:var(--muted);line-height:1.5}.camp-counts{display:flex;gap:24px;flex-wrap:wrap;margin:14px 0}.camp-count{display:flex;flex-direction:column}.camp-count-n{font-size:30px;font-weight:800;line-height:1.1}.camp-links-ok,.camp-links-bad{border-radius:10px;padding:12px;font-size:13px;margin:12px 0}.camp-links-ok{border:1px solid var(--eucalypt);background:color-mix(in srgb,var(--eucalypt) 8%,var(--surface))}.camp-links-bad{border:1px solid var(--signal);background:color-mix(in srgb,var(--signal) 8%,var(--surface))}.camp-link{margin-top:8px}.camp-link code{word-break:break-all}.camp-link-probes{display:flex;gap:12px;flex-wrap:wrap;margin-top:4px;font-size:12px}.camp-probe-ok{color:var(--eucalypt);font-weight:600}.camp-probe-word{text-transform:uppercase;letter-spacing:.04em;font-size:11px}.camp-probe-bad{color:var(--signal);font-weight:600}.camp-email{width:100%;height:420px;border:1px solid var(--line);border-radius:10px;background:#fff}.camp-push{display:flex;flex-direction:column;gap:4px;border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:14px;background:var(--bg);max-width:420px}.camp-linkbtn{background:none;border:none;padding:0;min-height:0;color:var(--eucalypt);text-decoration:underline;font-size:13px}.camp-recipients{max-height:320px;overflow:auto;margin-top:8px;border:1px solid var(--line);border-radius:10px}.camp-confirm{border:1px solid var(--signal);border-radius:10px;padding:14px;font-size:14px;line-height:1.6;background:color-mix(in srgb,var(--signal) 5%,var(--surface))}.camp-sent{margin-top:10px;padding:12px 14px;border-radius:8px;font-size:13px;line-height:1.6;background:var(--surface);border:1px solid var(--line)}.camp-progress>p:first-child{margin-top:0}.camp-progress-bar{margin:10px 0;height:8px;border-radius:999px;overflow:hidden;background:color-mix(in srgb,var(--ink) 10%,var(--surface))}.camp-progress-fill{display:block;height:100%;border-radius:999px;background:var(--eucalypt);transition:width .24s ease-out}@media(prefers-reduced-motion:reduce){.camp-progress-fill{transition:none}}.camp-progress-stopped .camp-progress-fill{background:color-mix(in srgb,var(--ink) 45%,var(--surface))}.camp-progress-counts{margin:10px 0;padding-left:18px;display:grid;gap:4px}.camp-progress-counts strong{font-variant-numeric:tabular-nums}
