:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#243447;background:#f3f6f8;font-size:14px;--bg:#f3f6f8;--panel:#fff;--text:#243447;--muted:#73818e;--line:#e4eaee;--accent:#167b69;--soft:#eaf5f0;--danger:#b43d3d;--shadow:0 5px 22px #24344707}*{box-sizing:border-box}body{margin:0}body.dark{--bg:#141c25;--panel:#1d2834;--text:#e3ecf3;--muted:#a1b1bf;--line:#344352;--soft:#203e37;--accent:#70c9ad;--shadow:none;color:var(--text);background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:var(--panel);color:var(--text);padding:.65rem .9rem;border-radius:.5rem;transition:background .15s}button:hover{background:var(--soft)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.dark button.primary{color:#102c23}button.danger{color:var(--danger)}.ghost{border:0;background:transparent}.icon{padding:.5rem .75rem}input,select,textarea{padding:.65rem .75rem;color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:.45rem;min-width:0;max-width:100%}textarea{min-height:6rem;resize:vertical}label{display:flex;flex-direction:column;gap:.4rem;font-size:.85rem;font-weight:600}label small{font-weight:400;color:var(--muted)}:focus-visible{outline:3px solid #65b7f1;outline-offset:2px}a{color:var(--accent)}#sidebar{position:fixed;inset:0 auto 0 0;width:16.5rem;background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:20;padding:1.6rem 1rem}.brand{display:flex;align-items:center;gap:.8rem;font-size:1.4rem;font-weight:750;padding:0 .6rem 1.8rem;letter-spacing:.04em}.brand-mark{display:grid;place-items:center;background:var(--accent);color:white;width:2.7rem;height:2.7rem;border-radius:.7rem;font-size:1.8rem}.brand small{display:block;font-size:.65rem;letter-spacing:0;font-weight:500;color:var(--muted);margin-top:.4rem}nav{display:flex;flex-direction:column;gap:.2rem;overflow:auto}nav button{text-align:left;border:0;background:none;color:var(--muted);padding:.85rem 1rem;display:flex;align-items:center;gap:.8rem}nav button.active{background:var(--soft);color:var(--accent);font-weight:650}nav .nav-icon{width:1.2rem;text-align:center}.sidebar-foot{margin-top:auto;padding:1.5rem .6rem .2rem;font-size:.8rem;color:var(--muted)}.sidebar-foot small{display:block;margin:.6rem 0}.online-dot{display:inline-block;background:#36a780;width:.5rem;height:.5rem;border-radius:50%;margin-right:.3rem}#workspace{margin-left:16.5rem}header{height:5.3rem;background:var(--panel);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:1rem;padding:0 clamp(1rem,3vw,3rem);position:sticky;top:0;z-index:10}#menu-toggle{display:none}main{padding:2rem clamp(1rem,3vw,3rem);max-width:1800px;margin:auto}.page-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.7rem}.eyebrow{font-size:.68rem;letter-spacing:.16em;color:var(--accent);font-weight:750;margin:0 0 .6rem}h1{font-size:clamp(1.5rem,2.5vw,2.1rem);margin:0;font-weight:650;letter-spacing:-.035em}h2{font-size:1.15rem;margin:0}h3{font-size:1rem}p{line-height:1.6}.page-head p:last-child{color:var(--muted);margin:.5rem 0 0}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:1rem;margin-bottom:1.5rem}.stat,.panel{border:1px solid var(--line);background:var(--panel);border-radius:.8rem;box-shadow:var(--shadow)}.stat{padding:1.15rem}.stat span{font-size:.78rem;color:var(--muted)}.stat strong{display:block;font-size:1.9rem;font-weight:650;margin:.7rem 0 .35rem}.stat small{color:var(--muted);font-size:.7rem}.panel{padding:1.3rem;margin-bottom:1.3rem}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.3rem}.muted{color:var(--muted)}.badge{display:inline-flex;align-items:center;gap:.3rem;background:var(--soft);color:var(--accent);border-radius:1rem;padding:.3rem .65rem;font-size:.7rem;white-space:nowrap}.badge.warn{background:#fff0d5;color:#9c6816}.badge.red{background:#fce9e7;color:#b14c42}.filters{display:flex;flex-wrap:wrap;align-items:end;gap:.7rem;margin-bottom:1.2rem}.filters label{flex:1;min-width:8rem;font-weight:500;font-size:.72rem}.filters input,.filters select{font-size:.8rem;width:100%}.filters select[multiple]{height:4rem}.split{display:grid;grid-template-columns:minmax(0,1fr) 19rem;gap:1.3rem}.calendar-tools{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.segmented{display:flex;background:var(--bg);padding:.2rem;border-radius:.5rem}.segmented button{border:0;background:none;font-size:.78rem;padding:.45rem .8rem}.segmented button.active{background:var(--panel);box-shadow:0 1px 3px #0001;color:var(--accent)}.year-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.4rem 1.6rem}.month-heading{display:flex;justify-content:space-between;margin:0 0 .8rem;font-size:.82rem;font-weight:650;letter-spacing:.04em}.month-heading span:last-child{color:var(--muted);font-weight:400}.month.layout-c{display:grid;grid-template-columns:1.2rem minmax(0,1fr);gap:.6rem}.layout-c .month-heading{writing-mode:vertical-rl;text-orientation:upright;margin:0;font-size:.65rem;justify-content:start;gap:1rem}.week,.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.2rem}.week span{text-align:center;font-size:.6rem;color:var(--muted);padding:.3rem 0}.day{border:1px solid var(--line);padding:.35rem .25rem;min-height:3.2rem;position:relative;text-align:center;border-radius:.35rem;background:var(--panel);font-size:.72rem;display:flex;flex-direction:column;align-items:stretch;gap:.35rem}.day:hover{border-color:var(--accent)}.day.has-leave{background:var(--soft);color:var(--accent)}.day.today{border-color:var(--accent);font-weight:750}.day.restricted{box-shadow:inset 0 -2px #d3a358}.day.alert{box-shadow:inset 2px 0 #c96062}.day.restricted.alert{box-shadow:inset 0 -2px #d3a358,inset 2px 0 #c96062}.day-number{align-self:flex-start;font-weight:600}.count{align-self:center;margin-top:auto;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-width:1.2rem;padding:.15rem .3rem;border-radius:.35rem;font-size:.65rem;line-height:1.3;background:var(--soft);color:var(--accent)}.count strong{font-size:inherit;font-weight:700}.count.zero{background:var(--bg);color:var(--muted)}.monthly .day{min-height:7rem;font-size:.95rem;padding:.7rem;gap:.8rem}.monthly .count{align-self:flex-start;font-size:.78rem;padding:.3rem .5rem}.monthly .count strong{font-size:1.05rem}.monthly .week span{font-size:.8rem}.legend{display:flex;flex-wrap:wrap;gap:1.1rem;color:var(--muted);font-size:.7rem;margin-top:1.3rem}.legend i{display:inline-block;width:.5rem;height:.5rem;margin-right:.3rem;background:var(--accent);border-radius:50%}.legend .restricted-key{background:#d3a358}.legend .alert-key{background:#c96062}.list-item{padding:.9rem 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:.8rem}.list-item:last-child{border:0}.list-item small{display:block;color:var(--muted);margin-top:.35rem}.avatar{display:grid;place-items:center;flex-shrink:0;width:2.2rem;height:2.2rem;background:var(--soft);border-radius:.5rem;color:var(--accent);font-size:.7rem;font-weight:650}.person-line{display:flex;gap:.7rem;align-items:center}.empty{text-align:center;padding:2.5rem 1rem;color:var(--muted);border:1px dashed var(--line);border-radius:.5rem}.empty strong{display:block;color:var(--text);margin-bottom:.5rem}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:.82rem}th,td{padding:.85rem .65rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:.67rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);white-space:nowrap}th button{padding:0;border:0;color:inherit;font-size:inherit;text-transform:inherit;letter-spacing:inherit}td small{display:block;color:var(--muted);margin-top:.3rem}details.menu{position:relative;text-align:right}details.menu summary{cursor:pointer;list-style:none;font-size:1.4rem;padding:0 .5rem}details.menu[open] .menu-items{position:absolute;right:0;top:1.8rem;min-width:12rem;background:var(--panel);box-shadow:0 5px 25px #0002;border:1px solid var(--line);border-radius:.5rem;z-index:7;padding:.3rem}.menu-items button{display:block;text-align:left;width:100%;border:0;padding:.55rem;font-size:.8rem}.table-wrap:has(details[open]){padding-bottom:16rem}dialog{color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:.9rem;padding:0;width:min(54rem,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);overflow:auto;box-shadow:0 20px 70px #0003}dialog::backdrop{background:#14263570;backdrop-filter:blur(2px)}.dialog-head{padding:1.3rem 1.5rem;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:var(--panel);z-index:8}.dialog-body{padding:1.5rem}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.form-grid>*{min-width:0}.form-grid label>input:not([type="checkbox"]),.form-grid label>select,.form-grid label>textarea{width:100%}.form-grid label small{overflow-wrap:anywhere}.form-grid .wide{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:.7rem;margin-top:1.5rem}.checkbox{flex-direction:row;align-items:center;font-weight:400}.notice{padding:1rem;background:#fff8e8;color:#805d20;border-radius:.3rem;font-size:.82rem;line-height:1.6;margin-bottom:1rem}.dark .notice{background:#392f1c;color:#ecd9a5}.error{color:var(--danger);font-size:.85rem;white-space:pre-wrap}.chips{display:flex;flex-wrap:wrap;gap:.5rem}.bar-row{display:grid;grid-template-columns:minmax(6rem,1fr) 2fr 3rem;align-items:center;gap:.6rem;font-size:.8rem;margin:.8rem 0}.bar{background:var(--bg);height:.5rem;border-radius:1rem;overflow:hidden}.bar i{display:block;background:var(--accent);height:100%}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.alert-control{padding:1.5rem}.alert-control.active{border-color:#d98784}.alert-control .state{font-size:1.6rem;margin:1rem 0;color:var(--accent)}.alert-control.active .state{color:var(--danger)}#toast{position:fixed;bottom:1.5rem;right:1.5rem;background:var(--text);color:var(--panel);z-index:120;max-width:30rem;border-radius:.6rem;padding:1rem 1.5rem;box-shadow:0 5px 20px #0002}.viewer{height:65vh;overflow:auto;background:var(--bg)}.viewer img{display:block;max-width:none;transform-origin:top left}.viewer iframe{width:100%;height:100%;border:0}.review-row.invalid{background:#b43d3d0b}.review-row input,.review-row select{width:100%;min-width:7rem;font-size:.78rem}.review-row td{padding:.4rem}.toolbar{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin-bottom:1rem}footer{padding:1rem clamp(1rem,3vw,3rem);font-size:.65rem;color:var(--muted);display:flex;justify-content:space-between}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.hide{display:none!important}mark{background:#fde5a3;color:#374655}.document-name{overflow-wrap:anywhere}#storage-state{margin-left:auto}@media(min-width:1700px){.year-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:1200px){.split{grid-template-columns:minmax(0,1fr)}.year-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.side-panels{display:grid;grid-template-columns:1fr 1fr;gap:1rem}}@media(max-width:950px){#sidebar{transform:translateX(-100%);transition:transform .15s}body.nav-open #sidebar{transform:none;box-shadow:0 0 0 100vw #0005}#workspace{margin:0}#menu-toggle{display:block}header{gap:.6rem}#storage-state{display:none}.year-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:650px){main{padding:1.3rem .8rem}.page-head{align-items:flex-start}.page-head p:last-child{font-size:.8rem}.year-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem .7rem}.panel{padding:.8rem}.form-grid,.side-panels{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-tools{font-size:.75rem}.monthly .day{min-height:5.3rem;padding:.4rem}.monthly .count{padding:.2rem .25rem;gap:.15rem;flex-wrap:wrap;font-size:.6rem}.monthly .count strong{font-size:.85rem}.monthly .count-label{width:100%;font-size:.55rem}header .primary{font-size:.75rem;padding:.6rem}.panel-head{flex-wrap:wrap}.form-grid .wide{grid-column:auto}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}@media print{#sidebar,header,footer,.filters,button,.toolbar,details.menu{display:none!important}#workspace{margin:0}main{padding:0}.panel,.stat{box-shadow:none;break-inside:avoid}.year-grid{grid-template-columns:repeat(3,1fr)}body{background:white;color:black}.table-wrap{overflow:visible}dialog{position:static;max-height:none;width:100%}.page-head{margin-bottom:1rem}}
.stat strong{font-size:1.65rem;margin:.35rem 0}.stat{padding:.9rem}.stat small{line-height:1.3}.stats{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))} @media(max-width:650px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}} 
body{color-scheme:light}body.dark{color-scheme:dark}

.day.holiday .day-number::after{content:"";display:inline-block;width:.3rem;height:.3rem;border-radius:50%;background:#528dc8;margin-left:.25rem;vertical-align:middle}.legend .holiday-key{background:#528dc8}

.office-filter{position:relative;min-width:0;display:flex;flex-direction:column;gap:.4rem}.office-filter-label{font-size:.85rem;font-weight:600}#office-picker summary{display:flex;align-items:center;justify-content:space-between;gap:.6rem;min-height:2.6rem;padding:.65rem .75rem;border:1px solid var(--line);border-radius:.45rem;background:var(--panel);cursor:pointer;list-style:none;font-size:.9rem}#office-picker summary::-webkit-details-marker{display:none}#office-picker summary span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.office-picker-panel{position:absolute;top:100%;left:0;width:max(100%,22rem);max-width:calc(100vw - 3rem);z-index:15;padding:1rem;background:var(--panel);border:1px solid var(--line);border-radius:.7rem;box-shadow:0 8px 30px #0002}.office-picker-panel input[type=search]{width:100%}.office-picker-tools{display:flex;align-items:center;gap:.4rem;margin:.6rem 0}.office-picker-tools button{font-size:.8rem;padding:.35rem .5rem}.office-picker-tools span{margin-left:auto;font-size:.75rem;color:var(--muted)}.office-options{max-height:16rem;overflow-y:auto}.office-option{display:flex;flex-direction:row;align-items:flex-start;gap:.6rem;padding:.65rem .4rem;border-radius:.4rem;font-weight:400;line-height:1.4}.office-option:hover{background:var(--soft)}.office-option[hidden]{display:none}#office-picker .office-option{min-width:0;width:100%;flex:none;align-items:center}#office-picker .office-option input[type=checkbox]{width:1rem;height:1rem;max-width:1rem;flex:0 0 1rem;margin:0;padding:0;accent-color:var(--accent)}#office-picker .office-option span{flex:1;min-width:0;color:var(--text);overflow-wrap:anywhere}.office-picker-footer{border-top:1px solid var(--line);margin-top:.6rem;padding-top:.7rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.office-picker-footer small{color:var(--muted)}

.upload-retained{margin:.8rem 0;padding:.8rem 1rem;background:var(--soft);border:1px solid var(--line);border-radius:.5rem;font-size:.85rem}.upload-retained ul{margin:.5rem 0;padding-left:1.3rem;overflow-wrap:anywhere}.upload-retained small{color:var(--muted)}

.office-group{border:1px solid var(--line);border-radius:.5rem;margin:.8rem 0}.office-group>summary{cursor:pointer;padding:1rem;font-weight:650}.office-group[open]>summary{border-bottom:1px solid var(--line);background:var(--soft)}.office-group .table-wrap{padding:.3rem .6rem}.office-option small{display:block;font-size:.65rem;color:var(--muted);font-weight:400}

.personnel-unit-picker{margin-bottom:1.2rem}.unit-buttons,.station-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.unit-buttons button{font-weight:650;min-width:5rem}.unit-buttons button[aria-pressed=true],.station-buttons button[aria-pressed=true]{background:var(--accent);color:var(--panel);border-color:var(--accent)}.unit-office-list{margin-top:.8rem;padding:1rem;background:var(--bg);border:1px solid var(--line);border-radius:.6rem}.unit-office-list p{margin:0 0 .7rem}.unit-office-list small{display:block;margin-top:.3rem;color:var(--muted)}.station-buttons{max-height:15rem;overflow-y:auto;padding:.2rem}.station-buttons button{text-align:left;white-space:normal;font-size:.8rem}.personnel-unit-picker>.muted{margin:.6rem 0 0}
.assigned-offices{display:flex;flex-wrap:wrap;gap:.5rem}.assigned-office{display:inline-block;padding:.55rem .85rem;border:1px solid var(--line);border-radius:.6rem;background:var(--bg);color:var(--text);font-weight:650}

.quick-leave-context{padding:.8rem 1rem;background:var(--soft);border-radius:.5rem}.quick-leave-context small{display:block;margin-top:.3rem;color:var(--muted)}.leave-person-search{position:relative}.leave-person-search>input{width:100%;margin-top:.4rem}#quick-person-results{max-height:16rem;overflow-y:auto;border:1px solid var(--line);border-radius:.5rem;margin-top:.4rem;background:var(--panel)}.leave-person-option{display:flex;align-items:center;gap:.9rem;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:.8rem}.leave-person-option strong{min-width:5rem}.leave-person-option span{font-weight:300;color:var(--muted);overflow-wrap:anywhere}.leave-person-option[aria-selected=true]{background:var(--soft)}.leave-person-search>p{font-size:.8rem;margin:.5rem 0 0}

.calendar-tools .calendar-period{width:12rem;flex:0 0 12rem;text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums}

.monthly-personnel-row{padding:.9rem 0;border-bottom:1px solid var(--line)}.monthly-personnel-row>strong{display:block;overflow-wrap:anywhere}.monthly-leave-totals{display:flex;justify-content:space-between;gap:1rem;margin:.4rem 0;font-size:.8rem}.monthly-leave-totals>span,.monthly-personnel-row>small{color:var(--muted)}.monthly-personnel-row>small{display:block;line-height:1.6}.monthly-summary-note{font-size:.75rem;margin:1rem 0 0}

.stats{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.6rem;margin-bottom:1rem}.stats .stat{padding:.6rem .7rem;border-radius:.6rem}.stats .stat span{display:block;font-size:.7rem;line-height:1.25}.stats .stat strong{font-size:1.4rem;margin:.2rem 0;font-weight:650}.stats .stat small{display:block;font-size:.6rem;line-height:1.25}@media(max-width:650px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

.personnel-table th,.personnel-table td{padding:.55rem .6rem}.personnel-table td{vertical-align:middle}.personnel-table .personnel-menu{width:2rem}.personnel-menu summary{display:grid;place-items:center;min-width:2rem;min-height:2rem;border:1px solid var(--line);border-radius:.4rem}.personnel-menu[open] summary{background:var(--soft)}

.directory-search{margin:1rem 0}.directory-search input{width:100%;padding:.75rem 1rem;font-size:.9rem}

#nav-more summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:.8rem;padding:.85rem 1rem;border-radius:.5rem;color:var(--muted)}#nav-more summary::-webkit-details-marker{display:none}#nav-more summary:hover,#nav-more summary.active{background:var(--soft);color:var(--accent)}#nav-more .more-arrow{margin-left:auto}#nav-more[open] .more-arrow{transform:rotate(180deg)}.more-links{display:flex;flex-direction:column;gap:.2rem;padding-left:.6rem}.more-links button{width:100%}

.day.capacity-full{background:#fce9e7;color:#a72e2e;border-color:#d77171}.day.capacity-partial{border-color:#d3a358}.day.capacity-full .count{background:#f8d2ce;color:#a72e2e}.capacity-label{font-size:.62rem;line-height:1.3;overflow-wrap:anywhere}.legend .capacity-key{background:#c96062}.dark .day.capacity-full{background:#462727;color:#ffd1cb}.dark .day.capacity-full .count{background:#65332f;color:#ffd1cb}

#nav{flex:1;min-height:0}#nav>*{flex-shrink:0}#nav>button[data-id="settings"]{margin-top:auto}.sidebar-foot{flex-shrink:0}

/* Compact workspace header and Dashboard selector. */
#workspace>header{height:auto;min-height:3.5rem;padding-top:.3rem;padding-bottom:.3rem;gap:.6rem}
#workspace>header button{min-height:2.75rem;padding:.45rem .8rem}
main{padding-top:.9rem}
.page-head{margin-bottom:.8rem;gap:.6rem}
.page-head>div:first-child{display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .8rem}
.page-head .eyebrow{flex-basis:100%;margin:0;font-size:.62rem}
.page-head #title{font-size:1.65rem;margin:0;line-height:1.2}
.page-head #subtitle{margin:0;font-size:.85rem}
.dashboard-unit-picker{padding:.75rem;margin-bottom:.8rem}
.dashboard-unit-picker:has(.assigned-offices){width:max-content;max-width:100%;padding:.45rem .7rem}
.dashboard-unit-picker .assigned-office{padding:0;border:0;background:transparent}
.dashboard-unit-picker .personnel-unit-picker{margin-bottom:0}
.dashboard-unit-picker .unit-buttons{gap:.4rem}
.dashboard-unit-picker .unit-buttons button{min-height:2.75rem;padding:.4rem .75rem}
.dashboard-unit-picker .personnel-unit-picker>.muted{display:inline-block;font-size:.75rem;line-height:1.4;margin:.35rem .8rem 0 0}
.dashboard-unit-picker .unit-office-list{margin-top:.5rem;padding:.65rem}
.dashboard-unit-picker .unit-office-list p{margin-bottom:.4rem}
.dashboard-unit-picker .unit-office-list small{margin-top:.15rem}
@media(max-width:650px){.page-head #subtitle{flex-basis:100%}.dashboard-unit-picker{padding:.6rem}}

/* Settings use compact groups; secondary catalogs open on demand. */
.settings-panel{padding:1rem;margin-bottom:.75rem}
.settings-title{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;margin-bottom:.65rem}
.settings-title h2{margin:0;font-size:1rem}
.settings-form{display:grid;gap:.7rem}
.settings-group{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));align-items:start;gap:.65rem .9rem;min-width:0;margin:0;padding:.7rem .8rem .8rem;border:1px solid var(--line);border-radius:.5rem}
.settings-group legend{padding:0 .35rem;font-size:.78rem;font-weight:700;color:var(--accent)}
.settings-group label{min-width:0;font-size:.8rem;gap:.25rem}
.settings-group input:not([type=checkbox]),.settings-group select,.settings-inline-form select{width:100%;min-height:2.5rem;padding:.45rem .65rem;font-size:.8rem}
.settings-group .checkbox{align-self:center;line-height:1.4}
.settings-group small,.settings-panel small{font-size:.72rem;line-height:1.4}
.settings-wide{grid-column:1/-1}
.settings-label{font-size:.8rem;font-weight:650}
.settings-days{gap:.4rem .8rem;margin-top:.35rem}
.settings-panel .form-actions{margin-top:0;gap:.5rem}
.settings-panel .error:empty{display:none}
.settings-inline-form{display:flex;align-items:end;flex-wrap:wrap;gap:.6rem .9rem}
.settings-inline-form>label{flex:1;min-width:220px;font-size:.8rem;gap:.25rem}
.settings-inline-form>small{flex:1;min-width:180px}
.settings-inline-form>.error:empty{display:none}
.settings-inline-form button,.settings-inline-row button,.settings-panel .form-actions button{padding:.45rem .8rem;min-height:2.5rem;font-size:.8rem}
.settings-inline-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.6rem;font-size:.82rem}
.settings-help{margin-top:.5rem;font-size:.75rem;color:var(--muted)}
.settings-help p{margin:.4rem 0 0;line-height:1.5}
.settings-secondary{padding:.7rem 1rem;margin-bottom:.65rem}
.settings-secondary>summary{cursor:pointer;font-size:.85rem;font-weight:650}
.settings-secondary>.panel{margin:.65rem 0 0;padding:.7rem;box-shadow:none}
.settings-secondary>.panel-head{margin-top:.7rem}
@media(max-width:650px){.settings-group{grid-template-columns:1fr}.settings-inline-form>label,.settings-inline-form>small{min-width:0;flex-basis:100%}}

.settings-one-line{padding:.65rem 1rem}
.settings-single-row{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem .85rem;font-size:.8rem}
.settings-single-row h2{margin:0;font-size:.95rem;white-space:nowrap}
.settings-single-row select{flex:1;min-width:220px;max-width:26rem;min-height:2.5rem;padding:.45rem .65rem;font-size:.8rem}
.settings-single-row button{margin-left:auto;min-height:2.5rem;padding:.45rem .8rem;font-size:.8rem;white-space:nowrap}
.settings-single-row>.error{flex-basis:100%;margin:0}
.settings-single-row .settings-help{margin:0}
.settings-single-row .settings-help[open]{flex-basis:100%;order:10}
.settings-single-row .badge{white-space:nowrap}
@media(max-width:650px){.settings-single-row select{min-width:0;max-width:none;flex-basis:100%}.settings-single-row button{margin-left:0}}

.settings-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.75rem;margin-bottom:.75rem}
.settings-pair>.panel{min-width:0;margin-bottom:0}
.settings-pair .settings-single-row{gap:.45rem .65rem}
.settings-pair .settings-single-row select{min-width:160px;max-width:none}
.settings-pair .settings-single-row .badge{font-size:.65rem}
@media(max-width:1100px){.settings-pair{grid-template-columns:1fr}}

.settings-single-row .correction-window-field{display:flex;flex-direction:row;align-items:center;gap:.35rem;font-size:.8rem;white-space:nowrap}
.correction-window-field input{width:4.5rem;min-height:2.5rem;padding:.45rem .5rem;font-size:.8rem}

.ui-icon{display:inline-block;width:20px;height:20px;fill:currentColor;vertical-align:middle;flex:none}.icon-button{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0}.menu summary .ui-icon{display:block;margin-left:auto}#nav-more .more-arrow{display:inline-flex}


/* PLMS visual refresh: preserve the existing structure and interactions. */
:root{
  font-size:16px;
  --bg:#f3f7f8;--panel:#fff;--text:#20343f;--muted:#526672;
  --line:#d7e2e6;--accent:#116e5e;--soft:#e7f3ee;
  --shadow:0 2px 12px #183c490a;
}
body{line-height:1.5}
body.dark{
  --bg:#121e27;--panel:#1b2b35;--text:#e6f0f1;--muted:#afc1c9;
  --line:#3b505a;--accent:#80d7b9;--soft:#24463e;
}
#sidebar{width:15.5rem;padding:1.5rem .9rem}
#workspace{margin-left:15.5rem}
.brand{padding:0 .6rem 1.5rem;gap:.75rem;font-size:1.45rem;line-height:1}
.brand-mark{width:2.75rem;height:2.75rem;flex:none;font-size:1.5rem;line-height:1}
body.dark .brand-mark{color:#102c23}
.brand-mark{position:relative;overflow:hidden}
@media(prefers-reduced-motion:no-preference){
  .brand-mark::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 28%,#fff8 50%,transparent 72%);transform:translateX(-150%);animation:brand-shimmer 5.5s ease-in-out infinite}
  @keyframes brand-shimmer{0%,58%{transform:translateX(-150%)}78%,100%{transform:translateX(150%)}}
}
.brand small{font-size:.75rem;line-height:1.35;margin-top:0}
nav{gap:.25rem}
nav button,#nav-more summary{min-height:2.75rem;padding:.7rem .85rem;border-radius:.5rem;font-size:.9rem;line-height:1.35}
nav button:hover,#nav-more summary:hover{color:var(--text);background:var(--bg)}
nav button.active,#nav-more summary.active{color:var(--accent);background:var(--soft)}
.sidebar-foot{padding:1rem .6rem .2rem;line-height:1.5}
main{max-width:1500px;padding:2rem clamp(1rem,3vw,2.5rem)}
.page-head{margin-bottom:1.5rem}
h1{font-size:clamp(1.7rem,2.4vw,2.25rem);line-height:1.2}
h2{font-size:1.2rem;line-height:1.3}
h3{font-size:1.05rem;line-height:1.35}
.eyebrow{font-size:.75rem;letter-spacing:.08em;margin-bottom:.45rem}
.page-head p:last-child{font-size:.95rem}
.stats{grid-template-columns:repeat(auto-fit,minmax(145px,1fr));align-items:stretch;gap:.5rem;margin-bottom:1rem}
.stats .stat{padding:.55rem .7rem;border-radius:.65rem}
.stats .stat span{font-size:.8rem;line-height:1.3}
.stats .stat strong{font-size:1.25rem;line-height:1.2;margin:.15rem 0;font-variant-numeric:tabular-nums}
.stats .stat small{font-size:.72rem;line-height:1.3}
.panel{padding:1.25rem;margin-bottom:1rem;border-radius:.7rem}
.panel-head{margin-bottom:1rem}
button{min-height:2.75rem;transition:background .2s ease,border-color .2s ease,color .2s ease}
button:hover{border-color:var(--accent)}
button.primary:hover{background:#0c584c;border-color:#0c584c;color:#fff}
body.dark button.primary:hover{background:#a0e4cc;border-color:#a0e4cc;color:#102c23}
input:not([type=checkbox]):not([type=radio]),select,textarea{min-height:2.75rem}
label,.filters label,.settings-group label{font-size:.875rem;line-height:1.45}
.filters input,.filters select,.settings-group input:not([type=checkbox]),.settings-group select,.settings-inline-form select{font-size:.875rem}
.filters{gap:.75rem 1rem}
.filters label{min-width:10rem}
.badge{font-size:.75rem;line-height:1.35;padding:.35rem .7rem}
body.dark .badge.warn{background:#493821;color:#ffe0a4}
body.dark .badge.red{background:#4d3030;color:#ffd1cc}
table{font-size:.875rem;line-height:1.45}
th,td{padding:.85rem .75rem}
th{font-size:.75rem;letter-spacing:.04em}
th button{min-height:0}
td small,.list-item small{font-size:.78rem;line-height:1.45}
details.menu summary,.personnel-menu summary{display:grid;place-items:center;min-width:2.75rem;min-height:2.75rem}
.menu-items button{font-size:.875rem;min-height:2.75rem}
.dialog-head{padding:1rem 1.25rem}
.dialog-body{padding:1.25rem}
.form-grid{gap:1rem 1.25rem}
.movement-office-field{display:grid;gap:.6rem}
.movement-office-suggestions{display:grid;max-height:15rem;overflow-y:auto;border:1px solid var(--line);border-radius:.45rem;background:var(--panel)}
.movement-office-suggestions[hidden]{display:none}
.movement-office-suggestions button{width:100%;min-height:2.75rem;border:0;border-radius:0;border-bottom:1px solid var(--line);text-align:left;white-space:normal}
.movement-office-suggestions button:last-child{border-bottom:0}
.movement-office-suggestions p{margin:.75rem;color:var(--muted)}
.movement-office-field small{color:var(--muted)}
.movement-office-field small:empty{display:none}
.form-actions{gap:.75rem}
.month-heading{font-size:.875rem}
.week span{font-size:.75rem}
.day{font-size:.8rem}
.count{font-size:.75rem}
.legend{font-size:.8rem}
.settings-panel small,.settings-group small,.settings-help,.monthly-summary-note{font-size:.78rem;line-height:1.5}
.settings-label,.settings-single-row,.settings-inline-row{font-size:.875rem}
.notice{border:1px solid #e3c785;background:#fff8e7;color:#6a4b13;border-radius:.5rem;font-size:.875rem}
body.dark .notice{border-color:#795e34;background:#352d20;color:#f3dea7}
@media(max-width:950px){#sidebar{width:min(18rem,85vw)}#workspace{margin-left:0}}
@media(max-width:650px){
  main{padding:1.25rem 1rem}
  .page-head{flex-wrap:wrap;align-items:flex-start}
  #page-actions{display:flex;flex-wrap:wrap;gap:.5rem;width:100%}
  .year-grid{grid-template-columns:1fr}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stats .stat{padding:.55rem .7rem}
  .panel{padding:1rem}
  .panel-head{align-items:flex-start}
  footer{flex-wrap:wrap;gap:.4rem}
}
@media(prefers-reduced-motion:reduce){button{transition:none}}

.year-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}
.year-grid .day{aspect-ratio:1;min-height:3rem;padding:.35rem;gap:.15rem;justify-content:space-between}
.year-grid .count{margin:0;align-self:flex-start}
.year-grid .capacity-label{align-self:flex-start;font-size:.7rem;line-height:1.1;white-space:nowrap;overflow-wrap:normal}
@media(max-width:760px){.year-grid{grid-template-columns:1fr}}

.day.has-leave .count{border:1px solid currentColor;font-weight:700}
.day.has-leave:not(.capacity-full) .count{background:var(--panel)}

@media(prefers-reduced-motion:no-preference){
  .day.has-leave .count{--beat-bg:var(--panel);--beat-ink:var(--accent);animation:leave-count-beat 3.6s ease-in-out infinite;transform-origin:center}
  .day.has-leave.capacity-full .count{--beat-bg:#f8d2ce;--beat-ink:#a72e2e}
  .dark .day.has-leave.capacity-full .count{--beat-bg:#65332f;--beat-ink:#ffd1cb}
  @keyframes leave-count-beat{
    0%,25%,35%,45%,100%{transform:scale(1);background-color:var(--beat-bg);box-shadow:0 0 0 0 transparent}
    29%,39%{transform:scale(1.05);background-color:color-mix(in srgb,var(--beat-bg) 94%,var(--beat-ink));box-shadow:0 0 0 .12rem color-mix(in srgb,var(--beat-ink) 18%,transparent)}
  }
}

dialog:has(.date-dialog){width:min(46rem,calc(100vw - 2rem))}
dialog:has(.date-dialog) .dialog-body{background:var(--panel)}
.date-dialog .chips:empty{display:none}
.date-leave-summary{margin:0 0 1rem;font-size:.95rem}
.date-leave-summary strong{font-size:1.2rem}
.date-leave-summary span,.date-leave-head small,.date-leave-meta dt{color:var(--muted)}
.date-leave-list{display:grid;gap:.5rem}
.date-leave-item{border:1px solid var(--line);border-radius:.7rem;padding:.65rem .8rem;background:var(--panel);min-width:0}
.date-leave-head{display:flex;align-items:flex-start;gap:.75rem}
.date-leave-head>div:first-child{min-width:0;flex:1;overflow-wrap:break-word}
.date-leave-head strong,.date-leave-head small{display:block;line-height:1.3}
.date-leave-head small{margin-top:.1rem}
.date-leave-head .badge{flex:none}
.date-leave-actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.3rem .6rem;margin-top:.35rem}
.date-leave-actions .menu,.date-leave-actions .chips{margin-left:auto}
.date-leave-actions .chips{gap:.35rem;align-items:center}
.date-leave-actions button{padding:.35rem .55rem;font-size:.8rem}
.date-leave-meta{display:flex;flex-wrap:wrap;gap:.25rem 1rem;margin:.5rem 0 0;padding-top:.5rem;border-top:1px solid var(--line)}
.date-leave-meta div{min-width:0}
.date-leave-meta dt,.date-leave-meta dd{display:inline;font-size:.8rem;line-height:1.35}
.date-leave-meta dt::after{content:': '}
.date-leave-meta dd{margin:0;overflow-wrap:anywhere}
.date-limit{margin-top:1rem;color:var(--muted);font-size:.875rem}
.date-limit summary{cursor:pointer;width:max-content;max-width:100%}
.date-limit p{margin:.5rem 0 0}
.date-dialog .form-actions{margin-top:1rem}
@media(max-width:520px){.date-leave-head{flex-wrap:wrap}.date-leave-actions .chips{flex-wrap:wrap;justify-content:flex-end}}

dialog:has(.leave-editor){width:min(62rem,calc(100vw - 1rem));max-height:calc(100dvh - 1rem)}
dialog:has(.leave-editor) #dialog-content{display:flex;flex-direction:column;max-height:calc(100dvh - 1rem)}
dialog:has(.leave-editor) .dialog-head{flex:none;padding:.6rem 1rem}
dialog:has(.leave-editor) .dialog-body{min-height:0;overflow:auto;padding:1rem;background:var(--panel)}
.leave-editor>.form-grid{gap:.65rem 1rem}
.leave-editor .leave-field-group{display:flex;flex-direction:column;gap:.25rem;min-width:0}
.leave-editor .leave-field-group select{width:100%}
.leave-editor .leave-field-group .notice{margin:0;padding:0;border:0;background:none;color:var(--muted);font-size:.8rem;line-height:1.35}
.leave-editor .leave-extra{border-top:1px solid var(--line);padding-top:.5rem}
.leave-editor .leave-extra summary{cursor:pointer;font-weight:600}
.leave-editor .leave-extra>.form-grid{margin-top:.7rem}
.leave-editor .form-actions{position:sticky;bottom:-1rem;z-index:2;margin:1rem -1rem -1rem;padding:.65rem 1rem;background:var(--panel);border-top:1px solid var(--line)}
@media(max-width:650px){.leave-editor>.form-grid{grid-template-columns:1fr}.leave-editor .form-grid .wide{grid-column:1}}

.legend{gap:.35rem .9rem;margin-top:.8rem;line-height:1.35}
.legend span{white-space:nowrap}
.legend .partial-key{background:#d3a358}
.calendar-help{margin-top:.35rem;color:var(--muted);font-size:.8rem}
.calendar-help summary{cursor:pointer;width:max-content;max-width:100%}
.calendar-help p{max-width:75ch;margin:.4rem 0 0}

.directory-table th,.directory-table td{padding-top:.25rem;padding-bottom:.25rem;vertical-align:middle}.directory-table td small:empty{display:none}.directory-table .menu summary{min-width:44px;min-height:44px}

/* Requests: compact identity-first work list, shared by every account role. */
.request-workspace{--request-secondary:#4b5f6e;--request-pending-ink:#70500d;--request-pending-bg:#fff4d6;--request-approved-ink:#155c48;--request-approved-bg:#e5f4ec;--request-rejected-ink:#8d3333;--request-rejected-bg:#fceced;--request-link:#12614f;--request-gap:16px;--request-cell-pad:8px;--request-body:16px;--request-small:14px;--request-control:36px;font-size:var(--request-body);line-height:1.5;padding:var(--request-gap);box-shadow:none;min-width:0}
.dark .request-workspace{--request-secondary:#bdcbd6;--request-pending-ink:#f2cf80;--request-pending-bg:#3c3018;--request-approved-ink:#a1e0c4;--request-approved-bg:#1b3b30;--request-rejected-ink:#ffc1bc;--request-rejected-bg:#46282c;--request-link:#8cdcc4}
.request-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--request-gap);margin-bottom:var(--request-gap)}
.request-heading>div:first-child{min-width:0;flex:1}.request-heading h2{font-size:20px;line-height:1.4;margin:0 0 4px}.request-heading p{font-size:var(--request-small);color:var(--request-secondary);max-width:72ch;margin:0}
.request-top-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.request-top-actions button{font-size:var(--request-small);min-height:var(--request-control)}
.request-toolbar{display:flex;align-items:flex-end;gap:var(--request-gap);flex-wrap:wrap}.request-toolbar label{font-size:var(--request-small);line-height:1.5;gap:4px}.request-toolbar label:first-child{flex:1 1 280px}.request-toolbar label:nth-child(2){flex:0 1 200px}.request-toolbar input,.request-toolbar select{width:100%;min-height:40px;font-size:var(--request-body)}.request-toolbar>button{min-height:40px;font-size:var(--request-small)}
.request-summary{display:flex;flex-wrap:wrap;gap:4px 16px;margin:12px 0 4px;font-size:var(--request-small);color:var(--request-secondary)}.request-summary strong{color:var(--text)}
.request-results-heading{display:flex;justify-content:space-between;align-items:center;gap:8px 16px;flex-wrap:wrap;margin:12px 0 4px;font-size:var(--request-small)}.request-results-heading p{margin:0;font-weight:600}.request-results-heading>span{color:var(--request-secondary)}
.requests-table{table-layout:fixed;width:100%;font-size:var(--request-body);line-height:1.5}.requests-table .request-person-col{width:40%}.requests-table .request-move-col{width:24%}.requests-table .request-status-col{width:16%}.requests-table .request-action-col{width:20%}
.requests-table th,.requests-table td{padding:var(--request-cell-pad) 8px;white-space:normal;overflow-wrap:anywhere;vertical-align:top;text-align:left}.requests-table th{font-size:var(--request-small);font-weight:600;text-transform:none;letter-spacing:0;color:var(--request-secondary);background:var(--panel)}.requests-table th:first-child,.requests-table td:first-child{padding-left:0}.requests-table th:last-child,.requests-table td:last-child{padding-right:0}
.request-row strong{font-weight:600}.request-name{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:normal}.request-secondary{display:block;margin-top:4px;font-size:var(--request-small);color:var(--request-secondary)}.request-office{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.request-route{display:block;font-size:var(--request-small);color:var(--request-secondary);margin-top:4px}.request-route>span{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.request-date{font-variant-numeric:tabular-nums}.request-date>span{display:block}
.request-status{display:inline-block;padding:4px 8px;border-radius:4px;font-size:var(--request-small);font-weight:600;white-space:nowrap;background:var(--bg);color:var(--text)}.request-status-pending{color:var(--request-pending-ink);background:var(--request-pending-bg)}.request-status-approved{color:var(--request-approved-ink);background:var(--request-approved-bg)}.request-status-rejected{color:var(--request-rejected-ink);background:var(--request-rejected-bg)}
.request-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start}.request-actions button{font-size:var(--request-small);min-height:var(--request-control);padding:4px 8px;white-space:nowrap}.request-actions button.primary{background:var(--panel);color:var(--request-link);border-color:var(--line)}.request-actions button.primary:hover{background:var(--soft)}
.request-detail-content{padding:var(--request-gap);background:var(--bg);border-radius:8px}.request-detail-content h3{font-size:var(--request-body);margin:0 0 12px;overflow-wrap:anywhere}.request-detail-content dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--request-gap);margin:0}.request-detail-content dt{font-size:var(--request-small);color:var(--request-secondary)}.request-detail-content dd{margin:4px 0 0;overflow-wrap:anywhere;white-space:pre-wrap}.request-note{grid-column:1/-1}.request-detail-row td{padding:0 0 var(--request-gap)}
.request-pagination{display:flex;justify-content:flex-end;align-items:center;gap:var(--request-gap);margin-top:var(--request-gap);font-size:var(--request-small)}.request-pagination button{min-height:var(--request-control)}.request-empty{padding:24px 0}.request-empty p{margin:4px 0 0;color:var(--request-secondary)}
.request-workspace :is(button,input,select):focus-visible{outline:2px solid var(--request-link);outline-offset:3px}.request-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(max-width:1000px){.request-detail-content dl{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.requests-table,.requests-table tbody{display:block}.requests-table colgroup,.requests-table thead{display:none}.request-group{border-bottom:1px solid var(--line)}.request-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:center;padding:12px 0}.requests-table .request-row td{display:block;padding:0;border:0;min-width:0}.request-row td:first-child{grid-column:1;grid-row:1}.request-row td:nth-child(2){grid-column:1;grid-row:2;font-size:var(--request-small);color:var(--request-secondary)}.request-row td:nth-child(3){grid-column:2;grid-row:1;align-self:start}.request-row td:last-child{grid-column:2;grid-row:2}.request-detail-row:not([hidden]){display:block}.request-detail-row td{display:block;border:0}.request-status{white-space:nowrap}.request-heading{flex-wrap:wrap}}
@media(max-width:650px){.request-workspace{--request-control:44px}.request-heading{display:block}.request-top-actions{margin-top:12px}.request-toolbar{gap:8px}.request-toolbar label:first-child{flex-basis:100%}.request-toolbar label:nth-child(2){flex:1 1 160px}.request-toolbar>button{min-height:44px}.request-results-heading>span{font-size:var(--request-small)}.request-detail-content dl{grid-template-columns:1fr}.request-name{-webkit-line-clamp:2}.request-pagination{justify-content:space-between;gap:8px}.request-summary{gap:4px 12px}.request-top-actions button{flex:1 1 auto}.request-toolbar input,.request-toolbar select{min-height:44px}}

.request-review-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.request-review-actions button{min-height:44px}.request-actions button{touch-action:manipulation}.request-toolbar input::placeholder{color:var(--request-secondary);opacity:1}

/* Movement dialog: lookup first, progressive identity fields, persistent actions. */
dialog:has(.movement-editor){width:min(760px,calc(100vw - 32px));max-height:calc(100dvh - 32px)}
dialog[open]:has(.movement-editor){display:flex;flex-direction:column;overflow:hidden}
dialog:has(.movement-editor) .dialog-head{position:static;flex:none;padding:16px 20px;gap:16px}
dialog:has(.movement-editor) .dialog-head h2{font-size:22px;line-height:1.3;margin:0;text-wrap:balance}
dialog:has(.movement-editor) .dialog-head button{width:44px;min-height:44px;display:grid;place-items:center;padding:8px}
dialog:has(.movement-editor) .dialog-body{min-height:0;overflow:auto;overscroll-behavior:contain;scroll-padding:16px 16px 96px;padding:20px;background:var(--panel)}
.movement-editor{--movement-gap:16px;--movement-secondary:#4b5f6e;--movement-error:#9b3030;font-size:16px;line-height:1.5}
.dark .movement-editor{--movement-secondary:#bdcbd6;--movement-error:#ffb6ae}
.movement-editor>.form-grid{grid-template-columns:minmax(0,1fr);gap:var(--movement-gap)}
.movement-editor .movement-intro{margin:0;color:var(--movement-secondary);font-size:14px;max-width:68ch}
.movement-section{margin:0;padding:0;border:0;min-width:0}
.movement-section h3,.movement-section legend{font-size:16px;line-height:1.5;font-weight:650;margin:0 0 8px;padding:0;color:var(--text)}
.movement-section+.movement-section{padding-top:16px;border-top:1px solid var(--line)}
.movement-section label{font-size:14px;line-height:1.5;gap:4px;min-width:0}
.movement-editor input,.movement-editor select{min-height:44px;width:100%;font-size:16px;font-weight:400;line-height:1.5;padding:8px 12px;border-radius:6px;scroll-margin-block:16px 96px;background:var(--panel);color:var(--text)}
.movement-editor input:read-only{background:var(--bg)}
.movement-editor label small,.movement-section-help{font-size:14px;line-height:1.5;color:var(--movement-secondary)}
.movement-section-help{margin:0 0 12px}
.movement-editor .movement-match{margin:8px 0 0;font-size:14px;line-height:1.5;color:var(--movement-secondary);overflow-wrap:anywhere}
.movement-match strong,.movement-match span{display:block}.movement-match strong{font-size:16px;color:var(--text)}
.movement-match[data-state="found"]{padding:12px;background:var(--soft);border-radius:6px}
.movement-editor .movement-match[data-state="error"],.movement-editor .movement-inline-error{color:var(--movement-error)}
.movement-editor .movement-inline-error{font-size:14px;margin-top:4px}
.movement-editor [aria-invalid="true"]{border-color:var(--movement-error)}
.movement-editor .form-grid{gap:12px 16px}.movement-editor .movement-identity-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.movement-editor .movement-assignment-grid>.movement-office-field{grid-column:auto;display:block}
.movement-editor .movement-optional{font-size:14px;min-width:0}
.movement-optional>summary{cursor:pointer;min-height:36px;display:list-item;list-style-position:inside;padding:4px 0;color:var(--text);font-weight:600}
.movement-optional>.form-grid{margin-top:12px}
.movement-optional dl{margin:8px 0 0;display:grid;gap:8px}.movement-optional dt{font-weight:600}.movement-optional dd{margin:0;color:var(--movement-secondary)}
.movement-editor .movement-authority{margin:0;padding:12px;background:var(--bg);border-radius:6px;color:var(--movement-secondary);font-size:14px;line-height:1.5}
.movement-editor>#form-error{font-size:14px;margin:12px 0 0;color:var(--movement-error)}.movement-editor>#form-error:empty{display:none}
.movement-editor .form-actions{position:sticky;bottom:-20px;z-index:2;display:flex;gap:8px;margin:16px -20px -20px;padding:12px 20px;background:var(--panel);border-top:1px solid var(--line)}
.movement-editor .form-actions button{min-height:44px;padding:8px 16px;font-size:16px;touch-action:manipulation}
.movement-editor :is(input,select,button,summary):focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(max-width:650px){dialog:has(.movement-editor){width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}dialog:has(.movement-editor) .dialog-head{padding:12px 16px}dialog:has(.movement-editor) .dialog-body{padding:16px}.movement-editor .movement-identity-grid,.movement-editor .movement-assignment-grid{grid-template-columns:1fr}.movement-editor .form-actions{bottom:-16px;margin:16px -16px -16px;padding:12px 16px}.movement-editor .form-actions button{flex:1}.movement-optional>summary{min-height:44px}}

.movement-suggestions{display:grid;gap:4px;margin-top:8px;max-height:240px;overflow:auto}.movement-suggestions[hidden]{display:none}.movement-suggestions button{text-align:left;white-space:normal;padding:8px 12px;min-height:44px}.movement-suggestions strong,.movement-suggestions span{display:block}.movement-suggestions span{font-size:14px;line-height:1.5;color:var(--movement-secondary);overflow-wrap:anywhere}

/* Compact Operator move form; other movement dialogs keep their existing layout. */
dialog:has(.quick-move-editor){width:min(600px,calc(100vw - 32px))}
dialog:has(.quick-move-editor) .dialog-head{padding:16px 20px}
dialog:has(.quick-move-editor) .dialog-head h2{font-size:20px}
dialog:has(.quick-move-editor) .dialog-body{padding:16px 20px 20px}
.quick-move-editor>.form-grid{gap:16px}
.quick-move-person{display:grid;gap:4px;padding:12px 16px;background:var(--soft);border:1px solid var(--line);border-radius:8px;overflow-wrap:anywhere}
.quick-move-person strong{font-size:16px;font-weight:650;line-height:1.5}
.quick-move-person>span:last-child{font-size:14px;line-height:1.5}
.quick-move-caption{font-size:12px;font-weight:600;color:var(--movement-secondary)}
.quick-move-person .quick-move-caption:nth-child(3){margin-top:4px}
.quick-move-fields{display:grid;gap:12px;min-width:0}
.quick-move-fields label,.quick-move-date label{font-size:14px;line-height:1.5;gap:4px;min-width:0}
.quick-move-fields select{max-width:100%;min-width:0}
.quick-move-help,.quick-move-note{margin:0;color:var(--movement-secondary);font-size:14px;line-height:1.5}
.quick-move-date>summary{width:fit-content;padding:8px 12px;border:1px solid var(--line);border-radius:6px;min-height:40px}
.quick-move-date>summary span{font-weight:400;color:var(--movement-secondary)}
.quick-move-date[open]>label{margin-top:12px}
.quick-move-editor .form-actions{margin-top:16px}
@media(max-width:650px){dialog:has(.quick-move-editor){width:calc(100vw - 16px)}dialog:has(.quick-move-editor) .dialog-head,dialog:has(.quick-move-editor) .dialog-body{padding:16px}.quick-move-person{padding:12px}.quick-move-date>summary{min-height:44px}}

#support-session-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 24px;background:var(--panel);color:var(--text);border-bottom:2px solid var(--accent)}#support-session-banner>div{display:grid;gap:4px;min-width:0;overflow-wrap:anywhere}#support-session-banner span,#support-session-banner small{display:block;font-size:14px;line-height:1.5}#support-session-banner button{flex:none;min-height:44px}.support-event{padding:16px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.support-event p{margin:8px 0}.support-event-meta{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:14px}.support-event summary{cursor:pointer;min-height:44px;padding:8px 0}.support-event td{white-space:pre-wrap;overflow-wrap:anywhere;max-width:36ch}.support-history .panel-head{flex-wrap:wrap}.support-history :is(button,summary):focus-visible,#support-session-banner button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media(max-width:650px){#support-session-banner{padding:12px 16px;align-items:stretch;flex-direction:column}}

#support-session-banner{position:sticky;top:0;z-index:12}#workspace:has(#support-session-banner)>header{position:static}

/* Movement request form: compact groups and context-specific guidance. */
dialog:has(.movement-request-editor){width:min(720px,calc(100vw - 32px))}
.movement-request-editor{--request-section-gap:16px;--request-field-gap:12px}
.movement-request-editor>.form-grid{gap:var(--request-section-gap)}
.movement-request-editor .movement-intro{font-size:14px;line-height:1.5;max-width:none}
.movement-request-editor .movement-intro>span{white-space:nowrap}
.movement-request-editor .movement-section h3,.movement-request-editor .movement-section legend{font-size:14px;font-weight:650;color:var(--accent);margin-bottom:8px}
.movement-request-editor .movement-section+.movement-section{padding-top:var(--request-section-gap)}
.movement-type-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:var(--request-field-gap);align-items:start}
.movement-type-grid:has(#movement-route[hidden]){grid-template-columns:minmax(0,1fr)}
.movement-request-editor .movement-section-help{margin:8px 0 0;font-size:14px;line-height:1.5}
.movement-request-editor .movement-type-grid select{max-width:100%;text-overflow:ellipsis}
.movement-request-editor .movement-assignment-grid{grid-template-columns:minmax(0,1fr)}
.movement-request-editor .movement-assignment-grid>.movement-office-field{grid-column:1/-1}
.movement-request-editor .movement-match:empty{display:none}
.movement-request-editor .movement-match[data-state="found"]{border:1px solid var(--line);padding:8px 12px;border-radius:6px}
.movement-request-editor .movement-date-option>summary,.movement-request-editor .movement-guide>summary{width:fit-content;min-height:44px;padding:8px 0;font-size:14px}
.movement-request-editor .movement-date-option>summary span{font-weight:400;color:var(--movement-secondary)}
.movement-request-editor .movement-date-option>label{margin-top:8px}
.movement-request-editor .movement-guide{padding-top:8px;border-top:1px solid var(--line)}
.movement-request-editor .movement-guide dl{padding:12px;background:var(--bg);border-radius:6px}
.movement-request-editor .form-actions{margin:16px 0 0;padding:12px 0 0;bottom:0;align-items:center;flex-wrap:wrap}
.movement-request-editor .form-actions .movement-authority{padding:0;background:none;border-radius:0;margin:0 auto 0 0;flex:1 1 240px;max-width:42ch;font-size:14px;line-height:1.5;color:var(--movement-secondary)}
.movement-request-editor .form-actions button{flex:none}
.movement-request-editor [hidden]{display:none!important}
@media(max-width:650px){dialog:has(.movement-request-editor){width:calc(100vw - 16px)}.movement-type-grid{grid-template-columns:minmax(0,1fr)}.movement-request-editor .form-actions .movement-authority{flex-basis:100%;max-width:none;margin-bottom:4px}.movement-request-editor .form-actions button{flex:1}.movement-request-editor .movement-intro>span{white-space:normal}}
