:root{--bg-primary: #0f172a;--bg-secondary: #1e293b;--bg-card: rgba(30, 41, 59, .6);--border-primary: rgba(99, 102, 241, .2);--border-hover: rgba(99, 102, 241, .4);--text-primary: #e2e8f0;--text-secondary: #94a3b8;--text-muted: #64748b;--accent: #6366f1;--accent-light: #818cf8;--accent-lighter: #a5b4fc;--gradient-primary: linear-gradient(135deg, #6366f1, #8b5cf6);--shadow-primary: 0 4px 15px rgba(99, 102, 241, .3);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;overflow-x:hidden}a{color:var(--accent-light);text-decoration:none;transition:color .2s}a:hover{color:var(--accent-lighter)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#0f172a80}::-webkit-scrollbar-thumb{background:#6366f14d;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#6366f180}input:focus,select:focus,textarea:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px #6366f126}input::placeholder,textarea::placeholder{color:var(--text-muted)}select option{background:#1e293b;color:#e2e8f0}button{font-family:inherit}button:not(:disabled):hover{opacity:.9;transform:translateY(-1px)}button:active{transform:translateY(0)}.spinner{width:40px;height:40px;border:3px solid rgba(99,102,241,.2);border-top-color:#6366f1;border-radius:50%;animation:spin .8s ease-in-out infinite;margin:0 auto}@keyframes spin{to{transform:rotate(360deg)}}a[style]:hover,button[style]:hover{filter:brightness(1.1)}table tr{transition:background .15s ease}@media (max-width: 768px){.sidebar{position:fixed!important;transform:translate(-100%)!important;z-index:50!important}.sidebar.open{transform:translate(0)!important}.mobile-topbar{display:flex!important}}::selection{background:#6366f14d;color:#fff}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease-out}input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.7);cursor:pointer}
