/* MRE Ads. Same design language as MRE Outreach on purpose, so moving between
   the two sites never feels like learning a second app. */
:root{
  /* Light theme. Soft warm-gray page, white cards, near-black headlines and
     numbers, softer off-black for secondary text. Accents darkened so they read
     on white instead of glowing on black. */
  --bg:#f3f3f1;
  --bg-2:#eaeae7;
  --card:#ffffff;
  --card-2:#f7f7f5;
  --panel:#edeeef;
  --border:#e1e2e5;
  --border-2:#d2d4d8;
  --text:#111318;
  --muted:#3d4450;
  --dim:#6a7078;
  --cyan:#0284c7;
  --cyan-600:#036aa1;
  --teal:#0e9f6e;
  --amber:#b7791f;
  --red:#c92a2a;
  --violet:#7c3aed;
  --cyan-soft:rgba(2,132,199,.10);
  --teal-soft:rgba(14,159,110,.12);
  --amber-soft:rgba(183,121,31,.14);
  --red-soft:rgba(201,42,42,.10);
  --violet-soft:rgba(124,58,237,.11);
}
*{box-sizing:border-box}
html,body{margin:0}
body{
  background:
    radial-gradient(1000px 560px at 82% -10%, rgba(56,189,248,.20), transparent 60%),
    radial-gradient(820px 480px at 4% 2%, rgba(14,159,110,.14), transparent 55%),
    radial-gradient(760px 640px at 50% 116%, rgba(124,58,237,.08), transparent 60%),
    linear-gradient(180deg, #e9edf3 0%, #e4e9f0 100%);
  color:var(--text);
  font-family:"Inter",system-ui,-apple-system,Segoe UI,Arial,sans-serif;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
.wrap{max-width:1160px;margin:0 auto;padding:0 24px 64px}
.hidden{display:none !important}

/* ---------- nav ---------- */
.nav{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.86);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}
.nav-inner{max-width:1160px;margin:0 auto;padding:14px 24px;display:flex;align-items:center;gap:24px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:18px;letter-spacing:.2px}
.brand-mark{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:var(--cyan-soft);color:var(--cyan)}
.brand-txt{display:flex;flex-direction:column;line-height:1.1}
.brand-txt b{font-size:16px;font-weight:800}
.brand-txt span{font-size:11px;font-weight:600;color:var(--cyan);letter-spacing:.06em;text-transform:uppercase}
.nav-links{display:flex;flex:1 1 auto;min-width:0;flex-wrap:wrap;column-gap:20px;row-gap:4px;margin-left:8px}
.nav-links a{color:var(--muted);font-size:14px;font-weight:500;padding:6px 2px;white-space:nowrap}
.nav-links a:hover{color:var(--text)}
.nav-links a.active{color:var(--cyan-600);background:rgba(2,132,199,.15);font-weight:600;border-radius:7px;padding:6px 9px;margin:0 -7px}
.nav-links a.admin-tab{color:var(--amber);font-weight:700}
.nav-links a.admin-tab:hover{color:#b45309}
.nav-links a.admin-tab.active{color:#b45309;background:rgba(183,121,31,.18)}
.nav-right{margin-left:auto;display:flex;align-items:center;gap:14px}
.nav-toggle{display:none;align-items:center;justify-content:center;width:42px;height:40px;padding:0;background:var(--panel);border:1px solid var(--border-2);border-radius:11px;color:var(--text);cursor:pointer}
.nav-toggle svg{display:block}
.chip{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;padding:6px 12px;border-radius:999px;border:1px solid var(--border-2);color:var(--muted)}
.chip-live{color:var(--teal);background:var(--teal-soft);border-color:transparent}
.chip-off{color:var(--amber);background:var(--amber-soft);border-color:transparent}
.dot{width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 10px currentColor}
.avatar{width:34px;height:34px;border-radius:50%;background:var(--cyan-soft);color:var(--cyan);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;border:none;cursor:pointer}
.account{position:relative}
.acct-menu{position:absolute;right:0;top:44px;width:220px;background:var(--card);border:1px solid var(--border-2);border-radius:13px;padding:8px;z-index:40}
.acct-head{padding:10px 12px 12px;border-bottom:1px solid var(--border);margin-bottom:6px;display:flex;flex-direction:column;gap:2px}
.acct-name{font-weight:600;font-size:14px}
.acct-role{font-size:12px;color:var(--cyan)}
.acct-item{width:100%;text-align:left;font-family:inherit;font-size:14px;color:var(--text);background:transparent;border:none;padding:10px 12px;border-radius:9px;cursor:pointer}
.acct-item:hover{background:var(--panel);color:var(--cyan)}

/* ---------- login ---------- */
body.locked{overflow:hidden}
.login{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:24px;
  background:radial-gradient(800px 500px at 50% -10%,rgba(56,189,248,.12),transparent 60%),var(--bg)}
.login-card{width:100%;max-width:390px;background:linear-gradient(180deg,var(--card),var(--card-2));border:1px solid var(--border-2);border-radius:20px;padding:32px 28px;text-align:center}
.login-logo{display:flex;align-items:center;justify-content:center;gap:11px;margin-bottom:20px}
.login-logo .brand-mark{width:44px;height:44px;border-radius:13px}
.login-logo b{font-size:21px;font-weight:800}
.login-card h2{font-size:22px;font-weight:700;margin:0 0 6px}
.login-card p{color:var(--muted);font-size:14px;margin:0 0 20px}
#loginForm{display:flex;flex-direction:column;gap:12px}
#loginPass,.modal-input{width:100%;padding:13px 15px;font-size:15px;font-family:inherit;color:var(--text);background:var(--panel);border:1px solid var(--border-2);border-radius:11px;outline:none}
#loginPass:focus,.modal-input:focus{border-color:var(--cyan)}
.login-btn{justify-content:center;width:100%;padding:13px}
.login-err{color:var(--red);font-size:13.5px;margin-top:14px}
.pw-wrap{position:relative}
.pw-wrap+.pw-wrap{margin-top:10px}
.pw-wrap #loginPass,.pw-wrap .modal-input{padding-right:82px}
.pw-show{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:var(--cyan);color:#fff;border:none;border-radius:8px;padding:7px 14px;font-family:inherit;font-size:13px;font-weight:800;cursor:pointer}
.pw-show.on{background:var(--cyan-soft);color:var(--cyan)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:inherit;font-size:15px;font-weight:600;padding:12px 20px;border-radius:11px;border:1px solid transparent;cursor:pointer;transition:.15s}
.btn-primary{background:var(--cyan);color:#fff;border-color:var(--cyan)}
.btn-primary:hover{background:#5cccfb}
.btn-primary:disabled{opacity:.5;cursor:default}
.btn-ghost{background:transparent;color:var(--text);border-color:var(--border-2)}
.btn-ghost:hover{border-color:var(--cyan);color:var(--cyan)}
.btn-danger{background:var(--red);color:#fff;border-color:var(--red);font-weight:800}
.btn-ghost.danger:hover{border-color:var(--red);color:var(--red)}
.btn.sm{padding:8px 14px;font-size:13px;border-radius:9px}
.mini-btn{font-family:inherit;font-size:13px;font-weight:600;padding:7px 14px;border-radius:9px;background:var(--teal-soft);color:var(--teal);border:none;cursor:pointer}
.mini-btn:hover{background:rgba(52,211,153,.22)}

/* Back button. Richard's rule: every screen has a visible way back. */
.backbar{margin:22px 0 0}
.btn-back{display:inline-flex;align-items:center;gap:8px;font-family:inherit;font-size:14px;font-weight:600;
  color:var(--text);background:var(--panel);border:1px solid var(--border-2);border-radius:10px;padding:9px 16px;cursor:pointer}
.btn-back:hover{border-color:var(--cyan);color:var(--cyan)}

/* ---------- page heads ---------- */
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;flex-wrap:wrap;margin:20px 0 4px}
.page-title{font-size:34px;font-weight:800;letter-spacing:-.5px;margin:0;line-height:1.1}
.page-sub{color:var(--muted);font-size:15px;margin:8px 0 22px;max-width:660px}
.eyebrow{display:inline-block;font-size:12px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--cyan);background:var(--cyan-soft);padding:6px 12px;border-radius:8px;margin-bottom:12px}
.grad{color:var(--cyan)}
.section-head{display:flex;align-items:baseline;gap:14px;margin:28px 0 14px;flex-wrap:wrap}
.section-head h2{font-size:21px;font-weight:700;margin:0}
.section-sub{color:var(--muted);font-size:14px}

/* range picker */
.range-pick{display:flex;flex-direction:column;gap:7px;align-items:flex-end}
.rp-label{font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--dim)}
.seg{display:inline-flex;background:var(--panel);border:1px solid var(--border);border-radius:11px;padding:4px;gap:4px}
.seg-btn{font-family:inherit;font-size:13.5px;font-weight:600;color:var(--muted);background:transparent;border:none;padding:9px 16px;border-radius:8px;cursor:pointer;transition:.15s}
.seg-btn:hover{color:var(--text)}
.seg-btn.active{background:var(--cyan);color:#fff}

/* ---------- kpis ---------- */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}
.kpi{background:var(--card-2);border:1px solid var(--border);border-radius:14px;padding:16px 18px}
.kpi .k-label{font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:7px}
.kpi .k-val{font-size:28px;font-weight:800;margin-top:8px;letter-spacing:-.5px}
.kpi .k-sub{font-size:12px;color:var(--dim);margin-top:2px}
.k-cyan{color:var(--cyan)}.k-teal{color:var(--teal)}.k-amber{color:var(--amber)}.k-violet{color:var(--violet)}.k-red{color:var(--red)}
/* Expense share bars on the Money tab. */
.exp-track{background:var(--panel);border-radius:6px;height:9px;overflow:hidden}
.exp-bar{background:var(--amber);height:100%;border-radius:6px;min-width:2px}

/* ---------- cards ---------- */
.card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:18px 20px;margin-bottom:16px}
.card h3{display:flex;align-items:center;gap:9px;margin:0 0 14px;font-size:15px;color:var(--cyan)}
.card-note{color:var(--muted);font-size:13px;line-height:1.6;margin:10px 0 0}

/* ---------- trend chart ---------- */
.trend{display:flex;align-items:flex-end;gap:3px;height:150px;padding:10px 0 0;overflow-x:auto}
.tr-col{flex:1;min-width:6px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:3px;height:100%}
.tr-bar{width:100%;background:var(--cyan);border-radius:3px 3px 0 0;min-height:2px;transition:.2s}
.tr-bar.conv{background:var(--teal)}
.tr-col:hover .tr-bar{filter:brightness(1.25)}
.tr-x{font-size:9.5px;color:var(--dim);white-space:nowrap}
.trend-legend{display:flex;gap:18px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);margin-top:12px}
.trend-legend i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:7px;vertical-align:-1px}
.tl-clicks{background:var(--cyan)}.tl-conv{background:var(--teal)}
/* Today's bar is partial (Google reports the current day on a lag), so it is
   hatched and dashed to read as "in progress" rather than a real short day. */
.tr-col.today .tr-bar{background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.5) 0 3px,rgba(255,255,255,0) 3px 6px);outline:1.5px dashed var(--dim);outline-offset:-2px}
.tl-today{background:var(--cyan);background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.55) 0 2px,transparent 2px 4px);outline:1px dashed var(--dim)}

/* ---------- tables ---------- */
.tbl-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:14px;background:var(--card)}
table.tbl{width:100%;border-collapse:collapse;font-size:13.5px;min-width:640px}
table.tbl th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:var(--dim);font-weight:700;
  padding:12px 14px;background:var(--card-2);border-bottom:1px solid var(--border);white-space:nowrap}
table.tbl td{padding:11px 14px;border-bottom:1px solid var(--border);color:var(--muted);vertical-align:top}
table.tbl tr:last-child td{border-bottom:none}
table.tbl tbody tr:hover td{background:rgba(56,189,248,.04)}
table.tbl td.main{color:var(--text);font-weight:600}
table.tbl td.num,table.tbl th.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
table.tbl td.num{color:var(--text)}
.tbl-foot{padding:10px 14px;font-size:12.5px;color:var(--dim);border-top:1px solid var(--border)}

/* quality score pills */
.qs{display:inline-flex;align-items:center;justify-content:center;min-width:28px;padding:2px 8px;border-radius:7px;font-weight:800;font-size:12.5px}
.qs.good{background:var(--teal-soft);color:var(--teal)}
.qs.mid{background:var(--amber-soft);color:var(--amber)}
.qs.bad{background:var(--red-soft);color:var(--red)}
.qs.none{background:var(--panel);color:var(--dim);font-weight:600}
.lpx{font-size:12px;font-weight:700;padding:2px 9px;border-radius:999px;white-space:nowrap}
.lpx.above{background:var(--teal-soft);color:var(--teal)}
.lpx.avg{background:var(--cyan-soft);color:var(--cyan)}
.lpx.below{background:var(--red-soft);color:var(--red)}
.lpx.unknown{background:var(--panel);color:var(--dim)}

/* ---------- ad copy cards ---------- */
.copy-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px 18px;margin-bottom:12px}
.copy-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.copy-group{font-weight:700;font-size:15px;color:var(--text)}
.copy-status{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:3px 9px;border-radius:999px;background:var(--teal-soft);color:var(--teal)}
.copy-status.paused{background:var(--panel);color:var(--dim)}
.copy-stats{margin-left:auto;font-size:12.5px;color:var(--muted);white-space:nowrap}
.copy-label{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--dim);font-weight:700;margin:12px 0 7px}
.copy-chips{display:flex;flex-wrap:wrap;gap:7px}
.copy-chip{font-size:13px;background:var(--panel);border:1px solid var(--border-2);border-radius:8px;padding:6px 11px;color:var(--text)}
.copy-url{font-size:12.5px;color:var(--cyan);word-break:break-all;margin-top:10px}

/* ---------- speed gauges ---------- */
.speed-row{display:flex;gap:14px;flex-wrap:wrap}
.speed-card{flex:1;min-width:250px;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:18px 20px}
.sp-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.sp-score{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;font-size:22px;font-weight:800;flex:none}
.sp-score.good{background:var(--teal-soft);color:var(--teal);box-shadow:inset 0 0 0 2px var(--teal)}
.sp-score.mid{background:var(--amber-soft);color:var(--amber);box-shadow:inset 0 0 0 2px var(--amber)}
.sp-score.bad{background:var(--red-soft);color:var(--red);box-shadow:inset 0 0 0 2px var(--red)}
.sp-title b{display:block;font-size:15px;color:var(--text)}
.sp-title span{font-size:12.5px;color:var(--muted)}
.sp-metrics{display:flex;flex-direction:column;gap:1px}
.sp-m{display:flex;justify-content:space-between;gap:12px;font-size:13.5px;padding:8px 0;border-top:1px solid var(--border)}
.sp-m span{color:var(--muted)}
.sp-m b{color:var(--text);font-weight:700}
.sp-m b.good{color:var(--teal)}.sp-m b.mid{color:var(--amber)}.sp-m b.bad{color:var(--red)}

/* ---------- empty / not connected ---------- */
.empty-state{display:flex;flex-direction:column;align-items:center;gap:9px;text-align:center;padding:44px 22px;color:var(--muted);
  background:var(--card-2);border:1px dashed var(--border-2);border-radius:16px}
.empty-state .es-ic{font-size:30px;line-height:1}
.empty-state span.es-t{font-weight:700;color:var(--text);font-size:16.5px}
.empty-state small{color:var(--muted);font-size:13.5px;max-width:460px;line-height:1.6}
.notice{display:flex;align-items:flex-start;gap:11px;padding:14px 16px;border-radius:12px;font-size:13.5px;line-height:1.6;margin-bottom:16px}
.notice.warn{background:var(--amber-soft);border:1px solid rgba(251,191,36,.4);color:#8a5a08}
.notice.info{background:var(--cyan-soft);border:1px solid rgba(56,189,248,.35);color:var(--text)}
.notice.bad{background:var(--red-soft);border:1px solid rgba(248,113,113,.4);color:#a01c1c}
.notice b{color:var(--text)}
.stale-tag{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--amber);background:var(--amber-soft);padding:3px 10px;border-radius:999px}
.updated{font-size:12.5px;color:var(--dim)}

/* ---------- admin ---------- */
.hub-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin-bottom:22px}
.hub-tile{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;background:var(--card);border:1px solid var(--border);
  border-radius:16px;padding:20px;cursor:pointer;font-family:inherit;transition:.15s}
.hub-tile:hover{border-color:var(--cyan);transform:translateY(-2px);background:var(--card-2)}
.hub-ic{font-size:25px;line-height:1;margin-bottom:5px}
.hub-name{font-size:16px;font-weight:700;color:var(--text)}
.hub-desc{font-size:13px;color:var(--muted)}
.conn-row{display:flex;align-items:center;gap:13px;padding:14px 0;border-top:1px solid var(--border);flex-wrap:wrap}
.conn-row:first-of-type{border-top:none}
.conn-dot{width:11px;height:11px;border-radius:50%;flex:none}
.conn-dot.on{background:var(--teal);box-shadow:0 0 10px rgba(52,211,153,.7)}
.conn-dot.off{background:var(--amber);box-shadow:0 0 10px rgba(251,191,36,.5)}
.conn-main{flex:1;min-width:200px}
.conn-main b{display:block;font-size:14.5px;color:var(--text)}
.conn-main span{font-size:12.5px;color:var(--muted)}
.conn-missing{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;color:var(--amber);word-break:break-all}
.user-row{display:flex;align-items:center;gap:13px;padding:14px 0;border-top:1px solid var(--border);flex-wrap:wrap}
.user-row:first-of-type{border-top:none}
/* Settings feature toggles */
.nav-links a.feat-hidden{display:none}
.nav-links a.settings-tab{color:var(--muted);font-weight:700}
.nav-links a.settings-tab:hover{color:var(--text)}
.nav-links a.settings-tab.active{color:var(--cyan-600);background:rgba(2,132,199,.15);border-radius:7px;padding:6px 9px;margin:0 -7px}
.set-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--border)}
.set-row:first-of-type{border-top:none}
.set-main{flex:1;min-width:0}
.set-main b{font-weight:700;font-size:14.5px;color:var(--text)}
.switch{flex:0 0 auto;width:46px;height:27px;border-radius:999px;border:none;background:var(--border-2);position:relative;cursor:pointer;transition:background .15s;padding:0}
.switch.on{background:var(--teal)}
.switch-dot{position:absolute;top:3px;left:3px;width:21px;height:21px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:left .15s;pointer-events:none}
.switch.on .switch-dot{left:22px}
.user-main{flex:1;min-width:190px}
.user-main b{display:block;font-size:14.5px;color:var(--text)}
.user-main span{font-size:12.5px;color:var(--muted)}
.tag{font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;padding:3px 10px;border-radius:999px;white-space:nowrap}
.tag.ok{background:var(--teal-soft);color:var(--teal)}
.tag.wait{background:var(--amber-soft);color:var(--amber)}
.tag.role{background:var(--cyan-soft);color:var(--cyan)}
.priv-summary{display:flex;align-items:center;gap:11px;flex-wrap:wrap;padding:11px 14px;border-radius:11px;font-size:14px;margin-bottom:4px}
.priv-summary.read{background:var(--cyan-soft);border:1px solid rgba(56,189,248,.35);color:var(--text)}
.priv-summary.edit{background:var(--teal-soft);border:1px solid rgba(52,211,153,.35);color:var(--text)}
.priv-group-label{margin:18px 0 2px;font-size:11px;font-weight:800;letter-spacing:.7px;text-transform:uppercase;color:var(--cyan)}
.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid var(--border);flex-wrap:wrap}
.toggle-row:first-of-type{border-top:none}
.toggle-main{flex:1;min-width:230px}
.toggle-main b{display:block;font-size:14.5px;color:var(--text)}
.toggle-main span{font-size:12.5px;color:var(--muted);line-height:1.55;display:block}
.fld{display:flex;flex-direction:column;gap:8px;margin-bottom:16px;font-size:14px;color:var(--muted)}
.fld>span:first-child{font-weight:600;color:var(--text)}
.save-row{display:flex;justify-content:flex-end;gap:10px;margin-top:4px;flex-wrap:wrap}
.act-row{display:grid;grid-template-columns:160px 100px 1fr;gap:12px;align-items:baseline;padding:11px 14px;background:var(--card);border:1px solid var(--border);border-radius:10px;font-size:13.5px;margin-bottom:3px}
.act-when{color:var(--dim)}
.act-who{color:var(--cyan);font-weight:600}
.act-what{color:var(--text)}

/* hoverable jargon: native title tooltip on hover, with a subtle dotted cue */
.has-tip{cursor:help;border-bottom:1px dotted currentColor;text-decoration:none}

/* ---------- paid jobs ---------- */
.custom-range{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 16px;padding:12px 16px;background:var(--card);border:1px solid var(--border);border-radius:12px}
.custom-range label{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--text);font-weight:600}
.date-input{font-family:inherit;font-size:14px;padding:8px 11px;border-radius:9px;background:var(--panel);border:1px solid var(--border-2);color:var(--text);color-scheme:light}
.custom-err{color:var(--amber);font-size:13px}
.pj-waiting{display:flex;gap:16px;align-items:flex-start;padding:22px 24px;background:linear-gradient(180deg,rgba(52,211,153,.10),rgba(52,211,153,.03));border:1px solid var(--teal);border-radius:14px;margin:8px 0 6px}
.pj-waiting-ic{font-size:34px;line-height:1}
.pj-waiting-t{font-size:19px;font-weight:800;color:var(--text)}
.pj-waiting-sub{margin:6px 0 0;font-size:14px;line-height:1.6;color:var(--text)}
.pj-example-head{display:flex;align-items:center;gap:10px;margin:26px 0 4px;font-size:15px;font-weight:700;color:var(--muted)}
.pj-example-badge{font-size:10.5px;font-weight:800;letter-spacing:.6px;padding:2px 9px;border-radius:999px;background:var(--amber-soft);color:var(--amber)}
.pj-example-wrap{opacity:.72;position:relative}
.pj-example-table td,.pj-example-table th{font-style:italic}
.pj-month{margin:22px 0 0}
.pj-month-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 8px;padding:0 2px;flex-wrap:wrap}
.pj-month-head>span:first-child{font-size:16px;font-weight:700;color:var(--text)}
.pj-month-total{font-size:15px;font-weight:700;color:var(--teal)}
.pj-month-total small{color:var(--muted);font-weight:500}
.pj-job{color:var(--muted);font-size:12.5px}
.pj-tag{display:inline-block;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:1px 7px;border-radius:999px;background:var(--cyan-soft,rgba(56,189,248,.16));color:var(--cyan);vertical-align:middle}
.pj-untracked{color:var(--dim);font-style:italic;font-size:12.5px}

/* ---------- who used this site (staff usage) ---------- */
.staff-row{display:flex;align-items:flex-start;gap:13px;padding:16px 0;border-top:1px solid var(--border);flex-wrap:wrap}
.staff-row:first-of-type{border-top:none}
.staff-main{flex:1;min-width:220px}
.staff-main>b{display:block;font-size:15px;color:var(--text)}
.staff-main>span{display:block;font-size:13px;color:var(--muted);line-height:1.55;margin-top:2px}
.staff-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.staff-tabs .copy-chip{font-size:12px;padding:4px 9px}
.staff-changes{margin-top:11px;font-size:13px;color:var(--text)}
.staff-changes>b{display:block;margin-bottom:6px;font-size:13px}
.staff-changes.quiet{color:var(--muted)}
.staff-changes .act-row{grid-template-columns:170px 1fr;padding:8px 12px;font-size:13px}

.note-item{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;background:var(--card);border:1px solid var(--border);border-radius:11px;margin-bottom:8px}
.note-body{flex:1;white-space:pre-wrap;word-break:break-word;font-size:14px;color:var(--text)}
.note-when{font-size:11.5px;color:var(--dim);margin-top:5px}
.note-del{background:none;border:none;color:var(--dim);font-size:18px;cursor:pointer;padding:0 4px;line-height:1}
.note-del:hover{color:var(--red)}
textarea.modal-input{resize:vertical;min-height:90px;font-family:inherit;line-height:1.55}

/* temp password banner */
.pw-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:18px 0 0;padding:12px 16px;
  background:var(--amber-soft);border:1px solid rgba(251,191,36,.4);border-radius:12px;color:#8a5a08;font-size:14px}
.pwb-actions{display:flex;align-items:center;gap:8px}
.pwb-x{background:none;border:none;color:#8a5a08;font-size:20px;line-height:1;cursor:pointer;padding:0 4px}

/* modal + toast */
.modal{position:fixed;inset:0;background:rgba(4,9,18,.68);display:flex;align-items:center;justify-content:center;z-index:60;padding:20px}
.modal-card{background:var(--card);border:1px solid var(--border-2);border-radius:16px;padding:24px;max-width:460px;width:100%}
.modal-card h3{margin:0 0 8px;font-size:20px}
.modal-card p{color:var(--muted);margin:0 0 14px;font-size:14.5px;line-height:1.6}
.modal-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:18px}
.modal-err{color:var(--red);font-size:13.5px;margin-bottom:10px}
.temp-note{margin:0 0 12px;padding:10px 13px;background:var(--cyan-soft);border:1px solid rgba(56,189,248,.35);border-radius:10px;color:var(--text);font-size:13.5px}
.pw-reveal{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:19px;font-weight:800;color:var(--teal);
  background:var(--panel);border:1px solid var(--teal);border-radius:10px;padding:12px;text-align:center;margin:12px 0;user-select:all}
.toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);background:var(--card);border:1px solid var(--teal);color:var(--text);
  padding:13px 20px;border-radius:12px;font-size:14.5px;z-index:70;box-shadow:0 12px 40px rgba(0,0,0,.16);max-width:90vw;text-align:center}

/* footer */
.foot{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:40px;padding:20px 24px;background:var(--bg-2);border:1px solid var(--border);border-radius:16px}
.foot-item{display:flex;align-items:flex-start;gap:11px;font-size:13.5px;color:var(--muted);line-height:1.55}
.foot-item .fi-ic{color:var(--cyan);flex:none;font-size:16px}
.foot-item strong{color:var(--text);font-weight:600;display:block}

/* ---------- responsive ---------- */
@media(max-width:980px){
  .kpis{grid-template-columns:repeat(2,1fr)}
  .foot{grid-template-columns:1fr}
  .nav-toggle{display:inline-flex}
  .nav-links{
    display:flex;flex-direction:column;gap:0;margin:0;
    position:absolute;top:100%;left:0;right:0;
    background:rgba(255,255,255,.98);backdrop-filter:blur(12px);
    border-bottom:1px solid var(--border);
    padding:6px 20px 12px;
    transform:translateY(-10px);opacity:0;pointer-events:none;
    transition:opacity .16s ease,transform .16s ease;
  }
  .nav.nav-open .nav-links{opacity:1;transform:none;pointer-events:auto}
  .nav-links a{padding:15px 4px;font-size:16px;border-bottom:1px solid rgba(0,0,0,.06)}
  .nav-links a:last-child{border-bottom:none}
  .nav-links a.active{margin:0;padding:15px 4px;border-radius:0}
  .page-title{font-size:27px}
  .page-head{align-items:flex-start}
  .range-pick{align-items:flex-start}
}
@media(max-width:620px){
  .kpis{grid-template-columns:1fr}
  .chip-live,.chip-off{display:none}
  .act-row{grid-template-columns:1fr;gap:2px}
  .wrap{padding:0 16px 90px}
  .nav-inner{padding:12px 16px}
}

/* ============ Overview (President's view) ============ */
.ov-hero{
  display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  background:linear-gradient(135deg,var(--cyan-soft),var(--teal-soft));
  border:1px solid var(--border);border-radius:16px;padding:18px 22px;margin:0 0 16px;
}
.ov-hero-txt{font-size:16px;line-height:1.5;color:var(--text);max-width:660px}
.ov-hero-txt b{color:var(--text);font-weight:800}
.ov-hero-roas{display:flex;flex-direction:column;align-items:flex-end;line-height:1;flex:0 0 auto}
.ov-hero-roas .ovr-num{font-size:40px;font-weight:800;letter-spacing:-1px;color:var(--teal)}
.ov-hero-roas.k-red .ovr-num{color:var(--red)}
.ov-hero-roas .ovr-lbl{font-size:11.5px;font-weight:600;color:var(--muted);margin-top:6px;text-transform:uppercase;letter-spacing:.4px}

.funnel{display:flex;align-items:stretch;gap:6px;flex-wrap:wrap;margin-top:4px}
.fn-step{
  flex:1 1 0;min-width:118px;text-align:center;background:var(--card-2);
  border:1px solid var(--border);border-radius:12px;padding:14px 10px;
}
.fn-val{font-size:22px;font-weight:800;color:var(--text);letter-spacing:-.4px;line-height:1.1}
.fn-lbl{font-size:12.5px;font-weight:700;color:var(--text);margin-top:6px}
.fn-sub{font-size:11px;color:var(--muted);margin-top:2px}
.fn-arrow{display:flex;align-items:center;color:var(--muted);font-size:20px;font-weight:700;flex:0 0 auto}
@media (max-width:640px){
  .fn-arrow{transform:rotate(90deg);width:100%;justify-content:center;height:14px}
  .fn-step{flex:1 1 100%}
}

.ov-card-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:2px}
.ov-card-head h3{margin:0}
.ov-scope{font-size:12px;color:var(--muted);font-weight:600}
.ov-sec-label{font-size:12.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin:20px 2px 10px}
.na{color:var(--muted);font-weight:600}

/* ============ Ask Claude assistant (every page) ============ */
.ask-widget{position:fixed;right:18px;bottom:18px;z-index:120}
.ask-fab{display:inline-flex;align-items:center;gap:8px;background:var(--cyan);color:#fff;border:none;border-radius:999px;padding:11px 18px;font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 6px 20px rgba(0,0,0,.20)}
.ask-fab:hover{background:var(--cyan-600)}
.ask-fab-ic{font-size:16px;line-height:1}
.ask-panel{position:absolute;right:0;bottom:56px;width:min(380px,calc(100vw - 36px));max-height:min(70vh,560px);display:flex;flex-direction:column;background:var(--card);border:1px solid var(--border);border-radius:16px;box-shadow:0 16px 44px rgba(0,0,0,.24);overflow:hidden}
.ask-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border);font-size:14px;color:var(--text)}
.ask-x{background:none;border:none;font-size:22px;line-height:1;color:var(--muted);cursor:pointer;padding:0 2px}
.ask-body{flex:1;min-height:80px;overflow-y:auto;padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.ask-hint{font-size:12.5px;color:var(--muted);line-height:1.5;margin:0}
.ask-q{align-self:flex-end;background:var(--cyan-soft);color:var(--text);border-radius:12px 12px 4px 12px;padding:8px 11px;font-size:13px;max-width:85%}
.ask-a{align-self:flex-start;background:var(--card-2);border:1px solid var(--border);color:var(--text);border-radius:12px 12px 12px 4px;padding:9px 12px;font-size:13px;line-height:1.55;max-width:92%;white-space:pre-wrap}
.ask-wait{color:var(--muted);font-style:italic}
.ask-form{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--border);align-items:flex-end}
.ask-input{flex:1;resize:none;border:1px solid var(--border);border-radius:10px;padding:8px 10px;font:inherit;font-size:13px;background:var(--card-2);color:var(--text)}
.ask-input:focus{outline:2px solid var(--cyan-soft);border-color:var(--cyan)}
@media (max-width:640px){ .ask-fab-label{display:none} .ask-widget{right:14px;bottom:14px} }

/* Review fixes: opportunity formula line, "potential value" label, and a simpler default nav (primary sections only until "More") */
.opp-how{display:block;font-size:12px;color:var(--muted);margin-top:3px}
.opp-val small{display:block;font-size:10px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-top:2px}
.nav-more-toggle{color:var(--muted);font-size:14px;font-weight:600;background:none;border:0;cursor:pointer;padding:6px 2px;white-space:nowrap}
.nav-more-toggle:hover{color:var(--text)}
@media(min-width:981px){
  .nav-links a:not([data-pri]):not(.active){display:none}
  body.nav-all .nav-links a:not([data-pri]){display:inline}
}
@media(max-width:980px){ .nav-more-toggle{display:none} .ask-fab-label{display:none} .ask-fab{padding:13px;border-radius:50%} .ask-fab-ic{font-size:18px} }

/* "What does this mean?" explainer buttons are pink so they stand out as the
   place to click for a plain-English read. Placed after .btn-ghost so it wins. */
.xpl-btn{background:#fdeaf4;border:1px solid #f2a9d0;color:#b3186d;font-weight:600}
.xpl-btn:hover{background:#fbd9ea;border-color:#e86fb4;color:#8f1257}

/* click-a-heading to sort any long list */
table.tbl th[data-sort-col]{user-select:none}
table.tbl th[data-sort-col]:hover{color:var(--cyan)}
.sort-caret{margin-left:5px;font-size:10px;opacity:.4}
.sort-caret.on{opacity:1;color:var(--cyan)}

/* Call Coaching tree: day -> calls, tiered indented drop-downs */
details.cday{border:1px solid var(--border);border-radius:10px;background:var(--card);margin:8px 0}
details.cday>summary.cday-sum{cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px;padding:12px 14px;font-size:14px}
details.cday>summary.cday-sum::-webkit-details-marker{display:none}
details.cday[open]>summary.cday-sum{border-bottom:1px solid var(--border);background:var(--card-2);border-radius:10px 10px 0 0}
summary.cday-sum::before,summary.ccall-sum::before{content:'\25B8';flex:none;opacity:.55;transition:transform .15s}
details[open]>summary.cday-sum::before,details[open]>summary.ccall-sum::before{transform:rotate(90deg)}
.cday-left{display:flex;flex-direction:column;gap:2px;min-width:0}
.cday-title{font-weight:700}
.cday-head{font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60vw}
.cday-meta{flex:none;white-space:nowrap;margin-left:auto}
.cday-body{padding:8px 10px 10px 24px}      /* left indent is the tier */
.cday-summary{margin:6px 0 10px;padding:10px 14px;border-left:3px solid var(--cyan);background:rgba(128,128,128,.06);border-radius:6px}
details.ccall{border:1px solid var(--border);border-radius:8px;margin:8px 0;background:var(--card)}
details.ccall.notreal{opacity:.7}
details.ccall>summary.ccall-sum{cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px}
details.ccall>summary.ccall-sum::-webkit-details-marker{display:none}
details.ccall>summary.ccall-sum .k-sub{margin-left:auto}
.ccall-body{padding:0 12px 12px 12px}

/* clickable expense category (opens its transaction drill-down) */
.lnk-cat{cursor:pointer;color:var(--cyan);border-bottom:1px dotted var(--cyan);font-weight:600}
.lnk-cat:hover{color:var(--cyan-600);border-bottom-style:solid}

/* ============================================================
   DEMO-ONLY styling (not in the real product).
   The category picker, the "this is a sample" ribbon, and the
   switch-business-type control that only exist in the sandbox.
   ============================================================ */

/* thin ribbon across the very top of the sandbox */
.demo-ribbon{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:center;gap:14px;
  flex-wrap:wrap;padding:9px 18px;font-size:13px;font-weight:600;text-align:center;
  background:linear-gradient(90deg,var(--cyan),var(--teal));color:#fff}
.demo-ribbon b{font-weight:800}
.demo-ribbon .dr-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.demo-ribbon a,.demo-ribbon button{font-family:inherit;font-size:14.5px;font-weight:800;cursor:pointer;
  border-radius:11px;padding:10px 18px;border:none;background:#fff;color:var(--cyan-600);
  box-shadow:0 3px 10px rgba(0,0,0,.20);transition:transform .08s ease,box-shadow .12s ease}
.demo-ribbon a:hover,.demo-ribbon button:hover{background:#fff;transform:translateY(-1px);box-shadow:0 6px 16px rgba(0,0,0,.28)}
/* The two actions we most want people to try, in a bold gold that pops off the bar. */
.demo-ribbon #btnWalk,.demo-ribbon #btnTour{background:#ffc233;color:#3a2600;font-size:15.5px;
  padding:11px 21px;box-shadow:0 4px 14px rgba(0,0,0,.30)}
.demo-ribbon #btnWalk:hover,.demo-ribbon #btnTour:hover{background:#ffcf52}
.demo-ribbon .dr-note{opacity:.95;font-size:13px}
@media(max-width:640px){ .demo-ribbon .dr-note{display:none} .demo-ribbon{padding:7px 12px;gap:8px} .demo-ribbon #btnQR,.demo-ribbon .dr-actions>a{display:none} .demo-ribbon a,.demo-ribbon button{font-size:13px;padding:8px 13px} }
/* During the voice walkthrough, hide the top ribbon so the top of the screen is visible; a small Back to site link lives in the bottom control bar instead. */
body.walk-on .demo-ribbon{display:none}
.walk-site{color:#c3d0de;font-size:12.5px;font-weight:700;text-decoration:none;white-space:nowrap;padding:5px 9px;border-radius:8px}
.walk-site:hover{color:#fff;background:rgba(255,255,255,.14)}

/* full-screen category picker */
.picker{position:fixed;inset:0;z-index:120;overflow-y:auto;
  background:radial-gradient(1000px 560px at 82% -10%, rgba(56,189,248,.18), transparent 60%),
    radial-gradient(820px 480px at 4% 2%, rgba(14,159,110,.13), transparent 55%),
    linear-gradient(180deg,#eef2f6,#e7edf3)}
.picker-inner{max-width:1080px;margin:0 auto;padding:48px 24px 64px}
.picker-head{text-align:center;max-width:640px;margin:0 auto 34px}
.picker-brand{display:inline-flex;align-items:center;gap:10px;font-weight:800;font-size:18px;margin-bottom:22px}
.picker-brand .brand-mark{width:40px;height:40px;border-radius:12px;
  background:linear-gradient(135deg,var(--cyan),var(--teal));color:#fff}
.picker-head h1{font-size:32px;font-weight:800;letter-spacing:-.02em;margin:0 0 12px;color:var(--text)}
.picker-head p{font-size:16px;color:var(--muted);margin:0}
.picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px}
.pick-tile{display:flex;flex-direction:column;align-items:flex-start;gap:8px;text-align:left;cursor:pointer;
  background:var(--card);border:1px solid var(--border);border-radius:16px;padding:22px 20px;font-family:inherit;
  transition:.16s;box-shadow:0 1px 3px rgba(15,23,34,.05)}
.pick-tile:hover{border-color:var(--cyan);transform:translateY(-3px);box-shadow:0 16px 34px rgba(15,23,34,.12)}
.pick-ic{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;font-size:26px;line-height:1;
  background:var(--cyan-soft);margin-bottom:4px}
.pick-name{font-size:16.5px;font-weight:800;color:var(--text);letter-spacing:-.01em}
.pick-co{font-size:13px;color:var(--cyan-600);font-weight:600}
.pick-desc{font-size:13px;color:var(--muted);line-height:1.5}
.picker-foot{text-align:center;margin-top:30px;font-size:13.5px;color:var(--muted)}
.picker-foot a{color:var(--cyan-600);font-weight:600;border-bottom:1px solid transparent}
.picker-foot a:hover{border-bottom-color:var(--cyan-600)}

/* small business-type switch menu in the nav */
.bizswitch{position:relative}
.bizswitch-btn{display:inline-flex;align-items:center;gap:8px;font-family:inherit;font-size:12.5px;font-weight:700;
  padding:7px 12px;border-radius:999px;border:1px solid var(--border-2);background:var(--card);color:var(--text);cursor:pointer}
.bizswitch-btn:hover{border-color:var(--cyan);color:var(--cyan-600)}
.bizswitch-menu{position:absolute;right:0;top:44px;width:250px;max-height:60vh;overflow-y:auto;background:var(--card);
  border:1px solid var(--border-2);border-radius:14px;padding:7px;z-index:60;box-shadow:0 16px 40px rgba(0,0,0,.18)}
.bizswitch-menu button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;font-family:inherit;font-size:13.5px;
  color:var(--text);background:transparent;border:none;padding:9px 11px;border-radius:9px;cursor:pointer}
.bizswitch-menu button:hover{background:var(--panel);color:var(--cyan-600)}
.bizswitch-menu button.on{background:var(--cyan-soft);color:var(--cyan-600);font-weight:700}
.bizswitch-menu .bm-ic{font-size:17px;line-height:1}

/* the little "sample" tag used inside views */
.demo-tag{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:800;letter-spacing:.4px;
  text-transform:uppercase;color:var(--cyan-600);background:var(--cyan-soft);padding:3px 9px;border-radius:999px}

/* GBP (Business Profile) mini stat row reuses funnel look */
.gbp-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:6px}

/* ============================================================
   SCOREBOARD (the plain-English, 6th-grade-simple home view)
   ============================================================ */
.sb-intro{font-size:16px;color:var(--muted);margin:2px 0 14px;max-width:70ch;line-height:1.6}
.sb-intro b{color:var(--text)}
.sb-legend{display:flex;gap:18px;flex-wrap:wrap;margin:0 0 18px;font-size:13px;color:var(--muted)}
.sb-legend span{display:inline-flex;align-items:center;gap:7px}
.sb-legend i{width:12px;height:12px;border-radius:50%;display:inline-block}
.sb-legend i.g{background:var(--teal)} .sb-legend i.y{background:var(--amber)} .sb-legend i.r{background:var(--red)}
.sb-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.sb-card{background:var(--card);border:1px solid var(--border);border-left:7px solid var(--dim);
  border-radius:16px;padding:20px 22px}
.sb-card.good{border-left-color:var(--teal)}
.sb-card.warn{border-left-color:var(--amber)}
.sb-card.bad{border-left-color:var(--red)}
.sb-card.wide{grid-column:1 / -1}
.sb-q{font-size:15px;font-weight:700;color:var(--muted)}
.sb-a{font-size:30px;font-weight:800;color:var(--text);letter-spacing:-.5px;margin:7px 0 6px;line-height:1.12}
.sb-a.good{color:var(--teal)} .sb-a.warn{color:var(--amber)} .sb-a.bad{color:var(--red)}
.sb-say{font-size:15px;color:var(--text);line-height:1.55}
.sb-more{display:inline-block;margin-top:12px;font-size:13.5px;font-weight:700;color:var(--cyan-600);cursor:pointer}
.sb-more:hover{text-decoration:underline}
.sb-money{display:flex;gap:28px;flex-wrap:wrap;margin:8px 0 2px}
.sb-money b{display:block;font-size:26px;font-weight:800;letter-spacing:-.5px}
.sb-money b.teal{color:var(--teal)} .sb-money b.red{color:var(--red)}
.sb-money span{font-size:12.5px;color:var(--muted);font-weight:600}
@media(max-width:720px){ .sb-grid{grid-template-columns:1fr} .sb-a{font-size:26px} }

/* plain-English "what this page tells you" helper at the top of each view */
.plain{display:flex;gap:11px;align-items:flex-start;background:var(--cyan-soft);
  border:1px solid rgba(2,132,199,.22);border-radius:12px;padding:13px 16px;margin:0 0 16px;
  font-size:14.5px;line-height:1.55;color:var(--text)}
.plain-ic{font-size:17px;line-height:1.35;flex:none}
.plain b{font-weight:700}

/* animated Ask example: pulsing mic while the question types itself */
.ask-mic{display:inline-block;animation:micpulse 1s infinite}
@keyframes micpulse{0%,100%{opacity:1}50%{opacity:.25}}

/* ============================================================ Reviews tab */
.stars{white-space:nowrap;letter-spacing:1px}
.star{color:var(--border-2)}
.star.on{color:#f5a623}
.rv-summary{display:flex;gap:22px;flex-wrap:wrap;align-items:center;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:20px 22px;margin-bottom:16px}
.rv-overall{text-align:center;min-width:150px}
.rv-big{font-size:44px;font-weight:800;line-height:1;color:var(--text);letter-spacing:-1px}
.rv-overall .stars{font-size:18px;display:inline-block;margin:6px 0 4px}
.rv-count{font-size:12.5px;color:var(--muted)}
.rv-sites{display:flex;gap:14px;flex-wrap:wrap;flex:1}
.rv-site{background:var(--card-2);border:1px solid var(--border);border-radius:12px;padding:12px 16px;min-width:148px}
.rv-site-name{font-size:13.5px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:7px}
.rv-dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex:none}
.rv-site-score{font-size:16px;font-weight:800;color:var(--text);margin-top:4px}
.rv-site-score .stars{font-size:12px}
.rv-site-count{font-size:12px;color:var(--muted);margin-top:2px}
.rv-item{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:15px 18px;margin-bottom:10px}
.rv-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.rv-top .stars{font-size:15px}
.rv-badge{font-size:10.5px;font-weight:800;color:#fff;padding:2px 8px;border-radius:6px;text-transform:uppercase;letter-spacing:.3px}
.rv-name{font-weight:700;font-size:14px;color:var(--text)}
.rv-when{margin-left:auto;font-size:12px;color:var(--dim)}
.rv-text{font-size:14.5px;color:var(--text);line-height:1.55}
.rv-reply{margin-top:10px;padding:10px 13px;background:var(--cyan-soft);border-left:3px solid var(--cyan);border-radius:8px;font-size:13.5px;color:var(--text);line-height:1.5}
.rv-reply b{display:block;font-size:12px;color:var(--cyan-600);margin-bottom:2px}
.rv-noreply{margin-top:9px;font-size:12px;font-weight:700;color:var(--amber);background:var(--amber-soft);display:inline-block;padding:3px 10px;border-radius:999px}

/* two-level picker: folder tiles + grouped switch menu */
.pick-more{margin-top:8px;font-size:12.5px;font-weight:800;color:var(--cyan-600);letter-spacing:.02em}
.pick-tile[data-main]{background:linear-gradient(180deg,var(--card),var(--card-2));border-style:solid}
.pick-back{font-family:inherit;font-size:14px;font-weight:700;color:var(--cyan-600);background:transparent;border:none;cursor:pointer;padding:6px 2px;margin-bottom:2px}
.pick-back:hover{text-decoration:underline}
.bm-group{font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--dim);padding:9px 11px 4px}

/* platform drill-down: clickable table rows */
tr.tbl-rowlink{cursor:pointer}
tr.tbl-rowlink:hover td{background:rgba(2,132,199,.07)}
.tbl-drill{color:var(--cyan-600);font-weight:700;font-size:12.5px;white-space:nowrap}
tr.tbl-rowlink:hover .tbl-drill{text-decoration:underline}

/* ============================================================ guided tour */
.tour-bar{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);width:min(720px,calc(100vw - 28px));z-index:150;
  background:var(--card);border:1px solid var(--border-2);border-radius:16px;box-shadow:0 18px 50px rgba(0,0,0,.30);padding:14px 18px 11px}
.tour-top{display:flex;align-items:center;gap:10px;margin-bottom:7px}
.tour-badge{font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#fff;
  background:linear-gradient(135deg,var(--cyan),var(--teal));padding:3px 10px;border-radius:999px}
.tour-count{font-size:12.5px;color:var(--muted);font-weight:600}
.tour-count b{color:var(--text)}
.tour-x{margin-left:auto;background:none;border:none;font-size:22px;line-height:1;color:var(--muted);cursor:pointer;padding:0 4px}
.tour-x:hover{color:var(--text)}
.tour-narr{font-size:15.5px;line-height:1.5;color:var(--text);min-height:46px}
.tour-ctrls{display:flex;gap:8px;margin-top:10px}
.tour-btn{font-family:inherit;font-size:13.5px;font-weight:700;padding:8px 14px;border-radius:10px;border:1px solid var(--border-2);background:var(--card);color:var(--text);cursor:pointer}
.tour-btn:hover{border-color:var(--cyan);color:var(--cyan-600)}
.tour-btn.tour-play{background:var(--cyan);color:#fff;border-color:var(--cyan)}
.tour-btn.tour-play:hover{background:var(--cyan-600);color:#fff}
.tour-progress{height:4px;background:var(--panel);border-radius:999px;margin-top:11px;overflow:hidden}
.tour-fill{height:100%;width:0;background:linear-gradient(90deg,var(--cyan),var(--teal));border-radius:999px}
body.tour-on .ask-widget{bottom:158px}
@media(max-width:640px){ .tour-narr{font-size:14.5px} .tour-btn{flex:1;text-align:center} }
/* Guided tour docked as a left column on wider screens (tablet and up), so the
   caption panel sits beside the screen it describes instead of covering it. The
   shown screen is narrowed into the space on the right and scrolls normally. */
@media(min-width:760px){
  body.tour-on .tour-bar{
    left:0; right:auto; top:0; bottom:0; transform:none;
    width:max(220px, min(320px, 26vw)); max-height:100vh;
    border-radius:0 18px 18px 0; border-left:none;
    display:flex; flex-direction:column; justify-content:center; gap:6px;
    overflow-y:auto; padding:22px 20px; box-shadow:6px 0 34px rgba(0,0,0,.22);
  }
  body.tour-on .tour-narr{font-size:16.5px; min-height:0}
  body.tour-on .tour-ctrls{flex-wrap:wrap}
  body.tour-on .tour-btn{flex:1 1 auto; text-align:center}
  /* Shift the WHOLE page (ribbon, nav, and content) right of the panel, not just
     the main region, so the fixed left panel never covers the nav or ribbon. */
  body.tour-on{ padding-left:max(220px, min(320px, 26vw)); }
  body.tour-on .ask-widget{bottom:20px}
}

/* ---------------- Jobs Map ---------------- */
.jm-ranges{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.jm-range{font-family:inherit;font-size:13px;font-weight:600;padding:7px 13px;border-radius:9px;border:1px solid var(--border-2);background:var(--card);color:var(--muted);cursor:pointer}
.jm-range:hover{border-color:var(--cyan);color:var(--cyan-600)}
.jm-range.on{background:var(--cyan);color:#fff;border-color:var(--cyan)}
.jm-wrap{width:100%;max-width:540px;margin:2px auto 0}
.jm-svg{width:100%;aspect-ratio:1/1;display:block;border:1px solid var(--border-2);border-radius:14px;background:var(--card-2)}
.jm-bg{fill:#eef3ef}
.jm-grid{stroke:#dfe4e0;stroke-width:.35}
.jm-pin{opacity:.9;stroke:#fff;stroke-width:.4}
.jm-pin.jm-new{fill:var(--teal)}
.jm-pin.jm-mid{fill:var(--cyan)}
.jm-pin.jm-old{fill:#9aa3ad}
.jm-hub{fill:var(--red)}
.jm-hubring{fill:rgba(201,42,42,.14);stroke:var(--red);stroke-width:.5}
.jm-legend{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;margin-top:12px;font-size:12.5px;color:var(--muted)}
.jm-legend span{display:inline-flex;align-items:center;gap:6px}
.jm-l{width:11px;height:11px;border-radius:50%;display:inline-block}
.jm-l.jm-new{background:var(--teal)}
.jm-l.jm-mid{background:var(--cyan)}
.jm-l.jm-old{background:#9aa3ad}
.jm-l.jm-hub{background:var(--red)}
.jm-row{display:flex;align-items:center;gap:10px;padding:9px 2px;border-bottom:1px solid var(--border)}
.jm-row:last-child{border-bottom:none}
.jm-row b{font-size:14px;font-weight:600;flex:1;min-width:0}
.jm-row .k-sub{white-space:nowrap}
.jm-amt{font-weight:700;color:var(--teal);white-space:nowrap;min-width:70px;text-align:right}

/* ---------------- Map-rank grid + competitors ---------------- */
.rg-wrap{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.rg-svg{width:230px;max-width:60vw;height:auto;flex:0 0 auto}
.rg-cell{stroke:#fff;stroke-width:.6}
.rg-cell.rg-g{fill:var(--teal)}
.rg-cell.rg-y{fill:var(--amber)}
.rg-cell.rg-r{fill:#d1494c}
.rg-txt{fill:#fff;font-size:5px;font-weight:700}
.rg-side{flex:1;min-width:190px;display:flex;flex-direction:column;gap:12px}
.rg-stat{display:flex;flex-direction:column}
.rg-stat b{font-size:26px;font-weight:800;color:var(--text);line-height:1}
.rg-stat span{font-size:13px;color:var(--muted);margin-top:3px}
.rg-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}
.rg-legend span{display:inline-flex;align-items:center;gap:6px}
.rg-legend i{width:12px;height:12px;border-radius:3px;display:inline-block}
.rg-legend .rg-g{background:var(--teal)}
.rg-legend .rg-y{background:var(--amber)}
.rg-legend .rg-r{background:#d1494c}
tr.rg-you td{background:var(--cyan-soft)}
.st-top{display:inline-block;font-size:10.5px;font-weight:800;color:var(--teal);background:var(--teal-soft);padding:1px 7px;border-radius:999px;margin-left:6px;text-transform:uppercase;letter-spacing:.04em}

/* ---------------- AI alerts (Admin) ---------------- */
.al-row{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--border)}
.al-row:last-child{border-bottom:none}
.al-ic{flex:0 0 auto;width:26px;height:26px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700}
.al-row.good .al-ic{background:var(--teal-soft);color:var(--teal)}
.al-row.warn .al-ic{background:var(--amber-soft);color:var(--amber)}
.al-main{display:flex;flex-direction:column;gap:3px}
.al-main b{font-size:14.5px;font-weight:600;color:var(--text)}
.al-act{font-size:13px;color:var(--muted)}
@media(max-width:640px){ .rg-svg{width:190px} .jm-row b{font-size:13.5px} }

/* Jobs Map town labels (Fort Collins area) */
.jm-townring{fill:#ffffff;stroke:#8a929c;stroke-width:.5}
.jm-town{fill:#4a515b;font-size:3.1px;font-weight:700;paint-order:stroke;stroke:#eef3ef;stroke-width:1.2;stroke-linejoin:round}
.jm-town-hub{fill:var(--red);font-size:3.5px}

/* Jobs Map: mode toggle, heat map, metric selector, city list, service filter */
.jm-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.jm-svc-wrap{margin-left:auto;font-size:13px;color:var(--muted);display:inline-flex;align-items:center;gap:6px}
.jm-svc{font-family:inherit;font-size:13px;padding:6px 8px;border-radius:8px;border:1px solid var(--border-2);background:var(--card);color:var(--text)}
.jm-modes{display:inline-flex;margin-bottom:12px;border:1px solid var(--border-2);border-radius:10px;overflow:hidden}
.jm-mode{font-family:inherit;font-size:13px;font-weight:600;padding:8px 15px;border:none;background:var(--card);color:var(--muted);cursor:pointer}
.jm-mode+.jm-mode{border-left:1px solid var(--border-2)}
.jm-mode.on{background:var(--cyan);color:#fff}
.jm-metrics{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.jm-metrics-lbl{font-size:13px;color:var(--muted);font-weight:600;margin-right:2px}
.jm-metric{font-family:inherit;font-size:12.5px;font-weight:600;padding:6px 11px;border-radius:8px;border:1px solid var(--border-2);background:var(--card);color:var(--muted);cursor:pointer}
.jm-metric:hover{border-color:var(--teal);color:var(--teal)}
.jm-metric.on{background:var(--teal);color:#fff;border-color:var(--teal)}
.jm-heat{fill:var(--teal)}
.jm-heatleg{align-items:center}
.jm-heatbar{display:inline-block;width:90px;height:10px;border-radius:5px;vertical-align:middle;margin:0 6px;background:linear-gradient(90deg,rgba(14,159,110,.18),rgba(14,159,110,.95))}
.jm-home{display:inline-block;font-size:10px;font-weight:800;color:var(--cyan-600);background:var(--cyan-soft);padding:1px 6px;border-radius:999px;margin-left:5px;text-transform:uppercase;letter-spacing:.03em}
tr.st-tot td{background:var(--panel);font-weight:700;border-top:2px solid var(--border-2)}

.jm-sizehint{font-style:italic;color:var(--dim)}

/* What Ifs (live profit calculator) */
.wi-result{display:flex;align-items:center;gap:18px;flex-wrap:wrap;background:linear-gradient(180deg,var(--card),var(--card-2));border:1px solid var(--border-2);border-radius:16px;padding:20px 24px;margin-bottom:16px}
.wi-col{display:flex;flex-direction:column;gap:2px;min-width:150px}
.wi-lbl{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.wi-big{font-size:30px;font-weight:800;color:var(--text);line-height:1.1}
.wi-big.up{color:var(--teal)}
.wi-big.down{color:var(--red)}
.wi-yr{font-size:12.5px;color:var(--dim)}
.wi-arrow{font-size:24px;color:var(--dim)}
.wi-col-d{margin-left:auto;text-align:right}
.wi-delta{font-size:22px;font-weight:800}
.wi-delta.up{color:var(--teal)}
.wi-delta.down{color:var(--red)}
.wi-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px}
.wi-cards .card h3{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.wi-row{font-size:14.5px;color:var(--text);line-height:2.2}
.wi-inp{font-family:inherit;font-size:14px;border:1px solid var(--border-2);border-radius:8px;padding:5px 8px;background:var(--card);color:var(--text)}
.wi-money{width:90px}
.wi-sm{width:58px}
.wi-txt{width:150px}
.wi-sel{max-width:220px}
.wi-cur{color:var(--dim);margin-right:-3px}
.wi-eff{margin-top:12px;font-size:13.5px;font-weight:600;min-height:18px}
.wi-eff.up{color:var(--teal)}
.wi-eff.down{color:var(--red)}
.wi-toggle{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--muted);text-transform:none;letter-spacing:0}
.wi-toggle input{width:16px;height:16px;accent-color:var(--cyan)}
@media(max-width:640px){ .wi-col-d{margin-left:0} .wi-arrow{display:none} }

/* Plain-English glossary box */
.defbox{margin-top:16px;border:1px solid var(--border-2);border-radius:12px;background:var(--card-2);overflow:hidden}
.defbox summary{cursor:pointer;padding:12px 16px;font-size:13.5px;font-weight:700;color:var(--muted);list-style:none;display:flex;align-items:center;gap:8px}
.defbox summary::-webkit-details-marker{display:none}
.def-ic{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--cyan);color:#fff;font-size:12px;font-weight:800;flex:0 0 auto}
.defbox[open] summary{border-bottom:1px solid var(--border)}
.def-list{padding:8px 16px 14px;display:grid;gap:10px}
.def-item{display:flex;flex-direction:column;gap:1px}
.def-item b{font-size:13.5px;color:var(--text)}
.def-item span{font-size:13px;color:var(--muted);line-height:1.5}
/* Job price labels inside map dots */
.jm-plabel{fill:#fff;font-weight:800;paint-order:stroke;stroke:rgba(17,19,24,.55);stroke-width:.9;stroke-linejoin:round}

/* Animated arrow walkthrough (self-paced, with voice) */
.walk{position:fixed;inset:0;z-index:200}
.walk.hidden{display:none}
.walk-catch{position:absolute;inset:0;background:rgba(10,12,16,.04);cursor:default}
.walk-ring{position:fixed;left:0;top:0;width:0;height:0;border:3px solid #16c76a;border-radius:12px;background:rgba(22,199,106,.10);box-shadow:0 0 0 3px rgba(22,199,106,.28),0 0 30px rgba(22,199,106,.55);transition:left .55s cubic-bezier(.4,0,.2,1),top .55s cubic-bezier(.4,0,.2,1),width .55s,height .55s;pointer-events:none}
.walk-ring.on-next{border-color:#22e07a;box-shadow:0 0 0 4px rgba(34,224,122,.34),0 0 36px rgba(34,224,122,.65)}
.walk-pointer{display:none;position:fixed;left:0;top:0;fill:var(--cyan);stroke:#fff;stroke-width:1.5;filter:drop-shadow(0 3px 6px rgba(0,0,0,.4));transition:left .55s cubic-bezier(.4,0,.2,1),top .55s cubic-bezier(.4,0,.2,1);pointer-events:none}
/* Walkthrough controls as a left sidebar; the page is pushed right by its width so it covers no content. */
.walk-bar{position:fixed;left:0;top:0;bottom:0;width:212px;display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:11px;background:rgba(17,19,24,.97);color:#fff;padding:22px 16px;box-shadow:2px 0 30px rgba(0,0,0,.4);pointer-events:auto;z-index:210;overflow-y:auto}
body.walk-on{padding-left:212px}
.walk-bar .walk-site{align-self:flex-start;margin-bottom:4px}
.walk-badge{font-size:14px;font-weight:800;color:#7fd1ff;white-space:nowrap}
.walk-count{font-size:13px;color:#c8ccd2;white-space:nowrap}
.walk-count b{color:#fff}
.walk-caption{font-size:12.5px;color:#e6e8ec;line-height:1.4;margin-bottom:4px}
.walk-actions{display:flex;flex-direction:column;align-items:stretch;gap:8px}
.walk-replay,.walk-x{font-family:inherit;font-size:13.5px;font-weight:700;height:40px;padding:0 12px;border-radius:10px;border:1px solid rgba(255,255,255,.28);background:transparent;color:#fff;cursor:pointer;line-height:1;white-space:nowrap;width:100%}
.walk-x{border-color:rgba(255,150,150,.55);color:#ffb4b4}
.walk-replay:hover,.walk-x:hover{background:rgba(255,255,255,.12)}
.walk-next{font-family:inherit;font-size:15px;font-weight:800;padding:12px 16px;border-radius:10px;border:none;background:var(--cyan);color:#fff;cursor:pointer;white-space:nowrap;width:100%;order:-1}
.walk-next:hover{background:var(--cyan-600)}
.walk-next.pulse{animation:walkPulse 1.15s ease-in-out infinite}
@keyframes walkPulse{0%,100%{box-shadow:0 0 0 0 rgba(56,189,248,.65)}50%{box-shadow:0 0 0 13px rgba(56,189,248,0)}}
#btnWalk{background:var(--cyan);color:#fff;border-color:var(--cyan);font-weight:700}
#btnWalk:hover{background:var(--cyan-600);color:#fff}
@media(max-width:820px){ .walk-bar{width:174px;padding:16px 12px;gap:9px} body.walk-on{padding-left:174px} .walk-caption{display:none} }

/* End-of-walkthrough call to action */
.wcta{position:fixed;inset:0;z-index:230;display:flex;align-items:center;justify-content:center;padding:24px;
  background:radial-gradient(1200px 700px at 50% -10%,rgba(2,132,199,.35),transparent 60%),rgba(6,12,20,.72);backdrop-filter:blur(4px)}
.wcta-card{max-width:560px;width:100%;background:var(--card);border:1px solid var(--border-2);border-radius:20px;
  box-shadow:0 30px 80px rgba(0,0,0,.5);padding:34px 34px 28px;text-align:center}
.wcta-badge{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#fff;
  background:linear-gradient(135deg,var(--cyan),var(--teal));padding:5px 12px;border-radius:999px}
.wcta-title{font-size:28px;font-weight:800;line-height:1.15;margin:16px 0 10px}
.wcta-sub{font-size:15.5px;line-height:1.6;color:var(--muted);margin:0 0 14px}
.wcta-tag{font-size:15px;font-weight:700;color:var(--cyan-600);margin:0 0 22px}
.wcta-actions{display:flex;flex-direction:column;gap:10px}
.wcta-btn{font-family:inherit;font-size:15px;font-weight:800;padding:13px 18px;border-radius:12px;cursor:pointer;
  border:1px solid var(--border-2);background:var(--card);color:var(--text);text-decoration:none;display:block}
.wcta-btn:hover{border-color:var(--cyan);color:var(--cyan-600)}
.wcta-primary{background:linear-gradient(135deg,var(--cyan),var(--teal));color:#fff;border:none;box-shadow:0 8px 24px rgba(2,132,199,.4);font-size:16.5px}
.wcta-primary:hover{color:#fff;filter:brightness(1.05)}
@media(max-width:640px){ .wcta-title{font-size:23px} .wcta-card{padding:26px 22px 22px} }

/* Fit wide tables on tablets/phones: tighter cells, allow shrink, still scroll if needed */
@media(max-width:860px){
  table.tbl{font-size:12.5px;min-width:0}
  table.tbl th{padding:9px 8px;font-size:10px;letter-spacing:.3px}
  table.tbl td{padding:9px 8px}
  .kpis{gap:8px}
}

/* Opportunities (money on the table) */
.opp-hero{background:linear-gradient(135deg,var(--teal-soft),var(--cyan-soft));border:1px solid var(--border-2);border-radius:16px;padding:22px 24px;margin-bottom:18px}
.opp-hero-lbl{font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--teal)}
.opp-hero-val{font-size:38px;font-weight:800;color:var(--text);line-height:1.05;margin:4px 0}
.opp-hero-sub{font-size:14px;color:var(--muted);max-width:640px}
.opp-item{display:flex;align-items:flex-start;gap:14px;background:var(--card);border:1px solid var(--border);border-radius:13px;padding:15px 16px;margin-bottom:10px}
.opp-ic{font-size:22px;flex:0 0 auto;line-height:1.2}
.opp-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.opp-main b{font-size:15px;color:var(--text)}
.opp-main>span{font-size:13.5px;color:var(--muted);line-height:1.5}
.opp-act{font-size:13px;color:var(--cyan-600);font-weight:600}
.opp-val{flex:0 0 auto;font-size:18px;font-weight:800;color:var(--teal);white-space:nowrap}
.opp-val-soft{font-size:12.5px;color:var(--dim);font-weight:600}
.alert-samples{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.alert-samp{border:1px solid var(--border);border-radius:12px;padding:12px 14px;background:var(--card-2)}
.alert-ch{display:block;font-size:12.5px;font-weight:700;color:var(--cyan-600);margin-bottom:6px}
.alert-samp div{font-size:13.5px;color:var(--text);line-height:1.5}

/* Lifetime value */
.ltv-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:12px}
.ltv-stat{display:flex;flex-direction:column}
.ltv-stat b{font-size:24px;font-weight:800;color:var(--text);line-height:1}
.ltv-stat.ltv-big b{font-size:30px;color:var(--teal)}
.ltv-stat span{font-size:12.5px;color:var(--muted);margin-top:3px}
.ltv-x{font-size:22px;color:var(--dim)}
.ltv-note{font-size:13.5px;color:var(--muted);line-height:1.6}

/* Map-rank trend */
.rt-head{font-size:14px;font-weight:600;color:var(--text);margin-bottom:12px}
.rt-chart{display:flex;align-items:flex-end;gap:10px;height:130px;padding-top:6px}
.rt-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}
.rt-bar{width:70%;max-width:46px;background:linear-gradient(180deg,var(--cyan),#38bdf8);border-radius:5px 5px 0 0;min-height:8px}
.rt-col.rt-now .rt-bar{background:linear-gradient(180deg,var(--teal),#34d399)}
.rt-rank{font-size:12px;font-weight:800;color:var(--text);margin-top:5px}
.rt-m{font-size:11px;color:var(--dim)}

/* Missed calls */
.mc-head{font-size:14px;color:var(--text);margin-bottom:10px;line-height:1.5}
.mc-row{display:flex;align-items:center;gap:10px;padding:9px 2px;border-bottom:1px solid var(--border)}
.mc-row:last-child{border-bottom:none}
.mc-row b{font-size:14px;flex:1;min-width:0}
.mc-ic{font-size:15px}
.mc-rang{font-size:12.5px;color:var(--red);white-space:nowrap}

/* Reports: weekly digest + monthly printable */
.digest{border:1px solid var(--border-2);border-radius:13px;overflow:hidden;max-width:460px}
.digest-head{background:var(--cyan);color:#fff;padding:12px 16px}
.digest-head b{display:block;font-size:15px}
.digest-head span{font-size:12px;opacity:.85}
.digest-rows{padding:6px 16px}
.dg-row{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid var(--border);font-size:14px;color:var(--muted)}
.dg-row:last-child{border-bottom:none}
.dg-row b{color:var(--text)}
.dg-row b.dg-good{color:var(--teal)}
.digest-note{padding:12px 16px;background:var(--amber-soft);color:var(--amber);font-size:13px;font-weight:600}
.report-preview{margin-bottom:14px}
.rp-page{border:1px solid var(--border-2);border-radius:10px;padding:18px;max-width:420px;background:#fff;box-shadow:0 4px 18px rgba(0,0,0,.06)}
.rp-title{font-size:17px;font-weight:800;color:var(--text);border-bottom:2px solid var(--cyan);padding-bottom:8px;margin-bottom:12px}
.rp-title span{display:block;font-size:12px;font-weight:600;color:var(--muted)}
.rp-kpis{display:flex;gap:14px;margin-bottom:10px}
.rp-kpis div{flex:1}
.rp-kpis b{display:block;font-size:19px;font-weight:800;color:var(--text)}
.rp-kpis span{font-size:11px;color:var(--muted)}
.rp-line{font-size:13px;color:var(--muted);line-height:1.5}
@media(max-width:640px){ .opp-val{font-size:16px} .rp-kpis{flex-wrap:wrap} }

/* AI benchmarking */
.ai-card{background:linear-gradient(135deg,var(--cyan-soft),var(--card-2));border:1px solid var(--border-2);border-radius:16px;padding:20px 22px;margin-bottom:18px}
.ai-head{font-size:16px;font-weight:800;color:var(--text);display:flex;align-items:center;gap:9px;margin-bottom:8px}
.ai-badge{display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:#fff;background:var(--cyan);padding:2px 8px;border-radius:999px;letter-spacing:.04em}
.ai-summary{font-size:14.5px;color:var(--text);line-height:1.6;margin:0 0 12px}
.ai-ideas{display:flex;flex-direction:column;gap:8px}
.ai-idea{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:var(--muted);line-height:1.5;background:var(--card);border:1px solid var(--border);border-radius:11px;padding:11px 13px}
.ai-dot{flex:0 0 auto}
.ai-ask{display:flex;gap:8px;margin-top:14px}
.ai-ask .wi-inp{flex:1;opacity:.75}
.ai-foot{font-size:12.5px;color:var(--dim);margin-top:8px;font-style:italic}
.bm-row{display:flex;align-items:center;gap:16px;padding:14px 2px;border-bottom:1px solid var(--border);flex-wrap:wrap}
.bm-row:last-child{border-bottom:none}
.bm-metric{flex:0 0 150px;font-size:14px;font-weight:700;color:var(--text)}
.bm-bars{flex:1;min-width:200px;display:flex;flex-direction:column;gap:7px}
.bm-b{display:flex;align-items:center;gap:9px}
.bm-lab{flex:0 0 62px;font-size:11.5px;color:var(--muted);font-weight:600}
.bm-track{flex:1;height:12px;background:var(--panel);border-radius:999px;overflow:hidden}
.bm-fill{height:100%;border-radius:999px}
.bm-fill.bm-you{background:linear-gradient(90deg,var(--cyan),#38bdf8)}
.bm-fill.bm-avg{background:var(--border-2)}
.bm-b b{flex:0 0 auto;font-size:13px;font-weight:800;color:var(--text);min-width:56px;text-align:right;font-variant-numeric:tabular-nums}
.bm-verdict{flex:0 0 auto;font-size:12px;font-weight:800;padding:4px 11px;border-radius:999px}
.bm-verdict.bm-ahead{color:var(--teal);background:var(--teal-soft)}
.bm-verdict.bm-behind{color:var(--red);background:var(--red-soft)}
.bm-verdict.bm-mid{color:var(--amber);background:var(--amber-soft)}
@media(max-width:640px){ .bm-metric{flex-basis:100%} }

/* Speed to lead */
.s2l-row{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:12px}
.s2l-stat{flex:1;min-width:140px;display:flex;flex-direction:column}
.s2l-stat b{font-size:26px;font-weight:800;color:var(--text);line-height:1}
.s2l-stat span{font-size:12.5px;color:var(--muted);margin-top:4px}
.s2l-stat.s2l-warn b{color:var(--amber)}

/* Reputation everywhere */
.rep-hero{text-align:center;padding:6px 0 12px;border-bottom:1px solid var(--border);margin-bottom:12px}
.rep-big{font-size:42px;font-weight:800;color:var(--text);line-height:1}
.rep-sub{font-size:13px;color:var(--muted);margin-top:4px}
.rep-sites{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;margin-bottom:14px}
.rep-site{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--border);border-radius:10px;padding:9px 12px;font-size:13px}
.rep-name{font-weight:700;color:var(--text)}
.rep-stars{color:var(--muted);white-space:nowrap;font-size:12px}
.rep-count{color:var(--dim);font-size:12px;white-space:nowrap}
.rep-themes{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.rep-theme{border-radius:11px;padding:11px 13px}
.rep-theme b{display:block;font-size:13px;margin-bottom:3px}
.rep-theme span{font-size:13px;color:var(--muted)}
.rep-praise{background:var(--teal-soft)}
.rep-praise b{color:var(--teal)}
.rep-gripe{background:var(--amber-soft)}
.rep-gripe b{color:var(--amber)}

/* Cash flow */
.cf-chart{display:flex;align-items:flex-end;gap:10px;height:150px;padding-top:6px}
.cf-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}
.cf-pair{display:flex;align-items:flex-end;gap:3px;height:100%;width:100%;justify-content:center}
.cf-bar{width:42%;max-width:20px;border-radius:4px 4px 0 0;min-height:4px}
.cf-bar.cf-in{background:var(--teal)}
.cf-bar.cf-out{background:var(--border-2)}
.cf-m{font-size:11px;color:var(--dim);margin-top:5px}
.cf-legend{display:flex;gap:16px;justify-content:center;margin-top:10px;font-size:12.5px;color:var(--muted)}
.cf-legend span{display:inline-flex;align-items:center;gap:6px}
.cf-k{width:11px;height:11px;border-radius:3px;display:inline-block}
.cf-k.cf-in{background:var(--teal)}
.cf-k.cf-out{background:var(--border-2)}

/* Accounts receivable */
.ar-total{font-size:24px;font-weight:800;color:var(--text);margin-bottom:10px}
.ar-total span{font-size:13px;font-weight:500;color:var(--muted)}
.ar-row{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid var(--border);font-size:14px;color:var(--muted)}
.ar-row:last-child{border-bottom:none}
.ar-row b{color:var(--text)}

/* Listing consistency */
.nap-head{font-size:14px;font-weight:600;color:var(--text);margin-bottom:10px}
.nap-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border);font-size:14px}
.nap-row:last-child{border-bottom:none}
.nap-badge{font-size:12px;font-weight:800;padding:3px 10px;border-radius:999px}
.nap-ok{color:var(--teal);background:var(--teal-soft)}
.nap-bad{color:var(--red);background:var(--red-soft)}

/* Live screen + alert settings */
.lv-grid{display:grid;grid-template-columns:1fr 1.35fr;gap:16px;align-items:start}
.lv-phone{max-width:340px;margin:0 auto;border:1px solid var(--border-2);border-radius:20px;overflow:hidden;background:var(--card);box-shadow:0 8px 30px rgba(0,0,0,.1)}
.lv-phone-top{background:#111318;color:#fff;font-size:13px;font-weight:700;padding:12px 16px;display:flex;align-items:center;gap:8px}
.lv-live-dot{width:8px;height:8px;border-radius:50%;background:#34d399;animation:lvPulse 1.6s infinite}
@keyframes lvPulse{0%,100%{box-shadow:0 0 0 0 rgba(52,211,153,.6)}50%{box-shadow:0 0 0 6px rgba(52,211,153,0)}}
.lv-feed{display:flex;flex-direction:column}
.lv-item{display:flex;align-items:flex-start;gap:11px;padding:12px 14px;border-bottom:1px solid var(--border)}
.lv-item:last-child{border-bottom:none}
.lv-ic{font-size:18px;flex:0 0 auto}
.lv-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.lv-main b{font-size:13px;color:var(--text)}
.lv-main span{font-size:12.5px;color:var(--muted);line-height:1.4}
.lv-time{flex:0 0 auto;font-size:11px;color:var(--dim);white-space:nowrap}
.lv-set-head{display:grid;grid-template-columns:1.4fr 1.2fr 1.7fr;gap:10px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--dim);padding:0 0 8px;border-bottom:1px solid var(--border)}
.lv-set-row{display:grid;grid-template-columns:1.4fr 1.2fr 1.7fr;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}
.lv-set-row:last-child{border-bottom:none}
.lv-set-name{font-size:14px;font-weight:600;color:var(--text)}
.lv-seg{flex-wrap:wrap}
.lv-seg .seg-btn{font-size:12px;padding:5px 9px}
@media(max-width:820px){ .lv-grid{grid-template-columns:1fr} }
@media(max-width:600px){ .lv-set-head{display:none} .lv-set-row{grid-template-columns:1fr;gap:7px;padding:12px 0} .lv-set-name{font-size:15px} }
