:root{--bg-primary:#f3f4f6;--bg-card:#fff;--bg-secondary:#fafafa;--bg-tertiary:#f8f8f8;--bg-hover:#f0f0f0;--bg-chip:#f0f0f0;--bg-input:#fff;--bg-nav:#fff;--text-primary:#1a1a1a;--text-secondary:#555;--text-muted:#888;--text-faint:#aaa;--text-link:#1a73e8;--border-primary:#e0e0e0;--border-secondary:#ddd;--border-subtle:#eee;--border-faint:#f0f0f0;--shadow-sm:0 1px 3px #0000000f;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 20px 60px #0000002e;--shadow-nav:0 1px 3px #0000000f;--brand:#fe2c55;--brand-hover:#e0264c;--success:#00b894;--error:#e74c3c;--warning:#f39c12;--info:#3498db;--purple:#6c5ce7;--brand-bg:#fff0f3;--success-bg:#e8f5e9;--error-bg:#ffebee;--warning-bg:#fff3e0;--info-bg:#e3f2fd;--purple-bg:#6c5ce714;--success-text:#2e7d32;--error-text:#c62828;--warning-text:#e65100;--info-text:#1565c0;--table-header-bg:#fafafa;--table-row-hover:#f8f8f8;--table-border:#f5f5f5;--overlay:#00000080;--scrollbar-track:#f0f0f0;--scrollbar-thumb:#ccc;--scrollbar-thumb-hover:#aaa;--focus-ring:#fe2c554d;--transition-speed:0.15s}[data-theme=dark]{--bg-primary:#0c0c14;--bg-card:#15151f;--bg-secondary:#1a1a26;--bg-tertiary:#1e1e2c;--bg-hover:#252535;--bg-chip:#252535;--bg-input:#1a1a26;--bg-nav:#111118;--text-primary:#e4e4ec;--text-secondary:#a8a8b8;--text-muted:#6e6e80;--text-faint:#505060;--text-link:#5b9cf5;--border-primary:#2a2a3c;--border-secondary:#252535;--border-subtle:#1e1e2c;--border-faint:#1a1a26;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 20px 60px #0009;--shadow-nav:0 1px 3px #0006;--brand-bg:#fe2c551f;--success-bg:#00b8941f;--error-bg:#e74c3c1f;--warning-bg:#f39c121f;--info-bg:#3498db1f;--purple-bg:#6c5ce726;--success-text:#00d9a7;--error-text:#ff6b5a;--warning-text:#ffb84d;--info-text:#5dade2;--table-header-bg:#1a1a26;--table-row-hover:#1e1e2c;--table-border:#1e1e2c;--overlay:#000000b3;--scrollbar-track:#1a1a26;--scrollbar-thumb:#333348;--scrollbar-thumb-hover:#444460}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}body{-webkit-tap-highlight-color:transparent;background:#f3f4f6;background:var(--bg-primary);color:#1a1a1a;color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.5;margin:0;overflow-x:hidden;padding:0}body,button,input,nav,select,textarea{transition:background-color .15s,color .15s,border-color .15s;transition:background-color var(--transition-speed),color var(--transition-speed),border-color var(--transition-speed)}input,select,textarea{background:#fff;background:var(--bg-input);border:1px solid #ddd;border:1px solid var(--border-secondary);border-radius:8px;color:#1a1a1a;color:var(--text-primary);font-family:inherit;font-size:14px;outline:none}input:focus,select:focus,textarea:focus{border-color:#fe2c55;border-color:var(--brand);box-shadow:0 0 0 3px #fe2c554d;box-shadow:0 0 0 3px var(--focus-ring)}input::placeholder,textarea::placeholder{color:#aaa;color:var(--text-faint)}select{cursor:pointer}input[type=date]{color-scheme:light}[data-theme=dark] input[type=date]{color-scheme:dark}::-webkit-scrollbar{height:6px;width:6px}::-webkit-scrollbar-track{background:#f0f0f0;background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:#ccc;background:var(--scrollbar-thumb);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#aaa;background:var(--scrollbar-thumb-hover)}.nav-tabs::-webkit-scrollbar{display:none}.nav-tabs{-ms-overflow-style:none;scrollbar-width:none}@media (max-width:768px){body{padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}[role=button],a,button{touch-action:manipulation}button,input[type=checkbox],select{min-height:36px}input[type=date],input[type=email],input[type=number],input[type=password],input[type=text],input[type=url],select,textarea{font-size:16px}}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.card-enter{animation:fadeIn .2s ease-out}.skeleton{animation:shimmer 1.5s infinite;background:linear-gradient(90deg,#f8f8f8 25%,#f0f0f0 50%,#f8f8f8 75%);background:linear-gradient(90deg,var(--bg-tertiary) 25%,var(--bg-hover) 50%,var(--bg-tertiary) 75%);background-size:200% 100%}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}