/* ════════════════════════════════════════════════════════════
 * Theme Overrides v4 — gradient/token unification (2026-05-13)
 * Targets remaining hardcoded amber/yellow & gradient mixes
 * in assets/css/style.css. Token-only — zero brand colors.
 * ════════════════════════════════════════════════════════════ */
:root{
  --primary-soft-bg: color-mix(in oklab, var(--primary-color, #1a5f2a) 8%, #fff);
  --primary-soft-bd: color-mix(in oklab, var(--primary-color, #1a5f2a) 18%, #fff);
  --secondary-soft-bg: color-mix(in oklab, var(--secondary-color, #dc2626) 8%, #fff);
  --gradient-primary: linear-gradient(135deg, var(--primary-color), var(--primary-light, var(--primary-color)));
  --gradient-secondary: linear-gradient(135deg, var(--secondary-color), var(--secondary-light, var(--secondary-color)));
  --shadow-elev-1: 0 4px 12px rgba(15,23,42,.08);
  --shadow-elev-2: 0 10px 24px rgba(15,23,42,.12);
}

/* Remove stray hard-coded amber/yellow tones from style.css gradients */
[style*="#ffd54f"], [style*="#ffca2c"]{ background-image: var(--gradient-secondary) !important; }

/* Buttons — use brand tokens consistently */
.btn-primary{
  background: var(--gradient-primary);
  border-color: var(--primary-color);
  box-shadow: 0 2px 6px color-mix(in oklab, var(--primary-color) 25%, transparent);
}
.btn-primary:hover, .btn-primary:focus{
  filter: brightness(1.05);
  background: var(--gradient-primary);
  border-color: var(--primary-color);
}
.btn-warning, .btn-secondary-brand{
  background: var(--gradient-secondary);
  border-color: var(--secondary-color);
  color:#fff;
}

/* Cards / sections that previously used random yellow accents */
.card-accent-yellow, .badge-yellow, .pill-yellow{
  background: var(--secondary-soft-bg);
  color: var(--secondary-color);
  border:1px solid color-mix(in oklab, var(--secondary-color) 22%, #fff);
}

/* Tables — soften header to brand tint */
.table > thead{ background: var(--primary-soft-bg); }
.table > thead th{ color: var(--primary-color); border-color: var(--primary-soft-bd); font-weight:700; }

/* Form controls — consistent focus ring */
.form-control:focus, .form-select:focus{
  border-color: var(--primary-color);
  box-shadow: 0 0 0 .2rem color-mix(in oklab, var(--primary-color) 22%, transparent);
}

/* Floating helpers (admin / public) */
.admin-fab-msg, .public-fab-help{ box-shadow: var(--shadow-elev-2); }

/* Bottom-nav active item — token instead of hardcoded green tint */
.admin-bottom-nav .admin-nav-item.active,
.admin-bottom-nav .admin-nav-item:hover,
.mob-bn-item.active{
  color: var(--primary-color) !important;
  background: var(--primary-soft-bg) !important;
}

/* Mobile typography baseline */
@media (max-width:640px){
  body{ font-size: .9375rem; line-height:1.55; }
  h1{ font-size: clamp(1.35rem, 4.5vw, 1.75rem); }
  h2{ font-size: clamp(1.2rem, 4vw, 1.5rem); }
  h3{ font-size: clamp(1.05rem, 3.5vw, 1.25rem); }
}

/* ════════════════════════════════════════════════════════════
 * v11.2 — Flat single-box stat-card (kills "double box" bug)
 * ════════════════════════════════════════════════════════════ */
:root{
  --color-success: var(--color-success, #16a34a);
  --color-danger:  var(--color-danger,  #dc2626);
  --color-warning: var(--color-warning, #f59e0b);
  --color-info:    var(--color-info,    #0ea5e9);
}
.stat-card-row .stat-card.stat-card-flat{
  background: #fff !important;
  border: 1px solid color-mix(in oklab, var(--sc-accent) 18%, #e5e7eb) !important;
  box-shadow: 0 1px 3px rgba(15,23,42,.05) !important;
  transition: transform .15s ease, box-shadow .15s ease;
}
.stat-card-row .stat-card.stat-card-flat:hover{
  transform: translateY(-1px);
  box-shadow: 0 6px 14px rgba(15,23,42,.08) !important;
}
.stat-card-row .stat-card-icon{
  width:44px; height:44px; border-radius:12px; font-size:1.05rem;
  box-shadow: 0 4px 10px color-mix(in oklab, var(--sc-accent) 35%, transparent);
}
.stat-card-row .stat-card-value{
  font-weight:800; line-height:1; font-size:1.5rem;
  color: var(--sc-accent);
  margin-bottom:2px;
}
.stat-card-row .stat-card-label{
  font-size:.75rem; font-weight:600; color:#6b7280;
  text-transform:uppercase; letter-spacing:.03em;
}
.stat-card-row .stat-card-trend{
  font-size:.7rem; font-weight:600; color:var(--sc-accent); margin-top:2px;
}
.stat-card-row .stat-card-chev{ color:var(--sc-accent); opacity:.45; font-size:.75rem; }
.stat-card-row .stat-card-badge{
  font-size:.6rem; background: color-mix(in oklab, var(--sc-accent) 15%, #fff);
  color: var(--sc-accent); border:1px solid color-mix(in oklab, var(--sc-accent) 25%, #fff);
}
@media (max-width:480px){
  .stat-card-row .stat-card-value{ font-size:1.25rem; }
  .stat-card-row .stat-card-icon{ width:38px; height:38px; font-size:.95rem; }
}

/* Public-side floating chat button (v11.2) */
.public-fab-help[data-chat="1"]{ right:18px; }
#publicChatPanel{
  position:fixed; right:18px; bottom:160px; z-index:65;
  width:340px; max-width:calc(100vw - 24px);
  background:#fff; border:1px solid #e6e9ef; border-radius:16px;
  box-shadow:0 16px 40px rgba(15,23,42,.18);
  display:none; flex-direction:column; overflow:hidden; font-family:inherit;
}
#publicChatPanel.open{ display:flex; }
#publicChatPanel .pcp-h{
  background:var(--primary-color,#1a5f2a); color:#fff;
  padding:12px 14px; display:flex; align-items:center; gap:10px;
}
#publicChatPanel .pcp-h .pcp-title{ font-weight:700; font-size:14px; }
#publicChatPanel .pcp-h .pcp-sub{ font-size:11px; opacity:.85; }
#publicChatPanel .pcp-x{ margin-left:auto; background:transparent; color:#fff; border:0; font-size:18px; cursor:pointer; }
#publicChatPanel .pcp-body{ padding:14px; max-height:420px; overflow:auto; }
#publicChatPanel .pcp-body label{ font-size:12px; font-weight:600; color:#374151; display:block; margin-bottom:4px; }
#publicChatPanel .pcp-body input,
#publicChatPanel .pcp-body textarea{
  width:100%; border:1px solid #e6e9ef; border-radius:10px;
  padding:9px 11px; font-size:14px; margin-bottom:10px;
  font-family:inherit;
}
#publicChatPanel .pcp-body textarea{ min-height:90px; resize:vertical; }
#publicChatPanel .pcp-body button{
  width:100%; border:0; border-radius:10px; padding:10px 14px;
  background:var(--primary-color,#1a5f2a); color:#fff;
  font-weight:700; font-size:14px; cursor:pointer;
}
#publicChatPanel .pcp-msg{ font-size:12.5px; padding:8px 10px; border-radius:8px; margin-top:6px; }
#publicChatPanel .pcp-msg.ok{ background:#ecfdf5; color:#065f46; border:1px solid #6ee7b7; }
#publicChatPanel .pcp-msg.err{ background:#fef2f2; color:#991b1b; border:1px solid #fecaca; }

/* ════════════════════════════════════════════════════════════
 * v11.3 — Final live/cPanel visibility fixes
 * These overrides load last in public/admin/member headers.
 * ════════════════════════════════════════════════════════════ */
html, body{
  font-family: var(--font-primary, 'Mukta', 'Noto Sans Devanagari', system-ui, sans-serif) !important;
  color: var(--text-color, #1f2937);
}
body{ background: var(--bg-soft, #f6faf7); }

/* Public header: avoid random blue utility bar from stale secondary color */
.pfl-top-bar,
.top-bar{
  background: var(--primary-color, #1a5f2a) !important;
  color: var(--text-on-primary, #fff) !important;
}
.pfl-top-bar a,
.top-bar a{ color: var(--text-on-primary, #fff) !important; }
.pfl-drop,
.main-nav .dropdown,
.nav-menu .dropdown{
  background: var(--bg-card, #fff) !important;
  border: 1px solid var(--border-color, #e5e7eb) !important;
  box-shadow: 0 16px 34px rgba(15,23,42,.12) !important;
}
.pfl-drop a,
.main-nav .dropdown a,
.nav-menu .dropdown a{
  color: var(--text-color, #1f2937) !important;
  background: transparent !important;
}
.pfl-drop a:hover,
.main-nav .dropdown a:hover,
.nav-menu .dropdown a:hover{
  color: var(--primary-color, #1a5f2a) !important;
  background: color-mix(in srgb, var(--primary-color, #1a5f2a) 9%, #fff) !important;
}

/* Online KYC stepper: screenshot issue — no giant outlined buttons */
#kymWizardNav.kym-wizard-nav,
.kym-wizard-nav{
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  gap: 8px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  padding: 10px 12px !important;
  background: color-mix(in srgb, var(--primary-color, #1a5f2a) 6%, #fff) !important;
  border: 1px solid color-mix(in srgb, var(--primary-color, #1a5f2a) 16%, #e5e7eb) !important;
  border-radius: 14px !important;
  scrollbar-width: thin;
}
#kymWizardNav .kym-step-btn,
.kym-step-btn{
  appearance: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  flex: 0 0 auto !important;
  max-width: 176px !important;
  min-height: 34px !important;
  padding: 6px 12px !important;
  border: 1px solid color-mix(in srgb, var(--primary-color, #1a5f2a) 22%, #d7dde5) !important;
  border-radius: 999px !important;
  background: var(--bg-card, #fff) !important;
  color: var(--text-color, #1f2937) !important;
  box-shadow: none !important;
  font: 700 .78rem/1.15 var(--font-primary, 'Mukta', sans-serif) !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-decoration: none !important;
}
#kymWizardNav .kym-step-btn.active,
.kym-step-btn.active{
  background: var(--primary-color, #1a5f2a) !important;
  color: var(--text-on-primary, #fff) !important;
  border-color: var(--primary-color, #1a5f2a) !important;
}
#kymWizardNav .kym-step-btn.done,
.kym-step-btn.done{
  background: color-mix(in srgb, var(--primary-color, #1a5f2a) 11%, #fff) !important;
  color: var(--primary-dark, var(--primary-color, #1a5f2a)) !important;
}
#kymWizardNav .kym-step-num,
.kym-step-btn .kym-step-num{
  width: 20px !important;
  height: 20px !important;
  min-width: 20px !important;
  border-radius: 999px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: color-mix(in srgb, var(--primary-color, #1a5f2a) 12%, #fff) !important;
  color: inherit !important;
  font-size: .72rem !important;
}
#kymWizardNav .kym-step-btn.active .kym-step-num,
.kym-step-btn.active .kym-step-num{
  background: color-mix(in srgb, #fff 24%, transparent) !important;
  color: var(--text-on-primary, #fff) !important;
}
#kymWizardNav .kym-step-label,
.kym-step-label{
  display: block !important;
  max-width: 124px !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}
.kym-wizard-hint{
  font-size: .92rem !important;
  color: var(--text-light, #4b5563) !important;
}
@media (max-width: 576px){
  #kymWizardNav .kym-step-btn,
  .kym-step-btn{ max-width: 136px !important; padding: 6px 10px !important; font-size: .74rem !important; }
  #kymWizardNav .kym-step-label,
  .kym-step-label{ max-width: 92px !important; }
}

/* Cooperative programs: make cards styled even when older pages missed public-modern.css */
.cp-hero{ background: linear-gradient(135deg, var(--primary-dark, var(--primary-color)), var(--primary-color)) !important; color: var(--text-on-primary, #fff) !important; padding: 2rem 0 1.7rem !important; }
.cp-hero-inner{ display:flex !important; align-items:center !important; gap:1.25rem !important; flex-wrap:wrap !important; }
.cp-hero-icon{ width:64px !important; height:64px !important; border-radius:14px !important; background:rgba(255,255,255,.14) !important; display:grid !important; place-items:center !important; font-size:1.8rem !important; color:#fff !important; }
.cp-hero-text{ flex:1 1 260px !important; }
.cp-hero-text h2{ color:#fff !important; font-size:1.55rem !important; font-weight:800 !important; margin:0 0 .25rem !important; }
.cp-hero-text p{ color:rgba(255,255,255,.82) !important; margin:0 !important; }
.cp-hero-stats{ display:flex !important; gap:.7rem !important; flex-wrap:wrap !important; }
.cp-stat-box{ min-width:78px !important; padding:.65rem .95rem !important; border-radius:10px !important; background:rgba(255,255,255,.13) !important; border:1px solid rgba(255,255,255,.22) !important; text-align:center !important; }
.cp-stat-num{ color:#fff !important; font-size:1.35rem !important; font-weight:800 !important; line-height:1 !important; }
.cp-stat-lbl{ color:rgba(255,255,255,.72) !important; font-size:.7rem !important; }
.cp-shell{ background: var(--bg-soft, #f6faf7) !important; padding:2rem 0 3rem !important; }
.cp-section-sub h3{ color:var(--primary-dark, var(--primary-color)) !important; font-weight:800 !important; display:flex !important; align-items:center !important; gap:.5rem !important; }
.cp-card{ height:100% !important; display:flex !important; flex-direction:column !important; overflow:hidden !important; border-radius:14px !important; background:var(--bg-card,#fff) !important; border:1px solid color-mix(in srgb, var(--primary-color,#1a5f2a) 14%, #e5e7eb) !important; box-shadow:0 6px 18px rgba(15,23,42,.07) !important; }
.cp-card-head{ display:flex !important; gap:.85rem !important; align-items:flex-start !important; padding:.95rem 1.1rem !important; background:linear-gradient(135deg, var(--primary-color), var(--primary-dark,var(--primary-color))) !important; color:#fff !important; }
.cp-date-box{ min-width:46px !important; padding:.34rem .55rem !important; text-align:center !important; border-radius:9px !important; background:rgba(255,255,255,.16) !important; border:1px solid rgba(255,255,255,.25) !important; }
.cp-date-box .dd{ color:#fff !important; font-size:1.22rem !important; font-weight:800 !important; line-height:1 !important; }
.cp-date-box .mm{ color:rgba(255,255,255,.78) !important; font-size:.62rem !important; font-weight:700 !important; }
.cp-head-right h5{ color:#fff !important; font-size:1rem !important; line-height:1.35 !important; font-weight:800 !important; margin:0 0 .35rem !important; }
.cp-open-badge,.cp-closed-badge{ display:inline-flex !important; align-items:center !important; gap:.28rem !important; border-radius:999px !important; padding:.2rem .62rem !important; font-size:.72rem !important; font-weight:800 !important; }
.cp-open-badge{ background:#fff !important; color:var(--primary-color,#1a5f2a) !important; }
.cp-closed-badge{ background:rgba(255,255,255,.16) !important; color:rgba(255,255,255,.78) !important; }
.cp-card-body{ padding:1rem 1.1rem !important; flex:1 !important; }
.cp-meta-row{ display:flex !important; flex-wrap:wrap !important; gap:.42rem !important; margin-bottom:.8rem !important; }
.cp-pill{ display:inline-flex !important; align-items:center !important; gap:.28rem !important; border-radius:999px !important; padding:.28rem .65rem !important; font-size:.8rem !important; font-weight:700 !important; background:color-mix(in srgb, var(--primary-color,#1a5f2a) 8%, #fff) !important; color:var(--primary-dark,var(--primary-color)) !important; }
.cp-desc-text{ color:var(--text-light,#4b5563) !important; font-size:.92rem !important; line-height:1.55 !important; margin-bottom:.9rem !important; }
.cp-btn-prereg,.cp-att-btn{ border:0 !important; border-radius:9px !important; display:inline-flex !important; align-items:center !important; gap:.38rem !important; text-decoration:none !important; font-weight:800 !important; }
.cp-btn-prereg{ background:var(--primary-color,#1a5f2a) !important; color:#fff !important; padding:.46rem .95rem !important; }
.cp-card-footer{ padding:.7rem 1.1rem !important; border-top:1px solid color-mix(in srgb, var(--primary-color,#1a5f2a) 12%, #e5e7eb) !important; background:color-mix(in srgb, var(--primary-color,#1a5f2a) 4%, #fff) !important; text-align:right !important; }
.cp-att-btn{ color:var(--primary-color,#1a5f2a) !important; background:color-mix(in srgb, var(--primary-color,#1a5f2a) 9%, #fff) !important; border:1px solid color-mix(in srgb, var(--primary-color,#1a5f2a) 20%, #e5e7eb) !important; padding:.34rem .72rem !important; }
@media (max-width:575px){ .cp-hero-icon{display:none!important;} .cp-hero-text h2{font-size:1.25rem!important;} .cp-card-head{padding:.85rem .95rem!important;} }

/* Member header/nav: compact desktop, quick-application links do not dominate header */
.mem-nav{
  display:flex !important;
  gap:8px !important;
  overflow-x:auto !important;
  padding:10px !important;
  margin:12px 0 18px !important;
  border:1px solid color-mix(in srgb, var(--primary-color,#1a5f2a) 12%, #e5e7eb) !important;
  border-radius:14px !important;
  background:var(--bg-card,#fff) !important;
  box-shadow:0 4px 14px rgba(15,23,42,.06) !important;
}
.mem-nav-item{
  flex:0 0 auto !important;
  min-width:72px !important;
  max-width:118px !important;
  min-height:58px !important;
  padding:8px 10px !important;
  border-radius:12px !important;
  color:var(--text-muted,#6b7280) !important;
  background:transparent !important;
  text-align:center !important;
  font-size:.78rem !important;
  line-height:1.15 !important;
  font-weight:700 !important;
  text-decoration:none !important;
}
.mem-nav-item i{ display:block !important; margin:0 auto 5px !important; font-size:1.05rem !important; color:currentColor !important; }
.mem-nav-item.active,.mem-nav-item:hover{ background:var(--primary-color,#1a5f2a) !important; color:#fff !important; }
@media (min-width: 992px){
  .mem-nav .mem-nav-item[href*="loan-apply"],
  .mem-nav .mem-nav-item[href*="account-apply"],
  .mem-nav .mem-nav-item[href*="digital-service"],
  .mem-nav .mem-nav-item[href*="service-request"],
  .mem-nav .mem-nav-item[href*="appointment"]{ display:none !important; }
}

/* Admin header: prevent double/huge box look and broken logo column */
.admin-header{ min-height:64px !important; background:var(--primary-color,#1a5f2a) !important; color:#fff !important; }
.admin-header .page-title{ color:#fff !important; font-size:1.1rem !important; }
.admin-header .header-date-pill,
.admin-header .version-badge,
.admin-header .admin-info{ background:rgba(255,255,255,.14) !important; color:#fff !important; border-color:rgba(255,255,255,.22) !important; }
.admin-header .admin-name-inline{ color:#fff !important; }
.admin-avatar-sm{ width:32px !important; height:32px !important; border-radius:50% !important; object-fit:cover !important; }
.stat-card-row{ row-gap:14px !important; }
.stat-card-row .stat-card,
.mem-stat,
.ds-card{ border-radius:12px !important; box-shadow:0 4px 14px rgba(15,23,42,.06) !important; border:1px solid color-mix(in srgb, var(--primary-color,#1a5f2a) 12%, #e5e7eb) !important; background:var(--bg-card,#fff) !important; }

/* Footer / mobile bottom nav: no overlap with chat buttons */
.mob-bottomnav,
.mp-bottom-nav{ box-shadow:0 -8px 24px rgba(15,23,42,.10) !important; border-top:1px solid color-mix(in srgb, var(--primary-color,#1a5f2a) 12%, #e5e7eb) !important; }
.mob-bn-item,
.mp-bottom-nav a{ color:var(--text-muted,#6b7280) !important; }
.mob-bn-item.active,
.mob-bn-item:hover,
.mp-bottom-nav a.active,
.mp-bottom-nav a:hover{ color:var(--primary-color,#1a5f2a) !important; background:color-mix(in srgb, var(--primary-color,#1a5f2a) 9%, #fff) !important; }
.public-fab-help,.admin-fab-msg{ bottom:92px !important; }
@media (min-width:900px){ .public-fab-help,.admin-fab-msg{ bottom:24px !important; } }

/* ════════════════════════════════════════════════════════════
 * v11.4 — Deep polish (2026-05-13 PM)
 * - Admin top bar: cleaner Super Admin pill, no red box
 * - Stat-card values: kill any inherited box/highlight
 * - Welfare claims tiles: tighter, unified
 * - Modal forms: force white inputs + readable text
 * - Single quick-help launcher (collapses WhatsApp/Help/Chat)
 * ════════════════════════════════════════════════════════════ */

/* ── Admin top bar refinement ── */
.admin-header .admin-info{
  background:rgba(255,255,255,.10) !important;
  border:1px solid rgba(255,255,255,.22) !important;
  border-radius:999px !important;
  padding:4px 10px 4px 4px !important;
  display:inline-flex !important; align-items:center !important; gap:8px !important;
}
.admin-header .admin-info .role-badge,
.admin-header .admin-info .badge,
.admin-header .role-pill{
  background:rgba(255,255,255,.92) !important;
  color:var(--primary-color,#1a5f2a) !important;
  border:0 !important;
  font-weight:700 !important;
  border-radius:999px !important;
  padding:2px 10px !important;
  font-size:.72rem !important;
}
.admin-header .header-date-pill,
.admin-header .version-badge{
  border-radius:999px !important;
  padding:4px 10px !important;
  font-size:.78rem !important;
  font-weight:600 !important;
}

/* ── Stat-card value: no white-box / outline shadow ── */
.stat-card .stat-card-value,
.stat-card-flat .stat-card-value{
  background:transparent !important;
  box-shadow:none !important;
  text-shadow:none !important;
  border:0 !important;
  padding:0 !important;
  font-weight:800 !important;
  font-size:1.6rem !important;
  line-height:1.1 !important;
  color:var(--primary-color,#1a5f2a) !important;
}
.stat-card .stat-card-label,
.stat-card-flat .stat-card-label{
  color:var(--text-muted,#6b7280) !important;
  font-weight:600 !important;
  font-size:.86rem !important;
}
.stat-card-icon{
  width:46px !important; height:46px !important;
  border-radius:12px !important;
  font-size:1.15rem !important;
  box-shadow:none !important;
}

/* ── Welfare claims summary tiles ── */
.welfare-summary,
.kalyan-summary{ display:grid !important; grid-template-columns:repeat(3,1fr) !important; gap:14px !important; }
.welfare-summary .ws-tile,
.kalyan-summary .ws-tile{
  background:var(--bg-card,#fff) !important;
  border:1px solid color-mix(in srgb, var(--primary-color,#1a5f2a) 12%, #e5e7eb) !important;
  border-radius:14px !important;
  padding:14px 16px !important;
  display:flex !important; align-items:center !important; gap:12px !important;
  box-shadow:0 4px 14px rgba(15,23,42,.05) !important;
}
.welfare-summary .ws-icon,
.kalyan-summary .ws-icon{
  width:42px !important; height:42px !important; border-radius:12px !important;
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  background:color-mix(in srgb, var(--primary-color,#1a5f2a) 12%, #fff) !important;
  color:var(--primary-color,#1a5f2a) !important;
}
.welfare-summary .ws-num,
.kalyan-summary .ws-num{ font-size:1.45rem !important; font-weight:800 !important; line-height:1 !important; }
@media (max-width:640px){
  .welfare-summary,.kalyan-summary{ grid-template-columns:1fr !important; }
}

/* ── Modal forms: prevent green/dark theme bleeding into inputs ── */
.stf-modal-card .form-control,
.stf-modal-card .form-select,
.stf-modal-card input[type="text"],
.stf-modal-card input[type="email"],
.stf-modal-card input[type="tel"],
.stf-modal-card input[type="date"],
.stf-modal-card input[type="number"],
.stf-modal-card textarea,
.stf-modal-card select,
.modal .form-control,
.modal .form-select,
.modal input,
.modal textarea,
.modal select{
  background:#ffffff !important;
  color:#0f172a !important;
  border:1px solid #d1d5db !important;
  border-radius:8px !important;
  padding:.5rem .65rem !important;
  font-size:.92rem !important;
  -webkit-text-fill-color:#0f172a !important;
}
.stf-modal-card .form-control::placeholder,
.modal .form-control::placeholder,
.stf-modal-card textarea::placeholder{ color:#9ca3af !important; opacity:1 !important; }
.stf-modal-card label,
.modal label{ color:#1f2937 !important; font-weight:600 !important; font-size:.86rem !important; }
.stf-modal-card .form-control:focus,
.stf-modal-card .form-select:focus,
.modal .form-control:focus,
.modal .form-select:focus{
  border-color:var(--primary-color,#1a5f2a) !important;
  box-shadow:0 0 0 .15rem color-mix(in srgb, var(--primary-color,#1a5f2a) 22%, transparent) !important;
}

/* ── Unified Quick-Help Launcher ── */
/* Hide the legacy individual triggers; we re-expose them inside one menu */
.whatsapp-float,
.useful-links-toggle,
.chatbot-toggle,
.public-fab-help{ display:none !important; }

.qh-launcher{
  position:fixed; right:18px; bottom:96px; z-index:80;
  display:flex; flex-direction:column; align-items:flex-end; gap:10px;
}
@media (min-width:900px){ .qh-launcher{ bottom:24px; } }
.qh-fab{
  width:56px; height:56px; border-radius:50%;
  background:var(--primary-color,#1a5f2a); color:#fff; border:0;
  box-shadow:0 12px 28px rgba(15,23,42,.22);
  display:inline-flex; align-items:center; justify-content:center;
  cursor:pointer; transition:transform .15s ease;
}
.qh-fab:hover{ transform:translateY(-2px); }
.qh-fab i{ font-size:22px; }
.qh-menu{
  display:none; flex-direction:column; gap:8px;
  background:#fff; border:1px solid #e5e7eb; border-radius:14px;
  padding:8px; min-width:220px;
  box-shadow:0 18px 40px rgba(15,23,42,.18);
}
.qh-launcher.open .qh-menu{ display:flex; }
.qh-launcher.open .qh-fab i.qh-i-open{ display:none; }
.qh-fab i.qh-i-close{ display:none; }
.qh-launcher.open .qh-fab i.qh-i-close{ display:inline-block; }
.qh-item{
  display:flex; align-items:center; gap:10px;
  padding:9px 12px; border-radius:10px; text-decoration:none;
  color:#1f2937; font-weight:600; font-size:.92rem; background:transparent;
  border:0; text-align:left; cursor:pointer; width:100%;
}
.qh-item:hover{ background:color-mix(in srgb, var(--primary-color,#1a5f2a) 10%, #fff); color:var(--primary-color,#1a5f2a); }
.qh-item .qh-ic{
  width:34px; height:34px; border-radius:10px;
  display:inline-flex; align-items:center; justify-content:center;
  color:#fff; font-size:14px; flex-shrink:0;
}
.qh-ic.wa{ background:#25D366; }
.qh-ic.help{ background:var(--primary-color,#1a5f2a); }
.qh-ic.chat{ background:#0ea5e9; }
.qh-ic.links{ background:#6366f1; }


/* ════════════════════════════════════════════════════════════
 * v11.5 — Targeted UI fixes (2026-05-14)
 * - Hide all legacy floating triggers on EVERY breakpoint
 * - Hide admin sidebar-close on desktop
 * - Hide mobile bottomnav above 768px (defensive)
 * - Compact public footer-bottom; readable text contrast
 * - Admin header: collapse to single user pill, icon-first
 * - License-expired page: ensure tokens defined
 * - HRM employee modal -> inline admin panel
 * ════════════════════════════════════════════════════════════ */

/* 1. Force-hide legacy floating buttons (covered by Quick-Help launcher) */
html body .whatsapp-float,
html body .useful-links-float .useful-links-toggle,
html body .chatbot-widget .chatbot-toggle,
html body .chatbot-widget > .chatbot-toggle,
html body .public-fab-help{
  display:none !important;
  visibility:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
}
/* keep popup boxes operable when opened via qh-launcher */
html body .chatbot-widget .chatbot-box,
html body .useful-links-float .useful-links-popup-box{ visibility:visible; opacity:1; }

/* 2. Admin sidebar close button: only mobile */
@media (min-width:992px){
  .sidebar #sidebarClose,
  .sidebar .sidebar-close{ display:none !important; }
}

/* 3. Mobile bottom nav: hide on ≥769px (defensive against page-level overrides) */
@media (min-width:769px){
  .mob-bottomnav{ display:none !important; }
  body.has-bottomnav{ padding-bottom:0 !important; }
  body.has-bottomnav .main-footer{ padding-bottom:0 !important; }
}

/* 4. Public footer-bottom — tighter, higher contrast */
.main-footer .footer-bottom{
  padding:.55rem 0 !important;
  background:rgba(0,0,0,.18) !important;
  font-size:.82rem !important;
  line-height:1.5 !important;
}
.main-footer .footer-bottom .container{
  display:flex !important; flex-wrap:wrap !important;
  align-items:center !important; justify-content:center !important;
  gap:.4rem 1.1rem !important;
  text-align:center !important;
}
.main-footer .footer-bottom p,
.main-footer .footer-bottom .copyright,
.main-footer .footer-bottom .developer,
.main-footer .footer-bottom .footer-policy-links a,
.main-footer .footer-bottom .visitor-item{
  margin:0 !important;
  color:#f1f5f9 !important;
  font-weight:500 !important;
  text-shadow:0 1px 1px rgba(0,0,0,.25);
}
.main-footer .footer-bottom .footer-policy-links a{ opacity:.95; }
.main-footer .footer-bottom .footer-policy-links a:hover{ color:#fff !important; opacity:1; text-decoration:underline; }
.main-footer .footer-bottom .footer-policy-dot{ color:rgba(255,255,255,.5) !important; }
.main-footer .footer-bottom .developer a{ color:#ffd54f !important; font-weight:700 !important; text-decoration:none !important; }
.main-footer .footer-bottom .developer a:hover{ text-decoration:underline !important; }
.main-footer .footer-bottom .visitor-counter{ display:inline-flex !important; gap:.6rem !important; }
.main-footer .footer-bottom .visitor-item i{ color:#cbd5e1 !important; margin-right:.25rem; }

/* 5. Admin header user widget — single-line pill, no doubled name */
.admin-header .header-right{ gap:8px !important; align-items:center !important; }
.admin-header .admin-info{ position:relative; }
.admin-header .admin-info .admin-name-inline{
  display:inline-flex !important; align-items:center !important; gap:8px !important;
  padding:0 !important; margin:0 !important;
  font-size:.82rem !important; font-weight:600 !important;
  white-space:nowrap !important; max-width:180px !important;
  overflow:hidden !important; text-overflow:ellipsis !important;
}
.admin-header .admin-info .superadmin-pill{
  background:rgba(255,255,255,.92) !important;
  color:var(--primary-color,#1a5f2a) !important;
  font-size:.62rem !important; padding:2px 7px !important;
  border-radius:999px !important; font-weight:800 !important;
  letter-spacing:.04em !important;
}
@media (max-width:768px){
  .admin-header .admin-info .admin-name-inline > :not(img):not(.superadmin-pill){
    display:none !important;
  }
  .admin-header .admin-info{ padding:3px !important; }
}

/* notif bell + lang/version pills — uniform height */
.admin-header .notification-bell{
  width:36px !important; height:36px !important; border-radius:50% !important;
  background:rgba(255,255,255,.14) !important; color:#fff !important;
  border:1px solid rgba(255,255,255,.22) !important;
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
}
.admin-header .notif-count{ background:#dc2626 !important; color:#fff !important; }

/* 6. License-expired page — token fallbacks, theme alignment */
:root{
  --primary-rgb: var(--primary-rgb, 26,95,42);
  --bg-soft: var(--bg-soft, #f6faf7);
  --bg-card: var(--bg-card, #ffffff);
  --bg-page: var(--bg-page, #f8faf9);
  --text-primary: var(--text-primary, #0f172a);
  --text-secondary: var(--text-secondary, #475569);
  --text-muted: var(--text-muted, #6b7280);
  --border-color: var(--border-color, #e5e7eb);
  --border-soft: var(--border-soft, #f1f5f9);
  --color-warning: var(--color-warning, #d97706);
  --radius-md: var(--radius-md, 10px);
  --radius-lg: var(--radius-lg, 16px);
  --radius-xl: var(--radius-xl, 24px);
}
.svc-expired-pill{
  background:linear-gradient(180deg, color-mix(in srgb, var(--primary-color) 8%, #fff), color-mix(in srgb, var(--primary-color) 14%, #fff)) !important;
  color:var(--primary-color) !important;
  border-color: color-mix(in srgb, var(--primary-color) 28%, #fff) !important;
}

/* 7. HRM Employee modal -> inline admin panel (no popup overlay) */
#empModal.stf-modal-backdrop{
  position:static !important;
  background:transparent !important;
  inset:auto !important;
  padding:0 !important; margin:0 0 1.25rem 0 !important;
  z-index:auto !important;
  display:none;
}
#empModal.stf-modal-backdrop[style*="display:flex"],
#empModal.stf-modal-backdrop[style*="display: flex"]{
  display:block !important;
}
#empModal .stf-modal-card,
#empModal .card-coop.stf-modal-card{
  max-width:100% !important; width:100% !important;
  margin:0 !important;
  box-shadow:0 4px 14px rgba(15,23,42,.06) !important;
  border:1px solid #e5e7eb !important; border-radius:14px !important;
  background:#fff !important;
}
