#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#2c3e50}.main-layout[data-v-152c150c]{display:flex;min-height:100vh;background:#f8fafc}.sidebar[data-v-152c150c]{width:260px;background:#fff;border-right:1px solid #e2e8f0;display:flex;flex-direction:column;position:fixed;left:0;top:0;bottom:0;z-index:1000;transition:transform .3s ease}.sidebar-header[data-v-152c150c]{padding:24px 20px;border-bottom:1px solid #f1f5f9}.logo[data-v-152c150c]{display:flex;align-items:center;gap:12px}.logo-icon[data-v-152c150c]{flex-shrink:0}.logo-text[data-v-152c150c]{font-size:18px;font-weight:700;color:#0f172a;letter-spacing:-.025em}.sidebar-nav[data-v-152c150c]{flex:1;padding:24px 16px;overflow-y:auto}.nav-section[data-v-152c150c]{margin-bottom:24px}.nav-section[data-v-152c150c]:last-child{margin-bottom:0}.nav-section-title[data-v-152c150c]{font-size:11px;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;padding:0 8px}.nav-item[data-v-152c150c]{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;color:#64748b;font-size:14px;font-weight:500;text-decoration:none;transition:all .2s ease;margin-bottom:2px}.nav-item[data-v-152c150c]:hover{background:#f1f5f9;color:#0f172a}.nav-item.active[data-v-152c150c]{background:#e0e7ff;color:#4f46e5}.nav-item.active .nav-icon[data-v-152c150c]{color:#4f46e5}.nav-icon[data-v-152c150c]{display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#94a3b8;transition:color .2s ease}.nav-label[data-v-152c150c]{flex:1}.nav-badge[data-v-152c150c]{font-size:10px;font-weight:600;color:#4f46e5;background:#e0e7ff;padding:2px 6px;border-radius:4px;text-transform:uppercase}.sidebar-footer[data-v-152c150c]{padding:16px;border-top:1px solid #f1f5f9;display:flex;align-items:center;gap:12px}.user-info[data-v-152c150c]{flex:1;display:flex;align-items:center;gap:10px}.user-avatar[data-v-152c150c]{width:36px;height:36px;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px;font-weight:600;flex-shrink:0}.user-details[data-v-152c150c]{flex:1;min-width:0}.user-name[data-v-152c150c]{font-size:14px;font-weight:600;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-role[data-v-152c150c]{font-size:12px;color:#94a3b8}.logout-btn[data-v-152c150c]{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#f1f5f9;border:none;border-radius:8px;color:#64748b;cursor:pointer;transition:all .2s ease;flex-shrink:0}.logout-btn[data-v-152c150c]:hover{background:#e2e8f0;color:#0f172a}.main-content[data-v-152c150c]{flex:1;margin-left:260px;display:flex;flex-direction:column;min-width:0}.header[data-v-152c150c]{height:64px;background:#fff;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:100}.header-left[data-v-152c150c]{display:flex;align-items:center;gap:16px}.mobile-menu-btn[data-v-152c150c]{display:none;background:none;border:none;color:#64748b;cursor:pointer;padding:8px;border-radius:6px;transition:all .2s ease}.mobile-menu-btn[data-v-152c150c]:hover{background:#f1f5f9;color:#0f172a}.page-title[data-v-152c150c]{font-size:20px;font-weight:600;color:#0f172a}.header-right[data-v-152c150c]{display:flex;align-items:center;gap:8px}.header-btn[data-v-152c150c]{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#64748b;cursor:pointer;border-radius:8px;position:relative;transition:all .2s ease}.header-btn[data-v-152c150c]:hover{background:#f1f5f9;color:#0f172a}.notification-badge[data-v-152c150c]{position:absolute;top:6px;right:6px;min-width:16px;height:16px;background:#ef4444;color:#fff;font-size:10px;font-weight:600;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px}.content[data-v-152c150c]{flex:1;padding:24px;overflow-y:auto}.mobile-overlay[data-v-152c150c]{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:999}@media (max-width:1024px){.sidebar[data-v-152c150c]{width:220px}.main-content[data-v-152c150c]{margin-left:220px}}@media (max-width:768px){.sidebar[data-v-152c150c]{transform:translateX(-100%)}.sidebar.open[data-v-152c150c]{transform:translateX(0)}.main-content[data-v-152c150c]{margin-left:0}.mobile-menu-btn[data-v-152c150c]{display:flex}.mobile-overlay[data-v-152c150c]{display:block}.header[data-v-152c150c]{padding:0 16px}.content[data-v-152c150c]{padding:16px}}body,html{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[data-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=number],input[type=password],input[type=text],textarea{-webkit-appearance:none}dl,ol,ul{margin-top:0;margin-bottom:1em}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}code,kbd,pre,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;text-align:left;caption-side:bottom}button,input,optgroup,select,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{padding:.2em;background-color:#feffe6}:root{--color-primary:#6366f1;--color-primary-hover:#4f46e5;--color-primary-light:#e0e7ff;--color-bg-primary:#fff;--color-bg-secondary:#f8fafc;--color-bg-tertiary:#f1f5f9;--color-bg-elevated:#fff;--color-text-primary:#0f172a;--color-text-secondary:#64748b;--color-text-tertiary:#94a3b8;--color-text-inverse:#fff;--color-border:#e2e8f0;--color-border-hover:#cbd5e1;--color-border-focus:var(--color-primary);--color-success:#10b981;--color-success-bg:#d1fae5;--color-warning:#f59e0b;--color-warning-bg:#fef3c7;--color-error:#ef4444;--color-error-bg:#fee2e2;--color-info:#3b82f6;--color-info-bg:#dbeafe;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,.1);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1);--shadow-xl:0 20px 25px -5px rgba(0,0,0,.1);--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-2xl:48px;--transition-fast:150ms ease;--transition-base:200ms ease;--transition-slow:300ms ease;--font-family-sans:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;--font-family-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,:after,:before{box-sizing:border-box}html{font-size:14px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;padding:0;font-family:var(--font-family-sans);color:var(--color-text-primary);background-color:var(--color-bg-secondary);line-height:1.6}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600;line-height:1.3}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1.125rem}h5{font-size:1rem}h6{font-size:.875rem}p{margin:0}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-hover)}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:all var(--transition-base)}.card:hover{box-shadow:var(--shadow-md)}.card-header{border-bottom:1px solid var(--color-border)}.card-body,.card-footer,.card-header{padding:var(--spacing-lg)}.card-footer{border-top:1px solid var(--color-border);background:var(--color-bg-secondary);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);font-size:.875rem;font-weight:500;border-radius:var(--radius-md);border:none;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.btn-primary{background:var(--color-primary);color:var(--color-text-inverse)}.btn-primary:hover{background:var(--color-primary-hover)}.btn-secondary{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-secondary:hover{background:var(--color-bg-secondary);border-color:var(--color-border-hover)}.btn-ghost{background:transparent;color:var(--color-text-secondary)}.btn-ghost:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.btn-lg{padding:var(--spacing-md) var(--spacing-xl);font-size:1rem}.btn-sm{padding:var(--spacing-xs) var(--spacing-md);font-size:.75rem}.btn:disabled{opacity:.5;cursor:not-allowed}.badge{display:inline-flex;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);font-size:.75rem;font-weight:500;border-radius:var(--radius-full)}.badge-success{background:var(--color-success-bg);color:#065f46}.badge-warning{background:var(--color-warning-bg);color:#92400e}.badge-error{background:var(--color-error-bg);color:#991b1b}.badge-info{background:var(--color-info-bg);color:#1e40af}.alert{display:flex;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.alert-success{background:var(--color-success-bg);border:1px solid #a7f3d0;color:#065f46}.alert-warning{background:var(--color-warning-bg);border:1px solid #fde68a;color:#92400e}.alert-error{background:var(--color-error-bg);border:1px solid #fecaca;color:#991b1b}.alert-info{background:var(--color-info-bg);border:1px solid #bfdbfe;color:#1e40af}.form-group{margin-bottom:var(--spacing-lg)}.form-label{display:block;margin-bottom:var(--spacing-sm);font-weight:500;color:var(--color-text-primary);font-size:.875rem}.form-hint{color:var(--color-text-tertiary)}.form-error,.form-hint{display:block;margin-top:var(--spacing-xs);font-size:.75rem}.form-error{color:var(--color-error)}input,select,textarea{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:.875rem;font-family:inherit;color:var(--color-text-primary);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-light)}input:disabled,select:disabled,textarea:disabled{background:var(--color-bg-secondary);cursor:not-allowed;opacity:.7}.upload-zone{border:2px dashed var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-2xl);text-align:center;background:var(--color-bg-secondary);transition:all var(--transition-base);cursor:pointer}.upload-zone.drag-over,.upload-zone:hover{border-color:var(--color-primary);background:var(--color-primary-light)}.upload-zone.drag-over{transform:scale(1.01)}.upload-zone.has-file{border-style:solid;border-color:var(--color-success);background:var(--color-success-bg)}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:var(--spacing-sm)}.status-dot-success{background:var(--color-success)}.status-dot-warning{background:var(--color-warning)}.status-dot-error{background:var(--color-error)}.status-dot-info{background:var(--color-info)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-border-hover)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-fade-in{animation:fadeIn .3s ease-out}.animate-slide-up{animation:slideUp .3s ease-out}.animate-slide-down{animation:slideDown .3s ease-out}.animate-pulse{animation:pulse 2s ease-in-out infinite}@media (max-width:768px){html{font-size:13px}.container{padding:0 var(--spacing-md)}h1{font-size:1.5rem}h2{font-size:1.25rem}}@media print{*{background:transparent!important;color:#000!important;box-shadow:none!important}a,a:visited{text-decoration:underline}.no-print{display:none!important}}