:root{--color-bg:#f7f8fa;--color-bg-elevated:#fff;--color-bg-card:#fff;--color-bg-hover:#f0f2f5;--color-bg-active:#e8ebf0;--color-bg-subtle:#f3f5f7;--color-primary:#00523e;--color-primary-light:#00674d;--color-primary-dark:#003d2e;--color-primary-muted:rgba(0,82,62,.08);--color-primary-soft:#e6f2ef;--color-accent:#ff6b4a;--color-accent-hover:#ff8266;--color-accent-muted:rgba(255,107,74,.1);--color-accent-soft:#fff0ed;--color-secondary:#ffc945;--color-secondary-muted:rgba(255,201,69,.15);--color-secondary-soft:#fff8e6;--color-teal:#0db8a2;--color-teal-muted:rgba(13,184,162,.1);--color-teal-soft:#e6f9f6;--color-success:#22c55e;--color-success-muted:rgba(34,197,94,.1);--color-success-soft:#ecfdf5;--color-warning:#f59e0b;--color-warning-muted:rgba(245,158,11,.1);--color-warning-soft:#fffbeb;--color-error:#ef4444;--color-error-muted:rgba(239,68,68,.1);--color-error-soft:#fef2f2;--color-info:#3b82f6;--color-info-muted:rgba(59,130,246,.1);--color-info-soft:#eff6ff;--color-text:#1a2e35;--color-text-secondary:#4a5e68;--color-text-muted:#7b8f99;--color-text-inverse:#fff;--color-border:#e5e9ed;--color-border-hover:#d1d9e0;--color-border-focus:var(--color-primary);--shadow-xs:0 1px 2px rgba(0,0,0,.04);--shadow-sm:0 2px 4px rgba(0,0,0,.06);--shadow-md:0 4px 12px rgba(0,0,0,.08);--shadow-lg:0 8px 24px rgba(0,0,0,.1);--shadow-xl:0 16px 48px rgba(0,0,0,.12);--shadow-card:0 2px 8px rgba(0,0,0,.05);--shadow-card-hover:0 8px 24px rgba(0,0,0,.1);--sidebar-width:260px;--topbar-height:64px;--content-max-width:1400px;--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-2xl:24px;--radius-full:9999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--transition-fast:.12s ease;--transition-normal:.2s ease;--transition-slow:.3s ease;--font-size-xs:11px;--font-size-sm:12px;--font-size-base:14px;--font-size-md:15px;--font-size-lg:16px;--font-size-xl:18px;--font-size-2xl:22px;--font-size-3xl:28px;--font-size-4xl:36px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:14px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:var(--color-bg);color:var(--color-text);font-family:DM Sans,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.5;overflow-x:hidden}a{color:inherit;text-decoration:none}button{background:none;cursor:pointer}button,input,select,textarea{border:none;color:inherit;font-family:inherit}input,select,textarea{background:transparent;font-size:inherit;outline:none}img{display:block;max-width:100%}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-border-hover)}*{scrollbar-color:var(--color-border) transparent;scrollbar-width:thin}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}::-moz-selection{background:var(--color-primary-muted);color:var(--color-primary)}::selection{background:var(--color-primary-muted);color:var(--color-primary)}.flex{display:flex}.inline-flex{display:inline-flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.grid{display:grid}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.grid-cols-5{grid-template-columns:repeat(5,1fr)}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-5{gap:var(--space-5)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}.p-2{padding:var(--space-2)}.p-3{padding:var(--space-3)}.p-4{padding:var(--space-4)}.p-5{padding:var(--space-5)}.p-6{padding:var(--space-6)}.m-auto{margin:auto}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mb-1{margin-bottom:var(--space-1)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-md{font-size:var(--font-size-md)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.text-3xl{font-size:var(--font-size-3xl)}.text-4xl{font-size:var(--font-size-4xl)}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.leading-tight{line-height:1.25}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.75}.tracking-tight{letter-spacing:-.025em}.tracking-normal{letter-spacing:0}.tracking-wide{letter-spacing:.025em}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-primary{color:var(--color-primary)}.text-accent{color:var(--color-accent)}.text-secondary{color:var(--color-text-secondary)}.text-muted{color:var(--color-text-muted)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-error{color:var(--color-error)}.text-info{color:var(--color-info)}.bg-primary{background-color:var(--color-primary)}.bg-primary-soft{background-color:var(--color-primary-soft)}.bg-accent{background-color:var(--color-accent)}.bg-accent-soft{background-color:var(--color-accent-soft)}.bg-success{background-color:var(--color-success)}.bg-success-soft{background-color:var(--color-success-soft)}.bg-warning{background-color:var(--color-warning)}.bg-warning-soft{background-color:var(--color-warning-soft)}.bg-error{background-color:var(--color-error)}.bg-error-soft{background-color:var(--color-error-soft)}.bg-card{background-color:var(--color-bg-card)}.bg-subtle{background-color:var(--color-bg-subtle)}.rounded-sm{border-radius:var(--radius-sm)}.rounded{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-full{border-radius:var(--radius-full)}.shadow-xs{box-shadow:var(--shadow-xs)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.shadow-card{box-shadow:var(--shadow-card)}.w-full{width:100%}.h-full{height:100%}.min-h-screen{min-height:100vh}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.inset-0{inset:0}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-y-auto{overflow-y:auto}.hidden{display:none}.invisible{visibility:hidden}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-100{opacity:1}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.transition{transition:all var(--transition-normal)}.transition-fast{transition:all var(--transition-fast)}.transition-slow{transition:all var(--transition-slow)}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-modal{z-index:1000}.z-overlay{z-index:999}.btn{align-items:center;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-size:var(--font-size-base);font-weight:600;gap:var(--space-2);justify-content:center;line-height:1;padding:var(--space-3) var(--space-5);transition:all var(--transition-fast);white-space:nowrap}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background:var(--color-primary);color:var(--color-text-inverse)}.btn-primary:hover:not(:disabled){background:var(--color-primary-light);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-accent{background:var(--color-accent);color:var(--color-text-inverse)}.btn-accent:hover:not(:disabled){background:var(--color-accent-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-secondary{background:var(--color-bg-subtle);border:1px solid var(--color-border);color:var(--color-text)}.btn-secondary:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-border-hover)}.btn-ghost{background:transparent;color:var(--color-text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--color-bg-hover);color:var(--color-text)}.btn-outline{background:transparent;border:1.5px solid var(--color-primary);color:var(--color-primary)}.btn-outline:hover:not(:disabled){background:var(--color-primary-soft)}.btn-sm{font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3)}.btn-lg{font-size:var(--font-size-lg);padding:var(--space-4) var(--space-6)}.btn-icon{height:40px;padding:0;width:40px}.btn-icon.btn-sm{height:32px;width:32px}.card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.card-hover{transition:all var(--transition-normal)}.card-hover:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-card-hover);transform:translateY(-2px)}.card-header{border-bottom:1px solid var(--color-border)}.card-body,.card-header{padding:var(--space-5)}.card-footer{background:var(--color-bg-subtle);border-radius:0 0 var(--radius-lg) var(--radius-lg);border-top:1px solid var(--color-border);padding:var(--space-4) var(--space-5)}.badge{align-items:center;border-radius:var(--radius-full);display:inline-flex;font-size:var(--font-size-xs);font-weight:600;gap:var(--space-1);letter-spacing:.03em;padding:var(--space-1) var(--space-3);text-transform:uppercase}.badge-primary{background:var(--color-primary-soft);color:var(--color-primary)}.badge-accent{background:var(--color-accent-soft);color:var(--color-accent)}.badge-success{background:var(--color-success-soft);color:var(--color-success)}.badge-warning{background:var(--color-warning-soft);color:#b45309}.badge-error{background:var(--color-error-soft);color:var(--color-error)}.badge-info{background:var(--color-info-soft);color:var(--color-info)}.badge-neutral{background:var(--color-bg-subtle);color:var(--color-text-secondary)}.badge-teal{background:var(--color-teal-soft);color:var(--color-teal)}.input-wrapper{display:flex;flex-direction:column;gap:var(--space-2)}.input-label{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:500}.input{background:var(--color-bg-card);border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);padding:var(--space-3) var(--space-4);transition:all var(--transition-fast);width:100%}.input:hover{border-color:var(--color-border-hover)}.input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-muted)}.input::-moz-placeholder{color:var(--color-text-muted)}.input::placeholder{color:var(--color-text-muted)}.input-sm{font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3)}.input-lg{font-size:var(--font-size-lg);padding:var(--space-4) var(--space-5)}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--color-bg-card);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%237b8f99' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;border:1.5px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-base);padding:var(--space-3) var(--space-4);padding-right:var(--space-10);transition:all var(--transition-fast);width:100%}.select:hover{border-color:var(--color-border-hover)}.select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-muted)}.toggle{background:var(--color-bg-hover);border-radius:var(--radius-full);cursor:pointer;flex-shrink:0;height:24px;position:relative;transition:background var(--transition-fast);width:44px}.toggle:after{background:#fff;border-radius:50%;box-shadow:var(--shadow-sm);content:"";height:20px;left:2px;position:absolute;top:2px;transition:transform var(--transition-fast);width:20px}.toggle.active{background:var(--color-primary)}.toggle.active:after{transform:translate(20px)}.table-wrapper{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow-x:auto}.table{border-collapse:collapse;width:100%}.table td,.table th{border-bottom:1px solid var(--color-border);padding:var(--space-4);text-align:left}.table th{background:var(--color-bg-subtle);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:600;letter-spacing:.03em;text-transform:uppercase}.table tbody tr{transition:background var(--transition-fast)}.table tbody tr:hover{background:var(--color-bg-hover)}.table tbody tr:last-child td{border-bottom:none}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0006;display:flex;inset:0;justify-content:center;padding:var(--space-6);position:fixed;z-index:var(--z-overlay)}.modal{background:var(--color-bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;max-height:90vh;max-width:480px;overflow:hidden;width:100%;z-index:var(--z-modal)}.modal-lg{max-width:640px}.modal-xl{max-width:800px}.modal-header{align-items:center;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;padding:var(--space-5) var(--space-6)}.modal-title{font-size:var(--font-size-xl);font-weight:700}.modal-body{flex:1;overflow-y:auto;padding:var(--space-6)}.modal-footer{align-items:center;border-top:1px solid var(--color-border);gap:var(--space-3);justify-content:flex-end;padding:var(--space-4) var(--space-6)}.modal-footer,.tabs{background:var(--color-bg-subtle);display:flex}.tabs{border-radius:var(--radius-lg);gap:var(--space-1);padding:var(--space-1)}.tab{border-radius:var(--radius-md);color:var(--color-text-muted);font-size:var(--font-size-base);font-weight:500;padding:var(--space-3) var(--space-5);transition:all var(--transition-fast)}.tab:hover{background:var(--color-bg-hover);color:var(--color-text-secondary)}.tab.active{background:var(--color-bg-card);box-shadow:var(--shadow-sm);color:var(--color-text)}.avatar{align-items:center;background:var(--color-primary-soft);border-radius:var(--radius-full);color:var(--color-primary);display:flex;flex-shrink:0;font-size:var(--font-size-base);font-weight:600;height:40px;justify-content:center;width:40px}.avatar-sm{font-size:var(--font-size-sm);height:32px;width:32px}.avatar-lg{font-size:var(--font-size-lg);height:48px;width:48px}.progress{background:var(--color-bg-subtle);height:8px;overflow:hidden}.progress,.progress-bar{border-radius:var(--radius-full)}.progress-bar{background:linear-gradient(90deg,var(--color-primary) 0,var(--color-teal) 100%);height:100%;transition:width var(--transition-slow)}.divider{height:1px}.divider,.divider-vertical{background:var(--color-border)}.divider-vertical{height:100%;width:1px}.empty-state{align-items:center;color:var(--color-text-muted);display:flex;flex-direction:column;justify-content:center;padding:var(--space-12);text-align:center}.empty-state-icon{color:var(--color-text-muted);height:64px;margin-bottom:var(--space-4);opacity:.5;width:64px}.empty-state-title{color:var(--color-text-secondary);font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--space-2)}.empty-state-description{font-size:var(--font-size-base);max-width:320px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.animate-fade-in{animation:fadeIn var(--transition-normal) ease}.animate-slide-up{animation:slideUp var(--transition-normal) ease}.animate-slide-down{animation:slideDown var(--transition-normal) ease}.animate-scale-in{animation:scaleIn var(--transition-normal) ease}.animate-pulse{animation:pulse 2s infinite}.animate-spin{animation:spin 1s linear infinite}.page-enter-active,.page-leave-active{transition:all .2s ease}.page-enter-from,.page-leave-to{opacity:0;transform:translateY(8px)}.skeleton{animation:shimmer 1.5s infinite;background:linear-gradient(90deg,var(--color-bg-subtle) 25%,var(--color-bg-hover) 50%,var(--color-bg-subtle) 75%);background-size:200% 100%;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.dropdown{position:relative}.dropdown-menu{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);min-width:180px;padding:var(--space-2);position:absolute;right:0;top:calc(100% + var(--space-2));z-index:100}.dropdown-item{align-items:center;border-radius:var(--radius-md);cursor:pointer;display:flex;font-size:var(--font-size-base);gap:var(--space-3);padding:var(--space-3) var(--space-4);transition:background var(--transition-fast)}.dropdown-item:hover{background:var(--color-bg-hover)}.dropdown-item.danger{color:var(--color-error)}.dropdown-item.danger:hover{background:var(--color-error-soft)}.tooltip{position:relative}.tooltip:after{background:var(--color-text);border-radius:var(--radius-sm);bottom:calc(100% + 8px);color:var(--color-bg-card);content:attr(data-tooltip);font-size:var(--font-size-xs);font-weight:500;left:50%;opacity:0;padding:var(--space-2) var(--space-3);pointer-events:none;position:absolute;transform:translate(-50%);transition:all var(--transition-fast);visibility:hidden;white-space:nowrap}.tooltip:hover:after{opacity:1;visibility:visible}.stat-card{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5)}.stat-card-icon{align-items:center;border-radius:var(--radius-lg);display:flex;height:48px;justify-content:center;margin-bottom:var(--space-4);width:48px}.stat-card-value{font-size:var(--font-size-3xl);font-weight:700;line-height:1.1;margin-bottom:var(--space-1)}.stat-card-label{color:var(--color-text-muted);font-size:var(--font-size-sm)}.stat-card-change{align-items:center;border-radius:var(--radius-full);display:inline-flex;font-size:var(--font-size-xs);font-weight:600;gap:var(--space-1);margin-top:var(--space-3);padding:var(--space-1) var(--space-2)}.stat-card-change.positive{background:var(--color-success-soft);color:var(--color-success)}.stat-card-change.negative{background:var(--color-error-soft);color:var(--color-error)}.auth-loading[data-v-b0f44a78]{background:#fafafa;justify-content:center;min-height:100vh}.auth-loading[data-v-b0f44a78],.loader[data-v-b0f44a78]{align-items:center;display:flex}.loader[data-v-b0f44a78]{color:#00524e;flex-direction:column;gap:16px}.loader span[data-v-b0f44a78]{font-size:14px;font-weight:500}.spin[data-v-b0f44a78]{animation:spin-b0f44a78 1s linear infinite}@keyframes spin-b0f44a78{0%{transform:rotate(0)}to{transform:rotate(1turn)}}
