.admin-shell[data-v-9dcdb786]{display:flex;min-height:100vh;background-color:var(--surface-sunken)}.sidebar[data-v-9dcdb786]{width:var(--sidebar-w);flex:0 0 var(--sidebar-w);display:flex;flex-direction:column;background-color:var(--surface);border-right:1px solid var(--border);transition:width .18s ease,transform .2s ease}.admin-shell.is-collapsed .sidebar[data-v-9dcdb786]{width:var(--sidebar-w-collapsed);flex-basis:var(--sidebar-w-collapsed)}.sidebar__brand[data-v-9dcdb786]{height:var(--topbar-h);flex:0 0 var(--topbar-h);display:flex;align-items:center;gap:var(--sp-2);padding:0 var(--sp-4);border-bottom:1px solid var(--border)}.sidebar__logo[data-v-9dcdb786]{width:28px;height:28px;flex:0 0 28px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius);background-color:var(--brand);color:var(--brand-on);font-size:var(--fs-caption);font-weight:700;letter-spacing:.5px}.sidebar__brand-text[data-v-9dcdb786]{font-size:var(--fs-title);font-weight:600;color:var(--text);white-space:nowrap}.sidebar__nav[data-v-9dcdb786]{flex:1;overflow-y:auto;padding:var(--sp-3) var(--sp-2)}.nav-section[data-v-9dcdb786]{margin-top:var(--sp-4)}.nav-section__title[data-v-9dcdb786]{padding:0 var(--sp-3) var(--sp-2);font-size:var(--fs-caption);font-weight:600;color:var(--text-subtle);letter-spacing:.4px}.nav-group__title[data-v-9dcdb786]{padding:var(--sp-2) var(--sp-3) 2px;font-size:var(--fs-caption);color:var(--text-subtle)}.nav-item[data-v-9dcdb786]{position:relative;width:100%;display:flex;align-items:center;gap:var(--sp-3);height:40px;padding:0 var(--sp-3);margin-bottom:2px;border-radius:var(--radius);color:var(--text-muted);font-size:var(--fs-body);text-align:left;transition:background-color .15s,color .15s}.nav-item[data-v-9dcdb786]:hover{background-color:var(--surface-muted);color:var(--text)}.nav-item.is-active[data-v-9dcdb786]{background-color:var(--brand-soft);color:var(--brand-text);font-weight:600}.nav-item__icon[data-v-9dcdb786]{width:18px;height:18px;flex:0 0 18px}.nav-item__label[data-v-9dcdb786]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-item__dot[data-v-9dcdb786]{width:6px;height:6px;flex:0 0 6px;border-radius:var(--radius-full);background-color:var(--border-strong)}.admin-main[data-v-9dcdb786]{flex:1;min-width:0;display:flex;flex-direction:column}.topbar[data-v-9dcdb786]{position:sticky;top:0;z-index:900;height:var(--topbar-h);flex:0 0 var(--topbar-h);display:flex;align-items:center;gap:var(--sp-3);padding:0 var(--sp-4);background-color:var(--surface);border-bottom:1px solid var(--border)}.icon-btn[data-v-9dcdb786]{width:36px;height:36px;flex:0 0 36px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius);color:var(--text-muted);transition:background-color .15s,color .15s}.icon-btn[data-v-9dcdb786]:hover{background-color:var(--surface-muted);color:var(--text)}.icon-btn svg[data-v-9dcdb786]{width:20px;height:20px}.topbar__crumb[data-v-9dcdb786]{min-width:0}.topbar__title[data-v-9dcdb786]{font-size:var(--fs-title);font-weight:600;color:var(--text);white-space:nowrap}.topbar__breadcrumb[data-v-9dcdb786]{display:flex;align-items:center;gap:4px;font-size:var(--fs-caption);color:var(--text-subtle)}.topbar__sep[data-v-9dcdb786]{color:var(--border-strong)}.topbar__search[data-v-9dcdb786]{position:relative;flex:1;max-width:320px;margin-left:auto}.topbar__search input[data-v-9dcdb786]{height:36px;padding-left:34px}.topbar__search-icon[data-v-9dcdb786]{position:absolute;left:10px;top:50%;width:16px;height:16px;transform:translateY(-50%);color:var(--text-subtle);pointer-events:none}.search-pop[data-v-9dcdb786]{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:950;padding:var(--sp-1);background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-pop)}.search-pop__item[data-v-9dcdb786]{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:8px 10px;border-radius:var(--radius);font-size:var(--fs-body);color:var(--text);text-align:left}.search-pop__item[data-v-9dcdb786]:hover{background-color:var(--brand-soft)}.topbar__user[data-v-9dcdb786]{position:relative}.user-btn[data-v-9dcdb786]{display:inline-flex;align-items:center;gap:var(--sp-2);height:36px;padding:0 8px;border-radius:var(--radius);transition:background-color .15s}.user-btn[data-v-9dcdb786]:hover{background-color:var(--surface-muted)}.user-btn__avatar[data-v-9dcdb786]{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-full);background-color:var(--brand);color:var(--brand-on);font-size:var(--fs-caption);font-weight:600}.user-btn__name[data-v-9dcdb786]{font-size:var(--fs-body);color:var(--text);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-pop[data-v-9dcdb786]{position:absolute;top:calc(100% + 8px);right:0;z-index:950;width:180px;padding:var(--sp-3);background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-pop)}.user-pop__name[data-v-9dcdb786]{font-size:var(--fs-body);font-weight:600;color:var(--text)}.user-pop__role[data-v-9dcdb786]{margin-top:2px;font-size:var(--fs-caption);color:var(--text-subtle)}.user-pop__logout[data-v-9dcdb786]{width:100%;height:36px;margin-top:var(--sp-3);border-top:1px solid var(--border);padding-top:var(--sp-3);color:var(--danger);font-size:var(--fs-body);text-align:left}.user-pop__logout[data-v-9dcdb786]:hover{color:var(--danger)}.content[data-v-9dcdb786]{flex:1;padding:var(--sp-5)}.content__inner[data-v-9dcdb786]{max-width:1440px;margin:0 auto}.mobile-only-flex[data-v-9dcdb786]{display:none}.desktop-only-flex[data-v-9dcdb786]{display:inline-flex}.mobile-mask[data-v-9dcdb786]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1400;background-color:var(--overlay)}.bottom-nav[data-v-9dcdb786]{position:fixed;left:0;right:0;bottom:0;z-index:1000;height:56px;align-items:center;justify-content:space-around;background-color:var(--surface);border-top:1px solid var(--border)}.bottom-nav__item[data-v-9dcdb786]{flex:1;height:100%;min-height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--text-muted);font-size:var(--fs-caption)}.bottom-nav__item svg[data-v-9dcdb786]{width:20px;height:20px}.bottom-nav__item.is-active[data-v-9dcdb786]{color:var(--brand)}@media (max-width: 767px){.mobile-only-flex[data-v-9dcdb786]{display:flex}.desktop-only-flex[data-v-9dcdb786]{display:none}.sidebar[data-v-9dcdb786]{position:fixed;top:0;left:0;bottom:0;z-index:1500;width:var(--sidebar-w);flex-basis:var(--sidebar-w);transform:translate(-100%);box-shadow:var(--shadow-pop)}.sidebar.is-open[data-v-9dcdb786]{transform:translate(0)}.admin-shell.is-collapsed .sidebar[data-v-9dcdb786]{width:var(--sidebar-w);flex-basis:var(--sidebar-w)}.topbar[data-v-9dcdb786]{padding:0 var(--sp-3)}.topbar__search[data-v-9dcdb786]{max-width:none}.content[data-v-9dcdb786]{padding:var(--sp-3);padding-bottom:72px}}:root{--surface: #ffffff;--surface-sunken: #f6f7f9;--surface-muted: #f1f3f5;--text: #171717;--text-muted: #5b6472;--text-subtle: #8a9099;--border: #e3e6ea;--border-strong: #cbd2da;--brand: #2563eb;--brand-hover: #1d4ed8;--brand-soft: #eff6ff;--brand-text: #1e3a8a;--brand-on: #ffffff;--success: #16a34a;--warning: #d97706;--danger: #dc2626;--radius: 8px;--radius-card: 12px;--radius-full: 999px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--font-sans: "Microsoft YaHei", "微软雅黑", "PingFang SC", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Consolas", "Courier New", monospace;--fs-caption: 12px;--fs-th: 13px;--fs-body: 14px;--fs-title: 16px;--fs-h3: 17px;--fs-h2: 19px;--fs-h1: 22px;--shadow-card: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .08);--shadow-pop: 0 12px 32px rgba(16, 24, 40, .18);--sidebar-w: 232px;--sidebar-w-collapsed: 64px;--topbar-h: 56px;--row-hover: #f7faff;--overlay: rgba(16, 24, 40, .45)}:root[data-theme=dark]{--surface: #1b1d21;--surface-sunken: #141518;--surface-muted: #242629;--text: #e8eaed;--text-muted: #a6adb7;--text-subtle: #7c848e;--border: #2e3237;--border-strong: #3b4047;--brand: #3b82f6;--brand-hover: #60a5fa;--brand-soft: #172554;--brand-text: #bfdbfe;--brand-on: #ffffff;--shadow-card: 0 1px 2px rgba(0, 0, 0, .4);--shadow-pop: 0 12px 32px rgba(0, 0, 0, .55);--row-hover: #1a2233;--overlay: rgba(0, 0, 0, .6)}*,*:before,*:after{box-sizing:border-box}html,body,#app{height:100%}body{margin:0;background-color:var(--surface-sunken);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-body);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .2s,color .2s}h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd{margin:0}ul,ol{margin:0;padding:0;list-style:none}a{color:var(--brand);text-decoration:none;transition:color .15s}a:hover{color:var(--brand-hover)}b,strong{color:var(--danger);font-weight:700}img,svg{vertical-align:middle}code,kbd,pre,samp{font-family:var(--font-mono)}input,select,textarea,button{font-family:inherit;font-size:var(--fs-body);color:inherit}input[type=text],input[type=search],input[type=password],input[type=number],input[type=email],input[type=tel],input[type=url],input[type=date],input[type=datetime-local],input[type=month],input[type=time],textarea,select{width:100%;height:40px;padding:0 14px;border:1.5px solid var(--border);border-radius:var(--radius);background-color:var(--surface);color:var(--text);outline:none;transition:border-color .15s,box-shadow .15s,background-color .15s}textarea{height:auto;min-height:88px;padding:10px 14px;line-height:1.6;resize:vertical}input:hover:not(:disabled):not([readonly]),select:hover:not(:disabled),textarea:hover:not(:disabled):not([readonly]){border-color:var(--border-strong)}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}input:disabled,input[readonly],select:disabled,textarea:disabled,textarea[readonly]{background-color:var(--surface-muted);color:var(--text-muted);cursor:not-allowed}input::placeholder,textarea::placeholder{color:var(--text-subtle)}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5' fill='none' stroke='%238A9099' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:12px 12px;cursor:pointer}input[type=checkbox],input[type=radio]{width:16px;height:16px;accent-color:var(--brand);cursor:pointer;vertical-align:middle}button{border:none;background:none;cursor:pointer}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:40px;padding:0 16px;border:1.5px solid var(--border);border-radius:var(--radius);background-color:var(--surface);color:var(--text);font-size:var(--fs-body);font-weight:500;white-space:nowrap;transition:transform .12s ease,border-color .15s,background-color .15s,color .15s}.btn:hover:not(:disabled){transform:translateY(-1px);border-color:var(--border-strong);background-color:var(--surface-muted)}.btn:active:not(:disabled){transform:translateY(0)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{border-color:var(--brand);background-color:var(--brand);color:var(--brand-on)}.btn--primary:hover:not(:disabled){border-color:var(--brand-hover);background-color:var(--brand-hover)}.btn--danger{border-color:var(--danger);background-color:var(--danger);color:#fff}.btn--danger:hover:not(:disabled){border-color:var(--danger);background-color:color-mix(in srgb,var(--danger) 88%,#000000)}.btn--sm{height:32px;padding:0 12px;font-size:var(--fs-caption)}.btn--text{height:32px;padding:0 8px;border-color:transparent;background-color:transparent;color:var(--brand)}.btn--text:hover:not(:disabled){border-color:transparent;background-color:var(--brand-soft)}.card{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-card)}.table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--fs-body)}.table th{padding:12px 14px;background-color:var(--surface-muted);border-bottom:1px solid var(--border);color:var(--text-muted);font-size:var(--fs-th);font-weight:600;text-align:left;white-space:nowrap}.table td{padding:12px 14px;height:52px;border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle}.table tbody tr{transition:background-color .12s}.table tbody tr:hover{background-color:var(--row-hover)}.table--hover-brand tbody tr:hover{background-color:color-mix(in srgb,var(--brand-soft) 60%,var(--surface))}.badge{display:inline-flex;align-items:center;height:22px;padding:0 10px;border-radius:var(--radius-full);background-color:var(--surface-muted);color:var(--text-muted);font-size:var(--fs-caption);font-weight:500;white-space:nowrap}.badge--brand{background-color:var(--brand-soft);color:var(--brand-text)}.badge--success{background-color:color-mix(in srgb,var(--success) 14%,transparent);color:var(--success)}.badge--warning{background-color:color-mix(in srgb,var(--warning) 14%,transparent);color:var(--warning)}.badge--danger{background-color:color-mix(in srgb,var(--danger) 14%,transparent);color:var(--danger)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:var(--border-strong);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background-color:var(--text-subtle)}.text-muted{color:var(--text-muted)}.text-subtle{color:var(--text-subtle)}.mono{font-family:var(--font-mono)}.mobile-only{display:none}@media (max-width: 767px){.desktop-only{display:none!important}.mobile-only{display:initial}.btn,.btn--sm,button{min-height:44px}}
