:root{--l-bg:#f4f7fb;--l-surface:#fff;--l-surface-2:#f8fafc;--l-surface-3:#eef2f7;--l-text:#172033;--l-muted:#667085;--l-subtle:#98a2b3;--l-border:#e3e8ef;--l-border-strong:#cbd5e1;--l-brand:#2563eb;--l-brand-strong:#1d4ed8;--l-brand-soft:#eff6ff;--l-brand-line:#bfdbfe;--l-on-brand:#fff;--l-accent:#20a4a0;--l-accent-soft:#e6f6f5;--l-running:#0284c7;--l-running-soft:#e0f2fe;--l-success:#247e46;--l-success-soft:#e9f6ef;--l-warning:#b7791f;--l-warning-soft:#fff4dd;--l-error:#d14343;--l-error-soft:#fff0f0;--l-offline:#64748b;--l-sidebar-bg:#172033;--l-sidebar-border:#94a3b824;--l-sidebar-text:#cbd5e1;--l-sidebar-text-strong:#f1f5f9;--l-sidebar-muted:#8fa1ba;--l-sidebar-icon:#85a8de;--l-sidebar-hover:#22324d;--l-sidebar-active:#243b64;--l-sidebar-active-border:#60a5fa;--l-radius:8px;--l-radius-lg:12px;--l-radius-xl:16px;--l-card-pad:20px;--l-shadow:0 1px 2px #0f172a0a, 0 4px 14px #0f172a0a;--l-shadow-strong:0 4px 12px #0f172a14, 0 24px 48px #0f172a29;--l-focus-ring:#2563eb3d;--l-ease:cubic-bezier(.2, 0, 0, 1);--l-z-toast:99999;--color-primary:var(--l-brand);--color-primary-dark:var(--l-brand-strong);--color-primary-light:var(--l-brand-soft);--color-execute:var(--l-accent);--color-warning-soft:var(--l-warning-soft);--color-danger-soft:var(--l-error-soft);--color-success-soft:var(--l-success-soft);color:var(--l-text);background:var(--l-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;accent-color:var(--l-brand);font-family:Inter,PingFang SC,HarmonyOS Sans SC,Microsoft YaHei,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px;line-height:1.55}*,:before,:after{box-sizing:border-box}html,body,#app{height:100%}body{background:var(--l-bg);min-width:320px;margin:0}h1,h2,h3,p{margin:0}a{color:var(--l-brand);text-underline-offset:3px}::selection{background:color-mix(in srgb, var(--l-brand) 22%, transparent)}.l-spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite l-spin;display:inline-block}@keyframes l-spin{to{transform:rotate(360deg)}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--l-border-strong) padding-box;border:3px solid #0000;border-radius:10px}::-webkit-scrollbar-thumb:hover{background-color:var(--l-subtle)}::-webkit-scrollbar-track{background:0 0}input[type=checkbox]{border:1.5px solid var(--l-border-strong);background:var(--l-surface);vertical-align:middle;appearance:none;cursor:pointer;width:16px;height:16px;transition:background .14s var(--l-ease), border-color .14s var(--l-ease);border-radius:5px;flex:none;place-content:center;margin:0;display:inline-grid}input[type=checkbox]:hover:not(:disabled){border-color:var(--l-brand)}input[type=checkbox]:checked,input[type=checkbox]:indeterminate{border-color:var(--l-brand);background:var(--l-brand)}input[type=checkbox]:after{border-bottom:2px solid var(--l-on-brand);border-left:2px solid var(--l-on-brand);content:"";opacity:0;width:9px;height:5px;transform:translateY(-1px)rotate(-45deg)}input[type=checkbox]:checked:after{opacity:1}input[type=checkbox]:indeterminate:after{opacity:1;border-left:0;width:8px;height:0;transform:none}input[type=checkbox]:focus-visible{box-shadow:0 0 0 3px var(--l-focus-ring);outline:none}input[type=checkbox]:disabled{cursor:not-allowed;opacity:.5}.l-table-wrap{border:1px solid var(--l-border);border-radius:var(--l-radius-lg);background:var(--l-surface);position:relative;overflow-x:auto}.l-table-wrap[aria-busy=true] .l-table tbody{opacity:.55;transition:opacity .16s var(--l-ease)}.l-table{border-collapse:separate;border-spacing:0;width:100%;font-size:13px}.l-table th,.l-table td{border-bottom:1px solid var(--l-border);text-align:left;vertical-align:middle;padding:11px 14px}.l-table th{height:40px;color:var(--l-muted);background:var(--l-surface-2);letter-spacing:.02em;white-space:nowrap;padding-block:0;font-size:12px;font-weight:600}.l-table tbody tr:last-child td{border-bottom:0}.l-table tbody tr{transition:background .12s var(--l-ease)}.l-table tbody tr:hover td{background:color-mix(in srgb, var(--l-brand) 3%, var(--l-surface))}.l-table .is-numeric{font-variant-numeric:tabular-nums;white-space:nowrap}.l-table .is-actions{text-align:right;white-space:nowrap;width:1%}.l-muted{color:var(--l-muted)}.l-field{gap:6px;display:grid}.l-field__label{color:var(--l-text);font-size:12px;font-weight:600}.l-field__hint{color:var(--l-muted);font-size:12px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.l-button{border-radius:var(--l-radius);font:inherit;white-space:nowrap;cursor:pointer;transition:color .14s var(--l-ease), background .14s var(--l-ease), border-color .14s var(--l-ease), box-shadow .14s var(--l-ease), transform 80ms var(--l-ease);border:1px solid #0000;justify-content:center;align-items:center;gap:6px;font-weight:600;line-height:1;text-decoration:none;display:inline-flex;position:relative}.l-button:focus-visible{box-shadow:0 0 0 3px var(--l-focus-ring);outline:none}.l-button:active:not(:disabled){transform:translateY(1px)}.l-button:disabled{cursor:not-allowed;opacity:.5}.l-button--sm{min-height:28px;padding:0 10px;font-size:12px}.l-button--md{min-height:34px;padding:0 14px;font-size:13px}.l-button--lg{border-radius:10px;min-height:44px;padding:0 18px;font-size:14px}.l-button--default{border-color:var(--l-border);color:var(--l-text);background:var(--l-surface);box-shadow:0 1px 1px #0f172a0a}.l-button--default:hover:not(:disabled){border-color:var(--l-border-strong);background:var(--l-surface-2)}.l-button--primary{border-color:var(--l-brand-strong);color:var(--l-on-brand);background:linear-gradient(180deg, color-mix(in srgb, var(--l-brand) 86%, #fff), var(--l-brand));box-shadow:inset 0 1px #ffffff2e,0 4px 12px #2563eb38}.l-button--primary:hover:not(:disabled){background:var(--l-brand-strong)}.l-button--primary:focus-visible{box-shadow:inset 0 1px 0 #ffffff2e, 0 0 0 3px var(--l-focus-ring)}.l-button--ghost{color:var(--l-muted);background:0 0}.l-button--ghost:hover:not(:disabled){color:var(--l-text);background:var(--l-surface-3)}.l-button--danger{border-color:color-mix(in srgb, var(--l-error) 28%, var(--l-surface));color:var(--l-error);background:var(--l-surface)}.l-button--danger:hover:not(:disabled){border-color:color-mix(in srgb, var(--l-error) 45%, var(--l-surface));background:var(--l-error-soft)}.l-button--link{min-height:26px;color:var(--l-brand);background:0 0;padding-inline:7px}.l-button--link:hover:not(:disabled){color:var(--l-brand-strong);background:var(--l-brand-soft)}.l-button__spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:13px;height:13px;animation:.7s linear infinite l-spin}.l-modal{z-index:2000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f172a6b;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.l-modal--drawer{justify-content:flex-end;align-items:stretch;padding:10px}.l-modal__panel{border:1px solid var(--l-border);border-radius:var(--l-radius-xl);background:var(--l-surface);width:min(520px,100%);max-height:calc(100dvh - 32px);box-shadow:var(--l-shadow-strong);outline:none;flex-direction:column;display:flex;overflow:hidden}.l-modal--drawer .l-modal__panel{width:min(560px,100%);max-height:none}.l-modal__header{align-items:center;gap:12px;min-height:60px;padding:4px 14px 0 22px;display:flex}.l-modal__title{letter-spacing:-.01em;flex:1;min-width:0;font-size:16px;font-weight:650}.l-modal__close{border-radius:var(--l-radius);width:32px;height:32px;color:var(--l-subtle);cursor:pointer;transition:color .14s var(--l-ease), background .14s var(--l-ease);background:0 0;border:0;place-items:center;display:grid}.l-modal__close:hover:not(:disabled){color:var(--l-text);background:var(--l-surface-3)}.l-modal__close:focus-visible{box-shadow:0 0 0 3px var(--l-focus-ring);outline:none}.l-modal__body{flex:1;min-height:0;padding:8px 22px 22px;overflow:auto}.l-modal__footer{border-top:1px solid var(--l-border);background:var(--l-surface-2);justify-content:flex-end;gap:8px;padding:14px 22px;display:flex}.l-modal-enter-active,.l-modal-leave-active{transition:opacity .18s var(--l-ease)}.l-modal-enter-from,.l-modal-leave-to{opacity:0}.l-modal-enter-active .l-modal__panel,.l-modal-leave-active .l-modal__panel{transition:transform .22s var(--l-ease)}.l-modal--dialog.l-modal-enter-from .l-modal__panel,.l-modal--dialog.l-modal-leave-to .l-modal__panel{transform:translateY(8px)scale(.98)}.l-modal--drawer.l-modal-enter-from .l-modal__panel,.l-modal--drawer.l-modal-leave-to .l-modal__panel{transform:translate(32px)}.l-confirm__message{color:var(--l-muted);white-space:pre-line;line-height:1.75}.l-toast-host{z-index:var(--l-z-toast);pointer-events:none;justify-items:center;gap:8px;width:min(420px,100vw - 32px);display:grid;position:fixed;top:16px;left:50%;transform:translate(-50%)}.l-toast{color:#f1f5f9;pointer-events:auto;cursor:pointer;background:#172033;border-radius:12px;align-items:flex-start;gap:10px;max-width:100%;padding:10px 16px 10px 12px;line-height:1.5;display:flex;box-shadow:inset 0 0 0 1px #ffffff0f,0 12px 32px #0f172a47}.l-toast__icon{color:#8cb8f5;margin-top:1px}.l-toast--success .l-toast__icon{color:#7fd39a}.l-toast--warning .l-toast__icon{color:#f2b866}.l-toast--error .l-toast__icon{color:#f59b94}.l-toast__text{overflow-wrap:anywhere;min-width:0}.l-toast-enter-active,.l-toast-leave-active{transition:opacity .2s var(--l-ease), transform .2s var(--l-ease)}.l-toast-enter-from,.l-toast-leave-to{opacity:0;transform:translateY(-8px)scale(.98)}.l-logo{border-radius:28%;flex:none;display:block;box-shadow:0 2px 6px #2563eb47}.admin-layout{background:var(--l-bg);height:100dvh;display:flex;overflow:hidden}.admin-aside{background:var(--l-sidebar-bg);width:240px;transition:width .2s var(--l-ease), flex-basis .2s var(--l-ease);flex-direction:column;flex:0 0 240px;padding:14px 12px 12px;display:flex}.admin-aside.is-collapsed{flex-basis:72px;width:72px}.admin-logo{border-radius:var(--l-radius-lg);height:48px;color:inherit;flex:none;align-items:center;gap:11px;margin-bottom:14px;padding:0 6px;text-decoration:none;display:flex}.admin-logo:focus-visible{box-shadow:0 0 0 3px var(--l-focus-ring);outline:none}.admin-logo__copy{min-width:0}.admin-logo__copy strong,.admin-logo__copy small{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.admin-logo__copy strong{color:var(--l-sidebar-text-strong);letter-spacing:-.01em;font-size:14.5px;font-weight:700}.admin-logo__copy small{color:var(--l-sidebar-muted);letter-spacing:.14em;font-size:10px;font-weight:600}.admin-menu{flex:1;margin:0 -4px;padding:0 4px 12px;overflow:hidden auto}.admin-menu__section+.admin-menu__section{margin-top:16px}.admin-menu__group-title{color:var(--l-sidebar-muted);letter-spacing:.06em;white-space:nowrap;padding:0 10px 6px;font-size:11px;font-weight:600}.admin-menu__item{height:38px;color:var(--l-sidebar-text);white-space:nowrap;transition:color .14s var(--l-ease), background .14s var(--l-ease), box-shadow .14s var(--l-ease);border-radius:10px;align-items:center;gap:10px;margin-bottom:2px;padding:0 10px;font-weight:500;text-decoration:none;display:flex;position:relative}.admin-menu__item .l-icon{color:var(--l-sidebar-icon);transition:color .14s var(--l-ease)}.admin-menu__item:hover{color:var(--l-sidebar-text-strong);background:var(--l-sidebar-hover)}.admin-menu__item.is-active{color:var(--l-sidebar-text-strong);background:var(--l-sidebar-active);font-weight:600}.admin-menu__item.is-active .l-icon{color:var(--l-sidebar-active-border)}.admin-menu__item.is-active:before{background:var(--l-sidebar-active-border);content:"";border-radius:3px;width:3px;position:absolute;top:9px;bottom:9px;left:0}.admin-menu__item:focus-visible{box-shadow:0 0 0 3px var(--l-focus-ring);outline:none}.admin-user{border-top:1px solid var(--l-sidebar-border);flex:none;padding-top:10px;position:relative}.admin-user__trigger{width:100%;min-height:46px;color:var(--l-sidebar-text-strong);font:inherit;text-align:left;cursor:pointer;transition:background .14s var(--l-ease);background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:6px 8px 6px 6px;display:flex}.admin-user__trigger:hover,.admin-user__trigger[aria-expanded=true]{background:var(--l-sidebar-hover)}.admin-user__trigger:focus-visible{box-shadow:0 0 0 3px var(--l-focus-ring);outline:none}.admin-user__avatar{width:32px;height:32px;color:var(--l-on-brand);background:var(--l-brand);object-fit:cover;border-radius:50%;flex:none;place-items:center;font-size:13px;font-weight:650;display:inline-grid}.admin-user__copy{flex:1;min-width:0;display:grid}.admin-user__copy strong,.admin-user__copy small{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.admin-user__copy strong{font-weight:600}.admin-user__copy small{color:var(--l-sidebar-muted);font-size:11.5px}.admin-user__chevron{color:var(--l-sidebar-muted);transform:rotate(180deg)}.admin-user__menu{z-index:1100;border:1px solid var(--l-border);border-radius:var(--l-radius-lg);background:var(--l-surface);width:232px;box-shadow:var(--l-shadow-strong);padding:6px;position:absolute;bottom:calc(100% + 6px);left:0}.admin-user__info{border-bottom:1px solid var(--l-border);gap:2px;margin-bottom:6px;padding:8px 10px 10px;display:grid}.admin-user__info span{color:var(--l-muted);font-size:12px}.admin-user__action{border-radius:var(--l-radius);width:100%;height:34px;color:var(--l-text);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:0 10px;display:flex}.admin-user__action:hover,.admin-user__action:focus-visible{color:var(--l-error);background:var(--l-error-soft);outline:none}.admin-pop-enter-active,.admin-pop-leave-active{transition:opacity .14s var(--l-ease), transform .14s var(--l-ease)}.admin-pop-enter-from,.admin-pop-leave-to{opacity:0;transform:translateY(4px)}.admin-aside.is-collapsed .admin-logo{justify-content:center;padding:0}.admin-aside.is-collapsed .admin-logo__copy,.admin-aside.is-collapsed .admin-menu__item span,.admin-aside.is-collapsed .admin-menu__item:before,.admin-aside.is-collapsed .admin-user__copy,.admin-aside.is-collapsed .admin-user__chevron{display:none}.admin-aside.is-collapsed .admin-menu__group-title{background:var(--l-sidebar-border);color:#0000;height:1px;margin:0 12px 10px;padding:0;overflow:hidden}.admin-aside.is-collapsed .admin-menu__item{justify-content:center;padding:0}.admin-aside.is-collapsed .admin-user__trigger{justify-content:center;padding:6px 0}.admin-main{flex-direction:column;flex:1;min-width:0;display:flex}.admin-header{flex:none;align-items:center;gap:12px;min-height:76px;padding:14px 28px 10px 14px;display:flex}.admin-header__toggle{border:1px solid var(--l-border);border-radius:var(--l-radius);width:34px;height:34px;color:var(--l-muted);background:var(--l-surface);cursor:pointer;transition:color .14s var(--l-ease), border-color .14s var(--l-ease);flex:none;place-items:center;display:grid;box-shadow:0 1px 1px #0f172a0a}.admin-header__toggle:hover{border-color:var(--l-border-strong);color:var(--l-text)}.admin-header__toggle:focus-visible{box-shadow:0 0 0 3px var(--l-focus-ring);outline:none}.admin-header__titles{gap:1px;min-width:0;display:grid}.admin-header__eyebrow{color:var(--l-subtle);letter-spacing:.06em;font-size:11.5px;font-weight:600}.admin-header__title{letter-spacing:-.02em;white-space:nowrap;text-overflow:ellipsis;font-size:21px;font-weight:700;line-height:1.25;overflow:hidden}.admin-content{flex:1;padding:6px 28px 28px 14px;overflow:auto}@media (width<=760px){.admin-aside{padding-inline:8px}.admin-header{min-height:64px;padding:12px 16px 8px}.admin-header__title{font-size:18px}.admin-content{padding:4px 16px 20px}}
