:root{
  --bg:#fff; --canvas:#f5f6f8; --surface:#fafbfc; --surface-2:#f2f3f5; --surface-3:#e9ebf0;
  --text:#1a1a1a; --text-2:#5f6368; --text-3:#9aa0a6;
  --border:#ebecf0; --border-strong:#dcdee3;
  --accent:#0052d9; --accent-hover:#0046b8; --accent-subtle:#eaf1fd; --accent-2:#5b8def;
  --green:#16a34a; --green-subtle:#ecfdf3; --red:#dc2626; --red-subtle:#fef2f2;
  --amber:#d97706; --amber-subtle:#fffbeb; --gray-badge:#6b7280;
  --radius:8px; --radius-lg:10px;
  --font:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans","Microsoft YaHei",system-ui,sans-serif;
  --mono:ui-monospace,"SF Mono","Geist Mono",Menlo,monospace;
}
:root{color-scheme:light}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#1b1f27; --canvas:#101319; --surface:#232831; --surface-2:#2b313b; --surface-3:#353c48;
  --text:#e8eaef; --text-2:#a4aab5; --text-3:#6d7480;
  --border:#2a2f39; --border-strong:#3b4250;
  --accent:#5b8cff; --accent-hover:#79a1ff; --accent-subtle:#1c2840; --accent-2:#6f9bf0;
  --green:#3ddc97; --green-subtle:#102a20; --red:#f87171; --red-subtle:#2c1719;
  --amber:#fbbf24; --amber-subtle:#2a2010; --gray-badge:#9aa0ab;
}
:root[data-theme="dark"] .rrail .rp-audit{border-color:#34507f;box-shadow:0 1px 2px rgba(0,0,0,.3),0 0 0 1px #22314d inset}
:root[data-theme="dark"] .toast{background:#2b313b;border:1px solid var(--border-strong)}
:root[data-theme="dark"] .toast .tk{color:#3ddc97}
:root[data-theme="dark"] .lang-menu,:root[data-theme="dark"] .acct-menu{box-shadow:0 16px 46px rgba(0,0,0,.6);border-color:var(--border-strong)}
:root[data-theme="dark"] .lg.tt{background:#0a0a0a;border:1px solid var(--border-strong)}
:root[data-theme="dark"] .block,:root[data-theme="dark"] .card,:root[data-theme="dark"] .alloc,:root[data-theme="dark"] .fcard,:root[data-theme="dark"] .dqrow,:root[data-theme="dark"] .rp{box-shadow:0 1px 2px rgba(0,0,0,.3)}
.theming,.theming *{transition:background-color .3s ease,border-color .3s ease,color .25s ease,fill .25s ease,stroke .25s ease!important}
*{box-sizing:border-box;margin:0;padding:0}
html{font-size:14px}
body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased;letter-spacing:-.003em}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:6px;border:3px solid var(--bg)}
button{font-family:var(--font)}

:root{--rrw:348px;--rail:248px}
.app{display:grid;grid-template-columns:var(--rail) 1fr;grid-template-rows:100vh;height:100vh;overflow:hidden}
.app.nav-collapsed{--rail:64px}
.rrail{transition:opacity .16s ease}
.app.rr-hidden .rrail{opacity:0}
.app.chatmode{grid-template-columns:var(--rail) 1fr var(--rrw)}
.app.chatmode.rr-hidden{grid-template-columns:var(--rail) 1fr 0}
.app:not(.chatmode) .rrail{display:none}
.app.rr-hidden .rrail{border-left-color:transparent;pointer-events:none}
.chatlist{border-right:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;min-height:0;min-width:0;overflow:hidden;position:relative}
.cl-new{display:flex;align-items:center;justify-content:center;gap:8px;margin:12px 12px 6px;padding:9px 12px;border:1px solid var(--border-strong);border-radius:9px;background:var(--bg);color:var(--text);font-family:var(--font);font-size:13px;font-weight:600;cursor:pointer}
.cl-new:hover{border-color:var(--accent);color:var(--accent)}
.cl-scroll{flex:1;min-height:0;overflow-y:auto;padding:6px 8px 12px}
.cl-grp{font-size:10.5px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;padding:10px 8px 5px}
.cl-item{display:block;position:relative;padding:8px 10px 8px 31px;border-radius:8px;font-size:12.5px;color:var(--text-2);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none}
.cl-item::before{content:"";position:absolute;left:9px;top:50%;margin-top:-7.5px;width:15px;height:15px;background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a93a3' stroke-width='1.7' stroke-linejoin='round'%3E%3Cpath d='M21 11.5a8.5 8.5 0 0 1-12.4 7.6L3 21l1.9-5.6A8.5 8.5 0 1 1 21 11.5z'/%3E%3C/svg%3E") center/contain no-repeat;opacity:.5}
.cl-item.on::before{opacity:.9}
.cl-item:hover{background:var(--surface-2);color:var(--text)}
.cl-item.on{background:var(--accent-subtle);color:var(--accent);font-weight:550}
.cl-grip{position:absolute;right:-3px;top:0;bottom:0;width:7px;cursor:col-resize;z-index:32}
.cl-grip::after{content:"";position:absolute;right:3px;top:0;bottom:0;width:1px;background:transparent;transition:background .12s}
.cl-grip:hover::after,.cl-grip.drag::after{background:var(--accent)}
.cl-head{padding:8px 12px 2px}
.cl-search{display:flex;align-items:center;gap:7px;height:32px;padding:0 10px;border:1px solid var(--border);border-radius:8px;background:var(--bg);transition:border-color .12s}
.cl-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}
.cl-search svg{color:var(--text-3);flex-shrink:0}
.cl-search input{border:none;background:none;outline:none;font-family:var(--font);font-size:12.5px;color:var(--text);width:100%;min-width:0}
.cl-search input::placeholder{color:var(--text-3)}
.cl-grp{display:flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;padding:10px 8px 5px;cursor:pointer;user-select:none;border-radius:6px}
.cl-grp:hover{color:var(--text-2);background:var(--surface-2)}
.cl-grp .gtw{font-size:8px;transition:transform .18s ease;display:inline-block}
.cl-grp.col .gtw{transform:rotate(-90deg)}
.cl-grp .gn{margin-left:auto;font-weight:600;color:var(--text-3);font-variant-numeric:tabular-nums}
.cl-item.hide,.cl-item.gcol{display:none}
.cl-grp.ghide{display:none}
.cl-empty{font-size:12px;color:var(--text-3);padding:16px 10px;text-align:center;display:none}
.cl-empty.on{display:block}
.pb-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap;min-height:32px}
.pb-filters{display:flex;gap:6px;flex-wrap:wrap}.pb-right{display:flex;align-items:center;gap:8px}
.inp.pb-sort{height:32px;padding:0 30px 0 11px;font-size:12.5px;font-weight:500;line-height:30px;cursor:pointer;border-radius:8px;border-color:var(--border-strong);-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238a93a3' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}
.inp.pb-sort:hover{border-color:var(--accent)}
.pb-count{font-size:12px;color:var(--text-3);font-weight:500;white-space:nowrap}.pb-count b{color:var(--text);font-weight:650;font-variant-numeric:tabular-nums}
.seg.pb-view button{padding:6px 11px;font-size:13px;line-height:1}
.pj-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}
.pj-card{border:1px solid var(--border);border-radius:12px;background:var(--bg);padding:14px;cursor:pointer;box-shadow:0 1px 2px rgba(16,24,40,.04);transition:border-color .15s,box-shadow .15s}
.pj-card:hover{border-color:var(--accent);box-shadow:0 3px 10px rgba(16,24,40,.07)}
.pj-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.pj-nm{font-size:14px;font-weight:650}
.pj-sub{font-size:11.5px;color:var(--text-3);margin-top:5px}
.pj-tags{display:flex;gap:5px;margin-top:9px}
.pj-k{font-size:12px;color:var(--text-2);margin-top:11px}.pj-k b{color:var(--text);font-weight:650}.pj-k b.g{color:var(--green)}.pj-k b.r{color:var(--red)}
.pj-upd{display:flex;justify-content:space-between;align-items:center;margin-top:11px;font-size:11px;color:var(--text-3)}.pj-open{color:var(--accent);font-weight:600}
.pj-table .k{font-weight:600}.pj-table tr[data-open]{cursor:pointer}
.ps{font-size:10px;font-weight:700;padding:2px 8px;border-radius:20px;background:var(--surface-2);color:var(--text-2);white-space:nowrap}
.ps.live{background:var(--green-subtle);color:var(--green)}.ps.draft{background:var(--amber-subtle);color:var(--amber)}
.pd-back{display:inline-flex;align-items:center;gap:6px;margin-bottom:16px;padding:6px 12px;border:1px solid var(--border-strong);border-radius:8px;background:var(--bg);color:var(--text-2);font-family:var(--font);font-size:12.5px;font-weight:550;cursor:pointer}
.pd-back:hover{border-color:var(--accent);color:var(--accent)}
@media(max-width:980px){.pj-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.pj-grid{grid-template-columns:1fr}}
.cr-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px}
.crt{padding:8px 14px;border:none;background:none;font-family:var(--font);font-size:13px;font-weight:550;color:var(--text-2);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}
.crt:hover{color:var(--text)}.crt.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
.dir-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px}
.dir-card{border:1px solid var(--border);border-radius:12px;background:var(--bg);padding:15px;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.dir-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.dir-nm{font-size:14px;font-weight:650}
.dir-card .tag{font-size:10px;font-weight:700;background:var(--surface-2);color:var(--text-2);padding:2px 8px;border-radius:20px;white-space:nowrap}
.dir-ev{font-size:12px;color:var(--text-2);margin:9px 0 13px;line-height:1.5}
.dir-foot{display:flex;align-items:center;justify-content:space-between;gap:10px}.dir-src{font-size:11px;color:var(--text-3)}.dir-foot .btn{font-size:12px;padding:6px 12px}
.gen-results{margin-top:6px}
@media(max-width:760px){.dir-grid{grid-template-columns:1fr}}
.app.welcome .rrail{display:none}

/* left rail */
/* unified sidebar — expanded by default (Manus form), collapses to icons */
.rail{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;align-items:stretch;padding:10px;gap:1px;position:relative}
.rail-grip{position:absolute;right:-3px;top:0;bottom:0;width:7px;cursor:col-resize;z-index:33}
.rail-grip::after{content:"";position:absolute;right:3px;top:0;bottom:0;width:1px;background:transparent;transition:background .12s}
.rail-grip:hover::after,.rail-grip.drag::after{background:var(--accent)}
.app.nav-collapsed .rail-grip{display:none}
.rail-head{display:flex;align-items:center;gap:10px;width:100%;margin-bottom:3px;min-height:38px;padding:0 5px}
.rail .logo{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;flex-shrink:0;cursor:pointer;transition:transform .12s}
.rail .logo:hover{transform:scale(1.06)}
.rail .logo svg{display:block;filter:drop-shadow(0 2px 5px rgba(31,95,255,.32))}
.rail-name{font-size:16px;font-weight:740;letter-spacing:-.02em;flex:1;white-space:nowrap;overflow:hidden}
.app.nav-collapsed .rail-name{display:none}
.nav-toggle{width:30px;height:30px;border-radius:8px;border:none;background:none;color:var(--text-3);cursor:pointer;place-items:center;flex-shrink:0;display:grid}
.app.nav-collapsed .nav-toggle{display:none}
.nav-toggle:hover{background:var(--surface-2);color:var(--text)}
.rail .ri{width:100%;height:38px;border-radius:9px;display:grid;grid-template-columns:22px 1fr;place-items:center start;gap:11px;padding:0 11px;color:var(--text-2);cursor:pointer;font-size:16px;border:none;background:none;flex-shrink:0;font-family:var(--font)}
.rail .ri svg{width:18px;height:18px}
.rail .ri:hover{background:var(--surface-2);color:var(--text)}
.rail .ri.on{background:var(--accent-subtle);color:var(--accent)}
.rail .ri:focus,.rail .cl-item:focus,.rail .logo:focus,.nav-toggle:focus,.acctctl:focus{outline:none}
.rail .ri:focus-visible,.rail .cl-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.rail .ri svg{justify-self:center}
.rail .ri#newBtn{margin-bottom:0}
.rlabel{font-size:14px;font-weight:500;white-space:nowrap;-webkit-font-smoothing:antialiased}
.app.nav-collapsed .rlabel{display:none}
.rail-chats{flex:1;min-height:0;display:flex;flex-direction:column;margin-top:9px;overflow:hidden}
.app.nav-collapsed .rail-chats{display:none}
.rail-chats .cl-sec{font-size:10.5px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;padding:2px 8px 6px}
.rail .sp{flex:1;display:none}
.app.nav-collapsed .rail .sp{display:block}
.rail-foot{display:flex;flex-direction:column;align-items:stretch;gap:2px;width:100%;margin-top:6px;border-top:1px solid var(--border);padding-top:8px}
.rail .av{width:30px;height:30px;border-radius:50%;background:#f0731f;color:#fff;display:grid;place-items:center;font-weight:600;font-size:12.5px;flex-shrink:0;cursor:pointer}
.acctctl{display:flex;align-items:center;gap:10px;padding:5px 7px;border-radius:9px;cursor:pointer}
.acctctl:hover{background:var(--surface-2)}
.acct-id{font-size:12.5px;font-weight:600;white-space:nowrap;cursor:pointer}
.acct-id:hover{color:var(--accent)}
.app.nav-collapsed .acct-id{display:none}

/* center */
.center{display:flex;flex-direction:column;min-width:0;min-height:0;position:relative}
.topbar{height:52px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 20px;flex-shrink:0}
.topbar .ttl{font-size:13.5px;font-weight:600;display:flex;align-items:center;gap:9px}
.topbar .ttl .ico{color:var(--text-3)}
.topbar .ttl .meta{color:var(--text-3);font-weight:450;font-size:12px}
.topbar .right{display:flex;align-items:center;gap:9px}
.chip{font-size:11.5px;font-weight:600;color:var(--green);background:var(--green-subtle);padding:3px 9px;border-radius:20px;display:inline-flex;align-items:center;gap:5px}
.chip .pip{width:6px;height:6px;border-radius:50%;background:var(--green);animation:pipPulse 2.4s ease-out infinite}
.lang{display:flex;gap:1px;border:1px solid var(--border-strong);border-radius:7px;overflow:hidden}
.lang button{font-size:11.5px;font-weight:500;padding:5px 8px;border:none;background:var(--bg);color:var(--text-2);cursor:pointer}
.lang button:hover{background:var(--surface-2)}
.lang button.on{background:var(--accent);color:#fff}

.thread{flex:1;min-height:0;overflow-y:auto;padding:24px 0;background:var(--canvas)}
.thread-in{max-width:880px;margin:0 auto;padding:0 28px}
.msg{margin-bottom:22px}
.msg.user{display:flex;justify-content:flex-end}
.msg.user .bubble{background:var(--accent-subtle);border:1px solid #d7e5fb;padding:9px 14px;border-radius:13px 13px 4px 13px;font-size:13px;max-width:78%}
.msg.bot{display:flex;gap:12px}
.msg.bot .ava{width:27px;height:27px;border-radius:8px;background:var(--accent);color:#fff;display:none;place-items:center;font-weight:700;font-size:12px;flex-shrink:0}
.msg.bot .content{min-width:0;flex:1}
.intro{font-size:13.5px;line-height:1.6;margin-bottom:12px}
.intro strong{font-weight:650}
.mantra{font-size:11px;color:var(--text-3);margin:-4px 0 14px;display:inline-flex;align-items:center;gap:6px}
.mantra b{color:var(--accent);font-weight:600}

/* CoT */
.cot{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);margin-bottom:14px}
.cot summary{list-style:none;cursor:pointer;padding:10px 13px;font-size:12px;font-weight:600;color:var(--text-2);display:flex;align-items:center;gap:8px}
.cot summary::-webkit-details-marker{display:none}
.cot summary .tw{transition:transform .15s;color:var(--text-3);font-size:10px}
.cot[open] summary .tw{transform:rotate(90deg)}
.cot summary .seal{margin-left:auto;font-size:10px;font-weight:600;color:var(--text-2);background:var(--surface-2);padding:2px 8px;border-radius:10px}
.cot ol{margin:0;padding:0 16px 12px 38px}
.cot li{font-size:12px;color:var(--text-2);line-height:1.5;margin-bottom:5px}
.cot li .mono{color:var(--text)}

/* generic block card */
.block{border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:14px;overflow:hidden;background:var(--bg);box-shadow:0 1px 2px rgba(16,24,40,.04)}
.block .bhead{display:flex;align-items:center;gap:9px;padding:12px 15px;border-bottom:1px solid var(--border)}
.block .bhead .ic{width:24px;height:24px;border-radius:7px;background:var(--surface-2);color:var(--text-2);display:grid;place-items:center;font-size:13px}
.block .bhead .h{font-size:13.5px;font-weight:600}
.block .bhead .sub{font-size:11.5px;color:var(--text-3);margin-left:auto}

/* KPI strip */
.kpis{display:grid;grid-template-columns:repeat(6,1fr);border-bottom:1px solid var(--border)}
.kpi{padding:12px 14px;border-right:1px solid var(--border)}
.kpi:last-child{border-right:none}
.kpi .k{font-size:10.5px;color:var(--text-3);font-weight:500}
.kpi .v{font-size:18px;font-weight:650;letter-spacing:-.03em;margin-top:3px}
.kpi .d{font-size:10.5px;font-weight:500;margin-top:1px}
.kpi .d.up{color:var(--green)} .kpi .d.down{color:var(--red)} .kpi .d.flat{color:var(--text-3)}

/* chart */
.chart-wrap{padding:14px 15px;border-bottom:1px solid var(--border)}
.chart-wrap .clab{font-size:11px;color:var(--text-3);font-weight:500;margin-bottom:8px;display:flex;gap:14px}
.chart-wrap .clab .li{display:flex;align-items:center;gap:5px}
.chart-wrap .clab .sw{width:9px;height:3px;border-radius:2px}
.chart{width:100%;height:104px;display:block}

/* data table */
.dt{width:100%;border-collapse:collapse;font-size:12px;background:var(--bg)}
.dt th{text-align:left;font-size:10.5px;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;padding:8px 12px;background:var(--surface);border-bottom:1px solid var(--border);white-space:nowrap}
.dt td{padding:9px 12px;border-bottom:1px solid var(--border);white-space:nowrap}
.dt tr:last-child td{border-bottom:none}
.dt tr:hover td{background:var(--surface)}
.dt .nm{font-weight:550}
.dt .plat{color:var(--text-3);font-weight:450;font-size:11px}
.dt .num{font-family:var(--mono);text-align:right}
.dt .r{color:var(--red)} .dt .g{color:var(--green)}
.thumb{width:26px;height:26px;border-radius:6px;flex-shrink:0;display:inline-block;vertical-align:middle;margin-right:8px}
.tg1,.tg2,.tg3,.tg4,.tg5,.tg6,.tg7,.tg8{background:linear-gradient(135deg,#aab4c7,#7d899e)}

/* decision badge */
.bdg{font-size:10px;font-weight:700;padding:3px 7px;border-radius:5px;letter-spacing:.02em;display:inline-block}
.bdg.scale{background:var(--green-subtle);color:var(--green)} .bdg.pause{background:var(--red-subtle);color:var(--red)}
.bdg.refresh{background:var(--amber-subtle);color:var(--amber)} .bdg.hold{background:var(--surface-2);color:var(--gray-badge)}
.narr{padding:12px 15px;font-size:12.5px;line-height:1.6;color:var(--text-2);background:var(--surface)}
.narr strong{color:var(--text);font-weight:600}

/* decision card */
.card{border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:11px;overflow:hidden;cursor:pointer;background:var(--bg);transition:border-color .15s,box-shadow .15s;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.card:hover{border-color:var(--border-strong)}
.card.sel{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}
.card .head{display:flex;align-items:center;gap:10px;padding:12px 14px}
.act{font-size:10.5px;font-weight:700;padding:4px 8px;border-radius:6px;letter-spacing:.02em;flex-shrink:0}
.act.scale{background:var(--green-subtle);color:var(--green)} .act.pause{background:var(--red-subtle);color:var(--red)}
.act.refresh{background:var(--amber-subtle);color:var(--amber)} .act.hold{background:var(--surface-2);color:var(--gray-badge)}
.card .title{font-weight:600;font-size:13px;flex:1;min-width:0}
.card .title .plat{color:var(--text-3);font-weight:450;font-size:11.5px}
.budget{font-family:var(--mono);font-size:12px;font-weight:600}
.budget .arrow{color:var(--text-3);margin:0 4px}
.budget .up{color:var(--green)} .budget .zero{color:var(--red)}
.conf{font-size:10px;font-weight:700;padding:2px 7px;border-radius:20px}
.conf.high{color:var(--green);background:var(--green-subtle)} .conf.med{color:var(--amber);background:var(--amber-subtle)}
.card .body{display:grid;grid-template-columns:1fr 1px 190px;border-top:1px solid var(--border)}
.why{padding:11px 14px}.why .lab,.sigs .lab{font-size:9.5px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}
.why p{font-size:12px;line-height:1.55}.why .guard{margin-top:8px;font-size:11px;color:var(--text-2)}.why .guard .mono{color:var(--text)}
.vdiv{background:var(--border)}
.sigs{padding:11px 14px}
.sigrow{display:flex;align-items:center;gap:7px;margin-bottom:4px;font-size:11px}
.dd{width:7px;height:7px;border-radius:50%;flex-shrink:0}.dd.g{background:var(--green)}.dd.y{background:var(--amber)}.dd.r{background:var(--red)}
.sigrow .nm{color:var(--text-2);flex:1}.sigrow .val{font-family:var(--mono);font-size:10.5px}
.card .foot{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;border-top:1px solid var(--border);background:var(--surface)}
.card .foot .next{font-size:11px;color:var(--text-3)}.card .foot .btns{display:flex;gap:6px}
.mini{font-size:11.5px;font-weight:500;padding:5px 10px;border-radius:7px;border:1px solid var(--border-strong);background:var(--bg);cursor:pointer;color:var(--text)}
.mini:hover{background:var(--surface-2)}.mini.approve{background:var(--accent);border-color:var(--accent);color:#fff}.mini.approve:hover{background:var(--accent-hover)}

/* batch editor */
.editor td{padding:8px 12px}
.editor .bnum{width:74px;border:1px solid var(--border-strong);border-radius:6px;padding:4px 7px;font-family:var(--mono);font-size:11.5px;text-align:right;outline:none}
.editor .bnum:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-subtle)}
.editor .bulk{display:flex;align-items:center;gap:10px;padding:11px 14px;border-top:1px solid var(--border);background:var(--surface);flex-wrap:wrap}
.editor .bulk .fld{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--text-2)}
.editor .efoot{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-top:1px solid var(--border)}
.editor .efoot .tags{display:flex;gap:6px}
.tag{font-size:10.5px;font-weight:550;color:var(--text-2);background:var(--surface-2);padding:3px 9px;border-radius:20px}
.btn{font-size:12.5px;font-weight:500;border-radius:8px;padding:7px 13px;border:1px solid var(--border-strong);background:var(--bg);color:var(--text);cursor:pointer}
.btn:hover{background:var(--surface-2)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-hover)}

/* allocation */
.alloc{border:1px solid var(--border);border-radius:var(--radius-lg);padding:15px;margin-bottom:11px;background:var(--bg);box-shadow:0 1px 2px rgba(16,24,40,.04)}
.alloc .h{font-size:13px;font-weight:600;margin-bottom:13px;display:flex;align-items:center;gap:8px}.alloc .h .ic{color:var(--text-3)}
.alloc .grid{display:grid;grid-template-columns:128px 1fr;gap:18px;align-items:center}
.donut{width:124px;height:124px;border-radius:50%;margin:0 auto;background:conic-gradient(var(--accent) 0 52%,var(--accent-2) 52% 88%,#c7d9f7 88% 100%);display:grid;place-items:center;position:relative}
.donut::after{content:"";width:82px;height:82px;background:var(--bg);border-radius:50%}
.donut .ctr{position:absolute;text-align:center}.donut .ctr .n{font-size:16px;font-weight:650;letter-spacing:-.02em}.donut .ctr .l{font-size:10px;color:var(--text-3)}
.legend{display:flex;flex-direction:column;gap:7px}
.legend .li{display:flex;align-items:center;gap:8px;font-size:12px}.legend .sw{width:9px;height:9px;border-radius:3px;flex-shrink:0}.legend .nm{flex:1;color:var(--text-2)}.legend .mv{font-family:var(--mono);font-weight:600;font-size:11.5px}
.alloc .note{margin-top:12px;padding-top:11px;border-top:1px solid var(--border);font-size:11.5px;color:var(--text-2);line-height:1.5}.alloc .note .mono{color:var(--text)}

/* composer */
.composer-wrap{border-top:1px solid var(--border);padding:13px 28px 15px;flex-shrink:0;background:var(--canvas)}
.composer-in{max-width:880px;margin:0 auto}
.composer{border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:9px 9px 7px;background:var(--bg);box-shadow:0 1px 3px rgba(16,24,40,.05);transition:border-color .15s,box-shadow .15s}
.composer:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}
.composer textarea{width:100%;border:none;outline:none;resize:none;font-family:var(--font);font-size:13.5px;line-height:1.5;background:none;color:var(--text);min-height:52px;max-height:160px;padding:2px 2px 0}
.composer textarea::placeholder{color:var(--text-3)}
.composer .bar{display:flex;align-items:center;gap:6px;margin-top:5px}
.cbtn{font-size:12px;font-weight:500;padding:5px 9px;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text-2);cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.cbtn:hover{background:var(--surface-2);color:var(--text)}.cbtn .ic{opacity:.7}
.cbtn select{font-family:var(--font);font-size:12px;font-weight:500;border:none;background:none;color:inherit;cursor:pointer;outline:none}
.composer .send{margin-left:auto;width:31px;height:31px;border-radius:9px;background:var(--accent);color:#fff;border:none;cursor:pointer;display:grid;place-items:center;font-size:15px}.composer .send:hover{background:var(--accent-hover)}
.disclaim{text-align:center;font-size:10.5px;color:var(--text-3);margin-top:8px}

/* right rail */
.rrail{border-left:1px solid var(--border);background:var(--canvas);overflow-y:auto;overflow-x:hidden;min-height:0;min-width:0;display:flex;flex-direction:column;position:relative;padding:10px}
.rr-grip{position:absolute;left:-3px;top:0;bottom:0;width:7px;cursor:col-resize;z-index:32}
.rr-grip::after{content:"";position:absolute;left:3px;top:0;bottom:0;width:1px;background:transparent;transition:background .12s}
.rr-grip:hover::after,.rr-grip.drag::after{background:var(--accent)}
.rrail .rp-audit{border-color:#cdddf8;box-shadow:0 1px 2px rgba(16,24,40,.04),0 0 0 1px #e6eefb inset}
.panel-toggle{width:30px;height:30px;border-radius:8px;border:none;background:none;color:var(--text-3);cursor:pointer;display:grid;place-items:center;transition:background .12s,color .12s}
.panel-toggle:hover{background:var(--surface-2);color:var(--text)}
.panel-toggle svg{display:block}
.panel-toggle .fill{fill:none}
.panel-toggle.off{color:var(--accent)}
.panel-toggle.off .fill{fill:var(--accent-subtle)}
.side-toggle{width:30px;height:30px;margin-right:2px;border-radius:8px;border:none;background:none;color:var(--text-3);cursor:pointer;display:grid;place-items:center;flex-shrink:0;transition:background .12s,color .12s}
.side-toggle:hover{background:var(--surface-2);color:var(--text)}
.side-toggle svg{display:block;transition:transform .2s ease}
.app.nav-collapsed .side-toggle svg{transform:scaleX(-1)}
.app:not(.chatmode) #auditToggle{display:none}
/* language selector */
.langsel{position:relative}
.lang-btn{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 9px;border:1px solid var(--border-strong);border-radius:8px;background:var(--bg);color:var(--text-2);cursor:pointer;font-family:var(--font);font-size:12.5px;font-weight:500;white-space:nowrap;flex-shrink:0}
.lang-btn:hover{background:var(--surface-2);color:var(--text)}
.lang-btn .caret{font-size:9px;color:var(--text-3);transition:transform .15s}
.langsel.open .lang-btn .caret{transform:rotate(180deg)}
.langsel.open .lang-btn{border-color:var(--accent);color:var(--text)}
.lang-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:172px;background:var(--bg);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 28px rgba(16,24,40,.12);padding:5px;z-index:50;display:none;flex-direction:column;gap:1px}
.langsel.open .lang-menu{display:flex}
.lang-menu button{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:none;background:none;border-radius:7px;font-family:var(--font);font-size:13px;color:var(--text);cursor:pointer;text-align:left;width:100%}
.lang-menu button:hover{background:var(--surface-2)}
.lang-menu button .nat{color:var(--text-3);font-size:11px}
.lang-menu button.on{color:var(--accent);font-weight:600}
.lang-menu button.on::after{content:"✓";color:var(--accent);font-size:11px}
.app.rr-hidden .rrail{border-left-color:transparent;pointer-events:none}
button.pressed{transform:scale(.97);opacity:.85;transition:transform .08s,opacity .08s}
.rp{background:var(--bg);border:1px solid var(--border);border-radius:12px;margin-bottom:10px;box-shadow:0 1px 2px rgba(16,24,40,.04);overflow:hidden;flex-shrink:0}
.rp>summary{list-style:none;cursor:pointer;padding:12px 15px;font-size:12px;font-weight:600;display:flex;align-items:center;gap:8px;user-select:none;transition:background .12s}
.rp>summary::-webkit-details-marker{display:none}
.rp:not([open])>summary:hover{background:var(--surface-2)}
.rp>summary .tw{color:var(--text-3);font-size:9px;transition:transform .15s}.rp[open]>summary .tw{transform:rotate(90deg)}
.rp>summary .ct{margin-left:auto;font-size:10.5px;color:var(--text-3);font-weight:600;font-variant-numeric:tabular-nums}
.rp .pbody{padding:3px 15px 15px}
/* progress steps */
@keyframes pstepPulse{0%{box-shadow:0 0 0 0 rgba(0,82,217,.40)}70%{box-shadow:0 0 0 6px rgba(0,82,217,0)}100%{box-shadow:0 0 0 0 rgba(0,82,217,0)}}
@keyframes pipPulse{0%{box-shadow:0 0 0 0 rgba(22,163,74,.45)}70%{box-shadow:0 0 0 5px rgba(22,163,74,0)}100%{box-shadow:0 0 0 0 rgba(22,163,74,0)}}
.pstep{display:flex;gap:10px;margin-bottom:11px;position:relative}
.pstep .n{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:700;flex-shrink:0;z-index:1}
.pstep.done .n{background:var(--green);color:#fff}.pstep.now .n{background:var(--accent);color:#fff;animation:pstepPulse 2s ease-out infinite}.pstep.wait .n{background:var(--surface-2);border:1px solid var(--border-strong);color:var(--text-3)}
.pstep::before{content:"";position:absolute;left:8.5px;top:18px;bottom:-11px;width:1px;background:var(--border-strong)}.pstep:last-child::before{display:none}
.pstep .tx{font-size:11.5px;color:var(--text-2);padding-top:1px}.pstep.now .tx{color:var(--text);font-weight:550}.pstep.wait .tx{color:var(--text-3)}
/* why/audit */
.wsec{font-size:10px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.07em;margin:0 0 9px;display:flex;justify-content:space-between;align-items:baseline}.wsec .ct{color:var(--text-2);font-weight:600;letter-spacing:0;font-variant-numeric:tabular-nums}
.whead{margin-bottom:15px}.whead .nm{font-size:14px;font-weight:680;letter-spacing:-.01em}.whead .plat{font-size:11px;color:var(--text-3);margin-top:2px}.whead .vd{display:flex;align-items:center;gap:7px;margin-top:11px}
.svrow{display:grid;grid-template-columns:13px 1fr auto auto;gap:9px;align-items:center;padding:6.5px 0;font-size:12px;border-bottom:1px solid var(--border)}
.svrow:last-of-type{border-bottom:none}
.svrow .dd{width:7px;height:7px;justify-self:center}.svrow .nm{font-weight:500;color:var(--text)}.svrow .val{font-family:var(--mono);font-weight:650;font-size:11.5px;color:var(--text);text-align:right}.svrow .th{font-family:var(--mono);font-size:10px;color:var(--text-3);text-align:right;min-width:50px}
.dvr{height:1px;background:var(--border);margin:15px 0}
.rule{display:flex;gap:10px;margin-bottom:11px;position:relative}
.rule .n{width:18px;height:18px;border-radius:50%;background:var(--surface-2);border:1px solid var(--border-strong);color:var(--text-2);font-size:9.5px;font-weight:700;display:grid;place-items:center;flex-shrink:0;z-index:1}
.rule.end .n{background:var(--accent);border-color:var(--accent);color:#fff}
.rule::before{content:"";position:absolute;left:8.5px;top:18px;bottom:-11px;width:1px;background:var(--border-strong)}.rule:last-child::before{display:none}
.rule .tx{font-size:11.5px;line-height:1.5;color:var(--text-2);padding-top:1px}.rule .tx .mono{color:var(--text)}.rule.end .tx{color:var(--text);font-weight:550}
.replay{border:1px solid var(--border);border-radius:9px;background:var(--surface);padding:11px 12px}
.replay .row{display:flex;justify-content:space-between;align-items:center;font-size:11px;margin-bottom:6px}.replay .row .k{color:var(--text-3)}.replay .row .v{font-family:var(--mono);color:var(--text-2)}
.replay button{width:100%;margin-top:9px;font-size:12px;font-weight:550;padding:8px;border-radius:7px;border:1px solid var(--border-strong);background:var(--bg);color:var(--text);cursor:pointer;transition:background .12s,border-color .12s,color .12s}.replay button:hover{background:var(--accent-subtle);border-color:var(--accent);color:var(--accent)}
/* library + campaigns */
.litem{display:flex;align-items:center;gap:10px;padding:7px 0;font-size:12px}
.litem .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.litem .meta{font-size:10.5px;color:var(--text-3)}
.crow{display:flex;align-items:center;gap:9px;padding:7px 0;font-size:12px;border-bottom:1px solid var(--border)}
.crow:last-child{border-bottom:none}.crow .sd{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.crow .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.crow .sp{font-family:var(--mono);font-size:11px;color:var(--text-2)}

/* welcome */
.welcome-view{display:none;flex:1;overflow-y:auto;background:var(--canvas)}
.app.welcome .welcome-view{display:flex;flex-direction:column;align-items:center}
.app.welcome .welcome-view::before{content:"";flex:1 0 48px}
.app.welcome .welcome-view::after{content:"";flex:1.6 0 36px}
.app.welcome .thread,.app.welcome .composer-wrap{display:none}
.wv-in{max-width:768px;margin:0 auto;padding:0 28px 28px;width:100%}
.wv-hero{margin-bottom:14px;line-height:0}
.hero-art{color:#2a3040}
:root[data-theme="dark"] .hero-art{color:#d4d9e3}
.hero-drop{stroke-dasharray:300;stroke-dashoffset:300;animation:heroDraw 1.2s .1s cubic-bezier(.22,.61,.36,1) forwards}
.hero-spark{stroke-dasharray:80;stroke-dashoffset:80;animation:heroDraw .9s 1s cubic-bezier(.22,.61,.36,1) forwards}
.hero-tip{opacity:0;animation:heroPop .4s 1.7s ease forwards}
.hero-ripple{opacity:0;animation:heroPop .8s 1.25s ease forwards}
.hero-arrow{stroke-dasharray:120;stroke-dashoffset:120;animation:heroDraw 1s 1.35s cubic-bezier(.22,.61,.36,1) forwards}
@keyframes heroDraw{to{stroke-dashoffset:0}}
.hero-pop{opacity:0;animation:heroPop .55s 1.5s ease forwards}
.hero-pop.spk{animation-delay:1.85s}
@keyframes heroPop{to{opacity:1}}
.hero-p{opacity:0;animation:heroDot .4s 2s forwards,heroFloat 3.6s 2.2s ease-in-out infinite}
.hero-p.p2{animation-delay:2.15s,2.4s}.hero-p.p3{animation-delay:2.3s,2.5s}
@keyframes heroDot{to{opacity:1}}
@keyframes heroFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@media(prefers-reduced-motion:reduce){.hero-drop,.hero-spark,.hero-tip,.hero-ripple,.hero-arrow,.hero-pop,.hero-p{animation:none;opacity:1;stroke-dashoffset:0}}
.wv-in h1{font-size:34px;font-weight:680;letter-spacing:-.035em;line-height:1.12}
.wv-in .sub{font-size:15px;color:var(--text-2);margin:12px 0 28px;line-height:1.55;max-width:600px}
.wv-composer{border:1px solid var(--border-strong);border-radius:16px;padding:15px 16px 11px;margin-bottom:32px;background:var(--bg);box-shadow:0 2px 12px rgba(16,24,40,.06)}
.wv-composer:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}
.wv-composer textarea{width:100%;border:none;outline:none;resize:none;font-family:var(--font);font-size:15.5px;line-height:1.5;background:none;color:var(--text);min-height:46px}
.wv-composer textarea::placeholder{color:var(--text-3)}
.wv-composer .send{width:36px;height:36px;font-size:17px;border-radius:11px}
.wv-composer .cbtn{height:32px}
.scene-lab{font-size:11.5px;font-weight:600;color:var(--text-3);text-align:center;margin-bottom:14px}
.scenes{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}
.scene{border:1px solid var(--border);border-radius:var(--radius-lg);padding:15px;cursor:pointer;transition:border-color .15s,transform .1s;background:var(--bg)}
.scene:hover{border-color:var(--accent);transform:translateY(-2px)}
.scene .ic{color:var(--text-3);margin-bottom:12px;height:22px;display:flex;align-items:center}
.scene:hover .ic{color:var(--accent)}
.scene .t{font-size:13px;font-weight:600}.scene .d{font-size:11.5px;color:var(--text-2);margin:4px 0 9px;line-height:1.45}.scene .tag{font-size:10px;font-weight:550;color:var(--text-3);background:var(--surface-2);padding:2px 8px;border-radius:10px}

@media(max-width:1180px){.app.chatmode,.app.chatmode.rr-hidden{grid-template-columns:var(--rail) 1fr}.rrail{display:none}}
/* collapsed sidebar = slim, centered icon rail. In-flow at every width: expanding
   grows the grid column and reflows the content (no overlay), same as desktop. */
.app.nav-collapsed .rail{align-items:center}
.app.nav-collapsed .rail-head{justify-content:center;padding:0}
.app.nav-collapsed .rail .ri{width:38px;height:38px;grid-template-columns:none;place-items:center;padding:0}
.app.nav-collapsed .rail-foot{align-items:center}
.app.nav-collapsed .acctctl{justify-content:center;padding:5px}
@media(max-width:1000px){.scenes{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.thread-in,.composer-in,.screen-in{padding-left:18px;padding-right:18px}.wv-in{padding:30px 18px}.wv-in h1{font-size:25px}.kpis{grid-template-columns:repeat(3,1fr)}.card .body{grid-template-columns:1fr}.card .vdiv{display:none}}
@media(max-width:600px){.scenes{grid-template-columns:1fr}.wv-in h1{font-size:22px}.wv-in .sub{font-size:13.5px}.kpis,.kpis-4{grid-template-columns:repeat(2,1fr)}.topbar .ttl .meta{display:none}.topbar{padding:0 12px;gap:8px}.topbar .ttl{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip{display:none}.composer .bar,.wv-composer .bar{flex-wrap:wrap}.thread-in,.composer-in,.screen-in{padding-left:14px;padding-right:14px}.composer-wrap{padding:10px 14px 12px}.scrn-head h2{font-size:16px}.card .head{flex-wrap:wrap;row-gap:6px}.card .title{order:-1;flex-basis:100%}.dqrow{flex-wrap:wrap;row-gap:6px}}
@media(max-width:600px),(max-height:720px){.app.welcome .welcome-view{justify-content:flex-start}}

/* ---------- multi-view screens ---------- */
.screen{display:none;flex:1;overflow-y:auto;min-height:0;background:var(--canvas)}
.screen.on{display:block}
.screen-in{max-width:1080px;margin:0 auto;padding:22px 30px 40px;width:100%}
.scrn-head{display:flex;align-items:center;gap:11px;margin-bottom:18px}
.scrn-head .bk{width:30px;height:30px;border-radius:8px;border:1px solid var(--border-strong);background:var(--bg);color:var(--text-2);cursor:pointer;display:grid;place-items:center;font-size:14px;flex-shrink:0}
.scrn-head .bk:hover{background:var(--surface-2);color:var(--text)}
.scrn-head .ic{width:30px;height:30px;border-radius:8px;background:var(--surface-2);color:var(--text-2);display:grid;place-items:center;font-size:15px;flex-shrink:0}
.scrn-head h2{font-size:18px;font-weight:680;letter-spacing:-.025em}
.scrn-head .sub{font-size:12.5px;color:var(--text-3);margin-left:auto}
.scrn-head.lite{margin-bottom:14px}.scrn-head.lite .sub{margin-left:0;font-size:13px;color:var(--text-2)}
.rp-collapse{margin-left:8px;width:22px;height:22px;border:none;background:none;color:var(--text-3);cursor:pointer;border-radius:6px;font-size:13px;line-height:1;flex-shrink:0}
.rp-collapse:hover{background:var(--surface-2);color:var(--text)}
.sect{font-size:11px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;margin:22px 0 11px}
.sect:first-of-type{margin-top:4px}

/* creative selector */
.seg{display:inline-flex;border:1px solid var(--border-strong);border-radius:8px;overflow:hidden}
.seg button{padding:6px 15px;border:none;background:var(--bg);font-size:12.5px;cursor:pointer;color:var(--text-2);font-family:var(--font)}
.seg button.on{background:var(--accent);color:#fff}
.tabs{display:flex;gap:20px;border-bottom:1px solid var(--border);margin:16px 0 16px}
.tabs button{padding:0 0 10px;border:none;background:none;font-size:13px;color:var(--text-2);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;font-family:var(--font)}
.tabs button.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
.vgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}
.vcard{border:1px solid var(--border);border-radius:10px;overflow:hidden;cursor:pointer;position:relative;background:var(--bg);transition:border-color .15s,box-shadow .15s}
.vcard:hover{border-color:var(--border-strong)}
.vcard.sel{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-subtle)}
.vthumb{aspect-ratio:9/16;background:linear-gradient(150deg,#aab4c7,#6c7889);position:relative;display:grid;place-items:center}
.vthumb .play{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.85);display:grid;place-items:center;color:var(--text);font-size:13px}
.vthumb .dur{position:absolute;bottom:7px;right:7px;font-size:10px;font-family:var(--mono);background:rgba(0,0,0,.5);color:#fff;padding:1px 5px;border-radius:4px}
.vmeta{padding:8px 10px}.vmeta .vn{font-size:12px;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vmeta .vs{font-size:10.5px;color:var(--text-3);margin-top:2px}
.chk{position:absolute;top:8px;left:8px;width:20px;height:20px;border-radius:50%;background:rgba(255,255,255,.9);border:1px solid var(--border-strong);display:grid;place-items:center;font-size:11px;color:transparent;z-index:2}
.vcard.sel .chk{background:var(--green);border-color:var(--green);color:#fff}
.scrn-foot{display:flex;align-items:center;justify-content:space-between;margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}
.scrn-foot .info{font-size:12.5px;color:var(--text-2)}.scrn-foot .info b{color:var(--text)}

/* publish form */
.fcard{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg);box-shadow:0 1px 2px rgba(16,24,40,.04)}
.frow{display:flex;align-items:center;gap:14px;padding:14px 16px;border-bottom:1px solid var(--border)}
.frow:last-child{border-bottom:none}
.frow .fl{font-size:13px;font-weight:550;width:150px;flex-shrink:0}
.frow .fl .h{font-size:11px;color:var(--text-3);font-weight:450;margin-top:2px}
.frow .fc{flex:1;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.inp{border:1px solid var(--border-strong);border-radius:7px;padding:7px 10px;font-family:var(--font);font-size:13px;outline:none;background:var(--bg);color:var(--text)}
.inp:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}
select.inp{cursor:pointer}
.rad{display:inline-flex;align-items:center;gap:7px;font-size:13px;cursor:pointer}
.rad input{accent-color:var(--accent)}
.sw{position:relative;width:38px;height:22px;border-radius:20px;background:var(--border-strong);cursor:pointer;transition:background .15s;flex-shrink:0}
.sw.on{background:var(--accent)}
.sw::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .15s}
.sw.on::after{transform:translateX(16px)}

/* strategy report */
.rpt p{font-size:13px;line-height:1.65;color:var(--text-2);margin-bottom:10px}.rpt p strong{color:var(--text);font-weight:600}
.rpt .lead{font-size:13.5px;color:var(--text);background:var(--surface);border-left:3px solid var(--accent);padding:12px 14px;border-radius:0 8px 8px 0;margin-bottom:4px}
.rtable{width:100%;border-collapse:collapse;font-size:12.5px;border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-top:4px;background:var(--bg)}
.rtable th{text-align:left;background:var(--surface-2);font-size:11px;font-weight:600;color:var(--text-2);padding:9px 12px;border-bottom:1px solid var(--border)}
.rtable td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:top;line-height:1.5}
.rtable tr:last-child td{border-bottom:none}
.rtable td.k{font-weight:600;color:var(--text);white-space:nowrap}
.pill{display:inline-block;font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:20px;background:var(--surface-2);color:var(--text-2)}
/* decisions queue */
.dq{display:flex;flex-direction:column;gap:9px}
.dqrow{display:flex;align-items:center;gap:13px;border:1px solid var(--border);border-radius:11px;padding:12px 15px;background:var(--bg);box-shadow:0 1px 2px rgba(16,24,40,.03);transition:border-color .15s}
.dqrow:hover{border-color:var(--border-strong)}
.dqrow .dqm{flex:1;min-width:0}.dqrow .dqm .nm{font-size:13px;font-weight:600}.dqrow .dqm .nm .plat{color:var(--text-3);font-weight:450;font-size:11.5px}
.dqrow .dqm .rs{font-size:12px;color:var(--text-2);margin-top:3px}
.dqrow .budget{white-space:nowrap}
/* bench */
.scorebar{display:inline-block;width:58px;height:6px;border-radius:3px;background:var(--surface-2);position:relative;vertical-align:middle;margin-right:8px}
.scorebar i{position:absolute;left:0;top:0;bottom:0;border-radius:3px;background:var(--accent)}
.rk{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:6px;background:var(--surface-2);font-size:11px;font-weight:700;color:var(--text-2)}
.rk.g1{background:#fef3c7;color:#b45309}
.acct{display:flex;align-items:center;gap:10px}.acct .lg{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;font-weight:700;font-size:13px;color:#fff}
.lg.meta{background:#1877f2}.lg.tt{background:#111}.lg.gg{background:linear-gradient(135deg,#4285f4,#34a853)}
.plogo-tile{width:38px;height:38px;border-radius:10px;background:#fff;border:1px solid var(--border);display:grid;place-items:center;color:#111;flex-shrink:0;box-shadow:0 1px 2px rgba(16,24,40,.06)}
.plogo-tile svg{width:23px;height:23px;display:block}
.plogo-tile.sm{width:22px;height:22px;border-radius:6px}.plogo-tile.sm svg{width:14px;height:14px}
.acct-row{display:flex;align-items:center;gap:13px;padding:13px 16px;border-bottom:1px solid var(--border)}
.acct-row:last-child{border-bottom:none}
.acct-info{flex:1;min-width:0}
.acct-nm{font-size:13.5px;font-weight:650;display:flex;align-items:center;gap:8px}
.acct-badge{font-size:10px;font-weight:600;padding:2px 8px;border-radius:20px;white-space:nowrap}
.acct-badge.ok{color:var(--green);background:var(--green-subtle)}.acct-badge.off{color:var(--text-3);background:var(--surface-2)}
.acct-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}
.atag{font-size:10.5px;color:var(--text-2);background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:2px 8px;font-family:var(--mono)}
.atag.mut{color:var(--text-3)}
.acct-row .btn.sm{height:30px;padding:0 13px;font-size:12px}
.conn-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.conn-card{display:flex;align-items:center;gap:12px;border:1px solid var(--border);border-radius:12px;background:var(--bg);padding:13px 14px;box-shadow:0 1px 2px rgba(16,24,40,.04);transition:transform .14s cubic-bezier(.22,.61,.36,1),border-color .14s,box-shadow .14s}
.conn-card:hover{transform:translateY(-2px);border-color:var(--border-strong);box-shadow:0 6px 18px rgba(16,24,40,.08)}
.conn-info{flex:1;min-width:0}
.conn-nm{font-size:13px;font-weight:650}
.conn-d{font-size:11.5px;color:var(--text-3);margin-top:3px;line-height:1.45}
.conn-add{width:28px;height:28px;border-radius:8px;border:1px solid var(--border-strong);background:var(--bg);color:var(--text-2);cursor:pointer;flex-shrink:0;font-size:17px;display:grid;place-items:center;transition:border-color .12s,color .12s,background .12s}
.conn-add:hover{border-color:var(--accent);color:#fff;background:var(--accent)}
.conn-tile{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;flex-shrink:0;font-weight:700;font-size:13px;color:#fff;letter-spacing:-.02em}
.pj-grouphd{display:flex;align-items:center;gap:9px;margin:2px 0 13px}
.pj-gh-t{font-size:13.5px;font-weight:650}
.pj-gh-n{font-size:11px;font-weight:600;color:var(--text-2);background:var(--surface-2);border-radius:20px;padding:1px 9px;font-variant-numeric:tabular-nums}
.pj-gh-d{margin-left:auto;font-size:11.5px;color:var(--text-3)}
/* settings modal (Manus-style: left sub-nav + right panes) */
.set-mask{position:fixed;inset:0;background:rgba(16,24,40,.42);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);z-index:200;display:none;align-items:center;justify-content:center;padding:24px}
.set-mask.open{display:flex;animation:fadeIn .18s ease}
.set-modal{width:min(920px,95vw);height:min(640px,88vh);background:var(--bg);border:1px solid var(--border);border-radius:16px;box-shadow:0 36px 90px rgba(16,24,40,.36);display:grid;grid-template-columns:240px 1fr;overflow:hidden;position:relative;animation:setIn .24s cubic-bezier(.22,.61,.36,1)}
@keyframes setIn{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
.set-close{position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:8px;border:none;background:none;color:var(--text-3);cursor:pointer;font-size:15px;display:grid;place-items:center;z-index:2}
.set-close:hover{background:var(--surface-2);color:var(--text)}
.set-side{background:var(--surface);border-right:1px solid var(--border);padding:18px 13px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}
.set-acct{display:flex;align-items:center;gap:11px;padding:4px 8px 14px;margin-bottom:4px;border-bottom:1px solid var(--border)}
.set-acct .av{width:38px;height:38px;border-radius:50%;background:#f0731f;color:#fff;display:grid;place-items:center;font-weight:600;font-size:15px;flex-shrink:0}
.set-acct .nm{font-size:13.5px;font-weight:650}.set-acct .pl{font-size:11.5px;color:var(--text-3);margin-top:1px}
.set-sec{font-size:10.5px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;padding:13px 8px 5px}
.set-link{display:flex;align-items:center;gap:10px;width:100%;padding:8px 9px;border-radius:8px;border:none;background:none;color:var(--text-2);cursor:pointer;font-family:var(--font);font-size:13px;font-weight:500;text-align:left;text-decoration:none}
.set-link:hover{background:var(--surface-2);color:var(--text)}
.set-link.on{background:var(--accent-subtle);color:var(--accent);font-weight:600}
.set-link .ai{width:17px;height:17px;display:grid;place-items:center;flex-shrink:0}
#setHelp{margin-top:auto;color:var(--text-3)}
.set-main{overflow-y:auto;padding:30px 36px 36px}
.set-main h2{font-size:20px;font-weight:680;letter-spacing:-.02em;margin-bottom:18px}
.set-pane{display:none}.set-pane.on{display:block;animation:fadeIn .2s ease}
.set-grp{font-size:13px;font-weight:650;margin:24px 0 10px;color:var(--text)}
.set-grp:first-of-type{margin-top:0}
.set-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid var(--border)}
.set-row:last-child{border-bottom:none}
.set-row .rl{font-size:13px;font-weight:550}.set-row .rh{font-size:11.5px;color:var(--text-3);margin-top:3px;max-width:440px;line-height:1.5}
.theme-opts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:440px;margin-bottom:6px}
.theme-opt{border:1px solid var(--border-strong);border-radius:11px;padding:15px 0;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;font-size:12.5px;font-weight:550;color:var(--text-2);background:var(--bg);transition:border-color .12s,box-shadow .12s,color .12s}
.theme-opt:hover{border-color:var(--text-3)}
.theme-opt.on{border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}
.set-main .fcard,.set-main .conn-grid{margin-top:0}
@media(max-width:680px){.set-modal{grid-template-columns:1fr}.set-side{display:none}}
@media(max-width:760px){.conn-grid{grid-template-columns:1fr}}
/* account menu */
.acctctl{position:relative}
.acctctl .av{border:none;cursor:pointer;font-family:var(--font)}
.acctctl .av.out{background:var(--surface-2);color:var(--text-3);border:1px solid var(--border-strong);font-weight:500}
.acct-menu{position:absolute;left:0;bottom:calc(100% + 8px);width:240px;background:var(--bg);border:1px solid var(--border);border-radius:12px;box-shadow:0 14px 38px rgba(16,24,40,.18);padding:6px;display:none;z-index:80}
.app.nav-collapsed .acct-menu{left:46px;bottom:0}
.acctctl.open .acct-menu{display:block}
.am-head{display:flex;align-items:center;gap:10px;padding:8px 9px 4px}
.am-av{width:34px;height:34px;border-radius:50%;background:#f0731f;color:#fff;display:grid;place-items:center;font-weight:600;font-size:14px;flex-shrink:0}
.am-name{font-size:13px;font-weight:600}.am-mail{font-size:11px;color:var(--text-3)}
.am-plan{font-size:10px;color:var(--accent);background:var(--accent-subtle);font-weight:600;border-radius:6px;padding:3px 8px;margin:2px 9px 6px;display:inline-block}
.am-sep{height:1px;background:var(--border);margin:5px 4px}
.am-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:none;background:none;border-radius:7px;font-family:var(--font);font-size:13px;color:var(--text);cursor:pointer;text-align:left;text-decoration:none}
.am-item:hover{background:var(--surface-2)}
.am-item .ai{width:16px;text-align:center;color:var(--text-3);font-size:13px;flex-shrink:0}
.am-item.danger{color:var(--red)}.am-item.danger .ai{color:var(--red)}
.am-out{padding:6px 6px 8px}.am-out .si-h{font-size:12px;color:var(--text-2);padding:8px 9px 11px;line-height:1.55}
/* toast + universal press feedback */
.toasts{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);display:flex;flex-direction:column;gap:8px;z-index:200;align-items:center;pointer-events:none}
.toast{background:#1d1f23;color:#fff;font-size:12.5px;font-weight:500;padding:9px 15px;border-radius:9px;box-shadow:0 10px 30px rgba(0,0,0,.24);display:flex;align-items:center;gap:8px;opacity:0;transform:translateY(8px);transition:opacity .2s,transform .2s;max-width:460px}
.toast.show{opacity:1;transform:translateY(0)}
.toast .tk{color:#34d399;font-weight:700}
.btn,.mini,.cbtn,.lang-btn,.panel-toggle,.send,.am-item,.seg button,.tabs button,.scene,.card,.vcard,.dqrow{transition:transform .08s ease,background .12s,border-color .12s,box-shadow .12s,opacity .12s}
.btn:active,.mini:active,.cbtn:active,.lang-btn:active,.panel-toggle:active,.send:active,.am-item:active,.seg button:active,.tabs button:active,.scene:active,.vcard:active,.dqrow:active{transform:scale(.975)}
.send:active{transform:scale(.92)}
/* ===== motion AI-native polish ===== */
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes viewIn{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
@keyframes cardRise{from{opacity:0;transform:translateY(11px)}to{opacity:1;transform:none}}
body:not(.demo-on) .screen.on .screen-in{animation:fadeIn .34s ease both}
body:not(.demo-on) .welcome-view{animation:viewIn .46s cubic-bezier(.22,.61,.36,1) both}
body:not(.demo-on) .screen.on :is(.ck-sum,.acct-grid,.pj-grid,.dir-grid,.vgrid)>*{animation:cardRise .5s cubic-bezier(.22,.61,.36,1) both}
body:not(.demo-on) .screen.on :is(.ck-sum,.acct-grid,.pj-grid,.dir-grid,.vgrid)>:nth-child(2){animation-delay:.05s}
body:not(.demo-on) .screen.on :is(.ck-sum,.acct-grid,.pj-grid,.dir-grid,.vgrid)>:nth-child(3){animation-delay:.1s}
body:not(.demo-on) .screen.on :is(.ck-sum,.acct-grid,.pj-grid,.dir-grid,.vgrid)>:nth-child(4){animation-delay:.15s}
body:not(.demo-on) .screen.on :is(.ck-sum,.acct-grid,.pj-grid,.dir-grid,.vgrid)>:nth-child(5){animation-delay:.2s}
body:not(.demo-on) .screen.on :is(.ck-sum,.acct-grid,.pj-grid,.dir-grid,.vgrid)>:nth-child(6){animation-delay:.25s}
body:not(.demo-on) .screen.on :is(.ck-sum,.acct-grid,.pj-grid,.dir-grid,.vgrid)>:nth-child(n+7){animation-delay:.3s}
.acct-card,.pj-card,.dir-card,.scene{transition:transform .15s cubic-bezier(.22,.61,.36,1),box-shadow .15s,border-color .15s}
.acct-card:hover,.pj-card:hover,.dir-card:hover,.scene:hover{transform:translateY(-3px)}
.scene:hover,.dir-card:hover,.pj-card:hover{box-shadow:0 8px 22px rgba(16,24,40,.10)}
.ck-stat{transition:transform .15s ease,box-shadow .15s ease}
.ck-stat:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(16,24,40,.08)}
.cl-item{transition:background .13s,color .13s}
.rail .ri{transition:background .13s,color .13s,transform .1s}.rail .ri:active{transform:scale(.9)}
.chipf{transition:background .14s,border-color .14s,color .14s,transform .1s}.chipf:active{transform:scale(.95)}
.toast{will-change:transform,opacity}
@media(prefers-reduced-motion:reduce){body .screen.on .screen-in,body .welcome-view,body .screen.on :is(.ck-sum,.acct-grid,.pj-grid,.dir-grid,.vgrid)>*{animation:none}}
button{cursor:pointer}
/* ===== guided demo (roadshow / interview autoplay) ===== */
.d-off{display:none!important}
.d-in{animation:dIn .45s cubic-bezier(.22,.61,.36,1) both}
@keyframes dIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.demo-pill{position:fixed;left:18px;bottom:18px;z-index:120;display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 14px;border-radius:20px;border:1px solid var(--border-strong);background:var(--bg);color:var(--text);font-size:12.5px;font-weight:600;cursor:pointer;box-shadow:0 6px 20px rgba(16,24,40,.14)}
.demo-pill:hover{border-color:var(--accent);color:var(--accent)}
.tb-demo{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 11px;border:1px solid var(--border-strong);border-radius:8px;background:var(--bg);color:var(--text-2);cursor:pointer;font-family:var(--font);font-size:12.5px;font-weight:600;white-space:nowrap;flex-shrink:0}
.tb-demo:hover{border-color:var(--accent);color:var(--accent)}
.tb-demo svg{color:var(--accent)}
@media(max-width:600px){.tb-demo span{display:none}.tb-demo{padding:0 9px}}
.tb-star{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border:1px solid var(--border-strong);border-radius:20px;background:var(--bg);color:var(--text-2);cursor:pointer;font-family:var(--font);font-size:12.5px;font-weight:550;white-space:nowrap;text-decoration:none;flex-shrink:0;transition:border-color .12s,color .12s,background .12s}
.tb-star:hover{border-color:var(--text-3);color:var(--text);background:var(--surface-2)}
.tb-star .gh-ic{color:var(--text-2)}
.tb-star .star-ic{color:#e3a72c}
@media(max-width:600px){.tb-star span{display:none}.tb-star{padding:0 9px}}
.projrow{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:6px}
.projcard{border:1px solid var(--border);border-radius:11px;background:var(--bg);padding:13px 14px;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.projcard:hover{border-color:var(--border-strong)}
.projcard.on{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}
.projcard .pt{font-size:13.5px;font-weight:650}
.projcard .pm{font-size:11.5px;color:var(--text-3);margin:4px 0 9px;line-height:1.4}
.projcard .ps{font-size:10px;font-weight:700;padding:2px 8px;border-radius:20px;background:var(--surface-2);color:var(--text-2)}
.projcard .ps.live{background:var(--green-subtle);color:var(--green)}
.projcard .ps.draft{background:var(--amber-subtle);color:var(--amber)}
@media(max-width:760px){.projrow{grid-template-columns:1fr}}
/* operations cockpit */
.ck-in{max-width:1080px}
.ck-sum{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:20px}
.ck-stat{border:1px solid var(--border);border-radius:12px;background:var(--bg);padding:13px 15px;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.ck-stat .k{font-size:11px;color:var(--text-3);font-weight:500}
.ck-stat .v{font-size:21px;font-weight:680;letter-spacing:-.02em;margin-top:4px}
.ck-stat .v .cap{font-size:12px;color:var(--text-3);font-weight:500}
.ck-stat .d{font-size:10.5px;font-weight:500;margin-top:4px;color:var(--text-3)}
.ck-stat .d.up{color:var(--green)}.ck-stat .d.amber{color:var(--amber)}
.ck-stat .pace{height:4px;border-radius:3px;background:var(--surface-2);margin-top:9px;overflow:hidden}
.ck-stat .pace i{display:block;height:100%;background:var(--amber);border-radius:3px}
.ck-stat.hot{border-color:#f0c98d;background:var(--amber-subtle)}
.ck-grid{display:grid;grid-template-columns:1fr 312px;gap:16px;align-items:start}
.ck-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px}
.ck-filters{display:flex;gap:6px}
.chipf{font-size:11.5px;font-weight:550;padding:4px 12px;border-radius:18px;border:1px solid var(--border-strong);background:var(--bg);color:var(--text-2);cursor:pointer;font-family:var(--font)}
.chipf:hover{border-color:var(--accent);color:var(--accent)}
.chipf.on{background:var(--accent);border-color:var(--accent);color:#fff}
.ck-table{border:1px solid var(--border);border-radius:12px;overflow:hidden}
.ck-table td{padding:11px 12px;vertical-align:middle}
.ck-table .cap{color:var(--text-3)}.ck-table .reg{color:var(--text-3);font-size:11px}
.pf{font-size:9.5px;font-weight:700;padding:2px 7px;border-radius:5px;letter-spacing:.02em}
.pf.meta{background:#e7f0fe;color:#1877f2}.pf.tt{background:#eceef2;color:#111}.pf.gg{background:#e8f0ea;color:#137333}
.spk{display:block}
.stp{font-size:10px;font-weight:700;padding:3px 9px;border-radius:20px;white-space:nowrap}
.stp.ok{background:var(--green-subtle);color:var(--green)}.stp.watch{background:var(--amber-subtle);color:var(--amber)}.stp.risk{background:var(--red-subtle);color:var(--red)}
.ck-panel{border:1px solid var(--border);border-radius:12px;background:var(--bg);padding:13px 14px;margin-bottom:12px;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.ck-ph{font-size:10.5px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:9px}
.ck-alert{display:flex;gap:9px;font-size:12px;line-height:1.45;color:var(--text-2);padding:8px 0;border-bottom:1px solid var(--border)}
.ck-alert:last-child{border-bottom:none}
.ck-alert .dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;margin-top:5px}
.ck-dec{display:flex;align-items:center;gap:9px;padding:8px 0;font-size:12px;cursor:pointer;border-bottom:1px solid var(--border)}
.ck-dec:last-child{border-bottom:none}.ck-dec:hover{opacity:.65}
.ck-dec .bdg{flex-shrink:0}.ck-dec .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.ck-dec .dim{color:var(--text-3);font-size:11px}
:root[data-theme="dark"] .pf.meta{background:#16263f;color:#6ea8ff}:root[data-theme="dark"] .pf.tt{background:#2b313b;color:#e8eaef}:root[data-theme="dark"] .pf.gg{background:#16301f;color:#5fd08a}
@media(max-width:980px){.ck-sum{grid-template-columns:repeat(3,1fr)}.ck-grid{grid-template-columns:1fr}}
@media(max-width:600px){.ck-sum{grid-template-columns:repeat(2,1fr)}}
.ck-alloc{border:1px solid var(--border);border-radius:12px;background:var(--bg);padding:14px 16px;margin-bottom:18px;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.ck-alloc-h{display:flex;align-items:center;justify-content:space-between;font-size:12.5px;font-weight:600;margin-bottom:11px}
.ck-alloc-h .dim{color:var(--text-3);font-weight:500}
.ck-bar2{display:flex;height:10px;border-radius:6px;overflow:hidden;gap:2px}
.ck-bar2 i{display:block}.ck-bar2 .meta{background:var(--accent)}.ck-bar2 .tt{background:var(--accent-2)}.ck-bar2 .gg{background:#c7d9f7}
.ck-leg{display:flex;flex-wrap:wrap;gap:16px;margin-top:11px;font-size:11.5px;color:var(--text-2)}
.ck-leg .sw{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:6px;vertical-align:middle}
.ck-leg .sw.meta{background:var(--accent)}.ck-leg .sw.tt{background:var(--accent-2)}.ck-leg .sw.gg{background:#c7d9f7}
.ck-leg{gap:20px;margin-top:13px;font-size:12px}
.ck-leg-it{display:inline-flex;align-items:center;gap:7px;font-weight:500;color:var(--text-2)}
.ck-leg-it .plogo{width:16px;height:16px;color:var(--text);flex-shrink:0}
.ck-leg-it b{font-weight:650;color:var(--text)}
.ck-leg-it .pct{font-style:normal;color:var(--text-3);font-variant-numeric:tabular-nums}
.ck-bar2{height:12px}.ck-bar2 .meta{background:linear-gradient(90deg,#3b78ff,var(--accent))}
.ac-pf{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;color:var(--text-2)}
.ac-pf .plogo{width:14px;height:14px;color:var(--text);flex-shrink:0}
.acct-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:11px}
.acct-card{border:1px solid var(--border);border-radius:12px;background:var(--bg);padding:14px;box-shadow:0 1px 2px rgba(16,24,40,.04);transition:border-color .15s,box-shadow .15s;cursor:pointer}
.acct-card:hover{border-color:var(--border-strong);box-shadow:0 3px 10px rgba(16,24,40,.07)}
.ac-h{display:flex;align-items:center;justify-content:space-between;gap:8px}
.ac-nm{font-size:13.5px;font-weight:650}
.ac-m{display:flex;align-items:center;gap:7px;margin-top:7px}.ac-m .reg{color:var(--text-3);font-size:11px}
.ac-sp{display:flex;align-items:baseline;gap:6px;margin-top:13px}
.ac-sp .big{font-size:20px;font-weight:680;letter-spacing:-.02em}.ac-sp .cap{font-size:12px;color:var(--text-3)}
.ac-sp .spk{margin-left:auto;align-self:center}
.ac-pace{height:4px;border-radius:3px;background:var(--surface-2);margin-top:9px;overflow:hidden}
.ac-pace i{display:block;height:100%;background:var(--accent);border-radius:3px}
.ac-k{display:flex;gap:18px;margin-top:11px;font-size:12px;color:var(--text-2)}
.ac-k b{color:var(--text);font-weight:650}.ac-k b.g{color:var(--green)}.ac-k b.r{color:var(--red)}
@media(max-width:980px){.acct-grid{grid-template-columns:1fr}}
.demo-cap{position:fixed;left:50%;bottom:78px;transform:translateX(-50%);z-index:130;max-width:min(700px,92vw);background:rgba(18,22,30,.93);color:#fff;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:13px 20px;border-radius:13px;font-size:14.5px;line-height:1.55;text-align:center;box-shadow:0 14px 44px rgba(0,0,0,.34);opacity:0;transition:opacity .35s ease;pointer-events:none}
.demo-cap.show{opacity:1}
.demo-cap .act{display:block;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#7fb0ff;margin-bottom:4px}
.demo-ctl{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:131;display:flex;align-items:center;gap:5px;background:var(--bg);border:1px solid var(--border);border-radius:14px;padding:6px 8px;box-shadow:0 10px 34px rgba(16,24,40,.18)}
.demo-ctl button{min-width:30px;height:30px;padding:0 4px;border-radius:8px;border:none;background:none;color:var(--text-2);cursor:pointer;display:grid;place-items:center;font-size:12px;font-family:var(--font)}
.demo-ctl button:hover{background:var(--surface-2);color:var(--text)}
.demo-ctl .pp{background:var(--accent);color:#fff}.demo-ctl .pp:hover{background:var(--accent-hover)}
.demo-prog{display:flex;gap:5px;align-items:center;padding:0 9px}
.demo-prog i{width:7px;height:7px;border-radius:50%;background:var(--border-strong);cursor:pointer;transition:background .2s,transform .2s}
.demo-prog i.on{background:var(--accent);transform:scale(1.3)}
.demo-prog i.done{background:var(--accent-2)}
.type-cursor::after{content:"▋";color:var(--accent);animation:dblink 1s step-end infinite;font-weight:400}
@keyframes dblink{50%{opacity:0}}
.demo-end{border:1px solid var(--accent);border-radius:14px;background:linear-gradient(155deg,var(--accent-subtle),var(--bg) 62%);padding:22px}
.demo-end h3{font-size:18px;font-weight:680;letter-spacing:-.02em;margin-bottom:7px}
.demo-end .ds{font-size:13px;color:var(--text-2);line-height:1.65;margin-bottom:14px}
.demo-end .dl{display:flex;flex-wrap:wrap;gap:8px}
.demo-end .dl span{font-size:11.5px;font-weight:600;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:5px 11px}
.demo-end .dl .gh{color:var(--accent);border-color:var(--accent)}
/* demo v2 — roadshow pacing & effects */
.demo-think .dt-body{display:inline-flex;align-items:center;gap:11px;background:var(--bg);border:1px solid var(--border);border-radius:22px;padding:9px 16px 9px 14px;position:relative;overflow:hidden;box-shadow:0 1px 3px rgba(16,24,40,.05)}
.demo-think .dt-body::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 25%,var(--accent-subtle) 50%,transparent 75%);transform:translateX(-100%);animation:dtSweep 1.6s ease-in-out infinite}
@keyframes dtSweep{to{transform:translateX(100%)}}
.demo-think .dt-dots{display:inline-flex;gap:4px;position:relative;z-index:1}
.demo-think .dt-dots i{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:dtDot 1.1s ease-in-out infinite}
.demo-think .dt-dots i:nth-child(2){animation-delay:.16s}.demo-think .dt-dots i:nth-child(3){animation-delay:.32s}
@keyframes dtDot{0%,100%{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}
.demo-think .dt-tx{position:relative;z-index:1;font-size:13px;font-weight:550;color:var(--text-2);transition:opacity .22s ease}
.demo-think .dt-tx.fade{opacity:0}
.demo-spot{position:relative;z-index:6;border-radius:13px;animation:dSpot 1.9s ease-in-out infinite}
@keyframes dSpot{0%,100%{box-shadow:0 0 0 2px var(--accent),0 0 0 8px var(--accent-subtle),0 20px 54px rgba(0,82,217,.20)}50%{box-shadow:0 0 0 2px var(--accent),0 0 0 12px transparent,0 14px 40px rgba(0,82,217,.10)}}
.d-pop{animation:dPop .52s cubic-bezier(.22,.61,.36,1) both}
@keyframes dPop{from{opacity:0;transform:translateY(9px) scale(.975)}to{opacity:1;transform:none}}
.demo-press{animation:dPress .55s ease}
@keyframes dPress{0%{box-shadow:0 0 0 0 var(--accent-subtle)}40%{box-shadow:0 0 0 7px var(--accent-subtle);transform:scale(.96)}100%{box-shadow:0 0 0 0 transparent;transform:none}}
body.demo-on::before{content:"";position:fixed;left:0;right:0;bottom:0;height:210px;pointer-events:none;z-index:125;background:linear-gradient(to top,rgba(10,14,20,.30),transparent);opacity:0;transition:opacity .5s ease}
body.demo-on.demo-cap-on::before{opacity:1}
.demo-cap .act{display:flex;align-items:center;justify-content:center;gap:7px}
.demo-cap .act::before{content:"";width:5px;height:5px;border-radius:50%;background:#7fb0ff;box-shadow:0 0 0 0 rgba(127,176,255,.6);animation:capPip 1.8s ease-out infinite}
@keyframes capPip{0%{box-shadow:0 0 0 0 rgba(127,176,255,.55)}70%{box-shadow:0 0 0 7px rgba(127,176,255,0)}100%{box-shadow:0 0 0 0 rgba(127,176,255,0)}}
.demo-chap{font-size:11px;font-weight:650;color:var(--text-3);padding:0 10px 0 4px;white-space:nowrap;font-variant-numeric:tabular-nums}
.demo-chap b{color:var(--text-2);font-weight:650}
/* approval gate inline guardrails */
.gate .bhead .ic{background:var(--accent-subtle);color:var(--accent)}
.grows{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);border-bottom:1px solid var(--border)}
.grow{display:flex;align-items:center;gap:12px;padding:11px 15px;background:var(--bg)}
.grow .gl{flex:1;min-width:0}
.grow .gl>span:first-child{font-size:12.5px;font-weight:550}
.grow .gh{font-size:10.5px;color:var(--text-3);margin-top:2px}
.grow .gc{display:flex;align-items:center;gap:7px;flex-shrink:0}
.gnum{width:74px;text-align:right;font-family:var(--mono);font-size:12.5px;padding:6px 9px}
.grow .gu{font-size:11px;color:var(--text-3)}
.gfoot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 15px;flex-wrap:wrap}
.gnote{font-size:11px;color:var(--text-2);display:flex;align-items:center;gap:6px}
.gnote b{color:var(--accent);font-weight:600}
.gate.flash{animation:gateFlash 1.3s ease-out}
@keyframes gateFlash{0%{box-shadow:0 0 0 0 rgba(0,82,217,.30)}100%{box-shadow:0 0 0 9px rgba(0,82,217,0)}}
.kpis-4{grid-template-columns:repeat(4,1fr)}
/* audit = hero of the decision moment */
.rrail .rp-audit{order:-1}
@media(max-width:720px){.grows{grid-template-columns:1fr}.kpis-4{grid-template-columns:repeat(2,1fr)}}

/* ── Real-run replay: chooser + step reveal + completion bar (Demo button) ── */
.rp-hide{opacity:0;transform:translateY(8px)}
.rp-in{animation:rpIn .42s cubic-bezier(.22,.61,.36,1) both}
@keyframes rpIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.rp-back{position:fixed;inset:0;z-index:120;background:rgba(15,18,24,.5);backdrop-filter:blur(3px);display:grid;place-items:center;padding:24px;animation:rpFade .18s ease}
@keyframes rpFade{from{opacity:0}to{opacity:1}}
.rp-modal{width:100%;max-width:540px;background:var(--bg);border:1px solid var(--border-strong);border-radius:14px;box-shadow:0 24px 64px rgba(0,0,0,.28);overflow:hidden}
.rp-mhead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px 14px}
.rp-mt{font-size:16px;font-weight:700;letter-spacing:-.01em}
.rp-ms{font-size:12.5px;color:var(--text-2);margin-top:4px;line-height:1.5}
.rp-x{border:none;background:none;color:var(--text-3);font-size:15px;cursor:pointer;padding:4px;border-radius:6px}
.rp-x:hover{background:var(--surface-2);color:var(--text)}
.rp-grid{display:flex;flex-direction:column;gap:8px;padding:0 16px 18px}
.rp-card{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:1px solid var(--border);border-radius:10px;background:var(--surface);padding:13px 14px;cursor:pointer;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease;font-family:var(--font)}
.rp-card:hover{border-color:var(--accent);transform:translateY(-1px);box-shadow:0 6px 20px rgba(0,82,217,.1)}
.rp-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.rp-ic{flex:none;width:34px;height:34px;border-radius:9px;background:var(--accent-subtle);color:var(--accent);display:grid;place-items:center}
.rp-cmain{flex:1;min-width:0}
.rp-cn{display:block;font-size:13.5px;font-weight:650;color:var(--text)}
.rp-cs{display:block;font-size:11.5px;color:var(--text-2);margin-top:2px}
.rp-go{flex:none;font-size:12px;font-weight:650;color:var(--accent)}
.rp-bar{position:sticky;bottom:0;margin-top:16px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--bg);border:1px solid var(--border-strong);border-radius:11px;padding:11px 13px;box-shadow:0 -2px 12px rgba(0,0,0,.04)}
.rp-st{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:650;color:var(--text)}
.rp-ok{width:18px;height:18px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font-size:11px}
.rp-ok svg{display:block}
/* run status icons (run.js) — own SVG set, no emoji */
@keyframes riSpin{to{transform:rotate(360deg)}}
.ri{vertical-align:-2px}
.ri-spin{display:inline-block;animation:riSpin .9s linear infinite}
.run-status{display:inline-flex;align-items:center;gap:8px;color:var(--text-2)}
.run-banner{display:inline-flex;align-items:center;gap:8px;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:5px 7px 5px 13px;font-size:12.5px;color:var(--text-2)}
.run-banner .ri{flex-shrink:0}
.run-banner .rb-go{border:none;background:var(--accent);color:#fff;font-family:var(--font);font-size:12px;font-weight:600;padding:5px 13px;border-radius:999px;cursor:pointer;transition:filter .15s}
.run-banner .rb-go:hover{filter:brightness(1.1)}
.rp-acts{display:flex;gap:7px}
.rp-btn{border:1px solid var(--border-strong);background:var(--bg);color:var(--text);font-family:var(--font);font-size:12.5px;font-weight:600;padding:7px 13px;border-radius:8px;cursor:pointer;transition:all .15s ease}
.rp-btn:hover{border-color:var(--accent);color:var(--accent)}
.rp-btn.ink{background:var(--accent);border-color:var(--accent);color:#fff}
.rp-btn.ink:hover{background:var(--accent-hover);color:#fff}
@media(prefers-reduced-motion:reduce){.rp-in{animation:none}.rp-hide{opacity:1;transform:none}.rp-back{animation:none}}

/* ── account auth modal + LLM config (web/auth.js) ── */
.auth-modal{position:relative;padding:26px 26px 22px;width:min(400px,calc(100vw - 48px))}
.auth-x{position:absolute;top:12px;right:12px;border:none;background:none;color:var(--text-3);font-size:14px;line-height:1;cursor:pointer;padding:7px;border-radius:8px}
.auth-x:hover{background:var(--surface-2);color:var(--text)}
.auth-title{font-size:19px;font-weight:700;text-align:center;letter-spacing:-.01em;margin:2px 0 16px}
.auth-sub{font-size:12.5px;color:var(--text-2);text-align:center;line-height:1.6;margin:-10px 0 16px}
.auth-tabs{display:flex;border:1px solid var(--border);background:var(--surface-2);padding:3px;border-radius:999px;margin:0 0 18px}
.auth-tabs button{flex:1;border:none;background:none;padding:8px;border-radius:999px;font-family:var(--font);font-size:13px;font-weight:600;color:var(--text-2);cursor:pointer;transition:background .15s,color .15s}
.auth-tabs button.on{background:var(--text);color:var(--bg)}
.auth-f{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.auth-f>span{font-size:12.5px;font-weight:600;color:var(--text-2)}
.auth-f input{width:100%;padding:11px 13px;border:1px solid transparent;border-radius:10px;background:var(--surface-2);color:var(--text);font:inherit;font-size:13.5px;outline:none;transition:border-color .15s,background .15s,box-shadow .15s}
.auth-f input:focus{border-color:var(--accent);background:var(--bg);box-shadow:0 0 0 3px var(--accent-subtle)}
.auth-pw{position:relative;display:block}
.auth-pw input{padding-right:58px}
.auth-show{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:none;background:none;color:var(--text-3);font-family:var(--font);font-size:12px;font-weight:600;cursor:pointer;padding:6px 9px;border-radius:6px}
.auth-show:hover{color:var(--text)}
.auth-row{display:flex;justify-content:flex-end;margin:-4px 0 4px}
.auth-link{border:none;background:none;color:var(--text-2);font-family:var(--font);font-size:12.5px;cursor:pointer;padding:2px 0}
.auth-link:hover{color:var(--accent)}
.auth-alt{display:flex;flex-direction:column;gap:9px}
.auth-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--border-strong);background:var(--bg);color:var(--text);font-family:var(--font);font-size:13px;font-weight:600;height:40px;padding:0 12px;border-radius:10px;cursor:pointer;transition:background .15s,border-color .15s}
.auth-btn:hover{background:var(--surface-2)}
.auth-btn:disabled{opacity:.6;cursor:default}
.auth-gi{font-weight:800;font-size:15px;line-height:1}
.auth-div{display:flex;align-items:center;gap:10px;color:var(--text-3);font-size:12px;margin:14px 0}
.auth-div::before,.auth-div::after{content:"";flex:1;height:1px;background:var(--border)}
.auth-go{width:100%;justify-content:center;align-items:center;display:flex;height:42px;border-radius:999px;font-size:14px;margin-top:2px}
.auth-go:disabled{opacity:.65;cursor:default}
.auth-err{color:var(--red);font-size:12.5px;min-height:16px;margin:0 0 6px}
.auth-done{text-align:center;padding:8px 2px 2px}
.adn-ic{width:46px;height:46px;border-radius:50%;background:var(--accent-subtle);color:var(--accent);display:grid;place-items:center;margin:4px auto 14px}
.adn-t{font-size:16px;font-weight:700}
.adn-d{font-size:13px;color:var(--text-2);line-height:1.65;margin:8px 0 18px}
.am-status{display:flex;align-items:flex-start;gap:9px;padding:10px 10px 9px}
.am-dot{width:8px;height:8px;border-radius:50%;background:var(--green,#1a7f37);margin-top:5px;flex-shrink:0}
.am-dot.off{background:var(--text-3)}
.am-status .am-mail{margin-top:2px;font-size:12px}
.auth-chips{display:flex;gap:6px;flex-wrap:wrap;margin:-6px 0 13px}
.auth-chip{border:1px solid var(--border-strong);background:var(--bg);border-radius:999px;padding:5px 12px;font-size:12px;font-weight:600;color:var(--text-2);cursor:pointer;font-family:var(--font);transition:border-color .15s,color .15s,background .15s}
.auth-chip:hover{border-color:var(--accent);color:var(--accent)}
.auth-chip.on{border-color:var(--accent);color:var(--accent);background:var(--accent-subtle)}
/* LLM 接口 pane */
.llm-card{padding:16px 18px 14px}
.llm-card .auth-f{margin-bottom:15px}
.llm-keyurl{margin-left:10px;font-weight:500;font-size:11.5px;color:var(--accent);text-decoration:none}
.llm-keyurl:hover{text-decoration:underline}
.llm-modelrow{display:flex;gap:8px;align-items:stretch}
.llm-modelrow .btn{flex-shrink:0;height:auto}
.llm-sel{flex:1;min-width:0;padding:10px 12px;border:1px solid transparent;border-radius:10px;background:var(--surface-2);color:var(--text);font:inherit;font-size:13.5px;outline:none;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}
.llm-sel:focus{border-color:var(--accent);background:var(--bg);box-shadow:0 0 0 3px var(--accent-subtle)}
.llm-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:2px;flex-wrap:wrap}
.llm-status{font-size:12.5px;color:var(--text-3)}
.llm-status.ok{color:var(--green,#1a7f37);font-weight:600}
.llm-status.err{color:var(--red)}
.auth-note{font-size:11.5px;color:var(--text-3);margin-top:14px;line-height:1.5;text-align:center}
.am-stat{margin-left:auto;font-size:10.5px;color:var(--text-3);font-weight:500}
.auth-toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:200;background:var(--text);color:var(--bg);font-size:13px;font-weight:600;padding:10px 18px;border-radius:10px;box-shadow:0 8px 28px rgba(0,0,0,.25);animation:rpFade .2s ease}
