:root{--bg:#fafaf8;--bg-elev:#fff;--code-bg:#f5f5f4;--fg:#0a0e1a;--fg-2:#1f2433;--fg-mute:#5a6072;--fg-dim:#8a91a3;--line:#e5e7eb;--line-2:#d9dce3;--accent:#1e2d5c;--accent-2:#2563eb;--tint-blue:#eef2ff;--tint-green:#ecfdf5;--tint-amber:#fef7e6;--stable-bg:#d1fae5;--stable-fg:#065f46;--beta-bg:#fef3c7;--beta-fg:#92400e;--planned-bg:#eef0f4;--planned-fg:#4b5563;--serif:"Pretendard Variable", Pretendard, -apple-system, system-ui, sans-serif;--sans:"Inter", "Pretendard Variable", system-ui, sans-serif;--mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--maxw:1160px}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--fg);font-family:var(--serif);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;padding:0}body{font-size:16px;font-weight:400;line-height:1.7}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}::selection{color:#0a0e1a;background:#dbeafe}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px}@media (width<=768px){.wrap{padding:0 20px}}header.site{z-index:50;-webkit-backdrop-filter:saturate(160%)blur(10px);background:#fafaf8c7;border-bottom:1px solid #0000;transition:border-color .2s;position:sticky;top:0}header.site.scrolled{border-bottom-color:var(--line)}.nav{justify-content:space-between;align-items:center;height:64px;display:flex}.brand{font-family:var(--sans);letter-spacing:-.015em;color:var(--fg);align-items:center;gap:8px;font-size:17px;font-weight:600;display:inline-flex}.brand .mark{width:26px;height:26px;color:var(--fg);flex-shrink:0;place-items:center;display:inline-grid}.brand .mark svg{width:100%;height:100%;display:block}.brand .tld{color:var(--fg-dim);font-weight:500}nav.primary{align-items:center;gap:28px;display:flex}nav.primary a{color:var(--fg-2);font-size:14px;font-family:var(--sans);font-weight:500;transition:color .15s}nav.primary a:hover{color:var(--accent)}.cta-bar{align-items:center;gap:10px;display:flex}.btn{font-family:var(--sans);white-space:nowrap;border-radius:6px;align-items:center;gap:8px;padding:9px 14px;font-size:14px;font-weight:500;line-height:1;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.btn-primary{background:var(--fg);color:#fff}.btn-primary:hover{background:#000}.btn-outline{color:var(--fg);border:1px solid var(--line-2);background:0 0}.btn-outline:hover{border-color:var(--fg-2);background:#fff}.btn-lg{border-radius:7px;padding:12px 18px;font-size:14.5px}.hamburger{border:1px solid var(--line-2);background:#fff;border-radius:6px;justify-content:center;align-items:center;width:38px;height:38px;display:none}.hamburger span{background:var(--fg);width:16px;height:1.5px;position:relative}.hamburger span:before,.hamburger span:after{content:"";background:var(--fg);width:16px;height:1.5px;position:absolute;left:0}.hamburger span:before{top:-5px}.hamburger span:after{top:5px}@media (width<=900px){nav.primary,.cta-bar .btn-outline{display:none}.hamburger{display:inline-flex}.site{position:relative}.site.is-open nav.primary{border-top:1px solid var(--line);z-index:50;background:#fff;flex-direction:column;align-items:stretch;gap:0;margin:0;padding:8px 20px 16px;display:flex;position:absolute;top:100%;left:0;right:0;box-shadow:0 14px 30px -12px #0f121c2e}.site.is-open nav.primary a{border-bottom:1px solid var(--line);padding:14px 4px;font-size:15px}.site.is-open nav.primary a:last-child{border-bottom:0}.site.is-open .hamburger span{background:0 0}.site.is-open .hamburger span:before{top:0;transform:rotate(45deg)}.site.is-open .hamburger span:after{top:0;transform:rotate(-45deg)}.hamburger span,.hamburger span:before,.hamburger span:after{transition:transform .18s,top .18s,background .18s}}section.block{border-top:1px solid var(--line);padding:120px 0}@media (width<=1023px){section.block{padding:96px 0}}@media (width<=768px){section.block{padding:72px 0}}.eyebrow{font-family:var(--mono);letter-spacing:.14em;color:var(--fg-dim);text-transform:uppercase;font-size:11.5px;font-weight:500}h2.section-title{font-family:var(--serif);letter-spacing:-.02em;color:var(--fg);word-break:keep-all;overflow-wrap:break-word;margin:14px 0;font-size:clamp(28px,3.4vw,40px);font-weight:600;line-height:1.2}h2.section-title.section-title-preline{white-space:pre-line}.section-sub{color:var(--fg-mute);max-width:640px;margin:0;font-size:16.5px;line-height:1.7}.section-head{max-width:760px;margin-bottom:64px}@media (width<=768px){.section-head{margin-bottom:44px}}.hero{text-align:center;border-bottom:1px solid var(--line);padding:48px 0 120px;position:relative;overflow:hidden}.hero:before{content:"";pointer-events:none;background:radial-gradient(#2563eb0d,#0000 60%);width:1100px;height:600px;position:absolute;top:-40%;left:50%;transform:translate(-50%)}.hero-inner{max-width:820px;margin:0 auto;padding:0 32px;position:relative}@media (width<=768px){.hero-inner{padding:0 20px}.hero{padding:36px 0 88px}}.hero-logo{width:126px;height:126px;color:var(--fg);justify-content:center;align-items:center;margin:0 auto 24px;display:flex}.hero-logo svg,.hero-logo img{object-fit:contain;width:100%;height:100%;display:block}.hero-logo img{mix-blend-mode:multiply}@media (width<=768px){.hero-logo{width:102px;height:102px;margin-bottom:18px}}.hero-eyebrow{font-family:var(--mono);letter-spacing:.06em;color:var(--fg-mute);border:1px solid var(--line);background:#fff;border-radius:999px;align-items:center;gap:8px;padding:5px 12px;font-size:12px;display:inline-flex}.hero-eyebrow .pip{background:#10b981;border-radius:50%;width:6px;height:6px}h1.hero-title{font-family:var(--serif);letter-spacing:-.025em;color:var(--fg);max-width:760px;margin:24px auto 18px;font-size:clamp(36px,5vw,60px);font-weight:600;line-height:1.1}.hero-sub{color:var(--fg-mute);max-width:600px;margin:0 auto 36px;font-size:18px;line-height:1.6}.hero-cta{flex-wrap:wrap;justify-content:center;gap:10px;display:inline-flex}.hero-meta{font-family:var(--mono);color:var(--fg-dim);letter-spacing:.04em;flex-wrap:wrap;justify-content:center;gap:24px;margin-top:48px;font-size:11.5px;display:inline-flex}.hero-meta span{align-items:center;gap:6px;display:inline-flex}.hero-meta b{color:var(--fg-2);font-weight:500}.hero-illus{max-width:820px;margin:72px auto 0}.hero-illus svg{width:100%;height:auto;display:block}@media (width<=768px){.hero-illus{margin-top:48px}}.feat-grid{border:1px solid var(--line);background:var(--line);border-radius:12px;grid-template-columns:repeat(4,1fr);gap:1px;display:grid;overflow:hidden}@media (width<=1023px){.feat-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){.feat-grid{grid-template-columns:1fr}}.feat{background:var(--bg-elev);flex-direction:column;gap:14px;padding:28px 26px 26px;transition:background .15s;display:flex}.feat:hover{background:#fcfcfb}.feat .ico{width:36px;height:36px;color:var(--accent);background:var(--tint-blue);border-radius:8px;place-items:center;display:grid}.feat:nth-child(2) .ico{background:var(--tint-green);color:#047857}.feat:nth-child(3) .ico{color:#9a3412;background:#fef3f2}.feat:nth-child(4) .ico{color:#6b21a8;background:#f3e8ff}.feat h3{letter-spacing:-.01em;color:var(--fg);margin:0;font-size:17px;font-weight:600}.feat p{color:var(--fg-mute);margin:0;font-size:14.5px;line-height:1.6}.feat .more{font-family:var(--sans);color:var(--fg-2);align-items:center;gap:6px;margin-top:auto;padding-top:6px;font-size:13.5px;font-weight:500;display:inline-flex}.feat .more:hover{color:var(--accent-2)}.pipeline-grid{grid-template-columns:1.1fr 1fr;align-items:start;gap:64px;display:grid}@media (width<=1023px){.pipeline-grid{grid-template-columns:1fr;gap:48px}}.pipe-stages{background:var(--bg-elev);border:1px solid var(--line);border-radius:12px;overflow:hidden}.stage{border-top:1px solid var(--line);grid-template-columns:48px 1fr auto;align-items:center;gap:20px;padding:18px 22px;display:grid}.stage:first-of-type{border-top:0}.stage .n{font-family:var(--mono);color:var(--fg-dim);letter-spacing:.04em;font-size:12px}.stage .body h4{color:var(--fg);letter-spacing:-.005em;margin:0 0 2px;font-size:15px;font-weight:600}.stage .body p{color:var(--fg-mute);margin:0;font-size:13.5px;line-height:1.55}.badge{font-family:var(--sans);letter-spacing:.02em;white-space:nowrap;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:500}.badge.stable{background:var(--stable-bg);color:var(--stable-fg)}.badge.beta{background:var(--beta-bg);color:var(--beta-fg)}.badge.planned{background:var(--planned-bg);color:var(--planned-fg)}.pipe-aside h3{font-family:var(--serif);letter-spacing:-.015em;color:var(--fg);margin:0 0 14px;font-size:22px;font-weight:600;line-height:1.3}.pipe-aside p{color:var(--fg-mute);margin:0 0 16px;font-size:15px;line-height:1.7}.pipe-flow{font-family:var(--mono);color:var(--fg-mute);background:var(--code-bg);border:1px solid var(--line);border-radius:8px;margin-top:24px;padding:16px 18px;font-size:12px;line-height:1.9}.pipe-flow .arrow{color:var(--fg-dim);margin:0 6px;display:inline-block}.pipe-flow .hl{color:var(--fg);font-weight:500}.arch-grid{grid-template-columns:1.4fr 1fr;align-items:center;gap:64px;display:grid}@media (width<=1023px){.arch-grid{grid-template-columns:1fr;gap:36px}}.arch-svg{background:var(--bg-elev);border:1px solid var(--line);border-radius:12px;width:100%;height:auto;padding:24px}.arch-notes h3{font-family:var(--serif);letter-spacing:-.01em;color:var(--fg);margin:0 0 12px;font-size:20px;font-weight:600;line-height:1.3}.arch-notes ul{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.arch-notes li{color:var(--fg-mute);padding-left:18px;font-size:15px;line-height:1.6;position:relative}.arch-notes li:before{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px;position:absolute;top:11px;left:0}.code-grid{grid-template-columns:.85fr 1.15fr;align-items:center;gap:48px;display:grid}@media (width<=1023px){.code-grid{grid-template-columns:1fr;gap:36px}}.code-grid .lede h3{font-family:var(--serif);letter-spacing:-.015em;color:var(--fg);margin:0 0 14px;font-size:24px;font-weight:600;line-height:1.3}.code-grid .lede p{color:var(--fg-mute);margin:0 0 14px;font-size:15.5px;line-height:1.7}.code-grid .lede code{font-family:var(--mono);color:var(--fg);background:var(--code-bg);border:1px solid var(--line);border-radius:4px;padding:2px 6px;font-size:13.5px}.code-card{border:1px solid var(--line);background:#fff;border-radius:12px;overflow:hidden}.code-card .bar{border-bottom:1px solid var(--line);background:#fafaf8;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.code-card .filename{font-family:var(--mono);color:var(--fg-mute);align-items:center;gap:6px;font-size:12px;display:inline-flex}.code-card .filename:before{content:"";background:var(--accent-2);opacity:.7;border-radius:2px;width:8px;height:8px}.copy-btn{font-family:var(--sans);color:var(--fg-mute);border:1px solid var(--line);background:#fff;border-radius:5px;padding:5px 9px;font-size:12px;font-weight:500}.copy-btn:hover{color:var(--fg);border-color:var(--line-2)}.copy-btn.copied{color:var(--stable-fg);background:var(--stable-bg);border-color:#a7f3d0}pre.code{font-family:var(--mono);color:var(--fg-2);background:#fff;margin:0;padding:18px 20px;font-size:13px;line-height:1.65;overflow:auto}pre.code .k{color:#1e40af}pre.code .s{color:#166534}pre.code .c{color:#94a3b8}pre.code .p{color:#64748b}.cmp{border:1px solid var(--line);background:var(--bg-elev);border-radius:12px;overflow:hidden}.cmp-row{grid-template-columns:1.1fr 1fr 1fr 1.1fr;display:grid}.cmp-row>div{border-top:1px solid var(--line);color:var(--fg-mute);padding:18px 22px;font-size:14.5px;line-height:1.55}.cmp-row>div:first-child{color:var(--fg);font-weight:500;font-family:var(--sans);font-size:14px}.cmp-row.h>div{font-family:var(--sans);color:var(--fg);background:#fafaf8;border-top:0;font-size:13.5px;font-weight:600}.cmp-row.h>div:first-child{color:var(--fg-dim);font-weight:500;font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;background:#fafaf8;font-size:11.5px}.cmp-row>div.tok{color:var(--fg);background:#2563eb0a}.cmp-row.h>div.tok{color:var(--accent);background:#2563eb0f}@media (width<=900px){.cmp-row{border-top:1px solid var(--line);grid-template-columns:1fr 1fr}.cmp-row:first-child{border-top:0}.cmp-row.h{display:none}.cmp-row>div{border-top:0;border-bottom:1px solid var(--line)}.cmp-row>div:first-child{background:#fafaf8;grid-column:1/-1;font-size:13px;font-weight:600}.cmp-row>div:before{content:attr(data-col);font-family:var(--mono);letter-spacing:.1em;color:var(--fg-dim);text-transform:uppercase;margin-bottom:4px;font-size:10.5px;display:block}.cmp-row>div:first-child:before{display:none}}.gs-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}@media (width<=900px){.gs-grid{grid-template-columns:1fr}}.gs-card{background:var(--bg-elev);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:14px;padding:22px;display:flex}.gs-card .step{font-family:var(--mono);color:var(--fg-dim);letter-spacing:.1em;text-transform:uppercase;font-size:11.5px}.gs-card .step b{color:var(--fg);font-weight:500}.gs-card h4{color:var(--fg);letter-spacing:-.005em;margin:0;font-size:16px;font-weight:600}.gs-card pre.code{background:var(--code-bg);border:1px solid var(--line);color:var(--fg);border-radius:8px;padding:12px 14px;font-size:12.5px;position:relative}.gs-card pre.code .copy-btn{position:absolute;top:8px;right:8px}.gs-foot{justify-content:center;margin-top:32px;display:flex}.gs-foot a{font-family:var(--sans);color:var(--accent-2);border-bottom:1px solid #0000;align-items:center;gap:6px;font-size:14px;font-weight:500;display:inline-flex}.gs-foot a:hover{border-bottom-color:var(--accent-2)}footer.site{border-top:1px solid var(--line);color:var(--fg-mute);background:var(--bg);padding:64px 0 32px}.foot-grid{grid-template-columns:1.6fr 1fr 1fr 1fr;gap:48px;display:grid}@media (width<=768px){.foot-grid{grid-template-columns:1fr 1fr;gap:36px}}.foot-brand p{color:var(--fg-mute);max-width:340px;margin:14px 0 10px;font-size:14px;line-height:1.65}.foot-brand .lic{font-family:var(--mono);color:var(--fg-dim);letter-spacing:.08em;font-size:11.5px}.foot-col h5{font-family:var(--sans);letter-spacing:.08em;color:var(--fg-2);text-transform:uppercase;margin:0 0 14px;font-size:12px;font-weight:600}.foot-col ul{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.foot-col a{color:var(--fg-mute);font-size:14px;transition:color .15s}.foot-col a:hover{color:var(--fg)}.foot-bottom{border-top:1px solid var(--line);font-family:var(--mono);color:var(--fg-dim);letter-spacing:.04em;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:48px;padding-top:22px;font-size:11.5px;display:flex}.foot-bottom a{color:var(--fg-mute);border:1px solid var(--line);border-radius:6px;place-items:center;width:30px;height:30px;display:inline-grid}.foot-bottom a:hover{color:var(--fg);border-color:var(--line-2)}.toast{background:var(--fg);color:#fff;font-family:var(--sans);opacity:0;pointer-events:none;z-index:80;border-radius:6px;padding:8px 14px;font-size:13px;font-weight:500;transition:opacity .18s,transform .18s;position:fixed;bottom:28px;left:50%;transform:translate(-50%)translateY(8px)}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.lang-switch{font-family:var(--mono);letter-spacing:.06em;color:var(--fg-dim);align-items:center;gap:6px;padding:0 8px;font-size:11.5px;display:inline-flex}.lang-switch button{color:var(--fg-dim);background:0 0;padding:4px;font-weight:500;transition:color .15s}.lang-switch button:hover{color:var(--fg-2)}.lang-switch button.is-active{color:var(--fg);font-weight:600}@media (width<=900px){.lang-switch{margin-right:4px}}.dashboard-grid{border:1px solid var(--line);background:var(--line);border-radius:12px;grid-template-columns:repeat(4,1fr);gap:1px;margin-bottom:16px;display:grid;overflow:hidden}@media (width<=1023px){.dashboard-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){.dashboard-grid{grid-template-columns:1fr}}.dashboard-metric{background:var(--bg-elev);flex-direction:column;gap:6px;padding:24px 24px 22px;display:flex}.dashboard-metric .value{font-family:var(--serif);letter-spacing:-.02em;color:var(--fg);font-size:32px;font-weight:600;line-height:1.05}.dashboard-metric .value .unit{color:var(--fg-mute);margin-left:2px;font-size:18px;font-weight:500}.dashboard-metric .label{font-family:var(--sans);color:var(--fg-mute);font-size:13px}.dashboard-charts{grid-template-columns:1.4fr 1fr;gap:16px;margin-bottom:16px;display:grid}@media (width<=768px){.dashboard-charts{grid-template-columns:1fr}}.dashboard-chart{background:var(--bg-elev);border:1px solid var(--line);border-radius:12px;padding:20px 22px}.dashboard-chart h4{font-family:var(--sans);color:var(--fg-2);letter-spacing:-.005em;margin:0 0 14px;font-size:13px;font-weight:600}.dashboard-chart h4 .axis{font-family:var(--mono);color:var(--fg-dim);letter-spacing:.04em;font-size:11px;font-weight:500}.spark-chart svg{width:100%;height:80px;display:block}.tier-bar{flex-direction:column;gap:14px;display:flex}.tier-row{font-family:var(--mono);grid-template-columns:74px 1fr 48px;align-items:center;gap:12px;font-size:12px;display:grid}.tier-row .name{color:var(--fg-mute);letter-spacing:.04em}.tier-row .track{background:var(--code-bg);border-radius:4px;height:8px;display:block;overflow:hidden}.tier-row .fill{background:var(--accent-2);opacity:.7;border-radius:4px;height:100%;display:block}.tier-row .count{color:var(--fg);text-align:right;font-weight:500}.recent-table{background:var(--bg-elev);border:1px solid var(--line);border-radius:12px;overflow:hidden}.recent-row{border-top:1px solid var(--line);font-family:var(--mono);grid-template-columns:1fr 100px 70px 90px;align-items:center;gap:12px;padding:13px 22px;font-size:12.5px;display:grid}.recent-row.h{font-family:var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-dim);background:#fafaf8;border-top:0;padding-top:12px;padding-bottom:12px;font-size:11px;font-weight:600}.recent-row .q{color:var(--fg);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.recent-row .tier-pill{font-family:var(--sans);background:var(--tint-blue);color:var(--accent);letter-spacing:.02em;border-radius:999px;padding:2px 8px;font-size:10.5px;font-weight:500}.recent-row .saved{color:var(--stable-fg);font-weight:500}.recent-row .ms{color:var(--fg-mute);text-align:right}@media (width<=768px){.recent-row{grid-template-columns:1fr;gap:6px;padding:14px 18px}.recent-row.h{display:none}.recent-row .ms{text-align:left}}.dashboard-note{text-align:center;font-family:var(--mono);color:var(--fg-dim);letter-spacing:.04em;margin:18px 0 0;font-size:11.5px}:root{--tfai-bg:#fff;--tfai-side:#fafaf8;--tfai-line:#e8e8e5;--tfai-line-2:#efefec;--tfai-fg:#1f2937;--tfai-fg-mute:#6b7280;--tfai-fg-dim:#9ca3af;--tfai-link:#2563eb;--tfai-hover:#f1f1ee;--tfai-input:#f6f6f3;--tfai-input-bd:#e8e8e5}.tfai-backdrop{z-index:200;-webkit-backdrop-filter:blur(6px);opacity:0;pointer-events:none;background:#0f121c5c;transition:opacity .18s;position:fixed;inset:0}.tfai-backdrop.open{opacity:1;pointer-events:auto}.tfai-modal{z-index:201;background:var(--tfai-bg);border:1px solid var(--tfai-line);opacity:0;pointer-events:none;font-family:var(--serif);color:var(--tfai-fg);border-radius:14px;grid-template-rows:auto 1fr;transition:opacity .2s,transform .2s;display:grid;position:fixed;inset:24px;overflow:hidden;transform:translateY(8px)scale(.99);box-shadow:0 30px 80px -20px #0f121c59,0 8px 24px -8px #0f121c2e}.tfai-modal.open{opacity:1;pointer-events:auto;transform:none}@media (width<=768px){.tfai-modal{border-radius:10px;inset:8px}}.tfai-titlebar{border-bottom:1px solid var(--tfai-line);background:#fff;justify-content:space-between;align-items:center;gap:14px;padding:10px 14px;display:flex}.tfai-titlebar-notice{min-width:0;font-family:var(--sans);color:var(--tfai-fg-mute);text-align:center;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;font-weight:500;overflow:hidden}@media (width<=768px){.tfai-titlebar-notice{display:none}}.tfai-title{font-family:var(--sans);color:var(--tfai-fg);align-items:center;gap:8px;font-size:13px;font-weight:500;display:inline-flex}.tfai-title .logo{border:1px solid var(--tfai-line);background:#fff;border-radius:6px;place-items:center;width:22px;height:22px;display:grid}.tfai-title .logo svg{display:block}.tfai-winbtns{align-items:center;gap:2px;display:flex}.tfai-winbtn{width:38px;height:28px;color:var(--tfai-fg-mute);border-radius:6px;place-items:center;transition:background .12s,color .12s;display:inline-grid}.tfai-winbtn:hover{background:var(--tfai-hover);color:var(--tfai-fg)}.tfai-winbtn.close:hover{color:#fff;background:#e81123}.tfai-body{grid-template-rows:1fr;grid-template-columns:260px 1fr;height:100%;min-height:0;display:grid;overflow:hidden}.tfai-side-backdrop{display:none}@media (width<=840px){.tfai-body{grid-template-columns:1fr;position:relative}.tfai-modal .tfai-side{display:none}.tfai-modal.show-side .tfai-side{z-index:5;border-right:1px solid var(--tfai-line);background:var(--tfai-side);width:min(320px,86%);animation:.2s ease-out tfai-side-in;display:flex;position:absolute;inset:0;box-shadow:2px 0 24px #0f121c2e}.tfai-modal.show-side .tfai-side-backdrop{z-index:4;background:#0f121c66;animation:.2s ease-out tfai-fade-in;display:block;position:absolute;inset:0}}@keyframes tfai-side-in{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes tfai-fade-in{0%{opacity:0}to{opacity:1}}.tfai-side{background:var(--tfai-side);border-right:1px solid var(--tfai-line);flex-direction:column;min-width:0;padding:14px 12px;display:flex}.tfai-toggle{width:36px;height:34px;color:var(--tfai-fg-mute);background:0 0;border:1px solid #0000;border-radius:8px;align-self:flex-start;place-items:center;margin-bottom:8px;display:inline-grid}.tfai-toggle:hover{border-color:var(--tfai-line);color:var(--tfai-fg);background:#fff}.tfai-navitem{width:100%;font-family:var(--sans);color:var(--tfai-fg);text-align:left;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:10px;padding:9px 12px;font-size:13.5px;font-weight:500;transition:background .12s;display:flex}.tfai-navitem:hover{border-color:var(--tfai-line);background:#fff;padding:8px 11px}.tfai-navitem.active{border:1px solid var(--tfai-line);background:#fff;padding:8px 11px;box-shadow:0 1px #00000005}.tfai-navitem svg{color:var(--tfai-fg-mute);flex-shrink:0}.tfai-section-label{font-family:var(--sans);color:var(--tfai-fg-dim);padding:18px 12px 8px;font-size:11.5px;font-weight:500}.tfai-project-block{padding:0 10px 8px}.tfai-project-select{border:1px solid var(--tfai-line);width:100%;font-family:var(--sans);color:var(--tfai-fg);background:#fff;border-radius:8px;padding:8px 10px;font-size:13px}.tfai-project-fixed{box-sizing:border-box;border:1px solid var(--tfai-line);width:100%;font-family:var(--sans);color:var(--tfai-fg);text-overflow:ellipsis;white-space:nowrap;background:#fff;border-radius:8px;padding:8px 10px;font-size:13px;font-weight:600;overflow:hidden}.tfai-project-hint{color:var(--tfai-fg-mute);margin:6px 0 0;font-size:11px;line-height:1.35}.tfai-project-signin,.tfai-project-empty{color:var(--tfai-link);border:1px dashed var(--tfai-line);background:0 0;border-radius:8px;margin:0 10px 8px;padding:8px 10px;font-size:12.5px;text-decoration:none;display:block}.tfai-project-signin:hover,.tfai-project-empty:hover{background:#f3f4f6}.tfai-project-pill{color:#2563eb;text-overflow:ellipsis;white-space:nowrap;background:#3b82f61a;border:1px solid #3b82f633;border-radius:999px;max-width:140px;margin-left:6px;padding:2px 8px;font-size:11px;font-weight:600;overflow:hidden}.tfai-history-item{text-align:left;flex-direction:column;align-items:flex-start;gap:2px;display:flex}.tfai-history-project{color:var(--tfai-fg-mute);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:10px;font-weight:500;overflow:hidden}.tfai-rating{border-top:1px solid var(--tfai-line);flex-wrap:wrap;align-items:center;gap:4px;margin-top:10px;padding-top:8px;display:flex}.tfai-rating-label{color:var(--tfai-fg-mute);width:100%;margin-right:4px;font-size:11px}.tfai-star{cursor:pointer;color:#d1d5db;background:0 0;border:0;border-radius:4px;padding:2px 4px;font-size:18px;line-height:1}.tfai-star:hover,.tfai-star.active{color:#f59e0b}.tfai-star:disabled{opacity:.5;cursor:not-allowed}.tfai-compare-card .tfai-rating{border-top:1px dashed var(--tfai-line);margin-top:8px;padding-top:6px}.tfai-compare-card .tfai-rating-label{width:auto;margin-right:6px}.tfai-image-preview-bar{flex-wrap:wrap;gap:8px;padding:0 0 10px;display:flex}.tfai-image-thumb{border:1px solid var(--tfai-line);border-radius:8px;flex-shrink:0;width:72px;height:72px;position:relative;overflow:hidden}.tfai-image-thumb img{object-fit:cover;width:100%;height:100%;display:block}.tfai-image-remove{color:#fff;cursor:pointer;background:#000000b3;border:none;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:10px;line-height:1;transition:background .15s;display:flex;position:absolute;top:3px;right:3px}.tfai-image-remove:hover{background:#000000e6}.tfai-attach-wrap{position:relative}.tfai-attach-menu{background:var(--tfai-bg);border:1px solid var(--tfai-line);z-index:200;border-radius:10px;min-width:140px;animation:.12s tfai-fade-in;position:absolute;bottom:calc(100% + 6px);left:0;overflow:hidden;box-shadow:0 4px 16px #0000001f}.tfai-attach-item{width:100%;color:var(--tfai-fg);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:10px 14px;font-size:13px;transition:background .12s;display:flex}.tfai-attach-item:hover:not(:disabled){background:var(--tfai-hover,#0000000d)}.tfai-attach-item:disabled{opacity:.5;cursor:not-allowed}.tfai-attach-btn.is-active{color:var(--tfai-accent,#6366f1)}.tfai-wbs-bar{background:linear-gradient(135deg,#f0fdf4,#eff6ff);border:1px solid #bbf7d0;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;padding:6px 10px;font-size:12px;display:flex}.tfai-wbs-filename{color:#065f46;text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:600;overflow:hidden}.tfai-wbs-cols{color:#6b7280;white-space:nowrap;font-size:11px}.tfai-wbs-fill-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#10b981;border:none;border-radius:6px;padding:4px 10px;font-size:12px;font-weight:600;transition:background .15s}.tfai-wbs-fill-btn:hover:not(:disabled){background:#059669}.tfai-wbs-fill-btn:disabled{opacity:.6;cursor:not-allowed}.tfai-wbs-clear-btn{color:#6b7280;cursor:pointer;background:0 0;border:1px solid #d1d5db;border-radius:6px;padding:2px 7px;font-size:12px;transition:background .15s}.tfai-wbs-clear-btn:hover{background:#f3f4f6}.tfai-wbs-error{color:#dc2626;flex:1;font-size:12px}.tfai-iconbtn.is-active{color:#10b981}.tfai-history{flex-direction:column;flex:1;gap:2px;min-height:0;padding-right:2px;display:flex;overflow-y:auto}.tfai-history button{text-align:left;width:100%;font-family:var(--sans);color:var(--tfai-link);white-space:nowrap;text-overflow:ellipsis;background:0 0;border:0;border-radius:8px;padding:7px 12px;font-size:13px;display:block;overflow:hidden}.tfai-history button:hover{color:var(--tfai-link);background:#fff}.tfai-history button.active{color:var(--tfai-fg);border:1px solid var(--tfai-line);background:#fff;padding:6px 11px}.tfai-main{background:var(--tfai-bg);flex-direction:column;min-width:0;height:100%;min-height:0;display:flex;position:relative}.tfai-mobile-bar{border-bottom:1px solid var(--tfai-line);flex-shrink:0;align-items:center;gap:8px;padding:10px 12px;display:none}@media (width<=840px){.tfai-mobile-bar{display:flex}}.tfai-mobile-bar button{width:34px;height:34px;color:var(--tfai-fg-mute);background:0 0;border:0;border-radius:8px;place-items:center;display:grid}.tfai-mobile-bar button:hover{background:var(--tfai-hover)}.tfai-mobile-bar .label{font-family:var(--sans);color:var(--tfai-fg);font-size:13px;font-weight:500}.tfai-conv{flex-direction:column;flex:1;gap:18px;min-height:0;padding:24px 32px;display:flex;overflow-y:auto}.tfai-conv.empty{justify-content:center;align-items:center}.tfai-empty-logo{opacity:.85;place-items:center;width:120px;height:120px;display:grid}.tfai-empty-logo svg,.tfai-empty-logo img{object-fit:contain;max-width:100%;height:auto;display:block}.tfai-empty-logo img{mix-blend-mode:multiply}.tfai-empty-text{font-family:var(--sans);color:var(--tfai-fg-mute);text-align:center;max-width:360px;margin-top:14px;font-size:13.5px}.tfai-msg{gap:14px;width:100%;max-width:760px;margin:0 auto;display:flex}.tfai-msg .ava{width:30px;height:30px;font-family:var(--mono);border-radius:50%;flex-shrink:0;place-items:center;font-size:11px;font-weight:600;display:grid}.tfai-msg.user .ava{color:#1e40af;background:#eef2ff}.tfai-msg.bot .ava{border:1px solid var(--tfai-line);color:var(--tfai-fg-mute);background:#fafaf8}.tfai-msg .bubble{min-width:0;font-family:var(--serif);color:var(--tfai-fg);white-space:pre-wrap;word-wrap:break-word;flex:1;padding-top:4px;font-size:14.5px;line-height:1.65}.tfai-msg .bubble .role{font-family:var(--sans);color:var(--tfai-fg-mute);letter-spacing:.04em;text-transform:uppercase;margin-bottom:4px;font-size:11.5px;font-weight:600}.tfai-typing{align-items:center;gap:4px;height:18px;display:inline-flex}.tfai-typing i{background:var(--tfai-fg-dim);border-radius:50%;width:6px;height:6px;animation:1.1s ease-in-out infinite tfaiDot;display:inline-block}.tfai-typing i:nth-child(2){animation-delay:.15s}.tfai-typing i:nth-child(3){animation-delay:.3s}@keyframes tfaiDot{0%,80%,to{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-4px)}}.tfai-reasoning{border:1px solid var(--tfai-line);background:var(--tfai-side);font-family:var(--mono);color:var(--tfai-fg-mute);border-radius:10px;margin:6px 0 10px;font-size:11.5px;overflow:hidden}.tfai-reasoning summary{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:8px 12px;list-style:none;display:flex}.tfai-reasoning summary::-webkit-details-marker{display:none}.tfai-reasoning summary:before{content:"▸";color:var(--tfai-fg-dim);transition:transform .15s;display:inline-block}.tfai-reasoning[open] summary:before{transform:rotate(90deg)}.tfai-reasoning summary:hover{background:#fff}.tfai-reasoning .body{white-space:pre-wrap;max-height:240px;padding:0 14px 12px 28px;line-height:1.6;overflow-y:auto}.tfai-trace{border:1px solid var(--tfai-line);font-family:var(--mono);color:var(--tfai-fg-mute);background:#fcfcfb;border-radius:10px;margin:8px 0 0;font-size:11.5px;overflow:hidden}.tfai-trace summary{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:8px 12px;list-style:none;display:flex}.tfai-trace summary::-webkit-details-marker{display:none}.tfai-trace summary:before{content:"▸";color:var(--tfai-fg-dim);transition:transform .15s;display:inline-block}.tfai-trace[open] summary:before{transform:rotate(90deg)}.tfai-trace summary:hover{background:#fff}.tfai-trace ul{margin:0;padding:0 14px 10px 28px;list-style:none}.tfai-trace li{align-items:baseline;gap:8px;padding:3px 0;display:flex}.tfai-trace li .step{color:var(--tfai-fg);min-width:70px;font-weight:500}.tfai-trace li .data{color:var(--tfai-fg-mute);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.tfai-trace li .meta{color:var(--tfai-fg-dim);font-family:var(--mono);white-space:nowrap;flex-shrink:0;margin-left:auto;font-size:11px}.tfai-trace li .check{color:#10b981;font-weight:600}.tfai-trace li.pending .check{color:var(--tfai-fg-dim)}.tfai-usage{font-family:var(--mono);color:var(--tfai-fg-dim);align-items:center;gap:8px;margin-top:8px;font-size:11px;display:flex}.tfai-usage-label{text-transform:uppercase;letter-spacing:.05em;color:var(--tfai-fg-mute);font-weight:600}.tfai-usage-val{color:var(--tfai-fg-dim)}.tfai-iconbtn.is-muted{opacity:.4;cursor:not-allowed}.tfai-iconbtn.is-muted:hover{background:0 0}.tfai-compare{margin:18px 0}.tfai-compare-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.tfai-compare-card{border:1px solid var(--tfai-line);background:#fff;border-radius:12px;flex-direction:column;gap:10px;min-width:0;padding:16px 18px;display:flex}.tfai-compare-card.pipe{border-color:#10b981;box-shadow:0 1px 3px #10b98114}.tfai-compare-card .head{font-family:var(--sans);color:var(--tfai-fg-mute);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--tfai-line-2);padding-bottom:8px;font-size:12px;font-weight:600}.tfai-compare-card.pipe .head{color:#10b981}.tfai-compare-card .body{font-family:var(--serif);color:var(--tfai-fg);white-space:pre-wrap;word-break:break-word;flex:1;font-size:14px;line-height:1.6}.tfai-cost{background:var(--tfai-input);font-family:var(--mono);border-radius:6px;flex-direction:column;gap:4px;padding:10px 12px;font-size:11px;display:flex}.tfai-cost>div{color:var(--tfai-fg-mute);justify-content:space-between;display:flex}.tfai-cost strong{color:var(--tfai-fg);font-weight:500}.tfai-compare-savings{text-align:center;background:linear-gradient(135deg,#dcfce7,#bbf7d0);border:1px solid #86efac;border-radius:12px;margin-top:14px;padding:24px}.tfai-compare-savings .label{font-family:var(--sans);color:#15803d;margin-bottom:4px;font-size:13px;font-weight:600}.tfai-compare-savings .amount{font-family:var(--serif);color:#14532d;letter-spacing:-.02em;font-size:36px;font-weight:700;line-height:1.1}.tfai-compare-savings .sub{font-family:var(--sans);color:#166534;opacity:.85;margin-top:6px;font-size:11px}@media (width<=768px){.tfai-compare-row{grid-template-columns:1fr}}.tfai-composer-wrap{flex-shrink:0;padding:0 32px 24px}@media (width<=768px){.tfai-conv{padding:18px 16px}.tfai-composer-wrap{padding:0 16px 16px}.tfai-modal{max-height:calc(100dvh - 16px)}}.tfai-pipeline-wrap{display:inline-flex;position:relative}.tfai-pipeline-popover{border:1px solid var(--tfai-line);opacity:0;pointer-events:none;z-index:10;background:#fff;border-radius:10px;flex-direction:column;gap:6px;min-width:160px;padding:8px;transition:opacity .12s,transform .12s;display:flex;position:absolute;bottom:calc(100% + 8px);left:0;transform:translateY(4px);box-shadow:0 12px 28px -8px #0f121c2e}.tfai-pipeline-popover.open{opacity:1;pointer-events:auto;transform:none}.tfai-pipeline-popover .tfai-chip{justify-content:flex-start;width:100%}.tfai-chip{background:var(--tfai-input);border:1px solid var(--tfai-input-bd);font-family:var(--sans);color:var(--tfai-fg-dim);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:5px 11px;font-size:12px;font-weight:500;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.tfai-chip:hover{color:var(--tfai-fg-mute);background:#fff;border-color:#ddd}.tfai-chip .dot{background:var(--tfai-fg-dim);border-radius:50%;width:6px;height:6px;transition:background .12s}.tfai-chip.on{color:var(--tfai-fg);background:#fff;border-color:#c9cac4}.tfai-chip.on .dot{background:#22c55e}.tfai-chip.on:hover{background:#fafaf8}.tfai-chip:focus-visible{outline:2px solid var(--tfai-link);outline-offset:2px}.tfai-composer{background:var(--tfai-input);border:1px solid var(--tfai-input-bd);border-radius:18px;max-width:760px;margin:0 auto;padding:14px 16px 10px;transition:border-color .15s,background .15s}.tfai-composer:focus-within{background:#fff;border-color:#c9cac4}.tfai-input{resize:none;width:100%;font-family:var(--serif);color:var(--tfai-fg);background:0 0;border:0;outline:0;min-height:24px;max-height:160px;font-size:15px;line-height:1.55}.tfai-input::placeholder{color:var(--tfai-fg-dim)}.tfai-actions{justify-content:space-between;align-items:center;gap:8px;margin-top:8px;display:flex}.tfai-actions .left{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.tfai-actions .right{flex-shrink:0;align-items:center;gap:6px;display:flex}.tfai-iconbtn{width:32px;height:32px;color:var(--tfai-fg-mute);background:0 0;border:1px solid #0000;border-radius:50%;place-items:center;transition:background .12s,color .12s,border-color .12s;display:grid}.tfai-iconbtn:hover{border-color:var(--tfai-line);color:var(--tfai-fg);background:#fff}.tfai-model-wrap{display:inline-flex;position:relative}.tfai-model{font-family:var(--sans);color:var(--tfai-fg);border:1px solid var(--tfai-line);cursor:pointer;background:#fff;border-radius:999px;align-items:center;gap:6px;padding:6px 10px 6px 12px;font-size:12.5px;font-weight:500;transition:border-color .12s,background .12s;display:inline-flex}.tfai-model:hover{border-color:#c9cac4}.tfai-model svg{color:var(--tfai-fg-mute)}.tfai-send{width:32px;height:32px;color:var(--tfai-fg-mute);cursor:pointer;background:#e8e8e5;border:0;border-radius:50%;place-items:center;transition:background .12s,color .12s;display:grid}.tfai-send.ready{background:var(--tfai-fg);color:#fff}.tfai-send.ready:hover{background:#000}.tfai-send:disabled{cursor:default}.tfai-popover{border:1px solid var(--tfai-line);opacity:0;pointer-events:none;z-index:10;background:#fff;border-radius:10px;min-width:220px;padding:6px;transition:opacity .12s,transform .12s;position:absolute;bottom:calc(100% + 8px);right:0;transform:translateY(4px);box-shadow:0 12px 28px -8px #0f121c2e}.tfai-popover.open{opacity:1;pointer-events:auto;transform:none}.tfai-popover button{width:100%;font-family:var(--sans);color:var(--tfai-fg);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;font-size:13px;font-weight:500;display:flex}.tfai-popover button:hover{background:var(--tfai-hover)}.tfai-popover button .meta{font-family:var(--mono);color:var(--tfai-fg-dim);font-size:10.5px;font-weight:400}.tfai-popover button .check{color:var(--tfai-fg-mute);opacity:0}.tfai-popover button.selected .check{opacity:1;color:#10b981}.tfai-footinfo{text-align:center;max-width:760px;font-family:var(--mono);color:var(--tfai-fg-dim);letter-spacing:.04em;margin:8px auto 0;font-size:10.5px}.admin-shell{--a-bg:#f6f7f9;--a-bg-rail:#fbfbfc;--a-panel:#fff;--a-panel-2:#fafafb;--a-code-bg:#f4f5f7;--a-ink:#14161c;--a-ink-2:#2c313c;--a-mute:#5e6675;--a-dim:#909aa8;--a-faint:#b6bdc8;--a-line:#e7e9ed;--a-line-2:#dadde3;--a-line-soft:#f0f1f4;--a-accent:#4338ca;--a-accent-2:#6366f1;--a-accent-wash:#eeedfb;--a-accent-line:#d9d6f5;--a-ok:#0e9f6e;--a-ok-wash:#e3f5ec;--a-warn:#c77d11;--a-warn-wash:#fbf0dc;--a-err:#dc2626;--a-err-wash:#fce8e8;--a-info:#2563eb;--a-info-wash:#e4edfd;--a-violet:#7c3aed;--a-violet-wash:#f1eafc;--a-teal:#0d9488;--a-teal-wash:#def3f1;--a-radius:11px;--a-shadow-sm:0 1px 2px #14161c0a, 0 1px 1px #14161c08;--a-shadow-md:0 4px 16px #14161c0f, 0 1px 3px #14161c0d;background:var(--a-bg);min-height:100vh;color:var(--a-ink);flex-direction:column;display:flex}.admin{background:var(--a-bg);min-height:calc(100vh - 200px);padding:48px 24px 80px}.admin-inner{max-width:1100px;margin:0 auto}.admin-toolbar{background:var(--a-panel);border-bottom:1px solid var(--a-line);z-index:20;flex:none;justify-content:space-between;align-items:center;gap:16px;height:54px;padding:0 16px;display:flex;position:relative}.admin-toolbar .tb-left{align-items:center;gap:14px;min-width:0;display:flex}.admin-toolbar .tb-right{align-items:center;gap:6px;display:flex}.admin-toolbar .admin-brand-mark{font-family:var(--sans);letter-spacing:-.02em;color:var(--a-ink);align-items:center;gap:9px;font-size:15px;font-weight:700;display:inline-flex}.admin-toolbar .admin-brand-mark .mark{width:24px;height:24px;display:block}.admin-toolbar .env{font-family:var(--mono);letter-spacing:.08em;color:var(--a-mute);background:var(--a-code-bg);border:1px solid var(--a-line);text-transform:uppercase;border-radius:5px;padding:2px 7px;font-size:9.5px;font-weight:600}.admin-toolbar .tb-sep{background:var(--a-line);width:1px;height:22px}.admin-toolbar .env-switch{font-family:var(--sans);color:var(--a-ink-2);border-radius:7px;align-items:center;gap:8px;padding:5px 10px;font-size:13px;font-weight:500;transition:background .12s;display:inline-flex}.admin-toolbar .env-switch:hover{background:var(--a-panel-2)}.admin-toolbar .env-switch .dot{background:var(--a-ok);width:7px;height:7px;box-shadow:0 0 0 3px var(--a-ok-wash);border-radius:50%}.admin-toolbar .env-switch svg{color:var(--a-dim)}.admin-toolbar .tb-search{background:var(--a-panel-2);border:1px solid var(--a-line);color:var(--a-mute);font-family:var(--sans);cursor:pointer;border-radius:8px;align-items:center;gap:8px;min-width:230px;padding:6px 11px;font-size:12.5px;transition:border-color .12s,background .12s;display:inline-flex}.admin-toolbar .tb-search:hover{border-color:var(--a-line-2);background:#fff}.admin-toolbar .tb-search .k{font-family:var(--mono);color:var(--a-dim);border:1px solid var(--a-line);background:#fff;border-radius:4px;margin-left:auto;padding:1px 5px;font-size:10px}.admin-toolbar .tb-icon{width:33px;height:33px;color:var(--a-mute);cursor:pointer;background:0 0;border:0;border-radius:7px;place-items:center;transition:background .12s,color .12s;display:grid;position:relative}.admin-toolbar .tb-icon:hover{background:var(--a-panel-2);color:var(--a-ink)}.admin-toolbar .tb-icon .badge{background:var(--a-err);width:6px;height:6px;box-shadow:0 0 0 2px var(--a-panel);border-radius:50%;position:absolute;top:6px;right:6px}.admin-toolbar .tb-avatar{color:#fff;width:30px;height:30px;font-family:var(--sans);background:linear-gradient(135deg,#4338ca,#7c3aed);border-radius:8px;place-items:center;margin-left:6px;font-size:11px;font-weight:600;display:grid}.admin-layout{flex:1;grid-template-columns:248px 1fr;min-height:0;display:grid}.admin-sidebar{background:var(--a-bg-rail);border-right:1px solid var(--a-line);flex-direction:column;min-height:0;display:flex}.admin-nav{flex-direction:column;flex:1;gap:14px;padding:14px 12px 8px;display:flex;overflow-y:auto}.admin-shell .nav-group{flex-direction:column;gap:2px;display:flex}.admin-shell .nav-group h4{font-family:var(--mono);color:var(--a-dim);text-transform:uppercase;letter-spacing:.1em;margin:6px 8px 4px;font-size:10px;font-weight:600}.admin-menuitem{font-family:var(--sans);color:var(--a-mute);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;gap:10px;padding:8px 10px;font-size:13.5px;font-weight:500;transition:background .12s,color .12s;display:flex}.admin-menuitem .ic{width:18px;height:18px;color:var(--a-dim);flex-shrink:0;place-items:center;display:grid}.admin-menuitem .lbl{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.admin-menuitem .live{background:var(--a-ok);width:6px;height:6px;box-shadow:0 0 0 2px var(--a-ok-wash);border-radius:50%;flex-shrink:0}.admin-menuitem .cnt{font-family:var(--mono);color:var(--a-dim);background:var(--a-code-bg);border-radius:4px;flex-shrink:0;padding:1px 6px;font-size:10.5px}.admin-menuitem:hover{background:var(--a-panel);color:var(--a-ink)}.admin-menuitem:hover .ic{color:var(--a-ink-2)}.admin-menuitem.active{background:var(--a-accent-wash);color:var(--a-accent);font-weight:600}.admin-menuitem.active .ic{color:var(--a-accent)}.admin-menuitem.active .cnt{background:var(--a-panel);color:var(--a-accent)}.admin-nav-foot{border-top:1px solid var(--a-line);flex:none;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.admin-nav-foot .who{flex:1;align-items:center;gap:9px;min-width:0;display:flex}.admin-nav-foot .ava{color:#fff;width:30px;height:30px;font-family:var(--sans);background:linear-gradient(135deg,#4338ca,#7c3aed);border-radius:8px;flex-shrink:0;place-items:center;font-size:11px;font-weight:600;display:grid}.admin-nav-foot .info{min-width:0;line-height:1.2}.admin-nav-foot .nm{font-family:var(--sans);color:var(--a-ink);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:600;overflow:hidden}.admin-nav-foot .rl{font-family:var(--mono);color:var(--a-dim);letter-spacing:.08em;text-transform:uppercase;font-size:9.5px;font-weight:600}.admin-nav-foot .gear{width:30px;height:30px;color:var(--a-mute);cursor:pointer;background:0 0;border:0;border-radius:7px;flex-shrink:0;place-items:center;transition:background .12s,color .12s;display:grid}.admin-nav-foot .gear:hover{background:var(--a-panel);color:var(--a-ink)}.admin-main{background:var(--a-bg);min-width:0;padding:32px 36px 60px;overflow-x:hidden}.admin-section{flex-direction:column;gap:18px;display:flex}.admin-topbar{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.admin-topbar .admin-title{margin:0 0 4px}.admin-topbar .admin-sub{margin:0}.admin-title{font-family:var(--sans);color:var(--a-ink);letter-spacing:-.015em;margin:0 0 6px;font-size:24px;font-weight:700}.admin-sub{font-family:var(--sans);color:var(--a-mute);margin:0 0 24px;font-size:13.5px}.admin-error{color:var(--a-err)}.admin-empty{text-align:center;padding:60px 0}.admin-empty h2{font-family:var(--sans);color:var(--a-ink);letter-spacing:-.01em;margin:0 0 6px;font-size:22px;font-weight:700}.admin-empty .admin-sub{color:var(--a-mute);margin:0 0 18px;font-size:14px}.admin-coming{background:var(--a-accent-wash);color:var(--a-accent);font-family:var(--sans);letter-spacing:.02em;border-radius:999px;padding:8px 16px;font-size:13px;font-weight:600;display:inline-block}.admin-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:4px;display:flex}.admin-refresh{background:var(--a-panel);border:1px solid var(--a-line);font-family:var(--sans);color:var(--a-ink-2);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:7px 12px;font-size:13px;font-weight:500;transition:background .12s,border-color .12s;display:inline-flex}.admin-refresh:hover:not(:disabled){background:var(--a-panel-2);border-color:var(--a-line-2)}.admin-refresh:disabled{cursor:default;color:var(--a-dim);background:var(--a-panel-2)}.admin-refresh .spin{animation:.9s linear infinite adminSpin}@keyframes adminSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.admin-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;display:grid}.admin-card{background:var(--a-panel);border:1px solid var(--a-line);border-radius:var(--a-radius);box-shadow:var(--a-shadow-sm);padding:18px 20px}.admin-card-wide{grid-column:1/-1}.admin-card h2{font-family:var(--sans);color:var(--a-mute);text-transform:uppercase;letter-spacing:.08em;margin:0 0 14px;font-size:11.5px;font-weight:600}.admin-row{font-family:var(--sans);border-top:1px solid var(--a-line-soft);justify-content:space-between;align-items:center;gap:12px;padding:7px 0;font-size:13.5px;display:flex}.admin-row:first-of-type{border-top:0}.admin-key{color:var(--a-mute);text-transform:capitalize;font-weight:500}.admin-val{color:var(--a-ink);text-align:right;word-break:break-all;font-weight:500}.admin-val.mono,.admin-list li.mono{font-family:var(--mono);font-size:12px}.admin-list{background:var(--a-code-bg);border-radius:6px;flex-direction:column;gap:4px;max-height:140px;margin:8px 0 0;padding:8px 10px;list-style:none;display:flex;overflow-y:auto}.admin-list li{color:var(--a-mute);font-size:12px}.admin-badge{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;border-radius:999px;align-items:center;padding:2px 10px;font-size:10.5px;font-weight:600;display:inline-flex}.admin-badge.ok{background:var(--a-ok-wash);color:var(--a-ok)}.admin-badge.bad{background:var(--a-err-wash);color:var(--a-err)}.admin-badge.off{background:var(--a-code-bg);color:var(--a-dim)}.admin-stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:18px 24px;display:grid}.admin-stat{flex-direction:column;gap:4px;display:flex}.admin-stat-label{font-family:var(--sans);color:var(--a-mute);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:600}.admin-stat-val{font-family:var(--sans);color:var(--a-ink);letter-spacing:-.01em;font-size:24px;font-weight:700}.prompts-tabs{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.prompts-tab{background:var(--a-panel);border:1px solid var(--a-line);text-align:left;cursor:pointer;border-radius:10px;flex-direction:column;gap:4px;padding:12px 14px;transition:border-color .15s,background .15s;display:flex}.prompts-tab:hover{border-color:var(--a-line-2);background:var(--a-panel-2)}.prompts-tab.active{border-color:var(--a-accent);background:var(--a-accent-wash)}.prompts-tab-label{font-family:var(--sans);color:var(--a-ink);font-size:14px;font-weight:600}.prompts-tab-meta{font-family:var(--mono);color:var(--a-mute);font-size:11.5px}.admin-shell .card{background:var(--a-panel);border:1px solid var(--a-line);border-radius:var(--a-radius);box-shadow:var(--a-shadow-sm);overflow:hidden}.admin-shell .card-head{border-bottom:1px solid var(--a-line-soft);justify-content:space-between;align-items:center;gap:12px;padding:13px 16px;display:flex}.admin-shell .card-head h3{font-family:var(--sans);color:var(--a-ink);margin:0;font-size:13.5px;font-weight:600}.admin-shell .card-body{padding:16px}.admin-shell .pill{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;background:var(--a-code-bg);color:var(--a-mute);border-radius:999px;align-items:center;gap:6px;padding:2px 9px;font-size:10.5px;font-weight:600;display:inline-flex}.admin-shell .pill .dot{background:currentColor;border-radius:50%;width:5px;height:5px}.admin-shell .pill.ok{background:var(--a-ok-wash);color:var(--a-ok)}.admin-shell .pill.warn{background:var(--a-warn-wash);color:var(--a-warn)}.admin-shell .pill.err{background:var(--a-err-wash);color:var(--a-err)}.admin-shell .pill.info{background:var(--a-info-wash);color:var(--a-info)}.admin-shell .pill.ai{background:var(--a-violet-wash);color:var(--a-violet)}.admin-shell .pill.mute{background:var(--a-code-bg);color:var(--a-mute)}.admin-shell .chips{flex-wrap:wrap;gap:6px;display:inline-flex}.admin-shell .chip{background:var(--a-panel);border:1px solid var(--a-line);font-family:var(--sans);color:var(--a-mute);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:5px 11px;font-size:12px;font-weight:500;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.admin-shell .chip:hover{background:var(--a-panel-2);color:var(--a-ink-2);border-color:var(--a-line-2)}.admin-shell .chip.active{background:var(--a-accent-wash);color:var(--a-accent);border-color:var(--a-accent-line)}.admin-shell .toggle{background:var(--a-line);cursor:pointer;border-radius:999px;flex-shrink:0;width:34px;height:20px;transition:background .15s;display:inline-block;position:relative}.admin-shell .toggle:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:left .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #14161c2e}.admin-shell .toggle.on{background:var(--a-accent)}.admin-shell .toggle.on:after{left:16px}.admin-shell .hint{font-family:var(--mono);color:var(--a-mute);letter-spacing:.02em;font-size:11px}.admin-shell .sep-h{background:var(--a-line);height:1px;margin:14px 0}.admin-shell .sep-v{background:var(--a-line);align-self:stretch;width:1px}.admin-shell .btn-sm{font-family:var(--sans);border-radius:6px;padding:4px 9px;font-size:11.5px;font-weight:500;transition:background .12s,color .12s}.admin-shell .btn-ghost{color:var(--a-mute);background:0 0}.admin-shell .btn-ghost:hover{background:var(--a-panel-2);color:var(--a-ink)}.admin-shell .doc-head{border-bottom:1px solid var(--a-line-soft);flex-direction:column;gap:10px;margin-bottom:18px;padding:0 0 18px;display:flex}.admin-shell .doc-bc{font-family:var(--mono);color:var(--a-dim);letter-spacing:.02em;align-items:center;gap:6px;font-size:11px;font-weight:500;display:flex}.admin-shell .doc-bc .sep{color:var(--a-faint);font-weight:400}.admin-shell .doc-bc .here{color:var(--a-ink-2);font-weight:600}.admin-shell .doc-title-row{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.admin-shell .doc-title-row .lhs{flex:1;min-width:0}.admin-shell .doc-title{font-family:var(--sans);color:var(--a-ink);letter-spacing:-.015em;margin:0 0 4px;font-size:22px;font-weight:700}.admin-shell .doc-sub{font-family:var(--sans);color:var(--a-mute);margin:0;font-size:13px;line-height:1.55}.admin-shell .doc-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.admin-shell .doc-meta{font-family:var(--mono);color:var(--a-mute);letter-spacing:.02em;flex-wrap:wrap;align-items:center;gap:14px;font-size:11px;display:flex}.admin-shell .pip{font-family:var(--mono);color:var(--a-ok);letter-spacing:.04em;align-items:center;gap:6px;font-size:11px;font-weight:600;display:inline-flex}.admin-shell .pip .dot{background:var(--a-ok);width:6px;height:6px;box-shadow:0 0 0 2px var(--a-ok-wash);border-radius:50%}.admin-shell .btn{background:var(--a-panel);border:1px solid var(--a-line);font-family:var(--sans);color:var(--a-ink-2);cursor:pointer;border-radius:7px;align-items:center;gap:6px;padding:6px 11px;font-size:12.5px;font-weight:500;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.admin-shell .btn:hover:not(:disabled){background:var(--a-panel-2);border-color:var(--a-line-2)}.admin-shell .btn:disabled{cursor:default;color:var(--a-dim);background:var(--a-panel-2)}.admin-shell .btn .spin{animation:.9s linear infinite adminSpin}.admin-shell .btn-primary{background:var(--a-accent);border-color:var(--a-accent);color:#fff}.admin-shell .btn-primary:hover:not(:disabled){background:#3730a3;border-color:#3730a3}.admin-shell .card-wide{grid-column:1/-1}.admin-shell .kpi-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:16px;display:grid}.admin-shell .kpi{background:var(--a-panel);border:1px solid var(--a-line);border-radius:var(--a-radius);box-shadow:var(--a-shadow-sm);flex-direction:column;gap:6px;padding:14px 16px;display:flex}.admin-shell .kpi .k{font-family:var(--sans);color:var(--a-mute);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:600}.admin-shell .kpi .v{font-family:var(--sans);color:var(--a-ink);letter-spacing:-.02em;font-size:26px;font-weight:700;line-height:1.1}.admin-shell .kpi .v .u{color:var(--a-mute);margin-left:3px;font-size:14px;font-weight:600}.admin-shell .kpi .foot{font-family:var(--mono);color:var(--a-mute);align-items:center;gap:6px;font-size:11px;display:flex}.admin-shell .kpi .delta{letter-spacing:.02em;font-weight:600}.admin-shell .kpi .delta.positive{color:var(--a-ok)}.admin-shell .kpi .delta.negative{color:var(--a-err)}.admin-shell .kpi .delta.neutral{color:var(--a-mute)}.admin-shell .mon-split{grid-template-columns:minmax(320px,380px) 1fr;align-items:start;gap:14px;display:grid}@media (width<=1100px){.admin-shell .mon-split{grid-template-columns:1fr}}.admin-shell .mon-runs{background:var(--a-panel);border:1px solid var(--a-line);border-radius:var(--a-radius);box-shadow:var(--a-shadow-sm);flex-direction:column;min-height:480px;max-height:calc(100vh - 220px);display:flex;overflow:hidden}.admin-shell .rl-head{border-bottom:1px solid var(--a-line-soft);background:var(--a-panel-2);justify-content:space-between;align-items:center;gap:10px;padding:11px 14px;display:flex}.admin-shell .rl-head .t{font-family:var(--sans);color:var(--a-ink);align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.admin-shell .rl-list{flex:1;overflow-y:auto}.admin-shell .run-row{border-bottom:1px solid var(--a-line-soft);cursor:pointer;grid-template-columns:14px 1fr auto;align-items:start;gap:10px;padding:11px 14px;transition:background .12s;display:grid}.admin-shell .run-row:hover{background:var(--a-panel-2)}.admin-shell .run-row.active{background:var(--a-accent-wash);border-left:3px solid var(--a-accent);padding-left:11px}.admin-shell .run-row .sdot{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:5px}.admin-shell .sdot.ok{background:var(--a-ok);box-shadow:0 0 0 2px var(--a-ok-wash)}.admin-shell .sdot.warn{background:var(--a-warn);box-shadow:0 0 0 2px var(--a-warn-wash)}.admin-shell .sdot.err{background:var(--a-err);box-shadow:0 0 0 2px var(--a-err-wash)}.admin-shell .sdot.run{background:var(--a-info);box-shadow:0 0 0 2px var(--a-info-wash);animation:2s linear infinite adminSpin}.admin-shell .run-row .meat{min-width:0}.admin-shell .run-row .q{font-family:var(--sans);color:var(--a-ink);text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12.5px;line-height:1.4;display:-webkit-box;overflow:hidden}.admin-shell .run-row .sub{font-family:var(--mono);color:var(--a-dim);flex-wrap:wrap;gap:6px;margin-top:3px;font-size:10px;display:flex}.admin-shell .run-row .sub .id{color:var(--a-accent)}.admin-shell .run-row .rt{font-family:var(--mono);flex-direction:column;flex-shrink:0;align-items:flex-end;gap:2px;font-size:10.5px;display:flex}.admin-shell .run-row .rt .ms{color:var(--a-ink-2);font-weight:600}.admin-shell .run-row .rt .tk{color:var(--a-dim)}.admin-shell .mon-detail{background:var(--a-panel);border:1px solid var(--a-line);border-radius:var(--a-radius);box-shadow:var(--a-shadow-sm);overflow:hidden}.admin-shell .md-head{border-bottom:1px solid var(--a-line-soft);background:var(--a-panel-2);flex-direction:column;gap:8px;padding:14px 18px;display:flex}.admin-shell .md-head .l1{align-items:center;gap:10px;display:flex}.admin-shell .md-head .l1 .q{font-family:var(--sans);color:var(--a-ink);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14px;font-weight:600;overflow:hidden}.admin-shell .md-head .l2{font-family:var(--mono);color:var(--a-mute);flex-wrap:wrap;gap:16px;font-size:11px;display:flex}.admin-shell .md-head .l2 b{color:var(--a-ink-2);font-weight:600}.admin-shell .md-body{padding:18px}.admin-shell .md-body .sec-title{font-family:var(--sans);color:var(--a-mute);text-transform:uppercase;letter-spacing:.06em;margin:0 0 10px;font-size:11.5px;font-weight:600}.admin-shell .md-body .sec-title+.sec-title{margin-top:20px}.admin-shell .btn .live{background:#fff;border-radius:3px;width:6px;height:6px;animation:1.5s linear infinite adminSpin;display:inline-block;box-shadow:0 0 0 3px #ffffff4d}.admin-shell .doc-title .pill{vertical-align:middle;margin-left:8px;padding:1px 6px;font-size:9px}.admin-shell .dag-wrap{background:var(--a-panel-2);border:1px solid var(--a-line);border-radius:8px;padding:12px;overflow:hidden}.admin-shell .dag-node-label{font-family:var(--sans);font-size:12px;font-weight:600}.admin-shell .dag-node-sub{font-family:var(--mono);font-size:9.5px;font-weight:500}.admin-shell .waterfall{background:var(--a-panel);border:1px solid var(--a-line);border-radius:8px;overflow:hidden}.admin-shell .span-row{border-bottom:1px solid var(--a-line-soft);grid-template-columns:240px 1fr 130px;align-items:center;padding:5px 14px;display:grid}.admin-shell .span-row:last-child{border-bottom:0}.admin-shell .span-row.head{background:var(--a-panel-2);font-family:var(--mono);color:var(--a-mute);text-transform:uppercase;letter-spacing:.06em;padding:7px 14px;font-size:10.5px;font-weight:600}.admin-shell .span-row.head .meta-cell{justify-content:flex-end}.admin-shell .span-row .nm{min-width:0;font-family:var(--sans);align-items:center;gap:6px;font-size:12px;display:flex}.admin-shell .span-row .ind{border-left:1px dashed var(--a-line-2);flex-shrink:0;width:14px;height:14px;margin-left:4px;display:inline-block}.admin-shell .span-row .tw{border-radius:2px;flex-shrink:0;width:10px;height:10px}.admin-shell .span-row .lbl{color:var(--a-ink-2);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-weight:500;overflow:hidden}.admin-shell .span-row .kind{font-family:var(--mono);color:var(--a-dim);text-transform:uppercase;letter-spacing:.04em;background:var(--a-code-bg);border-radius:3px;flex-shrink:0;margin-left:auto;padding:1px 5px;font-size:9.5px;font-weight:500}.admin-shell .span-row .bar-cell{background:var(--a-panel-2);border-radius:3px;height:18px;margin:0 12px;position:relative}.admin-shell .span-row.head .bar-cell,.admin-shell .axis-row .bar-cell{background:0 0}.admin-shell .span-row .bar{color:#fff;font-family:var(--mono);white-space:nowrap;border-radius:3px;align-items:center;min-width:3px;padding:0 6px;font-size:9.5px;font-weight:600;display:flex;position:absolute;top:0;bottom:0;overflow:hidden}.admin-shell .span-row .bar.stripes{background-image:repeating-linear-gradient(45deg,#dc2626,#dc2626 6px,#c41d1d 6px 12px)}.admin-shell .span-row .meta-cell{font-family:var(--mono);color:var(--a-mute);flex-direction:column;align-items:flex-end;gap:1px;font-size:10.5px;display:flex}.admin-shell .span-row .meta-cell .dur{color:var(--a-ink-2);font-weight:600}.admin-shell .axis-row{background:var(--a-panel-2);border-bottom:1px solid var(--a-line-soft);grid-template-columns:240px 1fr 130px;padding:4px 14px;display:grid}.admin-shell .axis-row .ticks{height:14px;font-family:var(--mono);color:var(--a-dim);margin:0 12px;font-size:9.5px;position:relative}.admin-shell .axis-row .ticks span{position:absolute;top:0;transform:translate(-50%)}.admin-shell .axis-row .ticks span:first-child{transform:translate(0)}.admin-shell .axis-row .ticks span:last-child{transform:translate(-100%)}.admin-shell .io-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=900px){.admin-shell .io-grid{grid-template-columns:1fr}}.admin-shell .io-box{background:var(--a-panel);border:1px solid var(--a-line);border-radius:8px;overflow:hidden}.admin-shell .io-box .h{background:var(--a-panel-2);border-bottom:1px solid var(--a-line-soft);font-family:var(--mono);color:var(--a-mute);text-transform:uppercase;letter-spacing:.06em;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;font-size:10.5px;font-weight:600;display:flex}.admin-shell .io-box pre{font-family:var(--mono);color:var(--a-ink-2);background:var(--a-panel);white-space:pre-wrap;word-break:break-word;max-height:340px;margin:0;padding:12px 14px;font-size:11.5px;line-height:1.55;overflow:auto}.admin-shell .io-box pre.err{color:var(--a-err);background:#fcf7f7}.admin-shell .card-body .admin-row{border-top:1px solid var(--a-line-soft);padding:7px 0}.admin-shell .card-body .admin-row:first-of-type{border-top:0;padding-top:0}.admin-shell .card-body .admin-row:last-of-type{padding-bottom:0}.admin-shell .card-body .admin-list{margin:10px 0 0}.admin-shell .card-body .admin-stats{padding:4px 0}@media (width<=1080px){.admin-toolbar .tb-search{min-width:120px}}@media (width<=768px){.admin-layout{grid-template-rows:auto 1fr;grid-template-columns:1fr}.admin-sidebar{border-right:0;border-bottom:1px solid var(--a-line)}.admin-nav{flex-flow:wrap;gap:8px;padding:10px 12px 6px}.admin-shell .nav-group{flex-flow:wrap;gap:4px}.admin-shell .nav-group h4{width:100%;margin:0 0 2px}.admin-nav-foot{padding:8px 12px}.admin-main{padding:24px 18px}.admin-toolbar{gap:8px;padding:0 12px}.admin-toolbar .tb-search,.admin-toolbar .env-switch span:not(.dot){display:none}}.tf-ws .prompts-ai-nav{border-bottom:1px solid var(--tfai-line);gap:4px;margin-bottom:14px;display:flex;overflow-x:auto}.tf-ws .prompts-ai-nav::-webkit-scrollbar{display:none}.tf-ws .prompts-ai-tab{cursor:pointer;font-family:var(--sans);color:var(--tfai-fg-mute);background:0 0;border:0;border-bottom:2px solid #0000;flex-shrink:0;margin-bottom:-1px;padding:10px 16px;font-size:14px;font-weight:500;transition:color .15s,border-color .15s}.tf-ws .prompts-ai-tab:hover{color:var(--tfai-fg)}.tf-ws .prompts-ai-tab.active{color:var(--tfai-fg);border-bottom-color:var(--tfai-accent-2,#2563eb);font-weight:600}.tf-ws .prompts-overview-step-nav{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.tf-ws .prompts-overview-step{border:1px solid var(--tfai-line);font-family:var(--sans);color:var(--tfai-fg-mute);cursor:pointer;background:#fff;border-radius:8px;flex:0 auto;align-items:center;gap:6px;padding:7px 11px;font-size:12.5px;font-weight:500;transition:border-color .15s,background .15s,color .15s;display:inline-flex}.tf-ws .prompts-overview-step:hover{border-color:var(--tfai-line-2);color:var(--tfai-fg)}.tf-ws .prompts-overview-step.active{border-color:var(--tfai-accent-2,#2563eb);color:var(--tfai-fg);background:#eef2ff;font-weight:600}.tf-ws .prompts-overview-step-num{font-family:var(--mono);opacity:.85;font-size:11px}.tf-ws .prompts-role-toggle{border:1px solid var(--tfai-line);background:#fff;border-radius:8px;margin-bottom:16px;display:inline-flex;overflow:hidden}.tf-ws .prompts-role-toggle button{border:0;border-right:1px solid var(--tfai-line);cursor:pointer;text-align:left;background:#fff;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 18px;transition:background .15s,color .15s;display:flex}.tf-ws .prompts-role-toggle button:last-child{border-right:0}.tf-ws .prompts-role-toggle button:hover{background:var(--tfai-input)}.tf-ws .prompts-role-toggle button.active{color:var(--tfai-fg);background:#eef2ff}.tf-ws .prompts-role-label{font-family:var(--sans);font-size:13px;font-weight:600}.tf-ws .prompts-role-meta{font-family:var(--mono);color:var(--tfai-fg-mute);font-size:11px}.tf-ws .admin-card h3{font-family:var(--sans);color:var(--tfai-fg);text-transform:none;letter-spacing:0;margin:0;font-size:15px;font-weight:600}.tf-ws .prompts-card-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.tf-ws .prompts-card-titles{flex:1;min-width:0}.tf-ws .prompts-card-actions{flex-shrink:0;align-items:flex-start;gap:8px;display:flex}.tf-ws .prompts-btn{border:1px solid var(--tfai-line);font-family:var(--sans);color:var(--tfai-fg);cursor:pointer;background:#fff;border-radius:8px;padding:9px 18px;font-size:13px;font-weight:500;transition:border-color .15s,background .15s,color .15s}.tf-ws .prompts-btn:hover:not(:disabled){border-color:var(--tfai-line-2);background:var(--tfai-input)}.tf-ws .prompts-btn:disabled{opacity:.5;cursor:not-allowed}.tf-ws .prompts-btn.primary{background:var(--tfai-accent-2,#2563eb);border-color:var(--tfai-accent-2,#2563eb);color:#fff;font-weight:600}.tf-ws .prompts-btn.primary:hover:not(:disabled){background:#1d4ed8;border-color:#1d4ed8}.tf-ws .prompts-btn.danger{color:#b91c1c}.tf-ws .prompts-btn.danger:hover:not(:disabled){background:#fee2e2;border-color:#fecaca}.tf-ws .prompts-btn.small{border-radius:6px;padding:4px 10px;font-size:12px;font-weight:500}.tf-ws .prompts-card-head .prompts-btn-save{min-width:88px}.tf-ws .prompts-first-version-hint{border:1px dashed var(--tfai-line);background:#f8fafc;border-radius:8px;margin:0 0 12px;padding:10px 12px}.tf-ws .admin-card .prompts-version-select{align-items:center;gap:10px;width:100%;margin-bottom:10px;display:flex}.tf-ws .admin-card .prompts-version-select .prompts-select{flex:1;width:100%;min-width:0}.tf-ws .admin-card .prompts-textarea{box-sizing:border-box;width:100%;margin-bottom:10px;display:block}.tf-ws .admin-card .prompts-actions{flex-wrap:wrap;align-items:center;gap:10px;width:100%;margin-top:12px;display:flex}.tf-ws .admin-card .prompts-actions .prompts-note-input{flex:1;min-width:min(100%,280px)}.tf-ws .admin-card .prompts-actions-note-only .prompts-note-input{flex:none;width:100%}.prompts-desc{font-family:var(--sans);color:var(--tfai-fg-mute);text-transform:none;letter-spacing:0;margin-top:4px;font-size:12px;font-weight:400;display:block}.prompts-version-select{align-items:center;gap:10px;margin-bottom:10px;display:flex}.prompts-select{border:1px solid var(--tfai-line);font-family:var(--mono);color:var(--tfai-fg);background:#fff;border-radius:6px;flex:1;padding:6px 10px;font-size:12.5px}.prompts-textarea{box-sizing:border-box;background:var(--tfai-input);border:1px solid var(--tfai-line);width:100%;font-family:var(--mono);color:var(--tfai-fg);resize:vertical;border-radius:8px;min-height:200px;padding:12px 14px;font-size:12.5px;line-height:1.55}.prompts-textarea:focus{outline:2px solid var(--tfai-accent-2,#2563eb);outline-offset:-1px}.prompts-actions{align-items:center;gap:10px;margin-top:10px;display:flex}.prompts-note-input{border:1px solid var(--tfai-line);font-family:var(--sans);color:var(--tfai-fg);background:#fff;border-radius:6px;flex:1;padding:8px 12px;font-size:13px}.prompts-note-input:focus{outline:2px solid var(--tfai-accent-2,#2563eb);outline-offset:-1px}.prompts-btn{border:1px solid var(--tfai-line);font-family:var(--sans);color:var(--tfai-fg);cursor:pointer;background:#fff;border-radius:6px;padding:8px 14px;font-size:13px;font-weight:500;transition:border-color .15s,background .15s}.prompts-btn:hover:not(:disabled){border-color:var(--tfai-line-2);background:var(--tfai-input)}.prompts-btn:disabled{opacity:.5;cursor:not-allowed}.prompts-btn.primary{background:var(--tfai-accent-2,#2563eb);border-color:var(--tfai-accent-2,#2563eb);color:#fff}.prompts-btn.primary:hover:not(:disabled){background:#1d4ed8;border-color:#1d4ed8}.prompts-btn.danger{color:#b91c1c}.prompts-btn.danger:hover:not(:disabled){background:#fee2e2;border-color:#fecaca}.prompts-btn.small{padding:4px 10px;font-size:12px}.prompts-hint{font-family:var(--sans);color:var(--tfai-fg-dim);margin:8px 0 0;font-size:12px}.prompts-banner{font-family:var(--sans);border-radius:8px;padding:10px 14px;font-size:13px}.prompts-banner-ok{color:#166534;background:#dcfce7;border:1px solid #bbf7d0}.prompts-banner-err{color:#991b1b;background:#fee2e2;border:1px solid #fecaca}.prompts-table{border-collapse:collapse;width:100%;font-family:var(--sans);font-size:13px}.prompts-table th{text-align:left;color:var(--tfai-fg-mute);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--tfai-line);padding:8px 10px;font-size:11.5px;font-weight:600}.prompts-table td{border-bottom:1px solid var(--tfai-line-2);vertical-align:middle;padding:10px}.prompts-table tr.selected td{background:#eef2ff}.prompts-table tr:hover td{background:var(--tfai-input)}.prompts-table .mono{font-family:var(--mono);font-size:12px}.prompts-note-cell{color:var(--tfai-fg-mute);text-overflow:ellipsis;white-space:nowrap;max-width:260px;overflow:hidden}.prompts-row-actions{flex-wrap:wrap;gap:6px;display:flex}.prompts-empty{text-align:center;color:var(--tfai-fg-dim);padding:20px}.auth-cluster{align-items:center;gap:8px;display:flex}.auth-user{border:1px solid var(--tfai-line);color:var(--tfai-fg);font-family:var(--sans);border-radius:999px;align-items:center;gap:8px;padding:4px 10px 4px 4px;font-size:13px;font-weight:500;text-decoration:none;transition:border-color .15s,background .15s;display:flex}.auth-user:hover{border-color:var(--tfai-line-2);background:var(--tfai-input)}.auth-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:24px;height:24px}.auth-avatar-fallback{background:var(--tfai-accent-2,#2563eb);color:#fff;font-family:var(--sans);justify-content:center;align-items:center;font-size:11px;font-weight:600;display:inline-flex}.auth-name{text-overflow:ellipsis;white-space:nowrap;max-width:140px;overflow:hidden}.login-page{background:var(--bg,#fafaf8);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{border:1px solid var(--tfai-line);text-align:center;background:#fff;border-radius:14px;width:100%;max-width:380px;padding:40px 36px;box-shadow:0 8px 24px #0000000a}.login-title{font-family:var(--serif);color:var(--tfai-fg);margin:0 0 8px;font-size:24px;font-weight:600}.login-sub{font-family:var(--sans);color:var(--tfai-fg-mute);margin:0 0 24px;font-size:13.5px;line-height:1.55}.login-google-btn{border:1px solid var(--tfai-line);width:100%;font-family:var(--sans);color:var(--tfai-fg);background:#fff;border-radius:10px;justify-content:center;align-items:center;gap:10px;padding:11px 16px;font-size:14px;font-weight:500;text-decoration:none;transition:border-color .15s,box-shadow .15s;display:inline-flex}.login-google-btn:hover{border-color:var(--tfai-fg-dim);box-shadow:0 2px 6px #0000000a}.projects-page{flex-direction:column;gap:20px;max-width:1080px;margin:0 auto;padding:36px 24px;display:flex}.projects-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;display:flex}.projects-title{font-family:var(--serif);color:var(--tfai-fg);margin:0 0 4px;font-size:28px;font-weight:600}.projects-sub{font-family:var(--sans);color:var(--tfai-fg-mute);margin:0;font-size:13.5px}.projects-user{border:1px solid var(--tfai-line);background:#fff;border-radius:999px;align-items:center;gap:10px;padding:6px 12px;display:flex}.projects-avatar{object-fit:cover;border-radius:50%;width:28px;height:28px}.projects-user-name{font-family:var(--sans);color:var(--tfai-fg);text-overflow:ellipsis;white-space:nowrap;max-width:160px;font-size:13px;font-weight:500;overflow:hidden}.projects-toolbar{justify-content:flex-end;display:flex}.projects-create-card{flex-direction:column;gap:12px;display:flex}.projects-form-row{align-items:center;gap:12px;display:flex}.projects-form-row .admin-key{min-width:80px}.projects-form-row .prompts-note-input{flex:1}.projects-form-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.projects-row-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.project-admin-project-name{color:var(--tfai-fg-dim);padding:0 16px 12px;font-size:13px;font-weight:600}.project-admin-nav-links{flex-direction:column;gap:8px;padding:12px 16px 24px;display:flex}.board-table-card{overflow:auto}.organize-btn{color:#92400e;background:#fef7e6;border-color:#fcd34d;font-weight:600}.organize-btn:hover:not(:disabled){background:#fde68a;border-color:#f59e0b}.organize-preview{border:1px solid var(--tfai-accent-2,#2563eb);background:#eef2ff;border-radius:10px;flex-direction:column;gap:10px;margin:14px 0;padding:14px;display:flex}.organize-preview-header{font-family:var(--sans);color:var(--tfai-fg);justify-content:space-between;align-items:center;font-size:13.5px;display:flex}.organize-preview-list{flex-direction:column;gap:6px;max-height:320px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.organize-preview-item label{border:1px solid var(--tfai-line);cursor:pointer;background:#fff;border-radius:6px;align-items:flex-start;gap:10px;padding:8px 10px;transition:border-color .12s;display:flex}.organize-preview-item label:hover{border-color:var(--tfai-line-2)}.organize-preview-item.empty label{cursor:not-allowed;opacity:.55}.organize-preview-item input[type=checkbox]{flex-shrink:0;margin-top:3px}.organize-preview-content{flex:1;min-width:0}.organize-preview-label{font-family:var(--sans);color:var(--tfai-fg);margin-bottom:3px;font-size:12.5px;font-weight:600;display:block}.organize-preview-snippet{font-family:var(--sans);color:var(--tfai-fg-mute);white-space:pre-wrap;margin:0;font-size:12px;line-height:1.45}.organize-preview-actions{border-top:1px solid #c7d2fe;justify-content:flex-end;gap:8px;padding-top:6px;display:flex}.apply-dialog-overlay{z-index:9999;background:#0a0e1a80;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.apply-dialog{background:#fff;border-radius:12px;flex-direction:column;gap:14px;width:100%;max-width:440px;padding:24px;display:flex;box-shadow:0 12px 36px #0000002e}.apply-dialog h3{font-family:var(--serif);color:var(--tfai-fg);margin:0;font-size:18px}.apply-dialog-desc{font-family:var(--sans);color:var(--tfai-fg-mute);margin:0;font-size:13px}.apply-dialog-option{border:1px solid var(--tfai-line);cursor:pointer;border-radius:8px;align-items:flex-start;gap:12px;padding:12px 14px;transition:border-color .12s,background .12s;display:flex}.apply-dialog-option:hover{border-color:var(--tfai-line-2);background:var(--tfai-input)}.apply-dialog-option.selected{border-color:var(--tfai-accent-2,#2563eb);background:#eef2ff}.apply-dialog-option input[type=radio]{flex-shrink:0;margin-top:4px}.apply-dialog-option strong{font-family:var(--sans);color:var(--tfai-fg);margin-bottom:3px;font-size:13.5px;font-weight:600;display:block}.apply-dialog-option p{font-family:var(--sans);color:var(--tfai-fg-mute);margin:0;font-size:12px}.apply-dialog-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.menu-ai-icon-btn{border:1px solid var(--tfai-line);color:var(--tfai-fg-mute);font-family:var(--sans);cursor:pointer;background:#fff;border-radius:6px;padding:5px 8px;font-size:12px}.menu-ai-icon-btn:hover{border-color:var(--tfai-line-2);color:var(--tfai-fg);background:var(--tfai-input)}.menu-ai-typing{align-items:center;gap:5px;height:18px;padding:2px 0;display:inline-flex}.menu-ai-typing i{background:var(--tfai-fg-dim);border-radius:50%;width:7px;height:7px;animation:1.1s ease-in-out infinite menuAiDot;display:inline-block}.menu-ai-typing i:nth-child(2){animation-delay:.15s}.menu-ai-typing i:nth-child(3){animation-delay:.3s}@keyframes menuAiDot{0%,80%,to{opacity:.35;transform:translateY(0)}40%{opacity:1;transform:translateY(-5px)}}.issue-modal-overlay{z-index:9000;background:#00000073;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.issue-modal{background:var(--tfai-bg,#fff);border:1px solid var(--tfai-line);border-radius:12px;flex-direction:column;gap:0;width:100%;max-width:520px;display:flex;box-shadow:0 8px 32px #0000002e}.issue-modal-header{border-bottom:1px solid var(--tfai-line);justify-content:space-between;align-items:center;padding:18px 20px 14px;display:flex}.issue-modal-title{font-family:var(--serif);color:var(--tfai-fg);margin:0;font-size:18px;font-weight:600}.issue-modal-close{cursor:pointer;color:var(--tfai-fg-dim);background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:16px}.issue-modal-close:hover{background:var(--tfai-input)}.issue-modal-body{flex-direction:column;gap:14px;padding:18px 20px;display:flex}.issue-modal-footer{border-top:1px solid var(--tfai-line);justify-content:flex-end;gap:8px;padding:14px 20px 18px;display:flex}.issue-field{flex-direction:column;gap:5px;display:flex}.issue-field-row{gap:16px;display:flex}.issue-field-row .issue-field{flex:1}.issue-label{font-family:var(--sans);color:var(--tfai-fg-mute);font-size:12.5px;font-weight:600}.rag-project-bar{background:var(--surface,#fff);border:1px solid var(--border,#e5e7eb);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:4px;padding:10px 16px;display:flex}.rag-project-label{color:#555;white-space:nowrap;font-size:.82rem;font-weight:600}.rag-project-select{border:1px solid var(--border,#d1d5db);background:var(--surface,#fff);color:inherit;cursor:pointer;border-radius:6px;min-width:160px;padding:5px 10px;font-size:.85rem}.rag-fallback-note{color:#9ca3af;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;margin:4px 0 8px;padding:6px 12px;font-size:.78rem}.project-rag-pane{flex-direction:column;gap:1rem;display:flex}.project-rag-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.project-rag-stats{color:var(--tfai-fg-dim);margin:0;font-size:.9rem}.project-rag-upload-card .rag-drop-zone{margin-top:0}.rag-drop-zone{border:2px dashed var(--border,#d1d5db);cursor:pointer;color:#6b7280;border-radius:8px;align-items:center;gap:10px;padding:14px 16px;font-size:.85rem;transition:border-color .15s,background .15s;display:flex}.rag-drop-zone:hover{background:#f5f3ff;border-color:#6366f1}.rag-drop-zone.has-file{color:#065f46;background:#f0fdf4;border-color:#10b981}.rag-file-icon{flex-shrink:0;font-size:1.2rem}.rag-upload-ok{color:#059669;margin-top:10px;font-size:.82rem;font-weight:500}.rag-source-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.rag-source-item{background:var(--surface2,#f9fafb);border:1px solid var(--border,#e5e7eb);border-radius:7px;align-items:center;gap:8px;padding:8px 10px;font-size:.84rem;display:flex}.rag-source-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.rag-source-chunks{color:#6b7280;white-space:nowrap;background:#e5e7eb;border-radius:999px;padding:2px 8px;font-size:.75rem}.rag-delete-btn{color:#dc2626;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #fca5a5;border-radius:6px;flex-shrink:0;padding:3px 10px;font-size:.75rem;transition:background .15s}.rag-delete-btn:hover:not(:disabled){background:#fee2e2}.rag-delete-btn:disabled{opacity:.5;cursor:not-allowed}.rag-search-row{align-items:center;gap:8px;margin-bottom:4px;display:flex}.rag-results{flex-direction:column;gap:10px;margin-top:12px;display:flex}.rag-result-item{border:1px solid var(--border,#e5e7eb);border-radius:8px;overflow:hidden}.rag-result-header{background:#f3f4f6;align-items:center;gap:8px;padding:6px 12px;font-size:.78rem;display:flex}.rag-result-rank{color:#4f46e5;font-weight:700}.rag-result-source{color:#374151;text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.rag-result-score{color:#9ca3af;white-space:nowrap}.rag-result-content{color:#374151;white-space:pre-wrap;word-break:break-word;margin:0;padding:10px 12px;font-size:.83rem;line-height:1.55}.ch-list{flex-direction:column;gap:6px;display:flex}.ch-item{border:1px solid var(--border,#e5e7eb);background:var(--surface,#fff);border-radius:8px;overflow:hidden}.ch-row{cursor:pointer;text-align:left;width:100%;color:inherit;background:0 0;border:none;align-items:center;gap:8px;padding:10px 14px;transition:background .15s;display:flex}.ch-row:hover{background:var(--hover,#f3f4f6)}.ch-expand{color:#888;flex-shrink:0;font-size:.85rem}.ch-title{white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.9rem;font-weight:500;overflow:hidden}.ch-meta{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;display:flex}.ch-badge{color:#555;white-space:nowrap;background:#e5e7eb;border-radius:999px;padding:2px 7px;font-size:.72rem}.ch-badge.accent{color:#1d4ed8;background:#dbeafe}.ch-date{color:#9ca3af;white-space:nowrap;font-size:.72rem}.ch-detail{border-top:1px solid var(--border,#e5e7eb);background:var(--surface2,#fafafa);flex-direction:column;gap:10px;padding:12px 14px;display:flex}.ch-msg{border-radius:8px;padding:10px 12px;font-size:.85rem;line-height:1.55}.ch-msg-user{background:#f0f9ff;border:1px solid #bae6fd}.ch-msg-assistant{background:#f0fdf4;border:1px solid #bbf7d0}.ch-msg-header{align-items:center;gap:8px;margin-bottom:6px;display:flex}.ch-role{color:#555;font-size:.78rem;font-weight:600}.ch-star{color:#f59e0b;letter-spacing:1px;font-size:.82rem}.ch-content{white-space:pre-wrap;word-break:break-word;color:#374151;margin:0}.req-table-container{border:1px solid var(--tfai-line);background:#fff;border-radius:10px;flex-direction:column;gap:12px;padding:14px;display:flex}.req-table-header-meta{grid-template-columns:1fr 1fr;gap:10px;display:grid}.req-meta-field{flex-direction:column;gap:4px;display:flex}.req-meta-field>span{font-family:var(--sans);color:var(--tfai-fg);font-size:12px;font-weight:600}.req-meta-field>input{border:1px solid var(--tfai-line);background:var(--tfai-input);font-family:var(--sans);color:var(--tfai-fg);border-radius:6px;padding:8px 10px;font-size:13px}.req-meta-field>input:focus{border-color:var(--tfai-accent-2,#2563eb);outline:none}.req-table-scroll{border:1px solid var(--tfai-line);border-radius:8px;width:100%;overflow-x:auto}.req-table{border-collapse:collapse;table-layout:fixed;width:100%;font-family:var(--sans);color:var(--tfai-fg);font-size:12.5px}.req-table thead th{border-bottom:1px solid var(--tfai-line);text-align:left;color:var(--tfai-fg);white-space:nowrap;background:#f1f5f9;padding:8px 6px;font-size:12px;font-weight:600}.req-table tbody td{border-bottom:1px solid var(--tfai-line);vertical-align:top;padding:4px 5px}.req-table tbody tr:hover td{background:#fafbfc}.req-table tbody td textarea{resize:vertical;width:100%;min-height:32px;font-family:var(--sans);color:var(--tfai-fg);background:0 0;border:1px solid #0000;border-radius:4px;padding:5px 7px;font-size:12.5px;line-height:1.45}.req-table tbody td textarea:focus{border-color:var(--tfai-accent-2,#2563eb);background:#fff;outline:none}.req-table tbody td.req-cell-grouped textarea{color:var(--tfai-fg-mute);font-style:italic}.req-table tbody td.req-cell-grouped textarea::placeholder{color:#cbd5e1;font-style:italic}.req-table-empty{text-align:center;color:var(--tfai-fg-mute);padding:24px;font-size:12.5px}.req-row-delete-btn{cursor:pointer;color:var(--tfai-fg-mute);background:0 0;border:none;border-radius:4px;padding:4px;font-size:14px;line-height:1}.req-row-delete-btn:hover:not(:disabled){color:#dc2626;background:#fee2e2}.req-row-delete-btn:disabled{opacity:.4;cursor:not-allowed}.req-table-footer{justify-content:space-between;align-items:center;padding-top:4px;display:flex}.req-add-row-btn{border:1px dashed var(--tfai-line-2);font-family:var(--sans);color:var(--tfai-fg);cursor:pointer;background:#fff;border-radius:6px;padding:7px 14px;font-size:12.5px;transition:all .12s}.req-add-row-btn:hover:not(:disabled){border-color:var(--tfai-accent-2,#2563eb);color:var(--tfai-accent-2,#2563eb);background:#eef2ff}.req-add-row-btn:disabled{opacity:.5;cursor:not-allowed}.req-table-count{font-family:var(--sans);color:var(--tfai-fg-mute);font-size:12px}.req-organize-preview .req-preview-section{border-top:1px solid #c7d2fe;flex-direction:column;gap:6px;padding:8px 0;display:flex}.req-organize-preview .req-preview-section:first-of-type{border-top:none}.req-preview-section-title{font-family:var(--sans);color:var(--tfai-fg);padding-left:4px;font-size:12px;font-weight:600}.req-preview-header-row{border:1px solid var(--tfai-line);cursor:pointer;background:#fff;border-radius:6px;align-items:flex-start;gap:10px;padding:8px 10px;display:flex}.req-preview-header-row.empty{cursor:not-allowed;opacity:.55}.req-preview-header-row input[type=checkbox]{flex-shrink:0;margin-top:3px}.req-preview-header-content{flex:1;min-width:0}.req-preview-row-list{flex-direction:column;gap:4px;max-height:280px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.req-preview-row{border:1px solid var(--tfai-line);background:#fff;border-radius:6px}.req-preview-row label{cursor:pointer;align-items:flex-start;gap:10px;padding:7px 10px;display:flex}.req-preview-row.empty label{cursor:not-allowed;opacity:.55}.req-preview-row input[type=checkbox]{flex-shrink:0;margin-top:3px}.req-preview-row-content{flex:1;min-width:0}.req-preview-row-meta{font-family:var(--sans);align-items:baseline;gap:8px;margin-bottom:2px;display:flex}.req-preview-row-id{color:var(--tfai-accent-2,#2563eb);font-size:11.5px;font-weight:600;font-family:var(--mono,monospace)}.req-preview-row-name{color:var(--tfai-fg);font-size:12.5px;font-weight:600}.markdown-body{font-family:var(--sans);word-break:break-word;font-size:13px;line-height:1.55}.markdown-body>:first-child{margin-top:0}.markdown-body>:last-child{margin-bottom:0}.markdown-body p{white-space:pre-wrap;margin:0 0 8px}.markdown-body p:last-child{margin-bottom:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4{font-family:var(--serif,var(--sans));color:inherit;margin:14px 0 6px;font-weight:700;line-height:1.3}.markdown-body h1{opacity:.95;border-bottom:1px solid;padding-bottom:4px;font-size:17px}.markdown-body h2{font-size:15.5px}.markdown-body h3{font-size:14px}.markdown-body h4{text-transform:uppercase;letter-spacing:.4px;opacity:.85;font-size:13px}.markdown-body ul,.markdown-body ol{margin:4px 0 8px;padding-left:22px}.markdown-body li{margin:2px 0}.markdown-body li>p{margin:0}.markdown-body ul ul,.markdown-body ol ol,.markdown-body ul ol,.markdown-body ol ul{margin:2px 0}.markdown-body strong{font-weight:700}.markdown-body em{font-style:italic}.markdown-body del{opacity:.7;text-decoration:line-through}.markdown-body a{color:var(--tfai-accent-2,#2563eb);text-underline-offset:2px;text-decoration:underline}.markdown-body a:hover{text-decoration:none}.markdown-body blockquote{border-left:3px solid var(--tfai-line-2,#cbd5e1);background:#94a3b81a;margin:6px 0;padding:6px 12px;font-style:italic}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body code{font-family:var(--mono,"SFMono-Regular",Consolas,monospace);background:#94a3b82e;border-radius:4px;padding:1px 5px;font-size:12px}.markdown-body pre{color:#e2e8f0;font-family:var(--mono,"SFMono-Regular",Consolas,monospace);background:#0f172a;border-radius:6px;margin:6px 0;padding:10px 12px;font-size:12px;line-height:1.5;overflow-x:auto}.markdown-body pre code{color:inherit;font-size:inherit;background:0 0;border-radius:0;padding:0}.markdown-body table{border-collapse:collapse;width:100%;margin:8px 0;font-size:12.5px;display:block;overflow-x:auto}.markdown-body th,.markdown-body td{border:1px solid var(--tfai-line,#e2e8f0);text-align:left;vertical-align:top;padding:5px 8px}.markdown-body th{background:#94a3b826;font-weight:600}.markdown-body tbody tr:nth-child(2n){background:#94a3b80d}.markdown-body hr{border:none;border-top:1px solid var(--tfai-line,#e2e8f0);margin:10px 0}.markdown-body input[type=checkbox]{margin-right:6px}.loop-grid{grid-template-columns:repeat(4,1fr);gap:18px;display:grid;position:relative}@media (width<=1023px){.loop-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){.loop-grid{grid-template-columns:1fr}}.loop-card{background:var(--bg-elev);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:10px;padding:22px 22px 24px;transition:border-color .15s,transform .15s;display:flex;position:relative}.loop-card:hover{border-color:var(--accent);transform:translateY(-1px)}.loop-card-title{letter-spacing:-.01em;color:var(--fg);font-size:16px;font-weight:700;font-family:var(--serif,var(--sans));margin:0}.loop-card-desc{color:var(--fg-mute);margin:0;font-size:14px;line-height:1.6}.loop-card-arrow{width:24px;height:24px;color:var(--accent);background:var(--bg);pointer-events:none;z-index:1;border-radius:50%;place-items:center;font-size:18px;font-weight:600;display:grid;position:absolute;top:50%;right:-14px;transform:translateY(-50%)}@media (width<=1023px){.loop-card-arrow{display:none}}.tf-ws{--tf-bg:#fafaf8;--tf-bg-2:#f5f5f1;--tf-paper:#fff;--tf-paper-2:#fcfcfa;--tf-code-bg:#f5f5f4;--tf-fg:#0a0e1a;--tf-fg-2:#1f2433;--tf-fg-mute:#5a6072;--tf-fg-dim:#8a91a3;--tf-fg-disabled:#b8bcc6;--tf-line:#e5e7eb;--tf-line-2:#d9dce3;--tf-line-soft:#eff0f2;--tf-accent:#1e2d5c;--tf-accent-2:#2563eb;--tf-st-todo:#9ca3af;--tf-st-wip:#b58a14;--tf-st-ai:#7c3aed;--tf-st-review:#c2410c;--tf-st-done:#047857;--tf-st-soon:#d1d5db;--tf-st-rag:#1d4ed8;--tf-topbar-h:52px;--tf-nav-w:272px;--tf-ai-w:400px;z-index:30;background:var(--tf-bg);color:var(--tf-fg);font-family:var(--serif);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;flex-direction:column;font-size:14px;line-height:1.55;display:flex;position:fixed;inset:0;overflow:hidden}.tf-ws *{box-sizing:border-box}.tf-ws a{color:inherit;text-decoration:none}.tf-ws button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.tf-ws ::selection{color:#0a0e1a;background:#dbeafe}.tf-ws :focus-visible{outline:2px solid var(--tf-accent-2);outline-offset:2px;border-radius:4px}.tf-ws .topbar{height:var(--tf-topbar-h);background:var(--tf-paper);border-bottom:1px solid var(--tf-line);z-index:5;flex:none;justify-content:space-between;align-items:center;gap:16px;padding:0 16px;display:flex;position:relative}.tf-ws .tb-left{align-items:center;gap:14px;min-width:0;display:flex}.tf-ws .brand{font-family:var(--sans);letter-spacing:-.01em;color:var(--tf-fg);align-items:center;gap:8px;font-size:14px;font-weight:600;display:inline-flex}.tf-ws .brand .mark{width:22px;height:22px;color:var(--tf-fg);place-items:center;display:grid}.tf-ws .brand .mark svg{width:100%;height:100%;display:block}.tf-ws .brand .tld{color:var(--tf-fg-dim);font-weight:500}.tf-ws .tb-sep{background:var(--tf-line);width:1px;height:20px}.tf-ws .project-switcher{font-family:var(--sans);color:var(--tf-fg);border-radius:6px;align-items:center;gap:8px;padding:5px 10px;font-size:13px;font-weight:500;transition:background .12s;display:inline-flex}.tf-ws .project-switcher:hover{background:#f1f1ee}.tf-ws .project-switcher .tag{font-family:var(--mono);color:var(--tf-fg-mute);letter-spacing:.02em;background:#f1f1ee;border-radius:4px;padding:1px 6px;font-size:10.5px;font-weight:500}.tf-ws .project-switcher svg{color:var(--tf-fg-dim)}.tf-ws .breadcrumb{font-family:var(--sans);color:var(--tf-fg-mute);align-items:center;gap:6px;min-width:0;font-size:12.5px;display:flex}.tf-ws .breadcrumb .sep{color:var(--tf-fg-dim)}.tf-ws .breadcrumb .here{color:var(--tf-fg);font-weight:500}.tf-ws .tb-right{align-items:center;gap:4px;display:flex}.tf-ws .tb-icon{width:32px;height:32px;color:var(--tf-fg-mute);border-radius:6px;place-items:center;transition:background .12s,color .12s;display:grid}.tf-ws .tb-icon:hover{color:var(--tf-fg);background:#f1f1ee}.tf-ws .tb-search{color:var(--tf-fg-mute);font-family:var(--sans);background:#f1f1ee;border:1px solid #0000;border-radius:6px;align-items:center;gap:8px;min-width:180px;padding:5px 10px;font-size:12.5px;transition:background .12s,border-color .12s;display:inline-flex}.tf-ws .tb-search:hover{border-color:var(--tf-line);background:#fff}.tf-ws .tb-search .k{font-family:var(--mono);color:var(--tf-fg-dim);border:1px solid var(--tf-line);background:#fff;border-radius:3px;margin-left:auto;padding:1px 5px;font-size:10.5px}.tf-ws .tb-avatar{color:#fff;width:28px;height:28px;font-family:var(--sans);background:linear-gradient(135deg,#1e40af,#7c3aed);border-radius:50%;place-items:center;margin-left:6px;font-size:11px;font-weight:600;display:grid}@media (width<=1100px){.tf-ws .tb-search{min-width:120px}.tf-ws .breadcrumb{display:none}}.tf-ws .layout{grid-template-columns:var(--tf-nav-w) 1fr var(--tf-ai-w);flex:1;min-height:0;transition:grid-template-columns .2s;display:grid}@media (width<=1400px){.tf-ws{--tf-ai-w:380px}}@media (width<=1200px){.tf-ws{--tf-nav-w:240px;--tf-ai-w:360px}}.tf-ws.ai-closed .layout{grid-template-columns:var(--tf-nav-w) minmax(0, 1fr)}.tf-ws.ai-closed .editor{border-right:0}.tf-ws.ai-closed .ai-panel{display:none}.tf-ws.ai-closed .ai-reopen{display:inline-flex}.tf-ws.ai-popup .layout{grid-template-columns:var(--tf-nav-w) minmax(0, 1fr)}.tf-ws.ai-popup .ai-panel{z-index:60;background:var(--tf-paper);border:1px solid var(--tf-line);border-right:0;border-radius:14px;flex-direction:column;width:min(1092px,100vw - 48px);height:min(640px,100vh - 80px);display:flex;position:fixed;inset:50% auto auto 50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:inset 0 1px #ffffff80,0 28px 60px -12px #0f121c47,0 12px 24px -8px #0f121c1f}.tf-ws.ai-popup .ai-panel .ai-view{flex-direction:column;flex:1;min-height:0;display:flex}.tf-ws.ai-popup .ai-panel .ai-view[hidden]{display:none}.tf-ws.ai-popup .ai-panel .ai-head{background:linear-gradient(180deg, #fcfcfa 0%, var(--tf-paper) 100%);border-bottom:1px solid var(--tf-line);padding:16px 20px 14px}.tf-ws.ai-popup .ai-panel .ai-desc{margin:14px 20px 0}.tf-ws.ai-popup .ai-panel .ai-conv{gap:14px;padding:18px 20px}.tf-ws.ai-popup .ai-panel .ai-footer{border-top:1px solid var(--tf-line);padding:14px 20px 16px}.tf-ws.ai-popup .ai-panel .ai-hist-list{padding:12px 16px 16px}.tf-ws.ai-popup .ai-panel .ai-msg.ai .bubble{max-width:100%}.tf-ws.ai-popup .ai-panel .ai-msg.user .bubble{max-width:80%}@media (width<=900px){.tf-ws.ai-popup .ai-panel{width:calc(100vw - 32px);height:calc(100vh - 64px)}}.tf-ws .tb-hamburger,.tf-ws .nav-backdrop{display:none}@media (width<=900px){.tf-ws .layout,.tf-ws.ai-closed .layout,.tf-ws.ai-popup .layout{grid-template-columns:1fr;position:relative}.tf-ws:not(.nav-open) .nav{display:none}.tf-ws.nav-open .nav{z-index:25;background:var(--tf-bg);border-right:1px solid var(--tf-line);width:min(280px,82%);animation:.2s ease-out tf-ws-nav-in;position:absolute;top:0;bottom:0;left:0;box-shadow:2px 0 28px #0f121c33}.tf-ws.nav-open .nav-backdrop{z-index:24;background:#0f121c66;animation:.2s ease-out tfai-fade-in;display:block;position:absolute;inset:0}.tf-ws:not(.ai-popup) .ai-panel{display:none}.tf-ws .tb-hamburger{width:34px;height:34px;color:var(--tf-fg-mute);border-radius:6px;place-items:center;transition:background .12s,color .12s;display:inline-grid}.tf-ws .tb-hamburger:hover{color:var(--tf-fg);background:#f1f1ee}.tf-ws .topbar{gap:8px;padding:0 10px}.tf-ws .tb-left{flex:1;gap:8px;min-width:0}.tf-ws .tb-sep,.tf-ws .brand .tld{display:none}.tf-ws .project-switcher{min-width:0;padding:5px 8px;font-size:12.5px;overflow:hidden}.tf-ws .project-switcher>span:not(.tag){text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.tf-ws .tb-right .tb-icon{display:none}}@keyframes tf-ws-nav-in{0%{transform:translate(-100%)}to{transform:translate(0)}}.tf-ws .nav{background:var(--tf-bg);border-right:1px solid var(--tf-line);flex-direction:column;justify-content:flex-start;align-items:stretch;height:auto;min-height:0;display:flex;overflow:hidden}.tf-ws .nav-head{border-bottom:1px solid var(--tf-line-soft);padding:14px 14px 10px}.tf-ws .nav-head .lbl{font-family:var(--mono);letter-spacing:.12em;color:var(--tf-fg-dim);text-transform:uppercase;font-size:10px}.tf-ws .nav-head h2{font-family:var(--serif);letter-spacing:-.01em;color:var(--tf-fg);align-items:center;gap:8px;margin:4px 0 0;font-size:15px;font-weight:600;display:flex}.tf-ws .nav-head .progress{background:#eaeae6;border-radius:2px;height:4px;margin-top:10px;overflow:hidden}.tf-ws .nav-head .progress i{background:#374151;border-radius:2px;width:42%;height:100%;display:block}.tf-ws .nav-head .progress-row{font-family:var(--mono);color:var(--tf-fg-dim);justify-content:space-between;margin-top:6px;font-size:10.5px;display:flex}.tf-ws .nav-body{flex:1;padding:10px 8px 16px;overflow-y:auto}.tf-ws .nav-section{margin-top:14px}.tf-ws .nav-section:first-child{margin-top:4px}.tf-ws .nav-section h3{font-family:var(--mono);letter-spacing:.12em;color:var(--tf-fg-dim);text-transform:uppercase;justify-content:space-between;align-items:center;margin:0 0 4px;padding:0 8px;font-size:10px;font-weight:500;display:flex}.tf-ws .nav-section h3 .ct{font-family:var(--sans);color:var(--tf-fg-dim);letter-spacing:0;font-size:10.5px;font-weight:500}.tf-ws .nav-item{width:100%;font-family:var(--sans);color:var(--tf-fg-2);text-align:left;border-radius:7px;grid-template-columns:18px 1fr auto;align-items:center;gap:10px;padding:7px 10px;font-size:13px;font-weight:500;transition:background .12s;display:grid;position:relative}.tf-ws .nav-item:hover{background:#f1f1ee}.tf-ws .nav-item.active{border:1px solid var(--tf-line);background:#fff;padding:6px 9px;box-shadow:0 1px #00000005}.tf-ws .nav-item .ic{color:var(--tf-fg-dim);place-items:center;display:grid}.tf-ws .nav-item.active .ic{color:var(--tf-fg)}.tf-ws .nav-item .label{min-width:0;color:inherit;align-items:center;gap:6px;display:flex}.tf-ws .nav-item .req{font-family:var(--mono);color:var(--tf-st-review);flex-shrink:0;font-size:9.5px;font-weight:600}.tf-ws .nav-item .num{font-family:var(--mono);color:var(--tf-fg-dim);background:#f1f1ee;border-radius:10px;padding:1px 6px;font-size:10.5px;font-weight:500}.tf-ws .nav-item .st{font-family:var(--mono);letter-spacing:.04em;white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:2px 6px;font-size:9.5px;font-weight:500;display:inline-flex}.tf-ws .st-todo{color:#6b6b78;background:#f1f1ee}.tf-ws .st-wip{color:#854d0e;background:#fef6e0}.tf-ws .st-ai{color:#5b21b6;background:#f3ebff}.tf-ws .st-review{color:#9a3412;background:#ffe7d6}.tf-ws .st-done{color:#065f46;background:#dcfce7}.tf-ws .st-soon{color:#9ca3af;background:#eff0f2}.tf-ws .st-rag{color:#1e3a8a;background:#dbeafe}.tf-ws .nav-foot{border-top:1px solid var(--tf-line-soft);background:var(--tf-paper-2);font-family:var(--mono);color:var(--tf-fg-dim);align-items:center;gap:10px;padding:10px 14px;font-size:10.5px;display:flex}.tf-ws .nav-foot .dot{background:var(--tf-st-done);border-radius:50%;width:6px;height:6px}.tf-ws .nav-foot .grow{flex:1}.tf-ws .nav-foot .ico-btn{width:24px;height:24px;color:var(--tf-fg-mute);border-radius:5px;place-items:center;display:grid}.tf-ws .nav-foot .ico-btn:hover{color:var(--tf-fg);background:#f1f1ee}.tf-ws .editor{background:var(--tf-paper);border-right:1px solid var(--tf-line);flex-direction:column;min-height:0;display:flex;overflow:hidden}.tf-ws .doc-view{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.tf-ws .doc-view[hidden]{display:none}.tf-ws .doc-head{border-bottom:1px solid var(--tf-line-soft);background:var(--tf-paper);flex-direction:column;gap:10px;padding:18px 28px 14px;display:flex}.tf-ws .doc-bc{font-family:var(--sans);color:var(--tf-fg-mute);align-items:center;gap:6px;font-size:11.5px;display:flex}.tf-ws .doc-bc .sep{color:var(--tf-fg-dim)}.tf-ws .doc-bc .here{color:var(--tf-fg);font-weight:500}.tf-ws .doc-title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.tf-ws .doc-title-row .lhs{align-items:center;gap:10px;min-width:0;display:flex}.tf-ws h1.doc-title{font-family:var(--serif);letter-spacing:-.015em;color:var(--tf-fg);align-items:center;gap:10px;min-width:0;margin:0;font-size:22px;font-weight:600;display:flex}.tf-ws .doc-meta{font-family:var(--mono);color:var(--tf-fg-dim);letter-spacing:.02em;flex-wrap:wrap;align-items:center;gap:14px;font-size:11px;display:flex}.tf-ws .doc-meta .pip{align-items:center;gap:5px;display:inline-flex}.tf-ws .doc-meta .pip .dot{background:var(--tf-st-done);border-radius:50%;width:5px;height:5px}.tf-ws .doc-actions{align-items:center;gap:8px;display:flex}.tf-ws .btn{font-family:var(--sans);border:1px solid var(--tf-line);color:var(--tf-fg-2);background:#fff;border-radius:6px;align-items:center;gap:6px;padding:6px 11px;font-size:12.5px;font-weight:500;transition:border-color .12s,background .12s;display:inline-flex}.tf-ws .btn:hover{border-color:var(--tf-line-2);background:#fafaf8}.tf-ws .btn-primary{background:var(--tf-fg);color:#fff;border-color:var(--tf-fg)}.tf-ws .btn-primary:hover{background:#000;border-color:#000}.tf-ws .btn-dropdown{padding-right:8px}.tf-ws .btn-ghost{color:var(--tf-fg-mute);background:0 0;border-color:#0000}.tf-ws .btn-ghost:hover{color:var(--tf-fg);background:#f1f1ee;border-color:#0000}.tf-ws .doc-toc{border-bottom:1px solid var(--tf-line);background:var(--tf-paper);scrollbar-width:none;flex:none;gap:2px;padding:0 20px;display:flex;overflow-x:auto}.tf-ws .doc-toc::-webkit-scrollbar{display:none}.tf-ws .doc-toc a{font-family:var(--sans);color:var(--tf-fg-mute);white-space:nowrap;cursor:pointer;background:0 0;border-bottom:2px solid #0000;flex-shrink:0;align-items:center;gap:7px;margin-bottom:-1px;padding:11px 14px 12px;font-size:13px;font-weight:500;transition:color .12s,border-color .12s;display:inline-flex}.tf-ws .doc-toc a:hover{color:var(--tf-fg)}.tf-ws .doc-toc a.active{color:var(--tf-fg);border-bottom-color:var(--tf-fg);font-weight:600}.tf-ws .doc-toc a .n{font-family:var(--mono);color:var(--tf-fg-dim);font-size:10.5px;font-weight:500}.tf-ws .doc-toc a.active .n{color:var(--tf-fg-mute)}.tf-ws .doc-toc a .st-mini{background:var(--tf-st-todo);border-radius:50%;flex-shrink:0;width:6px;height:6px}.tf-ws .doc-toc a .st-mini.wip{background:var(--tf-st-wip)}.tf-ws .doc-toc a .st-mini.ai{background:var(--tf-st-ai)}.tf-ws .doc-toc a .st-mini.review{background:var(--tf-st-review)}.tf-ws .doc-toc a .st-mini.done{background:var(--tf-st-done)}.tf-ws .doc-body.tabbed>.sec{display:none}.tf-ws .doc-body.tabbed>.sec.is-active{flex-direction:column;flex:1;min-height:0;margin-bottom:0;display:flex!important}.tf-ws .doc-body{background:var(--tf-paper);flex:1;padding:24px 28px 80px;overflow-y:auto}.tf-ws .dash-shell{flex-direction:column;gap:28px;width:100%;max-width:none;display:flex}.tf-ws .dash-hero{background:var(--tf-paper);border:1px solid var(--tf-line);border-radius:12px;flex-direction:column;gap:14px;padding:24px 28px;display:flex}.tf-ws .dash-hero-stat{align-items:baseline;gap:14px;display:flex}.tf-ws .dash-hero-pct{font-family:var(--serif);letter-spacing:-.02em;color:var(--tf-fg);font-size:48px;font-weight:600;line-height:1}.tf-ws .dash-hero-sub{font-family:var(--sans);color:var(--tf-fg-dim);font-size:13px}.tf-ws .dash-hero-bar{background:#f1f1ee;border-radius:4px;height:8px;overflow:hidden}.tf-ws .dash-hero-bar>i{background:var(--tf-st-done);border-radius:4px;height:100%;transition:width .25s;display:block}.tf-ws .dash-section{flex-direction:column;gap:12px;display:flex}.tf-ws .dash-h{font-family:var(--serif);color:var(--tf-fg-dim);letter-spacing:.02em;margin:0;font-size:14px;font-weight:600}.tf-ws .dash-doc-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.tf-ws .dash-doc-card{background:var(--tf-paper);border:1px solid var(--tf-line);cursor:pointer;text-align:left;border-radius:10px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:14px 16px;transition:background .15s,border-color .15s,transform .1s;display:grid}.tf-ws .dash-doc-card:hover{border-color:var(--tf-fg-dim);background:#fafaf7}.tf-ws .dash-doc-card:active{transform:translateY(1px)}.tf-ws .dash-doc-icon{width:28px;height:28px;color:var(--tf-fg-dim);background:#f1f1ee;border-radius:6px;place-items:center;display:grid}.tf-ws .dash-doc-label{font-family:var(--sans);color:var(--tf-fg);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;overflow:hidden}.tf-ws .dash-stat-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.tf-ws .dash-stat{background:var(--tf-paper);border:1px solid var(--tf-line);border-radius:10px;flex-direction:column;align-items:flex-start;gap:6px;padding:16px 18px;display:flex}.tf-ws .dash-stat .n{font-family:var(--serif);color:var(--tf-fg);font-size:28px;font-weight:600;line-height:1}.tf-ws .dash-stat .l{font-family:var(--mono);color:var(--tf-fg-dim);text-transform:uppercase;letter-spacing:.08em;font-size:11px}@media (width<=768px){.tf-ws .dash-stat-grid{grid-template-columns:repeat(2,1fr)}.tf-ws .dash-hero-pct{font-size:40px}}.tf-ws .doc-body.tabbed{flex-direction:column;flex:1;min-height:0;padding:16px 28px 20px;display:flex;overflow:hidden}.tf-ws .doc-body.tabbed>.req-save-bar,.tf-ws .doc-body.tabbed>.sec.is-active .sec-head{flex-shrink:0}.tf-ws .doc-body.tabbed>.sec.is-active .sec-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.tf-ws .doc-body.tabbed>.sec.is-active .sec-body>.sec-textarea,.tf-ws .doc-body.tabbed>.sec.is-active .sec-body>.sec-md-preview-pane,.tf-ws .doc-body.tabbed>.sec.is-active .sec-body>.sec-md-split{flex:1;min-height:0}.tf-ws .doc-body.tabbed>.sec.is-active .sec-body>.sec-textarea{resize:vertical;height:auto}.tf-ws .doc-body.tabbed>.sec.is-active .sec-body>.sec-grid-2{flex:1;grid-template-rows:1fr;align-content:stretch;min-height:0}.tf-ws .doc-body.tabbed>.sec.is-active .sec-body>.sec-grid-2>.sec-field-block{flex-direction:column;min-height:0;display:flex}.tf-ws .doc-body.tabbed>.sec.is-active .sec-body>.sec-grid-2 .sec-subhead{flex-shrink:0}.tf-ws .doc-body.tabbed>.sec.is-active .sec-body>.sec-grid-2 .sec-textarea,.tf-ws .doc-body.tabbed>.sec.is-active .sec-body>.sec-grid-2 .sec-md-split,.tf-ws .doc-body.tabbed>.sec.is-active .sec-body>.sec-grid-2 .sec-md-preview-pane{flex:1;min-height:0}.tf-ws .doc-body.tabbed>.sec.is-active .sec-body:has(>.sec-field-block+.sec-field-block){overflow-y:auto}.tf-ws .doc-body.tabbed>.sec.is-active .sec-body:has(>.sec-field-block+.sec-field-block) .sec-field-block{flex:none}:is(.tf-ws .doc-body.tabbed>.sec.is-active .sec-body:has(>.sec-field-block+.sec-field-block) .sec-textarea,.tf-ws .doc-body.tabbed>.sec.is-active .sec-body:has(>.sec-field-block+.sec-field-block) .sec-md-split,.tf-ws .doc-body.tabbed>.sec.is-active .sec-body:has(>.sec-field-block+.sec-field-block) .sec-md-preview-pane){flex:none;height:auto;min-height:100px}.tf-ws .sec-subhead{font-family:var(--mono);letter-spacing:.12em;color:var(--tf-fg-dim);text-transform:uppercase;margin:0 0 8px;font-size:11px;font-weight:500}.tf-ws .sec-subhead.in{color:#065f46}.tf-ws .sec-subhead.out{color:#9a3412}.tf-ws .sec-subhead+.sec-subhead{margin-top:16px}.tf-ws .sec-body .sec-subhead:not(:first-child){margin-top:18px}.tf-ws .sec-grid-2{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (width<=900px){.tf-ws .sec-grid-2{grid-template-columns:1fr}}.tf-ws .sec{background:var(--tf-paper);border:1px solid var(--tf-line);border-radius:10px;margin-bottom:16px;transition:border-color .12s;overflow:hidden}.tf-ws .sec:hover{border-color:var(--tf-line-2)}.tf-ws .sec-head{border-bottom:1px solid var(--tf-line-soft);justify-content:space-between;align-items:flex-start;gap:14px;padding:14px 18px 10px;display:flex}.tf-ws .sec-head h3{font-family:var(--serif);letter-spacing:-.005em;color:var(--tf-fg);align-items:center;gap:8px;margin:0;font-size:15.5px;font-weight:600;display:flex}.tf-ws .sec-head .req-mark{color:var(--tf-st-review);font-family:var(--mono);font-size:11px;font-weight:600}.tf-ws .sec-head .opt-mark{color:var(--tf-fg-dim);font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;font-size:10.5px;font-weight:500}.tf-ws .sec-head .desc{color:var(--tf-fg-mute);margin:3px 0 0;font-size:12.5px;line-height:1.5}.tf-ws .sec-head .right{flex-shrink:0;align-items:center;gap:6px;display:flex}.tf-ws .sec-pill{font-family:var(--mono);letter-spacing:.04em;white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:3px 8px;font-size:10.5px;font-weight:500;display:inline-flex}.tf-ws .sec-pill .dot{border-radius:50%;width:5px;height:5px}.tf-ws .sec-pill.ai{color:#5b21b6;background:#f3ebff}.tf-ws .sec-pill.ai .dot{background:var(--tf-st-ai)}.tf-ws .sec-pill.user{color:#3730a3;background:#e0e7ff}.tf-ws .sec-pill.user .dot{background:#4f46e5}.tf-ws .sec-pill.done{color:#065f46;background:#dcfce7}.tf-ws .sec-pill.done .dot{background:var(--tf-st-done)}.tf-ws .sec-pill.review{color:#9a3412;background:#ffe7d6}.tf-ws .sec-pill.review .dot{background:var(--tf-st-review)}.tf-ws .sec-pill.todo{color:#6b6b78;background:#f1f1ee}.tf-ws .sec-pill.todo .dot{background:var(--tf-st-todo)}.tf-ws .sec-pill.rag{color:#1e3a8a;background:#dbeafe}.tf-ws .sec-pill.rag .dot{background:var(--tf-st-rag)}.tf-ws .sec-icon-btn{width:26px;height:26px;color:var(--tf-fg-mute);border-radius:6px;place-items:center;display:grid}.tf-ws .sec-icon-btn:hover{color:var(--tf-fg);background:#f1f1ee}.tf-ws .sec-body{color:var(--tf-fg-2);padding:14px 18px 16px;font-size:14px;line-height:1.7}.tf-ws .sec-body p{margin:0 0 8px}.tf-ws .sec-body p:last-child{margin-bottom:0}.tf-ws .sec-body ul{color:var(--tf-fg-2);margin:4px 0 8px;padding-left:20px}.tf-ws .sec-body li{margin:3px 0}.tf-ws .sec-empty{background:#fbfbf8;justify-content:space-between;align-items:center;gap:16px;padding:24px 18px;display:flex}.tf-ws .sec-empty .msg{color:var(--tf-fg-mute);font-size:13px}.tf-ws .sec-empty .msg b{color:var(--tf-fg);font-weight:500;font-family:var(--sans);margin-bottom:2px;font-size:13.5px;display:block}.tf-ws .sec-empty .actions{flex-shrink:0;gap:6px;display:flex}.tf-ws .sec-foot{border-top:1px solid var(--tf-line-soft);font-family:var(--mono);color:var(--tf-fg-dim);justify-content:space-between;align-items:center;gap:12px;padding:8px 18px;font-size:10.5px;display:flex}.tf-ws .sec-foot .left{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.tf-ws .sec-foot .right{align-items:center;gap:6px;display:flex}.tf-ws .sec-foot .src{color:var(--tf-fg-mute);align-items:center;gap:5px;display:inline-flex}.tf-ws .sec-foot .saved{color:var(--tf-st-done);align-items:center;gap:5px;display:inline-flex}.tf-ws .sec-foot .saved svg{stroke:var(--tf-st-done)}.tf-ws .sec-foot .editing{color:var(--tf-st-wip)}.tf-ws .mini-table{border:1px solid var(--tf-line);background:var(--tf-paper);border-radius:8px;margin-top:4px;overflow:hidden}.tf-ws .mini-table .row{border-top:1px solid var(--tf-line-soft);grid-template-columns:1fr 1.4fr 1fr;gap:0;font-size:13px;display:grid}.tf-ws .mini-table .row:first-child{background:var(--tf-paper-2);font-family:var(--mono);color:var(--tf-fg-dim);letter-spacing:.06em;text-transform:uppercase;border-top:0;font-size:10.5px}.tf-ws .mini-table .row>div{padding:8px 12px}.tf-ws .mini-table .row .name{color:var(--tf-fg);font-weight:500}.tf-ws .timeline{background:var(--tf-paper-2);border:1px solid var(--tf-line);border-radius:8px;grid-template-columns:repeat(4,1fr);gap:10px;padding:12px;display:grid}.tf-ws .tl-item{flex-direction:column;gap:4px;display:flex}.tf-ws .tl-item .k{font-family:var(--mono);color:var(--tf-fg-dim);letter-spacing:.06em;text-transform:uppercase;font-size:10.5px}.tf-ws .tl-item .v{font-family:var(--sans);color:var(--tf-fg);font-size:14px;font-weight:600}.tf-ws .tl-item .sub{color:var(--tf-fg-mute);font-size:11.5px}.tf-ws .risks{flex-direction:column;gap:6px;display:flex}.tf-ws .risk-row{border:1px solid var(--tf-line);background:#fff;border-radius:8px;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;padding:8px 10px;font-size:13px;display:grid}.tf-ws .risk-row .lvl{font-family:var(--mono);letter-spacing:.06em;border-radius:4px;padding:2px 7px;font-size:10px;font-weight:600}.tf-ws .risk-row .lvl.high{color:#991b1b;background:#fee2e2}.tf-ws .risk-row .lvl.med{color:#854d0e;background:#fef3c7}.tf-ws .risk-row .lvl.low{color:#075985;background:#e0f2fe}.tf-ws .risk-row .mit{font-family:var(--mono);color:var(--tf-fg-mute);font-size:11px}.tf-ws .risk-row .owner{font-family:var(--mono);color:var(--tf-fg-dim);font-size:11px}.tf-ws .req-head{padding:24px 28px 14px}.tf-ws .req-head .doc-bc{margin-bottom:8px}.tf-ws .req-title{font-family:var(--serif);letter-spacing:-.02em;color:var(--tf-fg);margin:0 0 6px;font-size:26px;font-weight:700}.tf-ws .req-sub{color:#3b5baf;max-width:780px;margin:0;font-size:13.5px;line-height:1.6}.tf-ws .req-body{background:var(--tf-paper);flex:1;padding:18px 28px 80px;overflow-y:auto}.tf-ws .req-save-bar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.tf-ws .req-save-msg{font-family:var(--sans);color:var(--tf-fg);font-size:13.5px;font-weight:500}.tf-ws .req-save-btn{border:1px solid var(--tf-line);font-family:var(--sans);color:var(--tf-fg-mute);background:#fff;border-radius:6px;padding:7px 14px;font-size:12.5px;font-weight:500}.tf-ws .req-save-btn:hover{border-color:var(--tf-line-2);color:var(--tf-fg);background:#fafaf8}.tf-ws .req-fields{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px;display:grid}.tf-ws .req-fields label{flex-direction:column;gap:6px;display:flex}.tf-ws .req-fields label>span{color:var(--tf-fg-2);font-size:12.5px;font-weight:500;font-family:var(--sans)}.tf-ws .field{border:1px solid var(--tf-line);background:var(--tf-paper-2);width:100%;font-family:var(--serif);color:var(--tf-fg);border-radius:6px;padding:9px 12px;font-size:13.5px;transition:border-color .12s,background .12s}.tf-ws .field:focus{border-color:var(--tf-fg-2);background:#fff;outline:none}.tf-ws .field::placeholder{color:var(--tf-fg-dim)}.tf-ws .req-table-wrap{border:1px solid var(--tf-line);background:#fff;border-radius:8px;overflow:hidden}.tf-ws .req-table-head{border-bottom:1px solid var(--tf-line);font-family:var(--sans);color:var(--tf-fg-2);background:#f7f8fa;grid-template-columns:1fr 1.1fr .9fr 1fr 1.4fr 2fr;font-size:12.5px;font-weight:600;display:grid}.tf-ws .req-table-head>div{padding:11px 14px}.tf-ws .req-table-empty{text-align:center;color:var(--tf-fg-mute);padding:48px 24px;font-size:13px}.tf-ws .req-table-empty b{color:var(--tf-fg);font-weight:500}.tf-ws .req-table-foot{justify-content:space-between;align-items:center;gap:16px;margin-top:12px;display:flex}.tf-ws .req-table-foot .add-row{border:1px solid var(--tf-line);font-family:var(--sans);color:var(--tf-fg-2);background:#fff;border-radius:6px;align-items:center;gap:5px;padding:7px 12px;font-size:12.5px;font-weight:500;display:inline-flex}.tf-ws .req-table-foot .add-row:hover{border-color:var(--tf-fg-2)}.tf-ws .req-table-foot .total{font-family:var(--sans);color:var(--tf-fg-mute);font-size:12.5px}.tf-ws .doc-placeholder{background:var(--tf-paper);flex:1;justify-content:center;align-items:center;padding:40px;display:flex}.tf-ws .doc-placeholder .card{text-align:center;border:1px dashed var(--tf-line-2);background:var(--tf-paper-2);border-radius:14px;max-width:460px;padding:32px 28px}.tf-ws .doc-placeholder .card .ico{border:1px solid var(--tf-line);width:48px;height:48px;color:var(--tf-fg-mute);background:#fff;border-radius:12px;place-items:center;margin:0 auto 14px;display:grid}.tf-ws .doc-placeholder .card h2{font-family:var(--serif);letter-spacing:-.01em;color:var(--tf-fg);margin:0 0 6px;font-size:18px;font-weight:600}.tf-ws .doc-placeholder .card p{color:var(--tf-fg-mute);margin:0 0 16px;font-size:13.5px;line-height:1.65}.tf-ws .doc-placeholder .card .actions{justify-content:center;gap:8px;display:flex}.tf-ws .ai-panel{background:var(--tf-paper);flex-direction:column;min-height:0;display:flex;overflow:hidden}.tf-ws .ai-view{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.tf-ws .ai-view[hidden]{display:none}.tf-ws .ai-head{border-bottom:1px solid var(--tf-line-soft);flex:none;justify-content:space-between;align-items:flex-start;gap:10px;padding:14px 16px 12px;display:flex}.tf-ws .ai-brand{flex-direction:column;gap:2px;min-width:0;display:flex}.tf-ws .ai-eyebrow{font-family:var(--mono);letter-spacing:.14em;color:var(--tf-fg-dim);text-transform:uppercase;font-size:10.5px;font-weight:500}.tf-ws .ai-title{font-family:var(--serif);letter-spacing:-.015em;color:var(--tf-fg);margin:2px 0 0;font-size:17px;font-weight:600}.tf-ws .ai-head-btns{flex-shrink:0;gap:6px;display:flex}.tf-ws .ai-head-btn{border:1px solid var(--tf-line);font-family:var(--sans);color:var(--tf-fg-2);white-space:nowrap;background:#fff;border-radius:6px;align-items:center;gap:5px;padding:5px 10px;font-size:11.5px;font-weight:500;transition:border-color .12s,background .12s,color .12s;display:inline-flex}.tf-ws .ai-head-btn:hover{border-color:var(--tf-line-2);background:#fafaf8}.tf-ws .ai-head-btn.close:hover{color:#b91c1c;background:#fef2f2;border-color:#fca5a5}.tf-ws .ai-head-btn svg{color:var(--tf-fg-mute)}.tf-ws .ai-desc{color:#3b4d6b;background:#f0f4f8;border:1px solid #dce5f0;border-radius:8px;margin:12px 16px 0;padding:10px 12px;font-size:12.5px;line-height:1.55}.tf-ws .ai-conv{flex-direction:column;flex:1;gap:16px;padding:14px 16px 16px;display:flex;overflow-y:auto}.tf-ws .ai-msg{flex-direction:column;gap:4px;max-width:100%;display:flex}.tf-ws .ai-msg.user{align-items:flex-end}.tf-ws .ai-msg.user .role{font-family:var(--sans);color:var(--tf-fg-mute);align-self:flex-end;font-size:11px;font-weight:500}.tf-ws .ai-msg.user .bubble{color:#fff;background:#1e3a8a;border:0;border-radius:14px 14px 4px;max-width:85%;padding:10px 14px;font-size:13.5px;line-height:1.55}.tf-ws .ai-msg.ai .role{font-family:var(--sans);color:var(--tf-fg-mute);font-size:11px;font-weight:500}.tf-ws .ai-msg.ai .bubble{color:#1f2937;background:#eef2f7;border:1px solid #dde5ee;border-radius:4px 14px 14px;padding:12px 14px;font-size:13.5px;line-height:1.65}.tf-ws .ai-msg.ai .bubble p{margin:0 0 10px}.tf-ws .ai-msg.ai .bubble p:last-child{margin-bottom:0}.tf-ws .ai-msg.ai .bubble b{color:#0a0e1a;font-weight:600}.tf-ws .ai-msg-actions{gap:6px;margin-top:4px;display:flex}.tf-ws .ai-msg-actions button{border:1px solid var(--tf-line);font-family:var(--sans);color:var(--tf-fg-2);background:#fff;border-radius:6px;padding:4px 9px;font-size:11px;font-weight:500}.tf-ws .ai-msg-actions button:hover{border-color:var(--tf-fg-2);background:#fafaf8}.tf-ws .ai-msg-actions button.apply{color:#fff;background:#1e3a8a;border-color:#1e3a8a}.tf-ws .ai-msg-actions button.apply:hover{background:#172554}.tf-ws .ai-footer{border-top:1px solid var(--tf-line-soft);background:var(--tf-paper);flex:none;padding:12px 16px 14px}.tf-ws .ai-model-chip{border:1px solid var(--tf-line);font-family:var(--sans);color:var(--tf-fg-2);background:#fff;border-radius:999px;align-items:center;gap:6px;margin-bottom:10px;padding:5px 10px;font-size:12px;font-weight:500;display:inline-flex}.tf-ws .ai-model-chip:hover{border-color:var(--tf-line-2)}.tf-ws .ai-model-chip svg{color:var(--tf-fg-dim)}.tf-ws .ai-textarea-wrap{border:1px solid var(--tf-line);background:var(--tf-paper-2);border-radius:10px;padding:10px 12px;transition:border-color .12s,background .12s}.tf-ws .ai-textarea-wrap:focus-within{border-color:var(--tf-fg-2);background:#fff}.tf-ws .ai-textarea{resize:none;width:100%;font-family:var(--serif);color:var(--tf-fg);background:0 0;border:0;outline:0;min-height:54px;max-height:140px;font-size:13.5px;line-height:1.55}.tf-ws .ai-textarea::placeholder{color:var(--tf-fg-dim)}.tf-ws .ai-buttons{grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;display:grid}.tf-ws .ai-footer .send,.tf-ws .ai-footer .organize{cursor:pointer;font-family:var(--sans);border-radius:8px;padding:10px 14px;font-size:13px;font-weight:600}.tf-ws .ai-footer .send{color:#fff;background:#4338ca;transition:background .12s}.tf-ws .ai-footer .send:hover:not(:disabled){background:#3730a3}.tf-ws .ai-footer .organize{color:#854d0e;background:#fefce8;border:1px solid #fde68a;transition:background .12s,border-color .12s}.tf-ws .ai-footer .organize:hover:not(:disabled){background:#fef3c7;border-color:#fcd34d}.tf-ws .ai-footer .send:disabled,.tf-ws .ai-footer .organize:disabled{opacity:.5;cursor:not-allowed}.tf-ws .ai-footer>.send{margin-top:10px}.tf-ws .ai-hist-list{flex-direction:column;flex:1;gap:4px;padding:10px 12px 16px;display:flex;overflow-y:auto}.tf-ws .hist-item{text-align:left;border:1px solid #0000;border-radius:8px;flex-direction:column;gap:3px;padding:10px 12px;transition:background .12s,border-color .12s;display:flex}.tf-ws .hist-item:hover{border-color:var(--tf-line);background:#f5f7fa}.tf-ws .hist-item .top{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.tf-ws .hist-item .htitle{font-family:var(--sans);color:var(--tf-fg);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.tf-ws .hist-item .htime{font-family:var(--mono);color:var(--tf-fg-dim);flex-shrink:0;font-size:10.5px}.tf-ws .hist-item .hpreview{color:var(--tf-fg-mute);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:1.5;display:-webkit-box;overflow:hidden}.tf-ws .hist-item .hctx{font-family:var(--mono);color:var(--tf-fg-dim);letter-spacing:.04em;align-items:center;gap:6px;margin-top:4px;font-size:10px;display:inline-flex}.tf-ws .hist-item .hctx .hdoc{color:#3730a3;background:#e0e7ff;border-radius:3px;padding:1px 6px}.tf-ws .hist-divider{font-family:var(--mono);color:var(--tf-fg-dim);letter-spacing:.12em;text-transform:uppercase;padding:14px 12px 4px;font-size:10px}.tf-ws .ai-reopen{z-index:55;background:var(--tf-fg);color:#fff;font-family:var(--sans);border-radius:999px;align-items:center;gap:8px;padding:11px 18px;font-size:13px;font-weight:600;display:none;position:fixed;bottom:24px;right:24px;box-shadow:0 12px 28px -10px #00000059,0 4px 12px -4px #00000026}.tf-ws .ai-reopen:hover{background:#000}.tf-ws .ai-reopen .star{color:#5b21b6;background:linear-gradient(135deg,#f3ebff,#a78bfa);border-radius:50%;place-items:center;width:18px;height:18px;display:grid}.tf-ws .ai-popup-backdrop{z-index:55;-webkit-backdrop-filter:blur(3px);opacity:0;background:#0f121c47;transition:opacity .15s;display:none;position:fixed;inset:0}.tf-ws.ai-popup .ai-popup-backdrop{opacity:1;display:block}.tf-ws .tab-ai-popup-backdrop{z-index:60;-webkit-backdrop-filter:blur(3px);background:#0f121c47;position:fixed;inset:0}.tf-ws .tab-ai-popup{z-index:61;border:1px solid var(--tf-line);background:#fff;border-radius:10px;grid-template-rows:auto 1fr auto;width:min(720px,100vw - 32px);height:min(80vh,720px);display:grid;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 20px 60px #0f121c2e}.tf-ws .tab-ai-popup-head{border-bottom:1px solid var(--tf-line);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.tf-ws .tab-ai-popup-body{overflow:auto}.tf-ws .tab-ai-popup-title{font-family:var(--sans);color:var(--tf-fg-2);flex:1;min-width:0;font-weight:600}.tf-ws .tab-ai-popup-head-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.tf-ws .tab-ai-reset{border:1px solid var(--tf-line);color:var(--tf-fg-2);font-family:var(--sans);cursor:pointer;white-space:nowrap;background:#fff;border-radius:8px;padding:6px 11px;font-size:12.5px;font-weight:500}.tf-ws .tab-ai-reset:hover:not(:disabled){background:#f6f6f4}.tf-ws .tab-ai-reset:disabled{opacity:.5;cursor:not-allowed}.tf-ws .tab-ai-popup-close{border:1px solid var(--tf-line);width:32px;height:32px;color:var(--tf-fg-2);cursor:pointer;background:#fff;border-radius:8px}.tf-ws .tab-ai-popup-close:hover{background:#f6f6f4}.tf-ws .tab-ai-empty{color:var(--tf-fg-mute);padding:16px;font-size:13px}.tf-ws .tab-ai-messages{flex-direction:column;gap:10px;padding:14px 16px;display:flex}.tf-ws .tab-ai-msg{flex-direction:column;gap:4px;display:flex}.tf-ws .tab-ai-msg-role{color:var(--tf-fg-mute);font-size:11px}.tf-ws .tab-ai-msg-content{white-space:pre-wrap;border:1px solid var(--tf-line);border-radius:10px;max-width:100%;padding:10px 12px}.tf-ws .tab-ai-msg.is-user .tab-ai-msg-content{background:#eef2ff;border-color:#d9deff}.tf-ws .tab-ai-msg.is-assistant .tab-ai-msg-content{background:#fff}.tf-ws .tab-ai-typing{align-items:center;gap:4px;height:18px;display:inline-flex}.tf-ws .tab-ai-typing-dot{background:var(--tf-fg-mute);opacity:.35;border-radius:50%;width:6px;height:6px;animation:1.4s infinite both tab-ai-typing-blink}.tf-ws .tab-ai-typing-dot:nth-child(2){animation-delay:.2s}.tf-ws .tab-ai-typing-dot:nth-child(3){animation-delay:.4s}@keyframes tab-ai-typing-blink{0%,80%,to{opacity:.35;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}.tf-ws .tab-ai-popup-footer{border-top:1px solid var(--tf-line);background:#fff;border-radius:0 0 10px 10px;flex-direction:column;gap:10px;padding:12px 16px;display:flex}.tf-ws .tab-ai-footer-row{align-items:center;gap:10px;display:flex}.tf-ws .tab-ai-model{color:var(--tf-fg-mute);align-items:center;gap:8px;font-size:12px;display:flex}.tf-ws .tab-ai-model select{border:1px solid var(--tf-line);border-radius:8px;padding:6px 8px}.tf-ws .tab-ai-send{border:1px solid var(--tf-line);color:var(--tf-fg-2);cursor:pointer;background:#fff;border-radius:8px;padding:8px 12px}.tf-ws .tab-ai-send:hover:not(:disabled){background:#f6f6f4}.tf-ws .tab-ai-send:disabled{opacity:.5;cursor:not-allowed}.tf-ws .tab-ai-organize{color:#4f46e5;cursor:pointer;background:#eef2ff;border:1px solid #d9deff;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:6px 12px;font-weight:500;display:inline-flex}.tf-ws .tab-ai-organize:hover:not(:disabled){background:#e3e9ff}.tf-ws .tab-ai-organize:disabled{cursor:not-allowed}.tf-ws .tab-ai-organize:disabled:not([data-loading]){opacity:.5}.tf-ws .tab-ai-organize-spinner{border:2px solid #c7d0ff;border-top-color:#4f46e5;border-radius:50%;width:13px;height:13px;animation:.7s linear infinite tab-ai-spin}@keyframes tab-ai-spin{to{transform:rotate(360deg)}}.tf-ws .ppt-prog{flex-direction:column;gap:14px;padding:8px 4px;display:flex}.tf-ws .ppt-prog-head{justify-content:space-between;align-items:baseline;display:flex}.tf-ws .ppt-prog-stage{color:var(--tf-fg);font-size:14px;font-weight:600}.tf-ws .ppt-prog-time{font-family:var(--mono);color:var(--tf-fg-mute);font-size:12px}.tf-ws .ppt-prog-track{background:#eef2ff;border-radius:999px;height:8px;position:relative;overflow:hidden}.tf-ws .ppt-prog-fill{background:linear-gradient(90deg,#6366f1,#818cf8);border-radius:999px;height:100%;transition:width .6s}.tf-ws .ppt-prog-shine{background:linear-gradient(90deg,#0000,#ffffff8c,#0000);animation:1.4s infinite ppt-prog-shine;position:absolute;inset:0;transform:translate(-100%)}@keyframes ppt-prog-shine{to{transform:translate(100%)}}.tf-ws .ppt-prog-steps{flex-direction:column;gap:9px;margin:0;padding:0;list-style:none;display:flex}.tf-ws .ppt-prog-step{color:var(--tf-fg-mute);align-items:center;gap:9px;font-size:13px;transition:color .3s;display:flex}.tf-ws .ppt-prog-step .ppt-prog-dot{border:1.5px solid var(--tf-line);color:#0000;background:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;font-size:10px;font-weight:700;display:inline-flex}.tf-ws .ppt-prog-step.is-done{color:var(--tf-fg-2)}.tf-ws .ppt-prog-step.is-done .ppt-prog-dot{color:#fff;background:#0e9f6e;border-color:#0e9f6e}.tf-ws .ppt-prog-step.is-active{color:var(--tf-fg);font-weight:600}.tf-ws .ppt-prog-step.is-active .ppt-prog-dot{border-color:#4f46e5 #c7d0ff #c7d0ff;animation:.7s linear infinite tab-ai-spin}.tf-ws .ppt-prog-note{color:var(--tf-fg-mute);margin:2px 0 0;font-size:12px;line-height:1.5}.tf-ws .tab-ai-input{resize:vertical;border:1px solid var(--tf-line);min-height:44px;font-family:var(--sans);border-radius:10px;flex:1;padding:10px 12px;font-size:13px}.tf-ws .nav-body::-webkit-scrollbar{width:8px;height:8px}.tf-ws .doc-body::-webkit-scrollbar{width:8px;height:8px}.tf-ws .ai-conv::-webkit-scrollbar{width:8px;height:8px}.tf-ws .req-body::-webkit-scrollbar{width:8px;height:8px}.tf-ws .ai-hist-list::-webkit-scrollbar{width:8px;height:8px}.tf-ws .nav-body::-webkit-scrollbar-thumb{background:#e0e1dc;border-radius:4px}.tf-ws .doc-body::-webkit-scrollbar-thumb{background:#e0e1dc;border-radius:4px}.tf-ws .ai-conv::-webkit-scrollbar-thumb{background:#e0e1dc;border-radius:4px}.tf-ws .req-body::-webkit-scrollbar-thumb{background:#e0e1dc;border-radius:4px}.tf-ws .ai-hist-list::-webkit-scrollbar-thumb{background:#e0e1dc;border-radius:4px}.tf-ws .nav-body::-webkit-scrollbar-thumb:hover{background:#cecfc8}.tf-ws .doc-body::-webkit-scrollbar-thumb:hover{background:#cecfc8}.tf-ws .ai-conv::-webkit-scrollbar-thumb:hover{background:#cecfc8}.tf-ws .req-body::-webkit-scrollbar-thumb:hover{background:#cecfc8}.tf-ws .ai-hist-list::-webkit-scrollbar-thumb:hover{background:#cecfc8}.tf-ws .ai-model-wrap{margin-bottom:10px;display:inline-block;position:relative}.tf-ws .ai-model-pop{border:1px solid var(--tf-line);z-index:10;background:#fff;border-radius:8px;min-width:220px;max-height:280px;padding:4px;display:none;position:absolute;bottom:calc(100% + 6px);left:0;overflow-y:auto;box-shadow:0 10px 28px -10px #0000002e,0 4px 12px -4px #00000014}.tf-ws .ai-model-pop.open{display:block}.tf-ws .ai-model-pop button{text-align:left;width:100%;font-family:var(--sans);color:var(--tf-fg-2);cursor:pointer;background:0 0;border:0;border-radius:5px;justify-content:space-between;align-items:center;gap:8px;padding:7px 10px;font-size:12.5px;display:flex}.tf-ws .ai-model-pop button:hover:not(:disabled){background:#f1f1ee}.tf-ws .ai-model-pop button.selected{color:var(--tf-accent-2);background:#eef2ff;font-weight:500}.tf-ws .ai-model-pop button:disabled{color:var(--tf-fg-dim);cursor:not-allowed}.tf-ws .ai-model-pop button .check{opacity:0;color:var(--tf-accent-2);flex-shrink:0}.tf-ws .ai-model-pop button.selected .check{opacity:1}.tf-ws .ai-msg.ai .bubble .ai-bubble-hint{color:var(--tf-fg-mute);margin:0;font-size:12px}.tf-ws .hist-item.active{border-color:var(--tf-fg-2);background:#f5f7fa}.tf-ws .hist-item.hist-new{border:1px dashed var(--tf-line-2);color:var(--tf-fg-2);background:#fbfbf8}.tf-ws .hist-item.hist-new:hover{border-color:var(--tf-fg-2);background:#fff}.tf-ws .hist-item.hist-new .htitle{color:var(--tf-accent-2);font-weight:500}.tf-ws .organize-preview{background:var(--tf-paper);border:0;border-radius:0;flex-direction:column;flex:1;min-height:0;margin:0;padding:0;display:flex}.tf-ws .organize-preview .organize-preview-header{border-bottom:1px solid var(--tf-line-soft);flex:none;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px 10px;display:flex}.tf-ws .organize-preview .organize-preview-header strong{font-family:var(--serif);letter-spacing:-.005em;color:var(--tf-fg);font-size:14.5px;font-weight:600}.tf-ws .organize-preview .organize-preview-header .menu-ai-icon-btn{display:none}.tf-ws .organize-preview-list{flex-direction:column;flex:1;gap:6px;margin:0;padding:10px 14px;list-style:none;display:flex;overflow-y:auto}.tf-ws .organize-preview-item{border:1px solid var(--tf-line);background:#fff;border-radius:8px;margin:0;padding:10px 12px}.tf-ws .organize-preview-item.empty{opacity:.55;background:var(--tf-paper-2)}.tf-ws .organize-preview-item>label{cursor:pointer;grid-template-columns:18px 1fr;align-items:flex-start;gap:10px;display:grid}.tf-ws .organize-preview-item input[type=checkbox],.tf-ws .req-preview-row input[type=checkbox],.tf-ws .req-preview-header-row input[type=checkbox]{width:14px;height:14px;accent-color:var(--tf-accent-2);margin-top:2px}.tf-ws .organize-preview-content,.tf-ws .req-preview-row-content,.tf-ws .req-preview-header-content{flex-direction:column;gap:3px;min-width:0;display:flex}.tf-ws .organize-preview-label{font-family:var(--sans);color:var(--tf-fg-2);font-size:12.5px;font-weight:500}.tf-ws .organize-preview-snippet{color:var(--tf-fg-mute);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:12px;line-height:1.55;display:-webkit-box;overflow:hidden}.tf-ws .organize-preview-actions{border-top:1px solid var(--tf-line-soft);background:var(--tf-paper);flex:none;justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.tf-ws .organize-preview-actions .prompts-btn{font-family:var(--sans);border:1px solid var(--tf-line);color:var(--tf-fg-2);cursor:pointer;background:#fff;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:12.5px;font-weight:500;transition:border-color .12s,background .12s;display:inline-flex}.tf-ws .organize-preview-actions .prompts-btn:hover:not(:disabled){border-color:var(--tf-line-2);background:#fafaf8}.tf-ws .organize-preview-actions .prompts-btn.primary{background:var(--tf-fg);color:#fff;border-color:var(--tf-fg)}.tf-ws .organize-preview-actions .prompts-btn.primary:hover:not(:disabled){background:#000;border-color:#000}.tf-ws .organize-preview-actions .prompts-btn:disabled{opacity:.5;cursor:not-allowed}.tf-ws .req-organize-preview .req-preview-section{border-top:1px solid var(--tf-line-soft);padding:6px 14px}.tf-ws .req-organize-preview .req-preview-section:first-of-type{border-top:0;padding-top:10px}.tf-ws .req-preview-section-title{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--tf-fg-dim);padding:8px 0 6px;font-size:10px;font-weight:500}.tf-ws .req-preview-header-row{border:1px solid var(--tf-line);cursor:pointer;background:#fff;border-radius:8px;grid-template-columns:18px 1fr;align-items:flex-start;gap:10px;padding:10px 12px;display:grid}.tf-ws .req-preview-header-row.empty{opacity:.55;background:var(--tf-paper-2);cursor:default}.tf-ws .req-preview-row-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.tf-ws .req-preview-row{border:1px solid var(--tf-line);background:#fff;border-radius:8px;padding:8px 10px}.tf-ws .req-preview-row.empty{opacity:.55;background:var(--tf-paper-2)}.tf-ws .req-preview-row>label{cursor:pointer;grid-template-columns:18px 1fr;align-items:flex-start;gap:10px;display:grid}.tf-ws .req-preview-row-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tf-ws .req-preview-row-id{font-family:var(--mono);color:var(--tf-fg-dim);font-size:11px;font-weight:500}.tf-ws .req-preview-row-name{font-family:var(--sans);color:var(--tf-fg);font-size:12.5px;font-weight:500}.tf-ws .sec-textarea{border:1px solid var(--tf-line);background:var(--tf-paper-2);width:100%;font-family:var(--serif);color:var(--tf-fg);resize:vertical;border-radius:6px;min-height:80px;padding:10px 12px;font-size:13.5px;line-height:1.6;transition:border-color .12s,background .12s;display:block}.tf-ws .sec-textarea:focus{border-color:var(--tf-fg-2);background:#fff;outline:none}.tf-ws .sec-textarea::placeholder{color:var(--tf-fg-dim)}.tf-ws .sec-head-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.tf-ws .sec-view-toggle{border:1px solid var(--tf-line);background:var(--tf-paper-2);border-radius:6px;display:inline-flex;overflow:hidden}.tf-ws .sec-view-toggle button{font-family:var(--sans);color:var(--tf-fg-mute);border-right:1px solid var(--tf-line);padding:4px 10px;font-size:11.5px;font-weight:500;transition:background .12s,color .12s}.tf-ws .sec-view-toggle button:last-child{border-right:0}.tf-ws .sec-view-toggle button:hover{color:var(--tf-fg);background:#f1f1ee}.tf-ws .sec-view-toggle button.active{background:var(--tf-fg);color:#fff}.tf-ws .sec-md-preview-pane{border:1px solid var(--tf-line);background:#fff;border-radius:6px;width:100%;min-height:120px;padding:12px 14px;overflow-y:auto}.tf-ws .sec-md-preview-body{font-family:var(--sans);color:var(--tf-fg);font-size:13.5px;line-height:1.65}.tf-ws .sec-md-empty{font-family:var(--sans);color:var(--tf-fg-dim);margin:0;font-size:12.5px;line-height:1.5}.tf-ws .sec-md-split{flex:1;grid-template-columns:1fr 1fr;gap:12px;width:100%;min-height:0;display:grid}.tf-ws .sec-md-split .sec-md-split-edit{resize:none;height:100%;min-height:0}.tf-ws .sec-md-split .sec-md-split-preview{min-height:0}.tf-ws .sec-field-block{flex-direction:column;gap:0;min-height:0;display:flex}@media (width<=900px){.tf-ws .sec-md-split{grid-template-rows:1fr 1fr;grid-template-columns:1fr}}.tf-ws .doc-body>.req-save-bar{margin-top:0;margin-bottom:14px}.tf-ws .req-table-container{background:var(--tf-paper);border:1px solid var(--tf-line);border-radius:10px;gap:14px;padding:16px}.tf-ws .req-table-header-meta{gap:16px;margin-bottom:4px}.tf-ws .req-meta-field>span{font-family:var(--sans);color:var(--tf-fg-2);font-size:12.5px;font-weight:500}.tf-ws .req-meta-field>input{border:1px solid var(--tf-line);background:var(--tf-paper-2);font-family:var(--serif);color:var(--tf-fg);border-radius:6px;padding:9px 12px;font-size:13.5px;transition:border-color .12s,background .12s}.tf-ws .req-meta-field>input:focus{border-color:var(--tf-fg-2);background:#fff}.tf-ws .req-meta-field>input::placeholder{color:var(--tf-fg-dim)}.tf-ws .req-table-scroll{border:1px solid var(--tf-line);background:#fff;border-radius:8px}.tf-ws .req-table{font-family:var(--sans);color:var(--tf-fg)}.tf-ws .req-table thead th{border-bottom:1px solid var(--tf-line);color:var(--tf-fg-2);letter-spacing:0;background:#f7f8fa;padding:11px 12px;font-size:12.5px;font-weight:600}.tf-ws .req-table tbody td{border-bottom:1px solid var(--tf-line-soft);padding:6px}.tf-ws .req-table tbody tr:last-child td{border-bottom:0}.tf-ws .req-table tbody tr:hover td{background:#fbfbf8}.tf-ws .req-table tbody td textarea{color:var(--tf-fg);font-family:var(--sans);border-color:#0000;font-size:13px;line-height:1.5}.tf-ws .req-table tbody td textarea:focus{border-color:var(--tf-fg-2);background:#fff}.tf-ws .req-table tbody td.req-cell-grouped textarea{color:var(--tf-fg-mute)}.tf-ws .req-table tbody td.req-cell-grouped textarea::placeholder{color:var(--tf-fg-disabled)}.tf-ws .req-table .req-table-empty{color:var(--tf-fg-mute);padding:36px 24px;font-size:13px}.tf-ws .req-row-delete-btn{color:var(--tf-fg-dim)}.tf-ws .req-row-delete-btn:hover:not(:disabled){color:#b91c1c;background:#fef2f2}.tf-ws .req-table-footer{padding-top:8px}.tf-ws .req-add-row-btn{border:1px solid var(--tf-line);font-family:var(--sans);color:var(--tf-fg-2);background:#fff;border-radius:6px;align-items:center;gap:5px;padding:7px 12px;font-size:12.5px;font-weight:500;display:inline-flex}.tf-ws .req-add-row-btn:hover:not(:disabled){border-color:var(--tf-fg-2);color:var(--tf-fg);background:#fafaf8}.tf-ws .req-table-count{font-family:var(--sans);color:var(--tf-fg-mute);font-size:12.5px}.tf-ws .wbs-banner-err{color:#991b1b;background:#fef2f2;border:1px solid #fca5a5;border-radius:8px;margin-bottom:14px;padding:10px 12px;font-size:13px}.tf-ws .wbs-filter{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.tf-ws .wbs-filter button{font-family:var(--sans);color:var(--tf-fg-mute);border:1px solid var(--tf-line);cursor:pointer;background:#fafaf8;border-radius:999px;align-items:center;gap:6px;padding:5px 11px;font-size:12px;font-weight:500;transition:border-color .12s,color .12s,background .12s;display:inline-flex}.tf-ws .wbs-filter button:hover{color:var(--tf-fg);border-color:var(--tf-line-2);background:#fff}.tf-ws .wbs-filter button.active{color:var(--tf-fg);border-color:var(--tf-fg-2);background:#fff}.tf-ws .wbs-filter button .n{font-family:var(--mono);color:var(--tf-fg-dim);font-size:10.5px;font-weight:500}.tf-ws .wbs-filter button.active .n{color:var(--tf-fg-mute)}.tf-ws .wbs-table-wrap{border:1px solid var(--tf-line);background:#fff;border-radius:8px;overflow:hidden}.tf-ws .wbs-table{border-collapse:collapse;width:100%;font-family:var(--sans);color:var(--tf-fg);font-size:13px}.tf-ws .wbs-table thead th{border-bottom:1px solid var(--tf-line);text-align:left;color:var(--tf-fg-2);letter-spacing:0;white-space:nowrap;background:#f7f8fa;padding:11px 14px;font-size:12.5px;font-weight:600}.tf-ws .wbs-table tbody td{border-bottom:1px solid var(--tf-line-soft);vertical-align:top;padding:10px 14px}.tf-ws .wbs-table tbody tr:last-child td{border-bottom:0}.tf-ws .wbs-table tbody tr:hover td{background:#fbfbf8}.tf-ws .wbs-table .wbs-empty{text-align:center;color:var(--tf-fg-mute);padding:48px 24px;font-size:13px}.tf-ws .wbs-id{font-family:var(--mono);color:var(--tf-fg-dim);white-space:nowrap;width:48px;font-size:11.5px}.tf-ws .wbs-title-btn{font-family:var(--sans);color:var(--tf-fg);text-align:left;cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;font-weight:500}.tf-ws .wbs-title-btn:hover{color:var(--tf-accent-2);text-decoration:underline}.tf-ws .wbs-desc{color:var(--tf-fg-mute);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:3px 0 0;font-size:12px;line-height:1.5;display:-webkit-box;overflow:hidden}.tf-ws .wbs-prio{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;border-radius:4px;align-items:center;padding:2px 7px;font-size:10px;font-weight:600;display:inline-flex}.tf-ws .wbs-prio.high{color:#991b1b;background:#fee2e2}.tf-ws .wbs-prio.medium{color:#854d0e;background:#fef3c7}.tf-ws .wbs-prio.low{color:#075985;background:#e0f2fe}.tf-ws .wbs-date{font-family:var(--mono);color:var(--tf-fg-dim);white-space:nowrap;font-size:11.5px}.tf-ws .wbs-actions{white-space:nowrap;gap:6px;display:flex}.tf-ws .wbs-actions .btn{padding:4px 9px;font-size:11.5px}.tf-ws .wbs-actions .btn.danger:hover{color:#b91c1c;background:#fef2f2;border-color:#fca5a5}.tf-ws .mf-section{max-width:1400px;margin:0 auto;padding:24px 28px}.tf-ws .mf-head{border-bottom:1px solid var(--tf-line);margin-bottom:18px;padding-bottom:16px}.tf-ws .mf-title{font-family:var(--sans);letter-spacing:-.015em;color:var(--tf-fg);margin:0 0 6px;font-size:22px;font-weight:700}.tf-ws .mf-sub{font-family:var(--sans);color:var(--tf-fg-mute);margin:0;font-size:13.5px;line-height:1.55}.tf-ws .mf-sub code,.tf-ws .mf-sec-head .mf-desc code{font-family:var(--mono);color:#4338ca;background:#f1f1ee;border-radius:4px;padding:1px 5px;font-size:11.5px}.tf-ws .mf-banner{color:#7c5510;background:#fbf0dc;border:1px solid #f4d98a;border-radius:8px;align-items:flex-start;gap:10px;margin-bottom:18px;padding:10px 14px;font-size:12.5px;line-height:1.55;display:flex}.tf-ws .mf-banner .ico{flex-shrink:0;font-size:14px;line-height:1.4}.tf-ws .mf-grid{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}.tf-ws .mf-col{min-width:0}.tf-ws .mf-sec{background:var(--tf-paper);border:1px solid var(--tf-line);border-radius:10px;margin-bottom:14px;overflow:hidden}.tf-ws .mf-sec-head{border-bottom:1px solid var(--tf-line-soft,#ecece7);justify-content:space-between;align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.tf-ws .mf-sec-head h3{font-family:var(--sans);color:var(--tf-fg);margin:0;font-size:14px;font-weight:600}.tf-ws .mf-sec-head .mf-desc{color:var(--tf-fg-mute);margin:4px 0 0;font-size:12px;line-height:1.5}.tf-ws .mf-map{font-family:var(--mono);letter-spacing:.04em;color:#5b21b6;background:#f3ebff;border-radius:999px;margin-left:8px;padding:1px 7px;font-size:10.5px;font-weight:600}.tf-ws .mf-sec-body{padding:14px}.tf-ws .mf-field{flex-direction:column;gap:6px;margin-bottom:12px;display:flex}.tf-ws .mf-field:last-child{margin-bottom:0}.tf-ws .mf-lab{font-family:var(--sans);color:var(--tf-fg-2);font-size:12px;font-weight:500}.tf-ws .mf-kw{font-family:var(--mono);color:#4338ca;font-weight:700}.tf-ws .mf-hint{font-family:var(--mono);color:var(--tf-fg-dim);margin-left:6px;font-size:10.5px;font-weight:400}.tf-ws .mf-control{border:1px solid var(--tf-line);width:100%;font-family:var(--sans);color:var(--tf-fg);background:#fff;border-radius:6px;outline:none;padding:7px 10px;font-size:13px;transition:border-color .12s}.tf-ws .mf-control:focus{border-color:#4338ca}.tf-ws .mf-textarea{border:1px solid var(--tf-line);width:100%;font-family:var(--mono);color:var(--tf-fg);resize:vertical;box-sizing:border-box;background:#fff;border-radius:8px;outline:none;min-height:60px;padding:10px 12px;font-size:12.5px;transition:border-color .12s}.tf-ws .mf-textarea:focus{border-color:#4338ca}.tf-ws .mf-textarea.tall{min-height:180px}.tf-ws .mf-prefix{border:1px solid var(--tf-line);background:#fff;border-radius:6px;align-items:stretch;display:flex;overflow:hidden}.tf-ws .mf-prefix:focus-within{border-color:#4338ca}.tf-ws .mf-pre{color:#5e6675;font-family:var(--mono);border-right:1px solid var(--tf-line);background:#f4f5f7;padding:7px 10px;font-size:12px;font-weight:600}.tf-ws .mf-prefix input{font-family:var(--mono);color:var(--tf-fg);background:0 0;border:0;outline:none;flex:1;min-width:0;padding:7px 10px;font-size:13px}.tf-ws .mf-params{grid-template-columns:1fr 1fr;gap:10px;display:grid}.tf-ws .mf-params .mf-field{margin-bottom:0}.tf-ws .mf-btn-sm{border:1px solid var(--tf-line);color:var(--tf-fg-2);font-family:var(--sans);cursor:pointer;background:#fff;border-radius:6px;flex-shrink:0;padding:5px 10px;font-size:12px;transition:background .12s,border-color .12s}.tf-ws .mf-btn-sm:hover:not(:disabled){background:var(--tf-paper-2);border-color:var(--tf-fg-2)}.tf-ws .mf-btn-sm:disabled{opacity:.5;cursor:not-allowed}.tf-ws .mf-pill{font-family:var(--mono);letter-spacing:.04em;color:#5e6675;background:#f4f5f7;border-radius:999px;flex-shrink:0;align-self:flex-start;padding:3px 9px;font-size:10.5px;font-weight:600}.tf-ws .mf-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.tf-ws .mf-rating{font-family:var(--sans);color:var(--tf-fg-mute);align-items:center;gap:6px;font-size:12px;display:inline-flex}.tf-ws .mf-chip{border:1px solid var(--tf-line);font-family:var(--sans);color:var(--tf-fg-mute);cursor:pointer;background:#fff;border-radius:999px;padding:4px 9px;font-size:11.5px;font-weight:500;transition:background .12s,color .12s,border-color .12s}.tf-ws .mf-chip:hover{background:var(--tf-paper-2);color:var(--tf-fg-2)}.tf-ws .mf-chip.active{color:#4338ca;background:#eeedfb;border-color:#d9d6f5}.tf-ws .mf-msg-empty{text-align:center;color:var(--tf-fg-mute);border:1px dashed var(--tf-line);background:#fafafa;border-radius:8px;padding:24px 16px;font-size:12.5px;line-height:1.55}.tf-ws .mf-pair{border:1px solid var(--tf-line);background:#fafafa;border-radius:8px;grid-template-columns:28px 1fr 28px;gap:8px;margin-bottom:8px;padding:10px;display:grid}.tf-ws .mf-pair-num{font-family:var(--mono);color:var(--tf-fg-dim);text-align:center;padding-top:6px;font-size:11px}.tf-ws .mf-pair-fields{min-width:0}.tf-ws .mf-pair-fields>div+div{margin-top:6px}.tf-ws .mf-msg-role{font-family:var(--mono);border-radius:4px;margin-bottom:4px;padding:1px 7px;font-size:10.5px;font-weight:600;display:inline-block}.tf-ws .mf-msg-role.user{color:#3730a3;background:#e0e7ff}.tf-ws .mf-msg-role.assistant{color:#5b21b6;background:#f3ebff}.tf-ws .mf-msg-remove{border:1px solid var(--tf-line);width:24px;height:24px;color:var(--tf-fg-mute);cursor:pointer;background:#fff;border-radius:6px;align-self:flex-start;font-size:12px;line-height:1;transition:background .12s,color .12s,border-color .12s}.tf-ws .mf-msg-remove:hover{color:#b91c1c;background:#fee2e2;border-color:#fca5a5}.tf-ws .mf-add-pair{border:1px dashed var(--tf-line);width:100%;color:var(--tf-fg-mute);font-family:var(--sans);cursor:pointer;background:#fff;border-radius:8px;margin-top:4px;padding:8px 12px;font-size:12.5px;transition:border-color .12s,color .12s}.tf-ws .mf-add-pair:hover{color:#4338ca;border-color:#4338ca}.tf-ws .mf-preview{background:#0f172a;border:1px solid #1e293b;border-radius:10px;margin-bottom:14px;overflow:hidden}.tf-ws .mf-pv-bar{font-family:var(--mono);color:#94a3b8;background:#1e293b;border-bottom:1px solid #334155;justify-content:space-between;align-items:center;padding:8px 12px;font-size:11px;display:flex}.tf-ws .mf-pv-bar .nm{align-items:center;gap:5px;display:inline-flex}.tf-ws .mf-pv-bar .nm .lbl{margin-left:6px}.tf-ws .mf-pv-bar .dot{border-radius:5px;width:9px;height:9px;display:inline-block}.tf-ws .mf-pv-bar .dot.r{background:#ef4444}.tf-ws .mf-pv-bar .dot.y{background:#f59e0b}.tf-ws .mf-pv-bar .dot.g{background:#10b981}.tf-ws .mf-copy{font-family:var(--mono);color:#94a3b8;cursor:pointer;background:0 0;border:1px solid #334155;border-radius:5px;padding:3px 9px;font-size:11px;transition:color .12s,border-color .12s}.tf-ws .mf-copy:hover{color:#e2e8f0;border-color:#475569}.tf-ws .mf-copy.on{color:#10b981;border-color:#065f46}.tf-ws .mf-pv-body{font-family:var(--mono);color:#e2e8f0;white-space:pre;max-height:560px;margin:0;padding:12px 14px;font-size:12px;line-height:1.55;overflow:auto}.tf-ws .mf-pv-body .kw{color:#fbbf24;font-weight:600}.tf-ws .mf-pv-body .role{color:#60a5fa}.tf-ws .mf-pv-body .num{color:#f472b6}.tf-ws .mf-pv-body .str{color:#86efac}.tf-ws .mf-pv-body .comment{color:#64748b;font-style:italic}.tf-ws .mf-cmd-card{color:#e2e8f0;font-family:var(--mono);background:#0f172a;border:1px solid #1e293b;border-radius:10px;margin-bottom:14px;padding:12px 14px}.tf-ws .mf-cmd-label{color:#64748b;text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px;font-size:10px}.tf-ws .mf-cmd{font-size:12.5px;line-height:1.55}.tf-ws .mf-cmd .pmt{color:#64748b}.tf-ws .mf-cmd .kw{color:#fbbf24;font-weight:600}.tf-ws .mf-cmd .name{color:#e2e8f0;font-weight:600}.tf-ws .mf-cmd .opt{color:#94a3b8}.tf-ws .mf-placeholder{text-align:center;background:var(--tf-paper);border:1px dashed var(--tf-line);color:var(--tf-fg-mute);border-radius:10px;margin-bottom:14px;padding:20px 16px;font-size:12.5px;line-height:1.55}@media (width<=1100px){.tf-ws .mf-grid{grid-template-columns:1fr}}@media (width<=768px){.tf-ws .mf-section{padding:20px 16px}.tf-ws .mf-params{grid-template-columns:1fr}.tf-ws .mf-pair{grid-template-columns:22px 1fr 22px}}.arena-root{--bg:#fafaf8;--bg-elev:#fff;--code-bg:#f5f5f4;--fg:#0a0e1a;--fg-2:#1f2433;--fg-mute:#5a6072;--fg-dim:#8a91a3;--line:#e5e7eb;--line-2:#d9dce3;--accent:#1e2d5c;--accent-2:#2563eb;--tint-blue:#eef2ff;--pro-bg:#ecfdf5;--pro-fg:#047857;--pro-ac:#10b981;--pro-soft:#d1fae5;--con-bg:#fef2f2;--con-fg:#b91c1c;--con-ac:#ef4444;--con-soft:#fee2e2;--vio-bg:#f5f3ff;--vio-fg:#6d28d9;--vio-ac:#8b5cf6;--vio-soft:#ede9fe;--amb-bg:#fffbeb;--amb-fg:#b45309;--amb-ac:#f59e0b;--amb-soft:#fef3c7;--mod-bg:#eef2ff;--mod-fg:#1e2d5c;--mod-ac:#1e2d5c;--serif:"Pretendard Variable", Pretendard, -apple-system, system-ui, sans-serif;--sans:"Inter", "Pretendard Variable", system-ui, sans-serif;--mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--maxw:1160px;background:var(--bg);color:var(--fg);font-family:var(--serif);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:16px;line-height:1.7}.arena-root *{box-sizing:border-box}.arena-root .wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px}@media (width<=768px){.arena-root .wrap{padding:0 20px}}.arena-root button{cursor:pointer;font:inherit;color:inherit;background:0 0;border:0;padding:0}.arena-root input,.arena-root select,.arena-root textarea{font:inherit;color:inherit}.arena-root .arena-hero{border-bottom:1px solid var(--line);background:var(--bg);position:relative;overflow:hidden}.arena-root .arena-hero:before{content:"";pointer-events:none;background:radial-gradient(620px 280px at 22% -10%,#10b9811a,#0000 70%),radial-gradient(620px 280px at 78% -10%,#ef44441a,#0000 70%);position:absolute;inset:0}.arena-root .arena-hero-inner{padding:46px 0 40px;position:relative}.arena-root .ah-eyebrow{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--fg-mute);border:1px solid var(--line);background:#fff;border-radius:999px;align-items:center;gap:8px;padding:5px 12px;font-size:11.5px;display:inline-flex}.arena-root .ah-eyebrow .live{background:var(--pro-ac);border-radius:50%;width:7px;height:7px;animation:1.8s infinite arenaPulse}@keyframes arenaPulse{0%{box-shadow:0 0 #10b98173}70%{box-shadow:0 0 0 7px #10b98100}to{box-shadow:0 0 #10b98100}}.arena-root h1.ah-title{font-family:var(--serif);letter-spacing:-.03em;margin:18px 0 12px;font-size:clamp(34px,5.2vw,58px);font-weight:700;line-height:1.05}.arena-root h1.ah-title .vs{font-family:var(--mono);letter-spacing:.02em;color:#fff;background:var(--fg);border-radius:10px;justify-content:center;align-items:center;margin:0 .12em;padding:.18em .42em;font-size:.42em;font-weight:600;display:inline-flex;transform:translateY(-.16em)rotate(-4deg)}.arena-root .ah-sub{color:var(--fg-mute);max-width:620px;margin:0;font-size:17px;line-height:1.6}.arena-root .ah-chips{flex-wrap:wrap;gap:8px;margin-top:22px;display:flex}.arena-root .ah-chip{font-family:var(--sans);border:1px solid var(--line);color:var(--fg-2);white-space:nowrap;background:#fff;border-radius:999px;align-items:center;gap:7px;padding:6px 12px;font-size:12.5px;font-weight:500;display:inline-flex}.arena-root .ah-chip .d{border-radius:50%;width:8px;height:8px}.arena-root main{padding:36px 0 64px}.arena-root .stack{flex-direction:column;gap:20px;display:flex}.arena-root .card{background:var(--bg-elev);border:1px solid var(--line);border-radius:14px}.arena-root .card-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:14px;padding:18px 22px;display:flex}.arena-root .card-head h2{font-family:var(--serif);letter-spacing:-.01em;white-space:nowrap;align-items:center;gap:10px;margin:0;font-size:18px;font-weight:600;display:flex}.arena-root .card-head .step-no{font-family:var(--mono);color:var(--fg-dim);letter-spacing:.1em;background:var(--code-bg);border:1px solid var(--line);border-radius:6px;padding:3px 7px;font-size:11px;font-weight:600}.arena-root .card-body{padding:22px}.arena-root .collapsed .card-body{display:none}.arena-root .ghost{font-family:var(--sans);color:var(--fg-mute);border:1px solid var(--line-2);white-space:nowrap;background:#fff;border-radius:8px;align-items:center;gap:7px;padding:7px 12px;font-size:13px;font-weight:500;transition:border-color .12s,color .12s;display:inline-flex}.arena-root .ghost:hover{border-color:var(--fg-2);color:var(--fg)}.arena-root .ghost .chev{transition:transform .2s}.arena-root .collapsed .ghost .chev{transform:rotate(-90deg)}.arena-root .field{flex-direction:column;gap:7px;display:flex}.arena-root .field .lbl{font-family:var(--sans);letter-spacing:.02em;color:var(--fg-2);align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.arena-root .field .lbl .opt{color:var(--fg-dim);font-size:11.5px;font-weight:400}.arena-root .inp{border:1px solid var(--line-2);width:100%;min-width:0;font-family:var(--serif);color:var(--fg);background:#fff;border-radius:9px;padding:11px 13px;font-size:14.5px;transition:border-color .12s,box-shadow .12s}.arena-root .inp:focus{border-color:var(--accent-2);outline:0;box-shadow:0 0 0 3px #2563eb1f}.arena-root textarea.inp{resize:vertical;min-height:54px;line-height:1.55}.arena-root select.inp{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none' stroke='%238A91A3' stroke-width='1.6'%3E%3Cpath d='m3 4.5 3 3 3-3'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:32px}.arena-root .topic-field textarea.inp{min-height:60px;font-size:16px}.arena-root .format-row{grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px;display:grid}@media (width<=680px){.arena-root .format-row{grid-template-columns:1fr}}.arena-root .roster-head{justify-content:space-between;align-items:center;gap:12px;margin:26px 0 4px;display:flex}.arena-root .roster-head .t{font-family:var(--sans);letter-spacing:.02em;color:var(--fg-2);font-size:12px;font-weight:600}.arena-root .roster-head .n{font-family:var(--mono);color:var(--fg-dim);font-size:11px}.arena-root .roster{grid-template-columns:1fr 56px 1fr;align-items:stretch;gap:14px;margin-top:12px;display:grid}@media (width<=840px){.arena-root .roster{grid-template-columns:1fr;gap:14px}}.arena-root .vs-medallion{background:var(--fg);color:#fff;width:52px;height:52px;font-family:var(--mono);letter-spacing:.04em;border-radius:50%;place-self:center;place-items:center;font-size:14px;font-weight:600;display:grid;transform:rotate(-4deg);box-shadow:0 6px 18px -6px #0a0e1a80}@media (width<=840px){.arena-root .vs-medallion{transform:rotate(-4deg)scale(.85)}}.arena-root .roster.multi{flex-wrap:wrap;display:flex}.arena-root .roster.multi .vs-medallion{display:none}.arena-root .roster.multi .panelist{flex:340px}.arena-root .panelist{border:1px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;min-width:0;display:flex;position:relative;overflow:hidden}.arena-root .panelist[data-pal=pro]{--bg:var(--pro-bg);--fg-c:var(--pro-fg);--ac:var(--pro-ac);--soft:var(--pro-soft)}.arena-root .panelist[data-pal=con]{--bg:var(--con-bg);--fg-c:var(--con-fg);--ac:var(--con-ac);--soft:var(--con-soft)}.arena-root .panelist[data-pal=vio]{--bg:var(--vio-bg);--fg-c:var(--vio-fg);--ac:var(--vio-ac);--soft:var(--vio-soft)}.arena-root .panelist[data-pal=amb]{--bg:var(--amb-bg);--fg-c:var(--amb-fg);--ac:var(--amb-ac);--soft:var(--amb-soft)}.arena-root .pl-head{background:var(--bg);border-bottom:1px solid var(--line);grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:12px 14px 12px 16px;display:grid}.arena-root .pl-ava{border:1px solid var(--ac);width:34px;height:34px;color:var(--fg-c);font-family:var(--mono);background:#fff;border-radius:10px;flex-shrink:0;place-items:center;font-size:13px;font-weight:600;display:grid}.arena-root .pl-stance{min-width:0;font-family:var(--sans);color:var(--fg-c);background:0 0;border:0;border-radius:6px;padding:3px 4px;font-size:15px;font-weight:600}.arena-root .pl-stance:focus{box-shadow:0 0 0 2px var(--ac) inset;background:#fff;outline:0}.arena-root .pl-del{width:30px;height:30px;color:var(--fg-dim);border-radius:8px;flex-shrink:0;place-items:center;transition:background .12s,color .12s;display:grid}.arena-root .pl-del:hover{background:var(--con-bg);color:var(--con-fg)}.arena-root .pl-body{flex-direction:column;flex:1;gap:12px;padding:14px;display:flex}.arena-root .pl-row{flex-direction:column;gap:6px;display:flex}.arena-root .pl-row .mini{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-dim);font-size:9.5px;font-weight:600}.arena-root .pl-prompt{min-height:74px}.arena-root .pl-tune{margin-top:2px}.arena-root .pl-tune-btn{width:100%;font-family:var(--sans);color:var(--fg-mute);border:1px solid var(--line);background:#fff;border-radius:8px;align-items:center;gap:7px;padding:8px 11px;font-size:11.5px;font-weight:600;transition:border-color .12s,color .12s,background .12s;display:flex}.arena-root .pl-tune-btn:hover{border-color:var(--fg-2);color:var(--fg-2)}.arena-root .pl-tune-btn .ico{width:14px;height:14px;color:var(--fg-c)}.arena-root .pl-tune-btn .grow{text-align:left;flex:1}.arena-root .pl-tune-btn .sum{font-family:var(--mono);color:var(--fg-dim);letter-spacing:.02em;font-size:10px;font-weight:500}.arena-root .pl-tune-btn .chev{transition:transform .2s}.arena-root .pl-tune.open .pl-tune-btn .chev{transform:rotate(180deg)}.arena-root .pl-tune.open .pl-tune-btn{color:var(--fg-2);border-bottom-color:#0000;border-bottom-right-radius:0;border-bottom-left-radius:0}.arena-root .pl-params{border:1px solid var(--line);background:var(--bg);border-top:0;border-radius:0 0 8px 8px;padding:14px 13px 4px;display:none}.arena-root .pl-tune.open .pl-params{display:block}.arena-root .param{margin-bottom:14px}.arena-root .param .ptop{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.arena-root .param .pname{font-family:var(--mono);color:var(--fg-2);letter-spacing:.02em;font-size:10.5px;font-weight:600}.arena-root .param .pname .opt{font-family:var(--sans);color:var(--fg-dim);letter-spacing:0;font-size:10.5px;font-weight:400}.arena-root .param .pval{font-family:var(--mono);color:var(--fg-c);border:1px solid var(--line-2);text-align:center;background:#fff;border-radius:5px;min-width:46px;padding:1px 7px;font-size:12px;font-weight:600}.arena-root .param input[type=range]{appearance:none;background:var(--line-2);cursor:pointer;border-radius:3px;outline:none;width:100%;height:4px;margin:0}.arena-root .param input[type=range]::-webkit-slider-thumb{appearance:none;border:2px solid var(--ac);cursor:pointer;background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .1s;box-shadow:0 1px 3px #0a0e1a40}.arena-root .param input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.12)}.arena-root .param input[type=range]::-moz-range-thumb{border:2px solid var(--ac);cursor:pointer;background:#fff;border-radius:50%;width:16px;height:16px;box-shadow:0 1px 3px #0a0e1a40}.arena-root .param .phint{font-family:var(--sans);color:var(--fg-dim);margin-top:5px;font-size:10.5px;line-height:1.4}.arena-root .pl-reset{font-family:var(--sans);color:var(--fg-mute);border:1px solid var(--line);background:#fff;border-radius:7px;align-items:center;gap:6px;margin-bottom:10px;padding:5px 10px;font-size:11px;font-weight:500;transition:color .12s,border-color .12s;display:inline-flex}.arena-root .pl-reset:hover{color:var(--fg-2);border-color:var(--fg-2)}.arena-root .add-panelist{font-family:var(--sans);color:var(--accent);border:1px dashed var(--line-2);background:#fff;border-radius:9px;align-items:center;gap:8px;margin-top:16px;padding:10px 16px;font-size:13.5px;font-weight:500;transition:border-color .12s,background .12s;display:inline-flex}.arena-root .add-panelist:hover{border-color:var(--accent-2);background:var(--tint-blue)}.arena-root .launch{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:24px;padding-top:22px;display:flex}.arena-root .launch .note{font-family:var(--sans);color:var(--fg-mute);align-items:center;gap:8px;font-size:12.5px;display:flex}.arena-root .launch .note svg{color:var(--fg-dim);flex-shrink:0}.arena-root .btn-start{font-family:var(--sans);color:#fff;background:linear-gradient(120deg,#10b981,#2563eb 55%,#8b5cf6) 0 0/200% 100%;border-radius:11px;align-items:center;gap:10px;padding:13px 26px;font-size:15px;font-weight:600;transition:transform .14s,box-shadow .14s,background-position .5s;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 8px 22px -8px #2563eb80}.arena-root .btn-start:hover{background-position:100% 0;transform:translateY(-1px);box-shadow:0 12px 28px -8px #2563eb8c}.arena-root .btn-start:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.arena-root .btn-start svg{flex-shrink:0}.arena-root .stage{display:none}.arena-root .stage.live{display:block}.arena-root .stage-card{overflow:hidden}.arena-root .scoreboard{border-bottom:1px solid var(--line);background:linear-gradient(#fff,#fcfcfb);grid-template-columns:1fr auto;align-items:center;gap:14px;padding:16px 22px;display:grid}.arena-root .sb-topic{min-width:0}.arena-root .sb-topic .k{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fg-dim);font-size:10px;font-weight:600}.arena-root .sb-topic .v{font-family:var(--serif);color:var(--fg);letter-spacing:-.01em;margin-top:2px;font-size:17px;font-weight:600;line-height:1.3}.arena-root .sb-right{flex-shrink:0;align-items:center;gap:16px;display:flex}.arena-root .rounds{align-items:center;gap:6px;display:flex}.arena-root .rounds .pip{background:var(--line-2);border-radius:50%;width:9px;height:9px;transition:background .25s,transform .25s}.arena-root .rounds .pip.done{background:var(--accent-2)}.arena-root .rounds .pip.now{background:var(--fg);transform:scale(1.35)}.arena-root .rounds .rl{font-family:var(--mono);color:var(--fg-mute);margin-left:4px;font-size:11px}.arena-root .turn-flag{font-family:var(--sans);color:var(--fg-mute);border:1px solid var(--line);background:#fff;border-radius:999px;justify-content:center;align-items:center;gap:7px;min-width:118px;padding:6px 12px;font-size:12px;font-weight:600;display:inline-flex}.arena-root .turn-flag .d{background:var(--fg-dim);border-radius:50%;width:8px;height:8px}.arena-root .turn-flag.thinking .d{animation:1s infinite arenaBlink}@keyframes arenaBlink{50%{opacity:.25}}.arena-root .lineup{border-bottom:1px solid var(--line);background:#fcfcfb;flex-wrap:wrap;gap:8px;padding:12px 22px;display:flex}.arena-root .seat{border:1px solid var(--line);background:#fff;border-radius:999px;align-items:center;gap:8px;padding:5px 12px 5px 6px;transition:box-shadow .2s,border-color .2s;display:inline-flex}.arena-root .seat .av{width:24px;height:24px;font-family:var(--mono);color:#fff;border-radius:50%;place-items:center;font-size:10px;font-weight:600;display:grid}.arena-root .seat .nm{font-family:var(--sans);color:var(--fg-2);font-size:12.5px;font-weight:600}.arena-root .seat.active{border-color:var(--seat-ac);box-shadow:0 0 0 3px var(--seat-soft)}.arena-root .seat.active .nm{color:var(--seat-fg)}.arena-root .transcript{flex-direction:column;gap:18px;max-height:62vh;padding:24px 22px;display:flex;position:relative;overflow-y:auto}.arena-root .transcript::-webkit-scrollbar{width:9px}.arena-root .transcript::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:5px}.arena-root .turn{gap:13px;max-width:84%;animation:.32s arenaRise;display:flex}@keyframes arenaRise{0%{transform:translateY(10px)}to{transform:none}}.arena-root .turn.right{flex-direction:row-reverse;margin-left:auto}.arena-root .turn .av{width:38px;height:38px;font-family:var(--mono);color:#fff;border-radius:11px;flex-shrink:0;place-items:center;font-size:13px;font-weight:600;display:grid;box-shadow:0 3px 8px -2px #0a0e1a40}.arena-root .turn .col{flex-direction:column;gap:5px;min-width:0;display:flex}.arena-root .turn.right .col{align-items:flex-end}.arena-root .turn .meta{font-family:var(--sans);align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.arena-root .turn .meta .badge{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;border-radius:5px;padding:2px 6px;font-size:9px;font-weight:600}.arena-root .turn .meta .mdl{font-family:var(--mono);color:var(--fg-dim);font-size:10px;font-weight:400}.arena-root .bubble{font-family:var(--serif);color:var(--fg);border:1px solid var(--bd);background:var(--bbg);white-space:pre-wrap;word-break:break-word;border-radius:14px;padding:13px 16px;font-size:15px;line-height:1.62}.arena-root .turn:not(.right) .bubble{border-top-left-radius:5px}.arena-root .turn.right .bubble{text-align:left;border-top-right-radius:5px}.arena-root .bubble .cursor{vertical-align:-2px;background:var(--ac,#1e2d5c);width:7px;height:1.05em;margin-left:2px;animation:.9s step-end infinite arenaBlink;display:inline-block}.arena-root .tdots{align-items:center;gap:6px;height:1.2em;display:inline-flex}.arena-root .tdots i{background:var(--ac,#1e2d5c);opacity:.35;border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite tdotBounce}.arena-root .tdots i:nth-child(2){animation-delay:.18s}.arena-root .tdots i:nth-child(3){animation-delay:.36s}@keyframes tdotBounce{0%,75%,to{opacity:.3;transform:translateY(0)scale(.9)}35%{opacity:1;transform:translateY(-4px)scale(1)}}.arena-root .turn.mod{flex-direction:column;justify-content:center;align-items:center;gap:8px;max-width:100%}.arena-root .turn.mod .mod-tag{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--mod-fg);align-items:center;gap:7px;font-size:10px;font-weight:600;display:inline-flex}.arena-root .turn.mod .mod-tag .gv{width:18px;height:18px}.arena-root .turn.mod .mod-text{text-align:center;max-width:560px;font-family:var(--serif);color:var(--fg-2);background:var(--mod-bg);border:1px dashed #c7d2fe;border-radius:12px;padding:12px 18px;font-size:14.5px;line-height:1.5}.arena-root .stage-empty{text-align:center;color:var(--fg-mute);padding:30px 0;font-size:14px}.arena-root .stage-foot{border-top:1px solid var(--line);background:#fcfcfb;flex-direction:column;gap:12px;padding:14px 22px;display:flex}.arena-root .mod-composer{grid-template-columns:auto 1fr auto;align-items:center;gap:10px;display:grid}@media (width<=600px){.arena-root .mod-composer{grid-template-columns:1fr;gap:8px}}.arena-root .mod-composer .tag{font-family:var(--sans);color:var(--mod-fg);white-space:nowrap;align-items:center;gap:7px;font-size:12.5px;font-weight:600;display:inline-flex}.arena-root .mod-composer .inp{border-radius:9px;padding:9px 12px}.arena-root .mod-send{font-family:var(--sans);color:#fff;background:var(--mod-ac);white-space:nowrap;border-radius:9px;padding:9px 16px;font-size:13px;font-weight:600;transition:background .12s}.arena-root .mod-send:hover{background:#16224a}.arena-root .mod-send:disabled{opacity:.45;cursor:not-allowed}.arena-root .stage-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.arena-root .ctrl-group{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.arena-root .cbtn{font-family:var(--sans);color:var(--fg-2);border:1px solid var(--line-2);background:#fff;border-radius:9px;align-items:center;gap:7px;padding:8px 14px;font-size:13px;font-weight:500;transition:border-color .12s,color .12s,background .12s;display:inline-flex}.arena-root .cbtn:hover{border-color:var(--fg-2);color:var(--fg)}.arena-root .cbtn.primary{background:var(--fg);color:#fff;border-color:var(--fg)}.arena-root .cbtn.primary:hover{background:#000}.arena-root .cbtn:disabled{opacity:.4;cursor:not-allowed}.arena-root .cbtn svg{flex-shrink:0}.arena-root .status-note{font-family:var(--mono);color:var(--fg-dim);letter-spacing:.03em;font-size:11px}.arena-root .toast{background:var(--fg);color:#fff;font-family:var(--sans);opacity:0;pointer-events:none;z-index:80;border-radius:8px;padding:9px 16px;font-size:13px;font-weight:500;transition:opacity .18s,transform .18s;position:fixed;bottom:28px;left:50%;transform:translate(-50%)translateY(8px)}.arena-root .toast.show{opacity:1;transform:translate(-50%)translateY(0)}@media (prefers-reduced-motion:reduce){.arena-root *{transition:none!important;animation:none!important}}
