*{margin:0;padding:0;box-sizing:border-box}:root{--primary:#6366f1;--primary-light:#818cf8;--primary-dark:#4f46e5;--primary-50:#eef2ff;--primary-100:#e0e7ff;--secondary:#10b981;--success:#10b981;--success-dark:#059669;--success-light:#34d399;--danger:#ef4444;--danger-dark:#dc2626;--danger-light:#f87171;--warning:#f59e0b;--warning-dark:#d97706;--warning-light:#fbbf24;--info:#3b82f6;--info-dark:#2563eb;--info-light:#60a5fa;--bg:#fafafa;--bg-secondary:#f4f4f5;--surface:#fff;--surface-hover:#f9fafb;--surface-active:#f3f4f6;--text:#111827;--text-secondary:#6b7280;--text-muted:#9ca3af;--text-inverse:#fff;--border:#e5e7eb;--border-light:#f3f4f6;--border-dark:#d1d5db;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);--shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);--shadow-xl:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);--gradient-primary:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);--gradient-success:linear-gradient(135deg,var(--success) 0%,var(--success-dark) 100%);--gradient-danger:linear-gradient(135deg,var(--danger) 0%,var(--danger-dark) 100%);--space-xs:0.25rem;--space-sm:0.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--radius-sm:0.375rem;--radius:0.5rem;--radius-md:0.75rem;--radius-lg:1rem;--radius-xl:1.5rem;--radius-full:9999px;--transition:all 0.2s cubic-bezier(0.4,0,0.2,1);--transition-fast:all 0.15s cubic-bezier(0.4,0,0.2,1)}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,var(--bg) 0,var(--bg-secondary) 100%);color:var(--text);line-height:1.6;min-height:100vh}body,button{font-size:14px}button{font-family:inherit;cursor:pointer;border:none;border-radius:var(--radius);font-weight:500;padding:var(--space-sm) var(--space-lg);transition:var(--transition);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);position:relative;overflow:hidden}button:disabled{opacity:.6;cursor:not-allowed;transform:none!important}button:not(:disabled):hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}button:not(:disabled):active{transform:translateY(0);box-shadow:var(--shadow-sm)}.btn-primary{background:var(--gradient-primary);color:var(--text-inverse);box-shadow:var(--shadow-sm)}.btn-primary:hover{box-shadow:var(--shadow-md)}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow-sm)}.btn-secondary:hover{background:var(--surface-hover);border-color:var(--border-dark)}.btn-success{background:var(--gradient-success)}.btn-danger,.btn-success{color:var(--text-inverse);box-shadow:var(--shadow-sm)}.btn-danger{background:var(--gradient-danger)}.btn-warning{background:var(--warning);color:var(--text-inverse);box-shadow:var(--shadow-sm)}.btn-warning:hover{background:var(--warning-dark)}.btn-info{background:var(--info);color:var(--text-inverse);box-shadow:var(--shadow-sm)}.btn-info:hover{background:var(--info-dark)}.btn-ghost{background:transparent;color:var(--text);border:1px solid transparent}.btn-ghost:hover{background:var(--surface-hover);border-color:var(--border)}input,select,textarea{font-family:inherit;font-size:14px;padding:var(--space-sm) var(--space-md);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);transition:var(--transition);width:100%;box-sizing:border-box}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-50);background:var(--surface)}input:disabled,select:disabled,textarea:disabled{background:var(--bg-secondary);color:var(--text-muted);cursor:not-allowed}.form-group{margin-bottom:var(--space-lg)}.form-label{display:block;font-weight:500;color:var(--text);margin-bottom:var(--space-sm);font-size:14px}.form-help{color:var(--text-secondary)}.form-error,.form-help{font-size:12px;margin-top:var(--space-xs)}.form-error{color:var(--danger)}.container{max-width:1200px;margin:0 auto}.card,.container{padding:var(--space-xl)}.card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);border:1px solid var(--border-light);transition:var(--transition)}.card:hover{box-shadow:var(--shadow-md);border-color:var(--border)}.card-header{margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:1px solid var(--border-light)}.card-title{font-size:18px;font-weight:600;color:var(--text);margin:0;display:flex;align-items:center;gap:var(--space-sm)}.card-subtitle{font-size:14px;color:var(--text-secondary);margin:var(--space-xs) 0 0 0}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-bold{font-weight:700}.font-semibold{font-weight:600}.font-medium{font-weight:500}.font-normal{font-weight:400}.text-sm{font-size:12px}.text-base{font-size:14px}.text-lg{font-size:16px}.text-xl{font-size:18px}.text-2xl{font-size:24px}.text-primary{color:var(--primary)}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.text-success{color:var(--success)}.text-danger{color:var(--danger)}.text-warning{color:var(--warning)}.bg-primary{background:var(--primary)}.bg-secondary{background:var(--bg-secondary)}.bg-success{background:var(--success)}.bg-danger{background:var(--danger)}.bg-warning{background:var(--warning)}.rounded{border-radius:var(--radius)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-full{border-radius:var(--radius-full)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow{box-shadow:var(--shadow)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.p-2{padding:var(--space-sm)}.p-4{padding:var(--space-md)}.p-6{padding:var(--space-lg)}.p-8{padding:var(--space-xl)}.m-2{margin:var(--space-sm)}.m-4{margin:var(--space-md)}.m-6{margin:var(--space-lg)}.m-8{margin:var(--space-xl)}.mb-2{margin-bottom:var(--space-sm)}.mb-4{margin-bottom:var(--space-md)}.mb-6{margin-bottom:var(--space-lg)}.mb-8{margin-bottom:var(--space-xl)}.mt-2{margin-top:var(--space-sm)}.mt-4{margin-top:var(--space-md)}.mt-6{margin-top:var(--space-lg)}.mt-8{margin-top:var(--space-xl)}.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-2{gap:var(--space-sm)}.gap-4{gap:var(--space-md)}.gap-6{gap:var(--space-lg)}.w-full{width:100%}.h-full{height:100%}.hidden{display:none}.block{display:block}.inline-block,.loading{display:inline-block}.loading{width:20px;height:20px;border-radius:50%;border:2px solid hsla(0,0%,100%,.3);border-top-color:currentcolor;animation:spin .8s linear infinite}.loading-sm{width:16px;height:16px;border-width:2px}.loading-lg{width:24px;height:24px;border-width:3px}@keyframes spin{to{transform:rotate(1turn)}}.pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.bounce{animation:bounce 1s infinite}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);animation-timing-function:cubic-bezier(0,0,.2,1)}}.fade-in{animation:fadeIn .3s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.app{background:linear-gradient(135deg,var(--bg) 0,var(--bg-secondary) 100%)}.app,.loading-screen{min-height:100vh;display:flex;flex-direction:column}.loading-screen{align-items:center;justify-content:center;gap:var(--space-lg);padding:var(--space-xl)}.loading-screen .loading{width:32px;height:32px;border-width:3px;color:var(--primary)}.loading-screen p{color:var(--text-secondary);font-size:16px;font-weight:500}.error-screen{min-height:80vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-lg);padding:var(--space-xl);text-align:center}.error-screen h2{color:var(--danger);font-size:24px;font-weight:600;margin:0}.error-screen p{color:var(--text-secondary);max-width:600px;line-height:1.6;margin:0}.error-screen .code-inline{background:var(--bg-secondary);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px;color:var(--text);border:1px solid var(--border)}