:root{--brand-blue:#004aa1;--primary:#0033a4;--primary-dark:#003167;--primary-light:#e7f0f8;--navy:#003167;--navy-dark:#002043;--danger:#e02424;--danger-light:#fde8e8;--success:#057a55;--success-light:#def7ec;--warning:#c27803;--warning-light:#fdf6b2;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#3d3d3d;--gray-900:#3c3c3c;--white:#fff;--input-bg:#f0f0f0;--slider-dot:#e0e0e0;--shadow-sm:0 1px 2px #0000000d;--shadow:0 1px 3px #0000001a, 0 1px 2px #0000000f;--shadow-md:0 4px 6px #00000012, 0 2px 4px #0000000f;--shadow-lg:0 10px 15px #0000001a, 0 4px 6px #0000000d;--radius:8px;--radius-sm:4px;--radius-lg:12px}*,:before,:after{box-sizing:border-box}html,body{color:var(--gray-800);background:var(--gray-50);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:14px}#app{min-height:100vh}h1,h2,h3,h4,h5,h6{color:var(--gray-900);margin:0;font-weight:600}p{margin:0}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.btn{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:1px solid #0000;align-items:center;gap:6px;padding:8px 16px;font-size:14px;font-weight:500;transition:all .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:var(--white);border-color:var(--primary)}.btn-primary:hover:not(:disabled){background:var(--primary-dark);border-color:var(--primary-dark)}.btn-secondary{background:var(--white);color:var(--gray-700);border-color:var(--gray-300)}.btn-secondary:hover:not(:disabled){background:var(--gray-50)}.btn-danger{background:var(--danger);color:var(--white);border-color:var(--danger)}.btn-danger:hover:not(:disabled){background:#c81e1e}.btn-sm{padding:4px 10px;font-size:12px}.btn-lg{padding:12px 24px;font-size:16px}.form-group{flex-direction:column;gap:6px;display:flex}.form-label{color:var(--gray-700);font-size:14px;font-weight:500}.form-input,.form-select,.form-textarea{border:1px solid var(--gray-300);border-radius:var(--radius-sm);width:100%;color:var(--gray-800);background:var(--white);outline:none;padding:8px 12px;font-size:14px;transition:border-color .15s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #0033a426}.form-textarea{resize:vertical;min-height:80px;font-family:inherit}.card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card-header{border-bottom:1px solid var(--gray-200);justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.card-body{padding:20px}.table-wrapper{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th{background:var(--gray-50);color:var(--gray-600);text-align:left;border-bottom:1px solid var(--gray-200);white-space:nowrap;padding:10px 14px;font-weight:500}td{border-bottom:1px solid var(--gray-100);color:var(--gray-700);padding:10px 14px}tr:last-child td{border-bottom:none}tr:hover td{background:var(--gray-50)}.badge{border-radius:9999px;align-items:center;padding:2px 8px;font-size:12px;font-weight:500;display:inline-flex}.badge-primary{background:var(--primary-light);color:var(--primary)}.badge-success{background:var(--success-light);color:var(--success)}.badge-danger{background:var(--danger-light);color:var(--danger)}.badge-warning{background:var(--warning-light);color:var(--warning)}.badge-gray{background:var(--gray-100);color:var(--gray-500)}.alert{border-radius:var(--radius-sm);border:1px solid #0000;padding:12px 16px;font-size:14px}.alert-error{background:var(--danger-light);color:var(--danger);border-color:#f8b4b4}.alert-success{background:var(--success-light);color:var(--success);border-color:#84e1bc}.alert-warning{background:var(--warning-light);color:var(--warning);border-color:#faca15}.loading-spinner{justify-content:center;align-items:center;padding:40px;display:flex}.spinner{border:3px solid var(--gray-200);border-top-color:var(--primary);border-radius:50%;width:32px;height:32px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.page-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.page-title{color:var(--gray-900);font-size:20px;font-weight:600}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:560px;max-height:90vh;overflow-y:auto}.modal-header{border-bottom:1px solid var(--gray-200);justify-content:space-between;align-items:center;padding:20px 24px 16px;display:flex}.modal-body{padding:20px 24px}.modal-footer{border-top:1px solid var(--gray-200);justify-content:flex-end;gap:8px;padding:16px 24px 20px;display:flex}.modal-close{cursor:pointer;color:var(--gray-400);background:0 0;border:none;padding:0;font-size:20px;line-height:1}.modal-close:hover{color:var(--gray-700)}.navbar{background:var(--white);border-bottom:1px solid var(--gray-200);height:56px;box-shadow:var(--shadow-sm);z-index:100;align-items:center;gap:16px;padding:0 24px;display:flex;position:sticky;top:0}.navbar-brand{color:var(--primary);font-size:16px;font-weight:700;text-decoration:none}.navbar-brand:hover{text-decoration:none}.navbar-nav{flex:1;align-items:center;gap:4px;display:flex}.nav-link{border-radius:var(--radius-sm);color:var(--gray-600);cursor:pointer;padding:6px 12px;font-size:14px;text-decoration:none;transition:all .15s}.nav-link:hover{background:var(--gray-100);color:var(--gray-800);text-decoration:none}.nav-link.active{background:var(--primary-light);color:var(--primary);font-weight:500}.navbar-user{color:var(--gray-600);align-items:center;gap:8px;font-size:13px;display:flex}.page-container{max-width:1280px;margin:0 auto;padding:24px}.text-muted{color:var(--gray-500)}.text-danger{color:var(--danger)}.text-success{color:var(--success)}.text-sm{font-size:12px}.font-medium{font-weight:500}.font-semibold{font-weight:600}.flex{display:flex}.flex-1{flex:1}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mb-4{margin-bottom:16px}.grid{display:grid}.w-full{width:100%}
