:root{color-scheme:dark;--bg: #0b0d11;--bg-raise: #13161c;--bg-hover: #1b1f28;--ink: #f0ece4;--muted: #8d8880;--line: #262a32;--accent: #d4b483;--accent-ink: #1a140c;--ban: #d16b5c;--ban-dim: #2f1d1a;--keep: #7a9e86;--keep-dim: #17221c;--radius: 3px}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:IBM Plex Sans,Segoe UI,system-ui,sans-serif;font-size:14px;line-height:1.45;color:var(--ink);background:radial-gradient(900px 420px at 0% -10%,rgba(212,180,131,.07),transparent 55%),var(--bg);-webkit-font-smoothing:antialiased}h1,h2,h3{font-weight:500;letter-spacing:-.03em}button,input,select,textarea{font:inherit}a{color:var(--accent)}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:1px solid var(--accent);outline-offset:2px}input[type=checkbox],input[type=radio]{accent-color:var(--accent);width:15px;height:15px;margin:2px 0 0;flex-shrink:0}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:8px 22px;min-height:56px;padding:0 28px;border-bottom:1px solid var(--line);background:#0b0d11eb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.mark{width:22px;height:22px;display:grid;place-items:center;background:var(--accent);color:var(--accent-ink);font-size:12px;font-weight:700;flex-shrink:0}.topbar nav{display:flex;gap:0;align-self:stretch;flex-wrap:wrap}.topbar .spacer{flex:1}.who{color:var(--muted);font-size:12px;padding:5px 10px;border:1px solid var(--line);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-btn{background:transparent;color:var(--muted);border:0;border-bottom:2px solid transparent;padding:0 14px;cursor:pointer;border-radius:0}.nav-btn:hover{color:var(--ink)}.nav-btn.active{color:var(--ink);border-bottom-color:var(--accent)}.topbar .error,.app-shell>.error{margin-top:0}.btn,a.btn{background:var(--bg-raise);color:var(--ink);border:1px solid var(--line);padding:8px 14px;cursor:pointer;border-radius:var(--radius)}a.btn{text-decoration:none;display:inline-block}.btn:hover:not(:disabled),a.btn:hover{border-color:#3a404c;background:var(--bg-hover)}.btn.ghost{background:transparent;border-color:transparent;color:var(--muted);padding:8px 10px}.btn.ghost:hover:not(:disabled){color:var(--ink);background:var(--bg-hover);border-color:transparent}.btn.primary,a.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.btn.primary:hover:not(:disabled),a.btn.primary:hover{filter:brightness(1.07);background:var(--accent);border-color:var(--accent)}.btn.danger{background:var(--ban);border-color:var(--ban);color:#1a0e0c;font-weight:600}.btn.danger:hover:not(:disabled){filter:brightness(1.06);background:var(--ban);border-color:var(--ban)}.btn.on{border-color:var(--accent);color:var(--ink)}.btn:disabled{opacity:.38;cursor:not-allowed}.page{padding:28px 28px 108px;max-width:1280px;width:100%;margin:0 auto}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap}.page-head h2{margin:0 0 6px;font-size:28px}.page-head .lead{margin:0;color:var(--muted);max-width:540px}.page-actions{display:flex;gap:8px}.muted{color:var(--muted)}.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.kpi{background:var(--bg-raise);padding:18px 20px}.kpi.ban{background:var(--ban-dim)}.kpi.keep{background:var(--keep-dim)}.kpi .label{color:var(--muted);font-size:11px;letter-spacing:.1em;text-transform:uppercase}.kpi .num{font-size:30px;font-variant-numeric:tabular-nums;margin-top:8px;letter-spacing:-.04em;line-height:1}.kpi .muted{margin-top:8px;font-size:13px}.bar{display:flex;height:3px;background:var(--keep-dim);margin:0 0 22px}.bar .junk{background:var(--ban)}.bar .rest{background:var(--keep)}.tabs{display:flex;gap:0;margin-bottom:14px;border-bottom:1px solid var(--line)}.tabs button{background:transparent;color:var(--muted);border:0;border-bottom:2px solid transparent;padding:10px 16px;cursor:pointer;margin-bottom:-1px}.tabs button:hover{color:var(--ink)}.tabs button.on{color:var(--ink);border-bottom-color:var(--accent)}.toolbar{display:flex;gap:8px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.toolbar input[type=search],.toolbar input[type=text],.toolbar select,.field input[type=number],.field input[type=text],.field textarea{background:var(--bg);border:1px solid var(--line);color:var(--ink);padding:8px 12px;border-radius:var(--radius)}.toolbar input[type=search]{min-width:240px}.table-wrap{border:1px solid var(--line);overflow:auto;max-height:calc(100vh - 360px);background:var(--bg-raise)}table.data{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}table.data th,table.data td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}table.data th{color:var(--muted);font-weight:500;font-size:11px;letter-spacing:.08em;text-transform:uppercase;position:sticky;top:0;background:#171b22;z-index:1}table.data td.num,table.data th.num{text-align:right}table.data tbody tr:hover{background:var(--bg-hover)}table.data tbody tr.row-skip{opacity:.45}table.data tbody tr.row-skip:hover{opacity:.7}td.site{word-break:break-all;max-width:240px;color:var(--ink)}td.camp{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.tag{display:inline-block;padding:2px 8px;font-size:11px;letter-spacing:.02em;background:var(--bg);border:1px solid var(--line)}.tag.junk{color:#f0c4bc;background:var(--ban-dim);border-color:transparent}.tag.keep,.tag.too_small{color:#c5dccf;background:var(--keep-dim);border-color:transparent}.sticky-apply{position:sticky;bottom:0;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 28px;background:#0b0d11f0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);color:var(--muted)}.sticky-apply strong{color:var(--ink);font-weight:500}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px}.field label{display:block;color:var(--muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px}.field input[type=number],.field input[type=text],.field textarea{width:100%}.panel{background:var(--bg-raise);border:1px solid var(--line);padding:22px 24px;margin:0 0 14px}.panel h3{margin:0 0 6px;font-size:16px}.panel>.muted{margin:0 0 16px}.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.seg button{background:var(--bg);border:0;padding:14px 16px;color:var(--muted);cursor:pointer;text-align:left}.seg button:hover{background:var(--bg-hover);color:var(--ink)}.seg button.on{background:var(--bg-raise);color:var(--ink);box-shadow:inset 0 -2px 0 var(--accent)}.seg button b{display:block;font-weight:500}.seg button small{display:block;margin-top:4px;font-size:12px;font-weight:400;color:var(--muted);line-height:1.35}.checks{display:grid;gap:2px}.check{display:flex;gap:12px;align-items:flex-start;cursor:pointer;padding:10px 8px;margin:0 -8px}.check:hover{background:var(--bg-hover)}.check b{display:block;font-weight:500}.check .muted{display:block;margin-top:2px;font-size:13px}.chip-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.chip{border:1px solid var(--line);background:var(--bg);padding:5px 10px;font-size:13px;display:inline-flex;gap:8px;align-items:center}.chip button{background:none;border:0;color:var(--muted);cursor:pointer;padding:0;line-height:1}.chip button:hover{color:var(--ink)}.login-screen{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}.login-copy{padding:72px;display:flex;flex-direction:column;justify-content:center}.login-copy .brand{margin-bottom:48px}.login-copy h1{font-size:44px;line-height:1.08;margin:0 0 16px;max-width:12ch}.login-copy>p{max-width:38ch;margin:0 0 36px}.login-copy .actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.login-hint{margin-top:16px;max-width:42ch}.login-screen.boot{grid-template-columns:1fr}.login-side{display:flex;align-items:center;padding:48px 56px;border-left:1px solid var(--line);background:linear-gradient(180deg,rgba(212,180,131,.05),transparent 40%),var(--bg-raise)}.steps{list-style:none;margin:0;padding:0;width:100%;max-width:360px}.steps li{display:grid;grid-template-columns:36px 1fr;gap:14px;padding:18px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:14px}.steps li:first-child{padding-top:0}.steps li:last-child{border-bottom:0;padding-bottom:0}.steps .n{color:var(--accent);font-variant-numeric:tabular-nums;font-weight:600;letter-spacing:.04em}.steps b{display:block;color:var(--ink);font-weight:500;margin-bottom:4px}.login{max-width:460px;margin:12vh auto;padding:0 20px}.error{color:#f0c4bc;background:var(--ban-dim);padding:12px 14px;margin:0 28px;font-size:13px}.page .error,.page .notice{margin:0 0 16px}.notice{color:#c5dccf;background:var(--keep-dim);padding:12px 14px;font-size:13px}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#08090bb8;display:flex;align-items:center;justify-content:center;padding:20px;z-index:40}.modal{background:var(--bg-raise);border:1px solid var(--line);padding:26px 28px;max-width:440px;width:100%}.modal h2{margin:0 0 8px;font-size:20px}.modal-actions{display:flex;gap:8px;margin-top:22px;justify-content:flex-end}.campaign-list{max-height:320px;overflow:auto;border:1px solid var(--line);background:var(--bg);padding:4px 0}.campaign-list .muted{padding:12px 14px}.panel .note{margin:12px 0 0}.campaign-row{display:flex;gap:10px;align-items:flex-start;padding:9px 12px;cursor:pointer}.campaign-row:hover{background:var(--bg-hover)}.empty{padding:48px 20px;text-align:center;color:var(--muted)}.skel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:22px}.skel{height:96px;background:linear-gradient(90deg,var(--bg-raise) 25%,var(--bg-hover) 50%,var(--bg-raise) 75%);background-size:200% 100%;animation:skel 1.3s ease infinite}@keyframes skel{to{background-position:-200% 0}}@media(max-width:900px){.login-screen{grid-template-columns:1fr}.login-copy{padding:48px 24px}.login-side{display:none}.kpis,.form-grid,.skel-grid,.seg{grid-template-columns:1fr}.page{padding:20px 16px 110px}.topbar{padding:0 16px;gap:8px}.who{display:none}.sticky-apply{padding:12px 16px;flex-wrap:wrap}.table-wrap{max-height:none}}
