/* TruDash design system. TruCreatives brand: electric blue on cool neutrals, Satoshi headings, Inter body.
   Client brand colours are used only for identity (logo chip, header bar, row stripe), never for the interface. */
/* TruDash adopts the TruCreatives UI kit (public/ui/tokens.css + components.css, v1.0, from TruCRM).
   The variables below only BRIDGE TruDash's names to the kit's tokens, so the kit stays the source of truth. */
:root{
  --font:var(--tru-font-sans);--font-head:var(--tru-font-display);--mono:var(--tru-font-mono);
  --bg:hsl(var(--background));--panel:hsl(var(--card));--panel2:hsl(var(--muted));--ink:hsl(var(--foreground));--ink2:hsl(var(--muted-foreground));--ink3:hsl(var(--muted-foreground) / .78);
  --line:hsl(var(--border));--line2:hsl(var(--border) / .9);
  --ac:hsl(var(--primary));--ac-2:var(--tru-indigo);--ac-3:var(--tru-cyan);--ac-soft:hsl(var(--primary) / .12);--ac-ink:hsl(var(--primary));--on-ac:hsl(var(--primary-foreground));
  --good:#15803D;--good-soft:color-mix(in srgb,var(--tru-success) 14%,transparent);--warn:#B45309;--warn-soft:color-mix(in srgb,var(--tru-warning) 16%,transparent);--bad:#C2312F;--bad-soft:color-mix(in srgb,var(--tru-danger) 13%,transparent);
  --client:hsl(var(--primary));--client-bar:var(--tru-gradient-brand);
  --r-sm:var(--tru-radius-sm);--r:var(--tru-radius-md);--r-lg:var(--tru-radius-lg);
  --shadow:var(--tru-frame-shadow);--shadow-lg:var(--tru-frame-shadow),0 24px 48px -24px rgba(0,0,0,.6);
  color-scheme:light}
[data-theme="dark"]{--ac-ink:var(--tru-cyan-soft);--good:#4ADE80;--warn:#FBBF24;--bad:#F87171;color-scheme:dark}
@media (prefers-color-scheme:dark){[data-theme="system"]{--ac-ink:var(--tru-cyan-soft);--good:#4ADE80;--warn:#FBBF24;--bad:#F87171;color-scheme:dark}}

*{box-sizing:border-box}html,body{margin:0}
body{background:var(--tru-ambient),var(--bg);background-attachment:fixed;color:var(--ink);font:400 14px/1.55 var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
a{color:var(--ac-ink)}a:hover{color:var(--ac)}
::selection{background:var(--ac-soft)}
:focus-visible{outline:2px solid var(--ac);outline-offset:2px;border-radius:6px}
.num{font-variant-numeric:tabular-nums}
.wrap{max-width:1200px;margin:0 auto;padding:4px 24px 96px}

/* ---- header ---- */
header{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid var(--line)}
header::before{content:"";display:block;height:3px;background:var(--client-bar)}
.hrow{max-width:1200px;margin:0 auto;padding:12px 24px;display:flex;flex-wrap:wrap;gap:12px 16px;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:12px;min-width:0}
.brand b{font:700 19px/1.15 var(--font-head);letter-spacing:-.02em;display:block;color:var(--ink)}
.brand span{font-size:12.5px;color:var(--ink2);display:block;margin-top:1px;font-weight:500}
.brand .mark{width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,var(--ac),var(--ac-3));color:#fff;display:grid;place-items:center;font:800 16px/1 var(--font-head);flex:none;box-shadow:0 4px 12px color-mix(in srgb,var(--ac) 35%,transparent)}
.brand .mark.client{background:var(--client);box-shadow:none}
.brand img{background:#fff;padding:3px;border:1px solid var(--line)}
.seg{display:flex;background:var(--panel2);border:1px solid var(--line);border-radius:11px;padding:3px;gap:2px;flex-wrap:wrap}
.seg button{border:0;background:none;color:var(--ink2);font:600 13px/1 var(--font);padding:8px 12px;border-radius:8px;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}
.seg button:hover{color:var(--ink)}
.seg button.on{background:var(--panel);color:var(--ink);box-shadow:0 1px 2px rgba(13,19,36,.08),0 0 0 1px var(--line)}
.seg.mini button{padding:6px 10px;font-size:12px}
.tools{display:flex;gap:10px;align-items:center;font-size:13px;color:var(--ink2);flex-wrap:wrap}
.tools a{color:var(--ink2);text-decoration:none;font-weight:500}.tools a:hover{color:var(--ink)}
.iconbtn{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:var(--panel);color:var(--ink2);cursor:pointer;padding:0}
.iconbtn:hover{color:var(--ink);border-color:var(--line2)}
.iconbtn svg{width:17px;height:17px}

/* ---- inputs & buttons ---- */
select,input:not([type]),input[type=search],input[type=month],input[type=date],input[type=text],input[type=email],input[type=password],input[type=number],textarea{background:var(--panel);color:var(--ink);border:1px solid var(--line2);border-radius:9px;padding:8px 11px;font:inherit;font-size:13.5px;transition:border-color .15s,box-shadow .15s}
select:focus,input:focus,textarea:focus{outline:none;border-color:var(--ac);box-shadow:0 0 0 3px color-mix(in srgb,var(--ac) 22%,transparent)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--ac);color:var(--on-ac);border:0;border-radius:9px;padding:9px 15px;font:600 13.5px/1.2 var(--font);cursor:pointer;transition:filter .15s,transform .05s}
.btn:hover{filter:brightness(1.08)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:default}
.btn.ghost{background:var(--panel);color:var(--ink);border:1px solid var(--line2)}

/* ---- type ---- */
h2{font:700 18px/1.25 var(--font-head);letter-spacing:-.015em;color:var(--ink);margin:40px 0 14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
h2 small{font:500 13px/1.3 var(--font);color:var(--ink2);letter-spacing:0}
.note{font-size:12.5px;color:var(--ink2);margin-top:10px;line-height:1.55}
.quiet{color:var(--ink2)}
.big{font:700 40px/1 var(--font-head);letter-spacing:-.03em}

/* ---- cards & KPIs ---- */
.card,.kpi,.tile{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);min-width:0}
.card{padding:20px 22px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-top:20px}
.kpi{padding:16px 18px 15px}
.kpi .l,.tile .l{font:600 12px/1.3 var(--font);color:var(--ink2);letter-spacing:.01em}
.kpi .v{font:700 30px/1.1 var(--font-head);letter-spacing:-.025em;margin-top:8px;color:var(--ink)}
.kpi .s,.tile .s{font-size:12.5px;color:var(--ink2);margin-top:6px;line-height:1.45}
.delta{font-weight:700;display:inline-flex;align-items:center;gap:3px;padding:1px 7px;border-radius:999px;font-size:12px}
.delta.up{color:var(--good);background:var(--good-soft)}
.delta.down{color:var(--bad);background:var(--bad-soft)}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}
.hd{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.hd b{font:700 15.5px/1.3 var(--font-head);letter-spacing:-.01em}

/* ---- tables ---- */
table{width:100%;border-collapse:collapse;font-size:13.5px}
th{text-align:left;font:600 11.5px/1.3 var(--font);color:var(--ink2);padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:10px;border-bottom:1px solid var(--line);vertical-align:top}
tr:last-child td{border-bottom:0}
td.r,th.r{text-align:right;white-space:nowrap}
.tscroll{overflow-x:auto}

/* ---- small parts ---- */
.chip{display:inline-flex;align-items:center;gap:4px;font:600 11.5px/1 var(--font);padding:5px 9px;border-radius:999px;background:var(--ac-soft);color:var(--ac-ink)}
.chip.warn{background:var(--warn-soft);color:var(--warn)}
.bar{height:8px;border-radius:4px;background:var(--ac)}
.brow{display:grid;grid-template-columns:minmax(100px,170px) 1fr 84px;gap:12px;align-items:center;font-size:13px;margin:9px 0}
.brow>div{background:var(--panel2)!important;border-radius:4px}
.brow>span:last-child{text-align:right;font-weight:600}
footer{margin-top:56px;border-top:1px solid var(--line);padding-top:16px;font-size:12px;color:var(--ink3);line-height:1.8}
.empty{padding:26px;text-align:center;color:var(--ink2);font-size:13.5px}
.banner{background:var(--warn-soft);color:var(--warn);border:1px solid color-mix(in srgb,var(--warn) 25%,transparent);border-radius:var(--r);padding:11px 15px;font-size:13.5px;margin-top:18px}
.banner.notice{overflow-wrap:anywhere}
.banner.load-fail{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px}
.load-fail small{flex-basis:100%;font-size:12px;opacity:.85}
.load-fail small,.fail-note,.asof{overflow-wrap:anywhere}
.asof.late{color:var(--warn)}
.err{color:var(--bad);font-size:13px;margin-top:10px;min-height:18px}
.skel{background:linear-gradient(90deg,var(--panel2),var(--panel),var(--panel2));background-size:200% 100%;animation:sh 1.2s infinite;border-radius:6px;height:14px}
@keyframes sh{0%{background-position:200% 0}100%{background-position:-200% 0}}
details summary{color:var(--ac-ink)}

/* ---- login ---- */
.login{max-width:400px;margin:12vh auto;background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:34px 32px;box-shadow:var(--shadow-lg);position:relative;overflow:hidden}
.login::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:linear-gradient(90deg,#2F5BEA,#0EA5E9)}
.login h1{font:700 24px/1.2 var(--font-head);letter-spacing:-.02em;margin:0 0 6px}
.login p{color:var(--ink2);margin:0 0 20px;font-size:14px}
.login label{display:block;font-size:12.5px;font-weight:600;color:var(--ink2);margin:14px 0 6px}
.login input{width:100%;padding:11px 12px;font-size:14.5px}
.login .btn{width:100%;margin-top:20px;padding:12px;font-size:14.5px}

body.embed header .tools .who,body.embed footer{display:none}

/* ---- locations, drill-in, sortable ---- */
.locbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:18px 0 2px}
.locbar .scope{font-size:13px;color:var(--ink2)}.locbar .scope b{color:var(--ink)}
.hint{font-size:12px;color:var(--ink3);margin-top:8px;text-align:right}
rect.dbar{cursor:pointer;transition:opacity .12s}rect.dbar:hover{opacity:1!important;filter:brightness(1.12)}
table.sortable th[data-sort]{cursor:pointer;user-select:none}
table.sortable th[data-sort]:hover{color:var(--ink)}
table.sortable th.sorted::after{content:" \2193";color:var(--ac-ink)}table.sortable th.sorted.asc::after{content:" \2191"}
table.rows-click tbody tr{cursor:pointer}table.rows-click tbody tr:hover td{background:color-mix(in srgb,var(--ac-soft) 55%,transparent)}
table.rows-click tbody tr.on td{background:var(--ac-soft)}table.rows-click tbody tr.on td:first-child{font-weight:700;color:var(--ac-ink)}

/* ---- hover tooltips ---- */
.tip{position:fixed;left:0;top:0;z-index:60;pointer-events:none;min-width:190px;max-width:280px;background:var(--ink);color:var(--bg);border-radius:10px;padding:10px 12px;font-size:12.5px;line-height:1.5;box-shadow:0 10px 30px rgba(13,19,36,.28);transition:transform .04s linear}
:root[data-theme="dark"] .tip,.tip{background:#0D1324;color:#EDF1FA}
.tip-t{font-weight:700;margin-bottom:4px;font-family:var(--font-head)}
.tip-r{display:flex;justify-content:space-between;gap:14px}.tip-r span{opacity:.72}.tip-r .up{color:#6EE7A0}.tip-r .down{color:#FCA5A5}
rect.dbar.dim{opacity:.35!important}
.hbar{cursor:default}

/* ---- home / portfolio ---- */
.greet{margin:34px 0 4px;font:700 30px/1.15 var(--font-head);letter-spacing:-.025em}
.greet+.sub{color:var(--ink2);font-size:14px;margin:0 0 22px}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.tile{padding:18px 20px}
.tile .v{font:700 30px/1.1 var(--font-head);letter-spacing:-.025em;margin-top:8px}
.att{display:grid;gap:8px}
.att a{display:grid;grid-template-columns:10px 1fr auto;gap:14px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:13px 16px;color:inherit;text-decoration:none;box-shadow:var(--shadow);transition:border-color .15s,transform .15s}
.att a:hover{border-color:var(--line2);transform:translateY(-1px)}
.att .dot{width:10px;height:10px;border-radius:50%;background:var(--warn);box-shadow:0 0 0 4px var(--warn-soft)}
.att .dot.error{background:var(--bad);box-shadow:0 0 0 4px var(--bad-soft)}
.att b{font-size:14px}.att span{font-size:13px;color:var(--ink2)}
.att .go{color:var(--ac-ink);font-weight:600;font-size:13px;white-space:nowrap}
.biz{width:100%;border-collapse:separate;border-spacing:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow)}
.biz th{background:var(--panel2);border-bottom:1px solid var(--line)}
.biz td{padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:middle;font-size:13.5px}
.biz tr{cursor:pointer}.biz tbody tr{transition:background .12s}
.biz tbody tr:hover td{background:color-mix(in srgb,var(--ac-soft) 55%,transparent)}
.biz .nm{font-weight:600}
.biz .nm small{display:block;font-weight:400;color:var(--ink2);font-size:12px}
.biz .pv{font:700 16px/1.2 var(--font-head)}
.biz .pv small{display:block;font:400 11.5px/1.4 var(--font);color:var(--ink2)}
.spark{width:110px;height:28px;display:block}
.chg{font-size:12px;font-weight:700;white-space:nowrap}
.chg.up{color:var(--good)}.chg.down{color:var(--bad)}.chg.flat{color:var(--ink3);font-weight:500}
.hdots{display:flex;gap:5px}
.hdots i{width:8px;height:8px;border-radius:50%;background:var(--good);display:inline-block}
.hdots i.off{background:var(--line2)}.hdots i.bad{background:var(--bad)}.hdots i.warn{background:var(--warn)}
.grp{display:flex;align-items:baseline;gap:10px;margin:36px 0 12px}
.grp h2{margin:0}.grp .cnt{font-size:13px;color:var(--ink2)}
.search{width:100%;max-width:340px}

@media(max-width:720px){.biz .hide-m{display:none}.spark{width:70px}}
@media(max-width:640px){.wrap{padding:0 14px 96px}.hrow{padding:10px 14px}.kpi .v,.tile .v{font-size:25px}.greet{font-size:25px}.big{font-size:32px}.seg{width:100%;overflow-x:auto;flex-wrap:nowrap}}

/* ---- Ask about your numbers (per-client chat) ---- */
.chat-launcher{position:fixed;right:22px;bottom:22px;z-index:40;display:inline-flex;align-items:center;gap:9px;height:50px;padding:0 20px 0 16px;border:0;border-radius:999px;background:linear-gradient(135deg,#2F5BEA,#4F46E5);color:#fff;font:600 14.5px/1 var(--font);cursor:pointer;box-shadow:0 12px 32px rgba(47,91,234,.38),0 2px 6px rgba(13,19,36,.15);transition:transform .15s,box-shadow .15s}
.chat-launcher:hover{transform:translateY(-2px);box-shadow:0 16px 38px rgba(47,91,234,.45),0 2px 6px rgba(13,19,36,.15)}
.chat-launcher svg{width:20px;height:20px}
.chat-panel{position:fixed;right:22px;bottom:22px;z-index:41;width:min(410px,calc(100vw - 32px));height:min(680px,calc(100vh - 44px));display:none;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-lg);overflow:hidden;transform-origin:bottom right}
#chatRoot.is-open .chat-panel{display:flex;animation:chatIn .18s ease-out}
#chatRoot.is-open .chat-launcher{display:none}
#chatRoot.is-wide .chat-panel{width:min(760px,calc(100vw - 44px));height:calc(100vh - 44px)}
@keyframes chatIn{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
.chat-top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 14px 14px 16px;border-bottom:1px solid var(--line)}
.chat-id{display:flex;align-items:center;gap:11px;min-width:0}
.chat-avatar{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(135deg,#2F5BEA,#0EA5E9);color:#fff;flex:none}
.chat-avatar svg{width:18px;height:18px}
.chat-id b{display:block;font:700 15px/1.2 var(--font-head);letter-spacing:-.01em}
.chat-id span{display:block;font-size:12px;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-actions{display:flex;gap:4px;flex:none}
.chat-actions button{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:8px;background:none;color:var(--ink2);cursor:pointer;padding:0}
.chat-actions button:hover{background:var(--panel2);color:var(--ink)}
.chat-actions svg{width:17px;height:17px}
.chat-body{flex:1;overflow-y:auto;padding:18px 16px 8px;display:flex;flex-direction:column;gap:14px;font-size:14px;scroll-behavior:smooth}
.chat-welcome{padding:8px 4px 0}
.chat-welcome h3{font:700 19px/1.25 var(--font-head);letter-spacing:-.015em;margin:0 0 6px}
.chat-welcome p{color:var(--ink2);margin:0;font-size:13.5px}
.chat-sugg{display:grid;gap:8px;margin-top:16px}
.chat-sugg button{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:12px;padding:11px 13px;font:500 13.5px/1.35 var(--font);cursor:pointer;transition:border-color .15s,background .15s}
.chat-sugg button:hover{border-color:color-mix(in srgb,var(--ac) 45%,var(--line));background:var(--ac-soft)}
.chat-sugg button::after{content:"→";color:var(--ink3);font-weight:600}
.msg{display:flex;flex-direction:column;max-width:88%}
.msg.user{align-self:flex-end;align-items:flex-end}
.msg.assistant{align-self:flex-start}
.bubble{padding:10px 14px;border-radius:16px;line-height:1.55;word-wrap:break-word}
.msg.user .bubble{background:var(--ac);color:var(--on-ac);border-bottom-right-radius:5px}
.msg.assistant .bubble{background:var(--panel2);color:var(--ink);border-bottom-left-radius:5px}
.msg.assistant.err .bubble{background:var(--bad-soft);color:var(--bad)}
.bubble p{margin:0 0 8px}.bubble p:last-child{margin:0}
.bubble ul,.bubble ol{margin:4px 0 8px;padding-left:20px}.bubble li{margin:3px 0}
.bubble b{font-weight:650}
.msg-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px;font-size:11.5px;color:var(--ink3)}
.msg-meta button{border:0;background:none;color:var(--ink2);font:600 11.5px var(--font);cursor:pointer;padding:2px 4px;border-radius:5px}
.msg-meta button:hover{background:var(--panel2);color:var(--ink)}
.typing{display:inline-flex;gap:4px;padding:13px 15px}
.typing i{width:7px;height:7px;border-radius:50%;background:var(--ink3);animation:chatdot 1.1s infinite}
.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
@keyframes chatdot{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}
.chat-compose{display:flex;align-items:flex-end;gap:8px;margin:8px 12px 0;padding:6px 6px 6px 12px;border:1px solid var(--line2);border-radius:14px;background:var(--panel);transition:border-color .15s,box-shadow .15s}
.chat-compose:focus-within{border-color:var(--ac);box-shadow:0 0 0 3px color-mix(in srgb,var(--ac) 20%,transparent)}
.chat-compose textarea{flex:1;min-width:0;border:0;background:none;padding:8px 0;resize:none;max-height:130px;font:400 14px/1.45 var(--font);color:var(--ink);box-shadow:none}
.chat-compose textarea:focus{box-shadow:none}
.chat-compose button{display:grid;place-items:center;width:36px;height:36px;flex:none;border:0;border-radius:10px;background:var(--ac);color:var(--on-ac);cursor:pointer}
.chat-compose button:disabled{opacity:.4;cursor:default}
.chat-compose svg{width:17px;height:17px}
.chat-foot{font-size:11px;color:var(--ink3);padding:8px 16px 12px;text-align:center}
@media(max-width:600px){
  .chat-launcher{right:16px;bottom:16px;width:56px;height:56px;padding:0;justify-content:center}
  .chat-launcher span{display:none}
  .chat-panel,#chatRoot.is-wide .chat-panel{inset:0;width:100%;height:100%;height:100dvh;border-radius:0;border:0}
  .chat-actions .wide-only{display:none}}
@media print{#chatRoot{display:none}}
/* ---- appointments week view ---- */
.wk-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.wk-head b{font:700 15.5px/1.3 var(--font-head)}.wk-nav{display:flex;gap:6px;align-items:center}.wk-nav .btn{padding:7px 11px}
.wk{overflow-x:auto;margin-top:12px}
.wk-grid{display:grid;grid-template-columns:repeat(7,minmax(118px,1fr));gap:6px;min-width:840px}
.wk-day{background:var(--panel2);border-radius:10px;padding:8px;min-height:150px;display:flex;flex-direction:column;gap:5px}
.wk-day.past{opacity:.78}.wk-day.today{outline:2px solid var(--ac);outline-offset:-2px;background:var(--ac-soft)}
.wk-d{display:flex;align-items:baseline;justify-content:space-between;font-size:11.5px;color:var(--ink2);margin-bottom:2px}.wk-d b{font:700 15px/1 var(--font-head);color:var(--ink)}.wk-day.today .wk-d b{color:var(--ac-ink)}
.appt{display:flex;gap:6px;align-items:baseline;background:var(--panel);border-left:3px solid var(--c);border-radius:6px;padding:4px 7px;font-size:12px;line-height:1.3;box-shadow:var(--shadow);cursor:default}
.appt-t{color:var(--ink2);flex:none;font-size:11px}.appt-n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
.appt.noshow .appt-n{text-decoration:line-through;color:var(--ink3)}.appt.showed{border-left-color:var(--good)}
.wk-empty{color:var(--ink3);text-align:center;font-size:12px;margin-top:8px}
.wk-legend{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;margin-top:10px;font-size:12px;color:var(--ink2)}.wk-legend i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:6px;vertical-align:middle}
/* ---- reviews ---- */
.rv-top{display:flex;gap:22px;align-items:center;margin:12px 0 6px;flex-wrap:wrap}
.rv-stars{color:#F59E0B;letter-spacing:1px;font-size:15px}.rv-stars.small{font-size:12px}
.rv-kpis{display:flex;gap:22px}.rv-kpis div{display:flex;flex-direction:column}.rv-kpis b{font:700 22px/1.1 var(--font-head)}.rv-kpis span{font-size:12px;color:var(--ink2);max-width:170px}
.rv-list{margin-top:10px;display:grid;gap:8px}.rv{background:var(--panel2);border-radius:10px;padding:10px 12px}
.rv-h{display:flex;gap:10px;align-items:baseline;font-size:12.5px}.rv p{margin:6px 0 0;font-size:13px;line-height:1.5;color:var(--ink)}

/* ---- goals ---- */
.goal-v{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:10px 0 12px}.goal-of{font-size:14px;color:var(--ink2)}
.goal-bar{position:relative;height:10px;background:var(--panel2);border-radius:999px}
.goal-bar>div{height:10px;border-radius:999px;transition:width .3s}
.goal-bar i{position:absolute;top:-4px;width:2px;height:18px;background:var(--ink);opacity:.45;border-radius:1px;transform:translateX(-1px)}
.goal-meta{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:10px;font-size:12.5px;color:var(--ink2)}.goal-meta b{color:var(--ink)}
.goal-edit{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin-top:14px}.goal-edit[hidden]{display:none}
.goal-edit label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:600;color:var(--ink2)}.goal-edit input{width:170px}
.goal-edit .err{flex-basis:100%;margin-top:2px;min-height:0}
.btn.danger{color:var(--bad)}
.iconbtn.sm{width:30px;height:30px}.iconbtn.sm svg{width:15px;height:15px}

/* ---- links, tabs, posts, column picker ---- */
.hd-r{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}
.tplink{font-size:12.5px;font-weight:600;color:var(--ac-ink);text-decoration:none;white-space:nowrap;padding:3px 8px;border-radius:7px;background:var(--ac-soft)}
.tplink:hover{filter:brightness(.97);color:var(--ac-ink)}
h2 .tplink{margin-left:auto;font-family:var(--font)}
.qlinks{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:14px}
.qlink{display:flex;flex-direction:column;gap:3px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 16px;text-decoration:none;color:var(--ink);box-shadow:var(--shadow);transition:border-color .15s,transform .15s}
.qlink:hover{border-color:color-mix(in srgb,var(--ac) 45%,var(--line));transform:translateY(-1px);color:var(--ink)}
.qlink b{font:700 15px/1.3 var(--font-head)}.qlink span{font-size:12.5px;color:var(--ink2)}
.tabpane[hidden]{display:none}
.trunc{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
rect.sbar{cursor:default;transition:opacity .12s}rect.sbar:hover{opacity:1!important}
.posts{display:grid;gap:10px;margin-top:12px}
.post{display:grid;grid-template-columns:64px 1fr;gap:12px;align-items:start}
.post img,.post .ph{width:64px;height:64px;border-radius:10px;object-fit:cover;background:var(--panel2)}
.post-t{font-size:13px;line-height:1.45;margin:2px 0}
.colpick{position:relative;font-size:12.5px}.colpick summary{cursor:pointer;color:var(--ac-ink);font-weight:600;list-style:none}.colpick summary::-webkit-details-marker{display:none}
.colpick>div{position:absolute;right:0;top:24px;z-index:10;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lg);padding:10px 12px;display:grid;gap:6px;min-width:210px}
.colpick label{display:flex;gap:8px;align-items:center;cursor:pointer;color:var(--ink)}

.card.wide{grid-column:1/-1}
.card.wide .posts{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px 18px}


/* ═══ TruCreatives UI kit mapping (later rules win). Visual language comes from /ui/components.css. ═══ */
/* frames: every card, KPI and tile is a kit frame; cards inside cards become kit inner cards */
.card,.tile,.att a,.qlink,.login{border-radius:var(--tru-radius-lg);border:1px solid var(--tru-frame-border);background:var(--tru-frame-bg);box-shadow:var(--tru-frame-shadow)}
.kpi{border-radius:var(--tru-radius-md);border:1px solid var(--tru-card-border);background:var(--tru-card-bg);box-shadow:none}
.kpis>.kpi{border-radius:var(--tru-radius-lg);border:1px solid var(--tru-frame-border);background:var(--tru-frame-bg);box-shadow:var(--tru-frame-shadow)}
.card .kpis>.kpi{border-radius:var(--tru-radius-md);border:1px solid var(--tru-card-border);background:var(--tru-card-bg);box-shadow:none}
.biz{border-radius:var(--tru-radius-lg);border:1px solid var(--tru-frame-border);background:var(--tru-frame-bg);box-shadow:var(--tru-frame-shadow)}
/* labels: kit eyebrows */
.kpi .l,.tile .l{font:600 var(--tru-text-2xs)/1.3 var(--tru-font-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--tru-label)}
.kpi .v,.tile .v,.big,.biz .pv,.goal-v .big{font-family:var(--tru-font-display)}
/* section titles: kit display type, gradient title text, ring icon */
h2{font:700 22px/1.2 var(--tru-font-display);letter-spacing:-.015em;margin:44px 0 16px;gap:12px}
h2 .h2t{background:var(--tru-gradient-text);-webkit-background-clip:text;background-clip:text;color:transparent}
h2 .tru-ring{--size:30px;border-width:1.5px}
.greet{font-family:var(--tru-font-display)}.greet .h2t,.login h1{background:var(--tru-gradient-text);-webkit-background-clip:text;background-clip:text;color:transparent}
.hd b,.wk-head b{font-family:var(--tru-font-display)}
/* switchers and tabs: glass rail with pills */
.seg{display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:var(--tru-radius-rail);background:var(--tru-rail-bg);border:1px solid var(--tru-rail-border);box-shadow:var(--tru-rail-shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);max-width:100%;overflow-x:auto;scrollbar-width:none}
.seg::-webkit-scrollbar{display:none}
.seg button{height:34px;padding:0 14px;border-radius:var(--tru-radius-pill);font:500 var(--tru-text-sm)/1 var(--tru-font-ui);letter-spacing:.04em;color:hsl(var(--muted-foreground));transition:all .2s var(--tru-ease)}
.seg button:hover{color:hsl(var(--foreground))}
.seg button.on{color:hsl(var(--foreground));background:var(--tru-pill-active-bg);box-shadow:0 0 28px hsl(var(--primary) / .3),inset 0 0 0 1px hsl(var(--primary) / .5)}
.seg.mini button{height:30px;padding:0 11px;font-size:12px}
/* buttons: kit primary (one per row) and ghost */
.btn{height:36px;padding:0 20px;border-radius:var(--tru-radius-full);font:700 var(--tru-text-sm)/1 var(--tru-font-sans);color:var(--tru-btn-color);background:var(--tru-btn-bg);border:1.5px solid var(--tru-btn-border);box-shadow:var(--tru-btn-shadow);transition:transform .15s var(--tru-ease),box-shadow .2s var(--tru-ease)}
.btn:hover{filter:none;transform:translateY(-1px);box-shadow:0 0 38px hsl(var(--primary) / .5)}
.btn.ghost{color:var(--tru-chip-color);background:var(--tru-chip-bg);border:1px solid var(--tru-chip-border);box-shadow:none}
.btn.ghost:hover{border-color:hsl(var(--primary) / .5);box-shadow:0 0 18px hsl(var(--primary) / .15)}
.btn.danger{color:var(--tru-danger)}
.iconbtn{border-radius:var(--tru-radius-full);border:1px solid var(--tru-chip-border);background:var(--tru-chip-bg);color:hsl(var(--foreground))}
.iconbtn:hover{border-color:hsl(var(--primary) / .5);box-shadow:0 0 18px hsl(var(--primary) / .15)}
/* inputs: kit fields */
select,input:not([type]),input[type=search],input[type=month],input[type=date],input[type=text],input[type=email],input[type=password],input[type=number],textarea{height:38px;border-radius:12px;border:1px solid hsl(var(--border));background:hsl(var(--background) / .7);color:hsl(var(--foreground));font:400 var(--tru-text-base)/1.4 var(--tru-font-sans);padding:0 12px}
textarea{height:auto;padding:10px 12px}
select:focus,input:focus,textarea:focus{border-color:hsl(var(--primary) / .6);box-shadow:0 0 0 3px hsl(var(--primary) / .15),0 0 18px hsl(var(--primary) / .12)}
.search{border-radius:9999px}
/* designed checkboxes everywhere */
input[type=checkbox]:not([role=switch]){appearance:none;-webkit-appearance:none;display:inline-grid;place-content:center;width:18px;height:18px;margin:0;border-radius:5px;border:2px solid hsl(var(--primary) / .5);background:hsl(var(--card));cursor:pointer;transition:all .15s;vertical-align:middle;flex:none}
input[type=checkbox]:not([role=switch])::after{content:"";width:10px;height:10px;transform:scale(0);transition:transform 120ms ease-out;background:#fff;clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0%,43% 62%)}
input[type=checkbox]:not([role=switch]):checked{background:hsl(var(--primary));border-color:hsl(var(--primary));box-shadow:0 0 12px hsl(var(--primary) / .45)}
input[type=checkbox]:not([role=switch]):checked::after{transform:scale(1)}
/* chips and status: kit badges */
.chip{--c:hsl(var(--primary));display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:var(--tru-radius-full);font:700 10px/1.6 var(--tru-font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--c);background:color-mix(in srgb,var(--c) 16%,transparent);border:1px solid color-mix(in srgb,var(--c) 45%,transparent);text-decoration:none}
.chip.warn{--c:var(--tru-amber)}
.delta{border-radius:var(--tru-radius-full);font-family:var(--tru-font-sans)}
.tplink{border-radius:var(--tru-radius-pill);font:500 12px/1 var(--tru-font-ui);letter-spacing:.04em;padding:7px 11px;color:var(--tru-outline-color);background:var(--tru-outline-bg);border:1px solid var(--tru-rail-border);box-shadow:inset 0 0 0 1px var(--tru-outline-ring)}
.tplink:hover{filter:none;color:var(--tru-outline-color);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tru-outline-color) 55%,transparent),0 0 20px color-mix(in srgb,var(--tru-outline-color) 18%,transparent)}
/* floaty tables: kit header row */
th{font:600 var(--tru-text-2xs)/1 var(--tru-font-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--tru-label);padding:11px 12px;background:var(--tru-table-head);border-bottom:1px solid hsl(var(--border))}
th:first-child{border-top-left-radius:10px}th:last-child{border-top-right-radius:10px}
td{padding:10px 12px;border-bottom:1px solid hsl(var(--border) / .55)}
tbody tr{transition:background .15s}tbody tr:hover td{background:hsl(var(--primary) / .06)}
.biz th{background:var(--tru-table-head),hsl(var(--card))}
table.sortable th.sorted::after{color:var(--tru-label)}
/* bars and progress in brand colour */
.bar{background:var(--tru-gradient-brand)}
/* orb bullets on insights, numbered pills on ordered lists in chat answers */
.insights ul{list-style:none;padding-left:.15rem}
.insights ul>li{position:relative;padding-left:1.85rem;margin:.4rem 0}
.insights ul>li::before{content:"";position:absolute;left:.15rem;top:.4em;width:.8rem;height:.8rem;border-radius:9999px;background:var(--tru-gradient-orb);box-shadow:0 0 0 3px hsl(var(--primary) / .14),0 0 12px hsl(var(--primary) / .55)}
.insights{border-left:0!important;position:relative;overflow:hidden}
.insights::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--tru-gradient-brand)}
.bubble ul{list-style:none;padding-left:.1rem}.bubble ul>li{position:relative;padding-left:1.4rem}
.bubble ul>li::before{content:"";position:absolute;left:.1rem;top:.45em;width:.6rem;height:.6rem;border-radius:9999px;background:var(--tru-gradient-orb);box-shadow:0 0 8px hsl(var(--primary) / .5)}
.bubble ol{list-style:none;counter-reset:o;padding-left:.1rem}.bubble ol>li{counter-increment:o;position:relative;padding-left:2.1rem}
.bubble ol>li::before{content:counter(o,decimal-leading-zero);position:absolute;left:0;top:.1em;min-width:1.6rem;height:1.25rem;display:grid;place-items:center;border-radius:9999px;font:600 10px/1 var(--tru-font-mono);color:var(--tru-label);border:1.5px solid color-mix(in srgb,var(--tru-label) 55%,transparent)}
/* header: glass bar, kit gradient line */
header{background:color-mix(in srgb,hsl(var(--background)) 72%,transparent)}
header::before{background:var(--tru-gradient-brand)}
.brand .mark{background:var(--tru-gradient-brand);color:#07101f;box-shadow:0 0 22px hsl(var(--primary) / .45)}
.brand .mark.client{background:var(--client);color:#fff;box-shadow:none}
.brand b{font-family:var(--tru-font-display)}
/* chat: kit floating button and frame */
.chat-launcher{background:linear-gradient(135deg,hsl(var(--primary)),hsl(199 89% 55%));border:1.5px solid hsl(var(--primary) / .6);box-shadow:0 0 24px hsl(var(--primary) / .55),0 8px 20px -8px rgba(0,0,0,.5);font-family:var(--tru-font-ui);letter-spacing:.02em}
.chat-launcher:hover{box-shadow:0 0 34px hsl(var(--primary) / .75),0 8px 20px -8px rgba(0,0,0,.5)}
.chat-panel{border-radius:var(--tru-radius-lg);border:1px solid var(--tru-frame-border);background:var(--tru-frame-bg),hsl(var(--card));box-shadow:var(--tru-frame-shadow),0 24px 48px -24px rgba(0,0,0,.6);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.chat-avatar{background:var(--tru-gradient-brand);color:#07101f;border-radius:9999px;box-shadow:0 0 18px hsl(var(--primary) / .5)}
.chat-id b{font-family:var(--tru-font-display)}
.msg.user .bubble{background:linear-gradient(120deg,hsl(var(--primary)),hsl(199 89% 50%));color:#fff}
.msg.assistant .bubble{background:var(--tru-card-bg);border:1px solid var(--tru-card-border)}
.chat-sugg button{border-radius:12px;background:var(--tru-chip-bg);border-color:var(--tru-chip-border)}
.chat-compose{border-radius:16px;background:hsl(var(--background) / .7)}
.chat-compose button{border-radius:9999px;background:linear-gradient(135deg,hsl(var(--primary)),hsl(199 89% 55%));color:#fff;box-shadow:0 0 16px hsl(var(--primary) / .45)}
/* tooltip: kit menu surface */
.tip,:root[data-theme="dark"] .tip{background:hsl(var(--popover));color:hsl(var(--popover-foreground));border:1px solid var(--tru-frame-border);box-shadow:var(--tru-frame-shadow),0 18px 40px -18px rgba(0,0,0,.6);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.tip-t{font-family:var(--tru-font-display)}
/* week calendar and inner panels */
.wk-day{background:hsl(var(--muted) / .45);border:1px solid hsl(var(--border) / .6)}
.wk-day.today{background:hsl(var(--primary) / .12);outline-color:hsl(var(--primary) / .7);box-shadow:0 0 22px hsl(var(--primary) / .18)}
.appt{background:var(--tru-card-bg);box-shadow:none;border-top:1px solid var(--tru-card-border);border-right:1px solid var(--tru-card-border);border-bottom:1px solid var(--tru-card-border)}
.rv,.post .ph{background:hsl(var(--muted) / .45)}
.colpick>div{border-radius:16px;border:1px solid var(--tru-frame-border);background:var(--tru-frame-bg),hsl(var(--popover));box-shadow:var(--tru-frame-shadow)}
/* scrollbars stay visible on anything that scrolls sideways */
.tscroll,.wk{scrollbar-width:auto;scrollbar-color:hsl(var(--primary) / .45) hsl(var(--muted))}
.tscroll::-webkit-scrollbar,.wk::-webkit-scrollbar{height:10px}
.tscroll::-webkit-scrollbar-track,.wk::-webkit-scrollbar-track{background:hsl(var(--muted));border-radius:999px}
.tscroll::-webkit-scrollbar-thumb,.wk::-webkit-scrollbar-thumb{background:hsl(var(--primary) / .45);border-radius:999px;border:2px solid hsl(var(--muted))}
.banner{border-radius:var(--tru-radius-md)}
footer{border-top:1px solid transparent;border-image:linear-gradient(90deg,transparent,hsl(var(--primary) / .6),transparent) 1}

/* ---- client brand header (kit ring icon + gradient name) and icon picker ---- */
.brand-client{gap:16px}
.brand-mark{position:relative;display:inline-grid;place-items:center;padding:0;border:0;background:none;cursor:pointer;border-radius:9999px}
.brand-ring{--size:52px;border-width:2px}
.brand-ring svg{width:46%;height:46%}
.brand-mark:hover .brand-ring{transform:scale(1.05);box-shadow:0 0 0 4px color-mix(in srgb,var(--ring-c) 16%,transparent),0 0 30px color-mix(in srgb,var(--ring-c) 60%,transparent)}
.brand-edit{position:absolute;right:-3px;bottom:-3px;width:20px;height:20px;border-radius:9999px;display:grid;place-items:center;background:hsl(var(--card));border:1px solid var(--tru-frame-border);color:hsl(var(--muted-foreground));opacity:0;transition:opacity .15s}
.brand-edit svg{width:11px;height:11px}
.brand-mark:hover .brand-edit,.brand-mark:focus-visible .brand-edit{opacity:1}
.brand-logo{height:52px;max-width:160px;object-fit:contain;border-radius:12px}
.brand-txt{display:flex;flex-direction:column;min-width:0}
.brand-name{font:700 28px/1.1 var(--tru-font-display)!important;letter-spacing:-.02em;background:var(--tru-gradient-text);-webkit-background-clip:text;background-clip:text;color:transparent!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand-sub{font:600 var(--tru-text-2xs)/1.4 var(--tru-font-sans)!important;letter-spacing:.14em;text-transform:uppercase;color:var(--tru-label)!important;margin-top:4px}
.iconpick{position:fixed;top:84px;left:16px;z-index:60;width:min(440px,calc(100vw - 32px));max-height:calc(100vh - 110px);display:flex;flex-direction:column;padding:16px;border-radius:var(--tru-radius-lg);border:1px solid var(--tru-frame-border);background:var(--tru-frame-bg),hsl(var(--popover));box-shadow:var(--tru-frame-shadow),0 24px 48px -24px rgba(0,0,0,.6);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);animation:tru-rise .2s var(--tru-ease) both}
.ip-head{display:flex;align-items:center;gap:14px;padding-bottom:12px;border-bottom:1px solid var(--tru-frame-border)}.ip-head b{font:700 18px/1.2 var(--tru-font-display)}
.ip-body{overflow-y:auto;padding-right:4px;margin-top:4px;min-height:120px;flex:1}
.ip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(42px,1fr));gap:6px}
.ip-ico{display:grid;place-items:center;height:42px;border-radius:12px;border:1px solid var(--tru-chip-border);background:var(--tru-chip-bg);color:hsl(var(--foreground));cursor:pointer;transition:all .15s}
.ip-ico svg{width:20px;height:20px}
.ip-ico:hover{border-color:hsl(var(--primary) / .5);box-shadow:0 0 14px hsl(var(--primary) / .18)}
.ip-ico.on{color:hsl(var(--primary));border-color:hsl(var(--primary));background:hsl(var(--primary) / .14);box-shadow:0 0 18px hsl(var(--primary) / .3)}
.ip-cols{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ip-col{width:28px;height:28px;border-radius:9999px;border:2px solid hsl(var(--card));background:var(--c);box-shadow:0 0 0 1px var(--tru-frame-border);cursor:pointer}
.ip-col.on{box-shadow:0 0 0 2px var(--c),0 0 14px var(--c)}
.ip-custom input{width:34px;height:28px;padding:0;border-radius:9999px;cursor:pointer}
.ip-foot{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid var(--tru-frame-border)}
@media(max-width:640px){.brand-name{font-size:22px!important}.brand-ring{--size:44px}}
.brand .tru-ring{color:var(--ring-c);display:inline-grid;margin:0;font-size:inherit;letter-spacing:0;text-transform:none}
.nm .tru-ring{color:var(--ring-c);flex:none}

/* ---- client switcher (search, recents, tiers; Cmd/Ctrl + K) ---- */
.cswitch{display:inline-flex;align-items:center;gap:10px;height:40px;max-width:340px;padding:0 10px 0 6px;border-radius:var(--tru-radius-full);border:1px solid var(--tru-chip-border);background:var(--tru-chip-bg);color:hsl(var(--foreground));font:600 var(--tru-text-sm)/1 var(--tru-font-sans);cursor:pointer;transition:all .2s var(--tru-ease)}
.cswitch:hover{border-color:hsl(var(--primary) / .5);box-shadow:0 0 18px hsl(var(--primary) / .15)}
.cswitch .tru-ring{--size:28px}
.cs-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.cs-chev{width:15px;height:15px;color:hsl(var(--muted-foreground));flex:none}
.cs-kbd{flex:none}
@media(max-width:640px){.cs-kbd{display:none}}
.cs-scrim{position:fixed;inset:0;z-index:58;background:rgba(3,6,14,.35);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:tru-rise .15s both}
.cswitcher{position:fixed;top:90px;left:50%;transform:translateX(-50%);z-index:59;width:min(460px,calc(100vw - 24px));max-height:min(560px,calc(100vh - 110px));display:flex;flex-direction:column;padding:10px;border-radius:var(--tru-radius-lg);border:1px solid var(--tru-frame-border);background:var(--tru-frame-bg),hsl(var(--popover));box-shadow:var(--tru-frame-shadow),0 30px 60px -24px rgba(0,0,0,.65);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);animation:tru-rise .18s var(--tru-ease) both}
.cswitcher[style*="left"]{transform:none}
.cs-search{height:44px;border-radius:14px;padding:0 12px;background:hsl(var(--background) / .7)}
.cs-search svg{width:17px;height:17px;flex:none}
.cs-search input{height:40px;border:0!important;box-shadow:none!important;background:transparent!important;padding:0;font-size:15px}
.cs-list{overflow-y:auto;margin-top:8px;padding-right:2px;scrollbar-width:thin;scrollbar-color:hsl(var(--primary) / .45) transparent}
.cs-group{display:flex;justify-content:space-between;padding:12px 10px 6px}.cs-group span{color:hsl(var(--muted-foreground));letter-spacing:0}
.cs-item{display:flex;align-items:center;gap:12px;width:100%;padding:8px 10px;border:0;border-radius:12px;background:transparent;color:hsl(var(--foreground));text-align:left;cursor:pointer;font:inherit}
.cs-item.on{background:hsl(var(--primary) / .15);box-shadow:inset 0 0 0 1px hsl(var(--primary) / .35)}
.cs-item .tru-ring{--size:30px;flex:none}
.cs-t{display:flex;flex-direction:column;min-width:0;flex:1}.cs-t b{font:600 14px/1.25 var(--tru-font-sans);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cs-t small{font-size:12px;color:hsl(var(--muted-foreground));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cs-cur{font:700 10px/1 var(--tru-font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--tru-label)}
.cs-empty{padding:22px 10px;text-align:center;color:hsl(var(--muted-foreground))}
.cs-foot{display:flex;gap:14px;align-items:center;margin-top:8px;padding:10px 6px 2px;border-top:1px solid var(--tru-frame-border);font-size:12px;color:hsl(var(--muted-foreground))}
.cs-foot a{margin-left:auto;font-weight:600;color:var(--tru-label);text-decoration:none}
.cs-foot .tru-kbd{margin-right:3px}

/* ---- TruPortals Events ---- */
.evgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.evcard{padding:0;overflow:hidden}
.ev-cover{display:block;width:100%;height:140px;object-fit:cover;border-bottom:1px solid var(--tru-frame-border)}
.ev-body{padding:14px 16px 16px}
.ev-name{display:block;font:700 16px/1.3 var(--tru-font-display);margin-top:4px}
.ev-stats{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:10px;font-size:12.5px;color:hsl(var(--muted-foreground))}.ev-stats b{color:hsl(var(--foreground));font-size:14px}
.ev-thumb{width:40px;height:40px;border-radius:10px;object-fit:cover;flex:none;border:1px solid var(--tru-card-border)}
/* Fastest path to growth: slim strip + drawer */
.nm-strip{display:flex;align-items:center;gap:14px;width:100%;margin-top:14px;padding:10px 14px 10px 10px;text-align:left;cursor:pointer;color:var(--ink);border-radius:var(--tru-radius-lg,14px);border:1px solid var(--tru-frame-border,var(--line));background:var(--tru-frame-bg,var(--panel));box-shadow:var(--tru-frame-shadow,var(--shadow));transition:border-color .15s,transform .15s}
.nm-strip:hover{border-color:color-mix(in srgb,var(--ac) 50%,var(--line));transform:translateY(-1px)}
.nm-strip:focus-visible{outline:2px solid var(--ac);outline-offset:2px}
.nm-ico{position:relative;flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:color-mix(in srgb,var(--ac) 16%,transparent);color:var(--ac)}
.nm-ico svg{width:18px;height:18px}
.nm-dot{position:absolute;top:1px;right:1px;width:9px;height:9px;border-radius:50%;background:var(--ac);box-shadow:0 0 0 2px var(--bg);animation:nm-pulse 1.8s ease-in-out infinite}
@keyframes nm-pulse{50%{box-shadow:0 0 0 2px var(--bg),0 0 0 6px color-mix(in srgb,var(--ac) 25%,transparent)}}
.nm-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.nm-l{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink2);display:flex;align-items:center;gap:6px}
.nm-l svg{width:13px;height:13px;color:var(--ac)}
.nm-top{font-weight:650;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nm-chips{flex:none;display:flex;gap:6px}
.nm-chip{font-size:11.5px;font-weight:600;padding:4px 9px;border-radius:999px;white-space:nowrap}
.nm-chip.you{background:color-mix(in srgb,var(--ac) 18%,transparent);color:var(--ac-ink,var(--ac))}
.nm-chip.us{background:var(--panel2,rgba(127,127,127,.12));color:var(--ink2)}
.nm-go{flex:none;font-size:22px;line-height:1;color:var(--ink2);padding:0 2px}
@media (max-width:640px){.nm-strip{flex-wrap:wrap;gap:10px}.nm-txt{flex-basis:calc(100% - 80px)}.nm-chips{order:3;width:100%;padding-left:46px}.nm-go{margin-left:auto}}
.nm-scrim{position:fixed;inset:0;z-index:58;background:rgba(3,6,14,.4);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:nm-fade .18s both}
.nm-drawer{position:fixed;top:0;right:0;bottom:0;z-index:59;width:min(460px,100vw);display:flex;flex-direction:column;background:hsl(var(--popover,0 0% 100%));border-left:1px solid var(--line);box-shadow:var(--shadow-lg,0 20px 50px rgba(0,0,0,.4));animation:nm-in .22s cubic-bezier(.2,.8,.2,1) both}
.nm-drawer.out{animation:nm-out .18s ease-in both}.nm-scrim.out{animation:nm-fade .18s reverse both}
@keyframes nm-in{from{transform:translateX(24px);opacity:0}}@keyframes nm-out{to{transform:translateX(24px);opacity:0}}@keyframes nm-fade{from{opacity:0}}
.nm-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 20px 14px;border-bottom:1px solid var(--line)}
.nm-head h3{margin:4px 0 0;font:700 19px/1.25 var(--font-head)}
.nm-body{flex:1;overflow-y:auto;padding:6px 20px 24px;overscroll-behavior:contain}
.nm-sec{margin-top:16px}
@media (max-width:640px){.nm-drawer{top:auto;left:0;width:100vw;max-height:86vh;border-left:0;border-top:1px solid var(--line);border-radius:20px 20px 0 0;animation-name:nm-up}.nm-drawer.out{animation-name:nm-down}}
@keyframes nm-up{from{transform:translateY(40px);opacity:0}}@keyframes nm-down{to{transform:translateY(40px);opacity:0}}
.moves-h{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;padding-bottom:8px;border-bottom:1px solid var(--line)}
.moves-h b{font:700 14px/1.3 var(--font-head)}.moves-h span{font-size:12px;color:var(--ink2)}
.nm-body ul{list-style:none;margin:0;padding:0}
.move{display:grid;grid-template-columns:10px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.move:last-child{border-bottom:0}
.move b{font-size:14.5px;line-height:1.35}
.move-why{margin:4px 0 0;font-size:13px;line-height:1.5;color:var(--ink)}
.move-next{margin:4px 0 0;font-size:12.5px;line-height:1.5;color:var(--ink2)}
.move-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.move-imp{width:10px;height:10px;border-radius:50%;margin-top:5px;background:var(--ink3)}
.move-imp.i3{background:var(--ac)}.move-imp.i2{background:color-mix(in srgb,var(--ac) 55%,var(--line))}.move-imp.i1{background:var(--line)}
/* Account menu (top right) */
.ac-btn{display:inline-flex;align-items:center;gap:9px;height:42px;padding:3px 10px 3px 3px;border-radius:999px;border:1px solid var(--tru-frame-border,var(--line));background:var(--tru-frame-bg,var(--panel));color:var(--ink);cursor:pointer;max-width:240px;transition:border-color .15s}
.ac-btn:hover,.ac-btn[aria-expanded="true"]{border-color:color-mix(in srgb,var(--ac) 50%,var(--line))}
.ac-btn:focus-visible{outline:2px solid var(--ac);outline-offset:2px}
.ac-btn-txt{display:flex;flex-direction:column;min-width:0;text-align:left;line-height:1.15}
.ac-btn-txt b{font-size:13px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ac-btn-txt span{font-size:11px;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ac-chev{width:15px;height:15px;color:var(--ink2);flex:none}
@media (max-width:760px){.ac-btn-txt,.ac-chev{display:none}.ac-btn{padding:3px}}
.ac-av{--h:220;flex:none;display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;font:700 13px/1 var(--font);letter-spacing:.02em;color:#fff;background:linear-gradient(135deg,hsl(var(--h) 70% 52%),hsl(calc(var(--h) + 40) 70% 42%))}
.ac-av.lg{width:44px;height:44px;font-size:16px}
.ac-menu{position:fixed;z-index:70;width:min(320px,calc(100vw - 24px));padding:8px;border-radius:16px;border:1px solid var(--tru-frame-border,var(--line));background:hsl(var(--popover,0 0% 100%));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 24px 60px -12px rgba(0,0,0,.45),0 2px 8px rgba(0,0,0,.12);animation:ac-pop .14s cubic-bezier(.2,.8,.2,1) both}
@keyframes ac-pop{from{opacity:0;transform:translateY(-6px) scale(.98)}}
.ac-who{display:flex;gap:12px;align-items:center;padding:10px 10px 12px;border-bottom:1px solid var(--line)}
.ac-who div{display:flex;flex-direction:column;min-width:0}
.ac-who b{font-size:14.5px}.ac-who div>span{font-size:12.5px;color:var(--ink2);overflow:hidden;text-overflow:ellipsis}
.ac-who em{font-style:normal;font-size:11px;margin-top:3px;color:var(--ac-ink,var(--ac));font-weight:600}
.ac-items{padding:6px 0;border-bottom:1px solid var(--line)}
.ac-menu [role=menuitem]{display:flex;align-items:center;gap:12px;width:100%;padding:9px 10px;border:0;border-radius:10px;background:none;color:var(--ink);text-align:left;cursor:pointer}
.ac-menu [role=menuitem]:hover,.ac-menu [role=menuitem]:focus-visible{background:color-mix(in srgb,var(--ac) 10%,transparent);outline:none}
.ac-menu [role=menuitem] svg{width:18px;height:18px;color:var(--ink2);flex:none}
.ac-menu [role=menuitem] span{display:flex;flex-direction:column}.ac-menu [role=menuitem] b{font-size:13.5px;font-weight:600}.ac-menu [role=menuitem] small{font-size:11.5px;color:var(--ink2)}
.ac-theme{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px;border-bottom:1px solid var(--line)}
.ac-theme>span{font-size:12.5px;color:var(--ink2)}
.ac-theme div{display:flex;gap:2px;padding:2px;border-radius:999px;background:var(--panel2,rgba(127,127,127,.12))}
.ac-theme button{display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 10px;border:0;border-radius:999px;background:none;color:var(--ink2);font-size:12px;cursor:pointer}
.ac-theme button svg{width:14px;height:14px}
.ac-theme button.on{background:hsl(var(--popover,0 0% 100%));color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.15)}
.ac-menu .ac-out{margin-top:6px}.ac-menu .ac-out b{font-size:13.5px;font-weight:600}
/* Account sheets */
.ac-scrim{position:fixed;inset:0;z-index:66;background:rgba(3,6,14,.42);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:nm-fade .18s both}
.ac-scrim.out{animation:nm-fade .17s reverse both}
.ac-sheet{position:fixed;top:0;right:0;bottom:0;z-index:67;width:min(480px,100vw);display:flex;flex-direction:column;background:hsl(var(--popover,0 0% 100%));border-left:1px solid var(--line);box-shadow:0 20px 60px rgba(0,0,0,.4);animation:nm-in .22s cubic-bezier(.2,.8,.2,1) both}
.ac-sheet.wide{width:min(620px,100vw)}
.ac-sheet.out{animation:nm-out .17s ease-in both}
@media (max-width:640px){.ac-sheet,.ac-sheet.wide{top:auto;left:0;width:100vw;max-height:90vh;border-left:0;border-top:1px solid var(--line);border-radius:20px 20px 0 0;animation-name:nm-up}.ac-sheet.out{animation-name:nm-down}}
.ac-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 22px 14px;border-bottom:1px solid var(--line)}
.ac-head h3{margin:4px 0 0;font:700 19px/1.25 var(--font-head)}.ac-head p{margin:3px 0 0;font-size:13px;color:var(--ink2)}
.ac-head .iconbtn svg{width:18px;height:18px}
.ac-kicker{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink2)}
.ac-body{flex:1;overflow-y:auto;padding:4px 22px 28px;overscroll-behavior:contain}
.ac-load{padding:30px 0;color:var(--ink2)}
.ac-sec{padding:18px 0;border-bottom:1px solid var(--line)}.ac-sec:last-child{border-bottom:0}
.ac-sec h4{margin:0 0 10px;font:700 14px/1.3 var(--font-head);display:flex;align-items:center;gap:8px}
.ac-count{font:600 11px/1 var(--font);padding:3px 7px;border-radius:999px;background:var(--panel2,rgba(127,127,127,.14));color:var(--ink2)}
.ac-form{display:flex;flex-direction:column;gap:10px}
.ac-form label{display:flex;flex-direction:column;gap:5px;font-size:12.5px;color:var(--ink2)}
.ac-form input:not([type=checkbox]):not([type=radio]),.ac-form select{width:100%}
#ef input,#ef select{width:100%;min-width:0}
#nform input,#nform select,#nform textarea{width:100%;min-width:0}
.nrow{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.nrow>div{min-width:0;overflow-wrap:anywhere}.nrow .btn{flex:none}
.ac-form input[readonly]{opacity:.7}
.ac-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}.ac-grid .ac-span,.ac-grid .ac-locs,.ac-grid label:has(select){grid-column:1/-1}
@media (max-width:640px){.ac-grid{grid-template-columns:1fr}}
.ac-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ac-hint{margin:0;font-size:12.5px;line-height:1.5;color:var(--ink2)}
.ac-msg{font-size:12.5px}.ac-msg.ok{color:var(--good)}.ac-msg.bad{color:var(--bad)}
div.ac-msg{padding:10px 12px;border-radius:10px;background:var(--panel2,rgba(127,127,127,.1));margin-top:10px}
.ac-list{list-style:none;margin:0 0 10px;padding:0}
.ac-list li{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--line)}.ac-list small{width:100%;color:var(--ink2);font-size:12px}
.ac-chip{font:600 10.5px/1 var(--font);padding:4px 7px;border-radius:999px;background:var(--panel2,rgba(127,127,127,.14));color:var(--ink2);white-space:nowrap}
.ac-chip.owner{background:color-mix(in srgb,var(--ac) 18%,transparent);color:var(--ac-ink,var(--ac))}
.ac-chip.you{background:color-mix(in srgb,var(--good) 18%,transparent);color:var(--good)}
.ac-chip.warn{background:var(--warn-soft,rgba(245,158,11,.15));color:var(--warn)}
.ac-people{list-style:none;margin:0 0 12px;padding:0}
.ac-person{display:grid;grid-template-columns:34px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.ac-person:last-child{border-bottom:0}
.ac-pname{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.ac-pname b{font-size:14px}
.ac-pmain small{display:block;margin-top:3px;font-size:12px;color:var(--ink2)}
.ac-pact{display:flex;gap:14px;margin-top:6px}
.ac-link{border:0;background:none;padding:0;font-size:12.5px;font-weight:600;color:var(--ac-ink,var(--ac));cursor:pointer}.ac-link.danger{color:var(--bad)}
.ac-edit{margin-top:10px;padding:12px;border-radius:12px;background:var(--panel2,rgba(127,127,127,.08))}
.ac-locs{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:0;display:flex;flex-direction:column;gap:6px}
.ac-locs legend{font-size:12px;color:var(--ink2);padding:0 4px}
.ac-locs label{flex-direction:row;align-items:center;gap:8px;color:var(--ink);font-size:13px}
.ac-locbox{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:6px;padding:6px 0 0 22px}
.ac-pw{margin-top:12px;padding:14px;border-radius:12px;border:1px solid color-mix(in srgb,var(--ac) 40%,var(--line));background:color-mix(in srgb,var(--ac) 7%,var(--panel))}
.ac-pw pre{margin:10px 0;padding:10px 12px;border-radius:8px;background:var(--panel);border:1px solid var(--line);font:12.5px/1.6 ui-monospace,monospace;white-space:pre-wrap;user-select:all}
.ac-pw .btn svg{width:15px;height:15px;vertical-align:-3px;margin-right:4px}
.ac-legend{display:grid;gap:8px;margin-top:16px;padding:12px 14px;border-radius:12px;background:var(--panel2,rgba(127,127,127,.08));font-size:12.5px;line-height:1.5;color:var(--ink2)}
.ac-legend b{color:var(--ink)}
.ac-gate p{color:var(--ink2)}
/* An iPhone zooms the page when a field under 16px is tapped, and 44px is a tap that lands. */
.ac-gate input[type=password],.ac-gate input[type=text]{height:44px;font-size:16px}.ac-gate .btn{height:44px}
.ac-gate .ac-show{display:flex;align-items:center;gap:8px;min-height:44px;margin:4px 0 0;font-size:14px;font-weight:500;color:var(--ink);cursor:pointer}.ac-gate .ac-show input{padding:0}
/* Admin: per-business access rows */
.ufb{display:grid;gap:6px}
.ufb-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 10px;border:1px solid var(--line);border-radius:10px}
.ufb-row.on{border-color:color-mix(in srgb,var(--ac) 45%,var(--line));background:color-mix(in srgb,var(--ac) 5%,transparent)}
.ufb-on{display:flex;align-items:center;gap:8px;flex:1;min-width:200px;font-size:13.5px}.ufb-on small{color:var(--ink2)}
.ufb-row select{width:auto;min-width:140px}
.ufb-locs{display:flex;flex-wrap:wrap;gap:6px 14px;width:100%;padding:4px 0 0 26px;font-size:12.5px}.ufb-locs small{color:var(--ink2)}
.ufb-locs label{display:flex;align-items:center;gap:6px}
.acct{display:inline-flex;margin-left:6px}
.ac-sheet [hidden],.ac-menu [hidden],.ufb [hidden]{display:none!important}
/* TruCreatives logo: white TRU wordmark on the brand blue */
.tru-logo{flex:none;display:inline-grid;place-items:center;height:38px;padding:0 11px;border-radius:11px;background:linear-gradient(135deg,#2c488e,#3b82f6);box-shadow:0 6px 18px -6px rgba(44,72,142,.55),inset 0 1px 0 rgba(255,255,255,.18)}
.tru-logo img{display:block;height:13px!important;width:auto!important;max-width:none;background:none!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important}
.tru-logo.lg{height:46px;padding:0 14px;border-radius:13px}.tru-logo.lg img{height:16px!important}
.tru-logo.sm{height:22px;padding:0 7px;border-radius:7px;box-shadow:none}.tru-logo.sm img{height:8px!important}
.login-brand{margin-bottom:24px}
.foot-brand{display:flex;align-items:center;gap:8px;margin-top:10px;color:var(--ink2);font-weight:500}
/* Client header: identity and account on top, date filters underneath */
.hrow-top{padding-bottom:8px}
.hrow-top .tools{margin-left:auto;flex-wrap:nowrap}
.hrow-sub{padding-top:0;padding-bottom:12px;justify-content:flex-start}
@media(max-width:640px){.hrow-top .cs-name{max-width:110px}.hrow-sub{padding-bottom:10px}}
body.embed .acct{display:none}
.brand .tru-logo,.tru-logo{display:inline-grid!important;place-items:center;margin:0!important;line-height:0!important;font-size:0!important}
/* Header tools stay on one line: search, switcher, account */
header .hrow>.tools{flex-wrap:nowrap;margin-left:auto}
header .tools .search{width:260px;max-width:34vw;height:40px}
@media(max-width:640px){header .tools .search{width:auto;flex:1;max-width:none}header .hrow>.tools{width:100%}}
@media(max-width:640px){.hrow-top .tools .cswitch{flex:1;min-width:0}.hrow-top .tools .acct{margin-left:auto}}
/* TRU wordmark only, no tile: brand blue on light, white on dark */
.tru-logo,.brand .tru-logo{height:auto!important;padding:0!important;border-radius:0!important;background:none!important;box-shadow:none!important}
.tru-logo img{height:22px!important}
.tru-logo.lg img{height:34px!important}
.tru-logo.sm img{height:11px!important}
.tru-logo .tl-d{display:none!important}
[data-theme="dark"] .tru-logo .tl-l{display:none!important}[data-theme="dark"] .tru-logo .tl-d{display:block!important}
@media (prefers-color-scheme:dark){[data-theme="system"] .tru-logo .tl-l{display:none!important}[data-theme="system"] .tru-logo .tl-d{display:block!important}}
.login-brand{display:flex;margin-bottom:26px}
.tru-page{display:inline-block!important;margin:0 0 0 4px!important;padding-left:14px;border-left:1px solid var(--line);font:600 13px/1.2 var(--font)!important;letter-spacing:.02em;color:var(--ink2)!important}
/* Home: business finder */
.home-find{position:relative;display:flex;align-items:center;width:300px;max-width:40vw}
.home-find svg{position:absolute;left:13px;width:16px;height:16px;color:var(--ink2);pointer-events:none}
.home-find .search{width:100%!important;max-width:none!important;padding-left:38px;padding-right:52px}
.home-find kbd{position:absolute;right:10px;font:600 10.5px/1 var(--font);padding:4px 6px;border-radius:6px;border:1px solid var(--line);color:var(--ink2);background:var(--panel2,transparent);pointer-events:none}
@media(max-width:640px){.home-find{flex:1;width:auto;max-width:none}.home-find kbd{display:none}}
/* Pulse: this week tiles + wins feed */
.tiles.pulse{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.feed-top{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-bottom:12px}
.ft{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:var(--tru-radius-lg,14px);border:1px solid var(--tru-frame-border,var(--line));background:var(--tru-frame-bg,var(--panel));box-shadow:var(--tru-frame-shadow,var(--shadow));color:var(--ink);text-decoration:none;transition:transform .15s,border-color .15s;position:relative;overflow:hidden}
.ft::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--tru-gradient-brand,var(--ac))}
.ft:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--ac) 45%,var(--line));color:var(--ink)}
.ft>div{min-width:0}.ft-biz{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink2);margin-bottom:3px}
.ft b{display:block;font:700 15px/1.3 var(--font-head)}.ft p{margin:4px 0 0;font-size:12.5px;line-height:1.45;color:var(--ink2)}
.ft-day{display:inline-block;margin-top:6px;font-size:11px;color:var(--ink3)}
.feed .seg.mini button span{opacity:.6;margin-left:4px;font-weight:500}
.fd{margin-top:10px}
.fd-day{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink2);padding:14px 4px 4px;border-bottom:1px solid var(--line)}
.fd-day:first-child{padding-top:4px}
.fi{display:flex;align-items:center;gap:12px;padding:10px 6px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none;border-radius:8px}
.fi:hover{background:color-mix(in srgb,var(--ac) 6%,transparent);color:var(--ink)}
.fi[hidden]{display:none}
.fi-main{flex:1;min-width:0}.fi-h b{font-size:14px;line-height:1.35}
.fi-sub{font-size:12.5px;color:var(--ink2);line-height:1.45;margin-top:2px}.fi-biz{font-weight:600;color:var(--ink)}
.fi-kind{flex:none;font:600 10.5px/1 var(--font);letter-spacing:.06em;text-transform:uppercase;padding:5px 8px;border-radius:999px;background:color-mix(in srgb,var(--ac) 12%,transparent);color:var(--ac-ink,var(--ac));white-space:nowrap}
.fi.work .fi-kind,.wk-i.work .fi-kind{background:var(--panel2,rgba(127,127,127,.12));color:var(--ink2)}
@media(max-width:640px){.fi{flex-wrap:wrap}.fi-kind{order:3;margin-left:46px}}
/* Client page: this week */
.wk-list{list-style:none;margin:0;padding:0}
.wk-i{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}.wk-i:last-child{border-bottom:0}
.wk-i b{font-size:13.5px;line-height:1.35}.wk-i small{display:block;font-size:12px;color:var(--ink2);margin-top:2px}
.wk-d{font-size:11px;color:var(--ink3);white-space:nowrap}
/* Mobile: grid children and cards must be allowed to shrink, otherwise a wide table zooms the whole page out on a phone */
.grid2>*,.grid3>*,.kpis>*,.tiles>*,.card,.tabcard,.wrap,.feed-top>*{min-width:0}
.tscroll{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.seg.mini,.tabcard .seg{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap}
.wk{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.card,.tile,.kpi{overflow-wrap:anywhere}
@media(max-width:640px){
  .wk-grid{min-width:700px}
  .tplink{min-height:34px;display:inline-flex;align-items:center}
  .chip{font-size:11px}
  .ranges-wrap{position:relative}
  .hrow-sub .seg{-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent)}
  .rv-list .rv a,.gbp-post a{display:inline-block;padding:6px 0}
}
/* Mobile: the local map card's two-column layout (grid visual beside its stats) stacks on phones */
@media(max-width:760px){#hm-body>div[style*="grid-template-columns"]{grid-template-columns:1fr!important}#hm-body .kpis{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))!important}#hm-body>div>*{min-width:0;max-width:100%}}
@media(max-width:640px){.card td a:not(.btn):not(.tplink):not(.chip),.rv a,.note a{display:inline-block;padding:7px 0}}
/* Business switcher: a bottom sheet on phones */
@media(max-width:640px){.cswitcher,.cswitcher[style*="left"]{top:auto!important;bottom:0;left:0!important;right:0;width:100%;max-height:82vh;transform:none!important;border-radius:20px 20px 0 0;padding-bottom:max(10px,env(safe-area-inset-bottom));animation:nm-up .2s cubic-bezier(.2,.8,.2,1) both}.cs-foot .tru-kbd,.cs-foot>span:not(:last-child){display:none}}
/* Wins feed: dropdown + swipe to clear */
.feed-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:4px 0;border:0;background:none;color:var(--ink);text-align:left;cursor:pointer}
.feed-toggle span{display:flex;flex-direction:column;gap:2px}.feed-toggle b{font:700 14.5px/1.3 var(--font-head)}.feed-toggle small{font-size:12px;color:var(--ink2)}
.feed-toggle svg{width:18px;height:18px;color:var(--ink2);flex:none;transition:transform .2s}.feed.is-open .feed-toggle svg{transform:rotate(180deg)}
.feed-body{margin-top:8px}
.fi-wrap{--dx:0px;position:relative;overflow:hidden;border-radius:8px;transition:max-height .22s,opacity .2s;max-height:160px}
.fi-wrap.gone{max-height:0;opacity:0;margin:0}
.fi-wrap .fi{position:relative;transform:translateX(var(--dx));transition:transform .18s;background:var(--panel);touch-action:pan-y}
.fi-wrap.swiping .fi{transition:none}
.fi-under{position:absolute;inset:0;display:flex;align-items:center;justify-content:flex-end;padding-right:18px;background:var(--bad);color:#fff;font:700 13px/1 var(--font);border-radius:8px}
.fi-x{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:28px;height:28px;border:0;border-radius:50%;background:var(--panel2,rgba(127,127,127,.15));color:var(--ink2);cursor:pointer;opacity:0;transition:opacity .15s;font-size:12px}
.fi-wrap:hover .fi-x{opacity:1}.fi-wrap:hover .fi .fi-kind{opacity:0}
@media(pointer:coarse){.fi-x{display:none}}
.wk-i.late .wk-d{color:var(--bad);font-weight:600}
.td-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:80;display:flex;align-items:center;gap:14px;padding:12px 16px;border-radius:999px;background:var(--ink);color:var(--bg);font-size:13.5px;box-shadow:0 10px 30px rgba(0,0,0,.3);animation:nm-up .2s both}
.td-toast button{border:0;background:none;color:var(--ac);font-weight:700;cursor:pointer;font-size:13.5px}
@media(max-width:640px){.td-toast{bottom:84px;width:calc(100vw - 32px);justify-content:space-between}}
@media(max-width:640px){.fd .fi{flex-wrap:nowrap;padding:12px 6px}.fd .fi .fi-kind,.wk-i .fi-kind{display:none}.wk-i{grid-template-columns:1fr auto}.fd .fi-h b{font-size:14px}.ft{padding:12px 14px}}
.fi-wrap .fi{-webkit-user-drag:none;user-select:none;-webkit-touch-callout:none}.fi-wrap .fi *{-webkit-user-drag:none}
.feed-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.btn.ghost.danger{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,transparent)}
@media(max-width:640px){.feed-actions .btn{flex:1}}
/* Mobile tables: never break words letter-by-letter; text columns keep a readable width and the wrapper scrolls sideways */
@media(max-width:640px){
  .tscroll table{min-width:100%}
  .tscroll th,.tscroll td{overflow-wrap:normal}
  .tscroll th{white-space:nowrap}
  .tscroll td:not(.num):not(.r){min-width:150px}
  .tscroll td.tc-wide:not(.num):not(.r){min-width:230px}
  .tscroll td.tc-tight:not(.num):not(.r){min-width:0}
  .tscroll table{font-size:13px}
}
/* Header: the business switcher shows the whole name (wraps to two lines on phones) and the theme toggle sits beside the account menu */
.cswitch{max-width:440px}
#theme.iconbtn{flex:none;width:38px;height:38px;border-radius:var(--tru-radius-full,999px)}
@media(max-width:640px){
  .cswitch{flex:1 1 auto;max-width:none;min-width:0;height:auto;min-height:40px;padding:5px 10px 5px 6px}
  .cswitch .cs-name{white-space:normal;line-height:1.15;font-size:13px;overflow:visible;text-overflow:clip;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .cs-kbd{display:none}
}
/* ---- Multi-store businesses: store picker, network table, store page, deals ---- */
.chip.ok{--c:var(--good)}.chip.bad{--c:var(--bad)}
.btn.sm{padding:6px 11px;font-size:12.5px;border-radius:8px}.btn.sm svg{width:15px;height:15px}
.storebar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px}
.storepick{display:inline-flex;align-items:center;gap:12px;min-width:260px;max-width:100%;padding:9px 14px 9px 10px;border-radius:14px;border:1px solid var(--tru-chip-border,var(--line2));background:var(--panel);color:var(--ink);cursor:pointer;text-align:left;box-shadow:var(--tru-frame-shadow,none)}
.storepick:hover{border-color:hsl(var(--primary) / .5)}
.storepick>svg:first-child{width:26px;height:26px;color:var(--ac);flex:none}
.sp-t{display:flex;flex-direction:column;min-width:0;flex:1}.sp-t b{font:700 15px/1.25 var(--font-head)}.sp-t small{font-size:12px;color:var(--ink2)}
.storepick .cs-chev{width:16px;height:16px;color:var(--ink2);flex:none}
.sb-scope{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;color:var(--ink2)}.sb-scope svg{width:18px;height:18px;color:var(--ac)}.sb-scope b{color:var(--ink)}
.st-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:middle;flex:none}
.st-dot.ok{background:var(--good)}.st-dot.warn{background:var(--warn)}.st-dot.bad{background:var(--bad)}
.setup-alert{display:flex;gap:14px;align-items:flex-start;margin-top:14px;padding:16px 18px;border-radius:var(--tru-radius-lg,14px);border:1px solid color-mix(in srgb,var(--bad) 40%,transparent);background:color-mix(in srgb,var(--bad) 7%,var(--panel))}
.setup-alert .sa-ico{flex:none;width:38px;height:38px;border-radius:12px;display:grid;place-items:center;color:var(--bad);background:color-mix(in srgb,var(--bad) 14%,transparent)}.setup-alert .sa-ico svg{width:20px;height:20px}
.setup-alert b{font:700 15.5px/1.35 var(--font-head)}.setup-alert p{margin:4px 0 0;font-size:13px;color:var(--ink2);line-height:1.5}
.sa-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.sa-chip{display:inline-flex;align-items:center;gap:2px;padding:6px 10px;border-radius:10px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font:600 12.5px/1.2 var(--font);cursor:pointer;text-align:left}
.sa-chip span{font-weight:500;color:var(--ink2);margin-left:6px}.sa-chip:hover{border-color:color-mix(in srgb,var(--bad) 45%,var(--line))}
.setup-ok{display:flex;align-items:center;gap:10px;margin-top:14px;padding:12px 16px;border-radius:12px;background:var(--good-soft);color:var(--good);font-weight:600}.setup-ok svg{width:18px;height:18px}
.st-kpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.kpi .v .of{font-size:.55em;color:var(--ink2);font-weight:600;margin-left:2px}
.st-table tr.has-bad td:first-child{box-shadow:inset 3px 0 0 var(--bad)}
.setup-pill{display:inline-flex;align-items:center;gap:0;padding:4px 9px;border-radius:999px;font:700 12px/1 var(--font);white-space:nowrap;background:var(--panel2)}
.setup-pill .st-dot{width:7px;height:7px;margin-right:3px}.setup-pill.bad{color:var(--bad)}.setup-pill.warn{color:var(--warn)}.setup-pill.ok{color:var(--good)}
h2.brand-h{margin-top:34px}
details.brandwide{margin-top:24px;border-top:1px solid var(--line);padding-top:6px}
details.brandwide>summary{cursor:pointer;list-style:none;display:flex;flex-direction:column;gap:2px;padding:12px 4px}
details.brandwide>summary::-webkit-details-marker{display:none}
details.brandwide>summary span{font:700 16px/1.3 var(--font-head)}details.brandwide>summary span::before{content:"▸ ";color:var(--ac)}details.brandwide[open]>summary span::before{content:"▾ "}
details.brandwide>summary small{font-size:12.5px;color:var(--ink2)}
.store-hero{margin-top:14px;padding:18px 20px}
.sh-top{display:flex;gap:16px;align-items:flex-start}
.sh-ring{--size:52px;flex:none}.sh-ring svg{width:26px;height:26px}
.sh-id{flex:1;min-width:0}.sh-meta{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:4px}
.sh-name{font:800 26px/1.15 var(--tru-font-display,var(--font-head));letter-spacing:-.01em}
.sh-addr{margin-top:4px;font-size:13.5px;color:var(--ink2)}.sh-addr a{color:inherit}
.sh-ppl{margin-top:4px;font-size:13px;color:var(--ink2)}.sh-ppl b{color:var(--ink);font-weight:600}
.sh-links{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.sh-links button.tplink{border:0;background:none;cursor:pointer;font:inherit}
.sh-score{flex:none;display:flex;flex-direction:column;align-items:center;gap:2px}.sh-score span{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink2)}
.sh-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.sh-kpis>div{display:flex;flex-direction:column;gap:2px;min-width:0}.sh-kpis span{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2)}
.sh-kpis b{font:800 22px/1.2 var(--font-head)}.sh-kpis small{font-size:12px;color:var(--ink2)}
.gates{display:grid;gap:10px;margin-top:14px}
.gate{display:flex;gap:14px;padding:16px 18px;border-radius:var(--tru-radius-lg,14px);border:1px solid color-mix(in srgb,var(--bad) 40%,transparent);background:color-mix(in srgb,var(--bad) 7%,var(--panel))}
.gate-ico{flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;color:var(--bad);background:color-mix(in srgb,var(--bad) 14%,transparent)}.gate-ico svg{width:21px;height:21px}
.gate-b{flex:1;min-width:0}.gate-h{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.gate-h b{font:700 16px/1.3 var(--font-head)}
.gate p{margin:6px 0 0;font-size:13.5px;line-height:1.55;color:var(--ink2)}.gate p.gate-next{color:var(--ink)}
.who{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;font:700 10.5px/1 var(--font);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.who.you{background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn)}.who.us{background:var(--ac-soft);color:var(--ac-ink,var(--ac))}
.warnlist{margin-top:12px}.warnlist ul{list-style:none;margin:8px 0 0;padding:0}.warnlist li{display:flex;gap:8px;align-items:flex-start;padding:8px 0;border-top:1px solid var(--line);font-size:13.5px;line-height:1.5}.warnlist li:first-child{border-top:0}.warnlist li>span:nth-child(2){flex:1}.warnlist .st-dot{margin-top:6px}
.admin-note{margin-top:10px;padding:10px 12px;border-radius:10px;background:var(--panel2)}
.perf-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}
.perf-tiles>div{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:12px;background:var(--panel2);min-width:0}
.perf-tiles span{font-size:11.5px;color:var(--ink2)}.perf-tiles b{font:800 20px/1.2 var(--font-head)}.perf-tiles small{font-size:11.5px;color:var(--ink2)}
.health .hb{display:grid;grid-template-columns:100px 1fr 34px;gap:10px;align-items:center;margin-top:7px;font-size:12.5px}
.health .hb>div{height:7px;border-radius:4px;background:var(--panel2);overflow:hidden}.health .hb i{display:block;height:7px;border-radius:4px}.health .hb b{text-align:right;font-size:12.5px}
.rv-mini{list-style:none;margin:8px 0 0;padding:0}.rv-mini li{padding:9px 0;border-top:1px solid var(--line);font-size:13px}.rv-mini li:first-child{border-top:0}.rv-mini p{margin:4px 0 0;color:var(--ink2);line-height:1.5}
.stars{color:#F59E0B;letter-spacing:1px}.stars span{color:var(--line2,#d6dbe5)}
.ad-list{list-style:none;margin:12px 0 0;padding:0}
.ad-row{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--line)}.ad-row:first-child{border-top:0}
.ad-l{display:flex;gap:10px;min-width:0;flex:1}.ad-l>div{min-width:0}.ad-l b{font-size:13.5px}
.ad-plat{flex:none;align-self:flex-start;padding:3px 7px;border-radius:7px;font:700 10.5px/1.2 var(--font);color:#fff;background:#1877F2}.ad-plat.gads{background:#1A73E8;background:linear-gradient(135deg,#4285F4,#34A853)}
.ad-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}
.ad-r{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right}.ad-r b{font:800 17px/1.2 var(--font-head)}.ad-r small{font-size:11.5px;color:var(--ink2)}
details.explain{margin-top:6px}details.explain summary{cursor:pointer;font-size:12.5px;font-weight:600;color:var(--ac);list-style:none;display:inline-flex;align-items:center;gap:4px}
details.explain summary::-webkit-details-marker{display:none}details.explain summary::before{content:"?";display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;background:var(--ac-soft);font-size:11px}
details.explain p{margin:6px 0 0;padding:10px 12px;border-radius:10px;background:var(--panel2);font-size:13px;line-height:1.55;color:var(--ink)}
.empty-big{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:22px 12px;color:var(--ink2)}.empty-big svg{width:30px;height:30px;color:var(--bad)}.empty-big b{color:var(--ink);font-size:15px}.empty-big p{margin:0;max-width:420px;font-size:13px;line-height:1.55}
.deal-list{list-style:none;margin:10px 0 0;padding:0}
.deal-row{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--line)}.deal-row:first-child{border-top:0}
.dl-l{display:flex;gap:10px;min-width:0;flex:1}.dl-l>div{min-width:0}
.dl-img{width:52px;height:52px;border-radius:10px;object-fit:cover;flex:none;background:var(--panel2)}.dl-img.ph{display:grid;place-items:center;color:var(--ac)}.dl-img.ph svg{width:20px;height:20px}
.dl-det{margin:4px 0 0;font-size:12.5px;color:var(--ink2);line-height:1.5}
.dl-r{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:6px}.dl-act{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.deal-st{padding:4px 9px;border-radius:999px;font:700 11px/1.2 var(--font);background:var(--panel2);color:var(--ink2);white-space:nowrap}
.deal-st.submitted{background:color-mix(in srgb,var(--warn) 16%,transparent);color:var(--warn)}.deal-st.approved{background:var(--ac-soft);color:var(--ac-ink,var(--ac))}.deal-st.live{background:var(--good-soft);color:var(--good)}.deal-st.rejected{color:var(--bad)}
.effort{list-style:none;margin:10px 0 0;padding:0}.effort li{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-top:1px solid var(--line);font-size:13.5px}.effort li:first-child{border-top:0}.effort .tru-ring{--size:30px;flex:none}.effort .tru-ring svg{width:15px;height:15px}
.smoves{margin:10px 0 0;padding-left:20px}.smoves li{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--line)}.smoves li:first-child{border-top:0}.smoves li>div{flex:1;min-width:0}.smoves p{margin:3px 0 0;font-size:13px;color:var(--ink2);line-height:1.5}
.df{display:grid;gap:12px}.df label{display:grid;gap:5px;font-size:12.5px;font-weight:600;color:var(--ink2)}.df input[type=text],.df input:not([type]),.df input[type=date],.df textarea{font:inherit;font-weight:400}
.df fieldset{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:0}.df legend{font-size:12.5px;font-weight:700;color:var(--ink2);padding:0 4px}
.df-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:4px 10px;max-height:220px;overflow:auto;margin-top:6px}
.df-grid label,.df-ch label,.df-all{display:flex;align-items:center;gap:6px;font-weight:500;color:var(--ink);font-size:13px}
.df-ch{display:flex;flex-wrap:wrap;gap:6px 14px}.df-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.df-prev{max-width:100%;max-height:200px;border-radius:10px;object-fit:cover}.df-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
@media(max-width:900px){.sh-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){
  .storepick{min-width:0;width:100%}
  .sh-top{flex-wrap:wrap}.sh-name{font-size:22px}.sh-score{order:-1;margin-left:auto}
  .sh-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.sh-kpis b{font-size:19px}
  .perf-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.perf-tiles.three{grid-template-columns:repeat(3,minmax(0,1fr))}.perf-tiles.three b{font-size:16px}
  .gate{padding:14px}.gate-ico{width:34px;height:34px}
  .ad-row,.deal-row{flex-wrap:wrap}.ad-r,.dl-r{align-items:flex-start;flex-direction:row;flex-wrap:wrap;gap:8px;width:100%;padding-left:0}
  .smoves li{flex-wrap:wrap}.df-row{grid-template-columns:1fr}.health .hb{grid-template-columns:86px 1fr 30px}
}
.st-table td:first-child{min-width:190px}.st-table th,.st-table td:not(:first-child){white-space:nowrap}
.st-table td .note{white-space:normal}
/* The store map card reuses the heatmap grid; it needs the same phone rules as the brand-level card. */
#shm-body>div>*{min-width:0;max-width:100%}
@media(max-width:760px){#shm-body>div[style*="grid-template-columns"]{grid-template-columns:1fr!important;justify-items:start}#shm-body .kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
.df .df-all,.df .df-grid label,.df .df-ch label{display:flex;align-items:center;gap:6px}
/* Store operations (2026-10-23): phone line, gas prices, requests, sales */
.df input[type=number],.df input[type=month],.df input[inputmode]{font:inherit;font-weight:400}
.kv{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}.kv li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:13px}.kv li>span:first-child{color:var(--ink2);min-width:130px}
.price-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}.price-row>div{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:12px;background:var(--panel2);min-width:0}.price-row span{font-size:11.5px;color:var(--ink2)}.price-row b{font:800 18px/1.2 var(--font-head)}
.price-edit{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.price-edit[hidden]{display:none}
.card .hd .hd-r{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:flex-end}
.chip:empty{display:none}
@media(max-width:760px){.price-row,.price-edit{grid-template-columns:repeat(2,minmax(0,1fr))}.kv li>span:first-child{min-width:0;width:100%}.card .hd{flex-wrap:wrap;gap:6px}}
/* Admin: the list of businesses. One row each, so 35 fit on a screen. */
.bizbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px}
.bizbar .search{flex:1 1 220px;max-width:none}
.card.bizlist{padding:0;overflow:hidden}
.bizrow{display:flex;align-items:center;border-top:1px solid var(--line)}
.bizrow:first-child{border-top:0}
.bizrow:hover{background:var(--ac-soft)}
.bizrow.off{opacity:.55}
.bizmain{flex:1;min-width:0;display:grid;grid-template-columns:minmax(190px,1.2fr) minmax(120px,.7fr) minmax(0,2.4fr);gap:14px;align-items:center;padding:10px 16px;color:inherit;text-decoration:none}
.bizname{display:flex;align-items:center;gap:10px;min-width:0}
.bizname b{display:block;font-size:14px;font-weight:600;line-height:1.25}
.bizname small{display:block;font-size:12px;color:var(--ink3);line-height:1.3}
.bizdot{flex:none;width:9px;height:9px;border-radius:50%}
.bizst{font-size:13px;white-space:nowrap}
.bizconn{font-size:12.5px;color:var(--ink2);line-height:1.5}
.bizconn span{white-space:nowrap}
.bizconn i{font-style:normal;margin:0 6px;opacity:.5}
.bizbad{color:var(--bad);font-weight:600}
.bizwarn{color:var(--warn);font-weight:600}
.bizgo{flex:none;padding:10px 16px 10px 0;font-size:13px;color:var(--ink2);white-space:nowrap}
.bizgo:hover{color:var(--ink)}
.btn.ghost.danger:hover{border-color:var(--bad)}
.bizconn .bizoff{opacity:.5}
input:disabled,#uf input[readonly]{opacity:.6;cursor:not-allowed}
@media(max-width:760px){.bizmain{grid-template-columns:minmax(0,1fr);gap:3px;padding:10px 12px}.bizconn{display:block}.bizgo{padding-right:12px}}
/* Admin > Users */
.urow{display:grid;grid-template-columns:minmax(170px,1fr) minmax(0,1.7fr) 64px 292px;gap:14px;align-items:center;padding:11px 16px;border-top:1px solid var(--line)}
.urow:first-child{border-top:0}.urow.off{opacity:.55}
.uwho{min-width:0}.uwho b{display:block;font-size:14px;font-weight:600;line-height:1.25;overflow-wrap:anywhere}.uwho small,.usees small,.useen small{display:block;font-size:12px;color:var(--ink3);line-height:1.35;overflow-wrap:anywhere}
.usees{min-width:0;font-size:13px;line-height:1.4}.usees b{font-weight:600}.uflag{color:var(--warn)}
.useen{font-size:12.5px;white-space:nowrap}
.uact{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.btn.sm{padding:6px 10px;font-size:12.5px}
.ureq{grid-template-columns:minmax(170px,1fr) minmax(0,1.7fr) 64px 292px}.ureq .uact{grid-column:4}
.ureqs{margin-bottom:12px}.ureqs-h{padding:12px 16px 10px}.ureqs-h small{display:block;margin-top:4px;font-size:12.5px;color:var(--ink2)}
#udrawer{position:fixed;inset:0;z-index:66}
.udr-back{position:absolute;inset:0;background:rgba(5,8,18,.45)}
.udr{position:absolute;top:0;right:0;bottom:0;width:min(620px,100vw);display:flex;flex-direction:column;background:hsl(var(--popover,0 0% 100%));border-left:1px solid var(--line);box-shadow:0 20px 60px rgba(0,0,0,.4)}
.udr [hidden]{display:none!important}
.udr-h{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line)}.udr-h b{font-size:16px}.udr-h small{display:block;font-size:12.5px;color:var(--ink3);overflow-wrap:anywhere}
.udr-b{flex:1;min-height:0;overflow-y:auto;padding:16px 20px 20px}.udr-b h4{margin:18px 0 8px;font-size:13px;font-weight:600}
.udr-b label{font-size:12.5px;color:var(--ink2)}.udr-b input[type=email],.udr-b input[type=text]{width:100%;margin-top:4px}.udr-b input[readonly]{opacity:.6}
.udr-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.upresets{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}
.upreset{display:block;text-align:left;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:none;color:inherit;cursor:pointer;font:inherit}
.upreset b{display:block;font-size:13.5px;font-weight:600}.upreset small{display:block;margin-top:3px;font-size:12px;line-height:1.35;color:var(--ink2)}
.upreset.on{border-color:var(--ac);background:color-mix(in srgb,var(--ac) 9%,transparent)}.upreset:disabled{opacity:.55;cursor:not-allowed}
.uchosen{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.uchip{border:1px solid color-mix(in srgb,var(--ac) 45%,var(--line));background:color-mix(in srgb,var(--ac) 8%,transparent);color:inherit;border-radius:999px;padding:4px 10px;font:500 12.5px/1.3 var(--font);cursor:pointer}
#ubq{width:100%;max-width:none}
.upicklist{margin-top:8px;border:1px solid var(--line);border-radius:10px;max-height:46vh;overflow-y:auto}
.upb{padding:9px 12px;border-top:1px solid var(--line)}.upb:first-child{border-top:0}.upb.on{background:color-mix(in srgb,var(--ac) 5%,transparent)}
.upb-top{display:flex;align-items:center;gap:10px;justify-content:space-between;flex-wrap:wrap}
.upb .upb-name{display:flex;align-items:center;gap:8px;flex:1;min-width:170px;font-size:13.5px;color:inherit;cursor:pointer}.upb-name small{margin-left:6px;font-size:12px;color:var(--ink3)}
.upb select{width:auto;min-width:150px}.upb-why{margin:5px 0 0 24px;font-size:12px}
.ulocs{margin:8px 0 2px 24px}.uscope{display:flex;flex-wrap:wrap;gap:6px 16px;margin-bottom:6px}.uscope label{display:flex;align-items:center;gap:6px;font-size:12.5px}
.ulq{width:100%;max-width:none;margin-bottom:6px}
.ulgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:4px 12px;max-height:220px;overflow-y:auto}.ulgrid label{display:flex;align-items:center;gap:6px;font-size:12.5px;color:inherit}
.ucheck{display:flex;align-items:center;gap:8px;margin-top:16px;flex-wrap:wrap}.ucheck small{color:var(--ink3);font-size:12px}
.upass{margin-top:14px;font-size:12.5px}.upass summary{cursor:pointer;color:var(--ink2)}.upass label{display:block;margin-top:8px}
.udr-f{padding:12px 20px 16px;border-top:1px solid var(--line)}
.usum{font-size:13px;line-height:1.45;margin-bottom:8px}.usum small{display:block;font-size:12px;color:var(--ink3)}
.udr-btns{display:flex;gap:8px;margin-top:8px}.uout:empty,#uerr:empty{display:none}
@media(max-width:760px){.urow,.ureq{grid-template-columns:1fr;gap:6px}.useen{display:flex;gap:6px}.useen small{display:inline}.uact{justify-content:flex-start}.udr-2{grid-template-columns:1fr}.upresets{grid-template-columns:1fr}.upicklist{max-height:none;overflow:visible}.ulocs{margin-left:0}.upb-why{margin-left:0}}

