:root{--bg: #020617;--panel: #0f172a;--panel-2: #1e293b;--border: #1e293b;--border-2: #334155;--text: #f1f5f9;--muted: #94a3b8;--accent: #38bdf8;--accent-strong: #0ea5e9;--accent-2: #34d399;--danger: #fb7185;--warn: #fbbf24;--violet: #a78bfa;--sidebar-w: 236px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:14px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app{display:flex;flex-direction:column;height:100vh}.shell{display:flex;height:100vh}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--bg);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:14px 10px;gap:6px}.sidebar.collapsed{width:62px;align-items:stretch}.sidebar.collapsed .navitem{justify-content:center;padding:10px 0}.sidebar.collapsed .brand{justify-content:center}.collapsebtn{background:transparent;border:none;color:var(--muted);padding:4px;margin-left:auto;cursor:pointer}.collapsebtn:hover{color:var(--text);background:var(--panel-2)}.sidebar.collapsed .collapsebtn{margin:0 auto}.sidebar .brand{display:flex;align-items:center;gap:10px;padding:4px 8px 12px}.brandtile{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;color:#04121f;background:linear-gradient(135deg,var(--accent),var(--violet));flex-shrink:0}.brandname{font-weight:700}.brandname small{display:block;color:var(--muted);font-weight:500;font-size:11px}.navgroup-h{font-size:10.5px;letter-spacing:.8px;text-transform:uppercase;color:#64748b;padding:12px 10px 4px}.navitem{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:9px;cursor:pointer;color:var(--muted);font-weight:500;-webkit-user-select:none;user-select:none}.navitem:hover{background:#94a3b814;color:var(--text)}.navitem.active{background:#38bdf81f;color:var(--accent)}.navitem svg{flex-shrink:0}.sidebar .spacer{flex:1}.sidebar .health{display:flex;align-items:center;gap:8px;padding:8px 10px;font-size:12px;color:var(--muted);border-top:1px solid var(--border)}.statuspanel{border-top:1px solid var(--border);padding:10px 8px 4px;display:flex;flex-direction:column;gap:6px;font-size:12px}.statuspanel .srow{display:flex;align-items:center;gap:7px}.statuspanel .srow .right{margin-left:auto}.statuspanel .stag{margin-right:8px;color:var(--muted)}.statusmini{display:flex;justify-content:center;padding:10px 0;border-top:1px solid var(--border)}.sdot{width:8px;height:8px;border-radius:50%;display:inline-block;background:var(--border-2)}.sdot.ok{background:var(--accent-2)}.sdot.bad{background:var(--danger)}.ssidebar{position:relative}.ss-trigger{display:flex;width:100%;align-items:center;justify-content:space-between;gap:8px;background:var(--panel);border:1px solid var(--border);border-radius:11px;padding:8px 10px;color:var(--text)}.ss-trigger:hover{background:var(--panel-2)}.ss-count{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:#cbd5e1}.ss-sep{color:var(--border-2)}.tnum{font-variant-numeric:tabular-nums}.ic-emerald{color:var(--accent-2)}.ic-sky{color:var(--accent)}.ss-chev{color:#475569;transition:transform .15s}.ss-chev.rot{transform:rotate(90deg)}.ss-pop{position:absolute;bottom:calc(100% + 8px);left:0;z-index:50;width:320px;background:#0f172af7;border:1px solid var(--border-2);border-radius:12px;padding:12px;box-shadow:0 18px 40px #0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.ss-h{display:flex;align-items:center;justify-content:space-between;margin:6px 0;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}.ss-h>span:first-child{display:inline-flex;align-items:center;gap:6px}.ss-h:first-child{margin-top:0}.ss-link{color:var(--accent);font-size:11px;cursor:pointer;text-transform:none;letter-spacing:0}.ss-box{max-height:150px;overflow-y:auto;border:1px solid var(--border);border-radius:8px;background:#02061799;margin-bottom:10px}.ss-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;border-bottom:1px solid rgba(30,41,59,.6)}.ss-item:last-child{border-bottom:0}.ss-tag{font-size:10px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);display:inline-flex;align-items:center;gap:5px}.ss-tag.em{color:var(--accent-2)}.ss-tag.rose{color:var(--danger)}.ss-log{padding:6px 10px;border-bottom:1px solid rgba(30,41,59,.6);font-size:11px}.ss-log:last-child{border-bottom:0}.ss-empty{padding:7px 10px;font-size:12px;display:flex;align-items:center;gap:6px}.dotmini{width:6px;height:6px;border-radius:50%;display:inline-block;background:var(--border-2);flex-shrink:0}.dotmini.ok{background:var(--accent-2)}.dotmini.off{background:var(--danger)}.dotmini.sky{background:var(--accent)}.warn{color:var(--warn)}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:60;display:flex;justify-content:flex-end}.drawer{width:460px;max-width:92vw;height:100%;background:var(--panel);border-left:1px solid var(--border-2);display:flex;flex-direction:column}.drawer-h{display:flex;align-items:center;padding:14px 16px;border-bottom:1px solid var(--border)}.drawer-h .right{margin-left:auto}.drawer-body{flex:1;overflow:auto;padding:12px 14px;display:flex;flex-direction:column;gap:8px}.svc{border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:var(--panel-2)}.svc .right{margin-left:auto}.svc-meta{font-size:11px;margin-top:4px}.svc-logs{margin-top:8px}.logbox{background:#0a0f1a;border:1px solid var(--border);border-radius:8px;padding:8px;max-height:220px;overflow:auto;font-size:11.5px;line-height:1.5}.workarea{flex:1;display:flex;flex-direction:column;min-width:0}.topbar-new{height:54px;flex-shrink:0;display:flex;align-items:center;gap:14px;padding:0 18px;border-bottom:1px solid var(--border);background:#020617cc;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.topbar-new .pagetitle{font-size:13px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);font-weight:600}.usermenu{position:relative;margin-left:auto}.userbtn{display:flex;align-items:center;gap:8px;background:transparent;color:var(--text);padding:5px 8px;border:1px solid transparent}.userbtn:hover{background:var(--panel-2)}.useravatar{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;font-weight:700;color:#04121f;background:linear-gradient(135deg,var(--accent),var(--violet))}.usermenu .dropdown{position:absolute;right:0;top:calc(100% + 6px);width:220px;z-index:40;background:var(--panel);border:1px solid var(--border-2);border-radius:10px;padding:6px;box-shadow:0 12px 30px #00000080}.usermenu .uhead{padding:8px 10px;border-bottom:1px solid var(--border);margin-bottom:4px}.usermenu .uhead .role{font-size:11px;color:var(--muted);text-transform:uppercase}.usermenu .ditem{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:7px;cursor:pointer;color:var(--text)}.usermenu .ditem:hover{background:var(--panel-2)}.usermenu .ditem.danger{color:var(--danger)}.workarea .content{flex:1;overflow:auto}.workarea .content>.main{padding:18px}.topbar{display:flex;align-items:center;gap:16px;padding:10px 18px;border-bottom:1px solid var(--border);background:var(--panel)}.brand{font-weight:700;letter-spacing:.3px}.brand span{color:var(--accent)}.tabs{display:flex;gap:4px;flex:1;flex-wrap:wrap}.tab{padding:7px 14px;border-radius:8px;cursor:pointer;color:var(--muted);border:1px solid transparent;-webkit-user-select:none;user-select:none}.tab:hover{color:var(--text);background:var(--panel-2)}.tab.active{color:var(--text);background:var(--panel-2);border-color:var(--border)}.health-dot{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:6px}.ok{background:var(--accent-2)}.bad{background:var(--danger)}.warnc{background:var(--warn)}.main{flex:1;overflow:auto;padding:18px}.grid{display:grid;gap:14px}.cols-2{grid-template-columns:1fr 1fr}.cols-3{grid-template-columns:repeat(3,1fr)}.cols-4{grid-template-columns:repeat(4,1fr)}.admtabs{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:14px;border-bottom:1px solid var(--border);padding-bottom:8px}.admtab{display:flex;align-items:center;gap:7px;padding:8px 13px;border-radius:9px;cursor:pointer;color:var(--muted);font-weight:600}.admtab:hover{background:var(--panel-2);color:var(--text)}.admtab.active{background:#38bdf81f;color:var(--accent)}.kpicard{padding:14px 16px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px}.panel h3{margin:0 0 12px;font-size:14px}.panel h3 .sub{color:var(--muted);font-weight:400;margin-left:8px;font-size:12px}button{background:var(--accent);color:#041018;border:none;padding:7px 12px;border-radius:8px;cursor:pointer;font-weight:600}button:hover{filter:brightness(1.08)}button.ghost{background:var(--panel-2);color:var(--text);border:1px solid var(--border)}button.danger{background:var(--danger);color:#1a0508}button:disabled{opacity:.5;cursor:not-allowed}input,textarea,select{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 10px;width:100%;font:inherit}textarea{resize:vertical;min-height:72px;font-family:ui-monospace,SFMono-Regular,monospace}label{display:block;color:var(--muted);font-size:12px;margin:8px 0 4px}.row{display:flex;gap:8px;align-items:center}.row>*{min-width:0}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;background:var(--panel-2);border:1px solid var(--border);color:var(--muted);margin:2px 4px 2px 0}.badge.green{color:var(--accent-2);border-color:#235}.badge.red{color:var(--danger)}.badge.blue{color:var(--accent)}.list{display:flex;flex-direction:column;gap:6px}.item{padding:10px 12px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;cursor:pointer}.item:hover,.item.sel{border-color:var(--accent)}.muted{color:var(--muted)}.err{color:var(--danger)}.mono{font-family:ui-monospace,SFMono-Regular,monospace;font-size:12px}table{width:100%;border-collapse:collapse;font-size:12px}th,td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border)}th{color:var(--muted);font-weight:600}.bubble{padding:10px 12px;border-radius:10px;margin:6px 0;white-space:pre-wrap}.bubble.user{background:var(--panel-2)}.bubble.assistant{background:#10202e;border:1px solid #1d3a4f}.spinner{color:var(--muted)}.right{margin-left:auto}a{color:var(--accent)}.scroll{max-height:60vh;overflow:auto}.kpi{font-size:22px;font-weight:700}.kpi .unit{font-size:12px;color:var(--muted);font-weight:400;margin-left:4px}.chat{display:flex;gap:0;height:calc(100vh - 54px)}.chat-side{width:268px;flex-shrink:0;border-right:1px solid var(--border);background:var(--panel);display:flex;flex-direction:column;padding:12px;gap:10px}.newchat{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;background:linear-gradient(135deg,var(--accent),#7c5cff);color:#06101c}.modelpick{position:relative}.modelbtn{display:flex;align-items:center;gap:8px;width:100%}.modelbtn .right{margin-left:auto}.modelmenu{position:absolute;z-index:20;top:calc(100% + 4px);left:0;right:0;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;max-height:320px;overflow:auto;padding:4px}.modelrow{display:flex;align-items:center;gap:6px;padding:7px 8px;border-radius:6px;cursor:pointer}.modelrow:hover{background:var(--panel)}.modelrow .right{margin-left:auto;color:var(--accent)}.searchbox{display:flex;align-items:center;gap:6px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:0 8px}.searchbox input{border:none;background:transparent;padding:7px 0}.threadlist{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:10px}.group{display:flex;flex-direction:column;gap:3px}.grouphdr{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;padding:4px 6px}.threadlist .item{padding:8px 10px;display:flex;align-items:center;gap:8px}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rename{padding:2px 6px;font-size:13px;flex:1}.rowactions{display:none;align-items:center;gap:8px;margin-left:auto;color:var(--muted)}.rowactions svg{cursor:pointer}.rowactions svg:hover{color:var(--text)}.rowactions .pinned{color:var(--warn)}.item:hover .rowactions{display:flex}.chat-main{flex:1;display:flex;flex-direction:column;min-width:0}.agentbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 8%;border-bottom:1px solid var(--border);background:#fbbf240d}.agentbar select,.agentbar input{width:auto}.steps{margin-bottom:8px;display:flex;flex-direction:column;gap:3px;border-left:2px solid var(--border-2);padding-left:10px}.step{font-size:12px;color:var(--muted)}.chat-scroll{flex:1;overflow-y:auto;padding:20px 8%;display:flex;flex-direction:column;gap:16px}.empty{margin:auto;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--text)}.msg{display:flex;gap:12px;align-items:flex-start}.msg.user{flex-direction:row-reverse}.avatar{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;flex-shrink:0}.msg.assistant .avatar{background:#10281f;color:var(--accent-2)}.msg.user .avatar{background:#16283c;color:var(--accent)}.bubble{max-width:760px;border-radius:12px;padding:12px 14px}.msg.assistant .bubble{background:var(--panel);border:1px solid var(--border)}.msg.user .bubble{background:#16283c}.pre{white-space:pre-wrap;word-break:break-word}.msgmeta{display:flex;align-items:center;gap:10px;margin-top:8px;font-size:12px}.iconbtn{background:transparent;color:var(--muted);border:1px solid transparent;padding:5px 7px;border-radius:7px;display:inline-grid;place-items:center;font-weight:600}.iconbtn:hover{color:var(--text);background:var(--panel-2)}.iconbtn.on{color:var(--accent-2);border-color:var(--accent-2)}.typing{display:flex;gap:4px;padding:4px 0}.typing span{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:blink 1.2s infinite both}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.2}40%{opacity:1}}.composer{border-top:1px solid var(--border);padding:12px 8%;background:var(--panel)}.composer .chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.composer .chip{display:inline-flex;align-items:center;gap:6px}.composer .chip svg{cursor:pointer}.composer-row{display:flex;align-items:flex-end;gap:8px;background:var(--panel-2);border:1px solid var(--border);border-radius:12px;padding:6px 8px}.composer-row textarea{flex:1;border:none;background:transparent;resize:none;max-height:200px;min-height:24px;padding:6px 4px;font-family:inherit}.composer-hint{font-size:11px;margin-top:6px;text-align:center}.md{line-height:1.6}.md>*:first-child{margin-top:0}.md>*:last-child{margin-bottom:0}.md p{margin:8px 0}.md pre{background:#0a1017;border:1px solid var(--border);border-radius:8px;padding:12px;overflow:auto}.md code{font-family:ui-monospace,SFMono-Regular,monospace;font-size:12.5px}.md :not(pre)>code{background:var(--panel-2);padding:1px 5px;border-radius:4px}.md table{margin:8px 0}.md th,.md td{border:1px solid var(--border);padding:5px 8px}.md a{color:var(--accent)}.md h1,.md h2,.md h3{margin:14px 0 6px}.md ul,.md ol{margin:6px 0;padding-left:22px}.md blockquote{border-left:3px solid var(--border);margin:8px 0;padding-left:12px;color:var(--muted)}.statuspanel .viewlogs{color:var(--accent);font-size:11px}.md .mermaid{background:#0a0f1a;border:1px solid var(--border);border-radius:8px;padding:12px;overflow:auto;margin:8px 0;text-align:center}.md .mermaid svg{max-width:100%;height:auto}.dl-panel{border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:10px;background:var(--panel-2)}.dl-row{margin-top:8px}.dl-bar{height:6px;background:#020617b3;border-radius:4px;overflow:hidden;margin-top:4px}.dl-fill{height:100%;transition:width .4s ease}.toolchip{align-self:flex-start;font-size:12px;color:var(--muted);background:var(--panel);border:1px solid var(--border);border-radius:999px;padding:3px 10px;font-family:ui-monospace,SFMono-Regular,monospace}.activity{margin-bottom:8px;font-size:12px}.activity summary{cursor:pointer;color:var(--muted)}.astep{font-family:ui-monospace,SFMono-Regular,monospace;font-size:11.5px;color:var(--muted);padding:3px 0 3px 14px;border-left:2px solid var(--border-2);margin-top:3px;word-break:break-word}.chat-toolbar{display:flex;align-items:center;gap:8px;padding:8px 8%;border-bottom:1px solid var(--border);font-size:12px}.chat-toolbar .iconbtn{font-size:12px;gap:6px}.confirmcard{align-self:center;max-width:620px;background:var(--panel);border:1px solid var(--warn);border-radius:12px;padding:14px 16px;margin:8px 0}.confirmcard .row{gap:8px;margin-top:4px}.filespanel{border-bottom:1px solid var(--border);padding:10px 8%;background:var(--panel)}.filespanel .row .iconbtn{margin-left:6px}.pagehero{display:flex;align-items:center;gap:12px;padding:14px 4px 10px}.pagehero>svg{color:var(--accent);flex-shrink:0}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.row.wrap{flex-wrap:wrap}.row .grow,label.grow{flex:1;min-width:180px}.pdfed,.story{max-width:900px;margin:0 auto;padding:8px 4px 40px}.pdfed-head{display:flex;align-items:center}.pdfdrop{border:1.5px dashed var(--border-2);border-radius:14px;padding:46px;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;color:var(--text);background:var(--panel)}.pdfdrop:hover{border-color:var(--accent);background:var(--panel-2)}.pdfinfo{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 0}.pdfinfo .mono{max-width:320px}.pdfsection{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin-top:12px}.pdfsection-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.pdfsection-h b{display:inline-flex;align-items:center;gap:6px}.pdfrows{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.pdfrow{display:flex;align-items:center;gap:8px}.pdfrow input{flex:1}.pdfrow .arrow,.pdfsugrow .arrow{color:var(--muted)}.pdfrow .ok,.pdfsugrow .ok{color:var(--accent-2)}.pdfrow .bad{color:var(--danger)}.pdfwarn{display:flex;align-items:flex-start;gap:6px;font-size:12px;color:var(--warn);background:#fbbf2414;border:1px solid rgba(251,191,36,.25);border-radius:8px;padding:7px 9px}.pdfsuggest,.pdfresult{margin-top:8px;border-top:1px solid var(--border);padding-top:8px}.pdfsugrow{display:flex;align-items:center;gap:8px;padding:3px 0;font-size:13px}.pdfsugrow .mono{background:var(--panel-2);padding:1px 6px;border-radius:5px}.storyform{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:10px}.storyform label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.storyform textarea{width:100%}.outline{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:14px;margin-top:12px;display:flex;flex-direction:column;gap:10px}.storytitle{font-size:18px;font-weight:700;background:transparent;border:none;border-bottom:1px solid transparent;flex:1;color:var(--text)}.storytitle:focus{border-bottom-color:var(--border-2);outline:none}.outline .ending{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--accent)}.outline .ending input{color:var(--text)}.chapters{display:flex;flex-direction:column;gap:8px}.chapcard{border:1px solid var(--border);border-radius:10px;padding:8px 10px;background:var(--panel-2)}.chnum{width:22px;height:22px;border-radius:6px;background:var(--accent);color:#04121f;display:grid;place-items:center;font-weight:700;font-size:12px;flex-shrink:0}.chtitle{flex:1;font-weight:600;background:transparent;border:none;color:var(--text)}.beats{width:100%;margin-top:6px;font-size:12px;color:var(--muted);background:var(--bg)}.storyout{margin-top:14px}.storybody{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px 20px;max-height:60vh;overflow:auto;margin-top:8px;line-height:1.7}.content{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}.tabpane{flex:1;min-height:0;height:100%}.tabpane[hidden]{display:none!important}.storyerr{display:flex;align-items:flex-start;gap:6px;font-size:13px;color:var(--danger);background:#fb718514;border:1px solid rgba(251,113,133,.3);border-radius:8px;padding:8px 10px;margin-top:8px}.histrow{padding:7px 0;border-bottom:1px solid var(--border)}.histrow:last-child{border-bottom:0}.histedits{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.histedit{display:inline-flex;align-items:center;gap:3px;font-size:12px;background:var(--panel-2);padding:2px 7px;border-radius:6px}.histedit .mono{font-size:11px}.histedit .ok{color:var(--accent-2)}.histedit .bad{color:var(--danger)}
