@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";:root{--bg:#f6f5f1;--surface:#fff;--surface-muted:#faf8f2;--border:#e8e3d8;--border-strong:#d8d0be;--text:#332c2a;--text-muted:#7c716a;--text-faint:#ada298;--heading:#241d1b;--primary:#80161a;--primary-hover:#6c1216;--primary-active:#591016;--primary-soft:#faeaeb;--primary-soft-border:#f0c9cb;--lime:#c8da2e;--lime-dark:#92a017;--lime-soft:#f6f9dc;--blue:#2f6e9e;--blue-soft:#e7f1f8;--purple:#7c5cbf;--purple-soft:#f1ecfa;--teal:#1f9e86;--teal-soft:#e4f7f3;--amber:#d68a1f;--amber-soft:#fbf0dd;--danger:#cc3d3d;--danger-soft:#fbe9e9;--success:#1f9e64;--success-soft:#e6f7ee;--warning:#c98a1c;--warning-soft:#fdf3e1;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--shadow-sm:0 1px 2px #321e1412;--shadow-md:0 8px 24px #321e1417;--shadow-lg:0 24px 48px -12px #32191447;--transition:.15s cubic-bezier(.4, 0, .2, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:var(--bg);margin:0}#root{min-height:100vh}h1,h2,h3{color:var(--heading);letter-spacing:-.02em;margin:0 0 20px;font-family:inherit;font-weight:700}h1{font-size:26px}h2{font-size:18px}p{line-height:1.6}a{color:var(--primary)}label{letter-spacing:.02em;color:var(--text-muted);text-transform:uppercase;margin-bottom:6px;font-size:12.5px;font-weight:600;display:block}input,textarea{color:var(--text);background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-sm);width:100%;transition:border-color var(--transition), box-shadow var(--transition), background var(--transition);outline:none;padding:10px 13px;font-family:inherit;font-size:14.5px}input::placeholder,textarea::placeholder{color:var(--text-faint)}input:hover,textarea:hover{border-color:var(--border-strong)}input:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-soft)}input:disabled{background:var(--surface-muted);color:var(--text-faint);cursor:not-allowed}.custom-select{width:100%;position:relative}.custom-select-trigger{text-align:left;width:100%;color:var(--text);background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23767a94' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 13px center;border:1.5px solid var(--border);border-radius:var(--radius-sm);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;transition:border-color var(--transition), box-shadow var(--transition), background-color var(--transition);outline:none;padding:10px 34px 10px 13px;font-family:inherit;font-size:14.5px;font-weight:400;display:block;overflow:hidden}.custom-select-trigger:hover:not(:disabled){border-color:var(--border-strong)}.custom-select-trigger:focus,.custom-select-trigger[aria-expanded=true]{border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-soft)}.custom-select-trigger:disabled{background-color:var(--surface-muted);color:var(--text-faint);cursor:not-allowed}.custom-select-placeholder{color:var(--text-faint)}.custom-select-listbox{z-index:200;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);max-height:252px;box-shadow:var(--shadow-md);margin:0;padding:6px;list-style:none;overflow-y:auto}.custom-select-option{border-radius:var(--radius-sm);cursor:pointer;color:var(--text);padding:8px 10px;font-size:14.5px}.custom-select-option.highlighted{background:var(--primary-soft);color:var(--primary)}.custom-select-option[aria-selected=true]{font-weight:600}.custom-select-option.disabled{color:var(--text-faint);cursor:not-allowed}button{border-radius:var(--radius-sm);cursor:pointer;transition:transform var(--transition), box-shadow var(--transition), background var(--transition), border-color var(--transition), opacity var(--transition);background:var(--primary);color:#fff;border:1.5px solid #0000;padding:10px 18px;font-family:inherit;font-size:14.5px;font-weight:600}button:hover:not(:disabled){background:var(--primary-hover);box-shadow:var(--shadow-sm)}button:active:not(:disabled){background:var(--primary-active);transform:translateY(1px)}button:disabled{opacity:.55;cursor:not-allowed}button.secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}button.secondary:hover:not(:disabled){background:var(--surface-muted);border-color:var(--text-faint)}button.danger{background:var(--danger)}button.danger:hover:not(:disabled){background:#c9375f}button.ghost{color:var(--primary);background:0 0;border-color:#0000;padding:8px 12px}button.ghost:hover:not(:disabled){background:var(--primary-soft);box-shadow:none}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:24px}.field{flex-direction:column;gap:0;min-width:180px;display:flex}.field-row{flex-wrap:wrap;align-items:flex-end;gap:14px;display:flex}.toolbar{flex-wrap:wrap;align-items:flex-end;gap:14px;margin-bottom:28px;display:flex}.error-text{color:var(--danger);margin:0;font-size:13.5px;font-weight:500}.page-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.page-header h1{margin:0}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border-left:4px solid var(--stat-color,var(--primary));padding:18px 20px}.stat-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:6px;font-size:12px;font-weight:700}.stat-value{color:var(--stat-color,var(--heading));font-size:28px;font-weight:800}.modal-backdrop{z-index:100;background:#241d1b73;justify-content:center;align-items:center;padding:24px;animation:.12s ease-out modal-fade-in;display:flex;position:fixed;inset:0}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:var(--modal-width,480px);border-top:4px solid var(--primary);flex-direction:column;max-height:calc(100vh - 48px);display:flex;overflow:hidden}.modal-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h2{margin:0}.modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:20px;line-height:1}.modal-close:hover{background:var(--surface-muted);color:var(--text)}.modal-body{padding:24px;overflow-y:auto}.modal-footer{border-top:1px solid var(--border);flex-shrink:0;justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}.modal-section{border-top:1px solid var(--border);margin-top:20px;padding-top:20px}.modal-section h3{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:0 0 12px;font-size:13px;font-weight:700}.detail-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:9px 0;font-size:14px;display:flex}.detail-row:last-child{border-bottom:none}.detail-label{color:var(--text-muted);font-weight:600}.assignment-item{background:var(--surface-muted);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;margin-bottom:6px;padding:8px 12px;font-size:13.5px;display:flex}.icon-btn{color:var(--danger);background:0 0;border:none;padding:2px 8px;font-size:13px;font-weight:700}.icon-btn:hover:not(:disabled){background:var(--danger-soft);box-shadow:none}.row-actions{gap:6px;display:flex}.status-key{background:var(--lime-soft);border:1px solid var(--border);border-left:4px solid var(--lime-dark);border-radius:var(--radius-md);flex-wrap:wrap;align-items:center;gap:8px 18px;margin-bottom:20px;padding:12px 16px;display:flex}.status-key-title{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);flex-basis:100%;margin-bottom:2px;font-size:11.5px;font-weight:700}.status-key-item{color:var(--text);white-space:nowrap;font-size:13px}.status-key-item b{color:var(--primary);margin-right:3px;font-weight:700}.pill{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:4px 11px;font-size:12.5px;font-weight:600;display:inline-flex}.pill-success{background:var(--success-soft);color:var(--success)}.pill-danger{background:var(--danger-soft);color:var(--danger)}.pill-warning{background:var(--warning-soft);color:var(--warning)}.pill-neutral{background:var(--surface-muted);color:var(--text-muted);border:1px solid var(--border)}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:auto hidden}table.data-table{border-collapse:collapse;width:100%;font-size:14px}table.data-table thead th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--surface-muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:13px 16px;font-size:11.5px;font-weight:700}table.data-table tbody td{border-bottom:1px solid var(--border);color:var(--text);padding:13px 16px}table.data-table tbody tr:last-child td{border-bottom:none}table.data-table tbody tr{transition:background var(--transition)}table.data-table tbody tr:hover{background:var(--surface-muted)}.empty-state{text-align:center;color:var(--text-muted);padding:40px 16px;font-size:14px}.app-shell{min-height:100vh;display:flex}.app-sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:240px;padding:0 18px 24px;display:flex;position:relative}.app-sidebar:before{content:"";background:linear-gradient(90deg, var(--primary) 0%, var(--primary) 60%, var(--lime) 100%);height:4px;margin:0 -18px 20px;display:block}.app-brand{align-items:center;gap:10px;margin-bottom:28px;padding:0 8px;display:flex}.app-brand img{object-fit:contain;background:var(--lime-soft);border-radius:8px;flex-shrink:0;width:34px;height:34px;padding:3px}.app-brand-text{letter-spacing:-.01em;color:var(--heading);font-size:15px;font-weight:800;line-height:1.2}.app-nav{flex-direction:column;gap:3px;display:flex}.app-nav a{border-radius:var(--radius-sm);color:var(--text-muted);transition:background var(--transition), color var(--transition);padding:10px 12px;font-size:14px;font-weight:500;text-decoration:none;display:block}.app-nav a:hover{background:var(--surface-muted);color:var(--text)}.app-nav a.active{background:var(--primary-soft);color:var(--primary);font-weight:600}.app-sidebar-footer{border-top:1px solid var(--border);margin-top:auto;padding-top:20px}.app-user{color:var(--text);margin-bottom:2px;font-size:13px;font-weight:600}.app-user-role{color:var(--text-faint);margin-bottom:12px;font-size:12px}.app-main{flex:1;max-width:1200px;padding:36px 44px}.login-shell{background:radial-gradient(circle at 12% 15%, #80161a24, transparent 45%), radial-gradient(circle at 88% 85%, #c8da2e38, transparent 45%), var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:380px;box-shadow:var(--shadow-lg);border-top:5px solid var(--primary);padding:40px 36px}.login-logo{object-fit:contain;background:var(--lime-soft);border-radius:12px;width:52px;height:52px;margin-bottom:18px;padding:6px}.login-brand{letter-spacing:-.02em;color:var(--heading);margin-bottom:4px;font-size:20px;font-weight:800}.login-subtitle{color:var(--text-muted);margin-bottom:28px;font-size:14px}.login-field{margin-bottom:18px}.login-submit{width:100%;margin-top:6px;padding:12px 18px}
