@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--bg-color:#f8f9fc;--panel-bg:#fff;--text-primary:#1e293b;--text-secondary:#64748b;--accent-primary:#2563eb;--accent-hover:#1d4ed8;--success:#10b981;--warning:#f59e0b;--danger:#ef4444;--border-color:#e2e8f0;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000000d, 0 2px 4px -1px #00000008;--shadow-lg:0 10px 15px -3px #0000000d, 0 4px 6px -2px #00000006;--radius-md:8px;--radius-lg:12px;--radius-xl:16px}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-color);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:Inter,sans-serif}.app-container{min-height:100vh;display:flex}.sidebar{background-color:var(--panel-bg);border-right:1px solid var(--border-color);flex-direction:column;gap:2rem;width:260px;padding:1.5rem;display:flex}.sidebar-logo{color:var(--accent-primary);letter-spacing:-.02em;align-items:center;gap:.5rem;font-size:1.25rem;font-weight:800;display:flex}.nav-links{flex-direction:column;gap:.5rem;display:flex}.nav-item{border-radius:var(--radius-md);color:var(--text-secondary);align-items:center;gap:.75rem;padding:.75rem 1rem;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.nav-item:hover{color:var(--text-primary);background-color:#f1f5f9}.nav-item.active{color:var(--accent-primary);background-color:#eff6ff;font-weight:600}.main-content{flex:1;padding:2.5rem 3rem;overflow-y:auto}.dashboard-header{margin-bottom:2.5rem}.dashboard-header h1{color:var(--text-primary);letter-spacing:-.02em;font-size:1.875rem;font-weight:700}.dashboard-header p{color:var(--text-secondary);margin-top:.25rem}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;margin-bottom:2.5rem;display:grid}.stat-card{background:var(--panel-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid #0000;align-items:flex-start;gap:1rem;padding:1.5rem;transition:transform .2s,box-shadow .2s;display:flex}.stat-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-color);transform:translateY(-2px)}.stat-icon{border-radius:var(--radius-lg);color:var(--accent-primary);background:#eff6ff;justify-content:center;align-items:center;padding:1rem;display:flex}.stat-icon.success{color:#047857;background:#d1fae5}.stat-icon.warning{color:#b45309;background:#fef3c7}.stat-icon.purple{color:#7e22ce;background:#f3e8ff}.stat-info{flex-direction:column;display:flex}.stat-info h3{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem;font-size:.8125rem;font-weight:600}.stat-info p{color:var(--text-primary);letter-spacing:-.02em;font-size:1.75rem;font-weight:700}.table-container{background:var(--panel-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);margin-bottom:2rem;overflow:hidden}.table-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.table-header h2{color:var(--text-primary);font-size:1.125rem;font-weight:600}table{border-collapse:collapse;width:100%}th{text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-color);background-color:#f8fafc;padding:1rem 1.5rem;font-size:.75rem;font-weight:600}td{border-bottom:1px solid var(--border-color);color:var(--text-primary);padding:1rem 1.5rem;font-size:.875rem;font-weight:500}tr:last-child td{border-bottom:none}tr:hover td{background-color:#f8fafc}.text-sub{color:var(--text-secondary);margin-top:.25rem;font-size:.8125rem;font-weight:400;display:block}.badge{border-radius:9999px;align-items:center;gap:.375rem;padding:.25rem .75rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge-success{color:#047857;background:#d1fae5}.badge-warning{color:#b45309;background:#fef3c7}.badge-danger{color:#b91c1c;background:#fee2e2}.badge-neutral{color:#475569;background:#f1f5f9}.pulse-dot{background-color:currentColor;border-radius:50%;width:6px;height:6px;animation:2s infinite pulse}@keyframes pulse{0%{opacity:1;transform:scale(.95)}50%{opacity:.5;transform:scale(1.5)}to{opacity:1;transform:scale(.95)}}.empty-state{text-align:center;color:var(--text-secondary);flex-direction:column;align-items:center;gap:1rem;padding:4rem;display:flex}.spinner{border:3px solid #2563eb1a;border-top-color:var(--accent-primary);border-radius:50%;width:40px;height:40px;margin:4rem auto;animation:1s ease-in-out infinite spin}@keyframes spin{to{transform:rotate(360deg)}}
