@import "https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;600;700;900&display=swap";.sidebar[data-v-643cf9e8]{color:#fff;background:linear-gradient(#0d1330 0%,#060b18 100%);border:1px solid #ffffff0f;border-radius:20px;flex-direction:column;height:calc(100vh - 32px);min-height:0;transition:width .25s;display:flex;overflow:hidden;box-shadow:0 24px 64px #00000080,inset 1px 0 #ffffff0a}.brand[data-v-643cf9e8]{border-bottom:1px solid #ffffff0f;flex-shrink:0;align-items:center;gap:12px;height:64px;padding:0 16px;display:flex}.brand-symbol[data-v-643cf9e8]{flex-shrink:0;width:40px;height:26px;position:relative}.brand-symbol span[data-v-643cf9e8],.brand-symbol i[data-v-643cf9e8]{border-radius:8px;width:28px;height:26px;position:absolute;top:0;transform:skew(-20deg)}.brand-symbol span[data-v-643cf9e8]{background:linear-gradient(135deg,#7b8aff,#4f62ff);left:0;box-shadow:0 0 20px #6679ff80}.brand-symbol i[data-v-643cf9e8]{opacity:.9;background:linear-gradient(135deg,#23d8c2,#16b8a0);right:0;box-shadow:0 0 16px #23d8c266}.brand-text strong[data-v-643cf9e8]{color:#e8eeff;letter-spacing:.02em;font-size:14px;font-weight:700;display:block}.brand-text small[data-v-643cf9e8]{color:#ffffff40;letter-spacing:.06em;margin-top:2px;font-size:9px;display:block}.nav[data-v-643cf9e8]{scrollbar-width:none;flex-direction:column;flex:1;gap:2px;padding:10px 8px;display:flex;overflow:hidden auto}.nav[data-v-643cf9e8]::-webkit-scrollbar{display:none}.nav-item[data-v-643cf9e8]{color:#ffffff61;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:11px;align-items:center;gap:10px;width:100%;height:42px;padding:0 12px;font-size:13px;text-decoration:none;transition:color .2s,background .2s;display:flex;position:relative}.nav-item[data-v-643cf9e8]:hover{color:#ffffffb3;background:#ffffff0d}.nav-item.active[data-v-643cf9e8]{color:#fff;background:linear-gradient(135deg,#6679ff40,#23d8c21a);border:1px solid #6679ff4d}.nav-item.active[data-v-643cf9e8]:before{content:"";background:linear-gradient(#6679ff,#23d8c2);border-radius:0 3px 3px 0;width:3px;height:26px;position:absolute;top:50%;left:0;transform:translateY(-50%);box-shadow:0 0 12px #6679ff99}.nav-item svg[data-v-643cf9e8]:first-child{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:16px;height:16px}.nav-item span[data-v-643cf9e8]{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.nav-parent[data-v-643cf9e8]{text-align:left;justify-content:flex-start}.nav-arrow[data-v-643cf9e8]{flex-shrink:0;transition:transform .25s;width:12px!important;height:12px!important}.nav-arrow.open[data-v-643cf9e8]{transform:rotate(180deg)}.nav-sub[data-v-643cf9e8]{flex-direction:column;gap:1px;padding:3px 0 3px 16px;display:flex;overflow:hidden}.nav-sub-item[data-v-643cf9e8]{color:#ffffff4d;border-radius:8px;align-items:center;gap:10px;height:34px;padding:0 12px;font-size:12px;text-decoration:none;transition:color .2s,background .2s;display:flex}.nav-sub-item[data-v-643cf9e8]:hover{color:#ffffffa6;background:#ffffff0a}.nav-sub-item.active[data-v-643cf9e8]{color:var(--teal,#23d8c2);background:#23d8c214}.sub-dot[data-v-643cf9e8]{opacity:.5;background:currentColor;border-radius:50%;flex-shrink:0;width:5px;height:5px}.nav-sub-item.active .sub-dot[data-v-643cf9e8]{opacity:1;box-shadow:0 0 6px #23d8c299}.sub-expand-enter-active[data-v-643cf9e8],.sub-expand-leave-active[data-v-643cf9e8]{transition:all .25s;overflow:hidden}.sub-expand-enter-from[data-v-643cf9e8],.sub-expand-leave-to[data-v-643cf9e8]{opacity:0;max-height:0}.sub-expand-enter-to[data-v-643cf9e8],.sub-expand-leave-from[data-v-643cf9e8]{opacity:1;max-height:200px}.nav-item.router-link-active[data-v-643cf9e8]{color:#fff!important;background:linear-gradient(135deg,#6679ff40,#23d8c21a)!important;border:1px solid #6679ff4d!important}.topbar[data-v-27f8eb4a]{flex:none;justify-content:space-between;align-items:center;min-height:52px;margin-bottom:14px;display:flex}.breadcrumb[data-v-27f8eb4a]{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:flex}.breadcrumb svg[data-v-27f8eb4a]{fill:none;width:16px;height:16px;stroke:var(--muted);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.bc-link[data-v-27f8eb4a]{color:var(--muted);text-decoration:none;transition:color .15s}.bc-link[data-v-27f8eb4a]:hover{color:var(--text)}.bc-parent[data-v-27f8eb4a]{color:var(--muted);font-style:normal}.breadcrumb em[data-v-27f8eb4a]{color:#ffffff26;font-style:normal}.breadcrumb strong[data-v-27f8eb4a]{color:var(--title);font-weight:500}.top-actions[data-v-27f8eb4a]{align-items:center;gap:12px;display:flex}.ghost-btn[data-v-27f8eb4a]{cursor:pointer;border:0;border-radius:20px;align-items:center;gap:8px;height:38px;padding:0 18px;font-weight:500;transition:box-shadow .2s,transform .15s;display:inline-flex}.ghost-btn.danger-soft[data-v-27f8eb4a]{color:var(--red);box-shadow:none;background:#ff5f5f1a;border:1px solid #ff5f5f33}.ghost-btn.danger-soft[data-v-27f8eb4a]:hover{background:#ff5f5f29}.ghost-btn svg[data-v-27f8eb4a]{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.search-box[data-v-27f8eb4a]{width:300px;height:38px;color:var(--muted);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:pointer;background:#ffffff0a;border:1px solid #ffffff14;border-radius:20px;align-items:center;gap:8px;padding:0 14px;transition:border-color .2s,background .2s;display:flex}.search-box[data-v-27f8eb4a]:hover{background:#6679ff0f;border-color:#6679ff66}.search-box svg[data-v-27f8eb4a]{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:14px;height:14px}.search-placeholder[data-v-27f8eb4a]{white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.icon-btn[data-v-27f8eb4a]{color:#ffffff80;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff14;border-radius:50%;place-items:center;width:38px;height:38px;transition:border-color .2s,color .2s;display:grid;position:relative}.icon-btn[data-v-27f8eb4a]:hover{color:var(--primary);border-color:#6679ff66}.icon-btn svg[data-v-27f8eb4a]{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.icon-btn i[data-v-27f8eb4a]{background:var(--red);width:7px;height:7px;box-shadow:0 0 8px var(--red-glow);border-radius:50%;position:absolute;top:8px;right:8px}.profile[data-v-27f8eb4a]{color:var(--title);align-items:center;gap:10px;font-size:13px;font-weight:500;display:flex}.profile-info[data-v-27f8eb4a]{flex-direction:column;align-items:flex-start;gap:1px;display:flex}.profile-name[data-v-27f8eb4a]{color:var(--title);font-size:13px;font-weight:600;line-height:1.2}.profile-role[data-v-27f8eb4a]{color:var(--muted);font-size:10px;line-height:1.2}.profile .avatar[data-v-27f8eb4a]{color:#fff;background:radial-gradient(circle at 50% 34%,#b4c4ff80 0 16%,#0000 17%),radial-gradient(circle at 50% 78%,#7b8dff 0 34%,#0000 35%),#1a2050;border:1px solid #6679ff4d;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:14px;font-weight:700;display:flex}.gateway-indicator[data-v-27f8eb4a]{cursor:pointer;background:#ffffff0a;border:1px solid #ffffff14;border-radius:999px;align-items:center;gap:6px;height:32px;padding:0 12px;transition:all .2s;display:flex}.gateway-indicator[data-v-27f8eb4a]:hover{border-color:#6679ff4d}.gw-dot[data-v-27f8eb4a]{border-radius:50%;flex-shrink:0;width:7px;height:7px}.gw-label[data-v-27f8eb4a]{font-size:12px}.gateway-indicator.connected .gw-dot[data-v-27f8eb4a]{background:var(--green);animation:2s infinite gwPulse-27f8eb4a;box-shadow:0 0 6px #4ade8a99}.gateway-indicator.connected .gw-label[data-v-27f8eb4a]{color:var(--green)}.gateway-indicator.disconnected .gw-dot[data-v-27f8eb4a]{background:var(--muted)}.gateway-indicator.disconnected .gw-label[data-v-27f8eb4a]{color:var(--muted)}.gateway-indicator.connecting .gw-dot[data-v-27f8eb4a]{background:var(--orange);animation:.8s infinite gwPulse-27f8eb4a}.gateway-indicator.connecting .gw-label[data-v-27f8eb4a]{color:var(--orange)}.gateway-indicator.error .gw-dot[data-v-27f8eb4a]{background:var(--red)}.gateway-indicator.error .gw-label[data-v-27f8eb4a]{color:var(--red)}@keyframes gwPulse-27f8eb4a{0%,to{opacity:1}50%{opacity:.3}}.profile-inner[data-v-27f8eb4a]{cursor:pointer;align-items:center;gap:10px;display:flex}.logout-trigger[data-v-27f8eb4a]{width:20px;height:20px;color:var(--muted);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid}.logout-trigger svg[data-v-27f8eb4a]{width:14px;height:14px}.logout-trigger[data-v-27f8eb4a]:hover{color:var(--title)}.user-menu[data-v-27f8eb4a]{z-index:999;background:#111d2e;border:1px solid #6679ff33;border-radius:16px;width:220px;position:absolute;top:calc(100% + 10px);right:0;overflow:hidden;box-shadow:0 16px 48px #0009}.user-menu-header[data-v-27f8eb4a]{align-items:center;gap:12px;padding:14px 16px;display:flex}.um-avatar[data-v-27f8eb4a]{background:linear-gradient(135deg,var(--primary),var(--teal));color:#fff;border-radius:10px;flex-shrink:0;place-items:center;width:38px;height:38px;font-size:16px;font-weight:700;display:grid}.um-name[data-v-27f8eb4a]{color:var(--title);font-size:13px;font-weight:600}.um-role[data-v-27f8eb4a]{color:var(--muted);margin-top:2px;font-size:11px}.user-menu-divider[data-v-27f8eb4a]{background:#ffffff0f;height:1px}.user-menu-item[data-v-27f8eb4a]{width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:10px 16px;font-size:13px;transition:background .15s;display:flex}.user-menu-item[data-v-27f8eb4a]:hover{color:var(--title);background:#ffffff0d}.user-menu-item svg[data-v-27f8eb4a]{flex-shrink:0;width:15px;height:15px}.user-menu-item.danger[data-v-27f8eb4a]{color:var(--red)}.user-menu-item.danger[data-v-27f8eb4a]:hover{background:#ff5f5f14}.dropdown-enter-active[data-v-27f8eb4a],.dropdown-leave-active[data-v-27f8eb4a]{transition:all .2s}.dropdown-enter-from[data-v-27f8eb4a],.dropdown-leave-to[data-v-27f8eb4a]{opacity:0;transform:translateY(-8px)}.bell-btn[data-v-27f8eb4a]{position:relative}.bell-btn .badge[data-v-27f8eb4a]{background:var(--red);color:#fff;border-radius:999px;place-items:center;min-width:16px;height:16px;padding:0 3px;font-size:10px;font-style:normal;font-weight:700;display:grid;position:absolute;top:-4px;right:-4px}@keyframes ring-27f8eb4a{0%,to{transform:translateY(0)}25%{transform:translateY(-2px)}50%{transform:translateY(0)}75%{transform:translateY(-1px)}}.bell-btn.ringing svg[data-v-27f8eb4a]{transform-origin:top;color:var(--red);animation:1.5s infinite ring-27f8eb4a}.msg-panel[data-v-27f8eb4a]{z-index:999;background:#111d2e;border:1px solid #6679ff33;border-radius:16px;flex-direction:column;width:320px;max-height:480px;display:flex;position:absolute;top:calc(100% + 12px);right:-60px;overflow:hidden;box-shadow:0 16px 48px #0009}.msg-panel-header[data-v-27f8eb4a]{border-bottom:1px solid #ffffff0f;flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.msg-title[data-v-27f8eb4a]{color:var(--title);font-size:14px;font-weight:700}.msg-header-actions[data-v-27f8eb4a]{align-items:center;gap:8px;display:flex}.msg-read-all[data-v-27f8eb4a]{color:var(--primary);cursor:pointer;background:0 0;border:0;border-radius:4px;padding:2px 6px;font-size:11px}.msg-read-all[data-v-27f8eb4a]:hover{background:#6679ff1a}.msg-close[data-v-27f8eb4a]{width:24px;height:24px;color:var(--muted);cursor:pointer;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:6px;place-items:center;font-size:16px;display:grid}.msg-list[data-v-27f8eb4a]{flex:1;overflow-y:auto}.msg-empty[data-v-27f8eb4a]{text-align:center;color:var(--muted);padding:32px;font-size:13px}.msg-item[data-v-27f8eb4a]{cursor:pointer;border-bottom:1px solid #ffffff0a;gap:10px;padding:12px 16px;transition:background .15s;display:flex}.msg-item[data-v-27f8eb4a]:hover{background:#ffffff0a}.msg-item.unread[data-v-27f8eb4a]{background:#6679ff0a}.msg-dot[data-v-27f8eb4a]{background:var(--muted);border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:5px}.msg-item.unread .msg-dot[data-v-27f8eb4a]{background:var(--primary);box-shadow:0 0 6px #6679ff99}.msg-item.warning .msg-dot[data-v-27f8eb4a]{background:var(--orange)}.msg-item.success .msg-dot[data-v-27f8eb4a]{background:var(--green)}.msg-item.warning.unread .msg-dot[data-v-27f8eb4a]{box-shadow:0 0 6px #ff9f3f99}.msg-content[data-v-27f8eb4a]{flex:1;min-width:0}.msg-item-title[data-v-27f8eb4a]{color:var(--title);margin-bottom:3px;font-size:13px;font-weight:600}.msg-item.unread .msg-item-title[data-v-27f8eb4a]{color:#e8eeff}.msg-item-body[data-v-27f8eb4a]{color:var(--muted);margin-bottom:4px;font-size:12px;line-height:1.5}.msg-item-time[data-v-27f8eb4a]{color:#fff3;font-size:11px}.msg-panel-footer[data-v-27f8eb4a]{color:var(--primary);cursor:pointer;border-top:1px solid #ffffff0f;justify-content:center;align-items:center;gap:6px;padding:12px;font-size:12px;transition:background .15s;display:flex}.msg-panel-footer[data-v-27f8eb4a]:hover{background:#6679ff14}.slide-panel-enter-active[data-v-27f8eb4a],.slide-panel-leave-active[data-v-27f8eb4a]{transition:all .25s}.slide-panel-enter-from[data-v-27f8eb4a],.slide-panel-leave-to[data-v-27f8eb4a]{opacity:0;transform:translateY(-12px)scale(.97)}:root{--bg:#0a0f1e;--bg-soft:#0d1326;--nav:#060b18;--nav-2:#0a1020;--surface:#ffffff0a;--surface-2:#ffffff12;--surface-3:#ffffff1c;--title:#e8eeff;--text:#b0bcde;--muted:#5a6a8a;--line:#ffffff12;--white:#fff;--primary:#6679ff;--primary-glow:#6679ff59;--teal:#23d8c2;--teal-glow:#23d8c24d;--green:#4ade8a;--green-glow:#4ade8a40;--orange:#ff9f3f;--orange-glow:#ff9f3f40;--red:#ff5f5f;--red-glow:#ff5f5f40;--blue:#4da6ff;--blue-glow:#4da6ff40;--shadow:0 24px 64px #00000080;--soft-shadow:0 8px 32px #0000004d;--card-border:#ffffff14;--card-border-hover:#6679ff80;--radius:16px;--radius-sm:10px}*{box-sizing:border-box}body{min-width:1280px;height:100vh;color:var(--text);background:var(--bg);letter-spacing:.01em;margin:0;font-family:Noto Sans SC,Microsoft YaHei,sans-serif;font-size:13px;overflow:hidden}body:before{z-index:0;content:"";pointer-events:none;background:radial-gradient(80% 60% at 10% -10%,#6679ff1f 0%,#0000 60%),radial-gradient(60% 50% at 90% 110%,#23d8c214 0%,#0000 55%),radial-gradient(50% 40%,#0a0f1ee6 0%,#0000 100%);position:fixed;inset:0}button,input{font:inherit}button{cursor:pointer}svg{fill:currentColor;width:18px;height:18px}.app{z-index:1;grid-template-columns:var(--sidebar-w,230px) 20px 1fr;align-items:stretch;gap:0;height:100vh;padding:16px 18px 16px 16px;display:grid;position:relative;overflow:hidden}.sidebar-resizer{cursor:col-resize;-webkit-user-select:none;user-select:none;z-index:10;flex-direction:column;justify-content:center;align-items:center;gap:3px;width:20px;height:100%;display:flex;position:relative}.resizer-handle{background:#ffffff1a;border-radius:999px;width:3px;height:48px;transition:background .2s,height .2s,box-shadow .2s}.resizer-arrow{color:#fff0;pointer-events:none;font-size:14px;font-weight:300;line-height:1;transition:color .2s,transform .15s}.sidebar-resizer:hover .resizer-handle,.sidebar-resizer.dragging .resizer-handle{background:linear-gradient(#6679ff,#23d8c2);height:64px;box-shadow:0 0 10px #6679ff66}.sidebar-resizer:hover .resizer-arrow,.sidebar-resizer.dragging .resizer-arrow{color:#ffffff80}.sidebar-resizer:hover .resizer-arrow-left,.sidebar-resizer.dragging .resizer-arrow-left{transform:translate(-2px)}.sidebar-resizer:hover .resizer-arrow-right,.sidebar-resizer.dragging .resizer-arrow-right{transform:translate(2px)}.sidebar{color:#fff;height:calc(100vh - 32px);min-height:0;box-shadow:var(--shadow), inset 1px 0 0 #ffffff0a;background:linear-gradient(#0d1330 0%,#060b18 100%);border:1px solid #ffffff0f;border-radius:20px;overflow:hidden}.brand{border-bottom:1px solid #ffffff0f;align-items:center;gap:12px;height:72px;padding:0 20px;display:flex}.brand-symbol{width:40px;height:26px;position:relative}.brand-symbol span,.brand-symbol i{border-radius:8px;width:28px;height:26px;position:absolute;top:0;transform:skew(-20deg)}.brand-symbol span{background:linear-gradient(135deg,#7b8aff,#4f62ff);left:0;box-shadow:0 0 20px #6679ff80}.brand-symbol i{opacity:.9;background:linear-gradient(135deg,#23d8c2,#16b8a0);right:0;box-shadow:0 0 16px #23d8c266}.brand strong,.brand small{display:block}.brand strong{color:#e8eeff;letter-spacing:.02em;font-size:15px;font-weight:700;line-height:1.3}.brand small{color:#ffffff47;letter-spacing:.06em;margin-top:3px;font-size:9px}.nav{gap:2px;padding:12px 10px;display:grid}.nav a{color:#ffffff61;border-radius:12px;align-items:center;gap:12px;height:44px;padding:0 14px;font-size:13px;text-decoration:none;transition:color .2s,background .2s;display:flex;position:relative}.nav a:after{color:#fff3;content:"›";font-size:16px;transition:opacity .2s;position:absolute;right:14px}.nav a:hover{color:#ffffffb3;background:#ffffff0d}.nav a.active{color:#fff;background:linear-gradient(135deg,#6679ff40,#23d8c21a);border:1px solid #6679ff4d}.nav a.active:before{content:"";background:linear-gradient(#6679ff,#23d8c2);border-radius:0 3px 3px 0;width:3px;height:28px;position:absolute;top:50%;left:0;transform:translateY(-50%);box-shadow:0 0 12px #6679ff99}.content{flex-direction:column;min-width:0;height:calc(100vh - 32px);min-height:0;display:flex;overflow:hidden}.content>.page-content,.content>div:not(.topbar){flex:1;min-height:0;overflow-y:auto}.topbar,.top-actions,.breadcrumb,.page-title,.panel-head,.legend,.segmented{align-items:center;display:flex}.topbar{flex:none;justify-content:space-between;min-height:52px;margin-bottom:14px}.breadcrumb{color:var(--muted);gap:8px;font-size:13px}.breadcrumb strong{color:var(--title);font-weight:500}.breadcrumb em{color:#ffffff26;font-style:normal}.top-actions{gap:12px}.ghost-btn{color:#fff;height:38px;box-shadow:0 8px 24px var(--primary-glow);background:linear-gradient(135deg,#6679ffe6,#6679ffb3);border:0;border-radius:20px;align-items:center;gap:8px;padding:0 18px;font-weight:500;transition:box-shadow .2s,transform .15s;display:inline-flex}.ghost-btn:hover{box-shadow:0 12px 30px var(--primary-glow);transform:translateY(-1px)}.ghost-btn.danger-soft{color:var(--red);box-shadow:none;background:#ff5f5f1a;border:1px solid #ff5f5f33}.ghost-btn.danger-soft:hover{background:#ff5f5f29}.search-box{width:320px;height:38px;color:var(--muted);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff0a;border:1px solid #ffffff14;border-radius:20px;align-items:center;padding:0 14px;transition:border-color .2s,background .2s;display:flex}.search-box:focus-within{background:#6679ff0f;border-color:#6679ff66}.search-box input{width:100%;color:var(--title);background:0 0;border:0;outline:0;font-size:13px}.search-box input::placeholder{color:var(--muted)}.icon-btn{color:#ffffff80;background:#ffffff0a;border:1px solid #ffffff14;border-radius:50%;place-items:center;width:38px;height:38px;transition:border-color .2s,color .2s;display:grid;position:relative}.icon-btn:hover{color:var(--primary);border-color:#6679ff66}.icon-btn i{background:var(--red);width:7px;height:7px;box-shadow:0 0 8px var(--red-glow);border-radius:50%;position:absolute;top:8px;right:8px}.profile{color:var(--title);align-items:center;gap:10px;font-size:13px;font-weight:500;display:flex}.profile b{background:radial-gradient(circle at 50% 34%,#b4c4ff80 0 16%,#0000 17%),radial-gradient(circle at 50% 78%,#7b8dff 0 34%,#0000 35%),#1a2050;border:1px solid #6679ff4d;border-radius:50%;width:34px;height:34px}.page-title{flex:none;justify-content:space-between;margin-bottom:10px}.page-title h1,.page-title p,.panel h2,.panel p{margin:0}.page-title h1{color:var(--title);letter-spacing:-.02em;font-size:26px;font-weight:700}.page-title p{color:var(--muted);margin-top:6px}.metric-grid{flex:none;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;display:grid}.drawer-metrics{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(300px,340px);gap:6px 10px}.drawer-metrics .status-column{grid-area:1/4/span 2;gap:6px;display:grid}.metric-card,.status-card,.panel{border-radius:var(--radius);background:var(--surface);border:1px solid var(--card-border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.metric-card,.status-card{grid-template-rows:auto auto;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:6px 10px;height:70px;min-height:70px;padding:12px 14px;transition:border-color .2s,box-shadow .2s;display:grid}.metric-card:hover,.status-card:hover{border-color:#6679ff40;box-shadow:0 8px 32px #0003}.metric-icon{color:#fff;border-radius:8px;grid-row:1;place-items:center;width:30px;height:30px;margin-bottom:0;display:grid}.metric-icon svg{width:15px;height:15px}.metric-icon.purple{color:var(--primary);background:#6679ff33;box-shadow:0 0 16px #6679ff26}.metric-icon.green{color:var(--green);background:#4ade8a26;box-shadow:0 0 16px #4ade8a1f}.metric-icon.orange{color:var(--orange);background:#ff9f3f26;box-shadow:0 0 16px #ff9f3f1f}.metric-icon.teal{color:var(--teal);background:#23d8c226;box-shadow:0 0 16px #23d8c21f}.metric-icon.red{color:var(--red);background:#ff5f5f26;box-shadow:0 0 16px #ff5f5f1f}.metric-icon.blue{color:var(--blue);background:#4da6ff26;box-shadow:0 0 16px #4da6ff1f}.metric-card span,.status-card span,.status-card small,.metric-card small{color:var(--muted);display:block}.metric-card span,.status-card span{letter-spacing:.02em;white-space:nowrap;grid-area:1/2;font-size:11px}.metric-card strong,.status-card strong{color:var(--title);letter-spacing:-.02em;white-space:nowrap;grid-area:1/3;justify-self:end;margin:0;font-size:20px;font-weight:700;line-height:1}.metric-card small,.status-card small{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);grid-area:2/1/auto/-1;font-size:10px;overflow:hidden}.panel{padding:18px}.panel-head{justify-content:space-between;gap:16px}.drawer-overview-panel .panel-head{grid-template-columns:auto minmax(260px,1fr) auto;align-items:center;display:grid}.panel h2{color:var(--title);letter-spacing:.01em;font-size:14px;font-weight:600}.drawer-group-tabs{justify-content:center;gap:6px;min-width:0;display:inline-flex}.drawer-group-tabs button{min-width:68px;height:26px;color:var(--muted);letter-spacing:.02em;background:#ffffff0a;border:1px solid #ffffff14;border-radius:999px;place-items:center;padding:0 12px;font-size:11px;font-weight:600;transition:color .18s,background .18s,border-color .18s,box-shadow .18s,transform .18s;display:grid}.drawer-group-tabs button:hover,.drawer-group-tabs button.active{color:#fff;background:linear-gradient(135deg, var(--primary), var(--teal));border-color:#0000;transform:translateY(-1px);box-shadow:0 6px 20px #6679ff59}.drawer-group-tabs button[data-mode=batch]:hover:not(.active){color:var(--primary);box-shadow:none;background:#6679ff14;border-color:#6679ff66}.drawer-group-tabs button[data-mode=batch].active{background:linear-gradient(135deg,#6679ffcc,#23d8c299);border:1px solid #6679ff80}.segmented{background:#ffffff08;border:1px solid #ffffff12;border-radius:20px;gap:3px;padding:3px}.segmented button{height:22px;color:var(--muted);background:0 0;border:0;border-radius:15px;padding:0 10px;font-size:11px;transition:color .18s,background .18s}.segmented .active{color:#fff;background:#6679ff80;box-shadow:0 4px 12px #6679ff40}.status,.badge{border-radius:999px;justify-content:center;align-items:center;min-height:22px;padding:0 9px;font-size:11px;font-weight:500;display:inline-flex}.status.ok{color:var(--green);background:#4ade8a1f;border:1px solid #4ade8a33}.status.bad{color:var(--red);background:#ff5f5f1a;border:1px solid #ff5f5f33}.status.neutral{color:var(--muted);background:#ffffff0d;border:1px solid #ffffff14}.status.warn{color:var(--orange);background:#ff9f3f1a;border:1px solid #ff9f3f33}.status.progress{color:var(--blue);background:#4da6ff1a;border:1px solid #4da6ff33}.drawer-layout{flex:auto;grid-template-columns:minmax(0,1fr);gap:14px;min-height:0;margin-top:10px;display:grid;overflow:hidden}.drawer-overview-panel{flex-direction:column;height:100%;min-height:0;padding-top:12px;padding-bottom:12px;display:flex;overflow:hidden}.drawer-overview-panel>.panel-head{border-bottom:1px solid #ffffff0f;flex:none;min-height:28px;padding-bottom:10px}.drawer-control-grid{overscroll-behavior:contain;scrollbar-color:#6679ff40 transparent;scrollbar-width:thin;flex:auto;grid-template-columns:1fr;grid-auto-rows:max-content;gap:12px;min-height:0;margin:10px -6px -2px 0;padding:2px 6px 8px 0;display:grid;overflow-y:auto}.drawer-control-grid::-webkit-scrollbar{width:5px}.drawer-control-grid::-webkit-scrollbar-track{background:0 0}.drawer-control-grid::-webkit-scrollbar-thumb{background:linear-gradient(#6679ff66,#23d8c24d);border-radius:999px}.drawer-group-section{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;scroll-margin-top:2px;display:grid}.drawer-tile{border:1px solid var(--card-border);border-radius:var(--radius);height:430px;min-height:430px;box-shadow:var(--soft-shadow);background:linear-gradient(160deg,#141e3ce6,#0a0f1ef2);flex-direction:column;padding:0;transition:border-color .25s,box-shadow .25s,transform .2s;display:flex;overflow:hidden}.drawer-tile:hover{border-color:#6679ff73;transform:translateY(-2px);box-shadow:0 20px 50px #0006,0 0 0 1px #6679ff33}.drawer-tile.open:hover{border-color:#23d8c280;box-shadow:0 20px 50px #00000059,0 0 0 1px #23d8c22e,0 0 40px #23d8c20f}.drawer-tile.warn:hover{border-color:#ff9f3f80;box-shadow:0 20px 50px #00000059,0 0 0 1px #ff9f3f2e}.drawer-tile.error:hover{border-color:#ff5f5f80;box-shadow:0 20px 50px #00000059,0 0 0 1px #ff5f5f2e}.drawer-tile header,.drawer-tile footer{justify-content:space-between;align-items:center;gap:10px;display:flex}.drawer-tile header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff08;border-bottom:1px solid #ffffff0f;padding:10px 14px}.drawer-tile footer{background:#ffffff05;border-top:1px solid #ffffff0f;align-items:center;gap:10px;margin-top:auto;padding:10px 14px;display:flex}.drawer-tile.open{background:linear-gradient(160deg,#142d2de6,#0a1419f2);border-color:#23d8c233}.drawer-tile.open header,.drawer-tile.open footer{background:#23d8c20a}.drawer-tile.warn{background:linear-gradient(160deg,#281c0ce6,#0a0f1ef2);border-color:#ff9f3f33}.drawer-tile.warn header,.drawer-tile.warn footer{background:#ff9f3f0a}.drawer-tile.error{background:linear-gradient(160deg,#280f0fe6,#0a0f1ef2);border-color:#ff5f5f33}.drawer-tile.error header,.drawer-tile.error footer{background:#ff5f5f0a}.drawer-tile.opening{border-color:#4da6ff59;box-shadow:0 0 30px #4da6ff14}.drawer-tile.closing{border-color:#ff5f5f40}.drawer-tile.opening header,.drawer-tile.opening footer,.drawer-tile.closing header,.drawer-tile.closing footer{background:#ffffff08}.drawer-tile header strong{color:var(--title);letter-spacing:-.01em;font-size:17px;font-weight:700}.tile-body{padding:12px 14px}.tile-body b,.tile-body small{display:block}.tile-body b{color:var(--teal);font-size:13px;font-weight:600}.tile-body small{color:var(--muted);margin-top:4px;font-size:11px}.drawer-tile button,.selected-drawer .wide{letter-spacing:.02em;border:0;border-radius:15px;height:30px;padding:0 28px;font-size:12px;font-weight:600;transition:background .3s,color .3s,box-shadow .3s,opacity .3s,transform .15s;position:relative;overflow:hidden}.drawer-tile button:hover{transform:translateY(-1px)}.drawer-tile .primary{color:#fff;background:linear-gradient(135deg,#23d8c2,#4ade8a);box-shadow:0 6px 20px #23d8c24d}.drawer-tile .primary:hover{box-shadow:0 8px 24px #23d8c266}.drawer-tile .secondary{color:var(--muted);background:#ffffff0f;border:1px solid #ffffff14}.drawer-tile .danger{color:#fff;background:linear-gradient(135deg,#ff6b6b,#ff3d5a);box-shadow:0 6px 18px #ff5f5f4d}.drawer-tile .danger:hover{box-shadow:0 8px 22px #ff5f5f66}.closed-panel{border-radius:var(--radius-sm);background:linear-gradient(90deg,#0000,#6679ff14,#0000),#ffffff05;border:1px solid #ffffff0f;width:15%;height:12px;margin-top:14px;margin-left:auto;margin-right:auto;position:relative;overflow:hidden}.closed-panel:after{content:"";background:repeating-linear-gradient(-45deg,#0000,#0000 6px,#ffffff04 6px 12px);position:absolute;inset:0}.closed-panel.warning{background:linear-gradient(90deg,#0000,#ff9f3f1a,#0000),#ff9f3f08;border-color:#ff9f3f26}.closed-panel.error{background:linear-gradient(90deg,#0000,#ff5f5f14,#0000),#ff5f5f05;border-color:#ff5f5f26}.motor-progress{border-radius:var(--radius-sm);background:#ffffff08;border:1px solid #4da6ff33;width:15%;height:12px;margin-top:14px;margin-left:auto;margin-right:auto;position:relative;overflow:hidden}.motor-progress i{border-radius:inherit;background:linear-gradient(90deg,#ffffff1f,#0000 60%),linear-gradient(135deg,#23d8c2,#4ade8a);width:0;animation:10s linear forwards drawerOpenProgress;position:absolute;inset:0 auto 0 0}.motor-progress.closing i{background:linear-gradient(90deg,#ffffff1a,#0000 60%),linear-gradient(135deg,#ff6b6b,#ff3d5a)}.motor-progress span{color:#fff;text-shadow:0 1px 4px #00000080;place-items:center;font-size:14px;font-weight:700;display:grid;position:absolute;inset:0}@keyframes drawerOpenProgress{0%{width:0}to{width:100%}}.fabric-rolls{gap:7px;display:grid}.fabric-rolls.mini{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:14px}.open-fabric-layout{grid-template-columns:120px minmax(0,1fr);gap:18px;height:242px;margin-top:10px;display:grid;position:relative}.open-fabric-layout .fabric-rolls.mini{grid-template-columns:1fr;align-content:space-between;gap:3px;height:100%;margin-top:0}.open-fabric-layout .fabric-rolls span{cursor:pointer;height:16px;transition:box-shadow .18s,filter .18s,transform .18s}.open-fabric-layout .fabric-rolls span.active,.open-fabric-layout .fabric-rolls span:hover{filter:saturate(1.15)brightness(1.1);transform:translate(3px);box-shadow:inset 0 2px 4px #ffffff4d,inset 0 -5px 8px #0000004d,0 0 0 2px #23d8c299,0 6px 16px #23d8c240}.open-fabric-layout .fabric-rolls span:before,.open-fabric-layout .fabric-rolls span:after{width:5px;height:8px;top:3px}.open-fabric-layout .fabric-rolls span b{min-width:42px;padding:1px 5px;font-size:9px}.fabric-rolls span{background:radial-gradient(at 18%,#ffffff9e 0 8%,#0000 9%),radial-gradient(at 82%,#00000038 0 10%,#0000 11%),linear-gradient(#ffffff80,#0000 28%,#0003),repeating-linear-gradient(45deg,#ffffff21 0 1px,#0000 1px 5px),linear-gradient(90deg,#1b2b68,#6679ff 54%,#23d8c2);border-radius:999px;height:28px;display:block;position:relative;box-shadow:inset 0 2px 4px #ffffff26,inset 0 -5px 8px #0000004d,0 4px 12px #0000004d}.fabric-rolls span:before,.fabric-rolls span:after{content:"";background:linear-gradient(#c0cce8,#6b7a9a 54%,#d0ddf0);border-radius:4px;width:6px;height:12px;position:absolute;top:8px;box-shadow:0 0 0 1px #ffffff1a}.fabric-rolls span:before{left:-3px}.fabric-rolls span:after{right:-3px}.fabric-rolls span b{z-index:2;color:#fff;text-align:center;white-space:nowrap;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000008c;border-radius:999px;min-width:48px;padding:2px 7px;font-size:11px;font-weight:700;line-height:1.2;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.fabric-rolls span:nth-child(2){background:radial-gradient(at 18%,#ffffff9e 0 8%,#0000 9%),radial-gradient(at 82%,#0000002e 0 10%,#0000 11%),linear-gradient(#ffffff8c,#0000 28%,#00000029),repeating-linear-gradient(45deg,#ffffff2e 0 1px,#0000 1px 5px),linear-gradient(90deg,#d9bc99,#f6d6b2 58%,#bb956d)}.fabric-rolls span:nth-child(3){background:radial-gradient(at 18%,#ffffff7a 0 8%,#0000 9%),radial-gradient(at 82%,#00000038 0 10%,#0000 11%),linear-gradient(#ffffff61,#0000 28%,#0003),repeating-linear-gradient(45deg,#ffffff1f 0 1px,#0000 1px 5px),linear-gradient(90deg,#40511d,#6f8a35 58%,#273914)}.fabric-rolls span:nth-child(4){background:linear-gradient(#ffffff52,#0000 28%,#00000040),repeating-linear-gradient(90deg,#ffffffa6 0 2px,#0000 2px 8px),repeating-linear-gradient(0deg,#ffffff8c 0 2px,#0000 2px 9px),linear-gradient(90deg,#141821,#5b6070,#11141c)}.fabric-rolls span:nth-child(5){background:radial-gradient(at 18%,#ffffff73 0 8%,#0000 9%),linear-gradient(#ffffff61,#0000 28%,#0000003d),repeating-linear-gradient(45deg,#ffffff21 0 1px,#0000 1px 5px),linear-gradient(90deg,#35475d,#6f8094,#263445)}.fabric-rolls span:nth-child(6){background:radial-gradient(at 18%,#ffffff61 0 8%,#0000 9%),linear-gradient(#ffffff3d,#0000 28%,#00000042),repeating-linear-gradient(45deg,#ffffff21 0 1px,#0000 1px 5px),linear-gradient(90deg,#8c0604,#d61912,#660403)}.fabric-rolls span:nth-child(7){background:radial-gradient(at 18%,#ffffffbd 0 8%,#0000 9%),linear-gradient(#ffffffb8,#0000 28%,#0000001f),repeating-linear-gradient(45deg,#8291aa29 0 1px,#0000 1px 5px),linear-gradient(90deg,#d5dbe5,#fff,#b8c0ce)}.fabric-rolls span:nth-child(8){background:radial-gradient(at 18%,#ffffff52 0 8%,#0000 9%),linear-gradient(#fff3,#0000 28%,#00000042),repeating-linear-gradient(45deg,#ffffff1a 0 1px,#0000 1px 5px),linear-gradient(90deg,#01285f,#064999,#021b42)}.fabric-rolls span:nth-child(9){background:radial-gradient(at 18%,#ffffff70 0 8%,#0000 9%),linear-gradient(#ffffff70,#0000 28%,#00000029),repeating-linear-gradient(45deg,#ffffff24 0 1px,#0000 1px 5px),linear-gradient(90deg,#d5a3be,#f0c4d8,#b67899)}.fabric-rolls span:nth-child(10){background:radial-gradient(at 18%,#ffffff6b 0 8%,#0000 9%),linear-gradient(#fff6,#0000 28%,#0000002e),repeating-linear-gradient(45deg,#ffffff24 0 1px,#0000 1px 5px),linear-gradient(90deg,#8f6eb8,#b898e2,#72509f)}.fabric-rolls span:nth-child(11){background:radial-gradient(at 18%,#ffffff70 0 8%,#0000 9%),linear-gradient(#ffffff61,#0000 28%,#0000002e),repeating-linear-gradient(45deg,#ffffff24 0 1px,#0000 1px 5px),linear-gradient(90deg,#be7c00,#f2a91d,#a66900)}.fabric-rolls span:nth-child(12){background:radial-gradient(at 18%,#fff6 0 8%,#0000 9%),linear-gradient(#ffffff57,#0000 28%,#0003),repeating-linear-gradient(45deg,#ffffff24 0 1px,#0000 1px 5px),linear-gradient(90deg,#008493,#24c6cb,#00626f)}.rod-fabric-summary{--summary-lift:14px;height:calc(100% + var(--summary-lift));min-height:0;margin-top:calc(var(--summary-lift) * -1);border-radius:var(--radius-sm);background:linear-gradient(160deg,#142832f2,#0a141efa);border:1px solid #23d8c226;flex-direction:column;padding:14px;display:flex;position:relative;box-shadow:inset 0 1px #ffffff0f,0 8px 32px #0006}.rod-fabric-summary:before{left:-9px;top:calc(var(--arrow-y,50%) + var(--summary-lift));content:"";clip-path:polygon(0 50%,100% 0,100% 100%);background:linear-gradient(135deg,#23d8c2,#6679ff);width:9px;height:14px;position:absolute;transform:translateY(-50%);box-shadow:0 4px 12px #23d8c24d}.rod-fabric-summary:after{left:-14px;top:calc(var(--arrow-y,50%) + var(--summary-lift));content:"";background:linear-gradient(90deg,#0000,#23d8c2cc);border-radius:999px;width:5px;height:2px;position:absolute;transform:translateY(-50%)}.rod-fabric-summary span,.rod-fabric-summary strong,.rod-fabric-summary em,.rod-fabric-summary p,.rod-fabric-summary dt,.rod-fabric-summary dd{text-overflow:ellipsis;margin:0;overflow:hidden}.rod-fabric-summary span{color:var(--teal);letter-spacing:.02em;font-size:14px;font-weight:800;line-height:1.2}.rod-fabric-summary strong{color:var(--title);margin-top:6px;font-size:13px;font-weight:600;display:block}.rod-fabric-summary em{color:var(--muted);white-space:nowrap;margin-top:5px;font-size:10px;font-style:normal;display:block}.rod-fabric-summary p{color:#b0bcdeb3;margin-top:10px;font-size:11px;line-height:1.5}.rod-fabric-summary dl{border-top:1px solid #ffffff12;grid-template-columns:54px 1fr;gap:6px 8px;margin-top:auto;padding-top:10px;display:grid}.rod-fabric-summary dt{color:var(--muted);white-space:nowrap;font-size:10px}.rod-fabric-summary dd{color:var(--title);white-space:nowrap;margin:0;font-size:10px;font-weight:600}.drawer-batch-grid{grid-template-columns:repeat(9,minmax(0,1fr));align-content:start;gap:10px;min-height:100%;padding:10px 2px 4px;display:grid}.batch-drawer-button{border-radius:var(--radius-sm);min-height:72px;color:var(--muted);text-align:left;background:#ffffff08;border:1px solid #ffffff12;grid-template-rows:auto auto;gap:5px;padding:12px 10px;transition:border-color .18s,box-shadow .18s,transform .18s;display:grid;position:relative;overflow:hidden}.batch-drawer-button:before{z-index:0;width:var(--batch-progress,0);border-radius:inherit;content:"";transition:width .2s linear;position:absolute;inset:0 auto 0 0}.batch-drawer-button.open{background:#23d8c20f;border-color:#23d8c233}.batch-drawer-button.opening:before{background:linear-gradient(135deg,#23d8c2b3,#4ade8a80)}.batch-drawer-button.closing:before{background:linear-gradient(135deg,#ff6b6bb3,#ff3d5a80)}.batch-drawer-button:hover{border-color:#6679ff66;transform:translateY(-1px);box-shadow:0 8px 24px #0000004d}.batch-drawer-button:disabled{cursor:default}.batch-drawer-button strong,.batch-drawer-button span{z-index:1;text-overflow:ellipsis;white-space:nowrap;position:relative;overflow:hidden}.batch-drawer-button strong{color:var(--title);font-size:14px;font-weight:600;line-height:1.1}.batch-drawer-button span{color:var(--muted);font-size:10px}.batch-drawer-button.open span{color:var(--teal)}.batch-drawer-button.processing strong,.batch-drawer-button.processing span{color:#fff}.system-footer{min-height:30px;color:var(--muted);background:#ffffff05;border:1px solid #ffffff0d;border-radius:10px;flex:none;justify-content:center;align-items:center;gap:18px;margin-top:8px;padding:0 18px;font-size:11px;display:flex}.system-footer strong{color:#ffffff4d;font-weight:600}.system-footer span,.system-footer em{white-space:nowrap;font-style:normal}.defs{display:none}.drawer-metrics .metric-card{min-height:70px}.main-grid{grid-template-columns:minmax(0,1fr) 340px;gap:16px;margin-top:16px;display:grid}.left-stack,.right-stack{align-content:start;gap:16px;display:grid}.right-stack{min-height:0;padding-right:4px;overflow-y:auto}.bar-chart{background:#ffffff05;border-radius:12px;grid-template-columns:repeat(7,1fr);align-items:end;gap:16px;height:230px;margin-top:16px;padding:12px 18px 28px;display:grid}.bar-chart i{background:linear-gradient(180deg, var(--primary), var(--teal));border-radius:8px 8px 3px 3px;min-height:28px;display:block;position:relative;box-shadow:0 8px 20px #6679ff33}.bar-chart b{color:var(--muted);text-align:center;font-size:12px;font-weight:400;position:absolute;bottom:-24px;left:0;right:0}table{border-collapse:collapse;width:100%;margin-top:14px;font-size:13px}th,td{text-align:left;white-space:nowrap;border-bottom:1px solid #ffffff0d;padding:12px}th{color:var(--muted);font-size:11px;font-weight:400}td{color:var(--text)}tbody tr{background:0 0}tbody tr:hover{background:#ffffff08}.dot{border-radius:50%;width:8px;height:8px}.dot.ok{background:#ffffff26}.dot.open{background:var(--teal)}.dot.warn{background:var(--orange)}.dot.error{background:var(--red)}.badge.red{color:var(--red);background:#ff5f5f1a;border:1px solid #ff5f5f33}.badge.orange{color:var(--orange);background:#ff9f3f1a;border:1px solid #ff9f3f33}.badge.blue{color:var(--primary);background:#6679ff1a;border:1px solid #6679ff33}.notice-list{gap:10px;margin-top:14px;display:grid}.notice-list p{border-left:3px solid var(--teal);color:var(--text);background:#23d8c20d;border-radius:10px;margin:0;padding:12px 14px}.more{color:var(--primary);font-size:13px;text-decoration:none}.legend{color:var(--muted);flex-wrap:wrap;gap:18px;margin-top:16px;font-size:13px}.legend span{align-items:center;gap:7px;display:inline-flex}.date-chip{min-width:160px;color:var(--muted);text-align:center;background:#ffffff0a;border:1px solid #ffffff12;border-radius:20px;padding:8px 16px}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.metric-card,.status-card{animation:.4s both fadeUp}.metric-card:first-child{animation-delay:40ms}.metric-card:nth-child(2){animation-delay:80ms}.metric-card:nth-child(3){animation-delay:.12s}.metric-card:nth-child(4){animation-delay:.16s}.metric-card:nth-child(5){animation-delay:.2s}.metric-card:nth-child(6){animation-delay:.24s}.status-column{animation:.4s .28s both fadeUp}@media (width<=1440px){.metric-grid{grid-template-columns:repeat(3,1fr)}.drawer-metrics{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(290px,330px)}.drawer-metrics .status-column{grid-area:1/4/span 2}.main-grid,.analysis-grid,.drawer-control-grid{grid-template-columns:1fr}}.app:not(.sidebar-dragging){transition:grid-template-columns .25s}.sidebar{transition:opacity .2s}.app.sidebar-collapsed .sidebar{opacity:0;pointer-events:none}.page-placeholder{color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.page-placeholder h2{color:var(--title);margin:0;font-size:20px}.sidebar-footer{border-top:1px solid #ffffff0f;margin-top:auto;padding:16px 12px}.user-chip{align-items:center;gap:10px;display:flex}.user-chip .avatar{background:radial-gradient(circle at 50% 34%,#b4c4ff80 0 16%,#0000 17%),radial-gradient(circle at 50% 78%,#7b8dff 0 34%,#0000 35%),#1a2050;border:1px solid #6679ff4d;border-radius:50%;width:32px;height:32px;display:block}.user-chip strong{color:var(--title);font-size:13px;display:block}.user-chip small{color:var(--muted);font-size:11px;display:block}.nav a svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:16px;height:16px}.metric-icon svg,.icon-btn svg,.ghost-btn svg,.topbar svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.router-link-active{color:#fff!important;background:linear-gradient(135deg,#6679ff40,#23d8c21a)!important;border:1px solid #6679ff4d!important}.router-link-active:before{content:"";background:linear-gradient(#6679ff,#23d8c2);border-radius:0 3px 3px 0;width:3px;height:28px;position:absolute;top:50%;left:0;transform:translateY(-50%);box-shadow:0 0 12px #6679ff99}.sidebar[style*="width: 0"] .nav a span,.sidebar[style*="width: 0"] .brand>div,.sidebar[style*="width: 0"] .sidebar-footer{display:none}
