@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--s0:#070a12;--s1:#0d1117;--s2:#111827;--s3:#1a2236;--s4:#1f2d45;--b1:#1e2a3e;--b2:#253145;--b3:#2d3d57;--t1:#e2e8f0;--t2:#94a3b8;--t3:#64748b;--t4:#3d5070;--purple:#7c3aed;--purple-h:#9333ea;--purple-l:#a78bfa;--purple-x:rgba(124,58,237,.15);--purple-g:rgba(124,58,237,.3);--green:#10b981;--green-x:rgba(16,185,129,.12);--red:#ef4444;--red-x:rgba(239,68,68,.12);--amber:#f59e0b;--amber-x:rgba(245,158,11,.12);--blue:#3b82f6;--blue-x:rgba(59,130,246,.12);--cyan:#22d3ee;--top:48px;--side:220px;--r:6px;--r2:10px;--bg:var(--s1);--bg2:var(--s2);--bg3:var(--s3);--border:var(--b2);--border2:var(--b3);--text:var(--t1);--text2:var(--t2);--text3:var(--t3);--blue2:var(--purple);--accent:var(--purple-l);--font-mono:"JetBrains Mono",monospace;--font-head:"Inter",sans-serif;--log-bg:var(--s0);--ssh-ok-bg:var(--green-x);--ssh-err-bg:var(--red-x);--chat-user-bg:rgba(59,130,246,.07);--chat-user-border:rgba(59,130,246,.2);--svc-active-bg:var(--green-x);--alert-err-bg:var(--red-x);--alert-err-border:rgba(239,68,68,.3);--alert-warn-bg:var(--amber-x);--alert-warn-border:rgba(245,158,11,.3);--gpu-hot-shadow:rgba(239,68,68,.18);--row-even:var(--s0);--yellow:var(--amber);--purple:var(--purple);--cyan:var(--cyan)}body.light{--s0:#f0f4ff;--s1:#ffffff;--s2:#f8f9fe;--s3:#eef1fb;--s4:#e4e9f7;--b1:#dde2f0;--b2:#cdd4e8;--b3:#b8c2dc;--t1:#0f172a;--t2:#334155;--t3:#64748b;--t4:#94a3b8;--purple:#6d28d9;--purple-h:#7c3aed;--purple-l:#7c3aed;--purple-x:rgba(109,40,217,.08);--purple-g:rgba(109,40,217,.2);--green:#059669;--green-x:rgba(5,150,105,.1);--red:#dc2626;--red-x:rgba(220,38,38,.09);--amber:#d97706;--amber-x:rgba(217,119,6,.09);--blue:#2563eb;--blue-x:rgba(37,99,235,.09);--cyan:#0891b2;--bg:var(--s1);--bg2:var(--s2);--bg3:var(--s3);--border:var(--b2);--border2:var(--b3);--text:var(--t1);--text2:var(--t2);--text3:var(--t3);--log-bg:var(--s3);--row-even:var(--s2)}html,body{height:100%;background:var(--s1);color:var(--t1);font-family:Inter,sans-serif;font-size:13px;line-height:1.5;overflow:hidden;-webkit-font-smoothing:antialiased}.topbar{position:fixed;top:0;left:0;right:0;height:var(--top);background:var(--s2);border-bottom:1px solid var(--b1);display:flex;align-items:center;padding:0 0 0 16px;gap:0;z-index:300}.topbar-logo{font-family:Inter,sans-serif;font-size:13px;font-weight:700;color:var(--t1);letter-spacing:.02em;display:flex;align-items:center;gap:8px;white-space:nowrap;padding-right:20px;border-right:1px solid var(--b2);margin-right:2px;-webkit-user-select:none;user-select:none}.topbar-logo-mark{width:22px;height:22px;background:var(--purple);border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:11px;flex-shrink:0;box-shadow:0 0 10px var(--purple-g)}.topbar-nav{display:flex;align-items:stretch;height:100%;flex:1}.topbar-nav-btn{display:flex;align-items:center;gap:6px;padding:0 14px;background:none;border:none;color:var(--t3);font-family:Inter,sans-serif;font-size:12px;font-weight:500;cursor:pointer;white-space:nowrap;border-bottom:2px solid transparent;transition:color .12s,border-color .12s,background .12s}.topbar-nav-btn:hover{color:var(--t1);background:var(--s3)}.topbar-nav-btn.active{color:var(--purple-l);border-bottom-color:var(--purple);background:var(--purple-x)}.topbar-nav-btn .nav-icon{font-size:12px}.topbar-right{display:flex;align-items:center;gap:6px;margin-left:auto;padding:0 12px;border-left:1px solid var(--b1);flex-shrink:0;overflow:visible}#status-bar{display:flex;align-items:center;gap:6px;flex-wrap:nowrap}.status-pill{display:flex;align-items:center;gap:5px;background:var(--s3);border:1px solid var(--b2);border-radius:20px;padding:3px 10px;font-size:11px;color:var(--t2);white-space:nowrap;font-family:JetBrains Mono,monospace}.dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.dot-red{background:var(--red);box-shadow:0 0 4px var(--red)}.dot-blue{background:var(--blue);box-shadow:0 0 4px var(--blue)}.dot-purple{background:var(--purple-l);box-shadow:0 0 4px var(--purple)}.status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.dot-green{background:var(--green);box-shadow:0 0 4px var(--green)}.status-items,.status-item,.status-model,.status-time,.status-loading{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--t2)}.topbar-status-pill{display:flex;align-items:center;gap:5px;background:var(--s3);border:1px solid var(--b2);border-radius:20px;padding:3px 10px;font-size:11px;color:var(--t2);white-space:nowrap;font-family:JetBrains Mono,monospace}body{display:flex;flex-direction:column;height:100vh}.app-body{display:flex;flex:1;margin-top:var(--top);overflow:hidden;height:calc(100vh - var(--top))}.sidebar{width:var(--side);min-width:var(--side);height:100%;background:var(--s2);border-right:1px solid var(--b1);display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;transition:transform .2s ease,width .2s ease;flex-shrink:0}.sidebar.collapsed{transform:translate(calc(-1*var(--side)));width:0;min-width:0}.sidebar-open-btn{display:none;position:fixed;top:54px;left:8px;z-index:200;background:var(--s2);border:1px solid var(--b2);color:var(--t2);border-radius:var(--r);padding:5px 9px;font-size:15px;cursor:pointer}.sidebar-open-btn.visible{display:block}.main{flex:1;height:100%;overflow-y:auto;display:flex;flex-direction:column;background:var(--s1)}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:11px 14px 9px;border-bottom:1px solid var(--b1)}.logo{font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600;color:var(--purple-l);letter-spacing:.08em}.sidebar-toggle{background:none;border:none;color:var(--t3);cursor:pointer;font-size:13px;padding:3px 5px;border-radius:4px}.sidebar-toggle:hover{background:var(--s3);color:var(--t1)}.sidebar-divider{border:none;border-top:1px solid var(--b1);margin:5px 0}.sidebar-nav{padding:5px 8px;display:flex;flex-direction:column;gap:1px}.nav-btn{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;color:var(--t3);font-family:Inter,sans-serif;font-size:12px;font-weight:500;padding:7px 10px;border-radius:var(--r);cursor:pointer;text-align:left;transition:all .12s}.nav-btn:hover{background:var(--s3);color:var(--t1)}.nav-btn.active{background:var(--purple-x);color:var(--purple-l);font-weight:600}.nav-icon{font-size:12px}.section-label{font-size:10px;font-weight:600;color:var(--t4);letter-spacing:.1em;text-transform:uppercase;padding:4px 2px;font-family:JetBrains Mono,monospace}.quick-prompts,.monitored-list{padding:5px 10px;display:flex;flex-direction:column;gap:3px}.prompt-chip{background:var(--s3);border:1px solid var(--b1);border-radius:4px;color:var(--t2);font-family:Inter,sans-serif;font-size:11px;padding:5px 8px;cursor:pointer;text-align:left;transition:all .11s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prompt-chip:hover{border-color:var(--purple);color:var(--t1);background:var(--purple-x)}.svc-chip{font-size:10px;color:var(--cyan);background:rgba(34,211,238,.06);border:1px solid rgba(34,211,238,.18);border-radius:3px;padding:2px 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:JetBrains Mono,monospace}.sidebar-footer{margin-top:auto;padding:10px;border-top:1px solid var(--b1);display:flex;flex-direction:column;gap:5px}.llm-selector{padding:8px 10px;display:flex;flex-direction:column;gap:6px}.llm-provider-btns{display:flex;gap:3px;flex-wrap:wrap}.llm-btn{flex:1;background:var(--s3);border:1px solid var(--b2);border-radius:4px;color:var(--t3);font-family:Inter,sans-serif;font-size:10px;font-weight:600;padding:5px 4px;cursor:pointer;text-align:center;transition:all .11s;white-space:nowrap}.llm-btn:hover{border-color:var(--purple);color:var(--t1)}.llm-btn.active{background:var(--purple);border-color:var(--purple);color:#fff}.llm-btn.unconfigured{opacity:.4;cursor:not-allowed}.llm-btn.unconfigured:hover{border-color:var(--b2);color:var(--t3)}.llm-model-select{font-size:11px;padding:4px 7px}.llm-status{font-size:10px;min-height:14px;font-family:JetBrains Mono,monospace}.llm-status.ok{color:var(--green)}.llm-status.err{color:var(--red)}.llm-status.switching{color:var(--amber)}#gateway-sub-row{margin-top:5px}#gateway-sub-row label{font-size:9px;color:var(--t3);display:block;margin-bottom:3px;letter-spacing:.08em;text-transform:uppercase;font-family:JetBrains Mono,monospace}.sessions-panel{padding:6px 10px}.sessions-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px}.btn-new-chat{background:var(--purple);border:none;border-radius:50%;color:#fff;width:20px;height:20px;font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .14s}.btn-new-chat:hover{background:var(--purple-h);transform:scale(1.1)}#sessions-list{display:flex;flex-direction:column;gap:2px;max-height:220px;overflow-y:auto}.sessions-empty,.sessions-loading{font-size:10px;color:var(--t3);padding:5px 3px;font-style:italic}.session-item{position:relative;padding:6px 8px;border-radius:var(--r);cursor:pointer;border:1px solid transparent;transition:all .12s}.session-item:hover{background:var(--s3);border-color:var(--b2)}.session-item:hover .session-actions{opacity:1}.session-item.active{background:var(--purple-x);border-color:#7c3aed4d}.session-title{font-size:11px;color:var(--t1);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}.session-item.active .session-title{color:var(--purple-l)}.session-meta{font-size:9px;color:var(--t3);margin-top:1px}.session-actions{position:absolute;right:5px;top:50%;transform:translateY(-50%);display:flex;gap:2px;opacity:0;transition:opacity .12s}.sess-btn{background:none;border:none;cursor:pointer;font-size:10px;padding:2px 3px;border-radius:3px;color:var(--t3);transition:all .12s}.sess-btn:hover{background:var(--s2);color:var(--t1)}.sess-del:hover{color:var(--red)!important}.tab-panel{display:none;flex-direction:column;height:100%;padding:20px 24px;overflow-y:auto;background:var(--s1)}.tab-panel.active{display:flex}.panel-header{display:flex;align-items:center;gap:10px;margin-bottom:18px;flex-wrap:wrap;padding-bottom:14px;border-bottom:1px solid var(--b1)}.panel-header h1{font-family:Inter,sans-serif;font-size:16px;font-weight:700;color:var(--t1);margin:0;letter-spacing:-.2px}.model-badge{background:var(--purple-x);border:1px solid rgba(124,58,237,.25);border-radius:20px;color:var(--purple-l);font-size:10px;padding:2px 9px;font-family:JetBrains Mono,monospace}.header-controls{display:flex;gap:8px;align-items:center;margin-left:auto}.chat-container{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding-bottom:10px;min-height:0}.chat-msg{display:flex;gap:10px;align-items:flex-start;animation:fadeIn .17s ease}.msg-avatar{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;border:1px solid var(--b2)}.chat-msg.user .msg-avatar{background:rgba(59,130,246,.12);border-color:#3b82f640}.chat-msg.assistant .msg-avatar{background:var(--purple-x);border-color:#7c3aed40}.msg-content{background:var(--s2);border:1px solid var(--b2);border-radius:var(--r2);padding:10px 14px;line-height:1.65;word-break:break-word;color:var(--t1)}.chat-msg.user .msg-content{background:rgba(59,130,246,.06);border-color:#3b82f62e}.msg-content h1,.msg-content h2,.msg-content h3{font-family:Inter,sans-serif;margin:10px 0 4px;color:var(--purple-l);font-weight:700}.msg-content p{margin:4px 0}.msg-content code{background:var(--s3);padding:1px 5px;border-radius:3px;color:var(--cyan);font-size:12px;font-family:JetBrains Mono,monospace}.msg-content pre{background:var(--s0);border:1px solid var(--b1);border-radius:var(--r);padding:10px;overflow-x:auto;margin:8px 0}.msg-content pre code{background:none;padding:0;color:var(--t1)}.msg-content table{border-collapse:collapse;width:100%;margin:8px 0;font-size:12px}.msg-content th{background:var(--s3);color:var(--t2);padding:6px 10px;text-align:left;border:1px solid var(--b2);text-transform:uppercase;font-size:10px;letter-spacing:.06em}.msg-content td{padding:6px 10px;border:1px solid var(--b1);color:var(--t1)}.msg-content tr:nth-child(2n) td{background:var(--row-even)}.msg-content ul,.msg-content ol{padding-left:18px}.chat-thinking{display:flex;gap:4px;align-items:center;padding:10px 14px;background:var(--s2);border:1px solid var(--b2);border-radius:var(--r2)}.think-dot{width:5px;height:5px;border-radius:50%;background:var(--purple);animation:pulse 1.3s ease-in-out infinite}.think-dot:nth-child(2){animation-delay:.22s}.think-dot:nth-child(3){animation-delay:.44s}.chat-input-area{border-top:1px solid var(--b1);padding-top:12px;flex-shrink:0;background:var(--s1)}.chat-input-row{display:flex;gap:8px;align-items:flex-end}#chat-input{flex:1;background:var(--s2);border:1px solid var(--b2);border-radius:var(--r2);color:var(--t1);font-family:Inter,sans-serif;font-size:13px;padding:9px 13px;resize:none;outline:none;min-height:42px;max-height:160px;overflow-y:auto;line-height:1.5;transition:border-color .14s,box-shadow .14s}#chat-input:focus{border-color:var(--purple);box-shadow:0 0 0 3px var(--purple-x)}#chat-input::placeholder{color:var(--t4)}.btn-send{background:var(--purple);border:none;border-radius:var(--r2);color:#fff;width:42px;height:42px;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:all .13s;box-shadow:0 2px 8px var(--purple-g)}.btn-send:hover{background:var(--purple-h)}.btn-send:disabled{background:var(--s3);color:var(--t3);cursor:not-allowed;box-shadow:none}.msg-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:7px;padding-top:7px;border-top:1px solid var(--b1);font-size:10px;color:var(--t3);font-family:JetBrains Mono,monospace}.meta-provider{color:var(--purple-l);font-weight:600}.meta-tokens{color:var(--t3)}.meta-cost{color:var(--amber);cursor:help;font-weight:600}.meta-free{color:var(--green);font-weight:600}.meta-latency{color:var(--t3);margin-left:auto}.metric-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:16px}.metric-card{background:var(--s2);border:1px solid var(--b2);border-radius:var(--r2);padding:14px 16px;position:relative;overflow:hidden}.metric-card:after{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--purple)}.metric-card-green:after{background:var(--green)}.metric-card-red:after{background:var(--red)}.metric-card-red{border-color:#ef44444d;box-shadow:0 0 14px var(--red-x)}.metric-card-yellow:after{background:var(--amber)}.metric-label{font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px;font-family:JetBrains Mono,monospace}.metric-value{font-size:28px;font-weight:700;color:var(--t1);font-family:Inter,sans-serif;letter-spacing:-.5px;line-height:1}.device-table-wrap{overflow-x:auto;border:1px solid var(--b1);border-radius:var(--r2)}.device-table{width:100%;border-collapse:collapse;font-size:12px}.device-table thead th{background:var(--s0);color:var(--t3);padding:8px 12px;text-align:left;border-bottom:1px solid var(--b2);font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-family:JetBrains Mono,monospace;white-space:nowrap}.device-table tbody td{padding:8px 12px;border-bottom:1px solid var(--b1);vertical-align:middle;color:var(--t1);background:var(--s2)}.device-table tbody tr:last-child td{border-bottom:none}.device-table tbody tr:hover td{background:var(--s3)}.row-critical td{background:rgba(239,68,68,.06)!important}.row-offline td{background:var(--s3)!important;opacity:.6}.row-warning td{background:rgba(245,158,11,.06)!important}.td-device{font-weight:600;color:var(--purple-l);font-family:JetBrains Mono,monospace;font-size:11px}.bar-wrap{height:4px;background:var(--s4);border-radius:2px;margin-bottom:2px;min-width:60px}.bar-fill{height:100%;border-radius:2px;transition:width .4s ease}.bar-label{font-size:10px;color:var(--t2);font-family:JetBrains Mono,monospace}.badge{display:inline-block;padding:2px 7px;border-radius:3px;font-size:10px;font-weight:700;letter-spacing:.04em;font-family:JetBrains Mono,monospace}.badge-healthy{background:var(--green-x);color:var(--green);border:1px solid rgba(16,185,129,.25)}.badge-warning{background:var(--amber-x);color:var(--amber);border:1px solid rgba(245,158,11,.25)}.badge-critical{background:var(--red-x);color:var(--red);border:1px solid rgba(239,68,68,.25)}.badge-offline{background:var(--s3);color:var(--t3);border:1px solid var(--b2)}.badge-green{background:var(--green-x);color:var(--green);border:1px solid var(--b2)}.badge-red{background:var(--red-x);color:var(--red);border:1px solid var(--b2)}.badge-gray{background:var(--s3);color:var(--t3);border:1px solid var(--b2)}.gpu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.gpu-hot{border-color:#ef444466;box-shadow:0 0 18px var(--gpu-hot-shadow)}.gpu-warm{border-color:#f59e0b4d}.gpu-ok{border-color:#10b98140}.gpu-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.gpu-device{font-weight:600;color:var(--t1);font-family:JetBrains Mono,monospace;font-size:12px}.gpu-temp-badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:20px;font-family:JetBrains Mono,monospace}.temp-hot{background:var(--red-x);color:var(--red)}.temp-warm{background:var(--amber-x);color:var(--amber)}.temp-ok{background:var(--green-x);color:var(--green)}.gm-label{width:32px;font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:.06em;font-family:JetBrains Mono,monospace}.gm-val{font-size:11px;color:var(--t2);white-space:nowrap;font-family:JetBrains Mono,monospace}.gpu-footer{display:flex;justify-content:space-between;margin-top:10px;font-size:11px;color:var(--t3);font-family:JetBrains Mono,monospace}.svc-device-card{background:var(--s2);border:1px solid var(--b1);border-radius:var(--r2);margin-bottom:8px;overflow:hidden}.svc-failed{border-color:#ef444459}.svc-device-header{display:flex;align-items:center;gap:10px;padding:11px 14px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .12s;color:var(--t1)}.svc-device-header:hover{background:var(--s3)}.svc-device-name{font-weight:600;flex:1;font-family:JetBrains Mono,monospace;font-size:12px}.svc-counts{display:flex;gap:5px;flex-wrap:wrap}.svc-chevron{color:var(--t3);transition:transform .17s;font-size:11px}.svc-chevron.open{transform:rotate(180deg)}.svc-device-body{display:none;border-top:1px solid var(--b1)}.svc-device-body.expanded{display:block}.svc-section{padding:10px 14px}.svc-section-title{font-size:10px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;font-family:JetBrains Mono,monospace}.svc-row{display:flex;align-items:center;justify-content:space-between;padding:5px 0;border-bottom:1px solid var(--b1)}.svc-row:last-child{border-bottom:none}.svc-row-failed .svc-name{color:var(--red);font-weight:600}.svc-name{font-size:12px;font-family:JetBrains Mono,monospace}.svc-actions{display:flex;gap:5px}.svc-active-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:4px}.svc-row-active{display:flex;align-items:center;justify-content:space-between;padding:3px 7px;background:var(--green-x);border-radius:3px}.svc-name-sm{font-size:11px;color:var(--green);font-family:JetBrains Mono,monospace}.log-viewer-section{margin-top:20px;padding-top:18px;border-top:1px solid var(--b1)}.log-viewer-section h2{font-size:14px;margin-bottom:14px;color:var(--t1);font-family:Inter,sans-serif;font-weight:700}.log-controls{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:14px}.log-summary{display:flex;gap:14px;margin-bottom:8px;flex-wrap:wrap}.log-meta{font-size:11px;color:var(--t2);font-family:JetBrains Mono,monospace}.log-meta.err{color:var(--red)}.log-meta.warn{color:var(--amber)}.log-output{background:var(--s0);border:1px solid var(--b1);border-radius:var(--r2);padding:12px 14px;font-family:JetBrains Mono,monospace;font-size:11px;color:var(--t1);white-space:pre-wrap;word-break:break-all;max-height:500px;overflow-y:auto;line-height:1.6}.log-errors{margin-bottom:8px}.log-err-line{font-size:11px;font-family:JetBrains Mono,monospace;margin-top:3px;opacity:.9}.control-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;margin-bottom:14px}.control-card{background:var(--s2);border:1px solid var(--b1);border-radius:var(--r2);padding:18px}.control-card h2{font-size:13px;font-weight:700;margin-bottom:14px;color:var(--t1);font-family:Inter,sans-serif}.preset-buttons{margin:8px 0;display:flex;flex-wrap:wrap;gap:5px}.action-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-top:10px}.bulk-devices{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0}.bulk-device-item{display:flex;align-items:center;gap:5px;background:var(--s3);border:1px solid var(--b2);border-radius:4px;padding:3px 8px;font-size:12px;color:var(--t1)}.bulk-controls{display:flex;gap:7px;align-items:center;margin-top:7px}.ssh-result{margin-top:10px;border-radius:var(--r);overflow:hidden;border:1px solid var(--b2)}.ssh-result-header{display:flex;justify-content:space-between;padding:7px 12px;font-size:11px;font-weight:600;font-family:JetBrains Mono,monospace}.ssh-ok .ssh-result-header{background:var(--green-x);color:var(--green)}.ssh-err .ssh-result-header{background:var(--red-x);color:var(--red)}.ssh-exit{color:var(--t3)}.ssh-output{background:var(--s0);padding:9px 12px;font-size:11px;white-space:pre-wrap;word-break:break-all;max-height:300px;overflow-y:auto;color:var(--t1);font-family:JetBrains Mono,monospace}.ssh-stderr{color:var(--amber)}.action-result{margin-top:7px;padding:7px 12px;border-radius:var(--r);font-size:12px}.action-ok{background:var(--green-x);color:var(--green);border:1px solid rgba(16,185,129,.2)}.action-err{background:var(--red-x);color:var(--red);border:1px solid rgba(239,68,68,.2)}.form-group{display:flex;flex-direction:column;gap:4px;min-width:130px}.form-group label{font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:.08em;font-weight:600;font-family:JetBrains Mono,monospace}.form-group-btn{justify-content:flex-end}.input-dark{background:var(--s3);border:1px solid var(--b2);border-radius:var(--r);color:var(--t1);font-family:Inter,sans-serif;font-size:12px;padding:6px 9px;outline:none;width:100%;transition:border-color .13s,box-shadow .13s}.input-dark:focus{border-color:var(--purple);box-shadow:0 0 0 2px var(--purple-x)}.input-dark::placeholder{color:var(--t4)}.input-dark option{background:var(--s2);color:var(--t1)}.filter-input{background:var(--s3);border:1px solid var(--b2);border-radius:var(--r);color:var(--t1);font-family:Inter,sans-serif;font-size:12px;padding:5px 9px;outline:none;width:200px}.filter-input:focus{border-color:var(--purple)}.btn-primary{background:var(--purple);border:none;border-radius:var(--r);color:#fff;font-family:Inter,sans-serif;font-size:12px;font-weight:600;padding:7px 14px;cursor:pointer;transition:all .13s;white-space:nowrap;box-shadow:0 1px 5px var(--purple-g)}.btn-primary:hover{background:var(--purple-h)}.btn-refresh{background:var(--s3);border:1px solid var(--b2);border-radius:var(--r);color:var(--t2);font-family:Inter,sans-serif;font-size:11px;padding:5px 11px;cursor:pointer;transition:all .13s}.btn-refresh:hover{border-color:var(--purple);color:var(--purple-l)}.btn-ghost{background:none;border:1px solid var(--b2);border-radius:var(--r);color:var(--t2);font-family:Inter,sans-serif;font-size:11px;padding:5px 11px;cursor:pointer;transition:all .13s}.btn-ghost:hover{border-color:var(--t2);color:var(--t1)}.btn-sm{font-size:10px;padding:3px 7px;border-radius:3px;border:none;cursor:pointer;font-family:Inter,sans-serif;font-weight:600;transition:all .12s}.btn-xs{font-size:10px;padding:3px 8px;border-radius:4px;border:1px solid var(--b2);background:var(--s3);color:var(--t2);cursor:pointer;transition:background .12s;font-family:Inter,sans-serif}.btn-xs:hover{background:var(--s4)}.btn-xs.btn-ok{border-color:#10b9814d;color:var(--green)}.btn-xs.btn-warn{border-color:#ef44444d;color:var(--red)}.btn-restart{background:rgba(59,130,246,.1);color:var(--blue)}.btn-restart:hover{background:var(--blue);color:#fff}.btn-logs{background:var(--s3);color:var(--t2)}.btn-logs:hover{background:var(--amber-x);color:var(--amber)}.btn-action{padding:7px;border-radius:var(--r);border:1px solid var(--b2);background:var(--s3);color:var(--t1);font-family:Inter,sans-serif;font-size:11px;font-weight:600;cursor:pointer;transition:all .14s}.btn-start:hover{border-color:var(--green);color:var(--green);background:var(--green-x)}.btn-stop:hover{border-color:var(--amber);color:var(--amber);background:var(--amber-x)}.btn-restart:hover{border-color:var(--purple-l);color:var(--purple-l);background:var(--purple-x)}.btn-reboot:hover{border-color:var(--red);color:var(--red);background:var(--red-x)}.preset-btn{background:var(--s3);border:1px solid var(--b1);border-radius:3px;color:var(--t2);font-family:JetBrains Mono,monospace;font-size:10px;padding:2px 7px;cursor:pointer;transition:all .11s}.preset-btn:hover{border-color:var(--purple);color:var(--t1)}.alert{border-radius:var(--r);padding:10px 14px;font-size:12px;margin-bottom:10px}.alert pre,.alert code{font-family:JetBrains Mono,monospace;font-size:11px;margin-top:5px}.alert-error{background:var(--red-x);border:1px solid rgba(239,68,68,.3);color:var(--red)}.alert-warn{background:var(--amber-x);border:1px solid rgba(245,158,11,.3);color:var(--amber)}.alert-info{background:var(--blue-x);border:1px solid rgba(59,130,246,.25);color:var(--blue)}.spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--b2);border-top-color:var(--purple);border-radius:50%;animation:spin .7s linear infinite;visibility:hidden;flex-shrink:0}.htmx-request .spinner,.htmx-request.spinner{visibility:visible}.updated-at{font-size:10px;color:var(--t3);margin-top:10px;text-align:right;font-style:italic;font-family:JetBrains Mono,monospace}.loading-state{color:var(--t3);font-style:italic;padding:20px 0}.mt-1{margin-top:14px}.mt-half{margin-top:7px}.err{color:var(--red)}.no-gpu{color:var(--t3);font-size:11px}.temp-val{font-size:11px;font-weight:700;padding:2px 5px;border-radius:3px;font-family:JetBrains Mono,monospace}.theme-toggle{background:none;border:1px solid var(--b2);border-radius:20px;color:var(--t2);font-family:Inter,sans-serif;font-size:11px;padding:3px 10px;cursor:pointer;display:flex;align-items:center;gap:5px;transition:all .13s;white-space:nowrap}.theme-toggle:hover{border-color:var(--purple);color:var(--t1)}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--b3);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--t3)}@keyframes fadeIn{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}@keyframes pulse{0%,to{opacity:.2;transform:scale(.8)}50%{opacity:1;transform:scale(1.3)}}.gw-section{margin-bottom:20px}.gw-section-title{font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--t3);margin-bottom:10px;font-family:JetBrains Mono,monospace}.gw-stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(115px,1fr));gap:10px;margin-bottom:4px}.gw-stat{background:var(--s2);border:1px solid var(--b2);border-radius:var(--r2);padding:14px 12px;text-align:center;position:relative;overflow:hidden}.gw-stat:after{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--purple)}.gw-stat-val{font-size:22px;font-weight:700;color:var(--t1);font-family:Inter,sans-serif;letter-spacing:-.5px}.gw-stat-lbl{font-size:10px;color:var(--t3);margin-top:3px;font-family:JetBrains Mono,monospace}.gw-ok{color:var(--green)!important}.gw-err{color:var(--red)!important}.gw-provider-card{background:var(--s2);border:1px solid var(--b1);border-radius:var(--r2);padding:14px 16px;margin-bottom:8px}.gw-provider-card.circuit-open{border-color:#ef444466}.gw-provider-card.disabled{opacity:.55}.gw-prov-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.gw-prov-name{font-weight:700;font-size:13px;color:var(--t1);font-family:JetBrains Mono,monospace}.gw-prov-status{font-size:11px;color:var(--t3);font-family:JetBrains Mono,monospace}.gw-prov-actions{margin-left:auto;display:flex;gap:5px}.gw-prov-meta{display:flex;gap:14px;font-size:11px;color:var(--t3);flex-wrap:wrap;font-family:JetBrains Mono,monospace}.gw-prov-models{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:280px}.gw-table{width:100%;border-collapse:collapse;font-size:11px}.gw-table th{background:var(--s0);color:var(--t3);font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:7px 10px;text-align:left;border-bottom:1px solid var(--b2);font-family:JetBrains Mono,monospace}.gw-table td{padding:7px 10px;border-bottom:1px solid var(--b1);color:var(--t2);vertical-align:middle}.gw-table tr:hover td{background:var(--s3)}.gw-tag{background:var(--purple-x);color:var(--purple-l);border:1px solid rgba(124,58,237,.2);border-radius:3px;padding:1px 6px;font-size:10px;font-weight:600;font-family:JetBrains Mono,monospace}.gw-model{color:var(--t3);font-family:JetBrains Mono,monospace;font-size:10px}.gw-complexity{color:var(--t4);font-size:9px}.gw-error{color:var(--red);padding:12px;font-size:12px}.gw-empty{color:var(--t3);padding:20px;text-align:center;font-size:12px}.user-badge{display:flex;align-items:center;gap:6px;background:var(--s3);border:1px solid var(--b2);border-radius:20px;padding:3px 10px;font-size:11px;color:var(--t2);white-space:nowrap;font-family:JetBrains Mono,monospace}.user-badge-admin{border-color:#7c3aed4d;background:var(--purple-x);color:var(--purple-l)}.user-badge-guest{border-color:#10b98140;background:var(--green-x);color:var(--green)}.user-role-tag{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;opacity:.8}.auth-wall{display:flex;align-items:center;gap:8px;background:var(--red-x);border:1px solid rgba(239,68,68,.3);border-radius:var(--r);color:var(--red);font-size:12px;padding:10px 14px;margin:4px 0}.auth-wall a{color:var(--purple-l)}[data-theme=light]{--s0:#f0f4ff;--s1:#ffffff;--s2:#f8f9fe;--s3:#eef1fb;--s4:#e4e9f7;--b1:#dde2f0;--b2:#cdd4e8;--b3:#b8c2dc;--t1:#0f172a;--t2:#334155;--t3:#64748b;--t4:#94a3b8;--purple:#6d28d9;--purple-h:#7c3aed;--purple-l:#7c3aed;--purple-x:rgba(109,40,217,.08);--green:#059669;--green-x:rgba(5,150,105,.1);--red:#dc2626;--red-x:rgba(220,38,38,.09);--amber:#d97706;--amber-x:rgba(217,119,6,.09);--blue:#2563eb;--log-bg:var(--s3)}.app-root{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-body{display:flex;flex:1;overflow:hidden;margin-top:var(--top)}.main-content{flex:1;overflow-y:auto;padding:20px}.app-loading{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--t2);font-size:14px}.sidebar-close{background:none;border:none;color:var(--t3);cursor:pointer;font-size:16px}.sidebar-toggle-btn{background:none;border:1px solid var(--b2);color:var(--t2);border-radius:var(--r);padding:4px 9px;cursor:pointer;font-size:13px}.sidebar-label{font-size:11px;color:var(--t3);text-transform:uppercase;letter-spacing:.05em;display:block;margin:8px 0 4px}.sidebar-divider{height:1px;background:var(--b1);margin:12px 0}.sidebar-section{padding:4px 0 8px}.sidebar-section-title{font-size:11px;color:var(--t3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.memory-status{font-size:12px}.mem-stat{display:flex;align-items:center;gap:5px;color:var(--t2);margin-bottom:2px}.mem-detail{font-size:11px;color:var(--t3);word-break:break-all}.btn-sm{padding:3px 8px;font-size:11px}.login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--s0)}.login-card{background:var(--s2);border:1px solid var(--b2);border-radius:var(--r2);padding:40px;width:360px}.login-logo{font-size:20px;font-weight:700;color:var(--t1);margin-bottom:6px}.login-subtitle{color:var(--t3);font-size:13px;margin-bottom:24px}.login-error{background:var(--red-x);border:1px solid rgba(239,68,68,.3);border-radius:var(--r);padding:8px 12px;color:var(--red);font-size:12px;margin-bottom:12px}.login-form{display:flex;flex-direction:column;gap:8px}.login-form label{font-size:11px;color:var(--t3);text-transform:uppercase}.login-hint{font-size:11px;color:var(--t3);margin-top:16px;text-align:center}.panel{padding:0 0 40px}.panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:10px}.panel-header h2{font-size:18px;font-weight:600;color:var(--t1)}.panel-stats{display:flex;gap:8px;flex-wrap:wrap}.panel-actions{display:flex;gap:8px;align-items:center}.panel-loading{display:flex;align-items:center;gap:10px;color:var(--t3);padding:40px 0}.panel-empty{color:var(--t3);padding:40px 0;text-align:center}.stat-pill{background:var(--s3);border:1px solid var(--b2);border-radius:20px;padding:3px 10px;font-size:12px;color:var(--t2)}.stat-pill.stat-green{border-color:#10b9814d;color:var(--green)}.stat-pill.stat-red{border-color:#ef44444d;color:var(--red)}.stat-pill.stat-yellow{border-color:#f59e0b4d;color:var(--amber)}.stat-num{font-weight:700}.metric-bar-wrap{display:flex;align-items:center;gap:6px;min-width:100px}.metric-bar-bg{flex:1;height:6px;background:var(--s4);border-radius:3px;overflow:hidden}.metric-bar-fill{height:100%;border-radius:3px;transition:width .3s}.bar-green{background:var(--green)}.bar-yellow{background:var(--amber)}.bar-red{background:var(--red)}.metric-bar-label{font-size:11px;color:var(--t2);min-width:38px;text-align:right;font-family:var(--font-mono)}.row-offline td{opacity:.5}.row-warn td:first-child{border-left:2px solid var(--amber);padding-left:8px}.gpu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.gpu-card{background:var(--s2);border:1px solid var(--b2);border-radius:var(--r2);padding:16px}.gpu-card-warn{border-color:#ef444466;box-shadow:0 0 12px var(--gpu-hot-shadow)}.gpu-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.gpu-device-name{font-weight:600;font-size:13px}.gpu-temp-badge{font-size:11px;padding:2px 7px;border-radius:10px;font-family:var(--font-mono)}.gpu-metrics{display:flex;flex-direction:column;gap:8px}.gpu-metric{display:flex;align-items:center;gap:8px}.gpu-metric-label{font-size:11px;color:var(--t3);min-width:72px}.gpu-value{font-size:12px;color:var(--t2);font-family:var(--font-mono)}.device-services-card{background:var(--s2);border:1px solid var(--b2);border-radius:var(--r2);padding:16px;margin-bottom:16px}.device-services-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.device-service-counts{display:flex;gap:6px}.services-table{width:100%;border-collapse:collapse}.services-table th{font-size:11px;color:var(--t3);text-transform:uppercase;padding:4px 8px;border-bottom:1px solid var(--b1);text-align:left}.services-table td{padding:6px 8px;border-bottom:1px solid var(--b1);font-size:12px}.svc-name{font-family:var(--font-mono);color:var(--t2)}.svc-actions{display:flex;gap:4px}.btn-xs{padding:2px 7px;font-size:11px;border-radius:4px;cursor:pointer;background:var(--s3);border:1px solid var(--b2);color:var(--t2)}.btn-xs.btn-warn{border-color:#f59e0b66;color:var(--amber)}.log-drawer{background:var(--s0);border:1px solid var(--b2);border-radius:var(--r2);padding:16px;margin-top:16px}.log-drawer-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.log-output{font-family:var(--font-mono);font-size:11px;color:var(--t2);white-space:pre-wrap;max-height:400px;overflow-y:auto}.chat-wrap{display:flex;height:calc(100vh - var(--top));margin:-20px;overflow:hidden}.sessions-panel{width:200px;min-width:200px;background:var(--s0);border-right:1px solid var(--b1);display:flex;flex-direction:column;overflow:hidden}.sessions-header{display:flex;align-items:center;justify-content:space-between;padding:12px 12px 8px;border-bottom:1px solid var(--b1)}.sessions-header span{font-size:11px;text-transform:uppercase;color:var(--t3);letter-spacing:.05em}.btn-icon{background:none;border:1px solid var(--b2);color:var(--t2);border-radius:4px;width:22px;height:22px;cursor:pointer;font-size:16px;line-height:1}.sessions-list{flex:1;overflow-y:auto;padding:8px 0}.sessions-empty{font-size:11px;color:var(--t3);padding:12px;text-align:center}.session-item{display:flex;align-items:center;justify-content:space-between;padding:7px 12px;cursor:pointer}.session-item:hover{background:var(--s2)}.session-item.active{background:var(--purple-x);border-left:2px solid var(--purple)}.session-title{font-size:12px;color:var(--t2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.session-delete{background:none;border:none;color:var(--t4);cursor:pointer;font-size:14px;padding:0 2px;opacity:0}.session-item:hover .session-delete{opacity:1}.chat-main{flex:1;display:flex;flex-direction:column;overflow:hidden}.chat-messages{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:16px}.chat-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;color:var(--t3);gap:8px;padding:40px;text-align:center}.chat-empty-icon{font-size:40px;margin-bottom:8px}.chat-empty-hint{font-size:12px;color:var(--t4)}.msg{display:flex;gap:12px;max-width:900px}.msg-user{flex-direction:row-reverse;margin-left:auto}.msg-avatar{width:28px;height:28px;border-radius:50%;background:var(--s3);display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}.msg-body{flex:1;min-width:0}.msg-content{background:var(--s2);border:1px solid var(--b2);border-radius:var(--r2);padding:12px 14px;font-size:13px;line-height:1.6}.msg-user .msg-content{background:var(--chat-user-bg);border-color:var(--chat-user-border)}.msg-meta{font-size:11px;color:var(--t3);margin-top:4px;padding:0 4px;font-family:var(--font-mono)}.msg-loading{display:flex;gap:4px;align-items:center;padding:8px 0}.dot{width:6px;height:6px;border-radius:50%;background:var(--t3);animation:bounce .8s infinite}.dot:nth-child(2){animation-delay:.15s}.dot:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-6px)}}.chat-error{background:var(--red-x);border:1px solid rgba(239,68,68,.3);border-radius:var(--r);padding:8px 14px;color:var(--red);font-size:12px;margin:0 20px 8px}.chat-input-row{display:flex;gap:8px;padding:12px 20px;border-top:1px solid var(--b1);background:var(--s1)}.chat-input{flex:1;background:var(--s2);border:1px solid var(--b2);border-radius:var(--r2);padding:10px 14px;color:var(--t1);font-family:inherit;font-size:13px;resize:none;min-height:44px;max-height:120px;outline:none}.chat-input:focus{border-color:var(--purple)}.chat-send-btn{width:44px;height:44px;border-radius:var(--r2);background:var(--purple);border:none;color:#fff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center}.chat-send-btn:hover{background:var(--purple-h)}.chat-send-btn:disabled{opacity:.4;cursor:not-allowed}.control-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:20px}.control-card{background:var(--s2);border:1px solid var(--b2);border-radius:var(--r2);padding:20px}.control-card h3{font-size:14px;font-weight:600;margin-bottom:16px;color:var(--t1)}.form-row{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.form-row label{font-size:11px;color:var(--t3);text-transform:uppercase}.filter-input{width:180px}.ssh-result{margin-top:12px;border-radius:var(--r);overflow:hidden}.ssh-ok pre{background:var(--ssh-ok-bg);border:1px solid rgba(16,185,129,.2)}.ssh-error pre{background:var(--ssh-err-bg);border:1px solid rgba(239,68,68,.2)}.ssh-result pre,.loki-result pre{padding:10px 12px;font-family:var(--font-mono);font-size:11px;color:var(--t2);max-height:200px;overflow-y:auto;white-space:pre-wrap}.loki-result{margin-top:12px}.loki-count{font-size:11px;color:var(--t3);margin-bottom:6px}.spinner{width:16px;height:16px;border:2px solid var(--b2);border-top-color:var(--purple);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.chat-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:40px 20px;gap:16px;text-align:center}.chat-empty-icon{font-size:44px}.chat-empty-title{font-size:22px;font-weight:700;color:var(--t1);margin:0}.chat-empty-sub{font-size:14px;color:var(--t3);margin:0}.prompt-section{width:100%;max-width:680px}.prompt-section-label{font-size:11px;color:var(--t3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;display:flex;align-items:center;gap:5px}.memory-label-icon{font-size:13px}.prompt-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.prompt-chip{background:var(--s3);border:1px solid var(--b2);border-radius:20px;padding:6px 14px;font-size:12px;color:var(--t2);cursor:pointer;transition:all .15s;font-family:inherit}.prompt-chip:hover{background:var(--s4);border-color:var(--b3);color:var(--t1)}.prompt-chip-memory{border-color:#7c3aed40;color:var(--purple-l);background:var(--purple-x)}.prompt-chip-memory:hover{background:rgba(124,58,237,.2);border-color:var(--purple)}.chat-quick-bar{display:flex;gap:6px;padding:8px 20px 0;flex-wrap:wrap;border-top:1px solid var(--b1);background:var(--s1);overflow-x:auto}.quick-chip{background:var(--s2);border:1px solid var(--b2);border-radius:14px;padding:4px 11px;font-size:11px;color:var(--t3);cursor:pointer;white-space:nowrap;font-family:inherit;transition:all .15s;flex-shrink:0}.quick-chip:hover{color:var(--t1);border-color:var(--b3);background:var(--s3)}.quick-chip:disabled{opacity:.4;cursor:not-allowed}.quick-chip-memory{border-color:#7c3aed33;color:var(--purple-l)}.quick-chip-memory:hover{background:var(--purple-x);border-color:var(--purple)}.quick-chip-divider{width:1px;background:var(--b2);margin:2px 4px;flex-shrink:0}.mem-action-btns{display:flex;flex-direction:column;gap:6px;margin-top:4px}.mem-action-btn{display:flex;align-items:center;gap:10px;width:100%;background:var(--s3);border:1px solid var(--b2);border-radius:var(--r);padding:9px 10px;cursor:pointer;text-align:left;transition:all .15s}.mem-action-btn:hover{background:var(--s4);border-color:var(--b3)}.mem-btn-skill:hover{border-color:#10b9814d;background:var(--green-x)}.mem-btn-note:hover{border-color:#3b82f64d;background:var(--blue-x)}.mem-btn-icon{font-size:18px;flex-shrink:0}.mem-btn-label{display:flex;flex-direction:column;gap:1px}.mem-btn-label strong{font-size:12px;color:var(--t1);font-weight:600}.mem-btn-label span{font-size:10px;color:var(--t3)}.mem-form{background:var(--s0);border:1px solid var(--b2);border-radius:var(--r);padding:12px;margin-top:4px;display:flex;flex-direction:column;gap:7px}.mem-form-header{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:600;color:var(--t1);margin-bottom:2px}.mem-form-close{background:none;border:none;color:var(--t3);cursor:pointer;font-size:14px;padding:0 2px;line-height:1}.mem-form-close:hover{color:var(--t1)}.mem-input{width:100%;padding:7px 9px;background:var(--s2);border:1px solid var(--b2);border-radius:var(--r);color:var(--t1);font-size:12px;font-family:inherit;outline:none}.mem-input:focus{border-color:var(--purple)}.mem-textarea{width:100%;padding:7px 9px;background:var(--s2);border:1px solid var(--b2);border-radius:var(--r);color:var(--t1);font-size:12px;font-family:inherit;outline:none;resize:vertical;min-height:72px}.mem-textarea:focus{border-color:var(--purple)}.mem-form-hint{font-size:10px;color:var(--t4);line-height:1.4}.mem-submit-btn{width:100%;padding:7px;font-size:12px}.mem-feedback{font-size:11px;padding:6px 8px;border-radius:var(--r);line-height:1.4}.mem-feedback-ok{background:var(--green-x);color:var(--green);border:1px solid rgba(16,185,129,.25)}.mem-feedback-err{background:var(--red-x);color:var(--red);border:1px solid rgba(239,68,68,.25)}.session-actions{display:flex;align-items:center;gap:3px;flex-shrink:0}.session-commit{background:none;border:none;cursor:pointer;font-size:12px;padding:1px 4px;border-radius:3px;color:var(--t4);opacity:0;transition:all .15s;line-height:1}.session-item:hover .session-commit{opacity:1}.session-commit:hover{background:var(--purple-x);color:var(--purple-l)}.session-commit.commit-saved{color:var(--green);opacity:1}.session-commit.commit-error{color:var(--red);opacity:1}.session-commit:disabled{cursor:wait}.alert-bell-wrap{position:relative;display:flex;align-items:center}.alert-bell{background:none;border:none;cursor:pointer;font-size:16px;padding:4px 6px;border-radius:var(--r);color:var(--t3);position:relative;transition:all .15s;line-height:1}.alert-bell:hover{background:var(--s3);color:var(--t1)}.alert-bell.bell-active{color:var(--amber);animation:bell-pulse 2s infinite}@keyframes bell-pulse{0%,to{transform:rotate(0)}10%{transform:rotate(-15deg)}20%{transform:rotate(15deg)}30%{transform:rotate(-10deg)}40%{transform:rotate(10deg)}50%{transform:rotate(0)}}.alert-badge{position:absolute;top:-4px;right:-4px;background:var(--red);color:#fff;border-radius:10px;font-size:9px;font-weight:700;padding:1px 4px;min-width:16px;text-align:center;line-height:14px;pointer-events:none}.alert-panel{position:fixed;top:var(--top);right:0;width:360px;max-height:calc(100vh - var(--top));background:var(--s2);border-left:1px solid var(--b2);border-bottom:1px solid var(--b2);box-shadow:-4px 4px 20px #0000004d;z-index:400;display:flex;flex-direction:column;overflow:hidden}.alert-panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--b1);flex-shrink:0}.alert-panel-title{font-size:14px;font-weight:600;color:var(--t1);display:flex;align-items:center;gap:8px}.alert-active-count{background:var(--red-x);color:var(--red);border:1px solid rgba(239,68,68,.3);border-radius:10px;font-size:11px;padding:1px 8px;font-weight:600}.alert-panel-actions{display:flex;gap:6px}.alert-active-bar{background:var(--red-x);border-bottom:1px solid rgba(239,68,68,.2);padding:7px 16px;font-size:12px;color:var(--red);display:flex;align-items:center;gap:8px;flex-shrink:0}.alert-firing-dot{width:8px;height:8px;border-radius:50%;background:var(--red);flex-shrink:0;animation:pulse-dot 1.5s infinite}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.alert-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 20px;color:var(--t3);gap:10px;text-align:center}.alert-empty-icon{font-size:32px}.alert-list{overflow-y:auto;flex:1;padding:8px}.alert-item{border-radius:var(--r);padding:10px 12px;margin-bottom:6px;border:1px solid var(--b2);background:var(--s3);transition:border-color .2s}.alert-firing{animation:alert-flash .5s ease-in-out}@keyframes alert-flash{0%{background:var(--s3)}50%{background:var(--amber-x)}to{background:var(--s3)}}.alert-item-header{display:flex;align-items:center;gap:7px;margin-bottom:4px}.alert-sev-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dot-critical{background:var(--red)}.dot-warning{background:var(--amber)}.dot-info{background:var(--blue)}.dot-resolved{background:var(--green)}.alert-item-title{font-size:12px;font-weight:600;color:var(--t1);flex:1}.alert-item-time{font-size:10px;color:var(--t3);white-space:nowrap;font-family:var(--font-mono)}.alert-item-device{font-size:11px;color:var(--t3);margin-bottom:3px}.alert-item-msg{font-size:11px;color:var(--t2);line-height:1.4}.alert-critical{border-color:#ef44444d;background:var(--red-x)}.alert-warning{border-color:#f59e0b4d}.alert-resolved{border-color:#10b98133;background:var(--green-x);opacity:.7}.alert-toasts{position:fixed;top:calc(var(--top) + 8px);right:8px;z-index:500;display:flex;flex-direction:column;gap:6px;pointer-events:none;max-width:320px}.alert-toast{background:var(--s2);border:1px solid var(--b2);border-radius:var(--r2);padding:10px 14px;box-shadow:0 4px 16px #0000004d;pointer-events:all;animation:toast-in .25s ease-out;display:flex;align-items:flex-start;gap:10px}@keyframes toast-in{0%{transform:translate(110%);opacity:0}to{transform:translate(0);opacity:1}}.toast-critical{border-color:#ef444466;border-left:3px solid var(--red)}.toast-warning{border-color:#f59e0b66;border-left:3px solid var(--amber)}.toast-icon{font-size:18px;flex-shrink:0;margin-top:1px}.toast-body{flex:1;min-width:0}.toast-title{font-size:12px;font-weight:600;color:var(--t1);margin-bottom:2px}.toast-msg{font-size:11px;color:var(--t3)}.toast-close{background:none;border:none;color:var(--t3);cursor:pointer;font-size:16px;padding:0 2px;margin-left:8px;line-height:1;flex-shrink:0}.toast-close:hover{color:var(--t1)}.control-card-desc{font-size:11px;color:var(--t3);margin:-8px 0 12px;line-height:1.5}.mem-search-results{margin-top:12px;display:flex;flex-direction:column;gap:8px}.mem-search-empty{font-size:12px;color:var(--t3);margin-top:10px;padding:8px;background:var(--s3);border-radius:var(--r);text-align:center}.mem-search-item{background:var(--s0);border:1px solid var(--b2);border-radius:var(--r);padding:10px 12px;border-left:3px solid var(--purple)}.mem-search-label{font-size:11px;color:var(--purple-l);font-family:var(--font-mono);margin-bottom:5px;word-break:break-all}.mem-search-content{font-size:12px;color:var(--t2);line-height:1.5;white-space:pre-wrap}.chat-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;flex:1;padding:24px 16px 16px;gap:14px;overflow-y:auto}.chat-empty-icon{font-size:36px}.chat-empty-title{font-size:20px;font-weight:600;color:var(--t1);margin:0}.chat-empty-sub{font-size:13px;color:var(--t3);margin:0 0 4px}.prompt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;width:100%;max-width:900px}.prompt-cat{background:var(--s2);border:1px solid var(--b2);border-radius:var(--r2);padding:12px;display:flex;flex-direction:column;gap:6px}.prompt-cat-memory{border-color:#7c3aed33;background:var(--purple-x)}.prompt-cat-header{display:flex;align-items:center;gap:7px;margin-bottom:2px}.prompt-cat-icon{font-size:14px}.prompt-cat-label{font-size:11px;font-weight:600;color:var(--t2);text-transform:uppercase;letter-spacing:.05em}.prompt-cat-memory .prompt-cat-label{color:var(--purple-l)}.prompt-cat-list{display:flex;flex-direction:column;gap:3px}.prompt-row{width:100%;text-align:left;background:none;border:none;border-radius:var(--r);padding:5px 8px;font-size:12px;color:var(--t2);cursor:pointer;font-family:inherit;transition:all .12s;line-height:1.4}.prompt-row:hover{background:var(--s4);color:var(--t1)}.prompt-row-memory{color:var(--purple-l)}.prompt-row-memory:hover{background:rgba(124,58,237,.15);color:var(--purple-l)}.control-card-desc{font-size:11px;color:var(--t3);margin:-6px 0 12px;line-height:1.5}.mem-quick-chips{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:12px}.mem-quick-chip{background:var(--purple-x);border:1px solid rgba(124,58,237,.25);border-radius:var(--r);padding:3px 9px;font-size:11px;color:var(--purple-l);cursor:pointer;font-family:inherit;transition:all .12s;white-space:nowrap}.mem-quick-chip:hover{background:rgba(124,58,237,.2);border-color:var(--purple);color:var(--t1)}.mem-search-row{display:flex;gap:6px;margin-bottom:8px}.mem-search-input{flex:1}.mem-search-btn{padding:6px 12px;flex-shrink:0}.mem-search-empty{font-size:12px;color:var(--t3);padding:10px;text-align:center;background:var(--s3);border-radius:var(--r);margin-top:4px}.mem-search-results{display:flex;flex-direction:column;gap:6px;margin-top:8px}.mem-search-item{background:var(--s0);border:1px solid var(--b2);border-radius:var(--r);padding:9px 11px;border-left:3px solid var(--purple)}.mem-search-label{font-size:10px;color:var(--purple-l);font-family:var(--font-mono);margin-bottom:4px;word-break:break-all;opacity:.8}.mem-search-content{font-size:12px;color:var(--t2);line-height:1.5;white-space:pre-wrap;max-height:120px;overflow-y:auto}.mem-search-card{grid-column:span 2}@media (max-width:900px){.mem-search-card{grid-column:span 1}}.mem-search-content strong{color:var(--t1);font-weight:600}.mem-search-content h1,.mem-search-content h2,.mem-search-content h3{font-size:12px;font-weight:600;color:var(--t1);margin:4px 0 2px}.mem-search-content p{margin:0 0 4px}.mem-search-content p:last-child{margin:0}.mem-search-content code{font-family:var(--font-mono);font-size:11px;background:var(--s3);padding:1px 4px;border-radius:3px}.mem-search-content{max-height:160px}.alert-cfg-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:16px}@media (max-width:860px){.alert-cfg-grid{grid-template-columns:1fr}}.alert-cfg-card{background:var(--s2);border:1px solid var(--b2);border-radius:var(--r2);padding:18px}.alert-cfg-card-title{font-size:13px;font-weight:600;color:var(--t1);margin-bottom:4px}.alert-cfg-desc{font-size:11px;color:var(--t3);margin-bottom:16px;line-height:1.5}.alert-cfg-error{margin:16px;padding:12px;background:var(--red-x);border:1px solid var(--red);border-radius:var(--r);color:var(--red);font-size:12px}.alert-cfg-saved{margin:0 16px 16px;padding:10px 14px;background:var(--green-x);border:1px solid var(--green);border-radius:var(--r);color:var(--green);font-size:12px;font-weight:500}.threshold-list{display:flex;flex-direction:column;gap:14px}.threshold-row{display:flex;flex-direction:column;gap:4px}.threshold-header{display:flex;align-items:center;gap:7px}.threshold-icon{font-size:14px;width:18px;text-align:center}.threshold-label{font-size:12px;color:var(--t2);flex:1}.threshold-value{font-size:13px;font-weight:600;font-family:var(--font-mono);min-width:52px;text-align:right}.threshold-slider-wrap{padding:0 4px}.threshold-bounds{display:flex;justify-content:space-between;font-size:10px;color:var(--t4);margin-top:2px}.threshold-hint{font-size:11px;color:var(--t3);margin-top:4px}.threshold-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:4px;border-radius:2px;outline:none;cursor:pointer;background:linear-gradient(to right,var(--fill,var(--purple)) 0%,var(--fill,var(--purple)) calc(var(--pct,50)*1%),var(--s4) calc(var(--pct,50)*1%),var(--s4) 100%);background:var(--s4)}.threshold-slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--fill,var(--purple));border:2px solid var(--s1);cursor:pointer;box-shadow:0 0 0 1px var(--fill,var(--purple))}.threshold-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--fill,var(--purple));border:2px solid var(--s1);cursor:pointer}.delivery-section{display:flex;flex-direction:column;gap:8px}.delivery-header{display:flex;align-items:center;justify-content:space-between}.delivery-title-row{display:flex;align-items:center;gap:9px}.delivery-icon{font-size:15px}.delivery-title{font-size:13px;font-weight:600;color:var(--t1)}.delivery-badge{font-size:10px;font-weight:600;padding:2px 8px;border-radius:20px;letter-spacing:.04em;text-transform:uppercase}.delivery-fields{display:flex;flex-direction:column;gap:6px;padding-left:24px}.delivery-fields-disabled{opacity:.4;pointer-events:none}.delivery-divider{height:1px;background:var(--b2);margin:14px 0}.delivery-note{font-size:11px;color:var(--t3);margin-top:14px;line-height:1.5;padding:8px 10px;background:var(--s3);border-radius:var(--r)}.delivery-note code{font-family:var(--font-mono);font-size:10px;background:var(--s4);padding:1px 4px;border-radius:3px}.cfg-label{font-size:11px;color:var(--t3);font-weight:500}.test-result{font-size:11px;padding:6px 10px;border-radius:var(--r);margin-top:4px}.test-ok{background:var(--green-x);color:var(--green)}.test-err{background:var(--red-x);color:var(--red)}.toggle{position:relative;display:inline-block;width:36px;height:20px;cursor:pointer;flex-shrink:0}.toggle input{opacity:0;width:0;height:0;position:absolute}.toggle-track{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--s4);border-radius:20px;transition:background .2s;border:1px solid var(--b3)}.toggle input:checked~.toggle-track{background:var(--purple);border-color:var(--purple)}.toggle-thumb{position:absolute;top:2px;left:2px;width:14px;height:14px;background:#fff;border-radius:50%;transition:transform .2s;box-shadow:0 1px 3px #0000004d}.toggle input:checked~.toggle-track .toggle-thumb{transform:translate(16px)}
