:root{--bg:#0a0f16;--panel:#111923;--panel2:#0e151e;--line:#263244;--text:#edf3fb;--muted:#95a3b8;--blue:#5b8cff;--green:#27c783;--red:#ff5d68;--amber:#eab84d;--radius:14px}*{box-sizing:border-box}html{background:var(--bg);color:var(--text);font:14px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}body{margin:0}a{color:#8fb0ff;text-decoration:none}a:hover{text-decoration:underline}aside{position:fixed;inset:0 auto 0 0;width:230px;background:#0c131c;border-right:1px solid var(--line);padding:18px;display:flex;flex-direction:column;z-index:10}.logo{display:flex;align-items:center;gap:10px;color:var(--text);margin-bottom:24px}.logo span{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--blue);color:white;font-weight:800}.logo b{font-size:14px}nav{display:grid;gap:5px}nav a{color:var(--muted);padding:10px 12px;border-radius:9px}nav a.active,nav a:hover{background:#172233;color:white;text-decoration:none}.no-auth{margin-top:auto;padding:10px;border:1px solid #7a3f43;background:#311c22;color:#ffb8bd;border-radius:9px}.no-auth small{color:#d69a9f}main{margin-left:230px;padding:28px;max-width:1600px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.page-head h1{margin:0 0 4px;font-size:28px}.page-head p{margin:0;color:var(--muted)}h2,h3{margin:0 0 13px}.panel{background:linear-gradient(180deg,var(--panel),var(--panel2));border:1px solid var(--line);border-radius:var(--radius);padding:17px;margin-bottom:18px;box-shadow:0 10px 35px rgba(0,0,0,.18)}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.panel-head h2{margin:0}.cards{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:18px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.metric{display:flex;flex-direction:column;color:var(--text)}.metric:hover{text-decoration:none;border-color:var(--blue)}.metric b{font-size:27px}.metric span{color:var(--muted)}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.bar-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}table{width:100%;border-collapse:collapse}th{text-align:left;color:var(--muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.04em}td,th{padding:11px 9px;border-bottom:1px solid var(--line);vertical-align:top}tr:last-child td{border-bottom:0}small{display:block;color:var(--muted);margin-top:3px}.table-wrap{overflow:auto}.badge,.tag,.status{display:inline-flex;padding:3px 8px;border-radius:999px;font-size:12px;border:1px solid var(--line)}.badge.inbox{color:#5ce0a0;background:#10291f}.badge.promotions{color:#89abff;background:#14223e}.badge.spam{color:#ff7e86;background:#33171d}.badge.other{color:#bec8d8;background:#202733}.status.ready,.status.completed{color:#5ce0a0}.status.error,.status.failed{color:#ff7e86}.status.running{color:#ffd06b}button,.button,input,select,textarea{font:inherit}button,.button{display:inline-flex;align-items:center;justify-content:center;background:var(--blue);border:1px solid transparent;color:white;padding:9px 13px;border-radius:9px;cursor:pointer;text-decoration:none}button:hover,.button:hover{filter:brightness(1.1);text-decoration:none}.secondary{background:#172233;border-color:var(--line);color:var(--text)}.success{background:#18774e}.danger{background:#8a2933}.actions,.inline-form{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.inline-form label{display:flex;align-items:center;gap:4px}.small-input{width:75px}input,select,textarea{width:100%;background:#0b121a;color:var(--text);border:1px solid var(--line);border-radius:8px;padding:9px 10px}textarea{min-height:85px}.filters{display:grid;grid-template-columns:2fr repeat(4,1fr) auto;gap:9px}.stack{display:grid;gap:11px}.stack label,.subscription-grid label{display:grid;gap:5px;color:var(--muted)}.rule-grid{display:grid;grid-template-columns:1.2fr .8fr 2fr 1fr .6fr auto;gap:9px}.subscription-grid{display:grid;grid-template-columns:1.4fr repeat(5,1fr);gap:12px;align-items:end}.subscription-grid .wide{grid-column:2/7}.kv{display:grid;grid-template-columns:minmax(130px,.8fr) 2fr;margin:0}.kv dt,.kv dd{padding:8px 5px;border-bottom:1px solid var(--line);margin:0}.kv dt{color:var(--muted);text-transform:capitalize}.kv pre{margin:0;white-space:pre-wrap;max-height:320px;overflow:auto}.email-preview{width:100%;height:720px;background:white;border:0;border-radius:9px}.timeline-item{display:flex;align-items:center;gap:16px;padding:12px 5px;border-bottom:1px solid var(--line)}.timeline-dot{width:10px;height:10px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 5px rgba(91,140,255,.13)}.timeline-time{width:180px;color:var(--muted)}.timeline-main{flex:1}.empty{padding:35px;text-align:center;color:var(--muted)}.flash{padding:12px 15px;border-radius:10px;margin-bottom:15px;background:#173627;color:#80e8af}.flash.error{background:#3a1c21;color:#ff9da4}.error-text{color:#ff868e;max-width:480px;white-space:normal}.warning{border-color:#76562a;background:#2a2115}pre{background:#080d13;border:1px solid var(--line);border-radius:8px;padding:12px;overflow:auto;white-space:pre-wrap}.pagination{display:flex;gap:6px;margin-top:15px}.pagination a{padding:6px 10px;border:1px solid var(--line);border-radius:7px}.pagination a.active{background:var(--blue);color:white}details{margin:8px 0}summary{cursor:pointer;font-weight:600}@media(max-width:1150px){.cards{grid-template-columns:repeat(3,1fr)}.filters{grid-template-columns:repeat(3,1fr)}.subscription-grid{grid-template-columns:repeat(3,1fr)}.subscription-grid .wide{grid-column:auto}}@media(max-width:760px){aside{position:static;width:auto}.no-auth{margin-top:15px}main{margin-left:0;padding:16px}.grid-2,.grid-3,.cards{grid-template-columns:1fr}.filters,.rule-grid,.subscription-grid{grid-template-columns:1fr}.subscription-grid .wide{grid-column:auto}.page-head{flex-direction:column}.email-preview{height:520px}}
.score{font-size:26px}.good{color:var(--green)}.bad{color:var(--red)}.audit-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.audit-summary>div,.auth-grid>div{background:#0b121a;border:1px solid var(--line);border-radius:10px;padding:12px}.audit-summary b{font-size:22px}.audit-summary small{display:block}.auth-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}.auth-grid>div{display:flex;justify-content:space-between}.severity-high{color:#ff7e86}.severity-medium{color:#ffd06b}.severity-low{color:#89abff}.stat-bars{display:grid;gap:9px}.stat-row{display:grid;grid-template-columns:minmax(100px,1fr) 3fr 55px;gap:10px;align-items:center}.stat-track{height:8px;background:#0a1018;border-radius:999px;overflow:hidden}.stat-track i{display:block;height:100%;background:var(--blue);border-radius:999px}.hour-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:7px}.hour-grid div{border:1px solid var(--line);background:#0b121a;border-radius:8px;padding:8px;text-align:center}.hour-grid span,.hour-grid b{display:block}.hour-grid span{color:var(--muted);font-size:11px}.flow-mailbox{border-top:1px solid var(--line);padding-top:14px;margin-top:14px}.flow-mailbox h3 small{display:inline;margin-left:10px}.flow-day{display:inline-flex;margin:12px 0 4px;padding:4px 10px;border-radius:999px;background:#172233;color:#9db8ff;font-weight:700}.blacklist-summary{margin-top:12px}.account-row{border-bottom:1px solid var(--line);padding:12px 0}.account-row:last-child{border-bottom:0}@media(max-width:900px){.audit-summary,.auth-grid{grid-template-columns:repeat(2,1fr)}.hour-grid{grid-template-columns:repeat(4,1fr)}}

/* v1.4 responsive data tables and long infrastructure values */
.panel,.card,.grid-2>*,.grid-3>*,.cards>*{min-width:0}.cards{grid-template-columns:repeat(auto-fit,minmax(145px,1fr))}.table-wrap{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}table{max-width:100%}.wide-table{min-width:920px}.ip-table{min-width:1320px}.headers-table{min-width:900px}.headers-table th:first-child{width:210px}td,th,.break,.header-value,code{overflow-wrap:anywhere;word-break:break-word}.kv{min-width:0}.kv dt,.kv dd{min-width:0}.kv dd pre{max-width:100%;overflow:auto;overflow-wrap:anywhere;word-break:break-word;white-space:pre-wrap}.stat-row span{overflow-wrap:anywhere;word-break:break-word}.preheader-text{font-size:17px;line-height:1.6;padding:14px;border-radius:10px;background:#0b121a;border:1px solid var(--line);overflow-wrap:anywhere}.empty.compact{padding:14px}.compact-stack{gap:6px}.compact-stack input{min-width:145px}.ip-intel{margin-top:14px}.header-anomalies{display:grid;gap:8px;margin:12px 0}.header-anomaly{display:grid;grid-template-columns:minmax(150px,.5fr) 2fr;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#0b121a}.header-anomaly.severity-medium{border-color:#76562a}.header-anomaly.severity-high{border-color:#7a3f43}.header-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.header-groups details{border:1px solid var(--line);border-radius:9px;padding:10px;background:#0b121a}.daily-layout{align-items:start}.country-flag{font-size:18px}.muted{color:var(--muted)}
@media(max-width:900px){.header-groups{grid-template-columns:1fr}.header-anomaly{grid-template-columns:1fr}.daily-layout{grid-template-columns:1fr}.timeline-time{width:150px}.timeline-item{align-items:flex-start}}

/* v3 message intelligence */
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.domain-list{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:4px}
.domain-list li{display:flex;align-items:center;gap:8px}
.domain-list li b{margin-left:auto;color:var(--muted)}
tr.row-primary{background:rgba(139,164,255,.10)}
tr.row-primary td:first-child{color:var(--accent)}

/* v3 screenshots */
.screenshot-grid{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start}
.screenshot-figure{margin:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#0b121a}
.screenshot-figure img{display:block;max-height:520px;width:auto;max-width:100%;object-fit:cover;object-position:top;background:#fff}
.screenshot-desktop img{width:440px}
.screenshot-mobile img{width:240px}
.screenshot-figure figcaption{padding:8px 10px;border-top:1px solid var(--line)}
.screenshot-figure figcaption small{display:block;color:var(--muted);margin-top:2px}

/* v3 image toggle */
.img-toggle{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);cursor:pointer}
.warn-text{display:block;color:var(--concept,#ffb86a);margin:6px 0 0;font-size:12px}
.screenshot-controls{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px}
[hidden]{display:none !important}

/* v3 identity graph */
.review-queue h3{margin:16px 0 6px}
.review-actions{display:flex;gap:8px;margin-bottom:12px}
.identity-groups{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.identity-group h3{margin:0 0 6px;font-size:14px}
.identity-group h3 small{color:var(--muted)}
.tag.strength-strong{background:rgba(91,214,162,.18);color:#5bd6a2}
.tag.strength-medium{background:rgba(139,164,255,.16);color:#8ba4ff}
.tag.strength-weak{background:rgba(125,135,152,.16);color:#9aa4b2}
.tag.review-auto{background:rgba(139,164,255,.16);color:#8ba4ff}
.tag.review-candidate{background:rgba(255,184,106,.18);color:#ffb86a}
.tag.review-confirmed{background:rgba(91,214,162,.18);color:#5bd6a2}
.tag.review-rejected{background:rgba(255,110,110,.16);color:#ff8f8f}
@media(max-width:900px){.identity-groups{grid-template-columns:1fr}}

/* v3: label wrapping — never break a word into stray characters */
th{white-space:nowrap}
td,dt,dd,.metric-label,.stat-row span,.identity-group h3,.tag,.badge,figcaption b{overflow-wrap:normal;word-break:keep-all;hyphens:none}
.break{overflow-wrap:anywhere;word-break:break-word}

/* v3: compare */
.compare-picker{display:block}
.competitor-checks{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.competitor-checks .chk{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--line);border-radius:999px;cursor:pointer;font-size:13px;white-space:nowrap}
.competitor-checks .chk.on{border-color:var(--accent);background:rgba(139,164,255,.12)}
.competitor-checks .chk input{margin:0}
.competitor-checks .chk small{color:var(--muted)}
.compare-controls{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}
.compare-controls label{display:flex;flex-direction:column;font-size:12px;color:var(--muted);gap:4px}
.compare-table th,.compare-table td{text-align:right;white-space:nowrap}
.compare-table th:first-child,.compare-table td.metric-label{text-align:left;position:sticky;left:0;background:var(--surface);z-index:1}
.compare-table td.metric-label{color:var(--muted)}
.flow-matrix td{text-align:center}
.flow-matrix td.flow-yes{color:#5bd6a2;font-weight:600}
.flow-matrix td.flow-no{color:rgba(255,255,255,.18)}

/* v3: timeline */
.timeline-panel{padding:0;overflow:hidden}
.timeline-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.tl-filters{display:flex;gap:16px;align-items:center;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.tl-filters label{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.tl-viewport{display:flex;align-items:stretch}
.tl-labels{flex:0 0 auto;width:160px;border-right:1px solid var(--line);background:var(--surface);z-index:6}
.tl-lane-label{display:flex;align-items:center;gap:8px;padding:0 12px;font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-bottom:1px solid rgba(255,255,255,.04)}
.tl-lane-label i{flex:0 0 auto;width:10px;height:10px;border-radius:3px}
.tl-lane-label span{overflow:hidden;text-overflow:ellipsis}
.tl-scroll{position:relative;flex:1 1 auto;overflow-x:auto;overflow-y:hidden;cursor:grab;background:#0a0e15}
.tl-scroll.grabbing{cursor:grabbing}
.tl-root{position:relative}
.tl-axis{position:absolute;top:0;left:0;height:46px;pointer-events:none}
.tl-tick{position:absolute;top:0;height:100%;border-left:1px solid rgba(255,255,255,.06);padding:6px 0 0 6px;font-size:11px;color:var(--muted);white-space:nowrap}
.tl-grid{position:absolute;top:46px;bottom:0;width:1px;background:rgba(255,255,255,.035);pointer-events:none}
.tl-lane-band{position:absolute;left:0;border-bottom:1px solid rgba(255,255,255,.04)}
.tl-lane-band.alt{background:rgba(255,255,255,.015)}
.tl-dot{position:absolute;width:12px;height:12px;border-radius:50%;cursor:pointer;box-shadow:0 0 0 1px rgba(0,0,0,.4);transition:transform .08s}
.tl-dot:hover{transform:scale(1.5);z-index:4}
.tl-dot.p-spam{box-shadow:0 0 0 2px #ff6e6e}
.tl-dot.p-inbox{box-shadow:0 0 0 2px rgba(91,214,162,.7)}
.tl-tooltip{position:fixed;z-index:50;max-width:280px;background:var(--surface-raised);border:1px solid var(--line-strong);border-radius:10px;padding:10px 12px;box-shadow:0 12px 40px rgba(0,0,0,.5);pointer-events:none;font-size:12px}
.tl-tooltip .tt-head{display:flex;align-items:center;gap:6px;font-weight:700;margin-bottom:4px}
.tl-tooltip .tt-head i{width:10px;height:10px;border-radius:3px}
.tl-tooltip .tt-sub{color:var(--text);margin-bottom:4px}
.tl-tooltip .tt-meta{color:var(--muted);margin-bottom:6px}
.tl-tooltip .tt-thumb{display:block;width:100%;border-radius:6px;border:1px solid var(--line)}

/* v3: sequences */
.seq-flow{display:flex;align-items:stretch;gap:0;overflow-x:auto;padding:6px 0}
.seq-card{flex:0 0 200px;background:var(--surface-raised);border:1px solid var(--line);border-radius:12px;padding:12px}
.seq-card .seq-step{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.seq-card h3{margin:2px 0 8px}
.seq-thumb img{display:block;width:100%;max-height:150px;object-fit:cover;object-position:top;border-radius:8px;border:1px solid var(--line);background:#fff;margin-bottom:8px}
.seq-arrow{flex:0 0 84px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--muted)}
.seq-arrow span{font-weight:700;color:var(--accent)}
.seq-arrow span::before{content:"→ ";}
.seq-arrow small{font-size:10px}
.kv.compact dt{margin-top:4px}

/* v3: patterns */
.pattern-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.pattern-card{background:var(--surface-raised);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:12px;padding:14px}
.pattern-card.cat-deliverability{border-left-color:#ff8f8f}
.pattern-card.cat-promotional{border-left-color:#ffb86a}
.pattern-card.cat-frequency{border-left-color:#8ba4ff}
.pattern-card.cat-infrastructure{border-left-color:#67d0e0}
.pattern-card.cat-content{border-left-color:#a98cf6}
.pattern-card.cat-sender{border-left-color:#7de08c}
.pattern-card.cat-lifecycle{border-left-color:#e0c76a}
.pattern-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.pattern-card h3{margin:0 0 6px;font-size:15px}
.pattern-card p{margin:0;color:var(--muted);font-size:13px}
.pattern-delta{margin-top:8px;font-size:13px}
.pattern-delta span{color:var(--muted)}
.pattern-foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px;font-size:12px}
.pattern-foot small{color:var(--muted)}

/* v3: AI insights & growth */
.growth-table td small{display:block;color:var(--muted);margin-top:3px}
.growth-table .score{color:var(--accent);font-size:16px}
.growth-mini{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-top:10px}
.growth-mini-card{background:var(--surface-raised);border:1px solid var(--line);border-radius:10px;padding:10px}
.growth-mini-card .score{color:var(--accent);font-weight:700}
.growth-mini-card p{margin:4px 0 4px;font-size:13px}
.growth-mini-card small{color:var(--muted);font-size:12px}
.evrow{margin-top:6px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.evchips{display:inline-flex;flex-wrap:wrap;gap:4px}
.evchip{font-size:11px;padding:1px 6px;border:1px solid var(--line);border-radius:6px;color:var(--muted);text-decoration:none;white-space:nowrap}
a.evchip:hover{border-color:var(--accent);color:var(--accent)}
.tag.data-observed{background:rgba(91,214,162,.16);color:#5bd6a2}
.tag.data-calculated{background:rgba(139,164,255,.16);color:#8ba4ff}
.tag.data-inferred{background:rgba(255,184,106,.18);color:#ffb86a}

/* v3: reports & exports */
.export-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.export-bar b{margin-right:6px;color:var(--muted)}

.compliance-warn{border-left:3px solid #ff8f8f}
.compliance-warn h2{color:#ff8f8f}

/* v3.1 Batch 3: settings hub, roles, market column */
.settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.settings-grid label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}
.settings-grid .settings-actions{grid-column:1/-1}
.role-toggle{border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:999px;padding:3px 10px;cursor:pointer;font-size:12px}
.role-toggle.on{border-color:#5bd6a2;color:#5bd6a2;background:rgba(91,214,162,.12)}
.compare-table th.col-market,.compare-table td.col-market{background:rgba(139,164,255,.07);font-style:italic}
.compare-table th.col-self,.compare-table td.col-self{background:rgba(91,214,162,.08)}
.compare-table th small{display:block;color:var(--muted);font-weight:400}
tr.row-excluded{opacity:.5}
.small-input{width:90px}

/* ============================================================
   v3.1 Batch 4 — mailboxscope (Color Admin) dark theme reskin
   ============================================================ */
:root{
  --bg:#212837;            /* body */
  --panel:#2a3650;         /* cards/panels (component-bg) */
  --panel2:#2a3650;
  --surface:#2a3650;
  --surface-raised:#313f5e;
  --inp:#1f2738;           /* inputs / inner boxes */
  --sidebar:#1a2130;
  --line:#3c4e71;          /* gray-800 */
  --line-strong:#4d6593;   /* gray-700 */
  --text:#ebeef4;          /* gray-100 */
  --muted:#869ac0;         /* gray-500 */
  --blue:#1f6bff; --accent:#1f6bff; --accent-2:#4d8bff;
  --green:#2fb344; --red:#ff5b52; --amber:#ff9500; --concept:#ff9500;
  --cyan:#30beff; --teal:#20c997; --pink:#d63384;
  --prototype:#a98cf6; --unfinished:#869ac0;
  --radius:9px;
  --shadow:0 .5rem 1rem rgba(0,0,0,.28);
}
html{font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;background:var(--bg);color:var(--text)}
a,a:hover{color:var(--accent-2)}
/* Sidebar (Color Admin look) */
aside{background:var(--sidebar);border-right:1px solid var(--line)}
.logo span{background:linear-gradient(135deg,var(--amber),var(--pink));color:#fff;box-shadow:0 4px 12px rgba(214,51,132,.35)}
nav a{border-radius:8px;position:relative}
nav a:hover{background:rgba(255,255,255,.05);color:#fff}
nav a.active{background:rgba(31,107,255,.14);color:#fff}
nav a.active::before{content:"";position:absolute;left:-6px;top:8px;bottom:8px;width:3px;border-radius:3px;background:linear-gradient(to bottom,var(--amber),var(--pink))}
/* Panels & cards */
.panel{background:var(--surface);box-shadow:var(--shadow);border-color:var(--line);border-radius:var(--radius)}
.card{background:var(--surface);border-color:var(--line);border-radius:var(--radius)}
.metric:hover{border-color:var(--accent)}
/* Inner boxes recolored to the theme */
.audit-summary>div,.auth-grid>div,.hour-grid div,.header-anomaly,.header-groups details,.preheader-text,.screenshot-figure,.pattern-card,.growth-mini-card,.seq-card{background:var(--inp)}
input,select,textarea{background:var(--inp);border-color:var(--line);border-radius:6px}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(31,107,255,.18)}
pre{background:#171d29;border-color:var(--line)}
.stat-track{background:#171d29}
.stat-track i{background:var(--accent)}
/* Buttons */
button,.button{background:var(--accent);border-radius:6px;box-shadow:0 2px 6px rgba(31,107,255,.25)}
button:hover,.button:hover{filter:brightness(1.08)}
.secondary{background:var(--surface-raised);border-color:var(--line);color:var(--text);box-shadow:none}
.success{background:var(--green)}
.danger{background:#b02a37}
/* Badges / tags / status */
.badge,.tag,.status{border-radius:6px;border-color:var(--line)}
.badge.inbox{color:#7fe0a3;background:rgba(47,179,68,.16)}
.badge.promotions{color:#7fb0ff;background:rgba(31,107,255,.16)}
.badge.spam{color:#ff8f88;background:rgba(230,24,13,.16)}
.badge.other{color:#a8b6d1;background:rgba(134,154,192,.14)}
.status.ready,.status.completed{color:#5fd486}.status.error,.status.failed{color:#ff8f88}.status.running{color:#ffcc00}
.secondary,.pagination a{border-color:var(--line)}
.pagination a.active{background:var(--accent)}
.flow-day{background:rgba(31,107,255,.16);color:#9db8ff}
.flash{background:rgba(47,179,68,.14);color:#8be0a6}.flash.error{background:rgba(230,24,13,.14);color:#ff9da4}
.warning{border-color:#7a5a1e;background:rgba(255,149,0,.10)}
.severity-high{color:#ff8f88}.severity-medium{color:#ffcc00}.severity-low{color:#7fb0ff}
.good{color:var(--green)}.bad{color:var(--red)}
.compare-table th:first-child,.compare-table td.metric-label{background:var(--surface)}

/* Batch 4 — info tooltip ("?" like the Warmup example) */
.info-tip{position:relative;display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;margin-left:5px;border-radius:50%;border:1px solid var(--line-strong);color:var(--muted);font-size:10px;font-weight:700;cursor:help;vertical-align:middle;line-height:1;user-select:none}
.info-tip:hover,.info-tip:focus{border-color:var(--accent);color:var(--accent);outline:none}
.info-tip .tip{visibility:hidden;opacity:0;position:absolute;z-index:60;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);width:max-content;max-width:280px;background:var(--surface-raised);color:var(--text);border:1px solid var(--line-strong);border-radius:8px;padding:8px 10px;font-size:12px;font-weight:400;line-height:1.45;text-transform:none;letter-spacing:normal;box-shadow:var(--shadow);white-space:normal;text-align:left;pointer-events:none;transition:opacity .12s}
.info-tip .tip::after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:6px solid transparent;border-top-color:var(--line-strong)}
.info-tip:hover .tip,.info-tip:focus .tip{visibility:visible;opacity:1}
th .info-tip .tip,.audit-summary .info-tip .tip{text-transform:none}

/* v3.1 Batch: dynamics line chart */
.chart-wrap{width:100%}
.line-chart{width:100%;height:auto;display:block}
.line-chart .ch-grid{stroke:rgba(255,255,255,.08);stroke-width:1}
.line-chart .ch-axis{fill:var(--muted);font-size:10px}
.chart-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:8px;font-size:12px;color:var(--muted)}
.chart-legend span{display:inline-flex;align-items:center;gap:6px}
.legend-dot{display:inline-block;width:10px;height:10px;border-radius:50%}

/* v3.1: AI insights status workflow */
.insight-grid .pattern-card{display:flex;flex-direction:column}
.insight-own{border-left-color:#5bd6a2 !important}
.insight-status{display:flex;align-items:center;gap:8px;margin-top:10px;padding-top:8px;border-top:1px solid var(--line)}
.tag.wf-new{background:rgba(139,164,255,.16);color:#8ba4ff}
.tag.wf-in_progress{background:rgba(255,204,0,.16);color:#ffcc00}
.tag.wf-resolved{background:rgba(47,179,68,.18);color:#5fd486}
.pattern-card .score{color:var(--accent);font-size:16px}

/* v3.1: grouped sidebar nav */
nav .nav-group{margin-bottom:4px}
nav .nav-group>summary{list-style:none;cursor:pointer;padding:7px 12px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-radius:8px;display:flex;align-items:center;justify-content:space-between}
nav .nav-group>summary::-webkit-details-marker{display:none}
nav .nav-group>summary::after{content:"▸";font-size:10px;opacity:.6;transition:transform .15s}
nav .nav-group[open]>summary::after{transform:rotate(90deg)}
nav .nav-group>summary:hover{color:var(--text);background:rgba(255,255,255,.04)}
nav .nav-group a{display:block;padding:8px 12px 8px 18px;font-size:13px}

/* v3.1: analysis wizard */
.wiz-stepper{position:sticky;top:0;z-index:20;display:flex;flex-wrap:wrap;gap:8px;padding:12px;margin-bottom:16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.wiz-stepper a{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:13px;text-decoration:none}
.wiz-stepper a:hover{border-color:var(--accent);color:var(--text)}
.wiz-n{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--accent);color:#fff;font-size:11px;font-weight:700}
.wiz-badge{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,var(--amber),var(--pink));color:#fff;font-size:12px;font-weight:700;margin-right:6px;vertical-align:middle}
section[id^="wiz-"]{scroll-margin-top:80px}

/* ── Mechanics playbook + per-message/competitor markup ─────────────────── */
.tag.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:700;letter-spacing:.02em}
.tag.tc-realtime{background:rgba(47,179,68,.16);color:#5fd486;border-color:#2f7a48}
.tag.tc-other{background:rgba(139,164,255,.14);color:#8ba4ff}
.tag.tc-fake{background:rgba(255,93,104,.16);color:#ff8891;border-color:#7a3f43}
.rt-dot{color:#5fd486;font-size:9px;vertical-align:middle}
.tag.ev-fact{background:rgba(47,179,68,.14);color:#5fd486}
.tag.ev-hyp{background:rgba(234,184,77,.16);color:#ffd06b}
.mech-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}
.mech-card{border-left-color:var(--blue)}
.mech-card.mech-warn{border-left-color:var(--red)}
.mech-card h3{margin:6px 0 8px;font-size:15px}
.mech-meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:9px}
.mech-card p{color:var(--text);font-size:13px;line-height:1.5;margin:0 0 8px}
.mech-risk{color:#ffb0b5;background:rgba(255,93,104,.08);border:1px solid #7a3f43;border-radius:8px;padding:8px 10px;font-size:12.5px}
.mech-links{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:9px}
.mech-links code{font-size:11px}
.mech-formula{background:#0b121a;border:1px solid var(--line);border-radius:8px;padding:9px;overflow-x:auto}
.mech-formula code{font-size:12px;color:#bcd0ff;white-space:pre-wrap}
.do-not-copy{border:1px solid #7a3f43;background:linear-gradient(180deg,rgba(255,93,104,.05),transparent)}
.feat-icon{font-size:16px}
.feat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;margin:6px 0 12px}
.feat-tile{position:relative;display:flex;align-items:center;gap:8px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#0b121a;cursor:help;outline:none}
.feat-tile.on{border-color:#2f7a48;background:rgba(47,179,68,.06)}
.feat-tile.off{opacity:.5}
.feat-tile b{flex:1;font-size:12.5px;font-weight:600}
.feat-tile i{font-style:normal;font-weight:700;color:var(--muted);font-size:12px}
.feat-tile.on i{color:#5fd486}
.mech-tag{position:relative;cursor:help}
/* reveal tooltips for the custom chips (base .tip visual comes from .info-tip .tip) */
.mech-tag .tip,.feat-tile .tip{visibility:hidden;opacity:0;position:absolute;z-index:60;bottom:calc(100% + 8px);left:0;width:max-content;max-width:300px;background:var(--surface-raised,#313f5e);color:var(--text);border:1px solid var(--line-strong,var(--line));border-radius:8px;padding:8px 10px;font-size:12px;font-weight:400;line-height:1.45;text-transform:none;letter-spacing:normal;white-space:normal;text-align:left;pointer-events:none;box-shadow:0 10px 30px rgba(0,0,0,.35);transition:opacity .12s}
.mech-tag:hover .tip,.mech-tag:focus .tip,.feat-tile:hover .tip,.feat-tile:focus .tip{visibility:visible;opacity:1}
.mech-chips{gap:8px}

/* Messages: mechanics filters + column */
.filters-2row{display:flex;flex-wrap:wrap;gap:9px;align-items:center}
.filters-2row input[name=q]{flex:1 1 240px;min-width:200px}
.filters-2row select{flex:0 1 auto;min-width:150px;width:auto}
.filters-2row .chk-inline{display:inline-flex;align-items:center;gap:6px;color:var(--muted);white-space:nowrap}
.filters-2row .chk-inline input{width:auto}
.mech-cell{min-width:150px}
.mech-cell .tag{margin:0 3px 3px 0}
a.feat-tile{text-decoration:none;color:inherit}
a.feat-tile:hover{text-decoration:none;border-color:var(--accent)}
a.tag:hover{text-decoration:none;border-color:var(--accent)}

/* Numeric offer scores + proprietary block */
.score-table td,.score-table th{text-align:right}
.score-table td:first-child,.score-table th:first-child{text-align:left}
.score-table td b{color:var(--green)}
.own-block{border:1px solid #4a3f7a;background:linear-gradient(180deg,rgba(139,164,255,.05),transparent)}

/* Deposit-stage marker (v3.3) — shared across Offers / Messages / Message / Timeline. */
.dep-badge{display:inline-block;padding:2px 7px;border-radius:6px;font-size:12px;border:1px solid var(--line)}
.dep-nodep{color:#a8b6d1;background:rgba(134,154,192,.12)}
.dep-dep1{color:#7fb0ff;background:rgba(31,107,255,.16)}
.dep-dep2{color:#ffb86a;background:rgba(255,184,106,.16)}
.dep-dep3{color:#5bd6a2;background:rgba(91,214,162,.16)}
.dep-form{margin:0}
.dep-select{width:auto;min-width:60px;padding:5px 7px;font-size:12px}
.dep-select.dep-nodep{border-color:#33404f}
.dep-select.dep-dep1{border-color:#2f5aa8}
.dep-select.dep-dep2{border-color:#76562a}
.dep-select.dep-dep3{border-color:#2f7a48}
