:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#15243a;background:#f3f6fa;font-size:16px;line-height:1.5}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:#155da5}.shell{max-width:1320px;margin:auto;padding:24px 28px 72px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.brand{display:flex;align-items:center;gap:12px;font-weight:800;font-size:1.25rem;letter-spacing:-.025em}.mark{background:#1f5a9b;color:white;width:38px;height:38px;border-radius:11px;display:grid;place-items:center;font-weight:900}.account{display:flex;align-items:center;gap:12px;color:#56677c}.account select{max-width:215px}.account strong{color:#15243a}.pill{display:inline-flex;align-items:center;border:1px solid #cad8e7;background:#edf4fc;border-radius:999px;padding:3px 10px;font-size:.8rem;font-weight:700;color:#27517f}.banner{border:1px solid #c7d8ea;background:#e9f3ff;color:#214a76;border-radius:12px;padding:11px 15px;margin-bottom:20px;font-size:.9rem}.heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:20px}.heading h1{font-size:2rem;letter-spacing:-.045em;margin:0 0 3px}.subtle{color:#627187;margin:0}.btn{border:1px solid #cbd7e4;color:#193858;background:#fff;border-radius:9px;padding:9px 15px;font-weight:700;min-height:42px}.btn:hover{background:#edf4fc}.btn.primary{background:#185b9e;border-color:#185b9e;color:white}.btn.primary:hover{background:#104a85}.btn.danger{color:#9d3436;border-color:#e7c3c4}.btn.text{border:0;background:transparent;padding:6px 9px;min-height:auto}.layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);gap:18px}.card{background:#fff;border:1px solid #dee6ef;border-radius:16px;box-shadow:0 5px 20px #183d6608}.card-header{padding:19px 21px;border-bottom:1px solid #e9eef3;display:flex;align-items:center;justify-content:space-between;gap:12px}.card-header h2{font-size:1.05rem;margin:0;letter-spacing:-.015em}.card-body{padding:19px 21px}.toolbar{display:flex;align-items:center;gap:8px}.month-title{min-width:150px;text-align:center;font-weight:800}.icon-btn{border:1px solid #dce5ef;background:white;border-radius:9px;width:38px;height:38px;font-size:1.35rem;line-height:1}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:#e4ebf2;border-top:1px solid #e4ebf2}.weekday{background:#f8fafc;text-align:center;font-size:.76rem;color:#65758b;font-weight:800;padding:10px 2px}.day{background:#fff;min-height:103px;padding:8px;overflow:hidden}.day.outside,.day.nonworkday{background:#fafbfd}.day.today .date{background:#185b9e;color:#fff;border-radius:100px}.date{display:inline-grid;place-items:center;width:28px;height:28px;font-size:.84rem;font-weight:750}.day.outside .date{color:#a0acba}.holiday{display:block;border-radius:5px;background:#fff1d7;color:#785317;padding:3px 5px;font-size:.74rem;line-height:1.25;margin:3px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event{display:block;border-radius:5px;background:#e7f0fa;color:#22517d;padding:3px 5px;font-size:.76rem;line-height:1.25;margin:3px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event.mine{background:#d9eee9;color:#135e52}.more{font-size:.74rem;color:#66758a}.legend{padding:11px 20px;font-size:.82rem;color:#65758b}.stack{display:grid;gap:18px}.role-row{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid #eef2f5;gap:10px}.role-row:last-child{border:0}.role-label{font-weight:650}.role-count{white-space:nowrap;color:#5a6a80;font-size:.88rem}.role-count.full{color:#a2462d;font-weight:750}.request-item{padding:14px 0;border-bottom:1px solid #e8eef4}.request-item:last-child{border:0}.request-line{display:flex;justify-content:space-between;gap:10px;align-items:start}.request-name{font-weight:760}.meta{font-size:.86rem;color:#64748a;margin-top:3px}.status{font-size:.76rem;font-weight:800;padding:4px 9px;border-radius:999px;white-space:nowrap}.status.pending{background:#fff0d5;color:#865412}.status.approved{background:#dcf3e9;color:#126446}.status.denied{background:#fce5e5;color:#a13b3b}.status.cancelled{background:#edf0f4;color:#64748b}.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:11px}.muted{font-size:.88rem;color:#65758b}.empty{color:#68778b;padding:26px 0;text-align:center}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field{display:grid;gap:6px;margin-bottom:13px}.field label{font-weight:700;font-size:.88rem}.field input,.field select,.field textarea,.account select{border:1px solid #bfcedd;border-radius:9px;background:white;color:#162a43;padding:10px 11px;min-height:43px;width:100%}.field textarea{min-height:72px;resize:vertical}.hint{font-size:.82rem;color:#64748b;margin:-2px 0 13px}.error{color:#aa3333;font-weight:650;margin:10px 0}.success{color:#1b6a4c;font-weight:650;margin:10px 0}.warning{background:#fff3dd;color:#79500f;padding:9px 11px;border-radius:8px;font-size:.86rem;margin:10px 0}.review-note{margin-top:7px;font-size:.81rem;color:#596b7d}.modal-backdrop{position:fixed;inset:0;background:#11263b99;display:grid;place-items:center;padding:18px;z-index:10}.modal{width:min(100%,460px);padding:24px}.modal h2{margin:0 0 5px}.modal p{margin:0 0 17px;color:#5c6b7e}.modal-actions{display:flex;justify-content:end;gap:9px;margin-top:12px}.auth{min-height:75vh;display:grid;place-items:center}.auth .card{max-width:440px;width:100%;padding:28px}.auth h1{margin:15px 0 5px;font-size:1.7rem}.auth p{color:#5f7187}.loading{padding:50px;text-align:center;color:#5e7086}@media(max-width:950px){.layout{grid-template-columns:1fr}.stack{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.shell{padding:17px 12px 50px}.topbar,.heading{align-items:flex-start;flex-direction:column}.topbar{gap:12px}.account{width:100%;justify-content:space-between}.stack{grid-template-columns:1fr}.card-header,.card-body{padding:15px}.day{min-height:75px;padding:3px}.date{width:23px;height:23px;font-size:.75rem}.holiday,.event{font-size:.66rem;padding:2px 3px}.weekday{font-size:.67rem}.form-grid{grid-template-columns:1fr;gap:0}.month-title{min-width:125px}.heading h1{font-size:1.65rem}}@media(max-width:380px){.event{font-size:.61rem}.day{min-height:69px}}
