
/* Mobile app typography: force Poppins everywhere on mobile view */
body.att-mobile-mode,
body.att-mobile-mode *,
.att-mobile-app,
.att-mobile-app *,
.att-mobile-shell,
.att-mobile-shell *{
  font-family:'Poppins', Poppins, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
}

/* Fix mobile bottom navigation icons: keep Dashicons font from being overridden by global Poppins. */
.att-mobile-app .dashicons,
.att-mobile-app .dashicons:before,
.att-mobile-nav .dashicons,
.att-mobile-nav .dashicons:before,
.att-pwa-actions .dashicons,
.att-pwa-actions .dashicons:before{
  font-family: dashicons !important;
  font-weight: normal !important;
  font-style: normal !important;
  speak: never;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.att-mobile-nav a .dashicons{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:22px;
  line-height:1;
  width:24px;
  height:24px;
}

.att-mobile-app{
  max-width: 520px;
  margin: 0 auto;
  min-height:auto;
  background:#fff;
  position:relative;
  padding-bottom:0;
}

/* App-like mode: hide theme chrome when the mobile app shortcode is used */
body.att-mobile-mode{
  margin:0 !important;
}
html.att-mobile-mode{margin-top:0 !important;}
body.att-mobile-mode #wpadminbar{display:none !important;}

/* Common theme header/footer wrappers (Elementor / Astra / WP block themes / generic) */
body.att-mobile-mode .elementor-location-header,
body.att-mobile-mode .elementor-location-footer,
body.att-mobile-mode #masthead,
body.att-mobile-mode #colophon,
body.att-mobile-mode header.site-header,
body.att-mobile-mode footer.site-footer,
body.att-mobile-mode .site-header,
body.att-mobile-mode .site-footer,
body.att-mobile-mode .ast-header-wrap,
body.att-mobile-mode .ast-footer-wrap,
body.att-mobile-mode .header-footer-group,
body.att-mobile-mode .wp-block-template-part.header,
body.att-mobile-mode .wp-block-template-part.footer{
  display:none !important;
}

/* Expand to full width in app mode */
body.att-mobile-mode .att-mobile-app{max-width:100%;}

.att-mobile-shell{
  min-height:auto;
  display:flex;
  flex-direction:column;
  background:#f6f7fb;
}

/* Logo-only header */
.att-mobile-brandbar{
  position:sticky;
  top:0;
  z-index:25;
  background:#ffffff;
  border-bottom:1px solid rgba(0,0,0,.06);
  padding:10px 14px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.att-mobile-logo{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  line-height:1;
}

.att-mobile-logo img{
  height:32px;
  width:auto;
  display:block;
}

.att-mobile-logo-text{
  font-size:16px;
  font-weight:700;
  color:#111827;
}

.att-mobile-pagehead{
  background:#ffffff;
  border-bottom:1px solid rgba(0,0,0,.06);
  padding:10px 14px;
}

.att-mobile-eyebrow{
  font-size:14px;
  font-weight:600;
  color:#374151;
  text-align:center;
  margin:0 0 8px;
}

.att-mobile-title-wrap{
  display:flex;
  justify-content:center;
}

.att-mobile-topbar{
  position:sticky;
  top:0;
  z-index:20;
  background:#ffffff;
  border-bottom:1px solid rgba(0,0,0,.06);
  padding:12px 14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}

.att-mobile-title{
  font-size:16px;
  font-weight:600;
  margin:0;
  display:inline-block;
  padding-bottom:6px;
  border-bottom:2px solid rgba(0,0,0,.08);
}

.att-mobile-sub{
  font-size:15px;
  color:#6b7280;
  margin:2px 0 0;
}

.att-mobile-sub-large{
  font-size:18px;
  margin-top:6px;
}

.att-mobile-sub.att-mobile-greeting{
  font-size:18px;
  color:#111827;
  font-weight:600;
  margin-top:6px;
  text-align:center;
  width:100%;
}

.att-mobile-body{
  flex:0 0 auto;
  padding:12px 12px calc(100px + env(safe-area-inset-bottom, 0px));
}

.att-mobile-body .att-header{
  display:none; /* avoid duplicate headings from embedded shortcodes */
}

.att-mobile-body .att-wrap{
  padding:0;
}

.att-mobile-body .att-card{
  border-radius:16px;
}

.att-mobile-nav{
  position:fixed;
  left:50%;
  transform:translateX(-50%);
  bottom:0;
  z-index:999;
  width:min(520px, 100vw);
  background:#ffffff;
  border-top:1px solid rgba(0,0,0,.06);
  box-shadow:0 -12px 28px rgba(15,23,42,.12);
  padding:10px 12px calc(10px + env(safe-area-inset-bottom, 0px));
}

.att-mobile-nav ul{
  list-style:none;
  display:flex;
  gap:8px;
  justify-content:space-between;
  margin:0;
  padding:0;
}

.att-mobile-nav a{
  flex:1;
  text-decoration:none;
  color:#374151;
  font-size:12px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  padding:8px 6px;
  border-radius:12px;
}

.att-mobile-nav a .dashicons{
  font-size:20px;
  width:20px;
  height:20px;
}

.att-mobile-nav a.is-active{
  background: rgba(50,101,4,.08);
  color:#326504;
}

.att-mobile-chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border-radius:999px;
  background:#fff;
  border:1px solid rgba(0,0,0,.06);
  font-size:12px;
  color:#374151;
}

.att-mobile-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.att-mobile-actions .att-btn{
  width:100%;
}

/* Make embedded action buttons full width on mobile */
.att-mobile-app .att-actions .att-btn{width:100%;}
.att-mobile-app #attStartScan{width:100%;}

@media (min-width: 521px){
  .att-mobile-app{ margin-top: 16px; margin-bottom:16px; border-radius:18px; overflow:hidden; box-shadow:0 12px 35px rgba(0,0,0,.08); }
}

/* Make login form look nicer on mobile */
.att-mobile-login .login-username label,
.att-mobile-login .login-password label{
  font-weight:600;
  font-size:13px;
}

.att-mobile-login input[type="text"],
.att-mobile-login input[type="password"],
.att-mobile-login input[type="email"]{
  width:100%;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(0,0,0,.12);
}

.att-mobile-login input[type="submit"],
.att-mobile-login .button-primary{
  width:100%;
  border-radius:12px;
  padding:10px 12px;
  background: var(--att-primary) !important;
  border:1px solid var(--att-primary) !important;
  color:#fff !important;
  font-weight:600;
}
.att-mobile-login input[type="submit"]:hover,
.att-mobile-login .button-primary:hover{
  background: var(--att-primary-dark) !important;
  border-color: var(--att-primary-dark) !important;
}

/* Full-width actions (Scan QR Code button, etc.) */
.att-mobile-app .att-actions{flex-direction:column;}
.att-mobile-app .att-actions .att-btn{width:100%;}

/* Profile */
.att-profile-table{width:100%;border-collapse:collapse;}
.att-profile-table td{padding:6px 0;font-size:14px;vertical-align:top;}
.att-profile-table td:first-child{width:130px;color:#6b7280;}

/* Alerts */
.att-alert{padding:12px 14px;border-radius:12px;margin:0 0 12px 0;font-size:14px;line-height:1.4;}
.att-alert-success{background:#ecf7ed;border:1px solid rgba(0,0,0,0.08);}
.att-alert-error{background:#fdecec;border:1px solid rgba(0,0,0,0.08);}

/* PWA helpers on login screen */
.att-pwa-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.att-pwa-actions .att-btn{
  width:100%;
  justify-content:center;
  gap:8px;
}
.att-pwa-actions .att-btn .dashicons{
  font-size:18px;
  width:18px;
  height:18px;
}
.att-pwa-actions .att-btn span:not(.dashicons){
  font-size:14px;
  line-height:1.1;
  font-weight:500;
}

@media (min-width: 480px){
  .att-pwa-actions .att-btn{width:calc(50% - 5px);}
}

.att-btn.att-btn-outline{
  background:#ffffff;
  border:1px solid rgba(0,0,0,.12);
  color:#111827;
}
.att-btn.att-btn-outline:hover{
  border-color: rgba(0,0,0,.18);
}
.att-btn.is-disabled{opacity:.55;}

.att-a2hs-tip{margin-top:10px;}

/* Floating PWA install notice (mobile app view) */
.att-pwa-floating-notice{
  position:fixed;
  left:14px;
  right:14px;
  bottom:calc(72px + env(safe-area-inset-bottom, 0px));
  z-index:9998;
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 10px 10px 12px;
  background:#ffffff;
  border:1px solid rgba(15,23,42,.12);
  border-radius:18px;
  box-shadow:0 14px 36px rgba(15,23,42,.18);
  color:#111827;
  opacity:1 !important;
  visibility:visible !important;
  transform:translateY(0);
  transition:opacity .22s ease, transform .22s ease;
}
.att-pwa-floating-notice.is-hidden,
.att-pwa-floating-notice.att-pwa-floating-dismissed{
  opacity:0 !important;
  visibility:hidden !important;
  transform:translateY(12px);
  pointer-events:none;
}
.att-pwa-floating-icon{
  width:34px;
  height:34px;
  flex:0 0 34px;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#eef7ed;
  color:#2f6b1f;
}
.att-pwa-floating-icon .dashicons{font-size:20px;width:20px;height:20px;}
.att-pwa-floating-copy{
  min-width:0;
  font-size:12.5px;
  line-height:1.35;
  font-weight:500;
}
.att-pwa-floating-install{
  border:0;
  border-radius:999px;
  padding:7px 10px;
  background:#2f6b1f;
  color:#fff;
  font-size:12px;
  line-height:1;
  font-weight:700;
  cursor:pointer;
  white-space:nowrap;
}
.att-pwa-floating-close{
  border:0;
  background:transparent;
  color:#6b7280;
  font-size:22px;
  line-height:1;
  padding:3px 4px;
  cursor:pointer;
}
.att-mobile-screen-login .att-pwa-floating-notice{bottom:calc(18px + env(safe-area-inset-bottom, 0px));}
/* The notice is rendered only inside the mobile app shell; keep it visible there even if the shell is previewed on a wider screen. */
.att-mobile-mode .att-pwa-floating-notice:not(.att-pwa-floating-dismissed),
.att-mobile-app .att-pwa-floating-notice:not(.att-pwa-floating-dismissed){
  display:flex !important;
  visibility:visible !important;
  opacity:1 !important;
}


/* PWA installation progress */
.att-pwa-progress{
  display:none;
  width:100%;
  margin-top:8px;
}
.att-pwa-progress.is-visible{display:block;}
.att-pwa-progress-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:5px;
  font-size:11px;
  line-height:1.25;
  color:#4b5563;
}
.att-pwa-progress-text{min-width:0;}
.att-pwa-progress-percent{
  flex:0 0 auto;
  color:#111827;
  font-weight:700;
}
.att-pwa-progress-track{
  width:100%;
  height:6px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(47,107,31,.15);
}
.att-pwa-progress-fill{
  display:block;
  height:100%;
  width:0%;
  border-radius:999px;
  background:#2f6b1f;
  transition:width .28s ease;
}
.att-pwa-progress.is-complete .att-pwa-progress-fill{background:#2f6b1f;}
.att-pwa-login-progress{margin-top:10px;}
.att-pwa-install.is-installing,
.att-pwa-floating-install:disabled{
  opacity:.78;
  cursor:wait;
}
.att-pwa-floating-main{
  flex:1 1 auto;
  min-width:0;
}
.att-pwa-floating-main .att-pwa-floating-copy{
  flex:none;
}
.att-pwa-floating-progress{
  margin-top:7px;
}
.att-pwa-floating-notice.is-installing{
  align-items:flex-start;
}
.att-pwa-floating-notice.is-installing .att-pwa-floating-icon{
  margin-top:2px;
}
.att-pwa-floating-notice.is-installing .att-pwa-floating-install{
  min-width:88px;
}
/* Simple modal */
.att-modal{position:fixed; inset:0; z-index:9999; display:none;}
.att-modal.is-open{display:block;}
.att-modal-backdrop{position:absolute; inset:0; background:rgba(17,24,39,.55);}
.att-modal-panel{
  position:relative;
  width:min(520px, calc(100% - 28px));
  margin:10vh auto 0;
  background:#fff;
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 20px 60px rgba(0,0,0,.25);
}
.att-modal-head{display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:14px 14px 10px; border-bottom:1px solid rgba(0,0,0,.06);}
.att-modal-title{font-size:16px; font-weight:700; color:#111827;}
.att-modal-sub{font-size:13px; color:#6b7280; margin-top:2px;}
.att-icon-btn{border:0; background:transparent; font-size:22px; line-height:1; padding:6px 8px; cursor:pointer; color:#111827;}
.att-modal-body{padding:14px;}
.att-a2hs-block{border:1px solid rgba(0,0,0,.08); border-radius:14px; padding:12px; margin-bottom:10px;}
.att-a2hs-os{font-weight:700; margin-bottom:6px;}
.att-a2hs-block ol{margin:0; padding-left:18px;}
.att-modal-actions{padding:12px 14px 14px; border-top:1px solid rgba(0,0,0,.06);}
.att-modal-actions .att-btn{width:100%; justify-content:center;}

/* In-app notifications (Staff Mobile App) */
.att-nav-label{margin-left:6px;}
.att-nav-badge{
  margin-left:8px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:20px;
  height:20px;
  padding:0 6px;
  border-radius:999px;
  background:#dc2626;
  color:#fff;
  font-size:12px;
  font-weight:700;
}

.att-notif-item{
  border:1px solid rgba(0,0,0,.08);
  border-radius:14px;
  padding:12px;
  margin:0 0 10px 0;
  background:#fff;
}
.att-notif-item.is-read{opacity:1; background:#fcfcfd; border-color:#e5e7eb;}
.att-notif-item.is-read .att-notif-title,
.att-notif-item.is-read .att-notif-msg,
.att-notif-item.is-read .att-notif-meta{color:#6b7280;}
.att-notif-title{font-weight:700; font-size:16px; line-height:1.35; color:#374151;}

.att-notif-title-location{
  font-size:14px;
  line-height:1.35;
  font-weight:700;
}
.att-notif-msg{margin-top:6px; font-size:13px; color:#374151; line-height:1.45;}
.att-status-word{font-weight:800;}
.att-status-open{color:#166534;}
.att-status-closed{color:#991b1b;}
.att-status-upcoming{color:#1d4ed8;}
.att-status-missed{color:#991b1b;}
.att-attendance-status-word{font-weight:800;}
.att-attendance-status-present{color:#166534;}
.att-attendance-status-excused{color:#1d4ed8;}
.att-attendance-status-absent{color:#991b1b;}
.att-attendance-status-pending{color:#6b7280;}
.att-attendance-status-not-checked-in{color:#92400e;}
.att-notif-attendance-status-row{margin-top:8px;}
.att-notif-attendance-status-label strong{font-weight:800;}
.att-notif-meta{margin-top:8px; font-size:12px; color:#6b7280;}
.att-notif-actions{margin-top:10px; display:flex; gap:10px;}
.att-notif-actions .att-btn{width:100%; justify-content:center;}

.att-notif-open,
.att-notif-open:link,
.att-notif-open:visited{
  background:var(--att-primary) !important;
  border-color:var(--att-primary) !important;
  color:#fff !important;
  opacity:1 !important;
}
.att-notif-open:hover,
.att-notif-open:focus{
  background:var(--att-primary-dark) !important;
  border-color:var(--att-primary-dark) !important;
  color:#fff !important;
}
.att-notif-item.is-read .att-notif-open{
  opacity:1 !important;
}

.att-notif-event-card{
  margin-top:10px;
  border:1px solid #d1d5db;
  border-radius:18px;
  background:#fff;
  padding:14px;
}
.att-notif-event-name{
  font-size:15px;
  line-height:1.45;
  font-weight:800;
  color:#4b5563;
  margin:0 0 12px 0;
}
.att-notif-event-row{
  margin-top:6px;
  font-size:13px;
  line-height:1.5;
  color:#6b7280;
}
.att-notif-event-row:first-of-type{margin-top:0;}
.att-notif-event-label{
  font-weight:500;
  color:#6b7280;
}
.att-notif-event-value{
  color:#6b7280;
}
.att-notif-event-card .att-notif-actions{
  margin-top:14px;
}
.att-notif-item.is-read .att-notif-event-name,
.att-notif-item.is-read .att-notif-event-row,
.att-notif-item.is-read .att-notif-event-label,
.att-notif-item.is-read .att-notif-event-value{
  color:#6b7280;
}

.att-toast{
  position:fixed;
  left:14px;
  right:14px;
  bottom:74px;
  z-index:9999;
  background:#111827;
  color:#fff;
  border-radius:14px;
  padding:12px 14px;
  box-shadow:0 12px 30px rgba(0,0,0,.25);
  opacity:0;
  transform:translateY(10px);
  transition:all .2s ease;
  font-size:13px;
}
.att-toast.is-show{opacity:1; transform:translateY(0);}


/* ============================
 * Mobile login error - match WP default
 * ============================ */
.att-mobile-login #login_error,
.att-mobile-login .message,
.att-mobile-login .notice.notice-error{
  background:#fff;
  border-left:4px solid #d63638;
  max-width:320px;
  box-sizing:border-box;
  margin:0 auto 16px;
  padding:12px;
  box-shadow:0 1px 1px rgba(0,0,0,.04);
  border-radius:0;
}
.att-mobile-login .message p,
.att-mobile-login #login_error p{
  margin:0 0 6px;
}
.att-mobile-login .message p:last-child,
.att-mobile-login #login_error p:last-child{
  margin-bottom:0;
}


body.att-mobile-mode{
  padding-bottom:0;
  background:#f6f7fb;
}

.att-mobile-nav a{
  min-height:58px;
  justify-content:center;
}

.att-mobile-nav a.is-active{
  background: rgba(50,101,4,.10);
  color:#326504;
}

.att-mobile-body .att-card .muted.small{
  line-height:1.6;
}


/* Staff mobile Location Check-in card - align title/content sizing with Alerts event card */
.att-loc-staff-slot-card{
  border-radius:18px;
}
.att-loc-staff-slot-card-open{
  background:#fff7cc;
  border:1px solid #f5d76e;
}
.att-loc-staff-slot-card-recorded{
  border-color:#b7e4c7;
}
.att-loc-staff-slot-name{
  font-size:15px;
  line-height:1.45;
  font-weight:800;
  color:#4b5563;
  margin:0 0 12px 0;
}
.att-loc-staff-slot-row{
  margin-top:6px;
  font-size:13px;
  line-height:1.5;
  color:#6b7280;
}
.att-loc-staff-slot-row:first-of-type{
  margin-top:0;
}
.att-loc-staff-slot-label{
  font-weight:500;
  color:#6b7280;
}
.att-loc-staff-slot-value{
  color:#6b7280;
}
.att-loc-staff-slot-actions{
  margin-top:10px;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:8px;
}
.att-loc-staff-slot-btn{
  width:100%;
  min-height:48px;
  justify-content:center;
}
.att-loc-staff-slot-meta{
  font-size:12px;
  line-height:1.45;
  color:#6b7280;
  white-space:normal;
  text-align:left;
}


/* Staff mobile Location Check-in page card title - match Alerts card/button scale */
.att-loc-page-card-title{
  font-size:16px;
  line-height:1.35;
  font-weight:700;
  color:#1f2937;
}

/* Public Staff Registration page */
.att-mobile-app.att-public-registration-app,
body.att-mobile-mode .att-mobile-app.att-public-registration-app{
  max-width: 980px;
  margin: 0 auto;
  background: #fff;
}

.att-public-registration-app .att-mobile-shell{
  min-height: 100vh;
}

.att-registration-wrap{
  max-width: 100%;
  margin: 0 auto;
}

.att-registration-pagehead{
  padding-top: 18px;
  padding-bottom: 18px;
}

.att-registration-page-sub{
  text-align: center;
  max-width: 760px;
  margin: 8px auto 0;
}

.att-registration-body{
  padding: 18px 16px 28px;
}

.att-registration-card{
  max-width: 920px;
  margin: 0 auto;
  border-radius: 20px;
  padding: 20px;
}

.att-registration-card,
.att-registration-card *,
.att-registration-grid > *,
.att-registration-card .att-field{
  min-width: 0;
}

.att-registration-card-head{
  margin-bottom: 14px;
}

.att-registration-title{
  margin: 0;
  font-size: 28px;
  line-height: 1.2;
  color: #111827;
}

.att-registration-subtitle{
  margin-top: 8px;
}

.att-registration-grid{
  gap: 12px;
}

.att-registration-card .att-field{
  margin-bottom: 14px;
}

.att-registration-card .att-field label{
  font-size: 14px;
  font-weight: 600;
  color: #111827;
}

.att-registration-card .att-field input,
.att-registration-card .att-field select,
.att-registration-card .att-input{
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
  min-height: 46px;
  height: 46px;
  padding: 11px 14px !important;
  border-radius: 14px !important;
  font-size: 15px;
}

.att-registration-help{
  margin-top: 6px;
  line-height: 1.5;
}

.att-registration-actions{
  margin-top: 8px;
}

.att-public-registration-app .att-registration-actions,
.att-mobile-app .att-registration-actions{
  flex-direction: column;
}

.att-public-registration-app .att-registration-actions .att-btn,
.att-mobile-app .att-registration-actions .att-btn{
  width: 100%;
  justify-content: center;
}

@media (max-width: 767px){
  .att-registration-pagehead{
    padding: 14px 14px 16px;
  }

  .att-registration-body{
    padding: 14px 12px 22px;
  }

  .att-registration-card{
    width:100%;
    border-radius: 18px;
    padding: 16px;
    overflow: hidden;
  }

  .att-registration-title{
    font-size: 24px;
  }

  .att-registration-grid{
    grid-template-columns:1fr;
    gap: 0;
  }

  .att-registration-card .att-field input,
  .att-registration-card .att-field select,
  .att-registration-card .att-input{
    font-size: 16px;
    width:100%;
  }
}


.att-registration-actions{
  gap: 10px;
}

.att-registration-actions .att-registration-back{
  margin-top: 0;
}


/* Staff mobile home buttons */
.att-home-card .att-btn,
.att-home-card .att-btn.att-btn-outline,
.att-home-card .att-btn.att-btn-secondary,
.att-home-card .att-btn.att-btn-warning{
  border-color:#bfc6d1;
  border-width:1.5px;
}
.att-home-card .att-btn:hover,
.att-home-card .att-btn.att-btn-outline:hover,
.att-home-card .att-btn.att-btn-secondary:hover,
.att-home-card .att-btn.att-btn-warning:hover{
  border-color:#aeb7c4;
}
.att-home-card .att-home-loc-btn-upcoming,
.att-home-card .att-home-loc-btn-open{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  text-align:center;
  line-height:1.15;
  padding-top:12px;
  padding-bottom:12px;
}
.att-home-card .att-home-loc-row{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  width:100%;
}
.att-home-card .att-home-loc-title{
  display:inline-block;
}
.att-home-card .att-home-loc-status-row{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  width:100%;
}
.att-home-card .att-home-loc-count{
  margin-left:0 !important;
}
.att-home-card .att-home-loc-status-text{
  display:inline-block;
  font-size:14px;
  font-weight:700;
  line-height:1.1;
}
.att-home-card .att-home-loc-status-open{
  color:#2f6b1f;
}
.att-home-card .att-home-loc-btn-open .att-home-loc-status-row,
.att-home-card .att-home-loc-btn-upcoming .att-home-loc-status-row{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:100%;
}



.att-home-card .att-home-loc-btn-default{
  background:var(--att-primary);
  border-color:var(--att-primary);
  color:#fff;
}
.att-home-card .att-home-loc-btn-default:hover{
  background:var(--att-primary-dark);
  border-color:var(--att-primary-dark);
  color:#fff;
}

/* Staff mobile home state buttons */
.att-home-card .att-home-scan-btn{
  background:var(--att-primary);
  border-color:var(--att-primary);
  color:#fff;
}
.att-home-card .att-home-scan-btn:hover{
  background:var(--att-primary-dark);
  border-color:var(--att-primary-dark);
  color:#fff;
}
.att-home-card .att-home-loc-btn-upcoming{
  background:var(--att-primary);
  border-color:var(--att-primary);
  color:#fff;
}
.att-home-card .att-home-loc-btn-upcoming:hover{
  background:var(--att-primary-dark);
  border-color:var(--att-primary-dark);
  color:#fff;
}
.att-home-card .att-home-loc-btn-upcoming .att-home-loc-title,
.att-home-card .att-home-loc-btn-upcoming .att-home-loc-status-text{
  color:#fff;
}
.att-home-card .att-home-loc-btn-upcoming .att-home-loc-count{
  background:rgba(255,255,255,.92);
  color:#111827;
}
.att-home-card .att-home-loc-btn-open{
  background:var(--att-warning);
  border-color:var(--att-warning);
  color:#111827;
}
.att-home-card .att-home-loc-btn-open:hover{
  filter:brightness(.95);
  color:#111827;
}
.att-home-card .att-home-loc-btn-open .att-home-loc-title,
.att-home-card .att-home-loc-btn-open .att-home-loc-status-text{
  color:#111827;
}
.att-home-card .att-home-loc-btn-open .att-home-loc-count{
  background:rgba(255,255,255,.92);
  color:#111827;
}

/* Location code attendance remark badge in Reports */
.att-code-remark-badge{display:inline-block;margin:0 0 6px 0;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:700;line-height:1.2;white-space:normal;border:1px solid transparent;}
.att-code-remark-rep{background:#e8f5e9;color:#1b5e20;border-color:#a5d6a7;}
.att-code-remark-auto{background:#fff8e1;color:#7a4b00;border-color:#ffe082;}


/* v1.6.10.502 clean mobile font + generated code report badge */
@media (max-width: 782px) {
  body, .att-wrap, .att-card, .att-public, .att-btn, .att-input, .att-table, .att-table * {
    font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
    font-size: 15px;
  }
  .att-loc-page-card-title, .att-title { font-size: 20px !important; }
}
.att-code-remark-badge {
  display: inline-block;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.25;
  border: 1px solid #bbf7d0;
  background: #dcfce7;
  color: #166534;
  max-width: 100%;
  white-space: normal;
}
.att-code-remark-auto {
  border-color: #fed7aa;
  background: #ffedd5;
  color: #9a3412;
}

/* v1.6.10.505: editable generated-code remark cards */
.att-code-remark-wrap .att-code-remark-edit{margin-top:2px;}
.att-code-remark-editor{min-width:220px;max-width:300px;}
.att-code-remark-editor select,
.att-code-remark-editor input{width:100%;min-height:36px;margin:0 0 6px 0;padding:7px 10px;border:1px solid #d1d5db;border-radius:10px;background:#fff;font-family:'Poppins',sans-serif;font-size:13px;line-height:1.3;}
.att-code-remark-actions{display:flex;gap:6px;flex-wrap:wrap;}

/* Mobile: location generated-code options */
.att-loc-code-options .att-loc-code-suboptions.is-disabled{
  opacity:.45;
  filter:grayscale(1);
}


/* v1.6.10.584: Mobile home fallback/polish */
.att-mobile-body .att-home-card{
  padding:16px !important;
  min-height:0 !important;
}
.att-home-intro{
  margin:0 0 14px 0;
  color:#6b7280;
  font-size:15px;
  line-height:1.45;
}
.att-mobile-home-grid{
  display:grid !important;
  grid-template-columns:1fr;
  gap:10px !important;
}
.att-mobile-home-grid .att-btn,
.att-home-card .att-home-action-btn{
  min-height:46px;
  justify-content:center;
  border-radius:14px;
  font-weight:700;
}
.att-home-card:empty,
.att-mobile-actions:empty{
  display:none !important;
}

/* v1.6.10.584: Event details shown above Location Check-in success message */
.att-loc-recorded-detail{
  border:1px solid #bbf7d0;
  background:#f0fdf4;
  color:#14532d;
  border-radius:14px;
  padding:12px 14px;
  margin:0 0 10px 0;
  text-align:left;
}
.att-loc-recorded-title{
  font-weight:800;
  font-size:16px;
  line-height:1.35;
  margin-bottom:8px;
}
.att-loc-recorded-grid{
  display:grid;
  grid-template-columns:92px 1fr;
  gap:5px 10px;
  font-size:13px;
  line-height:1.35;
}
.att-loc-recorded-grid span{
  color:#166534;
  opacity:.82;
}
.att-loc-recorded-grid strong{
  font-weight:700;
  color:#14532d;
}
.att-loc-recorded-message{
  border:1px solid #86efac;
  background:#ecfdf5;
  color:#14532d;
  border-radius:14px;
  padding:12px 14px;
  font-weight:800;
  text-align:center;
}
#attLocStaffMemberMsg.att-success{
  background:transparent !important;
  border:0 !important;
  padding:0 !important;
}


/* v1.6.10.587: Mobile buttons use regular font weight */
body.att-mobile-mode .att-mobile-app .att-btn,
body.att-mobile-mode .att-mobile-app button,
body.att-mobile-mode .att-mobile-nav a,
body.att-mobile-mode .att-home-card .att-home-action-btn,
body.att-mobile-mode .att-loc-staff-slot-btn,
body.att-mobile-mode input[type="button"],
body.att-mobile-mode input[type="submit"],
body.att-mobile-mode input[type="reset"],
.att-mobile-app .att-btn,
.att-mobile-app button,
.att-mobile-app input[type="button"],
.att-mobile-app input[type="submit"],
.att-mobile-app input[type="reset"]{
  font-weight:400 !important;
}

body.att-mobile-mode .att-mobile-app .att-btn *,
body.att-mobile-mode .att-mobile-app button *,
body.att-mobile-mode .att-mobile-nav a *,
body.att-mobile-mode .att-home-card .att-home-action-btn *,
.att-mobile-app .att-btn *,
.att-mobile-app button *{
  font-weight:400 !important;
}


/* v1.6.10.588: Force regular font weight for all mobile view button labels */
body.att-mobile-mode .att-mobile-app .att-btn,
body.att-mobile-mode .att-mobile-app .att-btn span,
body.att-mobile-mode .att-mobile-app .att-btn strong,
body.att-mobile-mode .att-mobile-app .att-btn b,
body.att-mobile-mode .att-mobile-app .att-home-action-btn,
body.att-mobile-mode .att-mobile-app .att-home-action-btn span,
body.att-mobile-mode .att-mobile-app .att-home-loc-btn,
body.att-mobile-mode .att-mobile-app .att-home-loc-btn span,
body.att-mobile-mode .att-mobile-app .att-home-loc-title,
body.att-mobile-mode .att-mobile-app .att-home-loc-status-text,
body.att-mobile-mode .att-mobile-app .att-home-loc-status-row,
body.att-mobile-mode .att-mobile-app .att-home-loc-row,
body.att-mobile-mode .att-mobile-nav a,
body.att-mobile-mode .att-mobile-nav a span,
body.att-mobile-mode .att-mobile-nav a .dashicons,
.att-mobile-app .att-btn,
.att-mobile-app .att-btn span,
.att-mobile-app .att-btn strong,
.att-mobile-app .att-btn b,
.att-mobile-app .att-home-action-btn,
.att-mobile-app .att-home-action-btn span,
.att-mobile-app .att-home-loc-btn,
.att-mobile-app .att-home-loc-btn span,
.att-mobile-app .att-home-loc-title,
.att-mobile-app .att-home-loc-status-text,
.att-mobile-app .att-home-loc-status-row,
.att-mobile-app .att-home-loc-row,
.att-mobile-nav a,
.att-mobile-nav a span{
  font-weight:400 !important;
}


/* v1.6.10.589: Home header alignment and regular weight */
.att-mobile-app.att-mobile-screen-home .att-mobile-title-wrap{
  width:100%;
}
.att-mobile-app.att-mobile-screen-home .att-mobile-title{
  width:100%;
  text-align:center;
  font-weight:700 !important;
  border-bottom:none;
  padding-bottom:0;
  line-height:1.35;
}
.att-mobile-app.att-mobile-screen-home .att-mobile-sub.att-mobile-greeting{
  width:100%;
  text-align:center;
  font-weight:400 !important;
  line-height:1.45;
  white-space:normal;
}


/* v1.6.10.591: Mobile profile table scroll containment */
.att-mobile-app .att-profile-card{
  overflow:hidden;
}
.att-mobile-app .att-profile-scroll{
  width:100%;
  max-width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
.att-mobile-app .att-profile-scroll .att-profile-table{
  width:max-content;
  min-width:620px;
  border-collapse:collapse;
}
.att-mobile-app .att-profile-scroll .att-profile-table th,
.att-mobile-app .att-profile-scroll .att-profile-table td{
  white-space:nowrap;
}
.att-mobile-app .att-profile-scroll .att-profile-table th{
  width:180px;
}


/* v1.6.10.592: divider between mobile home title and greeting */
.att-mobile-head-divider{
  width:min(84%, 560px);
  height:2px;
  background:#d7d8dc;
  margin:10px auto 14px;
  border-radius:999px;
  opacity:.95;
}


/* v1.6.10.593: Standard mobile font sizes for My Attendance page */
.att-mobile-app.att-mobile-screen-report_staff_member .att-mobile-title{
  font-size:18px !important;
  line-height:1.3 !important;
}

.att-mobile-app.att-mobile-screen-report_staff_member .att-mobile-sub{
  font-size:15px !important;
  line-height:1.4 !important;
}

.att-mobile-app.att-mobile-screen-report_staff_member .att-wrap{
  font-size:14px !important;
  line-height:1.45 !important;
  padding:0 !important;
}

.att-mobile-app.att-mobile-screen-report_staff_member .att-grid{
  gap:12px !important;
}

.att-mobile-app.att-mobile-screen-report_staff_member .att-card{
  padding:14px !important;
  border-radius:16px !important;
}

.att-mobile-app.att-mobile-screen-report_staff_member .att-stat{
  min-height:auto !important;
}

.att-mobile-app.att-mobile-screen-report_staff_member .att-stat-label{
  font-size:14px !important;
  line-height:1.35 !important;
  font-weight:500 !important;
}

.att-mobile-app.att-mobile-screen-report_staff_member .att-stat-value{
  font-size:24px !important;
  line-height:1.2 !important;
  font-weight:600 !important;
  margin-top:8px !important;
}

.att-mobile-app.att-mobile-screen-report_staff_member .att-card h3{
  font-size:20px !important;
  line-height:1.3 !important;
  font-weight:500 !important;
  margin:0 0 12px !important;
}

.att-mobile-app.att-mobile-screen-report_staff_member .att-accordion{
  padding:12px !important;
  border-radius:16px !important;
}

.att-mobile-app.att-mobile-screen-report_staff_member .att-accordion summary{
  gap:8px !important;
}

.att-mobile-app.att-mobile-screen-report_staff_member .att-accordion summary > strong{
  font-size:15px !important;
  line-height:1.35 !important;
  font-weight:600 !important;
}

.att-mobile-app.att-mobile-screen-report_staff_member .att-pill{
  font-size:12px !important;
  line-height:1.2 !important;
  padding:5px 10px !important;
  font-weight:500 !important;
}

.att-mobile-app.att-mobile-screen-report_staff_member .att-rowcard{
  padding:12px !important;
  border-radius:14px !important;
}

.att-mobile-app.att-mobile-screen-report_staff_member .att-rowcard-title strong{
  font-size:14px !important;
  line-height:1.35 !important;
}

.att-mobile-app.att-mobile-screen-report_staff_member .att-rowcard-title .muted,
.att-mobile-app.att-mobile-screen-report_staff_member .att-rowcard-title .small{
  font-size:12px !important;
  line-height:1.35 !important;
}

.att-mobile-app.att-mobile-screen-report_staff_member .att-k{
  font-size:11px !important;
  line-height:1.2 !important;
}

.att-mobile-app.att-mobile-screen-report_staff_member .att-v{
  font-size:14px !important;
  line-height:1.35 !important;
}

.att-mobile-app.att-mobile-screen-report_staff_member .muted.small{
  font-size:12px !important;
  line-height:1.35 !important;
}

.att-mobile-app.att-mobile-screen-report_staff_member .att-table,
.att-mobile-app.att-mobile-screen-report_staff_member .att-table th,
.att-mobile-app.att-mobile-screen-report_staff_member .att-table td{
  font-size:12px !important;
  line-height:1.35 !important;
}


/* v1.6.10.603: Mobile home title centre alignment and alert badge position */
.att-mobile-app .att-mobile-pagehead,
.att-mobile-app .att-mobile-title-wrap{
  width:100% !important;
  text-align:center !important;
}
.att-mobile-app .att-mobile-title-wrap{
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
}
.att-mobile-app .att-mobile-title{
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  margin-left:auto !important;
  margin-right:auto !important;
  text-align:center !important;
}
.att-mobile-app.att-mobile-screen-home .att-mobile-title{
  text-align:center !important;
}

.att-mobile-nav a{
  position:relative !important;
}
.att-mobile-nav .att-nav-label{
  margin-left:0 !important;
}
.att-mobile-nav .att-nav-badge{
  position:absolute !important;
  top:50% !important;
  right:10px !important;
  transform:translateY(-8%) !important;
  margin-left:0 !important;
  z-index:2 !important;
}



/* v1.6.10.609 - Key-in Code page UI refinement */
.att-code-entry-panel{border-radius:22px; background:#fff;}
.att-code-entry-row{display:flex; gap:10px; align-items:stretch;}
.att-code-input{flex:1 1 auto; min-width:0;}
.att-code-submit-btn{min-width:150px; display:inline-flex; align-items:center; justify-content:center; border-radius:16px;}
.att-code-confirm-shell{padding:16px !important; margin:0; border:1px solid #e5e7eb; border-radius:22px; background:#fff; box-shadow:none;}
.att-code-event-summary{border:1px solid #e5e7eb; border-radius:18px; padding:18px; margin-bottom:16px; background:#fcfcfd; font-size:15px; line-height:1.55;}
.att-code-event-title{display:block; font-size:20px; font-weight:700; margin-bottom:12px; color:#111827; line-height:1.3; word-break:break-word;}
.att-code-event-grid{display:grid; gap:10px;}
.att-code-event-row{display:grid; grid-template-columns:120px minmax(0,1fr); gap:12px; align-items:start;}
.att-code-event-label{color:#6b7280; font-weight:500;}
.att-code-event-value{color:#111827; font-weight:600; word-break:break-word;}
.att-code-method-intro{margin:4px 0 14px; font-size:16px; line-height:1.6; color:#4b5563;}
.att-code-method-buttons{display:grid; grid-template-columns:1fr; gap:12px; margin-bottom:12px;}
.att-code-method-btn{width:100%; min-height:46px; padding:8px 14px; border-radius:16px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; font-size:16px; line-height:1.25; white-space:normal;}
.att-code-method-btn-title,.att-code-method-btn-sub{display:block; width:100%;}
.att-code-method-btn-title{margin-bottom:0; line-height:1.15;}
.att-code-method-btn-sub{margin-top:-2px; line-height:1.1;}
.att-code-choice-area{margin-top:12px;}
.att-code-subcard{padding:14px !important; margin:0; box-shadow:none; border:1px solid #e5e7eb; border-radius:18px; background:#fafafa;}
.att-code-subtitle{margin-bottom:10px; font-size:14px; line-height:1.5;}
.att-code-staff-select{margin-bottom:12px;}
.att-code-confirm-btn{width:100%;}
@media (max-width: 767px){
  .att-code-entry-row{flex-direction:column;}
  .att-code-submit-btn{width:100%; min-height:48px;}
  .att-code-event-row{grid-template-columns:1fr; gap:4px;}
  .att-code-event-title{font-size:18px;}
  .att-code-method-btn{min-height:44px; padding:8px 12px;}
}

.att-code-method-selected{box-shadow:0 0 0 3px rgba(47,107,31,.18); filter:brightness(.95);}

.att-code-sub-actions{display:grid; grid-template-columns:1fr; gap:10px;}
.att-code-back-btn{width:100%; min-height:44px; padding:8px 14px; border-radius:16px;}

/* v1.6.10.682: Mobile Alerts session tab - tap to expand full session details */
.att-notif-session-tab{
  width:100%;
  margin:10px 0 0 0;
  border:1px solid #d1d5db;
  border-radius:18px;
  background:#f9fafb;
  padding:12px 12px 12px 14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  cursor:pointer;
  text-align:left;
  font:inherit;
  color:#374151;
  box-shadow:0 8px 18px rgba(17,24,39,.04);
}
.att-notif-session-tab:focus{
  outline:2px solid rgba(47,107,31,.22);
  outline-offset:2px;
}
.att-notif-session-tab-main{
  min-width:0;
  flex:1;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.att-notif-session-title{
  display:block;
  font-size:15px;
  line-height:1.35;
  font-weight:800;
  color:#374151;
  overflow-wrap:anywhere;
}
.att-notif-session-tab-meta{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.att-notif-tab-pill{
  display:inline-flex;
  align-items:center;
  gap:4px;
  max-width:100%;
  border:1px solid #e5e7eb;
  border-radius:999px;
  background:#fff;
  padding:4px 8px;
  font-size:11px;
  line-height:1.25;
  color:#6b7280;
}
.att-notif-tab-pill strong{
  font-size:11px;
}
.att-notif-session-toggle{
  flex:0 0 auto;
  width:30px;
  height:30px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#eef4ea;
  color:var(--att-primary);
  font-size:20px;
  font-weight:800;
  line-height:1;
  transition:transform .18s ease;
}
.att-notif-details{
  display:none;
}
.att-notif-item.is-expanded .att-notif-details{
  display:block;
}
.att-notif-item.is-expanded .att-notif-session-toggle{
  transform:rotate(180deg);
}
.att-notif-item.is-read .att-notif-session-tab{
  background:#fcfcfd;
  border-color:#e5e7eb;
}
.att-notif-item.is-read .att-notif-session-title,
.att-notif-item.is-read .att-notif-tab-pill{
  color:#6b7280;
}
@media (max-width:420px){
  .att-notif-tab-pill{
    width:100%;
    justify-content:space-between;
  }
}


/* v1.6.10.692: Standard mobile typography across the app */
body.att-mobile-mode,
body.att-mobile-mode .att-mobile-app,
body.att-mobile-mode .att-mobile-body,
body.att-mobile-mode .att-wrap,
body.att-mobile-mode .att-card,
body.att-mobile-mode .att-public,
body.att-mobile-mode .att-input,
body.att-mobile-mode .att-btn,
body.att-mobile-mode .att-table,
body.att-mobile-mode .att-table th,
body.att-mobile-mode .att-table td,
body.att-mobile-mode .att-k,
body.att-mobile-mode .att-v,
body.att-mobile-mode .muted,
body.att-mobile-mode p,
body.att-mobile-mode label,
body.att-mobile-mode select,
body.att-mobile-mode input,
body.att-mobile-mode textarea{
  font-size:14px !important;
  line-height:1.45 !important;
}

body.att-mobile-mode .small,
body.att-mobile-mode small,
body.att-mobile-mode .att-stat-label,
body.att-mobile-mode .att-k,
body.att-mobile-mode .att-pill{
  font-size:12px !important;
  line-height:1.35 !important;
}

body.att-mobile-mode .att-mobile-title{
  font-size:18px !important;
  line-height:1.3 !important;
  font-weight:700 !important;
}

body.att-mobile-mode .att-mobile-sub{
  font-size:15px !important;
  line-height:1.35 !important;
  font-weight:400 !important;
}

body.att-mobile-mode .att-card h2,
body.att-mobile-mode .att-card h3,
body.att-mobile-mode .att-rowcard-title strong,
body.att-mobile-mode .att-accordion summary strong{
  font-size:17px !important;
  line-height:1.35 !important;
  font-weight:700 !important;
}

body.att-mobile-mode .att-stat-value{
  font-size:22px !important;
  line-height:1.2 !important;
  font-weight:700 !important;
}

body.att-mobile-mode .att-mobile-nav a,
body.att-mobile-mode .att-mobile-nav a span:not(.dashicons){
  font-size:13px !important;
  line-height:1.25 !important;
}

/* v1.6.10.692: My Attendance mobile summary card arrangement */
.att-mobile-app.att-mobile-screen-report_staff_member .att-report-summary-grid{
  display:grid !important;
  grid-template-columns:repeat(6, minmax(0, 1fr)) !important;
  gap:10px !important;
  align-items:stretch !important;
}

.att-mobile-app.att-mobile-screen-report_staff_member .att-report-summary-grid .att-report-stat-card{
  min-width:0 !important;
  min-height:82px !important;
  padding:12px 10px !important;
  border-radius:16px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:space-between !important;
}

.att-mobile-app.att-mobile-screen-report_staff_member .att-report-stat-attended,
.att-mobile-app.att-mobile-screen-report_staff_member .att-report-stat-absence,
.att-mobile-app.att-mobile-screen-report_staff_member .att-report-stat-excused{
  grid-column:span 2 !important;
}

.att-mobile-app.att-mobile-screen-report_staff_member .att-report-stat-total,
.att-mobile-app.att-mobile-screen-report_staff_member .att-report-stat-percent{
  grid-column:span 3 !important;
}

.att-mobile-app.att-mobile-screen-report_staff_member .att-report-summary-grid .att-stat-label{
  color:#6b7280 !important;
  font-size:12px !important;
  line-height:1.3 !important;
  font-weight:600 !important;
  margin:0 !important;
}

.att-mobile-app.att-mobile-screen-report_staff_member .att-report-summary-grid .att-stat-value{
  font-size:24px !important;
  line-height:1.15 !important;
  font-weight:800 !important;
  margin-top:8px !important;
  letter-spacing:-.02em !important;
}

.att-mobile-app.att-mobile-screen-report_staff_member .att-report-stat-attended{
  background:#ecfdf5 !important;
  border-color:#bbf7d0 !important;
}

.att-mobile-app.att-mobile-screen-report_staff_member .att-report-stat-absence{
  background:#fef2f2 !important;
  border-color:#fecaca !important;
}

.att-mobile-app.att-mobile-screen-report_staff_member .att-report-stat-excused{
  background:#eff6ff !important;
  border-color:#bfdbfe !important;
}

.att-mobile-app.att-mobile-screen-report_staff_member .att-report-stat-total,
.att-mobile-app.att-mobile-screen-report_staff_member .att-report-stat-percent{
  background:#ffffff !important;
}

@media (max-width:360px){
  .att-mobile-app.att-mobile-screen-report_staff_member .att-report-summary-grid{
    gap:8px !important;
  }
  .att-mobile-app.att-mobile-screen-report_staff_member .att-report-summary-grid .att-report-stat-card{
    padding:10px 8px !important;
  }
  .att-mobile-app.att-mobile-screen-report_staff_member .att-report-summary-grid .att-stat-label{
    font-size:11px !important;
  }
  .att-mobile-app.att-mobile-screen-report_staff_member .att-report-summary-grid .att-stat-value{
    font-size:21px !important;
  }
}


/* v1.6.10.693: mobile My Attendance By Event tabs */
.att-mobile-app.att-mobile-screen-report_staff_member .att-event-tab-accordion{
  padding:0 !important;
  border-radius:18px !important;
  margin-top:12px !important;
  overflow:hidden !important;
}
.att-mobile-app.att-mobile-screen-report_staff_member .att-event-tab-summary{
  padding:14px !important;
  gap:10px !important;
  background:#f8fafc !important;
  align-items:flex-start !important;
}
.att-mobile-app.att-mobile-screen-report_staff_member .att-event-tab-title{
  font-size:15px !important;
  line-height:1.35 !important;
  font-weight:700 !important;
  letter-spacing:-.01em !important;
}
.att-mobile-app.att-mobile-screen-report_staff_member .att-event-tab-status .att-pill{
  font-size:12px !important;
  padding:5px 10px !important;
}
.att-mobile-app.att-mobile-screen-report_staff_member .att-event-tab-body{
  padding:12px !important;
}
.att-mobile-app.att-mobile-screen-report_staff_member .att-event-tab-metrics{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:8px !important;
  margin:0 0 10px !important;
}
.att-mobile-app.att-mobile-screen-report_staff_member .att-event-tab-accordion .att-rowcard{
  margin-top:10px !important;
}


/* v1.6.10.694: Mobile My Attendance page - regular font weight everywhere */
.att-mobile-app.att-mobile-screen-report_staff_member,
.att-mobile-app.att-mobile-screen-report_staff_member *,
body.att-mobile-mode .att-mobile-app.att-mobile-screen-report_staff_member,
body.att-mobile-mode .att-mobile-app.att-mobile-screen-report_staff_member *{
  font-weight:400 !important;
}
.att-mobile-app.att-mobile-screen-report_staff_member strong,
.att-mobile-app.att-mobile-screen-report_staff_member b,
body.att-mobile-mode .att-mobile-app.att-mobile-screen-report_staff_member strong,
body.att-mobile-mode .att-mobile-app.att-mobile-screen-report_staff_member b{
  font-weight:400 !important;
}

/* v1.6.10.713: Mobile button colour standardization - white background with border */
body.att-mobile-mode .att-mobile-app .att-btn,
body.att-mobile-mode .att-mobile-app .att-btn-primary,
body.att-mobile-mode .att-mobile-app .att-btn-secondary,
body.att-mobile-mode .att-mobile-app .att-btn-warning,
body.att-mobile-mode .att-mobile-app .att-home-action-btn,
body.att-mobile-mode .att-mobile-app .att-home-loc-btn,
body.att-mobile-mode .att-mobile-app input[type="submit"],
body.att-mobile-mode .att-mobile-app input[type="button"],
body.att-mobile-mode .att-mobile-app button:not(.att-icon-btn):not(.att-modal-close):not(.att-pwa-floating-close){
  background:#ffffff !important;
  background-image:none !important;
  border:1px solid #d1d5db !important;
  color:#245116 !important;
  box-shadow:none !important;
}
body.att-mobile-mode .att-mobile-app .att-btn:hover,
body.att-mobile-mode .att-mobile-app .att-home-action-btn:hover,
body.att-mobile-mode .att-mobile-app .att-home-loc-btn:hover,
body.att-mobile-mode .att-mobile-app input[type="submit"]:hover,
body.att-mobile-mode .att-mobile-app input[type="button"]:hover,
body.att-mobile-mode .att-mobile-app button:not(.att-icon-btn):not(.att-modal-close):not(.att-pwa-floating-close):hover{
  background:#f9fafb !important;
  border-color:#9ca3af !important;
  color:#245116 !important;
}
body.att-mobile-mode .att-mobile-app .att-btn-danger{
  background:#ffffff !important;
  border-color:#ef4444 !important;
  color:#b91c1c !important;
}
body.att-mobile-mode .att-mobile-app .att-btn:disabled,
body.att-mobile-mode .att-mobile-app button:disabled,
body.att-mobile-mode .att-mobile-app input[type="submit"]:disabled,
body.att-mobile-mode .att-mobile-app input[type="button"]:disabled{
  background:#f9fafb !important;
  border-color:#e5e7eb !important;
  color:#9ca3af !important;
  opacity:1 !important;
  cursor:not-allowed !important;
}


/* v1.6.10.714: keep mobile buttons visually consistent with admin buttons */
body.att-mobile-mode .att-mobile-app .att-btn,
body.att-mobile-mode .att-mobile-app .att-btn-primary,
body.att-mobile-mode .att-mobile-app .att-btn-secondary,
body.att-mobile-mode .att-mobile-app .att-btn-warning,
body.att-mobile-mode .att-mobile-app .att-home-action-btn,
body.att-mobile-mode .att-mobile-app .att-home-loc-btn,
body.att-mobile-mode .att-mobile-app input[type="submit"],
body.att-mobile-mode .att-mobile-app input[type="button"],
body.att-mobile-mode .att-mobile-app button:not(.att-icon-btn):not(.att-modal-close):not(.att-pwa-floating-close){
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:8px !important;
  min-height:44px !important;
  padding:10px 14px !important;
  border:1px solid #d1d5db !important;
  border-radius:12px !important;
  background:#ffffff !important;
  background-image:none !important;
  color:#245116 !important;
  font-size:16px !important;
  font-weight:500 !important;
  line-height:1.2 !important;
  text-decoration:none !important;
  box-shadow:none !important;
  transform:none !important;
}
body.att-mobile-mode .att-mobile-app .att-btn:hover,
body.att-mobile-mode .att-mobile-app .att-home-action-btn:hover,
body.att-mobile-mode .att-mobile-app .att-home-loc-btn:hover,
body.att-mobile-mode .att-mobile-app input[type="submit"]:hover,
body.att-mobile-mode .att-mobile-app input[type="button"]:hover,
body.att-mobile-mode .att-mobile-app button:not(.att-icon-btn):not(.att-modal-close):not(.att-pwa-floating-close):hover{
  background:#f9fafb !important;
  border-color:#9ca3af !important;
  color:#245116 !important;
  box-shadow:none !important;
  transform:none !important;
}
body.att-mobile-mode .att-mobile-app .att-btn-danger{
  background:#ffffff !important;
  border-color:#ef4444 !important;
  color:#b91c1c !important;
}

/* Portal header hotfix: hide topbar page title on mobile too. */
body.att-portal .att-portal-topbar-title{display:none !important; visibility:hidden !important;}
body.att-portal .att-portal-topbar{justify-content:flex-end !important;}


/* v1.6.10.718: keep searchable dropdown text left-aligned on mobile/portal views. */
body.att-mobile-mode .att-mobile-app .att-sselect-trigger,
body.att-portal .att-sselect-trigger{
  display:flex !important;
  justify-content:space-between !important;
  text-align:left !important;
  width:100% !important;
}
body.att-mobile-mode .att-mobile-app .att-sselect-label,
body.att-portal .att-sselect-label{
  flex:1 1 auto !important;
  min-width:0 !important;
  text-align:left !important;
}
body.att-mobile-mode .att-mobile-app .att-sselect-option,
body.att-portal .att-sselect-option{
  display:block !important;
  width:100% !important;
  justify-content:flex-start !important;
  text-align:left !important;
}


/* v1.6.10.719: stronger left alignment for searchable dropdown buttons on mobile/portal. */
body.att-mobile-mode .att-mobile-app .att-sselect button.att-sselect-trigger:not(.att-icon-btn):not(.att-modal-close):not(.att-pwa-floating-close),
body.att-portal .att-sselect button.att-sselect-trigger:not(.att-icon-btn):not(.att-modal-close):not(.notice-dismiss){
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  text-align:left !important;
  width:100% !important;
}
body.att-mobile-mode .att-mobile-app .att-sselect .att-sselect-options button.att-sselect-option:not(.att-icon-btn):not(.att-modal-close):not(.att-pwa-floating-close),
body.att-portal .att-sselect .att-sselect-options button.att-sselect-option:not(.att-icon-btn):not(.att-modal-close):not(.notice-dismiss){
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  text-align:left !important;
  width:100% !important;
  padding-left:14px !important;
  padding-right:14px !important;
}


/* v1.6.10.721: Highlight mobile Location Check-in button in yellow when an open location session is available.
   This must override the global white/border button standardization added in v1.6.10.713-714. */
body.att-mobile-mode .att-mobile-app .att-home-card .att-home-loc-btn-open,
body.att-mobile-mode .att-mobile-app .att-home-card .att-btn.att-home-loc-btn-open,
body.att-mobile-mode .att-mobile-app .att-home-loc-btn.att-home-loc-btn-open,
.att-mobile-app .att-home-card .att-home-loc-btn-open,
.att-mobile-app .att-home-loc-btn.att-home-loc-btn-open{
  background:#f9da1f !important;
  background-image:none !important;
  border-color:#d9a600 !important;
  color:#111827 !important;
  box-shadow:0 6px 16px rgba(217,166,0,.18) !important;
}
body.att-mobile-mode .att-mobile-app .att-home-card .att-home-loc-btn-open:hover,
body.att-mobile-mode .att-mobile-app .att-home-card .att-btn.att-home-loc-btn-open:hover,
body.att-mobile-mode .att-mobile-app .att-home-loc-btn.att-home-loc-btn-open:hover,
.att-mobile-app .att-home-card .att-home-loc-btn-open:hover,
.att-mobile-app .att-home-loc-btn.att-home-loc-btn-open:hover{
  background:#f5c400 !important;
  border-color:#c49100 !important;
  color:#111827 !important;
}
body.att-mobile-mode .att-mobile-app .att-home-loc-btn-open .att-home-loc-title,
body.att-mobile-mode .att-mobile-app .att-home-loc-btn-open .att-home-loc-status-text,
body.att-mobile-mode .att-mobile-app .att-home-loc-btn-open span:not(.dashicons),
.att-mobile-app .att-home-loc-btn-open .att-home-loc-title,
.att-mobile-app .att-home-loc-btn-open .att-home-loc-status-text,
.att-mobile-app .att-home-loc-btn-open span:not(.dashicons){
  color:#111827 !important;
}
body.att-mobile-mode .att-mobile-app .att-home-loc-btn-open .att-home-loc-count,
.att-mobile-app .att-home-loc-btn-open .att-home-loc-count{
  background:#ffffff !important;
  border:1px solid rgba(17,24,39,.14) !important;
  color:#111827 !important;
}

/* v1.6.10.738: keep mobile Location Check-in shortcut text visible on all Android/mobile browsers. */
body.att-mobile-mode .att-mobile-app .att-home-loc-btn-visible,
.att-mobile-app .att-home-loc-btn-visible{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  min-height:72px !important;
  white-space:normal !important;
  overflow:visible !important;
  text-align:center !important;
  font-size:18px !important;
  line-height:1.25 !important;
  font-weight:600 !important;
  text-indent:0 !important;
}
body.att-mobile-mode .att-mobile-app .att-home-loc-btn-visible *,
.att-mobile-app .att-home-loc-btn-visible *{
  display:inline !important;
  visibility:visible !important;
  opacity:1 !important;
  text-indent:0 !important;
}


/* v1.6.10.739: Standardized mobile font sizing */
body.att-mobile-mode,
body.att-mobile-mode .att-mobile-app,
.att-mobile-app{
  font-size: 16px !important;
  line-height: 1.45;
}
body.att-mobile-mode .att-mobile-app .att-btn,
body.att-mobile-mode .att-mobile-app button,
body.att-mobile-mode .att-mobile-app input,
body.att-mobile-mode .att-mobile-app select,
body.att-mobile-mode .att-mobile-app textarea,
.att-mobile-app .att-btn,
.att-mobile-app button,
.att-mobile-app input,
.att-mobile-app select,
.att-mobile-app textarea{
  font-size: 16px !important;
  line-height: 1.35 !important;
}
body.att-mobile-mode .att-mobile-app .att-home-card .att-btn,
.att-mobile-app .att-home-card .att-btn{
  min-height: 54px !important;
  font-size: 18px !important;
  line-height: 1.25 !important;
  font-weight: 600 !important;
}
body.att-mobile-mode .att-mobile-app .att-home-loc-btn,
.att-mobile-app .att-home-loc-btn{
  font-size: 17px !important;
  line-height: 1.2 !important;
  white-space: normal !important;
}
body.att-mobile-mode .att-mobile-app .att-home-loc-status-text,
.att-mobile-app .att-home-loc-status-text{
  font-size: 15px !important;
  line-height: 1.2 !important;
}
body.att-mobile-mode .att-mobile-nav a,
.att-mobile-nav a{
  font-size: 14px !important;
  line-height: 1.2 !important;
}
body.att-mobile-mode .att-mobile-title,
.att-mobile-app .att-mobile-title{
  font-size: 22px !important;
  line-height: 1.25 !important;
}
body.att-mobile-mode .att-mobile-sub,
.att-mobile-app .att-mobile-sub,
body.att-mobile-mode .att-mobile-app small,
.att-mobile-app small{
  font-size: 14px !important;
  line-height: 1.4 !important;
}

/* v1.6.10.741: smaller mobile home action button text for long labels */
body.att-mobile-mode .att-mobile-app .att-home-card .att-btn,
.att-mobile-app .att-home-card .att-btn{
  font-size: 16px !important;
  line-height: 1.18 !important;
  font-weight: 600 !important;
  padding-left: 12px !important;
  padding-right: 12px !important;
}
body.att-mobile-mode .att-mobile-app .att-home-loc-btn,
.att-mobile-app .att-home-loc-btn{
  font-size: 15px !important;
  line-height: 1.18 !important;
  letter-spacing: -0.01em !important;
}
@media (max-width: 380px){
  body.att-mobile-mode .att-mobile-app .att-home-card .att-btn,
  .att-mobile-app .att-home-card .att-btn{
    font-size: 15px !important;
  }
  body.att-mobile-mode .att-mobile-app .att-home-loc-btn,
  .att-mobile-app .att-home-loc-btn{
    font-size: 14px !important;
  }
}

/* v1.6.10.743: Location check-out buttons must remain clickable so backend can validate timing. */
.attStaffMemberLocCheckin[data-action="checkout"].is-disabled{pointer-events:auto !important; opacity:1 !important;}

/* v1.6.10.745: After check-in, hide the action button until Check-out is available. */
.attStaffMemberLocCheckin[data-action="checkout"].att-checkout-pending{
  display:none !important;
  visibility:hidden !important;
}
.attStaffMemberLocCheckin.att-checkout-available,
.att-loc-staff-slot-checkout-available .attStaffMemberLocCheckin[data-action="checkout"]{
  display:flex !important;
  visibility:visible !important;
  opacity:1 !important;
  pointer-events:auto !important;
}
.att-loc-staff-slot-checkout-available .att-loc-staff-slot-btn,
.attStaffMemberLocCheckin.att-checkout-available{
  font-weight:600 !important;
}

/* v1.6.10.745: Clear note shown after staff already checked in. */
.att-loc-staff-slot-card-recorded .att-loc-staff-slot-meta{
  font-weight:500;
}
.att-loc-staff-slot-card-recorded .att-loc-staff-slot-meta span{
  font-weight:400;
}


/* v1.6.10.746: after staff already checked in, keep mobile home Location button non-highlighted until Check-out opens. */
.att-home-loc-btn-recorded{
  background:#ffffff !important;
  color:#2f5d24 !important;
  border-color:#d1d5db !important;
  box-shadow:none !important;
}

/* v1.6.10.749: Mobile home Location button count/status on second line. */
body.att-mobile-mode .att-mobile-app .att-home-loc-btn,
.att-mobile-app .att-home-loc-btn{
  flex-direction:column !important;
  gap:4px !important;
  white-space:normal !important;
  text-align:center !important;
}
body.att-mobile-mode .att-mobile-app .att-home-loc-btn .att-home-loc-title,
body.att-mobile-mode .att-mobile-app .att-home-loc-btn .att-home-loc-state,
.att-mobile-app .att-home-loc-btn .att-home-loc-title,
.att-mobile-app .att-home-loc-btn .att-home-loc-state{
  display:block !important;
  width:100% !important;
  line-height:1.18 !important;
  text-align:center !important;
  font-weight:600 !important;
}
body.att-mobile-mode .att-mobile-app .att-home-loc-btn .att-home-loc-state,
.att-mobile-app .att-home-loc-btn .att-home-loc-state{
  margin-top:2px !important;
  font-size:.92em !important;
  letter-spacing:0 !important;
}

/* v1.6.10.750: Upcoming mobile Location Check-in sessions collapse into an accordion. */
body.att-mobile-mode .att-mobile-app details.att-loc-staff-slot-accordion,
.att-mobile-app details.att-loc-staff-slot-accordion{
  display:block;
  padding:0 !important;
  overflow:hidden;
}
body.att-mobile-mode .att-mobile-app .att-loc-staff-slot-summary,
.att-mobile-app .att-loc-staff-slot-summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:18px 20px;
  cursor:pointer;
  list-style:none;
}
body.att-mobile-mode .att-mobile-app .att-loc-staff-slot-summary::-webkit-details-marker,
.att-mobile-app .att-loc-staff-slot-summary::-webkit-details-marker{
  display:none;
}
body.att-mobile-mode .att-mobile-app .att-loc-staff-slot-summary::after,
.att-mobile-app .att-loc-staff-slot-summary::after{
  content:'+';
  flex:0 0 auto;
  width:26px;
  height:26px;
  border-radius:999px;
  border:1px solid #d1d5db;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#4b5563;
  font-weight:800;
}
body.att-mobile-mode .att-mobile-app details.att-loc-staff-slot-accordion[open] .att-loc-staff-slot-summary::after,
.att-mobile-app details.att-loc-staff-slot-accordion[open] .att-loc-staff-slot-summary::after{
  content:'−';
}
body.att-mobile-mode .att-mobile-app .att-loc-staff-slot-summary .att-loc-staff-slot-name,
.att-mobile-app .att-loc-staff-slot-summary .att-loc-staff-slot-name{
  margin:0;
  flex:1 1 auto;
}
body.att-mobile-mode .att-mobile-app .att-loc-staff-slot-summary .att-status-word,
.att-mobile-app .att-loc-staff-slot-summary .att-status-word{
  flex:0 0 auto;
  font-size:13px;
  margin-left:auto;
}
body.att-mobile-mode .att-mobile-app .att-loc-staff-slot-accordion-body,
.att-mobile-app .att-loc-staff-slot-accordion-body{
  padding:0 20px 18px;
}


/* v1.6.10.751: keep mobile home Location shortcut text visible in every state, including recorded/default. */
body.att-mobile-mode .att-mobile-app .att-home-loc-btn,
.att-mobile-app .att-home-loc-btn{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  min-height:72px !important;
  white-space:normal !important;
  overflow:visible !important;
  text-align:center !important;
  text-indent:0 !important;
}
body.att-mobile-mode .att-mobile-app .att-home-loc-btn .att-home-loc-title,
body.att-mobile-mode .att-mobile-app .att-home-loc-btn .att-home-loc-state,
.att-mobile-app .att-home-loc-btn .att-home-loc-title,
.att-mobile-app .att-home-loc-btn .att-home-loc-state{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  text-indent:0 !important;
}
body.att-mobile-mode .att-mobile-app .att-home-loc-btn:not(.att-home-loc-btn-open) .att-home-loc-title,
body.att-mobile-mode .att-mobile-app .att-home-loc-btn:not(.att-home-loc-btn-open) .att-home-loc-state,
.att-mobile-app .att-home-loc-btn:not(.att-home-loc-btn-open) .att-home-loc-title,
.att-mobile-app .att-home-loc-btn:not(.att-home-loc-btn-open) .att-home-loc-state{
  color:#245116 !important;
}
body.att-mobile-mode .att-mobile-app .att-home-loc-btn-open .att-home-loc-title,
body.att-mobile-mode .att-mobile-app .att-home-loc-btn-open .att-home-loc-state,
.att-mobile-app .att-home-loc-btn-open .att-home-loc-title,
.att-mobile-app .att-home-loc-btn-open .att-home-loc-state{
  color:#111827 !important;
}

/* v1.0.23: compact, native-style mobile attendance login. */
.att-mobile-screen-login .att-mobile-brandbar,
.att-mobile-screen-login .att-mobile-pagehead { display:none !important; }
.att-mobile-screen-login .att-mobile-body { padding:24px 16px max(38px, env(safe-area-inset-bottom)) !important; min-height:calc(100svh - 16px); display:flex; flex-direction:column; justify-content:center; }
.att-mobile-screen-login .att-mobile-login { width:min(100%,430px); margin:0 auto; padding:26px 22px !important; border-radius:22px !important; box-shadow:0 18px 48px rgba(16,46,27,.09) !important; }
.att-mobile-login-brand { display:block; max-width:210px; max-height:86px; width:auto; object-fit:contain; margin:0 auto 20px; }
.att-mobile-login-heading { font-size:24px !important; text-align:center; font-weight:600 !important; line-height:1.3 !important; margin:0 0 22px !important; }
.att-mobile-screen-login .att-mobile-login label { font-size:14px !important; font-weight:500 !important; }
.att-mobile-screen-login .att-mobile-login input[type=text],
.att-mobile-screen-login .att-mobile-login input[type=password] { height:50px !important; min-height:50px !important; border-radius:12px !important; font-size:16px !important; }
.att-mobile-screen-login .att-mobile-login .att-pwa-actions { gap:8px; }
.att-mobile-screen-login .att-mobile-login .att-divider { margin:10px 0 !important; }
@media (max-width:380px) { .att-mobile-screen-login .att-mobile-login { padding:22px 16px !important; } }
