.sf-message-file { display:block; max-width:100%; margin:10px 0 4px; padding:9px 12px; border:1px solid #b6a8ef; border-radius:10px; background:#f0edff; color:#302371; text-align:left; overflow-wrap:anywhere; cursor:pointer; }
.sf-file-preview { width:min(960px,94vw); max-height:92vh; border:1px solid #d8d1ef; border-radius:16px; padding:20px; color:#211b35; background:white; }
.sf-file-preview::backdrop { background:rgba(20,13,45,.6); }
.sf-file-preview h2 { font-size:18px; overflow-wrap:anywhere; margin:0 0 12px; }
.sf-file-preview-body { margin-top:12px; }
.sf-file-preview-body iframe { display:block; width:100%; height:65vh; border:1px solid #ddd; }
.sf-file-preview-body img { display:block; max-width:100%; max-height:65vh; margin:auto; object-fit:contain; }
.sf-file-preview-body pre { max-height:65vh; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; font-size:13px; }
.sf-file-preview-body a { margin-top:12px; }
/* The document stays fixed while a chat is open; only its panels scroll. */
body.sf-chat-open{height:100dvh;min-height:0;overflow:hidden;display:flex;flex-direction:column}
body.sf-chat-open>.sf-nav{flex-shrink:0}
body.sf-chat-open>main{flex:1;min-height:0;overflow:hidden}
body.sf-chat-open .sf-workspace{display:flex;flex-direction:column;width:100%;height:100%;min-height:0}
body.sf-chat-open .sf-ws-bar,body.sf-chat-open .sf-conn{flex-shrink:0}
body.sf-chat-open .sf-split{flex:1;height:auto;min-height:0}
body.sf-chat-open .sf-messages-wrap,body.sf-chat-open .sf-activity-list{overscroll-behavior:contain;overflow-anchor:none}
body.sf-chat-open .sf-chat{overflow-y:auto;overscroll-behavior:contain}
body.sf-chat-open .sf-messages-wrap{min-height:64px}
body.sf-chat-open .sf-chat-consent{max-height:30dvh;min-height:72px;overflow-y:auto;overscroll-behavior:contain;flex-shrink:1}
body.sf-chat-open .sf-composer{flex-shrink:0}
@media(max-width:960px){
  body.sf-chat-open .sf-workspace{overflow-y:auto;overscroll-behavior:contain}
  body.sf-chat-open .sf-split{flex:none;height:auto}
  body.sf-chat-open .sf-chat{height:max(540px,calc(100dvh - 180px))}
}
:root{
  --ink:#16153a;--ink-2:#4a4870;--ink-3:#7c7aa0;
  --paper:#f6f5fb;--card:#fdfcff;--line:#e3e1f0;--line-2:#cfcce4;
  --primary:#4f46e5;--primary-d:#3730a3;--primary-t:#eceafd;
  --saffron:#e8913a;--saffron-t:#fdf0e1;
  --ok:#1f8a63;--ok-t:#e3f4ec;--bad:#c2413b;--bad-t:#fbe8e6;
  --display:'Bricolage Grotesque',Georgia,serif;--body:'Plus Jakarta Sans',system-ui,sans-serif;--mono:'JetBrains Mono',ui-monospace,monospace;
  --r:14px;--shadow:0 1px 2px rgba(22,21,58,.05),0 12px 32px -14px rgba(55,48,163,.22);
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--body);color:var(--ink);background:var(--paper);min-height:100dvh;line-height:1.5;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background:radial-gradient(900px 500px at 92% -10%,rgba(79,70,229,.10),transparent 60%),radial-gradient(700px 400px at -10% 30%,rgba(232,145,58,.08),transparent 60%)}
main,nav{position:relative;z-index:1}
[hidden]{display:none!important}
.sf-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sf-skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--paper);padding:.5rem 1rem;border-radius:8px;z-index:100}
.sf-skip:focus{left:8px}
:focus-visible{outline:2px solid var(--primary);outline-offset:2px}

/* nav (mirrors site nav) */
.sf-nav{display:flex;justify-content:space-between;align-items:center;padding:1rem 5%;background:rgba(253,252,255,.85);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.sf-nav .logo{font-size:1.45rem;font-weight:800;color:var(--primary);text-decoration:none;display:flex;align-items:center;gap:.5rem;font-family:var(--body)}
.sf-nav .logo img{height:34px;width:auto}
.sf-nav .nav-links{display:flex;gap:1.6rem;align-items:center}
.sf-nav .nav-links a{color:var(--ink-2);text-decoration:none;font-weight:500;font-size:.95rem}
.sf-nav .nav-links a:hover,.sf-nav .nav-links a.active{color:var(--primary)}
.sf-nav-signin{color:var(--primary)!important;font-weight:700!important}
.user-menu{position:relative}
.user-menu-btn{display:flex;align-items:center;gap:4px;background:none;border:0;cursor:pointer;color:var(--ink-2)}
.user-menu-btn svg{width:16px}
.user-avatar{width:36px;height:36px;border-radius:50%;background:var(--primary);color:var(--card);display:flex;align-items:center;justify-content:center;font-weight:700;text-transform:uppercase}
.user-dropdown{display:none;position:absolute;right:0;top:46px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);min-width:160px;padding:.4rem}
.user-dropdown.show,.user-dropdown.open,.user-dropdown.active{display:block}
.user-dropdown a{display:block;padding:.5rem .8rem;border-radius:8px}
.user-dropdown .divider{height:1px;background:var(--line);margin:.3rem 0}
@media(max-width:900px){.sf-nav .nav-links a:not(.active):not(#authNavLink){display:none}}

/* buttons */
.sf-btn{font:600 .9rem var(--body);border-radius:10px;padding:.62rem 1.05rem;border:1px solid transparent;cursor:pointer;transition:transform .15s,background .15s,opacity .15s;white-space:nowrap}
.sf-btn:active:not(:disabled){transform:translateY(1px)}
.sf-btn:disabled{opacity:.45;cursor:not-allowed}
.sf-btn-primary{background:var(--primary);color:var(--card)}
.sf-btn-primary:hover:not(:disabled){background:var(--primary-d)}
.sf-btn-accent{background:var(--saffron);color:var(--ink)}
.sf-btn-ghost{background:transparent;color:var(--ink);border-color:var(--line-2)}
.sf-btn-ghost:hover:not(:disabled){background:var(--primary-t)}
.sf-btn-danger{background:transparent;color:var(--bad);border-color:#efc6c2}
.sf-btn-danger:hover{background:var(--bad-t)}
.sf-btn-sm{padding:.4rem .75rem;font-size:.82rem}

/* directory */
.sf-directory{max-width:1180px;margin:0 auto;padding:3.5rem 5% 5rem}
.sf-hero{display:grid;grid-template-columns:1.25fr 1fr;gap:3rem;align-items:end;margin-bottom:3rem}
.sf-kicker{font:600 .78rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--primary);display:flex;align-items:center;gap:.5rem;margin-bottom:1.2rem}
.sf-dot{width:8px;height:8px;border-radius:50%;background:var(--saffron);box-shadow:0 0 0 4px var(--saffron-t)}
.sf-hero h1{font:800 clamp(2.3rem,5.4vw,4.2rem)/1.02 var(--display);letter-spacing:-.03em}
.sf-hero h1 em{font-style:normal;color:var(--primary)}
.sf-lede{margin-top:1.3rem;color:var(--ink-2);font-size:1.06rem;max-width:36rem}
.sf-status-line{margin-top:1.6rem;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;font-size:.86rem}
.sf-principles{list-style:none;border-top:1px solid var(--ink)}
.sf-principles li{display:flex;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line-2);font-size:.9rem;color:var(--ink-2);opacity:0;animation:sfUp .6s forwards}
.sf-principles li:nth-child(2){animation-delay:.08s}.sf-principles li:nth-child(3){animation-delay:.16s}.sf-principles li:nth-child(4){animation-delay:.24s}
.sf-principles span{font:500 .78rem var(--mono);color:var(--saffron);padding-top:.15rem}
.sf-principles strong{display:block;color:var(--ink);font-weight:700}
@keyframes sfUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.sf-banner{background:var(--saffron-t);border:1px solid #f1cfa6;border-radius:var(--r);padding:1rem 1.2rem;margin-bottom:2rem;color:#6b3f12;font-size:.92rem}
.sf-banner strong{display:block;font-family:var(--display);font-size:1.1rem;color:var(--ink)}
.sf-section-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap;margin:0 0 1rem}
.sf-section-head h2{font:700 1.5rem var(--display);letter-spacing:-.01em}
.sf-section-head p{color:var(--ink-3);font-size:.88rem}
.sf-agents{display:grid;grid-template-columns:1.6fr 1fr;gap:1.2rem;margin-bottom:3rem}
.sf-agent{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:1.8rem;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:1rem;position:relative;overflow:hidden;min-height:260px;animation:sfUp .5s both}
.sf-agent.is-live::after{content:"";position:absolute;right:-60px;top:-60px;width:200px;height:200px;border-radius:50%;border:30px solid var(--primary-t)}
.sf-agent.is-off{background:transparent;box-shadow:none;border-style:dashed;border-color:var(--line-2)}
.sf-agent-tag{font:500 .74rem var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.sf-agent h3{font:800 2rem var(--display);letter-spacing:-.02em;position:relative;z-index:1}
.sf-agent p{color:var(--ink-2);max-width:32rem;position:relative;z-index:1}
.sf-wf{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none}
.sf-wf li{font-size:.8rem;padding:.25rem .6rem;border-radius:999px;background:var(--primary-t);color:var(--primary-d)}
.sf-agent.is-off .sf-wf li{background:var(--line);color:var(--ink-3)}
.sf-agent-foot{margin-top:auto;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.sf-agent-why{font-size:.84rem;color:var(--ink-3)}
.sf-pill{font:500 .74rem var(--mono);padding:.2rem .55rem;border-radius:999px;background:var(--line);color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em}
.sf-pill.ok{background:var(--ok-t);color:var(--ok)}.sf-pill.warn{background:var(--saffron-t);color:#9a5714}.sf-pill.bad{background:var(--bad-t);color:var(--bad)}.sf-pill.run{background:var(--primary-t);color:var(--primary-d)}
.sf-session-list{list-style:none;display:grid;gap:.6rem;margin-bottom:2rem}
.sf-session-list li{display:flex;align-items:center;gap:1rem;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.8rem 1rem;flex-wrap:wrap}
.sf-session-list .grow{flex:1;min-width:180px;font-size:.88rem;color:var(--ink-2)}
.sf-limits,.sf-notice{font-size:.82rem;color:var(--ink-3);font-family:var(--mono)}
.sf-notice{margin-top:.5rem;font-family:var(--body)}
.sf-skel{display:block;border-radius:8px;background:linear-gradient(90deg,var(--line) 0,#efedf8 50%,var(--line) 100%);background-size:200% 100%;animation:sfSk 1.3s infinite}
.sf-skel-line{height:14px;width:260px}.sf-skel-block{height:200px}
@keyframes sfSk{to{background-position:-200% 0}}

/* workspace */
.sf-workspace{padding:1rem 2% 1.5rem;max-width:1600px;margin:0 auto}
.sf-ws-bar{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:.8rem}
.sf-ws-title{display:flex;align-items:center;gap:.6rem;flex:1;min-width:200px;flex-wrap:wrap}
.sf-ws-title strong{font:700 1.25rem var(--display)}
.sf-ws-meta{font:.76rem var(--mono);color:var(--ink-3)}
.sf-ws-toggles{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}
.sf-seg{display:inline-flex;border:1px solid var(--line-2);border-radius:10px;padding:2px;background:var(--card)}
.sf-seg button{font:600 .8rem var(--body);border:0;background:transparent;padding:.4rem .7rem;border-radius:8px;cursor:pointer;color:var(--ink-2)}
.sf-seg button[aria-pressed=true]{background:var(--ink);color:var(--paper)}
.sf-seg button:disabled{cursor:not-allowed;opacity:.5}
.sf-conn{background:var(--saffron-t);color:#6b3f12;border-radius:10px;padding:.5rem .9rem;font-size:.85rem;margin-bottom:.8rem}
.sf-conn.bad{background:var(--bad-t);color:var(--bad)}
.sf-split{display:grid;grid-template-columns:minmax(320px,.85fr) 1.4fr;gap:1rem;height:calc(100dvh - 150px);min-height:560px}
.sf-chat,.sf-browser{background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);display:flex;flex-direction:column;min-height:0;overflow:hidden}
.sf-messages{list-style:none;flex:1;overflow-y:auto;padding:1.2rem;display:flex;flex-direction:column;gap:.8rem}
.sf-msg{max-width:88%;padding:.7rem .95rem;border-radius:14px;font-size:.92rem;white-space:pre-wrap;word-break:break-word;animation:sfUp .25s both}
.sf-msg time{display:block;font:.68rem var(--mono);opacity:.6;margin-top:.3rem}
.sf-msg.user{align-self:flex-end;background:var(--primary);color:var(--card);border-bottom-right-radius:4px}
.sf-msg.assistant{align-self:flex-start;background:var(--paper);border:1px solid var(--line);border-bottom-left-radius:4px}
.sf-msg.system{align-self:center;background:transparent;color:var(--ink-3);font-size:.8rem;text-align:center;border:1px dashed var(--line-2)}
.sf-empty-chat{margin:auto;text-align:center;color:var(--ink-3);max-width:22rem;font-size:.9rem}
.sf-empty-chat strong{display:block;font:700 1.15rem var(--display);color:var(--ink);margin-bottom:.3rem}
.sf-approval{margin:0 1rem .6rem;border:1.5px solid var(--saffron);background:var(--saffron-t);border-radius:12px;padding:.9rem 1rem}
.sf-approval-k{font:600 .72rem var(--mono);text-transform:uppercase;letter-spacing:.06em;color:#9a5714}
.sf-approval-d{margin:.3rem 0 .7rem;font-size:.92rem}
.sf-approval-a{display:flex;gap:.5rem}
.sf-manual-note{margin:0 1rem .6rem;padding:.8rem 1rem;border-radius:12px;background:var(--ink);color:var(--paper);display:flex;gap:.8rem;align-items:center;flex-wrap:wrap;font-size:.86rem}
.sf-manual-note p{flex:1;min-width:180px}
.sf-files{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;padding:0 1rem}
.sf-files li{display:flex;align-items:center;gap:.4rem;font-size:.78rem;background:var(--primary-t);color:var(--primary-d);border-radius:8px;padding:.25rem .3rem .25rem .6rem}
.sf-files button{border:0;background:transparent;color:inherit;cursor:pointer;font-weight:700;padding:0 .3rem}
.sf-composer{border-top:1px solid var(--line);padding:.8rem 1rem}
.sf-chat.sf-file-drag{position:relative;outline:2px solid var(--primary);outline-offset:-3px}
.sf-file-drop-hint{position:absolute;top:12px;left:12px;right:12px;z-index:25;pointer-events:none;padding:1rem;border:2px dashed var(--primary);border-radius:12px;background:var(--card);color:var(--primary);font-weight:600;text-align:center;box-shadow:var(--shadow)}
.sf-composer textarea{width:100%;border:0;resize:none;font:.95rem var(--body);background:transparent;color:var(--ink);outline:none;min-height:3rem}
.sf-composer-row{display:flex;align-items:center;gap:.4rem}
.sf-icon-btn{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid var(--line-2);background:var(--card);color:var(--ink-2);cursor:pointer;position:relative}
.sf-icon-btn svg{width:18px;height:18px}
.sf-icon-btn:focus-within{outline:2px solid var(--primary)}
.sf-icon-btn[aria-pressed=true]{background:var(--bad);color:var(--card);border-color:var(--bad)}
.sf-icon-btn[aria-disabled=true],.sf-icon-btn:disabled{opacity:.4;cursor:not-allowed}
.sf-hint{flex:1;font-size:.76rem;color:var(--ink-3);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.sf-chrome{display:flex;align-items:center;gap:.6rem;padding:.6rem .8rem;border-bottom:1px solid var(--line);background:var(--paper)}
.sf-lights{display:flex;gap:5px}.sf-lights i{width:9px;height:9px;border-radius:50%;background:var(--line-2)}
.sf-url{flex:1;display:flex;gap:.4rem;min-width:0}
.sf-url input{flex:1;min-width:0;font:.8rem var(--mono);border:1px solid var(--line);border-radius:8px;padding:.4rem .6rem;background:var(--card);color:var(--ink)}
.sf-url input:read-only{color:var(--ink-3)}
.sf-stage{position:relative;flex:1;min-height:0;background:#1d1b44;display:flex;align-items:center;justify-content:center;overflow:hidden}
.sf-stage img{max-width:100%;max-height:100%;aspect-ratio:1280/800;object-fit:contain;display:block;user-select:none}
.sf-stage.is-manual{outline:3px solid var(--saffron);outline-offset:-3px}
.sf-stage.is-manual img{cursor:crosshair}
.sf-stage-empty{text-align:center;color:#b8b5e0;font-size:.85rem}
.sf-stage-empty p{font:700 1.2rem var(--display);color:#ecebff}
.sf-stage-offer{position:absolute;inset:auto 1rem 1rem;background:var(--card);border-radius:12px;padding:.8rem 1rem;display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;box-shadow:var(--shadow);font-size:.88rem}
.sf-stage-offer p{flex:1;min-width:180px}
.sf-click-dot{position:absolute;width:22px;height:22px;margin:-11px 0 0 -11px;border:2px solid var(--saffron);border-radius:50%;pointer-events:none;animation:sfPing .6s forwards}
@keyframes sfPing{to{transform:scale(2.2);opacity:0}}
.sf-manual-tools{padding:.6rem .8rem;border-top:1px solid var(--line);display:grid;gap:.5rem;background:var(--saffron-t)}
.sf-type{display:flex;gap:.4rem}
.sf-type input{flex:1;border:1px solid var(--line-2);border-radius:8px;padding:.45rem .6rem;font:.85rem var(--body);background:var(--card)}
.sf-keys{display:flex;flex-wrap:wrap;gap:.3rem}
.sf-keys button{font:.74rem var(--mono);border:1px solid var(--line-2);background:var(--card);border-radius:6px;padding:.25rem .5rem;cursor:pointer}
.sf-activity{border-top:1px solid var(--line);max-height:30%;display:flex;flex-direction:column}
.sf-activity summary{padding:.5rem .9rem;font:600 .74rem var(--mono);text-transform:uppercase;letter-spacing:.06em;cursor:pointer;color:var(--ink-2)}
.sf-activity ol{list-style:none;overflow-y:auto;max-height:150px;padding:0 .9rem .6rem;font:.78rem var(--mono);color:var(--ink-2)}
.sf-activity li{padding:.2rem 0;border-bottom:1px dashed var(--line);display:flex;gap:.6rem}
.sf-activity li time{color:var(--ink-3);flex-shrink:0}

.sf-modal{position:fixed;inset:0;background:rgba(22,21,58,.45);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:200}
.sf-modal-card{background:var(--card);border-radius:20px;max-width:540px;width:100%;padding:1.8rem;max-height:92dvh;overflow:auto;animation:sfUp .25s both}
.sf-modal-card h2{font:800 1.6rem var(--display);margin-bottom:1rem}
.sf-consent-list{padding-left:1.1rem;display:grid;gap:.55rem;font-size:.9rem;color:var(--ink-2);margin-bottom:1rem}
.sf-start-opts{border:1px solid var(--line);border-radius:12px;padding:.6rem .9rem;margin-bottom:.7rem;display:grid;gap:.3rem;font-size:.88rem}
.sf-start-opts legend{font:600 .72rem var(--mono);text-transform:uppercase;padding:0 .3rem;color:var(--ink-3)}
.sf-start-opts small{color:var(--ink-3);margin-left:.3rem}
.sf-check{display:flex;gap:.5rem;align-items:center;font-weight:600;margin:.6rem 0}
.sf-err{color:var(--bad);font-size:.85rem;min-height:1.2em}
.sf-modal-a{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.5rem}
.sf-toast{position:fixed;bottom:1.2rem;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--paper);padding:.6rem 1rem;border-radius:10px;font-size:.88rem;z-index:300;max-width:90vw}

@media(max-width:960px){
  .sf-hero{grid-template-columns:1fr;gap:2rem}
  .sf-agents{grid-template-columns:1fr}
  .sf-split{grid-template-columns:1fr;height:auto}
  .sf-chat{height:70dvh}
  .sf-stage{min-height:56vw}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.sf-principles li{opacity:1}}

/* ===== Directory redesign ===== */
.sf-directory{max-width:1120px;padding:4.5rem 5% 5rem}
.sf-hero{display:block;text-align:center;max-width:760px;margin:0 auto 3.2rem}
.sf-kicker{justify-content:center}
.sf-hero h1{font-size:clamp(2.4rem,5.6vw,4.4rem)}
.sf-hero h1 em{position:relative;white-space:nowrap}
.sf-hero h1 em::after{content:"";position:absolute;left:0;right:0;bottom:.04em;height:.16em;background:var(--saffron);opacity:.35;border-radius:4px;z-index:-1}
.sf-lede{margin:1.3rem auto 0;font-size:1.1rem}
.sf-status-line{justify-content:center;margin-top:1.8rem;gap:.9rem}
.sf-status-note{color:var(--ink-3);font-size:.88rem}
.sf-status-line .sf-btn{text-decoration:none}
.sf-section-head{justify-content:center;text-align:center;flex-direction:column;align-items:center;gap:.3rem;margin-bottom:1.4rem}
.sf-section-head h2{font-size:1.15rem;font-family:var(--mono);font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-3)}
.sf-sessions-wrap .sf-section-head{margin-top:1rem}
.sf-agents{grid-template-columns:1.35fr 1fr;gap:1.4rem;align-items:stretch}
.sf-agent{border-radius:26px;padding:2.2rem;min-height:320px;animation:sfCardIn .7s cubic-bezier(.2,.7,.2,1) backwards;animation-delay:calc(var(--i,0) * 160ms + 120ms)}
@keyframes sfCardIn{from{opacity:0;transform:translateY(26px) scale(.98)}to{opacity:1;transform:none}}
.sf-agent.is-live{background:linear-gradient(155deg,#2a2580 0%,var(--primary) 70%,#5f57ee 100%);color:#f4f3ff;border-color:transparent;box-shadow:0 30px 60px -28px rgba(55,48,163,.6)}
.sf-agent.is-live::after{right:-80px;top:-80px;width:260px;height:260px;border:36px solid rgba(255,255,255,.07)}
.sf-agent.is-live::before{content:"";position:absolute;left:-40px;bottom:-90px;width:220px;height:220px;border-radius:50%;background:var(--saffron);opacity:.18;filter:blur(30px)}
.sf-agent.is-live p{color:#d9d6fb}
.sf-agent.is-live .sf-agent-tag{color:#ffd7a8}
.sf-agent.is-live .sf-agent-why{color:#c9c5f5}
.sf-agent.is-live .sf-wf li{background:rgba(255,255,255,.12);color:#f4f3ff}
.sf-agent.is-live .sf-btn-primary{background:var(--saffron);color:var(--ink)}
.sf-agent.is-live .sf-btn-primary:hover:not(:disabled){background:#f2a457}
.sf-agent.is-live .sf-btn-primary:disabled{background:rgba(255,255,255,.2);color:#f4f3ff}
.sf-agent-mark{position:absolute;right:1.8rem;top:1.6rem;font:800 3.2rem/1 var(--display);letter-spacing:-.04em;opacity:.14;z-index:1}
.sf-agent.is-off .sf-agent-mark{opacity:.08}
.sf-agent-tag{position:relative;z-index:1}
.sf-agent h3{font-size:2.3rem}
.sf-agent.is-off{background:rgba(253,252,255,.6)}
.sf-agent.is-off h3{color:var(--ink-2)}
.sf-agent-foot{position:relative;z-index:1}
.sf-btn-lg{padding:.85rem 1.4rem;font-size:1rem;border-radius:12px}
.sf-notice{text-align:center;margin-top:2rem}
.sf-banner{max-width:760px;margin:0 auto 2rem}
@media(max-width:960px){.sf-agents{grid-template-columns:1fr}.sf-agent{min-height:0}}
@media(prefers-reduced-motion:reduce){.sf-agent{animation:none!important;opacity:1;transform:none}}

/* ===== Persistent chat ===== */
.sf-messages-wrap{flex:1;overflow-y:auto;min-height:0;display:flex;flex-direction:column}
.sf-messages-wrap .sf-messages{flex:1;overflow:visible}
.sf-earlier{display:flex;justify-content:center;padding:.8rem 1rem 0}
.sf-earlier:has(button[hidden]){display:none}
.sf-paused{margin:0 1rem .6rem;padding:.75rem 1rem;border-radius:12px;background:var(--primary-t);color:var(--primary-d);font-size:.85rem;display:grid;gap:.15rem}
.sf-paused strong{color:var(--ink)}
.sf-chat-consent{margin:0 1rem .6rem;padding:.9rem 1rem;border-radius:12px;border:1.5px solid var(--primary);background:var(--card);font-size:.85rem;color:var(--ink-2)}
.sf-chat-consent strong{color:var(--ink)}
.sf-chat-consent .sf-check{margin:.6rem 0 0;color:var(--ink)}
.sf-composer-opts{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.6rem;padding-top:.6rem;border-top:1px dashed var(--line)}
.sf-composer-opts .sf-seg button{font-size:.76rem;padding:.35rem .6rem}
.sf-sessions-wrap,.sf-session-list{min-width:0;max-width:100%}
.sf-session-list{grid-template-columns:minmax(0,1fr)}
.sf-session-list li{gap:.6rem;min-width:0;max-width:100%}
.sf-session-list .grow{min-width:0;flex:1 1 180px;max-width:100%}
.sf-session-list .grow strong{display:block;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sf-row-sub{font-size:.78rem;color:var(--ink-3)}
.sf-more{display:flex;justify-content:center;margin:-1rem 0 2rem}
.sf-more:has(button[hidden]){display:none}
@media(max-width:560px){
  .sf-session-list li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .sf-session-list li .grow,.sf-session-list li>.sf-pill{grid-column:1/-1}
  .sf-session-list li>.sf-pill{justify-self:start}
  .sf-session-list li .sf-btn{min-width:0;width:100%;white-space:normal}
  .sf-session-list .sf-row-sub{white-space:normal;overflow-wrap:anywhere}
  .sf-composer-opts .sf-seg{flex:1}
  .sf-composer-opts .sf-seg button{flex:1}
  .sf-hint{white-space:normal;overflow:visible;text-overflow:clip;flex-basis:100%;order:3}
}

/* ===== Remote browser workspace ===== */
.sf-workspace{padding-bottom:.8rem}
.sf-split{grid-template-columns:minmax(300px,var(--sf-chat-w,34%)) 12px minmax(420px,1fr);gap:0;height:calc(100dvh - 128px)}
.sf-split.is-browser-focus{grid-template-columns:minmax(0,1fr)}
.sf-split.is-browser-focus .sf-chat,.sf-split.is-browser-focus .sf-splitter{display:none}
.sf-splitter{cursor:col-resize;display:flex;align-items:center;justify-content:center;touch-action:none;border-radius:6px;outline-offset:-2px}
.sf-splitter span{width:4px;height:44px;border-radius:4px;background:var(--line-2);transition:background .15s,transform .15s}
.sf-splitter:hover span,.sf-splitter:focus-visible span,.sf-splitter.is-dragging span{background:var(--primary);transform:scaleY(1.3)}
.sf-chrome{flex-wrap:wrap;row-gap:.4rem}
.sf-view-tools{display:flex;align-items:center;gap:.35rem}
.sf-zoom button{font-size:.74rem;padding:.3rem .55rem}
.sf-stage{background:#e9e8f2;align-items:stretch;justify-content:stretch;cursor:default}
.sf-viewport{position:absolute;inset:0;overflow:hidden;display:flex;align-items:center;justify-content:center}
.sf-stage img{width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;aspect-ratio:auto;-webkit-user-drag:none}
.sf-stage.is-zoomed .sf-viewport{overflow:auto;display:block}
.sf-stage.is-zoomed img{height:auto;object-fit:fill;margin:0 auto;box-shadow:0 0 0 1px var(--line-2)}
.sf-stage.is-manual img{cursor:text}
.sf-stage-empty{margin:auto;position:relative;z-index:1;color:var(--ink-3)}
.sf-stage-empty p{color:var(--ink)}
.sf-stage .sf-stage-empty{align-self:center}
.sf-stage{display:flex}
.sf-capture{position:absolute;left:0;top:0;width:2px;height:1.2em;opacity:0;border:0;padding:0;resize:none;overflow:hidden;background:transparent;color:transparent;caret-color:transparent;font-size:16px;z-index:2;pointer-events:none}
.sf-typing{position:absolute;right:.7rem;top:.7rem;z-index:3;font:500 .7rem var(--mono);background:var(--ink);color:var(--paper);padding:.25rem .55rem;border-radius:999px;opacity:.85}
.sf-stage.is-manual:focus-within{outline-color:var(--primary)}
.sf-input-halt{position:absolute;left:1rem;right:1rem;top:1rem;z-index:4;background:var(--bad-t);border:1px solid #efc6c2;color:var(--bad);border-radius:12px;padding:.7rem .9rem;display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;font-size:.86rem}
.sf-input-halt p{flex:1;min-width:200px}
.sf-manual-tools{padding:.45rem .8rem;gap:.4rem}
.sf-manual-tip{font-size:.78rem;color:#6b3f12}
.sf-kbd-tools summary,.sf-activity summary{cursor:pointer;font:600 .72rem var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);list-style-position:inside}
.sf-kbd-tools[open]{display:grid;gap:.4rem}
.sf-kbd-tools[open] summary{margin-bottom:.2rem}
.sf-activity{max-height:none}
.sf-activity summary{padding:.4rem .9rem}
@media(max-width:960px){
  .sf-split{grid-template-columns:1fr;height:auto}
  .sf-splitter{display:none}
  .sf-split.is-browser-focus{grid-template-columns:1fr}
  .sf-browser{min-height:70dvh}
  .sf-stage{min-height:62vw}
}
@media(prefers-reduced-motion:reduce){.sf-splitter span{transition:none}}

/* ===== Compact composer selectors ===== */
.sf-composer{margin:.6rem .75rem .8rem;padding:.75rem;border:1px solid var(--line-2);border-radius:16px;background:var(--card);display:grid;grid-template-columns:34px minmax(0,1fr)34px 36px;grid-template-areas:"files files files files" "input input input input" "attach modes mic send" "hint hint hint hint";column-gap:.45rem;row-gap:.45rem;box-shadow:0 2px 8px #22184a05;transition:border-color .15s,box-shadow .15s}
.sf-composer:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-t)}
.sf-composer textarea{grid-area:input;min-height:68px;max-height:196px;padding:.15rem .15rem .4rem;line-height:1.5;overflow-y:hidden}
.sf-composer textarea::placeholder{color:var(--ink-3)}
.sf-composer-row{display:contents}
.sf-composer-row>label.sf-icon-btn{grid-area:attach}
.sf-composer #sfMic{grid-area:mic}
.sf-composer .sf-icon-btn{width:34px;height:34px;align-self:end;background:transparent;border-color:transparent;border-radius:9px}
.sf-composer .sf-icon-btn:hover{background:var(--primary-t)}
.sf-composer #sfMic[aria-pressed=true]{background:var(--bad);color:var(--card)}
.sf-composer #sfSend,.sf-composer #sfStop{grid-area:send;width:36px;height:36px;padding:7px;border-radius:10px;align-self:end}
.sf-composer #sfSend svg,.sf-composer #sfStop svg{width:21px;height:21px}
.sf-composer .sf-files{grid-area:files;margin:0;padding:0;min-width:0}
.sf-composer .sf-files:empty{display:none}
.sf-composer .sf-files li{max-width:100%;min-width:0}
.sf-composer .sf-files li>button:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sf-composer .sf-hint{grid-area:hint;font-size:.75rem;white-space:normal;color:var(--bad);overflow-wrap:anywhere}
.sf-composer .sf-hint:empty{display:none}
.sf-composer-opts{grid-area:modes;display:flex;align-items:center;flex-wrap:nowrap;gap:.4rem;margin:0;padding:0;border:0;min-width:0;align-self:end}
.sf-pick{position:relative;display:inline-flex}
.sf-pick select{appearance:none;-webkit-appearance:none;font:600 .78rem var(--body);color:var(--ink);background:var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%234a4870'%3E%3Cpath d='M5.2 7.2l4.8 5 4.8-5'/%3E%3C/svg%3E") no-repeat right .45rem center/12px;border:1px solid var(--line-2);border-radius:999px;padding:.32rem 1.6rem .32rem .75rem;cursor:pointer;min-height:30px}
.sf-pick select:hover:not(:disabled){border-color:var(--primary);background-color:var(--primary-t)}
.sf-pick select:focus-visible{outline:2px solid var(--primary);outline-offset:1px}
.sf-pick select:disabled{opacity:.5;cursor:not-allowed}
#sfTierSel{color:var(--primary-d)}
.sf-tier-picker{position:relative;min-width:0}
.sf-tier-picker select[hidden],.sf-tier-menu[hidden],.sf-mic-help[hidden]{display:none!important}
.sf-tier-trigger{font:inherit;font-size:.74rem;border:1px solid var(--line-2);border-radius:20px;padding:.32rem .6rem;background:var(--card);color:var(--primary-d);cursor:pointer;white-space:nowrap}
.sf-tier-trigger:disabled{opacity:.5;cursor:not-allowed}
.sf-tier-trigger:focus-visible,.sf-tier-option:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.sf-tier-menu{position:fixed;width:min(318px,calc(100vw - 32px));z-index:90;padding:.55rem;border:1px solid var(--line-2);border-radius:14px;background:var(--card);box-shadow:0 10px 36px #15103025;max-height:min(390px,65vh);overflow-y:auto;text-align:left}
.sf-tier-heading{font-size:.73rem;font-weight:600;padding:.3rem .55rem .5rem;opacity:.7}
.sf-tier-option{display:block;width:100%;font:inherit;text-align:left;background:transparent;color:inherit;border:1px solid transparent;border-radius:9px;padding:.65rem .55rem;cursor:pointer}
.sf-tier-option:hover,.sf-tier-option:focus-visible{background:var(--primary-t)}
.sf-tier-option[aria-checked=true]{background:var(--primary-t);border-color:var(--primary)}
.sf-tier-option-head{display:flex;align-items:center;justify-content:space-between;gap:.45rem;font-size:.83rem}
.sf-tier-credit{font-size:.65rem;white-space:nowrap;border:1px solid var(--line-2);border-radius:12px;padding:.2rem .4rem}
.sf-tier-description{display:block;font-size:.74rem;line-height:1.5;margin-top:.3rem;opacity:.85}
.sf-tier-note{font-size:.66rem;line-height:1.5;opacity:.7;margin:.55rem .55rem .25rem}
.sf-composer .sf-mic-help{grid-column:1/-1;font-size:.74rem;line-height:1.5;border-top:1px solid var(--line-2);padding-top:.55rem;overflow-wrap:anywhere}
.sf-mic-help p{margin:0 0 .35rem}
.sf-mic-help a{color:var(--primary-d)}
.sf-mic-privacy{font-size:.66rem;opacity:.75}
.sf-opts-note{flex:1 1 160px;font-size:.7rem;color:var(--ink-3);min-width:0}
@media(max-width:560px){.sf-pick{flex:1}.sf-pick select{width:100%}.sf-opts-note{flex-basis:100%}}
.sf-composer .sf-pick{min-width:0}
.sf-composer .sf-pick select{max-width:100%;font-size:.74rem;padding-left:.55rem;padding-right:1.25rem}
.sf-assistant-progress{display:flex;align-items:center;gap:.65rem;flex-shrink:0;margin:.2rem 1.2rem 1rem;color:var(--ink-2);font-size:.84rem}
.sf-native-select{position:absolute;z-index:9;background:#fff;color:#17152c;border:1px solid var(--primary);border-radius:6px;box-shadow:0 6px 24px #15133130;font:14px var(--body);padding:3px;outline:2px solid var(--primary-t);max-width:calc(100% - 12px)}
.sf-native-select option{padding:6px 8px;min-height:28px}
.sf-progress-dots{display:flex;gap:4px;align-items:center}
.sf-progress-dots span{width:5px;height:5px;background:var(--primary);border-radius:50%;animation:sf-progress-pulse 1.3s ease-in-out infinite}
.sf-progress-dots span:nth-child(2){animation-delay:.15s}
.sf-progress-dots span:nth-child(3){animation-delay:.3s}
@keyframes sf-progress-pulse{0%,75%,100%{opacity:.3;transform:translateY(0)}35%{opacity:1;transform:translateY(-3px)}}
@media(prefers-reduced-motion:reduce){.sf-progress-dots span{animation:none;opacity:.7}.sf-composer{transition:none}}
