/* Layout concept: a paper-and-ink workspace where Frank's rust dot is the only loud thing; the dot becomes a living matrix orb that shows when Frank is working. */
:root{
  --bg:#f6f4ee; --bg-2:#efede5; --surface:#fffef9; --surface-2:#faf8f2; --sunk:#ecebe3;
  --fg:#172a28; --fg-2:#34463f; --muted:#5b6b65; --faint:#8a9690;
  --line:#e3e1d7; --line-2:#d3d2c6;
  --accent:#b84e2d; --accent-ink:#9c3f22; --accent-fg:#fffef9; --accent-soft:#f4e5dd; --accent-line:#e8c8b8;
  --good:#2f7d62; --good-soft:#e2eee7; --warn:#9a6a12; --warn-soft:#f6ecd6; --bad:#a3333a; --bad-soft:#f6e1e0; --info:#2e5a8a; --info-soft:#e3ebf4;
  --stage:#1f4741; --stage-2:#285650; --deep:#1f4741; --orb-tile:#1f4741; --orb-ring:rgba(242,240,232,.10); --orb-dot:#e27a50; --orb-color:var(--accent); --accent-stage:#e2774c; --dotgrid:rgba(23,42,40,.12); --on-stage:#f6f4ee; --on-stage-2:#aebbb4; --stage-line:rgba(246,244,238,.12); --stage-dot:rgba(246,244,238,.10);
  --shadow-sm:0 1px 2px rgba(23,42,40,.06),0 1px 1px rgba(23,42,40,.04);
  --shadow-md:0 1px 0 rgba(23,42,40,.04),0 10px 30px -14px rgba(23,42,40,.28);
  --shadow-lg:0 2px 0 rgba(23,42,40,.03),0 30px 80px -30px rgba(23,42,40,.45);
  --hi:rgba(255,255,255,.7);
  --btn-hover:#1f4741; --btn-hover-fg:#f6f4ee; --btn-hover-shadow:inset 0 1px 0 rgba(255,255,255,.16),inset 0 -2px 0 rgba(0,0,0,.24),0 1px 2px rgba(0,0,0,.18),0 8px 20px -8px rgba(31,71,65,.65); --link-hover:#1f4741; --chip-hover-bg:#e6ece8; --sta-ink:#1f4741;
  --font-sans:'Geist',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-serif:'Gloock','Iowan Old Style','Palatino Linotype',Georgia,serif;
  --font-mono:'Geist Mono',ui-monospace,'SF Mono',Menlo,Consolas,monospace;
  --r-sm:8px; --r:12px; --r-lg:18px; --r-xl:26px;
  --spring:linear(0,0.009,0.035 2.1%,0.141,0.281 6.7%,0.723 12.9%,0.938 16.7%,1.017,1.077,1.121,1.149 24.3%,1.159,1.163,1.161,1.154 29.9%,1.129 32.8%,1.051 39.6%,1.017 43.1%,0.991,0.977 51%,0.974 53.8%,0.975 57.1%,0.997 69.8%,1.003 76.9%,1);
  --spring-soft:linear(0,0.012,0.047 3%,0.188 6.4%,0.61 14.4%,0.82 19.6%,0.945 24.5%,1.003 28.6%,1.031 32.8%,1.04 37.3%,1.024 47.5%,1.002 61.6%,0.997 72.6%,1);
  --ease-out:cubic-bezier(.2,.8,.2,1);
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#172a28; --bg-2:#13231f; --surface:#1e3431; --surface-2:#223a37; --sunk:#284340;
  --fg:#eeece4; --fg-2:#d3dbd5; --muted:#a6b5ae; --faint:#7e908a;
  --line:#2c4642; --line-2:#3a5752;
  --accent:#e27a50; --accent-ink:#f09068; --accent-fg:#14100d; --accent-soft:#45291e; --accent-line:#6a3c29;
  --good:#5cc39a; --good-soft:#1e3e33; --warn:#e0b25a; --warn-soft:#3d321a; --bad:#ef7f7f; --bad-soft:#452628; --info:#86b2e6; --info-soft:#1f3347;
  --stage:#10201d; --stage-2:#16302c; --dotgrid:rgba(242,240,232,.08); --on-stage:#f2f0e8; --on-stage-2:#9fb0a8; --stage-line:rgba(242,240,232,.10); --stage-dot:rgba(242,240,232,.08);
  --shadow-sm:0 1px 2px rgba(0,0,0,.3);
  --shadow-md:0 1px 0 rgba(255,255,255,.02),0 12px 32px -14px rgba(0,0,0,.7);
  --shadow-lg:0 30px 80px -30px rgba(0,0,0,.85);
  --hi:rgba(255,255,255,.06);
  --btn-hover:var(--accent); --btn-hover-fg:var(--accent-fg); --btn-hover-shadow:inset 0 1px 0 rgba(255,255,255,.28),inset 0 -2px 0 rgba(0,0,0,.18),0 1px 2px rgba(120,40,15,.25),0 8px 20px -8px rgba(184,78,45,.7); --link-hover:var(--fg); --chip-hover-bg:var(--surface); --sta-ink:var(--fg); --deep:var(--fg); --orb-tile:#10201d;
  color-scheme:dark;
}}
:root[data-theme="dark"]{
  --bg:#172a28; --bg-2:#13231f; --surface:#1e3431; --surface-2:#223a37; --sunk:#284340;
  --fg:#eeece4; --fg-2:#d3dbd5; --muted:#a6b5ae; --faint:#7e908a;
  --line:#2c4642; --line-2:#3a5752;
  --accent:#e27a50; --accent-ink:#f09068; --accent-fg:#14100d; --accent-soft:#45291e; --accent-line:#6a3c29;
  --good:#5cc39a; --good-soft:#1e3e33; --warn:#e0b25a; --warn-soft:#3d321a; --bad:#ef7f7f; --bad-soft:#452628; --info:#86b2e6; --info-soft:#1f3347;
  --stage:#10201d; --stage-2:#16302c; --dotgrid:rgba(242,240,232,.08); --on-stage:#f2f0e8; --on-stage-2:#9fb0a8; --stage-line:rgba(242,240,232,.10); --stage-dot:rgba(242,240,232,.08);
  --shadow-sm:0 1px 2px rgba(0,0,0,.3);
  --shadow-md:0 1px 0 rgba(255,255,255,.02),0 12px 32px -14px rgba(0,0,0,.7);
  --shadow-lg:0 30px 80px -30px rgba(0,0,0,.85);
  --hi:rgba(255,255,255,.06);
  --btn-hover:var(--accent); --btn-hover-fg:var(--accent-fg); --btn-hover-shadow:inset 0 1px 0 rgba(255,255,255,.28),inset 0 -2px 0 rgba(0,0,0,.18),0 1px 2px rgba(120,40,15,.25),0 8px 20px -8px rgba(184,78,45,.7); --link-hover:var(--fg); --chip-hover-bg:var(--surface); --sta-ink:var(--fg); --deep:var(--fg); --orb-tile:#10201d;
  color-scheme:dark;
}

/* Frank's orb glows the same in both themes wherever it sits on a dark tile or panel */
.orb-tile,.brief-orb,.f-av,.thread .avatar,.cmdk-ask .ci-ic,.ob-side,.xray,.job,.stile.tmaking,.making-frame,.setup-card,.su-hero,.never{--orb-color:var(--orb-dot)}
*,*::before,*::after{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,h4{margin:0;text-wrap:balance;font-weight:600;letter-spacing:-.02em}
p{margin:0}
a{color:inherit}
button{font:inherit;color:inherit}
input,textarea,select{font:inherit;color:inherit}
img,video{max-width:100%;display:block}
.serif{font-family:var(--font-serif);font-weight:400;font-style:normal;letter-spacing:-.025em}
.mono{font-family:var(--font-mono);font-size:.86em}
.num{font-variant-numeric:tabular-nums}
.muted{color:var(--muted)}
.eyebrow{font-size:11.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
::selection{background:var(--accent-soft);color:var(--fg)}

/* ---------- wordmark ---------- */
.wordmark{position:relative;display:inline-block;flex-shrink:0;height:var(--h,28px);width:calc(var(--h,28px) * 3.1296);color:var(--fg);line-height:0;text-decoration:none}
.wordmark svg{display:block;width:100%;height:100%;overflow:visible}
/* orb box: 17 units square in the 22 20 169 54 viewBox, centred at (180.5, 62.3) so that at full breath its lowest dots sit where the original dot meets the baseline */
.wordmark .wm-orb{position:absolute;left:88.76%;top:62.59%;width:10.06%!important;height:31.48%!important}

/* ---------- buttons ---------- */
.btn{--b-bg:var(--surface);--b-fg:var(--fg);--b-line:var(--line-2);display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 16px;border-radius:12px;border:1px solid var(--b-line);background:var(--b-bg);color:var(--b-fg);font-size:14px;font-weight:550;text-decoration:none;cursor:pointer;white-space:nowrap;transition:transform .5s var(--spring),background .2s,border-color .2s,box-shadow .2s;box-shadow:inset 0 1px 0 var(--hi),var(--shadow-sm);-webkit-tap-highlight-color:transparent;user-select:none}
.btn:hover{border-color:var(--faint)}
.btn:active{transform:scale(.965);transition-duration:.08s}
.btn svg{flex-shrink:0}
.btn-sm{min-height:32px;padding:0 12px;font-size:13px;border-radius:10px}
.btn-lg{min-height:50px;padding:0 22px;font-size:15.5px;border-radius:15px}
.btn-ghost{--b-bg:transparent;--b-line:transparent;box-shadow:none}
.btn-ghost:hover{--b-bg:var(--sunk);border-color:transparent}
/* tactile: layered depth that compresses on press */
.btn-ink,.btn-rust{position:relative;border:0;isolation:isolate}
.btn-ink{--b-bg:var(--deep);--b-fg:var(--bg);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),inset 0 -2px 0 rgba(0,0,0,.25),0 1px 2px rgba(0,0,0,.2),0 6px 16px -6px rgba(31,71,65,.55)}
.btn-rust{--b-bg:var(--accent);--b-fg:var(--accent-fg);box-shadow:inset 0 1px 0 rgba(255,255,255,.28),inset 0 -2px 0 rgba(0,0,0,.18),0 1px 2px rgba(120,40,15,.25),0 8px 20px -8px rgba(184,78,45,.7)}
.btn-ink:active,.btn-rust:active{box-shadow:inset 0 2px 4px rgba(0,0,0,.28),0 0 0 rgba(0,0,0,0)}
.btn-ink:hover,.btn-rust:hover{filter:brightness(1.06)}
.btn-rust:hover{--b-bg:var(--btn-hover);--b-fg:var(--btn-hover-fg);box-shadow:var(--btn-hover-shadow)}
.icon-btn{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:10px;border:1px solid transparent;background:transparent;cursor:pointer;color:var(--fg-2);transition:background .15s,transform .4s var(--spring)}
.icon-btn:hover{background:var(--sunk);color:var(--fg)}
.icon-btn:active{transform:scale(.92)}

/* ---------- pills / chips ---------- */
.pill{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px;border-radius:999px;font-size:12px;font-weight:550;background:var(--sunk);color:var(--fg-2);white-space:nowrap}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.9}
.pill.no-dot::before{display:none}
.pill.good{background:var(--good-soft);color:var(--good)}
.pill.warn{background:var(--warn-soft);color:var(--warn)}
.pill.bad{background:var(--bad-soft);color:var(--bad)}
.pill.rust{background:var(--accent-soft);color:var(--accent-ink)}
.pill.info{background:var(--info-soft);color:var(--info)}
.pill.live::before{animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.75)}}
.chip{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:0 12px;border-radius:999px;border:1px solid var(--line-2);background:var(--surface);font-size:13.5px;color:var(--fg);cursor:pointer;text-decoration:none;white-space:nowrap;transition:border-color .15s,background .15s,transform .45s var(--spring)}
.chip:hover{border-color:var(--fg)}
.chip:active{transform:scale(.96)}
.chip[aria-pressed="true"]{background:var(--deep);color:var(--bg);border-color:var(--deep)}
.kbd{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:6px;border:1px solid var(--line-2);background:var(--surface-2);font-family:var(--font-mono);font-size:11px;color:var(--muted)}

/* ---------- surfaces ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}
.logo{display:inline-grid;place-items:center;flex-shrink:0}
.logo svg{display:block}
.logo-tile{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);flex-shrink:0}
.logo-stack{display:inline-flex}
.logo-stack .logo-tile{width:26px;height:26px;border-radius:8px;margin-left:-6px;box-shadow:0 0 0 2px var(--surface)}
.logo-stack .logo-tile:first-child{margin-left:0}
.thumb{position:relative;overflow:hidden;background:var(--sunk);border-radius:12px}
.thumb img,.thumb video{width:100%;height:100%;object-fit:cover}

/* shimmer for work in progress */
.shimmer{position:relative;overflow:hidden;background:linear-gradient(110deg,var(--sunk) 30%,var(--surface-2) 45%,var(--sunk) 60%);background-size:250% 100%;animation:shimmer 1.8s linear infinite}
@keyframes shimmer{from{background-position:120% 0}to{background-position:-130% 0}}
.text-shimmer{background:linear-gradient(90deg,var(--muted) 0%,var(--muted) 40%,var(--fg) 50%,var(--muted) 60%,var(--muted) 100%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:tshim 2.2s linear infinite}
@keyframes tshim{from{background-position:110% 0}to{background-position:-110% 0}}

/* inputs */
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:13px;font-weight:550;color:var(--fg-2)}
.input{height:44px;padding:0 14px;border-radius:12px;border:1px solid var(--line-2);background:var(--surface);outline:none;transition:border-color .15s,box-shadow .15s;width:100%}
.input:focus{border-color:var(--fg);box-shadow:0 0 0 4px var(--accent-soft)}

/* toasts */
.toasts{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);display:flex;flex-direction:column;gap:8px;z-index:90;pointer-events:none;width:min(420px,calc(100% - 32px))}
.toast{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:14px;background:var(--fg);color:var(--bg);font-size:14px;box-shadow:var(--shadow-lg);animation:toastIn .6s var(--spring) both;pointer-events:auto}
.toast.out{animation:toastOut .3s var(--ease-out) forwards}
@keyframes toastIn{from{opacity:0;transform:translateY(16px) scale(.96)}}
@keyframes toastOut{to{opacity:0;transform:translateY(8px) scale(.98)}}

/* view transitions */
::view-transition-old(root),::view-transition-new(root){animation-duration:.22s;animation-timing-function:var(--ease-out)}
::view-transition-old(main),::view-transition-new(main){animation-duration:.24s}
::view-transition-new(main){animation-name:vtIn}
::view-transition-old(main){animation-name:vtOut}
@keyframes vtIn{from{opacity:0;transform:translateY(6px)}}
@keyframes vtOut{to{opacity:0}}
::view-transition-group(*){animation-duration:.42s;animation-timing-function:var(--spring-soft)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}

@media (max-width:520px){.hide-xs{display:none}}
[hidden]{display:none!important}

/* ================= onboarding: five steps to Frank's first look ================= */
.ob{display:grid;grid-template-columns:minmax(280px,400px) minmax(0,1fr);min-height:100dvh;background:var(--bg)}
.ob-side{position:sticky;top:0;height:100dvh;background:var(--stage);color:var(--on-stage);padding:28px;display:flex;flex-direction:column;gap:28px;overflow:hidden;isolation:isolate}
.ob-side::before{content:"";position:absolute;inset:0;z-index:-1;background-image:radial-gradient(var(--stage-dot) 1.2px,transparent 1.3px);background-size:20px 20px;mask-image:linear-gradient(transparent,#000 40%,transparent);-webkit-mask-image:linear-gradient(transparent,#000 40%,transparent)}
.ob-side .wordmark{color:var(--on-stage)}
.ob-orb{display:grid;place-items:center;flex:1;min-height:160px}
.ob-steps{display:flex;flex-direction:column;gap:4px;list-style:none;margin:0;padding:0}
.ob-steps li{display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:12px;font-size:14px;color:var(--on-stage-2);transition:background .3s,color .3s}
.ob-steps li .d{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--stage-line);display:grid;place-items:center;font-size:11.5px;font-family:var(--font-mono);flex-shrink:0;transition:all .4s var(--spring)}
.ob-steps li.on{background:rgba(255,255,255,.06);color:var(--on-stage)}
.ob-steps li.on .d{border-color:var(--accent-stage);color:var(--accent-stage)}
.ob-steps li.done .d{background:var(--accent-stage);border-color:var(--accent-stage);color:var(--stage)}
.ob-main{display:flex;justify-content:center;padding:56px 32px 80px;min-width:0}
.ob-panel{width:min(680px,100%);display:flex;flex-direction:column;gap:22px;animation:inR .6s var(--spring-soft) both}
.ob-panel h1{font-size:clamp(30px,4vw,44px);letter-spacing:-.04em;line-height:1.05}
.ob-panel h1 .serif{color:var(--accent)}
.ob-panel .lede{font-size:17px;color:var(--muted);line-height:1.55;max-width:54ch}
.ob-url{display:flex;gap:8px;padding:6px 6px 6px 16px;border-radius:16px;border:1px solid var(--line-2);background:var(--surface);box-shadow:var(--shadow-md);align-items:center}
.ob-url input{flex:1;min-width:0;border:0;outline:0;background:transparent;font-size:17px;height:44px}
.sources{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr));gap:8px}
.src-card{display:flex;flex-direction:column;gap:4px;padding:12px;border-radius:14px;border:1px solid var(--line);background:var(--surface);font-size:12.5px;animation:cardIn .6s var(--spring) both;animation-delay:calc(var(--i)*90ms);min-height:84px}
.src-card b{font-size:13px;font-weight:600;display:flex;gap:6px;align-items:center}
.src-card small{color:var(--muted)}
.src-card.sk{background:linear-gradient(110deg,var(--sunk) 30%,var(--surface-2) 45%,var(--sunk) 60%);background-size:250% 100%;animation:shimmer 1.3s linear infinite;border-color:transparent}
.dna-card{border-radius:24px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-md);overflow:hidden}
.dna-head{display:flex;gap:14px;align-items:center;padding:18px;border-bottom:1px solid var(--line)}
.dna-head .lg{width:52px;height:52px;border-radius:14px;background:#0b6e8a;color:#fff;display:grid;place-items:center;font-weight:800;letter-spacing:-.04em}
.dna-head b{font-size:18px}
.dna-row{display:grid;grid-template-columns:110px minmax(0,1fr);gap:12px;padding:12px 18px;border-bottom:1px solid var(--line);font-size:14px;align-items:start}
.dna-row:last-child{border-bottom:0}
.dna-row .k{color:var(--muted);font-size:13px;padding-top:4px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.tgl{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 11px;border-radius:999px;border:1px solid var(--line-2);background:var(--surface-2);font-size:13px;cursor:pointer;transition:all .25s}
.tgl[aria-pressed="false"]{color:var(--muted);border-style:dashed;background:transparent}
.tgl[aria-pressed="true"]{background:var(--deep);color:var(--bg);border-color:var(--deep)}
.connect-list{display:flex;flex-direction:column;gap:10px}
.cbtn{display:flex;align-items:center;gap:14px;width:100%;padding:16px;border-radius:18px;border:1px solid var(--line-2);background:var(--surface);cursor:pointer;text-align:left;transition:border-color .2s,transform .45s var(--spring),box-shadow .2s}
.cbtn:hover{border-color:var(--fg);box-shadow:var(--shadow-md)}
.cbtn:active{transform:scale(.99)}
.cbtn .t{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.35}
.cbtn .t b{font-size:15.5px;font-weight:600}
.cbtn .t small{font-size:13px;color:var(--muted)}
.cbtn .logos{display:flex;gap:4px}
.cbtn.done{border-color:var(--good);background:var(--good-soft)}
.cbtn.done .t small{color:var(--good)}
.detected{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted)}
.ceiling{border-radius:22px;background:var(--surface);border:1px solid var(--line);padding:22px;display:flex;flex-direction:column;gap:14px}
.ceiling .amt{font-size:46px;font-weight:600;letter-spacing:-.045em;line-height:1}
.locked{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:14px;background:var(--surface-2);border:1px solid var(--line);font-size:13.5px}
.xray{border-radius:26px;background:var(--stage);color:var(--on-stage);padding:26px;display:flex;flex-direction:column;gap:12px;position:relative;overflow:hidden}
.xray .big{font-size:clamp(48px,7vw,80px);font-weight:600;letter-spacing:-.05em;line-height:.95;color:var(--accent-stage)}
.xray p{color:var(--on-stage-2);font-size:15px;line-height:1.5;max-width:46ch}
.fixes{display:flex;flex-direction:column;gap:8px}
.fix{display:flex;align-items:center;gap:12px;padding:14px;border-radius:16px;background:var(--surface);border:1px solid var(--line);animation:cardIn .6s var(--spring) both;animation-delay:calc(var(--i)*110ms + 300ms)}
.fix .t{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.35}
.fix .t b{font-size:14.5px;font-weight:600}
.fix .t small{font-size:12.5px;color:var(--muted)}
.fix .save{font-weight:650;font-variant-numeric:tabular-nums;color:var(--good);white-space:nowrap}
.ob-foot{display:flex;align-items:center;gap:10px;padding-top:6px}
.ob-foot .sp{flex:1}
@media (max-width:900px){.ob{grid-template-columns:minmax(0,1fr)}.ob-side{position:relative;top:0;height:auto;padding:18px 16px;gap:14px}.ob-orb{display:none}.ob-steps{flex-direction:row;overflow-x:auto;gap:4px}.ob-steps li{white-space:nowrap;padding:6px 8px;font-size:12.5px}.ob-steps li span:not(.d){display:none}.ob-steps li.on span:not(.d){display:inline}.ob-main{padding:26px 16px 50px}.dna-row{grid-template-columns:minmax(0,1fr);gap:6px}}

/* ================= app shell ================= */
html.nx,html.nx body{height:100%;overflow:hidden}
.app{display:grid;grid-template-columns:var(--side-w,252px) minmax(0,1fr);height:100%;transition:grid-template-columns .6s var(--spring-soft)}
.app[data-collapsed="true"]{--side-w:72px}
.side{position:relative;display:flex;flex-direction:column;gap:14px;min-height:0;padding:16px 12px 14px;background:var(--bg-2);border-right:1px solid var(--line);overflow:hidden}
.side-top{display:flex;align-items:center;justify-content:space-between;height:36px;padding:0 6px 0 10px}
.side-top .wordmark{transition:opacity .2s}
.app[data-collapsed="true"] .side-top{justify-content:center;padding:0}
.app[data-collapsed="true"] .side-top .wordmark{display:none}
.ws{position:relative}
.ws-btn{display:flex;align-items:center;gap:10px;width:100%;padding:7px 8px;border-radius:12px;border:1px solid var(--line);background:var(--surface);cursor:pointer;text-align:left;transition:border-color .15s}
.ws-btn:hover{border-color:var(--line-2)}
.ws-av{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--deep);color:var(--bg);font-size:11.5px;font-weight:700;letter-spacing:.02em;flex-shrink:0}
.ws-name{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.2}
.ws-name b{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ws-name small{font-size:11.5px;color:var(--muted)}
.lbl{transition:opacity .25s,transform .45s var(--spring);white-space:nowrap}
.app[data-collapsed="true"] .lbl{opacity:0;transform:translateX(-6px);pointer-events:none}
.app[data-collapsed="true"] .ws-btn{justify-content:center;padding:7px 0;border-color:transparent;background:transparent}
.app[data-collapsed="true"] .ws-btn .ws-name,.app[data-collapsed="true"] .ws-btn>svg{display:none}

.side-actions{display:flex;gap:8px}
.new-btn{flex:1}
.app[data-collapsed="true"] .side-actions{flex-direction:column}
.app[data-collapsed="true"] .new-btn .lbl{display:none}
.app[data-collapsed="true"] .new-btn{padding:0;width:44px;margin:0 auto}
.search-btn{display:flex;align-items:center;gap:10px;width:100%;height:38px;padding:0 10px;border-radius:11px;border:1px solid var(--line);background:var(--surface-2);color:var(--muted);font-size:13.5px;cursor:pointer;transition:border-color .15s}
.search-btn:hover{border-color:var(--line-2);color:var(--fg)}
.search-btn .kbd{margin-left:auto}
.app[data-collapsed="true"] .search-btn{justify-content:center;padding:0;width:44px;margin:0 auto}
.app[data-collapsed="true"] .search-btn .kbd,.app[data-collapsed="true"] .search-btn .lbl{display:none}

.nav{position:relative;display:flex;flex-direction:column;gap:2px;margin-top:2px}
.nav-hl{position:absolute;left:0;right:0;top:0;height:38px;border-radius:11px;background:var(--surface);box-shadow:var(--shadow-sm),inset 0 0 0 1px var(--line);transition:transform .5s var(--spring),height .3s;z-index:0;pointer-events:none}
.nav a{position:relative;z-index:1;display:flex;align-items:center;gap:12px;height:38px;padding:0 11px;border-radius:11px;color:var(--fg-2);text-decoration:none;font-size:14px;font-weight:500;transition:color .15s}
.nav a:hover{color:var(--fg)}
.nav a[aria-current="page"]{color:var(--fg);font-weight:600}
.nav a .badge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--accent);color:var(--accent-fg);font-size:11.5px;font-weight:700;display:inline-grid;place-items:center}
.app[data-collapsed="true"] .nav a{justify-content:center;padding:0}
.app[data-collapsed="true"] .nav a .badge{position:absolute;top:3px;right:8px;min-width:16px;height:16px;font-size:10px;padding:0 4px}
.nav-sec{margin:14px 11px 4px;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}
.app[data-collapsed="true"] .nav-sec{opacity:0;height:0;margin:6px 0}
.side-foot{margin-top:auto;display:flex;flex-direction:column;gap:10px}
.credits{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:14px;border:1px solid var(--line);background:var(--surface);text-decoration:none;color:inherit}
.credits-top{display:flex;align-items:baseline;justify-content:space-between;font-size:12.5px;color:var(--muted)}
.credits-top b{font-size:15px;color:var(--fg);font-weight:650}
.meter{height:5px;border-radius:999px;background:var(--sunk);overflow:hidden}
.meter span{display:block;height:100%;border-radius:999px;background:var(--deep);transform-origin:left;animation:grow 1.2s var(--spring-soft) both}
@keyframes grow{from{transform:scaleX(0)}}
.app[data-collapsed="true"] .credits{display:none}
.me{display:flex;align-items:center;gap:10px;padding:2px 4px}
.me-av{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--accent-soft),var(--sunk));display:grid;place-items:center;font-size:12px;font-weight:650;color:var(--accent-ink);flex-shrink:0}
.app[data-collapsed="true"] .me{justify-content:center}
.app[data-collapsed="true"] .me .lbl{display:none}
.collapse-btn{color:var(--muted)}

.main{position:relative;min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain;view-transition-name:main;scroll-behavior:smooth}
.page{max-width:1180px;margin:0 auto;padding:30px 32px 80px;display:flex;flex-direction:column;gap:28px}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.page-head h1{font-size:30px;letter-spacing:-.03em;line-height:1.1}
.page-head p{color:var(--muted);margin-top:6px;max-width:62ch}
.h2{font-size:17px;font-weight:600;letter-spacing:-.01em}
.sec-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.sec-head a{font-size:13.5px;color:var(--muted);text-decoration:none}
.sec-head a:hover{color:var(--fg)}

/* create menu: the button morphs into the menu */
.create{position:relative;flex:1;display:flex}
.create-pop{position:absolute;left:0;top:0;z-index:40;width:290px;padding:6px;border-radius:16px;background:var(--surface);border:1px solid var(--line-2);box-shadow:var(--shadow-lg);transform-origin:20px 20px;animation:morphIn .5s var(--spring) both}
@keyframes morphIn{from{opacity:0;transform:scale(.4,.18);border-radius:30px;filter:blur(4px)}}
.menu{position:relative;display:flex;flex-direction:column}
.menu-hl{position:absolute;left:0;right:0;top:0;border-radius:10px;background:var(--sunk);opacity:0;transition:transform .35s var(--spring),opacity .15s,height .2s;pointer-events:none}
.menu-item{position:relative;display:flex;align-items:center;gap:11px;width:100%;padding:9px 10px;border:0;border-radius:10px;background:transparent;text-align:left;cursor:pointer;text-decoration:none;color:var(--fg);animation:itemIn .45s var(--ease-out) both;animation-delay:calc(var(--i,0)*35ms + 60ms)}
@keyframes itemIn{from{opacity:0;transform:translateY(-4px);filter:blur(3px)}}
.menu-item .mi-ic{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--surface-2);border:1px solid var(--line);flex-shrink:0;color:var(--fg-2)}
.menu-item .mi-t{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.menu-item .mi-t b{font-size:13.5px;font-weight:600}
.menu-item .mi-t small{font-size:12px;color:var(--muted)}
.menu-item[aria-disabled="true"]{opacity:.55}
.menu-sep{height:1px;background:var(--line);margin:5px 6px}
.menu-label{padding:8px 10px 4px;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}
.ws-pop{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:40;padding:6px;border-radius:14px;background:var(--surface);border:1px solid var(--line-2);box-shadow:var(--shadow-lg);transform-origin:top center;animation:dropIn .45s var(--spring) both}
@keyframes dropIn{from{opacity:0;transform:scale(.92) translateY(-6px);filter:blur(3px)}}
.app[data-collapsed="true"] .ws-pop{width:240px;right:auto}

/* command palette */
.cmdk-back{position:fixed;inset:0;z-index:80;background:rgba(14,25,23,.36);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px;animation:fadeIn .2s both}
@keyframes fadeIn{from{opacity:0}}
.cmdk{width:min(640px,100%);border-radius:20px;background:var(--surface);border:1px solid var(--line-2);box-shadow:var(--shadow-lg);overflow:hidden;animation:cmdIn .5s var(--spring) both}
@keyframes cmdIn{from{opacity:0;transform:scale(.96) translateY(-8px)}}
.cmdk-in{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}
.cmdk-in input{flex:1;border:0;outline:0;background:transparent;font-size:17px}
.cmdk-list{max-height:min(52vh,440px);overflow:auto;padding:6px}
.cmdk-group{padding:8px 12px 4px;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}
.cmdk-item{display:flex;align-items:center;gap:12px;width:100%;padding:9px 12px;border:0;border-radius:11px;background:transparent;text-align:left;cursor:pointer;font-size:14px}
.cmdk-item[aria-selected="true"]{background:var(--sunk)}
.cmdk-item .ci-ic{width:30px;height:30px;border-radius:9px;display:inline-grid;place-items:center;background:var(--surface-2);border:1px solid var(--line);flex-shrink:0;overflow:hidden}
.cmdk-item .ci-ic img{width:100%;height:100%;object-fit:cover}
.cmdk-item .ci-t{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25}
.cmdk-item .ci-t small{color:var(--muted);font-size:12px}
.cmdk-item .ci-r{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px}
.cmdk-ask .ci-ic{background:var(--orb-tile);border-color:var(--orb-tile)}
.cmdk-foot{display:flex;gap:16px;padding:10px 16px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
.cmdk-foot span{display:inline-flex;align-items:center;gap:6px}

/* mobile tab bar */
.tabbar{display:none}
@media (max-width:760px){
  .app{grid-template-columns:minmax(0,1fr);height:calc(100% - 64px - env(safe-area-inset-bottom,0px))}
  .side{display:none}
  .page{padding:20px 16px 40px;gap:22px}
  .page-head h1{font-size:25px}
  .tabbar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:grid;grid-template-columns:repeat(5,1fr);height:calc(64px + env(safe-area-inset-bottom,0px));padding:6px 8px env(safe-area-inset-bottom,0px);background:var(--bg-2);border-top:1px solid var(--line)}
  .tabbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:12px;color:var(--muted);text-decoration:none;font-size:10.5px;font-weight:550;position:relative}
  .tabbar a[aria-current="page"]{color:var(--fg)}
  .tabbar a[aria-current="page"]::after{content:"";position:absolute;top:2px;width:18px;height:3px;border-radius:3px;background:var(--accent)}
  .tabbar .tb-badge{position:absolute;top:4px;left:calc(50% + 6px);min-width:16px;height:16px;border-radius:999px;background:var(--accent);color:var(--accent-fg);font-size:10px;font-weight:700;display:grid;place-items:center;padding:0 4px}
  .mobile-top{display:flex!important}
}
.mobile-top{display:none;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0;z-index:20}

/* ================= composer (prompt box + morphing mode) ================= */
.composer{position:relative;display:flex;flex-direction:column;gap:6px;padding:12px 12px 10px 14px;border-radius:22px;border:1px solid var(--line-2);background:var(--surface);box-shadow:var(--shadow-md);transition:box-shadow .3s,border-color .2s}
.composer:focus-within{border-color:var(--faint);box-shadow:0 0 0 5px var(--accent-soft),var(--shadow-md)}
.composer textarea{display:block;width:100%;min-height:28px;max-height:220px;border:0;outline:0;resize:none;background:transparent;font-size:16px;line-height:1.5;padding:4px 2px;field-sizing:content}
.composer textarea::placeholder{color:var(--faint)}
.cp-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.cp-mode{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 11px 0 9px;border-radius:999px;border:1px solid var(--line-2);background:var(--surface-2);font-size:13px;font-weight:600;cursor:pointer;transition:transform .4s var(--spring)}
.cp-mode:active{transform:scale(.95)}
.cp-mode .cpm-ic{display:inline-grid;place-items:center;transition:transform .5s var(--spring),filter .3s}
.cp-mode.swap .cpm-ic{transform:rotate(-180deg) scale(.6);filter:blur(2px)}
.cp-tool{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px;border-radius:999px;border:1px solid transparent;background:transparent;color:var(--muted);font-size:13px;cursor:pointer}
.cp-tool:hover{background:var(--sunk);color:var(--fg)}
.cp-sources{display:inline-flex;align-items:center;gap:8px}
.cp-cost{font-size:12.5px;color:var(--muted);display:inline-flex;align-items:center;gap:5px;animation:itemIn .35s var(--ease-out)}
.cp-send{margin-left:auto;display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;border:0;background:var(--sunk);color:var(--muted);cursor:pointer;transition:background .2s,color .2s,transform .45s var(--spring)}
.cp-send.ready{background:var(--accent);color:var(--accent-fg);box-shadow:0 6px 16px -6px var(--accent)}
.cp-send:active{transform:scale(.9)}
.cp-send svg{transition:transform .35s var(--spring)}
.autonomy{display:inline-flex;align-items:center;gap:7px}
.bars{display:inline-flex;align-items:flex-end;gap:2px;height:12px}
.bars i{width:3px;border-radius:2px;background:var(--line-2)}
.bars i:nth-child(1){height:5px}.bars i:nth-child(2){height:8px}.bars i:nth-child(3){height:12px}
.bars[data-l="1"] i:nth-child(1),.bars[data-l="2"] i:nth-child(-n+2),.bars[data-l="3"] i{background:var(--fg)}
.mention-pop{position:absolute;left:12px;right:12px;top:calc(100% + 8px);z-index:30;padding:6px;border-radius:16px;background:var(--surface);border:1px solid var(--line-2);box-shadow:var(--shadow-lg);animation:dropIn .4s var(--spring) both}
.mention-pop .menu-item{padding:7px 9px}
.mention-pop .mi-thumb{width:34px;height:34px;border-radius:8px;overflow:hidden;flex-shrink:0;background:var(--sunk);display:grid;place-items:center;border:1px solid var(--line)}
.mention-pop .mi-thumb img{width:100%;height:100%;object-fit:cover}
.mention-pop .spark{margin-left:auto;color:var(--muted)}
.ment{display:inline;padding:1px 6px;border-radius:6px;background:var(--accent-soft);color:var(--accent-ink);font-weight:550}

/* ================= today ================= */
.today-hero{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}
.greet{display:flex;flex-direction:column;gap:8px}
.greet .date{font-size:13.5px;color:var(--muted);display:flex;align-items:center;gap:8px}
.greet h1{font-size:clamp(30px,4.2vw,46px);line-height:1.04;letter-spacing:-.035em;font-weight:600}
.greet h1 .serif{color:var(--accent);font-size:1em}
.brief{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;padding:22px;border-radius:24px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-md)}
.brief-orb{width:56px;height:56px;border-radius:18px;background:var(--orb-tile);display:grid;place-items:center;box-shadow:inset 0 0 0 1px var(--orb-ring)}
.brief-body{display:flex;flex-direction:column;gap:16px;min-width:0}
.brief-text{font-size:17px;line-height:1.6;color:var(--fg);max-width:70ch}
.brief-text b{font-weight:600}
.w-in{display:inline-block;animation:wIn .5s var(--ease-out) both}
@keyframes wIn{from{opacity:0;filter:blur(5px);transform:translateY(3px)}}
.bkpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));gap:10px}
.bkpi{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-radius:16px;background:var(--surface-2);border:1px solid var(--line)}
.bkpi .k-l{font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:6px}
.bkpi .k-v{font-size:26px;font-weight:600;letter-spacing:-.03em;line-height:1.1}
.bkpi .k-s{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12.5px;color:var(--muted)}
.delta{display:inline-flex;align-items:center;gap:3px;font-weight:600;font-size:12.5px}
.delta.good{color:var(--good)}.delta.bad{color:var(--bad)}
.evidence{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.ev{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 9px 0 6px;border-radius:8px;background:var(--surface-2);border:1px solid var(--line);font-size:12px;color:var(--muted);cursor:pointer}
.ev:hover{color:var(--fg);border-color:var(--line-2)}
.brief-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.thumbs{display:inline-flex;gap:2px}

.sugs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:14px}
.sug{position:relative;display:flex;flex-direction:column;gap:10px;padding:18px;border-radius:20px;background:var(--surface);border:1px solid var(--line);transition:transform .5s var(--spring),box-shadow .3s,border-color .2s;animation:itemIn .6s var(--ease-out) both;animation-delay:calc(var(--i)*70ms + 200ms)}
.sug:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--line-2)}
.sug-top{display:flex;align-items:center;gap:10px}
.sug-top .pill{margin-left:auto}
.sug h3{font-size:16px;line-height:1.3;letter-spacing:-.015em}
.sug p{font-size:14px;color:var(--muted);line-height:1.5}
.sug-acts{display:flex;gap:8px;margin-top:auto;padding-top:4px;align-items:center}

.two{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:18px}
@media (max-width:980px){.two{grid-template-columns:minmax(0,1fr)}}

/* stacked approvals tray (expands into a list) */
.tray{position:relative;border-radius:22px;background:var(--surface);border:1px solid var(--line);padding:18px;display:flex;flex-direction:column;gap:14px}
.apstack{position:relative;height:118px;cursor:pointer;border:0;background:transparent;padding:0;text-align:left;width:100%}
.apstack-more{position:absolute;left:0;right:0;bottom:0;text-align:center;font-size:12.5px;color:var(--muted);transition:color .2s}
.apstack:hover .apstack-more{color:var(--fg)}
.apstack .sc{position:absolute;left:0;right:0;top:0;display:flex;align-items:center;gap:12px;padding:14px;border-radius:16px;background:var(--surface);border:1px solid var(--line-2);box-shadow:var(--shadow-sm);transition:transform .6s var(--spring),opacity .3s}
.apstack .sc:nth-child(1){z-index:3}
.apstack .sc:nth-child(2){z-index:2;transform:translateY(16px) scale(.955);opacity:.92}
.apstack .sc:nth-child(3){z-index:1;transform:translateY(32px) scale(.91);opacity:.7}
.apstack .sc:nth-child(n+4){opacity:0;transform:translateY(40px) scale(.88)}
.apstack:hover .sc:nth-child(2){transform:translateY(22px) scale(.96)}
.apstack:hover .sc:nth-child(3){transform:translateY(44px) scale(.92)}
.sc-thumb{width:42px;height:42px;border-radius:11px;overflow:hidden;flex-shrink:0;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--line)}
.sc-thumb img{width:100%;height:100%;object-fit:cover}
.sc-t{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.3}
.sc-t b{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sc-t small{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tray-list{display:flex;flex-direction:column;gap:8px}
.tray-list .sc{position:relative;display:flex;align-items:center;gap:12px;padding:12px;border-radius:14px;background:var(--surface-2);border:1px solid var(--line);animation:rowIn .55s var(--spring) both;animation-delay:calc(var(--i)*40ms + 60ms);transform-origin:100% 100%}
@keyframes rowIn{from{opacity:0;transform:translate(10px,15px) rotate(1deg)}}
.tray-foot{display:flex;align-items:center;gap:10px;margin-top:auto}

.studio-mini{display:flex;flex-direction:column;gap:12px;border-radius:22px;background:var(--surface);border:1px solid var(--line);padding:18px}
.jobs{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.job{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:4/5;background:var(--stage);color:var(--on-stage);max-width:100%}
.job video,.job img{width:100%;height:100%;object-fit:cover}
.job-cap{position:absolute;left:8px;right:8px;bottom:8px;display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:12px;background:rgba(10,20,18,.62);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-size:12px;color:#f2f0e8;line-height:1.3}
.job-cap b{font-weight:600;display:block}
.making{display:grid;place-items:center;align-content:center;gap:10px;text-align:center;padding:16px}
.making .m-t{font-size:13px;font-weight:600;color:var(--on-stage)}
.making .m-s{font-size:12px;color:var(--on-stage-2)}
.dev-grid{position:absolute;inset:0;opacity:.55}
/* a moving trail around the one live job */
.trail{position:absolute;inset:0;border-radius:inherit;pointer-events:none;padding:1.5px;background:conic-gradient(from var(--a,0deg),transparent 0 70%,var(--accent) 85%,transparent 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:trail 3.2s linear infinite}
@property --a{syntax:'<angle>';inherits:false;initial-value:0deg}
@keyframes trail{to{--a:360deg}}

.pulse-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(205px,100%),1fr));gap:12px}
.plat{display:flex;flex-direction:column;gap:10px;padding:16px;border-radius:18px;background:var(--surface);border:1px solid var(--line);text-decoration:none;color:inherit;transition:border-color .2s,transform .5s var(--spring)}
.plat:hover{border-color:var(--line-2);transform:translateY(-2px)}
.plat-top{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600}
.plat-top .pill{margin-left:auto}
.plat-mid{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}
.plat-mid .v{font-size:22px;font-weight:600;letter-spacing:-.02em;line-height:1}
.plat-mid small{display:block;font-size:12px;color:var(--muted);margin-top:4px;font-weight:400;letter-spacing:0}
.plat .spark{color:var(--fg)}
.ghost-plat{border-style:dashed;background:transparent}
.ghost-plat .plat-mid{color:var(--muted);font-size:13.5px}

@media (max-width:760px){.brief{grid-template-columns:minmax(0,1fr);padding:18px;gap:12px}.brief-orb{width:44px;height:44px;border-radius:14px}.brief-text{font-size:16px}.jobs{grid-template-columns:1fr 1fr}}

/* ================= chat with generative UI + canvas ================= */
.chat{display:grid;grid-template-columns:minmax(0,1fr) 0;height:100%;transition:grid-template-columns .6s var(--spring-soft)}
.chat.canvas-open{grid-template-columns:minmax(0,1fr) min(440px,42%)}
.chat-main{display:flex;flex-direction:column;min-width:0;min-height:0}
.chat-head{display:flex;align-items:center;gap:12px;padding:12px 24px;border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0;z-index:5}
.chat-head h1{font-size:15px;font-weight:600;letter-spacing:-.01em;display:flex;align-items:center;gap:6px;min-width:0}
.chat-head h1 span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chat-head .srcs{margin-left:auto;display:flex;align-items:center;gap:8px}
.chat-scroll{flex:1;overflow:auto;min-height:0;scroll-behavior:smooth}
.thread{max-width:780px;margin:0 auto;padding:28px 24px 24px;display:flex;flex-direction:column;gap:26px}
.msg-u{align-self:flex-end;max-width:min(560px,86%);padding:12px 16px;border-radius:20px 20px 6px 20px;background:var(--deep);color:var(--bg);font-size:15.5px;line-height:1.5;animation:uIn .5s var(--spring) both;transform-origin:100% 100%}
@keyframes uIn{from{opacity:0;transform:translateY(10px) scale(.96)}}
.msg-f{display:grid;grid-template-columns:34px minmax(0,1fr);gap:14px;animation:itemIn .4s var(--ease-out) both}
.f-av{width:34px;height:34px;border-radius:11px;background:var(--orb-tile);display:grid;place-items:center;box-shadow:inset 0 0 0 1px var(--orb-ring)}
.f-body{display:flex;flex-direction:column;gap:14px;min-width:0}
.f-text{font-size:16px;line-height:1.65}
.f-text p+p{margin-top:10px}
.f-text b{font-weight:600}

/* work log (plan + tool steps) */
.worklog{border:1px solid var(--line);border-radius:16px;background:var(--surface-2);overflow:hidden}
.wl-sum{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;border:0;background:transparent;cursor:pointer;font-size:13.5px;color:var(--fg-2);text-align:left}
.wl-sum .wl-n{margin-left:auto;color:var(--muted);display:inline-flex;align-items:center;gap:6px}
.wl-sum svg.chev{transition:transform .35s var(--spring)}
.worklog[data-open="true"] .wl-sum svg.chev{transform:rotate(180deg)}
.wl-steps{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s var(--spring-soft)}
.worklog[data-open="true"] .wl-steps{grid-template-rows:1fr}
.wl-steps>div{overflow:hidden}
.wl-list{display:flex;flex-direction:column;gap:2px;padding:0 14px 12px 14px;position:relative}
.wl-step{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:10px;align-items:center;font-size:13.5px;padding:5px 0;animation:itemIn .4s var(--ease-out) both}
.wl-step .st{width:20px;height:20px;border-radius:50%;display:grid;place-items:center}
.wl-step .st.done{background:var(--good-soft);color:var(--good)}
.wl-step .st.run{border:2px solid var(--line-2);border-top-color:var(--accent);animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.wl-step .src{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--muted)}
.wl-step.running .wl-t{background:linear-gradient(90deg,var(--muted) 0%,var(--muted) 40%,var(--fg) 50%,var(--muted) 60%,var(--muted) 100%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:tshim 1.8s linear infinite}

/* generative cards */
.gcard{border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden;animation:cardIn .7s var(--spring) both}
@keyframes cardIn{from{opacity:0;transform:translateY(12px) scale(.98);filter:blur(4px)}}
.gc-head{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}
.gc-head b{font-size:14.5px;font-weight:600}
.gc-head .pill{margin-left:auto}
.gc-foot{display:flex;align-items:center;gap:8px;padding:12px 16px;border-top:1px solid var(--line);background:var(--surface-2);flex-wrap:wrap}
.gc-foot .note{font-size:12.5px;color:var(--muted);margin-left:auto;display:inline-flex;align-items:center;gap:6px}
.reels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:16px}
.reel{display:flex;flex-direction:column;gap:10px;min-width:0}
.reel-frames{position:relative;aspect-ratio:9/12;border-radius:14px;overflow:hidden;background:var(--sunk);cursor:pointer;max-width:100%;border:0;padding:0;display:block;width:100%}
.reel-frames img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease-out)}
.reel-frames:hover img{transform:scale(1.04)}
.reel-frames .kf{position:absolute;left:8px;right:8px;bottom:8px;display:flex;gap:4px}
.reel-frames .kf span{flex:1;height:3px;border-radius:2px;background:rgba(255,255,255,.45)}
.reel-frames .kf span:first-child{background:#fff}
.reel-frames .tag{position:absolute;top:8px;left:8px;padding:3px 8px;border-radius:999px;background:rgba(10,20,18,.6);color:#f2f0e8;font-size:11.5px;font-weight:600;backdrop-filter:blur(8px)}
.reel h4{font-size:14px;font-weight:600}
.reel p{font-size:13px;color:var(--muted);line-height:1.45}
.reel .meta{display:flex;gap:6px;flex-wrap:wrap}

.plan-rows{display:flex;flex-direction:column}
.prow{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:14px;align-items:center;padding:11px 16px;border-bottom:1px solid var(--line);font-size:14px}
.prow:last-child{border-bottom:0}
.prow .k{color:var(--muted);font-size:13px}
.prow .v{min-width:0}
.prow .v small{display:block;color:var(--muted);font-size:12.5px}
.budget{display:flex;flex-direction:column;gap:8px}
.budget-top{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.budget-top b{font-size:20px;font-weight:650;letter-spacing:-.02em}
.range{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:999px;background:linear-gradient(90deg,var(--fg) var(--pct,30%),var(--sunk) var(--pct,30%));outline:none}
.range::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:var(--surface);border:2px solid var(--fg);box-shadow:var(--shadow-sm);cursor:grab;transition:transform .3s var(--spring)}
.range::-webkit-slider-thumb:active{transform:scale(1.15);cursor:grabbing}
.range::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--surface);border:2px solid var(--fg)}
.forecast{display:flex;gap:6px;align-items:center;font-size:12.5px;color:var(--muted)}
.forecast b{color:var(--fg);font-weight:600}
.next-chips{display:flex;gap:8px;flex-wrap:wrap}
.metric-card{padding:16px;display:flex;flex-direction:column;gap:12px}
.bars-chart{display:grid;grid-template-columns:minmax(110px,170px) minmax(0,1fr) 64px;gap:9px 14px;align-items:center;font-size:13.5px}
.bars-chart .b{display:flex;flex-direction:column;gap:3px}
.bars-chart .b i{display:block;height:9px;border-radius:4px;transform-origin:left;animation:grow .9s var(--spring-soft) both}
.bars-chart .b i.prev{background:var(--line-2)}
.bars-chart .b i.cur{background:var(--fg)}
.bars-chart .b i.hot{background:var(--accent)}
.bars-chart .val{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.legend{display:flex;gap:14px;font-size:12px;color:var(--muted)}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:10px;height:10px;border-radius:3px;display:inline-block}

.chat-foot{padding:0 24px 18px;background:linear-gradient(180deg,transparent,var(--bg) 30%)}
.chat-foot .composer{max-width:780px;margin:0 auto}
.chat-foot .fine{max-width:780px;margin:8px auto 0;text-align:center;font-size:12px;color:var(--muted)}

/* canvas: placement preview beside the chat */
.canvas{min-width:0;border-left:1px solid var(--line);background:var(--bg-2);display:flex;flex-direction:column;overflow:hidden}
.cv-head{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line)}
.cv-head b{font-size:14px;font-weight:600;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cv-body{flex:1;overflow:auto;padding:18px;display:flex;flex-direction:column;align-items:center;gap:16px}
.place-tabs{position:relative;display:inline-flex;padding:3px;border-radius:999px;background:var(--sunk);gap:2px}
.place-tabs button{position:relative;z-index:1;height:30px;padding:0 13px;border:0;border-radius:999px;background:transparent;font-size:12.5px;font-weight:550;color:var(--muted);cursor:pointer}
.place-tabs button[aria-pressed="true"]{color:var(--fg)}
.place-tabs .seg-blob{position:absolute;top:3px;bottom:3px;border-radius:999px;background:var(--surface);box-shadow:var(--shadow-sm);transition:left .5s var(--spring),width .5s var(--spring)}
.phone{position:relative;width:min(270px,100%);aspect-ratio:9/19.2;border-radius:38px;padding:9px;background:#0d0f0e;box-shadow:0 0 0 1.5px #2a2e2c,var(--shadow-lg)}
.phone-screen{position:relative;width:100%;height:100%;border-radius:30px;overflow:hidden;background:#000}
.phone-screen video,.phone-screen img{width:100%;height:100%;object-fit:cover}
.ig-top{position:absolute;top:0;left:0;right:0;padding:30px 14px 10px;display:flex;justify-content:space-between;color:#fff;font-size:13px;font-weight:650;background:linear-gradient(rgba(0,0,0,.35),transparent)}
.ig-side{position:absolute;right:10px;bottom:90px;display:flex;flex-direction:column;gap:16px;color:#fff;align-items:center;font-size:10px}
.ig-side span{width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.18);backdrop-filter:blur(6px)}
.ig-bottom{position:absolute;left:0;right:0;bottom:0;padding:40px 14px 16px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.6));display:flex;flex-direction:column;gap:8px;font-size:12px;line-height:1.35}
.ig-who{display:flex;align-items:center;gap:8px;font-weight:650}
.ig-who i{width:24px;height:24px;border-radius:50%;background:#fff;display:grid;place-items:center;font-style:normal;color:#0a5;font-size:9px;font-weight:800}
.ig-cta{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border-radius:8px;background:rgba(255,255,255,.92);color:#111;font-weight:650;font-size:12px}
.ig-spons{font-size:10.5px;opacity:.8;font-weight:500}
.cv-edit{width:100%;max-width:340px;display:flex;flex-direction:column;gap:10px}
.inline-edit{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface)}
.inline-edit [contenteditable]{flex:1;outline:none;font-size:13.5px;line-height:1.45;min-width:0}
.inline-edit [contenteditable]:focus{color:var(--fg)}
.inline-edit .lbl2{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);display:block;margin-bottom:2px}
@media (max-width:1100px){.chat.canvas-open{grid-template-columns:minmax(0,1fr)}.canvas{position:fixed;inset:42px 0 0 auto;width:min(420px,100%);z-index:50;box-shadow:var(--shadow-lg)}}
@media (max-width:760px){.thread{padding:18px 16px}.chat-foot{padding:0 12px 12px}.reels{grid-template-columns:1fr 1fr;gap:10px;padding:12px}.prow{grid-template-columns:minmax(0,1fr);gap:4px}.bars-chart{grid-template-columns:minmax(90px,120px) minmax(0,1fr) 54px}.chat-head{padding:10px 16px}.canvas{inset:42px 0 calc(64px + env(safe-area-inset-bottom,0px)) 0;width:100%}}

/* ================= approvals ================= */
.inbox{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);height:100%}
.ib-list{border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0;background:var(--bg)}
.ib-head{padding:22px 20px 12px;display:flex;flex-direction:column;gap:4px}
.ib-head h1{font-size:24px;letter-spacing:-.03em}
.ib-items{flex:1;overflow:auto;padding:4px 12px 12px;display:flex;flex-direction:column;gap:6px}
.ib-item{display:flex;gap:12px;align-items:flex-start;width:100%;padding:12px;border-radius:14px;border:1px solid transparent;background:transparent;text-align:left;cursor:pointer;animation:rowIn .55s var(--spring) both;animation-delay:calc(var(--i)*45ms);transition:background .15s,border-color .15s}
.ib-item:hover{background:var(--surface-2)}
.ib-item[aria-current="true"]{background:var(--surface);border-color:var(--line-2);box-shadow:var(--shadow-sm)}
.ib-item .sc-t b{white-space:normal}
.ib-item .when{font-size:11.5px;color:var(--faint);white-space:nowrap}
.ib-item.done{opacity:.5}
.rules{margin:8px 12px 14px;padding:14px;border-radius:16px;border:1px solid var(--line);background:var(--surface);display:flex;flex-direction:column;gap:10px}
.rules h3{font-size:13.5px;display:flex;align-items:center;gap:8px}
.rule{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--fg-2)}
.rule span{flex:1}
.switch{position:relative;width:38px;height:22px;border-radius:999px;border:0;background:var(--line-2);cursor:pointer;flex-shrink:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.15);transition:background .3s}
.switch::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--surface);box-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform .35s cubic-bezier(.32,.72,0,1)}
.switch[aria-checked="true"]{background:var(--good)}
.switch[aria-checked="true"]::after{transform:translateX(16px)}
.switch[disabled]{opacity:.6;cursor:not-allowed}
.ib-detail{min-width:0;overflow:auto;background:var(--bg)}
.apd{max-width:860px;margin:0 auto;padding:26px 32px 60px;display:flex;flex-direction:column;gap:22px;animation:itemIn .45s var(--ease-out) both}
.ad-head{display:flex;flex-direction:column;gap:10px}
.ad-head .row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.ad-head h2{font-size:28px;letter-spacing:-.03em;line-height:1.15}
.ad-grid{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:22px;align-items:start}
.fwhat{display:flex;flex-direction:column;gap:0;border:1px solid var(--line);border-radius:18px;background:var(--surface);overflow:hidden}
.fwhat-row{display:flex;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);font-size:14.5px;line-height:1.45}
.fwhat-row:last-child{border-bottom:0}
.fwhat-row .ic{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--line);flex-shrink:0;color:var(--fg-2)}
.fwhat-row b{font-weight:600}
.mini-phone{width:100%;max-width:240px;aspect-ratio:9/16;border-radius:24px;overflow:hidden;background:#000;position:relative;box-shadow:0 0 0 6px #0d0f0e,var(--shadow-lg);margin:6px}
.mini-phone video{width:100%;height:100%;object-fit:cover}
.fchecks{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));gap:10px}
.fcheck{display:flex;gap:10px;padding:12px 14px;border-radius:14px;background:var(--surface);border:1px solid var(--line);font-size:13.5px;line-height:1.4}
.fcheck .st{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;background:var(--good-soft);color:var(--good)}
.fcheck small{display:block;color:var(--muted);font-size:12.5px}
.limit{display:flex;flex-direction:column;gap:6px;padding:14px 16px;border-radius:14px;background:var(--surface);border:1px solid var(--line)}
.limit .meter span{background:var(--fg)}
.limit .meter i{display:block;height:100%;background:var(--accent);margin-left:auto}
.decide{position:sticky;bottom:0;padding:16px 0 4px;background:linear-gradient(transparent,var(--bg) 26%);display:flex;flex-direction:column;gap:10px}
.decide-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.sta{position:relative;flex:none;width:100%;height:58px;border-radius:999px;background:var(--sta-ink);color:var(--bg);overflow:hidden;user-select:none;touch-action:none;box-shadow:inset 0 2px 6px rgba(0,0,0,.35)}
.sta-fill{position:absolute;inset:0;background:var(--accent);transform-origin:left;transform:scaleX(calc(var(--p,0)*1));opacity:calc(var(--p,0)*.9);transition:opacity .2s}
.sta-label{position:absolute;inset:0;display:grid;place-items:center;font-size:14.5px;font-weight:600;padding-left:56px;background:linear-gradient(90deg,var(--bg) 0%,var(--bg) 40%,var(--faint) 50%,var(--bg) 60%,var(--bg) 100%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:tshim 2.4s linear infinite}
.sta-knob{position:absolute;left:4px;top:4px;width:50px;height:50px;border-radius:50%;border:0;background:var(--bg);color:var(--sta-ink);display:grid;place-items:center;cursor:grab;box-shadow:0 2px 8px rgba(0,0,0,.35);z-index:2}
.sta.dragging .sta-knob{cursor:grabbing}
.sta.done{background:var(--good)}
.sta.done .sta-label{animation:none;color:#fff;background:none;-webkit-background-clip:initial;background-clip:initial;padding:0 56px 0 0}
.sta.done .sta-knob{background:#fff;color:var(--good)}
.hold{position:relative;overflow:hidden}
.hold .hold-fill{position:absolute;inset:0;background:var(--accent);transform:scaleX(0);transform-origin:left;z-index:-1}
.hold.holding .hold-fill{transform:scaleX(1);transition:transform 1.2s linear}
.diff{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--surface);font-family:var(--font-mono);font-size:12.5px}
.diff-row{display:grid;grid-template-columns:28px minmax(0,1fr);padding:7px 12px;gap:6px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.diff-row:last-child{border-bottom:0}
.diff-row.del{background:var(--bad-soft);color:var(--bad)}
.diff-row.add{background:var(--good-soft);color:var(--good)}
.terms{display:flex;flex-wrap:wrap;gap:6px}
.term{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border-radius:9px;background:var(--surface);border:1px solid var(--line);font-size:13px}
.term s{color:var(--muted)}
.term .c{font-size:11.5px;color:var(--bad);font-weight:600}
.tech{border-top:1px dashed var(--line-2);padding-top:12px}
.tech summary{cursor:pointer;font-size:13px;color:var(--muted);list-style:none;display:inline-flex;align-items:center;gap:6px}
.tech summary::-webkit-details-marker{display:none}
.tech dl{display:grid;grid-template-columns:160px minmax(0,1fr);gap:6px 14px;margin:10px 0 0;font-size:12.5px}
.tech dt{color:var(--muted)}.tech dd{margin:0;font-family:var(--font-mono);overflow-wrap:anywhere}
.ib-back{display:none}
@media (max-width:900px){.inbox{grid-template-columns:minmax(0,1fr)}.inbox.show-detail .ib-list{display:none}.inbox:not(.show-detail) .ib-detail{display:none}.ib-back{display:inline-flex}.apd{padding:18px 16px 40px}.ad-grid{grid-template-columns:minmax(0,1fr)}.mini-phone{max-width:200px}}

/* ================= campaigns ================= */
.filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.filters .grow{flex:1}
.fsearch{display:flex;align-items:center;gap:8px;height:36px;padding:0 12px;border-radius:11px;border:1px solid var(--line-2);background:var(--surface);min-width:min(240px,100%)}
.fsearch input{border:0;outline:0;background:transparent;flex:1;min-width:0;font-size:13.5px}
.chip.ghost{border-style:dashed;color:var(--muted)}
.sumrow{display:flex;gap:28px;flex-wrap:wrap;padding:2px 2px}
.sumrow div{display:flex;flex-direction:column;gap:2px}
.sumrow span{font-size:12.5px;color:var(--muted)}
.sumrow b{font-size:22px;font-weight:600;letter-spacing:-.02em}
.ctbl-wrap{border:1px solid var(--line);border-radius:20px;background:var(--surface);overflow:auto}
.ctbl{width:100%;border-collapse:collapse;font-size:14px;min-width:820px}
.ctbl th{position:sticky;top:0;background:var(--surface);text-align:left;font-size:12px;font-weight:550;color:var(--muted);padding:12px 14px;border-bottom:1px solid var(--line);white-space:nowrap}
.ctbl td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:middle}
.ctbl tr:last-child td{border-bottom:0}
.ctbl tbody tr{cursor:pointer;transition:background .15s;animation:itemIn .45s var(--ease-out) both;animation-delay:calc(var(--i)*30ms)}
.ctbl tbody tr:hover{background:var(--surface-2)}
.ctbl .r{text-align:right;font-variant-numeric:tabular-nums}
.cname{display:flex;align-items:center;gap:12px;min-width:0}
.cname .ct{display:flex;flex-direction:column;line-height:1.3;min-width:0}
.cname .ct b{font-weight:600;white-space:nowrap}
.cname .ct small{color:var(--muted);font-size:12.5px}
.cthumb{width:36px;height:36px;border-radius:10px;overflow:hidden;flex-shrink:0;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--line);position:relative}
.cthumb img{width:100%;height:100%;object-fit:cover}
.cthumb .lg{position:absolute;right:-4px;bottom:-4px;width:18px;height:18px;border-radius:6px;background:var(--surface);display:grid;place-items:center;box-shadow:0 0 0 1.5px var(--surface)}
.fnote{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--fg-2);min-width:170px;max-width:230px}
.fnote canvas{flex-shrink:0}
.ctbl .spark{color:var(--fg)}

/* side sheet */
.sheet-back{position:fixed;inset:0;z-index:65;background:rgba(14,25,23,.28);animation:fadeIn .2s both}
.sheet{position:fixed;top:0;right:0;bottom:0;z-index:66;width:min(560px,100%);background:var(--bg);border-left:1px solid var(--line);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:sheetIn .6s var(--spring-soft) both}
@keyframes sheetIn{from{transform:translateX(40px);opacity:0}}
.sheet-head{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}
.sheet-head .t{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.3}
.sheet-head .t b{font-size:16px;font-weight:600}
.sheet-head .t small{color:var(--muted);font-size:12.5px}
.sheet-body{flex:1;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:18px}
.bigchart{border:1px solid var(--line);border-radius:18px;background:var(--surface);padding:16px;display:flex;flex-direction:column;gap:10px}
.bigchart .spark{width:100%;height:auto;color:var(--fg)}
.ads-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ad-tile{border-radius:14px;overflow:hidden;background:var(--sunk);aspect-ratio:4/5;position:relative;max-width:100%}
.ad-tile img{width:100%;height:100%;object-fit:cover}
.ad-tile span{position:absolute;left:6px;bottom:6px;padding:2px 7px;border-radius:999px;background:rgba(10,20,18,.62);color:#f2f0e8;font-size:11px;font-weight:600}
.ad-tile.text{display:flex;flex-direction:column;gap:4px;padding:12px;background:var(--surface);border:1px solid var(--line);font-size:12.5px;aspect-ratio:auto}
.ad-tile.text b{color:var(--info);font-size:13px}
.quick{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.quick button{justify-content:flex-start}
.fnotice{display:flex;gap:12px;padding:14px;border-radius:16px;background:var(--accent-soft);border:1px solid var(--accent-line);font-size:14px;line-height:1.5}
.fnotice .f-av{width:30px;height:30px;border-radius:10px;flex-shrink:0}

/* new campaign: goal-first, multi-step */
.modal-back{position:fixed;inset:0;z-index:75;background:rgba(14,25,23,.4);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:grid;place-items:center;padding:16px;animation:fadeIn .2s both}
.modal{width:min(720px,100%);max-height:calc(100% - 32px);display:flex;flex-direction:column;border-radius:26px;background:var(--bg);border:1px solid var(--line-2);box-shadow:var(--shadow-lg);overflow:hidden;animation:cmdIn .55s var(--spring) both}
.modal-head{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line)}
.steps-dots{display:flex;gap:6px;margin-left:auto;margin-right:8px}
.steps-dots i{width:8px;height:8px;border-radius:999px;background:var(--line-2);transition:width .5s var(--spring),background .3s}
.steps-dots i.on{width:26px;background:var(--deep)}
.steps-dots i.done{background:var(--accent)}
.modal-body{position:relative;overflow:auto;transition:height .5s var(--spring-soft)}
.step{padding:22px 22px 8px;display:flex;flex-direction:column;gap:16px}
.step.in-r{animation:inR .5s var(--spring-soft) both}.step.in-l{animation:inL .5s var(--spring-soft) both}
@keyframes inR{from{opacity:0;transform:translateX(40px)}}@keyframes inL{from{opacity:0;transform:translateX(-40px)}}
.step h3{font-size:22px;letter-spacing:-.025em}
.step h3 .serif{color:var(--accent)}
.opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:10px}
.opt{position:relative;display:flex;flex-direction:column;gap:6px;padding:14px;border-radius:16px;border:1px solid var(--line-2);background:var(--surface);text-align:left;cursor:pointer;transition:border-color .2s,transform .45s var(--spring),box-shadow .2s}
.opt:hover{transform:translateY(-2px)}
.opt[aria-pressed="true"]{border-color:var(--fg);box-shadow:0 0 0 1px var(--fg),var(--shadow-md)}
.opt[aria-pressed="true"]::after{content:"";position:absolute;top:12px;right:12px;width:18px;height:18px;border-radius:50%;background:var(--deep) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/11px no-repeat;animation:pop .45s var(--spring)}
@keyframes pop{from{transform:scale(.3)}}
.opt b{font-size:14.5px;font-weight:600}
.opt small{font-size:12.5px;color:var(--muted);line-height:1.45}
.opt .rec{align-self:flex-start;font-size:11px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}
.opt[disabled]{opacity:.5;cursor:not-allowed;transform:none}
.frank-says{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:14px;background:var(--surface-2);border:1px solid var(--line);font-size:13.5px;line-height:1.5}
.frank-says .f-av{width:28px;height:28px;border-radius:9px;flex-shrink:0}
.modal-foot{display:flex;align-items:center;gap:10px;padding:14px 20px;border-top:1px solid var(--line);background:var(--surface-2)}
.modal-foot .sp{flex:1}
.cf{position:relative;height:300px;perspective:1000px;outline:none;touch-action:pan-y;user-select:none;overflow:hidden;overflow:clip;overflow-clip-margin:24px}
.cf-card{position:absolute;left:50%;top:6px;width:168px;aspect-ratio:9/16;border-radius:18px;overflow:hidden;background:var(--sunk);box-shadow:var(--shadow-md);cursor:pointer;transform-style:preserve-3d}
.cf.anim .cf-card{transition:transform .55s var(--spring-soft),opacity .3s}
.cf-card img,.cf-card video{width:100%;height:100%;object-fit:cover;pointer-events:none}
.cf-card::after{content:"";position:absolute;inset:0;background:#0b1513;opacity:var(--dim,0);transition:opacity .3s;pointer-events:none}
.cf-card.on{box-shadow:0 0 0 3px var(--accent),var(--shadow-lg)}
.cf-cap{text-align:center;font-size:13.5px;color:var(--muted);min-height:20px}
.review-list{border:1px solid var(--line);border-radius:16px;background:var(--surface);overflow:hidden}
@media (max-width:760px){.ads-row{grid-template-columns:repeat(2,minmax(0,1fr))}.quick{grid-template-columns:minmax(0,1fr)}.cf{height:250px}.cf-card{width:138px}}

/* ================= studio: one board, prompt on top, inspector on demand ================= */
.studio{max-width:1320px;margin:0 auto;padding:22px 28px 70px;display:flex;flex-direction:column;gap:18px}
.st-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.st-top h1{font-size:28px;letter-spacing:-.03em}
.stabs{position:relative;display:inline-flex;gap:2px;padding:3px;border-radius:13px;background:var(--sunk)}
.stabs button{position:relative;z-index:1;height:32px;padding:0 13px;border:0;border-radius:10px;background:transparent;font-size:13.5px;font-weight:550;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.stabs button[aria-pressed="true"]{color:var(--fg)}
.stabs .seg-blob{position:absolute;top:3px;bottom:3px;border-radius:10px;background:var(--surface);box-shadow:var(--shadow-sm);transition:left .5s var(--spring),width .5s var(--spring)}
.st-top .right{margin-left:auto;display:flex;gap:8px;align-items:center}
.credit-chip{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 12px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-size:13px}
.credit-chip b{font-weight:650}
.dock{position:sticky;top:10px;z-index:8}
.dock .composer{box-shadow:var(--shadow-lg)}
.dock-chips{display:flex;gap:6px;flex-wrap:wrap;padding:0 2px 2px}
.dchip{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 10px 0 4px;border-radius:999px;border:1px solid var(--line);background:var(--surface-2);font-size:12.5px;color:var(--fg-2);cursor:pointer}
.dchip:hover{border-color:var(--line-2);color:var(--fg)}
.dchip .dthumb{width:22px;height:22px;border-radius:50%;overflow:hidden;background:var(--sunk);display:grid;place-items:center}
.dchip .dthumb img{width:100%;height:100%;object-fit:cover}
.dchip.noimg{padding-left:10px}
.colls{display:flex;gap:12px;overflow-x:auto;padding:4px 2px 8px;scrollbar-width:none}
.coll{flex:0 0 auto;display:flex;align-items:center;gap:12px;padding:8px 14px 8px 8px;border-radius:16px;border:1px solid var(--line);background:var(--surface);cursor:pointer;transition:border-color .2s,transform .45s var(--spring)}
.coll:hover{transform:translateY(-2px)}
.coll[aria-pressed="true"]{border-color:var(--fg);box-shadow:0 0 0 1px var(--fg)}
.fan{position:relative;width:52px;height:44px}
.fan img{position:absolute;top:2px;width:30px;height:40px;object-fit:cover;border-radius:6px;box-shadow:0 2px 6px rgba(0,0,0,.18);border:1.5px solid var(--surface);transition:transform .5s var(--spring)}
.fan img:nth-child(1){left:0;transform:rotate(-9deg)}
.fan img:nth-child(2){left:11px;transform:rotate(0);z-index:1}
.fan img:nth-child(3){left:22px;transform:rotate(9deg)}
.coll:hover .fan img:nth-child(1){transform:rotate(-16deg) translateX(-3px)}
.coll:hover .fan img:nth-child(3){transform:rotate(16deg) translateX(3px)}
.coll .ct{display:flex;flex-direction:column;line-height:1.25}
.coll .ct b{font-size:13.5px;font-weight:600;white-space:nowrap}
.coll .ct small{font-size:12px;color:var(--muted)}
.board{columns:4 230px;column-gap:14px}
.stile{position:relative;break-inside:avoid;margin:0 0 14px;border-radius:18px;overflow:hidden;background:var(--sunk);cursor:pointer;display:block;width:100%;border:0;padding:0;text-align:left;animation:tileIn .6s var(--spring) both;animation-delay:calc(var(--i)*50ms);color:#fff}
@keyframes tileIn{from{opacity:0;transform:translateY(14px) scale(.97)}}
.stile img,.stile video{width:100%;display:block;object-fit:cover;transition:transform .9s var(--ease-out)}
.stile:hover img,.stile:hover video{transform:scale(1.035)}
.stile .r916{aspect-ratio:9/16}.stile .r11{aspect-ratio:1/1}.stile .r45{aspect-ratio:4/5}
.stile-top{position:absolute;top:10px;left:10px;right:10px;display:flex;gap:6px;justify-content:space-between;pointer-events:none}
.badge-g{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 9px;border-radius:999px;background:rgba(10,20,18,.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#f2f0e8;font-size:11.5px;font-weight:600}
.badge-g.warn{background:rgba(160,110,20,.9);color:#fff}
.stile-cap{position:absolute;left:0;right:0;bottom:0;padding:34px 12px 12px;background:linear-gradient(transparent,rgba(5,12,10,.72));display:flex;flex-direction:column;gap:2px;opacity:0;transform:translateY(6px);transition:opacity .3s,transform .4s var(--spring)}
.stile:hover .stile-cap,.stile:focus-visible .stile-cap{opacity:1;transform:none}
.stile-cap b{font-size:13.5px;font-weight:600;line-height:1.3}
.stile-cap small{font-size:12px;opacity:.82}
.stile.tmaking{background:var(--stage);cursor:default}
.stile.tmaking .mk{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:10px;text-align:center;padding:18px}
.stile.tmaking .mk b{font-size:14px;color:var(--on-stage)}
.stile.tmaking .mk small{font-size:12px;color:var(--on-stage-2)}
.stile.tmaking .pbar{width:70%;height:3px;border-radius:3px;background:rgba(255,255,255,.12);overflow:hidden}
.stile.tmaking .pbar i{display:block;height:100%;width:var(--w,40%);background:var(--accent);border-radius:3px;transition:width 1s linear}
.stile.story{background:var(--surface);border:1px solid var(--line);color:var(--fg);cursor:default}
.story-frames{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:10px 10px 0}
.story-frames span{aspect-ratio:9/16;border-radius:8px;background:var(--sunk);overflow:hidden;position:relative}
.story-frames span img{width:100%;height:100%;object-fit:cover;filter:saturate(.9)}
.story-frames span::after{content:attr(data-n);position:absolute;left:5px;top:4px;font-size:10px;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5)}
.story-body{padding:12px;display:flex;flex-direction:column;gap:8px}
.story-body b{font-size:14px}
.story-body p{font-size:12.5px;color:var(--muted);line-height:1.45}

/* inspector */
.insp-back{position:fixed;inset:0;z-index:70;background:rgba(8,15,13,.6);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);display:grid;place-items:center;padding:16px;animation:fadeIn .25s both}
.insp{width:min(1040px,100%);max-height:calc(100% - 32px);display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);border-radius:28px;overflow:hidden;background:var(--bg);box-shadow:var(--shadow-lg);animation:cmdIn .55s var(--spring) both}
.insp-media{background:#0b1210;display:grid;place-items:center;min-height:0;position:relative;padding:22px}
.insp-media video,.insp-media img{max-height:min(74vh,720px);max-width:100%;border-radius:16px;object-fit:contain}
.insp-media .snd{position:absolute;right:18px;bottom:18px;width:38px;height:38px;border-radius:50%;border:0;background:rgba(255,255,255,.14);color:#fff;display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(8px)}
.insp-side{display:flex;flex-direction:column;min-height:0;overflow:auto}
.insp-head{display:flex;align-items:flex-start;gap:10px;padding:20px 20px 6px}
.insp-head h2{flex:1;font-size:21px;letter-spacing:-.025em;line-height:1.2}
.insp-meta{display:flex;flex-wrap:wrap;gap:6px;padding:4px 20px 14px}
.insp-sec{padding:14px 20px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:10px}
.insp-sec h3{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}
.act-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.act-grid .btn{justify-content:flex-start;height:auto;min-height:48px;padding:9px 12px;white-space:normal;text-align:left}
.act-grid .btn span{display:flex;flex-direction:column;line-height:1.25}
.act-grid .btn small{font-weight:400;color:var(--muted);font-size:11.5px}
.ratios{display:flex;gap:6px;flex-wrap:wrap}
.claim{display:flex;gap:12px;padding:12px 14px;border-radius:14px;background:var(--warn-soft);color:var(--fg);font-size:13.5px;line-height:1.45;border:1px solid color-mix(in srgb,var(--warn) 30%,transparent)}
.claim .ic{color:var(--warn);flex-shrink:0;margin-top:1px}
.edit-words{display:flex;gap:8px}
.edit-words .input{height:40px}
.use-menu{display:flex;flex-direction:column;gap:6px}
.use-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface);font-size:13.5px;cursor:pointer;width:100%;text-align:left}
.use-row:hover{border-color:var(--fg)}
.use-row small{color:var(--muted);margin-left:auto;font-size:12px}
.use-row.off{opacity:.55;border-style:dashed}

/* subjects + brand kit */
.subj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(250px,100%),1fr));gap:14px}
.subj{border-radius:20px;border:1px solid var(--line);background:var(--surface);padding:14px;display:flex;flex-direction:column;gap:10px}
.subj-imgs{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;gap:6px;height:170px}
.subj-imgs img{width:100%;height:100%;object-fit:cover;border-radius:10px}
.subj-imgs img:first-child{grid-row:span 2}
.subj b{font-size:15px}
.subj small{color:var(--muted);font-size:12.5px}
.subj.add{border-style:dashed;align-items:center;justify-content:center;min-height:240px;color:var(--muted);cursor:pointer;background:transparent}
.kit{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:14px}
.kit-card{border-radius:20px;border:1px solid var(--line);background:var(--surface);padding:18px;display:flex;flex-direction:column;gap:12px}
.kit-card h3{font-size:15px;display:flex;align-items:center;gap:8px}
.swatches{display:flex;gap:10px;flex-wrap:wrap}
.sw{display:flex;flex-direction:column;gap:6px;font-size:11.5px;color:var(--muted);font-family:var(--font-mono)}
.sw i{width:58px;height:58px;border-radius:14px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.facts{display:flex;flex-direction:column;gap:8px}
.fact{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line);font-size:13.5px}
.fact span{flex:1}
.fact.inferred span{color:var(--muted)}
.fact .pill{flex-shrink:0}
.words{display:flex;gap:6px;flex-wrap:wrap}
@media (max-width:900px){.insp{grid-template-columns:minmax(0,1fr);overflow:auto}.insp-media{padding:14px}.insp-media video,.insp-media img{max-height:52vh}.studio{padding:16px 16px 50px}.board{columns:2 150px;column-gap:10px}.stile{margin-bottom:10px}}

/* ================= connections ================= */
.conn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(330px,100%),1fr));gap:14px}
.conn{border-radius:22px;border:1px solid var(--line);background:var(--surface);padding:18px;display:flex;flex-direction:column;gap:14px}
.conn.wide{grid-column:1/-1}
.conn-top{display:flex;align-items:center;gap:12px}
.conn-top .logo-tile{width:44px;height:44px;border-radius:13px}
.conn-top .t{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.3}
.conn-top .t b{font-size:16px;font-weight:600}
.conn-top .t small{font-size:12.5px;color:var(--muted)}
.led{width:9px;height:9px;border-radius:50%;background:var(--good);box-shadow:0 0 0 3px var(--good-soft),0 0 10px var(--good);flex-shrink:0}
.led.warn{background:var(--warn);box-shadow:0 0 0 3px var(--warn-soft),0 0 10px var(--warn)}
.parts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:8px}
.part{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:13px;background:var(--surface-2);border:1px solid var(--line);font-size:13px}
.part .pt{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.3}
.part .pt b{font-weight:600}
.part .pt small{color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.can{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--muted);flex-wrap:wrap}
.lvl{display:inline-flex;gap:3px;padding:3px;border-radius:999px;background:var(--sunk)}
.lvl span{padding:3px 10px;border-radius:999px;font-size:12px;font-weight:550;color:var(--muted)}
.lvl span.on{background:var(--surface);color:var(--fg);box-shadow:var(--shadow-sm)}
.picked{display:flex;flex-direction:column;gap:8px;padding:14px;border-radius:16px;background:var(--surface-2);border:1px solid var(--line)}
.picked .row{display:flex;align-items:center;gap:10px;font-size:13.5px}
.picked .row small{color:var(--muted);margin-left:auto;font-size:12px}
.left-out{font-size:13px;color:var(--muted);display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.avail{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr));gap:12px}
.av{display:flex;flex-direction:column;gap:10px;padding:16px;border-radius:18px;border:1px dashed var(--line-2);background:transparent}
.av-top{display:flex;align-items:center;gap:10px;font-weight:600}
.av p{font-size:13px;color:var(--muted);line-height:1.45;flex:1}
.never{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:center;padding:22px;border-radius:22px;background:var(--stage);color:var(--on-stage)}
.never h3{font-size:20px;letter-spacing:-.02em}
.never h3 .serif{color:var(--accent-stage)}
.never ul{margin:10px 0 0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));gap:8px 18px;font-size:14px;color:var(--on-stage-2)}
.never li{display:flex;gap:8px;align-items:center}
.never li svg{color:var(--accent-stage);flex-shrink:0}
.folder{position:relative;width:96px;height:78px;perspective:500px;flex-shrink:0}
.folder .back,.folder .front{position:absolute;inset:auto 0 0 0;border-radius:10px}
.folder .back{height:66px;background:#8a3a20}
.folder .back::before{content:"";position:absolute;top:-9px;left:0;width:40px;height:12px;border-radius:6px 6px 0 0;background:#8a3a20}
.folder .paper{position:absolute;left:12px;right:12px;bottom:14px;height:56px;border-radius:6px;background:var(--on-stage);transition:transform .6s var(--spring);display:grid;place-items:center;color:var(--stage)}
.folder .front{height:50px;background:var(--accent);transform-origin:bottom;transition:transform .6s var(--spring);box-shadow:0 -1px 0 rgba(255,255,255,.2) inset}
.never:hover .folder .paper{transform:translateY(-16px)}
.never:hover .folder .front{transform:rotateX(-28deg)}
@media (max-width:640px){.never{grid-template-columns:minmax(0,1fr)}}

/* ================= results bento ================= */
.bento{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px}
.bx{grid-column:span 4;border-radius:22px;background:var(--surface);border:1px solid var(--line);padding:18px;display:flex;flex-direction:column;gap:12px;min-width:0;transition:box-shadow .3s,border-color .3s}
.bx.s8{grid-column:span 8}.bx.s6{grid-column:span 6}.bx.s12{grid-column:span 12}
.bx-h{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;color:var(--fg-2)}
.bx-h .r{margin-left:auto;font-weight:400;font-size:12.5px;color:var(--muted);display:inline-flex;gap:6px;align-items:center}
.hero-num{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.hero-num b{font-size:48px;font-weight:600;letter-spacing:-.045em;line-height:1}
.chart svg{width:100%;height:auto;display:block;overflow:visible}
.chart .gl{stroke:var(--line);stroke-width:1}
.chart .ax{fill:var(--muted);font-size:11px;font-family:var(--font-sans)}
.chart .ln{fill:none;stroke:var(--fg);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.chart .ln-prev{fill:none;stroke:var(--line-2);stroke-width:1.6;stroke-dasharray:4 4}
.chart .ar{fill:url(#areaG)}
.chart .mk circle{fill:var(--accent);stroke:var(--surface);stroke-width:2.5}
.chart .mk text{fill:var(--fg);font-size:11.5px;font-weight:600;font-family:var(--font-sans)}
.chart .mk line{stroke:var(--accent);stroke-width:1;stroke-dasharray:2 3}
.chart .draw{stroke-dasharray:1400;stroke-dashoffset:1400;animation:draw 1.6s var(--ease-out) .1s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
.prod{display:flex;flex-direction:column;gap:9px}
.prod-row{display:grid;grid-template-columns:70px minmax(0,1fr) 34px;gap:10px;align-items:center;font-size:13px}
.dotbar{display:flex;gap:3px;flex-wrap:nowrap;overflow:hidden}
.dotbar i{width:7px;height:7px;border-radius:50%;background:var(--line-2);flex-shrink:0;animation:pop .4s var(--spring) both;animation-delay:calc(var(--j)*14ms)}
.dotbar i.on{background:var(--fg)}
.dotbar.hot i.on{background:var(--accent)}
.split{display:flex;height:14px;border-radius:999px;overflow:hidden;gap:3px}
.split span{display:block;height:100%;border-radius:999px;transform-origin:left;animation:grow 1s var(--spring-soft) both}
.split-legend{display:flex;justify-content:space-between;font-size:12.5px;color:var(--muted);gap:10px}
.split-legend b{color:var(--fg);font-weight:600}
.topc{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.topc a{position:relative;border-radius:12px;overflow:hidden;aspect-ratio:3/4;display:block;max-width:100%}
.topc img{width:100%;height:100%;object-fit:cover}
.topc span{position:absolute;left:5px;right:5px;bottom:5px;padding:4px 6px;border-radius:8px;background:rgba(10,20,18,.62);backdrop-filter:blur(6px);color:#f2f0e8;font-size:11px;font-weight:600;text-align:center}
.health{display:flex;gap:14px;align-items:center}
.ring{position:relative;width:76px;height:76px;flex-shrink:0}
.ring svg{transform:rotate(-90deg)}
.ring b{position:absolute;inset:0;display:grid;place-items:center;font-size:18px;font-weight:650}
.ring .bg{stroke:var(--sunk)}.ring .fg{stroke:var(--good);stroke-linecap:round;animation:ringIn 1.2s var(--spring-soft) both}
@keyframes ringIn{from{stroke-dashoffset:var(--c)}}
.timeline{display:flex;flex-direction:column;gap:0;border-radius:14px;border:1px solid var(--line);overflow:hidden}
.tl{display:flex;align-items:center;gap:10px;padding:9px 12px;font-size:13px;border-bottom:1px solid var(--line);background:var(--surface-2)}
.tl:last-child{border-bottom:0}
.tl .st{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;flex-shrink:0}
.tl .ok{background:var(--good-soft);color:var(--good)}.tl .no{background:var(--bad-soft);color:var(--bad)}
.tl small{margin-left:auto;color:var(--muted);font-size:12px}
.queries{display:flex;flex-direction:column}
.q{display:grid;grid-template-columns:minmax(0,1fr) 60px 50px;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);font-size:13.5px;align-items:center}
.q:last-child{border-bottom:0}
.q .r{text-align:right;font-variant-numeric:tabular-nums;color:var(--muted)}
.q4{grid-template-columns:minmax(0,1fr) 64px 64px 78px}
.q.head{font-size:11.5px;color:var(--faint);text-transform:uppercase;letter-spacing:.08em;font-weight:600}
.log{display:flex;flex-direction:column;gap:0}
.log-row{display:grid;grid-template-columns:56px 26px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.log-row:last-child{border-bottom:0}
.log-row .d{font-size:12px;color:var(--muted)}
.flash{animation:flash 1.6s var(--ease-out)}
@keyframes flash{0%,30%{box-shadow:0 0 0 4px var(--accent-soft),0 0 0 1px var(--accent);border-color:var(--accent)}}
@media (max-width:1050px){.bx,.bx.s8,.bx.s6{grid-column:span 6}.bx.s8{grid-column:span 12}}
@media (max-width:700px){.bx,.bx.s8,.bx.s6,.bx.s12{grid-column:span 12}.hero-num b{font-size:40px}}


/* ================= the real app on the new shell ================= */
@view-transition{navigation:auto}
/* classic names used by pages that keep their own markup inside the new shell */
:root{--paper:var(--bg);--ink:var(--fg);--ink-2:var(--fg-2);--chip:var(--sunk);--nav-hover:var(--sunk);--nav-active:var(--sunk)}
.skip{position:fixed;left:12px;top:-60px;z-index:100;padding:10px 14px;border-radius:10px;background:var(--fg);color:var(--bg);text-decoration:none;font-weight:600}
.skip:focus{top:12px}
.side-home{display:inline-flex;color:inherit;text-decoration:none}
.nav-hl{display:none}
.nav a[aria-current="page"]{background:var(--surface);box-shadow:var(--shadow-sm),inset 0 0 0 1px var(--line)}
.me-mail{display:block;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.app[data-page="chat"] .main{overflow:hidden}
.mobile-top .sp{flex:1}
.mobile-top .ws-av{text-decoration:none}
.page.narrow{max-width:900px}
.lede{color:var(--muted);font-size:15.5px;line-height:1.55;max-width:64ch}

/* ---------- Today ---------- */
.brief-acts{display:flex;gap:8px;flex-wrap:wrap}
.evidence{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.ev{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:999px;border:1px solid var(--line);background:var(--surface-2);font-size:12.5px;color:var(--fg-2);text-decoration:none}
.composer .cp-row a.cp-tool{text-decoration:none}
.tray .empty-note{padding:18px;border-radius:14px;background:var(--surface-2);border:1px dashed var(--line-2);color:var(--muted);font-size:14px}
.tray-list a.sc{text-decoration:none;color:inherit}
.tray-list a.sc:hover{border-color:var(--line-2)}
.setup-card{display:flex;flex-direction:column;gap:14px;padding:18px;border-radius:22px;background:var(--stage);color:var(--on-stage);position:relative;overflow:hidden;isolation:isolate}
.setup-card::before{content:"";position:absolute;inset:0;z-index:-1;background-image:radial-gradient(var(--stage-dot) 1.2px,transparent 1.3px);background-size:18px 18px;mask-image:linear-gradient(120deg,#000,transparent 70%)}
.setup-card h2{font-size:19px;letter-spacing:-.02em}
.setup-card p{color:var(--on-stage-2);font-size:14px;line-height:1.5}
.setup-card .meter{background:rgba(255,255,255,.12)}
.setup-card .meter span{background:var(--accent-stage)}
.setup-card .row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.setup-card .btn{--b-bg:var(--on-stage);--b-fg:var(--stage);border:0}
.setup-card .muted{color:var(--on-stage-2)}
.plat-note{font-size:13px;color:var(--muted);line-height:1.4}

/* ---------- Ask Frank ---------- */
.nx-chat{display:grid;grid-template-columns:240px minmax(0,1fr);height:100%}
.convos{display:flex;flex-direction:column;gap:10px;min-height:0;padding:14px 10px;border-right:1px solid var(--line);background:var(--bg)}
.convos h2{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);padding:6px 8px 0}
.convo-list{display:flex;flex-direction:column;gap:2px;overflow-y:auto;min-height:0}
.convo{display:block;padding:8px 10px;border-radius:10px;font-size:13.5px;color:var(--fg-2);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.convo:hover{background:var(--sunk);color:var(--fg)}
.convo[aria-current="page"]{background:var(--surface);color:var(--fg);font-weight:550;box-shadow:inset 0 0 0 1px var(--line)}
.convo-empty{font-size:13px;color:var(--muted);padding:4px 10px}
.nx-chat .chat-main{height:100%}
.nx-chat .chat-head h1{flex:1}
.nx-chat .empty{display:flex;flex-direction:column;align-items:flex-start;gap:18px;padding-top:6vh}
.nx-chat .empty .orb-tile{width:64px;height:64px;border-radius:20px;background:var(--orb-tile);display:grid;place-items:center;box-shadow:inset 0 0 0 1px var(--orb-ring)}
.nx-chat .empty h2{font-size:clamp(30px,4vw,42px);line-height:1.08;letter-spacing:-.035em}
.nx-chat .empty p{color:var(--muted);max-width:56ch}
.nx-chat .empty .chips{display:flex;flex-wrap:wrap;gap:8px}
.thread .msg-user{align-self:flex-end;max-width:min(560px,86%);padding:12px 16px;border-radius:20px 20px 6px 20px;background:var(--deep);color:var(--bg);font-size:15.5px;line-height:1.5;white-space:pre-wrap;animation:uIn .5s var(--spring) both}
@keyframes uIn{from{opacity:0;transform:translateY(10px) scale(.97)}}
.thread .msg-frank{display:grid;grid-template-columns:34px minmax(0,1fr);gap:14px;animation:itemIn .4s var(--ease-out) both}
.thread .avatar{width:34px;height:34px;border-radius:11px;background:var(--orb-tile);display:grid;place-items:center;overflow:hidden;box-shadow:inset 0 0 0 1px var(--orb-ring)}
.thread .avatar img{width:20px;height:20px}
.thread .msg-frank>.body{display:flex;flex-direction:column;gap:12px;min-width:0}
.thread .steps{border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.thread .steps summary{display:flex;align-items:center;gap:10px;padding:9px 14px;cursor:pointer;font-size:13.5px;color:var(--fg-2);list-style:none}
.thread .steps summary::-webkit-details-marker{display:none}
.thread .steps ul{margin:0;padding:2px 14px 12px 38px;display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}
.thread .steps .ok{color:var(--good)}
.thread .working{display:inline-flex;align-self:flex-start;align-items:center;gap:10px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-size:13.5px;color:var(--fg-2)}
.thread .working>span:last-child{background:linear-gradient(90deg,var(--muted) 0%,var(--muted) 40%,var(--fg) 50%,var(--muted) 60%,var(--muted) 100%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:tshim 2.2s linear infinite}
.thread .dots{display:inline-flex;gap:4px}
.thread .dots span{width:6px;height:6px;border-radius:999px;background:var(--accent);animation:pulse 1.2s infinite}
.thread .dots span:nth-child(2){animation-delay:.2s}.thread .dots span:nth-child(3){animation-delay:.4s}
.thread .answer{font-size:16px;line-height:1.65}
.thread .answer p{margin:0 0 10px}
.thread .answer ul,.thread .answer ol{margin:0 0 10px;padding-left:22px}
.thread .answer li{margin:3px 0}
.thread .answer h3{font-size:16px;margin:14px 0 6px}
.thread .answer a{color:var(--accent-ink)}
.thread .answer code{font-family:var(--font-mono);font-size:13px;background:var(--sunk);padding:1px 5px;border-radius:5px}
.thread .answer table{border-collapse:collapse;margin:6px 0 12px;font-size:14px;width:100%;display:block;overflow-x:auto;border:1px solid var(--line);border-radius:12px}
.thread .answer th,.thread .answer td{text-align:left;padding:8px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
.thread .answer th{font-weight:600;color:var(--fg-2);background:var(--surface-2)}
.thread .answer td{font-variant-numeric:tabular-nums}
.thread .err{padding:12px 14px;border-radius:12px;background:var(--bad-soft);color:var(--bad);font-size:14px}
.nx-chat .cp-send[data-mode="stop"]{background:var(--deep);color:var(--bg)}
@media (max-width:980px){.nx-chat{grid-template-columns:minmax(0,1fr)}.convos{display:none}}

/* ---------- Approvals ---------- */
.apq{display:flex;flex-direction:column;gap:8px}
.apq-item{display:flex;align-items:center;gap:14px;padding:14px;border-radius:16px;background:var(--surface);border:1px solid var(--line);text-decoration:none;color:inherit;transition:border-color .15s,transform .3s var(--spring),box-shadow .2s;animation:itemIn .45s var(--ease-out) both;animation-delay:calc(var(--i,0)*40ms)}
.apq-item:hover{border-color:var(--line-2);box-shadow:var(--shadow-md);transform:translateY(-1px)}
.apq-item .sc-t b{white-space:normal}
.apq-item .tags{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:6px}
.apq-item .when{font-size:12px;color:var(--faint)}
.apq-item .go{margin-left:auto;flex-shrink:0}
.apq.done .apq-item{background:transparent}
.rules{display:flex;flex-direction:column;gap:12px;padding:18px;border-radius:20px;background:var(--surface);border:1px solid var(--line)}
.rules h3{font-size:14px;display:flex;align-items:center;gap:8px}
.rule{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px}
.ap-two{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;align-items:start}
.note{font-size:13px;color:var(--muted)}
@media (max-width:980px){.ap-two{grid-template-columns:minmax(0,1fr)}}

/* ---------- Connections ---------- */
.conn .conn-foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.conn .conn-foot form{margin:0}
.conn p.does{font-size:14px;color:var(--muted);line-height:1.5}
.soon{display:flex;flex-wrap:wrap;gap:8px}
.soon .chip{cursor:default;color:var(--muted)}
.soon .chip:hover{border-color:var(--line-2)}
.av form{margin:0}

/* ---------- Setup and first look ---------- */
.su-hero{display:grid;grid-template-columns:auto minmax(0,1fr);gap:20px;align-items:center;padding:24px;border-radius:26px;background:var(--stage);color:var(--on-stage);position:relative;overflow:hidden;isolation:isolate}
.su-hero::before{content:"";position:absolute;inset:0;z-index:-1;background-image:radial-gradient(var(--stage-dot) 1.2px,transparent 1.3px);background-size:20px 20px;mask-image:linear-gradient(100deg,#000,transparent 75%)}
.su-hero h1{font-size:clamp(26px,3.4vw,36px);letter-spacing:-.035em;line-height:1.08}
.su-hero h1 .serif{color:var(--accent-stage)}
.su-hero p{color:var(--on-stage-2);margin-top:8px;max-width:58ch}
.su-hero .meter{margin-top:14px;background:rgba(255,255,255,.12);max-width:420px}
.su-hero .meter span{background:var(--accent-stage)}
.su-hero small{display:block;margin-top:6px;color:var(--on-stage-2);font-size:12.5px}
.ssteps{display:flex;flex-direction:column;gap:10px}
.sstep{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:14px;align-items:center;padding:16px;border-radius:18px;background:var(--surface);border:1px solid var(--line);animation:itemIn .45s var(--ease-out) both;animation-delay:calc(var(--i,0)*50ms)}
.sstep .n{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:650;background:var(--sunk);color:var(--fg-2)}
.sstep.done{background:transparent}
.sstep.done .n{background:var(--good-soft);color:var(--good)}
.sstep.next{border-color:var(--fg);box-shadow:var(--shadow-md)}
.sstep b{font-size:15.5px;font-weight:600}
.sstep p{font-size:13.5px;color:var(--muted);margin-top:2px}
.sstep .more{display:block;font-size:13px;margin-top:6px}
.sstep .more a{color:var(--muted)}
.sstep .go form{margin:0}
.sstep .hint{font-size:13px;color:var(--muted)}
@media (max-width:640px){.sstep{grid-template-columns:30px minmax(0,1fr)}.sstep .go{grid-column:2}}
.fl-checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:10px}
.fl-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.xray .row{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--on-stage-2)}
.xray h1{font-size:clamp(30px,4.4vw,48px);letter-spacing:-.04em;line-height:1.02}
.xray h1 .serif{color:var(--accent-stage)}

/* ---------- pages that keep their own markup ---------- */
.legacy .btn{--b-bg:var(--deep);--b-fg:var(--bg);border:0;box-shadow:inset 0 1px 0 rgba(255,255,255,.18),inset 0 -2px 0 rgba(0,0,0,.25),0 1px 2px rgba(0,0,0,.2)}
.legacy .btn:hover{color:var(--bg);filter:brightness(1.08)}
.legacy .btn.ghost{--b-bg:transparent;--b-fg:var(--fg);border:1px solid var(--line-2);box-shadow:none}
.legacy .btn.ghost:hover{color:var(--fg);--b-bg:var(--sunk)}
.legacy .btn.accent,.btn.accent{--b-bg:var(--accent);--b-fg:var(--accent-fg);background:var(--accent);color:var(--accent-fg)}
.legacy .btn.accent:hover,.btn.accent:hover{--b-bg:var(--btn-hover);background:var(--btn-hover);color:var(--btn-hover-fg)}
.legacy a:not(.btn):hover{color:var(--accent-ink)}
.legacy .serif{color:var(--accent)}
.legacy .footnote{font-size:12.5px;color:var(--muted);text-align:center}
.legacy .send{display:inline-flex;flex-shrink:0;width:42px;height:42px;border:0;border-radius:999px;background:var(--accent);color:var(--accent-fg);align-items:center;justify-content:center;cursor:pointer}
.legacy input:not([type=checkbox]):not([type=radio]),.legacy textarea,.legacy select{background:var(--surface);color:var(--fg);border:1px solid var(--line-2);border-radius:12px}
.legacy h1{letter-spacing:-.03em}

/* ---------- sign up ---------- */
.ob.signup .ob-main{align-items:flex-start}
.signup .ob-panel{width:min(460px,100%);display:flex;flex-direction:column;gap:18px}
.signup .card{padding:28px;display:flex;flex-direction:column;gap:16px;border-radius:24px;box-shadow:var(--shadow-md)}
.signup h1{font-size:clamp(28px,3.4vw,36px);line-height:1.08;letter-spacing:-.035em}
.signup h1 em{font-family:var(--font-serif);font-style:normal;font-weight:400;color:var(--accent)}
.signup p{color:var(--muted);font-size:15px;line-height:1.55}
.signup form{margin:0;display:flex;flex-direction:column;gap:10px}
.signup button{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 18px;border-radius:15px;border:0;background:var(--deep);color:var(--bg);font:600 15px var(--font-sans);cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.18),inset 0 -2px 0 rgba(0,0,0,.25),0 6px 16px -6px rgba(23,42,40,.5);transition:transform .4s var(--spring),background .2s}
.signup button:hover{background:var(--btn-hover);color:var(--btn-hover-fg)}
.signup button:active{transform:scale(.97)}
.signup button.alt{background:var(--surface);color:var(--fg);border:1px solid var(--line-2);box-shadow:none}
.signup label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:550}
.signup input{height:48px;padding:0 14px;border:1px solid var(--line-2);border-radius:12px;font:15px var(--font-sans);background:var(--surface);color:var(--fg)}
.signup input:focus{outline:none;border-color:var(--fg);box-shadow:0 0 0 4px var(--accent-soft)}
.signup a{color:var(--fg)}
.signup .small{font-size:13px;text-align:center;color:var(--muted)}
.signup .or{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13px}
.signup .or:before,.signup .or:after{content:"";flex:1;height:1px;background:var(--line)}
.signup .steps{display:flex;gap:6px}
.signup .steps i{flex:1;height:4px;border-radius:4px;background:var(--line)}
.signup .steps i.on{background:var(--accent)}
.signup .cta{display:flex;align-items:center;justify-content:center;min-height:50px;border-radius:15px;background:var(--accent);color:var(--accent-fg);font-weight:600;text-decoration:none}
.signup .cta:hover{background:var(--btn-hover);color:var(--btn-hover-fg)}
.signup .spin{display:flex;gap:8px}
.signup .spin i{width:12px;height:12px;border-radius:99px;background:var(--accent);animation:sb 1.1s ease-in-out infinite}
.signup .spin i:nth-child(2){animation-delay:.15s;opacity:.7}.signup .spin i:nth-child(3){animation-delay:.3s;background:var(--fg)}
@keyframes sb{0%,80%,100%{transform:translateY(0);opacity:.5}40%{transform:translateY(-8px);opacity:1}}
.signup .rot{position:relative;height:24px;line-height:24px;overflow:hidden}
.signup .rot span{position:absolute;left:0;top:0;white-space:nowrap;opacity:0;animation:sr 6s linear infinite}
.signup .rot span:nth-child(2){animation-delay:2s}.signup .rot span:nth-child(3){animation-delay:4s}
@keyframes sr{0%{opacity:0;transform:translateY(8px)}8%,30%{opacity:1;transform:none}38%,100%{opacity:0;transform:translateY(-8px)}}
.signup .ob-points{display:flex;flex-direction:column;gap:12px;font-size:14px;color:var(--on-stage-2)}
.signup .ob-points li{display:flex;gap:10px;align-items:flex-start;list-style:none}
.signup .ob-points svg{flex-shrink:0;margin-top:2px;color:var(--accent-stage)}
.signup .ob-points ul{margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
@media (max-width:860px){.ob.signup{grid-template-columns:minmax(0,1fr)}.ob.signup .ob-side{position:static;height:auto}.ob.signup .ob-orb,.ob.signup .ob-points{display:none}}
.page .sugs{grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr))}
span.meter{display:block}
.rule .switch{flex:none;display:inline-block;width:38px;height:22px}
.thread .answer table{width:max-content;max-width:100%}
.conn-foot .pair{display:flex;gap:8px;flex-wrap:wrap}

/* ================= prototype screens on real pages ================= */
.status-box{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:14px;font-size:14px;line-height:1.5}
.status-box.good{background:var(--good-soft);color:var(--good)}
.status-box.warn{background:var(--warn-soft);color:var(--warn)}
.status-box.bad{background:var(--bad-soft);color:var(--bad)}
.status-box svg{flex-shrink:0;margin-top:2px}
.fcheck.warn .st{background:var(--warn-soft);color:var(--warn)}
.apd .ad-head>a.btn{align-self:flex-start}
.apd .ad-head .row a{color:var(--muted)}
.ad-tile.text{aspect-ratio:auto;min-height:120px}

/* the approval forms from the classic pages, unchanged, inside the prototype's decide area */
.decide form{display:flex;flex-direction:column;gap:10px;margin:0}
.decide .acts{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.decide label[for="why"]{font-size:12.5px;font-weight:550;color:var(--muted)}
.decide textarea{min-height:46px;height:auto;padding:11px 12px;border-radius:12px;border:1px solid var(--line-2);background:var(--surface);color:var(--fg);font:inherit;font-size:14px;resize:vertical}
.decide textarea:focus{outline:none;border-color:var(--fg);box-shadow:0 0 0 4px var(--accent-soft)}
.decide .btn:not(.ghost){--b-bg:var(--deep);--b-fg:var(--bg);border:0;min-height:50px;padding:0 22px;font-size:15.5px;border-radius:15px;box-shadow:inset 0 1px 0 rgba(255,255,255,.18),inset 0 -2px 0 rgba(0,0,0,.25),0 1px 2px rgba(0,0,0,.2),0 6px 16px -6px rgba(23,42,40,.5)}
.decide .btn:not(.ghost):hover{--b-bg:var(--btn-hover);--b-fg:var(--btn-hover-fg);filter:none}
.decide .btn.ghost{min-height:40px}
.decide label.spend{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:14px;background:var(--accent-soft);border:1px solid var(--accent-line);font-size:14px;line-height:1.5;cursor:pointer}
.decide label.spend input{width:18px;height:18px;margin-top:2px;accent-color:var(--accent);flex-shrink:0}
.decide label.spend.nudge{animation:nudge .45s var(--ease-out)}
@keyframes nudge{20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
.decide .warn{display:block;padding:14px 16px;border-radius:14px;background:var(--warn-soft);color:var(--warn);font-size:14px}
.decide .ok-box,.decide .ok{display:block;padding:14px 16px;border-radius:14px;background:var(--good-soft);color:var(--good);font-size:14px}
.decide p.muted,.decide p.lede{font-size:12.5px;color:var(--muted);margin:0}
.decide .fine{font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:6px;margin:0}
.decide .sta{margin:2px 0}
.decide .sta.locked{opacity:.45}
.decide .sta.locked .sta-knob{pointer-events:none}
.decide .hold{isolation:isolate}
.ad-tile.text span{position:static;padding:0;border-radius:0;background:none;color:var(--muted);font-size:12.5px;font-weight:400;line-height:1.45}
.decide form:not([style]){flex-direction:row;flex-wrap:wrap;align-items:center}
.decide form:not([style])>textarea{flex-basis:100%}
.sheet .bkpis{grid-template-columns:repeat(3,minmax(0,1fr))}
.decide .field{display:flex;flex-direction:column;gap:6px;flex-basis:100%;font-size:12.5px;font-weight:550;color:var(--muted)}
.decide .row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.decide button[type="submit"]:not(.btn):not(.secondary){display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 22px;border:0;border-radius:15px;background:var(--deep);color:var(--bg);font-size:15.5px;font-weight:550;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.18),inset 0 -2px 0 rgba(0,0,0,.25),0 6px 16px -6px rgba(23,42,40,.5)}
.decide button[type="submit"]:not(.btn):not(.secondary):hover{background:var(--btn-hover);color:var(--btn-hover-fg)}
.decide button.secondary{display:inline-flex;align-items:center;min-height:40px;padding:0 16px;border-radius:12px;border:1px solid var(--line-2);background:var(--surface);color:var(--fg);font-size:14px;font-weight:550;cursor:pointer}
.decide button.secondary:hover{border-color:var(--faint)}

/* what Frank knows */
#research-working:not(.on),#research-error:not(.on){display:none}
.research{display:flex;flex-direction:column;gap:12px}
.opt-field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:550;color:var(--fg-2)}
.opt-field small{font-weight:400;color:var(--muted)}
.opt-field input{height:44px;padding:0 14px;border-radius:12px;border:1px solid var(--line-2);background:var(--surface);color:var(--fg);font:inherit;font-size:15px}
.profile-form{display:flex;flex-direction:column;gap:16px;margin:0}
a.src-card{text-decoration:none;color:inherit;min-width:0;overflow:hidden}
a.src-card b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
.more-box{border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.more-box>summary{display:flex;align-items:center;gap:8px;padding:13px 16px;cursor:pointer;font-size:14px;font-weight:550;color:var(--fg-2);list-style:none}
.more-box>summary::-webkit-details-marker{display:none}
.more-box>summary svg{transition:transform .3s var(--spring)}
.more-box[open]>summary svg:first-child{transform:rotate(90deg)}
.edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:4px 16px 18px}
.edit-grid label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:550;color:var(--fg-2)}
.edit-grid label.wide{grid-column:1/-1}
.edit-grid input,.edit-grid textarea{padding:10px 12px;border-radius:12px;border:1px solid var(--line-2);background:var(--surface-2);color:var(--fg);font:inherit;font-size:14px}
.edit-grid textarea{resize:vertical}
.edit-grid small{font-weight:400;color:var(--muted)}
@media (max-width:640px){.edit-grid{grid-template-columns:minmax(0,1fr)}.dna-row{grid-template-columns:minmax(0,1fr);gap:4px}.picked .row{flex-wrap:wrap}.picked .row b{flex:1 1 0;min-width:0}.picked .row small{margin-left:0;flex-basis:100%}a.use-row{flex-wrap:wrap;row-gap:2px}a.use-row small{margin-left:28px;flex-basis:100%}}
@media (max-width:640px),(max-height:700px){.decide{position:static;background:none}}

/* Google: picked rows, permission chips and the tracking form inside the connection card */
.picked label.pick-row{cursor:pointer;padding:8px 10px;margin:0 -4px;border-radius:11px;transition:background .15s}
.picked label.pick-row:hover{background:var(--surface)}
.picked .row input[type="checkbox"]{width:17px;height:17px;margin:0;accent-color:var(--fg);flex-shrink:0}
.picked .row b{font-weight:600}
.lvl-pick label{position:relative;cursor:pointer;display:inline-flex}
.lvl-pick input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.lvl-pick label:has(input:checked) span{background:var(--surface);color:var(--fg);box-shadow:var(--shadow-sm)}
.lvl-pick label:has(input:focus-visible) span{outline:2px solid var(--accent);outline-offset:1px}
.mpick form{display:flex;flex-direction:column;gap:14px;margin:4px 0 0}
.mpick fieldset{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:6px;min-width:0}
.mpick legend{padding:4px 0;font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.mpick .check{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:12px;background:var(--surface);border:1px solid var(--line);font-size:13.5px;line-height:1.45}
.mpick .check:has(input[type="checkbox"]:checked){border-color:var(--fg)}
.mpick input[type="checkbox"],.mpick input[type="radio"]{width:17px;height:17px;margin:2px 0 0;accent-color:var(--fg);flex-shrink:0}
.mpick .check label{display:inline-flex;gap:6px;align-items:center;font-size:12.5px;color:var(--fg-2);white-space:nowrap}
.mpick .muted{color:var(--muted);font-size:12.5px}
.mpick code{font-family:var(--font-mono);font-size:12px}
.mpick .notice{padding:12px 14px;border-radius:12px;background:var(--surface);border:1px dashed var(--line-2);font-size:13px;color:var(--muted)}
.mpick button[type="submit"]{align-self:flex-start;display:inline-flex;align-items:center;min-height:46px;padding:0 20px;border:0;border-radius:14px;background:var(--deep);color:var(--bg);font-size:15px;font-weight:550;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.18),inset 0 -2px 0 rgba(0,0,0,.25),0 6px 16px -6px rgba(23,42,40,.5)}
.mpick button[type="submit"]:hover{background:var(--btn-hover);color:var(--btn-hover-fg)}
.fcheck.unk .st{background:var(--sunk);color:var(--muted)}
.rchecks2 .fcheck small{display:block;margin-top:2px}
.rchecks2 .fcheck small+small{color:var(--fg-2)}

/* Meta and other tool pages: header, tool tabs, original content */
.tool-title{display:flex;align-items:center;gap:14px}
.tool-title .logo-tile{width:50px;height:50px;border-radius:15px}
.tool-title .eyebrow{display:block;margin-bottom:4px}
.filters a.chip{text-decoration:none;color:var(--fg-2)}
.filters a.chip[aria-current="page"]{background:var(--deep);color:var(--bg);border-color:var(--deep)}
.wk.wk-in{max-width:none;margin:0;padding:0}

/* Studio: tile shapes, tab links, collection placeholder, the classic forms below the board */
.stile>span[class^="r"]{display:block;overflow:hidden}
.stile>span.r916{aspect-ratio:9/16}.stile>span.r45{aspect-ratio:4/5}.stile>span.r11{aspect-ratio:1/1}.stile>span.r169{aspect-ratio:16/9}
.stile>span[class^="r"] img,.stile>span[class^="r"] video{width:100%;height:100%;object-fit:cover;display:block}
.stabs a{position:relative;z-index:1;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 13px;border-radius:10px;font-size:13.5px;font-weight:550;color:var(--muted);text-decoration:none}
.stabs a:hover{color:var(--fg)}
.stabs a[aria-current="page"]{background:var(--surface);color:var(--fg);box-shadow:var(--shadow-sm)}
a.credit-chip,a.dchip{text-decoration:none;color:inherit}
.fan-empty{width:44px;height:44px;border-radius:10px;background:var(--sunk);display:grid;place-items:center;color:var(--muted)}
.st-forms{display:flex;flex-direction:column;gap:10px}
.st-forms .wk-in{padding:4px 16px 16px}
.insp-sec .wk-in form{display:flex;flex-direction:column;gap:10px}
.insp-sec .wk-in details{margin-top:10px}
a.use-row{text-decoration:none;color:inherit}
.ws-name small{text-transform:capitalize}

/* ================= full redesign: loading states and pieces the prototype drew with fake data ================= */
.sk-line{display:inline-block;width:72px;height:.9em;border-radius:6px;background:linear-gradient(90deg,var(--sunk),var(--surface-2),var(--sunk));background-size:200% 100%;animation:skShine 1.4s linear infinite;vertical-align:middle}
.sk-line.short{width:110px;height:.75em}
@keyframes skShine{to{background-position:-200% 0}}
.setup-nudge{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;background:var(--surface-2);border:1px solid var(--line);font-size:13.5px;color:var(--fg-2);text-decoration:none}
.setup-nudge:hover{border-color:var(--line-2);color:var(--fg)}
.setup-nudge span{flex:1;min-width:0}
.job.ghost-job{background:transparent;border:1px dashed var(--line-2);color:var(--muted)}
.job.ghost-job .m-t{color:var(--fg)}.job.ghost-job .m-s{color:var(--muted)}
.empty-note{padding:16px;border-radius:14px;border:1px dashed var(--line-2);color:var(--muted);font-size:14px}
.reels.one{grid-template-columns:minmax(0,320px)}
.reel-frames video{width:100%;height:100%;object-fit:cover}
.making-frame{background:var(--stage);color:var(--on-stage);cursor:default;position:relative}
.wl-step .st.no{background:var(--bad-soft);color:var(--bad)}
.wl-step .src span{font-variant-numeric:tabular-nums}
.f-body .answer{font-size:16px;line-height:1.65}
.metric-card .health{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:center}
/* chat: the conversation scrolls inside its column, beside the preview canvas */
.nx-chat{grid-template-rows:minmax(0,1fr);min-height:0}
.nx-chat .chat{height:100%;min-height:0;grid-template-rows:minmax(0,1fr)}
.nx-chat .chat-main{min-height:0;height:100%}
.nx-chat .convos{overflow:hidden}
.b-in{animation:bIn .5s var(--ease-out) both}
@keyframes bIn{from{opacity:0;transform:translateY(4px)}}
/* approvals inbox */
.app[data-page="approvals"] .main{overflow:hidden}
.ib-item{text-decoration:none;color:inherit}
.ib-tags{margin-top:6px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.ib-sep{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);padding:14px 8px 4px}
.rule.soon{color:var(--muted)}.rule small{display:block;font-size:11.5px;color:var(--faint)}
.ib-empty{height:100%;display:grid;place-content:center;justify-items:center;gap:10px;text-align:center;padding:40px}
.ib-empty canvas{opacity:.9}
.ib-detail .apd{animation:itemIn .35s var(--ease-out) both}
@media (min-width:901px){.ib-detail .ad-head>a.btn{display:none}}
.ib-loading{padding:40px;display:flex;flex-direction:column;gap:14px;max-width:860px;margin:0 auto}
.ib-loading .sk-line{width:60%;height:18px}.ib-loading .sk-line.short{width:35%}
.soon-grid .av{background:transparent;border-style:dashed}
.soon-grid .av p{color:var(--muted)}
.conn .does{font-size:14px;color:var(--fg-2);line-height:1.5}
.conn-top form{margin:0}
/* the New menu and workspace menu can reach past the sidebar edge */
.side{overflow:visible}
.side .nav{min-height:0;overflow-y:auto;overflow-x:hidden}
.create-pop{z-index:60}
/* setup: the onboarding steps inside the app */
.app[data-page="setup"] .main{overflow:hidden}
.ob.in-app{min-height:0;height:100%}
.ob.in-app .ob-side{height:100%;position:relative}
.ob.in-app .ob-main{overflow:auto;height:100%}
.ob-steps li[data-step]{cursor:pointer}
.ob-steps li[data-step]:hover{color:var(--on-stage)}
.ob-nav{border-top:1px dashed var(--line-2);padding-top:16px;margin-top:6px}
.cbtn form{margin:0}
a.cbtn{text-decoration:none;color:inherit}
@media (max-width:900px){.app[data-page="setup"] .main{overflow:auto}.ob.in-app{height:auto}.ob.in-app .ob-main{overflow:visible;height:auto}}
/* chat: the conversations panel can be dragged wider or narrower, hidden, and brought back from the chat header */
.nx-chat{position:relative;grid-template-columns:var(--convos-w,240px) minmax(0,1fr);transition:grid-template-columns .5s var(--spring-soft)}
.nx-chat[data-convos="closed"]{grid-template-columns:0px minmax(0,1fr)}
.nx-chat[data-dragging]{transition:none;cursor:col-resize;user-select:none}
.nx-chat[data-convos="closed"] .convos{visibility:hidden;padding-inline:0;border-right-color:transparent;transition:visibility 0s .4s}
.nx-chat .convos .btn,.nx-chat .convo{white-space:nowrap}
.convos-grip{position:absolute;top:0;bottom:0;left:calc(var(--convos-w,240px) - 5px);width:10px;z-index:6;cursor:col-resize;touch-action:none;transition:left .5s var(--spring-soft)}
.nx-chat[data-convos="closed"] .convos-grip{left:0}
.nx-chat[data-dragging] .convos-grip{transition:none}
.convos-grip::after{content:"";position:absolute;top:0;bottom:0;left:4px;width:2px;border-radius:2px;background:transparent;transition:background .15s}
.convos-grip:hover::after,.convos-grip:focus-visible::after,.nx-chat[data-dragging] .convos-grip::after{background:var(--accent)}
.convos-grip:focus-visible{outline:none}
.chat-head .convos-toggle{width:32px;height:32px;margin-left:-8px;color:var(--muted)}
.chat-head .convos-toggle:hover{color:var(--fg);background:var(--sunk)}
.nx-chat[data-convos="closed"] .chat-head .convos-toggle{color:var(--fg-2)}
/* collapsed app sidebar: icons keep their size, labels step out of the way */
.nav a>svg{flex-shrink:0}
.app[data-collapsed="true"] .nav a{width:44px;margin:0 auto}
.app[data-collapsed="true"] .nav a .lbl{display:none}
@media (max-width:980px){
  .nx-chat,.nx-chat[data-convos="closed"]{grid-template-columns:minmax(0,1fr)}
  .convos-grip{display:none}
  .nx-chat .convos,.nx-chat[data-convos="closed"] .convos{display:flex;visibility:hidden;position:absolute;z-index:30;top:0;bottom:0;left:0;width:min(300px,86vw);padding:14px 10px;border-right:1px solid var(--line);box-shadow:var(--shadow-lg);transform:translateX(-104%);transition:transform .45s var(--spring-soft),visibility 0s .45s}
  .nx-chat[data-drawer="open"] .convos{visibility:visible;transform:none;transition:transform .45s var(--spring-soft)}
}
