@charset "UTF-8";.notification-host[data-v-04774c94]{position:fixed;top:0;right:0;z-index:var(--z-toast, 800);pointer-events:none}.notification-enter-from[data-v-04774c94]{opacity:0;transform:translate(100%)}.notification-leave-to[data-v-04774c94]{opacity:0;transform:translate(20%)}.notification-enter-active[data-v-04774c94],.notification-leave-active[data-v-04774c94]{transition:opacity .25s ease,transform .25s ease}.notif-icon-shell[data-v-04774c94]{width:28px;height:28px;flex:0 0 28px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px}.notification.is-success .notif-icon-shell[data-v-04774c94]{background:rgba(18,183,106,.12);color:#0d9f5b}.notification.is-warning .notif-icon-shell[data-v-04774c94]{background:rgba(245,158,11,.14);color:#c67a07}.notification.is-info .notif-icon-shell[data-v-04774c94]{background:rgba(15,23,42,.08);color:#475467}.notification.is-accent .notif-icon-shell[data-v-04774c94]{background:rgba(22,119,255,.12);color:#0958d9}.notif-icon[data-v-04774c94]{display:block}.notif-msg[data-v-04774c94]{color:#0f172a;font-size:13px;font-weight:700;line-height:1.45;letter-spacing:.01em}@media (prefers-reduced-motion: reduce){.notification-enter-active[data-v-04774c94],.notification-leave-active[data-v-04774c94]{transition:none!important}}.topbar-city[data-v-83851a0a]{display:inline-flex;align-items:center;gap:6px;color:var(--text-sub)}.topbar-city .form-select[data-v-83851a0a]{width:128px;min-width:0}.topbar-popover[data-v-83851a0a]{position:relative}.topbar-icon-btn[data-v-83851a0a]{position:relative;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:9px;background:var(--card-bg);color:var(--text-mid);cursor:pointer}.topbar-icon-btn[data-v-83851a0a]:hover{border-color:var(--primary-light);color:var(--primary)}.topbar-icon-btn[data-v-83851a0a]:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.topbar-icon-btn.has-unread[data-v-83851a0a]{border-color:var(--primary-light);color:var(--primary)}.topbar-icon-dot[data-v-83851a0a]{position:absolute;top:-6px;right:-6px;min-width:17px;height:17px;padding:0 4px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--danger);color:#fff;font-size:10px;font-weight:700;font-variant-numeric:tabular-nums}.topbar-account[data-v-83851a0a]{height:34px;padding:0 10px;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border);border-radius:9px;background:var(--card-bg);color:var(--text-main);font-family:inherit;font-size:13px;cursor:pointer}.topbar-account[data-v-83851a0a]:hover{border-color:var(--primary-light);color:var(--primary)}.topbar-account[data-v-83851a0a]:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.topbar-panel[data-v-83851a0a]{position:absolute;top:calc(100% + 8px);right:0;z-index:var(--z-dropdown, 200);min-width:200px;padding:8px;border:1px solid var(--border);border-radius:12px;background:var(--card-bg);box-shadow:var(--shadow-popover)}.topbar-panel.is-wide[data-v-83851a0a]{width:min(360px,calc(100vw - 40px))}.topbar-panel-head[data-v-83851a0a]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 8px 8px;border-bottom:1px solid var(--hair);color:var(--text-main);font-size:13px}.topbar-panel-list[data-v-83851a0a]{max-height:320px;overflow-y:auto}.topbar-panel-item[data-v-83851a0a]{width:100%;display:grid;grid-template-columns:auto 1fr;align-items:start;gap:4px 10px;padding:10px 8px;border:0;border-radius:9px;background:transparent;font-family:inherit;text-align:left;cursor:pointer}.topbar-panel-item[data-v-83851a0a]:hover{background:var(--tint)}.topbar-panel-item.is-unread[data-v-83851a0a]{background:var(--bg-subtle-blue)}.topbar-panel-copy[data-v-83851a0a]{min-width:0;display:block}.topbar-panel-copy strong[data-v-83851a0a]{display:block;color:var(--text-main);font-size:13px;font-weight:600}.topbar-panel-copy small[data-v-83851a0a]{display:block;margin-top:2px;color:var(--text-sub);font-size:12px;line-height:1.5}.topbar-panel-item time[data-v-83851a0a]{grid-column:2;color:var(--text-sub);font-size:11px;font-variant-numeric:tabular-nums}.topbar-panel-empty[data-v-83851a0a]{padding:22px 8px;color:var(--text-sub);font-size:13px;text-align:center}.topbar-panel-meta[data-v-83851a0a]{padding:6px 10px 10px;border-bottom:1px solid var(--hair)}.topbar-panel-meta strong[data-v-83851a0a]{display:block;color:var(--text-main);font-size:13px}.topbar-panel-meta small[data-v-83851a0a]{display:block;margin-top:2px;color:var(--text-sub);font-size:12px}.topbar-panel-action[data-v-83851a0a]{width:100%;margin-top:6px;padding:9px 10px;display:flex;align-items:center;gap:8px;border:0;border-radius:9px;background:transparent;color:var(--text-main);font-family:inherit;font-size:13px;text-align:left;cursor:pointer}.topbar-panel-action[data-v-83851a0a]:hover{background:var(--tint);color:var(--danger)}:root{--color-bg: #f5f5f5;--color-bg-subtle: #fafafa;--color-surface: #ffffff;--color-surface-hover: #f4f6fa;--color-surface-strong: #ffffff;--sidebar-width: 220px;--sidebar-collapsed-width: 56px;--sidebar-bg: #ffffff;--sidebar-border: #e5e6eb;--sidebar-icon: #595959;--sidebar-icon-active: #1677ff;--sidebar-hover-bg: #f4f6fa;--sidebar-active-bg: #e6f4ff;--sidebar-divider: #f0f1f3;--sidebar-section-title: #8c8c8c;--color-text-primary: #1f1f1f;--color-text-secondary: #595959;--color-text-tertiary: #8c8c8c;--color-text-quaternary: #bfbfbf;--color-brand: #1677ff;--color-brand-hover: #4096ff;--color-brand-active: #0958d9;--color-brand-light: #e6f4ff;--color-brand-soft: #f0f7ff;--color-brand-shadow: rgba(22, 119, 255, .18);--color-success: #52c41a;--color-success-light: #f6ffed;--color-warning: #faad14;--color-warning-light: #fffbe6;--color-danger: #ff4d4f;--color-danger-light: #fff1f0;--color-info: #1677ff;--color-info-light: #e6f4ff;--color-border: #e5e6eb;--color-border-subtle: #f0f1f3;--color-border-strong: #d9d9d9;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 2px 8px rgba(0, 0, 0, .06);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .08);--shadow-elevated: 0 8px 24px rgba(0, 0, 0, .12);--shadow-sidebar: 6px 0 20px rgba(31, 45, 61, .02);--font-family: Inter, -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;--font-display: Inter, -apple-system, BlinkMacSystemFont, "PingFang SC", "SF Pro Display", "Microsoft YaHei", sans-serif;--font-mono: "SF Mono", Menlo, Consolas, monospace;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-pill: 9999px;--input-bg: #ffffff;--input-border: #d9d9d9;--input-border-hover: #4096ff;--input-border-focus: #1677ff;--input-radius: 6px;--input-focus-shadow: 0 0 0 2px rgba(22, 119, 255, .12);--btn-radius: 7px;--btn-primary-bg: #1677ff;--btn-primary-hover: #4096ff;--btn-primary-shadow: 0 6px 14px rgba(22, 119, 255, .18);--table-header-bg: #f8faff;--table-header-fg: #647084;--table-row-hover: #f0f5ff;--table-border: #e4ebf3;--topbar-height: 56px;--topbar-bg: #ffffff;--topbar-border: #e5e6eb;--card-bg: #ffffff;--card-radius: 8px;--card-padding: 20px;--scrollbar-track: transparent;--scrollbar-thumb: #d9d9d9;--overlay-bg: rgba(0, 0, 0, .45);--chip-bg: #f0f0f0;--chip-bg-hover: #e8e8e8;--chip-text: #595959;--chip-radius: 4px;--tag-radius: 4px;--dot-success: #52c41a;--dot-warning: #faad14;--dot-danger: #ff4d4f;--dot-info: #1677ff;--motion-feedback: .14s;--motion-state: .2s;--loading-track: rgba(22, 119, 255, .16);--loading-accent: #1677ff;--z-dropdown: 200;--z-sticky: 300;--z-modal-backdrop: 500;--z-modal: 600;--z-progress: 700;--z-toast: 800;--z-tooltip: 900}:root{--bg: var(--color-bg);--bg-soft: var(--color-bg-subtle);--card: var(--color-surface);--card-solid: var(--color-surface);--card-bg: var(--color-surface);--line: var(--color-border);--border: var(--color-border);--hair: var(--color-border-subtle);--ink: var(--color-text-primary);--muted: var(--color-text-secondary);--primary: var(--color-brand);--primary-light: var(--color-brand-hover);--primary-dark: var(--color-brand-active);--primary-soft: var(--color-brand-light);--shadow-soft: 0 1px 2px rgba(15, 23, 42, .04);--shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 12px 24px rgba(15, 23, 42, .04);--shadow-hover: 0 18px 40px rgba(15, 23, 42, .08);--shadow-card: var(--shadow-md);--shadow-popover: 0 10px 28px rgba(15, 23, 42, .1);--radius: var(--radius-lg);--control-h: 36px;--control-h-lg: 40px;--fs-caption: 12px;--fs-body-sm: 13px;--fs-body: 14px;--fs-title-sm: 15px;--fs-title: 18px;--fs-title-lg: 22px;--fs-display: 30px;--warning: var(--color-warning);--danger: var(--color-danger);--info: var(--color-info);--green: var(--color-success);--badge-ok-bg: #e8f5ee;--badge-ok-ink: #15803d;--badge-warn-bg: #fef3c7;--badge-warn-ink: #92400e;--badge-err-bg: #fde8e8;--badge-err-ink: #d3393b;--badge-mute-bg: #e9ebef;--badge-mute-ink: #5d636b;--badge-info-bg: #e6f4ff;--badge-info-ink: #0958d9;--link: var(--color-brand-active);--link-hover: var(--color-brand);--bg-subtle-blue: #f7faff;--border-soft: #e4ebf3;--text-main: var(--color-text-primary);--text-mid: var(--color-text-secondary);--text-sub: var(--color-text-tertiary);--tint: var(--color-surface-hover);--font-sans: var(--font-family)}*{margin:0;padding:0;box-sizing:border-box}html,body,#app{height:100%;overflow:hidden}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--bg);color:var(--ink);font-size:14px;font-feature-settings:"tnum";-webkit-font-smoothing:antialiased;letter-spacing:.005em}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:10px}::selection{background:var(--primary);color:#fff}a{color:inherit;text-decoration:none}button{font-family:inherit}button,input,select,textarea{transition:border-color .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease}:where(button,input,select,textarea,a,[tabindex]):focus-visible{outline:none;box-shadow:0 0 0 3px #1677ff29}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.link{color:var(--link);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.link:hover{color:var(--link-hover)}.app-shell{display:flex;width:100%;height:100dvh;min-width:0;overflow:hidden;overscroll-behavior:none}.sidebar{width:248px;height:100dvh;display:flex;flex-direction:column;flex-shrink:0;background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(248,250,253,.98));border-right:1px solid var(--border-soft);box-shadow:inset -1px 0 #94a3b80f;overflow:hidden;overscroll-behavior:contain;transition:width .2s ease}.sidebar.collapsed{width:68px}.sidebar.collapsed .brand-text,.sidebar.collapsed .nav-section,.sidebar.collapsed .nav-item span:not(.nav-icon),.sidebar.collapsed .nav-badge,.sidebar.collapsed .sidebar-footer{display:none}.sidebar.collapsed .nav-item{justify-content:center;margin:3px 8px;padding:10px 0;gap:0}.sidebar.collapsed .nav-item .nav-icon{width:auto}.sidebar.collapsed .sidebar-logo{padding:18px 12px 12px;justify-content:center}.sidebar-logo{display:flex;align-items:center;gap:12px;flex:0 0 auto;padding:20px 18px 18px;border-bottom:1px solid var(--border-soft)}.sidebar-logo .icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;border-radius:12px;background:linear-gradient(180deg,#2f8bff,var(--primary));box-shadow:0 10px 24px #1677ff33;color:#fff;font-size:16px;font-weight:700;overflow:hidden}.sidebar-logo .icon .brand-logo-img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}.sidebar-logo .icon.has-logo{background:#fff;border:1px solid var(--line);color:transparent;box-shadow:none}.sidebar-logo .brand{min-width:0;color:var(--ink);font-size:15px;font-weight:700;letter-spacing:-.01em}.sidebar-logo .brand span{display:block;margin-top:4px;color:#7f8da1;font-size:11px;font-weight:400}.sidebar-logo .brand .brand-name{display:block;color:inherit;font-size:inherit;font-weight:inherit;white-space:nowrap}.sidebar-toggle{margin-left:auto;width:28px;height:28px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;border:1px solid #e5ebf5;border-radius:9px;background:rgba(246,248,251,.96);color:var(--text-sub);font-size:13px;cursor:pointer}.sidebar-toggle:hover{background:#edf2f9;color:var(--primary)}.sidebar-nav{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding-bottom:12px;overscroll-behavior:contain}.nav-section{padding:18px 18px 8px;color:#8c98aa;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.nav-item{display:flex;align-items:center;gap:10px;width:calc(100% - 20px);margin:3px 10px;padding:9px 12px;border:1px solid transparent;border-radius:11px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;color:#5a6678;font-size:13px;text-align:left;cursor:pointer;transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease,color .18s ease}.nav-item:hover{background:rgba(255,255,255,.82);border-color:#d6dfebf5;color:var(--text-main)}.nav-item.active{background:#ffffff;border-color:#d7e2f0;box-shadow:0 8px 20px #0f172a0d;color:var(--text-main);font-weight:600}.nav-item:focus-visible{outline:2px solid var(--primary);outline-offset:-1px}.nav-item .nav-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0;border-radius:8px;color:var(--text-sub)}.nav-item:hover .nav-icon{color:var(--text-main)}.nav-item.active .nav-icon{background:rgba(22,119,255,.1);color:var(--primary)}.nav-item .nav-icon svg{width:16px;height:16px;stroke:currentColor;fill:none}.nav-badge{margin-left:auto;padding:1px 6px;border-radius:999px;background:#0f172a;color:#fff;font-size:10px;font-variant-numeric:tabular-nums}.sidebar-footer{flex:0 0 auto;margin-top:auto;padding:14px;border-top:1px solid var(--border-soft);background:rgba(255,255,255,.72)}.user-info{display:flex;align-items:center;gap:10px;cursor:pointer}.user-avatar{width:32px;height:32px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--primary);color:#fff;font-size:13px;font-weight:700}.user-name{color:var(--ink);font-size:13px;font-weight:600}.user-role{color:var(--text-sub);font-size:11px}.main{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.topbar{height:68px;flex-shrink:0;min-width:0;display:flex;align-items:center;gap:14px;padding:0 24px;background:rgba(252,253,255,.92);border-bottom:1px solid var(--border-soft);backdrop-filter:blur(10px) saturate(112%);-webkit-backdrop-filter:blur(10px) saturate(112%)}.topbar-meta{display:flex;flex-direction:column;gap:3px;min-width:0}.topbar-kicker{color:#8a97aa;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.topbar-heading{display:flex;align-items:center;gap:10px;min-width:0;flex-wrap:wrap}.topbar-title{color:var(--ink);font-size:20px;font-weight:730;letter-spacing:-.02em}.topbar-heading-divider{width:4px;height:4px;border-radius:999px;background:#c8d1de;flex-shrink:0}.topbar-heading-sub,.topbar-sub{min-width:0;color:#758295;font-size:13px;line-height:1.45;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-role-badge{display:inline-flex;align-items:center;height:24px;padding:0 9px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:11px;font-weight:700;white-space:nowrap}.topbar-date{color:var(--muted);font-size:12px}.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.content{flex:1 1 auto;min-width:0;min-height:0;overflow-y:auto;overflow-x:hidden;padding:18px 24px 24px;overscroll-behavior:contain;background:radial-gradient(circle at top left,rgba(22,119,255,.028),transparent 24%),linear-gradient(180deg,#f6f8fb 0%,#f4f7fa 100%)}.btn{height:34px;min-width:88px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;border-radius:9px;background:transparent;font-family:inherit;font-size:13px;font-weight:600;line-height:1;white-space:nowrap;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,opacity .2s}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 6px 14px #1677ff29}.btn-primary:hover{background:var(--primary-light);border-color:var(--primary-light);box-shadow:0 8px 16px #1677ff2e}.btn-primary:active{background:var(--primary-dark);border-color:var(--primary-dark)}.btn-secondary{background:#fff;border-color:#d7e0ec;color:var(--text-main)}.btn-secondary:hover{background:#f8fafc;border-color:#c8d3e2}.btn-success{background:var(--green);border-color:var(--green);color:#fff}.btn-success:hover{filter:brightness(.92)}.btn-warning{background:#fff7ed;border-color:#f0d6b8;color:#9a4e00}.btn-warning:hover{background:#ffefdc}.btn-danger{background:#fff1f1;border-color:#f0bcbc;color:#b42323}.btn-danger:hover{background:#ffe4e4}.btn-sm{height:30px;min-width:auto;padding:0 12px;font-size:12px;border-radius:9px}.btn:disabled{opacity:.5;box-shadow:none;cursor:not-allowed}.btn-primary:disabled{opacity:1;background:#f0f1f3;border-color:#e5e6eb;color:var(--text-sub);box-shadow:none}.form-group{margin-bottom:14px}.form-label{display:block;margin-bottom:5px;color:var(--text-main);font-size:13px;font-weight:600}.form-help{margin-top:6px;color:var(--text-sub);font-size:12px}.form-error{margin-top:6px;color:var(--danger);font-size:12px;line-height:1.4}.required{margin-right:3px;color:var(--danger)}.form-input,.form-select,.form-textarea{width:100%;border:1px solid #d7e0ec;border-radius:10px;background:#fff;color:var(--text-main);font-family:inherit;font-size:13.5px;line-height:1.45;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.form-input,.form-select{height:36px;min-height:36px;padding:0 12px}.form-select{padding-right:34px}.form-textarea{min-height:108px;padding:11px 12px;resize:vertical;font-size:13px;line-height:1.65}.form-input:hover,.form-select:hover,.form-textarea:hover{border-color:#c7d4e4}.form-input::placeholder,.form-textarea::placeholder{color:#97a3b6}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #1677ff24}.form-input:disabled,.form-select:disabled,.form-textarea:disabled{background-color:#f5f7fa;color:var(--text-sub);cursor:not-allowed}.form-input:-webkit-autofill,.form-input:-webkit-autofill:hover,.form-input:-webkit-autofill:focus{-webkit-text-fill-color:var(--text-main);box-shadow:0 0 0 1000px #fff inset;transition:background-color 9999s ease-out 0s}.form-input::-ms-reveal,.form-input::-ms-clear{display:none}select.form-select{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='%2364748b' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:calc(100% - 12px) center;background-size:12px 12px;background-repeat:no-repeat}.form-input.is-error,.form-select.is-error,.form-textarea.is-error,.form-group.has-error .form-input,.form-group.has-error .form-select,.form-group.has-error .form-textarea{border-color:var(--danger)}.form-input.is-error:focus,.form-select.is-error:focus,.form-textarea.is-error:focus,.form-group.has-error .form-input:focus,.form-group.has-error .form-select:focus,.form-group.has-error .form-textarea:focus{box-shadow:0 0 0 3px #ff4d4f29}.input-affix{position:relative;width:100%;min-width:0}.input-affix-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#8a97aa;pointer-events:none;transition:color .18s ease}.input-affix .form-input{padding-left:36px}.input-affix:focus-within .input-affix-icon{color:var(--primary)}.form-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.form-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.form-hint-card{margin-top:8px;padding:10px 14px;border:1px solid var(--primary-light);border-radius:var(--radius-md);background:var(--primary-soft);color:var(--text-main);font-size:13px;line-height:1.6}.form-hint-card code{padding:1px 6px;border-radius:4px;background:rgba(0,0,0,.06);font-family:var(--font-mono);font-size:12px}.admin-filter{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px}.admin-filter>.form-input,.admin-filter>.input-affix{flex:1 1 260px;min-width:180px}.admin-filter>.form-select{flex:0 1 180px;min-width:150px}.admin-filter>.btn{flex:0 0 auto}.admin-filter .form-input,.admin-filter .form-select{height:36px;border-color:#dfe7f1;background-color:#fbfdff;font-size:13px}.admin-filter .input-affix .form-input{padding-left:36px}.admin-filter .btn{height:36px;padding-inline:14px}.admin-toolbar-card .admin-filter{margin-bottom:0}.filter-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.filter-label{min-width:60px;color:var(--text-sub);font-size:12px;font-weight:600}.filter-chip{display:inline-flex;align-items:center;height:28px;padding:0 12px;border:1px solid var(--line);border-radius:6px;background:var(--card-bg);color:var(--text-sub);font-family:inherit;font-size:12px;font-weight:500;white-space:nowrap;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.filter-chip:hover:not(.active){color:var(--primary);border-color:#c7dafd;background:#f5f8ff}.filter-chip.active{color:var(--primary);background:rgba(22,119,255,.1);border-color:#1677ff4d;font-weight:700}.filter-chip.active:before{content:"✓";margin-right:4px;font-size:11px}.filter-date{width:140px;height:28px;padding:0 10px;font-size:12px}.admin-view{display:grid;gap:14px}.page-stack{display:flex;flex-direction:column;gap:16px}.admin-page-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.admin-page-head h2{margin:0;color:var(--ink);font-size:20px;font-weight:800;line-height:1.2}.admin-page-head p{margin-top:6px;color:var(--text-sub);font-size:12px}.eyebrow{display:inline-flex;align-items:center;gap:6px;margin-bottom:4px;color:var(--text-sub);font-size:11px;font-weight:600;letter-spacing:.4px}.eyebrow .num{color:var(--primary);font-weight:700}.eyebrow .dot{width:3px;height:3px;border-radius:50%;background:var(--border)}.admin-overview-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;min-height:64px;padding:9px 12px;border:1px solid #e3e9f1;border-radius:10px;background:#fff;box-shadow:0 1px 2px #0f172a0d}.admin-overview-copy{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.admin-overview-head{display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-width:0}.admin-overview-head h2{margin:0;max-width:52ch;color:var(--ink);font-size:14px;line-height:1.25}.admin-section-chip{display:inline-flex;align-items:center;justify-content:center;width:fit-content;height:22px;padding:0 8px;border:1px solid #d9e7ff;border-radius:999px;background:#f6f9ff;color:#255dcf;font-size:10.5px;font-weight:700;white-space:nowrap}.admin-overview-badge{display:inline-flex;align-items:center;height:22px;padding:0 8px;border:1px solid #dde6f2;border-radius:999px;background:#f8fbff;color:#52637a;font-size:10.5px;font-weight:700;white-space:nowrap}.admin-overview-desc{flex:1 1 260px;max-width:74ch;margin:0;color:#66758a;font-size:12px;line-height:1.35}.admin-overview-actions,.admin-overview-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.admin-overview-copy>.admin-overview-actions{margin-left:auto;justify-content:flex-end}.admin-overview-meta{color:#7b889a;font-size:12px;white-space:nowrap}.admin-overview-actions .btn{height:32px;padding-inline:12px;border-radius:8px}.admin-summary-strip{display:flex;align-items:stretch;justify-self:end;min-width:0;max-width:min(720px,48vw);border:1px solid #e3e9f1;border-radius:8px;background:#fbfdff;overflow:hidden}.admin-summary-card{display:grid;gap:2px;min-width:92px;min-height:34px;padding:7px 10px;border-right:1px solid #e8eef6;font-variant-numeric:tabular-nums}.admin-summary-card:last-child{border-right:0}.admin-summary-label{color:#7b8797;font-size:10.5px;font-weight:700;white-space:nowrap}.admin-summary-value{color:var(--ink);font-size:16px;line-height:1;font-weight:780;font-variant-numeric:tabular-nums;white-space:nowrap}.admin-summary-value.is-primary{color:var(--primary)}.admin-summary-value.is-success{color:#2f8f46}.admin-summary-value.is-warning{color:#cf8800}.admin-summary-value.is-danger{color:#d43d44}.admin-summary-note{color:#68768a;font-size:10.5px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-toolbar-card{position:relative;z-index:1;display:grid;gap:12px;padding:14px 16px 12px;border:1px solid #e5ebf3;border-radius:18px 18px 16px 16px;background:#fff;box-shadow:0 10px 24px #0f172a09}.admin-toolbar-head,.admin-table-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}.admin-table-head{padding-bottom:10px;border-bottom:1px solid #edf2f7}.admin-toolbar-copy,.admin-table-head-copy{display:grid;gap:4px}.admin-toolbar-copy h3,.admin-table-head-copy h3{margin:0;color:var(--ink);font-size:16px;line-height:1.2}.admin-toolbar-copy p,.admin-table-head-copy p,.admin-table-caption{margin:0;color:#738095;font-size:12px;line-height:1.5}.admin-table-card{display:grid;gap:10px;padding:12px 16px 14px;border:1px solid #e5ebf3;border-radius:14px;background:#fff;box-shadow:0 8px 18px #0f172a06}.admin-view>.admin-toolbar-card+.admin-table-card{margin-top:-8px;padding-top:14px;border-top-left-radius:0;border-top-right-radius:0}.admin-count-list{display:flex;align-items:center;justify-self:end;flex-wrap:nowrap;min-width:0;max-width:52vw;border:1px solid #e3e9f1;border-radius:8px;background:#fbfdff;overflow:hidden}.admin-count-item{display:flex;justify-content:space-between;align-items:center;gap:7px;min-height:32px;padding:0 10px;border-right:1px solid #e8eef6;white-space:nowrap}.admin-count-item:last-child{border-right:0}.admin-count-item span{color:#728093;font-size:11px;font-weight:600}.admin-count-item strong{color:var(--ink);font-size:15px;font-weight:800;font-variant-numeric:tabular-nums}.admin-soft-note{display:inline-flex;align-items:center;gap:8px;width:fit-content;padding:9px 12px;border:1px solid var(--border-soft);border-radius:12px;background:#fbfdff;color:#6e7b8f;font-size:12px;font-weight:600}.admin-dual-panel{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(360px,.8fr);gap:16px}.admin-panel-grid{display:grid;gap:16px}.admin-panel-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-panel-grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-list-stack{display:grid;gap:12px}.admin-list-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px;border:1px solid #e3e9f1;border-radius:14px;background:#fbfdff}.admin-list-index{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:999px;background:var(--primary-soft);color:#255dcf;font-size:12px;font-weight:800;font-variant-numeric:tabular-nums}.admin-list-copy{min-width:0}.admin-list-copy strong{display:block;color:var(--ink);font-size:14px}.admin-list-copy p{margin:6px 0 0;color:#68768a;font-size:13px;line-height:1.55;text-wrap:pretty}.card{padding:18px;border:1px solid #e2e9f2;border-radius:16px;background:var(--card-bg);box-shadow:var(--shadow)}.card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #edf2f7}.card-title{display:inline-flex;align-items:center;gap:6px;color:var(--ink);font-size:15px;font-weight:700}.card-title .title-icon{color:var(--primary);stroke:currentColor;fill:none;flex-shrink:0}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.stat-card{position:relative;overflow:hidden;padding:18px;border:1px solid #e2e9f2;border-radius:16px;background:linear-gradient(180deg,#ffffff,#fbfdff);box-shadow:var(--shadow)}.stat-card:before{content:"";position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,rgba(255,255,255,.95),rgba(22,119,255,.18),rgba(255,255,255,.95))}.stat-icon{width:42px;height:42px;margin-bottom:14px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:var(--primary-soft);color:var(--primary);font-size:18px}.stat-icon svg{stroke:currentColor;fill:none}.stat-icon-primary{background:var(--primary-soft);color:var(--primary)}.stat-icon-info{background:var(--color-info-light);color:var(--info)}.stat-icon-success{background:var(--color-success-light);color:var(--green)}.stat-icon-warning{background:var(--color-warning-light);color:var(--warning)}.stat-icon-danger{background:var(--color-danger-light);color:var(--danger)}.stat-value{color:var(--ink);font-size:28px;font-weight:800;line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.stat-label{margin-top:10px;color:var(--text-sub);font-size:12px}.stat-change{margin-top:9px;color:var(--text-mid);font-size:12px;font-weight:600}.stat-change.up{color:var(--green)}.stat-change.down{color:var(--danger)}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric-grid--cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-card{display:flex;flex-direction:column;gap:6px;min-width:0;padding:14px 16px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm);transition:box-shadow .2s ease,border-color .2s ease}.metric-card:hover{box-shadow:var(--shadow-md)}.metric-card__label{color:var(--color-text-tertiary);font-size:12px;font-weight:500;letter-spacing:.04em}.metric-card__value{color:var(--color-text-primary);font-size:26px;font-weight:600;line-height:1.1;letter-spacing:-.02em;font-feature-settings:"tnum"}.metric-card__hint{color:var(--color-text-tertiary);font-size:12px;line-height:1.5}.metric-card--accent{background:var(--color-bg-subtle);border-color:var(--color-border-strong)}.metric-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:10px;margin-bottom:16px}.metric-tile{padding:12px;border:1px solid #e2e9f2;border-radius:16px;background:var(--card-bg);box-shadow:var(--shadow)}.metric-tile strong{display:block;color:var(--ink);font-size:18px;line-height:1;font-variant-numeric:tabular-nums}.metric-tile span{display:block;margin-top:6px;color:var(--text-sub);font-size:11px}.metric-tile em{font-style:normal;color:var(--primary);font-size:11px;font-weight:700}.table-wrap{overflow:auto;border:1px solid var(--border-soft);border-radius:16px;background:#fff}.table-wrap::-webkit-scrollbar{height:10px;width:10px}.table-wrap::-webkit-scrollbar-track{background:transparent}.table-wrap::-webkit-scrollbar-thumb{background:#d7e0eb;border:2px solid transparent;border-radius:999px;background-clip:padding-box}.table-wrap::-webkit-scrollbar-thumb:hover{background:#c5d0dd;background-clip:padding-box}table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;line-height:1.55}th{height:40px;padding:0 14px;text-align:left;background:#f3f7fd;border-bottom:1px solid #d8e1ec;color:#4c5b70;font-size:12px;font-weight:700;white-space:nowrap}td{padding:13px 14px;border-bottom:1px solid var(--table-border);color:#344256;vertical-align:middle}tr:last-child td{border-bottom:0}tr:hover td{background:var(--table-row-hover)}td strong{color:var(--ink);font-weight:700}.table-empty{padding:34px 16px;text-align:center;background:linear-gradient(180deg,#ffffff,#fbfdff);color:#8a96a8;font-size:13px}.table-rich-cell{display:grid;gap:3px;min-width:0}.table-rich-title{margin:0;color:var(--ink);font-size:13px;font-weight:700;line-height:1.45}.table-rich-sub{max-width:68ch;color:#7b8797;font-size:12px;line-height:1.45}.table-rich-cell .badge{justify-self:start}.table-clamp-2,.table-clamp-3{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical}.table-clamp-2{-webkit-line-clamp:2}.table-clamp-3{-webkit-line-clamp:3}.table-inline-meta,.table-chip-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}.table-inline-meta{color:#7b8797;font-size:12px}.table-chip-row .badge,.table-chip-row .table-muted-chip{min-height:22px}.table-muted-chip{display:inline-flex;align-items:center;padding:0 8px;border-radius:999px;background:#f3f6fa;color:#64748b;font-size:11px;font-weight:700;white-space:nowrap}.table-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}td.table-actions{display:table-cell;width:1%;min-width:116px;text-align:left;vertical-align:middle;white-space:nowrap}td.table-actions .action-link+.action-link,td.table-actions .btn+.btn{margin-left:8px}table:has(td.table-actions) th:last-child{text-align:left}th.col-right,td.col-right{text-align:right}td.col-right{font-variant-numeric:tabular-nums}td .status-dot+.badge,td .badge+.badge{margin-left:4px}.table-shell{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);overflow:hidden}.table-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 4px 4px;flex-wrap:wrap}.table-footer__hint{color:var(--color-text-tertiary);font-size:12px}.badge{display:inline-flex;align-items:center;width:max-content;max-width:100%;min-height:22px;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:600;line-height:1.2;white-space:nowrap}.badge-primary,.badge-info{background:var(--badge-info-bg);color:var(--badge-info-ink)}.badge-success{background:var(--badge-ok-bg);color:var(--badge-ok-ink)}.badge-warning{background:var(--badge-warn-bg);color:var(--badge-warn-ink)}.badge-danger{background:var(--badge-err-bg);color:var(--badge-err-ink)}.badge-gray{background:var(--badge-mute-bg);color:var(--badge-mute-ink)}.status-dot{width:7px;height:7px;margin-right:5px;border-radius:50%;background:var(--green);display:inline-block}.status-dot.off{background:var(--danger)}.status-dot.warn{background:var(--warning)}.action-link{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding-inline:10px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--link);font-family:inherit;font-size:12px;font-weight:700;vertical-align:middle;cursor:pointer;transition:border-color .18s ease,background-color .18s ease,color .18s ease}.action-link:hover{border-color:#cdd9e8;background:#f8fbff;color:var(--primary-dark);text-decoration:none}.action-link:disabled,.action-link:disabled:hover{border-color:transparent;background:transparent;color:var(--text-sub);opacity:.55;cursor:not-allowed}.action-link.is-danger{color:#cf3c3c}.action-link.is-danger:hover{border-color:#f0c4c2;background:#fff6f5;color:#b52e2e}.tabs{display:flex;gap:4px;padding:4px;margin-bottom:18px;border:1px solid rgba(210,210,215,.72);border-radius:14px;background:rgba(245,245,247,.82);box-shadow:inset 0 0 0 .5px #ffffffdb}.tab{padding:8px 15px;border:0;border-radius:11px;background:transparent;color:#6e6e73;font-family:inherit;font-size:13px;font-weight:700;cursor:pointer;transition:.2s}.tab.active{color:var(--ink);background:rgba(255,255,255,.96);box-shadow:0 1px 2px #10182814,0 8px 18px -16px #10182842}.tab:hover:not(.active){color:var(--ink);background:rgba(255,255,255,.62)}.pagination-bar{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:12px 4px 2px;color:var(--text-sub);font-size:12px}.pagination-bar .page-info{margin-right:auto}.pagination-bar .page-info strong{color:var(--text-main);font-variant-numeric:tabular-nums}.pagination-bar .page-size{height:30px;min-height:30px;width:auto;padding:0 30px 0 10px;font-size:12px}.page-btn{min-width:30px;height:30px;padding:0 8px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:transparent;color:var(--text-sub);font-family:inherit;font-size:13px;font-variant-numeric:tabular-nums;cursor:pointer;transition:background-color .15s ease,color .15s ease,border-color .15s ease}.page-btn:hover:not(:disabled){border-color:var(--primary-light);color:var(--primary)}.page-btn.active{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:600}.page-btn:disabled{opacity:.45;cursor:not-allowed}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal, 600);display:flex;align-items:center;justify-content:center;padding:20px}.modal-overlay:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(15,23,42,.45)}.modal{position:relative;display:flex;flex-direction:column;width:90%;max-width:640px;max-height:min(88vh,920px);overflow:hidden;border:1px solid #dfe7f1;border-radius:18px;background:#fff;box-shadow:0 32px 90px #0f172a29}.wide-modal,.log-modal{max-width:1180px}.modal-header{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-shrink:0;padding:18px 22px 16px;border-bottom:1px solid #edf1f7}.modal-title{color:#1f2937;font-size:15px;font-weight:700}.modal-close{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border:none;border-radius:9px;background:#f8fbff;color:#738195;cursor:pointer;transition:background-color .18s,color .18s}.modal-close:hover{background:#eef4fb;color:#415168}.modal-body{flex:1;padding:20px 22px 18px;overflow-y:auto;overscroll-behavior:contain}.modal-footer{display:flex;justify-content:flex-end;gap:10px;flex-shrink:0;padding:14px 22px 18px;border-top:1px solid var(--line);background:linear-gradient(180deg,rgba(250,252,255,0),#fbfdff)}.modal .form-grid-2,.modal .form-grid-3{gap:16px}.modal .form-group{margin-bottom:12px}.modal .form-label{margin-bottom:7px;color:#4b5a6e;font-size:12px;font-weight:700}.modal .form-help{margin-top:7px;color:#7c8797}.modal .form-input,.modal .form-select,.modal .form-textarea{border-color:#dfe7f1;background-color:#fbfdff;color:#253244}.modal .form-input,.modal .form-select{height:38px}.modal .form-textarea{min-height:120px}.modal .btn{min-width:88px}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal, 600);display:flex;justify-content:flex-end}.drawer-overlay:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(15,23,42,.45)}.drawer{position:relative;display:flex;flex-direction:column;width:min(560px,100%);height:100%;background:#fff;border-left:1px solid #dfe7f1;box-shadow:-24px 0 70px #0f172a29}.drawer.is-wide{width:min(880px,100%)}.drawer-header{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-shrink:0;padding:18px 22px 16px;border-bottom:1px solid #edf1f7}.drawer-title{color:#1f2937;font-size:15px;font-weight:700}.drawer-body{flex:1 1 auto;min-height:0;padding:20px 22px;overflow-y:auto;overscroll-behavior:contain}.drawer-footer{display:flex;justify-content:flex-end;gap:10px;flex-shrink:0;padding:14px 22px 18px;border-top:1px solid var(--line);background:linear-gradient(180deg,rgba(250,252,255,0),#fbfdff)}.kv-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px}.kv-grid.cols-1{grid-template-columns:minmax(0,1fr)}.kv-item{display:grid;gap:3px;min-width:0;align-content:start}.kv-label{color:var(--text-sub);font-size:12px;font-weight:400;line-height:1.4}.kv-value{color:var(--ink);font-size:14px;font-weight:500;line-height:1.5;word-break:break-word}.kv-value.is-num{font-variant-numeric:tabular-nums}.kv-value.is-empty{color:var(--text-sub);font-weight:400}.kv-value.is-strong{font-size:18px;font-weight:600;line-height:1.3;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.kv-value.is-id{color:var(--text-sub);font-family:var(--font-mono);font-size:12px;font-weight:400;letter-spacing:-.01em;word-break:break-all}.kv-value.is-text{font-weight:400;line-height:1.6}.kv-value.is-strong.is-empty{font-size:14px;font-weight:400;line-height:1.5;letter-spacing:normal}.detail-stack{display:grid;gap:12px;align-content:start}.detail-card{border:1px solid var(--color-border);border-radius:var(--card-radius);background:var(--card-bg)}.detail-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--color-border-subtle)}.detail-card-title{display:flex;align-items:center;gap:7px;color:var(--ink);font-size:13px;font-weight:600;line-height:1.4}.detail-card-title svg{color:var(--text-sub);flex:0 0 auto}.detail-card-note{color:var(--text-sub);font-size:12px}.detail-card-body{padding:16px}.section-title{display:flex;align-items:center;gap:8px;margin:28px 0 14px;padding-top:20px;border-top:1px solid var(--color-border-subtle);color:var(--text-sub);font-size:12px;font-weight:600;letter-spacing:.04em}:where(.drawer-body,.modal-body,.card,form)>.section-title:first-child,.form-alert+.section-title{margin-top:0;padding-top:0;border-top:0}.section-title .section-count{color:var(--text-quaternary, var(--text-sub));font-weight:400}.progress-item{margin-bottom:14px}.progress-label{display:flex;justify-content:space-between;margin-bottom:6px;font-size:12px;font-weight:600}.progress-bar{height:8px;border-radius:4px;background:#f0f1f3;overflow:hidden}.progress-fill{height:100%;border-radius:4px;background:var(--primary)}.progress-fill.success{background:var(--green)}.progress-fill.warning{background:var(--warning)}.progress-fill.danger{background:var(--danger)}.mini-progress{height:5px;margin-top:12px;border-radius:999px;background:#e9edf3;overflow:hidden}.mini-progress span{display:block;height:100%;border-radius:999px;background:var(--primary)}.notification{position:fixed;top:18px;right:18px;z-index:var(--z-toast, 800);display:flex;align-items:center;gap:12px;max-width:320px;padding:12px 14px;border:1px solid rgba(15,23,42,.08);border-radius:14px;background:rgba(255,255,255,.98);color:#111827;box-shadow:0 16px 38px #0f172a1f;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.empty-shell{display:flex;flex-direction:column;align-items:center;gap:8px;padding:28px 16px;text-align:center}.empty-shell strong{color:var(--color-text-primary);font-size:14px;font-weight:600}.empty-shell span{max-width:360px;color:var(--color-text-tertiary);font-size:12px;line-height:1.6}.flex{display:flex}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-4{gap:4px}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.flex-wrap{flex-wrap:wrap}.flex-1{flex:1}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}.mb-16{margin-bottom:16px}.text-sm{font-size:12px}.text-xs{font-size:11px}.font-bold{font-weight:700}.text-primary{color:var(--primary)}.text-success{color:var(--green)}.text-warning{color:var(--warning)}.text-danger{color:var(--danger)}.text-sub{color:var(--text-sub)}.text-num{font-variant-numeric:tabular-nums}.w-full{width:100%}@media (max-width: 1180px){.grid-4,.metric-grid,.admin-panel-grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-overview-hero,.admin-dual-panel{grid-template-columns:1fr}.admin-summary-strip,.admin-count-list{justify-self:start;max-width:100%;overflow-x:auto}}@media (max-width: 860px){.sidebar{width:84px}.sidebar .brand-text,.sidebar .nav-section,.sidebar .nav-item span:not(.nav-icon),.sidebar .nav-badge,.sidebar .sidebar-footer{display:none}.sidebar .nav-item{justify-content:center}.topbar,.content{padding-left:20px;padding-right:20px}.topbar{height:auto;min-height:72px;flex-direction:column;align-items:flex-start;justify-content:center;padding-top:14px;padding-bottom:14px}.topbar-actions{width:100%;margin-left:0;flex-wrap:wrap;justify-content:flex-start}.grid-2,.grid-3,.grid-4,.form-grid-2,.form-grid-3,.metric-grid,.metric-grid--cols-3,.metric-strip,.admin-panel-grid.cols-2,.admin-panel-grid.cols-4,.kv-grid{grid-template-columns:1fr}.admin-list-item{grid-template-columns:auto 1fr}.admin-list-item .btn{grid-column:1/-1;justify-self:flex-start}.drawer,.drawer.is-wide{width:100%}}@media (prefers-reduced-motion: reduce){.nav-item,.btn,.card,.stat-card,.action-link,.filter-chip{transition:none!important}}.tech-spinner[data-v-5b1100d8]{--tech-size: 22px;--tech-color: var(--color-brand, #1677ff);--tech-track: rgba(22, 119, 255, .18);display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:0;color:var(--color-text-secondary, #595959);vertical-align:middle}.tech-spinner.is-sm[data-v-5b1100d8]{--tech-size: 14px;gap:6px}.tech-spinner.is-lg[data-v-5b1100d8]{--tech-size: 36px;gap:10px}.tech-spinner.is-xl[data-v-5b1100d8]{--tech-size: 48px;gap:12px}.tech-spinner.is-muted[data-v-5b1100d8]{--tech-color: var(--color-text-tertiary, #8c8c8c);--tech-track: rgba(89, 89, 89, .16)}.tech-spinner.is-inverse[data-v-5b1100d8]{--tech-color: #fff;--tech-track: rgba(255, 255, 255, .32);color:#fff}.tech-spinner-visual[data-v-5b1100d8]{position:relative;display:inline-grid;place-items:center;width:var(--tech-size);height:var(--tech-size);flex:0 0 var(--tech-size)}.tech-spinner-orbit[data-v-5b1100d8],.tech-spinner-orbit[data-v-5b1100d8]:after{position:absolute;border-radius:50%;content:""}.tech-spinner-orbit[data-v-5b1100d8]{top:0;right:0;bottom:0;left:0;border:1px solid var(--tech-track)}.tech-spinner-orbit[data-v-5b1100d8]:before{position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border:2px solid transparent;border-top-color:var(--tech-color);border-right-color:var(--tech-color);border-radius:50%;content:"";animation:tech-spin-5b1100d8 .82s linear infinite}.tech-spinner-orbit[data-v-5b1100d8]:after{width:max(3px,calc(var(--tech-size) * .14));height:max(3px,calc(var(--tech-size) * .14));top:4%;left:12%;background:var(--tech-color);animation:tech-node-5b1100d8 .82s linear infinite;transform-origin:calc(var(--tech-size) * .38) calc(var(--tech-size) * .38)}.tech-spinner-core[data-v-5b1100d8]{width:calc(var(--tech-size) * .24);height:calc(var(--tech-size) * .24);border:1px solid var(--tech-color);border-radius:2px;animation:tech-core-5b1100d8 1.2s ease-in-out infinite}.tech-spinner-label[data-v-5b1100d8]{min-width:0;font-size:13px;line-height:1.4;color:inherit;text-wrap:pretty}.tech-spinner.is-paused .tech-spinner-orbit[data-v-5b1100d8]:before,.tech-spinner.is-paused .tech-spinner-orbit[data-v-5b1100d8]:after,.tech-spinner.is-paused .tech-spinner-core[data-v-5b1100d8]{animation-play-state:paused}@keyframes tech-spin-5b1100d8{to{transform:rotate(360deg)}}@keyframes tech-node-5b1100d8{to{transform:rotate(360deg)}}@keyframes tech-core-5b1100d8{0%,to{opacity:.45;transform:scale(.72) rotate(0)}50%{opacity:1;transform:scale(1) rotate(90deg)}}@media (prefers-reduced-motion: reduce){.tech-spinner-orbit[data-v-5b1100d8]:before,.tech-spinner-orbit[data-v-5b1100d8]:after,.tech-spinner-core[data-v-5b1100d8]{animation:none}.tech-spinner-core[data-v-5b1100d8]{opacity:.8;transform:none}}.loading-action[data-v-728257df]{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:0;white-space:nowrap}.form-loading[data-v-55f0c25e]{width:min(286px,82vw);display:flex;flex-direction:column;align-items:center;padding:22px 0;color:var(--color-text-primary, #1f1f1f)}.form-loading-mark[data-v-55f0c25e]{position:relative;width:30px;height:30px;display:grid;place-items:center;border:1px solid rgba(22,119,255,.3);border-radius:50%}.form-loading-mark[data-v-55f0c25e]:before{position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border:1px solid transparent;border-top-color:var(--color-brand, #1677ff);border-right-color:var(--color-brand, #1677ff);border-radius:50%;filter:drop-shadow(0 0 5px var(--color-brand-shadow, rgba(22, 119, 255, .18)));animation:form-loading-turn-55f0c25e 1.4s cubic-bezier(.65,0,.35,1) infinite;content:""}.form-loading-mark>i[data-v-55f0c25e]{position:absolute;top:-2px;left:50%;width:4px;height:4px;border-radius:50%;background:var(--color-brand, #1677ff);box-shadow:0 0 8px var(--color-brand, #1677ff);transform:translate(-50%)}.form-loading-progress[data-v-55f0c25e]{position:relative;width:100%;height:1px;margin-top:18px;overflow:hidden;background:var(--color-border, #e5e6eb)}.form-loading-progress span[data-v-55f0c25e]{position:absolute;inset:0 auto 0 0;width:34%;background:linear-gradient(90deg,transparent,var(--color-brand, #1677ff),transparent);filter:drop-shadow(0 0 4px var(--color-brand, #1677ff));animation:form-loading-slide-55f0c25e 1.5s cubic-bezier(.65,0,.35,1) infinite}.form-loading p[data-v-55f0c25e]{margin:14px 0 0;color:var(--color-text-tertiary, #8c8c8c);font-size:13px;letter-spacing:.12em;line-height:1.5}@keyframes form-loading-turn-55f0c25e{0%{opacity:.55;transform:rotate(0)}50%{opacity:1}to{opacity:.55;transform:rotate(360deg)}}@keyframes form-loading-slide-55f0c25e{0%{opacity:0;transform:translate(-110%)}25%{opacity:1}to{opacity:0;transform:translate(300%)}}@media (prefers-reduced-motion: reduce){.form-loading-mark[data-v-55f0c25e]:before,.form-loading-progress span[data-v-55f0c25e]{animation:none}.form-loading-progress span[data-v-55f0c25e]{left:33%;opacity:1}}.loading-state[data-v-3798664b]{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:32px 20px;color:var(--color-text-secondary, #595959)}.loading-state.is-compact[data-v-3798664b]{padding:18px 12px}.loading-state.is-process[data-v-3798664b]{min-height:150px}.loading-state.is-form[data-v-3798664b]{min-height:180px;padding:20px 12px}.loading-state-copy[data-v-3798664b]{display:flex;align-items:center;justify-content:center;gap:12px;text-align:left}.loading-state-copy strong[data-v-3798664b]{display:block;color:var(--color-text-primary, #1f1f1f);font-size:14px;line-height:1.4;font-weight:650}.loading-state-copy p[data-v-3798664b]{margin:3px 0 0;max-width:62ch;color:var(--color-text-secondary, #595959);font-size:12px;line-height:1.55;text-wrap:pretty}.loading-skeleton-cards[data-v-3798664b]{width:min(760px,100%);display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.loading-skeleton-card[data-v-3798664b]{min-width:0;display:flex;flex-direction:column;gap:10px;padding:16px;border:1px solid var(--color-border-subtle, #f0f1f3);border-radius:var(--radius-lg, 8px);background:var(--color-surface, #fff);animation:loading-breathe-3798664b 1.35s ease-in-out infinite}.loading-skeleton-table[data-v-3798664b]{width:100%;display:flex;flex-direction:column;gap:1px;border:1px solid var(--color-border-subtle, #f0f1f3);border-radius:var(--radius-md, 6px);overflow:hidden}.loading-skeleton-row[data-v-3798664b]{display:grid;grid-template-columns:minmax(120px,1.4fr) 2fr 1fr 72px;align-items:center;gap:16px;min-height:48px;padding:0 14px;background:var(--color-surface, #fff);animation:loading-breathe-3798664b 1.35s ease-in-out infinite}.skeleton-line[data-v-3798664b],.skeleton-chip[data-v-3798664b]{display:block;height:9px;max-width:100%;border-radius:4px;background:#e9edf3}.skeleton-line.is-title[data-v-3798664b]{width:62%;height:13px}.skeleton-line.is-key[data-v-3798664b]{width:72%;height:11px}.skeleton-line.is-short[data-v-3798664b]{width:54%}.skeleton-chip[data-v-3798664b]{width:48px;height:18px;border-radius:var(--radius-pill, 999px)}.loading-process-rail[data-v-3798664b]{position:relative;width:min(320px,72vw);height:18px;display:flex;align-items:center;justify-content:space-between;overflow:hidden}.loading-process-rail[data-v-3798664b]:before{position:absolute;left:5px;right:5px;height:1px;background:var(--color-border, #e5e6eb);content:""}.loading-process-rail span[data-v-3798664b]{position:relative;z-index:1;width:7px;height:7px;border:1px solid var(--color-brand, #1677ff);border-radius:50%;background:#fff}.loading-process-rail i[data-v-3798664b]{position:absolute;z-index:2;left:0;width:18px;height:3px;border-radius:2px;background:var(--color-brand, #1677ff);animation:loading-scan-3798664b 1.8s ease-in-out infinite}.loading-state.is-paused[data-v-3798664b] :is(.loading-skeleton-card,.loading-skeleton-row,.loading-process-rail i){animation-play-state:paused}@keyframes loading-breathe-3798664b{0%,to{opacity:.48}50%{opacity:1}}@keyframes loading-scan-3798664b{0%{transform:translate(0);opacity:0}12%{opacity:1}88%{opacity:1}to{transform:translate(calc(min(320px,72vw) - 18px));opacity:0}}@media (max-width: 520px){.loading-skeleton-row[data-v-3798664b]{grid-template-columns:1.6fr 1fr 56px}.loading-skeleton-row .skeleton-line[data-v-3798664b]:nth-child(3){display:none}}@media (prefers-reduced-motion: reduce){.loading-skeleton-card[data-v-3798664b],.loading-skeleton-row[data-v-3798664b],.loading-process-rail i[data-v-3798664b]{animation:none;opacity:.78}.loading-process-rail i[data-v-3798664b]{transform:translate(50%)}}.loading-table-row>td[data-v-c53fffee]{padding:0!important;border-bottom:0!important;background:var(--color-surface, #fff)}.empty-state[data-v-c4e7ea49]{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;min-height:240px;padding:48px 24px}.empty-state-badge[data-v-c4e7ea49]{width:72px;height:72px;display:grid;place-items:center;margin-bottom:4px;border-radius:20px;border:1px solid var(--border, #e5e6eb);background:radial-gradient(circle at 50% 34%,var(--primary-soft, #e6f4ff),transparent 72%),var(--tint, #f4f6fa);box-shadow:0 6px 18px #1677ff14}.empty-state-emoji[data-v-c4e7ea49]{font-size:34px;line-height:1}.empty-state-image[data-v-c4e7ea49]{width:46px;height:46px;object-fit:contain}.empty-state-title[data-v-c4e7ea49]{font-size:16px;font-weight:700;color:var(--text-main, #1f1f1f);text-wrap:balance}.empty-state-hint[data-v-c4e7ea49]{max-width:42ch;font-size:13px;line-height:1.7;color:var(--text-sub, #8c8c8c)}.empty-state.is-compact[data-v-c4e7ea49]{min-height:0;gap:6px;padding:20px 16px}.empty-state.is-compact .empty-state-badge[data-v-c4e7ea49]{width:40px;height:40px;margin-bottom:0;border-radius:12px;box-shadow:none}.empty-state.is-compact .empty-state-emoji[data-v-c4e7ea49]{font-size:20px}.empty-state.is-compact .empty-state-image[data-v-c4e7ea49]{width:24px;height:24px}.empty-state.is-compact .empty-state-title[data-v-c4e7ea49]{font-size:14px}.empty-state.is-compact .empty-state-hint[data-v-c4e7ea49]{font-size:12px;line-height:1.6}.empty-state-action[data-v-c4e7ea49]{margin-top:8px;display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.error-state[data-v-6ed8fb37]{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;min-height:240px;padding:48px 24px}.error-state-badge[data-v-6ed8fb37]{width:72px;height:72px;display:grid;place-items:center;margin-bottom:4px;border-radius:20px;border:1px solid var(--danger, #ff4d4f);background:radial-gradient(circle at 50% 34%,var(--color-danger-light, #fff1f0),transparent 72%),var(--tint, #f4f6fa);box-shadow:0 6px 18px #ff4d4f1a}.error-state-emoji[data-v-6ed8fb37]{font-size:32px;line-height:1}.error-state-title[data-v-6ed8fb37]{font-size:16px;font-weight:700;color:var(--text-main, #1f1f1f);text-wrap:balance}.error-state-message[data-v-6ed8fb37]{max-width:42ch;font-size:13px;line-height:1.7;color:var(--text-sub, #8c8c8c);word-break:break-word}.error-state-action[data-v-6ed8fb37]{margin-top:8px;display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.error-state-retry[data-v-6ed8fb37]{height:32px;padding:0 16px;border-radius:7px;border:1px solid var(--primary, #1677ff);background:var(--primary, #1677ff);color:#fff;font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:background-color .15s ease}.error-state-retry[data-v-6ed8fb37]:hover{background:var(--primary-dark, #0958d9);border-color:var(--primary-dark, #0958d9)}.error-state-retry[data-v-6ed8fb37]:focus-visible{outline:2px solid var(--primary, #1677ff);outline-offset:2px}@media (prefers-reduced-motion: reduce){.error-state-retry[data-v-6ed8fb37]{transition:none}}.confirm-message[data-v-aaaedaee]{margin-bottom:8px;color:var(--text-main, #1f1f1f);font-size:13px;line-height:1.7}.confirm-hint[data-v-aaaedaee]{color:var(--text-sub, #8c8c8c);font-size:12px;line-height:1.55}
