:root{--brand-900:#0b3654;--brand-800:#0f4570;--brand-700:#176a9d;--brand-600:#1e7fb8;--brand-500:#2581b8;--brand-400:#2d91c7;--brand-100:#eaf4ff;--brand-50:#f3f9ff;--accent-amber:#f5a623;--accent-amber-600:#e99b00;--accent-cyan:#00b4d8;--accent-cyan-600:#007a99;--accent-green:#28a745;--accent-green-600:#1e8449;--accent-red:#dc3545;--accent-red-600:#c94343;--ink-900:#101828;--ink-700:#344054;--ink-500:#667085;--ink-400:#98a2b3;--line:#edf0f4;--line-soft:#f1f4f8;--surface:#fff;--surface-subtle:#f8fafc;--bg-app:#f4f6f9;--shadow-sm:0 5px 18px #1018280d;--shadow-md:0 12px 28px #1018281a;--shadow-lg:0 18px 40px #10182824;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--ease:cubic-bezier(.4, 0, .2, 1);--dur-fast:.15s;--dur-base:.24s;--font-sans:"Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, sans-serif;--bs-primary:var(--brand-600);--bs-primary-rgb:30, 127, 184;--bs-secondary:var(--ink-500);--bs-success:var(--accent-green);--bs-success-rgb:40, 167, 69;--bs-warning:var(--accent-amber);--bs-warning-rgb:245, 166, 35;--bs-danger:var(--accent-red);--bs-danger-rgb:220, 53, 69;--bs-info:var(--accent-cyan-600);--bs-info-rgb:0, 122, 153;--bs-border-radius:var(--radius-md);--bs-border-radius-sm:var(--radius-sm);--bs-border-radius-lg:var(--radius-lg);--bs-border-color:var(--line);--bs-body-font-family:var(--font-sans);--bs-body-color:var(--ink-700);--bs-body-bg:var(--bg-app);--bs-link-color:var(--brand-600);--bs-link-hover-color:var(--brand-700);--bs-focus-ring-color:#1e7fb840}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body{font-family:var(--font-sans);color:var(--ink-700)}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans)}body.app-shell{background:var(--bg-app);height:100vh;margin:0;display:flex}.app-sidebar{background:linear-gradient(180deg, var(--brand-900) 0%, var(--brand-800) 100%);color:#fff;scrollbar-width:thin;scrollbar-color:#ffffff2e transparent;flex-direction:column;flex-shrink:0;width:264px;height:100vh;display:flex;overflow-y:auto}.app-sidebar::-webkit-scrollbar{width:6px}.app-sidebar::-webkit-scrollbar-thumb{background:#ffffff2e;border-radius:10px}.app-sidebar-brand{border-bottom:1px solid #ffffff14;align-items:center;gap:12px;padding:22px 20px;display:flex}.app-sidebar-brand-icon{background:#ffffff1f;border:1px solid #ffffff29;border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:16px;display:flex}.app-sidebar-brand-text{line-height:1.25}.app-sidebar-brand-text strong{letter-spacing:.2px;font-size:14.5px;font-weight:800;display:block}.app-sidebar-brand-text small{color:#ffffff8c;letter-spacing:.3px;font-size:10.5px;font-weight:600}.app-nav{padding:12px 10px}.app-nav-link{border-radius:var(--radius-sm);color:#ffffffb8;transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);align-items:center;gap:11px;margin-bottom:2px;padding:10px 12px;font-size:13.5px;font-weight:500;text-decoration:none;display:flex;position:relative}.app-nav-link i.app-nav-icon{text-align:center;color:#ffffff8c;width:18px;transition:color var(--dur-fast) var(--ease);flex-shrink:0;font-size:14px}.app-nav-link:hover{color:#fff;background:#ffffff12;transform:translate(2px)}.app-nav-link:hover i.app-nav-icon{color:#ffffffd9}.app-nav-link.is-active{color:#fff;background:#ffffff1a;font-weight:700}.app-nav-link.is-active i.app-nav-icon{color:var(--accent-amber)}.app-nav-link.is-active:before{content:"";background:var(--accent-amber);border-radius:0 3px 3px 0;width:3px;position:absolute;top:8px;bottom:8px;left:-10px}.app-nav-group-toggle{letter-spacing:1px;color:#fff6;cursor:pointer;justify-content:space-between;align-items:center;margin-top:6px;padding:14px 12px 6px;font-size:10.5px;font-weight:800;text-decoration:none;display:flex}.app-nav-group-toggle:hover{color:#ffffffa6}.app-nav-group-toggle .chevron{transition:transform var(--dur-base) var(--ease);font-size:10px}.app-nav-group-toggle[aria-expanded=true] .chevron{transform:rotate(180deg)}.app-nav-sub{padding-left:6px}.app-nav-sub .app-nav-link{padding-left:34px;font-size:12.5px}.app-sidebar-footer{border-top:1px solid #ffffff14;margin-top:auto;padding:16px}.app-sidebar-footer .btn{--bs-btn-bg:#dc354524;--bs-btn-border-color:#dc35454d;--bs-btn-color:#ffb4bd;--bs-btn-hover-bg:var(--accent-red);--bs-btn-hover-border-color:var(--accent-red);--bs-btn-hover-color:#fff;font-weight:700}.app-main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.app-topbar{background:var(--surface);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:16px 28px;display:flex}.app-topbar-title{color:var(--ink-900);letter-spacing:-.2px;font-size:19px;font-weight:800}.app-topbar-user{background:var(--surface-subtle);border:1px solid var(--line);border-radius:999px;align-items:center;gap:10px;padding:6px 12px 6px 6px;display:flex}.app-topbar-user-avatar{background:linear-gradient(135deg, var(--brand-700), var(--brand-400));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:12px;font-weight:800;display:flex}.app-topbar-user-name{color:var(--ink-700);font-size:13px;font-weight:700}.app-content{animation:contentFadeIn var(--dur-base) var(--ease);padding:24px 28px 32px;overflow-y:auto}@keyframes contentFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.card{border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card-header{border:none;padding:14px 20px;font-weight:700;background:linear-gradient(135deg, var(--brand-700), var(--brand-400))!important;color:#fff!important}.card-header .btn{font-weight:700}.btn{letter-spacing:.1px;border-radius:var(--radius-sm);transition:transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), filter var(--dur-fast) var(--ease);font-weight:600}.btn:hover{filter:brightness(1.03);transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn-primary{--bs-btn-bg:var(--brand-600);--bs-btn-border-color:var(--brand-600);--bs-btn-hover-bg:var(--brand-700);--bs-btn-hover-border-color:var(--brand-700);box-shadow:0 2px 8px #1e7fb847}.btn-primary:hover{box-shadow:0 6px 16px #1e7fb852}.table{--bs-table-border-color:var(--line);color:var(--ink-700);font-size:14.5px;line-height:1.55}.table>:not(caption)>*>*{padding:14px 18px}.table>thead{background:var(--surface-subtle)}.table>thead th{letter-spacing:.4px;text-transform:uppercase;color:var(--ink-500);border-bottom:1px solid var(--line);font-size:11.5px;font-weight:700}.table-hover>tbody>tr:hover>*{background-color:var(--brand-50)}.form-control,.form-select{border-color:var(--line);transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease)}.form-control:focus,.form-select:focus{border-color:var(--brand-500)}.form-label{color:var(--ink-700);font-size:13px;font-weight:600}.alert{border:none;border-left:4px solid #0000}.alert-success{border-left-color:var(--accent-green)}.alert-danger{border-left-color:var(--accent-red)}.alert-warning{border-left-color:var(--accent-amber)}.alert-info{border-left-color:var(--accent-cyan-600)}.pagination .page-link{border-color:var(--line);color:var(--ink-700)}.pagination .page-item.active .page-link{background:var(--brand-600);border-color:var(--brand-600)}@media (width<=900px){body.app-shell{height:auto;display:block}.app-sidebar{z-index:1050;transition:transform var(--dur-base) var(--ease);box-shadow:var(--shadow-lg);position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.app-sidebar.is-open{transform:translate(0)}.app-main{height:100vh}.app-topbar{padding:14px 16px}.app-content{padding:18px 16px 28px}}.app-sidebar-backdrop{display:none}@media (width<=900px){.app-sidebar-backdrop.is-open{z-index:1040;background:#10182873;display:block;position:fixed;inset:0}}.app-sidebar-toggle{display:none}@media (width<=900px){.app-sidebar-toggle{border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);width:36px;height:36px;color:var(--ink-700);justify-content:center;align-items:center;display:inline-flex}}
