:root{--bg-primary:#f5f7fa;--bg-secondary:#fff;--bg-card:#fff;--bg-card-hover:#fafbfd;--border-color:#eaecf0;--border-subtle:#f2f4f7;--text-primary:#101828;--text-secondary:#344054;--text-muted:#667085;--text-light:#98a2b3;--accent-blue:#1e3a5f;--accent-orange:#f90;--accent-green:#12b76a;--accent-red:#f04438;--accent-purple:#7c3aed;--sidebar-bg:#fff;--sidebar-hover:#f9fafb;--sidebar-active:#f0f4ff;--shadow-xs:0 1px 2px rgba(16,24,40,.05);--shadow-sm:0 1px 3px rgba(16,24,40,.1),0 1px 2px rgba(16,24,40,.06);--shadow-md:0 4px 8px -2px rgba(16,24,40,.1),0 2px 4px -2px rgba(16,24,40,.06);--shadow-lg:0 12px 16px -4px rgba(16,24,40,.08),0 4px 6px -2px rgba(16,24,40,.03);--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:18px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:-.011em}a{color:var(--accent-blue);text-decoration:none;transition:color .15s ease}a:hover{color:#2d5a8e}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#d0d5dd;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#98a2b3}.btn-primary{padding:10px 20px;background:var(--accent-blue);color:#fff;border:none;border-radius:var(--radius-md);font-weight:600;font-size:13px;cursor:pointer;transition:all .2s ease;letter-spacing:-.01em}.btn-primary:hover{background:#2d5a8e;transform:translateY(-1px);box-shadow:0 4px 12px rgba(30,58,95,.25)}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{background:#d0d5dd;cursor:not-allowed;transform:none;box-shadow:none}.btn-success{padding:10px 20px;background:var(--accent-green);color:#fff;border:none;border-radius:var(--radius-md);font-weight:600;font-size:13px;cursor:pointer;transition:all .2s ease}.btn-success:hover{background:#0e9b5a;transform:translateY(-1px);box-shadow:0 4px 12px rgba(18,183,106,.25)}nav a{transition:all .15s ease}nav a:hover{background:var(--sidebar-hover)!important;color:var(--text-primary)!important}.sidebar-drawer{position:absolute;top:0;left:-270px;width:260px;height:100%;background:var(--sidebar-bg);border-right:1px solid var(--border-color);box-shadow:8px 0 32px rgba(0,0,0,.06);display:flex;flex-direction:column;overflow-y:auto;transition:left .3s cubic-bezier(.4,0,.2,1);z-index:100}.sidebar-backdrop{display:none;position:absolute;inset:0;background:rgba(16,24,40,.15);backdrop-filter:blur(2px);z-index:90;transition:opacity .3s ease}#sidebar-toggle:checked~div .sidebar-drawer{left:0}#sidebar-toggle:checked~div .sidebar-backdrop{display:block}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);transition:all .2s ease}.card:hover{box-shadow:var(--shadow-md);border-color:#d0d5dd}.kpi-value{font-size:22px;font-weight:700;color:var(--text-primary);letter-spacing:-.02em}.kpi-label{font-size:11px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}table{border-collapse:separate;border-spacing:0}table th{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;padding:10px 14px;border-bottom:1px solid var(--border-color)}table td{font-size:13px;padding:10px 14px;border-bottom:1px solid var(--border-subtle);color:var(--text-secondary)}table tr:hover td{background:var(--bg-card-hover)}input[type=number],input[type=text],select{font-family:inherit;font-size:13px;padding:9px 13px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:#fff;color:var(--text-primary);transition:all .15s ease;outline:none}input[type=number]:focus,input[type=text]:focus,select:focus{border-color:var(--accent-blue);box-shadow:0 0 0 3px rgba(30,58,95,.08)}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e8e8e8 50%,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm)}