:root{--bg:#fff;--surface:#fff;--surface-muted:#f4f6f4;--ink:#000;--muted:#4e5652;--line:#e2e8e4;--teal:#10b981;--green:#059669;--green-dark:#047857;--coral:#ef4444;--amber:#059669;--blue:#000;--danger:#dc2626;--shadow:0 10px 30px #0000000a}:root.dark,body.dark{--bg:#090a09;--surface:#111211;--surface-muted:#171b19;--ink:#fff;--muted:#9eaba3;--line:#222925;--teal:#10b981;--green:#34d399;--green-dark:#059669;--coral:#f87171;--amber:#34d399;--blue:#fff;--danger:#ef4444;--shadow:0 10px 30px #0006}*{box-sizing:border-box}html{min-width:320px}body{background:linear-gradient(135deg, #10b9810d, transparent 35%), linear-gradient(45deg, #00000003, transparent 30%), var(--bg);color:var(--ink);letter-spacing:0;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.dashboard-shell{grid-template-columns:280px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);scrollbar-width:none;-ms-overflow-style:none;background:#ffffffd1;flex-direction:column;gap:28px;height:100vh;padding:26px;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar::-webkit-scrollbar{display:none}.brand-lockup{align-items:center;gap:12px;display:flex}.brand-lockup strong,.brand-lockup span{display:block}.brand-lockup span{color:var(--muted);font-size:.86rem}.brand-mark{width:44px;height:44px;color:var(--teal);background:#e6f4ef;border:1px solid #0f766e47;border-radius:8px;place-items:center;display:grid}.nav-stack{gap:8px;display:grid}.nav-item{color:var(--muted);border-radius:8px;align-items:center;gap:10px;padding:10px 12px;text-decoration:none;display:flex}.nav-item.active,.nav-item:hover{color:var(--teal);background:#e9f4f1}.sidebar-note{color:#6b490d;background:#fff8e8;border:1px solid #a86f1847;border-radius:8px;align-items:flex-start;gap:10px;margin-top:auto;padding:12px;font-size:.88rem;line-height:1.4;display:flex}.workspace{gap:22px;padding:30px;display:grid}.topbar{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.eyebrow{color:var(--teal);letter-spacing:.08em;text-transform:uppercase;margin:0 0 6px;font-size:.76rem;font-weight:800}h1,h2{letter-spacing:0;margin:0}h1{max-width:780px;font-size:clamp(2rem,4vw,3.4rem);line-height:1.02}h2{font-size:1.08rem;line-height:1.2}.subtle{max-width:760px;color:var(--muted);margin:12px 0 0;line-height:1.55}.primary-action{background:var(--ink);color:#fff;white-space:nowrap;border:0;border-radius:8px;align-items:center;gap:9px;min-height:42px;padding:11px 15px;display:inline-flex}.secondary-action{border:1px solid var(--line);min-height:42px;color:var(--ink);white-space:nowrap;background:#fff;border-radius:8px;justify-content:center;align-items:center;gap:9px;padding:10px 14px;display:inline-flex}.secondary-action.danger{color:var(--danger);border-color:#b4231847}.primary-action:disabled,.secondary-action:disabled{cursor:wait;opacity:.72}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.metric-card{border:1px solid var(--line);background:var(--surface);min-height:98px;box-shadow:var(--shadow);border-radius:8px;align-items:center;gap:14px;padding:18px;display:flex}.metric-card span{color:var(--muted);font-size:.86rem}.metric-card strong{margin-top:2px;font-size:1.7rem;display:block}.metric-icon{border-radius:8px;place-items:center;width:40px;height:40px;display:grid}.metric-card.teal .metric-icon{color:var(--teal);background:#e6f4ef}.metric-card.green .metric-icon{color:var(--green);background:#e9f7ed}.metric-card.amber .metric-icon{color:var(--amber);background:#fff4dc}.metric-card.coral .metric-icon{color:var(--coral);background:#fdecea}.main-grid,.split-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:18px;display:grid}.panel{border:1px solid var(--line);box-shadow:var(--shadow);background:#fffffff0;border-radius:8px;min-width:0;padding:20px}.panel-heading{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:16px;display:flex}.action-panel{align-self:start}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.form-grid label{gap:6px;display:grid}.form-grid label span{color:var(--muted);text-transform:uppercase;font-size:.78rem;font-weight:800}.form-grid input,.form-grid select,.form-grid textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:8px;outline:none;padding:10px 11px}.form-grid textarea{resize:vertical}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:#0f766ea6;box-shadow:0 0 0 3px #0f766e1f}.wide-field{grid-column:1/-1}.button-row{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.helper-text{color:var(--muted);margin:12px 0 0;line-height:1.45}.count-pill,.lane-badge,.status-badge,.risk-pill,.agent-status,.roadmap-status{text-transform:capitalize;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;padding:5px 9px;font-size:.75rem;font-weight:800;display:inline-flex}.count-pill{background:var(--surface-muted);color:var(--muted)}.lane-badge.consented_inbound,.lane-dot.consented_inbound{color:var(--teal);background:#e6f4ef}.lane-badge.public_business_research,.lane-dot.public_business_research{color:var(--blue);background:#eaf1fb}.lane-badge.high_risk_cold_social,.lane-dot.high_risk_cold_social{color:#8a4d00;background:#fff0df}.campaign-list,.policy-list,.decision-list,.roadmap-list{gap:10px;display:grid}.campaign-row{border:1px solid var(--line);width:100%;color:inherit;text-align:left;background:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.campaign-row.selected{background:#edf8f5;border-color:#0f766e80}.campaign-row strong,.campaign-row small{display:block}.campaign-row small{color:var(--muted);margin-top:3px}.status-badge.active,.agent-status.ready{color:var(--green);background:#e9f7ed}.status-badge.review,.agent-status.beta{color:var(--amber);background:#fff4dc}.status-badge.draft,.status-badge.paused,.status-badge.completed{background:var(--surface-muted);color:var(--muted)}.campaign-detail p{color:var(--muted);margin:0;line-height:1.5}.detail-grid,.run-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px;display:grid}.detail{border:1px solid var(--line);background:#fbfcfa;border-radius:8px;padding:10px}.detail span,.detail strong{display:block}.detail span{color:var(--muted);font-size:.78rem}.detail strong{overflow-wrap:anywhere;text-transform:capitalize;margin-top:4px}.channel-strip{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.channel-chip{border:1px solid var(--line);color:var(--muted);text-transform:capitalize;background:#fff;border-radius:8px;align-items:center;gap:7px;padding:7px 9px;display:inline-flex}.lead-table{gap:8px;display:grid}.lead-table-head,.lead-row{grid-template-columns:minmax(145px,1.3fr) minmax(96px,.8fr) minmax(100px,.8fr) 56px;align-items:center;gap:10px;display:grid}.lead-table-head{color:var(--muted);text-transform:uppercase;font-size:.78rem;font-weight:800}.lead-row{border:1px solid var(--line);background:#fff;border-radius:8px;padding:10px}.lead-row strong,.lead-row small{display:block}.lead-row small{color:var(--muted);margin-top:3px;line-height:1.35}.lane-dot{border-radius:999px;width:fit-content;padding:5px 8px;font-size:.74rem;font-weight:800}.risk-high{color:var(--danger);font-weight:800}.risk-normal{color:var(--green);font-weight:800}.policy-row{border:1px solid var(--line);text-transform:capitalize;background:#fff;border-radius:8px;grid-template-columns:1fr 1fr auto;align-items:center;gap:10px;padding:11px;display:grid}.policy-channel{align-items:center;gap:8px;font-weight:800;display:inline-flex}.risk-pill.medium{color:var(--amber);background:#fff4dc}.risk-pill.high{color:var(--danger);background:#fdecea}.risk-callout{color:#5d3c94;background:#f6f0ff;border-radius:8px;align-items:flex-start;gap:9px;margin-top:14px;padding:12px;line-height:1.4;display:flex}.agent-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.agent-card{border:1px solid var(--line);background:#fff;border-radius:8px;flex-direction:column;justify-content:space-between;gap:14px;min-height:126px;padding:12px;display:flex}.agent-card p{color:var(--muted);margin:6px 0 0;font-size:.88rem;line-height:1.42}.run-result{gap:14px;display:grid}.decision-row{border:1px solid var(--line);text-transform:capitalize;background:#fff;border-radius:8px;grid-template-columns:82px 106px minmax(0,1fr);align-items:center;gap:8px;padding:10px;display:grid}.decision-row.approved{border-color:#1b7f4659}.decision-row.needs_review{border-color:#a86f1859}.decision-row.blocked{border-color:#b4231859}.decision-row small{color:var(--muted);overflow-wrap:anywhere}.empty-state{border:1px dashed var(--line);min-height:240px;color:var(--muted);text-align:center;border-radius:8px;place-items:center;padding:20px;display:grid}.empty-state.compact{min-height:96px;padding:12px}.empty-state p{max-width:340px;margin:8px 0 0;line-height:1.48}.error-text{color:var(--danger);font-weight:800}.roadmap-panel{margin-bottom:24px}.roadmap-list{grid-template-columns:repeat(5,minmax(0,1fr))}.roadmap-item{border:1px solid var(--line);background:#fff;border-radius:8px;padding:12px}.roadmap-item strong{margin-top:10px;display:block}.roadmap-item p{color:var(--muted);margin:7px 0 0;font-size:.86rem;line-height:1.42}.roadmap-status.in_progress{color:var(--teal);background:#e6f4ef}.roadmap-status.ready_next{color:var(--amber);background:#fff4dc}.roadmap-status.not_started,.roadmap-status.done{background:var(--surface-muted);color:var(--muted)}@media (max-width:1180px){.dashboard-shell{grid-template-columns:1fr}.sidebar{height:auto;position:static}.nav-stack{grid-template-columns:repeat(4,minmax(0,1fr))}.sidebar-note{margin-top:0}.metric-grid,.roadmap-list{grid-template-columns:repeat(2,minmax(0,1fr))}.main-grid,.split-grid{grid-template-columns:1fr}}@media (max-width:720px){.workspace,.sidebar{padding:18px}.topbar{flex-direction:column}.primary-action{justify-content:center;width:100%}.metric-grid,.roadmap-list,.agent-grid,.detail-grid,.run-metrics,.nav-stack{grid-template-columns:1fr}.lead-table-head{display:none}.lead-row,.policy-row,.decision-row{grid-template-columns:1fr}}
