:root{color:#1f2933;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#eef2f6;font-family:Segoe UI,system-ui,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{min-width:320px;margin:0}a{color:#0f4c81;text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button{color:#fff;cursor:pointer;background:#0f4c81;border:none;border-radius:8px;padding:.65rem 1rem}button:hover{background:#0c3d67}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{color:#fff;background:#0f4c81;justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex}.topbar-brand{align-items:center;gap:.85rem;display:flex}.topbar-logo{object-fit:contain;flex-shrink:0;width:40px;height:40px}.topbar h1{margin:0;font-size:1.4rem}.topbar p{opacity:.85;margin:.2rem 0 0}.topbar-actions{align-items:center;gap:.75rem;display:flex}.user-chip{color:inherit;background:#ffffff26;border-radius:999px;padding:.35rem .75rem;font-size:.9rem;text-decoration:none}.user-chip:hover{background:#ffffff40}.main-nav{background:#fff;border-bottom:1px solid #d8e0ea;gap:1rem;padding:.75rem 1.5rem;display:flex}.main-nav a{color:#334e68;padding:.35rem .2rem}.main-nav a.active{color:#0f4c81;border-bottom:2px solid #0f4c81;font-weight:600}.content{flex:1;padding:1.5rem}.portal-footer{text-align:center;background:#fff;border-top:1px solid #d8e0ea;margin-top:auto;padding:1rem 1.5rem}.portal-footer p{margin:.15rem 0}.auth-shell{flex-direction:column;min-height:100vh;display:flex}.auth-shell-main{flex:1;place-items:center;padding:1rem;display:grid}.stack{flex-direction:column;gap:1rem;display:flex}.panel{background:#fff;border:1px solid #d8e0ea;border-radius:12px;padding:1rem 1.25rem}.panel-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.grid-cards{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;display:grid}.stat-card{background:#fff;border:1px solid #d8e0ea;border-radius:12px;flex-direction:column;gap:.35rem;padding:1rem;display:flex}.stat-card strong{font-size:1.4rem}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid #e5ebf1;padding:.65rem .5rem}.login-page{width:min(420px,100%)}.login-card{flex-direction:column;gap:.75rem;width:min(420px,100%);display:flex}.login-links{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;margin:0;font-size:.9rem;display:flex}.login-links a{color:#0f4c81;text-decoration:none}.login-links a:hover{text-decoration:underline}label{flex-direction:column;gap:.35rem;font-size:.95rem;display:flex}input,select,textarea{border:1px solid #cbd5e1;border-radius:8px;padding:.6rem .75rem}.form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.85rem;display:grid}.full-width{grid-column:1/-1}.checkbox,.checkbox-row{align-items:center;gap:.5rem;display:flex}.checkbox-row{flex-wrap:wrap}.tab-nav{flex-wrap:wrap;gap:.5rem;display:flex}.tab-nav button{color:#334e68;background:#fff;border:1px solid #cbd5e1}.tab-nav button.active{color:#fff;background:#0f4c81;border-color:#0f4c81}.alert-banner{color:#8a4b00;background:#fff4e5;border-radius:8px;flex-direction:column;gap:.35rem;margin-top:.75rem;padding:.75rem;display:flex}tbody tr:hover{background:#f8fafc}tbody tr.selected-row{background:#eef6ff}.muted{color:#627d98}.small{font-size:.85rem}.error{color:#b42318}.success{color:#027a48}.dialog-backdrop{z-index:1000;background:#0f172a8c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.dialog-panel{background:#fff;border-radius:12px;width:min(720px,100%);max-height:90vh;overflow:auto;box-shadow:0 20px 40px #0f172a33}.dialog-panel-compact{width:min(420px,100%)}.dialog-header{border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.25rem 1.25rem .75rem;display:flex}.dialog-header h3{margin:0}.dialog-close{color:#627d98;background:0 0;padding:.25rem .5rem;font-size:1.5rem;line-height:1}.dialog-close:hover{color:#334e68;background:#f1f5f9}.dialog-body{padding:1.25rem}.dialog-body h4{margin:0 0 .35rem}.dialog-body p{white-space:pre-wrap;margin:0}.dialog-actions{justify-content:flex-end;gap:.75rem;margin-top:.5rem;display:flex}.button-secondary{color:#334e68;background:#fff;border:1px solid #cbd5e1}.button-secondary:hover{background:#f8fafc}.table-action{color:#0f4c81;background:#fff;border:1px solid #cbd5e1;padding:.35rem .65rem;font-size:.875rem}.table-action:hover{background:#f0f7ff}body{margin:0}
