#app{min-height:100vh}:root{--color-primary:#2b8c7e;--color-primary-dark:#1a6b5f;--color-primary-light:#3aa898;--color-primary-soft:#e6f5f2;--color-accent:#c4956a;--color-accent-dark:#a87b52;--color-accent-soft:#fdf4ec;--color-surface:#fff;--color-background:#f7f8fa;--color-background-alt:#f0f2f5;--color-text:#1a1a2e;--color-text-secondary:#6b7280;--color-text-muted:#9ca3af;--color-border:#e5e7eb;--color-border-light:#f3f4f6;--color-success:#10b981;--color-success-soft:#ecfdf5;--color-warning:#f59e0b;--color-warning-soft:#fffbeb;--color-danger:#ef4444;--color-danger-soft:#fef2f2;--color-info:#3b82f6;--color-info-soft:#eff6ff;--font-family:"Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs:.75rem;--font-size-sm:.8125rem;--font-size-base:.9375rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:2rem;--line-height:1.6;--font-weight-light:300;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:24px;--radius-full:9999px;--shadow-xs:0 1px 2px #0000000a;--shadow-sm:0 1px 3px #0000000f, 0 1px 2px #0000000a;--shadow-md:0 4px 6px #0000000d, 0 2px 4px #00000008;--shadow-lg:0 10px 15px #0000000f, 0 4px 6px #00000008;--shadow-xl:0 20px 25px #00000014, 0 8px 10px #00000008;--transition-fast:.15s ease;--transition-base:.2s ease;--transition-slow:.3s ease;--transition-spring:.3s cubic-bezier(.34, 1.56, .64, 1);--sidebar-width:260px;--sidebar-collapsed-width:72px;--header-height:64px;--max-content-width:1200px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height);color:var(--color-text);background-color:var(--color-background);min-height:100vh}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-bold);color:var(--color-text);line-height:1.3}h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}p{margin-bottom:var(--space-4)}p:last-child{margin-bottom:0}a{color:var(--color-primary);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-primary-dark)}button{font-family:inherit;font-size:inherit;cursor:pointer;background:0 0;border:none;outline:none}input,textarea,select{font-family:inherit;font-size:inherit;background:0 0;border:none;outline:none}ul,ol{list-style:none}img{max-width:100%;height:auto;display:block}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}::selection{background:var(--color-primary-soft);color:var(--color-primary-dark)}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);border-radius:var(--radius-md);transition:all var(--transition-base);white-space:nowrap;-webkit-user-select:none;user-select:none;display:inline-flex}.btn-primary{background:var(--color-primary);color:#fff;box-shadow:0 2px 8px #2b8c7e40}.btn-primary:hover{background:var(--color-primary-dark);color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px #2b8c7e59}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--color-primary-soft);color:var(--color-primary)}.btn-secondary:hover{background:var(--color-primary);color:#fff}.btn-outline{border:1.5px solid var(--color-border);color:var(--color-text);background:#fff}.btn-outline:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-soft)}.btn-ghost{color:var(--color-text-secondary)}.btn-ghost:hover{background:var(--color-background);color:var(--color-text)}.btn-accent{background:var(--color-accent);color:#fff}.btn-accent:hover{background:var(--color-accent-dark);transform:translateY(-1px)}.btn-sm{padding:var(--space-2) var(--space-4);font-size:var(--font-size-xs)}.btn-lg{padding:var(--space-4) var(--space-8);font-size:var(--font-size-base)}.btn-icon{border-radius:var(--radius-md);width:40px;height:40px;padding:0}.card{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border-light);box-shadow:var(--shadow-xs);transition:all var(--transition-base)}.card-hover:hover{box-shadow:var(--shadow-md);border-color:var(--color-border);transform:translateY(-2px)}.card-body{padding:var(--space-6)}.form-group{margin-bottom:var(--space-5)}.form-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--space-2);display:block}.form-input{width:100%;padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);color:var(--color-text);transition:all var(--transition-fast)}.form-input::placeholder{color:var(--color-text-muted)}.form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.form-input-error{border-color:var(--color-danger)}.form-input-error:focus{box-shadow:0 0 0 3px var(--color-danger-soft)}.form-error{font-size:var(--font-size-xs);color:var(--color-danger);margin-top:var(--space-1)}.badge{padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);border-radius:var(--radius-full);white-space:nowrap;align-items:center;display:inline-flex}.badge-primary{background:var(--color-primary-soft);color:var(--color-primary)}.badge-accent{background:var(--color-accent-soft);color:var(--color-accent-dark)}.badge-success{background:var(--color-success-soft);color:var(--color-success)}.badge-warning{background:var(--color-warning-soft);color:var(--color-warning)}.badge-danger{background:var(--color-danger-soft);color:var(--color-danger)}.badge-info{background:var(--color-info-soft);color:var(--color-info)}.avatar{border-radius:var(--radius-full);object-fit:cover;background:var(--color-primary-soft);width:40px;height:40px;font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);color:var(--color-primary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.avatar-sm{width:32px;height:32px;font-size:var(--font-size-xs)}.avatar-lg{width:56px;height:56px;font-size:var(--font-size-lg)}.avatar-xl{width:80px;height:80px;font-size:var(--font-size-2xl)}.tabs{gap:var(--space-1);border-bottom:1px solid var(--color-border-light);margin-bottom:var(--space-6);display:flex}.tab{padding:var(--space-3) var(--space-5);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);transition:all var(--transition-fast);cursor:pointer;background:0 0;border-bottom:2px solid #0000}.tab:hover{color:var(--color-text)}.tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.empty-state{padding:var(--space-16) var(--space-8);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state-icon{margin-bottom:var(--space-4);opacity:.5;font-size:3rem}.empty-state-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--space-2)}.empty-state-text{font-size:var(--font-size-sm);color:var(--color-text-secondary);max-width:320px}.progress-bar{background:var(--color-background-alt);border-radius:var(--radius-full);width:100%;height:8px;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, var(--color-primary), var(--color-primary-light));border-radius:var(--radius-full);height:100%;transition:width var(--transition-slow)}.divider{background:var(--color-border-light);height:1px;margin:var(--space-6) 0}.text-primary{color:var(--color-primary)}.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-danger{color:var(--color-danger)}.text-sm{font-size:var(--font-size-sm)}.text-xs{font-size:var(--font-size-xs)}.text-center{text-align:center}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.italic{font-style:italic}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(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 shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.animate-fade-in{animation:fadeIn var(--transition-slow) ease both}.animate-fade-in-up{animation:fadeInUp var(--transition-slow) ease both}.animate-slide-in-left{animation:slideInLeft var(--transition-slow) ease both}.animate-scale-in{animation:scaleIn var(--transition-base) ease both}.animate-spin{animation:1s linear infinite spin}.stagger-children>:first-child{animation-delay:0s}.stagger-children>:nth-child(2){animation-delay:60ms}.stagger-children>:nth-child(3){animation-delay:.12s}.stagger-children>:nth-child(4){animation-delay:.18s}.stagger-children>:nth-child(5){animation-delay:.24s}.stagger-children>:nth-child(6){animation-delay:.3s}.stagger-children>:nth-child(7){animation-delay:.36s}.stagger-children>:nth-child(8){animation-delay:.42s}.skeleton{background:linear-gradient(90deg, var(--color-background-alt) 25%, var(--color-border-light) 50%, var(--color-background-alt) 75%);border-radius:var(--radius-md);background-size:200% 100%;animation:1.5s infinite shimmer}.page-enter-active{animation:.3s fadeInUp}.page-leave-active{animation:.15s reverse fadeIn}
