[hidden]{display:none!important}#auth-gate{min-height:100dvh;display:grid;place-items:center;padding:2rem}.auth-card{width:min(26rem,100%);padding:2rem;background:var(--panel);border:1px solid var(--line);border-radius:.8rem}.auth-card form{display:grid;gap:1rem}.auth-card h1{margin-bottom:1rem}.auth-card #reset-password{margin-top:1rem}#auth-error{color:var(--danger);overflow-wrap:anywhere}header{height:auto;min-height:3.5rem;flex-wrap:wrap;padding-top:.3rem;padding-bottom:.3rem}
#announcement-button{margin-left:auto}#announcement-button:not([hidden])+#notification-bell{margin-left:0}[data-announcement] p{white-space:pre-wrap;overflow-wrap:anywhere}
.announcement-card{position:relative}.announcement-card:has(.announcement-action-menu[open]){z-index:8}.announcement-card .correction-notification summary{padding-right:3.5rem}.announcement-action-menu{position:absolute;top:.1rem;right:0}.announcement-action-menu[open] .menu-items{top:2.7rem}
dialog:has(.announcement-form){width:min(38rem,calc(100vw - 1rem))}
dialog:has(.announcement-form) .dialog-head{padding:.85rem 1rem}
dialog:has(.announcement-form) .dialog-body{padding:1rem;background:var(--panel)}
.announcement-form .form-grid{grid-template-columns:1fr;gap:.85rem}
.announcement-intro{margin:0;color:var(--muted);line-height:1.5}
.announcement-form textarea{min-height:9rem;line-height:1.5}
.announcement-form #form-error:empty{display:none}
.announcement-form .form-actions{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line);flex-wrap:wrap}

.account-office-picker{min-width:0;border:1px solid var(--line,#dfe7eb);border-radius:12px;padding:16px}.account-office-picker legend{font-weight:600;padding:0 6px}.account-office-tree{max-height:340px;overflow:auto}.account-office-row{display:flex;align-items:flex-start;gap:12px;padding:10px 8px 10px calc(8px + var(--office-depth)*20px);font-weight:400}.account-office-row input{width:18px;min-width:18px;height:18px;margin:3px 0 0;accent-color:#178474}.account-office-row span{min-width:0;overflow-wrap:anywhere}.account-office-row small{display:block;font-weight:400}.account-office-row small[hidden]{display:none}

.account-office-picker .account-office-row{flex-direction:row;align-items:flex-start;font-weight:400}.account-office-search{display:flex;gap:10px;align-items:flex-end}.account-office-search label{flex:1;min-width:0}.account-office-search button{flex:none;white-space:nowrap}.account-office-tree{max-height:280px}.account-office-picker input[type=checkbox]{flex:0 0 18px;padding:0}.account-office-picker .account-office-row:hover{background:var(--soft)}#account-office-options{margin-top:10px;border:1px solid var(--line);border-radius:8px;padding:8px}#account-office-selected{overflow-wrap:anywhere}#account-office-results{margin:0 0 6px}@media(max-width:520px){.account-office-search{align-items:stretch;flex-direction:column}}
.notification-bell{margin-left:auto;position:relative;min-width:44px;min-height:44px;font-size:1.3rem}.notification-count{position:absolute;top:-5px;right:-5px;background:#bd2626;color:white;border-radius:999px;padding:2px 6px;font-size:12px;font-weight:700}.correction-notification{border-bottom:1px solid var(--line);padding:.6rem 0}.correction-notification summary{cursor:pointer;font-weight:600;line-height:1.3}.correction-notification summary small{display:block;color:var(--muted);margin:.2rem 0 0;font-weight:400;line-height:1.35}.correction-notification>div{padding:.45rem 0 .2rem;overflow-wrap:anywhere}.correction-notification>div>p{margin:.3rem 0;line-height:1.4}.correction-notification .chips{margin:.45rem 0}.correction-notification .correction-history{margin-top:.5rem}.correction-history summary{cursor:pointer}.unread-dot{display:inline-block;width:9px;height:9px;background:#bd2626;border-radius:50%;margin-right:8px}
.quick-leave-form .form-grid{gap:1.1rem}
.quick-leave-form .quick-leave-context{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem 1rem;padding:.6rem .8rem;background:var(--bg);border:1px solid var(--line);border-radius:.5rem}
.quick-leave-summary{display:flex;align-items:baseline;flex-wrap:wrap;gap:.4rem .8rem;min-width:0}.quick-leave-summary strong{font-size:1rem}.quick-leave-summary span{font-size:.8rem;color:var(--muted);overflow-wrap:anywhere}
.quick-quota-info{font-size:.76rem;color:var(--muted)}.quick-quota-info summary{cursor:pointer}.quick-quota-info small{max-width:28rem;line-height:1.5}
.quick-leave-lists{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem;padding-bottom:.9rem;border-bottom:1px solid var(--line)}
.quick-leave-lists label{min-width:0}.quick-leave-lists select{width:100%;min-width:0;height:clamp(22rem,62dvh,44rem);padding:.3rem;font-size:.85rem;line-height:1.4;white-space:normal}.quick-leave-lists option{padding:.3rem .45rem}
.quick-leave-duration{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem .7rem}.quick-leave-duration label{display:block}.quick-leave-duration input{width:5.5rem;flex:0 0 5.5rem;padding:.45rem .6rem}.quick-leave-duration small{font-size:.75rem;color:var(--muted)}.quick-leave-form .form-actions{align-items:center;flex-wrap:wrap;gap:.7rem;margin-top:1rem}.quick-leave-form .form-actions .quick-leave-duration{margin-right:auto}
@media(max-width:640px){.quick-leave-lists{grid-template-columns:1fr}.quick-leave-lists select{height:18rem}.quick-leave-form .quick-leave-context{align-items:flex-start}}

dialog:has(.quick-leave-form){max-height:calc(100dvh - 1rem)}
dialog:has(.quick-leave-form) .dialog-head{padding:.6rem 1rem}
dialog:has(.quick-leave-form) .dialog-head h2{margin:0;font-size:1.15rem}
dialog:has(.quick-leave-form) .dialog-head .icon{padding:.3rem .6rem;min-height:2rem}
dialog:has(.quick-leave-form) .dialog-body{padding:1rem}
.office-unit-list{border:1px solid var(--line);border-radius:.7rem;background:transparent}
.office-unit-card{position:relative;margin:0;border-bottom:1px solid var(--line)}
.office-unit-card:last-child{border-bottom:0}
.office-unit-card>.office-group{margin:0;border:0;border-radius:0}
.office-unit-card>.office-group>summary{min-height:3.5rem;padding:.75rem 3.5rem .75rem 1rem;line-height:1.5}
.office-unit-card>.office-group>summary:hover{background:var(--bg)}
.office-unit-card>.office-group[open]>summary{background:var(--soft)}
.office-unit-card>.office-group .table-wrap{border-top:1px solid var(--line)}
.office-kind{margin-right:.4rem;color:var(--accent);font-size:.7rem;font-weight:750;letter-spacing:.07em;text-transform:uppercase}
.office-unit-card>.office-group>summary .badge{padding:0;margin-left:.5rem;background:transparent;color:var(--muted);font-weight:500;vertical-align:baseline}
.office-unit-card>.office-action-menu{position:absolute;right:.7rem;top:.35rem}
.office-action-menu summary{line-height:1.2}
.office-unit-card>.office-action-menu[open] .menu-items{z-index:9}
.office-group .table-wrap:has(.office-action-menu[open]){padding-bottom:7rem}
.office-inline-editor{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.4rem;max-width:100%}.office-inline-editor input{width:clamp(10rem,32vw,34rem);max-width:100%;padding:.4rem .6rem}.office-inline-editor button{padding:.4rem .6rem;font-size:.8rem}.office-inline-editor .error{flex-basis:100%;font-weight:400}
.office-inline-editor{animation:office-edit-enter .22s ease-out both;transform-origin:left center;vertical-align:middle}.office-inline-editor input{width:clamp(10rem,25vw,20rem)}.office-inline-editor input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@keyframes office-edit-enter{from{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.office-inline-editor{animation:none}}@media(max-width:650px){.office-inline-editor input{width:min(100%,18rem)}}

/* Keep personnel and leave details in the same compact dialog language as leave editing. */
.personnel-menu .mobile-only{display:none}
@media(max-width:650px){
  .personnel-table{table-layout:fixed}
  .personnel-table th:nth-child(1),.personnel-table td:nth-child(1),.personnel-table th:nth-child(4),.personnel-table td:nth-child(4),.personnel-table th:nth-child(5),.personnel-table td:nth-child(5){display:none}
  .personnel-table th,.personnel-table td{padding:.45rem .25rem}
  .personnel-table th:nth-child(2){width:3.5rem}
  .personnel-table th:nth-child(6){width:4.8rem}
  .personnel-table th:nth-child(7){width:3.3rem}
  .personnel-table th button{padding:.25rem}
  .personnel-table td:nth-child(3){overflow-wrap:anywhere}
  .personnel-menu .mobile-only{display:block}
}
dialog:has(.personnel-editor),dialog:has(.leave-info){width:min(43rem,calc(100vw - 1rem))}
dialog:has(.personnel-editor) .dialog-head,dialog:has(.leave-info) .dialog-head{padding:.55rem .85rem}
dialog:has(.personnel-editor) .dialog-head h2,dialog:has(.leave-info) .dialog-head h2{font-size:1.15rem}
dialog:has(.personnel-editor) .dialog-body,dialog:has(.leave-info) .dialog-body{padding:.85rem;background:var(--panel)}
.personnel-editor>.form-grid{gap:.55rem .8rem}
.personnel-editor label{gap:.2rem}
.personnel-editor input:not([type=checkbox]),.personnel-editor select{padding:.5rem .65rem}
.personnel-editor .form-actions{margin-top:.8rem;padding-top:.7rem;border-top:1px solid var(--line)}
.leave-info{display:grid;gap:.55rem}
.leave-info h2{margin:0;font-size:1.15rem;line-height:1.3}
.leave-info p{margin:0;line-height:1.5;overflow-wrap:anywhere}
.leave-info .muted{margin-top:.25rem}
.leave-info .form-actions{margin-top:.55rem;padding-top:.75rem;border-top:1px solid var(--line)}
dialog:has(.leave-info) .correction-history{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--line)}
@media(max-width:650px){.personnel-editor>.form-grid{grid-template-columns:1fr}}

dialog:has(.correction-request-form){width:min(35rem,calc(100vw - 1rem))}
dialog:has(.correction-request-form) .dialog-head{padding:.7rem 1rem}
dialog:has(.correction-request-form) .dialog-body{padding:1rem;background:var(--panel)}
.correction-request-form .form-grid{grid-template-columns:1fr;gap:.85rem}
.correction-request-context{display:grid;gap:.2rem;padding:.7rem .8rem;border:1px solid var(--line);border-radius:.55rem;overflow-wrap:break-word}
.correction-request-context strong{font-size:.95rem}
.correction-request-context span,.correction-request-context small{color:var(--muted);font-size:.8rem}
.correction-request-form textarea{min-height:5rem}
.correction-request-form #form-error:empty{display:none}
.correction-request-form .form-actions{margin-top:.85rem}

dialog:has(.directory-editor){width:min(38rem,calc(100vw - 1rem))}
dialog:has(.directory-editor) .dialog-head{padding:.55rem .85rem}
dialog:has(.directory-editor) .dialog-head h2{font-size:1.15rem}
dialog:has(.directory-editor) .dialog-body{padding:.85rem;background:var(--panel)}
.directory-editor>.form-grid{gap:.55rem .8rem}
.directory-editor label{gap:.2rem}
.directory-editor input:not([type=checkbox]),.directory-editor select,.directory-editor textarea{padding:.5rem .65rem}
.directory-editor textarea{min-height:3.5rem}
.directory-editor .form-actions{margin-top:.8rem;padding-top:.7rem;border-top:1px solid var(--line)}
@media(max-width:650px){.directory-editor>.form-grid{grid-template-columns:1fr}}

.leave-records-table td{padding:.3rem .65rem;vertical-align:middle}.leave-records-table td small{margin-top:.1rem}.leave-record-actions{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-width:8rem}.leave-record-actions>span{min-width:0;overflow-wrap:anywhere}.leave-record-actions .menu{flex:none}
.quick-leave-summary{align-items:center}.quick-office-picker{position:relative;width:clamp(12rem,24vw,26rem);max-width:100%}#quick-office-toggle{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;padding:.3rem .5rem;font-size:.8rem;text-align:left;background:var(--panel)}#quick-office-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#quick-office-panel{position:absolute;top:calc(100% + .3rem);left:0;width:100%;z-index:12;background:var(--panel);border:1px solid var(--line);border-radius:.5rem;box-shadow:0 6px 20px #0002;padding:.5rem}#quick-office-search{width:100%;font-size:.8rem}#quick-office-results{max-height:min(16rem,30dvh);overflow:auto;margin-top:.4rem}#quick-office-results button{display:block;width:100%;text-align:left;white-space:normal;overflow-wrap:anywhere;font-size:.8rem;border:0;padding:.5rem}.quick-leave-form .quick-leave-context{overflow:visible}
/* Two fixed-height station rows; additional offices scroll vertically. */
.station-buttons{--station-row-height:2.65rem;max-height:calc(2 * var(--station-row-height) + .5rem + .4rem);overflow-y:auto;overflow-x:hidden;align-content:flex-start;scrollbar-gutter:stable}
.station-buttons button{height:var(--station-row-height);flex-shrink:0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:.45rem .8rem}
.station-buttons{overflow-y:scroll;scrollbar-width:thin;scrollbar-color:var(--muted) var(--line)}
.station-buttons::-webkit-scrollbar{width:8px}.station-buttons::-webkit-scrollbar-track{background:var(--line);border-radius:8px}.station-buttons::-webkit-scrollbar-thumb{background:var(--muted);border-radius:8px}

.sidebar-controls{display:flex;align-items:center;gap:.4rem;margin-top:.6rem}
.sidebar-foot .sidebar-controls button{flex:1;min-width:0;margin:0;padding:.55rem .35rem;font-size:.78rem;white-space:nowrap}
#sidebar{padding-bottom:.5rem}
.sidebar-foot .app-version{margin:.15rem 0 0}


/* Sign-in and shared chrome follow the refreshed workspace scale. */
.auth-card{padding:clamp(1.5rem,5vw,2.25rem);border-radius:.9rem;box-shadow:var(--shadow)}
.auth-card h1{font-size:1.7rem;margin-bottom:.4rem}
.auth-card>p:not(#auth-error){color:var(--muted);margin:0 0 1.5rem}
.auth-card form button.primary{width:100%}
.auth-card #reset-password{margin-top:.75rem}
header{min-height:4.25rem}
.sidebar-foot .sidebar-controls button{font-size:.8125rem;min-height:2.75rem}

/* Frosted surfaces retain solid fallbacks and readable foreground colors. */
:root{
  --glass-surface:rgba(255,255,255,.78);
  --glass-edge:rgba(255,255,255,.9);
  --glass-shadow:0 16px 40px rgba(24,60,73,.08),inset 0 1px 0 rgba(255,255,255,.65);
}
body.dark{
  --glass-surface:rgba(27,43,53,.84);
  --glass-edge:rgba(200,229,232,.2);
  --glass-shadow:0 18px 44px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.06);
}
body{
  background-image:radial-gradient(circle at 85% 7%,rgba(123,199,188,.22),transparent 36%),radial-gradient(circle at 12% 85%,rgba(164,196,219,.18),transparent 38%);
  background-attachment:fixed;
}
body.dark{
  background-image:radial-gradient(circle at 85% 7%,rgba(47,111,108,.22),transparent 38%),radial-gradient(circle at 10% 85%,rgba(70,99,128,.16),transparent 42%);
}
#sidebar,header,.stat,.panel,.auth-card,dialog,.office-picker-panel,#quick-office-panel,details.menu[open] .menu-items{
  background:var(--glass-surface);
  border-color:var(--glass-edge);
  -webkit-backdrop-filter:blur(18px) saturate(135%);
  backdrop-filter:blur(18px) saturate(135%);
  box-shadow:var(--glass-shadow);
}
#sidebar{border-right:1px solid var(--glass-edge)}
header{border-bottom:1px solid var(--glass-edge)}
.stat,.panel,.auth-card,dialog{border:1px solid var(--glass-edge)}
.stat,.panel{box-shadow:var(--glass-shadow)}
dialog{box-shadow:0 24px 70px rgba(10,27,39,.24),inset 0 1px 0 rgba(255,255,255,.4)}
body.dark dialog{box-shadow:0 24px 70px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.06)}
@media(prefers-reduced-transparency:reduce){
  body,body.dark{background-image:none}
  #sidebar,header,.stat,.panel,.auth-card,dialog,.office-picker-panel,#quick-office-panel,details.menu[open] .menu-items{
    background:var(--panel);
    border-color:var(--line);
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
  }
}

/* Optional Modern Glass theme; the existing Light and Dark appearances stay intact. */
body.modern-glass{
  --bg:#e9f1f4;
  --panel:#f8fcfd;
  --line:#c5d8de;
  --glass-surface:rgba(255,255,255,.58);
  --glass-edge:rgba(255,255,255,.86);
  --glass-shadow:0 20px 48px rgba(27,77,89,.13),inset 0 1px 0 rgba(255,255,255,.9);
  background-image:radial-gradient(circle at 12% 8%,rgba(144,215,210,.48),transparent 34%),radial-gradient(circle at 88% 20%,rgba(168,205,235,.46),transparent 36%);
}
body.dark.modern-glass{
  --bg:#0b1922;
  --panel:#17313d;
  --text:#ecf5f7;
  --muted:#b9cbd0;
  --line:#405b67;
  --accent:#8be0c4;
  --soft:#20483f;
  --glass-surface:rgba(22,48,60,.7);
  --glass-edge:rgba(210,237,242,.24);
  --glass-shadow:0 22px 52px rgba(0,0,0,.29),inset 0 1px 0 rgba(255,255,255,.1);
  background-image:radial-gradient(circle at 15% 8%,rgba(38,119,112,.38),transparent 38%),radial-gradient(circle at 88% 24%,rgba(54,91,137,.35),transparent 40%);
}
body.modern-glass #sidebar,body.modern-glass header,body.modern-glass .stat,body.modern-glass .panel,body.modern-glass .auth-card,body.modern-glass dialog,body.modern-glass .office-picker-panel,body.modern-glass #quick-office-panel,body.modern-glass details.menu[open] .menu-items{
  -webkit-backdrop-filter:blur(26px) saturate(155%);
  backdrop-filter:blur(26px) saturate(155%);
}
body.modern-glass .stat,body.modern-glass .panel,body.modern-glass .auth-card,body.modern-glass dialog{border-radius:1rem}
body.modern-glass nav button.active,body.modern-glass #nav-more summary.active{background:rgba(255,255,255,.48);box-shadow:inset 0 1px 0 rgba(255,255,255,.75)}
body.dark.modern-glass nav button.active,body.dark.modern-glass #nav-more summary.active{background:rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.12)}
body.modern-glass .segmented{background:rgba(255,255,255,.32)}
body.dark.modern-glass .segmented{background:rgba(255,255,255,.08)}
body.modern-glass input:not([type=checkbox]):not([type=radio]),body.modern-glass select,body.modern-glass textarea{background:rgba(255,255,255,.68)}
body.dark.modern-glass input:not([type=checkbox]):not([type=radio]),body.dark.modern-glass select,body.dark.modern-glass textarea{background:rgba(16,38,49,.82)}
@media(prefers-reduced-transparency:reduce){
  body.modern-glass,body.dark.modern-glass{background-image:none}
  body.modern-glass #sidebar,body.modern-glass header,body.modern-glass .stat,body.modern-glass .panel,body.modern-glass .auth-card,body.modern-glass dialog,body.modern-glass .office-picker-panel,body.modern-glass #quick-office-panel,body.modern-glass details.menu[open] .menu-items{
    background:var(--panel);
    border-color:var(--line);
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
  }
  body.modern-glass input:not([type=checkbox]):not([type=radio]),body.modern-glass select,body.modern-glass textarea{background:var(--panel)}
}
