:root{--bg:#141413;--surface:#1c1c1a;--surface-2:#242422;--surface-3:#2d2d2a;--ink:#e9e7e2;--ink-2:#a8a49b;--ink-3:#928c82;--line:#2c2c29;--line-2:#3b3a35;--scrim:#0009;--shadow-1:0 1px 2px #00000059, 0 1px 1px #00000040;--shadow-2:0 4px 18px #00000073, 0 1px 3px #0000004d;--shadow-3:0 18px 56px #0009, 0 4px 14px #0006;--accent:oklch(62% .14 250);--accent-ink:#fff;--ok:oklch(66% .13 155);--warn:oklch(72% .13 80);--danger:oklch(64% .17 25);--neutral:oklch(66% .02 85)}html[data-theme=light]{--bg:#faf9f7;--surface:#fff;--surface-2:#f4f2ee;--surface-3:#edeae4;--ink:#2b2823;--ink-2:#6b655c;--ink-3:#7a7468;--line:#e8e4dd;--line-2:#d9d4ca;--scrim:#2b282366;--shadow-1:0 1px 2px #2b28230d, 0 1px 1px #2b282308;--shadow-2:0 4px 16px #2b282314, 0 1px 3px #2b28230f;--shadow-3:0 16px 48px #2b282329, 0 4px 12px #2b282314;--accent:oklch(55% .15 250);--accent-ink:#fff;--ok:oklch(56% .13 155);--warn:oklch(66% .13 80);--danger:oklch(56% .18 25);--neutral:oklch(56% .02 85)}:root,html[data-theme=light]{--accent-soft:color-mix(in oklab, var(--accent), var(--bg) 86%);--accent-softer:color-mix(in oklab, var(--accent), var(--bg) 92%);--accent-line:color-mix(in oklab, var(--accent), var(--bg) 60%);--accent-deep:color-mix(in oklab, var(--accent), var(--ink) 25%);--accent-hover:color-mix(in oklab, var(--accent), var(--ink) 14%);--ok-soft:color-mix(in oklab, var(--ok), var(--bg) 86%);--warn-soft:color-mix(in oklab, var(--warn), var(--bg) 86%);--danger-soft:color-mix(in oklab, var(--danger), var(--bg) 88%);--neutral-soft:color-mix(in oklab, var(--neutral), var(--bg) 88%);--bubble-out:color-mix(in oklab, var(--accent), var(--surface) 86%);--bubble-out-line:color-mix(in oklab, var(--accent), var(--surface) 72%);--r-card:10px;--r-ctl:7px;--r-pill:999px;--font:"IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Segoe UI", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--fs-0:11px;--fs-1:12.5px;--fs-2:13.5px;--fs-3:15px;--fs-4:18px;--fs-5:23px;--pad-row:8px;--pad-card:14px;--h-ctl:32px;--h-row:56px}html[data-density=comfy]{--fs-0:12px;--fs-1:13px;--fs-2:14.5px;--fs-3:16px;--fs-4:19px;--fs-5:25px;--pad-row:12px;--pad-card:18px;--h-ctl:38px;--h-row:68px}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{font-family:var(--font);font-size:var(--fs-2);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}#root{height:100%}h1,h2,h3,h4,p{margin:0}button{color:inherit;font-family:inherit}::placeholder{color:var(--ink-3)}input,select,textarea{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html[data-theme=light] input,html[data-theme=light] select,html[data-theme=light] textarea{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.btn{height:var(--h-ctl);border-radius:var(--r-ctl);border:1px solid var(--line-2);background:var(--surface-2);color:var(--ink);font-size:var(--fs-1);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-weight:600;transition:background .12s,border-color .12s,box-shadow .12s,transform 50ms;display:inline-flex}.btn:hover{background:var(--surface-3)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger:hover{background:color-mix(in oklab, var(--danger), var(--ink) 14%)}.btn-ghost{background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--surface-2)}.btn-sm{height:26px;font-size:var(--fs-0);border-radius:6px;padding:0 10px}.btn-icon{width:var(--h-ctl);padding:0}.input,.select,textarea.input{height:var(--h-ctl);border-radius:var(--r-ctl);border:1px solid var(--line-2);background:var(--bg);color:var(--ink);font-size:var(--fs-1);outline:none;width:100%;padding:0 10px;font-family:inherit;transition:border-color .12s,box-shadow .12s}html[data-theme=light] .input,html[data-theme=light] .select,html[data-theme=light] textarea.input{background:var(--surface)}textarea.input{resize:vertical;height:auto;padding:8px 10px}.input:focus,.select:focus,textarea.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-softer)}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23878378' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:26px}.field{flex-direction:column;gap:5px;display:flex}.field>label{font-size:var(--fs-0);color:var(--ink-2);font-weight:600}.hint{font-size:var(--fs-0);color:var(--ink-3)}.field .err{font-size:var(--fs-0);color:var(--danger);font-weight:600}.badge{border-radius:var(--r-pill);font-size:var(--fs-0);letter-spacing:.015em;white-space:nowrap;border:1px solid #0000;align-items:center;gap:5px;padding:2px 8px;font-weight:700;line-height:1.5;display:inline-flex}.badge .dot{background:currentColor;border-radius:50%;flex:none;width:6px;height:6px}.badge-ok{background:var(--ok-soft);color:color-mix(in oklab, var(--ok), var(--ink) 35%);border-color:color-mix(in oklab, var(--ok), var(--bg) 55%)}.badge-warn{background:var(--warn-soft);color:color-mix(in oklab, var(--warn), var(--ink) 38%);border-color:color-mix(in oklab, var(--warn), var(--bg) 55%)}.badge-danger{background:var(--danger-soft);color:color-mix(in oklab, var(--danger), var(--ink) 32%);border-color:color-mix(in oklab, var(--danger), var(--bg) 55%)}.badge-neutral{background:var(--neutral-soft);color:var(--ink-2);border-color:var(--line-2)}.badge-accent{background:var(--accent-soft);color:color-mix(in oklab, var(--accent), var(--ink) 35%);border-color:var(--accent-line)}.ai-tabs{border-bottom:1px solid var(--line);z-index:5;background:var(--bg);flex-wrap:wrap;gap:2px;padding:0 12px;display:flex;position:sticky;top:0}.ai-tab{appearance:none;cursor:pointer;white-space:nowrap;font:inherit;font-size:var(--fs-1);color:var(--ink-3);background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:11px 12px;font-weight:600;line-height:1;transition:color .12s,border-color .12s}.ai-tab:hover{color:var(--ink)}.ai-tab.is-active{color:var(--accent-deep);border-bottom-color:var(--accent)}.ai-tab:focus-visible{outline:2px solid var(--accent);outline-offset:-4px;border-radius:4px}.ai-sec-desc{font-size:var(--fs-0);color:var(--ink-2);margin:0 0 10px;line-height:1.5}.ai-sub{font-size:var(--fs-0);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);margin:16px 0 8px;font-weight:700}.hint-warn{color:var(--danger)}.chan-badge{max-width:220px;font-weight:600}.chan-badge .chan-ico{opacity:.9;flex:none}.chan-badge .chan-name{text-overflow:ellipsis;overflow:hidden}.chip{border-radius:var(--r-pill);font-size:var(--fs-0);background:color-mix(in oklab, var(--chip-c,var(--neutral)), var(--bg) 84%);color:color-mix(in oklab, var(--chip-c,var(--neutral)), var(--ink) 45%);border:1px solid color-mix(in oklab, var(--chip-c,var(--neutral)), var(--bg) 55%);align-items:center;gap:5px;padding:2px 9px 2px 7px;font-weight:600;line-height:1.6;display:inline-flex}.chip .swatch{background:var(--chip-c,var(--neutral));border-radius:50%;flex:none;width:8px;height:8px}.chip button{all:unset;cursor:pointer;opacity:.55;margin-left:1px;display:inline-flex}.chip button:hover{opacity:1}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow-1)}.tbl{border-collapse:collapse;width:100%;font-size:var(--fs-1)}.tbl th{text-align:left;padding:var(--pad-row) 12px;font-size:var(--fs-0);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);border-bottom:1px solid var(--line);white-space:nowrap;font-weight:700}.tbl td{padding:var(--pad-row) 12px;border-bottom:1px solid var(--line);vertical-align:middle}.tbl tbody tr{transition:background .1s}.tbl tbody tr:hover{background:var(--surface-2)}.tbl tbody tr.sel{background:var(--accent-softer)}.tbl tbody tr:last-child td{border-bottom:none}.num{font-variant-numeric:tabular-nums;font-family:var(--mono);font-size:calc(var(--fs-1) - .5px)}@keyframes skel{0%{background-position:120% 0}to{background-position:-20% 0}}.skel{background:linear-gradient(90deg, var(--surface-2) 30%, var(--surface-3) 50%, var(--surface-2) 70%);background-size:300% 100%;border-radius:6px;min-height:12px;animation:1.4s infinite skel}.modal-scrim{background:var(--scrim);z-index:200;justify-content:center;align-items:center;padding:32px;animation:.15s fadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--surface);box-shadow:var(--shadow-3);border:1px solid var(--line-2);border-radius:12px;flex-direction:column;width:560px;max-width:100%;max-height:86vh;animation:.18s cubic-bezier(.2,.9,.3,1.2) popIn;display:flex}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:16px 18px 12px;display:flex}.modal-head h3{font-size:var(--fs-3);font-weight:700}.modal-body{padding:16px 18px;overflow-y:auto}.modal-foot{border-top:1px solid var(--line);justify-content:flex-end;gap:8px;padding:12px 18px;display:flex}@keyframes fadeIn{0%{opacity:0}}@keyframes popIn{0%{opacity:0;transform:scale(.96)translateY(6px)}}.drawer-scrim{background:var(--scrim);z-index:200;animation:.15s fadeIn;position:fixed;inset:0}.drawer{z-index:201;background:var(--surface);border-left:1px solid var(--line-2);width:460px;max-width:92vw;box-shadow:var(--shadow-3);flex-direction:column;animation:.2s cubic-bezier(.2,.9,.3,1) slideIn;display:flex;position:fixed;top:0;bottom:0;right:0}@keyframes slideIn{0%{opacity:0;transform:translate(40px)}}.toast{z-index:400;background:var(--ink);color:var(--bg);font-size:var(--fs-1);box-shadow:var(--shadow-3);border-radius:9px;align-items:center;gap:9px;padding:10px 16px;font-weight:600;animation:.22s cubic-bezier(.2,.9,.3,1.2) toastIn;display:flex;position:fixed;bottom:22px;left:50%;transform:translate(-50%)}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,12px)}}.tabs{border-bottom:1px solid var(--line);gap:2px;display:flex}.tab{all:unset;cursor:pointer;font-size:var(--fs-1);color:var(--ink-2);border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 12px;font-weight:600}.tab:hover{color:var(--ink)}.tab.on{color:var(--ink);border-bottom-color:var(--accent);font-weight:700}.tgl{cursor:pointer;background:var(--line-2);border:none;border-radius:999px;flex:none;width:34px;height:20px;transition:background .15s;position:relative}.tgl:after{content:"";background:var(--ink);width:16px;height:16px;box-shadow:var(--shadow-1);border-radius:50%;transition:left .15s,background .15s;position:absolute;top:2px;left:2px}.tgl.on{background:var(--ok)}.tgl.on:after{background:#fff;left:16px}.tgl:disabled{opacity:.4;cursor:not-allowed}.empty{text-align:center;color:var(--ink-2);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:40px 24px;display:flex}.empty .empty-art{background:var(--surface-2);border:1px solid var(--line);width:72px;height:72px;color:var(--ink-3);border-radius:18px;justify-content:center;align-items:center;display:flex}.empty h4{font-size:var(--fs-3);color:var(--ink)}.empty p{font-size:var(--fs-1);text-wrap:pretty;max-width:320px}.banner{border-radius:var(--r-ctl);font-size:var(--fs-1);border:1px solid;align-items:center;gap:10px;padding:9px 14px;font-weight:600;display:flex}.banner-warn{background:var(--warn-soft);border-color:color-mix(in oklab, var(--warn), var(--bg) 55%);color:color-mix(in oklab, var(--warn), var(--ink) 42%)}.banner-danger{background:var(--danger-soft);border-color:color-mix(in oklab, var(--danger), var(--bg) 55%);color:color-mix(in oklab, var(--danger), var(--ink) 35%)}.banner-accent{background:var(--accent-soft);border-color:var(--accent-line);color:color-mix(in oklab, var(--accent), var(--ink) 38%)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line-2);background-clip:content-box;border:3px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background-color:var(--ink-3)}::-webkit-scrollbar-track{background:0 0}.t-utc{cursor:help;border-bottom:1px dotted #0000}.t-utc:hover{border-bottom-color:var(--ink-3)}kbd{font-family:var(--mono);background:var(--surface-2);border:1px solid var(--line-2);color:var(--ink-2);border-bottom-width:2px;border-radius:5px;padding:1px 5px;font-size:10.5px}h1:focus{outline:none}.validation-message{color:var(--danger)}.muted{color:var(--ink-2)}.mono{font-family:var(--mono)}.code{font-size:var(--fs-0);color:var(--ink-3);font-family:var(--mono)}.app-shell{height:100vh;display:flex;overflow:hidden}.sidebar{background:var(--surface);border-right:1px solid var(--line);box-sizing:border-box;flex-direction:column;flex:none;width:200px;padding:12px;display:flex}.sidebar .logo{font-weight:700;font-size:var(--fs-4);align-items:center;gap:8px;padding:2px 10px 16px;display:flex}.logo-mark{background:var(--accent);color:#fff;border-radius:7px;justify-content:center;align-items:center;width:26px;height:26px;font-size:15px;font-weight:700;display:inline-flex}.logo-img{border-radius:7px;flex:none;width:26px;height:26px;display:block}.nav{flex-direction:column;gap:2px;display:flex}.nav-item{height:var(--h-ctl);color:var(--ink-2);font-size:var(--fs-1);border-radius:8px;align-items:center;gap:10px;padding:0 10px;font-weight:600;text-decoration:none;display:flex}.nav-item:hover{background:var(--surface-2);color:var(--ink)}.nav-item.active{background:var(--accent-soft);color:var(--accent-deep)}.nav-group{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);margin:12px 6px 2px;font-size:10px;font-weight:700}.nav-group:first-of-type{margin-top:4px}.nav-badge{background:var(--accent);color:#fff;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;margin-left:auto;padding:0 5px;font-size:10.5px;font-weight:700;display:inline-flex}.side-foot{color:var(--ink-3);font-size:10.5px;font-family:var(--mono);margin-top:auto;padding:10px}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{border-bottom:1px solid var(--line);background:var(--surface);flex:none;justify-content:space-between;align-items:center;height:54px;padding:0 16px;display:flex}.topbar .left,.topbar .right{align-items:center;gap:10px;display:flex}.topbar .select{width:auto;height:30px}.proj-chip{background:var(--accent);color:#fff;border-radius:6px;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;font-weight:700;display:inline-flex}.vsep{background:var(--line);width:1px;height:22px}.user-menu{position:relative}.avatar-btn{all:unset;cursor:pointer;display:flex}.user-pop{z-index:100;width:240px;box-shadow:var(--shadow-2);padding:12px;position:absolute;top:calc(100% + 8px);right:0}.user-pop-head{border-bottom:1px solid var(--line);align-items:center;gap:10px;margin-bottom:8px;padding-bottom:10px;display:flex}.content{flex:1;min-height:0;padding:20px;overflow:auto}.user{font-size:var(--fs-1);color:var(--ink-2)}.loading-shell{height:100vh;color:var(--ink-2);place-items:center;display:grid}.rt-dot{background:var(--ink-3);border-radius:50%;width:9px;height:9px;display:inline-block}.rt-dot.on{background:var(--ok)}.rt-dot.wait{background:var(--warn)}.rt-dot.off{background:var(--danger)}.login-wrap{place-items:center;min-height:100vh;display:grid}.login-card{flex-direction:column;gap:10px;width:360px;padding:28px;display:flex}.login-card .brand{font-weight:700;font-size:var(--fs-5)}.login-card .h{font-size:var(--fs-3);margin:4px 0 8px}.login-card .row{gap:16px;margin:6px 0;display:flex}.err{color:var(--danger);font-size:var(--fs-1)}.proj-list{flex-direction:column;gap:8px;display:flex}.proj-card{border:1px solid var(--line-2);border-radius:var(--r-card);background:var(--surface-2);cursor:pointer;justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.proj-card:hover{background:var(--surface-3)}.proj-name{font-weight:600}.cfg-tbl{border-collapse:collapse;width:100%;margin-top:12px}.cfg-tbl th,.cfg-tbl td{text-align:left;border-bottom:1px solid var(--line);font-size:var(--fs-1);vertical-align:middle;padding:8px 10px}.cfg-tbl th{color:var(--ink-3);font-weight:600;font-size:var(--fs-0);text-transform:uppercase;letter-spacing:.05em}.cfg-tbl tr:hover td{background:var(--surface-2)}.ok-msg{color:var(--ok);font-size:var(--fs-1);margin-top:12px}.chat-wrap{min-width:0;height:100%;margin:-20px;display:flex}.cl-panel{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;flex:none;width:clamp(250px,25vw,330px);min-height:0;display:flex}.cl-head{border-bottom:1px solid var(--line);flex-direction:column;gap:8px;padding:10px 12px 8px;display:flex}.cl-searchrow{gap:6px;display:flex}.cl-search{flex:1;position:relative}.cl-search .ic{color:var(--ink-3);position:absolute;top:50%;left:9px;transform:translateY(-50%)}.cl-search .input{padding-left:28px}.cl-filters{flex-wrap:wrap;gap:5px;display:flex}.cl-filters .select{width:auto;height:26px;font-size:var(--fs-0)}.cl-scroll{flex:1;min-height:0;overflow-y:auto}.conv-item{all:unset;box-sizing:border-box;cursor:pointer;width:100%;padding:var(--pad-row) 12px;min-height:var(--h-row);border-left:3px solid #0000;border-bottom:1px solid var(--line);align-items:flex-start;gap:10px;display:flex}.conv-item:hover{background:var(--surface-2)}.conv-item.sel{background:var(--accent-softer);border-left-color:var(--accent)}.conv-item.pinned{background:color-mix(in oklab, var(--accent), var(--bg) 93%)}.conv-item.pinned:hover{background:var(--surface-2)}.conv-item.pinned.sel{background:var(--accent-softer)}.conv-pin{flex:none;align-self:center;font-size:12px;line-height:1}.conv-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.conv-r1{align-items:baseline;gap:6px;display:flex}.conv-name{font-weight:600;font-size:var(--fs-2);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.conv-name.unread{font-weight:700}.conv-time{font-size:var(--fs-0);color:var(--ink-3);flex:none;margin-left:auto}.conv-r2{align-items:center;gap:6px;display:flex}.conv-prev{font-size:var(--fs-1);color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.conv-prev.unread{color:var(--ink);font-weight:600}.pending{background:var(--accent);color:#fff;border-radius:999px;flex:none;padding:1px 6px;font-size:10.5px;font-weight:700}.conv-r3{flex-wrap:wrap;align-items:center;gap:5px;margin-top:1px;display:flex}.thread{background:var(--bg);flex-direction:column;flex:1;min-width:0;display:flex}.thread-head{background:var(--surface);border-bottom:1px solid var(--line);flex:none;align-items:center;gap:10px;padding:8px 16px;display:flex}.thread-scroll{flex-direction:column;flex:1;gap:4px;min-height:0;padding:14px 22px;display:flex;overflow:hidden auto}.daypill{background:var(--surface-3);font-size:var(--fs-0);color:var(--ink-2);border-radius:999px;align-self:center;margin-bottom:6px;padding:2px 12px;font-weight:700}.row-msg{padding:2px 0;display:flex}.row-msg.out{justify-content:flex-end}.row-msg.in{justify-content:flex-start}.row-msg.sys{justify-content:center}.bubble{background:var(--surface);border:1px solid var(--line);min-width:0;max-width:68%;box-shadow:var(--shadow-1);border-radius:12px 12px 12px 4px;padding:8px 11px 5px}.row-msg.out .bubble{background:var(--bubble-out);border-color:var(--bubble-out-line);border-bottom-right-radius:4px;border-bottom-left-radius:12px}.sys-pill{background:var(--surface-3);color:var(--ink-2);font-size:var(--fs-0);border-radius:999px;align-items:center;gap:6px;padding:3px 12px;font-weight:600;display:inline-flex}.m-head{font-weight:700;font-size:var(--fs-2);margin-bottom:3px}.m-body{font-size:var(--fs-2);white-space:pre-wrap;word-break:break-word;line-height:1.45}.m-foot{font-size:var(--fs-0);color:var(--ink-3);margin-top:4px}.m-meta{color:var(--ink-3);justify-content:flex-end;align-items:center;gap:5px;margin-top:3px;font-size:10.5px;display:flex}.m-img{object-fit:cover;cursor:pointer;background:var(--surface-2);border-radius:10px;width:260px;max-width:100%;height:200px;display:block}.m-sticker{object-fit:contain;background:0 0;border-radius:0;width:130px;height:130px}.lightbox{z-index:500;cursor:zoom-out;background:#000000d1;justify-content:center;align-items:center;animation:.15s fadeIn;display:flex;position:fixed;inset:0}.lightbox img,.lightbox video{max-width:90vw;max-height:90vh;box-shadow:var(--shadow-3);border-radius:8px}.m-doc{background:var(--surface);border:1px solid var(--line);min-width:0;max-width:100%;color:inherit;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;text-decoration:none;display:flex}.m-doc .ic{background:var(--danger-soft);width:32px;height:32px;color:var(--danger);border-radius:8px;flex:none;justify-content:center;align-items:center;display:flex}.m-doc .name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.m-msg-actions{opacity:0;gap:6px;transition:opacity .1s;display:flex}.row-msg:hover .m-msg-actions{opacity:1}.composer{border-top:1px solid var(--line);background:var(--surface)}.composer-row{align-items:flex-end;gap:8px;padding:10px;display:flex}.composer .input{min-height:var(--h-ctl);flex:1;max-height:120px}.reply-strip{border-bottom:1px solid var(--line);background:var(--surface-2);font-size:var(--fs-0);color:var(--ink-2);align-items:center;gap:8px;padding:6px 12px;display:flex}.ops{background:var(--surface);border-left:1px solid var(--line);flex:none;width:clamp(250px,24vw,300px);overflow-y:auto}.ops-head{border-bottom:1px solid var(--line);font-weight:700;font-size:var(--fs-1);align-items:center;gap:6px;padding:10px 14px;display:flex}.ops-rail{background:var(--surface);border:none;border-left:1px solid var(--line);cursor:pointer;width:26px;color:var(--ink-3);flex:none;justify-content:center;align-items:flex-start;padding-top:12px;display:flex}.ops-rail:hover{background:var(--surface-2);color:var(--ink)}.ops-sec{border-bottom:1px solid var(--line);padding:12px 14px}.ops-sec h4{font-size:var(--fs-0);text-transform:uppercase;letter-spacing:.07em;color:var(--ink-2);align-items:center;gap:7px;margin-bottom:9px;font-weight:700;display:flex}.note-card{background:var(--warn-soft);border:1px solid color-mix(in oklab, var(--warn), var(--bg) 55%);border-radius:8px;padding:7px 9px}.note-card p{font-size:var(--fs-1);line-height:1.4}.note-meta{color:var(--ink-3);font-size:10.5px;font-family:var(--mono);margin-top:4px}dl.contact{font-size:var(--fs-1);grid-template-columns:auto 1fr;gap:5px 10px;margin:0;display:grid}dl.contact dt{color:var(--ink-3)}dl.contact dd{font-family:var(--mono);font-size:var(--fs-0);margin:0}.cards{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.metric-card{padding:14px}.metric-code{font-size:var(--fs-0);text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);font-weight:700}.metric-val{font-size:var(--fs-5);margin:4px 0;font-weight:700}.health-card{padding:14px}.health-card.crit{border-color:color-mix(in oklab, var(--danger), var(--bg) 50%)}.health-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.internal-wrap{min-width:0;height:100%;margin:-20px;display:flex}.internal-thread{background:repeating-linear-gradient(45deg, var(--bg) 0 12px, var(--surface) 12px 24px)}.internal-bubble{background:var(--surface)!important;border-style:dashed!important}.toast-host{z-index:500;pointer-events:none;flex-direction:column;gap:8px;max-width:360px;display:flex;position:fixed;top:16px;right:16px}.toast-item{pointer-events:auto;border-radius:var(--r-ctl);background:var(--surface);border:1px solid var(--line-2);box-shadow:var(--shadow-2);color:var(--ink);cursor:pointer;align-items:flex-start;gap:10px;padding:10px 13px;animation:.24s cubic-bezier(.2,.9,.3,1.2) toastSlide;display:flex}.toast-item .toast-ic{color:#fff;border-radius:50%;flex:none;place-items:center;width:18px;height:18px;margin-top:1px;font-size:11px;font-weight:800;display:grid}.toast-txt{flex-direction:column;gap:1px;min-width:0;display:flex}.toast-title{font-size:var(--fs-1);font-weight:700;line-height:1.3}.toast-body{font-size:var(--fs-0);color:var(--ink-2);text-overflow:ellipsis;line-height:1.35;overflow:hidden}.toast-info .toast-ic{background:var(--accent)}.toast-info{border-left:3px solid var(--accent)}.toast-ok .toast-ic{background:var(--ok)}.toast-ok{border-left:3px solid var(--ok)}.toast-warn .toast-ic{background:var(--warn)}.toast-warn{border-left:3px solid var(--warn)}.toast-err .toast-ic{background:var(--danger)}.toast-err{border-left:3px solid var(--danger)}@keyframes toastSlide{0%{opacity:0;transform:translate(24px)}}.row-msg{animation:.18s cubic-bezier(.2,.9,.3,1.1) bubbleIn}@keyframes bubbleIn{0%{opacity:0;transform:translateY(6px)scale(.985)}}.row-msg.sending .bubble{animation:1.1s ease-in-out infinite sendPulse}@keyframes sendPulse{50%{opacity:.55}}.btn-primary:active{box-shadow:0 0 0 4px var(--accent-softer)}.conv-skel{padding:var(--pad-row) 12px;min-height:var(--h-row);border-bottom:1px solid var(--line);align-items:center;gap:10px;display:flex}.conv-skel .sk-av{border-radius:50%;flex:none;width:36px;height:36px}.conv-skel .sk-lines{flex-direction:column;flex:1;gap:6px;display:flex}.conv-skel .sk-l1{width:60%;height:11px}.conv-skel .sk-l2{width:85%;height:10px}.rt-pill{border-radius:var(--r-pill);font-size:var(--fs-0);border:1px solid var(--line-2);background:var(--surface-2);color:var(--ink-2);align-items:center;gap:6px;padding:3px 9px;font-weight:700;display:inline-flex}.rt-pill .rt-dot{width:7px;height:7px}.rt-pill.on .rt-dot{background:var(--ok);animation:2s ease-in-out infinite rtPulse}.rt-pill.wait .rt-dot{background:var(--warn);animation:.8s ease-in-out infinite rtPulse}.rt-pill.off .rt-dot{background:var(--danger)}@keyframes rtPulse{0%,to{opacity:1;box-shadow:0 0}50%{opacity:.5;box-shadow:0 0 0 3px #0000}}.m-reactions{gap:3px;margin:-2px 0 4px;display:flex}.row-msg.out .m-reactions{justify-content:flex-end}.react-chip{background:var(--surface-2);border:1px solid var(--line-2);box-shadow:var(--shadow-1);border-radius:999px;padding:2px 6px;font-size:13px;line-height:1}.sys-pill.call-pill{background:var(--accent-soft);color:color-mix(in oklab, var(--accent), var(--ink) 35%);border:1px solid var(--accent-line)}.typing{align-items:center;gap:3px;padding:6px 10px;display:inline-flex}.typing span{background:var(--ink-3);border-radius:50%;width:6px;height:6px;animation:1.2s infinite typingBounce}.typing span:nth-child(2){animation-delay:.15s}.typing span:nth-child(3){animation-delay:.3s}@keyframes typingBounce{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.thread-scroll{scroll-behavior:smooth}.int-card{all:unset;cursor:pointer;background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:9px;align-items:center;gap:9px;margin-bottom:6px;padding:8px 10px;display:flex}.int-card:hover{background:color-mix(in oklab, var(--accent), var(--surface) 78%)}.int-card .int-card-ic{background:var(--accent);width:28px;height:28px;color:var(--accent-ink);border-radius:7px;flex:none;place-items:center;display:grid}.int-card .int-card-txt{flex-direction:column;gap:1px;min-width:0;display:flex}.int-card .int-card-title{font-weight:700;font-size:var(--fs-1);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ai-wrap{min-width:0;height:100%;margin:-20px;display:flex}.ai-editor{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.ai-editor-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.ai-editor-scroll{flex:1;min-height:0;padding:4px 0 24px;overflow-y:auto}.ai-sec{border-bottom:1px solid var(--line);padding:14px 16px}.ai-sec h4{font-size:var(--fs-0);text-transform:uppercase;letter-spacing:.07em;color:var(--ink-2);align-items:center;gap:7px;margin-bottom:10px;font-weight:700;display:flex}.ai-row{border:1px solid var(--line);background:var(--surface-2);font-size:var(--fs-1);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:7px 10px;display:flex}.ai-row span{min-width:0}.ai-json{font-family:var(--mono);font-size:var(--fs-0);color:var(--ink-2);background:var(--bg);border:1px solid var(--line);white-space:pre-wrap;word-break:break-word;border-radius:8px;max-height:320px;margin:0;padding:10px;overflow:auto}.ai-badge{border-radius:var(--r-pill);font-size:var(--fs-0);white-space:nowrap;border:1px solid #0000;align-items:center;gap:4px;padding:1px 8px;font-weight:700;display:inline-flex}.ai-badge-on{background:var(--ok-soft);color:color-mix(in oklab, var(--ok), var(--ink) 35%);border-color:color-mix(in oklab, var(--ok), var(--bg) 55%)}.ai-badge-wait{background:var(--warn-soft);color:color-mix(in oklab, var(--warn), var(--ink) 38%);border-color:color-mix(in oklab, var(--warn), var(--bg) 55%)}.ai-badge-paused{background:var(--neutral-soft);color:var(--ink-2);border-color:var(--line-2)}.ai-badge-idle{background:var(--neutral-soft);color:var(--ink-3);border-color:var(--line-2)}.ai-badge-human{background:var(--accent-soft);color:var(--accent-deep);border-color:color-mix(in oklab, var(--accent), var(--bg) 55%)}.ai-badge-bot{background:color-mix(in oklab, var(--accent), var(--bg) 80%);color:var(--accent-deep);border-color:color-mix(in oklab, var(--accent), var(--bg) 55%)}.tpl-preview{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.tpl-header{font-weight:700;font-size:var(--fs-1)}.tpl-header-media{font-size:var(--fs-0);color:var(--ink-3);background:var(--surface);border:1px dashed var(--line-2);border-radius:6px;align-self:flex-start;align-items:center;gap:6px;padding:6px 8px;display:inline-flex}.tpl-body{font-size:var(--fs-1);white-space:pre-wrap;line-height:1.4}.tpl-footer{font-size:var(--fs-0);color:var(--ink-3)}.tpl-buttons{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.tpl-btn{font-size:var(--fs-0);color:var(--accent-deep);background:var(--accent-soft);border-radius:6px;padding:4px 10px}.m-error{font-size:var(--fs-0);color:var(--danger);align-items:flex-start;gap:6px;min-width:0;margin-top:4px;font-weight:700;display:flex}.m-error span{overflow-wrap:anywhere;word-break:break-word;min-width:0;line-height:1.4}.m-error-actions{gap:6px;margin-top:6px;display:flex}.ops-sec-toggle{all:unset;box-sizing:border-box;cursor:pointer;justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.ops-sec-toggle:hover h4{color:var(--ink)}.ops-count{background:var(--accent-soft);border:1px solid var(--accent-line);min-width:17px;height:17px;color:color-mix(in oklab, var(--accent), var(--ink) 35%);border-radius:999px;justify-content:center;align-items:center;margin-left:2px;padding:0 5px;font-size:10px;font-weight:700;display:inline-flex}.notes-body{flex-direction:column;gap:8px;margin-top:10px;display:flex}.notes-list{flex-direction:column;gap:8px;max-height:240px;padding-right:2px;display:flex;overflow-y:auto}.pop-backdrop{z-index:60;background:0 0;position:fixed;inset:0}.emoji-anchor{display:inline-flex;position:relative}.btn-icon.is-on{background:var(--surface-3);color:var(--accent)}.emoji-pop{z-index:61;background:var(--surface);border:1px solid var(--line-2);width:300px;max-width:78vw;box-shadow:var(--shadow-3);border-radius:12px;flex-direction:column;gap:6px;padding:8px;animation:.16s cubic-bezier(.2,.9,.3,1.2) popIn;display:flex;position:absolute;bottom:calc(100% + 8px)}.emoji-pop-left{left:0}.emoji-pop-right{right:0}.emoji-quick{border-bottom:1px solid var(--line);gap:2px;padding-bottom:6px;display:flex}.emoji-grid{grid-template-columns:repeat(8,1fr);gap:1px;max-height:196px;display:grid;overflow:hidden auto}.emoji-btn{all:unset;cursor:pointer;aspect-ratio:1;border-radius:7px;justify-content:center;align-items:center;width:100%;min-width:0;font-size:19px;line-height:1;transition:background 80ms,transform 50ms;display:inline-flex}.emoji-quick .emoji-btn{aspect-ratio:auto;width:30px;height:30px}.emoji-btn:hover{background:var(--surface-2)}.emoji-btn:active{transform:scale(.9)}.emoji-cats{border-top:1px solid var(--line);gap:2px;padding-top:6px;display:flex}.emoji-cat{all:unset;cursor:pointer;text-align:center;opacity:.6;border-radius:7px;flex:1;padding:4px 0;font-size:16px;transition:background .1s,opacity .1s}.emoji-cat:hover{background:var(--surface-2);opacity:1}.emoji-cat.on{background:var(--accent-soft);opacity:1}.react-quick{background:var(--surface);border:1px solid var(--line-2);box-shadow:var(--shadow-2);border-radius:9px;gap:1px;padding:2px;display:inline-flex}.react-quick .emoji-btn{aspect-ratio:auto;width:28px;height:28px;font-size:16px}.ai-strip{background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:10px;margin:8px 10px 0;padding:8px 10px 9px;animation:.16s cubic-bezier(.2,.9,.3,1.1) bubbleIn}.ai-strip-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.ai-strip-title{font-size:var(--fs-0);text-transform:uppercase;letter-spacing:.05em;color:color-mix(in oklab, var(--accent), var(--ink) 35%);align-items:center;gap:6px;font-weight:700;display:inline-flex}.ai-strip-body{font-size:var(--fs-1);color:var(--ink);margin-top:6px}.ai-strip-loading{color:var(--ink-2);align-items:center;gap:8px;display:flex}.ai-strip-loading .typing{padding:0}.ai-strip-err{color:var(--danger);align-items:center;gap:7px;font-weight:600;display:flex}.ai-strip-err span{overflow-wrap:anywhere;word-break:break-word;min-width:0}.ai-strip-text{white-space:pre-wrap;word-break:break-word;background:var(--surface);border:1px solid var(--line);border-radius:8px;max-height:168px;margin:0;padding:8px 10px;line-height:1.5;overflow-y:auto}.ai-strip-actions{gap:6px;margin-top:8px;display:flex}.ai-trigger{font-size:16px}.ai-menu{z-index:61;background:var(--surface);border:1px solid var(--line-2);width:268px;box-shadow:var(--shadow-3);border-radius:12px;flex-direction:column;gap:2px;padding:6px;animation:.16s cubic-bezier(.2,.9,.3,1.2) popIn;display:flex;position:absolute;bottom:calc(100% + 8px);right:0}.ai-menu-item{all:unset;cursor:pointer;border-radius:9px;align-items:center;gap:10px;padding:9px 10px;display:flex}.ai-menu-item:hover{background:var(--surface-2)}.ai-menu-item:disabled{opacity:.4;cursor:not-allowed}.ai-menu-item:disabled:hover{background:0 0}.ai-menu-ic{background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:8px;flex:none;place-items:center;width:32px;height:32px;font-size:17px;display:grid}.ai-menu-tx{flex-direction:column;gap:1px;min-width:0;display:flex}.ai-menu-tx b{font-size:var(--fs-1);font-weight:700}.ai-menu-tx small{font-size:var(--fs-0);color:var(--ink-3);line-height:1.3}.composer-input{min-width:0}.page-title{font-size:var(--fs-5);margin:0;font-weight:700}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.row{align-items:center;gap:10px;display:flex}.row-wrap{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.spacer{margin-left:auto}.stack{flex-direction:column;display:flex}.sec-title{font-size:var(--fs-3);margin:0;font-weight:700}.proto-tag{font-family:var(--mono);letter-spacing:.08em;color:var(--warn);background:var(--warn-soft);border:1px solid color-mix(in oklab, var(--warn), var(--bg) 55%);border-radius:var(--r-pill);text-transform:uppercase;padding:2px 7px;font-size:10px;font-weight:700}.lang-seg{border:1px solid var(--line-2);border-radius:var(--r-pill);display:inline-flex;overflow:hidden}.lang-seg button{all:unset;cursor:pointer;font-size:var(--fs-0);color:var(--ink-3);padding:3px 9px;font-weight:700}.lang-seg button.on{background:var(--accent);color:#fff}.kv{font-size:var(--fs-1);grid-template-columns:auto 1fr;gap:5px 12px;display:grid}.kv dt{color:var(--ink-3)}.kv dd{font-family:var(--mono);font-size:var(--fs-0);margin:0}
