*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{color:#0f2852;background:#e9eef8;font-family:Nunito Sans,Segoe UI,system-ui,-apple-system,sans-serif}.portal-app{color:#0f2852;background:#e9eef8;grid-template-columns:250px 1fr;min-height:100vh;display:grid}.sidebar{background:#f6f8fd;border-right:1px solid #d6dfef;flex-direction:column;gap:16px;padding:20px 14px;display:flex}.brand-card{background:#fff;border:1px solid #d6dfef;border-radius:14px;padding:14px}.brand-mark{letter-spacing:.08em;text-transform:uppercase;color:#264c92;margin:0;font-size:12px;font-weight:700}.brand-card h2{margin:6px 0 4px;font-size:18px;line-height:1.2}.brand-card p{color:#5771a3;margin:0;font-size:13px}.menu-list{gap:8px;display:grid}.menu-item{color:#183a74;text-align:left;cursor:pointer;background:#fff;border:1px solid #cdd8ee;border-radius:10px;width:100%;padding:10px 12px;font-size:14px;font-weight:600}.menu-item:hover{border-color:#2b58a0}.menu-item.active{color:#fff;background:#1f4c93;border-color:#1f4c93}.content{align-content:start;gap:14px;padding:16px;display:grid}.topbar{background:#fff;border:1px solid #d6dfef;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.topbar h1{margin:0;font-size:24px;line-height:1.1}.topbar p{color:#5c739f;margin:5px 0 0;font-size:13px}.panel{background:#fff;border:1px solid #d6dfef;border-radius:14px;gap:12px;padding:14px;display:grid}.panel-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.panel-head h3{margin:0;font-size:22px;line-height:1.15}button{color:#fff;cursor:pointer;background:#1f4c93;border:1px solid #1f4c93;border-radius:10px;padding:9px 14px;font-size:14px;font-weight:700}button:hover{background:#183d75;border-color:#183d75}button:disabled{opacity:.55;cursor:not-allowed}.ghost-button{color:#1f4c93;background:#fff}.ghost-button:hover{background:#edf2fc;border-color:#1f4c93}.danger-button{background:#a2362c;border-color:#a2362c}.danger-button:hover{background:#872a22;border-color:#872a22}.card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.stat-card{background:#f8fafe;border:1px solid #d6dfef;border-radius:12px;gap:8px;padding:14px;display:grid}.stat-card span{color:#5570a3;font-size:13px}.stat-card strong{color:#1f4c93;font-size:30px;line-height:1}.inline-toolbar{flex-wrap:wrap;gap:10px;display:flex}.inline-toolbar label{color:#36568f;gap:6px;font-size:13px;font-weight:600;display:grid}select,input{color:#0f2852;background:#fff;border:1px solid #cdd8ee;border-radius:10px;min-height:40px;padding:8px 11px;font-size:14px}select:focus,input:focus,textarea:focus{border-color:#1f4c93;outline:2px solid #1f4c932b}.table-wrap{border:1px solid #d9e1ef;border-radius:12px;overflow:auto}table{border-collapse:collapse;width:100%;min-width:780px}th,td{text-align:left;border-bottom:1px solid #e4ebf7;padding:10px 12px;font-size:14px}th{color:#5471a5;letter-spacing:.02em;text-transform:uppercase;font-size:12px}tbody tr:hover{background:#f6f9ff}.inline-actions{flex-wrap:wrap;gap:8px;display:flex}.status-pill{letter-spacing:.03em;border:1px solid #d5deed;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:700;display:inline-flex}.status-pill.pending{color:#8b6500;background:#fff7de;border-color:#f4e1a6}.status-pill.approved{color:#0e6a43;background:#e4f7ef;border-color:#bbebd8}.status-pill.fulfilled,.status-pill.paid{color:#1455a8;background:#e9f0ff;border-color:#c8d9ff}.status-pill.rejected,.status-pill.unpaid{color:#8c2f2f;background:#fcecec;border-color:#f4caca}.status-pill.partial{color:#8b6500;background:#fff7de;border-color:#f4e1a6}.modal-overlay{z-index:100;background:#0b182d73;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-card{background:#fff;border:1px solid #d6dfef;border-radius:14px;gap:12px;width:min(760px,100%);padding:16px;display:grid}.modal-card.compact{width:min(620px,100%)}.modal-card h3{margin:0;font-size:20px}.form-grid{gap:10px;display:grid}.form-grid.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid label{color:#36568f;gap:6px;font-size:13px;font-weight:600;display:grid}.full-row{grid-column:1/-1}.modal-actions{justify-content:flex-end;gap:8px;display:flex}.details-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.details-grid article{background:#f8fafe;border:1px solid #d6dfef;border-radius:10px;gap:5px;padding:11px;display:grid}.details-grid span{color:#5570a3;font-size:12px}.details-grid strong{color:#183a74;font-size:15px}.login-shell{background:radial-gradient(circle at 0 0,#eff4ff 0%,#e4ebf8 45%,#dee6f5 100%);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:#fff;border:1px solid #d6dfef;border-radius:16px;gap:16px;width:min(720px,100%);padding:20px;display:grid}.pill{color:#36568f;background:#f8fafe;border:1px solid #cdd8ee;border-radius:999px;justify-self:start;margin:0;padding:5px 10px;font-size:11px;font-weight:700}.login-card h1{margin:0;font-size:28px;line-height:1.1}.login-subline{color:#5c739f;margin:0}.login-options{gap:10px;display:grid}.login-option{color:#0f2852;text-align:left;background:#fff;border:1px solid #d3ddef;border-radius:12px;gap:4px;width:100%;padding:13px;display:grid}.login-option:hover{background:#f6f9ff;border-color:#1f4c93}.login-name{font-size:16px;font-weight:700}.login-meta{color:#5c739f;font-size:13px}@media (width<=1160px){.portal-app{grid-template-columns:210px 1fr}.card-grid{grid-template-columns:1fr}}@media (width<=900px){.portal-app{grid-template-columns:1fr}.sidebar{border-bottom:1px solid #d6dfef;border-right:none}.content{padding:12px}.topbar{flex-direction:column;align-items:flex-start}.form-grid.two-col,.details-grid{grid-template-columns:1fr}.modal-actions{justify-content:stretch}.modal-actions button{flex:1}}
