:root{
  /* Layout idea: a quiet, violet-tinted workspace. One loud element per screen (the "next step" strip).
     Navigation never moves: a labelled rail on desktop, a four-tab bar on phones. */
  --bg:#F6F5FA; --surface:#FFFFFF; --surface-2:#FAF9FD; --ink:#1C1929; --muted:#676179;
  --line:#E5E2EE; --line-strong:#CCC7DB;
  --accent:#6A3FD8; --accent-ink:#FFFFFF; --accent-soft:#EEE9FC; --accent-text:#5631B8;
  --ok:#17794F; --ok-soft:#E1F3EA; --warn:#8A5A00; --warn-soft:#FFF1CC; --bad:#B4301F; --bad-soft:#FCE5E1;
  --info-soft:#ECEAF2;
  --font-display:'Bricolage Grotesque','Figtree',system-ui,sans-serif;
  --font-body:'Figtree',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --r-sm:8px; --r:12px; --r-lg:18px;
  --shadow:0 1px 2px rgba(28,25,41,.05),0 8px 24px -14px rgba(28,25,41,.22);
  --rail:272px; --bar:44px;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#131119; --surface:#1C1925; --surface-2:#221F2D; --ink:#EEEBF7; --muted:#A49EB8;
    --line:#2E2A3C; --line-strong:#463F5C;
    --accent:#9B7BFF; --accent-ink:#14101F; --accent-soft:#2A2244; --accent-text:#BBA6FF;
    --ok:#5FD3A0; --ok-soft:#143326; --warn:#F2C257; --warn-soft:#3A2E0E; --bad:#FF8E7E; --bad-soft:#43201B;
    --info-soft:#2A2736; --shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px -14px rgba(0,0,0,.7);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#131119; --surface:#1C1925; --surface-2:#221F2D; --ink:#EEEBF7; --muted:#A49EB8;
  --line:#2E2A3C; --line-strong:#463F5C;
  --accent:#9B7BFF; --accent-ink:#14101F; --accent-soft:#2A2244; --accent-text:#BBA6FF;
  --ok:#5FD3A0; --ok-soft:#143326; --warn:#F2C257; --warn-soft:#3A2E0E; --bad:#FF8E7E; --bad-soft:#43201B;
  --info-soft:#2A2736; --shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px -14px rgba(0,0,0,.7);
  color-scheme:dark;
}

*,*::before,*::after{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 var(--font-body);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure{margin:0}
ul,ol{padding:0;list-style:none}
img,svg{max-width:100%;display:block}
a{color:var(--accent-text);text-decoration:none}
a:hover{text-decoration:underline}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
[hidden]{display:none !important}
h1,h2,h3{font-family:var(--font-display);letter-spacing:-.015em;line-height:1.2;text-wrap:balance}
.h1{font-size:26px;font-weight:700}
.h2{font-size:19px;font-weight:650}
.h3{font-family:var(--font-body);font-size:15px;font-weight:700;letter-spacing:0}
.muted{color:var(--muted)} .small{font-size:13px} .tiny{font-size:12px}
.num{font-variant-numeric:tabular-nums}
.strong{font-weight:650}
.prose{max-width:66ch}
.pre{white-space:pre-line}
.clamp2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.break{overflow-wrap:anywhere}

/* layout helpers */
.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.row.nowrap{flex-wrap:nowrap}
.row.top{align-items:flex-start}
.spread{justify-content:space-between}
.stack{display:flex;flex-direction:column;gap:12px}
.stack.sm{gap:6px} .stack.lg{gap:20px} .stack.xl{gap:28px}
.grow{flex:1 1 0;min-width:0}
.grid{display:grid;gap:16px}
.grid.cards{grid-template-columns:repeat(auto-fill,minmax(270px,1fr))}
.grid.two{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}
.grid.form{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px 14px}
.split{display:grid;gap:20px;grid-template-columns:minmax(0,1fr)}
@media (min-width:980px){.split{grid-template-columns:minmax(0,1fr) 340px;align-items:start}.split>.side{position:sticky;top:calc(var(--bar) + 76px)}}

/* icons */
.ic{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.ic.lg{width:22px;height:22px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:8px 14px;border-radius:var(--r);
  border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap}
.btn:hover{background:var(--surface-2);text-decoration:none;border-color:var(--muted)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.primary:hover{filter:brightness(1.08)}
.btn.ghost{border-color:transparent;background:transparent;color:var(--accent-text)}
.btn.ghost:hover{background:var(--accent-soft)}
.btn.danger{color:var(--bad);border-color:var(--bad)}
.btn.danger:hover{background:var(--bad-soft)}
.btn.ok{color:var(--ok);border-color:var(--ok)}
.btn.ok:hover{background:var(--ok-soft)}
.btn.sm{min-height:32px;padding:4px 10px;font-size:13px;border-radius:var(--r-sm)}
.btn.block{width:100%}
.btn.icon{padding:0;width:40px}
.btn.icon.sm{width:32px}
.btn[disabled]{opacity:.55;cursor:not-allowed}
.linkbtn{background:none;border:0;padding:0;color:var(--accent-text);font-weight:600;cursor:pointer}
.linkbtn:hover{text-decoration:underline}

/* form */
.field{display:flex;flex-direction:column;gap:5px;min-width:0}
.field>label,.label{font-size:13px;font-weight:650}
.field .hint{font-size:12.5px;color:var(--muted)}
.input,select.input,textarea.input{width:100%;min-height:40px;padding:8px 11px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--ink)}
textarea.input{min-height:84px;resize:vertical;line-height:1.45}
.input:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}
.input::placeholder{color:var(--muted);opacity:.8}
.check{display:flex;gap:10px;align-items:flex-start;cursor:pointer}
.check input{width:18px;height:18px;margin-top:2px;accent-color:var(--accent);flex:none}
.switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer}
.switch input{appearance:none;width:38px;height:22px;border-radius:99px;background:var(--line-strong);position:relative;margin:0;cursor:pointer;flex:none;transition:background .15s}
.switch input::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s}
.switch input:checked{background:var(--accent)}
.switch input:checked::after{transform:translateX(16px)}
.switch input:disabled{opacity:.5;cursor:not-allowed}
.form-error{background:var(--bad-soft);color:var(--bad);border-radius:var(--r-sm);padding:9px 12px;font-weight:600;font-size:14px}
.searchbox{position:relative;flex:1 1 220px;min-width:0}
.searchbox .ic{position:absolute;left:11px;top:11px;color:var(--muted)}
.searchbox .input{padding-left:36px}

/* surfaces */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px}
.card.flat{background:var(--surface-2)}
.card.pad0{padding:0;overflow:hidden}
.card>.card-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.note{border-radius:var(--r);padding:11px 14px;background:var(--info-soft);font-size:14px;display:flex;gap:10px;align-items:flex-start}
.note.warn{background:var(--warn-soft);color:var(--warn)}
.note.bad{background:var(--bad-soft);color:var(--bad)}
.note.ok{background:var(--ok-soft);color:var(--ok)}
.note.accent{background:var(--accent-soft);color:var(--accent-text)}
.note .ic{margin-top:2px}
.divide>*+*{border-top:1px solid var(--line)}
.item{display:flex;gap:12px;align-items:center;padding:12px 0}
.item.top{align-items:flex-start}
.card.pad0 .item{padding:12px 18px}
a.item,button.item{color:inherit;text-align:left;background:none;border:0;width:100%;cursor:pointer;border-radius:0}
a.item:hover,button.item:hover{background:var(--surface-2);text-decoration:none}
.kv{display:grid;grid-template-columns:minmax(110px,34%) 1fr;gap:8px 14px;font-size:14px}
.kv dt{color:var(--muted)} .kv dd{min-width:0;overflow-wrap:anywhere}

/* chips */
.chip{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:99px;font-size:12.5px;font-weight:650;line-height:1.5;white-space:nowrap;background:var(--info-soft);color:var(--muted)}
.chip::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.9}
.chip.plain::before{display:none}
.chip.green{background:var(--ok-soft);color:var(--ok)}
.chip.yellow{background:var(--warn-soft);color:var(--warn)}
.chip.red{background:var(--bad-soft);color:var(--bad)}
.chip.violet{background:var(--accent-soft);color:var(--accent-text)}
.count{display:inline-flex;min-width:20px;height:20px;padding:0 6px;border-radius:99px;background:var(--accent);color:var(--accent-ink);font-size:12px;font-weight:700;align-items:center;justify-content:center}
.count.red{background:var(--bad);color:#fff}
.count.quiet{background:var(--info-soft);color:var(--muted)}

/* media */
.avatar{width:36px;height:36px;border-radius:50%;flex:none;display:grid;place-items:center;font-weight:700;font-size:13px;color:#fff;overflow:hidden;background:var(--muted)}
.avatar.sm{width:28px;height:28px;font-size:11px} .avatar.lg{width:64px;height:64px;font-size:22px}
.avatar img,.logo img,.thumb img,.cover img{width:100%;height:100%;object-fit:cover}
.logo{width:40px;height:40px;border-radius:11px;flex:none;display:grid;place-items:center;font-family:var(--font-display);font-weight:800;font-size:16px;color:#fff;overflow:hidden}
.logo.sm{width:28px;height:28px;border-radius:8px;font-size:12px} .logo.lg{width:64px;height:64px;border-radius:16px;font-size:26px}
.thumb{width:44px;height:44px;border-radius:10px;flex:none;overflow:hidden;border:1px solid var(--line)}
.thumb.lg{width:76px;height:76px;border-radius:14px} .thumb.sm{width:32px;height:32px;border-radius:8px}
.thumbs{display:flex} .thumbs>*{margin-left:-8px;box-shadow:0 0 0 2px var(--surface)} .thumbs>*:first-child{margin-left:0}
.thumb.more{display:grid;place-items:center;background:var(--info-soft);font-size:12px;font-weight:700;color:var(--muted)}
.cover{aspect-ratio:16/9;overflow:hidden;position:relative;background:var(--info-soft)}
.cover svg{width:100%;height:100%}

/* preview bar */
.pv{position:sticky;top:0;z-index:60;height:var(--bar);background:var(--ink);color:var(--bg);display:flex;align-items:center;gap:10px;padding:0 14px;font-size:13px}
.pv .tag{font-weight:800;font-family:var(--font-display);letter-spacing:.01em}
.pv .hint{opacity:.72;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.pv select{background:transparent;color:inherit;border:1px solid color-mix(in srgb,currentColor 40%,transparent);border-radius:8px;height:30px;padding:0 8px;max-width:46vw;font-weight:600}
.pv select option{color:#1C1929;background:#fff}
.pv .pvbtn{background:transparent;border:1px solid color-mix(in srgb,currentColor 40%,transparent);color:inherit;border-radius:8px;height:30px;padding:0 10px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.pv .pvbtn:hover{background:color-mix(in srgb,currentColor 14%,transparent)}
@media (max-width:760px){.pv .hint{display:none}.pv .pvbtn span{display:none}}

/* shells */
.shell{display:flex;min-height:calc(100% - var(--bar))}
.rail{width:var(--rail);flex:none;background:var(--surface);border-right:1px solid var(--line);position:sticky;top:var(--bar);height:calc(100vh - var(--bar));height:calc(100dvh - var(--bar));display:flex;flex-direction:column;padding:14px 12px 0;gap:2px;overflow-y:auto}
.brandmark{display:inline-flex;align-items:center;gap:9px;font-family:var(--font-display);font-weight:800;font-size:21px;color:var(--ink);letter-spacing:-.02em}
.brandmark:hover{text-decoration:none}
.brandmark i{width:28px;height:28px;border-radius:9px;background:var(--accent);display:grid;place-items:center}
.brandmark i svg{width:13px;height:13px;fill:var(--accent-ink)}
.rail .brandmark{padding:4px 8px 14px}
.navgroup{font-size:12px;font-weight:700;color:var(--muted);padding:10px 10px 2px}
.navlink{display:flex;align-items:center;gap:11px;padding:7px 10px;border-radius:10px;color:var(--ink);font-weight:600;min-height:38px;font-size:14.5px}
.navlink>span:not(.count){white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.navlink:hover{background:var(--surface-2);text-decoration:none}
.navlink[aria-current="page"]{background:var(--accent-soft);color:var(--accent-text)}
.navlink .count{margin-left:auto}
.rail .who{margin-top:auto;padding:12px 8px 14px;border-top:1px solid var(--line);display:flex;gap:10px;align-items:center;position:sticky;bottom:0;background:var(--surface)}
.main{flex:1 1 0;min-width:0;display:flex;flex-direction:column}
.topbar{position:sticky;top:var(--bar);z-index:40;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px;padding:10px 20px;min-height:60px}
.topbar .crumbs{display:flex;align-items:center;gap:6px;min-width:0;font-weight:650;flex:1 1 0}
.topbar .crumbs a{color:var(--muted);font-weight:600;white-space:nowrap}
.topbar .crumbs .here{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar .crumbs .ic{color:var(--muted);width:14px;height:14px}
.bell{position:relative}
.bell .count{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;font-size:11px;box-shadow:0 0 0 2px var(--bg)}
.page{padding:22px 20px 56px;width:100%;max-width:1180px;margin:0 auto}
.page.narrow{max-width:760px}
.pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.tabbar{display:none}
.only-mobile{display:none}
@media (max-width:899px){
  .rail{position:fixed;top:var(--bar);left:0;bottom:0;z-index:70;transform:translateX(-102%);transition:transform .2s;box-shadow:var(--shadow);height:auto;width:min(84vw,300px)}
  .rail.open{transform:none}
  .scrim{position:fixed;inset:var(--bar) 0 0 0;background:rgba(15,12,25,.45);z-index:65}
  .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--surface);border-top:1px solid var(--line);padding:4px 6px calc(4px + env(safe-area-inset-bottom))}
  .tabbar a,.tabbar button{flex:1 1 0;display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 2px;border-radius:10px;color:var(--muted);font-size:11.5px;font-weight:650;background:none;border:0;cursor:pointer;position:relative;min-width:0}
  .tabbar a:hover{text-decoration:none}
  .tabbar [aria-current="page"]{color:var(--accent-text);background:var(--accent-soft)}
  .tabbar .count{position:absolute;top:1px;left:calc(50% + 6px);min-width:17px;height:17px;font-size:10.5px}
  .page{padding:16px 16px 96px}
  .topbar{padding:8px 14px;min-height:54px}
  .only-mobile{display:inline-flex}
  .only-desktop{display:none !important}
  .h1{font-size:22px}
}
@media (min-width:900px){.scrim{display:none}}

/* the one loud element */
.next{background:var(--accent);color:var(--accent-ink);border-radius:var(--r-lg);padding:16px 18px;display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.next .what{flex:1 1 240px;min-width:0}
.next .eyebrow{font-size:12.5px;font-weight:700;opacity:.85}
.next .title{font-family:var(--font-display);font-size:19px;font-weight:700;line-height:1.25}
.next .sub{opacity:.88;font-size:14px}
.next .btn{background:var(--accent-ink);color:var(--accent);border-color:transparent}
.next.quiet{background:var(--surface);color:var(--ink);border:1px solid var(--line)}
.next.quiet .btn{background:var(--accent);color:var(--accent-ink)}
.next.warn{background:var(--warn-soft);color:var(--warn)}
.next.warn .btn{background:var(--ink);color:var(--bg)}
.next.done{background:var(--ok-soft);color:var(--ok)}

/* journey tracker */
.steps{display:flex;gap:0;counter-reset:s}
.steps li{flex:1 1 0;min-width:0;position:relative;padding-top:30px;text-align:center;font-size:12.5px;font-weight:600;color:var(--muted)}
.steps li::before{content:"";position:absolute;top:10px;left:-50%;right:50%;height:3px;background:var(--line-strong);border-radius:2px}
.steps li:first-child::before{display:none}
.steps li::after{content:"";position:absolute;top:1px;left:calc(50% - 11px);width:22px;height:22px;border-radius:50%;background:var(--surface);border:3px solid var(--line-strong)}
.steps li.done{color:var(--ink)} .steps li.done::before,.steps li.current::before{background:var(--accent)}
.steps li.done::after{border:0;background:var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-7' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/18px no-repeat}
.steps li.current{color:var(--accent-text);font-weight:750}
.steps li.current::after{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.steps li.warn{color:var(--warn)} .steps li.warn::after{border-color:var(--warn);box-shadow:0 0 0 4px var(--warn-soft)}
.steps.mini li{padding-top:0;height:6px;font-size:0}
.steps.mini li::before{top:0;left:0;right:3px;height:6px;display:block !important;border-radius:3px}
.steps.mini li::after{display:none}
.steps.mini li.warn::before{background:var(--warn)}
@media (max-width:640px){
  .steps:not(.mini){flex-direction:column;gap:2px}
  .steps:not(.mini) li{text-align:left;padding:5px 0 5px 34px;font-size:14px}
  .steps:not(.mini) li::before{top:-10px;bottom:auto;left:9.5px;right:auto;width:3px;height:18px}
  .steps:not(.mini) li::after{top:4px;left:0}
}

/* tabs */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tabs button{background:none;border:0;padding:10px 12px;font-weight:650;color:var(--muted);cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-1px;white-space:nowrap;display:inline-flex;gap:7px;align-items:center}
.tabs button:hover{color:var(--ink)}
.tabs button[aria-selected="true"]{color:var(--accent-text);border-bottom-color:var(--accent)}
.seg{display:inline-flex;background:var(--info-soft);border-radius:11px;padding:3px;gap:2px;max-width:100%;overflow-x:auto}
.seg button{border:0;background:none;padding:6px 12px;border-radius:8px;font-weight:650;color:var(--muted);cursor:pointer;white-space:nowrap;display:inline-flex;gap:6px;align-items:center}
.seg button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.12)}

/* tiles */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:13px 14px;display:flex;flex-direction:column;gap:2px;color:inherit;text-align:left;cursor:pointer;font:inherit}
a.tile:hover,button.tile:hover{border-color:var(--accent);text-decoration:none}
.tile .n{font-family:var(--font-display);font-size:28px;font-weight:700;line-height:1.1}
.tile .l{font-size:13px;color:var(--muted);font-weight:600}
.tile.attn .n{color:var(--warn)} .tile.bad .n{color:var(--bad)} .tile.good .n{color:var(--ok)}
.tile[aria-pressed="true"]{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
@media (min-width:900px){.tiles.four{grid-template-columns:repeat(4,1fr)}}
@media (max-width:520px){.tiles{grid-template-columns:repeat(2,1fr)}}

/* campaign cards */
.ccard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column;position:relative}
.ccard:hover{box-shadow:var(--shadow)}
.ccard .body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:10px;flex:1}
.ccard .on-cover{position:absolute;top:10px;left:10px;right:10px;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none}
.ccard .on-cover>*{pointer-events:auto}
.ccard .chip.type{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.18)}
.ccard .chip.type::before{background:var(--accent)}
.bm{width:36px;height:36px;border-radius:50%;border:0;background:var(--surface);color:var(--ink);display:grid;place-items:center;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.18)}
.bm[aria-pressed="true"]{color:var(--accent)} .bm[aria-pressed="true"] .ic{fill:currentColor}
.ccard .foot{margin-top:auto;display:flex;flex-direction:column;gap:10px}
.facts{display:flex;gap:6px 14px;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.facts span{display:inline-flex;gap:5px;align-items:center}
.facts .ic{width:15px;height:15px}
.reward{font-weight:700}
@media (max-width:899px){.filters{display:none}.filters.open{display:grid}}

/* tables: real tables on desktop, stacked cards on phones */
.tblwrap{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th{text-align:left;font-size:12.5px;color:var(--muted);font-weight:700;padding:10px 14px;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--surface-2)}
.tbl td{padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl tbody tr.click{cursor:pointer} .tbl tbody tr.click:hover{background:var(--surface-2)}
.tbl td.act{text-align:right;white-space:nowrap}
@media (max-width:760px){
  .tblwrap{background:none;border:0;overflow:visible}
  .tbl thead{display:none}
  .tbl,.tbl tbody,.tbl tr,.tbl td{display:block;width:100%}
  .tbl tr{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:10px 14px;margin-bottom:10px}
  .tbl td{padding:4px 0;border:0;display:flex;gap:12px;justify-content:space-between;align-items:center;text-align:right}
  .tbl td::before{content:attr(data-label);color:var(--muted);font-size:12.5px;font-weight:650;text-align:left;flex:none}
  .tbl td>div{min-width:0}
  .tbl td.lead{font-weight:650;text-align:left;justify-content:flex-start;padding-bottom:6px}
  .row>select.input{max-width:none !important;flex:1 1 100%}
  .tbl td.lead::before,.tbl td.act::before{display:none}
  .tbl td.act{justify-content:flex-end;padding-top:8px}
}

/* pipeline board */
.board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(152px,1fr);gap:12px;overflow-x:auto;padding-bottom:6px}
.col{background:var(--info-soft);border-radius:var(--r);padding:10px;display:flex;flex-direction:column;gap:8px;min-height:120px}
.col>h3{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-family:var(--font-body);font-weight:700;padding:2px 4px}
.pcard{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:9px 10px;display:flex;gap:9px;align-items:flex-start;font-size:13.5px;flex-wrap:wrap}
.pcard .grow{min-width:90px}

/* modal */
.overlay{position:fixed;inset:0;z-index:80;background:rgba(15,12,25,.5);display:flex;align-items:center;justify-content:center;padding:16px}
.modal{background:var(--surface);border-radius:var(--r-lg);width:min(560px,100%);max-height:min(88vh,100%);max-height:min(88dvh,100%);display:flex;flex-direction:column;box-shadow:0 24px 60px -20px rgba(0,0,0,.5)}
.modal.wide{width:min(860px,100%)}
.modal>header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line)}
.modal>.mbody{padding:18px;overflow-y:auto}
@media (max-width:640px){.overlay{padding:0;align-items:flex-end}.modal,.modal.wide{width:100%;max-height:94%;border-radius:var(--r-lg) var(--r-lg) 0 0}}
.actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;margin-top:6px}
.actions.left{justify-content:flex-start}
.stickybar{position:sticky;bottom:-18px;background:var(--surface);padding:12px 0 18px;margin-bottom:-18px;border-top:1px solid var(--line);z-index:2}
.card.flat .stickybar{background:var(--surface-2);bottom:-18px}

/* toasts */
#toasts{position:fixed;left:50%;transform:translateX(-50%);bottom:84px;z-index:100;display:flex;flex-direction:column;gap:8px;align-items:center;width:max-content;max-width:92vw;pointer-events:none}
.toast{background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:12px;font-weight:600;font-size:14px;box-shadow:var(--shadow);animation:pop .18s ease-out}
.toast.bad{background:var(--bad);color:#fff} .toast.ok{background:var(--ok);color:#fff}
@keyframes pop{from{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){*{animation:none !important;transition:none !important}}

/* empty state */
.empty{text-align:center;padding:36px 18px;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:8px}
.empty .ic{width:30px;height:30px;color:var(--line-strong)}
.empty b{color:var(--ink);font-size:16px}

/* misc */
.copyrow{display:flex;gap:10px;align-items:center;justify-content:space-between;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 10px 8px 12px}
.copyrow span{min-width:0;overflow-wrap:anywhere}
.bullets{display:flex;flex-direction:column;gap:6px}
.bullets li{display:flex;gap:9px;align-items:flex-start}
.bullets li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);margin-top:8px;flex:none}
.bullets.no li::before{background:var(--bad)}
.msg{border-radius:14px;padding:9px 12px;background:var(--info-soft);max-width:86%}
.msg.mine{background:var(--accent-soft);align-self:flex-end}
.msg.internal{background:var(--warn-soft);color:var(--warn);align-self:stretch;max-width:100%}
.msg .meta{font-size:12px;color:var(--muted);margin-bottom:2px;font-weight:600}
.msg.internal .meta{color:inherit;opacity:.85}
.thread{display:flex;flex-direction:column;gap:8px}
.meter{height:8px;border-radius:99px;background:var(--info-soft);overflow:hidden}
.meter>i{display:block;height:100%;background:var(--accent);border-radius:99px}
.dot-unread{width:8px;height:8px;border-radius:50%;background:var(--accent);flex:none}
.rowcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 16px;display:flex;flex-direction:column;gap:12px}
a.rowcard{color:inherit} a.rowcard:hover{text-decoration:none;border-color:var(--accent)}
.sticky-cta{position:sticky;bottom:0;z-index:20;margin:0 -16px -96px;padding:10px 16px calc(74px + env(safe-area-inset-bottom));background:linear-gradient(to top,var(--bg) 70%,transparent)}
@media (min-width:900px){.sticky-cta{display:none}}

/* landing */
.land-nav{display:flex;align-items:center;gap:14px;padding:14px 20px;max-width:1120px;margin:0 auto;width:100%}
.land-nav .links{margin-left:auto;display:flex;gap:8px;align-items:center}
.hero{max-width:1120px;margin:0 auto;padding:26px 20px 30px;display:grid;gap:26px;align-items:center}
@media (min-width:880px){.hero{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);padding:38px 20px 44px}}
.hero h1{font-size:clamp(34px,6vw,54px);font-weight:800;line-height:1.02;letter-spacing:-.03em}
.hero p{font-size:17px;color:var(--muted);max-width:46ch}
.feed{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.feed .vid{aspect-ratio:9/15;border-radius:16px;overflow:hidden;position:relative;border:1px solid var(--line);background:var(--surface)}
.feed .vid:nth-child(2){transform:translateY(16px)}
.feed .vid svg{width:100%;height:100%}
.feed .vid .cap{position:absolute;left:8px;right:8px;bottom:8px;background:var(--surface);border-radius:10px;padding:6px 8px;font-size:12px;font-weight:650;line-height:1.3}
.band{max-width:1120px;margin:0 auto;padding:30px 20px;width:100%}
.band+.band{border-top:1px solid var(--line)}
.how{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));counter-reset:how}
.how li{counter-increment:how;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px}
.how li::before{content:counter(how);display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--accent-soft);color:var(--accent-text);font-weight:800;margin-bottom:10px;font-family:var(--font-display)}
details.faq{border-bottom:1px solid var(--line);padding:12px 0}
details.faq summary{font-weight:650;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:12px}
details.faq summary::after{content:"+";color:var(--muted);font-weight:700}
details.faq[open] summary::after{content:"–"}
details.faq p{margin-top:8px;color:var(--muted);max-width:66ch}
.foot{border-top:1px solid var(--line);margin-top:10px}
.foot .band{display:flex;gap:18px 40px;flex-wrap:wrap;justify-content:space-between;font-size:14px;color:var(--muted)}
.authwrap{max-width:440px;margin:0 auto;padding:28px 18px 60px;width:100%}
.placeholder{border:2px dashed var(--warn);background:var(--warn-soft);color:var(--warn);border-radius:var(--r);padding:12px 14px;font-weight:600}

/* live site: there is no preview bar above the app */
:root{--bar:0px}
