:root{color-scheme:light;--page: #f9f9f7;--surface: #fcfcfb;--surface-2: #f3f2ef;--surface-3: #ebeae6;--ink: #0b0b0b;--ink-2: #52514e;--muted: #898781;--grid: #e1e0d9;--rule: #c3c2b7;--ring: rgba(11, 11, 11, .1);--accent: #2a78d6;--accent-ink: #1c5cab;--accent-wash: rgba(42, 120, 214, .08);--s-zero: #f0efec;--s-low: #e6f3e4;--s-target: #98d193;--s-full: #96bbec;--s-over: #f9c394;--s-way: #d95752;--s-way-ink: #ffffff;--b-low: #84c87e;--b-target: #0ca30c;--b-full: #2a78d6;--b-over: #f39b45;--b-way: #d03b3b;--good: #0ca30c;--warning: #c98500;--critical: #d03b3b;--good-wash: rgba(12, 163, 12, .1);--warning-wash: rgba(250, 178, 25, .18);--critical-wash: rgba(208, 59, 59, .1);--off-wash: rgba(137, 135, 129, .14);--font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--radius: 6px}@media (prefers-color-scheme: dark){:root{color-scheme:dark;--page: #0d0d0d;--surface: #1a1a19;--surface-2: #222220;--surface-3: #2a2a28;--ink: #f0efec;--ink-2: #c3c2b7;--muted: #8f8d87;--grid: #2c2c2a;--rule: #383835;--ring: rgba(255, 255, 255, .1);--accent: #3987e5;--accent-ink: #86b6ef;--accent-wash: rgba(57, 135, 229, .14);--s-zero: #272725;--s-low: #202c1d;--s-target: #256b21;--s-full: #326099;--s-over: #694a2e;--s-way: #e34948;--s-way-ink: #f0efec;--b-low: #256b21;--b-target: #0ca30c;--b-full: #3987e5;--b-over: #cc8540;--b-way: #d03b3b;--warning: #fab219;--good-wash: rgba(12, 163, 12, .16);--warning-wash: rgba(250, 178, 25, .14);--critical-wash: rgba(208, 59, 59, .2);--off-wash: rgba(137, 135, 129, .18)}}*{box-sizing:border-box}html,body{margin:0;background:var(--page);color:var(--ink);font:13px/1.45 var(--font);-webkit-font-smoothing:antialiased}a{color:var(--accent-ink);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.mono{font-family:var(--mono);font-size:12px}.muted{color:var(--ink-2)}.faint{color:var(--muted)}.num{font-variant-numeric:tabular-nums}.topbar{display:flex;align-items:center;gap:16px;height:44px;padding:0 20px;background:var(--surface);border-bottom:1px solid var(--grid);position:sticky;top:0;z-index:30}.brand{display:flex;align-items:center;gap:8px;font-weight:650;letter-spacing:.01em}.brand-mark{display:grid;grid-template-columns:repeat(3,3px);align-items:end;gap:2px;height:14px}.brand-mark i{display:block;width:3px;border-radius:1px;background:var(--b-target)}.topbar nav a{color:var(--ink-2);padding:4px 8px;border-radius:var(--radius)}.topbar nav a.active{color:var(--ink);background:var(--surface-2)}.topbar .spacer{flex:1}main{padding:18px 20px 48px;max-width:1720px;margin:0 auto}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.page-head h1{font-size:20px;font-weight:650;margin:0 0 2px}.page-head p{margin:0;color:var(--ink-2)}.banner{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;margin-bottom:14px;border-radius:var(--radius);border:1px solid var(--ring);background:var(--surface)}.banner.warn{background:var(--warning-wash)}.banner.info{background:var(--accent-wash)}.banner svg{flex:none;margin-top:2px}.banner b{font-weight:600}.btn{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border-radius:var(--radius);border:1px solid var(--ring);background:var(--surface);cursor:pointer;white-space:nowrap}.btn:hover:not(:disabled){background:var(--surface-2)}.btn:disabled{opacity:.55;cursor:default}.btn.primary{background:var(--accent);border-color:transparent;color:#fff}.btn.primary:hover:not(:disabled){filter:brightness(1.06);background:var(--accent)}.btn.small{height:26px;padding:0 9px;font-size:12px}.btn.ghost{border-color:transparent;background:transparent}.input,.select{height:30px;padding:0 9px;border-radius:var(--radius);border:1px solid var(--ring);background:var(--surface);min-width:0}.input:focus,.select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px var(--accent-wash)}.select.small,.input.small{height:26px;font-size:12px}.segmented{display:inline-flex;padding:2px;gap:2px;background:var(--surface-2);border-radius:8px;border:1px solid var(--ring)}.segmented button{border:0;background:transparent;height:28px;padding:0 12px;border-radius:6px;cursor:pointer;color:var(--ink-2);display:inline-flex;gap:6px;align-items:center}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px var(--ring);font-weight:600}.segmented .count{font-variant-numeric:tabular-nums;color:var(--ink-2);font-weight:400}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0 10px}.toolbar .search{position:relative;flex:1 1 280px;max-width:420px}.toolbar .search input{width:100%;padding-left:30px}.toolbar .search svg{position:absolute;left:9px;top:8px;color:var(--muted)}.tagfilter{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap;min-height:30px;padding:2px 4px 2px 8px;border:1px solid var(--ring);border-radius:var(--radius);background:var(--surface)}.tagfilter input{border:0;background:transparent;width:110px;height:24px;outline:none}.tagfilter .mode{border:0;background:var(--surface-2);border-radius:4px;height:22px;font-size:12px;cursor:pointer}.switch{position:relative;width:32px;height:18px;border-radius:9px;border:0;background:var(--surface-3);cursor:pointer;padding:0;flex:none}.switch:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #00000040;transition:left .12s}.switch[aria-checked=true]{background:var(--good)}.switch[aria-checked=true]:after{left:16px}.switch:disabled{opacity:.5;cursor:default}.badge{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 7px;border-radius:10px;font-size:11.5px;font-weight:550;white-space:nowrap;color:var(--ink);background:var(--off-wash)}.badge svg{flex:none}.badge.ok{background:var(--good-wash)}.badge.ok svg{color:var(--good)}.badge.warn{background:var(--warning-wash)}.badge.warn svg{color:var(--warning)}.badge.bad{background:var(--critical-wash)}.badge.bad svg{color:var(--critical)}.badge.off svg{color:var(--muted)}.pill{display:inline-flex;align-items:center;gap:4px;height:18px;padding:0 6px;border-radius:4px;font-size:11px;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--ring);white-space:nowrap;max-width:190px;overflow:hidden;text-overflow:ellipsis}a.pill:hover{text-decoration:none;color:var(--ink)}.pill.campaign{background:var(--accent-wash);border-color:transparent;color:var(--accent-ink)}.tag{font-size:11px;color:var(--ink-2);white-space:nowrap}.tag:before{content:"#";color:var(--muted)}.legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;color:var(--ink-2)}.legend .chip{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:4px;color:var(--ink);font-variant-numeric:tabular-nums}.legend .note{margin-left:6px}.c-zero{background:var(--s-zero)}.c-low{background:var(--s-low)}.c-target{background:var(--s-target)}.c-full{background:var(--s-full)}.c-over{background:var(--s-over);font-weight:650}.c-way-over{background:var(--s-way);color:var(--s-way-ink)!important;font-weight:700}.grid-wrap{position:relative;border:1px solid var(--grid);border-radius:8px;background:var(--surface);overflow:auto;max-height:calc(100vh - 250px);min-height:240px;transition:opacity .15s}.grid-wrap.loading{opacity:.55}table.grid{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%}.grid th,.grid td{padding:0;border-bottom:1px solid var(--grid);font-weight:400}.grid thead th{position:sticky;top:0;z-index:3;background:var(--surface);height:40px;font-size:11px;color:var(--ink-2);text-align:center;vertical-align:bottom;padding-bottom:6px;border-bottom:1px solid var(--rule)}.grid thead th .wd{display:block;color:var(--muted);font-size:10.5px;text-transform:uppercase;letter-spacing:.04em}.grid thead th .dn{font-size:12.5px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}.grid thead th.future .dn{color:var(--ink-2);font-weight:500}.grid thead th.today{color:var(--accent-ink)}.grid thead th.today .wd{color:var(--accent-ink);font-weight:700}.grid .sender-col{position:sticky;left:0;z-index:2;background:var(--surface);text-align:left;min-width:340px;max-width:340px;border-right:1px solid var(--grid)}.grid thead th.sender-col{z-index:4;padding-left:12px;text-align:left}.grid thead th.split{border-left:2px solid var(--rule)}.grid tr.totals td{position:sticky;top:41px;z-index:2;background:var(--surface-2);border-bottom:1px solid var(--rule)}.grid tr.totals td.sender-col{z-index:3;background:var(--surface-2);padding:7px 12px;font-weight:600}.grid tbody tr.row{cursor:pointer}.grid tbody tr.row:hover td.sender-col,.grid tbody tr.row.open td.sender-col{background:var(--surface-2)}.grid td.day{padding:3px 2px;text-align:center}.grid td.day.split{border-left:2px solid var(--rule)}.grid td.day.future .cell{opacity:.72}.grid td.day.today{background:var(--accent-wash)}.cell{display:inline-flex;align-items:baseline;justify-content:center;width:44px;height:26px;line-height:26px;border-radius:4px;font-variant-numeric:tabular-nums;font-size:12.5px;color:var(--ink)}.cell .cap{font-size:10.5px;font-weight:400}.cell.c-zero{color:var(--ink-2)}.grid tr.totals .cell{width:52px}.grid td.conv{text-align:right;padding:0 12px 0 8px;font-variant-numeric:tabular-nums;min-width:64px}.who{display:grid;grid-template-columns:26px 1fr;gap:2px 4px;padding:6px 10px 6px 8px}.who .n{grid-row:span 2;color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums;padding-top:2px;text-align:right;padding-right:4px}.who .l1,.who .l2{display:flex;align-items:center;gap:6px;min-width:0}.who .label{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.who .l2{font-size:11.5px;color:var(--ink-2);flex-wrap:nowrap;overflow:hidden}.who .l2>*{flex:none}tr.settings td{background:var(--surface-2)}.settings-row{position:sticky;left:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;padding:10px 14px;width:min(100vw - 80px,1100px)}.settings-row label{display:inline-flex;align-items:center;gap:8px;color:var(--ink-2)}.grid-tooltip{position:fixed;z-index:50;pointer-events:none;background:var(--ink);color:var(--surface);padding:5px 8px;border-radius:5px;font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap;box-shadow:0 4px 14px #0000002e}.grid-tooltip b{font-weight:650}.pager{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;color:var(--ink-2)}.empty{padding:40px 24px;text-align:center;color:var(--ink-2)}.empty h2{font-size:15px;color:var(--ink);margin:0 0 6px}.empty ul{text-align:left;display:inline-block;margin:10px 0 0}.report{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--ring);margin-bottom:10px}.report .x{margin-left:auto}.back{display:inline-flex;align-items:center;gap:4px;color:var(--ink-2);margin-bottom:10px;background:none;border:0;padding:0;cursor:pointer}.back:hover{color:var(--ink)}.sender-head h1{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:20px;font-weight:650;margin:0;word-break:break-all}.sender-head .meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:6px;color:var(--ink-2)}.refedit{display:inline-flex;align-items:center;gap:6px}.refedit input{width:100px;font-family:var(--mono)}.err{color:var(--critical);font-size:12px}.tags-edit{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px}.tags-edit .t{display:inline-flex;align-items:center;gap:2px;height:22px;padding:0 4px 0 7px;border-radius:11px;background:var(--surface-2);border:1px solid var(--ring);font-size:12px}.tags-edit .t button{border:0;background:transparent;cursor:pointer;color:var(--muted);padding:0 2px;display:inline-flex}.tags-edit .t button:hover{color:var(--ink)}.tags-edit input{width:120px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}@media (max-width: 1100px){.cards{grid-template-columns:1fr}}.card{background:var(--surface);border:1px solid var(--grid);border-radius:8px;padding:12px 14px;min-width:0}.card h2{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-2);margin:0 0 10px;font-weight:600}dl.facts{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;margin:0}dl.facts dt{color:var(--ink-2)}dl.facts dd{margin:0;min-width:0}.reason{display:block;color:var(--ink-2);font-size:12px;margin-top:2px}.daycells{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-top:10px}.daycell{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10.5px;color:var(--ink-2)}.daycell .cell{width:100%}.daycell.today span:first-child{color:var(--accent-ink);font-weight:700}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:10px}.stat .v{font-size:20px;font-weight:650}.stat .k{color:var(--ink-2);font-size:12px}.chart{position:relative}.chart svg{display:block;overflow:visible}.chart .bar{cursor:default}.chart .bar:focus{outline:none}.chart .bar:focus .mark,.chart .bar:hover .mark{filter:brightness(1.12)}.chart .axis{fill:var(--ink-2);font-size:10.5px}.chart table{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}.chart table th,.chart table td{text-align:right;padding:3px 6px;border-bottom:1px solid var(--grid)}.chart table th:first-child,.chart table td:first-child{text-align:left}.convo{display:grid;grid-template-columns:minmax(280px,380px) 1fr;border:1px solid var(--grid);border-radius:8px;background:var(--surface);min-height:420px;height:calc(100vh - 200px);max-height:760px;overflow:hidden}@media (max-width: 860px){.convo{grid-template-columns:1fr;height:auto;max-height:none}}.convo-list{border-right:1px solid var(--grid);overflow:auto}.convo-list button.t{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--grid);background:transparent;padding:9px 12px;cursor:pointer}.convo-list button.t:hover{background:var(--surface-2)}.convo-list button.t[aria-current=true]{background:var(--accent-wash);box-shadow:inset 3px 0 0 var(--accent)}.convo-list .top{display:flex;justify-content:space-between;gap:8px}.convo-list .lead{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.convo-list .when{color:var(--muted);font-size:11.5px;white-space:nowrap}.convo-list .line{color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:2px 0}.convo-list .foot{display:flex;gap:8px;font-size:11.5px;color:var(--ink-2)}.who-last{display:inline-flex;align-items:center;gap:4px}.who-last.them{color:var(--ink);font-weight:600}.who-last.them:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent)}.convo-more{padding:10px 12px}.thread{overflow:auto;padding:14px 18px 24px;transition:opacity .15s}.thread.loading{opacity:.5}.thread-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border-bottom:1px solid var(--grid);padding-bottom:10px;margin-bottom:12px}.thread-head h3{margin:0;font-size:15px}.msg{border:1px solid var(--grid);border-radius:8px;padding:10px 12px;margin-bottom:10px;max-width:760px;background:var(--surface)}.msg.me{margin-left:auto;background:var(--surface-2)}.msg .mh{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--ink-2);margin-bottom:6px}.msg .mh b{color:var(--ink);font-weight:600}.msg .subj{font-weight:600;margin-bottom:4px}.msg .body{white-space:pre-wrap;word-break:break-word}.login{max-width:340px;margin:12vh auto;background:var(--surface);border:1px solid var(--grid);border-radius:10px;padding:22px}.login h1{font-size:18px;margin:0 0 4px}.login form{display:grid;gap:10px;margin-top:14px}@media (max-width: 720px){main{padding:14px 16px 40px}.grid .sender-col{min-width:230px;max-width:230px}.page-head{flex-direction:column}}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spin{animation:none}}.who .l2>.pill.campaign{flex:0 1 auto;min-width:48px}.segmented{max-width:100%;overflow-x:auto}.brand{white-space:nowrap}@media (max-width: 720px){.topbar{gap:10px;padding:0 12px}.topbar>.muted,.topbar>.pill{display:none}}
