:root{--color-primary:#305cff;--color-primary-light:#4d72ff;--color-primary-dark:#2048e0;--color-primary-surface:#eef1ff;--color-accent:#b8fa4e;--color-accent-hover:#a3e83d;--color-accent-text:#1a1a1e;--color-sky:#b4a6ff;--color-sky-surface:#f0edff;--color-graphite:#1a1a1e;--color-surface:#fff;--color-surface-raised:#f6f7f9;--color-surface-sunken:#edeef1;--color-border:#e5e7eb;--color-border-light:#f0f1f3;--color-text:#1a1a1e;--color-text-secondary:#6b7280;--color-text-muted:#9ca3af;--color-text-on-primary:#fff;--color-text-on-accent:#1a1a1e;--color-success:#16a34a;--color-success-surface:#ecfdf5;--color-success-text:#15803d;--color-danger:#dc2626;--color-danger-surface:#fef2f2;--color-danger-hover:#b91c1c;--color-warning:#f59e0b;--color-warning-surface:#fffbeb;--color-warning-text:#b45309;--color-hold:#f97316;--color-hold-surface:#fff7ed;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-base:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--space-3xl:64px;--radius-sm:6px;--radius-base:8px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-full:999px;--shadow-xs:0 1px 2px #0000000a;--shadow-sm:0 1px 3px #0000000f;--shadow-base:0 2px 8px #0000000f;--shadow-md:0 4px 16px #00000014;--shadow-lg:0 8px 30px #0000001a;--sidebar-width:240px;--topbar-height:60px;--font-family:"Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs:11px;--font-size-sm:13px;--font-size-base:14px;--font-size-md:15px;--font-size-lg:18px;--font-size-xl:22px;--font-size-2xl:28px;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--transition-fast:.12s ease;--transition-base:.18s ease;--transition-slow:.28s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%}body{min-height:100vh;color:var(--color-text);background:var(--color-surface);font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.55}a{color:inherit;text-decoration:none}button{font-family:inherit;font-size:inherit;cursor:pointer;background:0 0;border:none;padding:0}input,select,textarea{font-family:inherit;font-size:inherit}table{border-collapse:collapse}img,svg{max-width:100%;display:block}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}#app{min-height:100vh}.btn{justify-content:center;align-items:center;gap:var(--space-sm);border-radius:var(--radius-full);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);transition:background var(--transition-fast), box-shadow var(--transition-fast), color var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none;min-height:40px;padding:8px 20px;line-height:1.4;display:inline-flex}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-light)}.btn-accent{background:var(--color-accent);color:var(--color-text-on-accent);font-weight:var(--font-weight-semibold)}.btn-accent:hover{background:var(--color-accent-hover)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover{background:var(--color-danger-hover)}.btn-ghost{color:var(--color-text-secondary);background:0 0}.btn-ghost:hover{background:var(--color-surface-sunken);color:var(--color-text)}.btn-outline{color:var(--color-text-secondary);border:1px solid var(--color-border);background:0 0}.btn-outline:hover{background:var(--color-surface-raised);border-color:var(--color-text-muted);color:var(--color-text)}.btn-sm{font-size:var(--font-size-xs);min-height:32px;padding:6px 14px}.btn-icon{min-width:36px;min-height:36px;padding:8px}.form-group{gap:var(--space-xs);flex-direction:column;display:flex}.form-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text)}.form-input,.form-select,.form-textarea{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:100%;color:var(--color-text);font-size:var(--font-size-base);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);min-height:44px;padding:10px 14px;line-height:1.5}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-sky-surface);outline:none}.form-input::placeholder{color:var(--color-text-muted)}.form-textarea{resize:vertical;min-height:80px}.form-select{appearance:none;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 fill='%236B7280' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;padding-right:36px}.badge{border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.2px;align-items:center;padding:4px 12px;line-height:1.4;display:inline-flex}.badge-success{background:var(--color-success-surface);color:var(--color-success-text)}.badge-danger{background:var(--color-danger-surface);color:var(--color-danger)}.badge-warning{background:var(--color-warning-surface);color:var(--color-warning-text)}.badge-hold{background:var(--color-hold-surface);color:var(--color-hold)}.badge-neutral{background:var(--color-surface-sunken);color:var(--color-text-secondary)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.card{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.card-header{justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-lg);border-bottom:1px solid var(--color-border-light);display:flex}.card-title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text)}.table-responsive{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.table th{padding:var(--space-md) var(--space-lg);text-align:left;font-weight:var(--font-weight-medium);color:var(--color-text-muted);border-bottom:1px solid var(--color-border-light);white-space:nowrap}.table td{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-border-light);color:var(--color-text);vertical-align:middle}.table tbody tr:hover{background:var(--color-surface-raised)}.table tbody tr:last-child td{border-bottom:none}.badge-info{background:var(--color-primary-surface);color:var(--color-primary)}.badge-primary{background:var(--color-primary);color:var(--color-text-on-primary)}.badge-secondary{background:var(--color-surface-sunken);color:var(--color-text-secondary)}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-muted{color:var(--color-text-muted)}.text-danger{color:var(--color-danger)}.text-center{text-align:center}.font-bold{font-weight:var(--font-weight-bold)}.block{display:block}.cursor-pointer{cursor:pointer}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mb-0{margin-bottom:0}.mb-xs{margin-bottom:var(--space-xs)}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.p-sm{padding:var(--space-sm)}.p-md{padding:var(--space-md)}.p-lg{padding:var(--space-lg)}.py-sm{padding-top:var(--space-sm);padding-bottom:var(--space-sm)}.py-md{padding-top:var(--space-md);padding-bottom:var(--space-md)}.py-lg{padding-top:var(--space-lg);padding-bottom:var(--space-lg)}.pt-md{padding-top:var(--space-md)}.pt-lg{padding-top:var(--space-lg)}.pb-xs{padding-bottom:var(--space-xs)}.pb-sm{padding-bottom:var(--space-sm)}.flex{display:flex}.flex-1{flex:1}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.w-full{width:100%}.border-b{border-bottom:1px solid var(--color-border-light)}@media (width<=768px){.hide-mobile{display:none}}.sidebar-backdrop[data-v-c16fecfd]{z-index:90;background:#0006;position:fixed;inset:0}.sidebar[data-v-c16fecfd]{width:var(--sidebar-width);background:var(--color-surface);color:var(--color-text);border-right:1px solid var(--color-border);z-index:100;transition:transform var(--transition-slow);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar-open[data-v-c16fecfd]{transform:translate(0)}@media (width>=769px){.sidebar-backdrop[data-v-c16fecfd]{display:none}.sidebar[data-v-c16fecfd]{transform:translate(0)}}.sidebar-header[data-v-c16fecfd]{align-items:center;gap:var(--space-md);padding:var(--space-lg) var(--space-base);border-bottom:1px solid var(--color-border-light);display:flex}.sidebar-logo[data-v-c16fecfd]{object-fit:contain;flex-shrink:0;width:32px;height:32px}.sidebar-app-name[data-v-c16fecfd]{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold)}.sidebar-nav[data-v-c16fecfd]{padding:var(--space-md) 0;flex:1;overflow-y:auto}.menu-group[data-v-c16fecfd]{margin-bottom:var(--space-xs)}.menu-group-toggle[data-v-c16fecfd]{width:100%;padding:var(--space-sm) var(--space-lg);color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.6px;transition:color var(--transition-fast);justify-content:space-between;align-items:center;display:flex}.menu-group-toggle[data-v-c16fecfd]:hover{color:var(--color-text)}.menu-group-chevron[data-v-c16fecfd]{transition:transform var(--transition-fast)}.chevron-open[data-v-c16fecfd]{transform:rotate(180deg)}.menu-list[data-v-c16fecfd]{margin:0;padding:0;list-style:none}.menu-item[data-v-c16fecfd]{align-items:center;gap:var(--space-md);width:calc(100% - 32px);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border-radius:var(--radius-full);transition:background var(--transition-fast), color var(--transition-fast);text-align:left;margin:2px 16px;padding:8px 16px;display:flex}.menu-item[data-v-c16fecfd]:hover{background:var(--color-surface-sunken);color:var(--color-text)}.menu-item-active[data-v-c16fecfd]{background:var(--color-primary);color:#fff;font-weight:var(--font-weight-semibold)}.menu-icon[data-v-c16fecfd]{opacity:.72;flex-shrink:0}.menu-item-active .menu-icon[data-v-c16fecfd]{opacity:1}.sidebar-footer[data-v-c16fecfd]{padding:var(--space-md) var(--space-base);border-top:1px solid var(--color-border-light);justify-content:space-between;align-items:center;display:flex}.sidebar-user[data-v-c16fecfd]{align-items:center;gap:var(--space-md);min-width:0;display:flex}.sidebar-user-avatar[data-v-c16fecfd]{border-radius:var(--radius-full);background:var(--color-primary-surface);width:32px;height:32px;color:var(--color-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar-user-info[data-v-c16fecfd]{flex-direction:column;min-width:0;display:flex}.sidebar-user-name[data-v-c16fecfd]{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sidebar-user-role[data-v-c16fecfd]{font-size:var(--font-size-xs);color:var(--color-text-muted)}.btn-logout[data-v-c16fecfd]{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--color-text-muted);transition:background var(--transition-fast), color var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}.btn-logout[data-v-c16fecfd]:hover{background:var(--color-surface-sunken);color:var(--color-danger)}.topbar[data-v-699b452a]{height:var(--topbar-height);padding:0 var(--space-lg);background:var(--color-surface);border-bottom:1px solid var(--color-border-light);z-index:50;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.topbar.mobile-topbar[data-v-699b452a]{background:0 0;border-bottom:none;justify-content:center;padding-top:16px}.topbar-left[data-v-699b452a]{align-items:center;gap:var(--space-md);display:flex}.topbar-hamburger[data-v-699b452a]{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--color-text-secondary);transition:background var(--transition-fast);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex}.topbar-hamburger[data-v-699b452a]:hover{background:var(--color-surface-sunken)}@media (width>=769px){.admin-layout:not(.mobile-layout-wrapper) .topbar-hamburger[data-v-699b452a]{display:none}}.topbar-title[data-v-699b452a]{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin:0}.topbar-right[data-v-699b452a]{align-items:center;display:flex}.notification-container[data-v-699b452a]{z-index:101;position:relative}.notification-btn[data-v-699b452a]{width:38px;height:38px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;transition:background .2s,color .2s;display:flex}.notification-btn[data-v-699b452a]:hover{background:var(--color-surface-sunken);color:var(--color-primary)}.notif-dropdown[data-v-699b452a]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:320px;box-shadow:var(--shadow-lg,0 10px 25px #0000001a);z-index:101;position:absolute;top:calc(100% + 12px);right:0;overflow:hidden}.notif-header[data-v-699b452a]{border-bottom:1px solid var(--color-border-light);background:var(--color-surface);padding:16px}.notif-header h4[data-v-699b452a]{color:var(--color-text);margin:0;font-size:15px;font-weight:600}.notif-body[data-v-699b452a]{background:var(--color-surface-sunken);max-height:320px;overflow-y:auto}.notif-empty[data-v-699b452a]{text-align:center;color:var(--color-text-secondary);flex-direction:column;justify-content:center;align-items:center;padding:40px 20px;display:flex}.notif-empty p[data-v-699b452a]{color:var(--color-text);margin:8px 0 4px;font-size:14px;font-weight:600}.notif-empty small[data-v-699b452a]{color:var(--color-text-muted);font-size:12px}.notif-overlay[data-v-699b452a]{z-index:100;position:fixed;inset:0}.bottom-nav[data-v-05c12f88]{background:var(--color-surface,#fff);border-top:1px solid var(--color-border-light,#e2e8f0);z-index:50;height:64px;padding-bottom:env(safe-area-inset-bottom);justify-content:space-around;align-items:center;display:flex;position:absolute;bottom:0;left:0;right:0}.nav-item[data-v-05c12f88]{width:20%;height:100%;color:var(--color-text-muted,#94a3b8);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:4px;transition:color .2s;display:flex}.nav-item.active[data-v-05c12f88]{color:var(--color-primary,#3b82f6)}.nav-item.text-danger[data-v-05c12f88]{color:var(--color-danger,#ef4444);opacity:.8}.nav-icon[data-v-05c12f88]{transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.nav-item:active .nav-icon[data-v-05c12f88]{transform:scale(.9)}.nav-item.active .nav-icon[data-v-05c12f88]{transform:translateY(-2px)}.nav-label[data-v-05c12f88]{letter-spacing:.3px;white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:10px;font-weight:600;overflow:hidden}.admin-layout[data-v-a99b604e]{background:var(--color-surface-raised,#f8fafc);min-height:100vh;display:flex}.admin-layout.mobile-layout-wrapper[data-v-a99b604e]{background:var(--color-surface-raised,#f8fafc)}.admin-main[data-v-a99b604e]{flex-direction:column;flex:1;min-width:0;display:flex}.admin-main.mobile-app-container[data-v-a99b604e]{background:var(--color-background,#f1f5f9);flex:none;width:100%;height:100vh;max-height:100vh;position:relative;overflow:hidden}@media (width>=769px){.admin-layout:not(.mobile-layout-wrapper) .admin-main[data-v-a99b604e]{margin-left:var(--sidebar-width)}}.admin-content[data-v-a99b604e]{padding:var(--space-lg);flex:1;overflow-y:auto}@media (width<=768px){.admin-content[data-v-a99b604e]{padding:var(--space-base)}}.admin-main.mobile-app-container .admin-content[data-v-a99b604e]{-webkit-overflow-scrolling:touch;height:100%;padding:12px 16px;overflow-y:auto}.admin-main.mobile-app-container .admin-content.has-bottom-nav[data-v-a99b604e]{padding-bottom:80px}.toast-host[data-v-0dd6bc07]{top:var(--space-base);right:var(--space-base);z-index:10000;gap:var(--space-sm);pointer-events:none;flex-direction:column;max-width:min(380px,100vw - 32px);display:flex;position:fixed}.toast[data-v-0dd6bc07]{align-items:flex-start;gap:var(--space-sm);border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-text-muted);box-shadow:var(--shadow-lg);font-size:var(--font-size-sm);color:var(--color-text);pointer-events:auto;padding:12px 14px;display:flex}.toast-success[data-v-0dd6bc07]{border-left-color:var(--color-success);background:var(--color-success-surface)}.toast-error[data-v-0dd6bc07]{border-left-color:var(--color-danger);background:var(--color-danger-surface)}.toast-warning[data-v-0dd6bc07]{border-left-color:var(--color-warning);background:var(--color-warning-surface)}.toast-info[data-v-0dd6bc07]{border-left-color:var(--color-primary);background:var(--color-primary-surface)}.toast-icon[data-v-0dd6bc07]{flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;display:flex}.toast-success .toast-icon[data-v-0dd6bc07]{color:var(--color-success-text)}.toast-error .toast-icon[data-v-0dd6bc07]{color:var(--color-danger)}.toast-warning .toast-icon[data-v-0dd6bc07]{color:var(--color-warning-text)}.toast-info .toast-icon[data-v-0dd6bc07]{color:var(--color-primary)}.toast-message[data-v-0dd6bc07]{word-break:break-word;flex:1;min-width:0;line-height:1.45}.toast-close[data-v-0dd6bc07]{border-radius:var(--radius-sm);width:20px;height:20px;color:var(--color-text-muted);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;margin:-2px -4px 0 0;display:flex}.toast-close[data-v-0dd6bc07]:hover{color:var(--color-text);background:#0000000f}.toast-enter-active[data-v-0dd6bc07],.toast-leave-active[data-v-0dd6bc07]{transition:all var(--transition-base)}.toast-enter-from[data-v-0dd6bc07],.toast-leave-to[data-v-0dd6bc07]{opacity:0;transform:translate(24px)}.toast-move[data-v-0dd6bc07]{transition:transform var(--transition-base)}@media (width<=600px){.toast-host[data-v-0dd6bc07]{top:auto;bottom:calc(64px + env(safe-area-inset-bottom,0px) + var(--space-base));left:var(--space-base);right:var(--space-base);max-width:none}}
