#portal{max-width:1120px}#portal section{margin:16px 0;padding:16px}#portal form{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:10px 0}#portal form label{display:grid;gap:4px}#portal table{border-collapse:collapse;width:100%;margin-top:12px}#portal td,#portal th{padding:6px;border-bottom:1px solid #ddd;text-align:left}#status{white-space:pre-wrap}.print-title{display:none}@media print{header,#portal h1,#status,#view>*:not(.print-area),.print-area form,.print-area button,.screen-only{display:none!important}.print-title{display:block}#portal,.print-area{margin:0!important;padding:0!important;border:0!important}tr{break-inside:avoid}thead{display:table-header-group}}
.portal-head-actions,.portal-actions,.queue-tabs,.leave-card-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.portal-head-actions{justify-content:flex-end}.portal-actions{margin:12px 0}.portal-muted,.form-hint{color:#4d607a}.form-hint{flex-basis:100%;margin:0}.portal-actions a{text-decoration:none}.queue-tabs{padding:9px 0}.queue-tabs button[aria-pressed=true]{background:#e5edff;border-color:#426bbb;color:#183c81}.queue-tabs span{margin-left:4px;font-weight:700}.inbox-alert{border:1px solid #e4b46c;background:#fff1d6;color:#663500;border-radius:100px;padding:7px 12px;font-weight:700}.leave-card{padding:14px;border:1px solid #d8e2f0;background:#f8faff;border-radius:12px;margin:10px 0}.leave-card-head{justify-content:space-between;align-items:start}.leave-card-head p{color:#455a75;margin:4px 0}.leave-badge{display:inline-block;border-radius:100px;padding:4px 10px;font-size:13px;font-weight:700}.leave-badge.pending{background:#fff0cb;color:#684100}.leave-badge.approved{background:#dff4e7;color:#145536}.leave-badge.rejected{background:#fbe4e7;color:#862234}.leave-note{margin:10px 0;white-space:pre-wrap;overflow-wrap:anywhere}.leave-note p{margin:3px 0}.review{margin-top:9px}.queue-empty{padding:12px 0}.notes-field{flex-basis:100%;display:grid;gap:4px}.notes-field textarea{width:100%;font:inherit;border:1px solid #c4d0e1;border-radius:8px;padding:8px;resize:vertical}#review-dialog{width:min(650px,92vw);max-height:90vh}#review-content{padding:16px}#review-content form{display:flex;flex-wrap:wrap;gap:10px}#review-content form label{display:grid;gap:4px}#review-error{color:#862234;flex-basis:100%;margin:0}#review-error:empty{display:none}.history-item{border-top:1px solid #dae3f0;padding:10px 0}.history-item small{display:block;color:#4d607a}#portal #admin section:first-child{border-top:4px solid #315fba}#portal section{box-shadow:0 3px 12px #213b6910}#status:not(:empty){padding:10px 14px;border-radius:8px;background:#e9f0ff;color:#203e73}@media(max-width:620px){.portal-head-actions{gap:5px}.leave-card-head{gap:6px}header{height:auto;min-height:62px;padding-block:9px}}
.leave-balances{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin-top:12px}
.leave-balances .leave-card{margin:0}
.balance-value{font-size:1.25rem;font-weight:750;color:#203e73;margin:7px 0}
.leave-history-group{margin:10px 0;border-top:1px solid #dae3f0;padding-top:9px}
.leave-history-group summary{cursor:pointer;font-weight:700}
.member-request-panel{border-top:3px solid #315fba}
#leave-feedback,.leave-receipt{padding:10px 12px;border-radius:8px;background:#e3f5e9;color:#174e35}
#leave-feedback{flex-basis:100%}
#leave-feedback:empty{display:none}
#leave-feedback[data-state=error]{background:#fce9ec;color:#782237}
.leave-receipt{margin:10px 0}
.leave-receipt p{margin:5px 0}
.leave-receipt a{color:inherit;font-weight:650}
#request button:disabled{opacity:.65;cursor:wait}
.password-guide{flex-basis:100%;color:#465775}
.password-guide ul{margin:4px 0;padding-left:22px}
.password-guide .met,[data-strength=strong]{color:#176334;font-weight:700}
[data-strength=fair]{color:#775008}
[data-strength=weak]{color:#843541}
.busy-button::before{content:'';display:inline-block;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;width:12px;height:12px;margin-right:8px;vertical-align:middle;animation:pah-spin .8s linear infinite}
@keyframes pah-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.busy-button::before{animation:none}}
.form-error:not(:empty){padding:10px 12px;background:#fce9ec;color:#782237;border-radius:8px}
.form-error:empty{margin:0}
#portal:has(#login),#portal:has(#password):not(:has(#request)){max-width:760px}
