:root{--bg:#f4f7fb;--panel:#fff;--text:#182230;--muted:#667085;--line:#dfe6ef;--accent:#165a9f;--accent-2:#0e9384;--danger:#b42318;--warning:#b54708;--good:#067647;--shadow:0 12px 32px rgba(16,24,40,.08)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--text);letter-spacing:0}.app-shell{display:flex;min-height:100vh}.side-menu{width:286px;background:#101828;color:white;display:flex;flex-direction:column;padding:1rem;gap:1rem;position:fixed;inset:0 auto 0 0;transition:width .2s}.side-menu.collapsed{width:86px}.brand{display:flex;align-items:center;gap:.75rem;min-height:48px}.brand-icon{width:42px;height:42px;border-radius:.5rem;background:linear-gradient(135deg,#165a9f,#0e9384);display:grid;place-items:center;color:white;font-weight:800}.brand-text{display:flex;flex-direction:column;line-height:1.15}.brand-text span{font-size:.8rem;color:#cad5e2}.collapsed .brand-text,.collapsed .user-block span,.collapsed .user-block small,.collapsed .nav-item span:not(.nav-icon){display:none}.user-block{border:1px solid rgba(255,255,255,.12);border-radius:.5rem;padding:.7rem;display:flex;flex-direction:column}.user-block small{color:#b8c6d8}.collapse-button{align-self:flex-end}.icon-button{border:0;background:rgba(255,255,255,.08);color:white;border-radius:.45rem;width:36px;height:36px}.nav-list{display:flex;flex-direction:column;gap:.25rem}.nav-item{display:flex;align-items:center;gap:.75rem;color:#d0d8e4;text-decoration:none;padding:.7rem;border-radius:.5rem;font-weight:650}.nav-item.active,.nav-item:hover{background:#1d2939;color:white}.nav-icon{width:26px;text-align:center}.main-panel{margin-left:286px;min-width:0;flex:1;transition:margin-left .2s}.side-menu.collapsed+.main-panel{margin-left:86px}.top-bar{height:82px;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 1.4rem;position:sticky;top:0;z-index:20}.top-bar h1{font-size:1.35rem;margin:0 0 .25rem}.source-status{display:flex;align-items:center;gap:.55rem;font-size:.86rem;color:var(--muted)}.status-dot{width:10px;height:10px;border-radius:50%;display:inline-block;background:var(--warning)}.status-dot.ok{background:var(--good)}.status-dot.bad{background:var(--danger)}.top-actions{display:flex;align-items:center;gap:.6rem}.search-box{width:260px}.content-wrap{padding:1.2rem 1.4rem 2rem}.muted{color:var(--muted)}.section{margin-bottom:1.2rem}.section-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin:.2rem 0 .8rem}.section-header h2{font-size:1.08rem;margin:0}.grid{display:grid;gap:1rem}.kpi-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}.kpi-card,.panel,.chart-panel{background:var(--panel);border:1px solid var(--line);border-radius:.5rem;box-shadow:var(--shadow)}.kpi-card{padding:1rem;text-align:left;cursor:pointer;transition:transform .15s,box-shadow .15s}.kpi-card:hover{transform:translateY(-2px);box-shadow:0 16px 36px rgba(16,24,40,.12)}.kpi-top{display:flex;align-items:center;justify-content:space-between}.kpi-icon{width:38px;height:38px;border-radius:.45rem;background:#e8f1fb;color:var(--accent);display:grid;place-items:center;font-weight:800}.kpi-value{font-size:2rem;font-weight:800;margin:.7rem 0 .15rem}.panel{padding:1rem}.chart-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.chart-panel{padding:1rem;min-height:300px}.chart-panel canvas{width:100%;height:230px}.toolbar,.filters{display:flex;flex-wrap:wrap;gap:.7rem;align-items:end}.filters>*{min-width:180px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:.5rem;background:#fff}.active-chip{display:inline-flex;gap:.35rem;align-items:center;border:1px solid #b9e6fe;background:#f0f9ff;color:#026aa2;border-radius:999px;padding:.25rem .55rem;font-size:.8rem}.form-stack{display:grid;gap:.6rem}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.85rem}.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#eef6ff,#effaf6)}.login-panel{width:min(420px,92vw);background:#fff;border:1px solid var(--line);border-radius:.75rem;box-shadow:var(--shadow);padding:1.4rem}.login-brand{margin-bottom:1rem;color:var(--text)}.empty-state{background:#fff;border:1px solid var(--line);border-radius:.5rem;padding:2rem;text-align:center}.insight-list{display:grid;gap:.6rem}.insight{border-left:4px solid var(--accent);background:#f8fafc;padding:.8rem;border-radius:.35rem}.insight.Warning{border-left-color:var(--warning)}.insight.Critical{border-left-color:var(--danger)}.matrix{font-variant-numeric:tabular-nums}.matrix td:not(:first-child),.matrix th:not(:first-child){text-align:center}.dark body,body.dark{--bg:#0f172a;--panel:#111827;--text:#f8fafc;--muted:#cbd5e1;--line:#27364a;--shadow:0 12px 32px rgba(0,0,0,.28)}body.dark .top-bar,body.dark .panel,body.dark .kpi-card,body.dark .chart-panel,body.dark .table-wrap,body.dark .empty-state,body.dark .login-panel{background:var(--panel)}body.dark .table th{background:#182230;color:#d0d5dd}body.dark .form-control,body.dark .form-select{background:#0b1220;color:#f8fafc;border-color:#344054}

.eyebrow{display:block;color:var(--accent-2);font-size:.73rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.live-indicator{display:inline-flex;align-items:center;gap:.4rem;color:var(--good);font-weight:700}.live-indicator i{width:8px;height:8px;border-radius:50%;background:var(--good);box-shadow:0 0 0 4px rgba(6,118,71,.12)}.nav-section{color:#98a2b3;font-size:.7rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:.9rem .7rem .25rem}.sidebar-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.12);padding-top:.8rem;display:flex;flex-direction:column;color:#98a2b3}.page-stack{display:grid;gap:1rem}.page-header{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem}.page-header h2{font-size:1.7rem;margin:.15rem 0}.page-header p{margin:0;color:var(--muted)}.filter-card,.form-card,.table-card,.note-box{background:var(--panel);border:1px solid var(--line);border-radius:.65rem;box-shadow:var(--shadow)}.filter-card,.form-card{padding:1rem}.filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;align-items:end}.filter-grid label,.form-grid label{display:grid;gap:.35rem;font-size:.82rem;font-weight:700;color:var(--muted)}.filter-actions,.button-row{display:flex;align-items:flex-end;gap:.5rem;flex-wrap:wrap}.work-grid{display:grid;gap:1rem}.two-column{grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr)}.four-column{grid-template-columns:repeat(4,minmax(180px,1fr))}.span-2{grid-column:span 2}.table-card{overflow:hidden}.table-scroll{overflow:auto;max-height:65vh}.data-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.88rem}.data-table th{position:sticky;top:0;background:#f8fafc;color:#475467;text-align:left;padding:.72rem;border-bottom:1px solid var(--line);z-index:2}.data-table td{padding:.68rem .72rem;border-bottom:1px solid var(--line);vertical-align:middle}.data-table tbody tr:hover{background:#f8fafc}.warning-row{background:#fffaeb}.badge,.rotation-state{display:inline-flex;align-items:center;border-radius:999px;padding:.22rem .55rem;font-size:.75rem;font-weight:800;background:#eef4ff;color:#3538cd}.status-applied,.status-active,.status-saved,.state-off{background:#dcfae6;color:#067647}.status-expired,.status-cancelled,.danger,.state-night{background:#fee4e2;color:#b42318}.status-expiring-soon,.status-pending,.warning,.state-day{background:#fef0c7;color:#b54708}.success{border-color:#75e0a7!important}.danger{border-color:#fda29b!important}.toast-inline{padding:.8rem 1rem;background:#eff8ff;border:1px solid #b2ddff;border-radius:.5rem;color:#175cd3}.comparison-list{display:grid;grid-template-columns:140px 1fr;gap:.55rem}.comparison-list dt{font-weight:800;color:var(--muted)}.comparison-list dd{margin:0}.note-box{padding:1rem;border-left:4px solid var(--accent-2)}.compact-kpis{display:grid;grid-template-columns:repeat(4,1fr)}.compact-kpis .kpi-card{cursor:default}.compact-kpis small{display:block;color:var(--muted)}.compact-kpis strong{display:block;font-size:1.35rem;margin-top:.35rem}.compact{width:auto;min-width:170px}.mini-list{display:grid;gap:.45rem;margin-top:1rem;max-height:240px;overflow:auto}.mini-list>div{display:flex;justify-content:space-between;gap:1rem;padding:.55rem;border:1px solid var(--line);border-radius:.45rem}.mini-list span{color:var(--muted)}@media(max-width:1100px){.two-column,.four-column{grid-template-columns:1fr 1fr}.compact-kpis{grid-template-columns:1fr 1fr}}@media(max-width:700px){.two-column,.four-column,.compact-kpis{grid-template-columns:1fr}.page-header{align-items:flex-start;flex-direction:column}.span-2{grid-column:auto}}
.section-detail-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-bottom:.85rem}.section-detail-filters label{display:grid;gap:.35rem}.section-detail-filters label>span{font-size:.76rem;font-weight:700;color:var(--muted)}.section-detail-table{max-height:330px}.section-detail-table td:nth-child(2),.section-detail-table td:nth-child(3){font-variant-numeric:tabular-nums}.section-detail-loading{padding:1.5rem;text-align:center}.section-detail-empty{min-height:170px}@media(max-width:700px){.section-detail-filters{grid-template-columns:1fr}}

/* Responsive shell and dashboard refinements */
.mobile-menu-button,.mobile-close-button,.sidebar-backdrop{display:none}.sidebar-mobile-header{display:contents}.top-title-block{min-width:0}.section-header-actions{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}.section-detail-primary{padding:1rem}.dashboard-chart-grid{align-items:start}.chart-panel{overflow:hidden}.chart-panel canvas{display:block;width:100%!important;max-width:100%;height:300px}.chart-panel-tall canvas{height:360px}.chart-panel h3{margin:.1rem 0 .75rem;font-size:1rem}.section-detail-table{max-height:420px}.section-detail-primary .section-detail-filters{max-width:900px}.section-detail-primary .table-wrap{width:100%}

@media (max-width:900px){
  body{overflow-x:hidden}.app-shell{display:block;min-height:100vh}.main-panel,.side-menu.collapsed+.main-panel{margin-left:0;width:100%}.content-wrap{padding:.9rem;max-width:100%;overflow-x:hidden}
  .side-menu{position:fixed;inset:0 auto 0 0;width:min(84vw,320px);height:100dvh;z-index:1000;transform:translateX(-105%);transition:transform .22s ease;overflow-y:auto;padding:1rem;box-shadow:0 0 0 rgba(0,0,0,0)}
  .side-menu.mobile-open{transform:translateX(0);box-shadow:16px 0 42px rgba(0,0,0,.28)}
  .side-menu.collapsed{width:min(84vw,320px)}
  .side-menu.collapsed .brand-text,.side-menu.collapsed .user-block span,.side-menu.collapsed .user-block small,.side-menu.collapsed .nav-item span:not(.nav-icon){display:initial}
  .sidebar-backdrop{display:block;position:fixed;inset:0;z-index:999;border:0;background:rgba(15,23,42,.58);padding:0}
  .sidebar-mobile-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.mobile-close-button{display:grid;place-items:center;font-size:1.7rem;line-height:1}.desktop-collapse-button{display:none}.mobile-menu-button{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border:1px solid var(--line);border-radius:.55rem;background:var(--panel);color:var(--text);font-size:1.35rem}
  .top-bar{height:auto;min-height:74px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.75rem;padding:.8rem .9rem;position:sticky;top:0;z-index:100}
  .top-title-block{min-width:0}.top-bar h1{font-size:1.12rem;white-space:normal}.eyebrow{font-size:.64rem}.source-status{flex-wrap:wrap;gap:.3rem;font-size:.73rem}.top-actions{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:.45rem;width:100%}.search-box{width:100%;min-width:0}.live-indicator{display:none}.top-actions .btn{min-height:42px}.top-actions form{display:block}.top-actions form .btn{width:100%}
  .section-header{align-items:flex-start;flex-direction:column}.section-header-actions{width:100%;justify-content:space-between}.chart-grid,.dashboard-chart-grid{grid-template-columns:1fr}.chart-panel{min-height:0;padding:.8rem}.chart-panel canvas,.chart-panel-tall canvas{height:300px}.table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table{min-width:680px}.section-detail-table .table{min-width:620px}.matrix{min-width:760px}
}

@media (max-width:600px){
  .content-wrap{padding:.7rem}.section,.panel{margin-bottom:.8rem}.panel,.section-detail-primary{padding:.75rem}.section-header h2{font-size:1rem}.section-header p{font-size:.78rem}.section-detail-filters{grid-template-columns:1fr}.section-header-actions .btn{width:100%}.section-header-actions .badge{order:-1}.dashboard-chart-grid{gap:.75rem}.chart-panel canvas,.chart-panel-tall canvas{height:280px}.top-actions{grid-template-columns:1fr 1fr}.search-box{grid-column:1/-1}.top-actions form{display:block}.top-actions form .btn{width:100%}.table{font-size:.78rem}.table th,.table td{padding:.55rem}.btn{min-height:40px}
}


/* Mobile shell v3: authoritative rules, independent of Blazor hydration */
.sidebar-backdrop{display:none}
.mobile-menu-button,.mobile-close-button{display:none}

@media (max-width:900px){
  html,body{width:100%;max-width:100%;overflow-x:hidden}
  html.mobile-nav-open,body.mobile-nav-open{overflow:hidden}
  .app-shell{display:block!important;min-height:100dvh;width:100%;max-width:100%;overflow-x:hidden}
  .main-panel,.side-menu+.main-panel,.side-menu.collapsed+.main-panel{margin-left:0!important;width:100%!important;max-width:100%!important;min-width:0!important}
  .side-menu,.side-menu.collapsed{
    position:fixed!important;
    top:0!important;bottom:0!important;left:0!important;right:auto!important;
    width:min(86vw,330px)!important;height:100dvh!important;
    z-index:1200!important;transform:translate3d(-105%,0,0)!important;
    transition:transform .22s ease!important;overflow-y:auto!important;overflow-x:hidden!important;
    padding:1rem!important;box-shadow:none!important;
  }
  .side-menu.mobile-open{transform:translate3d(0,0,0)!important;box-shadow:16px 0 42px rgba(0,0,0,.34)!important}
  .sidebar-backdrop{
    display:block!important;position:fixed!important;inset:0!important;z-index:1190!important;
    border:0!important;background:rgba(15,23,42,.62)!important;opacity:0!important;visibility:hidden!important;
    pointer-events:none!important;transition:opacity .2s ease,visibility .2s ease!important
  }
  .sidebar-backdrop.visible{opacity:1!important;visibility:visible!important;pointer-events:auto!important}
  .sidebar-mobile-header{display:flex!important;align-items:center;justify-content:space-between;gap:.75rem}
  .mobile-close-button{display:grid!important;place-items:center!important;flex:0 0 44px;width:44px!important;height:44px!important;font-size:1.7rem;line-height:1}
  .mobile-menu-button{display:grid!important;place-items:center!important;flex:0 0 44px;width:44px!important;height:44px!important;border:1px solid var(--line)!important;border-radius:.55rem!important;background:var(--panel)!important;color:var(--text)!important;font-size:1.35rem!important;padding:0!important}
  .desktop-collapse-button,.collapse-button{display:none!important}
  .side-menu .brand-text,.side-menu .user-block span,.side-menu .user-block small,.side-menu .nav-item span:not(.nav-icon){display:initial!important}
  .top-bar{width:100%!important;max-width:100%!important;min-height:0!important;height:auto!important;display:grid!important;grid-template-columns:44px minmax(0,1fr)!important;align-items:start!important;gap:.65rem!important;padding:.75rem!important;position:sticky!important;top:0!important;z-index:200!important}
  .top-title-block{min-width:0!important;overflow:hidden}.top-bar h1{font-size:1.08rem!important;line-height:1.2!important;white-space:normal!important}.eyebrow{font-size:.61rem!important;letter-spacing:.08em!important}.source-status{font-size:.72rem!important;flex-wrap:wrap!important;gap:.28rem!important}
  .top-actions{grid-column:1/-1!important;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:.45rem!important;width:100%!important;min-width:0!important}
  .search-box{grid-column:1/-1!important;width:100%!important;min-width:0!important}.live-indicator{display:none!important}.top-actions .btn,.top-actions form,.top-actions form .btn{width:100%!important;min-width:0!important;min-height:42px!important}
  .content-wrap{width:100%!important;max-width:100%!important;min-width:0!important;padding:.7rem!important;overflow-x:hidden!important}
  .panel,.chart-panel,.filter-card,.form-card,.table-card,.section-detail-primary{max-width:100%!important;min-width:0!important}
  .section-header{align-items:flex-start!important;flex-direction:column!important}.section-header-actions{width:100%!important}.section-header-actions .btn{width:100%!important}
  .chart-grid,.dashboard-chart-grid,.grid{max-width:100%!important}.chart-grid,.dashboard-chart-grid{grid-template-columns:minmax(0,1fr)!important}
  .chart-panel{overflow:hidden!important;padding:.75rem!important}.chart-panel canvas,.chart-panel-tall canvas{width:100%!important;max-width:100%!important;height:280px!important}
  .table-wrap,.table-scroll{max-width:100%!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch!important}.table{min-width:680px}.section-detail-table .table{min-width:620px}.matrix{min-width:760px}
}

@media (max-width:420px){
  .top-actions{grid-template-columns:1fr 1fr!important}.top-actions form{grid-column:1/-1!important}.top-bar{padding:.65rem!important}.content-wrap{padding:.55rem!important}
  .section-detail-primary,.panel,.chart-panel{border-radius:.55rem!important;padding:.7rem!important}
}

/* =========================================================
   Adaptive layout system: phone, tablet, laptop and 16-inch
   ========================================================= */
:root{
  --sidebar-width:clamp(248px,18vw,286px);
  --page-gutter:clamp(.75rem,1.6vw,1.75rem);
  --content-max:1920px;
  --control-height:clamp(42px,3vw,46px);
}
html{font-size:clamp(14px,.22vw + 13px,16px);overflow-x:hidden}
body{min-width:320px;overflow-x:hidden}
button,input,select,textarea{font:inherit}
.btn,.form-control,.form-select{min-height:var(--control-height)}
.app-shell{width:100%;max-width:100%;overflow-x:clip}
.side-menu{width:var(--sidebar-width);max-width:88vw;z-index:1200;overflow-y:auto;overscroll-behavior:contain}
.main-panel{margin-left:var(--sidebar-width);width:calc(100% - var(--sidebar-width));max-width:calc(100% - var(--sidebar-width));min-height:100dvh}
.content-wrap{width:min(100%,var(--content-max));margin-inline:auto;padding:clamp(.75rem,1.5vw,1.5rem) var(--page-gutter) clamp(1.5rem,3vw,3rem)}
.top-bar{padding-inline:var(--page-gutter);gap:1rem}
.top-title-block{flex:1 1 auto}
.top-actions{flex:0 1 auto;min-width:0}
.search-box{width:clamp(190px,18vw,300px)}
.panel,.chart-panel,.filter-card,.form-card,.table-card{min-width:0}
.grid{min-width:0}
.dashboard-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.chart-panel{min-height:clamp(280px,27vw,430px)}
.chart-panel canvas{height:clamp(260px,24vw,390px)!important}
.chart-panel-tall canvas{height:clamp(320px,30vw,520px)!important}
.form-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
.filter-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr))}
.table-wrap,.table-scroll{width:100%;max-width:100%;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.table,.data-table{width:100%}
.table th,.table td,.data-table th,.data-table td{white-space:normal;overflow-wrap:anywhere}
.page-header,.section-header{min-width:0}
.section-header>div:first-child,.page-header>div:first-child{min-width:0}

/* Medium laptop and 16-inch screens */
@media (min-width:1280px) and (max-width:1700px){
  :root{--sidebar-width:258px;--page-gutter:1.15rem}
  .top-bar{height:76px}
  .dashboard-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .chart-panel{padding:.9rem}
}
@media (min-width:1701px){
  :root{--sidebar-width:286px;--page-gutter:1.6rem}
  .dashboard-chart-grid{grid-template-columns:repeat(2,minmax(420px,1fr))}
}

/* Small laptop / landscape tablet */
@media (min-width:1025px) and (max-width:1279px){
  :root{--sidebar-width:230px;--page-gutter:.9rem}
  .side-menu{padding:.8rem}
  .nav-item{padding:.62rem .55rem;gap:.55rem;font-size:.9rem}
  .top-bar{height:auto;min-height:76px;padding-block:.6rem}
  .top-actions{gap:.4rem}.search-box{width:190px}
  .dashboard-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .two-column{grid-template-columns:minmax(0,1fr)}
}

/* Tablets and phones: true off-canvas shell */
@media (max-width:1024px){
  html.mobile-nav-open,body.mobile-nav-open{overflow:hidden!important}
  .app-shell{display:block!important;min-height:100dvh!important}
  .main-panel,.side-menu.collapsed+.main-panel{
    margin-left:0!important;width:100%!important;max-width:100%!important;min-width:0!important
  }
  .side-menu,.side-menu.collapsed{
    position:fixed!important;inset:0 auto 0 0!important;width:min(340px,88vw)!important;max-width:88vw!important;
    height:100dvh!important;transform:translateX(-105%)!important;transition:transform .22s ease!important;
    visibility:hidden!important;pointer-events:none!important;z-index:1300!important;padding:1rem!important
  }
  .side-menu.mobile-open{transform:translateX(0)!important;visibility:visible!important;pointer-events:auto!important}
  .sidebar-backdrop{display:block!important;position:fixed!important;inset:0!important;z-index:1290!important;border:0!important;background:rgba(15,23,42,.58)!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important;transition:.2s ease!important}
  .sidebar-backdrop.visible{opacity:1!important;visibility:visible!important;pointer-events:auto!important}
  .sidebar-mobile-header{display:flex!important;align-items:center!important;justify-content:space-between!important}
  .mobile-close-button{display:grid!important;place-items:center!important;width:44px!important;height:44px!important;flex:0 0 44px!important}
  .mobile-menu-button{display:grid!important;place-items:center!important;width:44px!important;height:44px!important;flex:0 0 44px!important;border:1px solid var(--line)!important;border-radius:.55rem!important;background:var(--panel)!important;color:var(--text)!important}
  .desktop-collapse-button,.collapse-button{display:none!important}
  .side-menu .brand-text,.side-menu .user-block span,.side-menu .user-block small,.side-menu .nav-item span:not(.nav-icon){display:initial!important}
  .top-bar{height:auto!important;min-height:72px!important;display:grid!important;grid-template-columns:44px minmax(0,1fr)!important;align-items:center!important;gap:.65rem!important;padding:.65rem var(--page-gutter)!important;z-index:500!important}
  .top-actions{grid-column:1/-1!important;width:100%!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto auto auto!important;gap:.45rem!important}
  .search-box{width:100%!important;min-width:0!important}
  .top-actions .btn,.top-actions form .btn{min-height:42px!important;white-space:nowrap}
  .content-wrap{width:100%!important;max-width:100%!important;padding:.8rem var(--page-gutter) 2rem!important;overflow-x:hidden!important}
  .dashboard-chart-grid{grid-template-columns:minmax(0,1fr)!important}
  .chart-panel{min-height:300px!important}
  .chart-panel canvas,.chart-panel-tall canvas{height:clamp(280px,48vw,430px)!important}
  .two-column,.four-column{grid-template-columns:minmax(0,1fr)!important}
  .compact-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .page-header{align-items:flex-start!important;flex-direction:column!important}
  .page-header>*,.section-header>*{max-width:100%}
  .section-header-actions{width:100%}
  .section-detail-primary{padding:clamp(.8rem,2.5vw,1.1rem)!important}
}

/* Portrait tablets */
@media (min-width:601px) and (max-width:1024px){
  :root{--page-gutter:clamp(.9rem,2.2vw,1.35rem)}
  .top-actions{grid-template-columns:minmax(240px,1fr) auto auto auto!important}
  .section-detail-filters{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .form-grid.three-column,.form-grid.four-column{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .plan-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* Phones */
@media (max-width:600px){
  :root{--page-gutter:clamp(.55rem,3vw,.8rem);--control-height:44px}
  html{font-size:15px}
  .top-bar{grid-template-columns:44px minmax(0,1fr)!important;align-items:start!important}
  .top-bar h1{font-size:clamp(1.05rem,5vw,1.3rem)!important;overflow-wrap:anywhere}
  .eyebrow{font-size:.64rem!important;letter-spacing:.08em!important}
  .source-status{font-size:.76rem!important;flex-wrap:wrap!important}
  .top-actions{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .search-box{grid-column:1/-1!important}
  .top-actions .live-indicator{display:none!important}
  .top-actions form{min-width:0}.top-actions .btn,.top-actions form .btn{width:100%!important;padding-inline:.5rem!important;font-size:.9rem!important}
  .section-header{align-items:flex-start!important;flex-direction:column!important;gap:.65rem!important}
  .section-header-actions{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
  .section-header-actions>*{width:100%!important;text-align:center;justify-content:center}
  .section-detail-filters,.filter-grid,.form-grid,.compact-kpis{grid-template-columns:minmax(0,1fr)!important}
  .panel,.chart-panel,.filter-card,.form-card,.table-card{border-radius:.6rem!important}
  .panel,.chart-panel,.filter-card,.form-card{padding:.75rem!important}
  .chart-panel{min-height:290px!important}
  .chart-panel canvas,.chart-panel-tall canvas{height:clamp(280px,88vw,390px)!important}
  .table-wrap{border-radius:.45rem!important}
  .table,.data-table{font-size:.82rem}
  .table th,.table td,.data-table th,.data-table td{padding:.55rem!important}
  .toolbar,.filters,.filter-actions,.button-row,.header-actions,.toolbar-fields{width:100%;align-items:stretch!important;flex-direction:column!important}
  .toolbar>*,.filters>*,.filter-actions>*,.button-row>*,.header-actions>*,.toolbar-fields>*{width:100%!important;min-width:0!important}
  .comparison-list{grid-template-columns:1fr!important}
  .comparison-list dd{margin-bottom:.5rem}
  .modal-backdrop-pop{padding:0!important;align-items:flex-end!important}
  .pop-modal,.task-entry-modal{width:100%!important;max-width:100%!important;max-height:96dvh!important;border-radius:.85rem .85rem 0 0!important}
  .modal-body{padding:.8rem!important}
}

/* Very small phones */
@media (max-width:380px){
  :root{--page-gutter:.5rem}
  html{font-size:14px}
  .top-actions{grid-template-columns:1fr 1fr!important}
  .top-actions form{grid-column:1/-1!important}
  .section-header-actions{grid-template-columns:1fr!important}
  .brand-icon{width:38px;height:38px}.brand{gap:.55rem}
}

/* Short screens / landscape phones */
@media (max-height:560px) and (max-width:1024px){
  .top-bar{position:relative!important}
  .side-menu{padding:.65rem!important;gap:.5rem!important}
  .nav-item{padding:.55rem!important}
}

/* =========================================================
   VERIFIED RESPONSIVE OVERRIDE v5
   Single final source of truth for shell dimensions.
   ========================================================= */
:root{
  --wf-sidebar:clamp(236px,17vw,280px);
  --wf-gutter:clamp(.7rem,1.35vw,1.45rem);
  --wf-content-max:1920px;
}
html,body{max-width:100%;overflow-x:hidden}
body{min-width:320px}
.app-shell{display:block;width:100%;max-width:100%;min-height:100dvh;overflow-x:clip}
.side-menu{
  position:fixed!important;inset:0 auto 0 0!important;
  width:var(--wf-sidebar)!important;height:100dvh!important;
  max-width:none!important;transform:none!important;visibility:visible!important;
  pointer-events:auto!important;z-index:1200!important;overflow-y:auto!important
}
.main-panel,.side-menu+.main-panel,.side-menu.collapsed+.main-panel{
  margin-left:var(--wf-sidebar)!important;
  width:calc(100% - var(--wf-sidebar))!important;
  max-width:calc(100% - var(--wf-sidebar))!important;
  min-width:0!important
}
.mobile-menu-button,.mobile-close-button,.sidebar-backdrop{display:none!important}
.sidebar-mobile-header{display:contents!important}
.top-bar{width:100%;max-width:100%;padding-inline:var(--wf-gutter)!important}
.content-wrap{width:min(100%,var(--wf-content-max));max-width:100%;margin-inline:auto;padding:clamp(.75rem,1.25vw,1.35rem) var(--wf-gutter) 2rem!important}
.panel,.chart-panel,.filter-card,.form-card,.table-card,.section-detail-primary,.grid{min-width:0;max-width:100%}
.table-wrap,.table-scroll{max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch}
img,svg,canvas{max-width:100%}

/* 16-inch laptops and ordinary desktop monitors */
@media (min-width:1101px) and (max-width:1599px){
  :root{--wf-sidebar:clamp(228px,16vw,258px);--wf-gutter:clamp(.75rem,1.1vw,1.15rem)}
  .top-bar{min-height:74px;height:auto;padding-block:.55rem}
  .top-actions{gap:.45rem}.search-box{width:clamp(180px,17vw,250px)}
  .dashboard-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .chart-panel{padding:.85rem!important}
}

/* Large desktop */
@media (min-width:1600px){
  :root{--wf-sidebar:280px;--wf-gutter:1.45rem}
  .dashboard-chart-grid{grid-template-columns:repeat(2,minmax(420px,1fr))!important}
}

/* Tablet and mobile: real off-canvas navigation */
@media (max-width:1100px){
  html.mobile-nav-open,body.mobile-nav-open{overflow:hidden!important}
  .app-shell{display:block!important;width:100%!important;max-width:100%!important}
  .main-panel,.side-menu+.main-panel,.side-menu.collapsed+.main-panel{
    margin-left:0!important;width:100%!important;max-width:100%!important;min-width:0!important
  }
  .side-menu,.side-menu.collapsed{
    position:fixed!important;inset:0 auto 0 0!important;
    width:min(340px,88vw)!important;max-width:88vw!important;height:100dvh!important;
    transform:translate3d(-105%,0,0)!important;visibility:hidden!important;pointer-events:none!important;
    transition:transform .22s ease,visibility .22s ease!important;z-index:1300!important;
    overflow-y:auto!important;overscroll-behavior:contain!important;padding:1rem!important
  }
  .side-menu.mobile-open{transform:translate3d(0,0,0)!important;visibility:visible!important;pointer-events:auto!important;box-shadow:18px 0 48px rgba(0,0,0,.34)!important}
  .sidebar-backdrop{display:block!important;position:fixed!important;inset:0!important;z-index:1290!important;border:0!important;background:rgba(15,23,42,.6)!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important;transition:opacity .2s ease,visibility .2s ease!important}
  .sidebar-backdrop.visible{opacity:1!important;visibility:visible!important;pointer-events:auto!important}
  .sidebar-mobile-header{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:.75rem!important}
  .mobile-menu-button,.mobile-close-button{display:grid!important;place-items:center!important;width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;padding:0!important}
  .desktop-collapse-button,.collapse-button{display:none!important}
  .side-menu .brand-text,.side-menu .user-block span,.side-menu .user-block small,.side-menu .nav-item span:not(.nav-icon){display:initial!important}
  .top-bar{height:auto!important;min-height:72px!important;display:grid!important;grid-template-columns:44px minmax(0,1fr)!important;align-items:start!important;gap:.65rem!important;padding:.65rem var(--wf-gutter)!important;z-index:500!important}
  .top-title-block{min-width:0!important;overflow:hidden!important}
  .top-actions{grid-column:1/-1!important;width:100%!important;min-width:0!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto auto auto!important;gap:.45rem!important}
  .search-box{width:100%!important;min-width:0!important}
  .content-wrap{width:100%!important;max-width:100%!important;padding:.8rem var(--wf-gutter) 2rem!important;overflow-x:hidden!important}
  .dashboard-chart-grid,.chart-grid{grid-template-columns:minmax(0,1fr)!important}
  .two-column,.four-column{grid-template-columns:minmax(0,1fr)!important}
  .chart-panel canvas,.chart-panel-tall canvas{width:100%!important;height:clamp(280px,48vw,420px)!important}
}

/* Portrait tablet */
@media (min-width:601px) and (max-width:1100px){
  :root{--wf-gutter:clamp(.9rem,2vw,1.25rem)}
  .top-actions{grid-template-columns:minmax(220px,1fr) auto auto auto!important}
  .section-detail-filters,.filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .form-grid.three-column,.form-grid.four-column{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* Phones */
@media (max-width:600px){
  :root{--wf-gutter:clamp(.55rem,3vw,.8rem)}
  html{font-size:15px}
  .top-bar h1{font-size:clamp(1.05rem,5vw,1.28rem)!important;line-height:1.2!important;overflow-wrap:anywhere!important}
  .eyebrow{font-size:.63rem!important;letter-spacing:.08em!important}
  .source-status{font-size:.76rem!important;flex-wrap:wrap!important;gap:.28rem!important}
  .top-actions{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .search-box{grid-column:1/-1!important}
  .top-actions .live-indicator{display:none!important}
  .top-actions .btn,.top-actions form,.top-actions form .btn{width:100%!important;min-width:0!important}
  .section-header,.page-header{align-items:flex-start!important;flex-direction:column!important;gap:.65rem!important}
  .section-header-actions{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;width:100%!important}
  .section-detail-filters,.filter-grid,.form-grid,.compact-kpis{grid-template-columns:minmax(0,1fr)!important}
  .toolbar,.filters,.filter-actions,.button-row,.header-actions,.toolbar-fields{width:100%!important;align-items:stretch!important;flex-direction:column!important}
  .toolbar>*,.filters>*,.filter-actions>*,.button-row>*,.header-actions>*,.toolbar-fields>*{width:100%!important;min-width:0!important}
  .panel,.chart-panel,.filter-card,.form-card{padding:.72rem!important}
  .table,.data-table{font-size:.82rem!important}
  .modal-backdrop-pop{padding:0!important;align-items:flex-end!important}
  .pop-modal,.task-entry-modal{width:100%!important;max-width:100%!important;max-height:96dvh!important;border-radius:.85rem .85rem 0 0!important}
}

@media (max-width:380px){
  html{font-size:14px}
  .top-actions{grid-template-columns:1fr 1fr!important}
  .top-actions form{grid-column:1/-1!important}
  .section-header-actions{grid-template-columns:1fr!important}
}


/* Smart employee identity lookup */
.field-hint { display:block; margin-top:.28rem; color:var(--muted, #667085); font-size:.78rem; line-height:1.25; }
.employee-lookup-inline { min-width:min(24rem, 100%); display:flex; flex-direction:column; gap:.15rem; }
@media (max-width: 700px) { .employee-lookup-inline { width:100%; min-width:0; } }

/* Leaves module */
.tab-strip{display:flex;gap:.5rem;overflow:auto;padding:.25rem 0}.tab-strip button{border:1px solid var(--border-color,#d7dde5);background:#fff;border-radius:.65rem;padding:.7rem 1rem;white-space:nowrap}.tab-strip button.active{background:#0f766e;color:#fff;border-color:#0f766e}.legend-row{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.legend-row span{display:inline-flex;align-items:center;gap:.3rem;font-size:.85rem}.legend-row i{width:1rem;height:1rem;border-radius:.2rem;border:1px solid #aaa}.legend-row .day{background:#F4B183}.legend-row .night{background:#5B9BD5}.legend-row .off{background:#E2F0D9}.leave-plan-scroll{overflow:auto;max-height:68vh;overscroll-behavior:contain}.leave-plan-table{border-collapse:separate;border-spacing:0;min-width:max-content;width:100%;font-size:.78rem}.leave-plan-table th,.leave-plan-table td{border-right:1px solid #d7dde5;border-bottom:1px solid #d7dde5;height:34px;padding:.2rem .35rem;text-align:center;background-clip:padding-box}.leave-plan-table thead th{position:sticky;top:0;z-index:8;background:#eef2f7;white-space:pre-line}.leave-plan-table .sticky{position:sticky;z-index:6;background:#fff}.leave-plan-table thead .sticky{z-index:12;background:#d9ead3}.leave-plan-table .c1{left:0;min-width:90px}.leave-plan-table .c2{left:90px;min-width:120px}.leave-plan-table .c3{left:210px;min-width:240px}.leave-plan-table .c4{left:450px;min-width:75px}.leave-plan-table .name{text-align:left}.leave-cell{min-width:48px}.leave-cell select{width:100%;height:100%;border:0;background:transparent;font-weight:700;text-align:center;appearance:none}.leave-cell.locked{background:#e5e7eb!important;color:#6b7280;font-size:.65rem}.leave-code{display:inline-block;padding:.2rem .45rem;border-radius:.35rem;font-weight:700}.span-two{grid-column:span 2}@media(max-width:1100px){.leave-plan-table .c1{min-width:80px}.leave-plan-table .c2{left:80px;min-width:105px}.leave-plan-table .c3{left:185px;min-width:190px}.leave-plan-table .c4{left:375px;min-width:65px}.leave-plan-scroll{max-height:62vh}.span-two{grid-column:auto}}@media(max-width:600px){.leaves-page .page-header p{display:none}.tab-strip button{padding:.6rem .8rem}.leave-plan-table{font-size:.72rem}.leave-plan-table .c1{min-width:70px}.leave-plan-table .c2{left:70px;min-width:95px}.leave-plan-table .c3{left:165px;min-width:160px}.leave-plan-table .c4{left:325px;min-width:55px}.leave-cell{min-width:44px}}

/* AM Engineering Management integrated navigation and planning module */
.nav-group {
    margin: .25rem .5rem;
    border: 1px solid color-mix(in srgb, var(--border-color, #d9e2ec) 70%, transparent);
    border-radius: 12px;
    overflow: hidden;
    background: color-mix(in srgb, var(--surface, #fff) 5%, transparent);
}
.nav-group > summary {
    display: flex;
    align-items: center;
    gap: .65rem;
    padding: .75rem .7rem;
    cursor: pointer;
    list-style: none;
    font-weight: 700;
    font-size: .84rem;
    color: inherit;
    user-select: none;
}
.nav-group > summary::-webkit-details-marker { display: none; }
.nav-group > summary::after { content: "›"; margin-left: auto; transition: transform .2s ease; font-size: 1.1rem; }
.nav-group[open] > summary::after { transform: rotate(90deg); }
.nav-group-icon {
    width: 30px;
    height: 30px;
    border-radius: 9px;
    display: inline-grid;
    place-items: center;
    font-size: .67rem;
    background: rgba(255,255,255,.12);
}
.nav-group-items { padding: 0 .35rem .45rem; }
.nav-group-items .nav-item { margin: .2rem 0; padding-left: .65rem; }
.nav-home { margin: .4rem .5rem .7rem !important; }

.planning-page { min-width: 0; }
.planning-heading { align-items: flex-start; }
.planning-kpi-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(155px, 1fr));
    gap: clamp(.65rem, 1.2vw, 1rem);
    margin-bottom: 1rem;
}
.planning-kpi {
    min-width: 0;
    padding: clamp(.85rem, 1.4vw, 1.15rem);
    border-radius: 14px;
    border: 1px solid var(--border-color, #d9e2ec);
    background: var(--surface, #fff);
    box-shadow: 0 8px 24px rgba(15,23,42,.05);
}
.planning-kpi span { display:block; color: var(--muted, #64748b); font-size:.78rem; margin-bottom:.35rem; }
.planning-kpi strong { font-size: clamp(1.25rem, 2vw, 1.8rem); line-height:1.1; }
.planning-kpi.warning { border-inline-start: 4px solid #d97706; }
.planning-kpi.danger { border-inline-start: 4px solid #dc2626; }
.planning-kpi.success { border-inline-start: 4px solid #059669; }
.planning-grid { display:grid; gap:1rem; min-width:0; }
.planning-grid.two-column { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.panel-card { min-width:0; background:var(--surface,#fff); border:1px solid var(--border-color,#d9e2ec); border-radius:14px; padding:1rem; }
.panel-title { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:.8rem; }
.panel-title h2 { margin:0; font-size:1rem; }
.metric-list { display:grid; gap:.55rem; }
.metric-list > div { display:flex; justify-content:space-between; gap:1rem; padding:.7rem; border-radius:10px; background:rgba(148,163,184,.08); }
.quick-link-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.6rem; }
.quick-link-grid a { padding:.8rem; border:1px solid var(--border-color,#d9e2ec); border-radius:10px; text-decoration:none; color:inherit; font-weight:650; }
.planning-filter-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(175px,1fr)); gap:.75rem; align-items:end; margin-bottom:1rem; }
.planning-filter-grid label, .planning-form-grid label { display:grid; gap:.35rem; font-size:.78rem; font-weight:650; min-width:0; }
.planning-import-card { display:grid; grid-template-columns:minmax(260px,1.35fr) minmax(240px,.95fr) minmax(260px,1.1fr); gap:1rem; align-items:end; margin-bottom:1rem; }
.planning-import-card h2 { margin:.15rem 0 .25rem; font-size:1rem; }
.planning-import-card p { margin:0; color:var(--muted,#64748b); font-size:.8rem; }
.planning-import-card label { display:grid; gap:.35rem; font-size:.78rem; font-weight:700; }
.planning-upload-drop { padding:.8rem; border:1px dashed #94a3b8; border-radius:12px; background:rgba(14,116,144,.07); cursor:pointer; }
.planning-upload-drop span { font-weight:800; color:#0f4f5c; }
.planning-upload-drop input { margin-top:.45rem; max-width:100%; }
.planning-upload-drop small { color:var(--muted,#64748b); }
.planning-upload-progress { grid-column:1 / -1; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.75rem; align-items:center; }
.planning-upload-progress > div { height:12px; overflow:hidden; border-radius:999px; background:#e2e8f0; }
.planning-upload-progress span { display:block; height:100%; background:linear-gradient(90deg,#0f766e,#0ea5e9); transition:width .2s ease; }
.planning-import-result { grid-column:1 / -1; padding:.65rem .75rem; border-radius:10px; background:#ecfdf5; color:#065f46; font-weight:700; border:1px solid #a7f3d0; }
.filter-actions { display:flex; gap:.5rem; align-items:end; flex-wrap:wrap; }
.planning-table-shell { max-width:100%; overflow:auto; overscroll-behavior-inline:contain; }
.planning-table { min-width:1100px; }
.planning-table th { white-space:nowrap; }
.planning-modal-layer { position:fixed; inset:0; z-index:1200; display:grid; place-items:center; padding:1rem; background:rgba(15,23,42,.58); }
.planning-editor { width:min(980px, 96vw); max-height:92dvh; overflow:auto; }
.planning-form-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; }
.planning-form-grid .wide-field { grid-column:1 / -1; }
.check-field { display:flex !important; grid-auto-flow:column; align-items:center; justify-content:start; align-self:end; padding:.7rem 0; }
.planner-board { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(260px, 1fr); gap:.8rem; overflow-x:auto; padding-bottom:.6rem; scroll-snap-type:x proximity; }
.planner-column { border:1px solid var(--border-color,#d9e2ec); border-radius:14px; background:rgba(148,163,184,.06); min-height:400px; scroll-snap-align:start; }
.planner-column > header { display:flex; justify-content:space-between; gap:.5rem; padding:.8rem; border-bottom:1px solid var(--border-color,#d9e2ec); font-weight:700; }
.planner-column-body { display:grid; gap:.65rem; padding:.65rem; }
.planner-card { display:block; padding:.75rem; border-radius:11px; background:var(--surface,#fff); border:1px solid var(--border-color,#d9e2ec); text-decoration:none; color:inherit; box-shadow:0 4px 12px rgba(15,23,42,.04); }
.planner-card-top { display:flex; justify-content:space-between; gap:.5rem; font-size:.75rem; }
.planner-card h3 { margin:.45rem 0 .2rem; font-size:.9rem; }
.planner-card p { margin:0 0 .4rem; color:var(--muted,#64748b); font-size:.78rem; }
.planner-empty { padding:1.5rem .75rem; text-align:center; color:var(--muted,#64748b); }
.schedule-list, .gantt-list { display:grid; gap:.55rem; max-height:560px; overflow:auto; }
.schedule-item { display:grid; grid-template-columns:100px minmax(0,1fr) auto; gap:.75rem; align-items:center; padding:.65rem; border-bottom:1px solid var(--border-color,#d9e2ec); }
.schedule-item div { display:grid; min-width:0; }
.schedule-item div span, .schedule-item div small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.gantt-row { display:grid; grid-template-columns:110px minmax(0,1fr); gap:.6rem; align-items:center; }
.gantt-label { display:grid; font-size:.75rem; }
.gantt-track { min-height:34px; display:grid; grid-template-columns:repeat(31, minmax(18px,1fr)); background:repeating-linear-gradient(90deg, transparent 0 calc(3.225% - 1px), rgba(148,163,184,.18) calc(3.225% - 1px) 3.225%); border-radius:8px; overflow:hidden; }
.gantt-track span { grid-column:calc(var(--offset) + 1) / span var(--duration); align-self:center; min-width:60px; padding:.38rem .5rem; border-radius:7px; background:#2563eb; color:#fff; font-size:.7rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.report-section-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:1rem; margin-bottom:1rem; }
.report-kpis { margin:0; }
.utilization-cell { position:relative; min-width:150px; height:28px; border-radius:8px; background:rgba(148,163,184,.16); overflow:hidden; display:grid; place-items:center; }
.utilization-cell span { position:absolute; inset:0 auto 0 0; background:rgba(37,99,235,.28); }
.utilization-cell strong { position:relative; z-index:1; font-size:.76rem; }

@media (max-width: 1100px) {
    .planning-grid.two-column { grid-template-columns:1fr; }
    .planning-form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .planning-import-card { grid-template-columns:1fr; }
    .planning-upload-progress, .planning-import-result { grid-column:auto; }
}
@media (max-width: 700px) {
    .planning-kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .planning-form-grid { grid-template-columns:1fr; }
    .planning-form-grid .wide-field { grid-column:auto; }
    .planning-editor { width:100%; max-height:94dvh; border-radius:18px 18px 0 0; align-self:end; }
    .planning-modal-layer { padding:0; place-items:end stretch; }
    .quick-link-grid { grid-template-columns:1fr; }
    .schedule-item { grid-template-columns:80px minmax(0,1fr); }
    .schedule-item > .status-pill { grid-column:2; justify-self:start; }
}
@media (max-width: 420px) {
    .planning-kpi-grid { grid-template-columns:1fr; }
}

/* Planning improvements */
.opaque-editor .modal-card{background:var(--surface,#fff);opacity:1!important;backdrop-filter:none!important;}
.kpi-click{cursor:pointer;}
.kpi-click:hover{transform:translateY(-2px);}

.horizontal-scroll { overflow-x: auto; overflow-y: auto; max-width: 100%; }
.horizontal-scroll table { min-width: 1800px; white-space: nowrap; }
.horizontal-scroll thead th { position: sticky; top: 0; z-index: 2; background: inherit; }
.column-panel { padding: .75rem; display: flex; gap: 1rem; flex-wrap: wrap; }

/* Phase 3 Leaves Monthly Plan performance grid */
.leave-virtual-grid { overflow:auto; max-height:75vh; }
.leave-grid-header,.leave-grid-row { display:grid; }
.leave-grid-header { position:sticky; top:0; z-index:20; font-weight:600; background:#fff; }
.leave-grid-header > div,.leave-grid-row > div { border:1px solid #e5e7eb; min-height:44px; display:flex; align-items:center; justify-content:center; }
.leave-grid-row .name { justify-content:flex-start; padding-left:8px; }
.leave-grid-header .sticky,.leave-grid-row .sticky { position:sticky; background:#fff; z-index:10; }
.leave-grid-header .c1,.leave-grid-row .c1 { left:0; }
.leave-grid-header .c2,.leave-grid-row .c2 { left:120px; }
.leave-grid-header .c3,.leave-grid-row .c3 { left:230px; }
.leave-grid-header .c4,.leave-grid-row .c4 { left:450px; }
.column-sort{border:0;background:transparent;color:inherit;font:inherit;font-weight:700;padding:0;cursor:pointer;white-space:nowrap}.column-sort:hover{color:#1769aa;text-decoration:underline}.column-sort:focus-visible{outline:2px solid #1769aa;outline-offset:3px;border-radius:2px}
.leave-cell select { width:100%; border:0; background:transparent; }
.maintenance-dashboard-layout{display:flex;gap:14px;align-items:stretch}
.planning-reference-dashboard{background:#f5f6f8;border:1px solid #d8dde4;padding:14px;min-height:70vh}
.equipment-filter-panel{width:190px;background:#f3f3f3;padding:12px}
.planning-equipment-panel{width:205px;flex:0 0 205px;background:#f1f2f4;border-right:1px solid #d3d7de;padding:18px 12px 12px}
.equipment-symbol{width:58px;height:44px;margin:0 auto 12px;display:grid;place-items:center;color:#a6422a;font-weight:900;font-size:1.25rem;border-bottom:4px solid #a6422a}
.equipment-panel-heading{display:grid;grid-template-columns:1fr auto;align-items:end;gap:8px;margin-bottom:6px;color:#111;font-size:.9rem}
.equipment-panel-heading strong{font-size:1rem}
.equipment-panel-heading span{font-weight:800}
.panel-header{background:#0b6670;color:#fff;padding:8px;font-weight:700}
.equipment-filter{width:100%;display:flex;justify-content:space-between;align-items:center;margin:3px 0;border:0;padding:8px 9px;background:#b64b32;color:#fff;text-align:left;font-weight:800;cursor:pointer}
.equipment-filter:hover{background:#983720}
.equipment-filter.active{background:#7f2415;box-shadow:inset 4px 0 0 #111}
.equipment-filter.alias{margin-left:16px;width:calc(100% - 16px);background:#c45a42;font-size:.82rem;padding:6px 9px}
.equipment-filter.alias.active-alias{background:#9f3c27}
.equipment-total{margin-top:10px;background:#111;color:#fff;padding:8px;display:flex;justify-content:space-between;font-weight:900}
.maintenance-dashboard-main{flex:1;min-width:0}
.planning-dashboard-canvas{background:#f7f7f8;padding:8px 10px 14px}
.dashboard-brand-row{display:flex;justify-content:space-between;align-items:flex-start;margin:2px 0 14px}
.dashboard-brand-row h2{margin:0;color:#111827;font-size:2.45rem;font-weight:500;letter-spacing:.01em}
.dashboard-brand-row p{margin:.2rem 0 0;color:#667085;font-weight:700}
.dashboard-brand{font-size:2rem;letter-spacing:.04em;color:#1f2937}
.maintenance-kpi-grid{display:grid;grid-template-columns:1.1fr 1.35fr 1fr 1fr 1fr 1.2fr 1.45fr;gap:10px;align-items:stretch}
.dashboard-card{background:#e9eaed;padding:8px;min-height:126px;border:1px solid #d5dae2;box-shadow:0 1px 0 rgba(255,255,255,.8) inset}
.dashboard-card h3{font-size:.86rem;background:#0b6670;color:#fff;margin:-8px -8px 8px;padding:7px 8px;font-weight:900}
.counter-row{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:24px;padding:2px 4px;border-bottom:1px solid rgba(148,163,184,.2);font-size:.9rem}
.counter-row span{display:flex;align-items:center;gap:7px;color:#3d4652}
.counter-row b{font-size:.92rem;color:#222}
.priority-dot{width:15px;height:15px;border-radius:50%;display:inline-block;border:1px solid rgba(0,0,0,.18)}
.priority-dot.safety,.priority-pill.safety{background:#b91c1c;color:#fde047;border-color:#7f1d1d;font-weight:900}
.priority-dot.high,.priority-pill.high{background:#ce6b5b}
.priority-dot.medium,.priority-pill.medium{background:#b47a3c}
.priority-dot.low,.priority-pill.low{background:#a76491}
.priority-dot.urgent,.priority-pill.urgent{background:#2e3440}
.priority-pill{display:inline-grid;place-items:center;min-width:24px;height:24px;border-radius:50%;color:#fff;font-weight:900}
.health-card{position:relative;min-width:170px}
.health-state{display:flex;gap:7px;align-items:center;font-weight:900;margin-bottom:6px}
.health-state.good{color:#137333}.health-state.warning{color:#b45309}.health-state.poor{color:#b42318}
.flag{font-size:1rem}
.health-gauge{width:150px;height:78px;margin:6px auto 0;position:relative;overflow:hidden}
.health-gauge::before{content:"";position:absolute;inset:0;border-radius:150px 150px 0 0;background:conic-gradient(from 270deg,#2f8f4e calc(var(--health-percent) * .5%),#d9dde4 0 50%,transparent 0);transform-origin:50% 100%}
.health-gauge::after{content:"";position:absolute;left:25px;right:25px;bottom:0;height:54px;background:#f7f7f8;border-radius:120px 120px 0 0}
.health-gauge span{position:absolute;left:0;right:0;bottom:7px;text-align:center;font-size:1.6rem;font-weight:500;color:#111;z-index:2}
.health-scale{display:flex;justify-content:space-between;color:#111;margin:0 16px;font-weight:800}
.maintenance-filter-strip{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:14px;align-items:end;margin:12px 0}
.maintenance-filter-strip label{display:grid;gap:0}
.maintenance-filter-strip label span{background:#0b6670;color:#fff;font-weight:900;padding:7px 9px}
.maintenance-filter-strip .form-select{border:1px solid #cbd5e1;border-top:0;min-height:34px;padding:0 10px;background:#f7f7f7}
.history-buttons{display:flex;gap:10px;align-items:stretch}
.history-buttons button{background:#0b6670;color:white;border:0;padding:12px 32px;margin:0;font-weight:900;cursor:pointer}
.history-buttons button:hover,.history-buttons button.active{background:#084c54}
.planning-workorder-table{border:1px solid #c7a36f;max-height:52vh;overflow:auto;background:#f7f7f7}
.planning-workorder-table table{min-width:1220px;width:100%;border-collapse:collapse}
.planning-workorder-table thead th{position:sticky;top:0;z-index:3;background:#cfa16c;color:#1f2937;font-weight:900;padding:8px 9px;text-align:left;border-right:1px solid #b98b55}
.planning-workorder-table tbody td{padding:7px 9px;border-bottom:1px solid #d7dbe2;color:#1f2937;vertical-align:top;font-size:.9rem}
.planning-workorder-table tbody tr:nth-child(even){background:#e8eaee}
.planning-workorder-table tbody tr:nth-child(odd){background:#f6f6f7}
.planning-workorder-table tbody tr:hover{background:#dce8f6}
.empty-cell{text-align:center;color:#64748b;font-weight:800;padding:28px!important}
@media (max-width: 1180px){
  .planning-reference-dashboard{display:block}
  .planning-equipment-panel{width:auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:6px;margin-bottom:12px}
  .equipment-symbol,.equipment-panel-heading,.equipment-total{grid-column:1/-1}
  .equipment-filter.alias{margin-left:0;width:100%}
  .maintenance-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .maintenance-filter-strip{grid-template-columns:1fr}
}
@media (max-width: 680px){
  .dashboard-brand-row{display:block}
  .dashboard-brand-row h2{font-size:2rem}
  .maintenance-kpi-grid{grid-template-columns:1fr}
  .history-buttons{display:grid;grid-template-columns:1fr 1fr}
}

/* Staff & Identity operational grid */
.staff-grid-shell{
  display:grid;
  gap:.75rem;
  min-width:0;
}
.staff-grid-shell > .toolbar:not(.staff-action-toolbar){
  display:none;
}
.staff-action-toolbar{
  position:sticky;
  top:82px;
  z-index:15;
  align-items:center;
  padding:.75rem;
  border:1px solid var(--line);
  border-radius:.55rem;
  background:color-mix(in srgb,var(--panel) 96%,#e8f1fb);
  box-shadow:0 10px 24px rgba(15,23,42,.08);
}
.selected-record-summary{
  display:grid;
  min-width:min(360px,100%);
  margin-right:auto;
  gap:.15rem;
}
.selected-record-summary span{
  color:var(--muted);
  font-size:.72rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.selected-record-summary strong{
  color:var(--text);
  font-size:.95rem;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.selected-record-summary small{
  color:var(--muted);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.staff-toolbar-separator{
  width:1px;
  height:34px;
  background:var(--line);
  margin-inline:.25rem;
}
.staff-table-wrap{
  height:clamp(420px,58dvh,720px);
  max-height:calc(100dvh - 300px);
  min-height:420px;
  overflow-x:auto!important;
  overflow-y:scroll!important;
  scrollbar-gutter:stable both-edges;
  border:1px solid var(--line);
  border-radius:.55rem;
  background:var(--panel);
  overscroll-behavior:contain;
}
.staff-identity-table{
  min-width:2650px;
  border-collapse:separate;
  border-spacing:0;
  font-size:.82rem;
}
.staff-identity-table th,
.staff-identity-table td{
  white-space:nowrap;
  vertical-align:middle;
}
.staff-identity-table thead th{
  position:sticky;
  top:0;
  z-index:4;
  background:#eef4fb;
  color:#25364a;
  border-bottom:1px solid var(--line);
}
.staff-identity-table tbody tr{
  cursor:pointer;
}
.staff-identity-table tbody tr:hover td{
  background:#edf6ff;
}
.staff-identity-table tbody tr.selected-row td{
  background:#dceeff;
  box-shadow:inset 0 1px 0 #8ec5f4,inset 0 -1px 0 #8ec5f4;
}
.staff-identity-table .select-col{
  position:sticky;
  left:0;
  z-index:5;
  width:48px;
  min-width:48px;
  text-align:center;
  background:inherit;
}
.staff-identity-table thead .select-col{
  z-index:7;
  background:#d9e8f7;
}
.staff-identity-table th:nth-child(2),
.staff-identity-table td:nth-child(2){
  position:sticky;
  left:48px;
  z-index:5;
  min-width:90px;
  background:inherit;
}
.staff-identity-table thead th:nth-child(2){
  z-index:7;
  background:#d9e8f7;
}
.staff-identity-table th:nth-child(3),
.staff-identity-table td:nth-child(3){
  position:sticky;
  left:138px;
  z-index:5;
  min-width:260px;
  max-width:340px;
  overflow:hidden;
  text-overflow:ellipsis;
  background:inherit;
}
.staff-identity-table thead th:nth-child(3){
  z-index:7;
  background:#d9e8f7;
}
body.dark .staff-action-toolbar,
body.dark .staff-table-wrap{
  background:var(--panel);
}
body.dark .staff-identity-table thead th,
body.dark .staff-identity-table thead .select-col,
body.dark .staff-identity-table thead th:nth-child(2),
body.dark .staff-identity-table thead th:nth-child(3){
  background:#182230;
  color:#d0d5dd;
}
body.dark .staff-identity-table tbody tr:hover td{background:#182a3f}
body.dark .staff-identity-table tbody tr.selected-row td{background:#12395d}

/* Service Providers company-first layout */
.provider-page .panel-title{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  padding:.9rem 1rem .35rem;
}
.provider-page .panel-title h3{margin:0}
.provider-page .panel-title p{margin:.2rem 0 0;color:var(--muted)}
.provider-page .compact-filter{
  display:flex;
  align-items:center;
  gap:.5rem;
  margin:.35rem 1rem .9rem;
  padding:.65rem;
}
.provider-page .compact-filter .form-control{max-width:520px}
.provider-page .data-table tr.is-selected td{
  background:#e0f2fe;
  box-shadow:inset 3px 0 0 #0b72b9;
}
.provider-page .compact-actions{
  align-items:center;
  gap:.35rem;
}
.provider-page .embedded-form{
  margin:.75rem 1rem 1rem;
  box-shadow:none;
}
.link-button{
  border:0;
  background:transparent;
  color:#1769aa;
  cursor:pointer;
  padding:0;
  text-align:left;
}
.link-button.strong{
  font-weight:800;
}
.link-button:hover{text-decoration:underline}
.status-suspended{background:#f2f4f7;color:#475467}

/* Closed leave periods stay readable; locking prevents edits without hiding the saved value. */
.leave-cell.locked{
  position:relative;
  background:var(--leave-cell-bg)!important;
  color:#172033;
  font-size:.72rem;
  box-shadow:inset 0 0 0 1px rgba(23,32,51,.16);
}
.locked-cell-value{
  position:relative;
  display:flex;
  width:100%;
  height:100%;
  min-height:32px;
  align-items:center;
  justify-content:center;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  font-weight:800;
  cursor:pointer;
  padding:.1rem .75rem .1rem .15rem;
}
.locked-cell-value small{
  position:absolute;
  top:2px;
  right:2px;
  font-size:.5rem;
  line-height:1;
  filter:grayscale(1);
  opacity:.6;
}
.locked-cell-value:disabled{color:inherit;opacity:1;cursor:not-allowed}
.locked-cell-value.readonly{cursor:default}

/* Execution dashboard operational table */
.execution-dashboard{
  display:grid;
  gap:1rem;
}
.execution-kpis{
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
}
.execution-table-card .panel-title{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding:1rem 1rem .45rem;
}
.execution-table-card .panel-title h2{
  margin:0;
  font-size:1.15rem;
}
.execution-table-card .panel-title p{
  margin:.2rem 0 0;
  color:var(--muted);
}
.execution-table{
  min-width:1500px;
}
.execution-table .compact-input{
  width:95px;
}
.execution-table .remaining-input{
  min-width:210px;
}
.execution-table small{
  color:var(--muted);
}
.btn-success{
  background:#067647!important;
  border-color:#067647!important;
  color:#fff!important;
}
.btn-warning{
  background:#b54708!important;
  border-color:#b54708!important;
  color:#fff!important;
}
.btn-success:disabled,
.btn-warning:disabled{
  opacity:.55;
}

/* Maintenance Jobs lifecycle */
.maintenance-lifecycle-strip{
  display:grid;
  grid-template-columns:1fr auto 1fr auto 1fr auto 1fr auto 1fr;
  gap:.45rem;
  align-items:stretch;
  padding:.75rem;
  background:#f7f7f8;
  border:1px solid #d7dde5;
  border-radius:.65rem;
}
.lifecycle-step{
  display:grid;
  gap:.18rem;
  padding:.75rem;
  border-left:5px solid #0b6670;
  background:#fff;
  box-shadow:0 4px 12px rgba(15,23,42,.06);
}
.lifecycle-step span{
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  border-radius:50%;
  background:#0b6670;
  color:#fff;
  font-weight:900;
  font-size:.78rem;
}
.lifecycle-step strong{font-size:.9rem}
.lifecycle-step small{color:var(--muted)}
.lifecycle-step.material{border-color:#b54a31}
.lifecycle-step.material span{background:#b54a31}
.lifecycle-step.planning{border-color:#0b6670}
.lifecycle-step.execution{border-color:#165a9f}
.lifecycle-step.execution span{background:#165a9f}
.lifecycle-step.archive{border-color:#111827}
.lifecycle-step.archive span{background:#111827}
.lifecycle-arrow{
  display:grid;
  place-items:center;
  color:#667085;
  font-weight:900;
}
.stage-pill{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:.22rem .55rem;
  font-size:.72rem;
  font-weight:900;
  white-space:nowrap;
}
.stage-maintenance{background:#e0f2fe;color:#075985}
.stage-material{background:#fee4e2;color:#b42318}
.stage-planning{background:#ccfbf1;color:#0f766e}
.stage-execution{background:#dbeafe;color:#1d4ed8}
.stage-archive{background:#e5e7eb;color:#111827}
@media(max-width:1100px){
  .maintenance-lifecycle-strip{grid-template-columns:1fr}
  .lifecycle-arrow{display:none}
}

/* Navigation visual refresh 2026-08-14 */
:root{--nav-dashboard:#4f46e5;--nav-workforce:#0e9384;--nav-equipment:#e67e22;--nav-admin:#8b5cf6}
.side-menu{background:linear-gradient(180deg,#0d1728 0%,#101828 55%,#0b1322 100%);padding:.85rem;gap:.7rem;box-shadow:8px 0 28px rgba(15,23,42,.12)}
.sidebar-mobile-header{padding:.15rem .25rem .35rem}.brand-icon{border-radius:12px;box-shadow:0 7px 18px rgba(14,147,132,.25)}
.user-block{background:rgba(255,255,255,.035);border-color:rgba(255,255,255,.1);border-radius:12px}
.nav-list{gap:.42rem}.nav-home{border-left:3px solid var(--nav-dashboard);background:rgba(79,70,229,.08)}
.nav-group{margin:.15rem .2rem;border-color:rgba(255,255,255,.13);background:rgba(255,255,255,.025);border-radius:14px}
.nav-group>summary{position:relative;padding:.7rem .65rem;font-size:.86rem;letter-spacing:.01em}
.nav-group>summary::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 4px 4px 0;background:var(--group-accent,#64748b)}
.workforce-group{--group-accent:var(--nav-workforce)}.equipment-group{--group-accent:var(--nav-equipment)}.admin-group{--group-accent:var(--nav-admin)}
.nav-group-icon,.nav-icon{flex:0 0 auto;display:inline-grid;place-items:center;font-family:"Segoe UI Symbol","Segoe UI",sans-serif;font-weight:800}
.nav-group-icon{width:32px;height:32px;border-radius:10px;background:color-mix(in srgb,var(--group-accent,#64748b) 24%,transparent);color:color-mix(in srgb,var(--group-accent,#fff) 70%,white)}
.nav-icon{width:28px;height:28px;border-radius:8px;font-size:1rem;color:#aebbd0;background:rgba(255,255,255,.035)}
.nav-group-items{padding:.05rem .35rem .5rem}.nav-group-items .nav-item{margin:.12rem 0;padding:.52rem .55rem;gap:.62rem;border-radius:9px;font-size:.88rem;transition:background .16s ease,color .16s ease,transform .16s ease}
.nav-group-items .nav-item:hover{transform:translateX(2px);background:rgba(255,255,255,.075)}
.workforce-group .nav-item.active{background:color-mix(in srgb,var(--nav-workforce) 18%,transparent);box-shadow:inset 3px 0 var(--nav-workforce)}
.equipment-group .nav-item.active{background:color-mix(in srgb,var(--nav-equipment) 18%,transparent);box-shadow:inset 3px 0 var(--nav-equipment)}
.admin-group .nav-item.active{background:color-mix(in srgb,var(--nav-admin) 18%,transparent);box-shadow:inset 3px 0 var(--nav-admin)}
.workforce-group .nav-item.active .nav-icon{color:#5eead4}.equipment-group .nav-item.active .nav-icon{color:#fdba74}.admin-group .nav-item.active .nav-icon{color:#c4b5fd}
.sidebar-footer{margin-top:auto;padding:.85rem .45rem .15rem;border-top:1px solid rgba(255,255,255,.08);font-size:.78rem;color:#8190a8}
.top-bar{border-top:4px solid var(--section-accent,#4f46e5);transition:border-color .2s ease}.top-bar .top-title-block h1{color:var(--section-accent,#182230)}
.top-bar.section-dashboard{--section-accent:var(--nav-dashboard)}.top-bar.section-workforce{--section-accent:var(--nav-workforce)}.top-bar.section-equipment{--section-accent:var(--nav-equipment)}.top-bar.section-admin{--section-accent:var(--nav-admin)}
@media(max-width:1360px) and (min-width:769px){.side-menu{padding:.65rem}.nav-group>summary{padding:.58rem .55rem}.nav-group-items .nav-item{padding:.44rem .48rem;font-size:.84rem}.nav-group-icon{width:28px;height:28px}.nav-icon{width:25px;height:25px}}

/* Staff & Identity v8: compact inline editing and safe horizontal scrolling */
.staff-inline-editor{border-left:4px solid #0f766e;background:color-mix(in srgb,var(--panel) 97%,#ccfbf1)}
.staff-inline-editor-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.75rem}
.staff-inline-editor-head div{display:grid;gap:.15rem}.staff-inline-editor-head small{color:var(--muted)}
.staff-inline-edit-grid{grid-template-columns:repeat(4,minmax(180px,1fr));gap:.65rem}
.staff-table-wrap{position:relative;overflow:auto;max-height:62vh;isolation:isolate;border:1px solid var(--line);border-radius:10px;background:var(--panel);scrollbar-gutter:stable}
.staff-identity-table{min-width:2240px;width:max-content;border-collapse:separate;border-spacing:0;table-layout:fixed}
.staff-identity-table th,.staff-identity-table td{box-sizing:border-box;min-width:120px;max-width:240px;padding:.68rem .75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.staff-identity-table thead th{position:sticky;top:0;z-index:5;background:#0f4c5c;color:#fff;box-shadow:0 1px 0 #082f3a}
.staff-identity-table .select-col{position:sticky;left:0;z-index:4;width:48px;min-width:48px;max-width:48px;text-align:center;background:var(--panel)}
.staff-identity-table thead .select-col{z-index:8;background:#0f4c5c}
.staff-identity-table th:nth-child(2),.staff-identity-table td:nth-child(2){position:sticky;left:48px;z-index:3;width:90px;min-width:90px;max-width:90px;background:var(--panel)}
.staff-identity-table thead th:nth-child(2){z-index:7;background:#0f4c5c}
.staff-identity-table th:nth-child(3),.staff-identity-table td:nth-child(3){position:sticky;left:138px;z-index:3;width:76px;min-width:76px;max-width:76px;background:var(--panel)}
.staff-identity-table thead th:nth-child(3){z-index:7;background:#0f4c5c}
.staff-identity-table th:nth-child(4),.staff-identity-table td:nth-child(4){position:sticky;left:214px;z-index:3;width:280px;min-width:280px;max-width:280px;background:var(--panel);box-shadow:2px 0 0 var(--line),8px 0 14px rgba(15,23,42,.06)}
.staff-identity-table thead th:nth-child(4){z-index:7;background:#0f4c5c}
.staff-identity-table tbody tr:hover td:nth-child(4){background:#edf6ff}
.staff-identity-table tbody tr.selected-row td:nth-child(4){background:#dceeff}
@media(max-width:1200px){.staff-inline-edit-grid{grid-template-columns:repeat(3,minmax(170px,1fr))}}
@media(max-width:850px){.staff-inline-edit-grid{grid-template-columns:repeat(2,minmax(160px,1fr))}.staff-inline-editor-head{align-items:stretch;flex-direction:column}}
body.dark .staff-inline-editor{background:var(--panel)}
body.dark .staff-identity-table th:nth-child(4),body.dark .staff-identity-table td:nth-child(4){background:var(--panel)}
body.dark .staff-identity-table tbody tr:hover td:nth-child(4){background:#182a3f}
body.dark .staff-identity-table tbody tr.selected-row td:nth-child(4){background:#12395d}
.staff-identity-table tbody tr:hover .select-col,.staff-identity-table tbody tr:hover td:nth-child(2){background:#edf6ff}.staff-identity-table tbody tr.selected-row .select-col,.staff-identity-table tbody tr.selected-row td:nth-child(2){background:#dceeff}
.equipment-nav-icon{padding:1px!important;background:rgba(255,255,255,.08)!important}.equipment-nav-icon:after{display:none}.equipment-nav-icon img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 1px 1px rgba(0,0,0,.35))}
.save-spinner{display:inline-block;width:14px;height:14px;margin-inline-end:.4rem;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-2px;animation:staff-save-spin .7s linear infinite}@keyframes staff-save-spin{to{transform:rotate(360deg)}}

/* APM Terminals inspired visual identity */
:root{--apm-orange:#ff5b35;--apm-coral:#ff765f;--apm-navy:#101b2d;--apm-ink:#172033;--apm-sand:#f6f4f1;--apm-sea:#087f8c;--apm-green:#22a66f}
.side-menu{background:linear-gradient(180deg,#0c1626 0%,#121f32 100%);border-top:4px solid var(--apm-orange)}
.brand{min-height:58px}.apm-brand-logo{width:142px;max-height:38px;object-fit:contain;object-position:left center}.brand-text strong{color:#fff}.brand-text span{color:#aab5c5}.sidebar-footer{display:grid;gap:2px}.sidebar-footer small{color:var(--apm-orange);font-size:.64rem;letter-spacing:.05em}
.equipment-group{--group-accent:var(--apm-orange)}.equipment-mark,.equipment-icon{overflow:hidden;background:rgba(255,91,53,.08)!important}.equipment-mark img{width:31px;height:31px;object-fit:contain}.equipment-icon img{width:26px;height:23px;object-fit:contain;filter:saturate(1.1)}
.equipment-group .nav-item.active{background:rgba(255,91,53,.13);box-shadow:inset 3px 0 var(--apm-orange)}
.top-bar.section-equipment{--section-accent:var(--apm-orange)}
.planning-page .eyebrow{color:var(--apm-orange)!important}.planning-page .btn-primary{background:var(--apm-orange);border-color:var(--apm-orange)}
/* v12 APM visual refinements */
.apm-wtd-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 18px;border:1px solid #e3e8ef;border-radius:10px;background:#fff;min-width:280px}.apm-wtd-card>div:first-child{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:4px 8px}.apm-wtd-card small{grid-column:1/-1;color:#718096}.wtd-bars{height:44px;display:flex;align-items:end;gap:4px}.wtd-bars span{width:7px;max-height:42px;min-height:8px;border-radius:4px 4px 1px 1px;background:#ff5a36}.dashboard-equipment-art{width:150px;height:86px;object-fit:contain;object-position:center;margin-left:auto}.workshop-art{width:170px;height:80px}.equipment-dashboard-heading{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid #ff5a36;margin-bottom:8px}.equipment-dashboard-heading h1{margin:0}.clickable-filter{cursor:pointer}.active-filter-card{outline:2px solid #ff5a36;box-shadow:0 0 0 3px rgba(255,90,54,.1)}
/* compact APM outline navigation icons */
.nav-icon,.nav-group-icon{font-size:0!important;width:20px;height:20px;display:inline-grid!important;place-items:center;border:1.7px solid #dbe7f3;border-radius:5px;opacity:.95;position:relative}.nav-icon:after,.nav-group-icon:after{content:"";width:7px;height:7px;border:1.5px solid currentColor;border-radius:2px}.nav-item.active .nav-icon{background:rgba(255,255,255,.16);border-color:#fff}.equipment-group>summary .nav-group-icon{border-color:#ff5a36;color:#ff5a36}.workforce-group>summary .nav-group-icon{border-color:#29b8aa;color:#29b8aa}.admin-group>summary .nav-group-icon{border-radius:50%}
/* v13: equipment dashboard art - force visible on QC/RTG headers */
.equipment-dashboard-heading{min-height:100px;padding:8px 14px 8px 0;overflow:visible!important}
.equipment-dashboard-heading .dashboard-equipment-art{display:block!important;visibility:visible!important;opacity:1!important;width:190px!important;height:96px!important;object-fit:contain!important;flex:0 0 190px!important}

/* v14: equipment artwork on the actual /planning/dashboard/QC and /RTG route headings */
.planning-heading-actions{display:flex!important;align-items:center!important;gap:18px!important;margin-left:auto!important}
.planning-title-equipment-art{display:block!important;visibility:visible!important;opacity:1!important;width:180px!important;height:105px!important;object-fit:contain!important;object-position:center!important;flex:0 0 180px!important}
@media(max-width:900px){.planning-title-equipment-art{width:125px!important;height:78px!important;flex-basis:125px!important}}

/* Material Status title visual */
.material-title-actions{display:flex;align-items:center;gap:18px;margin-left:auto}.material-containers-art{display:block;width:190px;height:96px;object-fit:contain;object-position:center;filter:drop-shadow(0 4px 8px rgba(0,31,61,.08))}@media(max-width:900px){.material-containers-art{width:130px;height:70px}.material-title-actions{gap:8px}}
/* v18.4 Security Center */
.security-center{max-width:1500px}.security-legend{display:flex;gap:18px;font-weight:700}.security-legend .allowed{color:#18794e}.security-toolbar{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:14px}.security-toolbar label{min-width:280px}.security-actions{display:flex;gap:8px;flex-wrap:wrap}.security-summary{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:12px;margin:14px 0}.security-summary>div{background:#fff;border:1px solid #dde5ea;border-radius:14px;padding:14px 18px;display:flex;flex-direction:column}.security-summary strong{font-size:1.35rem}.security-summary span{color:#66757f}.security-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.security-module{background:#fff;border:1px solid #dce5e9;border-radius:16px;overflow:hidden;box-shadow:0 3px 12px rgba(16,38,48,.05)}.security-module header{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:15px 16px;background:#f6f9fa;border-bottom:1px solid #e3eaed}.security-module header div{display:flex;flex-direction:column}.security-module header small,.security-permission small{color:#718089;font-weight:400}.security-permissions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px}.security-permission{border:1px solid #dbe3e7;background:#f8fafb;border-radius:12px;padding:11px;text-align:left;display:flex;gap:9px;cursor:pointer;color:#34454e}.security-permission.is-on{background:#edf8f2;border-color:#7cc39d;color:#155c3b}.permission-state{font-size:1.1rem;font-weight:900}.security-permission span:last-child{display:flex;flex-direction:column}.security-permission small{font-size:.76rem;margin-top:2px}@media(max-width:950px){.security-grid{grid-template-columns:1fr}.security-toolbar{align-items:stretch;flex-direction:column}.security-summary{grid-template-columns:1fr}.security-permissions{grid-template-columns:1fr}}

/* v18.4.2 compact administration UX */
.account-management{max-width:1500px}.account-header{align-items:center}.account-kpis{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:10px;margin:12px 0}.account-kpis>div{background:#fff;border:1px solid #dce5e9;border-radius:12px;padding:11px 14px;display:flex;align-items:baseline;gap:8px}.account-kpis strong{font-size:1.35rem}.account-kpis span{font-size:.78rem;color:#6d7c84}.account-list{padding:0;overflow:hidden}.account-list-head,.account-row{display:grid;grid-template-columns:minmax(260px,2fr) minmax(100px,.7fr) minmax(130px,.9fr) minmax(95px,.65fr) minmax(230px,1.35fr);gap:12px;align-items:center}.account-list-head{padding:9px 14px;background:#f5f8f9;border-bottom:1px solid #e1e8eb;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#6c7a82}.account-row{padding:10px 14px;border-bottom:1px solid #edf1f3}.account-row:last-child{border-bottom:0}.account-row:hover{background:#fbfcfc}.account-person{display:flex;align-items:center;gap:10px;min-width:0}.account-avatar{width:34px;height:34px;border-radius:10px;background:#e8f3ef;color:#12624b;display:grid;place-items:center;font-weight:900;font-size:.76rem;flex:none}.account-name-line{display:flex;align-items:center;gap:8px}.account-person small,.account-activity small{display:block;color:#77858c;font-size:.74rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-edit-link{border:0;background:transparent;color:#08775f;font-weight:800;font-size:.72rem;padding:0;cursor:pointer}.role-chip{display:inline-flex;padding:4px 8px;border-radius:999px;background:#eef3f5;font-size:.74rem;font-weight:800}.account-activity strong{font-size:.78rem}.status-pill{display:inline-flex;align-items:center;gap:6px;font-size:.74rem;font-weight:800}.status-pill i{width:7px;height:7px;border-radius:50%;background:#9aa6ac}.status-pill.active{color:#176b49}.status-pill.active i{background:#1c9b68}.status-pill.disabled{color:#7a858a}.account-actions{display:flex;gap:5px;justify-content:flex-end}.btn-danger-soft{background:#fff4f3;border:1px solid #f0cfca;color:#a33b31}.account-drawer-backdrop{display:flex;justify-content:flex-end;align-items:stretch}.account-drawer{width:min(520px,94vw);height:100%;background:#fff;box-shadow:-18px 0 50px rgba(15,35,45,.18);display:flex;flex-direction:column;animation:drawerIn .18s ease-out}.account-drawer-head{padding:22px 24px 16px;border-bottom:1px solid #e6ecef;display:flex;justify-content:space-between;gap:16px}.account-drawer-head h2{margin:3px 0 4px}.account-drawer-head p{margin:0;color:#6c7a82;font-size:.86rem}.eyebrow{font-size:.68rem;font-weight:900;letter-spacing:.09em;color:#08775f}.account-drawer-body{padding:18px 24px;overflow:auto;display:grid;gap:16px}.account-form-section{border:1px solid #e1e8eb;border-radius:12px;padding:14px}.account-form-section h3{font-size:.86rem;margin:0 0 10px}.account-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.account-form-grid .span-2{grid-column:1/-1}.account-form-section label{display:grid;gap:5px;font-size:.76rem;font-weight:800}.field-help{color:#78868d;font-weight:400;font-size:.72rem}.account-drawer-footer{margin-top:auto;padding:14px 24px;border-top:1px solid #e6ecef;display:flex;justify-content:flex-end;gap:8px}@keyframes drawerIn{from{transform:translateX(35px);opacity:.6}to{transform:none;opacity:1}}
.compact-security{max-width:1700px}.security-topbar{display:grid;grid-template-columns:minmax(210px,1fr) minmax(260px,1.25fr) auto;gap:10px;align-items:end;padding:10px 12px;margin-bottom:8px}.security-topbar label{display:grid;gap:3px}.security-topbar label>span{font-size:.65rem;font-weight:900;letter-spacing:.05em;color:#68777f}.security-mini-summary{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:7px 2px 10px;font-size:.73rem;color:#68777f}.security-mini-summary strong{color:#263941}.inherit-key{margin-left:auto}.compact-security .security-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.compact-security .security-module{border-radius:11px;box-shadow:0 2px 7px rgba(16,38,48,.04)}.compact-security .security-module header{padding:8px 10px}.compact-security .security-module header strong{font-size:.82rem}.compact-security .security-module header small{font-size:.67rem;line-height:1.2}.security-group-toggle{border:1px solid #d8e2e6;background:#fff;border-radius:7px;padding:3px 7px;font-size:.68rem;font-weight:800;cursor:pointer}.compact-security .security-permissions{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:7px}.compact-security .security-permission{border-radius:8px;padding:6px 7px;gap:6px;min-height:38px}.compact-security .security-permission strong{font-size:.73rem;line-height:1.1}.compact-security .security-permission small{font-size:.62rem;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.compact-security .permission-state{font-size:.9rem}.security-permission.is-inherited{border-color:#d7b36a;background:#fffaf0}.security-permission.is-denied{border-color:#e2b7b2;background:#fff6f5}.compact-security .security-actions{justify-content:flex-end}@media(max-width:1250px){.compact-security .security-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.account-list-head,.account-row{grid-template-columns:minmax(240px,2fr) 100px 130px 90px}.account-list-head span:last-child{display:none}.account-actions{grid-column:1/-1;justify-content:flex-start;padding-left:44px}}@media(max-width:850px){.account-kpis{grid-template-columns:repeat(2,1fr)}.account-list-head{display:none}.account-row{grid-template-columns:1fr 1fr}.account-person,.account-actions{grid-column:1/-1}.account-actions{padding-left:44px}.security-topbar{grid-template-columns:1fr}.compact-security .security-grid{grid-template-columns:1fr}.account-form-grid{grid-template-columns:1fr}.account-form-grid .span-2{grid-column:auto}}
/* v18.5 Workforce navigation grouping */
.nav-section-label{padding:10px 12px 4px 42px;font-size:.61rem;font-weight:900;letter-spacing:.11em;color:#8aa0b4;text-transform:uppercase;pointer-events:none}

/* v18.5.7.3 - application-wide responsive hardening */
@media (max-width:1100px){
  .page-stack,.planning-page,.workforce-page,.security-center,.compact-security,.account-management,.compact-reports{max-width:100%!important;width:100%!important;min-width:0!important}
  .section-header,.panel-title,.visual-title,.integrity-head,.rules-head,.save-bar,.daily-check-head{flex-wrap:wrap!important}
  .toolbar,.filters,.button-row,.filter-actions,.security-actions,.integrity-actions,.save-actions,.account-actions{max-width:100%!important}
  .form-grid,.filter-grid,.editor-section-grid,.excel-fields-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .kpi-grid,.wf-kpi-strip,.planning-kpis,.alert-kpis,.integrity-kpis,.account-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .table-card,.panel,.form-card,.filter-card{max-width:100%!important;min-width:0!important}
  .table-scroll,.table-wrap,.table-shell,.integrity-table,.compact-table{overflow-x:auto!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior-inline:contain!important}
  .data-table,.table{width:max-content!important;min-width:100%!important}
  .maintenance-lifecycle-strip{overflow-x:auto!important}
  .fixed-wt-grid,.how-grid,.rules-layout{grid-template-columns:minmax(0,1fr)!important}
  .hoist-crane-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .daily-check-grid,.cf-directive-grid{grid-template-columns:minmax(0,1fr)!important}
  .cf-directive-item{grid-template-columns:minmax(0,1fr)!important}
  .modal-dialog,.dialog,.account-drawer{max-width:calc(100vw - 2rem)!important}
}

@media (max-width:600px){
  body{overflow-x:hidden!important}
  .content-wrap{padding:.65rem .6rem 1.25rem!important}
  .top-bar{padding:.55rem .6rem!important;gap:.5rem!important}
  .top-actions{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .top-actions .search-box{grid-column:1/-1!important}
  .top-actions .live-indicator{align-self:center;justify-self:start}
  .top-actions form{min-width:0}.top-actions form .btn{width:100%}
  .top-actions>.btn,.top-actions form>.btn{padding:.45rem .5rem!important;font-size:.78rem!important;white-space:nowrap}
  .page-header,.section-header,.panel-title,.visual-title,.integrity-head,.rules-head,.save-bar,.staff-inline-editor-head{align-items:stretch!important;flex-direction:column!important}
  .page-header h2{font-size:1.3rem!important}
  .panel,.form-card,.filter-card,.table-card,.kpi-card{border-radius:.55rem!important}
  .panel,.form-card,.filter-card{padding:.75rem!important}
  .form-grid,.filter-grid,.editor-section-grid,.excel-fields-grid,.staff-inline-edit-grid,.section-detail-filters,.security-summary,.security-permissions,.account-form-grid,.test-grid,.weights-grid{grid-template-columns:minmax(0,1fr)!important}
  .span-2,.span-3,.span-4,.weights-grid .threshold{grid-column:auto!important}
  .kpi-grid,.wf-kpi-strip,.planning-kpis,.alert-kpis,.integrity-kpis,.account-kpis,.compact-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:.5rem!important}
  .kpi-card{padding:.7rem!important}.kpi-value{font-size:1.45rem!important}
  .toolbar,.filters,.button-row,.filter-actions,.security-actions,.integrity-actions,.save-actions,.account-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;width:100%!important;align-items:stretch!important}
  .toolbar>*,.filters>*,.button-row>*,.filter-actions>*,.security-actions>*,.integrity-actions>*,.save-actions>*,.account-actions>*{min-width:0!important;max-width:none!important;width:100%!important}
  .filters>label,.toolbar>label{grid-column:1/-1}
  .form-control,.form-select,.btn{min-height:42px}
  textarea.form-control{min-height:88px}
  .data-table,.table{font-size:.78rem!important}
  .data-table th,.data-table td,.table th,.table td{padding:.5rem .55rem!important;white-space:nowrap}
  .table-scroll{max-height:68dvh!important}
  .staff-identity-table th:nth-child(3),.staff-identity-table td:nth-child(3){position:static!important;left:auto!important;box-shadow:none!important}
  .account-row{grid-template-columns:minmax(0,1fr)!important}.account-person,.account-actions{grid-column:auto!important}.account-actions{padding-left:0!important}
  .security-topbar,.compact-security .security-grid{grid-template-columns:minmax(0,1fr)!important}
  .hoist-crane-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .maintenance-lifecycle-strip{padding:.55rem!important}
  .lifecycle-step{min-width:210px}
  .modal,.modal-backdrop,.account-drawer-backdrop{padding:0!important}
  .modal-dialog,.dialog,.account-drawer{width:100vw!important;max-width:100vw!important;margin:0!important;border-radius:0!important}
  .account-drawer{height:100dvh!important}
}

@media (max-width:380px){
  .kpi-grid,.wf-kpi-strip,.planning-kpis,.alert-kpis,.integrity-kpis,.account-kpis,.compact-kpis{grid-template-columns:minmax(0,1fr)!important}
  .toolbar,.filters,.button-row,.filter-actions,.security-actions,.integrity-actions,.save-actions,.account-actions{grid-template-columns:minmax(0,1fr)!important}
  .hoist-crane-grid{grid-template-columns:minmax(0,1fr)!important}
}

/* RC1.8: permission-aware Maintenance Alert bell replaces global employee search/refresh. */
.maintenance-alert-bell-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center}
.maintenance-alert-bell{position:relative;text-decoration:none!important;width:46px;height:42px;border:1px solid var(--line);border-radius:.6rem;background:var(--panel);color:var(--text);display:grid;place-items:center;cursor:pointer;box-shadow:0 2px 8px rgba(16,24,40,.06)}
.maintenance-alert-bell:hover,.maintenance-alert-bell:focus-visible{border-color:var(--section-accent,var(--accent));outline:none;box-shadow:0 0 0 3px rgba(22,90,159,.12)}
.maintenance-alert-bell-icon{font-size:1.35rem;line-height:1;transform-origin:50% 10%}
.maintenance-alert-bell.has-alerts .maintenance-alert-bell-icon{animation:maintenance-bell-ring 2.4s ease-in-out infinite}
.maintenance-alert-count{position:absolute;top:-7px;right:-7px;min-width:21px;height:21px;padding:0 5px;border-radius:999px;background:#b42318;color:#fff;border:2px solid var(--panel);display:grid;place-items:center;font-size:.68rem;font-weight:800;line-height:1}
.maintenance-alert-popover{position:absolute;right:0;top:calc(100% + 9px);width:245px;padding:.75rem;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:.65rem;box-shadow:0 16px 38px rgba(16,24,40,.18);opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .14s ease,transform .14s ease,visibility .14s;pointer-events:none;z-index:1000}
.maintenance-alert-popover strong{display:block;margin-bottom:.5rem}
.maintenance-alert-popover div{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.28rem 0;font-size:.82rem}
.maintenance-alert-popover b{font-variant-numeric:tabular-nums}
.maintenance-alert-bell-wrap:hover .maintenance-alert-popover,.maintenance-alert-bell-wrap:focus-within .maintenance-alert-popover{opacity:1;visibility:visible;transform:translateY(0)}
@keyframes maintenance-bell-ring{0%,72%,100%{transform:rotate(0)}76%{transform:rotate(14deg)}80%{transform:rotate(-12deg)}84%{transform:rotate(9deg)}88%{transform:rotate(-6deg)}92%{transform:rotate(0)}}
@media (prefers-reduced-motion:reduce){.maintenance-alert-bell.has-alerts .maintenance-alert-bell-icon{animation:none}}
@media (max-width:900px){.top-actions{grid-template-columns:auto 1fr auto!important}.maintenance-alert-bell-wrap{justify-self:start}.maintenance-alert-popover{left:0;right:auto}.top-actions form{grid-column:auto!important}}
@media (max-width:560px){.top-actions{grid-template-columns:auto 1fr!important}.top-actions form{grid-column:1/-1!important}.maintenance-alert-popover{width:min(245px,calc(100vw - 1.2rem))}}

/* RC1.8.8 workforce navigation pictograms */
.workforce-group .nav-group-icon,.workforce-group .nav-icon{font-size:1.05rem!important;width:28px;height:28px;border:0!important;border-radius:8px;background:rgba(45,212,191,.07);color:#cbd5e1;filter:drop-shadow(0 0 5px rgba(45,212,191,.12))}
.workforce-group .nav-group-icon{color:#5eead4;background:rgba(45,212,191,.13)}
.workforce-group .nav-group-icon:after,.workforce-group .nav-icon:after{display:none!important}
.workforce-group .nav-item.active .nav-icon{color:#5eead4;background:rgba(45,212,191,.16);box-shadow:0 0 12px rgba(45,212,191,.18)}
.workforce-group .nav-item:hover .nav-icon{color:#99f6e4;background:rgba(45,212,191,.12)}

/* 2026-08-17 UAT UX hardening: workflow-oriented navigation icons. */
.nav-item .nav-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex:0 0 30px;border:1px solid rgba(148,163,184,.28);border-radius:9px;background:rgba(15,23,42,.22);font-size:15px;line-height:1;font-weight:800;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.nav-item:hover .nav-icon{transform:translateY(-1px);border-color:rgba(45,212,191,.55)}
.nav-item.active .nav-icon{border-color:#2dd4bf;box-shadow:0 0 0 2px rgba(45,212,191,.14),0 0 16px rgba(45,212,191,.22)}
.nav-item.active{font-weight:700}

/* Transparent vector pictograms for Equipment Maintenance Planning navigation. */
.equipment-group .planning-vector-icon{width:30px;height:30px;flex:0 0 30px;display:grid;place-items:center;border:1px solid rgba(255,115,82,.38);border-radius:9px;background:rgba(255,91,53,.08);color:#ff8a6e;transition:.16s ease}
.equipment-group summary .planning-vector-icon{margin-right:.15rem;color:#ff9b82;background:rgba(255,91,53,.13)}
.equipment-group .planning-vector-icon svg{display:block;width:21px;height:21px;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.equipment-group .nav-item:hover .planning-vector-icon{transform:translateY(-1px);border-color:#ff9b82;background:rgba(255,91,53,.14);color:#ffd0c4}
.equipment-group .nav-item.active .planning-vector-icon{border-color:#ff5b35;background:#ff5b35;color:#fff;box-shadow:0 0 0 2px rgba(255,91,53,.14),0 0 16px rgba(255,91,53,.2)}
/* Employee note reminder */
.employee-note-popup{position:fixed!important;right:24px!important;bottom:24px!important;top:auto!important;left:auto!important;z-index:5000!important;width:min(370px,calc(100vw - 32px));padding:17px 18px 15px;background:#fff;border:1px solid #d8e0e8;border-radius:13px;box-shadow:0 18px 55px rgba(15,23,42,.27),0 3px 10px rgba(15,23,42,.12);animation:employeeNoteArrive .38s cubic-bezier(.2,.85,.35,1.15);color:#182537}
@keyframes employeeNoteArrive{from{opacity:0;transform:translateX(110%) scale(.94)}to{opacity:1;transform:translateX(0) scale(1)}}
.employee-note-popup-close{position:absolute;right:9px;top:7px;border:0;background:transparent;color:#778393;font-size:22px;line-height:1;cursor:pointer;padding:4px 7px;border-radius:7px}.employee-note-popup-close:hover{background:#edf1f5;color:#182537}
.employee-note-popup-heading{display:flex;align-items:center;gap:10px;padding-right:28px}.employee-note-popup-heading>span{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#fff1e8;font-size:18px}.employee-note-popup-heading>div{display:grid;gap:1px}.employee-note-popup-heading small{color:#64748b;font-size:12px}
.employee-note-popup p{margin:13px 0 8px;white-space:pre-wrap;line-height:1.45}.employee-note-popup time{color:#758295;font-size:11px}.employee-note-popup-links{display:flex;gap:18px;margin-top:13px;padding-top:11px;border-top:1px solid #e7ebef}.employee-note-popup-links button{border:0;background:transparent;padding:0;color:#087b91;font-weight:750;font-size:12px;cursor:pointer;text-decoration:none}.employee-note-popup-links button:hover{text-decoration:underline;color:#ff5b3d}
.employee-note-alert-icon{position:relative;width:38px;height:38px;display:grid;place-items:center;border:1px solid #f2a4a4;border-radius:10px;background:#fff3f3;color:#cf2424;font-size:19px;cursor:pointer;animation:employeeMessageShake 2.2s ease-in-out infinite;box-shadow:0 0 0 3px rgba(220,38,38,.08)}.employee-note-alert-icon i{position:absolute;right:4px;top:4px;width:8px;height:8px;background:#e11d48;border:2px solid #fff;border-radius:50%}
@keyframes employeeMessageShake{0%,72%,100%{transform:rotate(0)}76%{transform:rotate(-10deg)}80%{transform:rotate(9deg)}84%{transform:rotate(-7deg)}88%{transform:rotate(5deg)}92%{transform:rotate(0)}}
.annual-balance-grid input{min-width:92px;width:100%;padding:6px;border:1px solid #cbd5e1;border-radius:6px}.annual-balance-grid .dirty-row{background:#fff8e7}
.employee-notes-modal{width:min(920px,calc(100vw - 32px));max-height:88vh;overflow:auto;padding:0;border-radius:16px}
.note-modal-header{display:flex;justify-content:space-between;gap:18px;padding:20px 22px;background:linear-gradient(135deg,#eef8ff,#f5fbfa);border-bottom:1px solid #dce8ef}.note-modal-header h2{margin:3px 0}.note-modal-header p{margin:0;color:#526578}
.note-compose-card{margin:18px 22px 12px;padding:16px;background:#edf6ff;border:1px solid #cfe4f7;border-radius:12px}.note-compose-card label{display:grid;gap:7px;font-weight:700}
.note-alarm-card{margin:12px 22px;padding:16px;background:#f7f8fa;border:1px solid #dce2e8;border-radius:12px;transition:.18s ease}.note-alarm-card.enabled{background:#fff7e8;border-color:#f4c26b;box-shadow:0 0 0 3px rgba(244,194,107,.14)}
.alarm-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:20px}.alarm-toggle-row>div{display:grid;gap:3px}.alarm-toggle-row small{color:#64748b}.note-alarm-card>label{display:grid;gap:7px;margin-top:14px;max-width:360px;font-weight:700}
.switch{position:relative;width:50px;height:28px;flex:0 0 50px}.switch input{opacity:0;width:0;height:0}.switch .slider{position:absolute;inset:0;cursor:pointer;background:#aab6c2;border-radius:999px;transition:.2s}.switch .slider:before{content:"";position:absolute;width:22px;height:22px;left:3px;top:3px;background:#fff;border-radius:50%;box-shadow:0 2px 5px rgba(0,0,0,.25);transition:.2s}.switch input:checked+.slider{background:#f59e0b}.switch input:checked+.slider:before{transform:translateX(22px)}
.note-modal-actions{padding:0 22px 14px}.note-history-card{margin:0 22px 22px;border:1px solid #dce5ec;border-radius:12px;overflow:hidden}.note-history-title{display:flex;justify-content:space-between;padding:12px 14px;background:#edf9f5;color:#0f5b50}.note-text-cell{min-width:260px;white-space:pre-wrap}.note-status{display:inline-flex;padding:3px 8px;border-radius:999px;background:#e8edf2}.note-status.active{background:#fff1c7;color:#825900}.note-status.completed{background:#dff5e8;color:#17613c}.note-status.dismissed,.note-status.viewed{background:#e9edf3;color:#536170}
html[data-theme="dark"] .employee-notes-modal,html[data-theme="dark"] .employee-note-popup{background:#152236;color:#e8eef6}html[data-theme="dark"] .note-modal-header{background:linear-gradient(135deg,#172a40,#17332f)}html[data-theme="dark"] .note-compose-card{background:#172d43;border-color:#28506c}html[data-theme="dark"] .note-alarm-card{background:#1d2938;border-color:#3b4959}html[data-theme="dark"] .note-alarm-card.enabled{background:#3b2e18;border-color:#a8731c}
.password-field{position:relative;display:flex;align-items:center}.password-field .form-control{padding-right:4.5rem}.password-toggle{position:absolute;right:.35rem;border:0;background:transparent;color:#087c87;font-weight:700;font-size:.78rem;padding:.35rem;cursor:pointer}.login-help-link{display:block;text-align:center;color:#087c87;font-weight:700;text-decoration:none;margin-top:.25rem}.setup-panel{width:min(100%,34rem)}.recovery-codes{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin:1rem 0}.recovery-code-value{padding:.65rem;background:#eef7f7;border:1px solid #b8dddd;border-radius:.4rem;text-align:center;color:#083d50;font-weight:800;font-family:monospace}

/* Security & Access Control V3 */
.security-v3{max-width:1800px;margin:auto}.security-v3-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.security-v3-title h1{margin:0;color:#102a43}.security-v3-title p{margin:3px 0 0;color:#687b8c}.security-health{font-size:.78rem;color:#18794e;font-weight:800}.security-tabs{display:flex;gap:28px;border-bottom:1px solid #dce5ed;margin-bottom:12px}.security-tabs button{border:0;background:transparent;padding:10px 4px;color:#486581;font-weight:700;cursor:pointer}.security-tabs button.active,.security-tabs button:first-child{color:#1261c9;border-bottom:3px solid #1261c9}.security-v3-layout{display:grid;grid-template-columns:260px minmax(620px,1fr) 220px;gap:10px;align-items:start}.security-role-panel,.security-main-panel,.security-summary-panel{min-width:0}.security-role-panel,.security-summary-panel,.security-role-details,.security-matrix-card{background:#fff;border:1px solid #dbe4ec;border-radius:8px}.security-role-panel{padding:10px;position:sticky;top:8px}.security-panel-heading{display:flex;flex-direction:column;padding:3px 3px 9px}.security-panel-heading small{color:#8293a3}.security-search{height:34px;margin-bottom:8px}.security-role-list{display:flex;flex-direction:column;gap:3px;max-height:70vh;overflow:auto}.security-role-card{display:grid;grid-template-columns:30px 1fr;border:1px solid transparent;background:#fff;text-align:left;border-radius:6px;padding:8px;cursor:pointer;color:#243b53}.security-role-card:hover,.security-role-card.selected{background:#eaf4ff;border-color:#b8d8f7}.security-role-card span:last-child{display:flex;flex-direction:column;min-width:0}.security-role-card strong{font-size:.79rem}.security-role-card small{font-size:.67rem;color:#71869a;margin-top:2px}.role-icon{font-size:1rem}.security-role-details{padding:14px 16px;margin-bottom:10px;display:flex;justify-content:space-between;gap:15px;align-items:center}.security-role-details small{font-weight:900;color:#647d91;letter-spacing:.05em}.security-role-details h2{font-size:1.1rem;margin:4px 0}.security-role-details p{font-size:.75rem;color:#71869a;margin:0}.security-detail-metrics{display:flex;gap:8px;flex-wrap:wrap}.security-detail-metrics span{background:#f4f8fb;border:1px solid #e0e8ef;padding:7px 9px;border-radius:6px;font-size:.7rem}.security-matrix-card{overflow:hidden}.security-matrix-toolbar{padding:12px 14px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e1e8ef}.security-matrix-toolbar h3{margin:0;font-size:.95rem}.security-matrix-toolbar small{color:#71869a}.security-matrix-legend{display:flex;justify-content:flex-end;gap:15px;padding:7px 14px;background:#fafcfe;font-size:.68rem}.security-matrix-legend .allow{color:#16834b}.security-matrix-legend .deny{color:#c93636}.security-matrix-legend .inherit{color:#9a6a12}.security-module-table{max-height:68vh;overflow:auto}.security-module-row{border-top:1px solid #e7edf2}.security-module-row>header{display:grid;grid-template-columns:25px minmax(240px,1fr) 65px 70px;gap:7px;align-items:center;padding:9px 12px;background:#fbfcfe}.security-module-row>header>div{display:flex;flex-direction:column}.security-module-row>header strong{font-size:.77rem}.security-module-row>header small{font-size:.64rem;color:#7b8fa1}.module-expand{border:1px solid #d8e3ec;background:#fff;border-radius:4px;width:22px;height:22px;cursor:pointer}.module-count{font-size:.67rem;color:#567}.security-group-toggle{white-space:nowrap}.security-action-grid{display:grid;grid-template-columns:repeat(5,minmax(100px,1fr));gap:0;border-top:1px solid #e5edf3}.security-action-cell{border:0;border-right:1px solid #edf1f4;border-bottom:1px solid #edf1f4;background:#fff;min-height:64px;padding:8px;text-align:left;display:grid;grid-template-columns:18px 1fr;grid-template-rows:auto auto;cursor:pointer;color:#526777}.security-action-cell>span{grid-row:1/3;font-weight:900}.security-action-cell b{font-size:.7rem;color:#334e68}.security-action-cell small{font-size:.58rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.security-action-cell.is-on{background:#effaf4;color:#16834b}.security-action-cell.is-on b{color:#176b43}.security-action-cell.is-inherited{background:#fff9ed;color:#9a6a12}.security-action-cell.is-denied{background:#fff5f5;color:#bd3030}.security-summary-panel{padding:11px;position:sticky;top:8px}.security-summary-name{font-weight:800;padding:9px;background:#f5f8fb;border-radius:6px;margin-bottom:8px}.summary-stat{display:flex;justify-content:space-between;padding:7px 2px;font-size:.73rem}.summary-stat.allow b{color:#16834b}.summary-stat.deny b{color:#bd3030}.security-ring{--pct:0;width:112px;height:112px;margin:14px auto;border-radius:50%;background:conic-gradient(#34a853 calc(var(--pct)*1%),#e5eaf0 0);display:grid;place-items:center}.security-ring:before{content:"";width:78px;height:78px;background:#fff;border-radius:50%;grid-area:1/1}.security-ring div{grid-area:1/1;z-index:1;display:flex;flex-direction:column;text-align:center}.security-ring b{font-size:1.15rem}.security-ring small{font-size:.65rem;color:#71869a}.security-summary-panel h4{font-size:.76rem}.security-summary-panel p,.override-note{font-size:.68rem}.override-note{padding:8px;background:#f5f8fb;border-radius:6px}@media(max-width:1250px){.security-v3-layout{grid-template-columns:220px 1fr}.security-summary-panel{display:none}.security-action-grid{grid-template-columns:repeat(3,minmax(100px,1fr))}}@media(max-width:800px){.security-v3-layout{grid-template-columns:1fr}.security-role-panel{position:static}.security-role-list{max-height:220px}.security-role-details,.security-matrix-toolbar{align-items:flex-start;flex-direction:column}.security-action-grid{grid-template-columns:repeat(2,minmax(100px,1fr))}}

/* AMOC identity */
.sidebar-mobile-header .brand{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;min-height:auto}
.sidebar-mobile-header .apm-brand-logo{display:block}

.provider-worker-filters{display:grid!important;grid-template-columns:minmax(260px,1.5fr) auto auto minmax(120px,.6fr) minmax(170px,.8fr);gap:8px;align-items:end}
@media(max-width:900px){.provider-worker-filters{grid-template-columns:1fr 1fr}.provider-worker-filters .form-control{grid-column:1/-1}}


/* AMOC corporate logo integration */
.amoc-sidebar-brand{width:100%;display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:.45rem!important;min-height:auto!important}
.amoc-sidebar-logo-wrap{width:100%;max-width:238px;background:linear-gradient(135deg,#f5faff 0%,#eef9f7 100%);border:1px solid rgba(77,166,190,.32);border-radius:11px;padding:7px 9px;box-shadow:0 6px 16px rgba(0,25,54,.16)}
.amoc-sidebar-logo{display:block;width:100%;height:auto;max-height:84px;object-fit:contain}
.amoc-login-brand{display:flex;justify-content:center;align-items:center;margin:0 0 1.15rem;padding:1rem 1.1rem;border:1px solid #d4e5ef;border-radius:16px;background:linear-gradient(135deg,rgba(245,250,255,.98),rgba(237,249,247,.98));box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
.amoc-login-brand img{display:block;width:min(650px,100%);height:auto;max-height:270px;object-fit:contain}
@media(max-width:760px){.amoc-sidebar-logo-wrap{max-width:215px}.amoc-login-brand img{max-height:210px}}


/* AMOC-V1 visual identity */
.amoc-login-page{background:
    radial-gradient(circle at 16% 12%,rgba(9,105,199,.12),transparent 34%),
    radial-gradient(circle at 82% 80%,rgba(9,157,146,.10),transparent 32%),
    linear-gradient(135deg,#eef6fc 0%,#f4f9fb 47%,#eef9f6 100%);}
.amoc-login-page .login-panel{width:min(720px,94vw);padding:1.45rem 1.6rem 1.65rem;border:1px solid #d5e3ed;border-top:4px solid #0b67c6;border-radius:16px;box-shadow:0 20px 50px rgba(13,54,91,.13);background:rgba(255,255,255,.96)}
.amoc-login-page .login-panel>h1,.amoc-login-form{width:min(420px,100%);margin-left:auto;margin-right:auto}
.amoc-login-page .login-panel>h1{color:#0a3564;margin-top:.35rem}
.amoc-login-form .btn-primary{background:linear-gradient(90deg,#0d65be,#0a8f91);border-color:transparent}
.amoc-login-form .btn-primary:hover{filter:brightness(.96)}
body.dark .amoc-login-page{background:linear-gradient(135deg,#0c1728,#10243a 52%,#0f2b2d)}
body.dark .amoc-login-brand{background:linear-gradient(135deg,#eef6fc,#edf9f6);border-color:#33566d}
@media(max-width:760px){.amoc-login-page .login-panel{width:min(96vw,620px);padding:1rem}.amoc-login-brand{padding:.7rem}.amoc-login-brand img{max-height:190px}}

/* AMOC navigation performance: avoid repaint-heavy backdrop blur */
.top-bar{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:rgba(255,255,255,.98)}
body.dark .top-bar{background:var(--panel)!important}
