:root{--maroon:#7a1330;--maroon-dark:#591020;--gold:#b8902e;--gold-light:#e8d9ab;--cream:#faf6ec;--surface:#fff;--text:#2b2420;--text-muted:#6b6058;--border:#e6ddc9;--danger:#a3223e;--shadow:#5910201f 0 4px 16px;--sans:"Segoe UI", system-ui, Roboto, sans-serif;--serif:Georgia, "Times New Roman", serif;font:16px/1.5 var(--sans);color:var(--text);background:var(--cream);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{background:var(--cream);min-height:100svh;margin:0}#root{flex-direction:column;min-height:100svh;display:flex}h1,h2{font-family:var(--serif);color:var(--maroon-dark);margin:0 0 8px}h1{font-size:28px}h2{font-size:20px}a{color:var(--maroon)}button{font:inherit}.app-main{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:24px 20px 48px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.navbar{background:var(--maroon);color:#fff;box-shadow:var(--shadow);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;padding:10px 24px;display:flex}.navbar-brand{align-items:center;gap:12px;display:flex}.navbar-logo{object-fit:contain;background:#fff;border-radius:50%;width:44px;height:44px}.navbar-titles{flex-direction:column;line-height:1.2;display:flex}.navbar-title{font-family:var(--serif);letter-spacing:.5px;font-size:18px;font-weight:700}.navbar-subtitle{color:var(--gold-light);letter-spacing:.5px;text-transform:uppercase;font-size:12px}.navbar-links{flex-wrap:wrap;gap:20px;display:flex}.navbar-links a{color:#f1e6d8;border-bottom:2px solid #0000;padding:6px 4px;font-size:14px;text-decoration:none}.navbar-links a:hover,.navbar-links a.active{color:#fff;border-bottom-color:var(--gold)}.navbar-user{align-items:center;gap:14px;font-size:14px;display:flex}.navbar-role{background:var(--gold);color:var(--maroon-dark);text-transform:uppercase;letter-spacing:.4px;border-radius:999px;margin-left:6px;padding:1px 8px;font-size:11px;font-weight:700;display:inline-block}.btn-primary{background:var(--maroon);color:#fff;cursor:pointer;border:none;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:10px 18px;font-size:14px;font-weight:600;text-decoration:none;transition:background .15s;display:inline-flex}.btn-primary:hover{background:var(--maroon-dark)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-link{color:var(--maroon);cursor:pointer;background:0 0;border:none;padding:0;font-size:14px;text-decoration:underline}.navbar .btn-link{color:#f1e6d8;text-decoration:none}.navbar .btn-link:hover{color:#fff}.btn-danger{color:var(--danger)}.actions-cell{white-space:nowrap;align-items:center;gap:8px;display:flex}.btn-action{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:#fff;border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-size:12px;font-weight:600;line-height:1.5;transition:background .15s,color .15s,border-color .15s,box-shadow .15s;display:inline-flex}.btn-action svg{flex:none;width:13px;height:13px}.btn-action:hover{box-shadow:0 2px 6px #59102029}.btn-action:focus-visible{outline:none;box-shadow:0 0 0 3px #7a13302e}.btn-action:active{box-shadow:none;transform:translateY(1px)}.btn-edit{color:var(--maroon);border-color:#7a133059}.btn-edit:hover{background:var(--maroon);border-color:var(--maroon);color:#fff}.btn-delete{color:var(--danger);border-color:#a3223e4d}.btn-delete:hover{background:var(--danger);border-color:var(--danger);color:#fff}.btn-delete:focus-visible{box-shadow:0 0 0 3px #a3223e33}.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:10px;padding:24px}.form-grid{grid-template-columns:repeat(2,1fr);gap:16px 20px;margin-bottom:28px;display:grid}.form-grid h2{grid-column:1/-1}.form-grid label{color:var(--text-muted);flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}.form-grid input,.form-grid select{font:inherit;border:1px solid var(--border);color:var(--text);background:#fff;border-radius:6px;padding:9px 12px}.form-grid input:focus,.form-grid select:focus{border-color:var(--maroon);outline:none;box-shadow:0 0 0 3px #7a13301f}.required-mark{color:var(--danger);font-weight:700}.form-grid>button,.form-actions{grid-column:1/-1}.form-actions{align-items:center;gap:16px;display:flex}.table-wrap{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:10px;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:720px;font-size:13px}th,td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 14px}th{background:var(--gold-light);color:var(--maroon-dark);text-transform:uppercase;letter-spacing:.4px;font-size:11px;font-weight:700}tbody tr:hover{background:#fbf3e2}.empty-state{text-align:center;color:var(--text-muted);background:var(--surface);border:1px dashed var(--border);border-radius:10px;padding:32px}.alert-error{color:var(--danger);background:#fbe4e8;border:1px solid #f2b8c2;border-radius:6px;grid-column:1/-1;margin-bottom:4px;padding:10px 14px;font-size:14px}.page>.alert-error{margin-bottom:16px}.login-page{background:radial-gradient(circle at top, #8c1a3a 0%, var(--maroon-dark) 65%);flex:1;justify-content:center;align-items:center;padding:24px;display:flex}.login-card{background:var(--surface);text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:14px;width:100%;max-width:380px;padding:36px 32px;display:flex;box-shadow:0 20px 40px #00000040}.login-logo{object-fit:contain;width:84px;height:84px;margin-bottom:4px}.login-card h1{margin:0;font-size:24px}.login-subtitle{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin:0 0 10px;font-size:13px}.login-card label{text-align:left;width:100%;color:var(--text-muted);flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}.login-card input{font:inherit;border:1px solid var(--border);border-radius:6px;padding:10px 12px}.login-card input:focus{border-color:var(--maroon);outline:none;box-shadow:0 0 0 3px #7a13301f}.login-card .btn-primary{width:100%;margin-top:8px;padding:11px}@media (width<=640px){.form-grid{grid-template-columns:1fr}}
