:root {
    color-scheme: light;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    background: #f4f7fb;
    color: #172033;
}

body {
    margin: 0;
    min-height: 100vh;
    background: #f4f7fb;
}

.admin-body main {
    max-width: 112rem;
    margin-inline: auto;
}

.auth-card {
    width: min(31rem, calc(100% - 2rem));
    margin: 7vh auto 2rem;
    border: 0;
}

.navbar .nav-link {
    color: rgba(255, 255, 255, 0.82);
    font-weight: 600;
}

.navbar .nav-link:hover,
.navbar .nav-link:focus {
    color: #fff;
}

.module-card {
    border: 0;
    box-shadow: 0 0.35rem 1.2rem rgba(35, 52, 78, 0.07);
}

.table td,
.table th {
    vertical-align: middle;
}

.shell {
    width: min(42rem, calc(100% - 2rem));
    padding: 2.5rem;
    box-sizing: border-box;
    background: #ffffff;
    border: 1px solid #dce3ee;
    border-radius: 1rem;
    box-shadow: 0 1rem 3rem rgba(35, 52, 78, 0.08);
}

.eyebrow {
    color: #2458a6;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-size: 0.78rem;
}

h1 {
    margin: 0.35rem 0 1rem;
    font-size: clamp(2rem, 5vw, 3.25rem);
    line-height: 1.05;
}

p {
    line-height: 1.65;
}

dl {
    margin: 1.75rem 0;
    border-top: 1px solid #e5eaf1;
}

dl div {
    display: grid;
    grid-template-columns: 8rem 1fr;
    gap: 1rem;
    padding: 0.8rem 0;
    border-bottom: 1px solid #e5eaf1;
}

dt {
    font-weight: 700;
}

dd {
    margin: 0;
    overflow-wrap: anywhere;
}

a {
    color: #174f9e;
    font-weight: 700;
}


/* F3 UX consolidation: navigation and first-use clarity */
.app-topbar { position: sticky; top: 0; z-index: 1030; min-height: 3.75rem; display:flex; align-items:center; background:#0d6efd; box-shadow:0 .2rem .8rem rgba(23,32,51,.12); }
.app-brand { color:#fff; text-decoration:none; font-size:1.1rem; font-weight:750; }
.app-brand:hover { color:#fff; }
.app-user { color:rgba(255,255,255,.9); font-size:.9rem; }
.app-shell { display:grid; grid-template-columns:17rem minmax(0,1fr); min-height:calc(100vh - 3.75rem); }
.app-sidebar { background:#fff; border-right:1px solid #dde4ee; padding:1rem .75rem 2rem; }
.app-sidebar-intro { padding:.65rem .75rem 1rem; border-bottom:1px solid #e7ebf1; margin-bottom:.6rem; }
.app-sidebar-intro strong,.app-sidebar-intro span { display:block; }
.app-sidebar-intro span { color:#667085; font-size:.82rem; margin-top:.2rem; line-height:1.35; }
.app-menu-group { margin-top:.85rem; }
.app-menu-title { padding:.35rem .75rem; color:#667085; font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; font-weight:750; }
.app-menu-link { display:flex; flex-direction:column; padding:.55rem .75rem; margin:.08rem 0; border-radius:.55rem; color:#24324a; text-decoration:none; font-weight:650; }
.app-menu-link small { color:#7b8798; font-weight:450; font-size:.74rem; }
.app-menu-link:hover { background:#f2f6fc; color:#174f9e; }
.app-menu-link.active { background:#e8f1ff; color:#0b57b7; box-shadow:inset 3px 0 #0d6efd; }
.app-main { min-width:0; padding:1.5rem clamp(1rem,2vw,2rem) 3rem; max-width:100rem; width:100%; margin:0 auto; }
.page-heading h1 { font-size:clamp(1.8rem,3vw,2.55rem); margin-bottom:.55rem; }
.setup-steps { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:.6rem; }
.setup-steps a { display:flex; gap:.65rem; align-items:center; padding:.75rem; border:1px solid #dfe6ef; border-radius:.75rem; text-decoration:none; color:#24324a; background:#fff; }
.setup-steps a:hover { border-color:#9ec5fe; background:#f7faff; }
.setup-steps b { width:1.9rem; height:1.9rem; border-radius:50%; background:#e8f1ff; color:#0d6efd; display:grid; place-items:center; flex:0 0 auto; }
.setup-steps span,.setup-steps strong,.setup-steps small { display:block; }
.setup-steps small { color:#6c757d; font-weight:400; font-size:.72rem; line-height:1.2; }
.step-heading { display:flex; gap:.8rem; align-items:flex-start; margin-bottom:1rem; }
.step-number { width:2rem; height:2rem; border-radius:50%; background:#0d6efd; color:#fff; display:grid; place-items:center; font-weight:750; flex:0 0 auto; }
.ux-details { background:#fff; border:1px solid #dfe5ed; border-radius:.75rem; padding:.85rem 1rem; }
.ux-details summary { cursor:pointer; font-weight:700; color:#24415f; }
.employee-picker { border:1px solid #e1e6ee; border-radius:.65rem; background:#fff; margin-bottom:.75rem; }
.employee-picker .table { margin-bottom:0; }
.shift-card { display:flex; justify-content:space-between; align-items:center; gap:1rem; border:1px solid #dce5f0; background:#f8fbff; border-radius:.85rem; padding:1.1rem 1.2rem; }
.shift-time { font-size:clamp(1.8rem,4vw,2.6rem); font-weight:750; letter-spacing:-.04em; line-height:1.1; }
.shift-time span { color:#8b98a9; font-weight:400; }
.shift-duration { min-width:6rem; text-align:right; }
.shift-duration small,.shift-duration strong { display:block; }
.shift-duration small { color:#6c757d; }
.shift-duration strong { font-size:1.2rem; }
.simple-dl { margin:.25rem 0 0; border:0; }
.simple-dl div { display:block; padding:.7rem 0; border-bottom:1px solid #edf0f4; }
.simple-dl dt { font-size:.78rem; color:#6c757d; }
.simple-dl dd { margin:.1rem 0 0; }
@media (max-width: 991.98px) {
  .app-shell { grid-template-columns:1fr; }
  .app-sidebar { display:none; position:fixed; inset:3.75rem 0 0 0; z-index:1025; overflow:auto; }
  .app-sidebar.open { display:block; }
  .setup-steps { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 575.98px) {
  .setup-steps { grid-template-columns:1fr; }
  .shift-card { align-items:flex-start; flex-direction:column; }
  .shift-duration { text-align:left; }
}

/* v0.4.5 — UX system: clarity, accessibility and responsive enterprise layout */
:root {
  --app-primary:#155eef;
  --app-primary-dark:#0f47b8;
  --app-primary-soft:#eef4ff;
  --app-ink:#172033;
  --app-muted:#667085;
  --app-border:#dfe5ee;
  --app-surface:#fff;
  --app-canvas:#f6f8fb;
  --app-success:#067647;
  --app-warning:#b54708;
  --app-danger:#b42318;
  --app-radius:.85rem;
  --app-shadow:0 .25rem 1.25rem rgba(16,24,40,.065);
}

*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { background:var(--app-canvas); color:var(--app-ink); font-size:.96rem; }
a { font-weight:650; }
:focus-visible { outline:3px solid rgba(21,94,239,.35); outline-offset:2px; }
.skip-link { position:fixed; top:.5rem; left:.5rem; z-index:1100; padding:.65rem 1rem; border-radius:.5rem; background:#fff; color:var(--app-primary-dark); transform:translateY(-150%); box-shadow:var(--app-shadow); }
.skip-link:focus { transform:translateY(0); }

.app-topbar { min-height:4.25rem; background:linear-gradient(105deg,#0b4fc4,#1769e8); box-shadow:0 .25rem 1rem rgba(18,52,108,.18); }
.app-brand { display:flex; align-items:center; gap:.7rem; line-height:1.05; }
.app-brand-mark { width:2.15rem; height:2.15rem; display:grid; place-items:center; border-radius:.65rem; background:#fff; color:var(--app-primary); font-size:1.05rem; font-weight:850; box-shadow:0 .15rem .5rem rgba(0,0,0,.12); }
.app-brand strong,.app-brand small { display:block; }
.app-brand small { color:rgba(255,255,255,.72); font-size:.68rem; font-weight:500; margin-top:.22rem; letter-spacing:.02em; }
.app-account { margin-left:auto; align-items:center; gap:.55rem; color:#fff; line-height:1.1; }
.app-account strong,.app-account small { display:block; }
.app-account strong { font-size:.86rem; }
.app-account small { color:rgba(255,255,255,.72); font-size:.7rem; margin-top:.18rem; }
.app-account-avatar { width:2rem; height:2rem; display:grid; place-items:center; border-radius:50%; background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.25); font-weight:800; }
.app-menu-toggle { display:flex; align-items:center; gap:.35rem; font-weight:700; }

.app-shell { grid-template-columns:18rem minmax(0,1fr); min-height:calc(100vh - 4.25rem); }
.app-sidebar { position:sticky; top:4.25rem; height:calc(100vh - 4.25rem); overflow-y:auto; padding:1rem .85rem 2rem; border-right:1px solid var(--app-border); box-shadow:.2rem 0 1rem rgba(16,24,40,.025); }
.app-sidebar-intro { padding:.55rem .7rem 1rem; }
.app-sidebar-eyebrow { color:var(--app-primary); text-transform:uppercase; letter-spacing:.08em; font-size:.67rem!important; font-weight:800; margin-bottom:.4rem!important; }
.app-sidebar-intro strong { font-size:.96rem; }
.app-menu-title { padding:.5rem .75rem .3rem; color:#7c8799; font-size:.67rem; }
.app-menu-link { flex-direction:row; align-items:flex-start; gap:.65rem; padding:.62rem .7rem; border:1px solid transparent; font-weight:600; }
.app-menu-link strong,.app-menu-link small { display:block; }
.app-menu-link strong { font-size:.88rem; font-weight:700; line-height:1.2; }
.app-menu-link small { margin-top:.18rem; line-height:1.25; }
.app-menu-dot { width:.42rem; height:.42rem; margin-top:.38rem; flex:0 0 auto; border-radius:50%; background:#c7d0dc; }
.app-menu-icon { width:1.1rem; flex:0 0 auto; color:#98a2b3; text-align:center; font-size:1.05rem; line-height:1; }
.app-menu-link:hover { background:#f5f8fc; border-color:#e7ecf3; }
.app-menu-link.active { background:var(--app-primary-soft); color:var(--app-primary-dark); border-color:#d8e5ff; box-shadow:none; }
.app-menu-link.active .app-menu-dot { background:var(--app-primary); box-shadow:0 0 0 4px rgba(21,94,239,.1); }
.app-menu-backdrop { display:none; }
.app-main { padding:clamp(1.25rem,2.5vw,2.25rem) clamp(1rem,2.7vw,2.75rem) 4rem; max-width:100rem; }

.page-heading { display:flex; flex-direction:column; align-items:flex-start; margin-bottom:1.5rem; max-width:58rem; }
.page-heading h1 { color:#101828; font-size:clamp(1.75rem,3vw,2.35rem); letter-spacing:-.035em; line-height:1.12; margin:.2rem 0 .55rem; }
.page-heading p { max-width:52rem; margin-bottom:0; line-height:1.55; }
.page-kicker,.page-heading>.text-primary:first-child { color:var(--app-primary)!important; font-size:.75rem; font-weight:800!important; text-transform:uppercase; letter-spacing:.075em; }
.section-heading { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:end; gap:.75rem; margin:2rem 0 .85rem; }
.section-heading h2 { margin:0; font-size:1.18rem; }
.section-heading p { margin:.2rem 0 0; color:var(--app-muted); }

.card { border:1px solid var(--app-border); border-radius:var(--app-radius); box-shadow:var(--app-shadow); }
.card.shadow-sm { box-shadow:var(--app-shadow)!important; }
.card-body { padding:clamp(1rem,2vw,1.35rem); }
.module-card { position:relative; border:1px solid var(--app-border); overflow:hidden; transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease; }
.module-card::after { content:'→'; position:absolute; right:1.1rem; top:1.05rem; color:#98a2b3; font-size:1.15rem; }
.module-card:hover { transform:translateY(-2px); border-color:#b8ccf4; box-shadow:0 .55rem 1.5rem rgba(16,24,40,.09); }
.module-card h2 { padding-right:2rem; color:#1d2939; }
.first-use-card { border:1px solid #cbdcff!important; background:linear-gradient(120deg,#fff 50%,#f2f7ff); }
.setup-steps { grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr)); }
.setup-steps a { min-height:4.75rem; border-color:#d9e1ec; box-shadow:0 .1rem .35rem rgba(16,24,40,.025); }

.form-label { margin-bottom:.4rem; color:#344054; font-size:.86rem; font-weight:700; }
.form-control,.form-select { min-height:2.65rem; border-color:#cfd7e3; border-radius:.6rem; color:#1d2939; }
.form-control:focus,.form-select:focus { border-color:#84adff; box-shadow:0 0 0 .2rem rgba(21,94,239,.12); }
.form-control:disabled,.form-control[readonly] { background:#f4f6f9; color:#667085; }
.form-text { color:#667085; line-height:1.4; }
.form-section { padding:1rem; border:1px solid #e4e9f0; border-radius:.75rem; background:#fbfcfe; }
.form-section-title { font-size:.8rem; color:#475467; font-weight:800; text-transform:uppercase; letter-spacing:.045em; margin-bottom:.85rem; }
.primary-action { min-width:10rem; font-weight:750; }
.btn { border-radius:.58rem; font-weight:700; }
.btn-primary { background:var(--app-primary); border-color:var(--app-primary); }
.btn-primary:hover { background:var(--app-primary-dark); border-color:var(--app-primary-dark); }
.btn-danger-subtle { color:var(--app-danger); background:#fff5f4; border-color:#fecdca; }
.btn-danger-subtle:hover { color:#fff; background:var(--app-danger); border-color:var(--app-danger); }

.table-responsive { border:1px solid var(--app-border); border-radius:var(--app-radius); background:#fff; box-shadow:var(--app-shadow); }
.table-responsive>.table { margin-bottom:0; }
.table thead th { padding:.8rem .85rem; color:#475467; background:#f8fafc; border-bottom:1px solid var(--app-border); font-size:.74rem; text-transform:uppercase; letter-spacing:.035em; white-space:nowrap; }
.table tbody td,.table tbody th { padding:.85rem; border-color:#edf0f4; }
.table-hover>tbody>tr:hover>* { --bs-table-accent-bg:#f8fbff; }
.table .badge { white-space:normal; text-align:left; }
.table-actions { display:flex; flex-wrap:wrap; gap:.45rem; align-items:center; }
.record-card { border:1px solid var(--app-border); border-radius:var(--app-radius); background:#fff; box-shadow:var(--app-shadow); margin-bottom:.75rem; overflow:hidden; }
.record-card>summary { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem 1.1rem; cursor:pointer; list-style:none; }
.record-card>summary::-webkit-details-marker { display:none; }
.record-card>summary::after { content:'Editar'; color:var(--app-primary); font-size:.82rem; font-weight:750; }
.record-card[open]>summary { border-bottom:1px solid var(--app-border); background:#fafcff; }
.record-card[open]>summary::after { content:'Cerrar'; }
.record-card-body { padding:1rem 1.1rem 1.15rem; }

.empty-state { padding:2.5rem 1.25rem!important; border:1px dashed #cbd5e1; border-radius:var(--app-radius); background:#fbfcfe; color:var(--app-muted); }
.empty-state::before { content:'—'; display:grid; place-items:center; width:2.5rem; height:2.5rem; margin:0 auto .75rem; border-radius:50%; background:#eef2f6; color:#667085; font-weight:800; }
.alert { border-radius:.75rem; border-width:1px; line-height:1.5; }
.alert-success { color:#05603a; background:#ecfdf3; border-color:#abefc6; }
.alert-warning { color:#93370d; background:#fffaeb; border-color:#fedf89; }
.alert-danger { color:#912018; background:#fef3f2; border-color:#fecdca; }
.alert-info { color:#1849a9; background:#eff8ff; border-color:#b2ddff; }
.badge { padding:.42em .62em; border-radius:.45rem; font-weight:750; }

.ux-details { box-shadow:0 .1rem .4rem rgba(16,24,40,.025); }
.ux-details summary { display:flex; align-items:center; gap:.5rem; list-style:none; }
.ux-details summary::-webkit-details-marker { display:none; }
.ux-details summary::before { content:'＋'; color:var(--app-primary); font-size:1rem; }
.ux-details[open] summary::before { content:'−'; }
.technical-details { border-style:dashed; background:#fbfcfe; box-shadow:none; }
.technical-value { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:.82rem; overflow-wrap:anywhere; }
.status-note { display:flex; gap:.75rem; padding:.9rem 1rem; border-radius:.75rem; background:#f8fafc; color:#475467; }
.status-note strong { color:#1d2939; }
.action-panel { position:sticky; bottom:.75rem; z-index:10; display:flex; flex-wrap:wrap; justify-content:flex-end; align-items:center; gap:.75rem; padding:.75rem; border:1px solid var(--app-border); border-radius:.75rem; background:rgba(255,255,255,.94); box-shadow:0 .5rem 1.5rem rgba(16,24,40,.12); backdrop-filter:blur(8px); }

.auth-card { margin:5vh auto 2rem; max-width:31rem; }
.auth-card .card-body { padding:clamp(1.5rem,5vw,2.5rem)!important; }
.auth-brand { display:flex; align-items:center; gap:.75rem; margin-bottom:1.5rem; }
.auth-brand-mark { width:3rem; height:3rem; display:grid; place-items:center; border-radius:.85rem; color:#fff; background:linear-gradient(135deg,#155eef,#0b4fc4); font-size:1.3rem; font-weight:850; box-shadow:0 .4rem 1rem rgba(21,94,239,.25); }
.password-field { position:relative; }
.password-field .form-control { padding-right:4.5rem; }
.password-toggle { position:absolute; right:.45rem; bottom:.38rem; border:0; background:transparent; color:var(--app-primary); font-size:.78rem; font-weight:750; padding:.45rem; }
.password-requirements { display:grid; gap:.25rem; margin:.6rem 0 0; padding:0; list-style:none; color:#667085; font-size:.79rem; }
.password-requirements li::before { content:'○'; margin-right:.4rem; }
.password-requirements li.met { color:var(--app-success); }
.password-requirements li.met::before { content:'✓'; }

.shift-card { box-shadow:inset 3px 0 var(--app-primary); }
.summary-grid,.summary-stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(9rem,1fr)); gap:.75rem; }
.summary-stat { padding:1rem; border:1px solid var(--app-border); border-radius:.75rem; background:#fff; }
.summary-stat span,.summary-stat strong { display:block; }
.summary-stat span { color:var(--app-muted); font-size:.78rem; }
.summary-stat strong { margin-top:.2rem; font-size:1.35rem; }
.summary-stat-success { background:#f0fdf4; border-color:#abefc6; }
.summary-stat-warning { background:#fffaeb; border-color:#fedf89; }
.metric-value { color:#1d2939; font-size:1.05rem; font-weight:800; }

@media (max-width: 991.98px) {
  .app-shell { display:block; }
  .app-sidebar { display:block; position:fixed; inset:4.25rem auto 0 0; width:min(20rem,88vw); height:auto; z-index:1040; transform:translateX(-105%); transition:transform .2s ease; box-shadow:.8rem 0 2rem rgba(16,24,40,.18); }
  .app-sidebar.open { transform:translateX(0); }
  .app-menu-backdrop { position:fixed; inset:4.25rem 0 0; z-index:1035; width:100%; border:0; background:rgba(16,24,40,.45); }
  .app-menu-backdrop.open { display:block; }
  body.menu-open { overflow:hidden; }
  .app-main { width:100%; }
  .action-panel { position:static; }
}

@media (max-width: 767.98px) {
  body { font-size:.93rem; }
  .app-topbar { min-height:3.9rem; }
  .app-shell { min-height:calc(100vh - 3.9rem); }
  .app-sidebar { inset:3.9rem auto 0 0; }
  .app-menu-backdrop { inset:3.9rem 0 0; }
  .app-brand small { display:none; }
  .page-heading { margin-bottom:1.15rem; }
  .card-body { padding:1rem; }
  .table-responsive { border-radius:.7rem; }
  .table tbody td,.table tbody th { padding:.72rem; }
  .table-actions { min-width:10rem; }
  .record-card>summary { align-items:flex-start; }
}

@media (max-width: 575.98px) {
  .app-main { padding:1rem .75rem 3rem; }
  .app-brand strong { font-size:.92rem; }
  .app-brand-mark { width:1.95rem; height:1.95rem; }
  .btn { min-height:2.5rem; }
  .btn-sm { min-height:2.15rem; }
  .auth-card { width:100%; margin:1rem auto; }
  .auth-card .card-body { padding:1.25rem!important; }
  .setup-steps a { min-height:auto; }
}

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; }
}

/* v0.4.6 — Platform companies: scalable provisioning UX, no new F4+ behavior */
.card-summary { display:flex!important; align-items:center; gap:.85rem; padding:1rem 1.15rem; cursor:pointer; list-style:none; }
.card-summary::-webkit-details-marker { display:none; }
.card-summary strong,.card-summary small { display:block; }
.card-summary small { margin-top:.15rem; color:var(--app-muted); font-weight:400; }
.platform-provision-card>summary::before { display:none!important; }
.company-table { margin-bottom:0; }
.company-table th { white-space:nowrap; }
.company-row-actions { position:relative; display:inline-block; }
.company-row-actions>summary { list-style:none; cursor:pointer; }
.company-row-actions>summary::-webkit-details-marker { display:none; }
.company-row-panel { position:absolute; right:0; z-index:20; width:min(42rem,80vw); margin-top:.45rem; padding:1rem; border:1px solid var(--app-border); border-radius:.75rem; background:#fff; box-shadow:0 .75rem 2rem rgba(16,24,40,.16); }
@media (max-width:767.98px){.company-row-panel{position:fixed;left:.75rem;right:.75rem;bottom:.75rem;width:auto;max-height:80vh;overflow:auto}.company-table .technical-value{font-size:.72rem}}

/* F3.2 UX empresas: paneles contextuales estables y responsive */
.platform-focus-card { overflow:hidden; }
.platform-focus-header { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
.company-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.5rem; }
.platform-company-table-wrap { overflow-x:auto; }
.company-table td,.company-table th { vertical-align:middle; }
.company-table td:first-child { min-width:14rem; }
.company-table td:last-child { min-width:13rem; }
@media (max-width: 767.98px) {
  .platform-focus-card .card-body { padding:1.15rem!important; }
  .platform-focus-header { flex-direction:column; }
  .platform-focus-header > .btn { width:100%; }
  .company-actions { flex-direction:column; align-items:stretch; }
  .company-actions .btn { width:100%; }
  .company-table { min-width:44rem; }
}
@media (max-width: 575.98px) {
  .platform-focus-card .primary-action,
  .platform-focus-card .btn { width:100%; }
}


/* v0.4.11 — Final UX consolidation F1-F3 */
.workflow-strip { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.65rem; }
.workflow-strip>div { display:flex; align-items:center; gap:.7rem; padding:.8rem .9rem; border:1px solid var(--app-border); border-radius:.75rem; background:#fff; }
.workflow-strip b { width:1.85rem; height:1.85rem; display:grid; place-items:center; flex:0 0 auto; border-radius:50%; background:#eef2f6; color:#475467; }
.workflow-strip strong,.workflow-strip small { display:block; }
.workflow-strip small { color:var(--app-muted); font-weight:500; margin-top:.1rem; }
.workflow-strip .active { border-color:#b8ccf4; background:var(--app-primary-soft); }
.workflow-strip .active b { color:#fff; background:var(--app-primary); }
.schedule-quick-box { padding:1rem; border:1px solid #d8e5ff; border-radius:.75rem; background:#f7faff; }
.schedule-quick-copy { display:grid; grid-template-columns:minmax(14rem,1fr) 9rem 9rem; gap:1rem; align-items:end; }
.schedule-quick-time .form-control { min-height:2.35rem; }
.schedule-days-table th:first-child { min-width:8rem; }
.schedule-days-table th:not(:first-child) { min-width:9rem; }
.selection-scope-card { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem; border:1px solid #d8e5ff; border-radius:.75rem; background:#f7faff; }
.selection-scope-card strong { display:block; font-size:1.35rem; color:#1d2939; margin:.1rem 0; }
.assignment-group>summary::after { content:'Ver personas'; }
.assignment-group[open]>summary::after { content:'Ocultar personas'; }
.platform-company-table-wrap .company-actions { min-width:max-content; }
@media (max-width:767.98px){
  .workflow-strip { grid-template-columns:1fr; }
  .schedule-quick-copy { grid-template-columns:1fr 1fr; }
  .schedule-quick-copy>div:first-child { grid-column:1/-1; }
  .selection-scope-card { align-items:flex-start; flex-direction:column; }
}
@media (max-width:575.98px){
  .schedule-quick-copy { grid-template-columns:1fr; }
  .schedule-quick-copy>div:first-child { grid-column:auto; }
  .platform-focus-header { flex-direction:column; }
  .platform-focus-header>.btn { width:100%; }
}

/* F3 first-login security UX: password activation is a focused task. */
.account-setup-body { min-height:100vh; background:#f4f7fb; }
.account-setup-topbar { position:sticky; top:0; z-index:1030; }
.account-setup-main { min-height:calc(100vh - 3.75rem); display:grid; align-items:start; justify-items:center; padding:clamp(1.5rem,5vh,4rem) 1rem 3rem; }
.account-setup-card { margin:0 auto; }
.account-setup-card .password-requirements { margin-bottom:0; }
@media (max-width:575.98px) {
  .account-setup-main { padding:1rem .75rem 2rem; }
  .account-setup-card { width:100%; }
}

/* Personal: directorio compacto y modal de registro/edición. */
.employee-directory-table table { min-width: 880px; }
.employee-directory-table th { white-space: nowrap; }
.person-dialog {
    width: min(920px, calc(100vw - 2rem));
    max-height: calc(100vh - 2rem);
    padding: 0;
    border: 0;
    border-radius: 1rem;
    box-shadow: 0 1.5rem 4rem rgba(15, 23, 42, .22);
    overflow: hidden;
}
.person-dialog::backdrop { background: rgba(15, 23, 42, .52); backdrop-filter: blur(2px); }
.person-dialog-shell { padding: 1.5rem; max-height: calc(100vh - 2rem); overflow-y: auto; background: #fff; }
.person-dialog-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding-bottom: .5rem; }
.person-dialog-close { width: 2.25rem; height: 2.25rem; flex: 0 0 2.25rem; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #dbe3ef; border-radius: .65rem; background: #fff; color: #64748b; font-size: 1.65rem; line-height: 1; padding: 0 0 .12rem; cursor: pointer; transition: border-color .15s ease, background-color .15s ease, color .15s ease, box-shadow .15s ease; }
.person-dialog-close:hover { background: #f8fafc; border-color: #b8c6d9; color: #0f172a; }
.person-dialog-close:focus-visible { outline: 0; box-shadow: 0 0 0 .2rem rgba(13,110,253,.2); border-color: #86b7fe; }
.person-dialog .form-select { cursor: pointer; }
.person-dialog .form-select:disabled { cursor: not-allowed; background-color: #eef2f7; }
.person-dialog .form-label { margin-bottom: .4rem; }
.person-dialog .employee-code-note { background: #f8fafc; }
.person-dialog-actions { display: flex; justify-content: flex-end; gap: .75rem; padding-top: .75rem; position: sticky; bottom: -1.5rem; background: #fff; padding-bottom: 1rem; margin-bottom: -1rem; border-top: 1px solid rgba(15,23,42,.08); }
@media (max-width: 767.98px) {
    .person-dialog { width: calc(100vw - 1rem); max-height: calc(100vh - 1rem); }
    .person-dialog-shell { padding: 1rem; max-height: calc(100vh - 1rem); }
    .person-dialog-actions { flex-direction: column-reverse; }
    .person-dialog-actions .btn { width: 100%; }
}

/* F5 RC19 — employee journey: mobile-first hierarchy without functional changes */
.employee-portal { width:100%; max-width:38rem; margin:0 auto; }
.employee-intro { margin:0 0 .55rem; }
.employee-intro h1 { margin:0; color:#101828; font-size:1.45rem; letter-spacing:-.03em; }
.employee-kicker { display:none; }
.employee-journey-card { overflow:hidden; border:1px solid #e3e8ef; border-radius:1rem; box-shadow:0 .3rem 1rem rgba(16,24,40,.055); }
.employee-journey-card.invisible { min-height:18rem; }
.journey-card-body { padding:1rem; }
.journey-card-header { display:flex; justify-content:space-between; align-items:flex-start; gap:.75rem; margin-bottom:.75rem; }
.journey-card-header h2 { margin:.1rem 0 .15rem; color:#101828; font-size:1.2rem; letter-spacing:-.02em; }
.journey-card-header p { margin:0; color:var(--app-muted); font-size:.86rem; line-height:1.35; }
.journey-eyebrow { color:var(--app-primary); font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.07em; }
.journey-state-mark { width:2.15rem; height:2.15rem; flex:0 0 auto; display:grid; place-items:center; border-radius:50%; color:var(--app-success); background:#ecfdf3; border:1px solid #abefc6; font-size:1rem; font-weight:850; }
.journey-summary-card { border-top:1px solid #edf0f4; border-bottom:1px solid #edf0f4; }
.journey-date { padding:.6rem 0 .35rem; color:#667085; }
.journey-date small { color:#667085; text-transform:capitalize; font-size:.78rem; }
.journey-row { display:grid; grid-template-columns:4.5rem 1fr auto; align-items:center; gap:.55rem; padding:.62rem 0; border-top:1px solid #f1f3f6; }
.journey-row:first-of-type { border-top:0; }
.journey-row-label { color:#475467; font-size:.82rem; font-weight:650; }
.journey-row-time { color:#101828; font-size:1.05rem; }
.journey-badge { display:inline-flex; align-items:center; justify-content:center; min-height:1.5rem; padding:.2rem .45rem; border-radius:999px; font-size:.68rem; font-weight:800; white-space:nowrap; }
.journey-badge-confirmed { color:#05603a; background:#dcfae6; }
.journey-badge-pending { color:#93370d; background:#fef0c7; }
.journey-badge-review { color:#912018; background:#fee4e2; }
.journey-badge-empty { color:#667085; background:#f2f4f7; }
.journey-complete { display:none; }
.journey-context-details { margin-top:.65rem; }
.journey-context-details > summary { color:#667085; font-size:.78rem; cursor:pointer; list-style:none; }
.journey-context-details > summary::-webkit-details-marker { display:none; }
.journey-context-details > summary::after { content:'  · equipo y lugar'; }
.attendance-context-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.55rem; margin-top:.55rem; }
.attendance-context-item { min-width:0; padding:.55rem .65rem; border-radius:.65rem; background:#f8fafc; }
.attendance-context-label { display:block; margin-bottom:.18rem; color:#667085; font-size:.65rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.attendance-context-item .form-select { min-height:1.8rem; padding:.1rem 1.6rem .1rem 0; border:0; background-color:transparent; box-shadow:none; font-size:.8rem; font-weight:650; }
.location-readiness:empty,.attendance-feedback:empty { display:none; }
.location-status { display:flex; align-items:center; gap:.45rem; margin-top:.65rem; padding:.55rem .65rem; border-radius:.6rem; font-size:.8rem; line-height:1.3; }
.location-status-success { color:#05603a; background:#ecfdf3; }
.location-status-info { color:#1849a9; background:#eff8ff; }
.location-status-warning { color:#93370d; background:#fffaeb; }
.connection-status { display:flex; align-items:center; gap:.55rem; margin:0 0 .65rem; padding:.55rem .65rem; border-radius:.6rem; color:#93370d; background:#fffaeb; border:1px solid #fedf89; }
.connection-status-icon { width:1.6rem; height:1.6rem; display:grid; place-items:center; flex:0 0 auto; border-radius:50%; background:#fef0c7; font-weight:900; }
.connection-status strong,.connection-status small { display:block; }
.connection-status small { margin-top:.05rem; font-size:.72rem; font-weight:500; }
.attendance-actions { display:grid; gap:.55rem; margin-top:.75rem; }
.attendance-primary-action { width:100%; min-height:3.15rem; font-size:1rem; font-weight:750; box-shadow:0 .25rem .7rem rgba(21,94,239,.16); }
.attendance-secondary-actions { width:100%; padding:.55rem .7rem; text-align:center; box-shadow:none; }
.attendance-secondary-actions summary { justify-content:center; color:#475467; font-size:.78rem; }
.attendance-feedback { margin-top:.6rem; }
.attendance-confirmation { padding:.55rem .65rem; border-radius:.6rem; color:#05603a; background:#ecfdf3; font-size:.8rem; text-align:center; }
.attendance-confirmation-warning { color:#93370d; background:#fffaeb; }

@media (max-width:575.98px) {
  .employee-portal { max-width:none; }
  .employee-intro { margin-bottom:.45rem; }
  .journey-card-body { padding:.85rem; }
  .journey-card-header { margin-bottom:.6rem; }
  .journey-state-mark { width:2rem; height:2rem; }
  .journey-date { padding:.5rem 0 .3rem; }
  .journey-row { grid-template-columns:4.2rem 1fr; grid-template-areas:'label badge' 'time badge'; gap:.1rem .45rem; padding:.58rem 0; }
  .journey-row-label { grid-area:label; }
  .journey-row-time { grid-area:time; }
  .journey-badge { grid-area:badge; justify-self:end; white-space:normal; text-align:center; }
  .attendance-context-grid { grid-template-columns:1fr; }
  .attendance-primary-action { min-height:3.5rem; }
}

/* F5 RC23 — modern dark employee PWA. Employee-only: admin surfaces stay unchanged. */
.employee-app-body { --employee-bg:#07111f; --employee-surface:#0d1b2c; --employee-surface-2:#11243a; --employee-border:#203650; --employee-text:#f7f9fc; --employee-muted:#9fb0c7; --employee-blue:#2674ff; background:var(--employee-bg); color:var(--employee-text); }
.employee-app-body .app-topbar { background:#091728; border-bottom:1px solid rgba(255,255,255,.07); box-shadow:none; }
.employee-app-body .app-brand strong { color:#fff; }
.employee-app-body .app-brand small { color:#9fb0c7; }
.employee-app-body .app-brand-mark { background:linear-gradient(145deg,#397dff,#155eef); color:#fff; box-shadow:0 .35rem 1rem rgba(38,116,255,.25); }
.employee-app-body .app-main { background:radial-gradient(circle at 50% -10%,rgba(38,116,255,.11),transparent 26rem),var(--employee-bg); min-height:calc(100vh - 4.25rem); }
.employee-app-body .app-sidebar { background:#0b1828; border-color:#1b3048; color:#eaf0f8; }
.employee-app-body .app-sidebar-intro,.employee-app-body .app-menu-title,.employee-app-body .app-menu-link small { color:#8fa3bc; }
.employee-app-body .app-menu-link { color:#eef4fb; }
.employee-app-body .app-menu-link:hover { background:#12263c; }
.employee-app-body .employee-portal { max-width:36rem; }
.employee-app-body .employee-intro { margin:.3rem 0 1rem; }
.employee-app-body .employee-screen-kicker { display:block; margin-bottom:.15rem; color:#7fa9ff; font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.09em; }
.employee-app-body .employee-intro h1 { color:#f8fbff; font-size:1.85rem; font-weight:800; letter-spacing:-.045em; }
.employee-app-body .employee-journey-card { background:linear-gradient(160deg,#0e1e31,#0a1727); border:1px solid var(--employee-border); border-radius:1.35rem; box-shadow:0 1.1rem 2.8rem rgba(0,0,0,.24); }
.employee-app-body .journey-card-body { padding:1.25rem; }
.employee-app-body .journey-card-header { align-items:center; margin-bottom:1rem; }
.employee-app-body .journey-eyebrow { color:#6ea0ff; }
.employee-app-body .journey-card-header h2 { color:#fff; font-size:1.4rem; font-weight:800; }
.employee-app-body .journey-card-header p { color:var(--employee-muted); font-size:.9rem; }
.employee-app-body .journey-state-mark { display:none; }
.employee-app-body .journey-summary-card { border-color:#20334a; }
.employee-app-body .journey-date,.employee-app-body .journey-date small { color:#8fa3bc; }
.employee-app-body .journey-row { border-color:#1c3048; padding:.78rem 0; }
.employee-app-body .journey-row-label { color:#9fb0c7; }
.employee-app-body .journey-row-time { color:#fff; font-size:1.1rem; }
.employee-app-body .journey-badge-empty { color:#aebbd0; background:#17283c; }
.employee-app-body .journey-badge-confirmed { color:#74e3ad; background:#123a31; }
.employee-app-body .journey-badge-pending { color:#ffd37a; background:#3a2d16; }
.employee-app-body .journey-badge-review { color:#ffaaa3; background:#442321; }
.employee-app-body .journey-context-details { margin-top:.8rem; padding-top:.1rem; }
.employee-app-body .journey-context-details > summary { color:#9fb0c7; }
.employee-app-body .attendance-context-item { background:#102238; border:1px solid #1d3652; }
.employee-app-body .attendance-context-label { color:#8299b4; }
.employee-app-body .attendance-context-item .form-select { color:#eef5ff; background-color:transparent; }
.employee-app-body .attendance-context-item .form-select option { color:#101828; }
.employee-app-body .location-status { border:1px solid transparent; }
.employee-app-body .location-status-success { color:#70e1aa; background:#0e3029; border-color:#17483c; }
.employee-app-body .location-status-info { color:#91b8ff; background:#10294b; border-color:#1b4173; }
.employee-app-body .location-status-warning,.employee-app-body .connection-status { color:#ffd27a; background:#352913; border-color:#58431d; }
.employee-app-body .attendance-primary-action { min-height:3.65rem; border:0; border-radius:.9rem; background:linear-gradient(135deg,#2d7cff,#155eef); font-size:1.05rem; font-weight:800; box-shadow:0 .7rem 1.6rem rgba(21,94,239,.24); }
.employee-app-body .attendance-primary-action:hover,.employee-app-body .attendance-primary-action:focus { background:linear-gradient(135deg,#3b86ff,#1d65f2); }
.employee-app-body .attendance-secondary-actions { background:#102238; border-color:#203650; color:#dbe7f5; }
.employee-app-body .attendance-secondary-actions summary { color:#b8c7d9; }
.employee-app-body .attendance-confirmation { color:#75e4ae; background:#0e3029; border:1px solid #17483c; }
.employee-app-body .card:not(.employee-journey-card) { background:#0e1e31; border-color:#203650; color:#f5f8fc; }
.employee-app-body .text-secondary { color:#9fb0c7 !important; }
@media (max-width:575.98px) {
  .employee-app-body .app-main { padding:1.15rem .9rem 2.5rem; }
  .employee-app-body .employee-intro h1 { font-size:1.65rem; }
  .employee-app-body .journey-card-body { padding:1.05rem; }
  .employee-app-body .app-account { display:none !important; }
}


/* F5 RC24 — accessible dark UX for older / low-digital-literacy employees. */
.employee-app-body .employee-portal { max-width:39rem; }
.employee-app-body .employee-intro { margin:.45rem 0 1.15rem; }
.employee-app-body .employee-screen-kicker { font-size:.82rem; letter-spacing:.08em; }
.employee-app-body .employee-intro h1 { margin:0; font-size:2rem; line-height:1.08; }
.employee-app-body .employee-intro-help { margin:.45rem 0 0; color:#b8c7d9; font-size:1rem; line-height:1.45; }
.employee-app-body .employee-journey-card { border-radius:1.45rem; }
.employee-app-body .journey-card-body { padding:1.45rem; }
.employee-app-body .journey-card-header { display:block; text-align:center; padding:.35rem .25rem .75rem; }
.employee-app-body .journey-eyebrow { display:inline-block; margin-bottom:.45rem; font-size:.8rem; }
.employee-app-body .journey-card-header h2 { max-width:30rem; margin:0 auto .4rem; font-size:1.65rem; line-height:1.2; letter-spacing:-.025em; }
.employee-app-body .journey-card-header p { max-width:30rem; margin:0 auto; font-size:1.02rem; line-height:1.45; }
.employee-app-body .journey-date { padding:.85rem 0 .55rem; }
.employee-app-body .journey-date small { font-size:.9rem; }
.employee-app-body .journey-row { grid-template-columns:6rem 1fr auto; min-height:4.8rem; padding:.85rem .15rem; }
.employee-app-body .journey-row-label { font-size:.95rem; font-weight:750; }
.employee-app-body .journey-row-time { font-size:1.35rem; font-weight:800; }
.employee-app-body .journey-badge { min-height:2rem; padding:.35rem .65rem; font-size:.78rem; }
.employee-app-body .journey-context-details { margin-top:1rem; border:1px solid #28415e; border-radius:1rem; background:#102238; overflow:hidden; }
.employee-app-body .journey-context-details > summary { min-height:3.6rem; display:flex; align-items:center; padding:.8rem 1rem; color:#e7eef8; font-size:1rem; font-weight:750; }
.employee-app-body .journey-context-details > summary::before { content:'⌖'; width:2rem; margin-right:.55rem; color:#76a5ff; font-size:1.35rem; text-align:center; }
.employee-app-body .journey-context-details > summary::after { content:'›'; margin-left:auto; color:#9fb0c7; font-size:1.6rem; line-height:1; }
.employee-app-body .journey-context-details[open] > summary::after { transform:rotate(90deg); }
.employee-app-body .attendance-context-grid { padding:0 .8rem .8rem; }
.employee-app-body .attendance-context-label { font-size:.75rem; }
.employee-app-body .attendance-context-item .form-select { min-height:2.4rem; font-size:.95rem; }
.employee-app-body .location-status { min-height:3.25rem; margin-top:.9rem; padding:.75rem .9rem; font-size:.95rem; font-weight:650; line-height:1.4; }
.employee-app-body .location-status::before { content:'●'; flex:0 0 auto; font-size:.8rem; }
.employee-app-body .attendance-actions { margin-top:1rem; }
.employee-app-body .attendance-primary-action { min-height:4.65rem; border-radius:1rem; font-size:1.3rem; letter-spacing:-.01em; box-shadow:0 .8rem 1.8rem rgba(21,94,239,.28); }
.employee-app-body .attendance-primary-action::before { content:'▶'; display:inline-block; margin-right:.65rem; font-size:1rem; }
.employee-app-body .attendance-feedback { font-size:.95rem; }
.employee-app-body .attendance-confirmation { padding:.8rem .9rem; font-size:.95rem; }
.employee-app-body .app-topbar .btn { min-height:2.75rem; padding:.5rem .8rem; font-size:.9rem; font-weight:750; }
.employee-app-body .app-menu-toggle { min-width:5.5rem; }
@media (max-width:575.98px) {
  .employee-app-body .app-main { padding:1.25rem .9rem 3rem; }
  .employee-app-body .employee-intro h1 { font-size:1.8rem; }
  .employee-app-body .employee-intro-help { font-size:.95rem; }
  .employee-app-body .journey-card-body { padding:1.15rem; }
  .employee-app-body .journey-card-header h2 { font-size:1.5rem; }
  .employee-app-body .journey-card-header p { font-size:1rem; }
  .employee-app-body .journey-row { grid-template-columns:1fr auto; grid-template-areas:'label badge' 'time badge'; min-height:4.65rem; padding:.85rem 0; }
  .employee-app-body .journey-row-time { font-size:1.3rem; }
  .employee-app-body .journey-badge { font-size:.76rem; }
  .employee-app-body .attendance-primary-action { min-height:4.5rem; font-size:1.25rem; }
}

/* F5 RC25 — cleaner employee UX + branded login. */
.login-shell{position:relative;min-height:calc(100vh - 2rem);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem 1rem 5.5rem;overflow:hidden;background:radial-gradient(circle at 18% 15%,rgba(30,112,255,.10),transparent 24rem),radial-gradient(circle at 85% 45%,rgba(20,78,160,.08),transparent 25rem),linear-gradient(180deg,#f9fcff 0%,#edf5ff 100%)}
.login-shell::after{content:'';position:absolute;left:-8%;right:-8%;bottom:-5rem;height:9rem;border-radius:50% 50% 0 0;background:linear-gradient(115deg,#0a376f,#0b2348);border-top:.32rem solid #d6ad48;z-index:0}
.login-brand,.login-card,.login-footer{position:relative;z-index:1}.login-brand{text-align:center;margin-bottom:1.2rem}.login-school-logo{width:8.5rem;height:8.5rem;object-fit:contain;mix-blend-mode:multiply;filter:drop-shadow(0 .45rem .7rem rgba(16,42,80,.12))}.login-brand h1{margin:.6rem 0 0;color:#082652;font-size:clamp(2rem,6vw,2.75rem);font-weight:850;letter-spacing:-.045em}.login-brand p{margin:.2rem 0 0;color:#64748b;font-size:1.12rem}.login-card{width:min(100%,32rem);margin:0!important;border:1px solid rgba(196,211,229,.72);border-radius:1.45rem;box-shadow:0 1.25rem 3rem rgba(25,65,110,.11)!important;background:rgba(255,255,255,.94);backdrop-filter:blur(10px)}.login-card h2{text-align:center;margin:0;color:#092653;font-size:2rem;font-weight:850}.login-help{text-align:center;margin:.5rem auto 1.5rem;max-width:24rem;color:#64748b;font-size:1rem}.login-input-wrap{position:relative}.login-input-wrap>span{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:#718096;font-size:.8rem;z-index:2}.login-input-wrap .form-control{min-height:3.45rem;padding-left:2.6rem;border-radius:.85rem;border-color:#cbd8e8;background:#fbfdff}.login-card .password-toggle{bottom:.45rem}.login-submit{min-height:3.7rem;border:0;border-radius:.9rem;background:linear-gradient(120deg,#1766db,#06408e);font-weight:800;box-shadow:0 .65rem 1.4rem rgba(16,82,170,.20)}.login-submit span{margin-left:.5rem;font-size:1.35rem}.login-footer{position:absolute;bottom:1.35rem;color:#fff;font-size:1.05rem;font-weight:700;letter-spacing:.015em}.login-footer span::before,.login-footer span::after{content:'';display:inline-block;width:2.4rem;height:1px;margin:0 .75rem .3rem;background:#e6c35e}
.employee-app-body .employee-screen-kicker{display:none}.employee-app-body .employee-greeting{margin:.3rem 0 .9rem}.employee-app-body .employee-greeting h1{font-size:1.65rem}.employee-app-body .employee-greeting .employee-intro-help{margin-top:.25rem;color:#9fb0c7}.employee-app-body .app-logout-button{width:2.85rem;min-width:2.85rem;padding:.4rem!important;font-size:1.35rem;line-height:1}.employee-app-body .app-menu-toggle{min-width:auto}.employee-app-body .step-heading{gap:.75rem}.employee-app-body [data-enrollment-card] .step-number,.employee-app-body [data-device-pending-panel] .step-number{display:none}.employee-app-body [data-enrollment-card] .step-heading,.employee-app-body [data-device-pending-panel] .step-heading{margin-bottom:1rem}.employee-device-heading h1{color:#fff}.employee-device-heading p{color:#9fb0c7!important}
@media(max-width:575.98px){.login-shell{justify-content:flex-start;padding-top:1rem}.login-school-logo{width:6.5rem;height:6.5rem}.login-brand h1{font-size:2rem}.login-brand p{font-size:1rem}.login-card .card-body{padding:1.35rem!important}.login-card h2{font-size:1.7rem}.login-footer{font-size:.95rem}.employee-app-body .app-topbar .container-fluid{gap:.55rem!important}.employee-app-body .app-brand{margin-right:auto}.employee-app-body .app-menu-toggle{padding:.5rem .65rem}}


/* F5 RC25.11 — employee flow aligned with approved three-state mockup. */
.employee-app-body .employee-topbar{min-height:4.6rem;background:#081522;border-bottom:1px solid #1a2c40}
.employee-app-body .employee-topbar .container-fluid{max-width:44rem;margin:0 auto}
.employee-app-body .employee-topbar .app-brand{gap:.75rem}
.employee-app-body .employee-topbar .app-brand-mark{width:2.45rem;height:2.45rem;border-radius:.75rem;font-size:1.2rem}
.employee-app-body .employee-topbar .app-brand strong{font-size:1.02rem;letter-spacing:-.01em}
.employee-app-body .employee-topbar .app-brand small{display:block!important;margin-top:.2rem;font-size:.72rem;color:#93a8bf}
.employee-app-body .employee-topbar .app-menu-toggle{display:flex!important;align-items:center;gap:.45rem;min-height:2.75rem;padding:.45rem .75rem;border:1px solid #2b4058;border-radius:.8rem;background:#102238;color:#f4f8fc;font-weight:800}
.employee-app-body .employee-topbar .app-menu-toggle:hover,.employee-app-body .employee-topbar .app-menu-toggle:focus{background:#162b43;color:#fff}
.employee-app-body .app-main{padding:1.35rem 1rem 3rem;background:radial-gradient(circle at 50% -8%,rgba(38,116,255,.12),transparent 24rem),#07111f}
.employee-app-body .employee-portal{max-width:36rem;margin:0 auto}
.employee-app-body .employee-greeting{margin:.25rem 0 1.2rem}
.employee-app-body .employee-greeting h1{font-size:2rem;font-weight:850;letter-spacing:-.045em}
.employee-app-body .employee-greeting .employee-intro-help{font-size:.98rem;color:#91a5bc}
.employee-app-body .employee-journey-card{border-radius:1.2rem;background:#0d1b2c;border:1px solid #22364d;box-shadow:0 1.2rem 2.8rem rgba(0,0,0,.2)}
.employee-app-body .journey-card-body{padding:1.25rem}
.employee-app-body .journey-card-header{margin-bottom:.55rem;text-align:center}
.employee-app-body .journey-card-header>div{width:100%}
.employee-app-body .journey-eyebrow{display:inline-flex;margin-bottom:.45rem;padding:.28rem .65rem;border-radius:999px;background:#122a48;color:#83adff;font-size:.72rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em}
.employee-app-body .journey-card-header h2{font-size:1.6rem;margin-bottom:.35rem}
.employee-app-body .journey-card-header p{font-size:.96rem}
.employee-app-body .journey-summary-card{margin-top:.9rem;padding:0 1rem;border:1px solid #21354d;border-radius:1rem;background:#0a1726}
.employee-app-body .journey-date{padding:.9rem 0 .45rem;text-align:center;text-transform:capitalize}
.employee-app-body .journey-row{grid-template-columns:5rem 1fr auto;min-height:4.5rem}
.employee-app-body .journey-row-time{font-size:1.3rem}
.employee-app-body .location-readiness{margin-top:1rem}
.employee-app-body .location-status{min-height:3.4rem;border-radius:.9rem;padding:.8rem 1rem}
.employee-app-body .attendance-actions{margin-top:1rem}
.employee-app-body .attendance-primary-action{width:100%;min-height:4.2rem;border-radius:.95rem;font-size:1.2rem}
.employee-app-body .attendance-primary-action::before{content:'✓';font-size:1.05rem}
.employee-app-body .attendance-feedback{margin-top:.8rem}
.employee-app-body .employee-sidebar{padding:1rem;background:#0b1828}
.employee-app-body .employee-sidebar .app-sidebar-intro{padding:.5rem .65rem .85rem}
.employee-app-body .employee-menu-profile{margin:.4rem 0 1rem;padding:1rem;border:1px solid #21364f;border-radius:1rem;background:#102238}
.employee-app-body .employee-menu-profile strong,.employee-app-body .employee-menu-profile span{display:block}
.employee-app-body .employee-menu-profile strong{color:#fff;font-size:1rem}
.employee-app-body .employee-menu-profile span{margin-top:.2rem;color:#91a5bc;font-size:.82rem}
.employee-app-body .employee-menu-logout{margin-top:1.25rem;padding-top:1rem;border-top:1px solid #20344b}
.employee-app-body .employee-menu-logout .app-logout-button{display:flex;width:100%;align-items:center;justify-content:flex-start;gap:.65rem;min-height:3.2rem;padding:.7rem .85rem!important;border:1px solid #35485d;border-radius:.85rem;color:#f0f4f8;background:#101f31;font-size:.95rem}
.employee-app-body .employee-menu-logout .app-logout-button:hover{background:#172a40;color:#fff}
.employee-app-body .employee-device-page{max-width:36rem;margin:0 auto}
.employee-app-body .employee-device-heading{margin-top:.25rem}
.employee-app-body .employee-device-heading h1{font-size:1.8rem;font-weight:850}
@media(max-width:575.98px){.employee-app-body .employee-topbar .app-brand strong{font-size:.92rem}.employee-app-body .employee-topbar .app-brand small{font-size:.66rem}.employee-app-body .employee-topbar .app-menu-toggle{padding:.4rem .62rem}.employee-app-body .journey-card-body{padding:1rem}.employee-app-body .journey-card-header h2{font-size:1.45rem}.employee-app-body .journey-row{grid-template-columns:4.5rem 1fr;grid-template-areas:'label badge' 'time badge'}}


/* F5 RC25.13 — employee UX final alignment: clear date, state cards and discoverable menu. */
.employee-app-body .journey-summary-ready{padding:.15rem 1rem}
.employee-app-body .journey-summary-ready .journey-date{display:flex;align-items:center;justify-content:center;gap:.7rem;padding:1rem 0;text-transform:capitalize}
.employee-app-body .journey-summary-ready .journey-date strong{font-size:1.08rem;color:#f4f8fc;font-weight:750}
.employee-app-body .journey-date-icon{display:inline-grid;place-items:center;width:2rem;height:2rem;border-radius:.55rem;background:#112b49;color:#8eb8ff}
.employee-app-body [data-journey-visual-state="ready"] .journey-card-header{display:none}
.employee-app-body [data-journey-visual-state="entered"] .journey-card-header,.employee-app-body [data-journey-visual-state="completed"] .journey-card-header{display:none}
.employee-app-body .journey-summary-entered,.employee-app-body .journey-summary-completed{display:flex;flex-direction:column;align-items:center;text-align:center;padding:1.35rem 1rem;background:linear-gradient(145deg,#0b2730,#0a1c2b);border-color:#176052}
.employee-app-body .journey-confirm-icon{display:grid;place-items:center;width:3.35rem;height:3.35rem;margin-bottom:.75rem;border-radius:50%;background:#3ddd72;color:#062b18;font-size:1.8rem;font-weight:900}
.employee-app-body .journey-confirm-title{color:#54e98a;font-size:1.22rem}
.employee-app-body .journey-confirm-time{margin:.25rem 0;font-size:2.2rem;line-height:1.1;color:#fff;letter-spacing:-.04em}
.employee-app-body .journey-confirm-date{margin-top:.3rem;color:#b7c8d9;text-transform:capitalize}
.employee-app-body .journey-completed-times{display:grid;grid-template-columns:1fr 1fr;width:100%;max-width:22rem;margin:.8rem 0 .25rem}
.employee-app-body .journey-completed-times span{display:flex;flex-direction:column;gap:.25rem;color:#b7c8d9}
.employee-app-body .journey-completed-times span+span{border-left:1px solid #315267}
.employee-app-body .journey-completed-times strong{font-size:1.35rem;color:#fff}
.employee-app-body .location-status-success{position:relative;padding-left:3.25rem;background:#0b5a50;border-color:#16796b}
.employee-app-body .location-status-success::before{content:'✓';position:absolute;left:1rem;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:1.55rem;height:1.55rem;border-radius:50%;background:#45df91;color:#073a29;font-weight:900}
.employee-app-body .employee-menu-profile strong{font-size:1.12rem}
.employee-app-body .employee-sidebar .app-menu-link{min-height:3.65rem;border-radius:.85rem}
.employee-app-body .employee-sidebar .app-menu-link strong{font-size:1rem}
.employee-app-body .employee-sidebar .app-menu-link small{margin-top:.18rem}
@media(max-width:575.98px){.employee-app-body .journey-summary-ready .journey-date strong{font-size:1.05rem}.employee-app-body .journey-confirm-time{font-size:2rem}}

/* F5 RC25.14 — preserve compact date hierarchy while satisfying provenance semantics. */
.employee-app-body .journey-summary-ready .journey-date small{font-size:1rem;font-weight:750;color:#dce8f7;}


/* F5 RC25.15 — mobile readability and final employee marking composition. */
.employee-app-body .location-status-success{
  display:grid;
  grid-template-columns:2rem minmax(0,1fr);
  align-items:center;
  column-gap:.85rem;
  padding:.9rem 1rem;
  padding-left:1rem;
}
.employee-app-body .location-status-success::before{
  content:'✓';
  position:static;
  transform:none;
  width:1.8rem;
  height:1.8rem;
  font-size:1rem;
}
.employee-app-body .location-ready-copy{display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:.12rem;line-height:1.3;text-align:left}
.employee-app-body .location-ready-copy strong{display:block;color:#78efb2;font-size:1rem;font-weight:850;white-space:normal}
.employee-app-body .location-ready-copy span{display:block;color:#e0f6ed;font-size:.9rem;font-weight:500;white-space:normal}
.employee-app-body .employee-mark-reminder{display:flex;align-items:center;gap:.8rem;margin-top:clamp(1.4rem,7vh,5rem);padding:.9rem 1rem;border:1px solid #1e4770;border-radius:.9rem;background:#0b2340;color:#c9dcf1;font-size:.94rem;line-height:1.4}
.employee-app-body .employee-mark-reminder-icon{display:grid;place-items:center;flex:0 0 auto;width:1.65rem;height:1.65rem;border:2px solid #69a9ff;border-radius:50%;color:#8fc0ff;font-weight:850;font-family:Georgia,serif}
.employee-app-body [data-journey-visual-state="entered"] .employee-mark-reminder,.employee-app-body [data-journey-visual-state="completed"] .employee-mark-reminder{display:none}
.employee-app-body .employee-sidebar{color:#f7fbff}
.employee-app-body .employee-sidebar .app-sidebar-intro{color:#dce9f7;font-size:.82rem;font-weight:750;letter-spacing:.05em}
.employee-app-body .employee-menu-profile{padding:1.1rem;background:#112943;border-color:#2b4b69}
.employee-app-body .employee-menu-profile strong{color:#fff;font-size:1.28rem;font-weight:850;line-height:1.2}
.employee-app-body .employee-menu-profile span{color:#c2d3e5;font-size:.96rem;font-weight:600}
.employee-app-body .employee-sidebar .app-menu-title{padding:.55rem .7rem .4rem;color:#a9bfd5;font-size:.78rem;font-weight:850;letter-spacing:.07em}
.employee-app-body .employee-sidebar .app-menu-link{min-height:4.35rem;padding:.78rem .8rem;gap:.8rem;color:#f7fbff;border-color:#213d59;background:rgba(13,32,51,.45)}
.employee-app-body .employee-sidebar .app-menu-link:hover,.employee-app-body .employee-sidebar .app-menu-link.active{background:#12345a;border-color:#2b69a8;color:#fff}
.employee-app-body .employee-sidebar .app-menu-icon{width:1.35rem;color:#9ec8ff;font-size:1.25rem}
.employee-app-body .employee-sidebar .app-menu-link strong{color:#fff;font-size:1.08rem;font-weight:800;line-height:1.25}
.employee-app-body .employee-sidebar .app-menu-link small{margin-top:.25rem;color:#c0d1e3;font-size:.9rem;font-weight:500;line-height:1.3}
.employee-app-body .employee-menu-logout .app-logout-button{min-height:3.8rem;color:#fff;border-color:#42617e;background:#102a43;font-size:1.05rem;font-weight:750}
@media(max-width:575.98px){
  .employee-app-body .location-status-success{grid-template-columns:2rem minmax(0,1fr);column-gap:.75rem}
  .employee-app-body .location-ready-copy strong{font-size:1.02rem}
  .employee-app-body .location-ready-copy span{font-size:.91rem}
  .employee-app-body .employee-sidebar .app-menu-link strong{font-size:1.1rem}
  .employee-app-body .employee-sidebar .app-menu-link small{font-size:.91rem}
}

/* F5 RC25.17 — post-entry hierarchy + geofence rejection evidence UX. */
.employee-app-body .journey-next-hint{display:flex;align-items:center;gap:.75rem;margin-top:.9rem;padding:.85rem 1rem;border:1px solid #1e4770;border-radius:.9rem;background:#0b2340;color:#d7e7f8;font-size:.95rem;line-height:1.35}
.employee-app-body .journey-next-hint-icon{display:grid;place-items:center;flex:0 0 auto;width:1.8rem;height:1.8rem;border-radius:50%;border:2px solid #5da9ff;color:#80bdff;font-size:1rem;font-weight:800}
.employee-app-body .attendance-exit-action,.employee-app-body .attendance-exit-action:hover,.employee-app-body .attendance-exit-action:focus{background:#e9343f;border-color:#e9343f;color:#fff;box-shadow:0 .7rem 1.5rem rgba(233,52,63,.2)}
.employee-app-body .location-status-danger{display:grid;grid-template-columns:2rem minmax(0,1fr);align-items:center;column-gap:.8rem;margin-top:.9rem;padding:.9rem 1rem;border:1px solid #8b3038;border-radius:.9rem;background:#431b24;color:#ffd8dc}
.employee-app-body .location-status-danger::before{content:'!';display:grid;place-items:center;width:1.8rem;height:1.8rem;border-radius:50%;background:#ef4451;color:#fff;font-weight:900}
.employee-app-body .location-status-danger .location-ready-copy strong{color:#ffadb4}
.employee-app-body .location-status-danger .location-ready-copy span{color:#ffe2e5}
.employee-app-body .attendance-rejected{margin-top:.8rem;padding:.8rem 1rem;border:1px solid #8b3038;border-radius:.85rem;background:#431b24;color:#ffe2e5;line-height:1.4}


/* F5 RC25.18 — final completed-state balance + tenant branding. */
.employee-app-body .employee-brand-logo{overflow:hidden;background:#fff;padding:.12rem}
.employee-app-body .employee-brand-logo img{display:block;width:100%;height:100%;object-fit:contain;border-radius:.58rem}
.employee-app-body [data-journey-visual-state="completed"] .journey-card-body{display:flex;min-height:clamp(22rem,58vh,34rem);align-items:center;justify-content:center;padding:1.5rem 1rem 2rem}
.employee-app-body [data-journey-visual-state="completed"] .journey-summary-completed{width:100%;max-width:28rem;padding:2rem 1.35rem;border-radius:1.2rem}
.employee-app-body [data-journey-visual-state="completed"] .journey-confirm-icon{width:4rem;height:4rem;margin-bottom:1rem;font-size:2.1rem}
.employee-app-body [data-journey-visual-state="completed"] .journey-confirm-title{font-size:1.45rem}
.employee-app-body [data-journey-visual-state="completed"] .journey-completed-times{max-width:24rem;margin:1.15rem 0 .45rem}
.employee-app-body [data-journey-visual-state="completed"] .journey-completed-times span{font-size:.95rem}
.employee-app-body [data-journey-visual-state="completed"] .journey-completed-times strong{font-size:1.65rem}
.employee-app-body [data-journey-visual-state="completed"] .journey-confirm-date{font-size:1rem}
@media(max-width:575.98px){
  .employee-app-body .employee-topbar{min-height:5rem}
  .employee-app-body .employee-topbar .app-brand-mark{width:2.65rem;height:2.65rem}
  .employee-app-body .employee-topbar .app-brand strong{font-size:.96rem}
  .employee-app-body .employee-topbar .app-brand small{font-size:.72rem;max-width:10.5rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .employee-app-body [data-journey-visual-state="completed"] .journey-card-body{min-height:56vh}
}


/* F5 RC25.19 — cohesive employee enrollment/device UX. */
.employee-app-body .employee-device-page .employee-device-heading{margin-bottom:1.1rem!important}
.employee-app-body .employee-device-page .employee-device-heading h1{margin-bottom:.35rem;font-size:1.9rem;letter-spacing:-.025em}
.employee-app-body .employee-device-page .employee-device-heading p{font-size:.98rem;line-height:1.45}
.employee-app-body [data-enrollment-card],.employee-app-body [data-device-pending-panel],.employee-app-body [data-registration-required]{border:1px solid #244d72!important;border-radius:1.15rem!important;background:linear-gradient(145deg,#0d2943,#0a1b2d)!important;box-shadow:0 1rem 2.4rem rgba(0,0,0,.18);padding:1.25rem!important}
.employee-app-body [data-enrollment-card] h2,.employee-app-body [data-device-pending-panel] h2,.employee-app-body [data-registration-required] h2{color:#fff;font-size:1.3rem;font-weight:850}
.employee-app-body [data-enrollment-card] .text-secondary,.employee-app-body [data-device-pending-panel] .text-secondary,.employee-app-body [data-registration-required] .text-secondary{color:#b8cbe0!important;font-size:.96rem;line-height:1.45}
.employee-app-body [data-enrollment-card] .form-label{margin-top:.35rem;color:#eaf4ff;font-size:.96rem;font-weight:750}
.employee-app-body [data-enrollment-card] .form-control{min-height:3.25rem;border-color:#365d7e;border-radius:.85rem;background:#081828;color:#fff;font-size:1rem}
.employee-app-body [data-enrollment-card] .form-control:focus{border-color:#4ea1ff;box-shadow:0 0 0 .2rem rgba(78,161,255,.15)}
.employee-app-body [data-enrollment-card] .form-text{color:#9fb7ce;font-size:.88rem}
.employee-app-body [data-enrollment-card] .btn-primary,.employee-app-body [data-registration-required] .btn-primary{width:100%;min-height:3.35rem;border-radius:.9rem;font-size:1.04rem;font-weight:850}
.employee-app-body .employee-device-state-card{display:grid;grid-template-columns:3.25rem minmax(0,1fr);gap:1rem;align-items:start}
.employee-app-body .employee-device-state-icon{display:grid;place-items:center;width:3.25rem;height:3.25rem;border-radius:50%;background:#36df82;color:#07351f;font-size:1.55rem;font-weight:900}
.employee-app-body .employee-device-state-copy h2{color:#fff!important;font-size:1.3rem!important}
.employee-app-body .employee-device-state-copy>p{margin-top:.25rem!important;color:#b8cbe0!important}
.employee-app-body .employee-device-identity{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem;padding:.9rem 1rem;border:1px solid #315b7d;border-radius:.85rem;background:#0b2034}
.employee-app-body .employee-device-identity strong{color:#fff;font-size:1rem}
.employee-app-body .employee-device-identity span{color:#61e99b;font-size:.9rem;font-weight:800}
@media(max-width:575.98px){.employee-app-body .employee-device-page{padding-top:.2rem}.employee-app-body .employee-device-state-card{grid-template-columns:2.75rem minmax(0,1fr);gap:.8rem}.employee-app-body .employee-device-state-icon{width:2.75rem;height:2.75rem}.employee-app-body .employee-device-identity{align-items:flex-start;flex-direction:column;gap:.2rem}}

/* F5 RC25.20 — do not paint an incorrect enrollment state while current installation resolves. */
.employee-app-body [data-enrollment-card].device-card-resolving{visibility:hidden}
.employee-app-body [data-enrollment-card].device-card-resolved{visibility:visible}


/* F5 RC25.21 — immediate completed-state render + clearer time separation. */
.employee-app-body [data-journey-visual-state="completed"] .journey-completed-times{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  column-gap:1.35rem;
  padding:.25rem .35rem;
}
.employee-app-body [data-journey-visual-state="completed"] .journey-completed-times span{
  min-width:0;
  padding:.2rem .65rem;
  align-items:center;
}
.employee-app-body [data-journey-visual-state="completed"] .journey-completed-times span+span{
  border-left:2px solid #52718a;
}
.employee-app-body [data-journey-visual-state="completed"] .journey-completed-times strong{
  white-space:nowrap;
  letter-spacing:-.02em;
}
@media(max-width:380px){
  .employee-app-body [data-journey-visual-state="completed"] .journey-completed-times{column-gap:.75rem;padding:.2rem 0}
  .employee-app-body [data-journey-visual-state="completed"] .journey-completed-times span{padding:.2rem .4rem}
  .employee-app-body [data-journey-visual-state="completed"] .journey-completed-times strong{font-size:1.48rem}
}


/* F7.2 employee requests: accessible contrast and readable controls on dark PWA. */
.employee-app-body .employee-request-form .form-label{color:#edf6ff!important;font-size:1rem;font-weight:800;line-height:1.35}
.employee-app-body .employee-request-form .form-text{color:#c1d2e3!important;font-size:.94rem;line-height:1.5}
.employee-app-body .employee-request-form .form-control,.employee-app-body .employee-request-form .form-select{min-height:3.1rem;font-size:1rem}
.employee-app-body .employee-request-form textarea.form-control{min-height:6.5rem}
.employee-app-body .page-heading .text-secondary{color:#c1d2e3!important;font-size:1rem;line-height:1.5}
.employee-app-body .employee-request-form [hidden]{display:none!important}


/* F7.2.0.7 employee notices: same accessible visual standard as permission requests. */
.employee-app-body .employee-notice-form .form-label{color:#edf6ff!important;font-size:1rem;font-weight:800;line-height:1.35}
.employee-app-body .employee-notice-form .form-text{color:#c1d2e3!important;font-size:.94rem;line-height:1.5}
.employee-app-body .employee-notice-form .form-control,.employee-app-body .employee-notice-form .form-select{min-height:3.1rem;font-size:1rem}
.employee-app-body .employee-notice-form textarea.form-control{min-height:6.5rem}


/* F7.2.0.8: large, simple time selectors for older and low-tech users. */
.employee-app-body .easy-time-grid{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:.55rem}
.employee-app-body .easy-time-grid .form-select{min-height:3.35rem;font-size:1.05rem;font-weight:700;padding-left:.7rem;padding-right:2rem}
@media(max-width:360px){.employee-app-body .easy-time-grid{gap:.35rem}.employee-app-body .easy-time-grid .form-select{font-size:1rem;padding-left:.5rem}}

/* F7.3 replacement proposal keeps the same accessible employee touch target standard. */
.employee-app-body .employee-replacement-form .form-label{color:#edf6ff!important;font-size:1rem;font-weight:800;line-height:1.35}
.employee-app-body .employee-replacement-form .form-text{color:#c1d2e3!important;font-size:.94rem;line-height:1.5}
.employee-app-body .employee-replacement-form .form-control,.employee-app-body .employee-replacement-form .form-select{min-height:3.1rem;font-size:1rem}
.employee-app-body .employee-replacement-form textarea.form-control{min-height:6.5rem}
.employee-app-body .replacement-window{background:rgba(255,255,255,.025);border-color:rgba(173,205,235,.22)!important}

/* F7.3.1 employee-friendly replacement UX */
.employee-app-body .employee-replacement-form strong{color:#f5f9ff;font-size:1rem;font-weight:800}
.employee-app-body .employee-replacement-form [data-replacement-date-field][hidden]{display:none!important}
.employee-app-body .employee-replacement-form .btn{min-height:3rem;font-size:1rem;font-weight:700}


/* F7.4.1 regularization UX: readable, concise and consistent with employee forms. */
.employee-app-body .employee-regularization-form .form-label{color:#edf6ff!important;font-size:1rem;font-weight:800;line-height:1.35}
.employee-app-body .employee-regularization-form .form-text{color:#c1d2e3!important;font-size:.94rem;line-height:1.45}
.employee-app-body .employee-regularization-form .form-control,.employee-app-body .employee-regularization-form .form-select{min-height:3.2rem;font-size:1rem}
.employee-app-body .employee-regularization-form textarea.form-control{min-height:6rem}
.employee-app-body .employee-regularization-form .regularization-note{border:1px solid rgba(90,178,255,.55);border-radius:.8rem;background:rgba(21,117,190,.14);color:#e9f5ff;padding:.9rem 1rem;font-size:.94rem;line-height:1.45}
.employee-app-body .employee-regularization-form .regularization-note strong{color:#fff}
.employee-app-body .employee-regularization-form .btn{min-height:3.1rem;font-size:1rem;font-weight:700}

/* Error pages must remain readable under the strict CSP (no inline styles). */
.error-page-card { max-width: 680px; }

/* F7.6.2 mobile Gestiones information architecture */
.employee-action-stack,.employee-followup-list{max-width:760px}.employee-nav-card{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:1rem;min-height:74px}.employee-nav-card>span:first-child{min-width:0}.employee-nav-chevron{font-size:1.8rem;line-height:1;color:var(--bs-secondary-color)}.employee-history-item>.border-top{border-top:0!important;padding-top:0!important;padding-bottom:0!important}@media(max-width:576px){.employee-nav-card{min-height:70px}.employee-history-item{padding:1rem}}


/* F7.6.2.6 — unobtrusive unread communication alert on employee home. */
.employee-app-body .employee-communication-alert{display:grid;grid-template-columns:2.5rem minmax(0,1fr) auto;align-items:center;gap:.8rem;margin:0 0 1rem;padding:.85rem .9rem;border:1px solid #315f8c;border-radius:1rem;background:#0d2943;color:#f5f9ff;box-shadow:0 .65rem 1.5rem rgba(0,0,0,.12)}
.employee-app-body .employee-communication-alert-icon{display:grid;place-items:center;width:2.35rem;height:2.35rem;border-radius:50%;background:#ffc107;color:#2b2100;font-size:1.15rem;font-weight:900}
.employee-app-body .employee-communication-alert-copy{display:flex;min-width:0;flex-direction:column;line-height:1.25}.employee-app-body .employee-communication-alert-copy strong{font-size:.98rem}.employee-app-body .employee-communication-alert-copy small{margin-top:.2rem;color:#bfd1e3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.employee-app-body .employee-communication-alert .btn{min-height:2.35rem;font-weight:800}
@media(max-width:380px){.employee-app-body .employee-communication-alert{grid-template-columns:2.25rem minmax(0,1fr) auto;gap:.55rem;padding:.75rem}.employee-app-body .employee-communication-alert-icon{width:2.15rem;height:2.15rem}}

/* RC25.26: a locally queued mark is evidence awaiting server validation, not accepted attendance. */
.employee-app-body .journey-summary-pending{border-color:#735c24;background:linear-gradient(145deg,#302711,#1e1c18)}
.employee-app-body .journey-summary-pending .journey-confirm-icon{background:#ffd27a;color:#4a3500}
.employee-app-body .journey-summary-pending .journey-confirm-title{color:#ffe4a3}

/* Jornada laboral — consult-first administration experience. */
.workday-nav{display:flex;gap:.35rem;overflow-x:auto;margin:-.3rem 0 1.6rem;padding:.3rem;border:1px solid #d9e2ec;border-radius:.9rem;background:#f7f9fc;scrollbar-width:thin}
.workday-nav-link{flex:0 0 auto;padding:.62rem .9rem;border-radius:.65rem;color:#465466;font-size:.91rem;font-weight:750;text-decoration:none;white-space:nowrap}
.workday-nav-link:hover{background:#eaf1f8;color:#164e80}.workday-nav-link.is-active{background:#fff;color:#0d6efd;box-shadow:0 .15rem .55rem rgba(24,48,75,.12)}
.workday-page{max-width:1180px;margin:0 auto}.workday-page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem;margin-bottom:1.35rem}.workday-page-heading h1{margin-bottom:.35rem;font-size:clamp(1.8rem,3vw,2.45rem);letter-spacing:-.035em}.workday-page-heading p{margin-bottom:0;color:#5c6b7a;font-size:1.02rem}
.workday-query-card{margin-bottom:1.4rem;padding:1.2rem;border:1px solid #cbd9e7;border-radius:1rem;background:#fff;box-shadow:0 .55rem 1.5rem rgba(35,64,93,.08)}.workday-query-heading{display:flex;gap:.8rem;align-items:center;margin-bottom:1rem}.workday-query-heading h2{margin:0;font-size:1.12rem}.workday-query-heading p{margin:0;color:#667789}.workday-query-icon{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:.75rem;background:#e8f1ff;color:#0d6efd;font-size:1.65rem;font-weight:900}.workday-query-grid{display:grid;grid-template-columns:1.15fr 1.15fr .72fr auto;gap:.85rem;align-items:end}.workday-query-action .btn{min-height:2.6rem;white-space:nowrap}
.workday-eyebrow{display:block;color:#25639a;font-size:.76rem;font-weight:850;letter-spacing:.09em;text-transform:uppercase}
.workday-result{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(22rem,.82fr);gap:1.15rem;align-items:start}
.effective-timeline{display:grid;gap:.75rem;padding:0 1.35rem 1.25rem}.effective-period{position:relative;padding:1.05rem 1.1rem;border-radius:.9rem;background:#102f4c;color:#fff}.effective-period>span{display:block;margin-bottom:.35rem;color:#b9d5eb;font-size:.78rem;font-weight:800;text-transform:uppercase}.effective-period strong{display:flex;align-items:center;gap:.75rem;font-size:1.55rem;letter-spacing:-.025em}.effective-period strong i{display:block;flex:1;height:2px;background:linear-gradient(90deg,#5fb1ff,#7ee3bd)}.effective-period small{display:block;margin-top:.3rem;color:#b9d5eb}

.workday-disclosure{border-top:1px solid #e1e8ef}.workday-disclosure>summary{padding:.95rem 1.35rem;color:#15558c;font-weight:750;cursor:pointer}.workday-disclosure>summary:hover{background:#f7fafc}.workday-disclosure-body{padding:0 1.35rem 1.2rem}.workday-disclosure-body dl{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem 1.2rem}.workday-disclosure-body dt{color:#6a7887;font-size:.78rem}.workday-disclosure-body dd{margin:0;font-weight:700}.workday-no-obligation{display:flex;gap:.85rem;align-items:flex-start;padding:1.15rem;border:1px solid #cfdae5;border-radius:.9rem;background:#f4f7fa}.workday-no-obligation>span{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:#dfe8ef;color:#31536e;font-weight:900}.workday-no-obligation p{margin:.2rem 0 0;color:#637383}
.workday-attendance-card{padding-bottom:1.2rem}.status-pill{display:inline-flex;padding:.48rem .65rem;border-radius:999px;font-size:.82rem;font-weight:850;white-space:nowrap}.status-success{background:#d9f6e8;color:#12663e}.status-warning{background:#fff0c7;color:#765100}.status-danger{background:#ffe0e3;color:#9a1f2b}.status-neutral{background:#e8edf2;color:#50606f}.workday-attendance-facts{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;padding:0 1.35rem}.workday-attendance-facts>div{padding:.85rem;border:1px solid #dde5ec;border-radius:.78rem;background:#fafcfd}.workday-attendance-facts strong{font-size:1.05rem}.workday-attendance-facts .workday-delay{background:#f1f7ff}.workday-calculation{margin-top:1rem}.workday-calculation-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.65rem}.workday-calculation-grid span{display:flex;justify-content:space-between;gap:.75rem;padding:.65rem .75rem;border-radius:.6rem;background:#f5f7f9;color:#5f6f7e;font-size:.85rem}.workday-calculation-grid strong{color:#172b3b}.workday-calculation-grid .calculation-result{background:#eaf3ff;color:#164f81}.workday-attendance-card>.mt-3{padding:0 1.35rem}.workday-attendance-card.empty{grid-column:auto;padding:1.35rem}.workday-attendance-card.empty h2{margin:.3rem 0 .35rem;font-size:1.2rem}.workday-attendance-card.empty p{margin:0;color:#667789}.workday-permission-note{display:flex;flex-direction:column;gap:.2rem;padding:1.2rem;border:1px solid #cfd9e3;border-radius:1rem;background:#f6f8fa}.workday-permission-note span{color:#677787}.workday-alert{grid-column:1/-1}.workday-crosslink{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.15rem 1.25rem;border:1px solid #cedbe7;border-radius:.9rem;background:#f7fafc}.schedule-overview{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem}.schedule-pattern{margin-top:.45rem;color:#294963;font-weight:650;line-height:1.45}
@media(max-width:991.98px){.workday-query-grid{grid-template-columns:1fr 1fr}.workday-query-action .btn{width:100%}.workday-result{grid-template-columns:1fr}}
@media(max-width:767.98px){.workday-page-heading{flex-direction:column;gap:.8rem}.workday-page-heading .btn{width:100%}.workday-query-grid{grid-template-columns:1fr}.workday-attendance-heading{flex-direction:column}.workday-disclosure-body dl{grid-template-columns:1fr}.workday-crosslink{align-items:stretch;flex-direction:column}.workday-crosslink .btn{width:100%}.schedule-overview{align-items:stretch;flex-direction:column}.schedule-overview .btn{width:100%}}
@media(max-width:420px){.workday-nav{margin-left:-.25rem;margin-right:-.25rem}.workday-query-card{padding:1rem}.workday-attendance-facts,.workday-calculation-grid{grid-template-columns:1fr}.effective-period strong{font-size:1.35rem}.effective-timeline,.workday-attendance-heading,.workday-attendance-facts{padding-left:1rem;padding-right:1rem}}
@media(prefers-reduced-motion:reduce){.workday-nav-link,.workday-disclosure>summary{scroll-behavior:auto;transition:none}}

/* Jornada laboral v2 — clear creation and assignment tasks. */
.schedule-page-heading{margin-bottom:1.2rem}
.schedule-catalog-section,.schedule-create-section,.schedule-assignment-section,.calendar-events-section{margin-bottom:2.2rem;scroll-margin-top:5.2rem}.schedule-catalog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.schedule-catalog-card{display:flex;min-width:0;flex-direction:column;border:1px solid #d5e0ea;border-radius:1rem;background:#fff;box-shadow:0 .4rem 1.2rem rgba(35,64,93,.06)}.schedule-catalog-head{display:flex;justify-content:space-between;gap:1rem;padding:1.15rem 1.2rem .5rem}.schedule-catalog-head h3{margin:.2rem 0 0;font-size:1.18rem}.schedule-people-count{align-self:flex-start;padding:.36rem .58rem;border-radius:999px;background:#edf3f8;color:#405568;font-size:.78rem;font-weight:800;white-space:nowrap}.schedule-catalog-pattern{min-height:3.2rem;margin:0;padding:.35rem 1.2rem;color:#173c5a;font-weight:750;line-height:1.5}.schedule-catalog-meta{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;padding:.8rem 1.2rem 1rem;color:#6a7988;font-size:.8rem}.schedule-catalog-meta span{display:flex;flex-direction:column}.schedule-catalog-meta strong{color:#263b4e}.schedule-catalog-details{border-top:1px solid #e3e9ef}.schedule-catalog-details summary{padding:.75rem 1.2rem;color:#15578f;font-weight:750;cursor:pointer}.schedule-day-list{display:grid;grid-template-columns:repeat(2,1fr);gap:.4rem;padding:0 1.2rem 1rem}.schedule-day-list>div{display:flex;justify-content:space-between;gap:.65rem;padding:.55rem .65rem;border-radius:.6rem;background:#f5f8fa;font-size:.84rem}.schedule-day-list span{text-align:right;color:#3c5367}.schedule-day-list small{color:#7a5a12}.schedule-catalog-actions{display:flex;gap:.6rem;margin-top:auto;padding:1rem 1.2rem;border-top:1px solid #e3e9ef}.schedule-catalog-actions .btn{flex:1}
.schedule-builder{overflow:hidden;border:1px solid #cfdde9;border-radius:1.05rem;background:#fff;box-shadow:0 .7rem 1.8rem rgba(35,64,93,.07);scroll-margin-top:5.2rem}.schedule-builder-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;padding:1.35rem 1.45rem;background:linear-gradient(135deg,#f5faff,#edf5fc)}.schedule-builder-head h2{margin:.25rem 0 .25rem;font-size:1.35rem}.schedule-builder-head p{margin:0;color:#637486}.schedule-builder-badge{padding:.4rem .65rem;border-radius:999px;background:#dceeff;color:#145889;font-size:.78rem;font-weight:850;white-space:nowrap}.schedule-builder-section{padding:1.35rem 1.45rem;border-top:1px solid #e2e8ee}.schedule-builder-step{display:flex;gap:.8rem;align-items:flex-start;margin-bottom:1rem}.schedule-builder-step>b{display:grid;place-items:center;flex:0 0 auto;width:2.15rem;height:2.15rem;border-radius:.65rem;background:#0d6efd;color:#fff}.schedule-builder-step>div{display:flex;flex-direction:column}.schedule-builder-step strong{font-size:1.04rem}.schedule-builder-step span{color:#647586;font-size:.9rem}.schedule-day-presets{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:.9rem}.schedule-time-builder{display:grid;grid-template-columns:minmax(10rem,1fr) auto minmax(10rem,1fr) auto;gap:1rem;align-items:end;padding:1rem;border-color:#cfe0ef!important;border-radius:.85rem;background:#f7fbff}.schedule-time-builder>span{align-self:center;margin-top:1.4rem;color:#3a6d97;font-size:1.4rem;font-weight:900}.schedule-time-builder .form-control{min-height:2.8rem}.schedule-save-bar{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-top:1.1rem;padding:1rem;border-radius:.8rem;background:#f1f7fd}.schedule-save-bar>div{display:flex;flex-direction:column}.schedule-save-bar span{color:#667788;font-size:.85rem}.schedule-days-table th{white-space:nowrap}.schedule-days-table .form-check-label{font-weight:750}.schedule-days-table input[type=time]{min-width:7.5rem}
.schedule-assignment-section{padding:1.35rem;border:1px solid #d5e0e9;border-radius:1.05rem;background:#f5f8fb}.assignment-step-card,.assignment-review-card{margin-bottom:1rem;padding:1.2rem;border:1px solid #d8e2eb;border-radius:.9rem;background:#fff}.assignment-review-card{margin-bottom:0}.assignment-impact-note{margin-top:1rem;padding:.75rem .85rem;border-left:3px solid #4f8fc6;background:#f2f7fb;color:#506579;font-size:.88rem}.assignment-impact-note strong{color:#263d51}.selection-scope-card{margin-top:.75rem}.workday-crosslink{margin-bottom:1rem}

/* Calendar asks one business question: does this date modify normal work? */
.calendar-purpose{display:grid;grid-template-columns:2.4rem minmax(0,1fr);gap:.85rem;margin-bottom:1.25rem;padding:1rem 1.1rem;border:1px solid #bdd7ed;border-radius:.9rem;background:#eff7ff}.calendar-purpose-icon{display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:50%;background:#0d6efd;color:#fff;font-weight:900}.calendar-purpose p{margin:.2rem 0 0;color:#536a7c}.calendar-primary-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(18rem,.55fr);gap:1rem;align-items:start;margin-bottom:2.2rem}.calendar-event-form,.calendar-scope-panel{overflow:hidden;border:1px solid #d4dfe9;border-radius:1rem;background:#fff;box-shadow:0 .45rem 1.4rem rgba(35,64,93,.06)}.calendar-event-form>.row,.calendar-event-form>.calendar-effect-preview,.calendar-event-form>.calendar-prerequisite,.calendar-event-form>.calendar-form-action{margin-left:1.35rem;margin-right:1.35rem}.calendar-event-form>.row{margin-top:1.2rem}.calendar-effect-preview{display:flex;gap:.8rem;align-items:flex-start;margin-top:1rem;padding:.85rem 1rem;border-radius:.75rem;background:#f2f6f9}.calendar-effect-preview>span{display:grid;place-items:center;flex:0 0 auto;width:1.75rem;height:1.75rem;border-radius:50%;background:#dfe9f1;color:#30546e;font-weight:900}.calendar-effect-preview p{margin:.15rem 0 0;color:#637586;font-size:.88rem}.calendar-effect-preview.is-working{background:#eaf8f1}.calendar-effect-preview.is-working>span{background:#ccebdc;color:#176342}.calendar-prerequisite{margin-top:1rem;padding:.85rem;border-radius:.7rem;background:#fff2cf;color:#6e5211}.calendar-prerequisite{display:flex;flex-direction:column}.calendar-form-action{display:flex;gap:1rem;align-items:center;padding:1.2rem 0 1.35rem}.calendar-form-action span{color:#667788;font-size:.84rem}.calendar-scope-panel{padding:1.3rem}.calendar-scope-panel h2{margin:.25rem 0;font-size:1.25rem}.calendar-scope-panel>p{color:#667788;font-size:.9rem}.calendar-scope-list{display:grid;gap:.55rem;margin:1rem 0}.calendar-scope-chip{display:flex;flex-direction:column;padding:.7rem .75rem;border:1px solid #dbe4ec;border-radius:.7rem;background:#f8fafc}.calendar-scope-chip small{color:#697a89}.calendar-create-form{padding-top:1rem}.calendar-event-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.calendar-event-card{display:grid;grid-template-columns:4.3rem minmax(0,1fr);gap:1rem;padding:1rem;border:1px solid #d8e2eb;border-radius:.9rem;background:#fff}.calendar-event-date{display:flex;align-items:center;flex-direction:column;padding:.55rem;border-radius:.7rem;background:#edf4fb;color:#174e79}.calendar-event-date strong{font-size:1.5rem;line-height:1}.calendar-event-date span{font-size:.74rem;font-weight:900}.calendar-event-date small{color:#657c90}.calendar-event-copy h3{margin:.55rem 0 .2rem;font-size:1.02rem}.calendar-event-copy p{margin:0;color:#667788;font-size:.85rem}.calendar-impact{padding:.28rem .48rem;border-radius:999px;font-size:.73rem;font-weight:850}.calendar-impact.working{background:#d9f3e6;color:#17633f}.calendar-impact.non-working{background:#edf0f3;color:#526171}.calendar-empty{display:flex;gap:.8rem;align-items:center;grid-column:1/-1;padding:1.3rem;border:1px dashed #c7d5e0;border-radius:.9rem;background:#f8fafc}.calendar-empty>span{display:grid;place-items:center;width:2.2rem;height:2.2rem;border-radius:50%;background:#e5edf4;color:#355870;font-weight:900}.calendar-empty p{margin:.2rem 0 0;color:#667788}
@media(max-width:991.98px){.schedule-catalog-grid{grid-template-columns:1fr}.calendar-primary-grid{grid-template-columns:1fr}.calendar-scope-panel{order:2}.calendar-event-list{grid-template-columns:1fr}.schedule-time-builder{grid-template-columns:1fr auto 1fr}.schedule-time-builder .btn{grid-column:1/-1}}
@media(max-width:767.98px){.schedule-builder-head{flex-direction:column}.schedule-builder-section{padding:1.15rem}.schedule-time-builder{grid-template-columns:1fr}.schedule-time-builder>span{display:none}.schedule-save-bar,.calendar-form-action{align-items:stretch;flex-direction:column}.schedule-save-bar .btn,.calendar-form-action .btn{width:100%}.schedule-catalog-meta{grid-template-columns:1fr}.schedule-catalog-actions{flex-direction:column}.schedule-day-list{grid-template-columns:1fr}.schedule-assignment-section{padding:1rem}.schedule-days-table,.schedule-days-table tbody,.schedule-days-table tr,.schedule-days-table th,.schedule-days-table td{display:block;width:100%}.schedule-days-table thead{display:none}.schedule-days-table tr{margin-bottom:.75rem;padding:.75rem;border:1px solid #dbe4ec;border-radius:.75rem;background:#fafcfd}.schedule-days-table th{padding:.25rem .25rem .6rem;border:0}.schedule-days-table td{display:grid;grid-template-columns:8.5rem minmax(0,1fr);gap:.5rem;align-items:center;padding:.35rem .25rem;border:0}.schedule-days-table td::before{color:#657586;font-size:.78rem;font-weight:750}.schedule-days-table td:nth-child(2)::before{content:'Entrada'}.schedule-days-table td:nth-child(3)::before{content:'Salida'}.schedule-days-table td:nth-child(4)::before{content:'Regreso'}.schedule-days-table td:nth-child(5)::before{content:'Salida final'}.schedule-days-table input[type=time]{min-width:0}.calendar-event-form>.row,.calendar-event-form>.calendar-effect-preview,.calendar-event-form>.calendar-prerequisite,.calendar-event-form>.calendar-form-action{margin-left:1rem;margin-right:1rem}}
@media(max-width:420px){.schedule-catalog-head{flex-direction:column}.schedule-people-count{align-self:flex-start}.schedule-days-table td{grid-template-columns:1fr}.schedule-days-table td::before{margin-top:.25rem}.calendar-event-card{grid-template-columns:3.6rem minmax(0,1fr);gap:.7rem;padding:.8rem}.calendar-event-form .schedule-builder-head{padding:1.1rem}.calendar-purpose{grid-template-columns:1fr}.calendar-purpose-icon{display:none}}

/* 2026-09 onboarding UX: Empresa → Sedes → Estructura. Uses the existing Bootstrap stack; no extra UI library required. */
.setup-journey{display:flex;align-items:center;gap:1.5rem;margin-bottom:1.25rem;padding:1rem 1.15rem;border:1px solid #dfe7ef;border-radius:1rem;background:#fff;box-shadow:0 .25rem 1rem rgba(28,54,78,.04);overflow:hidden}.setup-journey-title{min-width:12.5rem}.setup-journey-title span,.setup-journey-title strong{display:block}.setup-journey-title span{color:#667788;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.setup-journey-title strong{margin-top:.18rem;color:#203548;font-size:.92rem}.setup-journey ol{display:flex;align-items:center;flex:1;gap:0;margin:0;padding:0;list-style:none}.setup-journey li{position:relative;flex:1}.setup-journey li:not(:last-child)::after{content:"";position:absolute;left:calc(50% + 1rem);right:calc(-50% + 1rem);top:1rem;height:2px;background:#dfe6ed}.setup-journey li.done:not(:last-child)::after{background:#79b79a}.setup-journey a{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:.32rem;color:#738191;text-decoration:none;font-size:.72rem}.setup-journey a>span{display:grid;place-items:center;width:2rem;height:2rem;border:2px solid #dbe3ea;border-radius:50%;background:#fff;color:#758493;font-weight:850}.setup-journey .done a>span{border-color:#39916a;background:#e8f6ef;color:#23734f}.setup-journey .current a>span{border-color:#0d6efd;background:#0d6efd;color:#fff;box-shadow:0 0 0 .25rem #e4efff}.setup-journey .current a strong{color:#0b57b7}.setup-journey .done a strong{color:#426353}
.setup-hero{display:flex;justify-content:space-between;gap:2rem;align-items:center;margin-bottom:1.25rem;padding:1.7rem 1.8rem;border:1px solid #d9e4ee;border-radius:1.15rem;background:linear-gradient(135deg,#fff 0%,#f4f9ff 100%)}.setup-kicker,.setup-section-label{color:#1768ad;font-size:.74rem;font-weight:850;text-transform:uppercase;letter-spacing:.075em}.setup-hero h1{margin:.25rem 0 .4rem;color:#172f45;font-size:clamp(1.75rem,3vw,2.35rem);letter-spacing:-.025em}.setup-hero p{max-width:48rem;margin:0;color:#5d7082;font-size:.98rem}.setup-hero-state{display:flex;align-items:center;gap:.75rem;min-width:16rem;padding:.85rem 1rem;border:1px solid #cce7da;border-radius:.85rem;background:#f2fbf6}.setup-state-dot{width:.7rem;height:.7rem;border-radius:50%;background:#2d9567;box-shadow:0 0 0 .3rem #dcefe6}.setup-hero-state strong,.setup-hero-state small{display:block}.setup-hero-state small{margin-top:.1rem;color:#687a70}.setup-metric{min-width:9.5rem;padding:.8rem 1rem;border-left:1px solid #d8e4ee}.setup-metric strong,.setup-metric span,.setup-metric small{display:block}.setup-metric strong{color:#173d5d;font-size:2rem;line-height:1}.setup-metric span{margin-top:.3rem;font-weight:750}.setup-metric small{color:#6c7e8d}
.setup-layout{display:grid;grid-template-columns:minmax(0,1fr) 19rem;gap:1.2rem;align-items:start}.setup-layout-sites{grid-template-columns:minmax(0,1fr) 19rem}.setup-panel{overflow:hidden;border:1px solid #d9e3eb;border-radius:1.05rem;background:#fff;box-shadow:0 .4rem 1.5rem rgba(29,53,76,.05)}.setup-panel.compact{margin-bottom:1.2rem}.setup-panel.is-muted{background:#fafcfd}.setup-panel-head{display:flex;justify-content:space-between;gap:1rem;padding:1.35rem 1.45rem 1rem;border-bottom:1px solid #edf1f4}.setup-panel-head h2{margin:.2rem 0 .2rem;color:#20374b;font-size:1.2rem}.setup-panel-head p{margin:0;color:#6a7a89;font-size:.9rem}.setup-panel form>.setup-form-grid{padding:1.35rem 1.45rem}.setup-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem}.setup-field-wide{grid-column:1/-1}.setup-field .form-label{margin-bottom:.4rem;color:#2c4154;font-weight:750}.setup-field .form-control,.setup-field .form-select{min-height:2.85rem;border-color:#cbd7e2}.setup-field .form-control:focus,.setup-field .form-select:focus{border-color:#6aa6df;box-shadow:0 0 0 .2rem rgba(13,110,253,.11)}.setup-actions{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.45rem;border-top:1px solid #e9eef2;background:#fafcfd}.setup-actions>span{color:#70808e;font-size:.82rem}.setup-actions .btn{min-width:9.5rem}.setup-technical{margin:0 1.45rem 1.25rem;border:1px solid #e2e8ed;border-radius:.7rem;background:#fafcfd}.setup-technical summary{padding:.7rem .85rem;color:#53687a;font-size:.84rem;font-weight:750;cursor:pointer}.setup-technical>div{display:flex;justify-content:space-between;padding:.75rem .85rem;border-top:1px solid #e5eaee;font-size:.84rem}.setup-technical span{color:#73808b}.setup-next-card{position:sticky;top:5rem;padding:1.3rem;border:1px solid #cfe0ee;border-radius:1.05rem;background:#f7fbff}.setup-next-icon{display:grid;place-items:center;width:2.8rem;height:2.8rem;margin:.8rem 0;border-radius:.8rem;background:#e2effc;color:#145f9e;font-weight:900}.setup-next-card h2{margin:0 0 .4rem;color:#213c52;font-size:1.2rem}.setup-next-card p{margin:0 0 1rem;color:#617486;font-size:.9rem}.setup-next-example,.mini-tree{display:flex;flex-direction:column;gap:.25rem;margin-bottom:1rem;padding:.75rem;border-radius:.7rem;background:#fff;color:#526a7c;font-size:.82rem}.setup-next-example strong{color:#263f53}.mini-tree span{padding-left:.7rem}.setup-next-hint{display:block;margin-top:.6rem;color:#7a8792;text-align:center}
.entity-list-head{display:flex;justify-content:space-between;gap:1rem;align-items:end;margin:1.6rem 0 .7rem}.entity-list-head h2{margin:.15rem 0 0;color:#223b50;font-size:1.2rem}.entity-list-head p{margin:.2rem 0 0;color:#6b7b89;font-size:.88rem}.entity-list-head>span{color:#71808d;font-size:.82rem}.entity-list{display:grid;gap:.65rem}.entity-card{overflow:hidden;border:1px solid #d9e2e9;border-radius:.85rem;background:#fff}.entity-card summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.1rem;cursor:pointer;list-style:none}.entity-card summary::-webkit-details-marker{display:none}.entity-card-main{display:flex;align-items:center;gap:.8rem}.entity-card-main strong,.entity-card-main small{display:block}.entity-card-main small{margin-top:.15rem;color:#70808e;font-size:.8rem}.entity-icon{display:grid;place-items:center;width:2.35rem;height:2.35rem;border-radius:.7rem;background:#edf5fc;color:#22669c;font-weight:900}.entity-icon.small{width:1.8rem;height:1.8rem}.entity-card-meta{display:flex;align-items:center;gap:.7rem}.entity-chevron{color:#81909c;font-weight:900}.entity-card[open] .entity-chevron{transform:rotate(180deg)}.entity-card-body{padding:1rem 1.1rem 1.15rem;border-top:1px solid #e8edf1;background:#fafcfd}.entity-edit-footer{display:flex;justify-content:space-between;align-items:center;color:#74828e;font-size:.82rem}.setup-empty{display:flex;align-items:center;flex-direction:column;padding:2.3rem 1rem;border:1px dashed #c8d5df;border-radius:.9rem;background:#fafcfd;text-align:center}.setup-empty>span{display:grid;place-items:center;width:2.8rem;height:2.8rem;margin-bottom:.7rem;border-radius:50%;background:#edf3f7;color:#557188;font-weight:900}.setup-empty p{margin:.25rem 0 0;color:#71808d}
.org-explainer{display:flex;gap:.75rem;align-items:flex-start;margin-bottom:1.2rem;padding:.85rem 1rem;border-left:3px solid #4a91c9;border-radius:.25rem .75rem .75rem .25rem;background:#f1f7fc}.org-explainer>span{display:grid;place-items:center;flex:0 0 auto;width:1.5rem;height:1.5rem;border-radius:50%;background:#2e78b2;color:#fff;font-weight:900}.org-explainer p{margin:0;color:#526b7e;font-size:.88rem}.org-create-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}.setup-prerequisite{display:flex;flex-direction:column;margin:1.35rem;padding:1.2rem;border:1px dashed #cbd7e0;border-radius:.8rem;background:#f7f9fb;color:#53697b}.setup-prerequisite span{margin-top:.2rem;color:#7b8894;font-size:.85rem}.org-map-section{margin-top:.4rem}.org-map{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem}.org-area-card{overflow:hidden;border:1px solid #d7e2ea;border-radius:.9rem;background:#fff;box-shadow:0 .25rem 1rem rgba(31,55,76,.04)}.org-area-head{display:flex;justify-content:space-between;align-items:center;gap:.7rem;padding:.9rem 1rem;border-bottom:1px solid #e7edf2;background:#f8fbfd}.org-area-head>div{display:flex;align-items:center;gap:.65rem}.org-area-head strong,.org-area-head small{display:block}.org-area-head small{color:#7a8996;font-size:.72rem}.org-area-icon{display:grid;place-items:center;width:2rem;height:2rem;border-radius:.55rem;background:#e5f0f9;color:#246692}.org-position-list{margin:0;padding:.45rem 1rem .65rem;list-style:none}.org-position-list li{display:flex;align-items:center;gap:.55rem;padding:.65rem 0;border-bottom:1px solid #edf1f4}.org-position-list li:last-child{border-bottom:0}.org-position-list li>div{flex:1}.org-position-list strong,.org-position-list small{display:block}.org-position-list strong{font-size:.87rem}.org-position-list small{color:#85919b;font-size:.7rem}.org-position-dot{width:.42rem;height:.42rem;border-radius:50%;background:#6c9dc3}.org-position-list .org-empty-position{color:#85929c;font-size:.82rem}.org-edit{border-top:1px solid #edf1f4}.org-edit summary{padding:.65rem 1rem;color:#567187;font-size:.78rem;font-weight:750;cursor:pointer}.org-edit form{padding:0 1rem 1rem}.org-manage{margin-top:1.1rem;border:1px solid #dce4ea;border-radius:.8rem;background:#fff}.org-manage>summary{padding:.85rem 1rem;color:#50697c;font-weight:750;cursor:pointer}.org-manage>.entity-list{padding:0 1rem 1rem}.setup-complete{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;margin-top:1.3rem;padding:1.15rem 1.3rem;border:1px solid #cfe5da;border-radius:1rem;background:#f3faf6}.setup-complete>div{display:flex;align-items:center;gap:.8rem}.setup-complete-icon{display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:50%;background:#dcefe5;color:#24744f;font-weight:900}.setup-complete strong{color:#26483a}.setup-complete p{margin:.15rem 0 0;color:#687b72;font-size:.85rem}
@media(max-width:1199.98px){.setup-journey-title{display:none}.org-map{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:991.98px){.setup-layout,.setup-layout-sites{grid-template-columns:1fr}.setup-next-card{position:static}.org-create-grid{grid-template-columns:1fr}.setup-hero{align-items:flex-start;flex-direction:column}.setup-metric{padding-left:0;border-left:0}.setup-journey{overflow-x:auto}.setup-journey ol{min-width:42rem}}
@media(max-width:767.98px){.setup-form-grid{grid-template-columns:1fr}.setup-field-wide{grid-column:auto}.setup-actions,.setup-complete,.entity-list-head{align-items:stretch;flex-direction:column}.setup-actions .btn,.setup-complete .btn{width:100%}.org-map{grid-template-columns:1fr}.setup-hero{padding:1.3rem}.setup-panel-head,.setup-panel form>.setup-form-grid{padding-left:1rem;padding-right:1rem}.setup-actions{padding-left:1rem;padding-right:1rem}.setup-technical{margin-left:1rem;margin-right:1rem}.entity-card summary{padding:.85rem}.entity-card-meta .badge{display:none}}

/* Admin onboarding v3 — progressive disclosure and task-first desktop UX. */
.setup-list-toolbar{position:relative;margin-top:0;padding:.15rem 0 .9rem;border-bottom:1px solid #e5ebf0}.setup-create-disclosure{position:relative}.setup-create-disclosure>summary{list-style:none;cursor:pointer;white-space:nowrap}.setup-create-disclosure>summary::-webkit-details-marker{display:none}.setup-create-disclosure>summary.disabled{pointer-events:none;opacity:.55}.setup-create-popover{position:absolute;z-index:20;top:calc(100% + .55rem);right:0;width:min(44rem,75vw);overflow:hidden;border:1px solid #ccdbe7;border-radius:1rem;background:#fff;box-shadow:0 1.1rem 3rem rgba(23,47,69,.18)}.setup-create-popover.narrow{width:min(28rem,70vw)}.setup-create-popover .setup-panel-head{background:#f8fbfe}.setup-create-popover form>.setup-form-grid{padding:1.15rem 1.3rem}.setup-create-popover .setup-actions{padding:.9rem 1.3rem}.org-toolbar{display:flex;gap:.55rem;align-items:center}.org-map-section{position:relative;padding:1.25rem;border:1px solid #d8e3ec;border-radius:1.05rem;background:#fff;box-shadow:0 .4rem 1.5rem rgba(29,53,76,.045)}.org-map-section>.entity-list-head{margin:0 0 1rem}.org-map{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}.setup-journey{border-color:#d4e0ea;box-shadow:0 .25rem 1rem rgba(29,53,76,.04)}
@media(max-width:767.98px){.setup-list-toolbar{gap:.8rem}.setup-create-disclosure{width:100%}.setup-create-disclosure>summary{width:100%;text-align:center}.setup-create-popover,.setup-create-popover.narrow{position:static;width:100%;margin-top:.6rem;box-shadow:none}.org-toolbar{width:100%;flex-direction:column}.org-map-section{padding:1rem}}

/* v0.43 — company profile clarity + access directory */
.setup-system-id{display:grid;grid-template-columns:auto 1fr;gap:.1rem 1rem;align-items:center;margin:0 1.45rem 1.25rem;padding:.75rem .9rem;border:1px solid #e5eaee;border-radius:.7rem;background:#fafcfd;color:#667887;font-size:.8rem}.setup-system-id strong{justify-self:end;color:#41576a}.setup-system-id small{grid-column:1/-1;color:#87939d}.access-hero{align-items:center}.access-metrics{display:flex;gap:.65rem}.access-metrics>div{min-width:6.4rem;padding:.8rem 1rem;border:1px solid #dbe5ed;border-radius:.8rem;background:#fff}.access-metrics strong,.access-metrics span{display:block}.access-metrics strong{font-size:1.45rem;color:#183d5d}.access-metrics span{color:#6f7f8d;font-size:.78rem}.access-metrics .warning{border-color:#f0d3a1;background:#fffaf1}.access-metrics .warning strong{color:#9a6412}.access-warning{display:flex;gap:.8rem;align-items:flex-start;margin-bottom:1rem;padding:.9rem 1rem;border:1px solid #f0d5a8;border-radius:.85rem;background:#fffaf2}.access-warning>span{display:grid;place-items:center;flex:0 0 auto;width:1.7rem;height:1.7rem;border-radius:50%;background:#f2a93b;color:#fff;font-weight:900}.access-warning strong{color:#714b13}.access-warning p{margin:.15rem 0 0;color:#806a49;font-size:.85rem}.access-directory{padding:1.2rem;border:1px solid #d9e3eb;border-radius:1rem;background:#fff;box-shadow:0 .35rem 1.4rem rgba(29,53,76,.045)}.access-directory .entity-list-head{margin:0 0 1rem}.access-list{display:grid;gap:.6rem}.access-card{position:relative;border:1px solid #dde5eb;border-radius:.8rem;background:#fff}.access-card.has-warning{border-color:#efc987;background:#fffdf8}.access-card-main{display:grid;grid-template-columns:auto minmax(10rem,1fr) minmax(12rem,1.2fr) auto auto;gap:1rem;align-items:center;padding:.85rem 1rem}.access-avatar{display:grid;place-items:center;width:2.3rem;height:2.3rem;border-radius:.65rem;background:#eaf2fb;color:#1766a5;font-weight:850}.access-identity strong,.access-identity span,.access-person strong,.access-person small{display:block}.access-identity span,.access-person small{margin-top:.1rem;color:#7a8996;font-size:.76rem}.access-state{min-width:4.5rem}.access-actions{position:relative}.access-actions>summary{list-style:none;cursor:pointer}.access-actions>summary::-webkit-details-marker{display:none}.access-actions-menu{position:absolute;z-index:30;right:0;top:calc(100% + .45rem);width:16rem;padding:.75rem;border:1px solid #ccd8e2;border-radius:.8rem;background:#fff;box-shadow:0 .8rem 2rem rgba(24,47,68,.18)}.access-actions-menu>*+*{margin-top:.55rem}.access-action-section{padding-bottom:.65rem;border-bottom:1px solid #e9eef2}.access-action-section>strong{display:block;margin-bottom:.45rem;color:#52687a;font-size:.76rem;text-transform:uppercase;letter-spacing:.04em}@media(max-width:991.98px){.access-metrics{width:100%}.access-metrics>div{flex:1}.access-card-main{grid-template-columns:auto 1fr auto}.access-person{grid-column:2}.access-state{grid-column:3;grid-row:1}.access-actions{grid-column:3;grid-row:2}}@media(max-width:575.98px){.access-metrics{flex-direction:column}.access-card-main{grid-template-columns:auto 1fr}.access-person{grid-column:2}.access-state{grid-column:2}.access-actions{grid-column:1/-1;grid-row:auto}.access-actions>summary{width:100%;text-align:center}.access-actions-menu{position:static;width:100%;margin-top:.5rem;box-shadow:none}.setup-system-id{grid-template-columns:1fr}.setup-system-id strong{justify-self:start}}

/* v0.44 administration UX foundation */
.admin-nav-icon{display:grid!important;place-items:center;flex:0 0 1.8rem;width:1.8rem;height:1.8rem;border-radius:.55rem;background:#f2f6fa;color:#557086;font-size:.92rem;font-weight:850}
.app-menu-link.active .admin-nav-icon{background:#dceaff;color:#0b5ed7}
.app-confirm-dialog{border:0;padding:0;border-radius:1rem;max-width:min(31rem,calc(100vw - 2rem));box-shadow:0 1.5rem 4rem rgba(16,24,40,.28)}
.app-confirm-dialog::backdrop{background:rgba(15,23,42,.48);backdrop-filter:blur(2px)}
.app-confirm-shell{display:grid;grid-template-columns:auto 1fr;gap:.9rem;padding:1.2rem;background:#fff}
.app-confirm-icon{display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:50%;background:#fff1f0;color:#b42318;font-weight:900}
.app-confirm-shell h2{margin:.1rem 0 .3rem;font-size:1.08rem}.app-confirm-shell p{margin:0;color:#667085;line-height:1.45}
.app-confirm-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:.6rem;padding-top:.35rem}

.org-search-wrap{max-width:32rem;margin:.25rem 0 1rem}
.org-map-list{display:grid!important;grid-template-columns:1fr!important;gap:.55rem!important}
.org-area-row{border:1px solid #d7e2ea;border-radius:.8rem;background:#fff;overflow:hidden}
.org-area-row>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem .95rem;cursor:pointer;list-style:none}
.org-area-row>summary::-webkit-details-marker{display:none}
.org-area-row[open]>summary{background:#f8fbfd;border-bottom:1px solid #e7edf2}
.org-area-summary,.org-area-summary-right{display:flex;align-items:center;gap:.7rem}.org-area-summary strong,.org-area-summary small{display:block}.org-area-summary small{margin-top:.1rem;color:#7a8996;font-size:.76rem}
.org-area-summary-right{flex:0 0 auto}.org-area-body{padding:.2rem .95rem .85rem}.org-area-row .org-position-list{padding:.2rem 0}.org-area-row .org-position-list li{padding:.55rem .2rem}.org-area-row .org-position-list .status-badge{margin-left:auto}
.org-no-results{padding:1rem;border:1px dashed #ccd8e2;border-radius:.8rem;color:#667085;text-align:center;background:#fafcfd}

.employee-directory-table table{min-width:900px}
.employee-directory-table th:nth-child(1){width:22%}.employee-directory-table th:nth-child(2){width:23%}.employee-directory-table th:nth-child(3){width:16%}.employee-directory-table th:nth-child(4){width:16%}

.person-dialog::backdrop{background:rgba(15,23,42,.5);backdrop-filter:blur(2px)}

/* v0.45 — warmer admin visual system, scalable directory and real vector navigation */
.admin-body{background:#f5f7fb;color:#182230}
.admin-body .app-main{background:radial-gradient(circle at 92% 2%,rgba(124,92,255,.055),transparent 22rem),radial-gradient(circle at 5% 30%,rgba(24,160,120,.04),transparent 24rem),#f5f7fb}
.admin-body .page-heading h1{letter-spacing:-.035em;color:#14213d}.admin-body .page-heading p{max-width:48rem}
.admin-body .card,.admin-body .access-directory,.admin-body .org-map-section{border-color:#dfe5ee;box-shadow:0 .45rem 1.5rem rgba(20,33,61,.045)}
.admin-nav-icon{border:0!important}.admin-nav-icon svg{width:1.08rem;height:1.08rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.admin-nav-icon.tone-indigo{background:#eef0ff;color:#5b5bd6}.admin-nav-icon.tone-emerald{background:#e9f8f1;color:#16815f}.admin-nav-icon.tone-amber{background:#fff5df;color:#b66a00}.admin-nav-icon.tone-violet{background:#f4ecff;color:#7b4cc9}.admin-nav-icon.tone-rose{background:#fff0f1;color:#c64b5e}.admin-nav-icon.tone-sky{background:#eaf6ff;color:#1976a8}
.app-menu-link.active .admin-nav-icon.tone-indigo{background:#5b5bd6;color:#fff}.app-menu-link.active .admin-nav-icon.tone-emerald{background:#16815f;color:#fff}.app-menu-link.active .admin-nav-icon.tone-amber{background:#d47a00;color:#fff}.app-menu-link.active .admin-nav-icon.tone-violet{background:#7b4cc9;color:#fff}.app-menu-link.active .admin-nav-icon.tone-rose{background:#c64b5e;color:#fff}.app-menu-link.active .admin-nav-icon.tone-sky{background:#1976a8;color:#fff}
.app-logout-button{display:grid!important;place-items:center;width:2.35rem;height:2.35rem;padding:0!important;border-radius:.7rem!important}.app-logout-button svg{display:block}
.setup-journey{background:linear-gradient(135deg,#fff 0%,#fbfcff 100%)}.setup-journey li.done a>span{background:#e8f7ef;border-color:#8ccdaf;color:#167a58}.setup-journey li.current a>span{box-shadow:0 0 0 .28rem rgba(21,94,239,.10)}
.employee-directory-table{border-radius:.85rem;overflow:hidden}.employee-directory-table table{min-width:860px}.employee-directory-table thead th{background:#f8fafc;color:#667085;font-size:.72rem;letter-spacing:.045em;text-transform:uppercase}.employee-directory-table tbody tr:not(.employee-area-group):hover{background:#f8fbff}
.employee-area-group td{padding:.65rem .8rem!important;background:#eef7f4!important;border-top:1px solid #cfe8df!important;border-bottom:1px solid #dcece6!important;color:#176b52;font-size:.82rem;letter-spacing:.015em}.employee-area-dot{display:inline-block;width:.55rem;height:.55rem;margin-right:.5rem;border-radius:50%;background:#25a47a;box-shadow:0 0 0 .2rem rgba(37,164,122,.12)}
.employee-directory-table td:nth-child(2){color:#475467}.employee-directory-table td:nth-child(3){font-weight:650;color:#344054}
.access-hero{background:linear-gradient(135deg,#f6f9ff 0%,#f8fcfb 100%)}.access-warning{border-left:4px solid #e9a23b}.access-card.has-warning{border-left:4px solid #e9a23b}.setup-complete{border-left:4px solid #49a87b}
@media(max-width:767.98px){.employee-area-group td{position:sticky;left:0}}
/* v0.46 - scalable access directory */
.access-filterbar{display:grid;grid-template-columns:minmax(260px,2fr) repeat(3,minmax(150px,1fr)) auto;gap:.75rem;align-items:end;padding:1rem 1.1rem;margin:.8rem 0 1rem;border:1px solid #dbe5f1;border-radius:1rem;background:#f8fbff}.access-filterbar label{display:block;margin-bottom:.35rem;font-size:.76rem;font-weight:800;color:#3b526b}.access-filter-actions{display:flex;gap:.5rem}.access-results-meta{margin:-.25rem 0 .8rem;color:#64748b;font-size:.86rem}.access-pagination{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:1rem;color:#64748b;font-size:.86rem}.access-pagination>div{display:flex;gap:.35rem}.access-pagination a{display:grid;place-items:center;min-width:2.15rem;height:2.15rem;padding:0 .55rem;border:1px solid #d5dfeb;border-radius:.6rem;color:#24415f;text-decoration:none;background:#fff;font-weight:700}.access-pagination a.active{background:#1766db;color:#fff;border-color:#1766db}.access-person small{display:block;max-width:34rem;white-space:normal}.employee-area-group td{background:#f4f8fd!important;border-top:1px solid #d9e5f2!important;border-bottom:1px solid #e6edf5!important;color:#23415f;padding:.55rem .75rem!important}.employee-area-dot{display:inline-block;width:.55rem;height:.55rem;margin-right:.5rem;border-radius:50%;background:#1d9a72}
@media(max-width:1100px){.access-filterbar{grid-template-columns:1fr 1fr}.access-filter-actions{grid-column:1/-1;justify-content:flex-end}}
@media(max-width:650px){.access-filterbar{grid-template-columns:1fr}.access-filter-actions{grid-column:auto}.access-pagination{align-items:flex-start;flex-direction:column}}

/* v0.47 — navigation groups replace the cramped icon-only sidebar. */
.app-menu-group{margin-top:.55rem}.app-menu-group-toggle{display:flex;width:100%;align-items:center;justify-content:space-between;gap:.6rem;padding:.55rem .55rem .4rem;border:0;background:transparent;color:#65758b;font-size:.72rem;font-weight:850;letter-spacing:.075em;text-transform:uppercase;text-align:left}.app-menu-group-toggle:hover{color:#23415f}.app-menu-group-toggle svg{width:1rem;height:1rem;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .18s ease}.app-menu-group.is-collapsed .app-menu-group-toggle svg{transform:rotate(-90deg)}.app-menu-group-links{display:grid;gap:.1rem}.app-menu-group-links[hidden]{display:none!important}.app-menu-group-toggle:focus-visible{outline:3px solid rgba(21,94,239,.18);outline-offset:1px;border-radius:.45rem}

.workday-attendance-card{overflow:hidden;border:1px solid #d6e0e9;border-radius:1.05rem;background:#fff;box-shadow:0 .6rem 1.7rem rgba(35,64,93,.07)}
.workday-attendance-heading{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;padding:1.25rem 1.35rem}.workday-attendance-heading h2{margin:.25rem 0 .15rem;font-size:1.32rem}
.workday-attendance-facts span{display:block;margin-bottom:.25rem;color:#657586;font-size:.78rem;font-weight:750}

/* v0.48 — Jornada del personal: administrative answer-first layout */
.workday-purpose{display:grid;grid-template-columns:auto minmax(0,1.25fr) minmax(19rem,.75fr);gap:1.2rem;align-items:center;padding:1.45rem 1.55rem;border:1px solid #d8e5df;border-radius:1.1rem;background:linear-gradient(135deg,#f7fcfa,#eef8f4);box-shadow:0 .45rem 1.35rem rgba(28,76,58,.05)}
.workday-purpose-icon{display:grid;place-items:center;width:3rem;height:3rem;border-radius:1rem;background:#dff4e9;color:#16794d;font-size:1.35rem;font-weight:900}.workday-purpose h2{margin:.25rem 0 .35rem;font-size:1.35rem;letter-spacing:-.02em}.workday-purpose p{margin:0;color:#5f7069}.workday-purpose-items{display:grid;gap:.55rem}.workday-purpose-items span{display:grid;padding:.65rem .75rem;border-radius:.7rem;background:rgba(255,255,255,.72)}.workday-purpose-items strong{font-size:.88rem}.workday-purpose-items small{color:#6a7973}
.workday-summary-card{overflow:hidden;border:1px solid #d5e0e9;border-radius:1.05rem;background:#fff;box-shadow:0 .6rem 1.7rem rgba(35,64,93,.07)}.workday-summary-person{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.9rem;align-items:center;padding:1.2rem 1.35rem}.workday-summary-person h2{margin:.1rem 0;font-size:1.35rem}.workday-summary-person p{margin:0;color:#667789}.workday-summary-person .badge{align-self:start;padding:.55rem .7rem;border-radius:999px}.workday-avatar{display:grid;place-items:center;width:2.9rem;height:2.9rem;border-radius:.85rem;background:#e7f1ff;color:#0d64c8;font-size:1.05rem;font-weight:850}
.workday-primary-answer{display:grid;grid-template-columns:1.35fr .85fr;border-top:1px solid #e1e8ef;border-bottom:1px solid #e1e8ef;background:#f8fbff}.workday-primary-answer>div{padding:1.15rem 1.35rem}.workday-primary-answer>div+div{border-left:1px solid #e1e8ef}.workday-primary-answer span,.workday-primary-answer small{display:block;color:#657586}.workday-primary-answer span{margin-bottom:.18rem;font-size:.8rem;font-weight:750}.workday-primary-answer strong{display:block;color:#102f4b;font-size:1.55rem;letter-spacing:-.025em}.workday-primary-answer small{margin-top:.2rem}
.workday-why{margin-top:0}.workday-attendance-heading p{margin:.25rem 0 0;color:#667789}.workday-attendance-facts{grid-template-columns:repeat(3,1fr)}.workday-report-link{padding:1rem 1.35rem 0}.workday-report-link .btn{width:100%}.workday-result{grid-template-columns:minmax(0,1.22fr) minmax(20rem,.78fr)}
@media(max-width:991.98px){.workday-purpose{grid-template-columns:auto 1fr}.workday-purpose-items{grid-column:1/-1;grid-template-columns:repeat(3,1fr)}.workday-result{grid-template-columns:1fr}}
@media(max-width:767.98px){.workday-purpose{grid-template-columns:1fr}.workday-purpose-icon{width:2.65rem;height:2.65rem}.workday-purpose-items{grid-column:auto;grid-template-columns:1fr}.workday-summary-person{grid-template-columns:auto 1fr}.workday-summary-person .badge{grid-column:1/-1;justify-self:start}.workday-primary-answer{grid-template-columns:1fr}.workday-primary-answer>div+div{border-left:0;border-top:1px solid #e1e8ef}.workday-attendance-facts{grid-template-columns:1fr 1fr}.workday-attendance-facts .workday-delay{grid-column:1/-1}}

/* v0.50 — Horarios: una tarea por pantalla, sin apilar creación y asignación */
.schedule-mode-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:0 0 1.5rem}.schedule-mode-nav>a{display:flex;align-items:center;gap:.75rem;min-height:4.4rem;padding:.8rem 1rem;border:1px solid #d5e0ea;border-radius:.9rem;background:#fff;color:#31475b;text-decoration:none}.schedule-mode-nav>a:hover{border-color:#8bb9e6;background:#f8fbff}.schedule-mode-nav>a.active{border-color:#77aee5;background:#eef6ff;box-shadow:inset 0 0 0 1px #b7d7f5}.schedule-mode-nav>a>span{display:grid;place-items:center;flex:0 0 auto;width:2rem;height:2rem;border-radius:50%;background:#edf2f7;color:#53697d;font-weight:850}.schedule-mode-nav>a.active>span{background:#0d6efd;color:#fff}.schedule-mode-nav a div{display:flex;min-width:0;flex-direction:column}.schedule-mode-nav strong{font-size:.94rem}.schedule-mode-nav small{color:#6c7c8b}.schedule-focus-panel{margin-bottom:1.5rem}.schedule-focus-intro{display:flex;gap:1rem;align-items:flex-start;margin-bottom:1rem;padding:1.15rem 1.25rem;border:1px solid #d5e1ec;border-radius:1rem;background:#fff}.schedule-focus-intro h2{margin:.15rem 0 .25rem;font-size:1.35rem}.schedule-focus-intro p{margin:0;color:#617386}.schedule-focus-number{display:grid;place-items:center;flex:0 0 auto;width:2.6rem;height:2.6rem;border-radius:.8rem;background:#0d6efd;color:#fff;font-size:1.05rem;font-weight:900}.schedule-overview-heading{display:flex;justify-content:space-between;align-items:end;gap:1rem}.schedule-assignment-section.schedule-focus-panel{padding:0;border:0;background:transparent}.schedule-assignment-section.schedule-focus-panel>.assignment-step-card,.schedule-assignment-section.schedule-focus-panel>.assignment-review-card,.schedule-assignment-section.schedule-focus-panel>.ux-details{margin-left:0;margin-right:0}
@media(max-width:767.98px){.schedule-mode-nav{grid-template-columns:1fr}.schedule-mode-nav>a{min-height:0}.schedule-overview-heading{align-items:stretch;flex-direction:column}.schedule-overview-heading .btn{width:100%}.schedule-focus-intro{padding:1rem}}
.selected-schedule-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 1rem;padding:1rem 1.15rem;border:1px solid #9bc7f1;border-left:4px solid #0d6efd;border-radius:.9rem;background:#f4f9ff}.selected-schedule-banner>div{display:flex;min-width:0;flex-direction:column;gap:.18rem}.selected-schedule-banner strong{font-size:1.05rem;color:#173c5a}.selected-schedule-banner>div>span:last-child{color:#607487;font-size:.88rem}@media(max-width:767.98px){.selected-schedule-banner{align-items:flex-start;flex-direction:column}.selected-schedule-banner .btn{width:100%}}

/* v0.51 schedule UX: keep common schedules simple; disclose split shifts only when needed. */
.schedule-days-table .schedule-split-field{display:none}
.schedule-days-table.is-split .schedule-split-field{display:table-cell}
.schedule-split-toggle{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border:1px solid #d9e4f2;border-radius:.8rem;background:#f8fbff}
.schedule-split-toggle div{display:grid;gap:.15rem}.schedule-split-toggle span{color:#657586;font-size:.84rem}
.assignment-dates{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem}
.assignment-primary-action{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #dbe4ef}
.assignment-primary-action>div{display:grid;gap:.15rem}.assignment-primary-action span{color:#657586;font-size:.84rem}
@media(max-width:760px){.assignment-dates{grid-template-columns:1fr}.assignment-primary-action,.schedule-split-toggle{align-items:stretch;flex-direction:column}}
@media(max-width:760px){.schedule-days-table:not(.is-split) .schedule-split-field{display:none!important}}
/* v0.52 · período laboral y continuidad anual */
.labor-period-section{margin:1rem 0 1.5rem;padding:1.25rem;border:1px solid var(--bs-border-color);border-radius:1rem;background:var(--bs-body-bg)}
.labor-period-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.8fr);gap:1rem;align-items:start}.labor-period-list{display:grid;gap:.65rem}.labor-period-card{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.85rem 1rem;border:1px solid var(--bs-border-color);border-radius:.8rem}.labor-period-card div{display:grid;gap:.15rem}.labor-period-card span{color:var(--bs-secondary-color)}.labor-period-warning{margin:.75rem 0 1rem;padding:1rem;border:1px solid rgba(255,193,7,.45);border-radius:.8rem;background:rgba(255,193,7,.08)}.labor-period-warning p{margin:.3rem 0 0;color:var(--bs-secondary-color)}
@media(max-width:900px){.labor-period-grid{grid-template-columns:1fr}}
/* v0.55: calendario centrado en negocio; configuración por sede queda secundaria. */
.calendar-scope-secondary{align-self:start}.calendar-scope-secondary>h2{font-size:1.05rem}.calendar-scope-secondary>p{font-size:.88rem}.calendar-event-range .calendar-event-copy p strong{color:var(--bs-body-color)}
@media (min-width: 992px){.calendar-primary-grid{grid-template-columns:minmax(0,1fr) 300px}}

/* v0.57 schedule-specific tolerances and focused schedule editing */
.tolerance-current-card{display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(3,minmax(130px,1fr));gap:1px;margin:0 0 1rem;border:1px solid var(--bs-border-color);border-radius:14px;overflow:hidden;background:var(--bs-border-color)}
.tolerance-current-card>div{background:#fff;padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.25rem}.tolerance-current-card span{font-size:.78rem;color:#64748b}.tolerance-current-card strong{font-size:1rem;color:#0f2742}
.schedule-edit-identity{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;border:1px solid #bfdbfe;background:#f8fbff;border-radius:12px}.schedule-edit-identity h3{margin:.15rem 0}.schedule-edit-identity p{margin:0;color:#52677f}
@media(max-width:767.98px){.tolerance-current-card{grid-template-columns:1fr 1fr}.schedule-edit-identity{align-items:flex-start;flex-direction:column}}

/* Devices administration: employee requests and institutional equipment are separate workflows. */
.device-tabs{display:flex;gap:.5rem;padding:.35rem;border:1px solid var(--bs-border-color,#d8e0ea);border-radius:14px;background:#fff}.device-tab{display:flex;align-items:center;gap:.5rem;padding:.7rem 1rem;border-radius:10px;color:inherit;text-decoration:none;font-weight:700}.device-tab:hover{background:#f3f7fb}.device-tab.active{background:#eaf3ff;color:#075ecb}.device-tab .badge{font-size:.72rem}.table-actions{display:flex;flex-wrap:wrap;gap:.4rem}.table-actions form{margin:0}@media(max-width:767px){.device-tabs{flex-direction:column}.device-tab{justify-content:space-between}}
/* v0.62 institutional device pairing */
.device-equipment-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:16px}.device-equipment-card{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;padding:20px;border:1px solid #d9e2ef;border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(15,23,42,.05)}.device-equipment-card h3{font-size:1.05rem;margin:8px 0 4px}.device-equipment-card p{color:#64748b;margin:0}.device-equipment-pending{border-color:#f3cf79;background:#fffdf7}.device-type-chip{font-size:.72rem;font-weight:700;color:#31547a;background:#edf5ff;border-radius:999px;padding:5px 9px}.device-state{display:inline-flex;border-radius:999px;padding:6px 10px;font-size:.78rem;font-weight:700}.device-state-pending{background:#fff1bf;color:#765600}.device-state-ready{background:#dcfce7;color:#166534}.device-pairing-panel{min-width:240px}.pairing-code{font-size:1.6rem;font-weight:800;letter-spacing:.12em;margin:10px 0;color:#0f2740}.device-ready-actions{display:flex;align-items:center;gap:10px}.device-pairing-body{min-height:100vh;background:#f4f7fb;display:grid;place-items:center;padding:20px}.device-pairing-shell{width:min(520px,100%)}.device-pairing-brand{font-weight:800;color:#0f2740;margin-bottom:16px;text-align:center}.device-pairing-card{background:#fff;border:1px solid #d9e2ef;border-radius:20px;padding:28px;box-shadow:0 18px 50px rgba(15,23,42,.09)}.device-pairing-card h1{font-size:1.8rem}.device-pair-code-input{font-size:1.35rem;letter-spacing:.12em;text-transform:uppercase}@media(max-width:700px){.device-equipment-card{flex-direction:column}.device-pairing-panel{min-width:0;width:100%}.device-ready-actions{width:100%;justify-content:space-between}}
.device-history-summary{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:14px}.device-history-summary span{font-size:.85rem;color:#64748b}@media(max-width:700px){.device-history-summary{align-items:flex-start;flex-direction:column}}

/* v0.68 — Lugares de marcaje: flujo guiado lugar → perímetro */
.location-flow{padding:1.25rem;border:1px solid #d7e2ee;border-radius:1.15rem;background:linear-gradient(180deg,#fbfdff 0%,#f7faff 100%);box-shadow:0 12px 34px rgba(28,61,94,.06)}
.location-flow-head{display:flex;justify-content:space-between;align-items:center;gap:2rem;margin-bottom:1.15rem}.location-flow-head h2{margin:.2rem 0 .35rem;font-size:1.35rem;color:#142d47}.location-flow-head p{margin:0;max-width:46rem;color:#617386}.location-flow-progress{display:flex;align-items:center;min-width:150px}.location-flow-progress span{display:grid;place-items:center;width:2rem;height:2rem;border:1px solid #cbd8e5;border-radius:50%;background:#fff;color:#64748b;font-weight:850}.location-flow-progress span.active{border-color:#0d6efd;background:#0d6efd;color:#fff}.location-flow-progress i{height:2px;flex:1;background:#cbd8e5}
.location-step-card{border:1px solid #d6e1ec;border-radius:1rem;box-shadow:none}.location-step-card .step-heading{align-items:center}.location-step-card .step-heading>div{flex:1}.location-step-state{padding:.35rem .55rem;border-radius:999px;background:#eef2f6;color:#667789;font-size:.72rem;font-weight:800;white-space:nowrap}.location-step-state-active{background:#e5f6eb;color:#167342}.location-step-locked{background:#f7f9fb;border-style:dashed}.location-step-locked .step-number{background:#94a3b8}.location-locked-message{display:grid;gap:.2rem;margin-bottom:1rem;padding:.9rem 1rem;border:1px dashed #c8d4df;border-radius:.8rem;background:#fff;color:#53677a}.location-locked-message span{font-size:.86rem;color:#738293}.location-selected{display:grid;grid-template-columns:1fr auto;gap:.1rem .8rem;align-items:center;margin-bottom:1rem;padding:.85rem 1rem;border:1px solid #b8ddc8;border-radius:.8rem;background:#f2fbf5}.location-selected span{grid-column:1/-1;color:#597064;font-size:.75rem;font-weight:750;text-transform:uppercase;letter-spacing:.04em}.location-selected strong{color:#174f32}.location-selected a{font-size:.82rem;font-weight:750;text-decoration:none}
.location-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:.8rem}.location-summary-card{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.1rem;border:1px solid #d8e2ec;border-radius:.9rem;background:#fff}.location-summary-card p{margin:.25rem 0 0;color:#68798a;font-size:.86rem}.location-summary-top{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}.location-status{display:inline-flex;padding:.28rem .5rem;border-radius:999px;font-size:.7rem;font-weight:800}.location-status-ready{background:#e6f7ec;color:#157044}.location-status-pending{background:#fff4d6;color:#8a6200}
@media(max-width:767.98px){.location-flow{padding:1rem}.location-flow-head{align-items:flex-start;flex-direction:column}.location-flow-progress{width:100%}.location-step-card .step-heading{align-items:flex-start;flex-wrap:wrap}.location-step-state{margin-left:2.8rem}.location-summary-card{align-items:flex-start;flex-direction:column}.location-summary-card .btn{width:100%}}

/* v0.69 — Lugares de marcaje: wizard progresivo y vista operacional */
.location-operations{margin:1rem 0 1.4rem}.location-operations>.section-heading{margin-bottom:.8rem}.location-operations .section-heading h2{margin:.15rem 0 .2rem;font-size:1.35rem}.location-operations .section-heading p{margin:0;color:#667789}
.location-flow-pro{padding:1.35rem;border:1px solid #d8e3ef;border-radius:1.15rem;background:#fff;box-shadow:0 14px 38px rgba(28,61,94,.07)}.location-flow-head-pro{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem}.location-flow-head-pro h2{margin:.15rem 0 .35rem;font-size:1.45rem;color:#122b45}.location-flow-head-pro p{margin:0;max-width:48rem;color:#617386}.location-progress-label{white-space:nowrap;padding:.45rem .7rem;border-radius:999px;background:#edf5ff;color:#075ecb;font-size:.76rem;font-weight:850}
.location-flow-progress-pro{display:grid;grid-template-columns:auto minmax(40px,1fr) auto minmax(40px,1fr) auto;align-items:center;margin:1.3rem 0 1.5rem;padding:1rem 1.1rem;border-radius:.9rem;background:#f7faff}.flow-node{display:flex;align-items:center;gap:.65rem}.flow-node>span{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:#e7edf4;color:#718096;font-weight:900}.flow-node.done-or-active>span,.flow-node.active>span{background:#0d6efd;color:#fff}.flow-node strong,.flow-node small{display:block}.flow-node strong{font-size:.84rem;color:#213b55}.flow-node small{font-size:.72rem;color:#78899a}.flow-node.locked{opacity:.72}.location-flow-progress-pro>i{height:2px;margin:0 .75rem;background:#d8e1ea}.location-flow-progress-pro>i.done{background:#0d6efd}
.location-wizard-stage{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,.7fr);gap:1rem;align-items:stretch}.location-wizard-stage-focus{grid-template-columns:minmax(190px,.48fr) minmax(0,1.52fr)}.location-primary-card,.location-next-card,.location-completed-card{border:1px solid #d8e3ee;border-radius:1rem;background:#fff}.location-primary-card{padding:1.25rem;box-shadow:0 8px 24px rgba(27,61,94,.05)}.location-primary-card .step-heading{align-items:flex-start;margin-bottom:1.15rem}.location-primary-card .step-heading h2{margin:.1rem 0 .25rem;font-size:1.25rem}.location-primary-card .step-heading p{margin:0;color:#687b8e}.step-eyebrow{display:block;margin-bottom:.15rem;color:#0d6efd;font-size:.67rem;font-weight:900;letter-spacing:.08em}.location-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}.location-field-wide{grid-column:1/-1}.location-primary-action{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.15rem;padding-top:1rem;border-top:1px solid #e5ebf1}.location-primary-action strong,.location-primary-action span{display:block}.location-primary-action strong{font-size:.83rem;color:#29445e}.location-primary-action span{font-size:.75rem;color:#758697}.location-primary-action .btn{min-width:220px}
.location-next-card{display:flex;gap:.9rem;padding:1.25rem;background:#f8fafc;border-style:dashed;color:#64748b}.location-next-card h3{margin:.1rem 0 .35rem;font-size:1.05rem;color:#506579}.location-next-card p{font-size:.82rem}.step-number.muted{background:#94a3b8}.location-lock-note{margin-top:.8rem;padding:.65rem .75rem;border-radius:.7rem;background:#eef2f6;font-size:.75rem;font-weight:750}.location-completed-card{display:flex;flex-direction:column;justify-content:space-between;padding:1.1rem;background:#f2fbf5;border-color:#bfe2cd}.location-completed-card>div{display:grid;gap:.15rem}.completion-check{display:grid;place-items:center;width:2rem;height:2rem;margin-bottom:.45rem;border-radius:50%;background:#198754;color:#fff;font-weight:900}.location-completed-card strong{font-size:1rem;color:#174f32}.location-completed-card small{color:#658173}.location-completed-card>a{margin-top:1rem;font-size:.8rem;font-weight:750;text-decoration:none}.location-current-row{display:flex;align-items:center;gap:.8rem}.location-current-row>span{font-size:.78rem;color:#758697}.location-inline-advanced{margin-top:.9rem}.location-global-advanced{margin-top:1.25rem}.location-advanced-body{padding-top:1rem}.location-advanced-body h3{font-size:1rem}
.location-summary-grid{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}.location-summary-card{padding:1.05rem 1.15rem;box-shadow:0 5px 16px rgba(30,60,90,.035)}.location-card-main{min-width:0}.location-card-actions{display:flex;align-items:center;gap:.85rem}.location-radius,.location-next-step{display:grid;text-align:right}.location-radius small,.location-next-step small{font-size:.68rem;color:#8291a0}.location-radius strong{font-size:.85rem;color:#27435e}.location-next-step strong{font-size:.76rem;color:#8a6200}.location-empty{display:grid;gap:.25rem}.location-empty span{color:#728395}
@media(max-width:900px){.location-flow-progress-pro{grid-template-columns:1fr;gap:.6rem}.location-flow-progress-pro>i{display:none}.location-wizard-stage,.location-wizard-stage-focus{grid-template-columns:1fr}.location-next-card{min-height:0}.location-summary-grid{grid-template-columns:1fr}.location-summary-card{align-items:flex-start;flex-direction:column}.location-card-actions{width:100%;justify-content:space-between}}
@media(max-width:600px){.location-flow-pro{padding:1rem}.location-flow-head-pro{flex-direction:column;gap:.7rem}.location-form-grid{grid-template-columns:1fr}.location-field-wide{grid-column:auto}.location-primary-action{align-items:stretch;flex-direction:column}.location-primary-action .btn{width:100%;min-width:0}.location-current-row{align-items:flex-start;flex-direction:column}.location-card-actions{align-items:stretch;flex-direction:column}.location-radius,.location-next-step{text-align:left}.location-card-actions .btn{width:100%}}

/* v0.70 - Lugar configurado: consulta primero, edición explícita */
.location-config-view{display:grid;gap:1rem}.location-config-hero{display:flex;justify-content:space-between;align-items:center;gap:1.25rem;padding:1.2rem 1.25rem;border:1px solid #bfe2cd;border-radius:1rem;background:#f2fbf5}.location-config-hero h2{margin:.1rem 0 .25rem;color:#174f32;font-size:1.35rem}.location-config-hero p{margin:0;color:#658173}.location-config-hero .completion-check{display:inline-grid;margin:0 .55rem 0 0;vertical-align:middle}.location-config-actions{display:flex;gap:.65rem;flex-wrap:wrap}.location-config-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem}.location-config-grid section{padding:1rem;border:1px solid #d8e3ee;border-radius:.9rem;background:#fff}.location-config-grid .config-label{display:block;margin-bottom:.35rem;color:#718398;font-size:.7rem;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.location-config-grid strong{display:block;color:#183550;font-size:1rem}.location-config-grid p{margin:.35rem 0 0;color:#728396;font-size:.76rem;line-height:1.45}.location-config-note{display:flex;gap:.8rem;padding:.9rem 1rem;border:1px solid #cfe2f7;border-radius:.85rem;background:#f4f9ff;color:#45647f}.location-config-note strong{white-space:nowrap;color:#174f78}.location-config-note span{font-size:.82rem}.location-global-advanced summary{color:#526b82}.location-global-advanced[open] summary{color:#0b5fc6}
@media(max-width:900px){.location-config-grid{grid-template-columns:1fr 1fr}.location-config-hero{align-items:flex-start;flex-direction:column}.location-config-actions{width:100%}.location-config-actions .btn{flex:1}.location-config-note{flex-direction:column;gap:.25rem}}
@media(max-width:600px){.location-config-grid{grid-template-columns:1fr}.location-config-actions{flex-direction:column}.location-config-actions .btn{width:100%}}

/* v0.72 - reglas de marcaje legibles por tipo de equipo */
.phone-policy-card,.phone-policy-setup{border:1px solid #d8e3f2}
.policy-ready{background:#e8f7ef;color:#137a49;border-radius:999px;padding:.45rem .8rem;font-weight:700;font-size:.85rem}
.phone-rule-flow{display:flex;align-items:stretch;gap:.65rem;flex-wrap:wrap}
.phone-rule-flow>div{flex:1 1 150px;border:1px solid #dbe4ef;border-radius:12px;padding:1rem;background:#fbfdff;display:flex;flex-direction:column;gap:.25rem}
.phone-rule-flow small,.policy-place small{display:block;color:#65758b;font-size:.78rem}
.flow-icon{font-size:1.25rem}.flow-arrow{align-self:center;color:#2f6fed;font-weight:800;font-size:1.2rem}
.policy-places{display:grid;gap:.6rem}.policy-place{display:flex;gap:.7rem;align-items:center;border:1px solid #dbe4ef;border-radius:10px;padding:.75rem .9rem;background:#fff}
@media(max-width:768px){.flow-arrow{display:none}.phone-rule-flow{display:grid;grid-template-columns:1fr 1fr}.phone-rule-flow>div{min-width:0}}
\n/* v0.79 — stable accordion navigation and printable administrative reports */\n.report-actions{display:flex;justify-content:flex-end;gap:.55rem;margin:-.25rem 0 1rem}.report-print-meta{display:none}.print-report-view{background:#fff}\n@media print{\n  @page{size:landscape;margin:10mm}\n  .app-topbar,.app-sidebar,.app-menu-backdrop,.report-filter,.report-actions,.pagination,.btn-group,.app-logout-form,.skip-link{display:none!important}\n  .app-shell{display:block!important}.app-main{display:block!important;width:100%!important;max-width:none!important;padding:0!important;margin:0!important}\n  .page-heading{margin:0 0 8mm!important}.page-heading .page-kicker{display:none}.page-heading h1{font-size:18pt!important}.page-heading p{font-size:9pt!important}\n  .report-print-meta{display:block!important;margin:-5mm 0 5mm;font-size:9pt;color:#333}\n  .card{box-shadow:none!important;border:0!important}.table-responsive{overflow:visible!important}.table{font-size:8pt!important;width:100%!important}.table th,.table td{padding:4px 5px!important;vertical-align:top!important}\n  .table .btn,.table a.btn{display:none!important}.badge{border:1px solid #777!important;color:#111!important;background:#fff!important}\n  a[href]:after{content:none!important}\n}\n
/* v0.80 — report actions belong to the result set */
.report-results-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 .75rem;padding:.15rem .1rem}
.report-print-toolbar{display:flex;justify-content:flex-end;gap:.6rem;margin:0 0 1rem}
@media(max-width:575.98px){.report-results-toolbar{align-items:stretch;flex-direction:column}.report-results-toolbar .btn,.report-print-toolbar .btn{width:100%}.report-print-toolbar{flex-direction:column}}
@media print{.report-results-toolbar,.report-print-toolbar{display:none!important}}

/* v0.81 — report action hierarchy and in-place printing */
.report-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;margin-bottom:.35rem}
.report-page-header .page-heading{margin-bottom:0;min-width:0}
.report-print-action{flex:0 0 auto;margin-top:.2rem;white-space:nowrap}
.report-print-frame{position:fixed!important;width:1px!important;height:1px!important;right:0!important;bottom:0!important;border:0!important;opacity:0!important;pointer-events:none!important}
@media(max-width:767.98px){.report-page-header{display:block}.report-print-action{width:100%;margin:.75rem 0 .25rem}}
@media print{.report-page-header{display:block!important}.report-print-action{display:none!important}}

/* v0.82 — same-page reliable report printing */
.report-print-document{display:none}
@media print{
  body > *{display:none!important}
  body > .report-print-document{display:block!important;position:static!important;width:100%!important}
  .report-print-document .report-filter,.report-print-document .report-results-toolbar,.report-print-document .pagination,.report-print-document .btn,.report-print-document .report-print-action{display:none!important}
  .report-print-document .report-print-meta{display:block!important}
  .report-print-document .table-responsive{overflow:visible!important}
}

/* v0.82 — reliable same-page printing and report action hierarchy */
.report-filter-actions{width:100%}.report-print-document{display:none}
@media print{
  body > *{display:none!important}
  body > .report-print-document{display:block!important;position:static!important;width:100%!important;max-width:none!important}
  .report-print-document .report-filter,.report-print-document .report-results-toolbar,.report-print-document .pagination,.report-print-document .btn,.report-print-document .report-print-action{display:none!important}
  .report-print-document .report-print-meta{display:block!important}
  .report-print-document .table-responsive{overflow:visible!important}
}

/* v0.83 — administrative report document design */
.report-document-masthead,.report-document-context,.report-document-footer{display:none}
@media print{
  @page{size:landscape;margin:12mm 10mm 14mm}
  body > .report-print-document{font-family:Arial,Helvetica,sans-serif!important;color:#172033!important}
  .report-print-document .report-document-masthead{display:flex!important;align-items:flex-start;justify-content:space-between;gap:12mm;border-bottom:2px solid #172f5f;padding:0 0 5mm;margin:0 0 5mm}
  .report-document-brand{font-size:8pt;font-weight:800;letter-spacing:1.4px;color:#2457a7;margin-bottom:1.5mm}
  .report-document-title{font-size:20pt;line-height:1.05;font-weight:800;color:#12213d}
  .report-document-subtitle{font-size:8.5pt;color:#667085;margin-top:1.5mm}
  .report-document-meta{min-width:40mm;text-align:right;font-size:8pt;color:#667085;display:grid;gap:1mm}
  .report-document-meta strong{font-size:7pt;text-transform:uppercase;letter-spacing:.7px;color:#344054}.report-document-meta span{color:#101828}
  .report-print-document .report-document-context{display:grid!important;grid-template-columns:1fr auto;gap:5mm;background:#f5f7fb;border:1px solid #d9e1ef;border-radius:3mm;padding:3.5mm 4mm;margin-bottom:5mm}
  .report-document-context div{display:grid;gap:.8mm}.report-document-context span{font-size:7pt;text-transform:uppercase;letter-spacing:.55px;color:#667085}.report-document-context strong{font-size:8.5pt;color:#172033;font-weight:700}
  .report-print-document .row.g-3.mb-4{display:grid!important;grid-template-columns:repeat(3,1fr);gap:3mm!important;margin:0 0 5mm!important}
  .report-print-document .row.g-3.mb-4>div{width:auto!important;padding:0!important}.report-print-document .row.g-3.mb-4 .card{display:block!important;border:1px solid #d9e1ef!important;border-radius:3mm!important;padding:3mm!important;background:#fff!important}
  .report-print-document .row.g-3.mb-4 .fs-3{font-size:17pt!important;line-height:1.1}.report-print-document .row.g-3.mb-4 .small{font-size:7.5pt!important}
  .report-print-document .table-responsive,.report-print-document .card.overflow-hidden{border:1px solid #d9e1ef!important;border-radius:2.5mm!important;overflow:visible!important}
  .report-print-document table{border-collapse:separate!important;border-spacing:0!important;font-size:8pt!important;margin:0!important}
  .report-print-document thead{display:table-header-group!important}.report-print-document tr{break-inside:avoid;page-break-inside:avoid}
  .report-print-document thead th{background:#eef3f9!important;color:#263a5e!important;font-size:7pt!important;text-transform:uppercase;letter-spacing:.35px;font-weight:800!important;border-bottom:1px solid #cbd5e1!important;padding:3mm 2.5mm!important}
  .report-print-document tbody td{padding:3mm 2.5mm!important;border-bottom:1px solid #e7ecf3!important;line-height:1.35!important;color:#172033!important}
  .report-print-document tbody tr:nth-child(even) td{background:#fafbfd!important}.report-print-document tbody tr:last-child td{border-bottom:0!important}
  .report-print-document .badge{font-size:7pt!important;font-weight:700!important;border-radius:10mm!important;padding:1mm 2mm!important}
  .report-print-document .text-danger{color:#b42318!important}.report-print-document .text-success{color:#067647!important}.report-print-document .text-warning-emphasis{color:#93370d!important}.report-print-document .text-secondary{color:#667085!important}
  .report-print-document .report-document-footer{display:flex!important;justify-content:space-between;gap:10mm;margin-top:6mm;padding-top:3mm;border-top:1px solid #d9e1ef;font-size:7pt;color:#667085}
}

/* v0.84 — organization identity is mandatory in printed reports */
@media print{.report-print-document .report-document-company{font-size:13pt!important;font-weight:800!important;color:#172f5f!important;margin-bottom:1mm}.report-print-document .report-document-brand{font-size:7pt!important;letter-spacing:.7px!important;color:#667085!important}}

/* v0.85 — printed reports reflect current filters and contain document-only information */
.report-print-count-source{display:none!important}
@media print{
  .report-print-document .report-screen-summary,
  .report-print-document .report-print-count-source{display:none!important}
  .report-print-document table{border-collapse:collapse!important}
  .report-print-document thead{display:table-header-group!important}
  .report-print-document tr{break-inside:avoid!important;page-break-inside:avoid!important}
  .report-print-document th{background:#eef3f8!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* F8.6.0.86 — attendance indicators */
.indicator-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.indicator-card{border:1px solid #dfe7f1;box-shadow:0 8px 24px rgba(15,23,42,.04)}.indicator-card h2{font-size:1.08rem;margin:.15rem 0 0}.indicator-ranking{border-top:1px solid #edf1f6}.indicator-rank-row{display:grid;grid-template-columns:2rem minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.8rem 0;border-bottom:1px solid #edf1f6}.indicator-rank-row:last-child{border-bottom:0}.indicator-rank-number{display:grid;place-items:center;width:1.8rem;height:1.8rem;border-radius:999px;background:#eef4ff;color:#174ea6;font-weight:800}.indicator-person{display:flex;flex-direction:column;min-width:0}.indicator-person small{color:#6b7280}.indicator-value{text-align:right;font-size:.9rem}.indicator-period{font-size:.92rem}@media(max-width:991.98px){.indicator-grid{grid-template-columns:1fr}}@media(max-width:575.98px){.indicator-rank-row{grid-template-columns:2rem 1fr}.indicator-value{grid-column:2;text-align:left}}

/* v0.87 — independent actions for each attendance ranking */
.indicator-card-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem;padding-top:.85rem;border-top:1px solid var(--bs-border-color)}
@media(max-width:575.98px){.indicator-card-actions{display:grid;grid-template-columns:1fr 1fr}.indicator-card-actions .btn{width:100%}}
@media print{.indicator-card-actions{display:none!important}}

/* v0.88 — printed reports are clean documents, not replicas of the admin screen */
.report-simple-header{display:none}
@media print{
  @page{size:landscape;margin:14mm 12mm}
  .report-print-document .report-document-masthead,
  .report-print-document .report-document-context,
  .report-print-document .report-document-footer{display:none!important}
  .report-print-document .report-simple-header{display:block!important;border:0!important;border-bottom:1px solid #cbd5e1!important;padding:0 0 5mm!important;margin:0 0 6mm!important}
  .report-simple-company{font-size:12pt!important;font-weight:700!important;color:#111827!important;margin:0 0 1.5mm!important}
  .report-simple-title{font-size:18pt!important;line-height:1.15!important;font-weight:700!important;color:#111827!important;margin:0 0 3mm!important}
  .report-simple-details{display:flex!important;justify-content:space-between!important;gap:8mm!important;font-size:8.5pt!important;color:#475569!important}
  .report-simple-period{font-weight:600!important;color:#334155!important}
  .report-print-document .table-responsive{border:0!important;border-radius:0!important}
  .report-print-document table{font-size:8.5pt!important;border-collapse:collapse!important;width:100%!important}
  .report-print-document thead th{background:#f8fafc!important;color:#334155!important;border-top:1px solid #cbd5e1!important;border-bottom:1px solid #cbd5e1!important;padding:2.5mm 2mm!important;text-transform:none!important;letter-spacing:0!important;font-size:8pt!important}
  .report-print-document tbody td{padding:2.7mm 2mm!important;border-bottom:1px solid #e2e8f0!important;line-height:1.3!important;background:#fff!important}
  .report-print-document tbody tr:nth-child(even) td{background:#fff!important}
}

/* v0.89 — print only the explicit report payload; never the administrative page */
.report-print-source{display:block}
@media print{
  @page{size:landscape;margin:14mm 12mm}
  .report-print-document{font-family:Arial,Helvetica,sans-serif!important;color:#111827!important}
  .report-print-document .report-simple-header{display:block!important;margin:0 0 7mm!important;padding:0 0 4mm!important;border-bottom:1px solid #cbd5e1!important}
  .report-print-document .report-simple-body{display:block!important}
  .report-print-document .report-simple-body table{width:100%!important;border-collapse:collapse!important;font-size:9pt!important}
  .report-print-document .report-simple-body thead th{padding:2.5mm 2mm!important;border-bottom:1px solid #94a3b8!important;background:#f8fafc!important;color:#334155!important;text-align:left!important}
  .report-print-document .report-simple-body tbody td{padding:3mm 2mm!important;border-bottom:1px solid #e2e8f0!important;vertical-align:top!important}
}

/* v0.90 — indicator printing uses an embedded complete ranking, no fetch dependency */
.indicator-print-payload{display:none!important}

/* v0.94 — professional admin navigation: compact, task-oriented, one accordion open */
.admin-sidebar{padding:.75rem .65rem 1.5rem;background:#fff}
.admin-sidebar-label{padding:.35rem .65rem .55rem;color:#98a2b3;font-size:.64rem;font-weight:850;letter-spacing:.09em;text-transform:uppercase}
.admin-sidebar .app-menu-home{margin:0 0 .45rem;padding:.62rem .65rem;border-radius:.7rem}
.admin-sidebar .app-menu-home .app-menu-icon{width:2rem;height:2rem;border-radius:.58rem;display:grid;place-items:center;background:#f1f5f9}
.admin-sidebar .app-menu-home .app-menu-icon svg{width:1.05rem;height:1.05rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.admin-sidebar .app-menu-group{margin:.16rem 0;border-radius:.72rem}
.admin-sidebar .app-menu-group-toggle{min-height:2.7rem;padding:.5rem .62rem;border-radius:.68rem;color:#475467;font-size:.76rem;letter-spacing:.025em;text-transform:none}
.admin-sidebar .app-menu-group-toggle:hover{background:#f6f8fb;color:#1d2939}
.admin-sidebar .app-menu-group:not(.is-collapsed)>.app-menu-group-toggle{background:#f2f6fc;color:#173b70}
.app-menu-group-label{display:flex;align-items:center;gap:.62rem;min-width:0}
.app-menu-group-icon{width:1.8rem;height:1.8rem;display:grid;place-items:center;border-radius:.5rem;background:#fff;border:1px solid #e6eaf0;color:#52677f;box-shadow:0 1px 2px rgba(16,24,40,.03)}
.app-menu-group-icon svg{width:1rem!important;height:1rem!important;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transform:none!important}
.app-menu-chevron{width:.9rem!important;height:.9rem!important;flex:0 0 auto}
.admin-sidebar .app-menu-group-links{gap:.04rem;padding:.2rem 0 .35rem 2.42rem;position:relative}
.admin-sidebar .app-menu-group-links:before{content:"";position:absolute;left:1.5rem;top:.2rem;bottom:.45rem;width:1px;background:#e5eaf1}
.admin-sidebar .app-menu-link{position:relative;min-height:2.55rem;padding:.5rem .58rem;gap:.52rem;border-radius:.6rem}
.admin-sidebar .app-menu-group-links .app-menu-link:before{content:"";position:absolute;left:-.95rem;top:50%;width:.42rem;height:1px;background:#e5eaf1}
.admin-sidebar .app-menu-link strong{font-size:.84rem}
.admin-sidebar .app-menu-link small{font-size:.69rem;color:#7a8699;line-height:1.22}
.admin-sidebar .app-menu-group-links .app-menu-icon{display:none}
.admin-sidebar .app-menu-link.active{background:#eaf2ff;border-color:#cddfff;color:#174ea6}
.admin-sidebar .app-menu-link.active:after{content:"";position:absolute;left:-.12rem;top:.48rem;bottom:.48rem;width:3px;border-radius:4px;background:#2563eb}
.admin-sidebar .app-menu-link.active small{color:#526f9a}
@media (min-width:992px){.app-shell{grid-template-columns:17rem minmax(0,1fr)}}

/* v0.96 — mobile session/reconnection states */
.employee-app-body .connection-status,.employee-app-body .location-status{width:100%;max-width:100%;min-width:0;box-sizing:border-box;overflow-wrap:anywhere;word-break:normal}
.employee-app-body .connection-status>span:last-child,.employee-app-body .location-status>span{min-width:0}
.employee-app-body [data-attendance-feedback]{width:100%;min-width:0}
@media(max-width:480px){.employee-app-body .connection-status,.employee-app-body .location-status{padding:.8rem .9rem;border-radius:.85rem}.employee-app-body .connection-status{display:grid;grid-template-columns:auto minmax(0,1fr)}.employee-app-body .connection-status-icon{align-self:start}}

/* Institutional device pairing — focused first-use flow */
.device-pairing-body{background:radial-gradient(circle at 50% 0,#edf5ff 0,#f6f8fc 38%,#f4f7fb 100%)}
.device-pairing-shell{width:min(560px,100%)}
.device-pairing-brand{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:20px;color:#0f2740;text-align:left}
.device-pairing-brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:#1769e0;color:#fff;font-weight:800;box-shadow:0 8px 18px rgba(23,105,224,.22)}
.device-pairing-brand strong,.device-pairing-brand small{display:block}.device-pairing-brand small{margin-top:1px;color:#64748b;font-size:.75rem;font-weight:500}
.device-pairing-card{padding:34px;border-radius:22px;box-shadow:0 22px 60px rgba(15,39,64,.10)}
.device-pairing-card h1{font-size:1.9rem;line-height:1.15;margin-bottom:10px;color:#0f2740}.device-pairing-lead{color:#52657a;line-height:1.55;margin-bottom:22px}
.device-pairing-icon,.device-pairing-result-icon{display:grid;place-items:center;width:48px;height:48px;margin-bottom:18px;border-radius:14px;background:#eaf3ff;color:#1769e0;font-size:1.5rem;font-weight:800}
.device-pairing-notice{display:flex;flex-direction:column;gap:3px;padding:13px 15px;margin:0 0 22px;border:1px solid #dbe7f5;border-radius:13px;background:#f8fbff;color:#334e68;font-size:.88rem;line-height:1.45}.device-pairing-notice span{color:#64748b}
.device-pair-code-input{height:54px;font-size:1.4rem;font-weight:750;letter-spacing:.16em;text-align:center;border-radius:12px}.device-pair-code-input:focus{box-shadow:0 0 0 .22rem rgba(23,105,224,.14)}
.device-pairing-primary{display:flex;align-items:center;justify-content:center;width:100%;min-height:50px;margin-top:22px;border-radius:12px;font-weight:750;font-size:1rem}.device-pairing-primary:disabled{cursor:wait;opacity:.72}
.device-pairing-expiry{margin:14px 0 0;text-align:center;color:#718096;font-size:.82rem}.device-pairing-result{text-align:center}.device-pairing-result .page-kicker{text-align:center}.device-pairing-result-icon{margin-left:auto;margin-right:auto}.device-pairing-result-icon.is-success{background:#e7f8ee;color:#177245}.device-pairing-result-icon.is-error{background:#fff0f0;color:#b42318}.device-pairing-message{padding:13px 15px;margin:18px 0;border-radius:12px;font-weight:650}.device-pairing-message.is-success{background:#edf9f1;color:#176b42}.device-pairing-message.is-error{background:#fff1f1;color:#a61b1b}
@media(max-width:600px){.device-pairing-body{padding:14px}.device-pairing-card{padding:24px 20px}.device-pairing-card h1{font-size:1.65rem}.device-pairing-notice{font-size:.84rem}}


/* v1.15 institutional employee contexts: shared workstation vs. tablet terminal. */
.institutional-context-banner{display:flex;align-items:center;gap:.75rem;margin:0 0 .9rem;padding:.8rem .95rem;border:1px solid #24577a;border-radius:.85rem;background:#0e2639;color:#eaf6ff}
.institutional-context-banner>span:nth-child(2){display:flex;flex-direction:column;min-width:0}.institutional-context-banner strong{font-size:.92rem}.institutional-context-banner small{margin-top:.1rem;color:#a9c4d8;font-size:.8rem}
.institutional-context-icon{display:grid;place-items:center;flex:0 0 1.8rem;width:1.8rem;height:1.8rem;border-radius:999px;background:#123f3b;color:#55e6a5;font-weight:900}
body[data-institutional-mode="tablet"] .employee-topbar .app-menu-toggle,body[data-institutional-mode="tablet"] .employee-sidebar,body[data-institutional-mode="tablet"] .employee-menu-backdrop{display:none!important}
body[data-institutional-mode="tablet"] .app-shell{grid-template-columns:1fr!important}body[data-institutional-mode="tablet"] .app-main{max-width:620px;width:100%;margin:0 auto;padding-top:1.6rem}
body[data-institutional-mode="tablet"] .employee-intro-help{display:none}body[data-institutional-mode="tablet"] .institutional-context-banner{justify-content:flex-start;flex-wrap:wrap}
body[data-institutional-mode="tablet"] .terminal-logout{margin:0 0 0 auto;padding:0;border:0}body[data-institutional-mode="tablet"] .terminal-logout .app-logout-button{min-height:2.55rem!important;width:auto;padding:.45rem .7rem!important;background:transparent;border:1px solid #49657c;color:#fff;font-size:.82rem}
body[data-institutional-mode="tablet"] .employee-mark-reminder{display:none}.terminal-return-note{display:block;margin-top:.35rem;font-size:.8rem;opacity:.8}

/* v1.16 institutional laptop/PC: focused desktop marking workspace. */
body[data-institutional-mode="workstation"]{background:#f5f8fc;color:#10233f}
body[data-institutional-mode="workstation"] .employee-topbar{background:#102f55;border-bottom:0;box-shadow:0 8px 24px rgba(15,39,64,.10)}
body[data-institutional-mode="workstation"] .employee-topbar .container-fluid{max-width:1500px;min-height:86px;padding-left:clamp(24px,3vw,52px)!important;padding-right:clamp(24px,3vw,52px)!important}
body[data-institutional-mode="workstation"] .employee-topbar .app-menu-toggle,body[data-institutional-mode="workstation"] .employee-sidebar,body[data-institutional-mode="workstation"] .employee-menu-backdrop{display:none!important}
body[data-institutional-mode="workstation"] .app-shell{display:block!important;min-height:calc(100vh - 86px)}
body[data-institutional-mode="workstation"] .app-main{width:min(760px,calc(100% - 40px));max-width:none;margin:0 auto;padding:54px 0 70px}
body[data-institutional-mode="workstation"] .employee-portal{max-width:none!important;margin:0!important}
body[data-institutional-mode="workstation"] .employee-intro{text-align:center;margin:0 0 28px}
body[data-institutional-mode="workstation"] .employee-intro h1{font-size:clamp(2rem,3vw,3rem);letter-spacing:-.035em;color:#10233f;margin-bottom:.35rem}
body[data-institutional-mode="workstation"] .employee-intro-help{color:#6b7f99;font-size:1.05rem}
body[data-institutional-mode="workstation"] .employee-journey-card{border:1px solid #dbe5f0!important;border-radius:20px!important;background:#fff!important;box-shadow:0 16px 42px rgba(26,54,93,.08)!important}
body[data-institutional-mode="workstation"] .journey-card-body{padding:30px!important}
body[data-institutional-mode="workstation"] .journey-card-header{justify-content:center;text-align:center}
body[data-institutional-mode="workstation"] .journey-card-header .journey-eyebrow{display:none}
body[data-institutional-mode="workstation"] .journey-card-header h2{font-size:1.55rem!important}
body[data-institutional-mode="workstation"] .journey-card-header p{color:#6b7f99!important}
body[data-institutional-mode="workstation"] .journey-state-mark{margin-left:14px}
body[data-institutional-mode="workstation"] [data-journey-summary]{text-align:center}
body[data-institutional-mode="workstation"] .attendance-actions{margin-top:22px}
body[data-institutional-mode="workstation"] .attendance-primary-action{width:100%;min-height:58px;border-radius:13px;font-size:1.12rem;font-weight:800}
body[data-institutional-mode="workstation"] .employee-mark-reminder{margin-top:18px!important;background:#f3f8ff!important;border-color:#d9e8fa!important;color:#35516f!important}
.workstation-top-context{display:flex;align-items:center;gap:28px;color:#fff}.workstation-user,.workstation-device{display:flex;flex-direction:column;line-height:1.15}.workstation-user small,.workstation-device small{margin-top:4px;color:#c7d7e8;font-size:.75rem}.workstation-device{position:relative;padding-left:20px}.workstation-device-dot{position:absolute;left:0;top:5px;width:9px;height:9px;border-radius:50%;background:#35d07f;box-shadow:0 0 0 4px rgba(53,208,127,.12)}
body[data-institutional-mode="workstation"] .employee-menu-logout.workstation-logout{display:block!important;margin:0 0 0 8px;padding:0;border:0}.workstation-logout .app-logout-button{width:auto!important;min-height:44px!important;padding:.55rem .9rem!important;border:1px solid #7ba0c4!important;border-radius:10px!important;background:transparent!important;color:#fff!important}
.workstation-quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:22px}.workstation-action{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:13px;padding:17px 18px;border:1px solid #dbe5f0;border-radius:15px;background:#fff;color:#10233f;text-decoration:none;box-shadow:0 8px 24px rgba(26,54,93,.05);transition:transform .15s ease,box-shadow .15s ease}.workstation-action:hover{color:#10233f;transform:translateY(-1px);box-shadow:0 12px 28px rgba(26,54,93,.09)}.workstation-action-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:11px;background:#eef5ff;color:#1769e0;font-weight:900;font-size:1.1rem}.workstation-action strong,.workstation-action small{display:block}.workstation-action small{margin-top:3px;color:#6b7f99;font-size:.8rem;line-height:1.3}.workstation-action-arrow{font-size:1.7rem;color:#6f8cad}.workstation-unread{display:grid;place-items:center;width:24px;height:24px;border-radius:999px;background:#e73546;color:#fff;font-size:.75rem;font-weight:800}
@media(max-width:850px){body[data-institutional-mode="workstation"] .employee-topbar .container-fluid{min-height:74px}.workstation-top-context{gap:12px}.workstation-user{display:none}body[data-institutional-mode="workstation"] .app-main{padding-top:34px}.workstation-quick-actions{grid-template-columns:1fr}}
@media(max-width:600px){.workstation-device{display:none}.workstation-logout .app-logout-button span{display:none}body[data-institutional-mode="workstation"] .app-main{width:min(100% - 28px,760px)}body[data-institutional-mode="workstation"] .journey-card-body{padding:22px!important}}

/* v1.19 workstation visual refinement: match approved clean laptop mockup. */
body[data-institutional-mode="workstation"]{background:#f5f8fc;color:#10233f}
body[data-institutional-mode="workstation"] .employee-topbar{background:#173d68;box-shadow:none}
body[data-institutional-mode="workstation"] .employee-topbar .container-fluid{max-width:1280px;min-height:72px;padding:0 28px!important}
body[data-institutional-mode="workstation"] .app-brand{gap:10px}
body[data-institutional-mode="workstation"] .app-brand-mark{width:42px;height:42px}
body[data-institutional-mode="workstation"] .app-brand strong{font-size:.95rem}
body[data-institutional-mode="workstation"] .app-brand small{font-size:.72rem}
body[data-institutional-mode="workstation"] .app-shell{min-height:calc(100vh - 72px);background:#f8fbff}
body[data-institutional-mode="workstation"] .app-main{width:min(900px,calc(100% - 48px));margin:0 auto;padding:32px 0 46px}
body[data-institutional-mode="workstation"] .employee-intro{margin:0 0 18px;text-align:center}
body[data-institutional-mode="workstation"] .employee-intro h1{margin:0 0 3px;color:#0c2340;font-size:2.15rem;line-height:1.08;font-weight:800;letter-spacing:-.035em}
body[data-institutional-mode="workstation"] .employee-intro-help{margin:0;color:#70829a;font-size:.92rem}
body[data-institutional-mode="workstation"] .employee-journey-card{width:min(500px,100%);margin:0 auto!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
body[data-institutional-mode="workstation"] .journey-card-body{padding:0!important}
body[data-institutional-mode="workstation"] .journey-card-header{display:none!important}
body[data-institutional-mode="workstation"] .journey-summary-card{border-radius:10px!important}
body[data-institutional-mode="workstation"] .journey-summary-entered,body[data-institutional-mode="workstation"] .journey-summary-completed{padding:18px 16px!important;background:#f3fbf7!important;border:1px solid #bdebd2!important;box-shadow:0 8px 22px rgba(31,111,76,.04)}
body[data-institutional-mode="workstation"] .journey-confirm-icon{width:42px!important;height:42px!important;margin-bottom:7px!important;background:#d8f6e4!important;color:#159653!important;font-size:1.55rem!important}
body[data-institutional-mode="workstation"] .journey-confirm-title{color:#098746!important;font-size:1rem!important}
body[data-institutional-mode="workstation"] .journey-confirm-time{margin:3px 0!important;color:#0b2342!important;font-size:2rem!important;font-weight:850}
body[data-institutional-mode="workstation"] .journey-confirm-date{margin-top:2px!important;color:#60758f!important;font-size:.84rem!important}
body[data-institutional-mode="workstation"] .journey-next-hint{margin-top:13px!important;padding:10px 14px!important;border:0!important;border-radius:8px!important;background:#edf5ff!important;color:#425b78!important;font-size:.82rem!important}
body[data-institutional-mode="workstation"] .journey-next-hint-icon{width:25px!important;height:25px!important;border:2px solid #2f80ed!important;color:#2f80ed!important;background:#fff!important;font-size:.82rem!important}
body[data-institutional-mode="workstation"] .attendance-actions{margin-top:13px!important}
body[data-institutional-mode="workstation"] .attendance-primary-action{min-height:50px!important;border-radius:8px!important;font-size:1rem!important;font-weight:800!important;box-shadow:0 8px 18px rgba(239,52,65,.16)}
body[data-institutional-mode="workstation"] .employee-mark-reminder{display:none!important}
.workstation-top-context{gap:20px;margin-left:auto;color:#fff}
.workstation-user,.workstation-device{min-width:112px;line-height:1.08}
.workstation-user strong,.workstation-device strong{font-size:.78rem}
.workstation-user small,.workstation-device small{margin-top:3px;color:#d0dceb;font-size:.65rem}
.workstation-device{padding-left:18px;border-left:1px solid rgba(255,255,255,.28)}
.workstation-device-dot{left:auto;right:-13px;top:3px;width:7px;height:7px;box-shadow:0 0 0 3px rgba(53,208,127,.13)}
body[data-institutional-mode="workstation"] .employee-menu-logout.workstation-logout{margin-left:14px!important}
.workstation-logout .app-logout-button{display:flex!important;align-items:center!important;gap:7px!important;min-height:38px!important;padding:6px 13px!important;border-color:rgba(255,255,255,.45)!important;border-radius:8px!important;font-size:.72rem!important;line-height:1!important}
.workstation-logout .app-logout-button span{display:inline!important;white-space:nowrap}
.workstation-quick-actions{width:min(570px,100%);margin:20px auto 0;padding-top:16px;border-top:1px solid #e2eaf3;grid-template-columns:1fr 1fr;gap:14px}
.workstation-action{min-height:72px;padding:12px 14px;grid-template-columns:38px minmax(0,1fr) auto;gap:11px;border:1px solid #e0e8f2;border-radius:9px;box-shadow:0 6px 18px rgba(26,54,93,.04)}
.workstation-action-icon{width:38px;height:38px;border-radius:8px;background:#eef5ff;color:#1769e0;font-size:1rem}
.workstation-action strong{font-size:.86rem}.workstation-action small{margin-top:2px;font-size:.7rem;line-height:1.25}.workstation-action-arrow{font-size:1.35rem}.workstation-unread{width:20px;height:20px;font-size:.68rem}
@media(max-width:850px){body[data-institutional-mode="workstation"] .employee-topbar .container-fluid{min-height:68px;padding:0 18px!important}body[data-institutional-mode="workstation"] .app-main{width:min(100% - 30px,900px);padding-top:28px}.workstation-top-context{gap:10px}.workstation-device{border-left:0}.workstation-quick-actions{grid-template-columns:1fr}}

/* v1.20 approved laptop workstation: dedicated light desktop composition. */
body.employee-app-body[data-institutional-mode="workstation"]{margin:0!important;background:#f4f7fb!important;color:#0b2342!important;min-height:100vh}
body.employee-app-body[data-institutional-mode="workstation"] .employee-topbar{position:relative!important;z-index:20!important;width:100%!important;background:#173d68!important;border:0!important;box-shadow:0 2px 10px rgba(16,47,85,.08)!important}
body.employee-app-body[data-institutional-mode="workstation"] .employee-topbar .container-fluid{width:min(1180px,calc(100% - 40px))!important;max-width:1180px!important;min-height:72px!important;margin:0 auto!important;padding:0!important;gap:22px!important}
body.employee-app-body[data-institutional-mode="workstation"] .app-brand{flex:0 0 auto!important;color:#fff!important;text-decoration:none!important}
body.employee-app-body[data-institutional-mode="workstation"] .app-brand strong{color:#fff!important;font-size:.98rem!important}
body.employee-app-body[data-institutional-mode="workstation"] .app-brand small{color:#d5e0ec!important;font-size:.72rem!important}
body.employee-app-body[data-institutional-mode="workstation"] .app-shell{display:block!important;width:100%!important;min-height:calc(100vh - 72px)!important;background:#f4f7fb!important}
body.employee-app-body[data-institutional-mode="workstation"] .app-main{display:block!important;width:100%!important;max-width:none!important;min-height:calc(100vh - 72px)!important;margin:0!important;padding:0!important;background:#f4f7fb!important;color:#0b2342!important}
body.employee-app-body[data-institutional-mode="workstation"] .employee-portal{width:min(820px,calc(100% - 40px))!important;max-width:820px!important;margin:0 auto!important;padding:42px 0 56px!important;background:transparent!important;color:#0b2342!important}
body.employee-app-body[data-institutional-mode="workstation"] .employee-intro{margin:0 0 20px!important;text-align:center!important}
body.employee-app-body[data-institutional-mode="workstation"] .employee-intro h1{display:block!important;margin:0 0 5px!important;color:#0b2342!important;font-size:2.2rem!important;font-weight:850!important;line-height:1.08!important;letter-spacing:-.035em!important;opacity:1!important}
body.employee-app-body[data-institutional-mode="workstation"] .employee-intro-help{margin:0!important;color:#6b7f99!important;font-size:.95rem!important}
body.employee-app-body[data-institutional-mode="workstation"] [data-communication-live]{display:none!important}
body.employee-app-body[data-institutional-mode="workstation"] .employee-journey-card{display:block!important;width:min(470px,100%)!important;max-width:470px!important;margin:0 auto!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:#0b2342!important}
body.employee-app-body[data-institutional-mode="workstation"] .journey-card-body{padding:0!important;background:transparent!important}
body.employee-app-body[data-institutional-mode="workstation"] .journey-card-header{display:none!important}
body.employee-app-body[data-institutional-mode="workstation"] .journey-summary-card{margin:0!important;border-radius:9px!important}
body.employee-app-body[data-institutional-mode="workstation"] .journey-summary-entered,body.employee-app-body[data-institutional-mode="workstation"] .journey-summary-completed{padding:18px 18px!important;background:#f2fbf7!important;border:1px solid #bfead2!important;box-shadow:0 5px 16px rgba(22,105,70,.035)!important;color:#0b2342!important}
body.employee-app-body[data-institutional-mode="workstation"] .journey-confirm-icon{width:42px!important;height:42px!important;margin:0 auto 7px!important;background:#d9f6e5!important;color:#159653!important}
body.employee-app-body[data-institutional-mode="workstation"] .journey-confirm-title{color:#0b8b49!important;font-size:1rem!important;font-weight:800!important}
body.employee-app-body[data-institutional-mode="workstation"] .journey-confirm-time{margin:3px 0!important;color:#071d3a!important;font-size:2rem!important;font-weight:850!important;line-height:1.05!important}
body.employee-app-body[data-institutional-mode="workstation"] .journey-confirm-date{color:#657b96!important;font-size:.82rem!important}
body.employee-app-body[data-institutional-mode="workstation"] .journey-next-hint{margin:12px 0 0!important;padding:10px 13px!important;border:0!important;border-radius:8px!important;background:#eaf3ff!important;color:#405a78!important;box-shadow:none!important;font-size:.8rem!important}
body.employee-app-body[data-institutional-mode="workstation"] .attendance-actions{margin:12px 0 0!important}
body.employee-app-body[data-institutional-mode="workstation"] .attendance-primary-action{width:100%!important;min-height:48px!important;border-radius:8px!important;font-size:1rem!important;font-weight:800!important;box-shadow:0 7px 16px rgba(239,52,65,.15)!important}
body.employee-app-body[data-institutional-mode="workstation"] .employee-mark-reminder{display:none!important}
body.employee-app-body[data-institutional-mode="workstation"] .workstation-quick-actions{display:grid!important;width:min(520px,100%)!important;max-width:520px!important;margin:20px auto 0!important;padding:16px 0 0!important;border-top:1px solid #dce5ef!important;grid-template-columns:1fr 1fr!important;gap:14px!important;background:transparent!important}
body.employee-app-body[data-institutional-mode="workstation"] .workstation-action{position:relative!important;display:grid!important;grid-template-columns:38px minmax(0,1fr) 18px!important;align-items:center!important;min-height:76px!important;padding:12px 13px!important;border:1px solid #dfe7f0!important;border-radius:9px!important;background:#fff!important;color:#0b2342!important;box-shadow:0 5px 16px rgba(26,54,93,.04)!important;text-decoration:none!important}
body.employee-app-body[data-institutional-mode="workstation"] .workstation-action-icon{width:38px!important;height:38px!important;border-radius:8px!important;background:#edf4ff!important;color:#1769e0!important}
body.employee-app-body[data-institutional-mode="workstation"] .workstation-action strong{color:#0b2342!important;font-size:.84rem!important}
body.employee-app-body[data-institutional-mode="workstation"] .workstation-action small{color:#71839a!important;font-size:.68rem!important;line-height:1.25!important}
body.employee-app-body[data-institutional-mode="workstation"] .workstation-action-arrow{justify-self:end!important;color:#6f88a6!important;font-size:1.3rem!important;line-height:1!important}
body.employee-app-body[data-institutional-mode="workstation"] .workstation-unread{position:absolute!important;right:12px!important;top:10px!important;width:19px!important;height:19px!important;background:#e73546!important;color:#fff!important;font-size:.66rem!important}
body.employee-app-body[data-institutional-mode="workstation"] .workstation-top-context{display:flex!important;align-items:center!important;gap:22px!important;margin-left:auto!important;color:#fff!important;white-space:nowrap!important}
body.employee-app-body[data-institutional-mode="workstation"] .workstation-user,body.employee-app-body[data-institutional-mode="workstation"] .workstation-device{display:flex!important;min-width:0!important;flex-direction:column!important;line-height:1.1!important}
body.employee-app-body[data-institutional-mode="workstation"] .workstation-user strong,body.employee-app-body[data-institutional-mode="workstation"] .workstation-device strong{color:#fff!important;font-size:.76rem!important;font-weight:750!important}
body.employee-app-body[data-institutional-mode="workstation"] .workstation-user small,body.employee-app-body[data-institutional-mode="workstation"] .workstation-device small{margin-top:3px!important;color:#d2deeb!important;font-size:.63rem!important}
body.employee-app-body[data-institutional-mode="workstation"] .workstation-device{position:relative!important;padding-left:22px!important;border-left:1px solid rgba(255,255,255,.3)!important}
body.employee-app-body[data-institutional-mode="workstation"] .workstation-device-dot{position:absolute!important;left:10px!important;right:auto!important;top:4px!important;width:7px!important;height:7px!important;background:#35d07f!important}
body.employee-app-body[data-institutional-mode="workstation"] .employee-menu-logout.workstation-logout{display:block!important;flex:0 0 auto!important;margin:0!important;padding:0!important;border:0!important}
body.employee-app-body[data-institutional-mode="workstation"] .workstation-logout .app-logout-button{display:flex!important;width:auto!important;min-height:38px!important;align-items:center!important;gap:7px!important;margin:0!important;padding:6px 13px!important;border:1px solid rgba(255,255,255,.5)!important;border-radius:8px!important;background:transparent!important;color:#fff!important;font-size:.72rem!important;line-height:1!important}
body.employee-app-body[data-institutional-mode="workstation"] .workstation-logout .app-logout-button span{display:inline!important;color:#fff!important;white-space:nowrap!important}
@media(max-width:760px){body.employee-app-body[data-institutional-mode="workstation"] .employee-topbar .container-fluid{width:calc(100% - 28px)!important;gap:10px!important}body.employee-app-body[data-institutional-mode="workstation"] .workstation-user{display:none!important}body.employee-app-body[data-institutional-mode="workstation"] .workstation-device{border-left:0!important;padding-left:14px!important}body.employee-app-body[data-institutional-mode="workstation"] .workstation-device-dot{left:0!important}body.employee-app-body[data-institutional-mode="workstation"] .employee-portal{width:calc(100% - 28px)!important;padding-top:30px!important}body.employee-app-body[data-institutional-mode="workstation"] .workstation-quick-actions{grid-template-columns:1fr!important}}

/* v1.22 workstation shell is global across every employee route. */
body.employee-app-body[data-institutional-mode="workstation"] .app-menu-toggle,
body.employee-app-body[data-institutional-mode="workstation"] .employee-sidebar,
body.employee-app-body[data-institutional-mode="workstation"] .employee-menu-backdrop{display:none!important}
body.employee-app-body[data-institutional-mode="workstation"] .app-shell{display:block!important;min-height:calc(100vh - 68px)!important;background:#f5f8fc!important}
body.employee-app-body[data-institutional-mode="workstation"] .app-main{width:min(1040px,calc(100% - 48px))!important;max-width:none!important;margin:0 auto!important;padding:38px 0 56px!important;background:transparent!important;color:#0b2342!important}
body.employee-app-body[data-institutional-mode="workstation"] .app-main .page-heading h1{color:#0b2342!important}
body.employee-app-body[data-institutional-mode="workstation"] .app-main .page-heading p,
body.employee-app-body[data-institutional-mode="workstation"] .app-main .text-secondary{color:#657b96!important}
body.employee-app-body[data-institutional-mode="workstation"] .app-main .card,
body.employee-app-body[data-institutional-mode="workstation"] .app-main .list-group-item{background:#fff!important;color:#0b2342!important;border-color:#dfe7f0!important;box-shadow:0 5px 16px rgba(26,54,93,.04)!important}
body.employee-app-body[data-institutional-mode="workstation"] .app-main a:not(.btn){color:#155eef}
body.employee-app-body[data-institutional-mode="workstation"] .app-main .employee-request-option,
body.employee-app-body[data-institutional-mode="workstation"] .app-main .employee-followup-card{background:#fff!important;color:#0b2342!important;border-color:#dfe7f0!important}

/* v1.23 no-flash workstation navigation: a previously validated, tab-scoped
   shell hint is applied in <head> before CSS/first paint. It only affects
   presentation; the authoritative device API still validates the device. */
html.employee-workstation-prepaint body.employee-app-body{background:#f5f8fc!important;color:#0b2342!important}
html.employee-workstation-prepaint body.employee-app-body .app-menu-toggle,
html.employee-workstation-prepaint body.employee-app-body .employee-sidebar,
html.employee-workstation-prepaint body.employee-app-body .app-menu-backdrop{display:none!important}
html.employee-workstation-prepaint body.employee-app-body .employee-topbar{background:#173d68!important;border:0!important;box-shadow:0 2px 10px rgba(16,47,85,.08)!important}
html.employee-workstation-prepaint body.employee-app-body .app-shell{display:block!important;min-height:calc(100vh - 68px)!important;background:#f5f8fc!important}
html.employee-workstation-prepaint body.employee-app-body .app-main{width:min(1040px,calc(100% - 48px))!important;max-width:none!important;margin:0 auto!important;padding:38px 0 56px!important;background:transparent!important;color:#0b2342!important}


/* v1.27 hard no-flash gate: when an institutional identity exists but PHP has
   not yet resolved the shell, do not paint the PWA markup at all. */
html.employee-shell-resolving body.employee-app-body{visibility:hidden!important}


/* v1.29 workstation header polish: keep device identity legible and separated. */
body.employee-app-body[data-institutional-mode="workstation"] .workstation-top-context{gap:24px!important}
body.employee-app-body[data-institutional-mode="workstation"] .workstation-user{padding-right:22px!important;border-right:1px solid rgba(255,255,255,.24)!important}
body.employee-app-body[data-institutional-mode="workstation"] .workstation-device{display:grid!important;grid-template-columns:10px auto!important;column-gap:9px!important;align-items:center!important;padding-left:0!important;border-left:0!important}
body.employee-app-body[data-institutional-mode="workstation"] .workstation-device-dot{position:static!important;grid-column:1!important;grid-row:1!important;width:7px!important;height:7px!important}
body.employee-app-body[data-institutional-mode="workstation"] .workstation-device>span:last-child{grid-column:2!important;display:flex!important;flex-direction:column!important;gap:3px!important;min-width:0!important}
body.employee-app-body[data-institutional-mode="workstation"] .workstation-device strong{display:block!important;line-height:1.15!important}
body.employee-app-body[data-institutional-mode="workstation"] .workstation-device small{display:block!important;margin-top:0!important;line-height:1.15!important}

/* v1.36 workstation completed journey: compact final-state composition only.
   Attendance/domain behavior is intentionally untouched. */
body.employee-app-body[data-institutional-mode="workstation"] [data-journey-visual-state="completed"] .journey-card-body{
  display:block!important;
  min-height:0!important;
  padding:0!important;
  background:transparent!important;
}
body.employee-app-body[data-institutional-mode="workstation"] [data-journey-visual-state="completed"] .journey-summary-completed{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:20px 20px 18px!important;
  border-radius:9px!important;
}
body.employee-app-body[data-institutional-mode="workstation"] [data-journey-visual-state="completed"] .journey-confirm-icon{
  width:42px!important;height:42px!important;margin:0 auto 7px!important;font-size:1.55rem!important;
}
body.employee-app-body[data-institutional-mode="workstation"] [data-journey-visual-state="completed"] .journey-confirm-title{
  color:#0b8b49!important;font-size:1rem!important;font-weight:800!important;
}
body.employee-app-body[data-institutional-mode="workstation"] [data-journey-visual-state="completed"] .journey-completed-times{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  width:min(300px,100%)!important;
  max-width:300px!important;
  margin:12px auto 7px!important;
  padding:0!important;
  column-gap:0!important;
}
body.employee-app-body[data-institutional-mode="workstation"] [data-journey-visual-state="completed"] .journey-completed-times span{
  display:flex!important;flex-direction:column!important;gap:2px!important;padding:0 14px!important;
  color:#657b96!important;font-size:.78rem!important;text-align:center!important;
}
body.employee-app-body[data-institutional-mode="workstation"] [data-journey-visual-state="completed"] .journey-completed-times span+span{
  border-left:1px solid #b8c8d8!important;
}
body.employee-app-body[data-institutional-mode="workstation"] [data-journey-visual-state="completed"] .journey-completed-times strong{
  color:#0b2342!important;font-size:1.65rem!important;font-weight:850!important;line-height:1.1!important;
}
body.employee-app-body[data-institutional-mode="workstation"] [data-journey-visual-state="completed"] .journey-confirm-date{
  margin-top:2px!important;color:#657b96!important;font-size:.82rem!important;
}
body.employee-app-body[data-institutional-mode="workstation"] [data-journey-visual-state="completed"] .location-readiness,
body.employee-app-body[data-institutional-mode="workstation"] [data-journey-visual-state="completed"] .attendance-actions,
body.employee-app-body[data-institutional-mode="workstation"] [data-journey-visual-state="completed"] .attendance-feedback{
  margin:0!important;min-height:0!important;
}

/* v1.40 CoreSync first-run install gate: installation is the primary mobile path. */
.coresync-accent,.pwa-install-wordmark span{color:#12a9c7}
.pwa-install-gate[hidden]{display:none!important}
.pwa-install-gate{display:none;position:fixed;inset:0;z-index:10000;place-items:center;padding:24px;background:linear-gradient(160deg,#f5fbff 0%,#eef6fb 100%)}
.pwa-install-panel{width:min(430px,100%);text-align:center;padding:34px 26px 28px;border:1px solid #dbe7f0;border-radius:24px;background:#fff;box-shadow:0 24px 70px rgba(8,35,70,.16)}
.pwa-install-logo{width:88px;height:88px;border-radius:22px;display:block;margin:0 auto 12px}
.pwa-install-wordmark{color:#082346;font-size:2rem;font-weight:850;letter-spacing:-.045em;line-height:1}
.pwa-install-tagline{margin:8px 0 30px;color:#60748a;font-size:.93rem}
.pwa-install-panel h1{margin:0 auto 10px;max-width:330px;color:#102b4c;font-size:1.5rem;font-weight:800;line-height:1.2}
.pwa-install-copy{margin:0 auto 24px;max-width:330px;color:#61758b;line-height:1.55}
.pwa-install-primary{width:100%;min-height:52px;font-weight:750;border-radius:12px}
.pwa-install-ios{margin:18px 0 0;padding:14px;border-radius:12px;background:#f1f7fb;color:#334f6d;font-size:.9rem;line-height:1.45}
.pwa-install-browser{margin-top:18px;border:0;background:transparent;color:#657b91;text-decoration:underline;text-underline-offset:3px;font-size:.88rem}
body.pwa-install-gated{overflow:hidden}
body.pwa-install-gated [data-login-shell]{visibility:hidden}
@media (max-width:768px),(pointer:coarse){.pwa-install-gate:not([hidden]){display:grid}}
@media (max-width:480px){.pwa-install-gate{padding:18px}.pwa-install-panel{padding:30px 22px 24px;border-radius:20px}.pwa-install-logo{width:82px;height:82px}.pwa-install-wordmark{font-size:1.9rem}}

.pwa-install-success{width:58px;height:58px;margin:8px auto 14px;border-radius:50%;display:grid;place-items:center;background:#dcfce7;color:#079447;font-size:2rem;font-weight:900}


/* CoreSync UIX v1.54 — mobile GPS clarity + completed journey card. */
.employee-app-body .location-status{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:.75rem;
  align-items:start;
  overflow-wrap:normal;
  word-break:normal;
  white-space:normal;
}
.employee-app-body .location-status::before{display:none}
.employee-app-body .location-ready-copy{display:flex;min-width:0;flex-direction:column;gap:.2rem}
.employee-app-body .location-ready-copy strong{color:inherit;font-size:.98rem;font-weight:850;line-height:1.3}
.employee-app-body .location-ready-copy span{min-width:0;font-size:.9rem;font-weight:550;line-height:1.45;overflow-wrap:break-word}
.employee-app-body .location-retry-action{
  width:100%;min-height:2.85rem;margin:0;border:1px solid #9b7729;border-radius:.75rem;
  background:#211b10;color:#ffe2a4;font-weight:800;
}
.employee-app-body .location-retry-action:hover,.employee-app-body .location-retry-action:focus{background:#2b2211;color:#fff1c8;border-color:#c69b3a}
.employee-app-body [data-location-resolving="1"] [data-attendance-type]:disabled{opacity:.58;cursor:wait}

/* Keep Entry and Exit together on mobile, but without the old center divider. */
.employee-app-body [data-journey-visual-state="completed"] .journey-completed-times{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:1rem;
  width:100%;
  max-width:25rem;
  margin:1.05rem 0 .45rem;
  padding:0;
}
.employee-app-body [data-journey-visual-state="completed"] .journey-completed-times span{
  display:flex;
  min-width:0;
  flex-direction:column;
  align-items:center;
  gap:.3rem;
  padding:.35rem .25rem;
  border:0!important;
  background:transparent;
}
.employee-app-body [data-journey-visual-state="completed"] .journey-completed-times span+span{border-left:0!important}
.employee-app-body [data-journey-visual-state="completed"] .journey-completed-times strong{
  max-width:100%;font-size:clamp(1.08rem,5vw,1.48rem);line-height:1.15;white-space:nowrap;letter-spacing:-.025em;
}
@media(max-width:360px){
  .employee-app-body [data-journey-visual-state="completed"] .journey-completed-times{gap:.55rem}
  .employee-app-body [data-journey-visual-state="completed"] .journey-completed-times strong{font-size:1.04rem}
}

/* v1.65: explicit employee guidance when today's marking window is closed. */
.employee-app-body .attendance-window-closed{display:grid;gap:.35rem;padding:1rem;border:1px solid #8a6321;border-radius:.9rem;background:#3a2a0e;color:#ffe1a3;line-height:1.4}
.employee-app-body .attendance-window-closed strong{font-size:1rem;color:#ffd27a}
.employee-app-body .attendance-window-closed span{font-size:.9rem;color:#fff0ca}
.employee-app-body [data-marking-window-closed="1"] .employee-mark-reminder{margin-top:1rem}
