/* ══════════════════════════════════════════════════════════════════════
   Thunder AI CRM — storm-dark theme
   Signature: gradient hairline on panels, violet→cyan bolt accents.
   ══════════════════════════════════════════════════════════════════════ */
:root{
  --bg:#0a0d18; --bg2:#0e1322;
  --panel:#131a2e; --panel2:#182138; --panel3:#1d2745;
  --border:#232c4a; --border2:#2c3760;
  --text:#e8ecfb; --muted:#94a0c6; --faint:#5b6690;
  --accent:#7c5cff; --accent2:#22d3ee;
  --ok:#2dd4a7; --warn:#f5a524; --bad:#f4536b; --pink:#f472b6;
  --grad:linear-gradient(135deg,#7c5cff 0%,#22d3ee 100%);
  --r:14px; --r-sm:10px;
  --shadow:0 10px 30px rgba(3,6,18,.45);
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Ubuntu,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scrollbar-color:var(--border2) var(--bg)}
body{
  font-family:var(--font);background:var(--bg);color:var(--text);
  font-size:14.5px;line-height:1.5;
  background-image:
    radial-gradient(900px 480px at 85% -10%,rgba(124,92,255,.13),transparent 60%),
    radial-gradient(700px 420px at -10% 30%,rgba(34,211,238,.08),transparent 55%);
  background-attachment:fixed;
}
a{color:var(--accent2);text-decoration:none}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}
::selection{background:rgba(124,92,255,.45)}

/* ── shell ─────────────────────────────────────────────────────────── */
.shell{display:flex;min-height:100vh}
.sidebar{
  width:234px;flex:0 0 234px;position:sticky;top:0;height:100vh;overflow-y:auto;
  background:linear-gradient(180deg,var(--bg2),var(--bg));
  border-right:1px solid var(--border);
  display:flex;flex-direction:column;padding:16px 12px;z-index:40;
}
.brand{display:flex;gap:10px;align-items:center;color:var(--text);padding:4px 8px 14px}
.bolt{
  width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;font-size:20px;
  background:var(--grad);border-radius:11px;box-shadow:0 6px 18px rgba(124,92,255,.45);
}
.bolt.big{width:52px;height:52px;font-size:28px;border-radius:14px;margin:0 auto}
.brand-txt b{font-size:16.5px;letter-spacing:.2px}
.brand-txt b i{font-style:normal;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.brand-txt small{display:block;color:var(--faint);font-size:11px;margin-top:1px}

.ws-chip{
  display:flex;align-items:center;gap:9px;margin:0 4px 12px;padding:8px 10px;
  background:var(--panel);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);
}
.ws-ic{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;
  background:color-mix(in srgb,var(--wc,#7c5cff) 22%,transparent);font-size:16px}
.ws-name{flex:1;font-weight:600;font-size:13px;line-height:1.15}
.ws-name small{display:block;font-weight:400;color:var(--faint);font-size:10.5px;text-transform:uppercase;letter-spacing:.6px}
.ws-x{color:var(--faint);font-size:12px;padding:4px}
.ws-x:hover{color:var(--bad)}

.nav{display:flex;flex-direction:column;gap:2px;flex:1}
.nav-sec{margin:14px 10px 5px;font-size:10.5px;font-weight:700;letter-spacing:1.4px;
  text-transform:uppercase;color:var(--faint)}
.nav a{
  display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:9px;
  color:var(--muted);font-weight:500;position:relative;border:1px solid transparent;
}
.nav a:hover{color:var(--text);background:rgba(124,92,255,.08)}
.nav a.on{
  color:var(--text);background:linear-gradient(90deg,rgba(124,92,255,.18),rgba(34,211,238,.07));
  border-color:rgba(124,92,255,.35);
}
.nav a.on::before{
  content:"";position:absolute;left:-12px;top:8px;bottom:8px;width:3px;border-radius:3px;
  background:var(--grad);box-shadow:0 0 10px rgba(124,92,255,.8);
}
.nav .ic{width:18px;text-align:center;opacity:.9}
.tag-ai{
  margin-left:auto;font-size:9.5px;font-weight:800;letter-spacing:.8px;padding:2px 6px;
  border-radius:6px;background:var(--grad);color:#0a0d18;
}
.side-foot{padding:12px 10px 4px;color:var(--faint);font-size:11px;border-top:1px solid var(--border);margin-top:10px}

.main{flex:1;min-width:0;display:flex;flex-direction:column}
.content{padding:22px 26px 60px;max-width:1460px;width:100%;margin:0 auto}

/* ── topbar ────────────────────────────────────────────────────────── */
.topbar{
  position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:14px;
  padding:11px 26px;background:rgba(10,13,24,.82);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--border);
}
.burger{display:none;font-size:19px;color:var(--muted);padding:4px 8px}
.gsearch{
  flex:1;max-width:520px;display:flex;align-items:center;gap:8px;
  background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:0 12px;
}
.gsearch:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(124,92,255,.18)}
.gs-ic{color:var(--faint);font-size:16px}
.gsearch input{flex:1;background:none;border:none;outline:none;color:var(--text);padding:9px 0;font-size:13.5px}
.gsearch input::placeholder{color:var(--faint)}
.top-actions{margin-left:auto;display:flex;align-items:center;gap:10px}

.iconbtn{position:relative;font-size:17px;padding:7px 9px;border-radius:10px;border:1px solid var(--border);background:var(--panel)}
.iconbtn:hover{border-color:var(--border2)}
.bubble{
  position:absolute;top:-5px;right:-5px;min-width:17px;height:17px;padding:0 4px;
  background:var(--bad);color:#fff;font-size:10.5px;font-weight:700;border-radius:9px;
  display:grid;place-items:center;box-shadow:0 0 0 2px var(--bg);
}
.avatar-btn{
  width:36px;height:36px;border-radius:50%;background:var(--av,#7c5cff);
  font-weight:700;font-size:13px;color:#fff;display:grid;place-items:center;
  border:2px solid rgba(255,255,255,.15);
}

.menu-wrap{position:relative}
.menu{
  position:absolute;right:0;top:calc(100% + 8px);min-width:190px;z-index:50;display:none;
  background:var(--panel2);border:1px solid var(--border2);border-radius:12px;
  box-shadow:var(--shadow);padding:6px;
}
.menu.open{display:block}
.menu-wide{min-width:320px}
.menu a{display:block;padding:8px 11px;border-radius:8px;color:var(--text);font-size:13.5px}
.menu a:hover{background:rgba(124,92,255,.12)}
.menu-title{display:flex;justify-content:space-between;align-items:baseline;gap:10px;
  padding:8px 11px 6px;font-weight:700;font-size:13px;border-bottom:1px solid var(--border);margin-bottom:4px}
.menu-title small{font-weight:400}
.menu-empty{padding:16px 11px;color:var(--faint);font-size:13px;text-align:center}
.menu-foot{display:block;text-align:center;color:var(--accent2)!important;font-size:12.5px;border-top:1px solid var(--border);margin-top:4px}
.notif{display:block;padding:8px 11px;border-radius:8px}
.notif small{display:block;color:var(--faint);font-size:11px;margin-top:1px}
.notif-txt{display:block;color:var(--text);font-size:13px;line-height:1.35}
.role-tag{font-size:10px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;
  padding:2px 7px;border-radius:6px;background:rgba(124,92,255,.2);color:var(--accent2)}
.crm-switch{display:grid;gap:6px;margin:8px 10px 12px}
.crm-switch a{display:flex;align-items:center;gap:8px;min-height:34px;padding:7px 9px;border-radius:6px;color:var(--muted);font-size:12px;font-weight:800;border:1px solid transparent}
.crm-switch a span{display:grid;place-items:center;width:22px;height:22px;border-radius:6px;background:color-mix(in srgb,var(--wc),transparent 82%);color:var(--wc);flex:0 0 auto}
.crm-switch a.on,.crm-switch a:hover{color:var(--text);border-color:var(--line);background:rgba(255,255,255,.04)}

.toast{
  position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:80;
  background:var(--panel2);border:1px solid var(--border2);border-left:3px solid transparent;
  border-image:linear-gradient(180deg,#7c5cff,#22d3ee) 1;
  padding:11px 18px;border-radius:10px;box-shadow:var(--shadow);font-size:13.5px;
  animation:pop .25s ease;max-width:min(90vw,560px);
}
@keyframes pop{from{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%,0)}}

/* ── page & cards ──────────────────────────────────────────────────── */
.page-head{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;justify-content:space-between;margin:2px 0 18px}
.page-head h1{font-size:22px;letter-spacing:.2px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.head-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.crumbs{font-size:12px;color:var(--faint);margin-bottom:3px}
.crumbs a{color:var(--faint)} .crumbs a:hover{color:var(--accent2)}
.muted{color:var(--muted);font-size:13.5px;margin-top:3px}
.muted-sm{color:var(--faint);font-size:12px}
.c-ok{color:var(--ok)} .c-bad{color:var(--bad)}

.card{
  position:relative;background:linear-gradient(180deg,var(--panel),rgba(19,26,46,.85));
  border:1px solid var(--border);border-radius:var(--r);padding:16px 18px;margin-bottom:18px;
}
.card::before{
  content:"";position:absolute;inset:0 0 auto 0;height:2px;border-radius:var(--r) var(--r) 0 0;
  background:var(--grad);opacity:.55;
}
.card-flush{padding:0;overflow-x:auto;-webkit-overflow-scrolling:touch}
.tbl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:inherit}
.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:12px}
.card-head.pad{padding:14px 18px 0}
.card-head h3{font-size:14.5px;font-weight:700;letter-spacing:.2px}
.ai-card{border-color:rgba(124,92,255,.4);background:
  linear-gradient(180deg,rgba(124,92,255,.10),rgba(19,26,46,.9))}
.empty{color:var(--faint);padding:18px;text-align:center;font-size:13.5px}

.grid-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}
.grid-2-13{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);align-items:start}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.grid-2-inner{display:grid;grid-template-columns:minmax(0,1fr);gap:0}
.w-narrow{max-width:560px}

/* KPI cards */
.kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin-bottom:18px}
.kpi-grid.kpi-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.kpi{
  position:relative;display:block;background:var(--panel);border:1px solid var(--border);
  border-radius:var(--r-sm);padding:13px 15px;color:var(--text);transition:transform .12s,border-color .12s;
}
.kpi::before{content:"";position:absolute;inset:0 0 auto 0;height:2px;background:var(--grad);opacity:.4;border-radius:10px 10px 0 0}
.kpi:hover{transform:translateY(-2px);border-color:var(--border2)}
.kpi small{display:block;color:var(--muted);font-size:11.5px;letter-spacing:.3px}
.kpi b{display:block;font-size:21px;margin:3px 0 1px;font-variant-numeric:tabular-nums}
.kpi span{color:var(--faint);font-size:11.5px}
.kpi-hot{border-color:rgba(244,83,107,.5)}
.kpi-hot::before{background:linear-gradient(90deg,#f4536b,#f5a524)}

/* ── buttons / inputs ──────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;gap:7px;padding:8px 15px;border-radius:10px;
  font-weight:600;font-size:13.5px;border:1px solid var(--border);background:var(--panel);
  color:var(--text);transition:all .13s;white-space:nowrap;
}
.btn:hover{border-color:var(--border2);transform:translateY(-1px)}
.btn-grad{background:var(--grad);border:none;color:#fff;box-shadow:0 6px 16px rgba(124,92,255,.35)}
.btn-grad:hover{box-shadow:0 8px 22px rgba(124,92,255,.5)}
.btn-ghost{background:transparent}
.btn-on{border-color:var(--accent);color:var(--accent2);background:rgba(124,92,255,.1)}
.btn-ok{background:rgba(45,212,167,.15);border-color:rgba(45,212,167,.5);color:var(--ok)}
.btn-danger-ghost{background:transparent;border-color:rgba(244,83,107,.4);color:var(--bad)}
.btn-danger-ghost:hover{background:rgba(244,83,107,.12)}
.btn-sm{padding:6px 11px;font-size:12.5px;border-radius:8px}
.w-full{width:100%;justify-content:center}

.inp{
  width:100%;padding:9px 12px;border-radius:10px;background:var(--bg2);
  border:1px solid var(--border);color:var(--text);font-size:13.5px;outline:none;
  transition:border-color .12s,box-shadow .12s;
}
.inp:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(124,92,255,.16)}
.inp::placeholder{color:var(--faint)}
select.inp{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);
  background-position:calc(100% - 16px) 55%,calc(100% - 11px) 55%;background-size:5px 5px;background-repeat:no-repeat;padding-right:28px}
textarea.inp{resize:vertical;min-height:38px}
.inp-sm{padding:7px 10px;font-size:12.8px;border-radius:8px;width:auto}
.w-110{width:110px}.w-120{width:120px}.w-150{width:150px}.w-40{width:40px}
.grow{flex:1}
input[type=color].inp-sm{padding:2px;height:34px;width:60px}

.mini-link{color:var(--accent2);font-size:12.5px;font-weight:600}
.mini-link:hover{text-decoration:underline}
.as-btn{background:none;border:none;padding:0}
.x-btn{color:var(--faint);font-size:13px;padding:5px 7px;border-radius:7px}
.x-btn:hover{color:var(--bad);background:rgba(244,83,107,.1)}
.chk{
  width:26px;height:26px;border-radius:50%;border:1.5px solid var(--border2);
  color:var(--faint);font-size:13px;display:grid;place-items:center;transition:all .12s;
}
.chk:hover{border-color:var(--ok);color:var(--ok)}
.chk-on{background:rgba(45,212,167,.18);border-color:var(--ok);color:var(--ok)}
.switch{width:36px;height:20px;border-radius:12px;background:var(--border);position:relative;transition:background .15s}
.switch i{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--muted);transition:all .15s}
.switch.sw-on{background:var(--grad)}
.switch.sw-on i{left:18px;background:#fff}

.filters{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.filters .inp-sm[type=search]{min-width:220px}

/* ── tables & lists ────────────────────────────────────────────────── */
.tbl{width:100%;border-collapse:collapse}
.tbl th{
  text-align:left;font-size:10.8px;font-weight:700;letter-spacing:1px;text-transform:uppercase;
  color:var(--faint);padding:11px 14px;border-bottom:1px solid var(--border);
}
.tbl td{padding:11px 14px;border-bottom:1px solid rgba(35,44,74,.55);vertical-align:middle}
.tbl tbody tr{transition:background .1s}
.tbl tbody tr[onclick]{cursor:pointer}
.tbl tbody tr:hover{background:rgba(124,92,255,.06)}
.tbl tr:last-child td{border-bottom:none}
.tbl-slim td{padding:8px 10px}
.num{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
th.num{text-align:right}
.row-breach{background:rgba(244,83,107,.07)}
.row-breach:hover{background:rgba(244,83,107,.12)!important}
.row-done{opacity:.5}
.row-done b{text-decoration:line-through}

.list{list-style:none}
.list li{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:9px 2px;border-bottom:1px solid rgba(35,44,74,.5)}
.list li[onclick]{cursor:pointer}
.list li[onclick]:hover{background:rgba(124,92,255,.05)}
.list li:last-child{border-bottom:none}
.list b{font-size:13.5px}
.row-sub{flex-basis:100%;order:3;color:var(--faint);font-size:12px;padding-left:2px}
.list li .row-sub{flex-basis:auto;order:0;flex:1}
.row-end{margin-left:auto}

.feed{list-style:none}
.feed li{display:flex;gap:10px;padding:9px 2px;border-bottom:1px solid rgba(35,44,74,.5);cursor:pointer;align-items:flex-start}
.feed li:hover{background:rgba(124,92,255,.05)}
.feed li:last-child{border-bottom:none}
.feed-ic{font-size:15px;margin-top:1px}
.feed-txt{color:var(--muted);font-size:12.5px;margin-top:1px}
.feed .sdot{margin-left:auto;margin-top:6px}

.brief{list-style:none}
.brief li{display:flex;gap:9px;padding:7px 2px;font-size:13.8px;border-bottom:1px dashed rgba(35,44,74,.6)}
.brief li:last-child{border-bottom:none}
.b-ic{flex:0 0 20px;text-align:center}

/* ── badges / pills / avatars ─────────────────────────────────────── */
.badge{display:inline-block;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:700;letter-spacing:.3px;white-space:nowrap}
.b-info{background:rgba(34,211,238,.14);color:var(--accent2)}
.b-accent{background:rgba(124,92,255,.18);color:#b3a1ff}
.b-ok{background:rgba(45,212,167,.15);color:var(--ok)}
.b-warn{background:rgba(245,165,36,.15);color:var(--warn)}
.b-bad{background:rgba(244,83,107,.16);color:var(--bad)}
.b-mut{background:rgba(148,160,198,.14);color:var(--muted)}
.b-grad{background:var(--grad);color:#fff}

.prio{display:inline-block;padding:3px 9px;border-radius:7px;font-size:11px;font-weight:800;letter-spacing:.4px}
.p-urg{background:rgba(244,83,107,.18);color:var(--bad);box-shadow:inset 0 0 0 1px rgba(244,83,107,.5)}
.p-high{background:rgba(245,165,36,.15);color:var(--warn)}
.p-med{background:rgba(34,211,238,.12);color:var(--accent2)}
.p-low{background:rgba(148,160,198,.13);color:var(--muted)}

.score,.score-pill{
  display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:8px;
  font-weight:800;font-size:13px;font-variant-numeric:tabular-nums;
}
.score i,.score-pill i{font-style:normal;font-size:10px;opacity:.85;font-weight:800}
.gA{background:rgba(45,212,167,.16);color:var(--ok);box-shadow:inset 0 0 0 1px rgba(45,212,167,.45)}
.gB{background:rgba(34,211,238,.13);color:var(--accent2);box-shadow:inset 0 0 0 1px rgba(34,211,238,.4)}
.gC{background:rgba(245,165,36,.14);color:var(--warn);box-shadow:inset 0 0 0 1px rgba(245,165,36,.4)}
.gD{background:rgba(148,160,198,.12);color:var(--muted);box-shadow:inset 0 0 0 1px rgba(148,160,198,.3)}

.av{
  display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;
  background:var(--av,#7c5cff);color:#fff;font-size:10.5px;font-weight:800;vertical-align:middle;
}
.ind-chip{
  display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:20px;
  font-size:11.5px;font-weight:600;white-space:nowrap;
  background:color-mix(in srgb,var(--ic,#94a0c6) 16%,transparent);
  color:color-mix(in srgb,var(--ic,#cdd6f5) 80%,#fff);
}
.sdot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:0 0 8px}
.s-pos{background:var(--ok);box-shadow:0 0 7px rgba(45,212,167,.8)}
.s-neg{background:var(--bad);box-shadow:0 0 7px rgba(244,83,107,.8)}
.s-neu{background:var(--faint)}

.socials-mini span{margin-right:3px;font-size:12px}

/* ── detail layout ─────────────────────────────────────────────────── */
.detail-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:18px;align-items:start}
.dl{display:grid;grid-template-columns:auto 1fr;gap:7px 14px;font-size:13.3px}
.dl dt{color:var(--faint)}
.dl dd{text-align:right;word-break:break-word}
.big-stat{font-size:26px;font-weight:800;font-variant-numeric:tabular-nums;margin-bottom:12px}
.big-stat small{display:block;font-size:12px;font-weight:400;color:var(--faint);margin-top:2px}

.score-row{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.score-big{
  font-size:38px;font-weight:800;padding:14px 20px;border-radius:16px;line-height:1;
  display:flex;align-items:baseline;gap:6px;font-variant-numeric:tabular-nums;
}
.score-big i{font-style:normal;font-size:15px}
.reasons{list-style:none;flex:1;min-width:220px}
.reasons li{padding:4px 0 4px 18px;position:relative;color:var(--muted);font-size:13px}
.reasons li::before{content:"›";position:absolute;left:4px;color:var(--accent2);font-weight:800}
.nba{
  margin-top:14px;padding:11px 13px;border-radius:10px;font-size:13.5px;
  background:rgba(34,211,238,.08);border:1px dashed rgba(34,211,238,.4);
}
.churn-row{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.churn-pill{padding:13px 18px;border-radius:14px;font-weight:800;font-size:17px;text-align:center}
.churn-pill span{display:block;font-size:11.5px;font-weight:600;opacity:.8;margin-top:2px}
.churn-low{background:rgba(45,212,167,.14);color:var(--ok)}
.churn-medium{background:rgba(245,165,36,.15);color:var(--warn)}
.churn-high{background:rgba(244,83,107,.16);color:var(--bad)}

.desc-quote{
  padding:10px 13px;border-left:3px solid var(--border2);background:var(--bg2);
  border-radius:0 9px 9px 0;color:var(--muted);font-size:13.3px;margin-bottom:12px;
}

/* forms */
.form-card{max-width:860px}
.form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:13px 16px}
.form-grid > label{min-width:0}
.form-grid label,.stack-form label{font-size:12.3px;color:var(--muted);font-weight:600;display:block}
.form-grid .inp,.stack-form .inp{margin-top:5px}
.span-2{grid-column:span 2}
.custom-block{margin-top:18px;padding-top:15px;border-top:1px dashed var(--border)}
.cb-title{display:flex;align-items:center;gap:8px;font-weight:700;font-size:13px;margin-bottom:11px}
.cb-title .tag-ai{margin-left:0}
.form-actions{margin-top:18px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.stack-form{display:flex;flex-direction:column;gap:10px}
.lbl-sm{font-size:12px}
.chkline{display:flex!important;align-items:center;gap:8px;font-weight:500!important;color:var(--text)!important;cursor:pointer}
.chkline input{accent-color:var(--accent);width:15px;height:15px}
.convert-form{margin-top:12px;padding-top:12px;border-top:1px dashed var(--border)}
.inline-form{display:inline}
.cond-row{display:flex;gap:8px}
.cond-row .inp-sm{flex:1;min-width:0}
.ap{display:flex;flex-direction:column;gap:8px}
.hide{display:none}
.quick-task{display:flex;gap:9px;flex-wrap:wrap;align-items:center}

/* note / timeline */
.note-form{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.timeline{list-style:none}
.tl-item{display:flex;gap:11px;padding:10px 2px;border-bottom:1px solid rgba(35,44,74,.5)}
.tl-item:last-child{border-bottom:none}
.tl-sys{opacity:.55}
.tl-ic{
  flex:0 0 30px;width:30px;height:30px;display:grid;place-items:center;font-size:14px;
  background:var(--bg2);border:1px solid var(--border);border-radius:50%;
}
.tl-body{flex:1;min-width:0}
.tl-body p{font-size:13.4px;margin-top:2px;word-break:break-word}
.tl-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px}
.tl-meta b{font-size:12.5px}
.tl-type{color:var(--faint);text-transform:uppercase;font-size:10px;letter-spacing:.8px;font-weight:700}
.tl-meta small{color:var(--faint);margin-left:auto}

/* ── kanban board ──────────────────────────────────────────────────── */
.board{display:flex;gap:13px;overflow-x:auto;padding-bottom:14px;align-items:flex-start}
.col{
  flex:0 0 252px;width:252px;background:rgba(14,19,34,.7);border:1px solid var(--border);
  border-radius:var(--r);padding:10px;
}
.col-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:2px 4px 9px}
.col-head b{font-size:13px}
.col-meta{color:var(--faint);font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}
.col-body{display:flex;flex-direction:column;gap:9px;min-height:70px;border-radius:10px;transition:background .12s}
.col-body.drag-over{background:rgba(124,92,255,.12);outline:2px dashed var(--accent);outline-offset:-2px}
.col-empty{color:var(--faint);font-size:12px;text-align:center;padding:18px 6px;border:1.5px dashed var(--border);border-radius:10px}
.deal-card{
  background:var(--panel2);border:1px solid var(--border);border-radius:11px;padding:10px 11px;
  cursor:grab;transition:transform .12s,border-color .12s;position:relative;
}
.deal-card::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;border-radius:11px 0 0 11px;background:var(--grad);opacity:.7}
.deal-card:hover{border-color:var(--border2);transform:translateY(-1px)}
.deal-card.dragging{opacity:.45;transform:rotate(2deg)}
.deal-card b{display:block;font-size:13px;line-height:1.3;margin-bottom:1px}
.dc-foot{display:flex;align-items:center;gap:8px;margin-top:8px}
.dc-foot .num{font-weight:700;font-size:12.8px}
.prob{margin-left:auto;font-size:11px;color:var(--accent2);font-weight:700}
.dc-foot .av{width:22px;height:22px;font-size:9px}
.col-final{background:transparent;border-style:dashed}
.finalzone{
  border:1.5px dashed var(--border2);border-radius:11px;padding:15px 10px;text-align:center;
  color:var(--muted);font-size:12.5px;margin-bottom:9px;transition:all .12s;
}
.dz-won.drag-over{border-color:var(--ok);background:rgba(45,212,167,.12);color:var(--ok)}
.dz-lost.drag-over{border-color:var(--bad);background:rgba(244,83,107,.1);color:var(--bad)}
.mini-list{display:flex;flex-direction:column;gap:5px;margin-top:6px}
.won-row,.lost-row{display:flex;justify-content:space-between;gap:8px;font-size:12px;padding:6px 9px;border-radius:8px;color:var(--text)}
.won-row{background:rgba(45,212,167,.09)}
.lost-row{background:rgba(148,160,198,.07);color:var(--faint)}

/* deal stage stepper */
.prob-line{height:9px;border-radius:6px;background:var(--bg2);overflow:hidden;border:1px solid var(--border)}
.prob-fill{height:100%;background:var(--grad);border-radius:6px;box-shadow:0 0 12px rgba(124,92,255,.6)}
.prob-meta{margin-top:9px;color:var(--muted);font-size:13.3px}
.stage-steps{display:flex;gap:8px;flex-wrap:wrap}
.stage-btn{
  padding:7px 12px;border-radius:20px;border:1px solid var(--border);background:var(--bg2);
  font-size:12.5px;font-weight:600;color:var(--muted);transition:all .12s;
}
.stage-btn:hover{border-color:var(--accent);color:var(--text)}
.stage-btn.cur{background:var(--grad);color:#fff;border-color:transparent;box-shadow:0 4px 12px rgba(124,92,255,.4)}
.stage-final{display:flex;gap:9px;margin-top:13px;padding-top:13px;border-top:1px dashed var(--border)}

/* ── campaigns ─────────────────────────────────────────────────────── */
.camp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(295px,1fr));gap:16px}
.camp-card{
  position:relative;display:flex;flex-direction:column;gap:7px;color:var(--text);
  background:linear-gradient(180deg,var(--panel),rgba(19,26,46,.85));
  border:1px solid var(--border);border-radius:var(--r);padding:15px 16px;transition:all .13s;
}
.camp-card::before{content:"";position:absolute;inset:0 0 auto 0;height:2px;background:var(--grad);opacity:.55;border-radius:var(--r) var(--r) 0 0}
.camp-card:hover{transform:translateY(-2px);border-color:var(--border2)}
.cc-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.cc-type{font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:7px;background:rgba(148,160,198,.12)}
.t-email{background:rgba(124,92,255,.16);color:#b3a1ff}
.t-whatsapp{background:rgba(45,212,167,.14);color:var(--ok)}
.t-sms{background:rgba(34,211,238,.13);color:var(--accent2)}
.t-social{background:rgba(244,114,182,.14);color:var(--pink)}
.cc-name{font-size:14.5px;line-height:1.3}
.cc-stats{display:flex;gap:14px;flex-wrap:wrap;margin-top:5px;padding-top:10px;border-top:1px dashed var(--border)}
.cc-stats span b{display:block;font-size:14.5px;font-variant-numeric:tabular-nums}
.cc-stats span small{color:var(--faint);font-size:10.5px;text-transform:uppercase;letter-spacing:.6px}

/* funnels */
.funnel{display:flex;flex-direction:column;gap:9px}
.f-row{display:grid;grid-template-columns:150px 1fr auto;gap:11px;align-items:center}
.f-label{font-size:12.6px;color:var(--muted);display:flex;align-items:center;gap:7px}
.f-track{height:15px;background:var(--bg2);border-radius:8px;overflow:hidden;border:1px solid var(--border)}
.f-fill{height:100%;border-radius:8px;min-width:2px;transition:width .5s ease}
.f-grad{background:var(--grad)}
.f-val{font-size:12.6px;font-weight:700}

.donut-wrap{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.donut-wrap .chart{flex:0 0 190px}
.legend{list-style:none;flex:1;min-width:200px;display:flex;flex-direction:column;gap:6px}
.legend li{display:flex;align-items:center;gap:8px;font-size:12.8px}
.legend b{margin-left:auto}
.dotc{width:10px;height:10px;border-radius:3px;flex:0 0 10px}

/* SVG charts */
.chart{width:100%;height:auto;display:block}
.chart .grid{stroke:rgba(148,160,198,.14);stroke-width:1}
.chart .ax{fill:var(--faint);font-size:10.5px;font-family:var(--font)}
.chart .val{fill:var(--muted);font-size:10.5px;font-weight:700;font-family:var(--font)}
.donut-big{fill:var(--text);font-size:26px;font-weight:800;font-family:var(--font)}
.donut-sub{fill:var(--faint);font-size:10.5px;font-family:var(--font)}

/* ── industries ────────────────────────────────────────────────────── */
.ind-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.ind-card{
  position:relative;background:linear-gradient(180deg,var(--panel),rgba(19,26,46,.85));
  border:1px solid var(--border);border-radius:var(--r);padding:16px;display:flex;flex-direction:column;gap:9px;
}
.ind-card::before{content:"";position:absolute;inset:0 0 auto 0;height:2.5px;background:var(--ic,#7c5cff);opacity:.8;border-radius:var(--r) var(--r) 0 0}
.ind-on{border-color:color-mix(in srgb,var(--ic) 65%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--ic) 20%,transparent)}
.ind-top{display:flex;align-items:center;gap:10px;font-size:15px}
.ind-icon{width:36px;height:36px;display:grid;place-items:center;font-size:19px;border-radius:10px;
  background:color-mix(in srgb,var(--ic) 20%,transparent)}
.ind-tag{color:var(--muted);font-size:12.6px;min-height:34px}
.ind-stats{display:flex;gap:13px;flex-wrap:wrap;padding:9px 0;border-top:1px dashed var(--border);border-bottom:1px dashed var(--border)}
.ind-stats span b{display:block;font-size:13.6px;font-variant-numeric:tabular-nums}
.ind-stats span small{color:var(--faint);font-size:10px;text-transform:uppercase;letter-spacing:.5px}
.ind-pipe{font-size:10.6px;color:var(--faint);line-height:1.7}
.ind-pipe i{font-style:normal;background:rgba(148,160,198,.1);padding:2px 7px;border-radius:6px;white-space:nowrap}
.ind-pipe em{font-style:normal;margin:0 3px;color:var(--border2)}

/* ── assistant chat ────────────────────────────────────────────────── */
.chat-wrap{display:flex;flex-direction:column;max-width:880px;min-height:60vh}
.chat{flex:1;display:flex;flex-direction:column;gap:14px;overflow-y:auto;padding:4px 2px 14px;max-height:58vh}
.msg{display:flex;gap:11px;max-width:94%}
.msg.user{align-self:flex-end;flex-direction:row-reverse}
.msg-av{
  flex:0 0 34px;width:34px;height:34px;border-radius:11px;display:grid;place-items:center;
  font-size:16px;background:var(--grad);
}
.msg.user .msg-av{background:var(--panel3);font-size:12px;font-weight:800}
.msg-body{
  background:var(--panel2);border:1px solid var(--border);border-radius:13px;padding:11px 14px;
  font-size:13.6px;min-width:0;
}
.msg.user .msg-body{background:rgba(124,92,255,.16);border-color:rgba(124,92,255,.4)}
.msg-body p{margin:0 0 6px}
.msg-body p:last-child{margin-bottom:0}
.msg-body ul{margin:4px 0 4px 18px}
.msg-body h4{margin:2px 0 7px;font-size:13.5px}
.table-wrap{overflow-x:auto;margin:7px 0}
table.mini{width:100%;border-collapse:collapse;font-size:12.6px}
table.mini th{text-align:left;color:var(--faint);font-size:10.4px;text-transform:uppercase;letter-spacing:.7px;padding:5px 9px;border-bottom:1px solid var(--border)}
table.mini td{padding:6px 9px;border-bottom:1px solid rgba(35,44,74,.5)}
table.mini tr:last-child td{border-bottom:none}
.quick-row{display:flex;gap:8px;flex-wrap:wrap;padding:11px 0}
.chip{
  padding:6px 12px;border-radius:20px;border:1px solid var(--border);background:var(--bg2);
  font-size:12.3px;color:var(--muted);transition:all .12s;
}
.chip:hover{border-color:var(--accent);color:var(--text);background:rgba(124,92,255,.1)}
.chat-form{display:flex;gap:9px;padding-top:11px;border-top:1px solid var(--border)}
.typing{color:var(--faint);font-size:12.5px;animation:blink 1s infinite}
@keyframes blink{50%{opacity:.4}}

/* ── notifications page ────────────────────────────────────────────── */
.notif-list{list-style:none}
.notif-list li a{display:flex;justify-content:space-between;gap:12px;align-items:baseline;padding:13px 18px;border-bottom:1px solid rgba(35,44,74,.55);color:var(--text)}
.notif-list li:last-child a{border-bottom:none}
.notif-list li a:hover{background:rgba(124,92,255,.06)}
.notif-list .n-unread a{background:rgba(124,92,255,.07);border-left:3px solid var(--accent)}

.csat-form{display:flex;gap:4px}
.csat-form button{font-size:21px;filter:grayscale(1) opacity(.45);transition:all .1s}
.csat-form button:hover{filter:none;transform:scale(1.15)}

.alert-bad,.alert-info{padding:11px 15px;border-radius:11px;font-size:13.4px;margin-bottom:15px}
.alert-bad{background:rgba(244,83,107,.12);border:1px solid rgba(244,83,107,.45);color:#ffb1bd}
.alert-info{background:rgba(34,211,238,.09);border:1px solid rgba(34,211,238,.35);color:#a9ecf7}

/* ── login ─────────────────────────────────────────────────────────── */
.login-body{display:grid;place-items:center;min-height:100vh;padding:28px}
.login-wrap{
  display:grid;grid-template-columns:1.15fr 1fr;gap:0;max-width:980px;width:100%;
  background:linear-gradient(180deg,var(--panel),rgba(14,19,34,.9));
  border:1px solid var(--border);border-radius:22px;overflow:hidden;box-shadow:var(--shadow);
}
.login-hero{
  padding:44px 40px;display:flex;flex-direction:column;gap:16px;justify-content:center;
  background:
    radial-gradient(500px 300px at 20% 0%,rgba(124,92,255,.22),transparent 60%),
    radial-gradient(420px 300px at 100% 100%,rgba(34,211,238,.14),transparent 55%);
  border-right:1px solid var(--border);
}
.hero-badge{align-self:flex-start;font-size:11.5px;font-weight:700;letter-spacing:1px;text-transform:uppercase;
  padding:5px 11px;border-radius:20px;border:1px solid var(--border2);color:var(--muted)}
.login-hero h1{font-size:37px;line-height:1.1}
.grad-txt{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-sub{color:var(--muted);font-size:14.5px}
.hero-points{list-style:none;display:flex;flex-direction:column;gap:8px;color:var(--muted);font-size:13.4px}
.login-card{padding:40px 36px;display:flex;flex-direction:column;gap:16px}
.lc-head{text-align:center;display:flex;flex-direction:column;gap:6px}
.lc-head h2{font-size:21px;margin-top:8px}
.login-form{display:flex;flex-direction:column;gap:13px}
.login-form label{font-size:12.3px;color:var(--muted);font-weight:600}
.login-form .inp{margin-top:5px}
.demo-creds{background:var(--bg2);border:1px dashed var(--border2);border-radius:12px;padding:12px 14px}
.dc-title{font-size:11px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--faint);margin-bottom:7px}
.demo-creds table{width:100%;font-size:12.3px;border-collapse:collapse}
.demo-creds td{padding:4px 4px;color:var(--muted);font-variant-numeric:tabular-nums}
.login-links{text-align:center;margin-top:-4px}
.reset-wrap{max-width:820px}
.reset-link-box{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.reset-link-inp{flex:1;min-width:min(100%,320px)}

/* ══════════════════════════════════════════════════════════════════════
   v2 — palette, calendar, billing, heatmap, drafts, light theme
   ══════════════════════════════════════════════════════════════════════ */

/* command palette */
.palette-scrim{position:fixed;inset:0;background:rgba(4,7,15,.62);backdrop-filter:blur(4px);z-index:90;display:none;align-items:flex-start;justify-content:center;padding-top:12vh}
.palette-scrim.show{display:flex}
.palette{width:min(600px,92vw);background:var(--panel2);border:1px solid var(--border2);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}
.palette::before{content:"";display:block;height:2px;background:var(--grad)}
.palette-inp{width:100%;padding:15px 18px;background:transparent;border:none;outline:none;color:var(--text);font-size:15px}
.palette-inp::placeholder{color:var(--faint)}
.palette-list{max-height:46vh;overflow-y:auto;border-top:1px solid var(--border)}
.palette-item{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;color:var(--text);font-size:13.6px}
.palette-item small{color:var(--faint)}
.palette-item .p-type{margin-left:auto;font-size:10px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--accent2);background:rgba(34,211,238,.12);padding:2px 8px;border-radius:6px}
.palette-item.sel,.palette-item:hover{background:rgba(124,92,255,.15)}
.palette-hint{padding:8px 16px;color:var(--faint);font-size:11px;border-top:1px solid var(--border)}
.palette-empty{padding:20px;text-align:center;color:var(--faint);font-size:13px}

/* calendar */
.cal-card{padding-bottom:8px}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr)}
.cal-head-row{border-bottom:1px solid var(--border)}
.cal-dow{padding:10px 8px;font-size:10.5px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--faint);text-align:center}
.cal-cell{min-height:96px;border-right:1px solid rgba(35,44,74,.5);border-bottom:1px solid rgba(35,44,74,.5);padding:6px 7px;display:flex;flex-direction:column;gap:3px}
.cal-cell:nth-child(7n){border-right:none}
.cal-out{opacity:.35}
.cal-today{background:rgba(124,92,255,.09);box-shadow:inset 0 0 0 1.5px var(--accent)}
.cal-num{font-size:11.5px;font-weight:700;color:var(--muted)}
.cal-today .cal-num{color:var(--accent2)}
.cal-ev{display:block;font-size:10.6px;padding:2px 6px;border-radius:6px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ev-meet{background:rgba(124,92,255,.22);border-left:2px solid var(--accent)}
.ev-task{background:rgba(245,165,36,.16);border-left:2px solid var(--warn)}
.ev-deal{background:rgba(34,211,238,.14);border-left:2px solid var(--accent2)}
.ev-done{opacity:.45;text-decoration:line-through}
.cal-more{font-size:10px;color:var(--faint)}
.cal-legend{display:flex;gap:16px;padding:11px 14px;color:var(--muted);font-size:11.5px;align-items:center}
.cal-legend .dotc{display:inline-block;margin-right:5px;vertical-align:-1px}

/* billing */
.items-head{display:grid;grid-template-columns:minmax(0,1fr) 76px 110px 84px 96px 34px;gap:8px;font-size:10.5px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--faint);padding:0 2px 6px}
.item-row{display:grid;grid-template-columns:minmax(0,1fr) 76px 110px 84px 96px 34px;gap:8px;align-items:center;margin-bottom:8px}
.item-amt{font-size:13px;font-weight:700}
.bill-totals{margin:16px 0 0 auto;max-width:330px;display:flex;flex-direction:column;gap:5px}
.bill-totals div{display:flex;justify-content:space-between;color:var(--muted);font-size:13.3px;padding:2px 4px}
.bill-totals b{font-variant-numeric:tabular-nums;color:var(--text)}
.bill-totals .grand{border-top:1.5px solid var(--border2);margin-top:5px;padding-top:8px;font-size:15px}
.bill-totals .grand b{font-size:16.5px;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}

/* heatmap */
.heatmap{max-width:640px}
.hm{fill:rgba(148,160,198,.12)}
.hm1{fill:rgba(124,92,255,.3)}.hm2{fill:rgba(124,92,255,.55)}
.hm3{fill:rgba(94,203,231,.75)}.hm4{fill:#22d3ee}

/* AI draft + dedupe + rot */
.draft-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:13px}
.draft-out{margin-top:12px;display:flex;flex-direction:column;gap:9px}
.draft-out textarea{font-family:inherit;line-height:1.55}
.draft-box{background:var(--bg2);border:1px dashed var(--border2);border-radius:10px;padding:11px 13px;font-size:13px;line-height:1.6;margin:8px 0}
.draft-saved-note{border:1px dashed var(--border2);border-radius:6px;padding:7px 9px;background:var(--panel2)}
.rot{font-size:10.5px;font-weight:800;color:var(--warn);background:rgba(245,165,36,.14);padding:2px 7px;border-radius:6px}
.spark-wrap{max-width:440px}
.target-card .prob-line{height:13px}

/* attachments */
.attach-form{display:flex;gap:9px;margin-bottom:11px}
.attach-list{list-style:none}
.attach-list li{display:flex;align-items:center;gap:10px;padding:8px 2px;border-bottom:1px solid rgba(35,44,74,.5);flex-wrap:wrap}
.attach-list li:last-child{border-bottom:none}
.attach-list a{font-size:13.3px}
.attach-list form{margin-left:auto}
input[type=file].inp-sm{padding:6px}
input[type=file]::file-selector-button{font:inherit;margin-right:10px;padding:5px 12px;border-radius:8px;border:1px solid var(--border2);background:var(--panel);color:var(--text);cursor:pointer}

/* ── light theme ──────────────────────────────────────────────────── */
[data-theme="light"]{
  --bg:#f2f4fa; --bg2:#ffffff;
  --panel:#ffffff; --panel2:#ffffff; --panel3:#eef0f8;
  --border:#dde2ef; --border2:#c7cee3;
  --text:#171c2e; --muted:#525e7e; --faint:#8b95b3;
  --shadow:0 10px 28px rgba(23,28,46,.10);
}
[data-theme="light"] body{
  background-image:
    radial-gradient(900px 480px at 85% -10%,rgba(124,92,255,.10),transparent 60%),
    radial-gradient(700px 420px at -10% 30%,rgba(34,211,238,.08),transparent 55%);
}
[data-theme="light"] .card,[data-theme="light"] .camp-card,[data-theme="light"] .ind-card{
  background:#fff}
[data-theme="light"] .topbar{background:rgba(255,255,255,.85)}
[data-theme="light"] .sidebar{background:linear-gradient(180deg,#fff,#f5f6fc)}
[data-theme="light"] .kpi{background:#fff}
[data-theme="light"] .ai-card{background:linear-gradient(180deg,rgba(124,92,255,.07),#fff)}
[data-theme="light"] .deal-card{background:#fff}
[data-theme="light"] .col{background:#eef0f8}
[data-theme="light"] .menu{background:#fff}
[data-theme="light"] .msg-body{background:#f2f4fa}
[data-theme="light"] .toast{background:#fff}
[data-theme="light"] .chart .grid{stroke:rgba(82,94,126,.18)}
[data-theme="light"] .hm{fill:rgba(82,94,126,.10)}
[data-theme="light"] .tag-ai{color:#fff}
[data-theme="light"] .badge.b-grad{color:#fff}


/* ══════════════════════════════════════════════════════════════════════
   v3 — mobile-first responsive layer (phones · iPhone safe-area · tablets)
   ══════════════════════════════════════════════════════════════════════ */

/* iOS safe-area insets (notch / home indicator) */
.sidebar{padding-left:max(12px,env(safe-area-inset-left))}
.topbar{padding-right:max(26px,env(safe-area-inset-right));padding-left:max(26px,env(safe-area-inset-left))}
.content{padding-left:max(26px,env(safe-area-inset-left));padding-right:max(26px,env(safe-area-inset-right))}

/* Data tables never overflow the viewport — they scroll inside their card */
@media (max-width:860px){
  .card-flush > .tbl,
  .tbl-scroll > .tbl{min-width:600px}
  .cal-card .cal-grid{min-width:600px}
}

@media (max-width:1150px){
  .kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .grid-3{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .detail-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}
}
@media (max-width:960px){
  .sidebar{
    position:fixed;left:0;top:0;bottom:0;transform:translateX(-105%);
    transition:transform .22s ease;box-shadow:var(--shadow);width:min(84vw,300px);flex-basis:auto;
    padding-top:max(16px,env(safe-area-inset-top));padding-bottom:max(16px,env(safe-area-inset-bottom));
  }
  .sidebar.open{transform:none}
  .scrim{position:fixed;inset:0;background:rgba(4,7,15,.6);z-index:35;display:none}
  .scrim.show{display:block}
  .burger{display:block}
  .content{padding:18px 16px 60px}
  .topbar{padding:10px 14px;padding-top:max(10px,env(safe-area-inset-top))}
  .grid-2,.grid-2-13,.grid-3{grid-template-columns:minmax(0,1fr)}
  .detail-grid{grid-template-columns:minmax(0,1fr)}
  .login-wrap{grid-template-columns:minmax(0,1fr)}
  .login-hero{display:none}
  .f-row{grid-template-columns:105px minmax(0,1fr) auto}
}

/* Bottom navigation bar — appears on phones/tablets, hides the desktop chrome overlap */
@media (max-width:760px){
  .botnav{display:flex}
  .content{padding-bottom:calc(78px + env(safe-area-inset-bottom))}
  .toast{bottom:calc(84px + env(safe-area-inset-bottom))}
  .palette-btn{display:none}          /* ⌘K is keyboard-only */
  .newbtn-txt{display:none}           /* '＋ New' becomes icon-only */
  .newbtn{padding:8px 12px}
  .gsearch{min-width:88px}
  .month-nav{flex-wrap:wrap}
}

@media (max-width:640px){
  .kpi-grid,.kpi-grid.kpi-4{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .form-grid{grid-template-columns:minmax(0,1fr)}
  .span-2{grid-column:span 1}
  .page-head h1{font-size:19px}
  .page-head{gap:10px}
  /* iOS Safari auto-zooms any input under 16px on focus — force 16px on mobile */
  .inp,.inp-sm,.gsearch input,select.inp,textarea.inp,input[type=file].inp-sm{font-size:16px}
  .inp-sm{padding:9px 11px}
  /* Dropdown menus become viewport-contained sheets */
  .menu,.menu-wide{position:fixed;left:8px;right:8px;top:auto;min-width:0;width:auto;max-height:66vh;overflow-y:auto}
  .menu-wrap .menu{margin-top:6px}
  /* Condition / inline field rows wrap instead of crushing */
  .cond-row{flex-wrap:wrap}
  .cond-row .inp-sm,.cond-row .inp{flex:1 1 140px;min-width:0}
  /* Billing line-item rows stack for touch (was a 440px fixed grid) */
  .items-head{display:none}
  .item-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding-bottom:12px;
    border-bottom:1px dashed var(--border);margin-bottom:12px;align-items:center}
  .item-row input[name=item_desc]{grid-column:1/-1}
  .item-row .item-amt{grid-column:1/2;font-size:14px;font-weight:700}
  .item-row .x-btn{grid-column:3/4;justify-self:end}
  .bill-totals{margin-left:0;max-width:none}
  /* smaller calendar cells so more fits without a tall scroll */
  .cal-cell{min-height:78px}
  .filters .inp-sm[type=search]{min-width:0;flex:1 1 160px}
  .head-actions{width:100%}
}

/* ── auth split screen ─────────────────────────────────────────────── */
.auth-body{display:block;min-height:100vh;padding:0;background:#f5f7fb;color:#101828}
.auth-shell{display:grid;grid-template-columns:minmax(440px,1.08fr) minmax(480px,.92fr);min-height:100vh;width:100%;background:#fff}
.auth-hero{position:relative;overflow:hidden;min-height:100vh;color:#fff;background:#111b2a}
.auth-hero-bg{position:absolute;inset:0;background:radial-gradient(750px 520px at 10% 5%,rgba(31,111,229,.34),transparent 58%),linear-gradient(135deg,#101c2d 0%,#16253a 48%,#07101d 100%)}
.auth-hero-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,transparent 38%,rgba(0,0,0,.55) 100%),repeating-linear-gradient(115deg,rgba(255,255,255,.018) 0 1px,transparent 1px 82px);opacity:.9}
.auth-hero-content{position:relative;z-index:1;display:flex;flex-direction:column;min-height:100vh;padding:46px 8.5%;box-sizing:border-box}
.auth-brand{display:flex;align-items:center;gap:11px;font-size:21px;font-weight:800;letter-spacing:-.5px}.auth-brand i{font-style:normal;color:#20a9ea}.auth-brand-mark{font-size:36px;color:#28a9f1;line-height:1}
.auth-powered{margin:5px 0 0 46px;font-size:9px;letter-spacing:7px;color:rgba(255,255,255,.82)}
.auth-carousel{position:relative;flex:1;display:flex;align-items:center;max-width:570px}.auth-slide{display:none;animation:auth-fade .45s ease}.auth-slide.is-active{display:block}@keyframes auth-fade{from{opacity:.1;transform:translateY(8px)}to{opacity:1;transform:none}}
.auth-eyebrow{font-size:11px;letter-spacing:4px;color:#d4e3f3;margin:0 0 26px}.auth-slide h1{font-size:clamp(39px,4.2vw,66px);line-height:1.04;letter-spacing:-2.5px;margin:0 0 18px;color:#fff}.auth-tagline{font-size:18px;color:#e4ecf7;margin:0 0 46px}
.auth-feature-list{display:flex;flex-direction:column;gap:18px}.auth-feature-list>div{display:flex;align-items:center;gap:15px}.auth-feature-list b{display:grid;place-items:center;width:49px;height:49px;border-radius:12px;background:rgba(255,255,255,.09);font-size:25px;color:#eef6ff}.auth-feature-list span{display:flex;flex-direction:column;gap:4px}.auth-feature-list strong{font-size:16px}.auth-feature-list small{font-size:13px;color:#c7d3e2}
.auth-mini-panel{width:245px;padding:20px;border-radius:14px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);box-shadow:0 18px 45px rgba(0,0,0,.22)}.auth-mini-panel span{display:block;color:#c7d6e8;font-size:12px}.auth-mini-panel strong{display:block;font-size:32px;margin:7px 0}.auth-mini-panel em{font-size:12px;color:#63e5bc;font-style:normal}.auth-chart{display:flex;align-items:flex-end;gap:7px;height:58px;margin-top:18px}.auth-chart i{display:block;flex:1;border-radius:4px 4px 0 0;background:#25a9ef;height:35%}.auth-chart i:nth-child(2){height:58%}.auth-chart i:nth-child(3){height:43%}.auth-chart i:nth-child(4){height:76%}.auth-chart i:nth-child(5){height:63%}.auth-chart i:nth-child(6){height:94%}
.auth-carousel-footer{padding-top:20px;border-top:1px solid rgba(255,255,255,.14)}.auth-carousel-footer p{font-size:14px;line-height:1.6;color:#e8eef7;margin:23px 0 0}.auth-dots{display:flex;gap:8px}.auth-dots button{width:37px;height:3px;padding:0;border:0;border-radius:4px;background:rgba(255,255,255,.35);cursor:pointer}.auth-dots button.is-active{background:#24a9ee}
.auth-panel{display:flex;flex-direction:column;min-height:100vh;background:#fff}.auth-topline{display:flex;justify-content:flex-end;gap:13px;padding:50px 7.5%;font-size:14px;color:#65748b}.auth-panel a{color:#006eff;text-decoration:none}.auth-form-wrap{width:min(474px,84%);margin:auto}.auth-form-heading{margin-bottom:38px}.auth-form-heading h2{font-size:38px;line-height:1.18;letter-spacing:-1.5px;color:#101828;margin:0 0 10px}.auth-form-heading p{font-size:17px;color:#7a879d;margin:0}.auth-form{gap:21px}.auth-form label{font-size:14px;color:#182435;font-weight:500}.auth-form .inp{box-sizing:border-box;width:100%;height:56px;margin-top:9px;padding:0 17px;border:1px solid #d7dee9;border-radius:9px;background:#fff;color:#182435;font-size:15px;box-shadow:none}.auth-form .inp:focus{border-color:#2b8bf0;box-shadow:0 0 0 3px rgba(43,139,240,.12)}.auth-password{position:relative}.auth-password .inp{padding-right:50px}.auth-password-toggle{position:absolute;right:14px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:#75849a;cursor:pointer;font-size:19px}.auth-forgot{text-align:right;margin-top:-9px;font-size:14px}.auth-check{display:flex!important;align-items:center;gap:10px;font-size:15px!important}.auth-check input{width:20px;height:20px;accent-color:#1478e8}.auth-submit{width:100%;height:57px;border:0;border-radius:9px;background:#101722;color:#fff;font-size:16px;font-weight:700;cursor:pointer;box-shadow:0 8px 20px rgba(16,23,34,.16)}.auth-submit span{font-size:26px;line-height:0;margin-left:8px;vertical-align:-2px}.auth-submit:hover{background:#1b2a3d;transform:translateY(-1px)}.auth-local-note{text-align:center;color:#8794a7;font-size:12px;margin-top:3px}.auth-footer{display:flex;justify-content:space-between;gap:20px;padding:0 7.5% 44px;color:#8190a5;font-size:12px}.auth-footer span:last-child{display:flex;gap:24px}.auth-footer a{color:#718096}
.auth-panel .alert-info,.auth-panel .alert-bad{font-size:13px}.auth-panel .demo-creds{margin-top:6px;background:#f8fafc;border-color:#dce4ee}.auth-panel .demo-creds td{color:#64748b}
@media (max-width:960px){.auth-shell{grid-template-columns:1fr}.auth-hero{min-height:470px}.auth-hero-content{min-height:470px;padding:32px 8%}.auth-slide h1{font-size:44px}.auth-carousel{align-items:flex-start;padding-top:64px}.auth-carousel-footer{padding-top:14px}.auth-panel{min-height:auto}.auth-topline{padding:25px 8%}.auth-form-wrap{margin:48px auto 70px}.auth-footer{padding:0 8% 28px}}
@media (max-width:560px){.auth-hero{min-height:430px}.auth-hero-content{min-height:430px;padding:27px 23px}.auth-brand{font-size:17px}.auth-brand-mark{font-size:29px}.auth-powered{margin-left:39px}.auth-carousel{padding-top:42px}.auth-eyebrow{font-size:9px;letter-spacing:2px;margin-bottom:16px}.auth-slide h1{font-size:35px;letter-spacing:-1px}.auth-tagline{font-size:15px;margin-bottom:24px}.auth-feature-list{gap:10px}.auth-feature-list b{width:39px;height:39px;font-size:19px}.auth-feature-list strong{font-size:14px}.auth-feature-list small{font-size:11px}.auth-form-wrap{width:calc(100% - 42px);margin-top:30px}.auth-form-heading h2{font-size:31px}.auth-form-heading p{font-size:15px}.auth-footer{display:block}.auth-footer span{display:block;margin-top:12px}.auth-footer span:last-child{gap:18px}}

/* Bigger tap targets on touch devices without distorting visuals */
@media (pointer:coarse){
  .iconbtn,.x-btn,.ws-x,.chk{min-width:42px;min-height:42px}
  .x-btn{display:inline-grid;place-items:center}
  .csat-form button{padding:8px;min-width:44px;min-height:44px}
  .nav a{padding:11px 10px}
  .menu a{padding:11px 12px}
  .stage-btn{padding:9px 15px}
  .chip{padding:8px 14px}
}

@media print{
  .sidebar,.topbar,.head-actions,.filters,.note-form,.botnav,.no-print,.palette-scrim,.scrim{display:none!important}
  body{background:#fff;color:#111}
  .content{padding:0}
  .main{display:block}
  .card,.report{box-shadow:none;border-color:#ddd}
  .report .tbl,.card-flush{overflow:visible}
  a{color:#111}
}

/* ══════════════════════════════════════════════════════════════════════
   v3 — mobile bottom navigation bar
   ══════════════════════════════════════════════════════════════════════ */
.botnav{
  display:none;position:fixed;left:0;right:0;bottom:0;z-index:60;
  background:rgba(10,13,24,.92);backdrop-filter:blur(14px);
  border-top:1px solid var(--border);
  padding-bottom:env(safe-area-inset-bottom);
  justify-content:space-around;align-items:stretch;
}
.botnav a,.botnav .botmenu-btn{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  padding:9px 4px 8px;color:var(--muted);font-size:10.5px;font-weight:600;
  background:none;border:none;min-height:56px;
}
.botnav a span,.botnav .botmenu-btn span{font-size:18px;line-height:1}
.botnav a.on{color:var(--accent2)}
.botnav a.on span{filter:drop-shadow(0 0 8px rgba(34,211,238,.6))}
[data-theme="light"] .botnav{background:rgba(255,255,255,.94)}
@media screen and (max-width:760px){
  .botnav{display:flex;z-index:30}
}

/* ══════════════════════════════════════════════════════════════════════
   v3 — Knowledge Base
   ══════════════════════════════════════════════════════════════════════ */
.kb-grid{display:flex;flex-direction:column;gap:14px}
.kb-card{
  position:relative;display:flex;flex-direction:column;gap:7px;color:var(--text);
  background:linear-gradient(180deg,var(--panel),rgba(19,26,46,.85));
  border:1px solid var(--border);border-radius:var(--r);padding:15px 17px;transition:all .13s;
}
.kb-card::before{content:"";position:absolute;inset:0 0 auto 0;height:2px;background:var(--grad);opacity:.5;border-radius:var(--r) var(--r) 0 0}
.kb-card:hover{transform:translateY(-2px);border-color:var(--border2)}
.kb-card h3{font-size:16px;line-height:1.3}
.kb-card .badge{align-self:flex-start}
.kb-pin{position:absolute;top:13px;right:15px;font-size:11px;font-weight:700;color:var(--warn)}
.kb-sum{color:var(--muted);font-size:13.4px;line-height:1.5}
.kb-meta{display:flex;gap:14px;align-items:center;color:var(--faint);font-size:12px;margin-top:2px}
.kb-body{font-size:14.5px;line-height:1.75;white-space:pre-wrap;word-break:break-word;color:var(--text)}
.kb-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:16px}
.kb-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;
  margin-top:18px;padding-top:14px;border-top:1px solid var(--border)}

/* ══════════════════════════════════════════════════════════════════════
   v3 — Reports (printable letterhead documents)
   ══════════════════════════════════════════════════════════════════════ */
.report{max-width:920px;margin:0 auto}
.report-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;
  padding-bottom:16px;border-bottom:2px solid var(--border2);margin-bottom:4px}
.report-org{font-size:19px;font-weight:800}
.report-brand .bolt{width:44px;height:44px;font-size:22px}
.report-title{font-size:22px;margin-top:16px}
.report-sub{color:var(--faint);font-size:12.5px;margin-bottom:8px}
.rpt-h3{font-size:14px;font-weight:700;margin:22px 0 10px;color:var(--muted);letter-spacing:.3px}
.rpt-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:14px 0 6px}
.rpt-kpi{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r-sm);padding:12px 14px}
.rpt-kpi small{display:block;color:var(--muted);font-size:11.5px}
.rpt-kpi b{display:block;font-size:20px;margin:3px 0 1px;font-variant-numeric:tabular-nums}
.rpt-kpi span{color:var(--faint);font-size:11px}
.report .tbl th{padding:9px 12px}
.report .tbl td{padding:9px 12px}
.report-foot{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;
  margin-top:26px;padding-top:14px;border-top:1px solid var(--border);color:var(--faint);font-size:11.5px}
.report-card .ind-top b{font-size:15px}

/* ══════════════════════════════════════════════════════════════════════
   v3 — Goals & catalog helpers + product picker modal
   ══════════════════════════════════════════════════════════════════════ */
.month-nav{display:flex;gap:8px;align-items:center}
.mini-prob{height:7px;max-width:150px}
.row-me{background:rgba(124,92,255,.08)}
.row-me:hover{background:rgba(124,92,255,.12)!important}

.pick-scrim{position:fixed;inset:0;background:rgba(4,7,15,.62);backdrop-filter:blur(4px);
  z-index:90;display:none;align-items:flex-start;justify-content:center;padding:10vh 16px 16px}
.pick-scrim.show{display:flex}
.pick{width:min(560px,96vw);max-height:76vh;display:flex;flex-direction:column;
  background:var(--panel2);border:1px solid var(--border2);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}
.pick::before{content:"";display:block;height:2px;background:var(--grad)}
.pick-inp{width:100%;padding:14px 16px;background:transparent;border:none;outline:none;color:var(--text);font-size:15px;border-bottom:1px solid var(--border)}
.pick-list{overflow-y:auto;padding:6px}
.pick-item{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:9px;cursor:pointer}
.pick-item:hover{background:rgba(124,92,255,.14)}
.pick-item b{font-size:13.6px}
.pick-item small{color:var(--faint)}
.pick-item .num{margin-left:auto;font-weight:700;white-space:nowrap}
.pick-empty{padding:22px;text-align:center;color:var(--faint)}

/* touch fallback for the kanban: a stage picker on each card (drag is desktop-only) */
.stage-move{display:none;width:100%;margin-top:9px;padding:8px 10px;border-radius:8px;
  background:var(--bg2);border:1px solid var(--border2);color:var(--text);font:inherit;font-size:12.5px}
@media (pointer:coarse){
  .deal-card{cursor:default}
  .stage-move{display:block;font-size:16px}
}

/* ══════════════════════════════════════════════════════════════════════
   v3 — Conversations inbox
   ══════════════════════════════════════════════════════════════════════ */
.inbox{display:grid;grid-template-columns:340px minmax(0,1fr);gap:16px;
  height:calc(100vh - 210px);min-height:520px}
.inbox-list{background:var(--panel);border:1px solid var(--border);border-radius:16px;
  display:flex;flex-direction:column;overflow:hidden}
.inbox-filter{display:flex;gap:6px;padding:12px;flex-wrap:wrap;border-bottom:1px solid var(--border)}
.ch-pill{font-size:11.5px;padding:5px 11px;border-radius:20px;border:1px solid var(--border2);
  color:var(--muted);white-space:nowrap;transition:.15s}
.ch-pill:hover{color:var(--text)}
.ch-pill.on{background:var(--grad);color:#fff;border-color:transparent}
.thread-scroll{overflow-y:auto;flex:1}
.thread{display:flex;align-items:center;gap:11px;padding:12px 14px;border-bottom:1px solid var(--border);
  cursor:pointer;transition:background .13s}
.thread:hover{background:var(--panel2)}
.thread.active{background:linear-gradient(90deg,rgba(124,92,255,.16),transparent);
  box-shadow:inset 3px 0 0 var(--accent)}
.thread-av{width:40px;height:40px;border-radius:12px;flex-shrink:0;display:grid;place-items:center;
  font-size:14px;font-weight:800;color:#fff;background:
    linear-gradient(140deg,var(--av),color-mix(in srgb,var(--av) 55%,#000))}
.thread-av.lg{width:46px;height:46px;border-radius:14px;font-size:16px}
.thread-main{min-width:0;flex:1}
.thread-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.thread-top b{font-size:13.6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.thread-time{font-size:10.5px;color:var(--faint);flex-shrink:0}
.thread-sub{display:flex;align-items:center;gap:6px;font-size:12.2px;color:var(--muted);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.you-tag{color:var(--faint)}
.ch-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.ch-whatsapp,.b-whatsapp{--ch:#25d366}
.ch-email,.b-email{--ch:#5b8def}
.ch-sms,.b-sms{--ch:#f5a524}
.ch-dot.ch-whatsapp{background:#25d366}
.ch-dot.ch-email{background:#5b8def}
.ch-dot.ch-sms{background:#f5a524}
.thread-unread{background:var(--accent);color:#fff;font-size:10.5px;font-weight:800;
  min-width:20px;height:20px;border-radius:10px;display:grid;place-items:center;padding:0 6px;flex-shrink:0}

.inbox-thread{background:var(--panel);border:1px solid var(--border);border-radius:16px;
  display:flex;flex-direction:column;overflow:hidden}
.thread-head{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border)}
.th-who{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.th-who b{font-size:15px}
.msg-stream{flex:1;overflow-y:auto;padding:20px 18px;display:flex;flex-direction:column;
  justify-content:flex-end;gap:10px;min-height:0;
  background:
    radial-gradient(circle at 18% 12%,rgba(124,92,255,.05),transparent 42%),
    radial-gradient(circle at 84% 82%,rgba(34,211,238,.045),transparent 46%)}
/* when content overflows, flex-end must not clip the top — let it scroll naturally */
.msg-stream > .bubble-row:first-child{margin-top:auto}
.bubble-row{display:flex}
.bubble-row.out{justify-content:flex-end}
.bubble{max-width:74%;padding:9px 13px 6px;border-radius:15px;position:relative;
  border-left:3px solid var(--ch,var(--accent))}
.bubble-row.in .bubble{background:var(--panel3);border-bottom-left-radius:5px}
.bubble-row.out .bubble{background:linear-gradient(135deg,rgba(124,92,255,.22),rgba(34,211,238,.14));
  border-left:none;border-right:3px solid var(--ch,var(--accent));border-bottom-right-radius:5px}
.bubble p{font-size:13.7px;line-height:1.5;white-space:pre-wrap;word-wrap:break-word}
.bubble-meta{display:block;font-size:10px;color:var(--faint);margin-top:3px;text-align:right}
.mood-neg{color:#ff6b6b;font-weight:800}
.mood-pos{color:#25d366;font-weight:800}
.stream-empty,.pick-empty{margin:auto;text-align:center}

.ai-suggest-slot:not(:empty){padding:0 18px}
.ai-suggest{background:linear-gradient(180deg,rgba(124,92,255,.12),rgba(124,92,255,.04));
  border:1px solid rgba(124,92,255,.32);border-radius:12px;padding:11px 14px;margin-bottom:8px}
.ai-suggest-h{display:flex;justify-content:space-between;align-items:center;font-size:11.5px;
  font-weight:800;letter-spacing:.4px;color:var(--accent2);margin-bottom:5px}
.ai-suggest-body{font-size:13.3px;line-height:1.55;color:var(--text)}

.composer{border-top:1px solid var(--border);padding:12px 16px 10px;background:var(--panel2)}
.composer-top{display:flex;gap:8px;align-items:center;margin-bottom:8px;flex-wrap:wrap}
.ch-select{max-width:160px}
.composer-row{display:flex;gap:10px;align-items:flex-end}
.composer-input{flex:1;resize:none;max-height:140px;line-height:1.5}
.send-btn{width:46px;height:46px;border-radius:12px;padding:0;font-size:18px;flex-shrink:0;
  display:grid;place-items:center}
.canned-item{display:block;width:100%;text-align:left;padding:9px 12px;background:transparent;
  border:none;border-bottom:1px solid var(--border);color:var(--text);cursor:pointer;font:inherit}
.canned-item:hover{background:var(--panel3)}
.canned-item b{display:block;font-size:12.8px}
.canned-item small{color:var(--faint);font-size:11px}
.sim-form{margin-top:7px;text-align:center}
.sim-btn{background:transparent;border:1px dashed var(--border2);color:var(--faint);
  font-size:11px;padding:4px 12px;border-radius:16px;cursor:pointer;font:inherit}
.sim-btn:hover{color:var(--muted);border-color:var(--muted)}

.inbox-empty{margin:auto;text-align:center;padding:36px 20px;max-width:320px}
.inbox-empty.full{display:flex;flex-direction:column;justify-content:center;height:100%}
.ie-icon{font-size:44px;margin-bottom:10px;opacity:.7}
.inbox-empty p{font-size:15px;font-weight:700;margin-bottom:4px}

.nav-badge{background:var(--accent);color:#fff;font-size:10px;font-weight:800;
  padding:1px 7px;border-radius:10px;margin-left:auto}

@media (max-width:960px){
  .inbox{grid-template-columns:minmax(0,1fr);height:auto}
  .inbox-list{max-height:none}
  .thread-scroll{max-height:40vh}
  .inbox-thread{min-height:60vh}
  .bubble{max-width:86%}
}

/* ══════════════════════════════════════════════════════════════════════
   v3 — Accessibility & polish (design-audit fixes)
   ══════════════════════════════════════════════════════════════════════ */

/* Visible keyboard focus everywhere — was missing entirely (WCAG 2.4.7).
   Mouse users never see it (:focus-visible), keyboard users always do. */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,
textarea:focus-visible,[tabindex]:focus-visible,.thread:focus-visible,
.chip:focus-visible,.kpi:focus-visible,.stage-btn:focus-visible{
  outline:2px solid var(--accent2);
  outline-offset:2px;
  border-radius:6px;
}
/* Inputs already have a radius — keep the ring hugging it */
.inp:focus-visible,.inp-sm:focus-visible,textarea.inp:focus-visible,
select.inp:focus-visible{outline-offset:1px;border-color:var(--accent)}

/* Skip-to-content link for keyboard/screen-reader users */
.skip-link{position:absolute;left:-999px;top:8px;z-index:200;background:var(--accent);
  color:#fff;padding:9px 16px;border-radius:8px;font-weight:700;font-size:13px}
.skip-link:focus{left:8px}

/* Honour reduced-motion — disable transitions/animations for users who ask.
   The kanban drag still works; only decorative motion is removed. */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
    scroll-behavior:auto!important;
  }
}

/* Respect system dark/light on very first paint, before JS applies the saved
   theme — prevents a flash of the wrong theme for light-preference users
   who haven't toggled yet. JS still wins once it runs. */
@media (prefers-color-scheme:light){
  html:not([data-theme]){--flash-guard:1}
}

/* ══════════════════════════════════════════════════════════════════════
   v4 — Web Forms
   ══════════════════════════════════════════════════════════════════════ */
.card-title{font-size:14px;font-weight:700;margin-bottom:12px;letter-spacing:.2px}
.card-title.mt{margin-top:22px}
.lbl.mt{margin-top:14px}

.form-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}
.form-card{background:var(--panel);border:1px solid var(--border);border-radius:16px;
  padding:18px 18px 14px;display:flex;flex-direction:column;gap:12px;transition:border-color .15s}
.form-card:hover{border-color:var(--border2)}
.form-card.paused{opacity:.72}
.fc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.fc-name{font-size:16px;font-weight:700;color:var(--text);margin-right:8px}
.fc-name:hover{color:var(--accent2)}
.fc-link{display:flex;gap:7px;align-items:center}
.fc-url{flex:1;font-size:12px;color:var(--muted);font-family:ui-monospace,monospace}
.fc-stats{display:flex;gap:16px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}
.fc-stats b{color:var(--text)}
.fc-actions{display:flex;gap:7px;flex-wrap:wrap;border-top:1px solid var(--border);padding-top:11px}

/* form builder */
.form-card-wide{max-width:none}
.fe-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:16px;align-items:start}
.fe-main,.fe-side{display:flex;flex-direction:column;gap:0}
.fe-side{gap:16px}
.fe-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.field-toggles{display:flex;flex-direction:column;gap:2px}
.field-toggle{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:9px;
  cursor:pointer;font-size:13.6px;transition:background .12s}
.field-toggle:hover{background:var(--panel2)}
.field-toggle.locked{opacity:.75;cursor:default}
.field-toggle input{width:17px;height:17px;accent-color:var(--accent);flex-shrink:0}
.field-toggle small{color:var(--faint)}

/* embed + submissions */
.embed-box{background:var(--bg2);border:1px solid var(--border);border-radius:10px;
  padding:12px 14px;font-family:ui-monospace,monospace;font-size:12px;color:var(--accent2);
  overflow-x:auto;cursor:pointer;white-space:pre;line-height:1.5}
.empty-inline{padding:26px;text-align:center;color:var(--faint);font-size:14px}
.chip-row{display:flex;flex-wrap:wrap;gap:7px}
.chip-static{background:var(--panel3);border:1px solid var(--border);border-radius:20px;
  padding:5px 12px;font-size:12px;color:var(--muted)}
.crumb{font-size:12.5px;color:var(--faint);margin-bottom:5px}
.crumb a{color:var(--muted)}

/* empty state */
.empty-state{text-align:center;padding:60px 24px;max-width:460px;margin:40px auto}
.es-icon{font-size:52px;margin-bottom:14px;opacity:.8}
.empty-state h3{font-size:19px;margin-bottom:8px}
.empty-state p{margin-bottom:20px}
form.inline{display:inline}

@media (max-width:960px){.fe-grid{grid-template-columns:1fr}}
@media (max-width:520px){.fe-row{grid-template-columns:1fr}}

/* ══════════════════════════════════════════════════════════════════════
   v4 — Focus Board (task kanban)
   ══════════════════════════════════════════════════════════════════════ */
.seg{display:inline-flex;background:var(--panel2);border:1px solid var(--border);
  border-radius:10px;padding:3px;gap:2px}
.seg-btn{padding:6px 14px;border-radius:7px;font-size:13px;color:var(--muted);transition:.13s}
.seg-btn.on{background:var(--grad);color:#fff}

.quick-task{max-height:0;overflow:hidden;transition:max-height .22s ease;margin-bottom:0}
.quick-task.open{max-height:120px;margin-bottom:16px}
.qt-form{display:flex;gap:9px;flex-wrap:wrap;background:var(--panel);border:1px solid var(--border);
  border-radius:12px;padding:14px}
.qt-form .inp{flex:0 0 auto}
.qt-form .inp[name=title]{flex:1 1 240px}

.board{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:start}
.board-col{background:var(--panel);border:1px solid var(--border);border-radius:14px;
  display:flex;flex-direction:column;min-height:180px}
.col-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;
  font-size:13px;font-weight:700;border-bottom:1px solid var(--border)}
.col-count{background:var(--panel3);color:var(--muted);border-radius:20px;padding:1px 9px;
  font-size:11.5px;font-weight:700}
.col-body{padding:10px;display:flex;flex-direction:column;gap:9px;min-height:60px}
.col-overdue{border-top:2px solid #ff6b6b}
.col-today{border-top:2px solid var(--accent)}
.col-week{border-top:2px solid var(--accent2)}
.col-later{border-top:2px solid var(--faint)}
.col-done{border-top:2px solid var(--ok)}

.task-card{background:var(--panel2);border:1px solid var(--border);border-radius:11px;
  padding:11px 12px;border-left:3px solid var(--faint);transition:border-color .13s,transform .1s}
.task-card:hover{border-left-color:var(--accent)}
.task-card.prio-high{border-left-color:#ff6b6b}
.task-card.prio-medium{border-left-color:var(--warn)}
.task-card.prio-low{border-left-color:var(--faint)}
.tc-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.tc-title{font-size:13.4px;font-weight:600;line-height:1.35}
.tc-title.done{text-decoration:line-through;color:var(--faint)}
.tc-check{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--border2);
  background:transparent;color:var(--faint);cursor:pointer;flex-shrink:0;font-size:13px;
  display:grid;place-items:center;transition:.13s}
.tc-check:hover{border-color:var(--ok);color:var(--ok)}
.tc-check.checked{background:var(--ok);border-color:var(--ok);color:#fff}
.tc-desc{font-size:12px;color:var(--muted);margin-top:5px;line-height:1.4}
.tc-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px;font-size:11.5px}
.tc-link{color:var(--accent2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}
.tc-due{color:var(--muted);background:var(--panel3);border-radius:6px;padding:1px 7px}
.tc-due.overdue{color:#ff8a8a;background:rgba(255,107,107,.12)}
.tc-owner{background:color-mix(in srgb,var(--av,#7c5cff) 20%,transparent);
  color:var(--text);border-radius:6px;padding:1px 7px;font-weight:600}
.tc-actions{display:flex;gap:5px;margin-top:9px;opacity:0;transition:opacity .13s}
.task-card:hover .tc-actions{opacity:1}
.tc-mini{font-size:10.5px;padding:3px 8px;border-radius:6px;border:1px solid var(--border2);
  background:var(--bg2);color:var(--muted);cursor:pointer;transition:.13s}
.tc-mini:hover{color:var(--text);border-color:var(--accent)}
.col-empty{text-align:center;color:var(--faint);font-size:12px;padding:16px 8px}

@media (pointer:coarse){.tc-actions{opacity:1}}
@media (max-width:1150px){.board{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){.board{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.board{grid-template-columns:1fr}.qt-form .inp{flex:1 1 100%}}

/* ══════════════════════════════════════════════════════════════════════
   v5 — Approvals + Activity Feed
   ══════════════════════════════════════════════════════════════════════ */
.c-warn{color:var(--warn)}
.chip-on{background:var(--grad);color:#fff;border-color:transparent}
.chip-on:hover{background:var(--grad);color:#fff}

/* approvals list */
.appr-list{display:flex;flex-direction:column;gap:10px}
.appr-card{display:flex;gap:14px;align-items:center;background:var(--panel);
  border:1px solid var(--border);border-radius:13px;padding:14px 16px;
  border-left:3px solid var(--faint);transition:border-color .13s,transform .08s}
.appr-card:hover{border-left-color:var(--accent);transform:translateX(2px)}
.appr-card.status-pending{border-left-color:var(--warn)}
.appr-card.status-approved{border-left-color:var(--ok)}
.appr-card.status-rejected{border-left-color:var(--bad)}
.ac-icon{font-size:24px;width:44px;height:44px;display:grid;place-items:center;
  background:var(--panel3);border-radius:11px;flex-shrink:0}
.ac-body{flex:1;min-width:0}
.ac-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.ac-title{font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ac-meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:5px;
  font-size:12px;color:var(--muted)}
.ac-kind{background:var(--panel3);border-radius:6px;padding:1px 8px}
.ac-amt{color:var(--warn);font-weight:700}
.ac-deal{color:var(--accent2)}
.ac-time{margin-left:auto;color:var(--faint)}

/* approval form + detail */
.appr-form{max-width:none}
.justif{margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}
.justif p{color:var(--muted);margin-top:6px;line-height:1.5}
.decision-card.decided-ok{border-left:3px solid var(--ok)}
.decision-card.decided-no{border-left:3px solid var(--bad)}
.decision-note{margin-top:8px;color:var(--text);font-style:italic;line-height:1.5}
.decide-panel{border:1px solid var(--accent)}
.decide-form textarea{margin-bottom:12px}
.decide-btns{display:flex;gap:10px}
.decide-btns .btn{flex:1}
.btn-ok{background:var(--ok);color:#fff;border:none}
.btn-ok:hover{filter:brightness(1.08)}
.await-box{text-align:center;padding:20px 10px}
.await-icon{font-size:34px;margin-bottom:10px}
.await-box p{font-weight:600;margin-bottom:4px}

/* activity feed */
.feed-filters{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:20px}
.feed{display:flex;flex-direction:column;gap:20px}
.feed-divider{display:flex;align-items:center;gap:12px;margin-bottom:4px}
.feed-divider span{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;
  letter-spacing:.5px;white-space:nowrap}
.feed-divider::after{content:"";flex:1;height:1px;background:var(--border)}
.feed-day{display:flex;flex-direction:column;gap:2px}
.feed-item{display:flex;gap:12px;padding:9px 10px;border-radius:10px;transition:background .1s}
.feed-item:hover{background:var(--panel)}
.fi-icon{width:32px;height:32px;border-radius:9px;background:var(--panel2);display:grid;
  place-items:center;font-size:15px;flex-shrink:0;border:1px solid var(--border)}
.t-pay .fi-icon{background:rgba(52,211,153,.14);border-color:rgba(52,211,153,.3)}
.t-form .fi-icon{background:rgba(34,211,238,.14);border-color:rgba(34,211,238,.3)}
.t-appr .fi-icon{background:rgba(124,92,255,.14);border-color:rgba(124,92,255,.3)}
.t-stage .fi-icon{background:rgba(245,165,36,.12);border-color:rgba(245,165,36,.3)}
.fi-body{flex:1;min-width:0;display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.fi-content{min-width:0;flex:1}
.fi-text{font-size:13.4px;line-height:1.45;color:var(--text)}
a.fi-text:hover{color:var(--accent2)}
.fi-meta{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex-shrink:0}
.fi-actor{font-size:11px;font-weight:600;color:var(--text);
  background:color-mix(in srgb,var(--av,#7c5cff) 20%,transparent);border-radius:6px;padding:1px 8px}
.fi-time{font-size:11px;color:var(--faint)}

@media (max-width:640px){
  .fi-body{flex-direction:column;gap:4px}
  .fi-meta{flex-direction:row;align-items:center}
  .ac-time{margin-left:0}
}

/* ══════════════════════════════════════════════════════════════════════
   v6 — Templates, Team, Documents
   ══════════════════════════════════════════════════════════════════════ */
.ta-r{text-align:right}
.filter-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;
  margin-bottom:18px;flex-wrap:wrap}
.progress{height:9px;background:var(--panel3);border-radius:20px;overflow:hidden;margin:8px 0 4px}
.progress-fill{height:100%;background:var(--grad);border-radius:20px;transition:width .4s}
.target-card{margin-bottom:16px}

/* ── Templates ── */
.tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.tpl-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:16px;
  display:flex;flex-direction:column;gap:8px;transition:border-color .13s,transform .08s}
.tpl-card:hover{border-color:var(--accent);transform:translateY(-2px)}
.tc-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.tpl-ch{font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:6px;
  background:color-mix(in srgb,var(--ch,#7c5cff) 18%,transparent);color:var(--ch,#7c5cff)}
.tpl-ch.ch-email{--ch:#5b8def}.tpl-ch.ch-whatsapp{--ch:#25d366}.tpl-ch.ch-sms{--ch:#f5a524}
.tpl-cat{font-size:11px;color:var(--faint);background:var(--panel3);border-radius:6px;padding:2px 8px}
.tpl-name{font-size:15px}
.tpl-subj{font-size:12.5px;color:var(--muted);font-weight:600}
.tpl-preview{font-size:12.5px;color:var(--faint);line-height:1.5;flex:1}
.tpl-foot{display:flex;justify-content:space-between;align-items:center;
  border-top:1px solid var(--border);padding-top:10px;font-size:11.5px}
.tpl-uses{color:var(--accent2);font-weight:600}
.ph-list{display:flex;flex-direction:column;gap:6px}
.ph-chip{display:flex;flex-direction:column;gap:1px;text-align:left;padding:8px 11px;
  background:var(--panel2);border:1px solid var(--border);border-radius:9px;cursor:pointer;transition:.12s}
.ph-chip:hover{border-color:var(--accent)}
.ph-chip code{font-size:12.5px;color:var(--accent2);font-family:ui-monospace,monospace}
.ph-chip small{color:var(--faint);font-size:10.5px}
.tpl-body{font-family:ui-monospace,monospace;font-size:13px;line-height:1.6}
.tpl-render{background:var(--bg2);border:1px solid var(--border);border-radius:11px;padding:18px}
.render-subj{padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid var(--border);font-size:14px}
.render-body{white-space:pre-wrap;font-size:14px;line-height:1.6}
.raw-tpl pre{white-space:pre-wrap;font-family:ui-monospace,monospace;font-size:12px;
  color:var(--muted);margin-top:6px;line-height:1.55}

/* ── Team ── */
.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.member-card{background:var(--panel);border:1px solid var(--border);border-radius:15px;padding:18px;
  display:flex;flex-direction:column;gap:14px;position:relative;transition:border-color .13s,transform .08s}
.member-card:hover{border-color:var(--accent);transform:translateY(-2px)}
.member-card.is-top{border-color:rgba(245,165,36,.4)}
.member-card.inactive{opacity:.55}
.top-badge{position:absolute;top:-9px;right:14px;background:linear-gradient(120deg,#f5a524,#f97316);
  color:#fff;font-size:10.5px;font-weight:700;padding:3px 10px;border-radius:20px}
.mc-head{display:flex;align-items:center;gap:12px}
.mc-avatar{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;
  font-size:16px;font-weight:800;color:#fff;flex-shrink:0;
  background:linear-gradient(140deg,var(--av,#7c5cff),color-mix(in srgb,var(--av,#7c5cff) 55%,#000))}
.mc-avatar.sm{width:32px;height:32px;border-radius:9px;font-size:12px;display:inline-grid;vertical-align:middle}
.mc-id{min-width:0}
.mc-id b{display:block;font-size:15px}
.role-tag{font-size:10.5px;font-weight:700;padding:2px 9px;border-radius:6px}
.role-tag.t-admin{background:rgba(124,92,255,.18);color:var(--accent)}
.role-tag.t-mgr{background:rgba(34,211,238,.16);color:var(--accent2)}
.role-tag.t-agent{background:rgba(148,160,198,.14);color:var(--muted)}

/* Module access administration */
.access-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start}
.access-main{min-width:0}
.access-head{gap:16px;align-items:flex-start}
.access-head .inline-form{margin-left:auto}
.access-person{display:flex;align-items:center;gap:10px;padding:12px 0 16px;border-bottom:1px solid var(--line)}
.access-person div{display:flex;flex-direction:column;min-width:0}
.access-person small{color:var(--muted);overflow-wrap:anywhere}
.access-person .badge{margin-left:auto}
.access-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0}
.access-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.access-group{min-width:0;margin:0;padding:10px;border:1px solid var(--line);border-radius:6px}
.access-group legend{padding:0 5px;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}
.access-option{display:flex;align-items:center;gap:8px;min-height:30px;font-size:13px;cursor:pointer}
.access-option input{accent-color:var(--accent);width:15px;height:15px;flex:0 0 auto}
.perm-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin:0 0 8px 23px}
.perm-row label{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:4px;min-width:0}
.perm-row input{accent-color:var(--accent2);width:13px;height:13px;flex:0 0 auto}
.access-disabled{opacity:.62}
.transfer-card{position:sticky;top:76px}
@media(max-width:900px){.access-layout{grid-template-columns:1fr}.transfer-card{position:static}}
@media(max-width:620px){.access-groups{grid-template-columns:1fr}.access-head,.access-tools{align-items:stretch;flex-direction:column}.access-head .inline-form{margin-left:0}.access-head select{width:100%}}

/* Daily database backup controls */
.backup-grid{align-items:start}
.backup-status{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}
.backup-status div{background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:10px;min-width:0}
.backup-status small{display:block;color:var(--faint);font-size:10.5px;text-transform:uppercase;font-weight:800}
.backup-status b{display:block;margin-top:3px;font-size:13px;overflow-wrap:anywhere}
.backup-files-card{grid-column:1/-1}
@media(max-width:700px){.backup-status{grid-template-columns:1fr}.backup-files-card .tbl{min-width:640px}}
.mc-stats{display:flex;justify-content:space-between;gap:8px;padding:12px 0;
  border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.mc-stat{text-align:center;flex:1}
.mc-stat b{display:block;font-size:15px}
.mc-stat small{font-size:10.5px;color:var(--faint)}
.mc-foot{display:flex;gap:14px;font-size:12px;color:var(--muted);flex-wrap:wrap}
.mc-due{color:var(--warn)}.mc-tick{color:var(--accent2)}
.mini-timeline{display:flex;flex-direction:column;gap:0}
.mt-item{display:flex;gap:12px;padding:8px 0}
.mt-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);margin-top:6px;flex-shrink:0;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
.mt-body{display:flex;justify-content:space-between;gap:12px;flex:1;min-width:0}
.mt-text{font-size:13px;line-height:1.45}
a.mt-text:hover{color:var(--accent2)}
.mt-time{font-size:11px;color:var(--faint);white-space:nowrap;flex-shrink:0}
.hot-list{display:flex;flex-direction:column;gap:8px}
.hot-item{display:flex;align-items:center;gap:11px;padding:8px;border-radius:9px;transition:background .12s}
.hot-item:hover{background:var(--panel2)}
.hot-info b{display:block;font-size:13px}
.hot-info small{font-size:11px;color:var(--faint)}

/* ── Documents ── */
.doc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
.doc-card{display:flex;gap:14px;background:var(--panel);border:1px solid var(--border);
  border-radius:14px;padding:16px;transition:border-color .13s,transform .08s}
.doc-card:hover{border-color:var(--accent);transform:translateY(-2px)}
.dc-icon{font-size:26px;width:48px;height:48px;display:grid;place-items:center;
  background:var(--panel3);border-radius:12px;flex-shrink:0}
.dc-body{flex:1;min-width:0}
.dc-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.dc-title{font-size:15px}
.dc-type{font-size:11.5px;color:var(--faint);background:var(--panel3);border-radius:6px;padding:2px 8px;display:inline-block;margin-top:3px}
.dc-desc{font-size:12.5px;color:var(--muted);line-height:1.5;margin-top:8px}
.dc-foot{display:flex;gap:12px;align-items:center;margin-top:10px;font-size:11.5px;flex-wrap:wrap}
.dc-deal{color:var(--accent2)}
.dc-views{color:var(--muted);margin-left:auto}
.share-card{border:1px solid rgba(52,211,153,.3)}
.doc-body{font-family:ui-monospace,monospace;font-size:13px;line-height:1.6}
.doc-render{font-size:14.5px;line-height:1.65}
.doc-render h1{font-size:22px;margin:20px 0 10px}
.doc-render h2{font-size:18px;margin:18px 0 8px}
.doc-render h3{font-size:15.5px;margin:14px 0 6px;color:var(--muted)}
.doc-render p{margin:0 0 12px}
.doc-render ul,.doc-render ol{margin:0 0 14px;padding-left:22px}
.doc-render li{margin-bottom:5px}
.doc-render strong{color:#fff}
.doc-render a{color:var(--accent2)}
.doc-render hr{border:none;border-top:1px solid var(--border);margin:18px 0}
.mt{margin-top:12px}

@media (max-width:960px){.tpl-grid,.doc-grid,.team-grid{grid-template-columns:1fr}}

/* v6 fix: filter segment bars scroll horizontally on mobile instead of overflowing */
@media (max-width:640px){
  .seg{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;
    scrollbar-width:none}
  .seg::-webkit-scrollbar{display:none}
  .seg-btn{white-space:nowrap;flex-shrink:0}
  .filter-bar{align-items:stretch}
  .filter-bar .seg{width:100%}
}

/* ══════════════════════════════════════════════════════════════════════
   v7 — 10 new apps (Notes, Expenses, Timesheets, Projects, Vendors,
   Assets, Announcements, Surveys, Territories, Onboarding)
   ══════════════════════════════════════════════════════════════════════ */
.clickable{cursor:pointer}
.clickable:hover{background:var(--panel2)}
.dim{opacity:.55}
.ta-c{text-align:center}
.narrow-form{max-width:640px}
.empty-inline{color:var(--faint);padding:16px;text-align:center;font-size:13px}
.note-btn{background:none;border:none;cursor:pointer;font-size:14px;opacity:.6;padding:2px 4px;transition:.12s}
.note-btn:hover{opacity:1}
.inline{display:inline}

/* Notes */
.note-composer form,.ann-composer form{display:flex;flex-direction:column;gap:10px}
.nc-foot{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.color-picker{display:flex;gap:6px}
.color-dot{width:22px;height:22px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:.12s;position:relative}
.color-dot input{position:absolute;opacity:0}
.color-dot:has(input:checked){border-color:var(--text);transform:scale(1.15)}
.cd-yellow{background:#f5d565}.cd-green{background:#7ed88f}.cd-blue{background:#6db3f2}.cd-pink{background:#f28db3}.cd-purple{background:#b98df2}
.chk{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);cursor:pointer}
.notes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.note{border-radius:14px;padding:15px;display:flex;flex-direction:column;gap:8px;min-height:120px;position:relative;border:1px solid rgba(0,0,0,.1)}
.note-yellow{background:#4a4322;border-color:#5f552b}.note-green{background:#224a2b;border-color:#2b5f37}
.note-blue{background:#22384a;border-color:#2b485f}.note-pink{background:#4a2233;border-color:#5f2b43}
.note-purple{background:#3a2244;border-color:#4b2b57}
.note.pinned{box-shadow:0 0 0 1.5px var(--accent)}
.note-pin-badge{position:absolute;top:10px;right:12px;font-size:13px}
.note-title{font-size:14px}
.note-body{font-size:13px;line-height:1.5;white-space:pre-wrap;flex:1;color:var(--text)}
.note-foot{display:flex;justify-content:space-between;align-items:center;gap:8px}
.note-meta{font-size:10.5px;color:var(--faint)}
.note-actions{display:flex;gap:2px}

/* Projects + milestones + onboarding shared */
.proj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.proj-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:9px;transition:.12s}
.proj-card:hover{border-color:var(--accent);transform:translateY(-2px)}
.pc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.pc-name{font-size:15px}
.pc-client{font-size:12px;color:var(--accent2)}
.pc-foot{display:flex;justify-content:space-between;font-size:11.5px;color:var(--muted)}
.pc-pct{font-weight:700;color:var(--text)}
.pc-meta{display:flex;justify-content:space-between;font-size:11px;border-top:1px solid var(--border);padding-top:8px}
.milestone-list{display:flex;flex-direction:column;gap:2px;margin-bottom:14px}
.milestone{display:flex;align-items:center;gap:11px;padding:9px 8px;border-radius:9px;transition:.1s}
.milestone:hover{background:var(--panel2)}
.milestone.done .ms-title{text-decoration:line-through;color:var(--faint)}
.ms-check{width:26px;height:26px;border-radius:50%;border:1.5px solid var(--border);background:none;color:var(--faint);cursor:pointer;font-size:13px;flex-shrink:0;transition:.12s}
.ms-check.checked{background:var(--ok);border-color:var(--ok);color:#fff}
.ms-title{flex:1;font-size:13.5px}
.ms-due{font-size:11px;color:var(--faint)}
.ms-del{opacity:.5}
.ms-add{display:flex;gap:10px;border-top:1px solid var(--border);padding-top:14px}

/* Vendors + stars */
.star{color:var(--border);font-size:13px}
.star.on{color:#f5a524}

/* Timesheets */
.time-composer{padding:14px}
.time-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.time-form .inp{flex:1;min-width:180px}

/* Announcements */
.ann-list{display:flex;flex-direction:column;gap:12px}
.ann-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:16px;border-left:3px solid var(--faint)}
.ann-card.pri-important{border-left-color:var(--warn)}
.ann-card.pri-urgent{border-left-color:var(--bad)}
.ann-card.pinned{background:var(--panel2)}
.ann-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:6px}
.ann-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ann-title{font-size:15px}
.ann-actions{display:flex;gap:2px}
.ann-body{font-size:13.5px;line-height:1.55;color:var(--text);white-space:pre-wrap;margin-bottom:10px}
.ann-foot{display:flex;justify-content:space-between;gap:10px}

/* Surveys */
.new-survey-panel,.new-ob-panel{margin-bottom:16px}
.survey-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.survey-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:8px;transition:.12s}
.survey-card:hover{border-color:var(--accent);transform:translateY(-2px)}
.sv-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.sv-title{font-size:14.5px}
.sv-type{font-size:11px;color:var(--faint);background:var(--panel3);border-radius:6px;padding:2px 8px;align-self:flex-start}
.sv-q{font-size:12.5px;color:var(--muted);line-height:1.5;flex:1}
.sv-foot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--border);padding-top:10px}
.sv-score{font-weight:700;color:var(--accent2);font-size:13px}
.big-score{font-size:44px;font-weight:800;text-align:center;margin:8px 0}
.bs-hi{color:var(--ok)}.bs-mid{color:var(--accent2)}.bs-lo{color:var(--bad)}
.dist-bars{display:flex;flex-direction:column;gap:5px;margin-top:14px}
.dist-row{display:flex;align-items:center;gap:8px}
.dist-label{width:20px;font-size:12px;color:var(--muted);text-align:right}
.dist-bar{flex:1;height:14px;background:var(--panel3);border-radius:4px;overflow:hidden}
.dist-fill{height:100%;background:var(--grad);border-radius:4px}
.dist-count{width:24px;font-size:11px;color:var(--faint)}
.resp-list{display:flex;flex-direction:column;gap:10px}
.resp-item{display:flex;gap:12px;padding:10px;border-radius:10px;background:var(--panel2)}
.resp-score{width:36px;height:36px;border-radius:9px;display:grid;place-items:center;font-weight:800;font-size:15px;flex-shrink:0}
.resp-score.s-hi{background:rgba(45,212,167,.18);color:var(--ok)}
.resp-score.s-mid{background:rgba(245,165,36,.16);color:var(--warn)}
.resp-score.s-lo{background:rgba(244,63,94,.16);color:var(--bad)}
.resp-comment{font-size:13px;line-height:1.5;margin-bottom:4px}

/* Territories */
.terr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.terr-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:16px;position:relative}
.tc-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}
.tc-top b{font-size:15px}
.terr-region{font-size:11.5px;color:var(--accent2)}
.terr-desc{font-size:12.5px;color:var(--muted);line-height:1.5;margin-bottom:10px}
.terr-foot{display:flex;justify-content:space-between;font-size:11.5px}
.terr-del{position:absolute;top:12px;right:12px;opacity:.4}

/* Onboarding */
.ob-list{display:flex;flex-direction:column;gap:12px}
.ob-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:9px;transition:.12s}
.ob-card:hover{border-color:var(--accent)}
.ob-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.ob-head b{font-size:15px}
.ob-foot{display:flex;justify-content:space-between;font-size:11.5px}

@media (max-width:900px){
  .notes-grid,.proj-grid,.survey-grid,.terr-grid{grid-template-columns:1fr}
  .time-form{flex-direction:column;align-items:stretch}
  .time-form .inp{max-width:none!important}
}

/* ══════════════════════════════════════════════════════════════════════
   v8 — 10 new apps (Contracts, Subscriptions, Commissions, Referrals,
   Competitors, AMC, Leaderboard, Suggestions, Loyalty, Health)
   ══════════════════════════════════════════════════════════════════════ */

/* Renewal alerts (contracts + amc) */
.renewal-alert{border-left:3px solid var(--warn);background:var(--panel2)}
.alert-row{display:flex;gap:14px;align-items:center}
.alert-icon{font-size:26px;flex-shrink:0}

/* Commissions */
.rep-earn-list{display:flex;flex-direction:column;gap:8px}
.rep-earn{display:flex;justify-content:space-between;align-items:center;padding:9px 11px;background:var(--panel2);border-radius:9px;font-size:13px}
.calc-preview{background:var(--panel2);border:1px solid var(--border);border-radius:10px;padding:14px;text-align:center;font-size:15px;color:var(--muted);margin-bottom:16px}
.calc-preview b{color:var(--accent2);font-size:19px}
.stack-btns{display:flex;flex-direction:column;gap:8px}
.stack-btns .btn{width:100%}

/* Referrals */
.new-ref-panel{display:none;margin-bottom:16px}
.new-ref-panel.show{display:block}

/* Competitors */
.comp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.comp-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:9px;transition:.12s}
.comp-card:hover{border-color:var(--accent);transform:translateY(-2px)}
.cc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.cc-name{font-size:15px}
.cc-edge{font-size:12.5px;color:var(--muted);line-height:1.5;flex:1}
.cc-foot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--border);padding-top:10px}
.cc-winrate{font-weight:700;font-size:12.5px}
.wr-good{color:var(--ok)}.wr-bad{color:var(--bad)}
.winloss-card{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.wl-stat{text-align:center}
.wl-stat b{display:block;font-size:28px;line-height:1}
.wl-stat small{color:var(--faint);font-size:11px}
.wl-actions{margin-left:auto;display:flex;gap:8px}
.battlecard-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.bc-cell{margin:0}
.bc-text{font-size:13px;line-height:1.6;color:var(--muted);white-space:pre-wrap}

/* Leaderboard */
.podium{display:flex;justify-content:center;align-items:flex-end;gap:14px;margin-bottom:22px;padding:20px 0}
.podium-spot{display:flex;flex-direction:column;align-items:center;gap:6px;width:130px}
.podium-spot b{font-size:13.5px;text-align:center}
.podium-avatar{width:52px;height:52px;border-radius:50%;background:var(--av,var(--accent));display:grid;place-items:center;color:#fff;font-weight:800;font-size:17px}
.podium-avatar.big{width:66px;height:66px;font-size:21px}
.crown{font-size:24px;margin-bottom:-2px}
.podium-pts{font-size:11.5px;color:var(--accent2);font-weight:700}
.podium-bar{width:100%;border-radius:9px 9px 0 0;display:grid;place-items:center;color:#fff;font-weight:800;font-size:20px;margin-top:4px}
.bar1{height:90px;background:linear-gradient(180deg,#f5c542,#e0a020)}
.bar2{height:64px;background:linear-gradient(180deg,#c0c8d4,#98a0ac)}
.bar3{height:46px;background:linear-gradient(180deg,#cd9560,#b07840)}
.p1{order:2}.p2{order:1}.p3{order:3}
.lb-list{display:flex;flex-direction:column;gap:2px}
.lb-row{display:flex;align-items:center;gap:13px;padding:11px 10px;border-radius:10px;transition:.1s}
.lb-row:hover{background:var(--panel2)}
.lb-row.is-me{background:rgba(124,92,255,.1);border:1px solid rgba(124,92,255,.3)}
.lb-rank{width:28px;text-align:center;font-weight:800;font-size:15px;color:var(--faint)}
.rank-1{color:#f5c542}.rank-2{color:#c0c8d4}.rank-3{color:#cd9560}
.lb-info{flex:1;min-width:0}
.lb-info b{font-size:14px}
.lb-badges{display:flex;gap:4px;flex-wrap:wrap;margin-top:2px}
.lb-badge{font-size:10px;background:var(--panel3);border-radius:5px;padding:1px 6px}
.lb-stats{display:flex;flex-direction:column;align-items:flex-end;gap:1px;font-size:11px;color:var(--muted);margin-right:8px}
.lb-points{font-size:18px;font-weight:800;color:var(--accent2);min-width:52px;text-align:right}
.award-form{display:flex;gap:10px;flex-wrap:wrap;align-items:center}

/* Suggestions */
.seg-row{display:flex;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.sugg-list{display:flex;flex-direction:column;gap:10px}
.sugg-card{display:flex;gap:14px;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:14px}
.vote-btn{display:flex;flex-direction:column;align-items:center;gap:1px;background:var(--panel2);border:1px solid var(--border);border-radius:10px;padding:8px 12px;cursor:pointer;transition:.12s;min-width:52px}
.vote-btn:hover{border-color:var(--accent)}
.vote-btn.voted{background:rgba(124,92,255,.15);border-color:var(--accent)}
.vote-arrow{font-size:11px;color:var(--accent)}
.vote-count{font-weight:800;font-size:15px}
.sugg-body{flex:1;min-width:0}
.sugg-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:5px}
.sugg-title{font-size:14.5px}
.sugg-detail{font-size:13px;color:var(--muted);line-height:1.5;margin-bottom:8px}
.sugg-foot{display:flex;justify-content:space-between;align-items:center;gap:10px}
.sugg-actions{display:flex;gap:6px;align-items:center}

/* Loyalty */
.new-mem-panel{display:none;margin-bottom:16px}
.new-mem-panel.show{display:block}
.tier-badge{font-size:11px;font-weight:700;border-radius:6px;padding:3px 10px;color:#fff}
.tier-bronze{background:linear-gradient(120deg,#cd7f32,#b06820)}
.tier-silver{background:linear-gradient(120deg,#b8c0cc,#8e96a2);color:#1a1f2e}
.tier-gold{background:linear-gradient(120deg,#f5c542,#e0a020);color:#1a1f2e}
.tier-platinum{background:linear-gradient(120deg,#8ce0ff,#5cb0d8);color:#1a1f2e}
.points-hero{text-align:center;padding:12px 0}
.points-big{font-size:46px;font-weight:800;color:var(--accent2);line-height:1}
.tier-progress{margin-top:16px}
.tp-label{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-bottom:6px}
.ledger-list{display:flex;flex-direction:column;gap:2px}
.ledger-row{display:flex;align-items:center;gap:12px;padding:9px 8px;border-radius:8px}
.ledger-row:hover{background:var(--panel2)}
.ledger-pts{font-weight:800;font-size:14px;min-width:44px}
.lp-plus{color:var(--ok)}.lp-minus{color:var(--bad)}
.ledger-reason{flex:1;font-size:13px}
.points-form{display:flex;flex-direction:column;gap:10px}

/* Health */
.health-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.health-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:18px;display:flex;flex-direction:column;align-items:center;gap:10px;transition:.12s}
.health-card:hover{border-color:var(--accent);transform:translateY(-2px)}
.hc-top{display:flex;justify-content:space-between;align-items:center;width:100%;gap:8px}
.hc-name{font-size:14.5px}
.trend-arrow{font-size:13px}
.t-up{color:var(--ok)}.t-down{color:var(--bad)}.t-stable{color:var(--faint)}
.score-ring{width:78px;height:78px;border-radius:50%;display:grid;place-items:center;border:5px solid var(--border)}
.score-ring.hs-good{border-color:var(--ok)}
.score-ring.hs-warn{border-color:var(--warn)}
.score-ring.hs-bad{border-color:var(--bad)}
.score-num{font-size:26px;font-weight:800}
.badge.hs-good{background:rgba(45,212,167,.16);color:var(--ok)}
.badge.hs-warn{background:rgba(245,165,36,.16);color:var(--warn)}
.badge.hs-bad{background:rgba(244,63,94,.16);color:var(--bad)}
.sub-scores{width:100%;display:flex;flex-direction:column;gap:7px;margin-top:4px}
.sub-scores.big{gap:12px}
.ss-row{display:flex;align-items:center;gap:9px;font-size:11.5px;color:var(--muted)}
.ss-row span:first-child{width:64px;flex-shrink:0}
.ss-row b{width:28px;text-align:right;color:var(--text)}
.ss-bar{flex:1;height:8px;background:var(--panel3);border-radius:4px;overflow:hidden}
.sub-scores.big .ss-bar{height:11px}
.ss-fill{height:100%;border-radius:4px}
.ss-fill.usage{background:linear-gradient(90deg,#7c5cff,#a78bfa)}
.ss-fill.support{background:linear-gradient(90deg,#22d3ee,#67e8f9)}
.ss-fill.sentiment{background:linear-gradient(90deg,#2dd4a7,#6ee7b7)}
.slider{width:100%;margin-top:6px;accent-color:var(--accent)}

@media (max-width:900px){
  .comp-grid,.health-grid{grid-template-columns:1fr}
  .battlecard-grid{grid-template-columns:1fr}
  .podium-spot{width:100px}
  .award-form,.time-form{flex-direction:column;align-items:stretch}
  .award-form .inp{max-width:none!important}
  .winloss-card{gap:18px}
  .wl-actions{margin-left:0;width:100%}
}

/* ══════════════════════════════════════════════════════════════════════
   v9 — 10 new apps (Purchase Orders, Warranties, Returns, Complaints,
   Events, Partners, Coupons, Escalations, Dunning, Renewals)
   ══════════════════════════════════════════════════════════════════════ */

/* Events */
.event-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.event-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:8px;transition:.12s}
.event-card:hover{border-color:var(--accent);transform:translateY(-2px)}
.ev-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.ev-type{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--accent2);background:var(--panel2);padding:3px 9px;border-radius:6px}
.ev-title{font-size:15px;line-height:1.3}
.ev-date,.ev-venue{font-size:12.5px;color:var(--muted)}
.ev-foot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--border);padding-top:9px;margin-top:2px}
.reg-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.reg-form .inp{flex:1;min-width:120px}

/* Coupons */
.coupon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.coupon-card{background:var(--panel);border:1px dashed var(--border-strong,#2a3348);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:9px;position:relative}
.coupon-card.coupon-off{opacity:.55}
.cp-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.cp-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:16px;font-weight:800;letter-spacing:.05em;color:var(--accent2);background:var(--panel2);padding:4px 12px;border-radius:8px}
.cp-value{font-size:13px;font-weight:700;color:var(--ok)}
.cp-desc{font-size:12.5px;color:var(--muted);line-height:1.4}
.cp-meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-size:12px}
.cp-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center;border-top:1px solid var(--border);padding-top:10px;margin-top:2px}

/* Dunning stage pills + stepper */
.stage-pill{font-size:11px;font-weight:600;border-radius:6px;padding:3px 9px;background:var(--panel3);color:var(--muted)}
.stage-0{background:rgba(124,92,255,.14);color:var(--accent2)}
.stage-1{background:rgba(245,165,36,.16);color:var(--warn)}
.stage-2{background:rgba(244,63,94,.14);color:var(--bad)}
.stage-3{background:rgba(244,63,94,.22);color:var(--bad)}
.stage-4{background:rgba(45,212,167,.16);color:var(--ok)}
.stage-stepper{display:flex;align-items:flex-start;gap:0;overflow-x:auto;padding:6px 0}
.step-node{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;min-width:80px;position:relative}
.step-node:not(:last-child)::after{content:'';position:absolute;top:15px;left:50%;width:100%;height:2px;background:var(--border)}
.step-node.step-done::after{background:var(--ok)}
.step-dot{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--panel3);color:var(--faint);font-weight:800;font-size:13px;z-index:1;border:2px solid var(--border)}
.step-done .step-dot{background:var(--ok);color:#04120d;border-color:var(--ok)}
.step-current .step-dot{background:var(--accent);color:#fff;border-color:var(--accent)}
.step-label{font-size:11px;color:var(--muted);text-align:center}
.step-current .step-label{color:var(--text);font-weight:600}

/* Renewals */
.renewal-kind{font-size:12.5px;font-weight:600;white-space:nowrap}
.kind-tags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.kind-tag{font-size:12px;color:var(--muted);background:var(--panel2);border:1px solid var(--border);border-radius:8px;padding:4px 11px}
.kind-tag b{color:var(--text)}

@media (max-width:900px){
  .event-grid,.coupon-grid{grid-template-columns:1fr}
  .reg-form{flex-direction:column;align-items:stretch}
  .reg-form .inp{width:100%}
  .stage-stepper{gap:4px}
  .step-node{min-width:64px}
  .step-label{font-size:10px}
}

/* ══════════════════════════════════════════════════════════════════════
   v11 — Custom App Builder
   ══════════════════════════════════════════════════════════════════════ */
.app-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.app-card{display:flex;gap:14px;align-items:flex-start;background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:16px;text-decoration:none;color:inherit;transition:.14s;position:relative;overflow:hidden}
.app-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--app-color,var(--accent))}
.app-card:hover{border-color:var(--app-color,var(--accent));transform:translateY(-2px)}
.app-icon{font-size:30px;line-height:1;width:52px;height:52px;display:grid;place-items:center;background:var(--panel2);border-radius:12px;flex-shrink:0}
.app-body{min-width:0;flex:1}
.app-name{font-weight:700;font-size:15px;margin-bottom:2px}
.app-desc{font-size:12.5px;color:var(--muted);line-height:1.35;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.app-meta{font-size:11.5px;color:var(--faint);margin-top:8px}

/* Builder field rows */
.builder-fields{border-top:1px solid var(--border);padding-top:16px;margin-top:4px}
.field-row{display:flex;gap:8px;align-items:center;margin-bottom:8px}
.field-row .field-label{flex:2;min-width:0}
.field-row .field-type{flex:1;min-width:0}
.field-row .field-options{flex:1.5;min-width:0}
.chk-inline{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--muted);white-space:nowrap}
.chk-inline input{margin:0}

.search-bar{display:flex;gap:8px;align-items:center}
.search-bar .inp{flex:1}

@media (max-width:900px){
  .app-grid{grid-template-columns:1fr}
  .field-row{flex-wrap:wrap}
  .field-row .field-label,.field-row .field-type,.field-row .field-options{flex:1 1 100%}
}

/* ══════════════════════════════════════════════════════════════════════
   responsive hardening pass - every page
   ══════════════════════════════════════════════════════════════════════ */
html,body{max-width:100%;overflow-x:hidden}
.pagination{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;padding:20px 0}
.content,.main,.card,.card-flush,.tbl-scroll,.table-wrap,.page-head,.filters,.head-actions,
.form-card,.narrow-form,.detail-grid,.grid-2,.grid-2-13,.grid-3{min-width:0;max-width:100%}
.card,.tbl td,.tbl th,.dl dd,.msg-body,.raw-tpl,.tpl-body,.doc-body,.ann-body,
.bc-text,.sugg-detail,.app-desc,.ind-tag,.feed-txt,.muted,.muted-sm{overflow-wrap:anywhere}
.card:has(> .tbl),.content:has(> .tbl){overflow-x:auto;-webkit-overflow-scrolling:touch}
img,svg,canvas,video,iframe{max-width:100%;height:auto}
pre,code{white-space:pre-wrap;word-break:break-word}
.inline-form{display:inline-flex;align-items:center;gap:6px;max-width:100%;flex-wrap:wrap}
.stack-form,.form-grid,.quick-task,.ann-composer,.time-composer,.search-bar{min-width:0}
.stack-form .inp,.form-grid .inp,.narrow-form .inp,.quick-task .inp,.ann-composer .inp{max-width:100%}
.card-head > *,.page-head > *,.head-actions > *,.filters > *,.list li > *{min-width:0}
.page-head > div:first-child{min-width:0;flex:1 1 260px}
.page-head h1{line-height:1.2;overflow-wrap:anywhere}
.head-actions .btn,.filters .btn{justify-content:center}
.filters .inp,.filters .inp-sm,.filters select,.head-actions .inp,.head-actions .inp-sm{max-width:100%}
.seg{max-width:100%}
.dl dd{min-width:0}
.tbl td small,.tbl td b,.tbl td a{overflow-wrap:anywhere}
.num,.badge,.prio,.role-tag,.score,.score-pill,.stage-pill,.renewal-kind{overflow-wrap:normal}

@media (max-width:1150px){
  .kpi-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
  .camp-grid,.ind-grid,.tpl-grid,.doc-grid,.team-grid,.notes-grid,.proj-grid,
  .survey-grid,.terr-grid,.comp-grid,.event-grid,.coupon-grid,.health-grid,
  .app-grid,.custom-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
}

@media (max-width:860px){
  .card:has(> .tbl) > .tbl,
  .content:has(> .tbl) > .tbl,
  .card-flush > .tbl,
  .tbl-scroll > .tbl,
  .table-wrap > table{min-width:640px}
  .card-flush,.tbl-scroll,.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .report .grid-2,.report .grid-3{grid-template-columns:1fr}
  .f-row{grid-template-columns:minmax(0,1fr);gap:6px}
  .f-val{text-align:left}
  .chart{min-width:0}
}

@media (max-width:760px){
  .topbar{gap:8px}
  .top-actions{gap:6px}
  .gsearch{order:3;flex:1 0 100%;max-width:none}
  .topbar{flex-wrap:wrap}
  .menu-wide{max-width:calc(100vw - 16px)}
  .page-head{align-items:stretch}
  .head-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}
  .head-actions .btn{width:100%}
  .filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:stretch}
  .filters .inp,.filters .inp-sm,.filters .btn,.filters select{width:100%;min-width:0}
  .card-head{align-items:flex-start;flex-wrap:wrap}
  .card-head .btn,.card-head .inp,.card-head select{max-width:100%}
  .detail-grid,.grid-2,.grid-2-13,.grid-3,.fe-grid,.battlecard-grid{grid-template-columns:1fr}
  .form-actions{align-items:stretch}
  .form-actions .btn,.form-actions button{width:100%;justify-content:center}
  .quick-task,.ann-composer form,.award-form,.reg-form,.ms-add,.search-bar,
  .time-form,.qt-form,.note-form,.chat-form{flex-direction:column;align-items:stretch}
  .quick-task .inp,.ann-composer .inp,.award-form .inp,.reg-form .inp,
  .ms-add .inp,.search-bar .inp,.time-form .inp,.qt-form .inp,.note-form .inp,
  .chat-form .inp{width:100%;max-width:none!important}
  .list li,.feed li,.lb-row,.ledger-row,.resp-item,.alert-row,.ann-head,
  .ann-foot,.sv-head,.sv-foot,.ob-head,.ob-foot,.pc-foot,.pc-meta,.ev-foot,
  .cp-top,.cc-head,.cc-foot,.sugg-top,.sugg-foot,.tc-top,.terr-foot{
    align-items:flex-start;flex-wrap:wrap
  }
  .row-end,.wl-actions{margin-left:0}
  .lb-stats{align-items:flex-start;margin-right:0}
  .lb-points{min-width:0;text-align:left}
  .podium{gap:8px;overflow-x:auto;justify-content:flex-start;padding-inline:2px}
  .podium-spot{flex:0 0 96px}
  .login-body{padding:14px}
  .login-wrap{border-radius:14px}
  .login-card{padding:26px 20px}
}

@media (max-width:640px){
  .content{padding-inline:12px}
  .card{padding:14px}
  .card-flush{padding:0}
  .card-head.pad{padding:12px 14px 0}
  .page-head h1{font-size:18px}
  .muted{font-size:13px}
  .btn{min-height:42px;white-space:normal;text-align:center}
  .btn-sm{min-height:38px}
  .iconbtn,.avatar-btn{flex:0 0 auto}
  .dl{grid-template-columns:1fr;gap:3px}
  .dl dt{margin-top:8px}
  .kpi-grid,.kpi-grid.kpi-4{grid-template-columns:1fr}
  .score-row,.score-card,.winloss-card,.rpt-kpis,.sub-scores .ss-row{flex-wrap:wrap}
  .reasons{min-width:0;flex-basis:100%}
  .board{gap:10px}
  .col{flex-basis:min(86vw,300px);width:min(86vw,300px)}
  .chat-wrap{min-height:calc(100vh - 190px)}
  .chat{max-height:52vh}
  .msg{max-width:100%}
  .msg-av{display:none}
  .msg-body{border-radius:10px}
  .ind-grid,.camp-grid,.app-grid,.tpl-grid,.doc-grid,.team-grid,.notes-grid,
  .proj-grid,.survey-grid,.terr-grid,.comp-grid,.event-grid,.coupon-grid,
  .health-grid{grid-template-columns:1fr}
  .ind-stats,.cc-stats,.rpt-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .reset-link-box{align-items:stretch}
  .reset-link-inp{width:100%;min-width:0}
  .botnav a,.botnav .botmenu-btn{font-size:10.5px}
}

@media (max-width:420px){
  .content{padding-inline:10px}
  .topbar{padding-inline:10px}
  .page-head h1{font-size:17px}
  .head-actions,.filters{grid-template-columns:1fr}
  .card{padding:12px}
  .card-flush{padding:0}
  .tbl th,.tbl td{padding:9px 10px}
  .menu,.menu-wide{left:6px;right:6px}
  .botnav{padding-inline:4px}
  .botnav a,.botnav .botmenu-btn{padding-inline:4px}
}
/* The navigation is rendered from the user's company/CRM permissions. */
.btn-row { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
