/* Internal pages: keep legacy widgets and saved CMS content scoped. */
.portal-internal-document { max-width:880px; margin:0 auto; padding:24px; border:1px solid var(--portal-border); border-radius:8px; background:var(--portal-surface); box-sizing:border-box; overflow-wrap:anywhere; line-height:1.9; }
.portal-internal-document > h3 { margin:0 0 20px; font-size:24px; }
.portal-internal-document > div[style] { background:#eef5f5!important; border-color:var(--portal-border)!important; border-radius:5px; padding:12px 16px!important; }
.portal-internal-document a { text-underline-offset:3px; }
.portal-internal-document p { margin:0 0 16px; }
.portal-employee-links > p:has(a) { padding:14px 0; border-bottom:1px solid var(--portal-border); margin:0; }
.portal-employee-links > p:last-child { border-bottom:0; }
.portal-employee-links > p > a { display:inline-block; padding:4px 0; font-weight:bold; }
.portal-support { max-width:880px; }
.portal-support p { line-height:1.8; }
.portal-support h2 { font-size:20px; }
.portal-support-actions,.portal-internal-actions { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.portal-support-actions { margin:24px 0; }
.portal-support-actions .btn,.portal-internal-actions .btn { box-sizing:border-box; padding:11px 14px; min-height:44px; }
.portal-usage-toolbar { display:flex; align-items:center; gap:32px; flex-wrap:wrap; margin-bottom:24px; padding:20px 24px; }
.portal-usage-stat { display:flex; flex-direction:column; gap:4px; }
.portal-usage-stat strong { font-size:26px; line-height:1.2; font-variant-numeric:tabular-nums; }
.portal-usage-stat > span { color:var(--portal-muted); }
.portal-usage-refresh { margin-left:auto; width:200px; }
.portal-usage-refresh label { display:flex; align-items:center; gap:8px; min-height:32px; cursor:pointer; }
.portal-usage-refresh input { margin:0; }
.portal-usage-refresh .progress { height:8px; margin:0; }
.portal-usage-refresh .bar { transition:none; }
.portal-usage h2 { font-size:20px; margin:28px 0 12px; }
.portal-usage ul { margin:0; }
.portal-usage li { padding:12px 0; border-bottom:1px solid var(--portal-border); line-height:2; overflow-wrap:anywhere; }
.portal-usage li .label { white-space:normal; display:inline-block; line-height:1.5; max-width:100%; box-sizing:border-box; vertical-align:middle; }
.portal-vacation .v-index-top { display:flex; gap:24px; justify-content:space-between; flex-wrap:wrap; margin-bottom:20px; }
.portal-vacation .v-index-top > div { float:none; flex:1; min-width:220px; }
.portal-vacation h4 { font-size:17px; }
.portal-vacation .label,.portal-vacation-form .label { white-space:normal; line-height:1.5; margin:1px; font-weight:normal; overflow-wrap:anywhere; }
.portal-vacation .button-top { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin:0 0 16px; }
.portal-vacation .button-top input { box-sizing:border-box; height:44px; width:180px; margin:0; }
.portal-vacation .button-top .btn { min-height:44px; min-width:44px; box-sizing:border-box; }
.portal-vacation .button-top a { margin-left:8px; }
.portal-calendar-today { margin:0 0 12px; color:var(--portal-muted); }
.portal-calendar-scroll { overflow:auto; border-radius:6px; }
.portal-vacation table.vacation { min-width:760px; table-layout:fixed; background:var(--portal-surface); }
.portal-vacation table.vacation th { width:20%; text-align:center; }
.portal-vacation table.vacation th.today { background:#cce2e0; }
.portal-vacation table.vacation td.today { background:#edf6f5; }
.portal-vacation .dayblock { position:relative; min-height:100px; padding-top:22px; }
.portal-vacation .daynum { position:absolute; right:-8px; top:-8px; padding:2px 7px; border-bottom-left-radius:8px; background:#61787c; color:white; font-size:12px; font-weight:bold; }
.portal-vacation-columns { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:28px; }
.portal-vacation-column { min-width:0; }
.portal-vacation-form .well { padding:24px; background:var(--portal-surface); border:1px solid var(--portal-border); box-shadow:none; }
.portal-vacation-form .control-label { float:none; width:auto; text-align:left; padding:0; margin:0 0 8px; font-weight:bold; }
.portal-vacation-form .controls { margin-left:0; }
.portal-vacation-form input[type=text],.portal-vacation-form select,.portal-vacation-form textarea { box-sizing:border-box; width:100%; max-width:100%; min-height:44px; padding:10px; margin:0; }
.portal-vacation-form textarea { min-height:100px; resize:vertical; }
.portal-vacation-form .input-daterange,.portal-vacation-form .input-timepicker { display:flex; align-items:stretch; }
.portal-vacation-form .input-daterange input,.portal-vacation-form .input-timepicker input { width:0!important; min-width:0; flex:1; }
.portal-vacation-form .add-on { height:auto; padding:11px 8px; }
.portal-vacation-form .btn-group { display:flex; flex-wrap:wrap; }
.portal-vacation-form .type-button { padding:11px 14px; }
.portal-vacation-form .pto-hours table { min-width:440px; width:100%; table-layout:fixed; }
.portal-vacation-form .pto-hours th,.portal-vacation-form .pto-hours td { width:20%; padding:8px 4px; text-align:center; }
.portal-vacation-form .pto-hours th { font-size:12px; line-height:1.4; border-bottom:1px solid var(--portal-border); }
.portal-vacation-form .asterisk { font-size:12px; line-height:1.6; color:var(--portal-muted); margin:-8px 0 24px; }
.portal-vacation-form .well-number { padding:.5em; }
.portal-vacation-form .alert-msg { display:none; color:#b42318; margin-bottom:10px; }
.portal-vacation-form .pto { display:none; }
.portal-vacation-filters { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:20px; }
.portal-vacation-filters .btn { min-height:44px; padding:10px 14px; box-sizing:border-box; }
.portal-vacation-browse #vacationtable { min-width:1100px; margin:0; }
.portal-vacation-browse #vacationtable_filter { float:none; text-align:left; margin:0 0 16px; }
.portal-vacation-browse #vacationtable_filter label { float:none; display:flex; gap:8px; align-items:center; }
.portal-vacation-browse #vacationtable_filter input { box-sizing:border-box; height:44px; margin:0; max-width:70%; }
@media(max-width:979px) {
 .portal-vacation-columns { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:767px) {
 .portal-internal-document,.portal-vacation-form .well { padding:18px; }
 .portal-usage-toolbar { gap:20px; padding:18px; }
 .portal-usage-refresh { margin:0; width:100%; }
 .portal-vacation .v-index-top > div { min-width:0; flex-basis:100%; }
 .portal-internal-actions { width:100%; }
 .portal-vacation .button-top a { flex-basis:100%; margin:4px 0 0; }
 .portal-vacation .button-top input { width:150px; }
 .portal-vacation-form .type-button { padding:11px 10px; }
}
.portal-vacation-form #form { margin:0; }
.portal-vacation-form .control-group { margin:0 0 20px; padding:0; border:0; }
.portal-vacation-form .control-group:hover { background:transparent; }
.portal-vacation-form .select2-container { width:100%!important; max-width:100%; }
.portal-vacation-form .select2-choice { box-sizing:border-box; height:44px; line-height:42px; padding:0 12px; background:#fff; border:1px solid #a8b9bc; border-radius:4px; box-shadow:none; }
.portal-vacation-form .select2-choice div { display:flex; align-items:center; justify-content:center; width:28px; background:#f2f5f5; border-left:1px solid var(--portal-border); }
.portal-vacation-form .select2-choice div b { display:block; width:0; height:0; background:none; border-left:4px solid transparent; border-right:4px solid transparent; border-top:5px solid #61787c; }
.portal-vacation-form .btn-group { gap:8px; }
.portal-vacation-form .btn-group > .btn { margin:0; border-radius:4px; }
.portal-vacation .button-top > label { flex-basis:100%; margin:0; font-weight:bold; }

/* Keep the request page compact on desktop, with its original horizontal labels. */
.portal-request-title { font-size:20px; text-align:center; margin:10px 0 12px; }
.portal-vacation-column > h4:first-child { margin-top:10px; }
@media(min-width:980px) {
 .portal-vacation-form .well { padding:18px; }
 .portal-vacation-form .control-group { display:grid; grid-template-columns:130px minmax(0,1fr); align-items:start; gap:18px; margin:0; padding:10px 0; border-bottom:1px dashed var(--portal-border); }
 .portal-vacation-form .control-group::before,.portal-vacation-form .control-group::after { display:none; }
 .portal-vacation-form .control-group[hidden] { display:none; }
 .portal-vacation-form .control-label { text-align:right; font-weight:normal; padding-top:5px; margin:0; }
 .portal-vacation-form .controls { min-width:0; }
 .portal-vacation-form input[type=text],.portal-vacation-form select,.portal-vacation-form textarea { min-height:30px; padding:4px 8px; }
 .portal-vacation-form .form-horizontal input[name=summary] { width:100%; }
 .portal-vacation-form textarea { height:54px; min-height:54px; }
 .portal-vacation-form .select2-container { max-width:100%; width:auto!important; min-width:180px; }
 .portal-vacation-form .select2-choice { height:30px; line-height:28px; padding-left:8px; }
 .portal-vacation-form .btn-group { gap:0; }
 .portal-vacation-form .type-button { padding:4px 10px; }
 .portal-vacation-form .add-on { padding:4px 6px; }
 .portal-vacation-form .portal-form-actions { margin:18px 0 0; padding:0 0 0 148px; border:0; }
 .portal-vacation-form .portal-form-actions .btn { min-height:30px; padding:4px 10px; }
 .portal-vacation-form form { margin-bottom:0; }
 .portal-vacation-form .asterisk { font-size:11px; font-style:italic; text-align:center; line-height:1.3; margin:-12px 0 20px; }
 .portal-vacation-form .pto-hours th { border:1px solid var(--portal-border); }
}
