:root{--bg-primary: #FFFFFF;--bg-secondary: #F5F5F7;--bg-tertiary: #E8E8ED;--text-primary: #1D1D1F;--text-secondary: #86868B;--text-tertiary: #AEAEB2;--border: #D2D2D7;--border-light: #E5E5EA;--accent: #0071E3;--accent-hover: #0077ED;--accent-light: rgba(0, 113, 227, .1);--success: #34C759;--success-light: rgba(52, 199, 89, .1);--warning: #FF9500;--warning-light: rgba(255, 149, 0, .1);--error: #FF3B30;--error-light: rgba(255, 59, 48, .1);--info: #5AC8FA;--info-light: rgba(90, 200, 250, .1);--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--space-3xl: 64px;--font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, sans-serif;--font-mono: "SF Mono", SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace;--text-xs: 11px;--text-sm: 13px;--text-base: 15px;--text-lg: 17px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 32px;--text-4xl: 40px;--leading-tight: 1.2;--leading-normal: 1.5;--leading-relaxed: 1.75;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .16);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease}@media(prefers-color-scheme:dark){:root{--bg-primary: #000000;--bg-secondary: #1C1C1E;--bg-tertiary: #2C2C2E;--text-primary: #F5F5F7;--text-secondary: #A1A1A6;--text-tertiary: #636366;--border: #38383A;--border-light: #2C2C2E;--accent: #0A84FF;--accent-hover: #409CFF;--accent-light: rgba(10, 132, 255, .15);--success: #30D158;--success-light: rgba(48, 209, 88, .15);--warning: #FF9F0A;--warning-light: rgba(255, 159, 10, .15);--error: #FF453A;--error-light: rgba(255, 69, 58, .15);--info: #64D2FF;--info-light: rgba(100, 210, 255, .15);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .4);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .5)}}.dark{--bg-primary: #000000;--bg-secondary: #1C1C1E;--bg-tertiary: #2C2C2E;--text-primary: #F5F5F7;--text-secondary: #A1A1A6;--text-tertiary: #636366;--border: #38383A;--border-light: #2C2C2E;--accent: #0A84FF;--accent-hover: #409CFF;--accent-light: rgba(10, 132, 255, .15);--success: #30D158;--success-light: rgba(48, 209, 88, .15);--warning: #FF9F0A;--warning-light: rgba(255, 159, 10, .15);--error: #FF453A;--error-light: rgba(255, 69, 58, .15);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .4);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .5)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text-primary);background-color:var(--bg-primary)}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:var(--leading-tight);color:var(--text-primary)}h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl)}h5{font-size:var(--text-lg)}h6{font-size:var(--text-base)}p{color:var(--text-secondary)}a{color:var(--accent);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--accent-hover)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:500;line-height:1;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.btn-primary{background-color:var(--accent);color:#fff}.btn-primary:hover{background-color:var(--accent-hover)}.btn-secondary{background-color:var(--bg-secondary);color:var(--text-primary)}.btn-secondary:hover{background-color:var(--bg-tertiary)}.btn-ghost{background-color:transparent;color:var(--accent)}.btn-ghost:hover{background-color:var(--accent-light)}.btn-danger{background-color:var(--error);color:#fff}.btn-danger:hover{background-color:#ff5147}.btn-lg{padding:var(--space-md) var(--space-lg);font-size:var(--text-base);border-radius:var(--radius-lg)}.btn-sm{padding:var(--space-xs) var(--space-sm);font-size:var(--text-xs);border-radius:var(--radius-sm)}.card{background-color:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm)}.card-hover:hover{box-shadow:var(--shadow-md);transform:translateY(-1px);transition:all var(--transition-base)}.input{width:100%;padding:var(--space-sm) var(--space-md);font-family:var(--font-sans);font-size:var(--text-base);color:var(--text-primary);background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);transition:all var(--transition-fast)}.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light)}.input::placeholder{color:var(--text-tertiary)}.label{display:block;font-size:var(--text-sm);font-weight:500;color:var(--text-primary);margin-bottom:var(--space-xs)}.progress{height:8px;background-color:var(--bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.progress-bar{height:100%;background-color:var(--accent);border-radius:var(--radius-full);transition:width var(--transition-slow)}.progress-success .progress-bar{background-color:var(--success)}.progress-warning .progress-bar{background-color:var(--warning)}.progress-error .progress-bar{background-color:var(--error)}.badge{display:inline-flex;align-items:center;padding:var(--space-xs) var(--space-sm);font-size:var(--text-xs);font-weight:500;border-radius:var(--radius-full)}.badge-default{background-color:var(--bg-tertiary);color:var(--text-secondary)}.badge-primary{background-color:var(--accent-light);color:var(--accent)}.badge-success{background-color:var(--success-light);color:var(--success)}.badge-warning{background-color:var(--warning-light);color:var(--warning)}.badge-error{background-color:var(--error-light);color:var(--error)}.alert{padding:var(--space-md);border-radius:var(--radius-md);display:flex;align-items:flex-start;gap:var(--space-sm)}.alert-info{background-color:var(--info-light);color:var(--info)}.alert-success{background-color:var(--success-light);color:var(--success)}.alert-warning{background-color:var(--warning-light);color:var(--warning)}.alert-error{background-color:var(--error-light);color:var(--error)}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--space-lg)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-xs{gap:var(--space-xs)}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.gap-xl{gap:var(--space-xl)}.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)}.m-0{margin:0}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mt-xl{margin-top:var(--space-xl)}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.mb-xl{margin-bottom:var(--space-xl)}.p-0{padding:0}.p-sm{padding:var(--space-sm)}.p-md{padding:var(--space-md)}.p-lg{padding:var(--space-lg)}.p-xl{padding:var(--space-xl)}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-accent{color:var(--accent)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.text-error{color:var(--error)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn var(--transition-base)}.animate-slide-up{animation:slideUp var(--transition-base)}
