*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0d1117;--bg2: #131d2e;--bg3: #1e293b;--bg4: #263348;--border: rgba(148,163,184,.07);--border2: rgba(148,163,184,.14);--text: #e2e8f0;--text2: #94a3b8;--text3: #475569;--accent: #38bdf8;--green: #34d399;--red: #f87171;--amber: #fbbf24;--purple: #a78bfa;--pink: #f472b6;--sidebar: 64px;--font-display: "Plus Jakarta Sans", system-ui, sans-serif;--font-body: "DM Sans", system-ui, sans-serif;--r: 8px;--rl: 12px}[data-theme=light]{--bg: #f8fafc;--bg2: #ffffff;--bg3: #f1f5f9;--bg4: #e2e8f0;--border: rgba(15,23,42,.07);--border2: rgba(15,23,42,.14);--text: #0f172a;--text2: #475569;--text3: #94a3b8;--accent: #0284c7;--green: #059669;--red: #dc2626;--amber: #d97706;--purple: #7c3aed;--pink: #db2777}html,body,#root{height:100%;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:15px;line-height:1.5;transition:background .2s,color .2s}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg4);border-radius:2px}.card{background:var(--bg2);border:.5px solid var(--border);border-radius:var(--rl);padding:16px 18px}.card-sm{background:var(--bg2);border:.5px solid var(--border);border-radius:var(--r);padding:12px 14px}.badge{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:500;padding:2px 8px;border-radius:20px}.badge-green{background:#34d3991f;color:var(--green)}.badge-red{background:#f871711f;color:var(--red)}.badge-amber{background:#fbbf241f;color:var(--amber)}.badge-blue{background:#38bdf81f;color:var(--accent)}.badge-purple{background:#a78bfa1f;color:var(--purple)}.metric-val{font-size:22px;font-weight:500;font-family:var(--font-display);line-height:1.2}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}@keyframes errorShake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-4px)}40%,60%{transform:translate(4px)}}@keyframes logoPop{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.fade-in{animation:fadeUp .3s ease forwards}.skeleton{animation:pulse 1.4s ease infinite;background:var(--bg3);border-radius:var(--r)}.modal-overlay{animation:fadeIn .2s ease}.modal-panel{animation:slideUp .25s cubic-bezier(.2,0,0,1)}.shake{animation:errorShake .4s ease-in-out}.login-reveal{animation:fadeIn .2s ease}.login-reveal-logo{animation:logoPop .5s cubic-bezier(.2,0,0,1)}.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:var(--r);font-size:13px;font-weight:500;border:.5px solid var(--border2);background:transparent;color:var(--text);transition:all .15s;cursor:pointer;font-family:var(--font-body)}.btn:hover{background:var(--bg3)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-primary{background:var(--accent);color:#fff;border-color:transparent}.btn-primary:hover{opacity:.9;background:var(--accent)}.btn-sm{padding:6px 12px;font-size:12px}.btn-danger{background:#dc26261a;color:var(--red);border-color:#dc262633}.input{width:100%;padding:9px 12px;background:var(--bg3);border:.5px solid var(--border2);border-radius:var(--r);color:var(--text);font-size:13px;outline:none;transition:border-color .15s;font-family:var(--font-body)}.input:focus{border-color:var(--accent)}.input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.input::placeholder{color:var(--text3)}.select{padding:9px 12px;background:var(--bg3);border:.5px solid var(--border2);border-radius:var(--r);color:var(--text);font-size:13px;outline:none;cursor:pointer;font-family:var(--font-body)}.select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed}thead th{padding:10px 14px;text-align:left;color:var(--text3);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;border-bottom:.5px solid var(--border);white-space:nowrap}tbody td{padding:11px 14px;border-bottom:.5px solid var(--border);color:var(--text);vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--bg3)}.progress-track{height:5px;background:var(--bg4);border-radius:3px;overflow:hidden}.progress-fill{height:100%;border-radius:3px;transition:width .7s ease}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;color:var(--text3);gap:10px;text-align:center}.empty-state i{font-size:32px;opacity:.4}.chip-bar{display:flex;gap:4px;padding:4px;background:var(--bg3);border-radius:10px;width:fit-content;flex-wrap:wrap}.chip{padding:6px 14px;border-radius:7px;font-size:12px;font-weight:500;color:var(--text3);cursor:pointer;transition:all .15s;white-space:nowrap;border:none;background:transparent;font-family:var(--font-body)}.chip.active{background:var(--bg2);color:var(--text);box-shadow:0 1px 3px #0003}.chip:hover:not(.active){color:var(--text2)}.tag{font-size:11px;padding:2px 7px;border-radius:4px;background:var(--bg3);color:var(--text2)}.section-header{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:20px}.page-label{font-size:11px;color:var(--text3);text-transform:uppercase;letter-spacing:.07em;margin-bottom:4px}.page-title{font-size:26px;font-weight:500;font-family:var(--font-display)}@media (max-width:768px){.page-title{font-size:22px}.metric-val{font-size:18px}.hide-mobile{display:none!important}.grid-responsive{grid-template-columns:1fr 1fr!important}}@media (max-width:480px){.grid-responsive{grid-template-columns:1fr!important}}.chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.fade-in{animation:none}.skeleton{animation:none;opacity:.6}.progress-fill{transition:none}.modal-overlay,.modal-panel,.shake,.login-reveal,.login-reveal-logo{animation:none}}@keyframes slideInChecklist{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}
