/* ========================================================================
   Arkos AttendPro — Phase 5C Enterprise Design System
   Preserves the Phase 5B component contracts while replacing the visual
   language with a calmer, corporate workforce-product interface.
   ======================================================================== */
:root {
  --brand: var(--company-accent, #2563eb);
  --brand-strong: #1d4ed8;
  --brand-deep: #173b75;
  --brand-soft: #eef4ff;
  --navy-950: #07111f;
  --navy-900: #0b172a;
  --navy-850: #0f1d33;
  --navy-800: #14243d;
  --slate-950: #0f172a;
  --slate-900: #172033;
  --slate-800: #273449;
  --slate-700: #344054;
  --slate-600: #475467;
  --slate-500: #667085;
  --slate-400: #98a2b3;
  --slate-300: #cbd2dc;
  --slate-200: #e2e7ee;
  --slate-150: #e9edf3;
  --slate-100: #f1f4f8;
  --slate-50: #f7f9fc;
  --surface: #ffffff;
  --surface-raised: #ffffff;
  --surface-subtle: #f8fafc;
  --bg: #f4f6f9;
  --border: #e2e7ee;
  --border-strong: #cfd7e3;
  --text: #172033;
  --muted: #667085;
  --faint: #98a2b3;
  --success: #087a55;
  --success-soft: #e9f8f1;
  --warning: #a15c07;
  --warning-soft: #fff6e8;
  --danger: #b42318;
  --danger-soft: #fff0ee;
  --info: #175cd3;
  --info-soft: #eef4ff;
  --radius-xs: 6px;
  --radius-sm: 8px;
  --radius: 12px;
  --radius-lg: 16px;
  --shadow-xs: 0 1px 2px rgba(16, 24, 40, .05);
  --shadow-sm: 0 2px 8px rgba(16, 24, 40, .06);
  --shadow-md: 0 10px 28px rgba(16, 24, 40, .09);
  --shadow-lg: 0 18px 48px rgba(7, 17, 31, .16);
  --sidebar-w: 272px;
  --sidebar-collapsed-w: 82px;
  --topbar-h: 72px;
  --ease: cubic-bezier(.2,.75,.25,1);
}

html { min-height: 100%; scroll-behavior: smooth; }
body {
  min-height: 100%;
  background: var(--bg);
  color: var(--text);
  font-family: Inter, "Segoe UI Variable", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 14px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
button, input, select, textarea { font: inherit; }
a { transition: color .16s ease, background-color .16s ease, border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
::selection { background: color-mix(in srgb, var(--brand) 22%, white); color: var(--slate-950); }
:focus-visible { outline: 3px solid color-mix(in srgb, var(--brand) 24%, transparent); outline-offset: 2px; }
[hidden] { display: none !important; }

/* Shell ------------------------------------------------------------------ */
.app-shell { min-height: 100vh; background: var(--bg); }
.sidebar {
  width: var(--sidebar-w);
  background: linear-gradient(180deg, var(--navy-900) 0%, var(--navy-950) 100%);
  border-right: 0;
  box-shadow: 8px 0 28px rgba(7, 17, 31, .10);
  color: #fff;
  overflow: visible;
  transition: width .22s var(--ease), transform .22s var(--ease);
}
.sidebar-brand {
  height: var(--topbar-h);
  padding: 0 16px 0 18px;
  border-bottom: 1px solid rgba(255,255,255,.08);
  gap: 8px;
}
.brand-link { display: flex; align-items: center; min-width: 0; flex: 1; gap: 12px; color: #fff; }
.brand-link:hover { color: #fff; }
.brand-mark {
  width: 40px; height: 40px; flex: 0 0 40px;
  display: grid; place-items: center;
  border-radius: 12px;
  background: linear-gradient(145deg, color-mix(in srgb, var(--brand) 84%, white), var(--brand-strong));
  color: #fff; font-size: 12px; font-weight: 850; letter-spacing: -.02em;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.28), 0 8px 20px rgba(0,0,0,.22);
}
.brand-logo-wrap { background: #fff; padding: 5px; }
.brand-logo { max-width: 100%; max-height: 100%; object-fit: contain; }
.brand-copy { display: flex; flex-direction: column; min-width: 0; }
.brand-copy strong { color: #fff; font-size: 15px; font-weight: 760; letter-spacing: -.015em; white-space: nowrap; }
.brand-copy small { color: rgba(226,232,240,.64); font-size: 10.5px; margin-top: 1px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-collapse {
  width: 30px; height: 30px; display: grid; place-items: center; flex: 0 0 auto;
  border: 1px solid rgba(255,255,255,.10); border-radius: 8px;
  background: rgba(255,255,255,.05); color: rgba(255,255,255,.72); cursor: pointer;
}
.sidebar-collapse:hover { background: rgba(255,255,255,.10); color: #fff; }
.sidebar-collapse .icon { width: 16px; height: 16px; transition: transform .22s var(--ease); }
.nav-scroll { padding: 16px 12px 22px; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.15) transparent; }
.nav-section-title {
  padding: 16px 10px 7px;
  color: rgba(203,213,225,.50);
  font-size: 9.5px; line-height: 1; font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
  white-space: nowrap; overflow: hidden;
}
.nav-section-title:first-child { padding-top: 5px; }
.nav-link {
  position: relative;
  min-height: 42px;
  margin: 2px 0;
  padding: 9px 10px;
  gap: 11px;
  border-radius: 9px;
  color: rgba(226,232,240,.78);
  font-size: 13.25px; font-weight: 590;
}
.nav-link::after {
  content: ""; position: absolute; right: -12px; top: 8px; bottom: 8px; width: 3px;
  border-radius: 3px 0 0 3px; background: transparent;
}
.nav-link:hover { background: rgba(255,255,255,.07); color: #fff; transform: translateX(1px); }
.nav-link.active {
  background: linear-gradient(90deg, color-mix(in srgb, var(--brand) 30%, transparent), rgba(255,255,255,.06));
  color: #fff;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.055);
}
.nav-link.active::after { background: color-mix(in srgb, var(--brand) 75%, white); }
.nav-icon { width: 22px; height: 22px; display: grid; place-items: center; flex: 0 0 22px; color: rgba(203,213,225,.72); }
.nav-link:hover .nav-icon, .nav-link.active .nav-icon { color: #fff; }
.nav-icon .icon { width: 18px; height: 18px; stroke-width: 1.85; }
.nav-label { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nav-sub { margin-left: 0; padding-left: 43px; min-height: 34px; font-size: 12.25px; color: rgba(203,213,225,.60); }
.nav-sub-dot { width: 4px; height: 4px; border-radius: 50%; background: rgba(203,213,225,.36); position: absolute; left: 27px; }
.nav-sub.active .nav-sub-dot, .nav-sub:hover .nav-sub-dot { background: #fff; }
.sidebar-footer { padding: 12px; border-top: 1px solid rgba(255,255,255,.08); color: #fff; }
.sidebar-user { position: relative; display: grid; grid-template-columns: 36px minmax(0,1fr) 30px; align-items: center; gap: 10px; padding: 9px; border-radius: 10px; background: rgba(255,255,255,.055); }
.user-avatar { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; background: color-mix(in srgb, var(--brand) 22%, #fff); color: var(--brand-deep); font-weight: 800; font-size: 12px; flex: 0 0 auto; }
.sidebar .user-avatar { background: rgba(255,255,255,.12); color: #fff; }
.sidebar-user-copy { display: flex; flex-direction: column; min-width: 0; }
.sidebar-user-copy strong { color: #fff; font-size: 11.75px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sidebar-user-copy small { color: rgba(203,213,225,.58); font-size: 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sidebar-user-trigger { width: 28px; height: 28px; display: grid; place-items: center; border: 0; background: transparent; color: rgba(255,255,255,.65); cursor: pointer; border-radius: 7px; }
.sidebar-user-trigger:hover { color: #fff; background: rgba(255,255,255,.08); }
.sidebar-user-menu .menu-panel { left: 0; right: 0; width: auto; }
.menu-panel-up { bottom: calc(100% + 8px); top: auto !important; }

.main { margin-left: var(--sidebar-w); min-height: 100vh; transition: margin-left .22s var(--ease); }
.topbar {
  min-height: var(--topbar-h); height: var(--topbar-h);
  padding: 0 28px;
  background: rgba(255,255,255,.94);
  border-bottom: 1px solid var(--border);
  box-shadow: 0 1px 0 rgba(16,24,40,.02);
  backdrop-filter: blur(12px);
}
.topbar-left { display: flex; align-items: center; min-width: 0; gap: 13px; }
.topbar-title-wrap { display: flex; flex-direction: column; min-width: 0; }
.topbar .page-title { font-size: 15px; font-weight: 750; line-height: 1.15; color: var(--slate-900); }
.topbar-context { margin-top: 3px; font-size: 10.5px; color: var(--slate-400); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hamburger { width: 38px; height: 38px; border-radius: 9px; color: var(--slate-700); }
.hamburger:hover { background: var(--slate-100); }
.topbar-account-actions { display: flex; align-items: center; gap: 9px; }
.company-clock { display: flex; align-items: center; gap: 8px; padding: 7px 11px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-subtle); color: var(--slate-500); }
.company-clock .clock-icon { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 8px; background: #fff; border: 1px solid var(--border); color: var(--brand); }
.company-clock > span:last-child { display: flex; flex-direction: column; }
.company-clock strong { color: var(--slate-800); font-size: 11.5px; line-height: 1.1; }
.company-clock small { font-size: 8.5px; max-width: 125px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 2px; }
.topbar-icon-action { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--border); border-radius: 9px; color: var(--slate-600); background: #fff; }
.topbar-icon-action:hover { color: var(--brand); border-color: color-mix(in srgb, var(--brand) 28%, var(--border)); background: var(--brand-soft); transform: translateY(-1px); }
.topbar-create { height: 38px; }
.account-menu { position: relative; }
.account-trigger { display: flex; align-items: center; gap: 9px; min-height: 42px; padding: 4px 7px 4px 4px; border: 1px solid transparent; border-radius: 11px; background: transparent; color: var(--slate-600); cursor: pointer; }
.account-trigger:hover, .account-menu.is-open .account-trigger { background: var(--slate-50); border-color: var(--border); }
.account-trigger-copy { display: flex; flex-direction: column; text-align: left; max-width: 150px; }
.account-trigger-copy strong { color: var(--slate-800); font-size: 11.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.account-trigger-copy small { color: var(--slate-400); font-size: 9.5px; }
.account-menu-panel { right: 0; left: auto; width: 230px; }
.account-menu-heading { display: flex; flex-direction: column; padding: 6px 8px 10px; }
.account-menu-heading strong { color: var(--slate-800); font-size: 12.5px; }
.account-menu-heading small { color: var(--slate-400); font-size: 10.5px; margin-top: 2px; }
.content { max-width: 1500px; padding: 28px 30px 42px; }
.app-footer { max-width: 1500px; width: 100%; margin: auto auto 0; padding: 18px 30px 24px; display: flex; justify-content: space-between; color: var(--slate-400); font-size: 10.5px; }

body.sidebar-collapsed .sidebar { width: var(--sidebar-collapsed-w); }
body.sidebar-collapsed .main { margin-left: var(--sidebar-collapsed-w); }
body.sidebar-collapsed .brand-copy,
body.sidebar-collapsed .nav-label,
body.sidebar-collapsed .nav-section-title,
body.sidebar-collapsed .sidebar-user-copy,
body.sidebar-collapsed .sidebar-user-menu { opacity: 0; width: 0; pointer-events: none; overflow: hidden; }
body.sidebar-collapsed .sidebar-brand { padding-left: 20px; padding-right: 16px; }
body.sidebar-collapsed .sidebar-collapse { position: absolute; right: -14px; top: 21px; background: #fff; color: var(--slate-700); border-color: var(--border); box-shadow: var(--shadow-sm); }
body.sidebar-collapsed .sidebar-collapse .icon { transform: rotate(180deg); }
body.sidebar-collapsed .nav-scroll { padding-left: 14px; padding-right: 14px; }
body.sidebar-collapsed .nav-link { justify-content: center; padding-left: 10px; padding-right: 10px; overflow: visible; }
body.sidebar-collapsed .nav-link::before { content: attr(title); position: fixed; left: 78px; z-index: 80; padding: 7px 10px; border-radius: 7px; background: var(--slate-950); color: #fff; font-size: 11px; opacity: 0; pointer-events: none; transform: translateX(-4px); transition: opacity .12s ease, transform .12s ease; box-shadow: var(--shadow-md); }
body.sidebar-collapsed .nav-link:hover::before { opacity: 1; transform: translateX(0); }
body.sidebar-collapsed .nav-sub { padding-left: 10px; }
body.sidebar-collapsed .nav-sub-dot { position: static; width: 7px; height: 7px; }
body.sidebar-collapsed .sidebar-user { display: flex; justify-content: center; padding: 8px; }

/* Page architecture ------------------------------------------------------ */
.page-intro, .page-toolbar, .session-hero, .scanner-intro {
  position: relative;
  display: flex; align-items: flex-start; justify-content: space-between; gap: 22px;
  margin: 0 0 22px;
}
.page-intro > div:first-child, .page-toolbar > div:first-child { min-width: 0; }
.page-intro h1, .page-toolbar h1, .session-hero h1, .scanner-intro h1 {
  margin: 3px 0 6px;
  color: var(--slate-950);
  font-size: clamp(24px, 2.4vw, 31px);
  line-height: 1.18;
  font-weight: 760;
  letter-spacing: -.032em;
}
.page-intro p, .page-toolbar p, .session-hero p, .scanner-intro p { margin: 0; max-width: 680px; color: var(--slate-500); font-size: 13px; }
.eyebrow { display: inline-flex; align-items: center; gap: 6px; color: var(--brand-strong); font-size: 9.5px; line-height: 1; font-weight: 820; letter-spacing: .105em; text-transform: uppercase; }
.toolbar-actions, .quick-strip, .profile-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 14px; }
.section-heading h2 { margin: 0 0 4px; color: var(--slate-900); font-size: 16px; font-weight: 720; letter-spacing: -.012em; }
.section-heading h3 { margin: 0 0 4px; color: var(--slate-900); font-size: 14px; font-weight: 720; }
.section-heading p { margin: 0; color: var(--slate-500); font-size: 11.5px; }
.text-muted { color: var(--slate-500) !important; }
.text-faint { color: var(--slate-400) !important; }
.text-success { color: var(--success) !important; }
.text-danger { color: var(--danger) !important; }
.helper, .form-help, .form-hint { color: var(--slate-500); font-size: 10.5px; line-height: 1.45; }

/* Cards ----------------------------------------------------------------- */
.card {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface-raised);
  box-shadow: var(--shadow-xs);
  overflow: visible;
}
.card-header { min-height: 58px; padding: 15px 18px; border-bottom: 1px solid var(--border); background: linear-gradient(180deg,#fff,var(--surface-subtle)); border-radius: var(--radius) var(--radius) 0 0; }
.card-header > div { min-width: 0; }
.card-header p { margin: 3px 0 0; }
.card-title { color: var(--slate-900); font-size: 13.5px; font-weight: 730; letter-spacing: -.005em; }
.card-body { padding: 19px; }
.card-interactive { transition: transform .18s var(--ease), border-color .18s ease, box-shadow .18s ease; }
.card-interactive:hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--brand) 25%, var(--border)); box-shadow: var(--shadow-md); }
.icon-tile { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 11px; background: var(--brand-soft); color: var(--brand); }
.icon-tile.success { background: var(--success-soft); color: var(--success); }
.icon-tile.warning { background: var(--warning-soft); color: var(--warning); }
.icon-tile.danger { background: var(--danger-soft); color: var(--danger); }
.card-hover-action { opacity: 0; transform: translateX(-4px); transition: opacity .16s ease, transform .16s ease; }
.card:hover .card-hover-action, .kpi-card:hover .card-hover-action { opacity: 1; transform: translateX(0); }

/* Buttons --------------------------------------------------------------- */
.btn {
  min-height: 38px;
  padding: 8px 13px;
  border: 1px solid var(--border-strong);
  border-radius: 8px;
  background: #fff;
  color: var(--slate-700);
  box-shadow: var(--shadow-xs);
  font-size: 12px;
  font-weight: 670;
  letter-spacing: -.005em;
  line-height: 1;
  justify-content: center;
  transition: transform .15s var(--ease), box-shadow .15s ease, border-color .15s ease, background-color .15s ease, color .15s ease;
}
.btn:hover { background: var(--slate-50); border-color: var(--slate-300); color: var(--slate-900); box-shadow: var(--shadow-sm); transform: translateY(-1px); }
.btn:active { transform: translateY(0); box-shadow: var(--shadow-xs); }
.btn-primary, a.btn-primary { background: linear-gradient(180deg, color-mix(in srgb, var(--brand) 90%, white), var(--brand-strong)); border-color: var(--brand-strong); color: #fff !important; box-shadow: 0 3px 8px color-mix(in srgb, var(--brand) 24%, transparent); }
.btn-primary:hover, a.btn-primary:hover { background: var(--brand-strong); border-color: var(--brand-strong); color: #fff !important; box-shadow: 0 7px 16px color-mix(in srgb, var(--brand) 27%, transparent); }
.btn-danger, a.btn-danger { background: #fff; border-color: color-mix(in srgb, var(--danger) 28%, var(--border)); color: var(--danger) !important; }
.btn-danger:hover, a.btn-danger:hover { background: var(--danger-soft); border-color: color-mix(in srgb, var(--danger) 38%, var(--border)); color: var(--danger) !important; }
.btn-ghost { background: transparent; border-color: transparent; box-shadow: none; }
.btn-ghost:hover { background: var(--slate-100); border-color: transparent; box-shadow: none; }
.btn-subtle { background: var(--slate-50); }
.btn-sm { min-height: 32px; padding: 6px 10px; font-size: 11px; }
.icon-btn { width: 36px; padding: 0; }
.btn .icon { flex: 0 0 auto; }
.btn.is-loading { pointer-events: none; }

/* Forms ----------------------------------------------------------------- */
.form-group { margin-bottom: 15px; }
.form-label { margin-bottom: 6px; color: var(--slate-700); font-size: 11px; font-weight: 700; }
.form-control, select.form-control, textarea.form-control {
  min-height: 40px;
  padding: 9px 11px;
  border: 1px solid var(--border-strong);
  border-radius: 8px;
  background: #fff;
  color: var(--slate-800);
  box-shadow: inset 0 1px 2px rgba(16,24,40,.025);
  font-size: 12.5px;
  transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}
textarea.form-control { min-height: 92px; line-height: 1.5; }
.form-control:hover { border-color: var(--slate-300); }
.form-control:focus { border-color: var(--brand); box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 13%, transparent); }
.form-control:disabled, .form-control[readonly] { background: var(--slate-50); color: var(--slate-500); }
.form-row { gap: 14px; }
.filters-row {
  padding: 11px;
  margin-bottom: 16px;
  border: 1px solid var(--border);
  border-radius: 11px;
  background: #fff;
  box-shadow: var(--shadow-xs);
}
.filters-row .form-control { min-height: 36px; }
.search-bar .icon { left: 12px; color: var(--slate-400); }
.search-bar input { padding-left: 36px; }
.check-card, .setting-toggle, .channel-option {
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #fff;
  transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}
.check-card:hover, .setting-toggle:hover, .channel-option:hover { border-color: color-mix(in srgb, var(--brand) 28%, var(--border)); box-shadow: var(--shadow-sm); }
.check-card:has(input:checked), .setting-toggle:has(input:checked), .channel-option:has(input:checked) { border-color: color-mix(in srgb, var(--brand) 44%, var(--border)); background: var(--brand-soft); }

/* Tables and action menus ------------------------------------------------ */
.table-wrap {
  border: 1px solid var(--border);
  border-radius: 11px;
  background: #fff;
  box-shadow: var(--shadow-xs);
  overflow: auto;
}
table.data-table, table.table { font-size: 12px; }
table.data-table th, table.table th {
  height: 42px;
  padding: 10px 13px;
  background: #f7f9fc;
  color: var(--slate-500);
  border-bottom: 1px solid var(--border);
  font-size: 9.5px;
  font-weight: 780;
  letter-spacing: .055em;
  text-transform: uppercase;
}
table.data-table td, table.table td { min-height: 54px; padding: 11px 13px; border-bottom-color: var(--slate-150); color: var(--slate-600); }
table.data-table tr, table.table tr { transition: background-color .12s ease, box-shadow .12s ease; }
table.data-table tbody tr:hover, table.table tbody tr:hover { background: #f9fbff; box-shadow: inset 3px 0 0 color-mix(in srgb, var(--brand) 65%, white); }
table.data-table tbody tr:hover .row-actions, table.table tbody tr:hover .row-actions { opacity: 1; }
.row-actions { display: flex; justify-content: flex-end; gap: 5px; opacity: .72; transition: opacity .15s ease; }
.employee-register-table td:first-child, .employee-register-table th:first-child { padding-left: 15px; }
.menu { position: relative; }
.menu-panel {
  min-width: 210px;
  padding: 6px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #fff;
  box-shadow: var(--shadow-lg);
  z-index: 100;
}
.menu-panel:not(.menu-panel-up) { top: calc(100% + 6px); }
.menu-item { display: flex; align-items: center; width: 100%; min-height: 34px; gap: 9px; padding: 8px 9px; border: 0; border-radius: 7px; background: transparent; color: var(--slate-700); font-size: 11.5px; text-align: left; cursor: pointer; }
.menu-item:hover { background: var(--slate-100); color: var(--slate-950); }
.menu-item.danger { color: var(--danger); }
.menu-item.danger:hover { background: var(--danger-soft); color: var(--danger); }
.menu-item .icon { width: 15px; height: 15px; color: var(--slate-400); }
.menu-item:hover .icon { color: currentColor; }
.menu-separator { height: 1px; margin: 5px 3px; background: var(--border); }

/* Status chips ----------------------------------------------------------- */
.badge, .status-badge {
  min-height: 23px; padding: 4px 8px;
  border-radius: 999px;
  font-size: 9.5px; line-height: 1; font-weight: 780; letter-spacing: .015em;
}
.badge-success, .status-active, .status-open { background: var(--success-soft); color: var(--success); border: 1px solid color-mix(in srgb,var(--success) 18%,transparent); }
.badge-warning, .status-paused, .status-scheduled { background: var(--warning-soft); color: var(--warning); border: 1px solid color-mix(in srgb,var(--warning) 18%,transparent); }
.badge-danger, .status-failed { background: var(--danger-soft); color: var(--danger); border: 1px solid color-mix(in srgb,var(--danger) 18%,transparent); }
.badge-info { background: var(--info-soft); color: var(--info); border: 1px solid color-mix(in srgb,var(--info) 16%,transparent); }
.badge-muted, .status-closed, .status-expired, .status-cancelled, .status-archived, .status-draft { background: var(--slate-100); color: var(--slate-600); border: 1px solid var(--border); }

/* Empty, notice and flash states ---------------------------------------- */
.empty-state { padding: 48px 24px; border: 1px dashed var(--border-strong); border-radius: 11px; background: linear-gradient(180deg,#fff,var(--slate-50)); }
.empty-state.compact { padding: 24px 18px; border: 0; background: transparent; }
.empty-state .icon { width: 36px; height: 36px; margin-bottom: 11px; color: var(--slate-300); }
.empty-state h3 { color: var(--slate-800); font-size: 13.5px; }
.empty-state p { color: var(--slate-500); font-size: 11.5px; }
.notice { border-radius: 9px; border-width: 1px; font-size: 11.5px; }
.notice-info { background: var(--info-soft); color: #244a87; border-color: #d7e5ff; }
.flash-stack { top: 18px; right: 20px; max-width: 410px; }
.flash { display: flex; align-items: flex-start; gap: 9px; min-width: 310px; padding: 12px 14px; border: 1px solid var(--border); border-radius: 10px; background: #fff; color: var(--slate-700); box-shadow: var(--shadow-lg); opacity: 0; transform: translateY(-6px); transition: opacity .2s ease, transform .2s ease; }
.flash.show { opacity: 1; transform: translateY(0); }
.flash-symbol { width: 25px; height: 25px; display: grid; place-items: center; border-radius: 7px; background: var(--brand-soft); color: var(--brand); flex: 0 0 auto; }
.flash-success .flash-symbol { background: var(--success-soft); color: var(--success); }
.flash-warning .flash-symbol { background: var(--warning-soft); color: var(--warning); }
.flash-danger .flash-symbol, .flash-error .flash-symbol { background: var(--danger-soft); color: var(--danger); }

/* Dashboard -------------------------------------------------------------- */
.dashboard-hero {
  display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 20px; align-items: end;
  padding: 24px 25px;
  margin-bottom: 18px;
  border: 1px solid #dbe5f5;
  border-radius: var(--radius-lg);
  background:
    radial-gradient(circle at 90% 0%, color-mix(in srgb,var(--brand) 16%,transparent), transparent 36%),
    linear-gradient(135deg,#ffffff 0%,#f5f8fd 100%);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
}
.dashboard-hero h1 { margin: 4px 0 6px; font-size: 29px; line-height: 1.15; letter-spacing: -.035em; color: var(--slate-950); }
.dashboard-hero p { margin: 0; color: var(--slate-500); font-size: 12.5px; }
.dashboard-hero-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.dashboard-date { display: flex; align-items: center; gap: 7px; color: var(--brand-strong); font-weight: 700; font-size: 10.5px; }
.kpi-grid.premium, .executive-kpi-grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 13px; margin-bottom: 17px; }
.kpi-card {
  position: relative;
  display: grid; grid-template-columns: 42px minmax(0,1fr) 20px; align-items: center; gap: 12px;
  min-height: 116px;
  padding: 17px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #fff;
  color: inherit;
  box-shadow: var(--shadow-xs);
  overflow: hidden;
  transition: transform .18s var(--ease), border-color .18s ease, box-shadow .18s ease;
}
.kpi-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 3px; background: transparent; transition: background-color .18s ease; }
.kpi-card:hover { color: inherit; transform: translateY(-3px); border-color: color-mix(in srgb,var(--brand) 23%,var(--border)); box-shadow: var(--shadow-md); }
.kpi-card:hover::before { background: var(--brand); }
.kpi-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 11px; background: var(--brand-soft); color: var(--brand); }
.kpi-icon .icon { width: 20px; height: 20px; }
.kpi-icon.success { background: var(--success-soft); color: var(--success); }
.kpi-icon.warning { background: var(--warning-soft); color: var(--warning); }
.kpi-icon.danger { background: var(--danger-soft); color: var(--danger); }
.kpi-card-copy { min-width: 0; }
.kpi-label { color: var(--slate-500); font-size: 9.5px; line-height: 1; font-weight: 760; letter-spacing: .065em; text-transform: uppercase; }
.kpi-value { margin: 6px 0 2px; color: var(--slate-950); font-size: 27px; line-height: 1; font-weight: 770; letter-spacing: -.035em; }
.kpi-card small { color: var(--slate-400); font-size: 9.75px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kpi-arrow { color: var(--slate-300); opacity: 0; transform: translateX(-4px); transition: opacity .16s ease, transform .16s ease, color .16s ease; }
.kpi-card:hover .kpi-arrow { opacity: 1; transform: translateX(0); color: var(--brand); }
.dashboard-grid { grid-template-columns: minmax(0,1.55fr) minmax(330px,.75fr); gap: 16px; margin-bottom: 16px; }
.dashboard-card { overflow: hidden; }
.dashboard-card .card-body { min-height: 270px; }
.dashboard-card-action { font-size: 10.5px; font-weight: 700; color: var(--brand); display: flex; align-items: center; gap: 5px; }
.trend-chart { min-height: 205px; gap: 10px; padding: 13px 5px 0; border-bottom: 1px solid var(--border); background: repeating-linear-gradient(to top, transparent 0, transparent 49px, var(--slate-100) 50px); }
.trend-day { gap: 8px; }
.trend-bars { height: 170px; gap: 4px; align-items: end; }
.trend-bars .bar { min-height: 3px; width: 8px; border-radius: 4px 4px 1px 1px; transition: filter .15s ease, transform .15s ease; }
.trend-bars .bar:hover { filter: brightness(.92); transform: scaleX(1.2); }
.trend-bars .present, .dot.present { background: var(--brand); }
.trend-bars .late, .dot.late { background: #f0a23a; }
.trend-bars .absent, .dot.absent { background: #d45d55; }
.chart-legend { padding-top: 13px; color: var(--slate-500); font-size: 10px; }
.attention-list { display: flex; flex-direction: column; gap: 8px; }
.attention-item { display: grid; grid-template-columns: 38px minmax(0,1fr) 18px; align-items: center; gap: 11px; min-height: 67px; padding: 11px; border: 1px solid var(--border); border-radius: 10px; color: inherit; background: #fff; }
.attention-item:hover { color: inherit; border-color: color-mix(in srgb,var(--brand) 24%,var(--border)); background: #fbfdff; transform: translateX(2px); }
.attention-icon { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 9px; background: var(--brand-soft); color: var(--brand); }
.attention-icon.warning { background: var(--warning-soft); color: var(--warning); }
.attention-icon.danger { background: var(--danger-soft); color: var(--danger); }
.attention-item strong { display: block; color: var(--slate-800); font-size: 11.5px; }
.attention-item small { display: block; margin-top: 2px; color: var(--slate-500); font-size: 9.5px; }
.attention-arrow { color: var(--slate-300); }
.dashboard-lower-grid { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(360px,.9fr); gap: 16px; }
.department-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.department-card { padding: 13px; border: 1px solid var(--border); border-radius: 10px; background: #fff; transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
.department-card:hover { border-color: color-mix(in srgb,var(--brand) 22%,var(--border)); box-shadow: var(--shadow-sm); transform: translateY(-1px); }
.department-card strong { color: var(--slate-800); font-size: 11.5px; }
.department-card small { color: var(--slate-500); font-size: 9.5px; }
.progress { height: 6px; margin: 10px 0 7px; border-radius: 999px; background: var(--slate-100); overflow: hidden; }
.progress span { border-radius: inherit; background: linear-gradient(90deg,var(--brand),color-mix(in srgb,var(--brand) 68%,#74a1ff)); }
.session-list { display: flex; flex-direction: column; gap: 8px; }
.session-list-item { display: grid; grid-template-columns: 38px minmax(0,1fr) auto; align-items: center; gap: 11px; padding: 11px; border: 1px solid var(--border); border-radius: 10px; color: inherit; }
.session-list-item:hover { color: inherit; border-color: color-mix(in srgb,var(--brand) 24%,var(--border)); background: #fbfdff; }
.session-list-icon { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 9px; background: var(--brand-soft); color: var(--brand); }
.session-list-item strong { display: block; color: var(--slate-800); font-size: 11.5px; }
.session-list-item small { display: block; color: var(--slate-500); font-size: 9.5px; margin-top: 2px; }
.recent-activity-list { display: flex; flex-direction: column; }
.recent-activity-item { display: grid; grid-template-columns: 34px minmax(0,1fr) auto; gap: 10px; align-items: center; padding: 9px 0; border-bottom: 1px solid var(--slate-150); }
.recent-activity-item:last-child { border-bottom: 0; }
.recent-activity-avatar { width: 34px; height: 34px; display: grid; place-items: center; overflow: hidden; border-radius: 9px; background: var(--slate-100); color: var(--brand); font-size: 10px; font-weight: 800; }
.recent-activity-avatar img { width: 100%; height: 100%; object-fit: cover; }
.recent-activity-item strong { display: block; color: var(--slate-800); font-size: 10.5px; }
.recent-activity-item small { display: block; color: var(--slate-500); font-size: 9.25px; margin-top: 2px; }
.recent-activity-time { color: var(--slate-400); font-size: 9px; text-align: right; }
.quick-action-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.quick-action-card { position: relative; display: flex; align-items: center; gap: 10px; min-height: 65px; padding: 11px; border: 1px solid var(--border); border-radius: 10px; background: #fff; color: inherit; overflow: hidden; }
.quick-action-card:hover { color: inherit; border-color: color-mix(in srgb,var(--brand) 25%,var(--border)); box-shadow: var(--shadow-sm); transform: translateY(-1px); }
.quick-action-card .icon-tile { width: 35px; height: 35px; border-radius: 9px; }
.quick-action-card strong { display: block; color: var(--slate-800); font-size: 10.5px; }
.quick-action-card small { display: block; color: var(--slate-400); font-size: 8.75px; margin-top: 2px; }

/* Employee register and profile ----------------------------------------- */
.employee-register-summary {
  display: grid; grid-template-columns: repeat(4,minmax(0,1fr));
  margin-bottom: 14px;
  border: 1px solid var(--border); border-radius: 11px; background: #fff; box-shadow: var(--shadow-xs); overflow: hidden;
}
.employee-register-summary > div { position: relative; min-height: 78px; padding: 15px 16px; border-right: 1px solid var(--border); }
.employee-register-summary > div:last-child { border-right: 0; }
.employee-register-summary > div::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: color-mix(in srgb,var(--brand) 45%,white); opacity: 0; transition: opacity .15s ease; }
.employee-register-summary > div:hover::before { opacity: 1; }
.employee-register-summary span { display: block; color: var(--slate-500); font-size: 9.5px; font-weight: 680; }
.employee-register-summary strong { display: block; margin-top: 7px; color: var(--slate-950); font-size: 22px; line-height: 1; letter-spacing: -.03em; }
.employee-thumb { width: 40px; height: 40px; border: 0; border-radius: 10px; background: var(--brand-soft); color: var(--brand); }
.employee-cell { gap: 11px; color: inherit; }
.employee-cell:hover { color: inherit; }
.employee-cell strong { color: var(--slate-800); font-size: 11.5px; }
.employee-cell small { color: var(--slate-400); font-size: 9.5px; }
.employee-code { color: var(--slate-700); font-family: ui-monospace,SFMono-Regular,Consolas,monospace; font-size: 10.5px; }
.account-status-cell { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.account-status-cell small { color: var(--slate-400); font-size: 9px; }
.bulk-account-bar { border: 1px solid color-mix(in srgb,var(--brand) 28%,var(--border)); border-radius: 11px; background: linear-gradient(180deg,#fff,var(--brand-soft)); box-shadow: var(--shadow-md); }
.profile-header { border: 1px solid var(--border); border-radius: 14px; background: linear-gradient(135deg,#fff,#f7f9fd); box-shadow: var(--shadow-sm); }
.profile-avatar { border: 4px solid #fff; box-shadow: 0 0 0 1px var(--border), var(--shadow-sm); }
.tabs-shell { border: 1px solid var(--border); border-radius: 11px; background: #fff; padding: 4px; box-shadow: var(--shadow-xs); }
.tabs-shell [role="tab"] { border-radius: 8px; font-size: 11px; font-weight: 680; }
.tabs-shell [role="tab"].active { background: var(--brand-soft); color: var(--brand-strong); box-shadow: inset 0 0 0 1px color-mix(in srgb,var(--brand) 16%,transparent); }
.detail-grid { border-radius: 10px; overflow: hidden; }
.account-action-panel, .account-empty-state, .account-identity-card, .account-detail-grid { border-radius: 10px; }

/* Sessions and scanner --------------------------------------------------- */
.session-table .session-name-link, .session-name-link { color: var(--slate-800); font-weight: 700; }
.session-name-link:hover { color: var(--brand); }
.session-hero { padding: 22px; border: 1px solid var(--border); border-radius: 14px; background: linear-gradient(135deg,#fff,#f6f8fc); box-shadow: var(--shadow-sm); }
.session-hero .eyebrow { color: var(--brand); }
.kpi-strip { border-radius: 11px; overflow: hidden; box-shadow: var(--shadow-xs); }
.kpi-strip > div { background: #fff; }
.kpi-strip span { color: var(--slate-500); font-size: 9px; font-weight: 700; }
.kpi-strip strong { color: var(--slate-900); font-size: 14px; }
.form-workspace, .form-surface { border-radius: 12px; box-shadow: var(--shadow-xs); }
.form-workspace .tab-list { background: #f7f9fc; border-radius: 11px 11px 0 0; }
.method-card, .scope-card { border-radius: 10px; }
.review-block { border-radius: 10px; background: var(--slate-50); border-color: var(--border); }
.scanner-shell { gap: 16px; }
.scanner-workspace, .scanner-result-panel, .scanner-recent-section { border-radius: 13px; border-color: var(--border); box-shadow: var(--shadow-xs); }
.scanner-mode-tabs { padding: 5px; gap: 4px; background: var(--slate-100); border-radius: 10px; }
.scanner-mode-tabs button { border-radius: 7px; font-size: 10.5px; font-weight: 700; }
.scanner-mode-tabs button.active { background: #fff; color: var(--brand); box-shadow: var(--shadow-xs); }
.scanner-video-shell { border-radius: 13px; background: var(--navy-950); overflow: hidden; }
.scanner-guide { color: color-mix(in srgb,var(--brand) 70%,white); }
.scanner-state { border-radius: 999px; }
.premium-results, .premium-confirm, .manual-preview-identity, .manual-preview-facts { border-radius: 10px; }
.manual-result.premium-result { transition: background-color .12s ease, box-shadow .12s ease, transform .12s ease; }
.manual-result.premium-result:hover, .manual-result.premium-result.is-active { transform: translateX(1px); }
.manual-result-photo, .manual-preview-photo { border-radius: 10px; }
.manual-next-action, .manual-result-action { border-radius: 999px; }

/* Settings, communications and reports ---------------------------------- */
.settings-layout { gap: 18px; }
.settings-nav { border-radius: 12px; border: 1px solid var(--border); background: #fff; box-shadow: var(--shadow-xs); padding: 8px; }
.settings-nav a { min-height: 36px; display: flex; align-items: center; border-radius: 8px; color: var(--slate-600); font-size: 11px; font-weight: 650; }
.settings-nav a:hover { background: var(--slate-100); color: var(--slate-900); }
.settings-nav a.active { background: var(--brand-soft); color: var(--brand); }
.settings-section { scroll-margin-top: 92px; }
.settings-section .card-header { min-height: 64px; }
.employee-id-preview, .delivery-choice-panel { border-radius: 10px; }
.portal-settings-grid, .delivery-options { gap: 10px; }
.communication-tabs { background: #fff; border: 1px solid var(--border); border-radius: 11px; padding: 5px; }
.report-summary, .summary-grid { gap: 12px; }
.report-card { border-radius: 11px; }

/* Employee portal -------------------------------------------------------- */
.portal-shell { max-width: 1180px; margin: 0 auto; }
.portal-hero { border-radius: 16px; background: linear-gradient(135deg,var(--navy-900),var(--navy-800)); box-shadow: var(--shadow-md); color: #fff; overflow: hidden; }
.portal-hero h1, .portal-hero strong { color: #fff; }
.portal-hero p, .portal-hero small { color: rgba(226,232,240,.72); }
.portal-stat, .portal-card { border-radius: 12px; border-color: var(--border); box-shadow: var(--shadow-xs); }

/* Auth ------------------------------------------------------------------ */
.auth-page { background: #eef2f7; }
.auth-card { border-radius: 16px; border-color: var(--border); box-shadow: var(--shadow-lg); overflow: hidden; }
.auth-brand { background: linear-gradient(145deg,var(--navy-900),var(--navy-950)); }
.auth-heading h1 { color: var(--slate-950); letter-spacing: -.025em; }
.auth-heading p { color: var(--slate-500); }
.auth-card .form-control { min-height: 44px; }

/* Modals ---------------------------------------------------------------- */
.modal-overlay, .modal-backdrop { backdrop-filter: blur(4px); }
.modal-box { border: 1px solid var(--border); border-radius: 14px; box-shadow: var(--shadow-lg); overflow: hidden; }
.modal-header, .modal-footer { background: var(--slate-50); border-color: var(--border); }
.session-modal .session-timeout-card { max-width: 420px; display: grid; grid-template-columns: 55px minmax(0,1fr); align-items: start; padding: 18px; border-radius: 14px; box-shadow: var(--shadow-lg); }
.session-timeout-card .card-body { padding: 0 0 0 14px; }
.modal-icon { width: 50px; height: 50px; display: grid; place-items: center; border-radius: 12px; background: var(--warning-soft); color: var(--warning); }

/* Responsive ------------------------------------------------------------- */
@media (max-width: 1220px) {
  .executive-kpi-grid, .kpi-grid.premium { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .dashboard-lower-grid { grid-template-columns: 1fr; }
  .account-trigger-copy { display: none; }
}
@media (max-width: 1050px) {
  .sidebar { transform: translateX(-100%); width: var(--sidebar-w); }
  .sidebar.open { transform: translateX(0); }
  .main, body.sidebar-collapsed .main { margin-left: 0; }
  .hamburger { display: grid; place-items: center; }
  .sidebar-collapse { display: none; }
  .content { padding: 24px 22px 36px; }
  .topbar { padding: 0 20px; }
  body.sidebar-collapsed .brand-copy,
  body.sidebar-collapsed .nav-label,
  body.sidebar-collapsed .nav-section-title,
  body.sidebar-collapsed .sidebar-user-copy,
  body.sidebar-collapsed .sidebar-user-menu { opacity: 1; width: auto; pointer-events: auto; }
  body.sidebar-collapsed .nav-link { justify-content: flex-start; }
  body.sidebar-collapsed .sidebar-user { display: grid; }
}
@media (max-width: 820px) {
  .dashboard-grid { grid-template-columns: 1fr; }
  .dashboard-hero { grid-template-columns: 1fr; align-items: start; }
  .dashboard-hero-actions { justify-content: flex-start; }
  .company-clock { display: none; }
  .employee-register-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .employee-register-summary > div:nth-child(2) { border-right: 0; }
  .employee-register-summary > div:nth-child(-n+2) { border-bottom: 1px solid var(--border); }
  .department-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .content { padding: 20px 14px 30px; }
  .topbar { padding: 0 13px; }
  .topbar-context, .topbar-create span, .topbar-icon-action, .account-trigger > .icon { display: none; }
  .account-trigger { padding: 3px; }
  .page-intro, .page-toolbar, .session-hero, .scanner-intro { flex-direction: column; gap: 13px; }
  .page-intro h1, .page-toolbar h1, .session-hero h1, .scanner-intro h1 { font-size: 25px; }
  .executive-kpi-grid, .kpi-grid.premium { grid-template-columns: 1fr; }
  .kpi-card { min-height: 100px; }
  .quick-action-grid { grid-template-columns: 1fr; }
  .employee-register-summary { grid-template-columns: 1fr; }
  .employee-register-summary > div { border-right: 0; border-bottom: 1px solid var(--border); }
  .employee-register-summary > div:last-child { border-bottom: 0; }
  .filters-row { align-items: stretch; }
  .filters-row .form-control, .filters-row .search-bar { width: 100%; min-width: 0; }
  .app-footer { padding-left: 14px; padding-right: 14px; }
  .flash-stack { left: 12px; right: 12px; top: 12px; max-width: none; }
  .flash { min-width: 0; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
@media print {
  .sidebar, .topbar, .app-footer, .toolbar-actions, .quick-strip, .row-actions { display: none !important; }
  .main { margin-left: 0 !important; }
  .content { max-width: none; padding: 0; }
  .card, .table-wrap { box-shadow: none; }
}

/* Phase 5C employee summary refinements */
.register-summary-item { display: flex; align-items: center; gap: 12px; }
.employee-register-summary .register-summary-icon { width: 36px; height: 36px; display: grid; place-items: center; flex: 0 0 36px; border-radius: 9px; background: var(--brand-soft); color: var(--brand); }
.employee-register-summary .register-summary-icon.success { background: var(--success-soft); color: var(--success); }
.employee-register-summary .register-summary-icon.warning { background: var(--warning-soft); color: var(--warning); }
.employee-register-summary .register-summary-icon.danger { background: var(--danger-soft); color: var(--danger); }
.employee-register-summary .register-summary-icon .icon { width: 17px; height: 17px; }
.employee-register-summary .register-summary-copy { display: flex; flex-direction: column; }
.employee-register-summary .register-summary-copy > span { color: var(--slate-500); }
.employee-register-summary .register-summary-copy > strong { margin-top: 6px; }
.profile-kpis { border-radius: 11px; overflow: hidden; border: 1px solid var(--border); box-shadow: var(--shadow-xs); }
.profile-kpis > div { display: flex; align-items: center; gap: 10px; min-height: 78px; padding: 13px; background: #fff; }
.profile-kpi-icon { width: 34px; height: 34px; display: grid; place-items: center; flex: 0 0 34px; border-radius: 9px; background: var(--brand-soft); color: var(--brand); }
.profile-kpi-icon.success { background: var(--success-soft); color: var(--success); }
.profile-kpi-icon.warning { background: var(--warning-soft); color: var(--warning); }
.profile-kpi-icon.danger { background: var(--danger-soft); color: var(--danger); }
.profile-kpi-icon .icon { width: 16px; height: 16px; }
.profile-kpis > div > span:last-child { display: flex; flex-direction: column; }
.profile-kpis small { color: var(--slate-500); font-size: 9px; }
.profile-kpis strong { color: var(--slate-900); font-size: 17px; margin-top: 3px; }

/* Phase 5C session index */
.session-overview-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 11px; margin-bottom: 14px; }
.session-overview-card { display: grid; grid-template-columns: 36px minmax(0,1fr) 16px; align-items: center; gap: 10px; min-height: 78px; padding: 13px; border: 1px solid var(--border); border-radius: 11px; background: #fff; color: inherit; box-shadow: var(--shadow-xs); }
.session-overview-card:hover { color: inherit; border-color: color-mix(in srgb,var(--brand) 24%,var(--border)); box-shadow: var(--shadow-sm); transform: translateY(-2px); }
.session-overview-icon { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 9px; background: var(--brand-soft); color: var(--brand); }
.session-overview-icon.success { background: var(--success-soft); color: var(--success); }
.session-overview-icon.warning { background: var(--warning-soft); color: var(--warning); }
.session-overview-icon.muted { background: var(--slate-100); color: var(--slate-500); }
.session-overview-icon .icon { width: 17px; height: 17px; }
.session-overview-card small { display: block; color: var(--slate-500); font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .045em; }
.session-overview-card strong { display: block; margin-top: 5px; color: var(--slate-900); font-size: 20px; line-height: 1; }
.session-overview-card .card-hover-action { color: var(--brand); }
.session-filter-bar .search-bar { min-width: 300px; }
.session-table td small { display: block; margin-top: 3px; color: var(--slate-400); font-size: 9.5px; }
.method-summary { display: block; max-width: 180px; color: var(--slate-500); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media(max-width:1100px){.session-overview-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.session-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.session-filter-bar .search-bar{min-width:0}}
@media(max-width:460px){.session-overview-grid{grid-template-columns:1fr}}

/* Phase 5C reports */
.report-summary-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 11px; margin-bottom: 14px; }
.report-summary-card { display: flex; align-items: center; gap: 11px; min-height: 76px; padding: 13px; border: 1px solid var(--border); border-radius: 11px; background: #fff; box-shadow: var(--shadow-xs); }
.report-summary-icon { width: 36px; height: 36px; display: grid; place-items: center; flex: 0 0 36px; border-radius: 9px; background: var(--brand-soft); color: var(--brand); }
.report-summary-icon.success { background: var(--success-soft); color: var(--success); }
.report-summary-icon.warning { background: var(--warning-soft); color: var(--warning); }
.report-summary-icon.danger { background: var(--danger-soft); color: var(--danger); }
.report-summary-icon .icon { width: 17px; height: 17px; }
.report-summary-card small { display: block; color: var(--slate-500); font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.report-summary-card strong { display: block; color: var(--slate-900); font-size: 20px; line-height: 1; margin-top: 5px; }
.report-filter-bar { gap: 8px; }
.report-filter-bar .form-control { min-width: 125px; }
@media(max-width:1050px){.report-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){.report-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:430px){.report-summary-grid{grid-template-columns:1fr}}

/* Phase 5C communications */
.communication-status-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:11px; margin-bottom:15px; }
.communication-status-card { display:grid; grid-template-columns:38px minmax(0,1fr) auto; align-items:center; gap:10px; min-height:78px; padding:13px; border:1px solid var(--border); border-radius:11px; background:#fff; color:inherit; box-shadow:var(--shadow-xs); }
.communication-status-card:hover { color:inherit; border-color:color-mix(in srgb,var(--brand) 24%,var(--border)); box-shadow:var(--shadow-sm); transform:translateY(-2px); }
.communication-status-icon { width:38px; height:38px; display:grid; place-items:center; border-radius:9px; background:var(--brand-soft); color:var(--brand); }
.communication-status-icon.success { background:var(--success-soft); color:var(--success); }
.communication-status-icon.danger { background:var(--danger-soft); color:var(--danger); }
.communication-status-icon.muted { background:var(--slate-100); color:var(--slate-500); }
.communication-status-icon .icon { width:18px; height:18px; }
.communication-status-card small { display:block; color:var(--slate-500); font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.communication-status-card strong { display:block; margin-top:4px; color:var(--slate-850); font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.communication-workspace .section-panel { margin-top:14px; border:1px solid var(--border); border-radius:12px; background:#fff; box-shadow:var(--shadow-xs); overflow:hidden; }
.service-toggle { padding:13px; }
.gateway-test { display:grid; grid-template-columns:minmax(180px,1fr) minmax(320px,1.3fr); gap:18px; align-items:center; margin-top:18px; padding:14px; border:1px solid var(--border); border-radius:10px; background:var(--slate-50); }
.gateway-test strong { display:block; color:var(--slate-800); font-size:11.5px; }
.gateway-test small { display:block; color:var(--slate-500); font-size:9.5px; margin-top:2px; }
.gateway-test .inline-test { display:flex; gap:8px; margin:0; }
.gateway-test .form-control { flex:1; }
.template-list { display:flex; flex-direction:column; gap:9px; }
.template-editor { border:1px solid var(--border); border-radius:10px; background:#fff; overflow:hidden; }
.template-editor summary { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:52px; padding:11px 13px; cursor:pointer; background:var(--slate-50); }
.template-editor summary:hover { background:#f3f6fa; }
.template-editor summary > span:first-child { display:flex; flex-direction:column; }
.template-editor summary strong { color:var(--slate-800); font-size:11.5px; }
.template-editor summary small { color:var(--slate-500); font-size:9px; margin-top:2px; }
.template-editor form { padding:0 14px 14px; }
@media(max-width:1000px){.communication-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.gateway-test{grid-template-columns:1fr}.gateway-test .inline-test{flex-direction:column}}
@media(max-width:520px){.communication-status-grid{grid-template-columns:1fr}}

/* Phase 5C employee portal */
.portal-hero { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:22px; align-items:center; padding:24px; }
.portal-identity { display:flex; align-items:center; gap:15px; min-width:0; }
.portal-avatar { width:60px; height:60px; display:grid; place-items:center; flex:0 0 60px; border-radius:15px; overflow:hidden; background:rgba(255,255,255,.11); border:1px solid rgba(255,255,255,.16); color:#fff; font-size:17px; font-weight:800; }
.portal-avatar img { width:100%; height:100%; object-fit:cover; }
.portal-date { color:#93b6f6; font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.portal-hero h1 { margin:4px 0 4px; font-size:25px; line-height:1.1; letter-spacing:-.03em; }
.portal-hero p { margin:0; font-size:11px; }
.portal-today-action { display:flex; flex-direction:column; align-items:flex-end; gap:8px; min-width:190px; }
.portal-today-action > strong { font-size:11px; color:#fff; }
.portal-state { display:inline-flex; align-items:center; gap:6px; min-height:28px; padding:6px 9px; border-radius:999px; font-size:9.5px; font-weight:750; }
.portal-state.in { background:rgba(59,130,246,.18); color:#cfe1ff; }
.portal-state.complete { background:rgba(16,185,129,.17); color:#c9f8e8; }
.portal-state.ready { background:rgba(255,255,255,.10); color:#e7edf7; }
.portal-action-button { min-width:130px; background:#fff; border-color:#fff; color:var(--navy-900); }
.portal-action-button:hover { background:#edf4ff; border-color:#edf4ff; color:var(--navy-900); }
.portal-overview-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:11px; margin:15px 0; }
.portal-stat { display:flex; align-items:center; gap:11px; min-height:78px; padding:13px; border:1px solid var(--border); border-radius:11px; background:#fff; box-shadow:var(--shadow-xs); }
.portal-stat-icon { width:36px; height:36px; display:grid; place-items:center; flex:0 0 36px; border-radius:9px; background:var(--brand-soft); color:var(--brand); }
.portal-stat-icon.success { background:var(--success-soft); color:var(--success); }
.portal-stat-icon.warning { background:var(--warning-soft); color:var(--warning); }
.portal-stat-icon.danger { background:var(--danger-soft); color:var(--danger); }
.portal-stat small { display:block; color:var(--slate-500); font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.portal-stat strong { display:block; color:var(--slate-900); font-size:20px; margin-top:5px; line-height:1; }
.portal-content-grid { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(300px,.65fr); gap:15px; }
.portal-side-stack { display:flex; flex-direction:column; gap:15px; }
.portal-schedule { display:flex; align-items:center; gap:12px; }
.portal-schedule strong { color:var(--slate-800); font-size:12px; }
.portal-schedule p { margin:3px 0 0; color:var(--slate-600); font-size:11px; }
.portal-schedule small { color:var(--slate-400); font-size:9px; }
.portal-account-list { display:flex; flex-direction:column; }
.portal-account-list > div, .portal-account-list > a { display:grid; grid-template-columns:28px minmax(0,1fr) auto; align-items:center; gap:9px; min-height:52px; padding:9px 0; border-bottom:1px solid var(--slate-150); color:inherit; }
.portal-account-list > div:last-child, .portal-account-list > a:last-child { border-bottom:0; }
.portal-account-list > a:hover { color:inherit; transform:translateX(2px); }
.portal-account-list > div > span, .portal-account-list > a > span { width:28px; height:28px; display:grid; place-items:center; border-radius:8px; background:var(--slate-100); color:var(--brand); }
.portal-account-list p { margin:0; min-width:0; }
.portal-account-list strong { display:block; color:var(--slate-800); font-size:10.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.portal-account-list small { display:block; color:var(--slate-400); font-size:8.75px; margin-top:2px; }
@media(max-width:900px){.portal-content-grid{grid-template-columns:1fr}.portal-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.portal-hero{grid-template-columns:1fr}.portal-today-action{align-items:flex-start}.portal-overview-grid{grid-template-columns:1fr}.portal-identity{align-items:flex-start}}

/* ========================================================================
   Phase 5C completion pass — enterprise workspaces and content surfaces
   ======================================================================== */
.page-header, .page-heading, .page-actions {
  display:flex; align-items:flex-start; justify-content:space-between; gap:18px;
  margin-bottom:16px;
}
.page-header h1, .page-heading h1, .page-actions h1 { margin:0 0 4px; color:var(--slate-950); font-size:24px; line-height:1.15; letter-spacing:-.025em; }
.page-header p, .page-heading p, .page-actions p { margin:0; color:var(--slate-500); font-size:12px; }
.page-toolbar-actions, .action-strip { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:8px; }
.filter-bar {
  display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  padding:10px; margin-bottom:15px; border:1px solid var(--border); border-radius:11px;
  background:#fff; box-shadow:var(--shadow-xs);
}
.filter-bar .grow { min-width:240px; }
.filter-bar .form-control { min-height:36px; width:auto; }
.table-shell { border:1px solid var(--border); border-radius:11px; background:#fff; box-shadow:var(--shadow-xs); overflow:auto; }
.table-wrap-flush { border:0; border-radius:0; box-shadow:none; }
.p-0 { padding:0 !important; }
.form-shell { width:100%; margin-inline:auto; }
.form-panel, .section-panel {
  border:1px solid var(--border); border-radius:12px; background:#fff; box-shadow:var(--shadow-xs); overflow:hidden;
}
.section-panel { padding:18px; }
.tabs {
  display:flex; align-items:center; gap:4px; width:max-content; max-width:100%; overflow:auto;
  padding:4px; margin-bottom:15px; border:1px solid var(--border); border-radius:10px; background:#fff; box-shadow:var(--shadow-xs);
}
.tab {
  display:inline-flex; align-items:center; justify-content:center; min-height:34px; padding:7px 12px;
  border-radius:7px; color:var(--slate-500); font-size:11px; font-weight:700; white-space:nowrap;
}
.tab:hover { color:var(--slate-900); background:var(--slate-50); }
.tab.active { color:var(--brand-strong); background:var(--brand-soft); box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brand) 14%,transparent); }
.notice-success, .notice.success { background:var(--success-soft); border-color:color-mix(in srgb,var(--success) 20%,transparent); color:var(--success); }
.notice-danger, .notice.danger { background:var(--danger-soft); border-color:color-mix(in srgb,var(--danger) 20%,transparent); color:var(--danger); }
.notice-warning, .notice.warning { background:var(--warning-soft); border-color:color-mix(in srgb,var(--warning) 20%,transparent); color:var(--warning); }

/* Reusable overview cards ------------------------------------------------ */
.department-overview-grid, .schedule-overview-grid, .access-overview-grid, .audit-overview-grid, .backup-overview-grid {
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:11px; margin-bottom:15px;
}
.backup-overview-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.overview-stat {
  display:flex; align-items:center; gap:11px; min-height:78px; padding:13px;
  border:1px solid var(--border); border-radius:11px; background:#fff; box-shadow:var(--shadow-xs);
  transition:transform .18s var(--ease), border-color .18s ease, box-shadow .18s ease;
}
.overview-stat:hover { transform:translateY(-2px); border-color:color-mix(in srgb,var(--brand) 22%,var(--border)); box-shadow:var(--shadow-sm); }
.overview-stat-icon, .entity-icon, .role-summary-icon {
  width:37px; height:37px; display:grid; place-items:center; flex:0 0 37px;
  border-radius:9px; background:var(--brand-soft); color:var(--brand);
}
.overview-stat-icon.success { background:var(--success-soft); color:var(--success); }
.overview-stat-icon.warning { background:var(--warning-soft); color:var(--warning); }
.overview-stat-icon.danger { background:var(--danger-soft); color:var(--danger); }
.overview-stat-icon .icon, .entity-icon .icon, .role-summary-icon .icon { width:17px; height:17px; }
.overview-stat small { display:block; color:var(--slate-500); font-size:9px; font-weight:760; text-transform:uppercase; letter-spacing:.05em; }
.overview-stat strong { display:block; margin-top:5px; color:var(--slate-950); font-size:21px; line-height:1; }
.overview-stat strong.overview-date { font-size:17px; }
.entity-cell { display:flex; align-items:center; gap:10px; min-width:0; }
.entity-cell.compact { gap:8px; }
.entity-cell > div { min-width:0; }
.entity-cell strong { display:block; color:var(--slate-850); font-size:11.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.entity-cell small { display:block; margin-top:2px; color:var(--slate-400); font-size:9px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.entity-avatar {
  width:40px; height:40px; min-width:40px; min-height:40px; display:grid; place-items:center; flex:0 0 40px;
  border-radius:11px; overflow:hidden; position:relative; isolation:isolate;
  background:linear-gradient(145deg,var(--brand-soft),#fff); border:1px solid #dce8fb;
  color:var(--brand-strong); font-size:11px; font-weight:800; line-height:1;
}
.entity-avatar img {
  position:absolute; inset:0; width:100% !important; height:100% !important;
  max-width:100% !important; max-height:100% !important; display:block;
  object-fit:cover; object-position:center; border-radius:inherit;
}
.entity-avatar.small { width:29px; height:29px; min-width:29px; min-height:29px; flex-basis:29px; border-radius:8px; font-size:9px; }
.entity-avatar.small img { width:100% !important; height:100% !important; }
.entity-cell > .identity-copy { min-width:0; max-width:100%; overflow:hidden; }
.entity-cell > .identity-copy strong,
.entity-cell > .identity-copy small { max-width:100%; }
.users-roles-table tbody tr { min-height:62px; }
.users-roles-table td { vertical-align:middle; }
.users-roles-table td:first-child { min-width:280px; max-width:520px; }
.users-roles-table .entity-cell { min-height:44px; max-width:100%; }
.users-roles-table .row-actions-cell { width:58px; text-align:right; }
@media(max-width:760px){
  .entity-avatar:not(.small){width:36px;height:36px;min-width:36px;min-height:36px;flex-basis:36px;border-radius:10px}
  .users-roles-table td:first-child{min-width:0;max-width:none}
  .users-roles-table .entity-cell{align-items:center}
}
.attendance-progress { min-width:110px; }
.attendance-progress > div { display:flex; align-items:baseline; gap:4px; }
.attendance-progress strong { color:var(--slate-800); font-size:11px; }
.attendance-progress span { color:var(--slate-400); font-size:9px; }
.mini-progress { display:block; width:100%; height:4px; margin-top:6px; border-radius:999px; overflow:hidden; background:var(--slate-100); }
.mini-progress i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--brand),#60a5fa); }

/* Schedule cards and detail --------------------------------------------- */
.schedule-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; }
.schedule-card { border:1px solid var(--border); border-radius:12px; background:#fff; box-shadow:var(--shadow-xs); overflow:hidden; }
.schedule-card-head { display:flex; align-items:flex-start; gap:11px; padding:15px; border-bottom:1px solid var(--slate-150); }
.schedule-card-icon { width:39px; height:39px; display:grid; place-items:center; flex:0 0 39px; border-radius:10px; background:var(--brand-soft); color:var(--brand); }
.schedule-card-icon .icon { width:18px; height:18px; }
.schedule-card-head strong { color:var(--slate-900); font-size:13px; }
.schedule-card-head small { display:block; margin-top:3px; color:var(--slate-400); font-size:9px; }
.schedule-card-body { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; padding:15px; }
.schedule-card-body div { min-width:0; }
.schedule-card-body small { display:block; color:var(--slate-400); font-size:8.5px; text-transform:uppercase; letter-spacing:.045em; font-weight:740; }
.schedule-card-body strong { display:block; margin-top:4px; color:var(--slate-700); font-size:10.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.schedule-card-footer { display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:50px; padding:9px 15px; background:var(--slate-50); border-top:1px solid var(--slate-150); color:var(--slate-400); font-size:9.5px; }
.schedule-detail-hero {
  display:flex; align-items:center; justify-content:space-between; gap:18px; padding:20px; margin-bottom:15px;
  border:1px solid #dbe5f5; border-radius:14px; background:linear-gradient(135deg,#fff,#f5f8fd); box-shadow:var(--shadow-sm);
}
.schedule-detail-main { display:flex; align-items:center; gap:14px; min-width:0; }
.schedule-detail-icon { width:50px; height:50px; display:grid; place-items:center; flex:0 0 50px; border-radius:13px; background:var(--brand-soft); color:var(--brand); }
.schedule-detail-icon .icon { width:23px; height:23px; }
.schedule-detail-hero h1 { margin:0 0 4px; color:var(--slate-950); font-size:24px; letter-spacing:-.025em; }
.schedule-detail-hero p { margin:0; color:var(--slate-500); font-size:11px; }
.schedule-detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
.schedule-time-display { display:flex; align-items:center; gap:12px; margin-bottom:17px; }
.schedule-time-display span { color:var(--slate-950); font-size:20px; font-weight:760; letter-spacing:-.025em; }
.schedule-time-display i { width:32px; height:1px; background:var(--slate-300); }
.weekday-row { display:grid; grid-template-columns:repeat(7,1fr); gap:5px; margin-bottom:16px; }
.weekday-row span { min-height:30px; display:grid; place-items:center; border:1px solid var(--border); border-radius:7px; background:var(--slate-50); color:var(--slate-400); font-size:9px; font-weight:730; }
.weekday-row span.active { border-color:#cfe0fc; background:var(--brand-soft); color:var(--brand-strong); }
.schedule-facts { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.schedule-facts div { padding:10px; border:1px solid var(--border); border-radius:9px; background:var(--slate-50); }
.schedule-facts small, .premium-key-values dt { display:block; color:var(--slate-400); font-size:8.5px; font-weight:730; text-transform:uppercase; letter-spacing:.04em; }
.schedule-facts strong, .premium-key-values dd { display:block; margin:4px 0 0; color:var(--slate-800); font-size:10.5px; }
.premium-key-values { margin:0; }
.premium-key-values > div { display:flex; align-items:center; justify-content:space-between; gap:14px; min-height:42px; border-bottom:1px solid var(--slate-150); }
.premium-key-values > div:last-child { border-bottom:0; }
.premium-key-values dd { margin:0; text-align:right; }

/* Access-control workspace --------------------------------------------- */
.role-accordion-list { display:flex; flex-direction:column; gap:9px; }
.role-accordion { border:1px solid var(--border); border-radius:10px; overflow:hidden; background:#fff; }
.role-accordion > summary { display:flex; align-items:center; gap:10px; min-height:60px; padding:11px 13px; cursor:pointer; background:var(--slate-50); list-style:none; }
.role-accordion > summary::-webkit-details-marker { display:none; }
.role-accordion > summary:hover { background:#f3f6fa; }
.role-accordion > summary .grow { min-width:0; }
.role-accordion > summary strong { display:block; color:var(--slate-800); font-size:11.5px; }
.role-accordion > summary small { display:block; margin-top:2px; color:var(--slate-400); font-size:9px; }
.role-accordion > summary > .icon:last-child { color:var(--slate-400); transition:transform .18s ease; }
.role-accordion[open] > summary > .icon:last-child { transform:rotate(180deg); }
.role-permission-form { padding:15px; border-top:1px solid var(--border); }
.permission-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
.permission-option { display:flex; align-items:center; gap:8px; min-height:38px; padding:8px 9px; border:1px solid var(--border); border-radius:8px; background:#fff; cursor:pointer; }
.permission-option:hover { border-color:color-mix(in srgb,var(--brand) 28%,var(--border)); background:var(--brand-soft); }
.permission-option:has(input:checked) { border-color:#bed3f7; background:var(--brand-soft); }
.permission-option input { accent-color:var(--brand); }
.permission-option strong { color:var(--slate-600); font-size:9.25px; font-weight:650; }
.form-actions { display:flex; justify-content:flex-end; margin-top:12px; }
.modal-box-wide { width:min(900px,calc(100vw - 32px)); }

/* Audit and backups ----------------------------------------------------- */
.audit-action { display:inline-flex; padding:5px 7px; border-radius:6px; background:var(--slate-100); color:var(--slate-700); font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:9px; font-weight:650; }
.audit-change { display:grid; grid-template-columns:28px minmax(0,1fr); gap:2px 5px; max-width:230px; }
.audit-change small { color:var(--slate-400); font-size:8px; text-transform:uppercase; }
.audit-change span { color:var(--slate-500); font-size:9px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.backup-location { display:grid; grid-template-columns:25px minmax(0,1fr) auto; align-items:center; gap:10px; padding:12px 13px; margin-bottom:15px; border:1px solid #d7e5ff; border-radius:10px; background:var(--info-soft); color:#294f8a; }
.backup-location > .icon { width:17px; height:17px; }
.backup-location span { display:flex; align-items:center; gap:8px; min-width:0; }
.backup-location strong { font-size:10px; white-space:nowrap; }
.backup-location code { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:9.5px; }
.backup-location small { color:#5875a6; font-size:9px; }

/* Day processing -------------------------------------------------------- */
.process-layout { display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:15px; align-items:start; }
.process-card { max-width:none; }
.process-date-form { display:flex; align-items:flex-end; gap:9px; }
.process-preview-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; margin-top:17px; }
.process-stat { display:flex; align-items:center; gap:9px; min-height:69px; padding:10px; border:1px solid var(--border); border-radius:9px; background:var(--slate-50); }
.process-stat-icon { width:32px; height:32px; display:grid; place-items:center; flex:0 0 32px; border-radius:8px; background:var(--brand-soft); color:var(--brand); }
.process-stat-icon.success { background:var(--success-soft); color:var(--success); }
.process-stat-icon.warning { background:var(--warning-soft); color:var(--warning); }
.process-stat-icon.danger { background:var(--danger-soft); color:var(--danger); }
.process-stat-icon .icon { width:15px; height:15px; }
.process-stat small { display:block; color:var(--slate-400); font-size:8px; text-transform:uppercase; font-weight:730; }
.process-stat strong { display:block; margin-top:3px; color:var(--slate-900); font-size:18px; line-height:1; }
.process-impact-note { display:flex; align-items:flex-start; gap:9px; padding:12px; margin-top:14px; border:1px solid #d7e5ff; border-radius:9px; background:var(--info-soft); color:#294f8a; }
.process-impact-note > .icon { flex:0 0 auto; margin-top:2px; }
.process-impact-note strong { display:block; font-size:10.5px; }
.process-impact-note p { margin:3px 0 0; font-size:9.5px; }
.process-submit { display:flex; justify-content:flex-end; margin-top:14px; }
.process-guidance { padding:18px; border:1px solid var(--border); border-radius:12px; background:linear-gradient(145deg,var(--navy-900),var(--navy-950)); color:#fff; box-shadow:var(--shadow-md); }
.process-guidance-icon { width:40px; height:40px; display:grid; place-items:center; border-radius:10px; background:rgba(255,255,255,.10); color:#fff; }
.process-guidance h3 { margin:14px 0 6px; font-size:14px; }
.process-guidance p { margin:0; color:rgba(226,232,240,.72); font-size:10.5px; }
.process-guidance ul { margin:14px 0 0; padding-left:17px; color:rgba(226,232,240,.72); font-size:9.75px; }
.process-guidance li + li { margin-top:7px; }

/* Manual attendance register ------------------------------------------- */
.premium-manual-summary { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:8px; margin:14px 0; }
.premium-manual-summary > div { display:flex; align-items:center; gap:8px; min-height:62px; padding:9px; border:1px solid var(--border); border-radius:9px; background:#fff; box-shadow:var(--shadow-xs); }
.manual-summary-icon { width:30px; height:30px; display:grid; place-items:center; flex:0 0 30px; border-radius:8px; background:var(--brand-soft); color:var(--brand); }
.manual-summary-icon.success { background:var(--success-soft); color:var(--success); }
.manual-summary-icon.warning { background:var(--warning-soft); color:var(--warning); }
.manual-summary-icon.muted { background:var(--slate-100); color:var(--slate-500); }
.manual-summary-icon .icon { width:14px; height:14px; }
.premium-manual-summary p { margin:0; }
.premium-manual-summary strong { display:block; color:var(--slate-900); font-size:17px; line-height:1; }
.premium-manual-summary span:not(.manual-summary-icon) { display:block; margin-top:3px; color:var(--slate-400); font-size:8px; text-transform:uppercase; letter-spacing:.035em; }
.manual-toolbar { border:1px solid var(--border); border-radius:10px; background:#fff; box-shadow:var(--shadow-xs); }
.manual-table-wrap { margin-top:10px; }

/* Enterprise authentication -------------------------------------------- */
body.is-guest { background:#eaf0f7; }
.enterprise-auth-shell {
  min-height:100vh; display:grid; grid-template-columns:minmax(420px,.95fr) minmax(480px,1.05fr);
  background:#eef2f7;
}
.auth-showcase {
  position:relative; display:flex; flex-direction:column; justify-content:space-between; min-height:100vh;
  padding:44px 52px; overflow:hidden; color:#fff;
  background:
    radial-gradient(circle at 86% 15%,rgba(59,130,246,.34),transparent 34%),
    radial-gradient(circle at 0% 100%,rgba(37,99,235,.22),transparent 42%),
    linear-gradient(145deg,var(--navy-900),var(--navy-950));
}
.auth-showcase::after { content:""; position:absolute; width:380px; height:380px; right:-170px; bottom:-170px; border:1px solid rgba(255,255,255,.08); border-radius:50%; box-shadow:0 0 0 70px rgba(255,255,255,.025),0 0 0 140px rgba(255,255,255,.018); }
.auth-showcase-brand, .auth-mobile-brand { display:flex; align-items:center; gap:11px; position:relative; z-index:1; }
.auth-product-mark { width:42px; height:42px; display:grid; place-items:center; flex:0 0 42px; border-radius:11px; background:linear-gradient(145deg,#4f8df8,var(--brand-strong)); color:#fff; font-size:11px; font-weight:850; box-shadow:0 10px 24px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.28); }
.auth-showcase-brand strong, .auth-mobile-brand strong { display:block; color:inherit; font-size:14px; }
.auth-showcase-brand small, .auth-mobile-brand small { display:block; margin-top:1px; color:rgba(226,232,240,.62); font-size:9.5px; }
.auth-showcase-copy { position:relative; z-index:1; max-width:520px; margin:auto 0; }
.eyebrow.light { color:#91b7fc; }
.auth-showcase-copy h1 { max-width:480px; margin:9px 0 13px; color:#fff; font-size:40px; line-height:1.08; letter-spacing:-.045em; }
.auth-showcase-copy p { max-width:500px; margin:0; color:rgba(226,232,240,.73); font-size:13px; line-height:1.7; }
.auth-feature-list { position:relative; z-index:1; display:grid; grid-template-columns:repeat(3,1fr); gap:9px; }
.auth-feature-list > div { display:flex; align-items:flex-start; gap:8px; min-width:0; padding:11px; border:1px solid rgba(255,255,255,.08); border-radius:10px; background:rgba(255,255,255,.045); backdrop-filter:blur(6px); }
.auth-feature-list .icon { width:16px; height:16px; flex:0 0 auto; color:#8fb7ff; margin-top:1px; }
.auth-feature-list strong { display:block; color:#fff; font-size:9.5px; }
.auth-feature-list small { display:block; margin-top:2px; color:rgba(203,213,225,.58); font-size:8px; line-height:1.35; }
.enterprise-auth-card {
  width:min(470px,calc(100% - 48px)); margin:auto; padding:44px 46px;
  border:1px solid var(--border); border-radius:16px; background:#fff; box-shadow:0 22px 60px rgba(15,23,42,.12);
}
.enterprise-auth-shell > .enterprise-auth-card { align-self:center; }
.auth-mobile-brand { display:none; margin-bottom:30px; color:var(--slate-900); }
.auth-mobile-brand small { color:var(--slate-400); }
.enterprise-auth-card .auth-heading { margin-bottom:23px; }
.enterprise-auth-card .auth-heading h1 { margin:5px 0 6px; color:var(--slate-950); font-size:29px; line-height:1.15; letter-spacing:-.035em; }
.enterprise-auth-card .auth-heading p { margin:0; color:var(--slate-500); font-size:11.5px; }
.auth-form { display:flex; flex-direction:column; gap:2px; }
.field-with-icon { position:relative; }
.field-with-icon .field-icon { position:absolute; left:12px; top:50%; width:16px; height:16px; transform:translateY(-50%); color:var(--slate-400); pointer-events:none; }
.field-with-icon .form-control { padding-left:38px; }
.enterprise-auth-card .form-control { min-height:44px; border-radius:8px; }
.field-label-row { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.field-label-row a, .auth-form-options a, .auth-footnote a { color:var(--brand-strong); font-size:10px; font-weight:680; }
.auth-form-options { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:1px 0 13px; }
.auth-form-options .form-check { display:flex; align-items:center; gap:7px; margin:0; color:var(--slate-500); font-size:10px; }
.auth-form-options input { accent-color:var(--brand); }
.auth-submit { min-height:44px; justify-content:center; margin-top:1px; }
.auth-support-note { display:flex; align-items:flex-start; gap:8px; padding:10px; margin-top:18px; border:1px solid #d7e5ff; border-radius:8px; background:var(--info-soft); color:#426492; font-size:9.25px; line-height:1.5; }
.auth-support-note .icon { flex:0 0 auto; margin-top:1px; }
.auth-footnote { margin:15px 0 0; color:var(--slate-400); font-size:9.5px; text-align:center; }
.auth-single-shell { min-height:100vh; display:grid; place-items:center; padding:28px; background:radial-gradient(circle at 50% 0%,#f8fbff,#eaf0f7 55%,#e5ebf3); }
.auth-recovery-card { position:relative; width:min(460px,100%); }
.auth-recovery-wide { width:min(700px,100%); }
.auth-back-link { display:inline-flex; align-items:center; gap:5px; margin-bottom:24px; color:var(--slate-500); font-size:10px; font-weight:650; }
.auth-recovery-icon { width:44px; height:44px; display:grid; place-items:center; margin-bottom:18px; border-radius:11px; background:var(--brand-soft); color:var(--brand); }
.auth-recovery-icon .icon { width:20px; height:20px; }
.reset-code-field { text-align:center; letter-spacing:.3em; font-weight:750; }

/* Responsive completion pass ------------------------------------------- */
@media(max-width:1100px){
  .permission-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .premium-manual-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
  .auth-feature-list{grid-template-columns:1fr}
}
@media(max-width:920px){
  .department-overview-grid,.schedule-overview-grid,.access-overview-grid,.audit-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .schedule-card-grid,.schedule-detail-grid,.process-layout{grid-template-columns:1fr}
  .enterprise-auth-shell{grid-template-columns:1fr;padding:30px}
  .auth-showcase{display:none}
  .auth-mobile-brand{display:flex}
  .enterprise-auth-card{width:min(500px,100%)}
}
@media(max-width:680px){
  .page-header,.page-heading,.page-actions,.page-toolbar,.schedule-detail-hero{flex-direction:column;align-items:stretch}
  .page-toolbar-actions,.action-strip{justify-content:flex-start}
  .department-overview-grid,.schedule-overview-grid,.access-overview-grid,.audit-overview-grid,.backup-overview-grid{grid-template-columns:1fr 1fr}
  .schedule-card-body,.process-preview-grid{grid-template-columns:1fr 1fr}
  .permission-grid{grid-template-columns:1fr}
  .backup-location{grid-template-columns:25px minmax(0,1fr)}
  .backup-location small{grid-column:2}
  .premium-manual-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .enterprise-auth-shell{padding:18px}
  .enterprise-auth-card{padding:30px 24px;width:100%}
}
@media(max-width:430px){
  .department-overview-grid,.schedule-overview-grid,.access-overview-grid,.audit-overview-grid,.backup-overview-grid,.premium-manual-summary,.schedule-card-body,.process-preview-grid{grid-template-columns:1fr}
  .auth-single-shell{padding:14px}
  .enterprise-auth-card{padding:26px 19px}
  .enterprise-auth-card .form-row{grid-template-columns:1fr}
}
.enterprise-auth-card { max-width:470px; }
.auth-recovery-wide { max-width:700px; }
.modal-box-wide { max-width:900px; }

/* Phase 5C.2 — scanner session visibility and department previews -------- */
.scanner-paused-card {
  display: grid;
  grid-template-columns: 46px minmax(220px,.75fr) minmax(320px,1.25fr);
  gap: 16px;
  align-items: center;
  margin: 0 0 18px;
  padding: 16px;
  border: 1px solid color-mix(in srgb,var(--warning) 28%,var(--border));
  border-radius: 13px;
  background: linear-gradient(135deg,#fff,#fffaf0);
  box-shadow: var(--shadow-xs);
}
.scanner-paused-icon {
  width: 44px; height: 44px; display: grid; place-items: center;
  border-radius: 11px; background: var(--warning-soft); color: var(--warning);
}
.scanner-paused-icon .icon { width: 20px; height: 20px; }
.scanner-paused-copy h2 { margin: 4px 0 3px; color: var(--slate-900); font-size: 14px; }
.scanner-paused-copy p { margin: 0; color: var(--slate-500); font-size: 10.5px; }
.scanner-paused-list { display: flex; flex-direction: column; gap: 7px; }
.scanner-paused-item {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  padding: 9px 10px; border: 1px solid var(--border); border-radius: 9px; background: rgba(255,255,255,.86);
}
.scanner-paused-item > div { min-width: 0; }
.scanner-paused-item strong { display: block; color: var(--slate-800); font-size: 11.5px; }
.scanner-paused-item span { display: block; margin-top: 2px; color: var(--slate-400); font-size: 9.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.session-primary-actions { position: relative; z-index: 4; }

@media (min-width: 901px) { .department-table-wrap { overflow: visible; } }
.department-head-link { color: var(--slate-700); font-weight: 650; text-decoration: none; }
.department-head-link:hover { color: var(--brand); text-decoration: underline; text-underline-offset: 3px; }
.department-employee-popover { position: relative; display: inline-flex; }
.department-employee-trigger {
  display: inline-flex; align-items: center; gap: 8px; min-height: 38px; padding: 4px 7px 4px 4px;
  border: 1px solid transparent; border-radius: 10px; color: inherit; text-decoration: none;
  transition: border-color .15s ease, background-color .15s ease, box-shadow .15s ease;
}
.department-employee-trigger:hover,
.department-employee-popover:focus-within .department-employee-trigger {
  border-color: color-mix(in srgb,var(--brand) 22%,var(--border)); background: var(--brand-soft); box-shadow: var(--shadow-xs);
}
.department-avatar-stack { display: flex; align-items: center; padding-left: 5px; }
.department-mini-avatar {
  width: 27px; height: 27px; display: grid; place-items: center; margin-left: -5px;
  overflow: hidden; border: 2px solid #fff; border-radius: 9px; background: var(--slate-100); color: var(--brand);
  font-size: 8px; font-weight: 800; box-shadow: 0 1px 3px rgba(15,23,42,.12);
}
.department-mini-avatar img,
.department-preview-avatar img { width: 100%; height: 100%; object-fit: cover; }
.department-mini-avatar.more { background: var(--navy-800); color: #fff; }
.department-employee-count { display: flex; flex-direction: column; min-width: 34px; }
.department-employee-count strong { color: var(--slate-800); font-size: 11px; line-height: 1.05; }
.department-employee-count small { color: var(--slate-400); font-size: 8.5px; line-height: 1.05; margin-top: 2px; }
.department-employee-trigger > .icon { width: 13px; height: 13px; color: var(--slate-400); transition: transform .15s ease; }
.department-employee-popover:hover .department-employee-trigger > .icon,
.department-employee-popover:focus-within .department-employee-trigger > .icon { transform: rotate(180deg); color: var(--brand); }
.department-employee-panel {
  position: absolute; left: 50%; top: calc(100% + 8px); z-index: 520;
  width: min(390px, calc(100vw - 36px)); padding: 7px;
  border: 1px solid var(--border); border-radius: 12px; background: #fff; box-shadow: var(--shadow-lg);
  opacity: 0; visibility: hidden; pointer-events: none; transform: translate(-50%,-4px);
  transition: opacity .14s ease, transform .14s ease, visibility .14s ease;
}
.department-employee-popover:hover .department-employee-panel,
.department-employee-popover:focus-within .department-employee-panel {
  opacity: 1; visibility: visible; pointer-events: auto; transform: translate(-50%,0);
}
.department-preview-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; padding: 9px 10px 8px; border-bottom: 1px solid var(--border); }
.department-preview-header > div { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.department-preview-header strong { color: var(--slate-850); font-size: 12px; }
.department-preview-header > span { color: var(--slate-400); font-size: 8.5px; font-weight: 750; text-transform: uppercase; letter-spacing: .07em; }
.department-preview-list { padding: 4px 0; }
.department-preview-person {
  display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 9px;
  min-height: 48px; padding: 6px 8px; border-radius: 8px; color: inherit; text-decoration: none;
}
.department-preview-person:hover,
.department-preview-person:focus-visible { background: var(--slate-50); outline: none; }
.department-preview-avatar {
  width: 34px; height: 34px; display: grid; place-items: center; overflow: hidden;
  border-radius: 9px; background: var(--brand-soft); color: var(--brand); font-size: 9px; font-weight: 800;
}
.department-preview-identity { min-width: 0; }
.department-preview-identity strong { display: block; color: var(--slate-800); font-size: 10.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.department-preview-identity small { display: block; margin-top: 2px; color: var(--slate-400); font-size: 8.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.department-preview-person .badge { font-size: 8px; }
.department-preview-footer {
  display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 38px; padding: 8px 10px;
  border-top: 1px solid var(--border); border-radius: 0 0 8px 8px; color: var(--brand-strong); font-size: 10px; font-weight: 730; text-decoration: none;
}
.department-preview-footer:hover { background: var(--brand-soft); }
.department-preview-footer .icon { width: 14px; height: 14px; }
.department-empty-link { color: var(--slate-500); font-size: 10.5px; text-decoration: none; }
.department-empty-link:hover { color: var(--brand); text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 900px) {
  .scanner-paused-card { grid-template-columns: 42px 1fr; }
  .scanner-paused-list { grid-column: 1 / -1; }
  .department-employee-panel { display: none; }
}
@media (max-width: 620px) {
  .scanner-paused-item { align-items: flex-start; flex-direction: column; }
  .scanner-paused-item form, .scanner-paused-item .btn { width: 100%; }
}

/* Phase 5C.3 — Corporate rotating-QR attendance station ------------------ */
.qr-kiosk {
  --kiosk-navy: #0d1d33;
  --kiosk-navy-soft: #162a47;
  --kiosk-line: #dce3ec;
  --kiosk-bg: #f3f6fa;
  position: relative;
  width: 100%;
  min-height: 620px;
  display: grid;
  grid-template-rows: auto 1fr auto;
  overflow: hidden;
  border: 1px solid var(--kiosk-line);
  border-radius: 14px;
  background: var(--kiosk-bg);
  box-shadow: 0 12px 34px rgba(15, 23, 42, .08);
  color: var(--slate-900);
}
.qr-kiosk-header {
  min-height: 76px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 14px 22px;
  background: var(--kiosk-navy);
  border-bottom: 1px solid rgba(255,255,255,.10);
  color: #fff;
}
.qr-kiosk-brand,
.qr-kiosk-header-meta,
.qr-kiosk-clock,
.qr-kiosk-open-state,
.qr-kiosk-footer,
.qr-kiosk-help,
.qr-latest-activity,
.qr-refresh-panel { display: flex; align-items: center; }
.qr-kiosk-brand { min-width: 0; gap: 12px; }
.qr-kiosk-logo {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.20);
  border-radius: 8px;
  background: #fff;
}
.qr-kiosk-logo img { width: 100%; height: 100%; object-fit: contain; padding: 4px; }
.qr-kiosk-logo-text { background: var(--brand); color: #fff; border-color: rgba(255,255,255,.18); font-size: 11px; font-weight: 850; letter-spacing: .04em; }
.qr-kiosk-brand-copy { display: flex; flex-direction: column; min-width: 0; }
.qr-kiosk-brand-copy strong { color: #fff; font-size: 15px; line-height: 1.15; font-weight: 780; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.qr-kiosk-brand-copy small { margin-top: 4px; color: rgba(226,232,240,.68); font-size: 10px; letter-spacing: .02em; }
.qr-kiosk-header-meta { justify-content: flex-end; gap: 22px; }
.qr-kiosk-open-state { gap: 8px; color: #d9f7e9; font-size: 11px; font-weight: 720; white-space: nowrap; }
.qr-kiosk-face-state {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #f7e8bd;
  font-size: 10px;
  font-weight: 720;
  white-space: nowrap;
}

.qr-kiosk-open-state i {
  width: 8px;
  height: 8px;
  display: block;
  border-radius: 2px;
  background: #32c48d;
  box-shadow: 0 0 0 3px rgba(50,196,141,.14);
  animation: kiosk-status-breathe 2.4s ease-in-out infinite;
}
@keyframes kiosk-status-breathe { 0%,100%{opacity:1} 50%{opacity:.55} }
.qr-kiosk-clock { flex-direction: column; align-items: flex-end; min-width: 205px; }
.qr-kiosk-clock strong { color: #fff; font-size: 14px; line-height: 1; font-variant-numeric: tabular-nums; letter-spacing: .01em; }
.qr-kiosk-clock small { margin-top: 5px; color: rgba(226,232,240,.64); font-size: 9px; white-space: nowrap; }
.qr-kiosk-exit {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 0 12px;
  border: 1px solid rgba(255,255,255,.20);
  border-radius: 7px;
  background: rgba(255,255,255,.07);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  cursor: pointer;
}
.qr-kiosk-exit:hover { background: rgba(255,255,255,.13); border-color: rgba(255,255,255,.32); }
.qr-kiosk-body {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(500px, 1.45fr) minmax(315px, .72fr);
  gap: 0;
  background: var(--kiosk-bg);
}
.qr-code-workspace {
  min-width: 0;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 18px;
  padding: 34px 42px;
  border-right: 1px solid var(--kiosk-line);
  background: #fff;
}
.qr-workspace-heading { width: min(590px, 100%); text-align: center; }
.qr-workspace-heading .eyebrow,
.qr-session-heading .eyebrow { color: var(--brand-strong); font-size: 9px; letter-spacing: .11em; }
.qr-workspace-heading h3 { margin: 7px 0 5px; color: var(--slate-950); font-size: clamp(23px, 2.2vw, 34px); line-height: 1.12; letter-spacing: -.035em; }
.qr-workspace-heading p { max-width: 560px; margin: 0 auto; color: var(--slate-500); font-size: 12px; }
.qr-code-stage { display: grid; place-items: center; width: 100%; }
.qr-kiosk .qr-kiosk-frame {
  width: min(390px, 46vh, 62vw);
  min-width: 270px;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  padding: 18px;
  border: 1px solid #cfd8e5;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(15,23,42,.08);
}
.qr-kiosk .qr-kiosk-frame img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  opacity: 1;
  transition: opacity .18s ease;
}
.qr-kiosk .qr-kiosk-frame img.is-refreshing { opacity: .58; }
.qr-refresh-panel {
  width: min(590px, 100%);
  min-height: 58px;
  position: relative;
  gap: 11px;
  padding: 10px 12px 13px;
  overflow: hidden;
  border: 1px solid var(--kiosk-line);
  border-radius: 9px;
  background: var(--slate-50);
}
.qr-refresh-icon {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  display: grid;
  place-items: center;
  border: 1px solid var(--border);
  border-radius: 7px;
  background: #fff;
  color: var(--brand);
}
.qr-refresh-icon .icon { width: 16px; height: 16px; }
.qr-refresh-copy { display: flex; flex-direction: column; min-width: 0; }
.qr-refresh-copy strong { color: var(--slate-800); font-size: 11.5px; font-variant-numeric: tabular-nums; }
.qr-refresh-copy small { margin-top: 2px; color: var(--slate-400); font-size: 9px; }
.qr-progress-track { position: absolute; left: 0; right: 0; bottom: 0; height: 3px; overflow: hidden; background: #e5eaf1; }
.qr-progress-track > span { display: block; height: 100%; width: 0; background: var(--brand); transition: width .85s linear; }
.qr-session-panel {
  min-width: 0;
  display: flex;
  flex-direction: column;
  padding: 30px 28px;
  background: var(--kiosk-bg);
}
.qr-session-heading { padding-bottom: 18px; border-bottom: 1px solid var(--kiosk-line); }
.qr-session-heading h3 { margin: 7px 0 4px; color: var(--slate-950); font-size: 21px; line-height: 1.2; letter-spacing: -.025em; }
.qr-session-heading > span:last-child { color: var(--slate-400); font-size: 9.5px; font-weight: 720; letter-spacing: .04em; }
.qr-session-details { display: grid; gap: 0; margin: 7px 0 0; }
.qr-session-details > div { display: grid; grid-template-columns: 88px minmax(0,1fr); gap: 14px; padding: 11px 0; border-bottom: 1px solid var(--kiosk-line); }
.qr-session-details dt { color: var(--slate-400); font-size: 9px; font-weight: 760; text-transform: uppercase; letter-spacing: .06em; }
.qr-session-details dd { margin: 0; color: var(--slate-700); font-size: 10.5px; font-weight: 620; text-align: right; overflow-wrap: anywhere; }
.qr-kiosk-metrics { display: grid; grid-template-columns: repeat(3,1fr); margin: 20px 0; border: 1px solid var(--kiosk-line); border-radius: 9px; background: #fff; overflow: hidden; }
.qr-kiosk-metrics > div { min-width: 0; padding: 12px 10px; border-right: 1px solid var(--kiosk-line); text-align: center; }
.qr-kiosk-metrics > div:last-child { border-right: 0; }
.qr-kiosk-metrics span { display: block; color: var(--slate-400); font-size: 8.5px; line-height: 1.2; }
.qr-kiosk-metrics strong { display: block; margin-top: 5px; color: var(--slate-900); font-size: 20px; line-height: 1; font-variant-numeric: tabular-nums; }
.qr-latest-activity {
  min-height: 68px;
  gap: 11px;
  padding: 12px;
  border: 1px solid var(--kiosk-line);
  border-left: 3px solid var(--brand);
  border-radius: 8px;
  background: #fff;
  transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}
.qr-latest-activity.is-updated { border-color: color-mix(in srgb, var(--success) 58%, var(--kiosk-line)); border-left-color: var(--success); background: var(--success-soft); box-shadow: 0 5px 18px rgba(8,122,85,.10); }
.qr-latest-icon { width: 34px; height: 34px; flex: 0 0 34px; display: grid; place-items: center; border-radius: 7px; background: var(--brand-soft); color: var(--brand); }
.qr-latest-icon .icon { width: 16px; height: 16px; }
.qr-latest-copy { min-width: 0; display: flex; flex-direction: column; }
.qr-latest-copy small { color: var(--slate-400); font-size: 8.5px; }
.qr-latest-copy strong { margin-top: 2px; color: var(--slate-800); font-size: 11.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.qr-latest-copy span { margin-top: 2px; color: var(--slate-500); font-size: 9px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.qr-kiosk-help { gap: 9px; margin-top: auto; padding-top: 20px; color: var(--slate-500); }
.qr-kiosk-help > .icon { flex: 0 0 auto; color: var(--brand); }
.qr-kiosk-help > span { display: flex; flex-direction: column; }
.qr-kiosk-help strong { color: var(--slate-700); font-size: 10px; }
.qr-kiosk-help small { margin-top: 2px; font-size: 8.8px; }
.qr-kiosk-footer {
  min-height: 62px;
  justify-content: space-between;
  gap: 18px;
  padding: 11px 20px;
  border-top: 1px solid var(--kiosk-line);
  background: #fff;
}
.qr-kiosk-footer > span { display: inline-flex; align-items: center; gap: 7px; color: var(--slate-500); font-size: 9.5px; }
.qr-kiosk-footer > span .icon { color: var(--success); }

.qr-kiosk:fullscreen,
.qr-kiosk.is-fullscreen {
  width: 100vw;
  height: 100vh;
  min-height: 100vh;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.qr-kiosk:fullscreen .qr-kiosk-header,
.qr-kiosk.is-fullscreen .qr-kiosk-header { min-height: 82px; padding-left: 32px; padding-right: 32px; }
.qr-kiosk:fullscreen .qr-kiosk-body,
.qr-kiosk.is-fullscreen .qr-kiosk-body { grid-template-columns: minmax(590px,1.55fr) minmax(360px,.72fr); }
.qr-kiosk:fullscreen .qr-code-workspace,
.qr-kiosk.is-fullscreen .qr-code-workspace { padding: 24px 48px; gap: 14px; }
.qr-kiosk:fullscreen .qr-kiosk-frame,
.qr-kiosk.is-fullscreen .qr-kiosk-frame { width: min(440px, 54vh); }
.qr-kiosk:fullscreen .qr-session-panel,
.qr-kiosk.is-fullscreen .qr-session-panel { padding: 28px 34px; }
.qr-kiosk:fullscreen .qr-kiosk-footer,
.qr-kiosk.is-fullscreen .qr-kiosk-footer { min-height: 56px; }

@media (max-width: 1000px) {
  .qr-kiosk-body { grid-template-columns: minmax(430px, 1.2fr) minmax(290px,.8fr); }
  .qr-code-workspace { padding: 28px 26px; }
  .qr-session-panel { padding: 26px 22px; }
  .qr-kiosk-header-meta { gap: 12px; }
  .qr-kiosk-clock { min-width: 175px; }
}
@media (max-width: 780px) {
  .qr-kiosk { min-height: 0; }
  .qr-kiosk-header { align-items: flex-start; padding: 14px 16px; }
  .qr-kiosk-header-meta { align-items: flex-end; flex-wrap: wrap; }
  .qr-kiosk-open-state { order: 2; }
  .qr-kiosk-clock { min-width: 0; }
  .qr-kiosk-clock small { max-width: 180px; overflow: hidden; text-overflow: ellipsis; }
  .qr-kiosk-body { grid-template-columns: 1fr; }
  .qr-code-workspace { border-right: 0; border-bottom: 1px solid var(--kiosk-line); }
  .qr-kiosk .qr-kiosk-frame { width: min(360px, 78vw); min-width: 220px; }
  .qr-session-panel { min-height: 430px; }
  .qr-kiosk-footer { align-items: stretch; flex-direction: column; }
  .qr-kiosk-footer .btn { width: 100%; }
}
@media (max-width: 520px) {
  .qr-kiosk-brand-copy small, .qr-kiosk-clock small { display: none; }
  .qr-kiosk-header { min-height: 64px; }
  .qr-kiosk-logo { width: 36px; height: 36px; flex-basis: 36px; }
  .qr-kiosk-header-meta { gap: 9px; }
  .qr-kiosk-clock strong { font-size: 11px; }
  .qr-code-workspace { padding: 24px 16px; }
  .qr-workspace-heading h3 { font-size: 24px; }
  .qr-kiosk .qr-kiosk-frame { padding: 12px; }
  .qr-session-panel { padding: 22px 16px; }
  .qr-session-details > div { grid-template-columns: 72px minmax(0,1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .qr-kiosk-open-state i { animation: none; }
  .qr-kiosk .qr-kiosk-frame img,
  .qr-progress-track > span,
  .qr-latest-activity { transition: none; }
}

/* Phase 5C.4 — employee self-service attendance station */
.portal-attendance-station { margin-top: 15px; overflow: hidden; border-radius: 14px; }
.portal-station-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 22px; padding: 20px 22px; border-bottom: 1px solid var(--border); background: #fff; }
.portal-station-heading h2 { margin: 4px 0 5px; color: var(--slate-900); font-size: 20px; letter-spacing: -.02em; }
.portal-station-heading p { max-width: 760px; margin: 0; color: var(--slate-500); font-size: 10.5px; line-height: 1.55; }
.portal-security-mark { display: inline-flex; align-items: center; gap: 7px; flex: 0 0 auto; min-height: 34px; padding: 7px 10px; border: 1px solid #b9e6d2; border-radius: 8px; background: var(--success-soft); color: var(--success); font-size: 9.5px; font-weight: 760; }
.portal-security-mark .icon { width: 15px; height: 15px; }
.portal-station-grid { display: grid; grid-template-columns: minmax(420px,1.08fr) minmax(320px,.92fr); min-height: 390px; }
.portal-scanner-panel { min-width: 0; padding: 18px 20px 20px; border-right: 1px solid var(--border); background: var(--slate-50); }
.portal-scanner-status-row { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 10px; }
.portal-scanner-status-row strong { display: block; color: var(--slate-850); font-size: 12px; }
.portal-scanner-status-row small { display: block; margin-top: 2px; color: var(--slate-400); font-size: 9px; }
.portal-camera-state { padding: 5px 8px; border: 1px solid var(--border); border-radius: 999px; background: #fff; color: var(--slate-500); font-size: 8.5px; font-weight: 760; text-transform: uppercase; letter-spacing: .04em; }
.portal-video-shell { position: relative; display: grid; place-items: center; width: 100%; aspect-ratio: 16/9; min-height: 240px; overflow: hidden; border: 1px solid #cbd5e1; border-radius: 10px; background: #07111f; }
.portal-video-shell video { width: 100%; height: 100%; object-fit: cover; }
.portal-video-placeholder { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; padding: 20px; background: linear-gradient(145deg,#0b172a,#12243d); color: #fff; text-align: center; }
.portal-video-placeholder[hidden] { display: none; }
.portal-video-placeholder .icon { width: 34px; height: 34px; color: #a9c6f7; }
.portal-video-placeholder strong { color: #fff; font-size: 13px; }
.portal-video-placeholder small { max-width: 270px; color: #9fb0c8; font-size: 9.5px; line-height: 1.45; }
.portal-scan-guide { pointer-events: none; position: absolute; inset: 18%; }
.portal-scan-guide span { position: absolute; width: 34px; height: 34px; border-color: rgba(255,255,255,.92); border-style: solid; }
.portal-scan-guide span:nth-child(1) { top: 0; left: 0; border-width: 3px 0 0 3px; }
.portal-scan-guide span:nth-child(2) { top: 0; right: 0; border-width: 3px 3px 0 0; }
.portal-scan-guide span:nth-child(3) { bottom: 0; left: 0; border-width: 0 0 3px 3px; }
.portal-scan-guide span:nth-child(4) { right: 0; bottom: 0; border-width: 0 3px 3px 0; }
.portal-scanner-controls { display: grid; grid-template-columns: auto auto minmax(160px,1fr); gap: 8px; margin-top: 10px; }
.portal-scanner-controls .form-control { min-width: 0; }
.portal-privacy-note { display: flex; align-items: flex-start; gap: 6px; margin: 11px 0 0; color: var(--slate-500); font-size: 8.8px; line-height: 1.45; }
.portal-privacy-note .icon { flex: 0 0 auto; margin-top: 1px; color: var(--brand); }
.portal-session-panel { min-width: 0; display: flex; flex-direction: column; padding: 18px 20px 20px; background: #fff; }
.portal-session-panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 11px; border-bottom: 1px solid var(--border); }
.portal-session-panel-heading strong { display: block; color: var(--slate-850); font-size: 12px; }
.portal-session-panel-heading small { display: block; margin-top: 2px; color: var(--slate-400); font-size: 9px; }
.portal-session-panel-heading > span { min-width: 26px; padding: 5px 8px; border-radius: 999px; background: var(--brand-soft); color: var(--brand); font-size: 9px; font-weight: 800; text-align: center; }
.portal-session-list { display: flex; flex-direction: column; gap: 9px; margin-top: 11px; }
.portal-session-item { padding: 12px; border: 1px solid var(--border); border-radius: 9px; background: var(--slate-50); }
.portal-session-main { display: flex; align-items: center; gap: 9px; }
.portal-session-icon { width: 30px; height: 30px; display: grid; place-items: center; flex: 0 0 30px; border-radius: 7px; background: #fff; color: var(--brand); border: 1px solid var(--border); }
.portal-session-main strong { display: block; color: var(--slate-800); font-size: 10.5px; }
.portal-session-main small { display: block; margin-top: 2px; color: var(--slate-400); font-size: 8.5px; }
.portal-session-facts { display: flex; flex-wrap: wrap; gap: 5px; margin: 9px 0; }
.portal-session-facts span { padding: 4px 6px; border-radius: 5px; background: #fff; border: 1px solid var(--border); color: var(--slate-500); font-size: 7.8px; font-weight: 700; }
.portal-session-actions { display: flex; flex-wrap: wrap; gap: 7px; }
.portal-session-empty { min-height: 155px; }
.portal-upload-fallback { display: flex; align-items: center; gap: 10px; margin-top: auto; padding-top: 13px; border-top: 1px solid var(--border); }
.portal-upload-fallback > span { color: var(--slate-400); font-size: 8.5px; }
@media(max-width:980px){.portal-station-grid{grid-template-columns:1fr}.portal-scanner-panel{border-right:0;border-bottom:1px solid var(--border)}}
@media(max-width:640px){.portal-station-heading{flex-direction:column}.portal-security-mark{align-self:flex-start}.portal-scanner-panel,.portal-session-panel{padding:15px}.portal-video-shell{min-height:210px}.portal-scanner-controls{grid-template-columns:1fr 1fr}.portal-scanner-controls .form-control{grid-column:1/-1}.portal-upload-fallback{align-items:flex-start;flex-direction:column}}

/* Phase 5C.5 — premium top-hero login experience ------------------------ */
body.is-guest { overflow-x:hidden; background:#f5f7fa; }
.login-page {
  min-height:100vh;
  display:flex;
  flex-direction:column;
  background:
    radial-gradient(circle at 15% 78%,color-mix(in srgb,var(--brand) 5%,transparent),transparent 30%),
    #f5f7fa;
}
.login-hero {
  position:relative;
  min-height:clamp(250px,34vh,350px);
  overflow:hidden;
  isolation:isolate;
  background:var(--navy-900);
  color:#fff;
}
.login-hero-slides,
.login-hero-slide,
.login-hero-slide img,
.login-hero-shade { position:absolute; inset:0; width:100%; height:100%; }
.login-hero-slide {
  opacity:0;
  transform:scale(1.025);
  transition:opacity .95s var(--ease),transform 6.4s linear;
}
.login-hero-slide.is-active { opacity:1; transform:scale(1.065); }
.login-hero-slide img { display:block; object-fit:cover; }
.login-hero-slide:nth-child(1) img { object-position:center 47%; }
.login-hero-slide:nth-child(2) img { object-position:center 43%; }
.login-hero-slide:nth-child(3) img { object-position:center 46%; }
.login-hero-shade {
  z-index:1;
  background:
    linear-gradient(90deg,rgba(5,15,29,.78),rgba(8,21,39,.49) 42%,rgba(8,21,39,.62)),
    linear-gradient(180deg,rgba(5,15,29,.20),rgba(5,15,29,.56));
}
.login-hero-shade::after {
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:48%;
  background:linear-gradient(180deg,transparent,rgba(4,12,24,.34));
}
.login-hero-inner {
  position:relative;
  z-index:2;
  width:min(1180px,calc(100% - 56px));
  min-height:clamp(250px,34vh,350px);
  margin:0 auto;
  padding:26px 0 34px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:space-between;
  text-align:center;
}
.login-brand {
  display:inline-flex;
  align-items:center;
  gap:11px;
  max-width:min(540px,100%);
  padding:7px 12px 7px 7px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:13px;
  background:rgba(7,17,31,.34);
  box-shadow:0 10px 28px rgba(0,0,0,.16);
  backdrop-filter:blur(10px);
}
.login-brand-mark {
  width:42px;
  height:42px;
  flex:0 0 42px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:10px;
  background:linear-gradient(145deg,color-mix(in srgb,var(--brand) 82%,white),var(--brand-strong));
  color:#fff;
  font-size:11px;
  font-weight:850;
  letter-spacing:-.02em;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.24),0 7px 17px rgba(0,0,0,.20);
}
.login-brand-logo { padding:5px; background:#fff; }
.login-brand-logo img { width:100%; height:100%; object-fit:contain; }
.login-brand-copy { min-width:0; text-align:left; line-height:1.18; }
.login-brand-copy strong {
  display:block;
  overflow:hidden;
  color:#fff;
  font-size:13.5px;
  font-weight:760;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.login-brand-copy small {
  display:block;
  margin-top:3px;
  overflow:hidden;
  color:rgba(226,232,240,.70);
  font-size:9.5px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.login-hero-message {
  width:min(750px,100%);
  padding:8px 18px 4px;
  transition:opacity .2s ease,transform .2s ease;
}
.login-hero-message.is-changing { opacity:.12; transform:translateY(5px); }
.login-hero-kicker {
  display:block;
  margin-bottom:8px;
  color:color-mix(in srgb,var(--brand) 48%,#fff);
  font-size:10px;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.login-hero-message h1 {
  margin:0;
  color:#fff;
  font-size:clamp(27px,3vw,42px);
  line-height:1.07;
  letter-spacing:-.045em;
  text-shadow:0 5px 22px rgba(0,0,0,.26);
}
.login-hero-message p {
  max-width:690px;
  margin:10px auto 0;
  color:rgba(235,241,249,.80);
  font-size:clamp(11px,1.1vw,13px);
  line-height:1.65;
  text-shadow:0 3px 15px rgba(0,0,0,.28);
}
.login-hero-dots { display:flex; align-items:center; justify-content:center; gap:7px; }
.login-hero-dots button {
  width:7px;
  height:7px;
  padding:0;
  border:0;
  border-radius:99px;
  background:rgba(255,255,255,.48);
  cursor:pointer;
  transition:width .22s var(--ease),background .22s ease,transform .22s ease;
}
.login-hero-dots button:hover { background:#fff; transform:scale(1.08); }
.login-hero-dots button.is-active { width:25px; background:color-mix(in srgb,var(--brand) 54%,#fff); }
.login-access {
  position:relative;
  z-index:3;
  flex:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:0 22px 20px;
}
.login-card.enterprise-auth-card {
  position:relative;
  width:min(430px,100%);
  max-width:430px;
  margin:-42px auto 0;
  padding:36px 38px 30px;
  border:1px solid rgba(207,215,227,.90);
  border-radius:16px;
  background:rgba(255,255,255,.985);
  box-shadow:0 22px 58px rgba(15,23,42,.16),0 2px 7px rgba(15,23,42,.05);
}
.login-card::before {
  content:"";
  position:absolute;
  inset:0 18px auto;
  height:3px;
  border-radius:0 0 8px 8px;
  background:linear-gradient(90deg,transparent,var(--brand),transparent);
  opacity:.82;
}
.login-card-brand { display:none; justify-content:center; margin-bottom:16px; }
.login-card-logo {
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  overflow:hidden;
  padding:5px;
  border:1px solid var(--border);
  border-radius:12px;
  background:#fff;
  color:var(--brand);
  font-size:12px;
  font-weight:850;
  box-shadow:var(--shadow-sm);
}
.login-card-logo img { width:100%; height:100%; object-fit:contain; }
.login-heading { text-align:center; }
.login-card.enterprise-auth-card .login-heading { margin-bottom:22px; }
.login-card.enterprise-auth-card .login-heading h1 { margin-top:5px; font-size:28px; }
.login-card.enterprise-auth-card .login-heading p { font-size:11px; line-height:1.55; }
.login-form .form-group { margin-bottom:13px; }
.login-form .form-label { color:var(--slate-700); font-size:10px; font-weight:720; }
.login-card.enterprise-auth-card .form-control {
  min-height:45px;
  border-color:#d7dee8;
  background:#fbfcfe;
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.login-card.enterprise-auth-card .form-control:hover { border-color:#c4cedb; background:#fff; }
.login-card.enterprise-auth-card .form-control:focus {
  border-color:color-mix(in srgb,var(--brand) 66%,#b8c4d6);
  background:#fff;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 11%,transparent);
}
.login-password-field .form-control { padding-right:42px; }
.password-toggle {
  position:absolute;
  top:50%;
  right:8px;
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  transform:translateY(-50%);
  border:0;
  border-radius:7px;
  background:transparent;
  color:var(--slate-400);
  cursor:pointer;
}
.password-toggle:hover { background:var(--slate-100); color:var(--slate-700); }
.password-toggle span { display:grid; place-items:center; }
.login-submit { min-height:46px; border-radius:9px; box-shadow:0 8px 18px color-mix(in srgb,var(--brand) 24%,transparent); }
.login-submit:hover { transform:translateY(-1px); box-shadow:0 11px 24px color-mix(in srgb,var(--brand) 28%,transparent); }
.login-assurance {
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:8px 15px;
  margin-top:16px;
  padding-top:15px;
  border-top:1px solid var(--slate-150);
  color:var(--slate-400);
  font-size:8.75px;
  font-weight:650;
}
.login-assurance span { display:inline-flex; align-items:center; gap:5px; }
.login-assurance .icon { color:var(--brand); }
.login-help { margin:15px 0 8px; color:var(--slate-500); font-size:9.5px; text-align:center; }
.login-footer {
  width:min(760px,100%);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin-top:auto;
  padding-top:12px;
  color:var(--slate-400);
  font-size:9px;
}
.login-footer span + span::before { content:"•"; margin-right:8px; color:var(--slate-300); }

@media(max-width:720px){
  .login-hero { min-height:245px; }
  .login-hero-inner { min-height:245px; width:min(100% - 30px,680px); padding:18px 0 28px; }
  .login-brand { padding:6px 10px 6px 6px; }
  .login-brand-mark { width:38px; height:38px; flex-basis:38px; }
  .login-hero-message { padding-inline:2px; }
  .login-hero-message p { max-width:520px; }
  .login-card.enterprise-auth-card { margin-top:-30px; padding:31px 26px 27px; }
}
@media(max-width:460px){
  .login-hero { min-height:225px; }
  .login-hero-inner { min-height:225px; padding:14px 0 24px; }
  .login-brand { max-width:94%; }
  .login-brand-copy strong { font-size:12px; }
  .login-hero-message h1 { font-size:25px; }
  .login-hero-message p { display:none; }
  .login-access { padding-inline:13px; }
  .login-card.enterprise-auth-card { margin-top:-22px; padding:28px 20px 25px; border-radius:14px; }
  .login-card.enterprise-auth-card .login-heading h1 { font-size:25px; }
  .login-assurance { gap:7px 11px; }
  .login-help { max-width:300px; }
}
@media(prefers-reduced-motion:reduce){
  .login-hero-slide,.login-hero-message,.login-submit,.login-hero-dots button { transition:none !important; }
  .login-hero-slide.is-active { transform:none; }
}

/* Phase 5C.7 — Premium sidebar interaction ------------------------------ */
.nav-parent-row {
  position: relative;
  display: flex;
  align-items: center;
  min-width: 0;
}
.nav-parent-row .nav-parent {
  flex: 1 1 auto;
  min-width: 0;
  padding-right: 39px;
}
.nav-group-toggle {
  position: absolute;
  right: 7px;
  top: 50%;
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  transform: translateY(-50%);
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: rgba(203, 213, 225, .55);
  cursor: pointer;
  transition: color .16s ease, background-color .16s ease;
}
.nav-group-toggle:hover,
.nav-group-toggle:focus-visible {
  background: rgba(255,255,255,.08);
  color: #fff;
}
.nav-group-toggle .icon { transition: transform .2s var(--ease); }
.nav-children {
  max-height: 150px;
  opacity: 1;
  overflow: hidden;
  transition: max-height .24s var(--ease), opacity .16s ease, margin .24s var(--ease);
}
.nav-group.is-children-collapsed .nav-children {
  max-height: 0;
  opacity: 0;
  margin: 0;
  pointer-events: none;
}
.nav-group.is-children-collapsed .nav-group-toggle .icon { transform: rotate(-90deg); }

.sidebar-hover-card,
.sidebar-flyout {
  position: fixed;
  z-index: 3600;
  opacity: 0;
  transform: translateX(-5px) scale(.985);
  transform-origin: left center;
  transition: opacity .14s ease, transform .16s var(--ease);
}
.sidebar-hover-card.is-visible,
.sidebar-flyout.is-visible {
  opacity: 1;
  transform: translateX(0) scale(1);
}
.sidebar-hover-card {
  width: min(260px, calc(100vw - 24px));
  padding: 10px 12px 11px;
  border: 1px solid rgba(148,163,184,.24);
  border-radius: 10px;
  background: #0f1b2f;
  color: #fff;
  box-shadow: 0 18px 42px rgba(7,17,31,.24), 0 2px 8px rgba(7,17,31,.16);
  pointer-events: none;
}
.sidebar-hover-card::before,
.sidebar-flyout::before {
  content: "";
  position: absolute;
  left: -6px;
  top: 18px;
  width: 11px;
  height: 11px;
  transform: rotate(45deg);
}
.sidebar-hover-card::before { background: #0f1b2f; border-left: 1px solid rgba(148,163,184,.24); border-bottom: 1px solid rgba(148,163,184,.24); }
.sidebar-hover-card strong {
  display: block;
  font-size: 12.25px;
  line-height: 1.25;
  font-weight: 750;
  letter-spacing: -.01em;
}
.sidebar-hover-card span {
  display: block;
  margin-top: 3px;
  color: rgba(226,232,240,.68);
  font-size: 10.75px;
  line-height: 1.4;
}
.sidebar-flyout {
  width: min(304px, calc(100vw - 24px));
  padding: 8px;
  border: 1px solid var(--border);
  border-radius: 13px;
  background: #fff;
  color: var(--text);
  box-shadow: 0 22px 54px rgba(7,17,31,.20), 0 3px 12px rgba(7,17,31,.10);
}
.sidebar-flyout::before { background: #fff; border-left: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.sidebar-flyout-heading {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 9px 10px 11px;
  border-bottom: 1px solid var(--slate-150);
}
.sidebar-flyout-icon {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: var(--brand-soft);
  color: var(--brand-deep);
}
.sidebar-flyout-icon .icon { width: 19px; height: 19px; }
.sidebar-flyout-heading > span:last-child { min-width: 0; }
.sidebar-flyout-heading strong {
  display: block;
  color: var(--slate-900);
  font-size: 13px;
  line-height: 1.2;
  font-weight: 780;
}
.sidebar-flyout-heading small {
  display: block;
  margin-top: 3px;
  color: var(--slate-500);
  font-size: 10.5px;
  line-height: 1.35;
}
.sidebar-flyout-list { padding: 6px 0 1px; }
.sidebar-flyout-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 20px;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  padding: 8px 10px;
  border-radius: 9px;
  color: var(--slate-700);
}
.sidebar-flyout-item:hover,
.sidebar-flyout-item:focus-visible {
  background: var(--slate-50);
  color: var(--slate-950);
  box-shadow: inset 3px 0 0 color-mix(in srgb, var(--brand) 70%, white);
  outline: 0;
}
.sidebar-flyout-item.is-active {
  background: var(--brand-soft);
  color: var(--brand-deep);
}
.sidebar-flyout-item strong {
  display: block;
  font-size: 11.75px;
  line-height: 1.25;
  font-weight: 700;
}
.sidebar-flyout-item small {
  display: block;
  margin-top: 2px;
  color: var(--slate-500);
  font-size: 9.75px;
  line-height: 1.3;
}
.sidebar-flyout-arrow {
  color: var(--slate-400);
  font-size: 18px;
  line-height: 1;
  text-align: center;
  transition: transform .14s ease, color .14s ease;
}
.sidebar-flyout-item:hover .sidebar-flyout-arrow,
.sidebar-flyout-item:focus-visible .sidebar-flyout-arrow {
  color: var(--brand);
  transform: translateX(2px);
}

@media (min-width: 1051px) {
  :root { --sidebar-collapsed-w: 88px; }
  body.sidebar-collapsed .nav-link::before { display: none !important; content: none !important; }
  body.sidebar-collapsed .nav-section-title {
    width: auto;
    height: 1px;
    margin: 15px 10px 12px;
    padding: 0;
    overflow: visible;
    opacity: 1;
    pointer-events: none;
    background: rgba(255,255,255,.09);
  }
  body.sidebar-collapsed .nav-section-title:first-child { margin-top: 5px; }
  body.sidebar-collapsed .nav-section-title span { display: none; }
  body.sidebar-collapsed .nav-scroll { padding: 15px 17px 22px; }
  body.sidebar-collapsed .nav-link:not(.nav-sub) {
    width: 50px;
    min-height: 48px;
    margin: 4px auto;
    padding: 0;
    justify-content: center;
    border-radius: 12px;
  }
  body.sidebar-collapsed .nav-link:not(.nav-sub)::after {
    right: -19px;
    top: 10px;
    bottom: 10px;
  }
  body.sidebar-collapsed .nav-icon {
    width: 26px;
    height: 26px;
    flex-basis: 26px;
  }
  body.sidebar-collapsed .nav-icon .icon {
    width: 21px;
    height: 21px;
    stroke-width: 1.9;
  }
  body.sidebar-collapsed .nav-parent-row { justify-content: center; }
  body.sidebar-collapsed .nav-parent-row .nav-parent { flex: 0 0 50px; padding: 0; }
  body.sidebar-collapsed .nav-group-toggle,
  body.sidebar-collapsed .nav-children { display: none; }
  body.sidebar-collapsed .sidebar-brand { padding-left: 19px; padding-right: 19px; justify-content: center; }
  body.sidebar-collapsed .brand-link { flex: 0 0 40px; }
  body.sidebar-collapsed .sidebar-footer { padding: 12px 19px; }
  body.sidebar-collapsed .sidebar-user {
    width: 50px;
    min-height: 50px;
    margin: 0 auto;
    padding: 8px;
    border-radius: 12px;
  }
  body.sidebar-collapsed .sidebar .user-avatar { width: 34px; height: 34px; }
}

@media (max-width: 1050px) {
  .sidebar-hover-card,
  .sidebar-flyout { display: none !important; }
  .nav-parent-row .nav-parent { padding-right: 39px; }
}
@media (min-width: 1051px) {
  body.sidebar-collapsed .nav-group.has-active-child .nav-parent {
    background: linear-gradient(90deg, color-mix(in srgb, var(--brand) 30%, transparent), rgba(255,255,255,.06));
    color: #fff;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.055);
  }
  body.sidebar-collapsed .nav-group.has-active-child .nav-parent::after {
    background: color-mix(in srgb, var(--brand) 75%, white);
  }
  body.sidebar-collapsed .nav-group.has-active-child .nav-parent .nav-icon { color: #fff; }
}

/* Phase 5C Part 8 — schedule module integrity and workspace polish */
.module-tabs {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0 0 18px;
  padding: 5px;
  overflow-x: auto;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 5px 18px rgba(15, 23, 42, .04);
}
.module-tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 38px;
  padding: 0 13px;
  border: 1px solid transparent;
  border-radius: 9px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  transition: background .14s ease, border-color .14s ease, color .14s ease, transform .14s ease;
}
.module-tab:hover,
.module-tab:focus-visible {
  border-color: var(--border);
  background: var(--surface-soft, #f7f9fc);
  color: var(--text);
  transform: translateY(-1px);
}
.module-tab.active {
  border-color: color-mix(in srgb, var(--brand) 22%, var(--border));
  background: color-mix(in srgb, var(--brand) 8%, #fff);
  color: var(--brand);
  box-shadow: 0 3px 10px rgba(15, 23, 42, .05);
}
.module-tab .icon { width: 16px; height: 16px; }

.schedule-management-layout {
  display: grid;
  grid-template-columns: minmax(290px, 360px) minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}
.schedule-editor-card {
  position: sticky;
  top: 88px;
  overflow: hidden;
}
.schedule-editor-card .card-header { align-items: flex-start; }
.card-header-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  flex: none;
  background: color-mix(in srgb, var(--brand) 9%, #fff);
  color: var(--brand);
  border: 1px solid color-mix(in srgb, var(--brand) 15%, var(--border));
}
.card-header-icon.warning {
  color: var(--warning);
  background: var(--warning-soft);
  border-color: color-mix(in srgb, var(--warning) 18%, var(--border));
}
.card-header-icon .icon { width: 19px; height: 19px; }
.schedule-records-panel { min-width: 0; }
.stacked-form { display: flex; flex-direction: column; gap: 14px; }
.stacked-form .form-group { margin: 0; }
.optional-label {
  color: var(--muted);
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.field-help {
  display: block;
  margin-top: 5px;
  color: var(--muted);
  font-size: 10.5px;
  line-height: 1.45;
}
.option-stack { display: grid; gap: 8px; }
.setting-choice {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 11px 12px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: #fff;
  cursor: pointer;
  transition: border-color .14s ease, background .14s ease, box-shadow .14s ease;
}
.setting-choice:hover {
  border-color: color-mix(in srgb, var(--brand) 26%, var(--border));
  background: color-mix(in srgb, var(--brand) 2.5%, #fff);
  box-shadow: 0 5px 14px rgba(15, 23, 42, .045);
}
.setting-choice input { margin-top: 3px; accent-color: var(--brand); }
.setting-choice span { display: flex; flex-direction: column; min-width: 0; }
.setting-choice strong { color: var(--text); font-size: 12px; }
.setting-choice small { margin-top: 2px; color: var(--muted); font-size: 10.5px; line-height: 1.4; }
.table-subline { display: block; margin-top: 3px; color: var(--muted); font-size: 10.5px; }
.align-right { text-align: right; }
.justify-end { justify-content: flex-end; }
.btn-danger-ghost {
  border-color: transparent;
  background: transparent;
  color: var(--danger);
}
.btn-danger-ghost:hover,
.btn-danger-ghost:focus-visible {
  border-color: color-mix(in srgb, var(--danger) 18%, var(--border));
  background: var(--danger-soft);
  color: var(--danger);
}
.entity-icon.warning {
  color: var(--warning);
  background: var(--warning-soft);
}
.form-error-summary { margin-bottom: 14px; }
.form-error-summary ul { margin: 7px 0 0 18px; padding: 0; }
.form-error-summary li { margin: 2px 0; }
.schedule-form-shell { max-width: 1020px; }

@media (max-width: 1050px) {
  .schedule-management-layout { grid-template-columns: 1fr; }
  .schedule-editor-card { position: static; }
}
@media (max-width: 720px) {
  .module-tabs { padding: 4px; border-radius: 10px; }
  .module-tab { min-height: 36px; padding: 0 10px; }
  .schedule-overview-grid { grid-template-columns: 1fr 1fr; }
  .schedule-records-panel .premium-filter-bar { align-items: stretch; }
  .schedule-records-panel .premium-filter-bar > * { width: 100%; }
  .align-right { text-align: left; }
  .justify-end { justify-content: flex-start; }
}
@media (max-width: 480px) {
  .schedule-overview-grid { grid-template-columns: 1fr; }
}
.assignment-form-grid {
  display: grid;
  grid-template-columns: minmax(160px,.7fr) minmax(250px,1.35fr) minmax(150px,.7fr) minmax(150px,.7fr);
  gap: 13px;
  align-items: end;
}
.assignment-form-grid .form-group { margin: 0; }
.assignment-notes-field { grid-column: 1 / 4; }
.assignment-submit { display: flex; justify-content: flex-end; align-items: end; }
@media (max-width: 980px) {
  .assignment-form-grid { grid-template-columns: 1fr 1fr; }
  .assignment-target-field,.assignment-notes-field { grid-column: auto; }
  .assignment-submit { justify-content: flex-start; }
}
@media (max-width: 620px) {
  .assignment-form-grid { grid-template-columns: 1fr; }
}

/* Phase 5D — mobile-first employee self-service */
.employee-app-shell{max-width:980px;margin:0 auto;display:grid;gap:14px}.employee-welcome{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:4px 2px 6px}.employee-welcome-copy h1{margin:4px 0 3px;color:var(--slate-900);font-size:27px;line-height:1.08;letter-spacing:-.035em}.employee-welcome-copy p{margin:0;color:var(--slate-500);font-size:11px}.employee-kicker,.employee-section-label{display:block;color:var(--brand);font-size:8.5px;font-weight:820;letter-spacing:.11em;text-transform:uppercase}.employee-profile-photo{width:48px;height:48px;display:grid;place-items:center;flex:0 0 48px;overflow:hidden;border-radius:14px;background:#dce8fb;color:var(--navy-800);font-size:16px;font-weight:850}.employee-profile-photo img{width:100%;height:100%;object-fit:cover}.employee-message:empty{display:none}.employee-message .notice{margin:0;border-radius:11px;padding:13px 15px;font-size:11px;line-height:1.5}.employee-today-card{padding:20px;border:1px solid #1b3150;border-radius:18px;background:var(--navy-900);color:#fff;box-shadow:0 15px 34px rgba(15,35,62,.16)}.employee-today-top{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.employee-today-top h2{margin:4px 0 2px;color:#fff;font-size:21px;letter-spacing:-.025em}.employee-today-top p{margin:0;color:#9eb0c8;font-size:10px}.employee-status-pill{display:inline-flex;align-items:center;gap:6px;min-height:29px;padding:6px 9px;border-radius:999px;font-size:9px;font-weight:780;white-space:nowrap}.employee-status-pill.pending{background:rgba(255,255,255,.09);color:#e3eaf3}.employee-status-pill.active{background:rgba(16,185,129,.16);color:#bff2df}.employee-status-pill.complete{background:rgba(59,130,246,.17);color:#d4e4ff}.employee-today-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:17px 0}.employee-today-facts>div{padding:10px;border:1px solid rgba(255,255,255,.09);border-radius:10px;background:rgba(255,255,255,.045)}.employee-today-facts small{display:block;color:#8ea1ba;font-size:7.5px;font-weight:750;letter-spacing:.06em;text-transform:uppercase}.employee-today-facts strong{display:block;margin-top:5px;color:#fff;font-size:11px}.employee-primary-action{min-height:42px;padding:10px 15px;background:#fff;border-color:#fff;color:var(--navy-900);font-weight:800}.employee-primary-action:hover{background:#edf4ff;border-color:#edf4ff;color:var(--navy-900)}.employee-quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.employee-mini-card{display:flex;align-items:center;gap:11px;min-height:82px;padding:13px;border:1px solid var(--border);border-radius:12px;background:#fff;box-shadow:var(--shadow-xs)}.employee-mini-card>span{width:36px;height:36px;display:grid;place-items:center;flex:0 0 36px;border-radius:10px;background:var(--brand-soft);color:var(--brand)}.employee-mini-card small{display:block;color:var(--slate-400);font-size:8px;font-weight:750;text-transform:uppercase;letter-spacing:.05em}.employee-mini-card strong{display:block;margin-top:3px;color:var(--slate-850);font-size:12px}.employee-mini-card p{margin:2px 0 0;color:var(--slate-500);font-size:8.5px}.employee-scan-card,.employee-week-card,.employee-account-card,.employee-history-card{overflow:hidden;border-radius:14px}.employee-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:17px 18px;border-bottom:1px solid var(--border);background:#fff}.employee-card-heading.compact{align-items:center;padding:15px 17px}.employee-card-heading h2{margin:4px 0 3px;color:var(--slate-900);font-size:17px;letter-spacing:-.02em}.employee-card-heading p{margin:0;color:var(--slate-500);font-size:9.5px}.employee-secure-badge{display:inline-flex;align-items:center;gap:5px;padding:6px 8px;border:1px solid #b9e6d2;border-radius:8px;background:var(--success-soft);color:var(--success);font-size:8.5px;font-weight:760}.employee-scan-layout{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(290px,.92fr)}.employee-scanner-panel{padding:16px 18px 18px;border-right:1px solid var(--border);background:var(--slate-50)}.employee-scanner-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.employee-scanner-heading strong{display:block;color:var(--slate-850);font-size:11px}.employee-scanner-heading small{display:block;margin-top:2px;color:var(--slate-400);font-size:8.5px}.employee-video-shell{min-height:220px}.employee-scanner-controls{grid-template-columns:auto auto minmax(140px,1fr)}.employee-location-note{display:flex;align-items:flex-start;gap:7px;margin-top:10px;padding:9px 10px;border-radius:9px;background:#eef4fc;color:var(--slate-600);font-size:8.5px;line-height:1.45}.employee-location-note .icon{flex:0 0 auto;color:var(--brand)}.employee-sessions-panel{display:flex;flex-direction:column;padding:16px 18px 18px}.employee-list-heading{display:flex;align-items:center;justify-content:space-between;padding-bottom:10px;border-bottom:1px solid var(--border)}.employee-list-heading strong{display:block;color:var(--slate-850);font-size:11px}.employee-list-heading small{display:block;margin-top:2px;color:var(--slate-400);font-size:8.5px}.employee-list-heading>span{min-width:26px;padding:5px 8px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:9px;font-weight:800;text-align:center}.employee-session-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}.employee-session-card{padding:11px;border:1px solid var(--border);border-radius:10px;background:var(--slate-50)}.employee-session-title{display:flex;align-items:center;gap:8px}.employee-session-title>span{width:29px;height:29px;display:grid;place-items:center;flex:0 0 29px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--brand)}.employee-session-title strong{display:block;color:var(--slate-850);font-size:10px}.employee-session-title small{display:block;margin-top:2px;color:var(--slate-400);font-size:8px}.employee-session-meta{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0}.employee-session-meta span{padding:3px 6px;border:1px solid var(--border);border-radius:5px;background:#fff;color:var(--slate-500);font-size:7.5px;font-weight:700}.employee-session-actions{display:flex;gap:6px;flex-wrap:wrap}.employee-upload-fallback{margin-top:auto}.employee-empty-state{display:flex;min-height:120px;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:18px;color:var(--slate-400);text-align:center}.employee-empty-state .icon{width:24px;height:24px;color:var(--slate-300)}.employee-empty-state strong{color:var(--slate-700);font-size:10px}.employee-empty-state p{max-width:260px;margin:0;font-size:8.5px;line-height:1.45}.employee-content-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:14px}.employee-week-total{padding:6px 9px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:9px;font-weight:800}.employee-week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;padding:16px 17px 8px}.employee-week-day{display:grid;place-items:center;gap:5px;padding:7px 3px;border:1px solid var(--border);border-radius:9px;background:var(--slate-50)}.employee-week-day small{color:var(--slate-400);font-size:7.5px;font-weight:750;text-transform:uppercase}.employee-week-day span{color:var(--slate-700);font-size:10px;font-weight:800}.employee-week-day i{width:5px;height:5px;border-radius:50%;background:var(--slate-200)}.employee-week-day.present i{background:var(--success)}.employee-week-day.absent i{background:var(--danger)}.employee-week-day.today{border-color:#a9c6f7;background:#eef4fc}.employee-week-summary{display:grid;grid-template-columns:repeat(3,1fr);margin:8px 17px 16px;border:1px solid var(--border);border-radius:10px}.employee-week-summary>div{padding:10px;border-right:1px solid var(--border);text-align:center}.employee-week-summary>div:last-child{border-right:0}.employee-week-summary small{display:block;color:var(--slate-400);font-size:7.5px;text-transform:uppercase}.employee-week-summary strong{display:block;margin-top:4px;color:var(--slate-850);font-size:13px}.employee-account-actions{display:flex;flex-direction:column;padding:5px 16px 10px}.employee-account-actions>div,.employee-account-actions>a{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:54px;border-bottom:1px solid var(--slate-150);color:inherit}.employee-account-actions>*:last-child{border-bottom:0}.employee-account-actions>div>span,.employee-account-actions>a>span{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;background:var(--slate-100);color:var(--brand)}.employee-account-actions p{margin:0;min-width:0}.employee-account-actions strong{display:block;overflow:hidden;color:var(--slate-800);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.employee-account-actions small{display:block;margin-top:2px;color:var(--slate-400);font-size:8px}.employee-history-list{display:flex;flex-direction:column;padding:2px 17px 12px}.employee-history-list article{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:62px;border-bottom:1px solid var(--slate-150)}.employee-history-list article:last-child{border-bottom:0}.employee-history-date{width:38px;height:40px;display:grid;place-items:center;border-radius:9px;background:var(--slate-100)}.employee-history-date strong{color:var(--slate-800);font-size:12px;line-height:1}.employee-history-date small{color:var(--slate-400);font-size:7px;text-transform:uppercase}.employee-history-list article>div strong{display:block;color:var(--slate-800);font-size:10px}.employee-history-list article>div small{display:block;margin-top:3px;color:var(--slate-400);font-size:8.5px}
@media(max-width:820px){.employee-scan-layout,.employee-content-grid{grid-template-columns:1fr}.employee-scanner-panel{border-right:0;border-bottom:1px solid var(--border)}}
@media(max-width:640px){.employee-app-shell{gap:12px}.employee-welcome{padding-top:0}.employee-welcome-copy h1{font-size:23px}.employee-today-card{padding:16px;border-radius:16px}.employee-today-top{align-items:flex-start}.employee-today-facts{grid-template-columns:repeat(2,minmax(0,1fr));margin:14px 0}.employee-quick-grid{grid-template-columns:1fr}.employee-mini-card{min-height:70px}.employee-card-heading{padding:15px;flex-direction:column}.employee-card-heading.compact{flex-direction:row}.employee-secure-badge{align-self:flex-start}.employee-scanner-panel,.employee-sessions-panel{padding:14px}.employee-video-shell{min-height:195px}.employee-scanner-controls{grid-template-columns:1fr 1fr}.employee-scanner-controls .form-control{grid-column:1/-1}.employee-week-strip{padding:14px 12px 7px;gap:4px}.employee-week-day{padding:6px 1px}.employee-week-summary{margin:7px 12px 13px}.employee-history-list{padding-left:12px;padding-right:12px}.employee-history-list article{grid-template-columns:38px minmax(0,1fr)}.employee-history-list article>.badge{grid-column:2;justify-self:start;margin-bottom:8px}.employee-upload-fallback{align-items:flex-start;flex-direction:column}}

/* Phase 5D.1 — employee portal workflow polish */
.employee-focus-shell{max-width:1080px}.employee-welcome-compact{padding-bottom:4px}.employee-guidance{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:13px;align-items:center;padding:15px 17px;border:1px solid var(--border);border-radius:13px;background:#fff;box-shadow:var(--shadow-xs)}.employee-guidance-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:11px;background:var(--surface-alt);color:var(--navy-700)}.employee-guidance strong{display:block;font-size:14px;color:var(--text)}.employee-guidance p{margin:3px 0 0;color:var(--muted);font-size:12px;line-height:1.45}.employee-guidance-action{border-color:#bfdbfe;background:#eff6ff}.employee-guidance-success{border-color:#bbf7d0;background:#f0fdf4}.employee-guidance-success .employee-guidance-icon{background:#dcfce7;color:#15803d}.employee-guidance-muted{background:var(--surface-alt)}.employee-notice-stack{display:grid;gap:9px}.employee-persistent-notice{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:11px;align-items:center;padding:12px 14px;border:1px solid #bfdbfe;border-radius:11px;background:#eff6ff}.employee-persistent-notice p{margin:2px 0 0;font-size:12px;color:#475569}.employee-priority-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr);gap:16px}.employee-session-primary,.employee-today-summary{padding:19px;border:1px solid var(--border);border-radius:15px;background:#fff;box-shadow:var(--shadow-sm)}.employee-session-primary.is-active{border-color:#93c5fd;box-shadow:0 8px 24px rgba(37,99,235,.08)}.employee-session-primary-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.employee-session-primary h2{margin:3px 0 0;font-size:21px}.employee-session-primary-time{display:flex;justify-content:space-between;gap:12px;margin:17px 0 14px;padding-bottom:14px;border-bottom:1px solid var(--border)}.employee-session-primary-time strong{font-size:16px}.employee-session-primary-time span{font-size:12px;color:var(--muted);text-align:right}.employee-session-primary-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:15px}.employee-session-primary-facts div{padding:10px;border-radius:9px;background:var(--surface-alt)}.employee-session-primary-facts small,.compact-facts small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.055em}.employee-session-primary-facts strong{display:block;margin-top:4px;font-size:12px}.compact-facts{grid-template-columns:repeat(2,1fr)}.employee-today-state-row{margin:10px 0 3px}.employee-result-zone:empty{display:none}.employee-result-card{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:14px;align-items:start;padding:17px;border:1px solid;border-radius:14px;box-shadow:var(--shadow-sm)}.employee-result-card.result-success{border-color:#86efac;background:#f0fdf4}.employee-result-card.result-danger{border-color:#fca5a5;background:#fff7f7}.employee-result-card.result-warning{border-color:#fde68a;background:#fffbeb}.employee-result-card.result-info{border-color:#93c5fd;background:#eff6ff}.employee-result-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;font-size:20px;font-weight:800;background:rgba(255,255,255,.8)}.employee-result-card strong{font-size:15px}.employee-result-card p{margin:4px 0 0;font-size:12px;line-height:1.5;color:#475569}.employee-result-details{display:flex;flex-wrap:wrap;gap:8px;margin-top:11px}.employee-result-details span{min-width:82px;padding:7px 9px;border-radius:8px;background:rgba(255,255,255,.7)}.employee-result-details small{display:block;font-size:8px;text-transform:uppercase;color:#64748b}.employee-result-details strong{font-size:11px}.employee-result-actions{display:flex;gap:7px;align-items:center}.employee-scan-card-calm{box-shadow:var(--shadow-xs)}.compact-session-list{max-height:340px;overflow:auto}.employee-session-card.recommended{border-color:#93c5fd}.employee-reminder-form{display:grid;gap:13px}.employee-reminder-channels,.employee-reminder-options{display:flex;flex-wrap:wrap;gap:8px}.employee-reminder-channels label,.employee-reminder-options label{display:flex;gap:7px;align-items:center;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface-alt);font-size:11px;cursor:pointer}.employee-reminder-channels input,.employee-reminder-options input{accent-color:var(--accent)}
@media(max-width:820px){.employee-priority-grid{grid-template-columns:1fr}.employee-guidance{grid-template-columns:38px 1fr}.employee-guidance>.btn{grid-column:2;justify-self:start}.employee-result-card{grid-template-columns:42px 1fr}.employee-result-actions{grid-column:2;justify-self:start}.employee-session-primary-facts{grid-template-columns:1fr 1fr}.employee-session-primary-time{display:grid}.employee-session-primary-time span{text-align:left}.employee-persistent-notice{grid-template-columns:28px 1fr}.employee-notice-dismiss{grid-column:2;justify-self:start}}

/* Phase 5D.2 — employee self-service workspace */
.employee-workspace-page{max-width:1180px;margin:0 auto}.ess-grid{display:grid;gap:16px}.ess-grid-main{grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr)}.ess-side-stack{display:flex;flex-direction:column;gap:16px}.ess-list{display:flex;flex-direction:column}.ess-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-height:66px;padding:11px 16px;border-bottom:1px solid var(--border)}.ess-row:last-child{border-bottom:0}.ess-row strong{display:block;color:var(--slate-850);font-size:11px}.ess-row small{display:block;margin-top:3px;color:var(--slate-500);font-size:9px}.ess-date{width:48px;text-align:center}.ess-date strong{font-size:10px}.ess-dot{width:9px;height:9px;border-radius:50%;background:var(--slate-300)}.ess-dot.live{background:var(--success);box-shadow:0 0 0 5px var(--success-soft)}.ess-dot.warning{background:var(--warning)}.ess-list.compact .ess-row{min-height:56px;padding:9px 14px}.ess-badge-layout{display:grid;grid-template-columns:minmax(420px,1fr) minmax(300px,.62fr);gap:18px;align-items:start}.ess-badge-card{width:100%;max-width:650px;margin:0 auto}.ess-badge-actions{padding:18px}.ess-action-stack{display:grid;gap:9px;margin:16px 0}.ess-notice-list{display:flex;flex-direction:column}.ess-notice{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:12px;padding:16px;border-bottom:1px solid var(--border);background:#fff}.ess-notice.is-unread{background:var(--brand-soft)}.ess-notice-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#fff;color:var(--brand);border:1px solid var(--border)}.ess-notice-meta{display:flex;align-items:center;gap:8px;margin-bottom:7px}.ess-notice p{margin:4px 0 0;color:var(--slate-500);font-size:10px;line-height:1.5}.ess-settings-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(290px,.75fr);gap:16px}.ess-settings-form{padding:4px 16px 16px}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:58px;border-bottom:1px solid var(--border);cursor:pointer}.toggle-row span strong,.toggle-row span small{display:block}.toggle-row span strong{font-size:10.5px;color:var(--slate-800)}.toggle-row span small{margin-top:2px;color:var(--slate-400);font-size:8.5px}.toggle-row input{width:18px;height:18px}.ess-profile-summary{padding:20px}.employee-profile-photo.large{width:76px;height:76px;flex-basis:76px;font-size:22px}.ess-action-list a{display:grid;grid-template-columns:24px minmax(0,1fr) 18px;gap:10px;align-items:center;padding:15px;color:inherit}.ess-action-list a:hover{background:var(--slate-50)}.ess-action-list strong,.ess-action-list small{display:block}.ess-action-list strong{font-size:10.5px}.ess-action-list small{margin-top:3px;color:var(--slate-400);font-size:8.5px}.w-full{width:100%}@media(max-width:900px){.ess-grid-main,.ess-settings-grid,.ess-badge-layout{grid-template-columns:1fr}}@media(max-width:600px){.employee-workspace-page .page-header{align-items:flex-start}.ess-row{padding-inline:12px}.ess-notice{grid-template-columns:34px minmax(0,1fr)}.ess-notice form{grid-column:2}.ess-badge-card{transform:scale(.94);transform-origin:top center}.content{padding-left:12px;padding-right:12px}}
@media print{.sidebar,.topbar,.app-footer,.ess-badge-actions,.page-header{display:none!important}.main,.content{margin:0!important;padding:0!important}.ess-badge-layout{display:block}.ess-badge-card{max-width:760px;margin:20px auto;box-shadow:none}}


/* Phase 5D.3 — employee portal UX consistency, polish and enrichment */
.employee-portal{--employee-content:1120px;--employee-radius:14px;--employee-gap:18px;--employee-text:#172033;--employee-muted:#667085;--employee-soft:#f7f9fc;--employee-border:#e4e9f0}
.employee-portal .content{padding-bottom:34px}
.employee-portal .employee-app-shell,.employee-portal .employee-workspace-page{max-width:var(--employee-content);margin:0 auto}
.employee-portal .employee-app-shell,.employee-portal .employee-workspace-page,.employee-portal .ess-grid,.employee-portal .ess-side-stack{gap:var(--employee-gap)}
.employee-portal .card,.employee-portal .employee-session-primary,.employee-portal .employee-today-summary,.employee-portal .employee-guidance,.employee-portal .employee-persistent-notice,.employee-portal .employee-result-card{border:1px solid var(--employee-border);border-radius:var(--employee-radius);box-shadow:0 5px 18px rgba(15,23,42,.055);background:#fff}
.employee-portal .page-header{margin-bottom:18px;padding:2px 0 4px}
.employee-portal .page-header h1,.employee-portal .employee-welcome-copy h1{color:var(--employee-text);font-size:clamp(1.55rem,2vw,2rem);letter-spacing:-.025em;line-height:1.15}
.employee-portal .page-header p,.employee-portal .employee-welcome-copy p{max-width:680px;color:var(--employee-muted);font-size:.94rem;line-height:1.55}
.employee-portal .eyebrow,.employee-portal .employee-section-label,.employee-portal .employee-kicker{font-size:.72rem;letter-spacing:.085em;font-weight:800;text-transform:uppercase}
.employee-portal .card-header,.employee-portal .employee-card-heading{padding:18px 20px;border-bottom:1px solid var(--employee-border)}
.employee-portal .card-header strong,.employee-portal .employee-card-heading h2,.employee-portal .employee-list-heading strong{font-size:1rem;line-height:1.3;color:var(--employee-text)}
.employee-portal .card-header small,.employee-portal .employee-card-heading p,.employee-portal .employee-list-heading small{font-size:.82rem;line-height:1.45;color:var(--employee-muted)}
.employee-portal .employee-welcome{padding:8px 2px 2px}
.employee-portal .employee-profile-photo{box-shadow:0 0 0 4px #fff,0 8px 24px rgba(15,23,42,.12)}
.employee-portal .employee-guidance{padding:16px 18px;align-items:center;min-height:72px}
.employee-portal .employee-guidance strong{font-size:.96rem}.employee-portal .employee-guidance p{font-size:.86rem;line-height:1.48}
.employee-portal .employee-priority-grid{gap:var(--employee-gap)}
.employee-portal .employee-session-primary,.employee-portal .employee-today-summary{padding:20px}
.employee-portal .employee-session-primary h2,.employee-portal .employee-today-summary h2{font-size:1.15rem}
.employee-portal .employee-session-primary-time strong{font-size:1.15rem}.employee-portal .employee-session-primary-time span{font-size:.86rem}
.employee-portal .employee-session-primary-facts,.employee-portal .employee-today-facts{gap:10px}
.employee-portal .employee-session-primary-facts>div,.employee-portal .employee-today-facts>div{padding:12px;border-radius:10px;background:var(--employee-soft);border:1px solid var(--employee-border)}
.employee-portal .employee-session-primary-facts small,.employee-portal .employee-today-facts small{font-size:.72rem}.employee-portal .employee-session-primary-facts strong,.employee-portal .employee-today-facts strong{font-size:.94rem}
.employee-portal .employee-primary-action{min-height:48px;font-size:.95rem;border-radius:10px}
.employee-portal .employee-result-zone{position:relative;z-index:3}
.employee-portal .employee-result-card{grid-template-columns:46px minmax(0,1fr) auto;padding:18px;border-width:2px}
.employee-portal .employee-result-card.result-success{border-color:#75c69a;background:#f1fbf5}.employee-portal .employee-result-card.result-danger{border-color:#ef9a9a;background:#fff5f5}.employee-portal .employee-result-card.result-warning{border-color:#efc36d;background:#fffaf0}.employee-portal .employee-result-card.result-info{border-color:#91b7ef;background:#f3f7fe}
.employee-portal .employee-result-icon{width:42px;height:42px;font-size:1.2rem}.employee-portal .employee-result-card>div>strong{font-size:1.02rem}.employee-portal .employee-result-card p{font-size:.88rem;line-height:1.5}.employee-portal .employee-result-actions{align-self:center}
.employee-portal .employee-persistent-notice{padding:15px 16px;border-left-width:4px}.employee-portal .employee-persistent-notice strong{font-size:.94rem}.employee-portal .employee-persistent-notice p{font-size:.84rem;line-height:1.5}
.employee-portal .employee-scan-layout{gap:0}.employee-portal .employee-scanner-panel,.employee-portal .employee-sessions-panel{padding:20px}
.employee-portal .employee-video-shell{min-height:300px;border-radius:12px}.employee-portal .portal-video-placeholder strong{font-size:.98rem}.employee-portal .portal-video-placeholder small{font-size:.82rem}
.employee-portal .employee-location-note{font-size:.78rem;padding:11px 12px}
.employee-portal .employee-session-card{padding:13px;border-radius:11px;background:#fff}.employee-portal .employee-session-title strong{font-size:.9rem}.employee-portal .employee-session-title small,.employee-portal .employee-session-meta span{font-size:.75rem}
.employee-portal .employee-history-list article{min-height:70px}.employee-portal .employee-history-list article>div strong{font-size:.9rem}.employee-portal .employee-history-list article>div small{font-size:.78rem}
.employee-portal .employee-week-day small{font-size:.7rem}.employee-portal .employee-week-day span{font-size:.9rem}.employee-portal .employee-week-summary small{font-size:.68rem}.employee-portal .employee-week-summary strong{font-size:1rem}
.employee-portal .ess-row{min-height:72px;padding:13px 18px}.employee-portal .ess-row strong{font-size:.92rem}.employee-portal .ess-row small{font-size:.78rem;line-height:1.45}.employee-portal .ess-list.compact .ess-row{min-height:62px;padding:11px 16px}
.employee-portal .ess-notice{padding:18px}.employee-portal .ess-notice p{font-size:.84rem}.employee-portal .ess-notice-meta small{font-size:.74rem}.employee-portal .ess-notice.is-unread{background:#f3f7fe;border-left:3px solid var(--brand)}
.employee-portal .toggle-row{min-height:68px}.employee-portal .toggle-row span strong{font-size:.91rem}.employee-portal .toggle-row span small{font-size:.78rem;line-height:1.4}.employee-portal .toggle-row input{width:20px;height:20px}
.employee-portal .detail-list>div{padding:13px 16px}.employee-portal .detail-list span{font-size:.78rem}.employee-portal .detail-list strong{font-size:.88rem}
.employee-portal .form-grid{padding:20px;gap:16px}.employee-portal .form-label{font-size:.8rem;font-weight:750}.employee-portal .form-control{min-height:44px;border-radius:9px;font-size:.9rem}.employee-portal textarea.form-control{min-height:112px}
.employee-portal .btn{min-height:40px;border-radius:9px;font-size:.84rem;font-weight:750}.employee-portal .btn-sm{min-height:34px}.employee-portal .btn-primary{box-shadow:0 5px 12px color-mix(in srgb,var(--brand) 20%,transparent)}
.employee-portal .badge{font-size:.7rem;line-height:1;padding:6px 8px}
.employee-portal .empty-state,.employee-portal .employee-empty-state{padding:34px 22px;min-height:170px}.employee-portal .empty-state h3,.employee-portal .employee-empty-state strong{font-size:1rem}.employee-portal .empty-state p,.employee-portal .employee-empty-state p{font-size:.84rem;line-height:1.5}
.employee-portal .callout{border-radius:11px;padding:14px 16px}.employee-portal .callout strong{font-size:.9rem}.employee-portal .callout p{font-size:.8rem;line-height:1.5}
.employee-portal .ess-badge-card{border-radius:18px;overflow:hidden}.employee-portal .ess-badge-actions{padding:0}.employee-portal .ess-badge-actions>.detail-list,.employee-portal .ess-badge-actions>.ess-action-stack,.employee-portal .ess-badge-actions>.callout{margin-left:18px;margin-right:18px}.employee-portal .ess-badge-actions>.callout{margin-bottom:18px}
.employee-portal .flash-stack{top:16px;right:16px}.employee-portal .flash{max-width:520px;min-height:54px;padding:14px 46px 14px 14px;font-size:.88rem;border-radius:12px;box-shadow:0 16px 40px rgba(15,23,42,.18)}.employee-portal .flash-close{position:absolute;right:10px;top:10px;width:30px;height:30px;border:0;border-radius:8px;background:transparent;color:inherit;cursor:pointer;font-size:1.1rem}.employee-portal .flash-close:hover{background:rgba(255,255,255,.35)}
.employee-mobile-nav{display:none}
@media(max-width:900px){.employee-portal .topbar-account-actions .company-clock,.employee-portal .topbar-account-actions .account-menu{display:none}.employee-portal .employee-priority-grid,.employee-portal .employee-content-grid{grid-template-columns:1fr}.employee-portal .employee-scan-layout{grid-template-columns:1fr}.employee-portal .employee-sessions-panel{border-left:0;border-top:1px solid var(--employee-border)}}
@media(max-width:700px){
 .employee-portal .content{padding:14px 12px 92px}.employee-portal .app-footer{display:none}.employee-portal .topbar{min-height:58px}.employee-portal .topbar-context{display:none}
 .employee-portal .employee-welcome{align-items:center}.employee-portal .employee-welcome-copy h1{font-size:1.45rem}.employee-portal .employee-profile-photo{width:48px;height:48px;flex-basis:48px}
 .employee-portal .employee-guidance{grid-template-columns:36px minmax(0,1fr);padding:14px}.employee-portal .employee-guidance .btn{grid-column:2;justify-self:start}
 .employee-portal .employee-session-primary,.employee-portal .employee-today-summary{padding:16px}.employee-portal .employee-session-primary-facts,.employee-portal .employee-today-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
 .employee-portal .employee-result-card{grid-template-columns:40px minmax(0,1fr);padding:15px}.employee-portal .employee-result-actions{grid-column:2;justify-self:start;display:flex;flex-wrap:wrap}
 .employee-portal .employee-scanner-panel,.employee-portal .employee-sessions-panel{padding:15px}.employee-portal .employee-video-shell{min-height:225px}
 .employee-portal .page-header{align-items:flex-start}.employee-portal .page-header>.btn,.employee-portal .page-header>form{width:100%}.employee-portal .page-header>.btn,.employee-portal .page-header>form .btn{width:100%}
 .employee-portal .ess-row{padding-inline:13px}.employee-portal .ess-badge-card{transform:none}.employee-portal .ess-notice{grid-template-columns:36px minmax(0,1fr)}.employee-portal .ess-notice form{grid-column:2}
 .employee-mobile-nav{position:fixed;left:0;right:0;bottom:0;z-index:1200;display:grid;grid-template-columns:repeat(5,1fr);min-height:70px;padding:7px max(6px,env(safe-area-inset-left)) calc(7px + env(safe-area-inset-bottom));border-top:1px solid var(--employee-border);background:rgba(255,255,255,.97);box-shadow:0 -10px 28px rgba(15,23,42,.09);backdrop-filter:blur(14px)}
 .employee-mobile-nav a,.employee-mobile-nav button{display:flex;min-width:0;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:0;background:transparent;color:#667085;text-decoration:none;font:inherit}.employee-mobile-nav svg{width:20px;height:20px}.employee-mobile-nav small{font-size:.66rem;font-weight:750}.employee-mobile-nav .active{color:var(--brand)}.employee-mobile-nav button{cursor:pointer}
}
@media(prefers-reduced-motion:reduce){.employee-portal *{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}

/* Phase 5E.1 — account identity and profile media */
.user-avatar{overflow:hidden}.user-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.sidebar-account-menu{display:block;width:100%;position:relative}.sidebar-user-card{width:100%;border:0;color:inherit;text-align:left;cursor:pointer}.sidebar-user-card:focus-visible{outline:2px solid rgba(255,255,255,.78);outline-offset:2px}.sidebar-account-panel{width:248px;left:0!important;right:auto!important;z-index:1600}
body.sidebar-collapsed .sidebar-account-menu{width:auto}.sidebar-user-trigger{display:grid;place-items:center;flex:none}
.account-profile-page{max-width:1080px;margin:0 auto;display:grid;gap:18px}.profile-identity-card{display:flex;align-items:center;gap:18px;padding:22px;background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-sm)}.profile-identity-card h1{margin:3px 0 4px;font-size:24px}.profile-identity-card p{margin:0;color:var(--slate-500)}.account-profile-avatar{width:84px;height:84px;border-radius:20px;overflow:hidden;display:grid;place-items:center;flex:0 0 84px;background:var(--slate-100);color:var(--brand);font-size:28px;font-weight:850}.account-profile-avatar img{width:100%;height:100%;object-fit:cover}.account-profile-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.7fr);gap:18px}.account-security-list{display:grid;gap:14px}.account-security-list>div{padding:12px 0;border-bottom:1px solid var(--border)}.account-security-list span{display:block;color:var(--slate-500);font-size:11px}.account-security-list strong{display:block;margin-top:3px}.camera-photo-stage{min-height:280px;border:1px dashed var(--border);border-radius:16px;background:var(--slate-50);display:grid;place-items:center;overflow:hidden}.camera-photo-preview{width:190px;height:190px;border-radius:28px;display:grid;place-items:center;overflow:hidden;background:#fff;border:1px solid var(--border);font-size:42px;font-weight:850;color:var(--brand)}.camera-photo-preview img,.camera-photo-stage video{width:100%;height:100%;object-fit:cover}.camera-photo-stage video{min-height:280px}.photo-action-group{display:flex;flex-wrap:wrap;gap:9px;margin-top:14px}.photo-action-group .btn{min-width:132px}
@media(max-width:760px){.profile-identity-card{align-items:flex-start;flex-wrap:wrap}.profile-identity-card .btn{width:100%}.account-profile-grid{grid-template-columns:1fr}.account-profile-avatar{width:70px;height:70px;flex-basis:70px;border-radius:18px}.camera-photo-stage{min-height:240px}.camera-photo-stage video{min-height:240px}}

/* Phase 5E.1a identity hardening */
.sidebar-account-panel,.account-menu-panel{position:fixed!important;z-index:2200!important}
.photo-position-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--slate-50)}
.photo-position-controls[hidden]{display:none}.photo-position-controls label{display:flex;align-items:center;gap:10px;flex:1;min-width:210px}.photo-position-controls input[type=range]{width:100%}.camera-photo-preview{cursor:grab;touch-action:none}.camera-photo-preview:active{cursor:grabbing}.camera-photo-preview img{pointer-events:none;user-select:none}.menu-panel [role=menuitem]:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
@media(max-width:640px){.sidebar-account-panel,.account-menu-panel{left:12px!important;right:12px!important;bottom:12px!important;top:auto!important;width:auto!important;max-height:min(70vh,520px)!important}.photo-position-controls label{min-width:100%}.photo-action-group .btn{flex:1;min-width:0}}

/* Phase 5E.2a: AttendPro identity assets */
.product-brand-mark,.product-login-mark{overflow:hidden;background:#081628!important}
.product-brand-mark img,.product-login-mark img,.login-card-logo img{width:100%;height:100%;object-fit:cover}
.sidebar.collapsed .product-brand-mark{display:inline-flex}

/* Phase 5E.4a account-shell consolidation and photo workflow */
.sidebar-user-trigger{transition:transform .18s ease;color:rgba(255,255,255,.72)}
.sidebar-account-menu.is-open .sidebar-user-trigger{transform:rotate(180deg)}
.sidebar-account-panel[data-menu-portal="true"]{position:fixed!important;z-index:5000!important;left:auto!important;right:auto!important;bottom:auto!important}
.sidebar-user-card[aria-expanded="true"]{background:rgba(255,255,255,.11)}
.photo-source-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.photo-source-actions .btn{min-height:42px}
.photo-manager-message{margin-top:14px}
.employee-photo-summary .photo-preview{width:152px;height:152px;margin-inline:auto}
.employee-photo-summary>.btn{width:100%;justify-content:center}
[data-photo-use]:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:640px){
  .photo-source-actions{display:grid;grid-template-columns:1fr}
  .photo-source-actions .btn{width:100%}
  .sidebar-account-panel[data-menu-portal="true"]{left:12px!important;right:12px!important;bottom:12px!important;top:auto!important;width:auto!important}
}

/* Phase 5E.4b critical interaction correction */
.sidebar-account-panel[data-sidebar-account-portal="true"]{
  position:fixed!important;
  top:auto!important;
  right:auto!important;
  z-index:10000!important;
  visibility:visible!important;
  transform:none!important;
}
.sidebar-account-menu.is-open .sidebar-user-trigger{transform:rotate(180deg)}
.modal-overlay.is-open{display:flex!important;visibility:visible!important;opacity:1!important;pointer-events:auto!important}

/* Phase 5D.5 — Premium employee mobile experience ---------------------- */
.employee-portal{
  --ep-navy:#071a33;
  --ep-navy-2:#0d2a50;
  --ep-blue:#2463eb;
  --ep-blue-2:#3b82f6;
  --ep-ink:#0f1f3a;
  --ep-muted:#60708a;
  --ep-line:#dce5f1;
  --ep-canvas:#f3f6fb;
  --ep-card:#fff;
  --ep-radius:20px;
  --ep-shadow:0 14px 38px rgba(15,31,58,.09),0 2px 8px rgba(15,31,58,.04);
  background:var(--ep-canvas);
}
.employee-portal .content{background:linear-gradient(180deg,#eef4fb 0,#f6f8fc 260px,#f4f7fb 100%)}
.employee-premium-hero{
  position:relative;overflow:hidden;padding:22px;border:1px solid rgba(255,255,255,.12);border-radius:24px;
  background:linear-gradient(135deg,var(--ep-navy) 0%,var(--ep-navy-2) 58%,#17498c 100%);color:#fff;
  box-shadow:0 22px 48px rgba(7,26,51,.22);
}
.employee-premium-hero::before{content:"";position:absolute;right:-70px;top:-95px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(90,156,255,.33),rgba(90,156,255,0) 68%)}
.employee-premium-hero::after{content:"";position:absolute;left:-90px;bottom:-135px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(35,211,180,.13),rgba(35,211,180,0) 70%)}
.employee-premium-hero>*{position:relative;z-index:1}
.employee-premium-hero-top,.employee-hero-identity,.employee-hero-status{display:flex;align-items:center}
.employee-premium-hero-top{justify-content:space-between;gap:16px}
.employee-hero-identity{gap:13px;min-width:0}
.employee-premium-hero .employee-profile-photo{width:54px;height:54px;flex-basis:54px;border:2px solid rgba(255,255,255,.48);border-radius:17px;background:rgba(255,255,255,.14);color:#fff;box-shadow:none}
.employee-premium-hero .employee-kicker{color:#a9c8ff;font-size:.68rem;letter-spacing:.09em}
.employee-premium-hero h1{margin:4px 0 2px;color:#fff;font-size:clamp(1.25rem,4vw,1.7rem);line-height:1.12;letter-spacing:-.03em}
.employee-premium-hero p{margin:0;color:#bfd0e7;font-size:.85rem;line-height:1.4}
.employee-live-pill{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid rgba(255,255,255,.2);border-radius:999px;background:rgba(255,255,255,.09);font-size:.72rem;font-weight:800;color:#e7f0ff}
.employee-live-pill i{width:7px;height:7px;border-radius:50%;background:#43d39e;box-shadow:0 0 0 4px rgba(67,211,158,.14)}
.employee-hero-status{justify-content:space-between;gap:18px;margin-top:21px;padding-top:18px;border-top:1px solid rgba(255,255,255,.13)}
.employee-hero-status-copy .employee-section-label{color:#78a9ff;font-size:.66rem}
.employee-hero-status-copy h2{margin:5px 0 3px;color:#fff;font-size:1.35rem;letter-spacing:-.025em}
.employee-hero-status-copy p{font-size:.82rem}
.employee-hero-action{min-height:46px;padding:0 18px;border:1px solid #fff;border-radius:13px;background:#fff;color:#0a2447;box-shadow:0 9px 22px rgba(0,0,0,.16);font-size:.88rem;font-weight:850;white-space:nowrap}
.employee-hero-action:hover{background:#edf4ff;color:#0a2447;transform:translateY(-1px)}
.employee-hero-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:18px}
.employee-hero-metrics>div{display:grid;grid-template-columns:34px minmax(0,1fr);grid-template-rows:auto auto;column-gap:9px;align-items:center;min-width:0;padding:11px;border:1px solid rgba(255,255,255,.12);border-radius:14px;background:rgba(255,255,255,.075);backdrop-filter:blur(6px)}
.employee-metric-icon{grid-row:1/3;width:34px;height:34px;display:grid;place-items:center;border-radius:10px;color:#fff}
.employee-metric-icon .icon{width:18px;height:18px;stroke-width:1.9}
.employee-metric-icon.tone-blue{background:linear-gradient(135deg,#337cf4,#6aa5ff)}
.employee-metric-icon.tone-green{background:linear-gradient(135deg,#0da678,#42d5aa)}
.employee-metric-icon.tone-violet{background:linear-gradient(135deg,#7254e8,#a387ff)}
.employee-metric-icon.tone-amber{background:linear-gradient(135deg,#db8b16,#ffc35a)}
.employee-hero-metrics small{color:#9fb3ce;font-size:.63rem;font-weight:750;text-transform:uppercase;letter-spacing:.055em}
.employee-hero-metrics strong{display:block;min-width:0;margin-top:2px;color:#fff!important;font-size:.84rem!important;line-height:1.25;overflow-wrap:anywhere}
.employee-premium-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.employee-action-tile{display:grid;grid-template-columns:45px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:12px;min-height:78px;padding:14px;border:1px solid var(--ep-line);border-radius:17px;background:#fff;color:var(--ep-ink);text-align:left;text-decoration:none;box-shadow:0 7px 20px rgba(15,31,58,.055);cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.employee-action-tile:hover,.employee-action-tile:focus-visible{transform:translateY(-2px);border-color:#b9cdf0;box-shadow:var(--ep-shadow);outline:0}
.employee-action-tile>span{grid-row:1/3;width:45px;height:45px;display:grid;place-items:center;border-radius:14px;background:linear-gradient(145deg,#edf4ff,#dce9ff);color:var(--ep-blue)}
.employee-action-tile>span .icon{width:22px;height:22px;stroke-width:1.85}
.employee-action-tile strong{font-size:.9rem;color:var(--ep-ink)}
.employee-action-tile small{font-size:.72rem;color:var(--ep-muted)}
.employee-action-primary{border-color:#1d55c5;background:linear-gradient(135deg,#1d55c5,#3175ed);color:#fff}
.employee-action-primary>span{background:rgba(255,255,255,.16);color:#fff}
.employee-action-primary strong,.employee-action-primary small{color:#fff}
.employee-action-primary small{opacity:.74}
.employee-portal .employee-guidance{border-radius:17px;border-color:#d9e4f3;box-shadow:0 8px 22px rgba(15,31,58,.055)}
.employee-portal .employee-guidance-icon{border-radius:13px;background:linear-gradient(145deg,#edf4ff,#dbe9ff);color:#225fc9}
.employee-portal .employee-priority-single{grid-template-columns:1fr}
.employee-portal .employee-session-primary{border-radius:19px;padding:20px;box-shadow:var(--ep-shadow)}
.employee-portal .employee-session-primary.is-active{border-color:#94b9fa;background:linear-gradient(180deg,#fff,#f7faff)}
.employee-portal .employee-session-primary-facts>div{background:#f4f7fb;border-color:#e0e8f3}
.employee-portal .employee-session-primary-facts strong{color:#14233b!important}
.employee-portal .employee-primary-action{width:100%;min-height:48px;border-radius:13px;background:linear-gradient(135deg,#1e56c8,#3175ed);border-color:#1e56c8;color:#fff;box-shadow:0 10px 22px rgba(36,99,235,.22)}
.employee-portal .employee-primary-action:hover{background:linear-gradient(135deg,#174aa9,#2868d7);color:#fff}
.employee-portal .card{border-radius:19px;box-shadow:0 9px 28px rgba(15,31,58,.065)}
.employee-portal .employee-card-heading{background:linear-gradient(180deg,#fff,#fbfcfe)}
.employee-portal .employee-card-heading h2{color:#12213a}
.employee-portal .employee-card-heading p{color:#63728a}
.employee-portal .employee-week-day{border-radius:11px;background:#f6f8fc}
.employee-portal .employee-week-day.today{border-color:#86aef2;background:#eaf2ff;box-shadow:inset 0 0 0 1px rgba(36,99,235,.08)}
.employee-portal .employee-reminder-channels label,.employee-portal .employee-reminder-options label{min-height:42px;border-radius:11px;background:#f6f8fc}
.employee-portal .employee-history-date{background:linear-gradient(145deg,#edf3fd,#dae7fb);color:#1f5dc8}

.employee-scanner-overlay[hidden]{display:none!important}
.employee-scanner-overlay{position:fixed;inset:0;z-index:6500;display:grid;align-items:center;justify-items:center;padding:18px;background:rgba(4,14,29,.74);backdrop-filter:blur(14px);opacity:0;transition:opacity .18s ease}
.employee-scanner-overlay.is-open{opacity:1}
body.employee-scanner-open{overflow:hidden}
.employee-scanner-overlay .employee-scan-card{width:min(1050px,100%);max-height:calc(100dvh - 36px);overflow:auto;border:1px solid rgba(255,255,255,.18);border-radius:23px;box-shadow:0 28px 80px rgba(0,0,0,.35)}
.employee-scanner-head-actions{display:flex;align-items:center;gap:9px}
.employee-scanner-head-actions .icon-btn{width:40px;height:40px;border-radius:12px}
.employee-scanner-overlay .employee-video-shell{min-height:340px;background:#071a33}
.employee-scanner-overlay .employee-scanner-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.7fr);gap:10px}
.employee-scanner-overlay .employee-scanner-controls .form-control{grid-column:1/-1;width:100%}
.employee-scanner-overlay .employee-scanner-controls .btn{width:100%;min-width:0;white-space:normal}
.employee-scanner-overlay .portal-video-placeholder{padding:28px;text-align:center}
.employee-scanner-overlay .portal-video-placeholder .icon{width:42px;height:42px;color:#8eb7ff}
.employee-scanner-overlay .portal-video-placeholder strong{color:#fff;font-size:1.14rem}
.employee-scanner-overlay .portal-video-placeholder small{max-width:390px;color:#aabbd1;font-size:.88rem;line-height:1.5}
.employee-scanner-overlay .portal-camera-state{max-width:42%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.employee-scanner-overlay .employee-upload-fallback{gap:10px;align-items:flex-start}

@media(max-width:700px){
  .employee-portal .content{padding:12px 10px calc(88px + env(safe-area-inset-bottom));overflow-x:hidden}
  .employee-premium-hero{padding:17px;border-radius:20px}
  .employee-premium-hero-top{align-items:flex-start}
  .employee-premium-hero .employee-profile-photo{width:48px;height:48px;flex-basis:48px;border-radius:14px}
  .employee-premium-hero h1{font-size:1.23rem}
  .employee-premium-hero p{font-size:.77rem}
  .employee-live-pill{padding:6px 8px;font-size:.65rem}
  .employee-hero-status{display:grid;gap:13px;margin-top:16px;padding-top:15px}
  .employee-hero-status-copy h2{font-size:1.18rem}
  .employee-hero-action{width:100%;min-height:47px}
  .employee-hero-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px}
  .employee-hero-metrics>div{grid-template-columns:30px minmax(0,1fr);padding:9px;column-gap:8px;border-radius:12px}
  .employee-metric-icon{width:30px;height:30px;border-radius:9px}
  .employee-metric-icon .icon{width:16px;height:16px}
  .employee-hero-metrics small{font-size:.57rem}
  .employee-hero-metrics strong{font-size:.76rem!important}
  .employee-premium-actions{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
  .employee-action-tile{display:flex;min-width:0;min-height:76px;flex-direction:column;justify-content:center;gap:4px;padding:9px 4px;text-align:center;border-radius:15px}
  .employee-action-tile>span{width:38px;height:38px;flex:0 0 38px;border-radius:12px}
  .employee-action-tile>span .icon{width:19px;height:19px}
  .employee-action-tile strong{max-width:100%;font-size:.72rem;line-height:1.15;white-space:normal}
  .employee-action-tile small{display:none}
  .employee-portal .employee-guidance{grid-template-columns:38px minmax(0,1fr);padding:13px;border-radius:15px}
  .employee-portal .employee-guidance strong{font-size:.88rem}.employee-portal .employee-guidance p{font-size:.78rem}
  .employee-portal .employee-session-primary{padding:16px;border-radius:17px}
  .employee-portal .employee-session-primary-head{gap:8px}
  .employee-portal .employee-session-primary h2{font-size:1.05rem}
  .employee-portal .employee-session-primary-time strong{font-size:1rem}
  .employee-portal .employee-session-primary-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
  .employee-portal .employee-session-primary-facts>div{padding:9px 7px;min-width:0}
  .employee-portal .employee-session-primary-facts small{font-size:.57rem}
  .employee-portal .employee-session-primary-facts strong{font-size:.72rem;overflow-wrap:anywhere}
  .employee-portal .employee-card-heading{padding:15px 16px}
  .employee-portal .employee-card-heading h2{font-size:.98rem}
  .employee-portal .employee-card-heading p{font-size:.76rem}
  .employee-scanner-overlay{padding:0;align-items:stretch;background:#071426}
  .employee-scanner-overlay .employee-scan-card{width:100%;height:100dvh;max-height:none;border:0;border-radius:0;overflow:auto;padding-bottom:calc(18px + env(safe-area-inset-bottom))}
  .employee-scanner-overlay .employee-card-heading{position:sticky;top:0;z-index:4;flex-direction:row;align-items:center;padding:13px 14px;background:rgba(255,255,255,.97);backdrop-filter:blur(12px)}
  .employee-scanner-overlay .employee-card-heading p{display:none}
  .employee-scanner-head-actions .employee-secure-badge{display:none}
  .employee-scanner-overlay .employee-scanner-panel,.employee-scanner-overlay .employee-sessions-panel{padding:14px}
  .employee-scanner-overlay .employee-video-shell{min-height:min(53dvh,430px);border-radius:17px}
  .employee-scanner-overlay .employee-scanner-controls{grid-template-columns:minmax(0,1fr) minmax(0,.72fr);gap:9px}
  .employee-scanner-overlay .employee-scanner-controls .btn{min-height:48px;font-size:.92rem}
  .employee-scanner-overlay .employee-scanner-controls .form-control{min-height:46px;font-size:.88rem}
  .employee-scanner-overlay .employee-location-note{font-size:.76rem;line-height:1.45}
  .employee-scanner-overlay .employee-session-actions{display:grid;grid-template-columns:1fr}
  .employee-scanner-overlay .employee-session-actions .btn{width:100%;min-width:0}
  .employee-mobile-nav{min-height:72px;grid-template-columns:repeat(5,minmax(0,1fr));padding-top:8px}
  .employee-mobile-nav a,.employee-mobile-nav button{min-width:0;padding:4px 1px}
  .employee-mobile-nav small{max-width:100%;font-size:.61rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
@media(max-width:370px){
  .employee-premium-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
  .employee-action-tile{min-height:70px}
  .employee-hero-metrics{grid-template-columns:1fr 1fr}
  .employee-live-pill{display:none}
}
@media(prefers-reduced-motion:reduce){.employee-action-tile,.employee-scanner-overlay,.employee-hero-action{transition:none!important}}
.employee-scanner-result-zone{padding:0 18px;background:#fff}
.employee-scanner-result-zone:not(:empty){padding-top:16px;padding-bottom:2px}
@media(max-width:700px){.employee-scanner-result-zone{padding-left:14px;padding-right:14px}.employee-scanner-result-zone:not(:empty){padding-top:12px}.employee-scanner-result-zone .employee-result-card{position:relative;z-index:2}}

/* Phase 5D.6 — Premium Notifications, Profile & Settings */
.employee-portal .employee-premium-page{--premium-ink:#10213f;--premium-muted:#64748b;--premium-line:#e6ebf3;--premium-surface:#fff;--premium-shadow:0 18px 48px rgba(15,35,66,.08);display:flex;flex-direction:column;gap:18px}
.employee-portal .premium-surface{background:var(--premium-surface);border:1px solid var(--premium-line);border-radius:22px;box-shadow:0 10px 30px rgba(15,35,66,.055);overflow:hidden}
.employee-portal .ess-premium-header{display:flex;align-items:center;gap:16px;padding:21px 22px;border-radius:24px;background:linear-gradient(135deg,#102449 0%,#17386d 66%,#1d4b83 100%);color:#fff;box-shadow:0 20px 50px rgba(13,38,78,.2)}
.employee-portal .ess-header-icon,.employee-portal .settings-card-icon,.employee-portal .fact-icon,.employee-portal .setting-row-icon,.employee-portal .premium-notice-icon{display:grid;place-items:center;flex:0 0 auto;border-radius:16px}
.employee-portal .ess-header-icon{width:52px;height:52px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.22)}
.employee-portal .ess-header-icon .icon{width:25px;height:25px;color:#fff}
.employee-portal .ess-header-copy{min-width:0;flex:1}.employee-portal .ess-header-copy .eyebrow{color:#a9d2ff;margin:0 0 3px}.employee-portal .ess-header-copy h1{margin:0;color:#fff;font-size:1.55rem;letter-spacing:-.025em}.employee-portal .ess-header-copy>p:last-child{margin:5px 0 0;color:#d8e5f7;font-size:.88rem;line-height:1.55}
.employee-portal .ess-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.employee-portal .ess-header-actions .btn{border-color:rgba(255,255,255,.25);background:rgba(255,255,255,.1);color:#fff}.employee-portal .ess-header-actions .btn:hover{background:rgba(255,255,255,.18)}
.employee-portal .ess-count-pill{display:inline-flex;align-items:center;gap:6px;padding:8px 11px;border-radius:999px;background:#fff;color:#17335f;font-size:.78rem;white-space:nowrap}.employee-portal .ess-count-pill strong{font-size:.94rem}
.employee-portal .tone-blue{background:#eaf3ff;color:#1764c0}.employee-portal .tone-green{background:#e8f8f0;color:#138052}.employee-portal .tone-violet{background:#f0edff;color:#6246c9}.employee-portal .tone-amber{background:#fff4dc;color:#a96400}.employee-portal .tone-red{background:#ffebee;color:#bc3043}
.employee-portal .settings-card-icon{width:44px;height:44px}.employee-portal .settings-card-icon .icon{width:21px;height:21px}
.employee-portal .section-kicker{display:block;color:#7b8ba3;font-size:.68rem;font-weight:800;letter-spacing:.095em;text-transform:uppercase;margin-bottom:3px}
.employee-portal .ess-filter-tabs{display:flex;align-items:center;gap:7px;overflow-x:auto;padding:2px 1px 4px;scrollbar-width:none}.employee-portal .ess-filter-tabs::-webkit-scrollbar{display:none}.employee-portal .ess-filter-tabs button{border:1px solid #dce4ef;background:#fff;color:#53637a;border-radius:999px;padding:9px 14px;font:inherit;font-size:.8rem;font-weight:750;white-space:nowrap;cursor:pointer;transition:.18s ease}.employee-portal .ess-filter-tabs button span{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:5px;border-radius:999px;background:#edf2f8;font-size:.68rem}.employee-portal .ess-filter-tabs button:hover,.employee-portal .ess-filter-tabs button.is-active{background:#173b70;border-color:#173b70;color:#fff;box-shadow:0 7px 18px rgba(23,59,112,.17)}.employee-portal .ess-filter-tabs button.is-active span{background:rgba(255,255,255,.2)}
.employee-portal .ess-notifications-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.55fr);gap:18px;align-items:start}
.employee-portal .notices-section-heading,.employee-portal .premium-section-heading,.employee-portal .settings-card-heading{display:flex;align-items:flex-start;gap:13px}.employee-portal .notices-section-heading{justify-content:space-between;padding:20px 21px;border-bottom:1px solid var(--premium-line)}.employee-portal .notices-section-heading h2,.employee-portal .premium-section-heading h2,.employee-portal .settings-card-heading h2{margin:0;color:var(--premium-ink);font-size:1.05rem;letter-spacing:-.01em}.employee-portal .notices-section-heading a{display:inline-flex;align-items:center;gap:5px;font-size:.77rem;font-weight:750;color:#1764c0;white-space:nowrap}.employee-portal .notices-section-heading a .icon{width:15px;height:15px}
.employee-portal .premium-notice-list{display:flex;flex-direction:column}.employee-portal .premium-notice-card{position:relative;display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:14px;padding:18px 20px;border-bottom:1px solid var(--premium-line);background:#fff;transition:.18s ease}.employee-portal .premium-notice-card:last-child{border-bottom:0}.employee-portal .premium-notice-card:hover{background:#fbfcff}.employee-portal .premium-notice-card.is-unread{background:linear-gradient(90deg,#f1f7ff 0%,#fff 62%)}.employee-portal .premium-notice-card.is-unread:before{content:"";position:absolute;left:0;top:13px;bottom:13px;width:3px;border-radius:0 4px 4px 0;background:#2474d6}.employee-portal .premium-notice-icon{width:42px;height:42px;border-radius:14px}.employee-portal .premium-notice-icon .icon{width:20px;height:20px}.employee-portal .premium-notice-body{min-width:0}.employee-portal .premium-notice-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:5px}.employee-portal .notice-category{font-size:.67rem;font-weight:850;letter-spacing:.07em;text-transform:uppercase;color:#526985}.employee-portal .premium-notice-meta time{color:#8996a9;font-size:.71rem}.employee-portal .unread-dot{width:7px;height:7px;border-radius:50%;background:#2474d6;box-shadow:0 0 0 4px #e1efff}.employee-portal .premium-notice-body h3{margin:0;color:#142743;font-size:.93rem}.employee-portal .premium-notice-body p{margin:5px 0 0;color:#64748b;font-size:.82rem;line-height:1.55}.employee-portal .premium-notice-action{align-self:center}.employee-portal .read-state{display:inline-flex;align-items:center;gap:4px;color:#7d8b9d;font-size:.72rem}.employee-portal .read-state .icon{width:14px;height:14px}.employee-portal .btn-ghost{border-color:transparent;background:transparent;color:#1764c0;padding-inline:9px}.employee-portal .btn-ghost:hover{background:#eaf3ff}
.employee-portal .compact-preferences-card{padding:18px}.employee-portal .settings-card-copy{margin:12px 0 16px;color:#68788f;font-size:.8rem;line-height:1.55}.employee-portal .preference-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 16px}.employee-portal .preference-summary div{padding:11px 7px;border:1px solid #e6ebf3;border-radius:13px;background:#f8fafd;text-align:center}.employee-portal .preference-summary span,.employee-portal .preference-summary strong{display:block}.employee-portal .preference-summary span{font-size:.65rem;color:#7e8ca1}.employee-portal .preference-summary strong{margin-top:3px;color:#17335f;font-size:.8rem}.employee-portal .inbox-guidance,.employee-portal .profile-security-card,.employee-portal .workplace-time-card,.employee-portal .support-settings-card{display:flex;gap:13px;padding:17px}.employee-portal .inbox-guidance h3,.employee-portal .profile-security-card h3,.employee-portal .workplace-time-card h3,.employee-portal .support-settings-card h3{margin:0;color:#183050;font-size:.9rem}.employee-portal .inbox-guidance p,.employee-portal .profile-security-card p,.employee-portal .workplace-time-card p,.employee-portal .support-settings-card p{margin:5px 0 0;color:#718095;font-size:.76rem;line-height:1.5}.employee-portal .profile-security-card a,.employee-portal .support-settings-card a{display:inline-flex;align-items:center;gap:5px;margin-top:9px;color:#1764c0;font-size:.75rem;font-weight:800}.employee-portal .profile-security-card a .icon,.employee-portal .support-settings-card a .icon{width:14px;height:14px}
.employee-portal .premium-empty{padding:56px 24px;text-align:center}.employee-portal .premium-empty .empty-icon{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 14px;border-radius:18px;background:#edf4fc;color:#2e6bae}.employee-portal .premium-empty .empty-icon .icon{width:27px;height:27px}.employee-portal .premium-empty h3{margin:0;color:#19304f;font-size:1rem}.employee-portal .premium-empty p{max-width:390px;margin:7px auto 0;color:#738198;font-size:.82rem}
.employee-portal .premium-profile-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px;border-radius:25px;background:linear-gradient(135deg,#102448 0%,#1b4277 70%,#216099 100%);color:#fff;box-shadow:0 22px 52px rgba(14,42,84,.22)}.employee-portal .profile-identity{display:flex;align-items:center;gap:18px;min-width:0}.employee-portal .premium-profile-photo{display:grid;place-items:center;flex:0 0 92px;width:92px;height:92px;border-radius:28px;overflow:hidden;background:linear-gradient(145deg,#d9eaff,#fff);border:3px solid rgba(255,255,255,.75);box-shadow:0 12px 28px rgba(2,18,43,.25);color:#14345f;font-size:1.5rem;font-weight:850}.employee-portal .premium-profile-photo img{width:100%;height:100%;object-fit:cover}.employee-portal .profile-hero-copy{min-width:0}.employee-portal .profile-hero-copy .eyebrow{color:#a9d5ff;margin:0 0 3px}.employee-portal .profile-hero-copy h1{margin:0;color:#fff;font-size:1.55rem}.employee-portal .profile-hero-copy>p{margin:5px 0 0;color:#d9e6f6;font-size:.85rem}.employee-portal .profile-hero-copy>p span{padding:0 4px;color:#8db4df}.employee-portal .profile-status-row{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.employee-portal .premium-status{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border-radius:999px;font-size:.68rem;font-weight:800}.employee-portal .premium-status .icon{width:14px;height:14px}.employee-portal .status-active{background:rgba(68,213,145,.17);color:#bff7da;border:1px solid rgba(120,230,176,.24)}.employee-portal .status-badge{background:rgba(155,188,255,.16);color:#d9e8ff;border:1px solid rgba(172,201,255,.22)}.employee-portal .profile-hero-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}.employee-portal .profile-hero-actions .btn-secondary{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.25);color:#fff}
.employee-portal .profile-facts-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.employee-portal .profile-facts-grid article{display:flex;align-items:center;gap:11px;padding:15px;border:1px solid var(--premium-line);border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(15,35,66,.045)}.employee-portal .fact-icon{width:40px;height:40px}.employee-portal .fact-icon .icon{width:19px;height:19px}.employee-portal .profile-facts-grid small,.employee-portal .profile-facts-grid strong{display:block}.employee-portal .profile-facts-grid small{color:#7e8b9f;font-size:.66rem}.employee-portal .profile-facts-grid strong{margin-top:3px;color:#18304f;font-size:.8rem;overflow-wrap:anywhere}.employee-portal .profile-content-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:18px;align-items:start}.employee-portal .premium-section-heading{padding:20px 20px 0}.employee-portal .premium-section-heading.compact{padding:0}.employee-portal .premium-section-heading p{margin:4px 0 0;color:#748197;font-size:.78rem;line-height:1.5}.employee-portal .premium-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:19px 20px 20px}.employee-portal .premium-form-grid .full{grid-column:1/-1}.employee-portal .premium-input-wrap{display:flex;align-items:center;border:1px solid #dce4ef;border-radius:13px;background:#fbfcfe;transition:.18s ease}.employee-portal .premium-input-wrap:focus-within{border-color:#4f8fd8;box-shadow:0 0 0 4px rgba(47,119,203,.11);background:#fff}.employee-portal .premium-input-wrap>.icon{width:18px;height:18px;margin-left:13px;color:#7790ad}.employee-portal .premium-input-wrap .form-control{border:0!important;box-shadow:none!important;background:transparent!important}.employee-portal .premium-textarea{border-radius:13px;background:#fbfcfe}.employee-portal .field-help{display:block;margin-top:5px;color:#8491a3;font-size:.68rem}.employee-portal .premium-form-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:4px}.employee-portal .save-guidance{display:flex;align-items:center;gap:6px;color:#79879b;font-size:.7rem}.employee-portal .save-guidance .icon{width:15px;height:15px;color:#27835b}.employee-portal .read-only-card{padding:18px}.employee-portal .premium-detail-list{margin:16px 0 0}.employee-portal .premium-detail-list>div{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid #edf1f6}.employee-portal .premium-detail-list>div:last-child{border-bottom:0}.employee-portal .premium-detail-list dt{color:#7b899d;font-size:.71rem}.employee-portal .premium-detail-list dd{margin:0;color:#1c3352;font-size:.77rem;font-weight:800;text-align:right}.employee-portal .managed-note{margin:13px 0 0;padding:10px 11px;border-radius:11px;background:#f3f6fa;color:#718095;font-size:.69rem;line-height:1.45}
.employee-portal .settings-premium-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:18px;align-items:start}.employee-portal .settings-main-card{overflow:visible}.employee-portal .premium-settings-form{padding:8px 20px 20px}.employee-portal .settings-subsection{padding:13px 0}.employee-portal .settings-subsection+.settings-subsection{border-top:1px solid var(--premium-line)}.employee-portal .settings-subsection-heading{margin-bottom:6px}.employee-portal .settings-subsection-heading h3{margin:0;color:#19304f;font-size:.88rem}.employee-portal .settings-subsection-heading p{margin:3px 0 0;color:#8290a2;font-size:.72rem}.employee-portal .premium-setting-row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:12px;align-items:center;min-height:66px;padding:10px 0;border-bottom:1px solid #edf1f6;cursor:pointer}.employee-portal .premium-setting-row:last-child{border-bottom:0}.employee-portal .setting-row-icon{width:38px;height:38px;border-radius:12px}.employee-portal .setting-row-icon .icon{width:18px;height:18px}.employee-portal .setting-row-copy strong,.employee-portal .setting-row-copy small{display:block}.employee-portal .setting-row-copy strong{color:#1a3150;font-size:.81rem}.employee-portal .setting-row-copy small{margin-top:3px;color:#7c899b;font-size:.69rem;line-height:1.4}.employee-portal .modern-switch{position:relative;display:inline-block;width:46px;height:26px}.employee-portal .modern-switch input{position:absolute;opacity:0;pointer-events:none}.employee-portal .modern-switch i{position:absolute;inset:0;border-radius:999px;background:#d8e0ea;transition:.2s ease;box-shadow:inset 0 0 0 1px rgba(54,75,102,.08)}.employee-portal .modern-switch i:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 2px 7px rgba(23,43,70,.25);transition:.2s ease}.employee-portal .modern-switch input:checked+i{background:#236fc6}.employee-portal .modern-switch input:checked+i:after{transform:translateX(20px)}.employee-portal .modern-switch input:focus-visible+i{box-shadow:0 0 0 4px rgba(35,111,198,.18)}.employee-portal .settings-save-bar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:14px;padding:14px 15px;border-radius:15px;background:#f5f8fc}.employee-portal .settings-save-bar>span{display:flex;align-items:center;gap:6px;color:#718096;font-size:.69rem}.employee-portal .settings-save-bar>span .icon{width:15px;height:15px;color:#4577ad}.employee-portal .account-security-panel{padding:18px}.employee-portal .security-account-state{display:flex;align-items:center;gap:11px;margin:15px 0;padding:12px;border-radius:14px;background:#edf8f2;border:1px solid #d3eee0}.employee-portal .security-account-state>span{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#d9f2e5;color:#17784f}.employee-portal .security-account-state>span .icon{width:18px;height:18px}.employee-portal .security-account-state strong,.employee-portal .security-account-state small{display:block}.employee-portal .security-account-state strong{color:#1c6248;font-size:.78rem}.employee-portal .security-account-state small{margin-top:2px;color:#54806d;font-size:.67rem}.employee-portal .premium-action-link{display:grid;grid-template-columns:36px minmax(0,1fr) 16px;align-items:center;gap:10px;padding:12px 0;border-top:1px solid #edf1f6;color:inherit}.employee-portal .premium-action-link:hover strong{color:#1764c0}.employee-portal .action-link-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#eef4fb;color:#336ea9}.employee-portal .action-link-icon .icon{width:17px;height:17px}.employee-portal .premium-action-link strong,.employee-portal .premium-action-link small{display:block}.employee-portal .premium-action-link strong{color:#1b3352;font-size:.77rem}.employee-portal .premium-action-link small{margin-top:3px;color:#7d8a9c;font-size:.66rem}.employee-portal .premium-action-link>.icon{width:15px;height:15px;color:#91a0b3}
@media(max-width:960px){.employee-portal .ess-notifications-layout,.employee-portal .profile-content-grid,.employee-portal .settings-premium-layout{grid-template-columns:1fr}.employee-portal .settings-side-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.employee-portal .settings-side-column>section:first-child{grid-column:1/-1}.employee-portal .profile-facts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.employee-portal .employee-premium-page{gap:13px}.employee-portal .ess-premium-header{align-items:flex-start;padding:18px;border-radius:20px;flex-wrap:wrap}.employee-portal .ess-header-icon{width:45px;height:45px;border-radius:14px}.employee-portal .ess-header-copy{flex-basis:calc(100% - 62px)}.employee-portal .ess-header-copy h1{font-size:1.28rem}.employee-portal .ess-header-copy>p:last-child{font-size:.78rem}.employee-portal .ess-header-actions{width:100%;justify-content:space-between}.employee-portal .ess-header-actions form{margin-left:auto}.employee-portal .ess-header-actions .btn{min-height:40px;padding:8px 11px}.employee-portal .premium-notice-card{grid-template-columns:40px minmax(0,1fr);gap:11px;padding:15px 14px}.employee-portal .premium-notice-icon{width:38px;height:38px}.employee-portal .premium-notice-action{grid-column:2}.employee-portal .notices-section-heading{padding:17px 15px}.employee-portal .notices-section-heading a{font-size:.7rem}.employee-portal .premium-profile-hero{align-items:flex-start;padding:19px;border-radius:21px;flex-direction:column}.employee-portal .premium-profile-photo{flex-basis:75px;width:75px;height:75px;border-radius:22px}.employee-portal .profile-hero-copy h1{font-size:1.28rem}.employee-portal .profile-hero-actions{width:100%;justify-content:stretch}.employee-portal .profile-hero-actions .btn{flex:1;justify-content:center;min-width:0}.employee-portal .profile-facts-grid{gap:9px}.employee-portal .profile-facts-grid article{padding:12px;align-items:flex-start}.employee-portal .fact-icon{width:35px;height:35px}.employee-portal .premium-form-grid{grid-template-columns:1fr;padding:16px}.employee-portal .premium-form-grid .full{grid-column:auto}.employee-portal .premium-section-heading{padding:17px 16px 0}.employee-portal .premium-form-actions{align-items:stretch;flex-direction:column}.employee-portal .premium-form-actions .btn{width:100%;justify-content:center}.employee-portal .settings-side-column{display:flex}.employee-portal .premium-settings-form{padding:5px 16px 16px}.employee-portal .settings-save-bar{position:sticky;bottom:76px;z-index:5;align-items:stretch;flex-direction:column;background:rgba(245,248,252,.96);backdrop-filter:blur(10px);box-shadow:0 -10px 26px rgba(24,48,80,.09)}.employee-portal .settings-save-bar .btn{width:100%;justify-content:center}.employee-portal .premium-setting-row{grid-template-columns:36px minmax(0,1fr) auto;gap:9px;min-height:64px}.employee-portal .setting-row-icon{width:34px;height:34px}.employee-portal .preference-summary{gap:6px}}
@media(max-width:430px){.employee-portal .profile-facts-grid{grid-template-columns:1fr 1fr}.employee-portal .profile-facts-grid article{display:block}.employee-portal .profile-facts-grid .fact-icon{margin-bottom:8px}.employee-portal .premium-profile-hero .profile-identity{align-items:flex-start;gap:12px}.employee-portal .profile-hero-copy>p{font-size:.75rem}.employee-portal .ess-filter-tabs button{padding:8px 12px}.employee-portal .ess-header-actions .ess-count-pill{font-size:.7rem}}

/* Phase 5D.6a — employee sign-out accessibility */
.employee-signout-link{margin-top:8px;color:#b42318!important;border:1px solid rgba(180,35,24,.12);background:rgba(180,35,24,.045)}
.employee-signout-link .nav-icon{color:#b42318!important}
.employee-signout-link:hover,.employee-signout-link:focus-visible{background:#fff1f0!important;color:#912018!important;border-color:rgba(180,35,24,.22)}
.settings-account-divider{height:1px;background:var(--employee-border,#e5e7eb);margin:10px 0}
.premium-action-danger{color:#a61b1b!important;background:#fff8f7}
.premium-action-danger .action-link-icon{background:#feeceb!important;color:#b42318!important}
.premium-action-danger:hover,.premium-action-danger:focus-visible{background:#fff1f0!important}
.password-action-group{display:flex;gap:10px;flex-wrap:wrap}
.forced-password-exit{margin-top:20px;padding-top:16px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--text-muted);font-size:.9rem}
.forced-password-exit a{display:inline-flex;align-items:center;gap:7px;font-weight:750;color:#b42318;text-decoration:none}
.forced-password-exit a:hover{text-decoration:underline}
@media(max-width:760px){
  .employee-signout-link{margin-bottom:18px}
  .password-action-group>*{flex:1 1 150px}
  .forced-password-exit{align-items:flex-start;flex-direction:column}
}

/* Phase 5D.6b — compact scanner and safe notification detail */
.employee-portal .notice-detail-link{color:inherit;text-decoration:none}.employee-portal .notice-detail-link:hover{color:#1764c0;text-decoration:underline}.employee-portal .premium-notice-action{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.employee-portal .employee-back-link{display:inline-flex;align-items:center;gap:7px;color:#526985;font-size:.82rem;font-weight:750;text-decoration:none}.employee-portal .employee-back-link .icon{width:17px;height:17px}.employee-portal .notice-detail-card{display:grid;grid-template-columns:56px minmax(0,1fr);gap:18px;padding:24px;border-radius:22px}.employee-portal .notice-detail-icon{width:54px;height:54px;display:grid;place-items:center;border-radius:17px}.employee-portal .notice-detail-icon .icon{width:25px;height:25px}.employee-portal .notice-detail-copy h1{margin:8px 0 8px;color:#142743;font-size:1.45rem;line-height:1.2}.employee-portal .notice-detail-copy>p{margin:0;color:#526985;font-size:.94rem;line-height:1.65}.employee-portal .notice-detail-actions{grid-column:2;display:flex;gap:9px;flex-wrap:wrap;padding-top:4px}
.employee-scanner-overlay{padding:14px;align-items:center}.employee-scanner-overlay .employee-scan-card{width:min(760px,100%);max-height:calc(100dvh - 28px);border-radius:20px}.employee-scanner-overlay .employee-card-heading{padding:13px 15px}.employee-scanner-overlay .employee-card-heading h2{font-size:1.08rem}.employee-scanner-overlay .employee-scan-layout{grid-template-columns:1fr}.employee-scanner-overlay .employee-scanner-panel{padding:13px 15px;border-right:0;border-bottom:1px solid var(--border)}.employee-scanner-overlay .employee-sessions-panel{padding:12px 15px}.employee-scanner-overlay .employee-video-shell{min-height:0;height:clamp(210px,34dvh,300px);border-radius:14px}.employee-scanner-overlay .employee-scanner-controls{grid-template-columns:minmax(0,1fr) minmax(0,.72fr) minmax(130px,1fr);gap:8px}.employee-scanner-overlay .employee-scanner-controls .form-control{grid-column:auto;min-width:0}.employee-scanner-overlay .employee-scanner-controls .btn,.employee-scanner-overlay .employee-scanner-controls .form-control{min-height:42px}.employee-scanner-overlay .employee-result-card{grid-template-columns:40px minmax(0,1fr);gap:10px;padding:12px;margin:0 15px 10px}.employee-scanner-overlay .employee-result-icon{width:40px;height:40px;font-size:17px}.employee-scanner-overlay .employee-result-actions{grid-column:2;justify-content:flex-start}.employee-scanner-overlay .compact-session-list{max-height:180px}.employee-scanner-overlay .employee-location-note{margin-top:8px;padding:8px 9px}
@media(max-width:680px){.employee-scanner-overlay{padding:10px;align-items:center;background:rgba(4,14,29,.8)}.employee-scanner-overlay .employee-scan-card{width:100%;height:auto;max-height:calc(100dvh - 20px);border:1px solid rgba(255,255,255,.16);border-radius:18px;padding-bottom:calc(8px + env(safe-area-inset-bottom));overflow:auto}.employee-scanner-overlay .employee-card-heading{position:sticky;top:0;padding:11px 12px;border-radius:18px 18px 0 0}.employee-scanner-overlay .employee-card-heading p,.employee-scanner-overlay .employee-secure-badge{display:none}.employee-scanner-overlay .employee-scanner-panel,.employee-scanner-overlay .employee-sessions-panel{padding:11px 12px}.employee-scanner-overlay .employee-video-shell{height:clamp(200px,32dvh,275px);min-height:200px;border-radius:12px}.employee-scanner-overlay .portal-video-placeholder{padding:16px}.employee-scanner-overlay .portal-video-placeholder .icon{width:32px;height:32px}.employee-scanner-overlay .portal-video-placeholder strong{font-size:.92rem}.employee-scanner-overlay .portal-video-placeholder small{font-size:.74rem}.employee-scanner-overlay .employee-scanner-controls{grid-template-columns:1fr 1fr;gap:7px}.employee-scanner-overlay .employee-scanner-controls .form-control{grid-column:1/-1;min-height:40px}.employee-scanner-overlay .employee-scanner-controls .btn{min-height:42px;font-size:.82rem;padding:8px}.employee-scanner-overlay .employee-result-card{margin:0 12px 8px}.employee-scanner-overlay .employee-result-details{gap:5px}.employee-scanner-overlay .employee-result-details span{min-width:70px;padding:6px 7px}.employee-scanner-overlay .compact-session-list{max-height:145px}.employee-portal .notice-detail-card{grid-template-columns:44px minmax(0,1fr);gap:12px;padding:17px;border-radius:18px}.employee-portal .notice-detail-icon{width:44px;height:44px;border-radius:14px}.employee-portal .notice-detail-icon .icon{width:21px;height:21px}.employee-portal .notice-detail-copy h1{font-size:1.18rem}.employee-portal .notice-detail-copy>p{font-size:.84rem}.employee-portal .notice-detail-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr}.employee-portal .notice-detail-actions .btn{width:100%;justify-content:center}}


/* Phase 5D.6c — compact mobile scanner density and notice runtime repair */
.employee-scanner-overlay .portal-camera-picker{display:flex;align-items:center;gap:8px;min-width:0;padding:0 10px;border:1px solid var(--border);border-radius:10px;background:#fff;color:var(--slate-500)}
.employee-scanner-overlay .portal-camera-picker>span{font-size:.72rem;font-weight:750;white-space:nowrap}
.employee-scanner-overlay .portal-camera-picker .form-control{border:0!important;box-shadow:none!important;padding-left:0;padding-right:24px;background-color:transparent;min-width:0}
.employee-scanner-overlay .portal-stop-camera[hidden]{display:none!important}
.employee-scanner-overlay .employee-sessions-panel.is-empty{padding-top:10px;padding-bottom:10px}
.employee-scanner-overlay .employee-sessions-panel.is-empty .employee-list-heading{padding-bottom:0;border-bottom:0}
.employee-scanner-overlay .employee-sessions-panel.is-empty .employee-session-list{display:none}
@media(max-width:680px){
  .employee-scanner-overlay{padding:8px;align-items:center}
  .employee-scanner-overlay .employee-scan-card{max-height:calc(100dvh - 16px);border-radius:16px}
  .employee-scanner-overlay .employee-card-heading{padding:9px 11px}
  .employee-scanner-overlay .employee-card-heading h2{font-size:1rem;margin-top:1px}
  .employee-scanner-overlay .employee-scanner-panel{padding:9px 10px 10px}
  .employee-scanner-overlay .employee-scanner-heading{margin-bottom:6px}
  .employee-scanner-overlay .employee-video-shell{height:clamp(165px,25dvh,210px);min-height:165px;border-radius:10px}
  .employee-scanner-overlay .scanner-guide{inset:18%}
  .employee-scanner-overlay .employee-scanner-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;margin-top:7px}
  .employee-scanner-overlay .employee-scanner-controls .btn{min-height:38px;padding:7px 12px;font-size:.78rem}
  .employee-scanner-overlay .portal-camera-picker{grid-column:1/-1;min-height:38px;padding:0 9px}
  .employee-scanner-overlay .portal-camera-picker .form-control{min-height:36px!important;font-size:.78rem!important}
  .employee-scanner-overlay .employee-location-note{margin-top:7px;padding:7px 8px;font-size:.69rem;line-height:1.35}
  .employee-scanner-overlay .employee-sessions-panel{padding:9px 10px}
  .employee-scanner-overlay .employee-list-heading strong{font-size:.92rem}
  .employee-scanner-overlay .employee-list-heading small{font-size:.7rem}
  .employee-scanner-overlay .compact-session-list{max-height:105px}
  .employee-scanner-overlay .employee-empty-state{min-height:54px;padding:8px}
  .employee-scanner-overlay .employee-empty-state .icon{width:18px;height:18px}
  .employee-scanner-overlay .employee-empty-state strong{font-size:.8rem}
  .employee-scanner-overlay .employee-empty-state p{font-size:.68rem}
  .employee-scanner-result-zone:not(:empty){padding-top:8px}
}

/* Phase 6A — enterprise reporting foundation */
.reports-centre{display:grid;gap:18px}.reports-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:26px 28px;border:1px solid #dbe4ee;border-radius:24px;background:linear-gradient(135deg,#f9fbfe 0%,#eef5fc 100%);box-shadow:0 16px 42px rgba(20,47,82,.08)}.reports-hero h1{margin:3px 0 5px;font-size:clamp(1.65rem,3vw,2.25rem);color:#132944}.reports-hero p{margin:0;color:#60738d;max-width:720px}.report-export-menu{position:relative;flex:none}.report-export-panel{right:0;left:auto;min-width:210px}.report-category-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}.report-category-card{display:flex;align-items:flex-start;gap:11px;padding:15px 13px;border:1px solid #dfe7ef;border-radius:17px;background:#fff;color:#233b5a;text-decoration:none;min-width:0;transition:.18s ease}.report-category-card:hover,.report-category-card.active{border-color:#84addd;background:#f3f8fe;box-shadow:0 9px 24px rgba(29,79,133,.09);transform:translateY(-1px)}.report-category-icon{width:38px;height:38px;border-radius:12px;background:#eaf3fd;color:#2169b2;display:grid;place-items:center;flex:none}.report-category-icon .icon{width:19px;height:19px}.report-category-card strong,.report-category-card small{display:block}.report-category-card strong{font-size:.85rem}.report-category-card small{margin-top:3px;font-size:.68rem;line-height:1.35;color:#718298}.report-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.report-kpi-grid article{display:grid;grid-template-columns:46px 1fr;gap:2px 12px;align-items:center;padding:17px;border:1px solid #dfe7ef;border-radius:18px;background:#fff}.report-kpi-grid small{color:#6a7e96;font-weight:700}.report-kpi-grid strong{font-size:1.5rem;color:#172f4d}.report-kpi-grid em{font-style:normal;color:#7b8da2;font-size:.71rem}.report-kpi-icon{grid-row:1/4;width:44px;height:44px;border-radius:14px;display:grid;place-items:center}.report-kpi-icon .icon{width:21px;height:21px}.report-kpi-icon.blue{background:#e8f2fe;color:#1769bd}.report-kpi-icon.green{background:#e8f8f1;color:#16825d}.report-kpi-icon.violet{background:#f0ebff;color:#6947bd}.report-kpi-icon.amber{background:#fff4df;color:#a9670c}.report-filter-shell,.report-results-card{border:1px solid #dfe7ef;border-radius:21px;background:#fff;box-shadow:0 10px 30px rgba(22,54,91,.055);overflow:visible}.report-filter-heading,.report-results-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:20px 22px;border-bottom:1px solid #e6edf4}.report-filter-heading h2,.report-results-heading h2{margin:2px 0 3px;font-size:1.12rem;color:#18314f}.report-filter-heading p,.report-results-heading p{margin:0;color:#71839a;font-size:.8rem}.report-filter-actions{display:flex;align-items:center;gap:9px}.filter-count,.results-count{display:inline-flex;align-items:center;min-height:32px;padding:5px 10px;border-radius:999px;background:#eef4fa;color:#49647f;font-size:.72rem;font-weight:750}.report-filter-form{padding:18px 22px}.report-common-filters{display:grid;grid-template-columns:190px 155px 155px minmax(220px,1fr);gap:12px}.report-filter-form label>span,.field-label{display:block;margin-bottom:6px;color:#506982;font-size:.72rem;font-weight:800}.search-input-wrap{position:relative}.search-input-wrap .icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#8293a7}.search-input-wrap input{padding-left:38px}.report-advanced-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:15px;padding-top:15px;border-top:1px solid #edf1f5}.report-multiselect{position:relative;min-width:0}.multiselect-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left}.multiselect-panel{position:absolute;z-index:60;top:calc(100% + 6px);left:0;width:min(330px,90vw);padding:10px;border:1px solid #cfdae6;border-radius:14px;background:#fff;box-shadow:0 18px 42px rgba(15,42,73,.16)}.multiselect-search{display:grid;grid-template-columns:1fr auto auto;gap:5px;margin-bottom:8px}.multiselect-search input{min-width:0;border:1px solid #d6e0ea;border-radius:9px;padding:8px}.multiselect-search button{border:0;background:#eef4fa;border-radius:8px;padding:6px 8px;color:#3e607f;font-size:.68rem;font-weight:750}.multiselect-options{max-height:220px;overflow:auto;display:grid;gap:2px}.multiselect-options label{display:flex;align-items:center;gap:8px;padding:8px;border-radius:8px;color:#334e6b;font-size:.78rem}.multiselect-options label:hover{background:#f1f6fb}.report-filter-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:17px;padding-top:15px;border-top:1px solid #edf1f5}.report-filter-footer>div{display:flex;gap:8px;align-items:center}.saved-report-controls select{width:180px}.report-table-wrap{border:0;border-radius:0}.report-data-table th{white-space:nowrap}.report-data-table td small{display:block;color:#7a8ba0;margin-top:3px}.rate-cell{display:grid;gap:5px;min-width:92px}.rate-cell>span{height:5px;border-radius:999px;background:#e9eff5;overflow:hidden}.rate-cell i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2b7bc4,#24a57a)}.report-pagination{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-top:1px solid #e6edf4;color:#6b7f96;font-size:.78rem}.report-pagination div{display:flex;gap:8px}
@media(max-width:1180px){.report-category-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.report-advanced-filters{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.report-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-common-filters{grid-template-columns:1fr 1fr}.report-search{grid-column:1/-1}.report-advanced-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.reports-centre{gap:13px}.reports-hero{padding:19px 16px;border-radius:20px;align-items:flex-start;flex-direction:column}.reports-hero .report-export-menu,.reports-hero .btn{width:100%}.report-export-panel{left:0;right:auto;width:100%}.report-category-grid{display:flex;overflow-x:auto;gap:8px;padding-bottom:4px;scroll-snap-type:x proximity}.report-category-card{min-width:175px;scroll-snap-align:start}.report-kpi-grid{grid-template-columns:1fr 1fr;gap:8px}.report-kpi-grid article{grid-template-columns:36px 1fr;padding:12px 10px;gap:2px 8px}.report-kpi-icon{width:34px;height:34px;border-radius:11px}.report-kpi-grid strong{font-size:1.16rem}.report-kpi-grid em{font-size:.63rem}.report-filter-heading,.report-results-heading{padding:16px;align-items:flex-start;flex-direction:column}.report-filter-actions{width:100%;justify-content:space-between}.report-filter-form{padding:14px}.report-common-filters,.report-advanced-filters{grid-template-columns:1fr}.report-common-filters label[data-custom-date]{display:block}.report-filter-footer{align-items:stretch;flex-direction:column}.report-filter-footer>div{width:100%}.report-filter-footer .btn{flex:1;justify-content:center}.saved-report-controls select{flex:1;width:auto}.multiselect-panel{position:fixed;left:12px;right:12px;bottom:78px;top:auto;width:auto;max-height:65dvh}.report-pagination{align-items:flex-start;flex-direction:column;gap:10px}.report-pagination div{width:100%}.report-pagination .btn{flex:1;justify-content:center}}

/* Phase 6B — Executive HR analytics */
.analytics-centre{display:grid;gap:16px}.analytics-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:26px 28px;border-radius:24px;background:linear-gradient(135deg,#102d4f,#174f7f 62%,#1d6d93);color:#fff;box-shadow:0 18px 44px rgba(13,45,78,.18)}.analytics-hero h1{margin:3px 0 6px;font-size:1.75rem}.analytics-hero p{margin:0;max-width:720px;color:#d6e6f5}.analytics-hero .eyebrow{color:#9ed4f7}.analytics-hero-actions{display:flex;gap:9px;flex-wrap:wrap}.analytics-hero .btn-ghost{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2);color:#fff}.analytics-filter-card,.analytics-card{border:1px solid #dce6ef;border-radius:20px;background:#fff;box-shadow:0 10px 30px rgba(17,53,88,.055)}.analytics-filter-form{display:grid;grid-template-columns:170px 145px 145px minmax(210px,1fr) auto;gap:12px;align-items:end;padding:17px 19px}.analytics-filter-form label>span{display:block;margin-bottom:6px;color:#526a82;font-size:.71rem;font-weight:800}.analytics-filter-actions{display:flex;gap:7px}.analytics-advanced{grid-column:1/-1;border-top:1px solid #e8eef4;padding-top:12px}.analytics-advanced summary{display:flex;align-items:center;gap:7px;cursor:pointer;color:#355b7f;font-size:.78rem;font-weight:800}.analytics-advanced summary span{margin-left:auto;padding:3px 8px;border-radius:999px;background:#eef4fa;color:#60778f;font-size:.65rem}.analytics-advanced-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:13px}.analytics-advanced fieldset{min-width:0;border:1px solid #e1e9f1;border-radius:14px;padding:10px}.analytics-advanced legend{padding:0 5px;color:#46627e;font-size:.7rem;font-weight:850}.analytics-check-list{display:grid;gap:3px;max-height:170px;overflow:auto}.analytics-check-list.compact{grid-template-columns:1fr 1fr}.analytics-check-list label{display:flex;gap:7px;align-items:center;padding:6px;border-radius:8px;color:#415d78;font-size:.73rem}.analytics-check-list label:hover{background:#f3f7fb}.analytics-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.analytics-kpi{display:flex;gap:13px;align-items:center;padding:18px;border:1px solid #dce6ef;border-radius:19px;background:#fff;box-shadow:0 8px 24px rgba(18,52,85,.05)}.analytics-kpi.primary{background:linear-gradient(145deg,#f2f8ff,#fff)}.analytics-kpi-icon{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;flex:none;background:#e8f3ff;color:#1d6db6}.analytics-kpi-icon.green{background:#e8f8f1;color:#16805b}.analytics-kpi-icon.violet{background:#f1edff;color:#6749b7}.analytics-kpi-icon.amber{background:#fff3dd;color:#a4660a}.analytics-kpi-icon .icon{width:22px;height:22px}.analytics-kpi small,.analytics-kpi strong,.analytics-kpi em{display:block}.analytics-kpi small{color:#6a7f96;font-size:.7rem;font-weight:800}.analytics-kpi strong{margin:2px 0;font-size:1.55rem;color:#18334f}.analytics-kpi em{font-style:normal;color:#7b8da0;font-size:.68rem}.analytics-kpi em.positive{color:#15805b}.analytics-kpi em.negative{color:#b34343}.analytics-layout{display:grid;gap:14px}.analytics-top-grid{grid-template-columns:minmax(0,1.65fr) minmax(300px,.75fr)}.analytics-middle-grid{grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr)}.analytics-card{overflow:hidden}.analytics-card>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 19px;border-bottom:1px solid #e8eef4}.analytics-card>header h2{margin:2px 0 0;color:#193550;font-size:1rem}.analytics-card>header p{margin:3px 0 0;color:#7a8ba0;font-size:.7rem}.analytics-card>header>a{color:#236bac;font-size:.72rem;font-weight:800}.analytics-chart-shell{min-height:275px;padding:12px 14px 0}.analytics-chart-shell svg{display:block;width:100%;height:auto;overflow:visible}.chart-grid line{stroke:#e7edf3;stroke-width:1}.chart-grid text,.chart-labels text{fill:#8191a3;font-size:10px}.attendance-area{fill:url(#none);fill:#eaf4fe;opacity:.8}.attendance-line{fill:none;stroke:#2375ba;stroke-width:3;stroke-linejoin:round;stroke-linecap:round}.analytics-chart-shell circle{fill:#fff;stroke:#2375ba;stroke-width:3}.late-bar{fill:#e8a43c;opacity:.75}.analytics-chart-legend{display:flex;gap:18px;padding:0 19px 16px;color:#657a90;font-size:.7rem}.analytics-chart-legend span{display:flex;align-items:center;gap:6px}.analytics-chart-legend i{width:9px;height:9px;border-radius:3px}.analytics-chart-legend i.blue{background:#2375ba}.analytics-chart-legend i.amber{background:#e8a43c}.insight-list{display:grid;gap:9px;padding:15px}.insight-item{display:flex;gap:10px;padding:12px;border-radius:14px;background:#f3f7fb}.insight-item>span{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#e4edf6;color:#3d668d;flex:none}.insight-item .icon{width:17px;height:17px}.insight-item strong{display:block;color:#294660;font-size:.78rem}.insight-item p{margin:3px 0 0;color:#657c92;font-size:.7rem;line-height:1.45}.insight-item.positive{background:#edf9f4}.insight-item.positive>span{background:#d8f1e6;color:#16805b}.insight-item.warning{background:#fff8e9}.insight-item.warning>span{background:#fae9bd;color:#a96a0c}.insight-item.danger{background:#fff0f0}.insight-item.danger>span{background:#f7dada;color:#b34242}.department-comparison{display:grid}.department-analytics-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(170px,1fr) 72px;align-items:center;gap:13px;padding:12px 18px;border-bottom:1px solid #eef2f6;color:inherit}.department-analytics-row:last-child{border-bottom:0}.department-analytics-row:hover{background:#f7fafc}.department-analytics-row strong,.department-analytics-row small{display:block}.department-analytics-row strong{font-size:.78rem;color:#294660}.department-analytics-row small{margin-top:3px;font-size:.65rem;color:#8493a4}.department-bars{display:grid;grid-template-columns:1fr 48px;gap:8px;align-items:center}.department-bars>span{height:7px;border-radius:999px;background:#e8eef4;overflow:hidden}.department-bars i{display:block;height:100%;background:linear-gradient(90deg,#2679be,#25a679);border-radius:inherit}.department-bars em,.late-rate{font-style:normal;color:#506a82;font-size:.68rem;font-weight:800}.late-rate{text-align:right;color:#a36918}.weekday-bars{display:grid;gap:10px;padding:18px}.weekday-row{display:grid;grid-template-columns:32px 1fr 44px 56px;align-items:center;gap:8px;color:#536c85;font-size:.7rem}.weekday-row>div{height:8px;border-radius:999px;background:#e8eef4;overflow:hidden}.weekday-row i{display:block;height:100%;border-radius:inherit;background:#2477bb}.weekday-row strong{color:#294761}.weekday-row small{text-align:right;color:#9a6a25}.analytics-risk-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.risk-card>header>div{display:flex;align-items:center;gap:9px}.risk-icon{width:35px;height:35px;border-radius:11px;background:#eef4fa;color:#2e6697;display:grid;place-items:center}.risk-icon .icon{width:17px;height:17px}.risk-card>header h2{font-size:.88rem}.risk-list{list-style:none;margin:0;padding:5px 14px 12px}.risk-list li a{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:8px;padding:9px 3px;border-bottom:1px solid #eef2f6;color:inherit}.risk-list li:last-child a{border-bottom:0}.risk-rank{width:22px;height:22px;border-radius:8px;background:#eef4fa;color:#456683;display:grid;place-items:center;font-size:.65rem;font-weight:900}.risk-list strong,.risk-list small{display:block}.risk-list strong{color:#2d4964;font-size:.73rem}.risk-list small{margin-top:2px;color:#8694a5;font-size:.61rem}.risk-list em{font-style:normal;color:#194d78;font-size:.73rem;font-weight:900}.empty-state.mini{padding:22px 15px}.analytics-actions-card{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px}.analytics-actions-card h2{margin:2px 0 4px;color:#193550;font-size:1rem}.analytics-actions-card p{margin:0;max-width:730px;color:#6f8297;font-size:.76rem}.analytics-actions-card>div:last-child{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:1180px){.analytics-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-risk-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-advanced-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.analytics-filter-form{grid-template-columns:1fr 1fr}.analytics-filter-actions{grid-column:1/-1;justify-content:flex-end}.analytics-top-grid,.analytics-middle-grid{grid-template-columns:1fr}.analytics-hero{align-items:flex-start;flex-direction:column}.analytics-hero-actions{width:100%}.analytics-hero-actions .btn{flex:1}}
@media(max-width:680px){.analytics-centre{gap:12px}.analytics-hero{padding:20px 16px;border-radius:20px}.analytics-hero h1{font-size:1.42rem}.analytics-filter-form{grid-template-columns:1fr;padding:14px}.analytics-filter-actions{grid-column:auto}.analytics-filter-actions .btn{flex:1}.analytics-advanced-grid{grid-template-columns:1fr}.analytics-check-list{max-height:140px}.analytics-kpis{grid-template-columns:1fr 1fr;gap:8px}.analytics-kpi{padding:12px 10px;gap:8px}.analytics-kpi-icon{width:35px;height:35px;border-radius:11px}.analytics-kpi strong{font-size:1.12rem}.analytics-kpi em{font-size:.6rem}.analytics-card>header{padding:14px}.analytics-chart-shell{min-height:210px;padding:7px}.analytics-risk-grid{grid-template-columns:1fr}.department-analytics-row{grid-template-columns:1fr 1fr;gap:8px}.department-analytics-row>.late-rate{grid-column:2;text-align:left}.analytics-actions-card{align-items:stretch;flex-direction:column;padding:16px}.analytics-actions-card>div:last-child .btn{flex:1}.weekday-row{grid-template-columns:30px 1fr 40px}.weekday-row small{display:none}}

/* Phase 6C enterprise reporting */
.reports-enterprise-actions{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.builder-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:1.25rem}.builder-main{display:grid;gap:1rem}.builder-side{position:relative}.builder-publish{position:sticky;top:88px}.builder-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.builder-wide{grid-column:1/-1}.builder-grid label>span,.builder-publish label>span{display:block;font-size:.78rem;font-weight:800;color:#475569;margin-bottom:.4rem}.column-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;margin-bottom:1rem}.column-picker label,.builder-check-list label{display:flex;gap:.55rem;align-items:center;padding:.65rem .7rem;border:1px solid #dbe4ef;border-radius:12px;background:#f8fafc;font-size:.86rem}.builder-check-list{max-height:220px;overflow:auto;display:grid;gap:.4rem}.builder-grid fieldset{border:0;padding:0;margin:0}.builder-grid legend{font-weight:800;margin-bottom:.45rem}.builder-icon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:#e8f0ff;color:#1d4ed8}.saved-reports-page{display:grid;gap:1.2rem}.saved-report-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:1rem}.saved-report-card{background:#fff;border:1px solid #dce5ef;border-radius:20px;padding:1rem;box-shadow:0 10px 28px rgba(15,23,42,.06)}.saved-report-top{display:flex;gap:.8rem}.saved-report-top h2{font-size:1.05rem;margin:.35rem 0}.saved-report-top p{color:#64748b;font-size:.88rem}.saved-report-meta,.saved-report-actions{display:flex;justify-content:space-between;gap:.5rem;align-items:center;flex-wrap:wrap;margin-top:.85rem}.saved-report-meta{font-size:.76rem;color:#64748b;border-top:1px solid #edf2f7;padding-top:.75rem}.saved-report-actions form{display:inline}.schedule-report{margin-top:.85rem;border-top:1px solid #edf2f7;padding-top:.75rem}.schedule-report summary{font-weight:800;cursor:pointer}.schedule-report form{display:grid;gap:.65rem;margin-top:.75rem}.schedule-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.report-run-list{display:grid;gap:.6rem}.report-run-list>div{display:grid;grid-template-columns:auto 1fr auto;gap:.7rem;align-items:center;padding:.7rem;border-bottom:1px solid #edf2f7}.executive-summary-page{display:grid;gap:1.1rem}.executive-summary-hero{display:flex;justify-content:space-between;gap:1rem;align-items:flex-end;padding:1.25rem;border-radius:22px;background:linear-gradient(135deg,#102f55,#1d4f89);color:#fff}.executive-summary-hero h1{margin:.25rem 0}.executive-summary-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:1rem}.benchmark-list{display:grid;gap:.15rem}.benchmark-list>div{display:flex;justify-content:space-between;align-items:center;padding:.7rem 0;border-bottom:1px solid #edf2f7}.benchmark-list small{display:block;color:#64748b}.benchmark-score{font-weight:900}.benchmark-score em{font-size:.72rem;margin-left:.35rem}.executive-risk-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.executive-risk-grid>div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;padding:1rem}.executive-risk-grid p{display:flex;justify-content:space-between;gap:.5rem;font-size:.84rem;border-bottom:1px solid #e2e8f0;padding:.5rem 0}.positive{color:#15803d}.negative{color:#b91c1c}@media(max-width:900px){.builder-layout,.executive-summary-grid{grid-template-columns:1fr}.builder-publish{position:static}.column-picker{grid-template-columns:repeat(2,1fr)}.executive-risk-grid{grid-template-columns:1fr}.reports-enterprise-actions{width:100%}}@media(max-width:560px){.builder-grid,.schedule-fields,.column-picker{grid-template-columns:1fr}.executive-summary-hero{align-items:flex-start;flex-direction:column}.reports-enterprise-actions .btn{flex:1 1 46%}.report-run-list>div{grid-template-columns:auto 1fr}.report-run-list small{grid-column:2}}@media print{.app-sidebar,.app-header,.mobile-bottom-nav,.executive-summary-hero .btn{display:none!important}.app-main{margin:0!important}.executive-summary-page{font-size:10pt}}

/* Phase 6D.1 — invisible in-app navigation with preserved continuity */
html{scroll-behavior:auto}
.sidebar .nav-scroll{overscroll-behavior:contain;scrollbar-gutter:stable}
.sidebar-restoring .nav-scroll{scroll-behavior:auto!important}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}}

/* Phase 6E — optional face verification */
.face-verification-session-toggle{align-items:flex-start!important;gap:10px}.face-verification-session-toggle span{display:flex;flex-direction:column;gap:2px}.face-verification-session-toggle small{font-weight:400;color:var(--text-muted,#697386)}
.face-verification-card{margin-top:18px}.face-verification-status-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0}.face-verification-status-row>div:first-child{display:grid;gap:4px}.face-verification-status-row small,.face-verification-status-row span{color:var(--text-muted,#697386);font-size:.82rem}.face-verification-actions{display:flex;gap:8px;flex-wrap:wrap}
.face-capture-dialog[hidden]{display:none!important}.face-capture-dialog{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:20px}.face-capture-backdrop{position:absolute;inset:0;background:rgba(7,15,28,.72);backdrop-filter:blur(5px)}.face-capture-sheet{position:relative;width:min(520px,100%);max-height:calc(100vh - 36px);overflow:auto;background:#fff;border-radius:18px;box-shadow:0 30px 90px rgba(0,0,0,.28);padding:24px}.face-capture-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.face-capture-head h2{margin:.15rem 0}.face-capture-head p{margin:0;color:var(--text-muted,#697386)}.face-camera-stage{position:relative;aspect-ratio:1/1;margin:20px 0 12px;background:#0b1220;border-radius:16px;overflow:hidden;display:grid;place-items:center}.face-camera-stage video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.face-camera-placeholder{position:absolute;color:#a9b4c6;font-size:.9rem}.face-guide{position:absolute;width:58%;height:72%;border:2px solid rgba(255,255,255,.78);border-radius:48%;box-shadow:0 0 0 999px rgba(4,9,18,.16);pointer-events:none}.face-capture-message{min-height:24px;margin:8px 0;color:var(--text-muted,#697386)}.face-capture-message[data-tone="error"]{color:#b42318}.face-capture-message[data-tone="success"]{color:#067647}.face-consent-row{display:flex;align-items:flex-start;gap:10px;padding:14px 0;border-top:1px solid var(--border,#e5e7eb);font-size:.9rem;line-height:1.45}.face-consent-row input{margin-top:3px}.face-capture-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}.face-capture-open{overflow:hidden}.session-face-readiness{margin:0 0 18px}.session-face-readiness p{margin:.25rem 0 0}
@media(max-width:640px){.face-verification-status-row{align-items:flex-start;flex-direction:column}.face-verification-actions{width:100%}.face-verification-actions .btn{flex:1}.face-capture-dialog{padding:0;place-items:end center}.face-capture-sheet{width:100%;max-height:92vh;border-radius:20px 20px 0 0;padding:18px}.face-camera-stage{margin-top:16px}.face-capture-actions .btn{flex:1}}
.employee-face-overlay[hidden]{display:none!important}.employee-face-overlay{position:fixed;inset:0;z-index:1150;background:rgba(5,12,24,.72);backdrop-filter:blur(6px);display:grid;place-items:center;padding:20px}.employee-face-card{width:min(520px,100%);max-height:calc(100vh - 32px);overflow:auto}.employee-face-stage{position:relative;aspect-ratio:1/1;background:#08101e;border-radius:16px;overflow:hidden;margin:18px 0 10px;display:grid;place-items:center}.employee-face-stage video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.employee-face-guide{position:absolute;width:58%;height:72%;border:2px solid rgba(255,255,255,.88);border-radius:48%;box-shadow:0 0 0 999px rgba(1,5,12,.16);pointer-events:none}.employee-face-placeholder{position:absolute;color:#b4bfd0}.employee-face-message{min-height:24px;color:var(--text-muted,#697386)}.employee-face-message[data-tone="error"]{color:#b42318}.employee-face-message[data-tone="success"]{color:#067647}.employee-face-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.employee-face-open{overflow:hidden}@media(max-width:640px){.employee-face-overlay{padding:0;place-items:end center}.employee-face-card{width:100%;max-height:93vh;border-radius:20px 20px 0 0}.employee-face-actions .btn{flex:1}}

/* ========================================================================
   Phase 6E.3 — Authentication, Splash & Global Product Identity Polish
   Quiet product identity, lighter authentication typography and no
   promotional login hero. The same lockup is reused in shell and kiosk.
   ======================================================================== */
.ap-product-lockup{display:inline-flex;align-items:center;gap:11px;min-width:0;color:inherit;text-decoration:none}
.ap-product-mark{width:38px;height:38px;display:block;flex:0 0 38px;overflow:hidden;border-radius:9px;background:#0b172a;border:1px solid rgba(255,255,255,.12);box-shadow:0 4px 14px rgba(3,12,24,.16)}
.ap-product-mark img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.02)}
.ap-product-copy{display:flex;flex-direction:column;min-width:0;line-height:1.16}
.ap-product-copy strong{font-size:14.5px;font-weight:650;letter-spacing:-.02em;white-space:nowrap;color:inherit}
.ap-product-copy strong>span{font-weight:520;opacity:.88}
.ap-product-copy small{margin-top:3px;font-size:10px;font-weight:500;letter-spacing:.005em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:inherit;opacity:.58}
.ap-product-lockup-sidebar{color:#fff}
.ap-product-lockup-sidebar .ap-product-mark{width:36px;height:36px;flex-basis:36px;border-radius:8px;box-shadow:none;border-color:rgba(255,255,255,.10)}
.ap-product-lockup-sidebar .ap-product-copy strong{font-size:14px}
.ap-product-lockup-kiosk{color:#fff}
.ap-product-lockup-kiosk .ap-product-mark{width:38px;height:38px;flex-basis:38px;border-radius:8px;box-shadow:none}
.ap-product-lockup-kiosk .ap-product-copy strong{font-size:14px}

/* Make the shell identity obvious without turning it into a badge. */
.sidebar-brand{padding-left:16px}
.brand-link{gap:0}
.brand-link>.ap-product-lockup{max-width:190px}
body.sidebar-collapsed .brand-link>.ap-product-lockup .ap-product-copy{display:none}
body.sidebar-collapsed .brand-link>.ap-product-lockup{justify-content:center}
body.sidebar-collapsed .brand-link>.ap-product-lockup .ap-product-mark{width:38px;height:38px;flex-basis:38px}

/* Login: authentication first. No campaign/hero treatment. */
.login-page-minimal{min-height:100vh;display:block;background:#f4f6f9;color:var(--slate-900)}
.login-access-minimal{min-height:100vh;display:grid;place-items:center;padding:36px 20px;background:linear-gradient(180deg,#f7f9fc 0%,#f1f4f8 100%)}
.login-minimal-shell{width:min(100%,430px)}
.login-minimal-brand{display:flex;justify-content:flex-start;margin:0 0 22px;padding:0 2px}
.ap-product-lockup-login{color:var(--slate-900)}
.ap-product-lockup-login .ap-product-mark{width:42px;height:42px;flex-basis:42px;border-radius:9px;box-shadow:0 5px 18px rgba(7,17,31,.12)}
.ap-product-lockup-login .ap-product-copy strong{font-size:15px}
.ap-product-lockup-login .ap-product-copy small{font-size:10.5px;color:var(--slate-600);opacity:1}
.login-card-minimal{width:100%;padding:32px;border-radius:14px;border:1px solid #dfe5ec;background:#fff;box-shadow:0 14px 38px rgba(7,17,31,.07)}
.login-heading-minimal{margin-bottom:24px}
.login-heading-minimal h1{margin:0 0 6px;font-size:24px;line-height:1.15;font-weight:590;letter-spacing:-.035em;color:var(--slate-900)}
.login-heading-minimal p{margin:0;font-size:13.5px;color:var(--slate-500)}
.login-card-minimal .form-label{font-weight:620}
.login-card-minimal .form-control{min-height:46px}
.login-card-minimal .auth-form-options{margin-top:2px}
.login-card-minimal .login-submit{min-height:46px;box-shadow:none;font-weight:650}
.login-card-minimal .login-submit:hover{transform:none;box-shadow:none}
.login-footer-minimal{display:flex;justify-content:flex-start;margin-top:18px;padding:0 2px;color:var(--slate-400);font-size:10px}

/* Override legacy login hero rules should markup from older cached templates appear. */
.login-page-minimal .login-hero,.login-page-minimal .login-assurance,.login-page-minimal .login-help{display:none!important}

/* Kiosk identity stays secondary to the check-in task. */
.qr-kiosk-brand{display:flex;align-items:center;min-width:0}
.qr-kiosk-brand>.ap-product-lockup{max-width:235px}
.qr-kiosk-brand .ap-product-copy small{color:rgba(226,232,240,.72);opacity:1}

@media(max-width:700px){
  .login-access-minimal{padding:28px 16px}
  .login-minimal-shell{width:min(100%,410px)}
  .login-card-minimal{padding:26px 22px;border-radius:12px}
  .login-heading-minimal h1{font-size:22px}
  .login-minimal-brand{margin-bottom:18px}
  .ap-product-lockup-login .ap-product-mark{width:38px;height:38px;flex-basis:38px}
}
@media(max-width:420px){
  .login-access-minimal{align-items:start;padding-top:max(28px,env(safe-area-inset-top))}
  .login-card-minimal{padding:24px 18px}
  .auth-form-options{gap:12px;align-items:flex-start}
}
.mobile-product-identity{display:none}
@media(max-width:1050px){
  .mobile-product-identity{display:inline-flex;align-items:center;min-width:0}
  .ap-product-lockup-mobile{gap:8px;color:var(--slate-900)}
  .ap-product-lockup-mobile .ap-product-mark{width:30px;height:30px;flex-basis:30px;border-radius:7px;box-shadow:none}
  .ap-product-lockup-mobile .ap-product-copy strong{font-size:12.5px;font-weight:650}
  .topbar-title-wrap{margin-left:3px}
}
@media(max-width:620px){
  .topbar-title-wrap .topbar-context{display:none}
  .mobile-product-identity .ap-product-copy{display:none}
}


/* Phase 6F — member self-onboarding */
.onboarding-public-shell,.onboarding-activation,.onboarding-state{max-width:760px;margin:0 auto;padding:28px 0 72px}
.onboarding-brand{display:flex;align-items:center;gap:10px;margin-bottom:42px}
.onboarding-brand strong{display:block;font-size:14px}.onboarding-brand small{display:block;color:var(--muted,#6b7280);font-size:12px;margin-top:2px}
.onboarding-heading{margin-bottom:42px}.onboarding-heading h1,.onboarding-state h1,.onboarding-activation h1{font-size:clamp(28px,4vw,40px);font-weight:600;letter-spacing:-.035em;margin:6px 0 8px}.onboarding-heading p,.onboarding-state p,.onboarding-activation p{color:var(--muted,#6b7280);font-size:15px}
.onboarding-form{display:flex;flex-direction:column;gap:34px}.onboarding-section{padding-top:22px;border-top:1px solid var(--border,#e5e7eb)}.onboarding-section h2{font-size:15px;font-weight:600;margin:0 0 18px;display:flex;justify-content:space-between;gap:12px}.section-optional,.optional-mark,.required-mark{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--muted,#6b7280)}
.onboarding-actions{padding-top:6px}.onboarding-actions .btn{min-width:180px}
.onboarding-admin-head{display:flex;justify-content:flex-end;margin-bottom:18px}.status-tabs{display:flex;gap:6px;flex-wrap:wrap}.status-tab{padding:8px 12px;border:1px solid var(--border,#e5e7eb);text-decoration:none;color:inherit;font-size:13px}.status-tab.active{background:var(--surface-strong,#111827);color:white}.status-tab span{opacity:.7;margin-left:5px}
.onboarding-review{max-width:920px}.review-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:24px}.review-heading h2{margin:4px 0;font-size:28px}.review-heading p{color:var(--muted,#6b7280)}.review-grid{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:22px}.review-dl{display:grid;grid-template-columns:1fr 1fr;gap:20px}.review-dl dt{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted,#6b7280);margin-bottom:4px}.review-dl dd{margin:0}.review-photo img{width:100%;aspect-ratio:1/1;object-fit:cover}.review-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:24px}.reject-form{display:flex;gap:8px;flex:1;min-width:320px}.input-copy-row{display:flex;gap:8px}.input-copy-row .form-control{flex:1}
.employee-onboarding-shortcut{display:flex;justify-content:flex-end;margin-bottom:12px}
@media(max-width:700px){.onboarding-public-shell,.onboarding-activation,.onboarding-state{padding:12px 0 48px}.onboarding-brand{margin-bottom:30px}.onboarding-form{gap:26px}.review-grid{grid-template-columns:1fr}.review-photo{max-width:180px}.review-dl{grid-template-columns:1fr}.review-heading{flex-direction:column}.reject-form{min-width:100%;flex-direction:column}.input-copy-row{flex-direction:column}.onboarding-actions .btn{width:100%}}

.onboarding-hp{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}

/* Phase 6F.1 — onboarding and portal integration polish */
.onboarding-public-shell{max-width:680px;padding-top:44px}
.onboarding-public-shell .onboarding-brand{margin-bottom:34px}
.onboarding-public-shell .onboarding-heading{margin-bottom:34px}
.onboarding-public-shell .onboarding-heading h1{font-size:clamp(27px,3.4vw,36px);font-weight:570}
.onboarding-public-shell .onboarding-section{padding-top:20px}
.onboarding-public-shell .onboarding-section h2{font-size:14px;margin-bottom:16px}
.onboarding-public-shell .form-control{min-height:46px}
.onboarding-public-shell textarea.form-control{min-height:92px}
.onboarding-public-shell .form-row{gap:14px}
.onboarding-public-shell .onboarding-actions{padding-top:0}
.onboarding-public-shell .onboarding-actions .btn{min-height:48px}
.onboarding-state,.onboarding-activation{max-width:560px;padding-top:72px}
.onboarding-state h1,.onboarding-activation h1{font-size:32px;font-weight:570}
.employee-onboarding-shortcut .btn{font-weight:550}
.onboarding-review .review-heading h2{font-size:26px;font-weight:600}
@media(max-width:700px){
  .onboarding-public-shell{padding-top:26px}
  .onboarding-public-shell .form-row,.onboarding-public-shell .form-row.three-columns{grid-template-columns:1fr!important}
  .onboarding-public-shell .onboarding-heading h1{font-size:30px}
  .onboarding-public-shell .onboarding-brand{margin-bottom:26px}
  .onboarding-public-shell .onboarding-heading{margin-bottom:28px}
  .onboarding-public-shell .onboarding-actions{position:sticky;bottom:0;padding:12px 0 calc(12px + env(safe-area-inset-bottom));background:linear-gradient(to top,var(--bg,#fff) 72%,transparent)}
}

.onboarding-state-brand{margin-bottom:38px}
.activation-username{margin:16px 0 22px!important;color:var(--text,#111827)!important;font-size:14px!important}
.activation-username strong{margin-left:8px;font-weight:650}


/* Phase 6H.1 — Login composition repair */
.login-page-minimal .login-minimal-shell{width:min(100%,440px)}
.login-page-minimal .login-minimal-brand{min-height:46px;align-items:center;margin:0 0 18px;padding:0 3px}
.login-page-minimal .login-card.enterprise-auth-card.login-card-minimal{
  width:100%;max-width:none;margin:0 auto;padding:34px 36px 32px;border-radius:15px;
  box-shadow:0 18px 46px rgba(7,17,31,.09)
}
.login-page-minimal .login-card.enterprise-auth-card.login-card-minimal .login-heading{margin:0 0 26px}
.login-page-minimal .login-card.enterprise-auth-card.login-card-minimal .login-heading h1{
  margin:0 0 7px;font-size:24px;line-height:1.16;font-weight:600;letter-spacing:-.035em
}
.login-page-minimal .login-card.enterprise-auth-card.login-card-minimal .login-heading p{font-size:13px;line-height:1.5}
.login-page-minimal .login-card.enterprise-auth-card.login-card-minimal .form-label{font-size:11px;font-weight:620}
.login-page-minimal .login-footer-minimal{width:100%;margin-top:18px;padding:0 3px}
@media(max-width:700px){
  .login-page-minimal .login-card.enterprise-auth-card.login-card-minimal{margin:0;padding:28px 24px}
}
@media(max-width:460px){
  .login-page-minimal .login-card.enterprise-auth-card.login-card-minimal{margin:0;padding:25px 20px}
}

/* Event-only workspaces keep workforce configuration available in the data model
   while removing it from the day-to-day interface. */
.workspace-events #employee-ids,
.workspace-events #member-onboarding,
.workspace-events #employee-portal,
.workspace-events #gps{display:none}
