:root{--font-sans: "Geist", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "Geist Mono", "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace}:root,[data-theme=light]{--bg-canvas: #f6f8fb;--bg-surface: #ffffff;--bg-surface-muted: #f1f5f9;--bg-surface-hover: #f5f8fc;--border-default: #e6eaf0;--border-strong: #cbd5e1;--text-primary: #0f172a;--text-secondary: #51607a;--text-muted: #94a3b8;--text-inverse: #ffffff;--accent-default: #2563eb;--accent-hover: #1d4ed8;--accent-active: #1e40af;--accent-subtle: #eef4ff;--accent-border: #c7dbff;--accent-text: #1d4ed8;--success: #15924d;--success-subtle: #e9f8ef;--success-text: #0f7a3d;--warning: #c2710c;--warning-subtle: #fdf4e3;--warning-text: #a85d06;--danger: #dc2626;--danger-subtle: #fdecec;--danger-text: #c01f1f;--danger-hover: #b91c1c;--info: #5b6b85;--info-subtle: #eef1f6;--info-text: #51607a;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .05), 0 1px 1px rgba(15, 23, 42, .03);--shadow-md: 0 4px 12px rgba(15, 23, 42, .08), 0 2px 4px rgba(15, 23, 42, .04);--shadow-lg: 0 16px 48px rgba(15, 23, 42, .16), 0 4px 12px rgba(15, 23, 42, .08);--sidebar-bg: #0f1729;--sidebar-text: #aeb9cc;--sidebar-text-active: #ffffff;--sidebar-active-bg: rgba(255, 255, 255, .08);--sidebar-border: rgba(255, 255, 255, .07);--sidebar-muted: #6b7790}[data-theme=dark]{--bg-canvas: #0a0e16;--bg-surface: #111824;--bg-surface-muted: #19212f;--bg-surface-hover: #1b2433;--border-default: #232d3d;--border-strong: #33405593;--border-strong: #36445c;--text-primary: #e8edf5;--text-secondary: #9fadc1;--text-muted: #65728a;--text-inverse: #ffffff;--accent-default: #3b82f6;--accent-hover: #60a5fa;--accent-active: #2563eb;--accent-subtle: rgba(59, 130, 246, .14);--accent-border: rgba(59, 130, 246, .4);--accent-text: #74a8ff;--success: #22c55e;--success-subtle: rgba(34, 197, 94, .14);--success-text: #4ade80;--warning: #f59e0b;--warning-subtle: rgba(245, 158, 11, .14);--warning-text: #fbbf24;--danger: #ef4444;--danger-subtle: rgba(239, 68, 68, .15);--danger-text: #f87171;--danger-hover: #f87171;--info: #7686a0;--info-subtle: rgba(118, 134, 160, .16);--info-text: #9fadc1;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 14px rgba(0, 0, 0, .5);--shadow-lg: 0 20px 50px rgba(0, 0, 0, .6);--sidebar-bg: #0c121d;--sidebar-text: #98a5ba;--sidebar-text-active: #ffffff;--sidebar-active-bg: rgba(255, 255, 255, .07);--sidebar-border: rgba(255, 255, 255, .06);--sidebar-muted: #5a677e}:root{--r-sm: 6px;--r-md: 8px;--r-lg: 12px;--r-pill: 999px;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-8: 32px;--s-10: 40px;--s-12: 48px;--ctrl-h: 36px;--ctrl-h-sm: 32px;--sidebar-w: 244px;--sidebar-w-collapsed: 64px;--row-h: 44px;--cell-py: 11px}[data-density=compact]{--row-h: 36px;--cell-py: 7px}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{font-family:var(--font-sans);font-size:14px;line-height:20px;color:var(--text-primary);background:var(--bg-canvas);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"cv01","cv03","ss01"}#root{height:100%}::selection{background:var(--accent-subtle)}button,input,textarea,select{font-family:inherit}a{color:var(--accent-text);text-decoration:none}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px;border:3px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--text-muted);background-clip:content-box}::-webkit-scrollbar-track{background:transparent}.t-display{font-size:24px;line-height:32px;font-weight:650;letter-spacing:-.02em}.t-h1{font-size:20px;line-height:28px;font-weight:640;letter-spacing:-.015em}.t-h2{font-size:16px;line-height:24px;font-weight:600;letter-spacing:-.01em}.t-body{font-size:14px;line-height:20px}.t-small{font-size:13px;line-height:18px}.t-caption{font-size:12px;line-height:16px}.t-mono{font-family:var(--font-mono);font-size:13px;letter-spacing:-.01em;font-feature-settings:"zero"}.t-label{font-size:13px;line-height:18px;font-weight:540}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.text-danger{color:var(--danger-text)}.text-success{color:var(--success-text)}.tabular{font-variant-numeric:tabular-nums}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:var(--ctrl-h);padding:0 14px;border-radius:var(--r-md);border:1px solid transparent;font-size:14px;font-weight:540;line-height:1;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;transition:background .12s ease,border-color .12s ease,color .12s ease,box-shadow .12s ease,opacity .12s ease}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-subtle),0 0 0 1px var(--accent-default)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn .ic{flex:none}.btn-sm{height:var(--ctrl-h-sm);padding:0 11px;font-size:13px}.btn-icon{width:var(--ctrl-h);padding:0}.btn-icon.btn-sm{width:var(--ctrl-h-sm)}.btn-primary{background:var(--accent-default);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:active:not(:disabled){background:var(--accent-active)}.btn-secondary{background:var(--bg-surface);color:var(--text-primary);border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.btn-secondary:hover:not(:disabled){background:var(--bg-surface-muted);border-color:var(--border-strong)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--bg-surface-muted);color:var(--text-primary)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--danger-hover)}.btn-danger-ghost{background:transparent;color:var(--danger-text);border-color:transparent}.btn-danger-ghost:hover:not(:disabled){background:var(--danger-subtle)}.btn .spinner{width:15px;height:15px}.spinner{display:inline-block;width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .6s linear infinite;opacity:.9}@keyframes spin{to{transform:rotate(360deg)}}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:13px;font-weight:540;color:var(--text-secondary)}.field-hint{font-size:12px;color:var(--text-muted)}.field-error{font-size:12px;color:var(--danger-text);display:flex;align-items:center;gap:4px}.input,.textarea,.select{width:100%;height:var(--ctrl-h);padding:0 11px;background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--r-md);color:var(--text-primary);font-size:14px;line-height:20px;transition:border-color .12s ease,box-shadow .12s ease}.input::placeholder,.textarea::placeholder{color:var(--text-muted)}.input:focus,.textarea:focus,.select:focus{outline:none;border-color:var(--accent-default);box-shadow:0 0 0 3px var(--accent-subtle)}.input:disabled,.textarea:disabled,.select:disabled{background:var(--bg-surface-muted);color:var(--text-muted);cursor:not-allowed}.textarea{height:auto;min-height:84px;padding:9px 11px;resize:vertical}.input.error,.textarea.error{border-color:var(--danger)}.input.error:focus,.textarea.error:focus{box-shadow:0 0 0 3px var(--danger-subtle)}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:30px;cursor:pointer}.input-search{position:relative}.input-search .ic{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.input-search .input{padding-left:34px}.input-affix{position:relative;display:flex;align-items:center}.input-affix .input{padding-right:64px}.input-affix-suffix{position:absolute;right:10px;font-size:12px;color:var(--text-muted)}.switch{position:relative;display:inline-flex;flex:none;width:38px;height:22px;border-radius:999px;background:var(--border-strong);cursor:pointer;transition:background .15s ease}.switch:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #00000040;transition:transform .15s ease}.switch.on{background:var(--accent-default)}.switch.on:after{transform:translate(16px)}.switch.disabled{opacity:.5;cursor:not-allowed}.checkbox{width:17px;height:17px;border:1.5px solid var(--border-strong);border-radius:5px;background:var(--bg-surface);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex:none;color:#fff;transition:background .12s,border-color .12s}.checkbox.on{background:var(--accent-default);border-color:var(--accent-default)}.badge{display:inline-flex;align-items:center;gap:5px;height:21px;padding:0 8px;border-radius:var(--r-sm);font-size:12px;font-weight:540;line-height:1;white-space:nowrap}.badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}.badge-neutral{background:var(--info-subtle);color:var(--info-text)}.badge-success{background:var(--success-subtle);color:var(--success-text)}.badge-warning{background:var(--warning-subtle);color:var(--warning-text)}.badge-danger{background:var(--danger-subtle);color:var(--danger-text)}.badge-info{background:var(--accent-subtle);color:var(--accent-text)}.badge-outline{background:transparent;border:1px solid var(--border-strong);color:var(--text-secondary)}.chip{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 9px;border-radius:var(--r-sm);background:var(--bg-surface-muted);border:1px solid var(--border-default);font-size:12.5px;color:var(--text-secondary);white-space:nowrap}.chip .x{cursor:pointer;opacity:.6;display:inline-flex}.chip .x:hover{opacity:1}.card{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.card-pad{padding:var(--s-5)}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding:14px var(--s-5);border-bottom:1px solid var(--border-default)}.panel-head h3{margin:0;font-size:14px;font-weight:600;letter-spacing:-.01em}.panel-body{padding:var(--s-5)}.table-wrap{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);overflow:hidden}.table-scroll{overflow-x:auto}table.tbl{width:100%;border-collapse:collapse;font-size:14px}.tbl thead th{position:sticky;top:0;z-index:1;background:var(--bg-surface);text-align:left;font-size:12px;font-weight:560;color:var(--text-muted);letter-spacing:.01em;padding:10px var(--s-4);border-bottom:1px solid var(--border-default);white-space:nowrap}.tbl thead th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.tbl thead th.sortable:hover{color:var(--text-secondary)}.tbl thead th .th-in{display:inline-flex;align-items:center;gap:4px}.tbl thead th.num,.tbl td.num{text-align:right;font-variant-numeric:tabular-nums}.tbl tbody td{padding:var(--cell-py) var(--s-4);border-bottom:1px solid var(--border-default);color:var(--text-primary);height:var(--row-h);vertical-align:middle}.tbl tbody tr:last-child td{border-bottom:none}.tbl tbody tr.clickable{cursor:pointer}.tbl tbody tr.clickable:hover td{background:var(--bg-surface-hover)}.tbl td .cell-actions{display:flex;gap:2px;justify-content:flex-end;opacity:0;transition:opacity .1s}.tbl tr:hover .cell-actions{opacity:1}.tbl .col-w-actions{width:1%}.table-toolbar{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--border-default);flex-wrap:wrap}.table-toolbar .spacer{flex:1}.pagination{display:flex;align-items:center;gap:var(--s-3);padding:10px var(--s-4);border-top:1px solid var(--border-default);font-size:13px;color:var(--text-secondary)}.pagination .spacer{flex:1}.page-btn{display:inline-flex;align-items:center;justify-content:center;height:30px;min-width:30px;padding:0 8px;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer}.page-btn:hover:not(:disabled){background:var(--bg-surface-muted);color:var(--text-primary)}.page-btn:disabled{opacity:.4;cursor:not-allowed}.segmented{display:inline-flex;padding:3px;gap:2px;background:var(--bg-surface-muted);border-radius:var(--r-md);border:1px solid var(--border-default)}.segmented button{height:28px;padding:0 12px;border:none;background:transparent;border-radius:6px;font-size:13px;font-weight:520;color:var(--text-secondary);cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:background .12s,color .12s}.segmented button:hover{color:var(--text-primary)}.segmented button.active{background:var(--bg-surface);color:var(--text-primary);box-shadow:var(--shadow-sm)}.segmented button .count{font-variant-numeric:tabular-nums;color:var(--text-muted);font-size:12px}.segmented button.active .count{color:var(--accent-text)}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border-default)}.tabs button{position:relative;height:38px;padding:0 14px;border:none;background:transparent;font-size:13.5px;font-weight:520;color:var(--text-secondary);cursor:pointer;display:inline-flex;align-items:center;gap:7px}.tabs button:hover,.tabs button.active{color:var(--text-primary)}.tabs button.active:after{content:"";position:absolute;left:8px;right:8px;bottom:-1px;height:2px;background:var(--accent-default);border-radius:2px}.kv{display:grid;grid-template-columns:minmax(120px,180px) 1fr}.kv>dt{padding:9px 0;font-size:13px;color:var(--text-muted);border-bottom:1px solid var(--border-default)}.kv>dd{margin:0;padding:9px 0;font-size:13.5px;color:var(--text-primary);border-bottom:1px solid var(--border-default);display:flex;align-items:center;gap:8px}.kv>dt:last-of-type,.kv>dd:last-of-type{border-bottom:none}.copy-val{display:inline-flex;align-items:center;gap:7px}.copy-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:5px;border:none;background:transparent;color:var(--text-muted);cursor:pointer}.copy-btn:hover{background:var(--bg-surface-muted);color:var(--text-primary)}.copy-btn.copied{color:var(--success-text)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0f196b;-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px);display:flex;z-index:100;animation:fade .15s ease}[data-theme=dark] .overlay{background:#0009}.overlay.center{align-items:center;justify-content:center;padding:24px}.overlay.right{justify-content:flex-end}@keyframes fade{0%{opacity:0}}.modal{width:100%;max-width:440px;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);animation:pop .16s cubic-bezier(.2,.7,.3,1);max-height:calc(100vh - 48px);display:flex;flex-direction:column}@keyframes pop{0%{opacity:0;transform:translateY(8px) scale(.98)}}.drawer{width:520px;max-width:92vw;height:100%;background:var(--bg-surface);border-left:1px solid var(--border-default);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:slidein .2s cubic-bezier(.2,.7,.3,1)}@keyframes slidein{0%{transform:translate(24px);opacity:.6}}.modal-head,.drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px var(--s-5) 12px}.modal-head h3,.drawer-head h3{margin:0;font-size:16px;font-weight:620;letter-spacing:-.01em}.modal-head p,.drawer-head p{margin:4px 0 0;font-size:13px;color:var(--text-secondary)}.modal-body{padding:4px var(--s-5) 8px;overflow-y:auto}.drawer-body{padding:var(--s-5);overflow-y:auto;flex:1}.modal-foot,.drawer-foot{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:14px var(--s-5) 18px;border-top:1px solid transparent}.drawer-foot{border-top-color:var(--border-default)}.toast-stack{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:10px;z-index:200;width:360px;max-width:calc(100vw - 40px)}.toast{display:flex;align-items:flex-start;gap:10px;padding:12px 13px;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--r-md);box-shadow:var(--shadow-lg);animation:toastin .22s cubic-bezier(.2,.7,.3,1)}@keyframes toastin{0%{opacity:0;transform:translate(16px)}}.toast .ic-wrap{flex:none;margin-top:1px}.toast.success .ic-wrap{color:var(--success-text)}.toast.error .ic-wrap{color:var(--danger-text)}.toast.info .ic-wrap{color:var(--accent-text)}.toast .body{flex:1;min-width:0}.toast .title{font-size:13.5px;font-weight:560}.toast .desc{font-size:12.5px;color:var(--text-secondary);margin-top:2px}.alert{display:flex;align-items:flex-start;gap:10px;padding:11px 13px;border-radius:var(--r-md);font-size:13px;border:1px solid transparent}.alert .ic{flex:none;margin-top:1px}.alert-danger{background:var(--danger-subtle);color:var(--danger-text);border-color:color-mix(in srgb,var(--danger) 22%,transparent)}.alert-warning{background:var(--warning-subtle);color:var(--warning-text);border-color:color-mix(in srgb,var(--warning) 22%,transparent)}.alert-info{background:var(--accent-subtle);color:var(--accent-text);border-color:var(--accent-border)}.alert-success{background:var(--success-subtle);color:var(--success-text);border-color:color-mix(in srgb,var(--success) 22%,transparent)}.state-box{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:56px 24px;gap:6px}.state-box .state-icon{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:var(--bg-surface-muted);color:var(--text-muted);margin-bottom:8px}.state-box.danger .state-icon{background:var(--danger-subtle);color:var(--danger-text)}.state-box.warn .state-icon{background:var(--warning-subtle);color:var(--warning-text)}.state-box h3{margin:0;font-size:15px;font-weight:600}.state-box p{margin:0;font-size:13px;color:var(--text-secondary);max-width:340px}.state-box .actions{margin-top:14px;display:flex;gap:8px}.skel{background:var(--bg-surface-muted);border-radius:6px;position:relative;overflow:hidden}.skel:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--bg-surface) 60%,transparent),transparent);transform:translate(-100%);animation:shimmer 1.3s infinite}@keyframes shimmer{to{transform:translate(100%)}}.chat{display:flex;flex-direction:column;gap:16px}.msg{display:flex;gap:10px;max-width:78%}.msg.right{align-self:flex-end;flex-direction:row-reverse}.msg .avatar{flex:none;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;background:var(--bg-surface-muted);color:var(--text-secondary)}.msg.right .avatar{background:var(--accent-default);color:#fff}.msg .bubble-wrap{display:flex;flex-direction:column;gap:4px;min-width:0}.msg.right .bubble-wrap{align-items:flex-end}.msg .meta{font-size:11.5px;color:var(--text-muted);display:flex;gap:6px;padding:0 2px}.bubble{padding:9px 12px;border-radius:4px 12px 12px;font-size:13.5px;line-height:19px;background:var(--bg-surface-muted);border:1px solid var(--border-default);white-space:pre-wrap;word-break:break-word}.msg.right .bubble{background:var(--accent-default);color:#fff;border-color:transparent;border-top-left-radius:12px;border-top-right-radius:4px}.bubble .attach{display:flex;width:fit-content;align-items:center;gap:6px;white-space:nowrap;margin-top:7px;padding:5px 8px;background:color-mix(in srgb,currentColor 8%,transparent);border-radius:6px;font-size:12px}.msg.right .bubble .attach{background:#ffffff29}.shell{display:flex;height:100%;overflow:hidden}.sidebar{width:var(--sidebar-w);flex:none;background:var(--sidebar-bg);color:var(--sidebar-text);display:flex;flex-direction:column;transition:width .18s ease}.sidebar.collapsed{width:var(--sidebar-w-collapsed)}.sb-brand{display:flex;align-items:center;gap:10px;height:56px;padding:0 16px;flex:none}.sb-brand .logo{width:30px;height:30px;border-radius:8px;flex:none;background:var(--accent-default);display:flex;align-items:center;justify-content:center;color:#fff}.sb-brand .name{display:flex;flex-direction:column;line-height:1.15;overflow:hidden}.sb-brand .name b{font-size:13.5px;font-weight:620;color:#fff;white-space:nowrap}.sb-brand .name span{font-size:11px;color:var(--sidebar-muted);white-space:nowrap}.sb-nav{flex:1;padding:8px;display:flex;flex-direction:column;gap:2px;overflow-y:auto}.sb-section{font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--sidebar-muted);padding:12px 10px 6px;font-weight:600}.collapsed .sb-section{text-align:center;padding:12px 0 6px}.sb-item{display:flex;align-items:center;gap:11px;height:36px;padding:0 10px;border-radius:7px;color:var(--sidebar-text);cursor:pointer;font-size:13.5px;font-weight:500;white-space:nowrap;transition:background .12s,color .12s;border:none;background:transparent;width:100%;text-align:left}.sb-item .ic{flex:none}.sb-item:hover,.sb-item.active{background:var(--sidebar-active-bg);color:var(--sidebar-text-active)}.sb-item .label{flex:1;overflow:hidden}.sb-item .nav-badge{font-size:11px;font-weight:600;background:var(--accent-default);color:#fff;border-radius:999px;padding:1px 7px;min-width:18px;text-align:center}.collapsed .sb-item{justify-content:center;padding:0}.collapsed .sb-item .label,.collapsed .sb-item .nav-badge,.collapsed .sb-brand .name{display:none}.sb-foot{flex:none;padding:8px;border-top:1px solid var(--sidebar-border)}.sb-user{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:8px;cursor:pointer}.sb-user:hover{background:var(--sidebar-active-bg)}.sb-user .avatar{width:30px;height:30px;border-radius:50%;flex:none;background:linear-gradient(135deg,#3b82f6,#6366f1);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.sb-user .who{flex:1;overflow:hidden;line-height:1.2}.sb-user .who b{font-size:13px;color:#fff;font-weight:560;display:block;white-space:nowrap}.sb-user .who span{font-size:11px;color:var(--sidebar-muted);white-space:nowrap}.collapsed .sb-user .who,.collapsed .sb-user .logout-ic{display:none}.sb-user .logout-ic{color:var(--sidebar-muted)}.sb-user .logout-ic:hover{color:#fff}.main{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.topbar{height:56px;flex:none;display:flex;align-items:center;gap:12px;padding:0 24px;border-bottom:1px solid var(--border-default);background:color-mix(in srgb,var(--bg-surface) 80%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.topbar .breadcrumb{display:flex;align-items:center;gap:7px;font-size:14px;color:var(--text-muted);min-width:0}.topbar .breadcrumb .crumb{color:var(--text-secondary);cursor:pointer}.topbar .breadcrumb .crumb:hover{color:var(--text-primary)}.topbar .breadcrumb .current{color:var(--text-primary);font-weight:560;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar .spacer{flex:1}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--text-secondary);cursor:pointer}.icon-btn:hover{background:var(--bg-surface-muted);color:var(--text-primary)}.content{flex:1;overflow-y:auto}.content-in{max-width:1200px;margin:0 auto;padding:24px}.content-in.wide{max-width:1320px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.page-head .ph-left{display:flex;flex-direction:column;gap:4px}.page-head h1{margin:0;font-size:22px;font-weight:640;letter-spacing:-.02em}.page-head .sub{font-size:13.5px;color:var(--text-secondary)}.page-head .ph-actions{display:flex;gap:8px;align-items:center}.row{display:flex;align-items:center;gap:8px}.col{display:flex;flex-direction:column}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-6{gap:24px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mt-5{margin-top:20px}.mt-6{margin-top:24px}.wrap{flex-wrap:wrap}.flex-1{flex:1}.hidden{display:none!important}@media(max-width:1080px){.grid-3{grid-template-columns:1fr 1fr}}@media(max-width:860px){.grid-2,.grid-3{grid-template-columns:1fr}.content-in{padding:16px}}@media(max-width:768px){.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:60;transform:translate(-100%);transition:transform .22s cubic-bezier(.2,.7,.3,1);box-shadow:var(--shadow-lg)}.sidebar.mobile-open{transform:translate(0)}.sb-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;background:#0a0f1980;-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px);animation:fade .15s ease}[data-theme=dark] .sb-backdrop{background:#0009}.topbar{padding:0 12px;gap:8px}.content{-webkit-overflow-scrolling:touch}.content-in,.content-in.wide{max-width:100%;padding:14px}.page-head{gap:12px;margin-bottom:16px}.page-head h1{font-size:19px}.page-head .ph-actions{width:100%}.tabs{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.table-toolbar{gap:8px}.table-toolbar .input-search{width:100%!important}.segmented{flex-wrap:wrap}.drawer{width:100vw;max-width:100vw}.overlay.center{padding:14px}.hide-mobile{display:none!important}}@media(max-width:480px){.topbar .breadcrumb{font-size:13px}.page-head .ph-actions .btn{flex:1}}
