@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap");:root{--bg-base:#f8fafc;--bg-surface:#ffffff;--bg-elevated:#f1f5f9;--text-main:#0f172a;--text-muted:#64748b;--accent-primary:#3b82f6;--accent-hover:#2563eb;--success:#16a34a;--danger:#ef4444;--border:#e2e8f0;--radius:12px}[data-theme=dark]{--bg-base:#0f172a;--bg-surface:#1e293b;--bg-elevated:#334155;--text-main:#f8fafc;--text-muted:#94a3b8;--border:#334155;--success:#22c55e}*{box-sizing:border-box;padding:0;margin:0;font-family:Inter,sans-serif}body{background-color:var(--bg-base);color:var(--text-main);min-height:100vh;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.panel{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius)}.btn-primary{background:var(--accent-primary);color:white;border:none;padding:12px 24px;border-radius:var(--radius);font-weight:600;font-size:14px;cursor:pointer;transition:background .15s ease;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.input-field{width:100%;background:var(--bg-base);border:1px solid var(--border);color:var(--text-main);padding:12px 16px;border-radius:var(--radius);font-size:14px;outline:none;transition:border-color .15s ease}.input-field:focus{border-color:var(--accent-primary)}.label{display:block;font-size:13px;font-weight:500;color:var(--text-muted);margin-bottom:6px}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid var(--border);border-top-color:var(--accent-primary);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@keyframes card-enter{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.table-responsive{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.stat-grid{grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px}.charts-grid,.stat-grid{display:grid;margin-bottom:32px}.charts-grid{grid-template-columns:2fr 1fr;grid-gap:24px;gap:24px}@media (max-width:900px){.stat-grid{grid-template-columns:repeat(2,1fr)}.charts-grid{grid-template-columns:1fr}}@media (max-width:540px){.stat-grid{grid-template-columns:repeat(2,1fr);gap:10px}}@media (max-width:480px){.stat-grid{grid-template-columns:1fr}}.page-container{max-width:1100px;margin:0 auto;padding:20px clamp(12px,4vw,32px)}.search-wrap{position:relative;flex:1 1 200px;min-width:180px;max-width:320px}.skeleton{background:linear-gradient(90deg,var(--bg-elevated) 25%,var(--border) 37%,var(--bg-elevated) 63%);background-size:400% 100%;animation:skeleton-shimmer 1.4s ease infinite;border-radius:6px}@keyframes skeleton-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}@keyframes slideUpToast{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.input-field,.panel,body{transition:background-color .2s ease,color .2s ease,border-color .2s ease}button{transition:background-color .15s ease,border-color .15s ease,color .15s ease,filter .15s ease,opacity .15s ease,transform .1s ease,box-shadow .15s ease}button:hover:not(:disabled){filter:brightness(.94)}button:active:not(:disabled){transform:scale(.97)}:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.data-table tbody tr{transition:background-color .12s ease}.data-table tbody tr:hover{background:var(--bg-elevated)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes modalIn{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes modalOut{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(12px) scale(.98)}}.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.55);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:16px;z-index:1000;animation:fadeIn .18s ease-out}.modal-backdrop.modal-closing{animation:fadeOut .15s ease-in forwards}.modal-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:520px;max-height:90vh;overflow-y:auto;padding:24px;animation:modalIn .22s cubic-bezier(.16,1,.3,1)}.modal-card.modal-closing{animation:modalOut .15s ease-in forwards}@keyframes fadeSlideOutToast{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(12px) scale(.95)}}.toast-exit{animation:fadeSlideOutToast .25s ease-in forwards}