:root{
  --navy-0:#0A1826; --navy-1:#0F2036; --navy-2:#16304F; --navy-3:#1E3E63;
  --amber:#F2A93B; --teal:#3FCFB0; --coral:#E8543A;
  --tma:#E23B3B; --via:#3BA7E0; --warn:#F0B429;
  --ink:#EAF0F6; --ink-dim:#8FA3B8; --ink-faint:#5C7188;
}
*{box-sizing:border-box;}
body{margin:0;background:var(--navy-0);color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  min-height:100vh;}
.wrap{max-width:480px;margin:0 auto;padding:0 0 60px;}
.wrap-wide{max-width:960px;}
.wrap-hr{max-width:1100px;}

.hr-tabs{display:flex;gap:8px;margin-bottom:16px;}
.hr-tabs a{flex:1;text-align:center;text-decoration:none;padding:12px;border-radius:6px;border:1px solid var(--navy-3);color:var(--ink-dim);font-size:13px;font-weight:700;}
.hr-tabs a.is-on{background:var(--navy-2);color:var(--amber);border-color:var(--amber);}
.staff-table{width:100%;border-collapse:collapse;font-size:13px;min-width:760px;}
.staff-table th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:0.6px;color:var(--ink-faint);padding:8px 10px;border-bottom:1px solid var(--navy-3);white-space:nowrap;}
.staff-table td{padding:10px;border-bottom:1px solid var(--navy-2);vertical-align:middle;}
.staff-table .mono{font-variant-numeric:tabular-nums;white-space:nowrap;}
.hire-summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--amber);letter-spacing:0.4px;text-transform:uppercase;}
.hr-check{display:block;margin-top:6px;}
.hr-check .pill{display:inline-block;}

.board{background:var(--navy-1);border-bottom:2px solid var(--navy-3);padding:20px;}
.board-title{font-size:13px;letter-spacing:2px;text-transform:uppercase;color:var(--amber);font-weight:700;margin:0;}
.board-sub{font-size:12px;color:var(--ink-faint);margin:4px 0 0;}
.board-user{font-size:14px;color:var(--ink);margin-top:10px;}
.board-user b{color:var(--amber);}

.panel{padding:20px;}
.card{background:var(--navy-1);border:1px solid var(--navy-3);border-radius:8px;padding:20px;margin-bottom:16px;}
.card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;}
label{display:block;font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--ink-faint);margin-bottom:8px;}
input[type=text],input[type=password],select,.field{
  width:100%;background:var(--navy-2);border:1px solid var(--navy-3);
  color:var(--ink);padding:14px;border-radius:6px;font-size:16px;}
select{margin-bottom:10px;}
.field{margin-bottom:10px;}
.btnrow{display:flex;gap:10px;margin-top:16px;}
button.action{flex:1;padding:16px;border-radius:6px;border:none;font-size:15px;font-weight:700;
  letter-spacing:0.5px;cursor:pointer;}
.btn-in{background:var(--teal);color:#04342C;}
.btn-out{background:var(--amber);color:#412402;}
.btn-primary{background:var(--amber);color:#412402;width:100%;padding:16px;border:none;border-radius:6px;
  font-size:16px;font-weight:700;cursor:pointer;margin-top:10px;}
.btn-ghost{background:transparent;border:1px solid var(--navy-3);color:var(--ink-dim);border-radius:6px;
  padding:8px 12px;font-size:13px;cursor:pointer;font-weight:600;}
.btn-danger{background:transparent;border:1px solid var(--coral);color:var(--coral);width:100%;
  padding:14px;border-radius:6px;font-size:15px;font-weight:700;cursor:pointer;margin-top:10px;}
.btn-danger-sm{background:none;border:1px solid var(--navy-3);color:var(--coral);padding:6px 12px;
  border-radius:6px;font-size:12px;cursor:pointer;}
.btn-chip{background:var(--navy-2);border:1px solid var(--navy-3);color:var(--ink-dim);border-radius:6px;
  padding:8px 12px;font-size:13px;cursor:pointer;font-weight:600;}
button.action:disabled,.btn-primary:disabled{opacity:0.5;cursor:not-allowed;}

.status-msg{margin-top:16px;padding:14px;border-radius:6px;font-size:14px;line-height:1.5;display:none;}
.status-ok{background:rgba(63,207,176,0.12);border:1px solid var(--teal);color:var(--teal);}
.status-flag{background:rgba(232,84,58,0.12);border:1px solid var(--coral);color:var(--coral);}
.status-warn{background:rgba(240,180,41,0.12);border:1px solid var(--warn);color:var(--warn);}
.status-wait{background:var(--navy-2);border:1px solid var(--navy-3);color:var(--ink-dim);}
.error{color:var(--coral);font-size:13px;margin-top:10px;}

.row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--navy-2);font-size:14px;gap:10px;}
.row:last-child{border-bottom:none;}
.row-name{font-weight:700;color:var(--ink);}
.row-meta{color:var(--ink-faint);font-size:12px;margin-top:2px;}
.pill{font-size:10px;padding:4px 9px;border-radius:10px;letter-spacing:0.5px;text-transform:uppercase;font-weight:700;white-space:nowrap;}
.pill-ok{background:rgba(63,207,176,0.15);color:var(--teal);}
.pill-flag{background:rgba(232,84,58,0.15);color:var(--coral);}
.pill-warn{background:rgba(240,180,41,0.15);color:var(--warn);}
.pill-mute{background:var(--navy-2);color:var(--ink-faint);}
a.site-badge{text-decoration:none;}
.pill-stack{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;}
.empty{color:var(--ink-faint);font-size:14px;padding:24px 0;text-align:center;}

.stat-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:16px;}
.stat-grid-6{grid-template-columns:repeat(3,1fr);}
@media (min-width:720px){
  .stat-grid-6{grid-template-columns:repeat(6,1fr);}
}
.stat{background:var(--navy-1);border:1px solid var(--navy-3);border-radius:8px;padding:14px 8px;text-align:center;}
.stat-num{font-size:22px;color:var(--amber);font-weight:700;}
.stat-label{font-size:10px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:0.5px;margin-top:4px;}
.tma-ink{color:var(--tma);}
.via-ink{color:var(--via);}

.topnav{display:flex;justify-content:space-between;align-items:center;}
.logout{color:var(--ink-faint);font-size:12px;text-decoration:none;}
.note{font-size:12px;color:var(--ink-faint);line-height:1.6;margin-top:12px;}

.site-badge{display:inline-block;font-size:10px;font-weight:800;letter-spacing:1px;padding:4px 8px;border-radius:4px;text-transform:uppercase;}
.site-tma,.site-badge.site-tma{background:rgba(226,59,59,0.18);color:var(--tma);}
.site-via,.site-badge.site-via{background:rgba(59,167,224,0.18);color:var(--via);}

.duty-head{display:flex;align-items:center;gap:10px;margin-bottom:6px;}

.weeknav{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;gap:8px;}
.weeknav a{color:var(--amber);text-decoration:none;font-size:13px;}
.weeknav span{color:var(--ink-dim);font-size:13px;text-align:center;}
.legend-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:12px;}
.legend-count{color:var(--ink-faint);font-size:12px;margin-right:8px;}
.copy-week{margin-left:auto;}
.scrollwrap{overflow-x:auto;}

.roster-table{width:100%;border-collapse:collapse;font-size:12px;min-width:640px;}
.roster-table th,.roster-table td{border:1px solid var(--navy-3);padding:6px 4px;text-align:center;vertical-align:top;}
.roster-table th{background:var(--navy-2);color:var(--ink-dim);font-weight:600;font-size:10px;text-transform:uppercase;}
.roster-table td.name-col,th.name-col{text-align:left;padding-left:8px;white-space:nowrap;position:sticky;left:0;background:var(--navy-1);z-index:1;}
.roster-table th.name-col{background:var(--navy-2);z-index:2;}
.roster-table th.is-today,.roster-table td.is-today{background:rgba(242,169,59,0.06);}
.shift-cell{display:block;width:100%;border:none;border-radius:4px;padding:6px 4px;font-size:11px;cursor:pointer;line-height:1.25;}
.shift-cell.site-tma{background:rgba(226,59,59,0.12);color:var(--tma);}
.shift-cell.site-via{background:rgba(59,167,224,0.12);color:var(--via);}
.shift-cell .t{font-weight:700;display:block;}
.shift-cell .t-end{display:block;opacity:0.85;}
.site-mini{display:block;font-size:9px;font-weight:800;letter-spacing:0.6px;}
.empty-cell{color:var(--ink-faint);font-size:16px;cursor:pointer;background:transparent;border:none;width:100%;padding:10px 0;}
.timerow{display:flex;gap:10px;}
.timerow .field{flex:1;}
.slot-line{display:block;font-size:10px;font-weight:700;letter-spacing:0.2px;}
.slot-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px;}
.slot-option{display:block;cursor:pointer;margin:0;}
.slot-option input{position:absolute;opacity:0;pointer-events:none;}
.slot-option span{display:block;border:1px solid var(--navy-3);border-radius:8px;padding:10px 6px;background:var(--navy-2);text-align:center;}
.slot-option span b{display:block;font-size:13px;}
.slot-option span small{display:block;color:var(--ink-faint);font-size:10px;text-transform:none;letter-spacing:0;font-weight:400;margin-top:2px;}
.slot-option input:checked + span{border-color:var(--amber);background:rgba(242,169,59,0.14);color:var(--amber);}
.site-picker{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;}
.site-option{display:block;cursor:pointer;margin:0;}
.site-option input{position:absolute;opacity:0;pointer-events:none;}
.site-option span{display:block;border:1px solid var(--navy-3);border-radius:8px;padding:12px;background:var(--navy-2);}
.site-option span b{display:block;font-size:14px;margin-bottom:2px;}
.site-option span small{display:block;color:var(--ink-faint);font-size:11px;text-transform:none;letter-spacing:0;font-weight:400;}
.site-option input:checked + span{border-color:currentColor;}
.site-option.site-tma input:checked + span{border-color:var(--tma);background:rgba(226,59,59,0.12);color:var(--tma);}
.site-option.site-via input:checked + span{border-color:var(--via);background:rgba(59,167,224,0.12);color:var(--via);}
[hidden]{display:none !important;}
input[type=date],input[type=time],input[type=month],select{color-scheme:dark;}

/* HR portal */
.hr-body{background:var(--navy-0);}
.hr-app{display:grid;grid-template-columns:240px 1fr;min-height:100vh;}
.hr-sidebar{
  background:linear-gradient(180deg,var(--navy-1),#0c1a2c);
  border-right:1px solid var(--navy-3);
  padding:22px 16px;
  display:flex;flex-direction:column;gap:22px;
  position:sticky;top:0;height:100vh;
}
.hr-brand-kicker{margin:0;font-size:11px;letter-spacing:1.8px;text-transform:uppercase;color:var(--ink-faint);font-weight:700;}
.hr-brand-name{margin:6px 0 0;font-size:20px;font-weight:800;color:var(--ink);letter-spacing:0.2px;}
.hr-nav{display:flex;flex-direction:column;gap:6px;flex:1;}
.hr-nav a{
  color:var(--ink-dim);text-decoration:none;padding:11px 12px;border-radius:8px;
  font-size:14px;font-weight:600;border:1px solid transparent;
}
.hr-nav a:hover{background:var(--navy-2);color:var(--ink);}
.hr-nav a.is-on{background:rgba(242,169,59,0.12);border-color:rgba(242,169,59,0.35);color:var(--amber);}
.hr-side-foot{border-top:1px solid var(--navy-3);padding-top:16px;}
.hr-user{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
.hr-user b{display:block;font-size:13px;}
.hr-user small{display:block;color:var(--ink-faint);font-size:11px;}
.hr-signout{color:var(--ink-faint);font-size:12px;text-decoration:none;}
.hr-signout:hover{color:var(--amber);}
.hr-avatar{
  width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  background:var(--navy-2);border:1px solid var(--navy-3);font-size:11px;font-weight:800;color:var(--amber);flex-shrink:0;
}
.hr-main{padding:28px 32px 48px;max-width:1180px;}
.hr-top{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;flex-wrap:wrap;}
.hr-top h1{margin:0;font-size:26px;letter-spacing:-0.3px;}
.hr-top p{margin:6px 0 0;color:var(--ink-faint);font-size:13px;}
.hr-export{display:flex;align-items:flex-end;gap:8px;}
.hr-export label{margin:0;font-size:10px;}
.hr-export input[type=month],
.hr-export input[type=date],
.hr-export select{
  background:var(--navy-2);border:1px solid var(--navy-3);color:var(--ink);
  padding:9px 10px;border-radius:6px;font-size:13px;
}
.hr-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px;}
.hr-kpis-2{grid-template-columns:1fr 1fr;}
.hr-kpi{
  display:block;text-decoration:none;color:inherit;
  background:var(--navy-1);border:1px solid var(--navy-3);border-radius:10px;padding:16px 16px 14px;
}
a.hr-kpi:hover{border-color:var(--amber);}
.hr-kpi-label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:0.7px;color:var(--ink-faint);font-weight:700;}
.hr-kpi-num{display:block;margin-top:8px;font-size:28px;font-weight:800;color:var(--ink);letter-spacing:-0.5px;}
.hr-kpi-ok{color:var(--teal);}
.hr-kpi-warn{color:var(--warn);}
.hr-kpi-alert{color:var(--coral);}
.hr-split{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;}
.hr-panel{background:var(--navy-1);border:1px solid var(--navy-3);border-radius:12px;padding:18px 18px 16px;margin-bottom:14px;}
.hr-panel h2{margin:0;font-size:15px;}
.hr-panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;}
.hr-duty-list{list-style:none;margin:0;padding:0;}
.hr-duty-item{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--navy-2);}
.hr-duty-item:last-child{border-bottom:none;}
.hr-duty-body{flex:1;min-width:0;}
.hr-duty-name{font-weight:700;font-size:14px;}
.hr-duty-meta{color:var(--ink-faint);font-size:12px;margin-top:2px;}
.hr-duty-pills{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end;}
.hr-empty{color:var(--ink-faint);font-size:13px;margin:8px 0 0;}
.hr-quick{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px;}
.hr-quick a{
  text-decoration:none;color:var(--ink);background:var(--navy-1);border:1px solid var(--navy-3);
  border-radius:8px;padding:10px 14px;font-size:13px;font-weight:700;
}
.hr-quick a:hover{border-color:var(--amber);color:var(--amber);}
.hr-help h2{margin-bottom:12px;}
.hr-help-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;}
.hr-help-grid p{margin:0;font-size:13px;color:var(--ink-dim);line-height:1.55;}
.hr-help-grid b{color:var(--ink);}
.hr-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;}
.hr-filters{display:flex;flex-wrap:wrap;gap:6px;flex:1;}
.hr-filters a,
.hr-filters button{
  text-decoration:none;color:var(--ink-dim);border:1px solid var(--navy-3);border-radius:999px;
  padding:7px 12px;font-size:12px;font-weight:700;background:transparent;cursor:pointer;
}
.hr-filters a.is-on,.hr-filters a:hover,
.hr-filters button.is-on,.hr-filters button:hover{border-color:var(--amber);color:var(--amber);background:rgba(242,169,59,0.1);}
.hr-search{
  width:240px;max-width:100%;background:var(--navy-2);border:1px solid var(--navy-3);color:var(--ink);
  padding:10px 12px;border-radius:8px;font-size:14px;margin:0;
}
.hr-inline-btn{width:auto;padding:10px 16px;margin:0;display:inline-block;text-decoration:none;text-align:center;font-size:13px;}
.hr-table thead th{position:sticky;top:0;background:var(--navy-1);z-index:1;}
.hr-table tbody tr:hover td{background:rgba(255,255,255,0.03);}
.hr-person{display:flex;align-items:center;gap:10px;}
.hr-actions-cell{text-align:right;white-space:nowrap;}
.hr-menu{position:relative;display:inline-block;}
.hr-menu summary{
  list-style:none;cursor:pointer;border:1px solid var(--navy-3);border-radius:6px;
  padding:6px 10px;font-size:12px;font-weight:700;color:var(--ink-dim);
}
.hr-menu summary::-webkit-details-marker{display:none;}
.hr-menu[open] summary{border-color:var(--amber);color:var(--amber);}
.hr-menu-panel{
  position:absolute;right:0;top:calc(100% + 4px);z-index:5;min-width:170px;
  background:var(--navy-2);border:1px solid var(--navy-3);border-radius:8px;padding:6px;box-shadow:0 12px 30px rgba(0,0,0,0.35);
}
.hr-menu-panel button{
  display:block;width:100%;text-align:left;background:none;border:none;color:var(--ink);
  padding:9px 10px;border-radius:6px;font-size:13px;cursor:pointer;font-weight:600;
}
.hr-menu-panel button:hover{background:var(--navy-3);}
.hr-menu-panel button.is-danger{color:var(--coral);}
.hr-lead{margin:0 0 18px;color:var(--ink-dim);font-size:14px;line-height:1.55;max-width:640px;}
.hr-form fieldset{border:1px solid var(--navy-3);border-radius:10px;padding:16px;margin:0 0 14px;}
.hr-form legend{padding:0 8px;color:var(--amber);font-size:11px;font-weight:800;letter-spacing:0.8px;text-transform:uppercase;}
.hr-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px;}
.hr-form label{margin:0;text-transform:none;letter-spacing:0;font-size:12px;color:var(--ink-dim);font-weight:700;}
.hr-form input,.hr-form select{
  display:block;width:100%;margin-top:6px;background:var(--navy-2);border:1px solid var(--navy-3);
  color:var(--ink);padding:12px;border-radius:6px;font-size:15px;
}
.hr-form-actions{display:flex;gap:10px;align-items:center;}
.hr-form-actions .btn-primary{width:auto;margin:0;padding:12px 22px;}
.hr-form-actions .btn-ghost{text-decoration:none;}
.hr-app .status-msg{margin:0 0 16px;}
@media (max-width:960px){
  .hr-app{grid-template-columns:1fr;}
  .hr-sidebar{position:static;height:auto;border-right:none;border-bottom:1px solid var(--navy-3);}
  .hr-nav{flex-direction:row;overflow-x:auto;flex:none;}
  .hr-nav a{white-space:nowrap;}
  .hr-side-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:none;padding-top:0;}
  .hr-side-foot .hr-user{margin:0;}
  .hr-main{padding:18px 16px 40px;}
  .hr-kpis,.hr-split,.hr-help-grid,.hr-form-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:640px){
  .hr-kpis,.hr-kpis-2{grid-template-columns:1fr 1fr;}
  .hr-split,.hr-help-grid,.hr-form-grid{grid-template-columns:1fr;}
  .hr-search{width:100%;}
}

.hr-export{display:flex;align-items:center;gap:8px;}
.hr-export .btn-ghost{text-decoration:none;display:inline-block;}

.shift-modal{
  position:fixed;inset:0;z-index:40;background:rgba(4,12,22,0.72);
  display:flex;align-items:flex-end;justify-content:center;padding:16px;
}
.shift-modal[hidden]{display:none !important;}
.shift-modal-card{
  background:var(--navy-1);border:1px solid var(--navy-3);border-radius:16px;
  width:100%;max-width:520px;max-height:92vh;overflow:auto;padding:18px 18px 22px;
  box-shadow:0 24px 60px rgba(0,0,0,0.45);
}
.auto-modal-card{max-width:760px;}
.auto-site-grid{display:grid;grid-template-columns:1fr;gap:16px;margin:14px 0;}
.auto-staff-wrap{
  max-height:280px;overflow:auto;border:1px solid var(--navy-3);border-radius:10px;margin-top:10px;
}
.auto-staff-table{width:100%;border-collapse:collapse;font-size:13px;}
.auto-staff-table th,.auto-staff-table td{padding:8px 10px;border-bottom:1px solid var(--navy-3);text-align:center;}
.auto-staff-table th:first-child,.auto-staff-table td:first-child{text-align:left;position:sticky;left:0;background:var(--navy-1);}
.auto-staff-table thead th{position:sticky;top:0;background:var(--navy-2);z-index:1;font-size:11px;text-transform:uppercase;letter-spacing:0.4px;color:var(--ink-faint);}
@media (min-width:720px){
  .shift-modal{align-items:center;}
  .auto-site-grid{grid-template-columns:1fr 1fr;}
}

.host-body{background:var(--navy-0);min-height:100vh;}
.host-app{max-width:440px;margin:0 auto;padding:18px 18px 48px;}
.host-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;}
.host-kicker{margin:0;font-size:11px;letter-spacing:1.6px;text-transform:uppercase;color:var(--ink-faint);font-weight:700;}
.host-hello{margin:4px 0 0;font-size:20px;font-weight:800;}
.host-top-links{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end;}
.host-top-links a{color:var(--ink-faint);font-size:12px;text-decoration:none;font-weight:600;}
.host-top-links a:hover{color:var(--amber);}
.host-clock{margin:18px 0 0;font-size:52px;font-weight:800;letter-spacing:-1.5px;line-height:1;font-variant-numeric:tabular-nums;}
.host-date{margin:6px 0 4px;color:var(--ink-faint);font-size:14px;}
.host-tz{margin:0 0 18px;color:var(--ink-faint);font-size:11px;letter-spacing:0.4px;text-transform:uppercase;font-weight:700;}
.host-card{
  background:var(--navy-1);border:1px solid var(--navy-3);border-radius:14px;padding:16px 16px 18px;margin-bottom:14px;
}
.host-card-tma{border-color:rgba(226,59,59,0.45);}
.host-card-via{border-color:rgba(59,167,224,0.45);}
.host-label{margin:0 0 10px;font-size:11px;letter-spacing:0.8px;text-transform:uppercase;color:var(--ink-faint);font-weight:800;}
.host-duty{display:flex;align-items:flex-start;gap:12px;}
.host-slots{margin:0;font-size:16px;font-weight:800;line-height:1.35;}
.host-place{margin:4px 0 0;color:var(--ink-dim);font-size:13px;line-height:1.45;}
.host-status-line{color:var(--ink-dim);font-size:14px;margin-bottom:14px;}
.host-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px;}
.host-btn{
  border:none;border-radius:12px;padding:18px 10px;font-size:16px;font-weight:800;cursor:pointer;opacity:0.72;
}
.host-btn.is-focus{opacity:1;box-shadow:0 0 0 2px rgba(242,169,59,0.35);}
.host-btn:disabled{opacity:0.45;cursor:not-allowed;}
.host-btn-in{background:var(--teal);color:#04342C;}
.host-btn-out{background:var(--amber);color:#412402;}
.host-actions .host-btn{font-size:14px;padding:14px 10px;}
.host-slot-list{display:flex;flex-direction:column;gap:8px;}
.host-slot-row{
  display:flex;justify-content:space-between;align-items:flex-start;gap:10px;
  padding:10px 12px;border:1px solid var(--navy-3);border-radius:10px;background:var(--navy-2);
}
.host-slot-row.is-current{border-color:rgba(242,169,59,0.55);}
.host-slot-row.is-next{border-color:rgba(56,189,168,0.55);}
.host-slot-row.is-done{opacity:0.72;}
.host-slot-row.is-missed{border-color:rgba(226,59,59,0.45);opacity:0.9;}
.host-slot-row.is-missed .host-slot-meta em{color:#E23B3B;}
.host-slot-row.is-missed .host-slot-punch{color:#E23B3B;}
.host-slot-meta{display:flex;flex-direction:column;gap:2px;}
.host-slot-meta b{font-size:14px;}
.host-slot-meta span{font-size:11px;color:var(--ink-faint);}
.host-slot-meta em{font-style:normal;font-size:10px;font-weight:700;letter-spacing:0.4px;text-transform:uppercase;color:var(--amber);}
.host-slot-punch{font-size:12px;color:var(--ink-faint);text-align:right;line-height:1.35;}
.host-app .status-msg{margin-top:12px;}
.host-week{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;}
.host-day{
  background:var(--navy-2);border:1px solid var(--navy-3);border-radius:8px;padding:8px 4px 7px;text-align:center;
}
.host-day span{display:block;font-size:9px;letter-spacing:0.4px;text-transform:uppercase;color:var(--ink-faint);font-weight:700;}
.host-day b{display:block;font-size:16px;margin:2px 0 4px;}
.host-day em{display:block;font-style:normal;font-size:10px;font-weight:800;}
.host-day small{display:block;font-size:9px;color:var(--ink-dim);line-height:1.2;}
.host-day.is-today{border-color:var(--amber);}
.host-day.site-tma em{color:var(--tma);}
.host-day.site-via em{color:var(--via);}
.host-off{color:var(--ink-faint) !important;}
.host-note{font-size:12px;color:var(--ink-faint);line-height:1.55;margin:4px 2px 0;}

/* Roster absences / leave */
.day-mode-picker{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;}
.day-mode-option{display:block;cursor:pointer;margin:0;}
.day-mode-option input{position:absolute;opacity:0;pointer-events:none;}
.day-mode-option span{display:block;border:1px solid var(--navy-3);border-radius:8px;padding:12px;background:var(--navy-2);}
.day-mode-option span b{display:block;font-size:14px;margin-bottom:2px;}
.day-mode-option span small{display:block;color:var(--ink-faint);font-size:11px;text-transform:none;letter-spacing:0;font-weight:400;}
.day-mode-option input:checked + span{border-color:var(--amber);background:rgba(242,169,59,0.14);color:var(--amber);}
.absence-picker{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px;}
.absence-option{display:block;cursor:pointer;margin:0;}
.absence-option input{position:absolute;opacity:0;pointer-events:none;}
.absence-option span{display:block;border:1px solid var(--navy-3);border-radius:8px;padding:10px 8px;background:var(--navy-2);text-align:center;}
.absence-option span b{display:block;font-size:12px;}
.absence-option span small{display:block;color:var(--ink-faint);font-size:10px;margin-top:2px;text-transform:none;letter-spacing:0;font-weight:400;}
.absence-option input:checked + span{border-color:currentColor;}
.abs-badge{display:inline-block;font-size:10px;font-weight:800;letter-spacing:0.4px;padding:4px 8px;border-radius:4px;text-transform:uppercase;}
.lt-slate,.abs-badge.lt-slate,.shift-cell.lt-slate,.host-day.lt-slate em{color:#9BB0C4;}
.lt-slate.abs-badge,.shift-cell.lt-slate{background:rgba(155,176,196,0.14);}
.lt-blue,.abs-badge.lt-blue,.shift-cell.lt-blue,.host-day.lt-blue em{color:#6DB3F2;}
.lt-blue.abs-badge,.shift-cell.lt-blue{background:rgba(109,179,242,0.14);}
.lt-orange,.abs-badge.lt-orange,.shift-cell.lt-orange,.host-day.lt-orange em{color:#E8A05A;}
.lt-orange.abs-badge,.shift-cell.lt-orange{background:rgba(232,160,90,0.16);}
.lt-purple,.abs-badge.lt-purple,.shift-cell.lt-purple,.host-day.lt-purple em{color:#8B7CF6;}
.lt-purple.abs-badge,.shift-cell.lt-purple{background:rgba(139,124,246,0.16);}
.lt-teal,.abs-badge.lt-teal,.shift-cell.lt-teal,.host-day.lt-teal em{color:#3FCFB0;}
.lt-teal.abs-badge,.shift-cell.lt-teal{background:rgba(63,207,176,0.14);}
.lt-amber,.abs-badge.lt-amber,.shift-cell.lt-amber,.host-day.lt-amber em{color:#C9A06A;}
.lt-amber.abs-badge,.shift-cell.lt-amber{background:rgba(201,160,106,0.16);}
.lt-coral,.abs-badge.lt-coral,.shift-cell.lt-coral,.host-day.lt-coral em{color:#E8543A;}
.lt-coral.abs-badge,.shift-cell.lt-coral{background:rgba(232,84,58,0.14);}
.shift-cell.abs-cell{cursor:pointer;}
.absence-option.lt-slate input:checked + span{border-color:#9BB0C4;color:#9BB0C4;background:rgba(155,176,196,0.14);}
.absence-option.lt-blue input:checked + span{border-color:#6DB3F2;color:#6DB3F2;background:rgba(109,179,242,0.14);}
.absence-option.lt-orange input:checked + span{border-color:#E8A05A;color:#E8A05A;background:rgba(232,160,90,0.16);}
.absence-option.lt-purple input:checked + span{border-color:#8B7CF6;color:#8B7CF6;background:rgba(139,124,246,0.16);}
.absence-option.lt-teal input:checked + span{border-color:#3FCFB0;color:#3FCFB0;background:rgba(63,207,176,0.14);}
.absence-option.lt-amber input:checked + span{border-color:#C9A06A;color:#C9A06A;background:rgba(201,160,106,0.16);}
.absence-option.lt-coral input:checked + span{border-color:#E8543A;color:#E8543A;background:rgba(232,84,58,0.14);}
.host-card-off{border-color:rgba(155,176,196,0.45);}
.host-day em{font-style:normal;font-weight:800;}
.leave-edit-row{margin:0;}
.leave-edit-row .hr-form-grid label{font-size:11px;}
.leave-edit-row input,.leave-edit-row select{font-size:13px;padding:8px 10px;}
.admin-pw-panel{min-width:220px;padding:10px;}
.admin-pw-panel label{display:block;margin:0 0 8px;font-size:11px;color:var(--ink-dim);font-weight:700;text-transform:none;letter-spacing:0;}
.admin-pw-panel input{
  display:block;width:100%;margin-top:4px;background:var(--navy-1);border:1px solid var(--navy-3);
  color:var(--ink);padding:10px;border-radius:6px;font-size:14px;
}

.login-body{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px;}
.login-card{width:100%;max-width:420px;background:var(--navy-1);border:1px solid var(--navy-3);border-radius:16px;padding:28px 24px 24px;}
.login-kicker{margin:0;font-size:11px;letter-spacing:1.8px;text-transform:uppercase;color:var(--amber);font-weight:800;}
.login-title{margin:8px 0 6px;font-size:26px;font-weight:800;}
.login-sub{margin:0 0 22px;color:var(--ink-faint);font-size:14px;line-height:1.5;}
.login-card label{margin-top:12px;}
.login-card .btn-primary{margin-top:18px;}
