:root{--bg: #0b0f19;--bg-elevated: #0f1420;--surface: #121826;--surface-2: #161d2d;--surface-hover: #1a2234;--border: #1f2937;--border-strong: #2b3648;--text: #e5e7eb;--text-strong: #ffffff;--muted: #94a3b8;--muted-2: #64748b;--primary: #ffffff;--primary-text: #0b0f19;--success: #34d399;--success-bg: rgba(52, 211, 153, .12);--warning: #fbbf24;--warning-bg: rgba(251, 191, 36, .12);--danger: #f87171;--danger-bg: rgba(248, 113, 113, .12);--info: #60a5fa;--info-bg: rgba(96, 165, 250, .12);--radius-sm: 6px;--radius: 10px;--radius-lg: 14px;--shadow: 0 10px 30px rgba(0, 0, 0, .35);--sidebar-w: 248px;--topbar-h: 64px;--font: "Segoe UI", Inter, system-ui, -apple-system, sans-serif;--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100vh}a{color:inherit;text-decoration:none}h1,h2,h3,h4{color:var(--text-strong);margin:0;font-weight:600;letter-spacing:-.01em}h1{font-size:22px}h2{font-size:17px}h3{font-size:15px}p{margin:0}img{max-width:100%;display:block}::selection{background:#fff3}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:38px;padding:0 16px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);font:inherit;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,opacity .15s}.btn:hover:not(:disabled){background:var(--surface-hover);border-color:#3a475d}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--info);outline-offset:2px}.btn-primary{background:var(--primary);color:var(--primary-text);border-color:var(--primary)}.btn-primary:hover:not(:disabled){background:#e5e7eb;border-color:#e5e7eb}.btn-danger{background:transparent;color:var(--danger);border-color:#f8717166}.btn-danger:hover:not(:disabled){background:var(--danger-bg);border-color:var(--danger)}.btn-ghost{background:transparent;border-color:transparent;color:var(--muted)}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text);border-color:transparent}.btn-sm{height:30px;padding:0 10px;font-size:13px}.btn-icon{width:34px;padding:0}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>label,.label{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.field .hint{font-size:12px;color:var(--muted-2)}.req{color:var(--danger);margin-left:2px}.input,.select,.textarea{width:100%;background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);font:inherit;padding:9px 12px;transition:border-color .15s,box-shadow .15s}.input,.select{height:38px}.textarea{resize:vertical;min-height:96px;line-height:1.55}.textarea.code{font-family:var(--mono);font-size:13px;min-height:260px}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:#64748b;box-shadow:0 0 0 3px #94a3b826}.input::placeholder,.textarea::placeholder{color:var(--muted-2)}.has-error .input,.has-error .select,.has-error .textarea,.input.invalid,.select.invalid,.textarea.invalid{border-color:var(--danger)}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.field-error{color:var(--danger);font-size:12px;margin-top:2px}.check{display:inline-flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text);font-size:14px}.check input{width:16px;height:16px;accent-color:var(--success);margin:0}.form-grid{display:grid;gap:18px;grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.span-2{grid-column:span 2}.span-all{grid-column:1 / -1}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border)}.card-header p{color:var(--muted);font-size:13px;margin-top:2px}.card-body{padding:20px}.page-header{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-bottom:24px}.page-header .subtitle{color:var(--muted);margin-top:4px}.page-header .actions{display:flex;gap:10px;flex-wrap:wrap}.breadcrumb{font-size:13px;color:var(--muted);margin-bottom:6px}.breadcrumb a:hover{color:var(--text)}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:14px 16px;border-bottom:1px solid var(--border)}.toolbar .input{max-width:300px}.toolbar .select{width:auto;min-width:170px}.toolbar .spacer{flex:1}.table-wrap{width:100%;overflow-x:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border);vertical-align:middle}.table th{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:var(--bg-elevated);white-space:nowrap}.table tbody tr{transition:background .12s}.table tbody tr:hover{background:var(--surface-hover)}.table tbody tr:last-child td{border-bottom:none}.table tr.clickable{cursor:pointer}.table .num{text-align:right;font-variant-numeric:tabular-nums}.table .actions-cell{text-align:right;white-space:nowrap}.table .actions-cell .btn+.btn{margin-left:6px}.cell-title{color:var(--text-strong);font-weight:500}.cell-sub{color:var(--muted);font-size:12px;margin-top:2px}.thumb{width:52px;height:38px;border-radius:var(--radius-sm);object-fit:cover;background:var(--surface-2);border:1px solid var(--border);flex-shrink:0}.thumb.round{width:38px;height:38px;border-radius:50%}.with-thumb{display:flex;align-items:center;gap:12px}.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:500;background:var(--surface-2);border:1px solid var(--border-strong);color:var(--muted);white-space:nowrap}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge.plain:before{display:none}.badge.success{color:var(--success);background:var(--success-bg);border-color:#34d3994d}.badge.warning{color:var(--warning);background:var(--warning-bg);border-color:#fbbf244d}.badge.danger{color:var(--danger);background:var(--danger-bg);border-color:#f871714d}.badge.info{color:var(--info);background:var(--info-bg);border-color:#60a5fa4d}.empty{padding:48px 20px;text-align:center;color:var(--muted)}.empty strong{display:block;color:var(--text);font-size:15px;margin-bottom:4px}.muted{color:var(--muted)}.mono{font-family:var(--mono);font-size:12px}.spinner{width:18px;height:18px;border:2px solid rgba(148,163,184,.3);border-top-color:var(--text);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}.btn-primary .spinner{border-color:#0b0f1940;border-top-color:var(--primary-text);width:14px;height:14px}@keyframes spin{to{transform:rotate(360deg)}}.loading-block{display:flex;align-items:center;justify-content:center;gap:12px;padding:48px;color:var(--muted)}.form-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;align-items:start}.form-main,.form-side{display:flex;flex-direction:column;gap:20px;min-width:0}.form-side{position:sticky;top:calc(var(--topbar-h) + 20px)}.sticky-actions{display:flex;gap:10px}.sticky-actions .btn{flex:1}.stack{display:flex;flex-direction:column;gap:16px}@media(max-width:1100px){.form-layout{grid-template-columns:1fr}.form-side{position:static}}@media(max-width:720px){.form-grid,.form-grid.cols-3,.form-grid.cols-4{grid-template-columns:1fr}.span-2{grid-column:auto}.toolbar .input,.toolbar .select{max-width:none;width:100%}.card-body{padding:16px}.table th,.table td{padding:10px 12px}}.icon[data-v-e7810b28]{flex-shrink:0;display:inline-block;vertical-align:middle}.toast-host[data-v-f90f32a2]{position:fixed;right:20px;bottom:20px;z-index:1000;display:flex;flex-direction:column;gap:10px;max-width:min(380px,calc(100vw - 32px))}.toast[data-v-f90f32a2]{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;background:var(--surface-2);border:1px solid var(--border-strong);border-left:3px solid var(--info);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--text)}.toast.success[data-v-f90f32a2]{border-left-color:var(--success)}.toast.success[data-v-f90f32a2]>:first-child{color:var(--success)}.toast.error[data-v-f90f32a2]{border-left-color:var(--danger)}.toast.error[data-v-f90f32a2]>:first-child{color:var(--danger)}.toast.info[data-v-f90f32a2]>:first-child{color:var(--info)}.msg[data-v-f90f32a2]{flex:1;line-height:1.4;padding-top:1px}.close[data-v-f90f32a2]{background:none;border:none;color:var(--muted);cursor:pointer;padding:2px}.close[data-v-f90f32a2]:hover{color:var(--text)}.toast-enter-active[data-v-f90f32a2],.toast-leave-active[data-v-f90f32a2]{transition:all .2s ease}.toast-enter-from[data-v-f90f32a2],.toast-leave-to[data-v-f90f32a2]{opacity:0;transform:translateY(8px)}@media(max-width:600px){.toast-host[data-v-f90f32a2]{left:16px;right:16px;bottom:16px;max-width:none}}.overlay[data-v-bbdc5fae]{position:fixed;top:0;right:0;bottom:0;left:0;background:#03060cb3;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;z-index:900;padding:16px}.dialog[data-v-bbdc5fae]{width:100%;max-width:420px;padding:24px;box-shadow:var(--shadow)}.dialog p[data-v-bbdc5fae]{margin-top:8px;line-height:1.55}.buttons[data-v-bbdc5fae]{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.btn-danger.solid[data-v-bbdc5fae]{background:#dc2626;border-color:#dc2626;color:#fff}.btn-danger.solid[data-v-bbdc5fae]:hover{background:#b91c1c;border-color:#b91c1c}.fade-enter-active[data-v-bbdc5fae],.fade-leave-active[data-v-bbdc5fae]{transition:opacity .15s}.fade-enter-from[data-v-bbdc5fae],.fade-leave-to[data-v-bbdc5fae]{opacity:0}.shell[data-v-9c5f5158]{min-height:100vh}.sidebar[data-v-9c5f5158]{position:fixed;inset:0 auto 0 0;width:var(--sidebar-w);background:var(--bg-elevated);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:50;transition:transform .2s ease}.brand[data-v-9c5f5158]{height:var(--topbar-h);display:flex;align-items:center;gap:10px;padding:0 20px;border-bottom:1px solid var(--border)}.logo[data-v-9c5f5158]{height:28px;width:auto}.brand-tag[data-v-9c5f5158]{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);border:1px solid var(--border-strong);border-radius:4px;padding:2px 6px}.nav[data-v-9c5f5158]{flex:1;padding:14px 12px;display:flex;flex-direction:column;gap:2px;overflow-y:auto}.nav-item[data-v-9c5f5158]{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-sm);color:var(--muted);font-weight:500;transition:background .12s,color .12s}.nav-item[data-v-9c5f5158]:hover{background:var(--surface);color:var(--text)}.nav-item.active[data-v-9c5f5158]{background:var(--surface-2);color:var(--text-strong);box-shadow:inset 2px 0 0 var(--primary)}.nav-label[data-v-9c5f5158]{flex:1}.nav-badge[data-v-9c5f5158]{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--success);color:#052e1f;font-size:11px;font-weight:700;display:grid;place-items:center}.sidebar-foot[data-v-9c5f5158]{padding:16px 20px;border-top:1px solid var(--border);font-size:12px}.main[data-v-9c5f5158]{margin-left:var(--sidebar-w);min-height:100vh;display:flex;flex-direction:column}.topbar[data-v-9c5f5158]{position:sticky;top:0;z-index:40;height:var(--topbar-h);display:flex;align-items:center;gap:12px;padding:0 28px;background:#0b0f19d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.menu-btn[data-v-9c5f5158]{display:none}.topbar-title[data-v-9c5f5158]{flex:1;font-weight:600;color:var(--text-strong)}.user[data-v-9c5f5158]{display:flex;align-items:center;gap:12px}.avatar[data-v-9c5f5158]{width:34px;height:34px;border-radius:50%;background:var(--surface-2);border:1px solid var(--border-strong);display:grid;place-items:center;font-size:12px;font-weight:700;color:var(--text-strong)}.user-name[data-v-9c5f5158]{font-weight:600;font-size:13px;color:var(--text-strong);line-height:1.2}.user-email[data-v-9c5f5158]{font-size:12px;color:var(--muted)}.content[data-v-9c5f5158]{flex:1;padding:28px;width:100%;max-width:1440px}.backdrop[data-v-9c5f5158]{display:none}@media(max-width:960px){.sidebar[data-v-9c5f5158]{transform:translate(-100%);box-shadow:var(--shadow)}.sidebar-open .sidebar[data-v-9c5f5158]{transform:translate(0)}.sidebar-open .backdrop[data-v-9c5f5158]{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:45}.main[data-v-9c5f5158]{margin-left:0}.menu-btn[data-v-9c5f5158]{display:inline-flex}.topbar[data-v-9c5f5158]{padding:0 16px}.content[data-v-9c5f5158]{padding:20px 16px}}@media(max-width:600px){.user-meta[data-v-9c5f5158],.logout-label[data-v-9c5f5158]{display:none}}
