/* NFC.ae Attendance Pro v2.3 — full-width responsive application UI */
:root{--nf-ink:#172028;--nf-muted:#64727d;--nf-line:#dce3e8;--nf-bg:#f3f6f8;--nf-panel:#fff;--nf-dark:#11191d;--nf-dark-2:#1b272d;--nf-blue:#1769e0;--nf-blue-soft:#eaf2ff;--nf-green:#0b9b6e;--nf-red:#c43535;--nf-shadow:0 14px 40px rgba(18,34,45,.09)}
.nfcae2{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--nf-ink);-webkit-font-smoothing:antialiased;width:100vw;max-width:none!important;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);position:relative;z-index:1}
.nfcae2 *{box-sizing:border-box}.nfcae2 h1,.nfcae2 h2,.nfcae2 h3{font-family:'Hanken Grotesk',Inter,sans-serif;color:var(--nf-ink)}
.nfcae2 h1{font-size:clamp(26px,2.1vw,36px);font-weight:750;line-height:1.1;margin:0}.nfcae2 h2{font-size:19px;font-weight:700;margin:0 0 18px}.nfcae2 p{line-height:1.55}
.nfcae2 label{display:block;font-size:12px;font-weight:700;color:#44525d;letter-spacing:.02em}.nfcae2 input,.nfcae2 select{display:block;width:100%;margin-top:7px;padding:12px 13px;border:1px solid var(--nf-line);border-radius:9px;font:inherit;font-size:14px;color:var(--nf-ink);background:#fff;transition:.18s ease}
.nfcae2 input:hover,.nfcae2 select:hover{border-color:#b8c4cc}.nfcae2 input:focus,.nfcae2 select:focus{outline:none;border-color:var(--nf-blue);box-shadow:0 0 0 4px rgba(23,105,224,.12)}
.nfcae2-mono{font-family:'JetBrains Mono',monospace;font-size:13px}.nfcae2-muted{color:var(--nf-muted)}.nfcae2-small{font-size:12px}.nfcae2-loading{padding:56px;text-align:center;color:var(--nf-muted)}
.nfcae2-alert{background:#fff1f0;color:#8e1d1d;border:1px solid #ffd1cd;padding:13px 16px;border-radius:10px;margin-bottom:18px;font-size:14px;font-weight:600}
/* Login */
.nfcae2-login{min-height:calc(100vh - 76px);display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 80% 15%,rgba(23,105,224,.45),transparent 32%),linear-gradient(145deg,#0a1115 0%,#15232a 58%,#0b315f 130%);padding:32px 20px}
.nfcae2-login__card{background:rgba(255,255,255,.98);border:1px solid rgba(255,255,255,.4);border-radius:18px;padding:38px;width:100%;max-width:430px;box-shadow:0 28px 80px rgba(0,0,0,.35)}
.nfcae2-login__card label{margin-bottom:15px}.nfcae2-login__title{font-family:'Hanken Grotesk',sans-serif;font-size:27px;font-weight:800;margin:8px 0 3px}.nfcae2-brand{font-family:'Hanken Grotesk',sans-serif;font-weight:800;font-size:23px;color:#0e181d}.nfcae2-brand span{color:var(--nf-blue)}
/* Buttons */
.nfcae2-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;background:#edf1f3;color:#25313a;border:1px solid transparent;border-radius:9px;padding:9px 15px;font:inherit;font-size:13px;font-weight:700;cursor:pointer;text-decoration:none;transition:transform .15s,background .15s,box-shadow .15s}.nfcae2-btn:hover{background:#e1e8ec;transform:translateY(-1px)}.nfcae2-btn:disabled{opacity:.58;cursor:not-allowed;transform:none}
.nfcae2-btn--primary{background:var(--nf-blue);color:#fff;margin-top:14px;box-shadow:0 7px 16px rgba(23,105,224,.22)}.nfcae2-btn--primary:hover{background:#1059c3}.nfcae2-btn--danger{background:transparent;color:var(--nf-red);padding:6px 10px;font-size:12px}.nfcae2-btn--danger:hover{background:#fff0ef}.nfcae2-btn--full{width:100%}
/* Application shell */
.nfcae2-shell{display:flex;width:100%;min-height:calc(100vh - 76px);background:var(--nf-bg);border-top:1px solid var(--nf-line);overflow:hidden}
.nfcae2-side{width:258px;flex:0 0 258px;background:linear-gradient(180deg,var(--nf-dark),#152228);color:#dce4e8;padding:27px 0 19px;display:flex;flex-direction:column;position:sticky;top:0;height:calc(100vh - 1px);box-shadow:10px 0 32px rgba(11,23,30,.08);z-index:5}
.nfcae2-side .nfcae2-brand{color:#fff;padding:0 25px;margin-bottom:8px}.nfcae2-side__company{padding:0 25px 22px;font-size:12px;color:#9fb4c0;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nfcae2-side nav{flex:1;overflow-y:auto}.nfcae2-side nav a{display:flex;align-items:center;color:#cbd6dc;text-decoration:none;padding:12px 25px;font-size:14px;border-left:3px solid transparent;transition:.16s}.nfcae2-side nav a:hover{background:rgba(255,255,255,.06);color:#fff}.nfcae2-side nav a.is-active{background:linear-gradient(90deg,rgba(23,105,224,.28),rgba(23,105,224,.08));border-left-color:#58a0ff;color:#fff;font-weight:700}
.nfcae2-side__foot{padding:18px 25px;border-top:1px solid rgba(255,255,255,.08)}.nfcae2-side__foot a{color:#9fc5ff;font-size:13px;text-decoration:none}.nfcae2-main{flex:1;min-width:0;padding:clamp(22px,3vw,44px);overflow-x:hidden}.nfcae2-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:24px}.nfcae2-menu{display:none}
/* Cards and grids */
.nfcae2-card{background:var(--nf-panel);border:1px solid var(--nf-line);border-radius:14px;padding:clamp(18px,2vw,26px);margin-bottom:22px;box-shadow:0 3px 12px rgba(24,43,55,.035);overflow-x:auto}.nfcae2-card:hover{border-color:#ccd7de}
.nfcae2-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px 18px;margin-bottom:4px}.nfcae2-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;margin-bottom:22px}.nfcae2-stat{background:linear-gradient(145deg,#fff,#f9fbfc);border:1px solid var(--nf-line);border-radius:14px;padding:20px 22px;font-size:13px;color:#53626c;box-shadow:0 5px 18px rgba(24,43,55,.04)}.nfcae2-stat__n{font-family:'Hanken Grotesk',sans-serif;font-size:38px;font-weight:800;color:#152128;line-height:1.05;margin-bottom:6px}
.nfcae2-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:18px}.nfcae2-search{max-width:340px;margin:0!important}.nfcae2-collapsible[hidden]{display:none!important}
/* Tables */
.nfcae2-table{width:100%;min-width:760px;border-collapse:separate;border-spacing:0;font-size:14px}.nfcae2-table th{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.075em;text-transform:uppercase;color:#60707a;background:#f4f7f9;text-align:left;padding:12px 13px;border-top:1px solid #e5ebef;border-bottom:1px solid #e5ebef}.nfcae2-table th:first-child{border-left:1px solid #e5ebef;border-radius:9px 0 0 9px}.nfcae2-table th:last-child{border-right:1px solid #e5ebef;border-radius:0 9px 9px 0}.nfcae2-table td{padding:13px;border-bottom:1px solid #edf1f3;vertical-align:middle}.nfcae2-table tbody tr{transition:background .14s}.nfcae2-table tbody tr:hover{background:#f8fbfd}.nfcae2-inline{width:auto;max-width:100%;min-width:112px;display:inline-block;margin:2px 5px 2px 0;padding:7px 9px;font-size:13px}.nfcae2-dir{font-family:'JetBrains Mono',monospace;font-size:10px;padding:4px 9px;border-radius:999px;letter-spacing:.06em;font-weight:700}.nfcae2-dir--in{background:#e6f7f1;color:#087552}.nfcae2-dir--out{background:#edf1f4;color:#2f3d45}.nfcae2-filters{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:18px}.nfcae2-filters label{flex:0 0 auto}.nfcae2-filters input,.nfcae2-filters select{width:auto;min-width:150px}
/* Toast */
.nfcae2-toast{position:fixed;bottom:25px;right:25px;background:#152128;color:#fff;padding:13px 19px;border-radius:10px;font:700 14px Inter,sans-serif;box-shadow:0 10px 32px rgba(11,24,31,.3);z-index:99999;animation:nfcae2-in .2s ease-out}.nfcae2-toast--err{background:var(--nf-red)}@keyframes nfcae2-in{from{transform:translateY(9px);opacity:0}}
/* Kiosk */
.nfcae2-kiosk{background:#fff;border:1px solid var(--nf-line);border-radius:16px;padding:34px;max-width:720px;margin:24px auto;box-shadow:var(--nf-shadow)}.nfcae2-kiosk__head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px}.nfcae2-kiosk__label{font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.08em;color:var(--nf-blue)}.nfcae2-kiosk__client{font-family:'Hanken Grotesk',sans-serif;font-size:24px;font-weight:800;color:#142027}.nfcae2-kiosk__time{display:block;font-family:'JetBrains Mono',monospace;font-size:29px;font-weight:600;color:#142027}.nfcae2-kiosk__tz{font-size:12px;color:#596972}.nfcae2-kiosk__status{display:flex;align-items:center;gap:10px;margin-bottom:17px;font-weight:700}.nfcae2-dot{width:10px;height:10px;border-radius:50%;background:#c9d1d6}.nfcae2-dot--ok{background:var(--nf-green);box-shadow:0 0 0 4px rgba(11,155,110,.14)}.nfcae2-dot--wait{background:var(--nf-blue);animation:nfcae2-pulse 1s infinite}.nfcae2-dot--err{background:var(--nf-red)}@keyframes nfcae2-pulse{50%{opacity:.4}}.nfcae2-kiosk__card{min-height:200px;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:25px;margin-bottom:17px}.nfcae2-kiosk__card--idle{background:#f3f6f8;border:2px dashed #c7d1d7}.nfcae2-kiosk__card--in{background:var(--nf-green);color:#fff}.nfcae2-kiosk__card--out{background:#152128;color:#fff}.nfcae2-kiosk__card--err{background:#fff0ef;color:#8e1d1d}.nfcae2-kiosk__who{font-family:'Hanken Grotesk',sans-serif;font-size:26px;font-weight:800}.nfcae2-kiosk__dir{font-family:'JetBrains Mono',monospace;font-size:16px;letter-spacing:.15em;margin:8px 0}
@media (max-width:900px){.nfcae2-shell{min-height:100vh}.nfcae2-side{position:fixed;left:-272px;top:0;height:100vh;transition:left .22s ease}.nfcae2-shell.is-menu-open .nfcae2-side{left:0}.nfcae2-shell.is-menu-open:after{content:"";position:fixed;inset:0;background:rgba(6,18,25,.42);z-index:4}.nfcae2-main{padding:22px 16px}.nfcae2-menu{display:inline-flex}.nfcae2-head{align-items:flex-start}.nfcae2-card{padding:18px}.nfcae2-grid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.nfcae2-grid{grid-template-columns:1fr}.nfcae2-stats{grid-template-columns:1fr 1fr}.nfcae2-login{padding:18px}.nfcae2-login__card{padding:27px 22px}.nfcae2-table{min-width:680px}.nfcae2-filters{align-items:stretch}.nfcae2-filters label,.nfcae2-filters input,.nfcae2-filters select{width:100%}.nfcae2-kiosk{margin:12px;padding:22px}.nfcae2-kiosk__head{flex-direction:column;gap:14px}}

/* v2.3.1 sidebar hardening and visual refinement */
.nfcae2 .nfcae2-shell{
  display:grid!important;
  grid-template-columns:272px minmax(0,1fr)!important;
  align-items:stretch!important;
}
.nfcae2 .nfcae2-side{
  width:272px!important;
  min-width:272px!important;
  max-width:272px!important;
  flex:none!important;
  padding:24px 14px 18px!important;
  background:linear-gradient(180deg,#101a20 0%,#14252e 56%,#102029 100%)!important;
  border-right:1px solid rgba(255,255,255,.08)!important;
  overflow:hidden!important;
}
.nfcae2 .nfcae2-side .nfcae2-brand{
  display:block!important;
  padding:0 12px!important;
  margin:0 0 7px!important;
  color:#fff!important;
  font-size:24px!important;
  line-height:1.25!important;
  white-space:nowrap!important;
}
.nfcae2 .nfcae2-side__company{
  display:block!important;
  padding:0 12px 21px!important;
  margin:0 0 16px!important;
  color:#a8bdc8!important;
  font-size:12px!important;
  line-height:1.4!important;
  border-bottom:1px solid rgba(255,255,255,.1)!important;
}
.nfcae2 .nfcae2-side__section{
  padding:0 12px 8px;
  color:#6f8997;
  font:700 10px/1.2 'JetBrains Mono',monospace;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.nfcae2 .nfcae2-side nav{
  display:flex!important;
  flex-direction:column!important;
  gap:6px!important;
  width:100%!important;
  padding:0!important;
  margin:0!important;
}
.nfcae2 .nfcae2-side nav a{
  display:grid!important;
  grid-template-columns:34px minmax(0,1fr)!important;
  align-items:center!important;
  width:100%!important;
  min-height:46px!important;
  padding:7px 11px!important;
  margin:0!important;
  color:#c8d6dd!important;
  background:transparent!important;
  border:1px solid transparent!important;
  border-radius:10px!important;
  border-left:1px solid transparent!important;
  font-size:14px!important;
  font-weight:600!important;
  line-height:1.25!important;
  white-space:nowrap!important;
  overflow:hidden!important;
}
.nfcae2 .nfcae2-side nav a:hover{
  color:#fff!important;
  background:rgba(255,255,255,.07)!important;
  border-color:rgba(255,255,255,.07)!important;
  transform:translateX(2px);
}
.nfcae2 .nfcae2-side nav a.is-active{
  color:#fff!important;
  background:linear-gradient(135deg,#1769e0,#1558b9)!important;
  border-color:rgba(255,255,255,.13)!important;
  box-shadow:0 8px 22px rgba(5,45,101,.35)!important;
}
.nfcae2 .nfcae2-nav__icon{
  display:grid!important;
  place-items:center!important;
  width:28px!important;
  height:28px!important;
  border-radius:8px!important;
  background:rgba(255,255,255,.07)!important;
  color:#a9c2d0!important;
  font-size:16px!important;
  line-height:1!important;
}
.nfcae2 .nfcae2-side nav a.is-active .nfcae2-nav__icon{
  background:rgba(255,255,255,.16)!important;
  color:#fff!important;
}
.nfcae2 .nfcae2-nav__label{display:block!important;overflow:hidden!important;text-overflow:ellipsis!important;color:inherit!important}
.nfcae2 .nfcae2-side__foot{
  display:block!important;
  padding:17px 12px 2px!important;
  margin-top:15px!important;
  color:#b8c9d1!important;
  border-top:1px solid rgba(255,255,255,.1)!important;
  line-height:1.5!important;
}
.nfcae2 .nfcae2-side__foot a{display:inline-block!important;margin-top:6px!important;color:#8bbcff!important;font-weight:700!important}
.nfcae2 .nfcae2-main{width:auto!important;min-width:0!important;max-width:none!important}
@media (max-width:900px){
  .nfcae2 .nfcae2-shell{display:block!important}
  .nfcae2 .nfcae2-side{position:fixed!important;left:-286px!important;top:0!important;height:100vh!important;z-index:10!important;transition:left .22s ease!important}
  .nfcae2 .nfcae2-shell.is-menu-open .nfcae2-side{left:0!important}
}


/* v2.3.2: theme-proof active sidebar */
.nfcae2 .nfcae2-shell{grid-template-columns:280px minmax(0,1fr)!important;overflow:visible!important}
.nfcae2 .nfcae2-side{
  display:flex!important;visibility:visible!important;opacity:1!important;
  width:280px!important;min-width:280px!important;max-width:280px!important;
  height:calc(100vh - 1px)!important;box-sizing:border-box!important;
  isolation:isolate!important;transform:none!important;clip:auto!important;clip-path:none!important;
}
.nfcae2 .nfcae2-side *{visibility:visible!important;opacity:1!important}
.nfcae2 .nfcae2-side nav a{min-width:0!important;text-indent:0!important}
.nfcae2 .nfcae2-side__company,.nfcae2 .nfcae2-side__section,.nfcae2 .nfcae2-nav__label,.nfcae2 .nfcae2-side__foot{display:block!important}
@media (min-width:901px){
 .nfcae2 .nfcae2-side{left:auto!important;right:auto!important;top:0!important;margin:0!important}
 .nfcae2 .nfcae2-main{grid-column:2!important}
}
@media (max-width:900px){
 .nfcae2 .nfcae2-side{width:280px!important;min-width:280px!important;max-width:280px!important;left:-294px!important}
 .nfcae2 .nfcae2-shell.is-menu-open .nfcae2-side{left:0!important}
}


/* v2.3.3: fixed application navigation independent of WordPress theme layout */
.nfcae2 .nfcae2-shell{
  display:block!important;
  position:relative!important;
  min-height:calc(100vh - 76px)!important;
  overflow:visible!important;
}
.nfcae2 .nfcae2-side{
  position:fixed!important;
  left:0!important;
  top:var(--nfcae-side-top,0px)!important;
  width:286px!important;
  min-width:286px!important;
  max-width:286px!important;
  height:calc(100vh - var(--nfcae-side-top,0px))!important;
  z-index:99990!important;
  overflow:hidden!important;
  box-shadow:14px 0 40px rgba(10,25,35,.22)!important;
}
.nfcae2 .nfcae2-main{
  display:block!important;
  width:auto!important;
  min-width:0!important;
  margin-left:286px!important;
}
.nfcae2 .nfcae2-menu{
  display:none!important;
}
.nfcae2 .nfcae2-side__close{
  display:none!important;
}
@media (max-width:900px){
  .nfcae2 .nfcae2-main{margin-left:0!important}
  .nfcae2 .nfcae2-menu{display:inline-flex!important;position:sticky;top:10px;z-index:20;margin-bottom:15px}
  .nfcae2 .nfcae2-side{left:-304px!important;top:0!important;height:100vh!important;transition:left .22s ease!important}
  .nfcae2 .nfcae2-shell.is-menu-open .nfcae2-side{left:0!important}
  .nfcae2 .nfcae2-side__close{display:inline-flex!important;position:absolute!important;right:10px!important;top:10px!important;width:34px!important;height:34px!important;align-items:center!important;justify-content:center!important;border:0!important;border-radius:9px!important;background:rgba(255,255,255,.1)!important;color:#fff!important;font-size:20px!important;cursor:pointer!important}
}


/* v2.3.4: body-level sidebar portal — immune to theme container clipping */
body > #nfcae2-sidebar-portal{
  display:flex!important;
  position:fixed!important;
  left:0!important;
  top:var(--nfcae-side-top,0px)!important;
  width:286px!important;
  min-width:286px!important;
  max-width:286px!important;
  height:calc(100vh - var(--nfcae-side-top,0px))!important;
  margin:0!important;
  padding:24px 14px 18px!important;
  transform:none!important;
  translate:none!important;
  visibility:visible!important;
  opacity:1!important;
  overflow:hidden!important;
  z-index:2147483000!important;
  box-sizing:border-box!important;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
}
body > #nfcae2-sidebar-portal *{box-sizing:border-box!important}
body > #nfcae2-sidebar-portal nav{display:flex!important;flex:1 1 auto!important;flex-direction:column!important;gap:6px!important;overflow-y:auto!important}
body > #nfcae2-sidebar-portal .nfcae2-nav__label{display:block!important;color:inherit!important;font-size:14px!important;line-height:1.25!important;white-space:nowrap!important}
body > #nfcae2-sidebar-portal .nfcae2-side__foot{margin-top:auto!important}
@media (max-width:900px){
  body > #nfcae2-sidebar-portal{left:-304px!important;top:0!important;height:100vh!important;transition:left .22s ease!important}
  body.nfcae2-menu-open > #nfcae2-sidebar-portal{left:0!important}
  body.nfcae2-menu-open:after{content:"";position:fixed;inset:0;background:rgba(6,18,25,.48);z-index:2147482999}
}

/* v2.3.5 Shadow DOM navigation layout */
.nfcae2-shell--shadow-nav{display:block!important;overflow:visible!important}
.nfcae2-shell--shadow-nav>.nfcae2-main{width:auto!important;min-width:0!important;margin-left:286px!important}
@media(max-width:900px){.nfcae2-shell--shadow-nav>.nfcae2-main{margin-left:0!important}.nfcae2-shell--shadow-nav .nfcae2-menu{display:inline-flex!important}}


/* v2.3.6: reserve real layout space for isolated sidebar */
.nfcae2{box-sizing:border-box!important}
.nfcae2-shell--shadow-nav{width:100%!important;max-width:none!important}
.nfcae2-shell--shadow-nav>.nfcae2-main{margin-left:0!important;width:100%!important;max-width:none!important}
@media(min-width:901px){.nfcae2{padding-left:286px!important}}
@media(max-width:900px){.nfcae2{padding-left:0!important}}
