:root{--font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";--bg: #f6f8fc;--surface: #ffffff;--surface-2: #f8fafc;--text: #0f172a;--muted: #64748b;--border: rgba(15, 23, 42, .12);--gray-50: #f8fafc;--gray-100: #f1f5f9;--gray-200: #e2e8f0;--gray-300: #cbd5e1;--gray-400: #94a3b8;--gray-500: #64748b;--gray-600: #475569;--gray-700: #334155;--shadow-xs: 0 1px 1px rgba(16, 24, 40, .04);--shadow-sm: 0 1px 2px rgba(16, 24, 40, .08);--shadow-md: 0 12px 30px rgba(16, 24, 40, .12);--radius-sm: 10px;--radius: 12px;--radius-lg: 16px;--primary: #2563eb;--primary-600: #1d4ed8;--primary-700: #1e40af;--success: #16a34a;--warning: #f59e0b;--danger: #ef4444;--info: #0ea5e9;--sidebar-bg: #0b1220;--sidebar-border: rgba(255, 255, 255, .08);--sidebar-text: rgba(255, 255, 255, .82);--sidebar-muted: rgba(255, 255, 255, .56);--sidebar-hover-bg: rgba(255, 255, 255, .06);--sidebar-active-bg: rgba(37, 99, 235, .18);--sidebar-width-expanded: 248px;--sidebar-width-collapsed: 72px;--sidebar-rail-width: var(--sidebar-width-expanded);--sidebar-panel-width: var(--sidebar-width-expanded);--topbar-height: 50px}html,body{height:100%}body{font-family:var(--font-sans);color:var(--text);overflow-x:hidden;background:radial-gradient(1200px 700px at 0% 0%,rgba(37,99,235,.12),transparent 60%),radial-gradient(900px 600px at 100% 0%,rgba(14,165,233,.1),transparent 55%),var(--bg)}a{color:inherit}.app-shell{min-height:100vh;display:flex}.app-main{flex:1;min-width:0;display:flex;flex-direction:column;min-height:100vh;margin-left:var(--sidebar-rail-width)}.app-content{padding:12px}@media(max-width:991.98px){.app-main{margin-left:0}}#sidebar{width:var(--sidebar-panel-width);position:fixed;top:0;left:0;height:100vh;overflow-y:auto;padding:10px 8px;background:linear-gradient(180deg,#0b1220,#090f1d);border-right:1px solid var(--sidebar-border);z-index:1040;transition:transform .25s ease,width .18s ease}body.sidebar-collapsed{--sidebar-rail-width: var(--sidebar-width-collapsed);--sidebar-panel-width: var(--sidebar-width-collapsed)}body.sidebar-collapsed.sidebar-hovering{--sidebar-panel-width: var(--sidebar-width-expanded)}body.sidebar-collapsed .sidebar-brand{justify-content:center}body.sidebar-collapsed .sidebar-brand .brand-title,body.sidebar-collapsed .sidebar-section-title{display:none}body.sidebar-collapsed .sidebar-link{justify-content:center}body.sidebar-collapsed .sidebar-link.sub{padding-left:12px}body.sidebar-collapsed .sidebar-link .sidebar-label{display:none}body.sidebar-collapsed.sidebar-hovering #sidebar{box-shadow:16px 0 40px #02061740}body.sidebar-collapsed.sidebar-hovering .sidebar-brand{justify-content:flex-start}body.sidebar-collapsed.sidebar-hovering .sidebar-brand .brand-title{display:flex}body.sidebar-collapsed.sidebar-hovering .sidebar-section-title{display:block}body.sidebar-collapsed.sidebar-hovering .sidebar-link{justify-content:flex-start}body.sidebar-collapsed.sidebar-hovering .sidebar-link .sidebar-label{display:inline}.sidebar-brand{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:12px;text-decoration:none;color:#fff}.sidebar-brand .brand-mark{width:32px;height:32px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-700) 100%);box-shadow:0 10px 24px #2563eb40}.sidebar-brand .brand-title{display:flex;flex-direction:column;line-height:1.1}.sidebar-brand .brand-title strong{font-size:.85rem;letter-spacing:.2px}.sidebar-brand .brand-title span{font-size:.68rem;color:var(--sidebar-muted)}.sidebar-section-title{margin-top:12px;margin-bottom:4px;padding:0 10px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--sidebar-muted)}.sidebar-nav{list-style:none;padding:0;margin:10px 0 0}.sidebar-link{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;color:var(--sidebar-text);text-decoration:none;font-weight:500;font-size:.82rem;transition:background .15s ease,color .15s ease}.sidebar-link i{font-size:1.06rem;opacity:.95}.sidebar-link:hover{background:var(--sidebar-hover-bg);color:#fff}.sidebar-link.active{background:var(--sidebar-active-bg);color:#fff;box-shadow:inset 0 0 0 1px #93c5fd38}.sidebar-link.sub{padding-left:24px}.sidebar-backdrop{position:fixed;inset:0;background:#0206178c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1035;display:none}@media(max-width:991.98px){#sidebar{transform:translate(calc(-1 * var(--sidebar-panel-width)))}body.sidebar-open #sidebar{transform:translate(0)}body.sidebar-open .sidebar-backdrop{display:block}}.app-topbar.navbar{height:var(--topbar-height);padding:8px 12px;position:sticky;top:0;z-index:1030;background:#ffffffc7!important;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.app-topbar .navbar-brand{font-weight:800;letter-spacing:.2px}.card-modern{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.card-modern .card-header{display:flex;align-items:center;gap:8px;padding:8px 10px;background:linear-gradient(180deg,#f8fafcd9,#fff);border-bottom:1px solid var(--border);font-weight:700;color:var(--text)}.card-modern .card-header h5{font-size:.85rem;font-weight:800}.card-modern .card-body{padding:10px}.card-modern .card-footer{padding:8px 10px;background:var(--surface);border-top:1px solid var(--border)}.stat-card-light{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.table-modern{width:100%;border-collapse:separate;border-spacing:0}.table-modern thead th{background:var(--surface-2);padding:8px 10px;font-weight:700;font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;border-bottom:1px solid var(--border);white-space:nowrap}.table-modern tbody td,.table-modern tbody th{padding:8px 10px;border-bottom:1px solid rgba(15,23,42,.08);color:var(--text);vertical-align:middle;font-size:.85rem}.table-modern tbody tr:hover{background:#2563eb0a}.badge-modern{padding:.24rem .52rem;border-radius:999px;font-weight:700;font-size:.62rem;display:inline-flex;align-items:center;gap:.3rem;line-height:1.1;border:1px solid transparent}.badge-primary{background:#2563eb1a;color:var(--primary-700);border-color:#2563eb2e}.badge-secondary{background:#64748b1f;color:#334155;border-color:#64748b38}.badge-success{background:#16a34a1f;color:#166534;border-color:#16a34a38}.badge-danger{background:#ef44441f;color:#991b1b;border-color:#ef444438}.badge-warning{background:#f59e0b24;color:#92400e;border-color:#f59e0b3d}.badge-info{background:#0ea5e924;color:#075985;border-color:#0ea5e938}.btn-primary-modern{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-600) 100%);border:1px solid rgba(37,99,235,.22);color:#fff!important;border-radius:10px;padding:.4rem .68rem;font-weight:700;font-size:.82rem;box-shadow:0 10px 20px #2563eb2e;transition:transform .12s ease,box-shadow .12s ease}.btn-primary-modern:hover{transform:translateY(-1px);box-shadow:0 14px 26px #2563eb38}.btn-outline-modern{background:#ffffffe6;border:1px solid rgba(15,23,42,.14);color:var(--text)!important;border-radius:10px;padding:.4rem .68rem;font-weight:700;font-size:.82rem;transition:background .12s ease,border-color .12s ease}.btn-outline-modern:hover{background:#f8fafc;border-color:#2563eb38}.form-label-modern{font-weight:700;font-size:.78rem;color:var(--text);margin-bottom:.3rem}.form-control-modern{display:block;width:100%;border:1px solid rgba(15,23,42,.14);border-radius:10px;padding:.48rem .68rem;background:#ffffffeb;font-size:.82rem;transition:box-shadow .12s ease,border-color .12s ease,background .12s ease}.list-group-item{padding-top:.6rem;padding-bottom:.6rem}.form-control-modern:focus{outline:none;border-color:#2563eb8c;box-shadow:0 0 0 4px #2563eb1f;background:#fff}.form-control-modern.is-invalid{border-color:#ef44448c;box-shadow:0 0 0 4px #ef44441a}.avatar{width:40px;height:40px;border-radius:999px;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-700) 100%);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:800}.avatar-sm{width:32px;height:32px;font-size:.875rem}.avatar-lg{width:48px;height:48px;font-size:1.125rem}.avatar-circle{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-600) 100%);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto}.modal-content{border-radius:var(--radius-lg);border:1px solid rgba(15,23,42,.12);box-shadow:var(--shadow-md)}.modal-header{border-bottom:1px solid rgba(15,23,42,.1)}.modal-footer{border-top:1px solid rgba(15,23,42,.1)}.pagination{gap:6px}.pagination .page-link{border-radius:10px!important;border:1px solid rgba(15,23,42,.12);color:var(--text)}.pagination .page-item.active .page-link{background:var(--primary);border-color:#2563eb59}.loading-overlay{position:fixed;inset:0;background:#ffffffbf;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:none;align-items:center;justify-content:center;z-index:2000}.loading-overlay.active{display:flex}.loading-spinner{width:56px;height:56px;border:4px solid rgba(15,23,42,.1);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.input-group{display:flex;align-items:center;gap:0;flex-wrap:nowrap}.input-group-text{display:flex;align-items:center;justify-content:center;border:1px solid rgba(15,23,42,.14);border-radius:12px 0 0 12px;padding:.58rem .78rem;font-size:.95rem;color:var(--muted);flex-shrink:0}.input-group .form-control-modern{border-radius:0 12px 12px 0;flex:1;min-width:0}.login-card{width:100%;max-width:440px;background:#ffffffeb;border:1px solid rgba(15,23,42,.12);border-radius:24px;box-shadow:var(--shadow-md);padding:32px}.login-brand{text-align:center;margin-bottom:22px}.login-brand .brand-icon{width:64px;height:64px;border-radius:18px;display:inline-flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-700) 100%);box-shadow:0 14px 30px #2563eb38;font-size:28px;margin-bottom:14px}.login-brand h1{font-size:1.35rem;font-weight:900;margin-bottom:6px}.login-brand p{margin:0;color:var(--muted);font-size:.9rem}.login-footer{text-align:center;margin-top:18px;color:var(--muted);font-size:.8rem}
