*{box-sizing:border-box}:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#3f352e;background:#faf6f0}body{margin:0;min-height:100vh}.page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 14px;background:radial-gradient(circle at top left,#f5e8d8 0,transparent 40%),#faf6f0}.auth-card{width:100%;max-width:440px;background:#fff;border:1px solid #eee3d8;border-radius:22px;padding:32px;box-shadow:0 18px 55px rgba(15,39,80,.09)}.signup-card{max-width:620px}.brand-mark{height:58px;width:58px;display:block;object-fit:contain;margin:0 0 18px;border-radius:0;background:transparent}.eyebrow{font-size:11px;letter-spacing:1.5px;font-weight:800;color:#80013f;margin:0 0 8px}h1{font-size:28px;line-height:1.2;margin:0 0 8px;letter-spacing:-.6px}h2{font-size:19px;margin:0 0 6px}.muted{color:#786d63;margin:0 0 20px;line-height:1.5}.small{font-size:12px;margin:6px 0 0}form{display:flex;flex-direction:column;gap:9px}label{font-size:13px;font-weight:650;margin-top:7px}input,textarea{width:100%;font:inherit;border:1px solid #e3d4c5;border-radius:10px;padding:12px 13px;background:#fff;min-height:44px;outline:none}textarea{resize:vertical}input:focus,textarea:focus{border-color:#80013f;box-shadow:0 0 0 3px rgba(128,1,63,.14)}input[type=file]{padding:9px;font-size:13px}.primary{display:block;width:100%;border:0;border-radius:10px;background:#80013f;color:white;padding:13px 16px;font:inherit;font-weight:700;text-align:center;text-decoration:none;cursor:pointer;margin-top:14px}.primary:hover{background:#60002f}.button-link{margin-top:18px}.link-row{display:flex;justify-content:space-between;gap:12px;margin-top:20px;font-size:13px}.link-row a,.footnote a,.back-link,.success a{color:#80013f;font-weight:650;text-decoration:none}.footnote{font-size:12px;color:#778196;text-align:center;margin:22px 0 0}.alert,.success,.notice{padding:12px 14px;border-radius:10px;font-size:13px;line-height:1.5;margin:0 0 16px}.alert{background:#fff0ef;color:#a32d25;border:1px solid #ffd5d1}.success{background:#eefaf2;color:#176b37;border:1px solid #c9efd4}.notice{background:#fff8e6;color:#805500;border:1px solid #f4df9b}.notice p{margin:6px 0 0}.hint{font-size:12px;line-height:1.5;color:#786d63;margin:0}.back-link{display:inline-block;font-size:13px;margin-bottom:20px}.wide-page{max-width:1200px;margin:auto;padding:24px 18px}.admin-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.admin-header .muted{margin:5px 0}.secondary-link{color:#80013f;text-decoration:none;font-weight:700}.filters{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.filters a{padding:9px 14px;background:#fff;border:1px solid #dce4f0;border-radius:999px;text-decoration:none;color:#31415c;font-size:13px}.filters a.selected{background:#80013f;color:#fff;border-color:#80013f}.user-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.user-card{background:#fff;border:1px solid #eadfd4;border-radius:18px;padding:18px;box-shadow:0 8px 25px rgba(15,39,80,.05);min-width:0}.user-top{display:flex;gap:13px;align-items:center;margin-bottom:16px}.avatar{width:88px;height:88px;object-fit:cover;border-radius:14px;background:#edf2f8;flex-shrink:0}.avatar-placeholder{display:grid;place-items:center;color:#68758a;font-size:12px}.user-title{min-width:0}.status{display:inline-block;padding:4px 9px;border-radius:999px;background:#edf2f8;font-size:11px;font-weight:750;text-transform:capitalize}.status-pending{background:#fff2cf;color:#825700}.status-approved{background:#dff7e6;color:#176b37}.status-rejected{background:#ffe2df;color:#a32d25}.status-rework{background:#e5edff;color:#174a9b}.details{display:grid;grid-template-columns:110px minmax(0,1fr);gap:7px 10px;font-size:13px;margin:0 0 16px}.details dt{color:#786d63}.details dd{margin:0;overflow-wrap:anywhere;font-weight:550}.review-form{border-top:1px solid #f0e7df;padding-top:12px}.action-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:5px}.action-row button{border:0;border-radius:9px;padding:10px 7px;color:#fff;font-weight:700;cursor:pointer}.approve{background:#187743}.rework{background:#80013f}.reject{background:#b83232}.comment{padding:10px;background:#f7f9fc;border-radius:10px;font-size:12px;margin:12px 0}.comment p{white-space:pre-wrap;margin:5px 0 0}.selfie{font-size:13px;margin:12px 0}.selfie img{display:block;width:100%;max-width:240px;border-radius:12px;margin-top:10px}.empty-state{background:#fff;border-radius:16px;padding:30px;text-align:center;color:#786d63}.hint{color:#786d63}@media(max-width:760px){.user-grid{grid-template-columns:1fr}.wide-page{padding:16px 10px}.user-card{padding:14px}.admin-header{align-items:flex-start}.auth-card{padding:24px 19px}h1{font-size:25px}}
.review-details{margin:12px 0 14px;border-top:1px solid #f0e7df;padding-top:10px}
.review-details summary{cursor:pointer;font-size:13px;font-weight:750;color:#80013f;padding:5px 0}
.review-details[open] summary{margin-bottom:10px}
.pagination{display:flex;justify-content:center;align-items:center;gap:7px;flex-wrap:wrap;margin:22px 0}
.pagination a,.pagination span{display:inline-block;padding:8px 12px;border:1px solid #e3d4c5;border-radius:9px;background:#fff;color:#5d4b3d;text-decoration:none;font-size:12px}
.pagination .current{background:#80013f;border-color:#80013f;color:#fff;font-weight:750}
.pagination .disabled{opacity:.45}

/* ---------- Shared form controls ---------- */
select{width:100%;font:inherit;border:1px solid #e3d4c5;border-radius:10px;padding:11px 12px;background:#fff;min-height:44px;color:#3f352e;outline:none}
select:focus{border-color:#80013f;box-shadow:0 0 0 3px rgba(128,1,63,.14)}
code{font-size:.9em;background:#f5ece3;border-radius:5px;padding:1px 5px;overflow-wrap:anywhere}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.2px}
.center{text-align:center}
.primary.busy,.primary[aria-disabled=true]{opacity:.7;cursor:progress}
.secondary-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;border:1px solid #d9c3b0;border-radius:10px;background:#fff;color:#80013f;font-weight:700;text-decoration:none;font-size:14px}
.secondary-btn.block{display:flex;width:100%;margin-top:14px}
.success a,.notice a,.alert a{color:#80013f;font-weight:700}

/* ---------- Member app shell (approx. 6.3" phones first) ---------- */
.member-body{background:radial-gradient(circle at top left,#f5e8d8 0,transparent 45%),#faf6f0;min-height:100vh;padding-bottom:calc(76px + env(safe-area-inset-bottom))}
.app-bar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;padding:10px 16px;background:rgba(255,252,248,.96);border-bottom:1px solid #eee3d8;backdrop-filter:blur(6px)}
.app-logo{width:38px;height:38px;object-fit:contain;flex-shrink:0}
.app-bar-text{display:flex;flex-direction:column;min-width:0;flex:1}
.app-name{font-size:11px;font-weight:800;letter-spacing:1.1px;color:#80013f;text-transform:uppercase}
.app-user{font-size:14px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app-logout{font-size:13px;font-weight:700;color:#80013f;text-decoration:none;padding:8px 4px}
.app-main{max-width:640px;margin:0 auto;padding:16px 16px 24px}
.app-title{font-size:23px;margin:4px 0 12px}
.greeting{margin-bottom:14px}
.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border-top:1px solid #eadfd4;box-shadow:0 -6px 20px rgba(63,53,46,.06);padding-bottom:env(safe-area-inset-bottom)}
.bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:62px;padding:6px 2px;color:#786d63;text-decoration:none;font-size:11px;font-weight:650;text-align:center;line-height:1.2}
.bottom-nav svg{width:24px;height:24px}
.bottom-nav a.active{color:#80013f}
.bottom-nav a.active svg{stroke-width:2.3}
.bottom-nav a:focus-visible{outline:2px solid #80013f;outline-offset:-4px}

/* ---------- Panels and cards ---------- */
.panel{background:#fff;border:1px solid #eee3d8;border-radius:18px;padding:16px;box-shadow:0 8px 25px rgba(63,53,46,.05);margin-bottom:16px}
.panel-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.panel-head h2{margin:0}
.panel-head a{color:#80013f;font-weight:700;font-size:13px;text-decoration:none}
.stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:16px}
.stat-card{background:#fff;border:1px solid #eee3d8;border-radius:16px;padding:13px;display:flex;flex-direction:column;gap:4px;min-width:0}
.stat-label{font-size:11.5px;font-weight:700;color:#786d63;text-transform:uppercase;letter-spacing:.4px}
.stat-value{font-size:21px;font-weight:800;color:#3f352e;overflow-wrap:anywhere}
.stat-value.stat-text{font-size:17px}
.stat-sub{font-size:12px;color:#786d63;line-height:1.4}
.stat-verified{border-color:#c9efd4;background:#f6fcf8}
.stat-verified .stat-value{color:#176b37}
.empty-state .button-link{margin-top:14px}

/* ---------- Payment list ---------- */
.pay-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.pay-item{background:#fff;border:1px solid #eee3d8;border-radius:16px;padding:13px 14px;min-width:0}
.panel .pay-item{border-color:#f0e7df;box-shadow:none}
.pay-item.highlight{border-color:#80013f;box-shadow:0 0 0 3px rgba(128,1,63,.12)}
.pay-main{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.pay-main h2{margin:0 0 6px;font-size:16px}
.pay-amount{font-weight:800;font-size:17px;white-space:nowrap}
.pay-meta{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;font-size:12px;color:#786d63;margin-top:6px}
.pay-details{display:grid;grid-template-columns:92px minmax(0,1fr);gap:5px 10px;font-size:13px;margin:10px 0 0}
.pay-details dt{color:#786d63}
.pay-details dd{margin:0;overflow-wrap:anywhere}
.pay-note{font-size:12.5px;color:#5d4b3d;margin:10px 0 0;overflow-wrap:anywhere}
.pay-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.icon-btn{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:8px 12px;border:1px solid #e3d4c5;border-radius:10px;background:#fffaf5;color:#80013f;font-weight:700;font-size:13px;text-decoration:none}
.icon-btn svg{width:18px;height:18px}
.icon-btn.accent{background:#80013f;border-color:#80013f;color:#fff}
.dup-flag{font-size:12px;background:#fff8e6;color:#805500;border:1px solid #f4df9b;border-radius:9px;padding:7px 10px;margin:10px 0 0}
.dup-flag a{color:#80013f;font-weight:700}
.pstatus{display:inline-block;padding:4px 9px;border-radius:999px;font-size:11px;font-weight:750;white-space:nowrap}
.ps-submitted{background:#fff2cf;color:#825700}
.ps-verified{background:#dff7e6;color:#176b37}
.ps-rejected{background:#ffe2df;color:#a32d25}
.ps-resubmit{background:#e5edff;color:#174a9b}

/* ---------- Filters and summary ---------- */
.filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 10px}
.filter-grid label{display:block;margin:6px 0 5px}
.filter-grid .span-2{grid-column:span 2}
.filter-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.filter-actions .primary{margin-top:0}
.summary-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px;margin:0 0 14px}
.summary-strip div{background:#fff;border:1px solid #eee3d8;border-radius:14px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;min-width:0}
.summary-strip span{font-size:11px;color:#786d63;font-weight:700;text-transform:uppercase;letter-spacing:.3px}
.summary-strip strong{font-size:16px;overflow-wrap:anywhere}

/* ---------- Upload form ---------- */
.form-panel{gap:8px}
.field-pair{border:0;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.field-pair legend{font-size:13px;font-weight:750;margin-bottom:2px;padding:0}
.field-pair label{display:block;margin:4px 0 5px;font-weight:600;color:#786d63}
.file-preview{border:1px dashed #d9c3b0;border-radius:12px;padding:10px;background:#fffaf5}
.file-preview img{display:block;max-width:100%;max-height:260px;border-radius:8px;margin-top:8px;object-fit:contain}
.file-name{margin:0;font-size:13px;font-weight:650;overflow-wrap:anywhere}
.file-error{margin:6px 0 0;font-size:12.5px;color:#a32d25;font-weight:650}
.file-pdf{margin:6px 0 0;font-size:12.5px;color:#786d63}

/* ---------- Profile ---------- */
.profile-top{display:flex;gap:14px;align-items:center;margin-bottom:16px}
.profile-top h2{margin:0 0 6px}
.profile-details{grid-template-columns:120px minmax(0,1fr)}

/* ---------- Admin additions ---------- */
.admin-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 16px;border-bottom:1px solid #eadfd4;padding-bottom:10px}
.admin-tabs a{padding:9px 14px;border-radius:10px;text-decoration:none;color:#5d4b3d;font-weight:700;font-size:14px}
.admin-tabs a.selected{background:#80013f;color:#fff}
.admin-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.admin-filter .filter-actions{max-width:420px}
.pay-card .details{margin-top:12px}
.action-row button[disabled]{opacity:.4;cursor:not-allowed}
.timeline{list-style:none;margin:0;padding:0 0 0 12px;border-left:2px solid #eadfd4;display:flex;flex-direction:column;gap:10px}
.timeline li{font-size:13px;display:flex;flex-direction:column;gap:2px}
.timeline p{margin:3px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;background:#faf6f0;border-radius:8px;padding:6px 8px}
.check-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.check-list li{background:#fff;border:1px solid #eee3d8;border-left-width:5px;border-radius:12px;padding:10px 14px}
.check-list p{margin:4px 0 0;font-size:13px;color:#5d4b3d;overflow-wrap:anywhere}
.check-pass{border-left-color:#187743!important}
.check-warn{border-left-color:#c58b00!important}
.check-fail{border-left-color:#b83232!important}
.check-list strong{font-size:11px;letter-spacing:.5px;margin-right:6px}

@media(max-width:760px){.admin-grid{grid-template-columns:1fr 1fr}.admin-grid .span-2{grid-column:span 2}.admin-filter .filter-actions{max-width:none}}
@media(max-width:360px){.stat-grid{grid-template-columns:1fr}.field-pair{grid-template-columns:1fr}.bottom-nav a{font-size:10px}.pay-details{grid-template-columns:80px minmax(0,1fr)}}
@media(min-width:900px){.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* ---------- UI repair patch: member and office portal ---------- */
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{color:#342b26;background:#faf6f0}
button,select,input,textarea{font:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed}
img,svg{max-width:100%}
.wide-page{width:100%;max-width:1320px;padding:clamp(14px,2.5vw,30px)}
.admin-header{align-items:center;padding:4px 0 18px;border-bottom:1px solid #eadfd4}
.admin-header h1{overflow-wrap:anywhere}
.admin-header>div{min-width:0}
.admin-header>.secondary-link{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid #e3d4c5;border-radius:10px;padding:10px 14px;background:#fff}
.admin-tabs{gap:8px;margin-top:16px;overflow-x:auto;flex-wrap:wrap}
.admin-tabs a{display:inline-flex;align-items:center;justify-content:center;min-height:42px;border:1px solid transparent;white-space:nowrap}
.admin-tabs a:not(.selected):hover{background:#fff;border-color:#eadfd4}
.filters{align-items:center}
.filters a{display:inline-flex;align-items:center;justify-content:center;min-height:38px;white-space:nowrap}
.filter-panel{display:block}
.filter-panel .filter-grid{width:100%;align-items:start}
.filter-grid>div{min-width:0}
.filter-grid input,.filter-grid select{display:block;min-width:0;width:100%}
.filter-actions{align-items:stretch}
.filter-actions .primary,.filter-actions .secondary-btn{width:100%;min-width:0;min-height:44px;margin:0;white-space:normal}
.summary-strip{grid-template-columns:repeat(3,minmax(0,1fr))}
.summary-strip div{justify-content:center;min-height:72px}
.user-grid{align-items:start;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.user-card{min-width:0;overflow-wrap:anywhere}
.user-card h2{overflow-wrap:anywhere}
.pay-card .pay-main{align-items:flex-start}
.pay-card .pay-amount{white-space:normal;text-align:right}
.details{grid-template-columns:minmax(88px,110px) minmax(0,1fr)}
.details dd{min-width:0}
.review-form{display:flex;flex-direction:column;gap:9px;min-width:0}
.review-form input[type=hidden]{display:none}
.review-form label{margin:0}
.review-form textarea{width:100%;min-height:76px}
.action-row{width:100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.action-row button{min-width:0;min-height:42px;overflow-wrap:anywhere}
.review-details summary,.selfie summary{line-height:1.5}
.pagination{padding:4px 0}
.pay-actions{display:flex;gap:8px;flex-wrap:wrap}
.pay-actions .icon-btn{max-width:100%}
.app-main{width:100%;max-width:700px;padding-left:clamp(12px,3vw,20px);padding-right:clamp(12px,3vw,20px)}
.app-title{overflow-wrap:anywhere}
.panel{min-width:0}
.panel form,.panel .filter-grid{min-width:0}
input,select,textarea{max-width:100%}
:focus-visible{outline-color:#80013f}

@media(max-width:900px){
  .wide-page{padding:18px 14px}
  .user-grid{grid-template-columns:1fr}
  .admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-filter .filter-actions{max-width:none}
}
@media(max-width:600px){
  .wide-page{padding:14px 10px}
  .admin-header{align-items:flex-start;gap:12px;margin-bottom:16px}
  .admin-header .eyebrow{font-size:10px;letter-spacing:1px}
  .admin-header h1{font-size:23px;line-height:1.2}
  .admin-header .muted{font-size:12px;margin-bottom:0}
  .admin-header>.secondary-link{padding:8px 10px;font-size:12px}
  .admin-tabs{display:grid;grid-template-columns:1fr;gap:6px;padding-bottom:12px}
  .admin-tabs a{justify-content:flex-start;padding:10px 12px}
  .filters{gap:6px;margin:12px 0}
  .filters a{padding:8px 11px;font-size:12px}
  .filter-grid,.admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .filter-grid .span-2,.admin-grid .span-2{grid-column:1/-1}
  .filter-actions{grid-template-columns:1fr;gap:8px}
  .summary-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .summary-strip div{padding:9px 8px;min-height:68px}
  .summary-strip span{font-size:9px;letter-spacing:.15px}
  .summary-strip strong{font-size:14px}
  .user-card{padding:13px;border-radius:14px}
  .user-top{align-items:flex-start;gap:10px}
  .avatar{width:68px;height:68px;border-radius:12px}
  .user-title h2{font-size:17px}
  .details{grid-template-columns:92px minmax(0,1fr);gap:7px 8px;font-size:12px}
  .action-row{gap:6px}
  .action-row button{font-size:12px;padding:10px 4px}
  .pay-main{gap:8px}
  .pay-amount{font-size:15px}
  .app-bar{padding:9px 12px}
  .app-main{padding-top:14px;padding-bottom:28px}
}
@media(max-width:380px){
  .filter-grid,.admin-grid{grid-template-columns:1fr}
  .filter-grid .span-2,.admin-grid .span-2{grid-column:auto}
  .summary-strip{grid-template-columns:1fr}
  .summary-strip div{min-height:0}
  .user-top{align-items:flex-start}
  .details{grid-template-columns:78px minmax(0,1fr)}
  .action-row{grid-template-columns:1fr}
  .pay-actions .icon-btn{flex:1 1 100%;justify-content:center}
}


/* ---------- English / Marathi language toggle ---------- */
.google-translate-hidden{position:fixed!important;left:-10000px!important;top:0!important;width:300px!important;height:45px!important;overflow:visible!important;white-space:nowrap!important;z-index:-1!important}
.goog-te-banner-frame,.goog-te-balloon-frame,#goog-gt-tt,.goog-te-spinner-pos{display:none!important}
body{top:0!important}
.language-toggle{display:inline-flex;align-items:center;gap:2px;padding:3px;border:1px solid #e3d4c5;border-radius:999px;background:#fff;flex-shrink:0}
.language-option{border:0;border-radius:999px;background:transparent;color:#6f6259;padding:7px 9px;font:inherit;font-size:12px;font-weight:750;line-height:1.2;cursor:pointer;white-space:nowrap}
.language-option.is-active{background:#80013f;color:#fff}
.language-option:focus-visible{outline:2px solid #80013f;outline-offset:2px}
.header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}
@media(max-width:480px){.app-bar{gap:6px;padding:9px 8px}.app-logo{width:32px;height:32px}.app-name{font-size:9px;letter-spacing:.5px}.app-user{font-size:12px}.language-option{padding:7px 7px;font-size:11px}.app-logout{padding:8px 2px;font-size:12px}.header-actions{gap:6px}.admin-header{flex-wrap:wrap}.admin-header .header-actions{margin-left:auto}}

/* Auth screens: centered logo and top-right language selector */
.auth-language-row{display:flex;justify-content:flex-end;min-height:30px;margin:-10px 0 14px}
.auth-card>.brand-mark{margin:0 auto 18px}
.auth-card>.eyebrow{text-align:center}

/* Login CAPTCHA refresh controls */
.captcha-answer-row{display:flex;gap:.55rem;align-items:stretch}.captcha-answer-row input{flex:1;min-width:0}.captcha-refresh{white-space:nowrap;align-self:stretch}.member-notifications .notice{margin:.6rem 0}

/* KYS member notification header — v3: visible bell on desktop and mobile */
.app-bar{width:100%;min-width:0}
.app-bar-text{flex:1 1 auto;min-width:0;overflow:hidden}
.app-name,.app-user{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.app-bar-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:0 0 auto;margin-left:auto;min-width:max-content}
.notification-bell{position:relative!important;display:inline-flex!important;visibility:visible!important;opacity:1!important;align-items:center;justify-content:center;width:38px;height:38px;flex:0 0 38px;border:1px solid #e8d9ce;border-radius:50%;background:#fff;color:#80013f;text-decoration:none;z-index:25}
.notification-bell svg{display:block;width:21px;height:21px;flex:0 0 21px}
.notification-count{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 4px;display:flex;align-items:center;justify-content:center;border-radius:999px;background:#c62828;color:#fff;font-size:10px;font-weight:800;line-height:1;border:2px solid #fff}
.notification-list{display:flex;flex-direction:column;gap:10px}
.notification-item{display:block;background:#fff;border:1px solid #eadfd4;border-radius:14px;padding:14px;text-decoration:none;color:inherit}
.notification-item.unread{border-left:4px solid #80013f;background:#fffafd}
.notification-item h2{font-size:15px;margin:0 0 7px;color:#3f352e}
.notification-item p{font-size:14px;line-height:1.5;margin:0 0 9px;color:#5e5148;white-space:pre-line}
.notification-meta{display:flex;justify-content:space-between;align-items:center;gap:8px;color:#786d63;font-size:12px}
.notification-unread-label{font-size:11px;font-weight:800;color:#80013f}
.notification-actions{display:flex;justify-content:flex-end;margin-bottom:12px}
.notification-bell:focus-visible,.notification-item:focus-visible{outline:2px solid #80013f;outline-offset:2px}
@media(max-width:480px){.app-bar{gap:5px;padding:9px 8px}.app-logo{width:32px;height:32px}.app-bar-actions{gap:5px}.notification-bell{width:32px;height:32px;flex-basis:32px}.notification-bell svg{width:18px;height:18px;flex-basis:18px}.app-name{font-size:9px;letter-spacing:.3px}.app-user{font-size:11px}.language-option{padding:7px 6px;font-size:11px}.app-logout{padding:8px 2px;font-size:12px}}


/* KYS notifications bottom sheet and CAPTCHA refresh label fix (v4). */
.notification-bell{appearance:none;cursor:pointer;padding:0;font:inherit}
.notification-sheet-backdrop[hidden],.notification-sheet[hidden]{display:none!important}
.notification-sheet-backdrop{position:fixed;inset:0;background:rgba(23,15,20,.48);z-index:1000;backdrop-filter:blur(2px)}
.notification-sheet{position:fixed;z-index:1001;left:50%;bottom:0;transform:translateX(-50%);width:min(760px,100%);max-height:min(82dvh,760px);display:flex;flex-direction:column;background:#fffdfb;border-radius:22px 22px 0 0;box-shadow:0 -12px 50px rgba(20,10,15,.22);padding:8px 18px calc(14px + env(safe-area-inset-bottom));overflow:hidden}
.notification-sheet-handle{width:42px;height:4px;border-radius:999px;background:#d8c9cf;margin:0 auto 12px;flex:0 0 auto}
.notification-sheet-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:12px;border-bottom:1px solid #eee3e8}
.notification-sheet-header h2{margin:0 0 4px;font-size:20px;color:#3f2632}.notification-sheet-header .muted{margin:0;font-size:13px}
.notification-sheet-close{width:38px;height:38px;flex:0 0 38px;border:0;border-radius:50%;background:#f5eaf0;color:#5b1839;font-size:28px;line-height:1;cursor:pointer}
.notification-sheet-body{overflow-y:auto;overscroll-behavior:contain;padding:12px 2px;min-height:70px}
.notification-sheet .notification-list{display:flex;flex-direction:column;gap:9px}
.notification-sheet .notification-item{padding:13px;border-radius:13px;cursor:pointer}
.notification-item-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.notification-item h3{font-size:15px;margin:0 0 6px;color:#3f352e}.notification-item p{margin:0 0 8px;white-space:pre-line;line-height:1.5;color:#5e5148;font-size:14px}
.notification-sheet-footer{display:flex;justify-content:space-between;gap:10px;padding-top:10px;border-top:1px solid #eee3e8}.notification-sheet-footer button{min-height:42px}.notification-sheet-footer button:disabled{opacity:.45;cursor:not-allowed}
.danger-btn{border:1px solid #b42318;background:#fff;color:#b42318;border-radius:10px;padding:10px 14px;font-weight:700;cursor:pointer}
.notification-sheet-empty{padding:24px 12px;text-align:center;color:#786d63}.notification-sheet-feedback{min-height:0;margin:0;padding-top:4px;font-size:13px;color:#26734d}.notification-sheet-feedback:empty{display:none}.notification-sheet-feedback.is-error{color:#b42318}
body.notification-sheet-open{overflow:hidden}
@media(max-width:480px){.notification-sheet{width:100%;max-height:86dvh;padding-left:12px;padding-right:12px;border-radius:18px 18px 0 0}.notification-sheet-header h2{font-size:18px}.notification-sheet-footer{gap:8px}.notification-sheet-footer button{flex:1;padding:9px 8px;font-size:13px}}


/* V7: compact, accessible hamburger navigation for the Admin PWA. */
.admin-header .admin-heading{flex:1;min-width:0}
.admin-header .header-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-shrink:0}
.admin-menu-toggle{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:9px 12px;border:1px solid #e3d4c5;border-radius:11px;background:#fff;color:#80013f;font:inherit;font-size:13px;font-weight:750;box-shadow:0 2px 6px rgba(40,20,30,.04)}
.admin-menu-toggle:hover{background:#fff7fb;border-color:#d6a6bd}
.admin-menu-toggle:focus-visible{outline:3px solid rgba(128,1,63,.22);outline-offset:2px}
.admin-hamburger-lines{display:flex;flex-direction:column;gap:4px;width:19px}
.admin-hamburger-lines i{display:block;height:2px;width:19px;background:currentColor;border-radius:2px}
.admin-menu-toggle[aria-expanded="true"] .admin-hamburger-lines i:first-child{transform:translateY(6px) rotate(45deg)}
.admin-menu-toggle[aria-expanded="true"] .admin-hamburger-lines i:nth-child(2){opacity:0}
.admin-menu-toggle[aria-expanded="true"] .admin-hamburger-lines i:last-child{transform:translateY(-6px) rotate(-45deg)}
.admin-hamburger-lines i{transition:transform .16s ease,opacity .16s ease}
.admin-tabs[hidden]{display:none!important}
.admin-tabs#admin-navigation{position:relative;display:flex;flex-direction:column;gap:5px;margin:12px 0 18px;padding:10px;background:#fff;border:1px solid #eadfd4;border-radius:15px;box-shadow:0 12px 28px rgba(54,30,42,.08);max-width:460px}
.admin-tabs#admin-navigation:not([hidden]){display:flex}
.admin-tabs#admin-navigation a{justify-content:flex-start;white-space:normal;min-height:44px;padding:11px 13px;border-radius:9px}
.admin-tabs#admin-navigation a.selected{background:#80013f;color:#fff}
@media(max-width:600px){.admin-header{align-items:center}.admin-header .header-actions{gap:6px}.admin-menu-toggle{min-height:40px;padding:8px 10px}.admin-menu-toggle-label{display:none}.admin-tabs#admin-navigation{max-width:none;width:100%}.admin-header h1{font-size:21px}}

/* V8 Admin UX: left sliding drawer and contribution insights dashboard. */
.admin-header{justify-content:flex-start;align-items:center;gap:14px}
.admin-header .admin-heading{flex:1;min-width:0}
.admin-header .header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}
.admin-menu-toggle{order:-1;flex:0 0 44px;width:44px;height:44px;min-height:44px;padding:0;border:1px solid #ead8e1;border-radius:13px;background:#fff;color:#80013f;display:grid;place-items:center;cursor:pointer;box-shadow:0 5px 16px rgba(70,20,48,.08)}
.admin-menu-toggle:hover{background:#fff4f9;border-color:#d6a6bd}
.admin-hamburger-lines{display:flex;flex-direction:column;gap:5px;width:20px}
.admin-hamburger-lines i{display:block;height:2px;width:20px;background:currentColor;border-radius:3px;transition:transform .18s ease,opacity .18s ease}
.admin-menu-toggle[aria-expanded="true"] .admin-hamburger-lines i:first-child{transform:translateY(7px) rotate(45deg)}
.admin-menu-toggle[aria-expanded="true"] .admin-hamburger-lines i:nth-child(2){opacity:0}
.admin-menu-toggle[aria-expanded="true"] .admin-hamburger-lines i:last-child{transform:translateY(-7px) rotate(-45deg)}
.admin-drawer-backdrop[hidden],.admin-drawer[hidden]{display:none!important}
.admin-drawer-backdrop{position:fixed;inset:0;background:rgba(26,12,20,.48);backdrop-filter:blur(3px);z-index:1200;opacity:1}
.admin-drawer{position:fixed;z-index:1201;top:0;bottom:0;left:0;width:min(340px,88vw);height:100dvh;overflow-y:auto;background:#fffdfb;border-radius:0 22px 22px 0;box-shadow:18px 0 55px rgba(35,12,25,.22);transform:translateX(-105%);transition:transform .24s cubic-bezier(.2,.8,.2,1);padding:0 14px max(18px,env(safe-area-inset-bottom))}
.admin-drawer.is-open{transform:translateX(0)}
.admin-drawer-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 8px 20px;border-bottom:1px solid #f0e4ea;margin-bottom:12px}
.admin-drawer-header strong{display:block;font-size:20px;color:#80013f;letter-spacing:-.4px}
.admin-drawer-header span{display:block;font-size:12px;color:#8b7881;margin-top:3px}
.admin-drawer-close{width:40px;height:40px;border:0;border-radius:12px;background:#f8eaf1;color:#80013f;font-size:28px;line-height:1;cursor:pointer}
.admin-drawer-links{display:flex;flex-direction:column;gap:5px}
.admin-drawer-links a{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 13px;border-radius:12px;text-decoration:none;color:#493640;font-weight:650;font-size:14px;min-height:47px}
.admin-drawer-links a:hover{background:#fff0f6;color:#80013f}
.admin-drawer-links a.selected{background:linear-gradient(100deg,#80013f,#a62b68);color:#fff;box-shadow:0 7px 18px rgba(128,1,63,.16)}
.admin-drawer-links a span:last-child{font-size:20px;opacity:.65}
.admin-drawer-links .admin-drawer-logout{margin-top:12px;border-top:1px solid #f0e4ea;border-radius:0;padding-top:18px;color:#a3263e}
body.admin-drawer-open,body.dashboard-sheet-open{overflow:hidden}

.dashboard-welcome{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:24px 26px;border-radius:22px;background:linear-gradient(120deg,#fff 0%,#fff5f9 58%,#f8e6ef 100%);border:1px solid #f0dbe5;margin:6px 0 18px;box-shadow:0 10px 30px rgba(75,22,49,.045)}
.dashboard-welcome .eyebrow{margin-bottom:8px}
.dashboard-welcome h2{font-size:26px;letter-spacing:-.6px;margin:0 0 6px;color:#3f2633}
.dashboard-welcome .muted{margin:0;font-size:13px}
.dashboard-period-chip{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;border:1px solid #efd1df;background:rgba(255,255,255,.75);color:#80013f;font-size:12px;font-weight:750;padding:10px 13px;border-radius:999px}
.dashboard-period-dot{width:7px;height:7px;border-radius:50%;background:#a62b68}
.dashboard-filters{display:grid;grid-template-columns:minmax(120px,.7fr) minmax(140px,.8fr) minmax(220px,1.5fr) auto;align-items:end;gap:12px;padding:16px;background:#fff;border:1px solid #efe5e9;border-radius:18px;margin:0 0 18px;box-shadow:0 6px 22px rgba(50,20,35,.035)}
.dashboard-filters>div{min-width:0}
.dashboard-filters label{display:block;margin:0 0 6px;color:#6f5b66;font-size:12px;font-weight:750}
.dashboard-filters select{width:100%;min-width:0;height:43px;padding:9px 11px;border-radius:10px;border:1px solid #e8d8e0;background:#fff;font:inherit;font-size:13px;color:#3f2633}
.dashboard-filter-actions{display:flex;align-items:center;gap:12px;min-height:43px}
.dashboard-apply{width:auto;white-space:nowrap;margin:0;padding:11px 15px;font-size:13px;min-height:43px}
.dashboard-reset{font-size:13px;font-weight:700;text-decoration:none;color:#80013f;white-space:nowrap}
.dashboard-selected-member{display:flex;align-items:center;gap:11px;padding:11px 14px;margin:0 0 16px;border:1px solid #ead8e1;background:#fff;border-radius:14px}
.dashboard-selected-avatar,.dashboard-pending-avatar{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:13px;background:#f8e8f0;color:#80013f;font-weight:800}
.dashboard-selected-member>div{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}
.dashboard-selected-member>div strong{font-size:13px;color:#3f2633}
.dashboard-selected-member>div span{font-size:11px;color:#8a7881}
.dashboard-selected-member>a{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;text-decoration:none;color:#80013f;background:#fff3f8;font-size:22px}
.dashboard-stat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:13px;margin:0 0 18px}
.dashboard-stat-card{display:flex;flex-direction:column;align-items:stretch;min-width:0;text-align:left;padding:17px 16px 15px;border:1px solid #efe4e9;border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(50,20,35,.045);color:#3f2633;min-height:164px}
.dashboard-stat-top{display:flex;align-items:center;gap:9px;min-height:30px;margin-bottom:13px}
.dashboard-stat-icon{display:grid;place-items:center;flex:0 0 31px;width:31px;height:31px;border-radius:10px;background:#f8e9f0;color:#80013f;font-size:17px;font-weight:850}
.dashboard-stat-caption{font-size:11px;font-weight:750;color:#786671;line-height:1.35}
.dashboard-stat-value{display:block;font-size:clamp(23px,2vw,31px);line-height:1.12;letter-spacing:-.8px;color:#3e2732;font-weight:850;overflow-wrap:anywhere}
.dashboard-stat-value small{font-size:13px;letter-spacing:0;color:#9b8791;font-weight:700}
.dashboard-stat-foot{font-size:11px;line-height:1.45;color:#94828b;margin-top:auto;padding-top:12px}
.amount-value{font-size:clamp(19px,1.65vw,27px);letter-spacing:-.7px;white-space:nowrap}
.stat-amount{background:linear-gradient(155deg,#fff,#fff8ed)}.stat-amount .dashboard-stat-icon{background:#fff0d5;color:#95600a}
.stat-paid .dashboard-stat-icon{background:#e3f7eb;color:#187744}
.stat-pending{cursor:pointer;background:linear-gradient(150deg,#fff,#fff4f1);border-color:#f2d9d3;transition:transform .15s ease,box-shadow .15s ease}
.stat-pending:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(143,48,40,.1)}
.stat-pending .dashboard-stat-icon{background:#ffe6df;color:#ad392d}
.stat-pending .dashboard-stat-value{color:#a32f2a}
.dashboard-open-icon{margin-left:auto;color:#a32f2a;font-size:17px}
.stat-percent .dashboard-stat-icon{background:#e8edff;color:#3358a6}
.dashboard-progress,.dashboard-summary-track{height:7px;border-radius:999px;background:#f2e8ed;overflow:hidden;margin-top:11px}
.dashboard-progress span,.dashboard-summary-track span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#80013f,#d15c91)}
.dashboard-lower-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:15px;margin-bottom:20px}
.dashboard-panel{padding:21px;background:#fff;border:1px solid #efe4e9;border-radius:19px;box-shadow:0 8px 24px rgba(50,20,35,.04);min-width:0}
.dashboard-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.dashboard-panel .eyebrow{margin-bottom:6px}
.dashboard-panel h3{font-size:17px;color:#3f2633;margin:0 0 10px}
.text-action{border:0;background:transparent;color:#80013f;font:inherit;font-size:12px;font-weight:800;cursor:pointer;white-space:nowrap}
.dashboard-panel-number{font-size:30px;font-weight:850;letter-spacing:-.7px;margin:7px 0 3px;color:#a32f2a}
.dashboard-panel-number span{font-size:13px;letter-spacing:0;font-weight:650;color:#786671}
.dashboard-panel .muted{font-size:12px;margin:6px 0 15px;max-width:520px}
.dashboard-panel-button{width:auto;margin:0;padding:10px 14px;font-size:12px}
.dashboard-summary-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid #f2e9ed;font-size:13px;color:#786671}
.dashboard-summary-row strong{color:#3f2633;font-size:14px}
.dashboard-summary-panel .dashboard-summary-track{margin-top:17px;height:9px}
.dashboard-sheet-backdrop[hidden],.dashboard-bottom-sheet[hidden]{display:none!important}
.dashboard-sheet-backdrop{position:fixed;inset:0;z-index:1300;background:rgba(26,12,20,.48);backdrop-filter:blur(3px)}
.dashboard-bottom-sheet{position:fixed;z-index:1301;left:50%;bottom:0;transform:translate(-50%,105%);transition:transform .25s cubic-bezier(.2,.8,.2,1);width:min(760px,100%);max-height:min(82dvh,780px);display:flex;flex-direction:column;background:#fffdfb;border-radius:24px 24px 0 0;box-shadow:0 -20px 65px rgba(35,12,25,.22);padding:9px 22px max(14px,env(safe-area-inset-bottom))}
.dashboard-bottom-sheet.is-open{transform:translate(-50%,0)}
.dashboard-sheet-handle{width:43px;height:4px;border-radius:99px;background:#e4d4dc;align-self:center;margin:1px 0 17px}
.dashboard-sheet-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:15px;border-bottom:1px solid #f0e4ea}
.dashboard-sheet-header .eyebrow{margin:0 0 7px;font-size:10px}
.dashboard-sheet-header h2{font-size:21px;margin:0 0 6px;color:#3f2633}
.dashboard-sheet-header h2 span{display:inline-grid;place-items:center;min-width:27px;height:27px;margin-left:4px;padding:0 7px;border-radius:9px;background:#ffe9e3;color:#a32f2a;font-size:12px;vertical-align:middle}
.dashboard-sheet-header .muted{font-size:12px;margin:0;max-width:540px}
.dashboard-sheet-close{flex:0 0 38px;width:38px;height:38px;border:0;border-radius:12px;background:#f8eaf1;color:#80013f;font-size:27px;line-height:1;cursor:pointer}
.dashboard-sheet-body{overflow-y:auto;overscroll-behavior:contain;padding:8px 0;min-height:90px}
.dashboard-pending-list{display:flex;flex-direction:column}
.dashboard-pending-member{display:flex;align-items:center;gap:12px;padding:12px 4px;border-bottom:1px solid #f4ebef;min-width:0}
.dashboard-pending-member:last-child{border-bottom:0}
.dashboard-pending-member-info{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
.dashboard-pending-member-info strong{font-size:13px;color:#3f2633;overflow-wrap:anywhere}
.dashboard-pending-member-info span,.dashboard-pending-member-info small{font-size:11px;color:#8a7881;overflow-wrap:anywhere}
.dashboard-pending-badge{font-size:10px;font-weight:800;color:#a32f2a;background:#fff0ec;padding:6px 9px;border-radius:999px;white-space:nowrap}
.dashboard-sheet-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:35px 15px;color:#6f5b66}
.dashboard-sheet-empty>span{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#e3f7eb;color:#187744;font-size:23px;margin-bottom:12px}
.dashboard-sheet-empty strong{color:#3f2633;font-size:15px}
.dashboard-sheet-empty p{font-size:12px;margin:7px 0 0}
.dashboard-sheet-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid #f0e4ea;padding-top:12px;font-size:12px;color:#8a7881}
.dashboard-sheet-footer button{margin:0;min-height:38px}
@media(max-width:1050px){.dashboard-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-stat-card{min-height:150px}.dashboard-filters{grid-template-columns:1fr 1fr}.dashboard-member-filter{grid-column:span 1}.dashboard-filter-actions{justify-content:flex-start}}
@media(max-width:650px){.wide-page{padding:13px 10px}.admin-header{gap:10px;margin-bottom:16px}.admin-header .eyebrow{font-size:9px;letter-spacing:1px}.admin-header h1{font-size:20px}.admin-header .muted{font-size:11px;margin-bottom:0}.admin-header .header-actions{gap:8px}.admin-header .language-toggle{display:none}.admin-menu-toggle{width:42px;height:42px;flex-basis:42px}.dashboard-welcome{align-items:flex-start;padding:18px 16px;border-radius:18px}.dashboard-welcome h2{font-size:22px}.dashboard-welcome .muted{font-size:12px}.dashboard-period-chip{font-size:10px;padding:8px 9px}.dashboard-filters{grid-template-columns:1fr 1fr;padding:12px;gap:10px}.dashboard-member-filter{grid-column:1/-1}.dashboard-filter-actions{grid-column:1/-1}.dashboard-apply{flex:1}.dashboard-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dashboard-stat-card{padding:14px 12px;min-height:147px;border-radius:15px}.dashboard-stat-caption{font-size:10px}.dashboard-stat-top{gap:7px;margin-bottom:11px}.dashboard-stat-icon{flex-basis:29px;width:29px;height:29px}.dashboard-stat-value{font-size:25px}.amount-value{font-size:19px}.dashboard-stat-foot{font-size:10px}.dashboard-lower-grid{grid-template-columns:1fr;gap:11px}.dashboard-panel{padding:17px}.dashboard-bottom-sheet{max-height:86dvh;padding-left:14px;padding-right:14px;border-radius:20px 20px 0 0}.dashboard-sheet-header h2{font-size:19px}.dashboard-pending-member{gap:9px}.dashboard-pending-avatar{flex-basis:34px;width:34px;height:34px}.dashboard-pending-badge{font-size:9px;padding:5px 7px}}
@media(max-width:390px){.admin-header .header-actions .secondary-link{font-size:12px}.admin-header h1{font-size:18px}.dashboard-period-chip{display:none}.dashboard-stat-card{padding:12px 10px}.dashboard-stat-value{font-size:22px}.amount-value{font-size:17px}}

/* KYS financial dashboard and loan module v9 */
.bottom-nav{grid-template-columns:repeat(6,minmax(0,1fr))}
.bottom-nav a{font-size:10px;min-width:0}
.bottom-nav a span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.finance-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 18px;padding:24px;border-radius:22px;background:linear-gradient(120deg,#4b1233,#80013f 65%,#a43b6d);color:#fff;box-shadow:0 12px 32px rgba(83,12,48,.16)}
.finance-hero h2{margin:4px 0 8px;font-size:clamp(22px,3vw,30px);letter-spacing:-.5px}.finance-hero p:not(.eyebrow){margin:0;max-width:620px;color:rgba(255,255,255,.78);font-size:13px;line-height:1.55}.finance-hero .eyebrow{color:#f5c9dd}.finance-balance{flex:0 0 auto;min-width:175px;padding:15px 17px;border:1px solid rgba(255,255,255,.24);border-radius:16px;background:rgba(255,255,255,.1)}.finance-balance span{display:block;color:rgba(255,255,255,.76);font-size:12px}.finance-balance strong{display:block;margin-top:5px;font-size:clamp(22px,2.5vw,30px);letter-spacing:-.6px;overflow-wrap:anywhere}
.finance-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 18px}.finance-stat{min-width:0;padding:16px;border:1px solid #eee0e8;border-radius:16px;background:#fff;box-shadow:0 6px 20px rgba(70,20,45,.035)}.finance-stat span{display:block;color:#796673;font-size:12px;line-height:1.4;font-weight:700}.finance-stat strong{display:block;margin-top:10px;color:#422537;font-size:clamp(19px,2vw,25px);letter-spacing:-.5px;overflow-wrap:anywhere}.finance-stat small{display:block;margin-top:6px;color:#8d7a85;font-size:11px}.loan-admin-panel{margin-bottom:18px}.loan-config-form{display:flex;flex-direction:column;gap:14px}.loan-config-form>label{font-size:13px;font-weight:750;color:#57424e}.loan-config-form input,.loan-config-form select,.loan-config-form textarea,.inline-loan-action input{width:100%;min-width:0;padding:11px 12px;border:1px solid #e3d4dc;border-radius:10px;background:#fff;color:#3f2633;font:inherit;font-size:14px}.loan-config-form input:focus,.loan-config-form select:focus,.loan-config-form textarea:focus{outline:2px solid #eac3d6;border-color:#80013f}.loan-config-form .field-pair{margin:0}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px;border:1px solid #efdce6;border-radius:14px;background:#fff8fb}.toggle-row strong,.toggle-row small{display:block}.toggle-row small{margin-top:4px;color:#8b7782;font-size:12px;line-height:1.45}.toggle-row input{width:22px;height:22px;accent-color:#80013f;flex:0 0 auto}.table-scroll{width:100%;overflow-x:auto;border:1px solid #eee2e8;border-radius:13px}.data-table{width:100%;border-collapse:collapse;min-width:760px;font-size:13px}.data-table th{padding:12px 13px;text-align:left;background:#fbf4f8;color:#6d4b5d;font-size:11px;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap}.data-table td{padding:12px 13px;border-top:1px solid #f1e7ec;vertical-align:top;color:#493541}.data-table td strong,.data-table td small{display:block}.data-table td small{margin-top:4px;color:#8b7882;font-size:11px;line-height:1.4}.data-table tbody tr:hover{background:#fffafd}.inline-loan-action{display:flex;flex-direction:column;gap:6px;min-width:145px}.inline-loan-action input{padding:7px;font-size:12px}.inline-loan-action button{font-size:12px;padding:8px}.loan-disclaimer{padding:13px;border-radius:12px;background:#fff8e8;border:1px solid #f0e0b9;color:#6f5731;font-size:12px;line-height:1.5}.loan-disclaimer p{margin:5px 0 0;white-space:pre-line}.loan-emi-preview{display:flex;flex-direction:column;gap:5px;padding:16px;border:1px solid #e7d0dd;border-radius:14px;background:linear-gradient(120deg,#fff8fb,#f9f0f5)}.loan-emi-preview span,.loan-emi-preview small{color:#806b78;font-size:12px}.loan-emi-preview strong{font-size:26px;color:#80013f}.loan-emi-preview small{line-height:1.4}.loan-coming-soon{position:relative;overflow:hidden;border:1px solid #ead9e3;border-radius:20px;background:#fff;margin-bottom:18px;min-height:330px}.loan-preview-content{padding:23px;filter:blur(3px);opacity:.6;pointer-events:none;user-select:none}.loan-preview-top{display:flex;align-items:center;justify-content:space-between}.loan-preview-icon{display:grid;place-items:center;width:45px;height:45px;border-radius:14px;background:#f6e5ee;color:#80013f;font-size:23px;font-weight:850}.loan-preview-content h2{margin:18px 0 8px;color:#45283a}.loan-preview-content p{color:#806d78;max-width:550px;line-height:1.5}.loan-preview-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:20px 0}.loan-preview-metrics div{padding:13px;border-radius:12px;background:#fbf5f8}.loan-preview-metrics span,.loan-preview-metrics strong{display:block}.loan-preview-metrics span{font-size:11px;color:#8b7882}.loan-preview-metrics strong{margin-top:5px;color:#4b2a3d;font-size:17px}.loan-coming-soon-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;background:rgba(255,250,253,.58);backdrop-filter:blur(1px)}.coming-soon-badge{display:inline-block;padding:7px 12px;border-radius:999px;background:#80013f;color:#fff;font-size:11px;font-weight:850;letter-spacing:1px}.loan-coming-soon-overlay h3{margin:14px 0 5px;color:#4c243b;font-size:22px}.loan-coming-soon-overlay p{margin:0;max-width:330px;color:#7c6674;font-size:13px;line-height:1.5}.member-loan-summary{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:18px}.scorecard-search{max-width:250px;width:100%;padding:10px 12px;border:1px solid #e6d7df;border-radius:10px;font:inherit;font-size:13px}.scorecard-rank{display:inline-grid;place-items:center;min-width:34px;height:30px;border-radius:10px;background:#f8e9f0;color:#80013f;font-weight:850}.scorecard-no-loan{background:#f4f0f2;color:#857681}.scorecard-hero{margin-bottom:15px}
@media(max-width:800px){.finance-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-hero{align-items:flex-start;flex-direction:column;padding:20px}.finance-balance{width:100%;box-sizing:border-box}.member-loan-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.panel-head{align-items:flex-start;gap:10px;flex-wrap:wrap}.scorecard-search{max-width:none}}
@media(max-width:430px){.bottom-nav a{font-size:9px;gap:2px;padding-left:1px;padding-right:1px}.bottom-nav svg{width:21px;height:21px}.finance-stat{padding:13px}.finance-stat span{font-size:11px}.finance-stat strong{font-size:19px}.loan-preview-metrics{grid-template-columns:1fr}.loan-coming-soon{min-height:380px}.member-loan-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
.finance-hero-link{display:inline-block;color:#fff;text-decoration:none;font-size:12px;font-weight:800;border-bottom:1px solid rgba(255,255,255,.55);padding-bottom:2px}.finance-hero-link:hover{color:#ffe4f0}
.scorecard-progress{width:100%;min-width:85px;height:7px;overflow:hidden;border-radius:999px;background:#f0e4eb;margin:3px 0 6px}.scorecard-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#80013f,#b84b82)}


/* Member Loans UX refinement v10 */
.loan-summary-at-top{margin-top:10px;margin-bottom:18px}
.loan-request-cta{display:flex;align-items:center;gap:16px;margin-bottom:18px;padding:18px}
.loan-request-cta-icon{display:grid;place-items:center;flex:0 0 54px;width:54px;height:54px;border-radius:16px;background:#f8e6ef;color:#80013f;font-size:28px;font-weight:850}
.loan-request-cta-copy{min-width:0;flex:1}
.loan-request-cta-copy .eyebrow{margin:0 0 5px;font-size:10px}
.loan-request-cta-copy h2{margin:0 0 5px;color:#402536;font-size:20px}
.loan-request-cta-copy .muted{margin:0;font-size:12px;line-height:1.45}
.loan-terms-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.loan-terms-chips span{display:inline-block;padding:6px 8px;border:1px solid #efdae5;border-radius:999px;background:#fff8fb;color:#765368;font-size:10px;font-weight:750}
.loan-request-open{white-space:nowrap;display:flex;align-items:center;gap:8px}
.loan-request-sheet-backdrop[hidden],.loan-request-sheet[hidden]{display:none!important}
.loan-request-sheet-backdrop{position:fixed;inset:0;z-index:1400;background:rgba(23,13,19,.52);backdrop-filter:blur(3px)}
.loan-request-sheet{position:fixed;z-index:1401;left:50%;bottom:0;transform:translate(-50%,105%);transition:transform .25s cubic-bezier(.2,.8,.2,1);width:min(760px,100%);max-height:min(88dvh,850px);display:flex;flex-direction:column;background:#fffdfb;border-radius:24px 24px 0 0;box-shadow:0 -18px 60px rgba(35,12,25,.24);padding:9px 22px max(14px,env(safe-area-inset-bottom));overflow:hidden}
.loan-request-sheet.is-open{transform:translate(-50%,0)}
.loan-request-sheet-handle{width:43px;height:4px;border-radius:99px;background:#e4d4dc;align-self:center;margin:1px 0 15px;flex:0 0 auto}
.loan-request-sheet-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:13px;border-bottom:1px solid #f0e4ea;flex:0 0 auto}
.loan-request-sheet-header .eyebrow{margin:0 0 6px;font-size:10px}
.loan-request-sheet-header h2{margin:0 0 5px;color:#3f2633;font-size:21px}
.loan-request-sheet-header .muted{margin:0;font-size:12px;line-height:1.45}
.loan-request-sheet-close{flex:0 0 38px;width:38px;height:38px;border:0;border-radius:12px;background:#f8eaf1;color:#80013f;font-size:27px;line-height:1;cursor:pointer}
.loan-request-sheet-body{overflow-y:auto;overscroll-behavior:contain;padding:14px 2px 4px;min-height:0}
.loan-request-form{gap:13px}
.loan-request-form .field-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.loan-request-form .field-pair>div,.loan-request-form>div:not(.field-pair){min-width:0}
.loan-request-form label{display:block;margin-bottom:6px}
.loan-request-form-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:4px}
.loan-request-form-actions button{min-height:44px}
body.loan-request-sheet-open{overflow:hidden}
@media(max-width:650px){.loan-request-cta{align-items:flex-start;flex-wrap:wrap;padding:15px;gap:12px}.loan-request-cta-icon{width:43px;height:43px;flex-basis:43px;font-size:23px;border-radius:13px}.loan-request-cta-copy{flex-basis:calc(100% - 60px)}.loan-request-open{width:100%;justify-content:center}.loan-request-sheet{width:100%;max-height:90dvh;padding-left:13px;padding-right:13px;border-radius:20px 20px 0 0}.loan-request-sheet-header h2{font-size:19px}.loan-request-form .field-pair{grid-template-columns:1fr}.loan-request-form-actions button{flex:1}}


/* V11: transparent loan approval journey */
.loan-approver-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:22px;margin:0 0 18px;padding:24px;border:1px solid #ead6e1;border-radius:20px;background:linear-gradient(125deg,#fff8fb,#f7edf3)}
.loan-approver-hero h2{margin:0 0 8px;color:#44283a;font-size:clamp(22px,3vw,30px);letter-spacing:-.6px}
.loan-approver-hero p:not(.eyebrow){max-width:680px;margin:0;color:#7d6875;font-size:13px;line-height:1.6}
.loan-approver-hero-status{display:flex;flex-direction:column;align-items:flex-end;gap:12px;flex:0 0 auto}
.loan-approver-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.loan-stat-highlight{background:#fff7fb;border-color:#dfb8cc}
.loan-stat-highlight strong{color:#80013f}
.loan-approval-priority-panel{margin-bottom:18px}
.loan-approval-checklist{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.loan-approval-checklist>div{display:grid;grid-template-columns:34px 1fr;column-gap:10px;align-items:start;padding:14px;border:1px solid #f0e1e9;border-radius:14px;background:#fffafd}
.loan-check-number{grid-row:span 2;display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:#f6e3ed;color:#80013f;font-weight:850}
.loan-approval-checklist strong{font-size:13px;color:#4b3040}
.loan-approval-checklist small{margin-top:5px;color:#897783;font-size:11px;line-height:1.5}
.loan-approver-queue{display:flex;flex-direction:column;gap:13px}
.loan-approval-card{padding:18px;border:1px solid #eee0e8;border-radius:17px;background:#fff;box-shadow:0 6px 20px rgba(70,20,45,.035)}
.loan-approval-card.is-oldest{border-color:#d8a9c1;box-shadow:0 0 0 2px rgba(128,1,63,.06)}
.loan-approval-card-top{display:flex;justify-content:space-between;align-items:center;gap:15px}
.loan-approval-member{display:flex;align-items:center;gap:11px;min-width:0}
.loan-approval-avatar{display:grid;place-items:center;flex:0 0 43px;width:43px;height:43px;border-radius:14px;background:#f7e8f0;color:#80013f;font-size:18px;font-weight:850}
.loan-approval-name{display:flex;flex-wrap:wrap;align-items:center;gap:7px;color:#402536;font-weight:850}
.loan-approval-member small{display:block;margin-top:4px;color:#897682;font-size:11px;line-height:1.5}
.loan-first-badge{display:inline-flex;padding:4px 7px;border-radius:99px;background:#80013f;color:#fff;font-size:9px;font-weight:800;letter-spacing:.3px}
.loan-approval-amount{text-align:right;flex:0 0 auto}.loan-approval-amount span{display:block;color:#8b7682;font-size:11px}.loan-approval-amount strong{display:block;margin-top:4px;color:#80013f;font-size:23px;letter-spacing:-.4px}
.loan-approval-details{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:16px 0 12px}
.loan-approval-details>div{padding:10px;border-radius:11px;background:#fbf5f8;min-width:0}.loan-approval-details span{display:block;color:#8a7581;font-size:10px}.loan-approval-details strong{display:block;margin-top:5px;color:#493343;font-size:13px;overflow-wrap:anywhere}
.loan-approval-guarantors{display:flex;flex-wrap:wrap;gap:8px 18px;padding:11px 0;border-top:1px solid #f1e5eb;color:#715a68;font-size:12px}
.loan-approval-purpose{margin:0 0 12px;padding:10px 12px;border-radius:10px;background:#fff9ed;color:#745c38;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.loan-approval-decision-form{display:flex;align-items:flex-end;gap:12px;padding-top:12px;border-top:1px solid #f1e5eb}
.loan-approval-decision-form label{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0;color:#715a68;font-size:11px;font-weight:750}
.loan-approval-decision-form input{width:100%;box-sizing:border-box;padding:11px 12px;border:1px solid #e3d4dc;border-radius:10px;background:#fff;font:inherit;font-size:13px}
.loan-approval-actions{display:flex;gap:8px;flex:0 0 auto}.loan-approval-actions button{min-height:41px}
.member-loan-timeline-list{display:flex;flex-direction:column;gap:14px}
.member-loan-tracker-card{padding:18px;border:1px solid #eee0e8;border-radius:17px;background:#fff;box-shadow:0 6px 20px rgba(70,20,45,.035)}
.member-loan-tracker-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.member-loan-tracker-head .eyebrow{margin:0 0 5px;font-size:10px}.member-loan-tracker-head h3{margin:0;color:#412536;font-size:25px;letter-spacing:-.4px}.member-loan-tracker-head p{margin:5px 0 0;color:#897682;font-size:12px}
.loan-status-badge{display:inline-flex;align-items:center;justify-content:center;padding:7px 10px;border-radius:99px;font-size:11px;font-weight:850;white-space:nowrap;background:#f5e7ee;color:#7c1747}.loan-status-requested{background:#fff2d9;color:#875b00}.loan-status-approved{background:#e6f6ed;color:#176b43}.loan-status-disbursed{background:#e7efff;color:#2450a1}.loan-status-closed{background:#e6f6ed;color:#176b43}.loan-status-rejected{background:#ffebeb;color:#a52d2d}
.member-loan-progress{margin:16px 0}.member-loan-progress-track{height:6px;border-radius:99px;background:#f0e6eb;overflow:hidden}.member-loan-progress-track span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#80013f,#bd5685)}.member-loan-progress-caption{display:flex;flex-direction:column;gap:3px;margin-top:8px}.member-loan-progress-caption strong{font-size:12px;color:#493041}.member-loan-progress-caption span{font-size:11px;color:#8b7782;line-height:1.5}
.member-loan-timeline{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:18px 0;padding:0}.member-loan-timeline li{position:relative;min-width:0;padding-right:8px}.member-loan-timeline li:not(:last-child):after{content:"";position:absolute;top:13px;left:30px;right:4px;height:2px;background:#eadde5}.member-loan-timeline li.is-done:not(:last-child):after{background:#bd7b9d}.member-loan-timeline-dot{position:relative;z-index:1;display:grid;place-items:center;width:27px;height:27px;border:2px solid #e6d7e0;border-radius:50%;background:#fff;color:#927d89;font-size:10px;font-weight:850}.member-loan-timeline li.is-done .member-loan-timeline-dot{border-color:#80013f;background:#80013f;color:#fff}.member-loan-timeline li.is-current .member-loan-timeline-dot{border-color:#80013f;background:#fff2f8;color:#80013f;box-shadow:0 0 0 4px #f8e5ef}.member-loan-timeline li>div{display:flex;flex-direction:column;gap:4px;margin-top:8px;padding-right:5px}.member-loan-timeline li strong{font-size:11px;color:#604858;line-height:1.3}.member-loan-timeline li small{font-size:10px;color:#998692;line-height:1.4}.member-loan-timeline.is-rejected li:nth-child(2) .member-loan-timeline-dot{border-color:#b52e3a;background:#b52e3a;color:#fff}
.member-loan-tracker-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:16px}.member-loan-tracker-details>div{padding:11px;border-radius:11px;background:#fbf5f8;min-width:0}.member-loan-tracker-details span{display:block;color:#897582;font-size:10px}.member-loan-tracker-details strong{display:block;margin-top:5px;color:#493041;font-size:15px;overflow-wrap:anywhere}.member-loan-admin-note{margin-top:12px;padding:12px 13px;border:1px solid #edd7a7;border-radius:12px;background:#fff9e9;color:#745b31;font-size:12px;line-height:1.5}.member-loan-admin-note p{margin:5px 0 0;white-space:pre-line;overflow-wrap:anywhere}.member-loan-guarantor-line{display:flex;flex-wrap:wrap;gap:7px 18px;margin-top:12px;padding-top:11px;border-top:1px solid #f1e5eb;color:#806b78;font-size:11px}
@media(max-width:800px){.loan-approver-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.loan-approval-checklist{grid-template-columns:1fr}.loan-approval-details{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.loan-approver-hero{flex-direction:column;padding:18px}.loan-approver-hero-status{align-items:flex-start}.loan-approval-card{padding:14px}.loan-approval-card-top{align-items:flex-start}.loan-approval-amount strong{font-size:20px}.loan-approval-decision-form{align-items:stretch;flex-direction:column}.loan-approval-actions{display:grid;grid-template-columns:1fr 1fr}.member-loan-tracker-card{padding:14px}.member-loan-tracker-head h3{font-size:22px}.member-loan-timeline{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 6px}.member-loan-timeline li:not(:last-child):after{display:none}.member-loan-tracker-details{grid-template-columns:1fr 1fr}.member-loan-tracker-details>div:last-child{grid-column:1/-1}}
@media(max-width:380px){.loan-approver-stat-grid{grid-template-columns:1fr}.loan-approval-details{grid-template-columns:1fr 1fr}.loan-approval-actions{grid-template-columns:1fr}.member-loan-tracker-head{flex-direction:column}.member-loan-timeline{grid-template-columns:1fr 1fr}}


/* V12: grouped Admin navigation with expandable main/submenus. */
.admin-drawer-links{gap:7px;padding-bottom:10px}
.admin-nav-group{border:1px solid #f0e4ea;border-radius:14px;overflow:hidden;background:#fff}
.admin-nav-main{width:100%;display:flex;align-items:center;gap:11px;min-height:48px;padding:12px 12px;border:0;border-radius:0;background:transparent;color:#493640;text-align:left;text-decoration:none;font:inherit;font-size:14px;font-weight:750;cursor:pointer}
.admin-nav-main:hover,.admin-nav-group.is-expanded>.admin-nav-main{background:#fff4f8;color:#80013f}
.admin-nav-main-icon{width:28px;height:28px;flex:0 0 28px;display:inline-flex;align-items:center;justify-content:center;border-radius:9px;background:#f9eaf1;color:#80013f;font-size:17px;font-weight:800}
.admin-nav-main-label{flex:1;min-width:0}
.admin-nav-chevron{font-size:20px;line-height:1;color:#967c89;transition:transform .18s ease}
.admin-nav-main[aria-expanded="true"] .admin-nav-chevron{transform:rotate(180deg)}
.admin-nav-main.admin-nav-single{border-radius:14px}
.admin-nav-main.admin-nav-single.selected{background:linear-gradient(100deg,#80013f,#a62b68);color:#fff}
.admin-nav-main.admin-nav-single.selected .admin-nav-main-icon{background:rgba(255,255,255,.18);color:#fff}
.admin-nav-submenu{display:flex;flex-direction:column;gap:3px;padding:3px 8px 9px 18px}
.admin-nav-submenu[hidden]{display:none!important}
.admin-nav-submenu a{display:flex;align-items:center;gap:10px;min-height:44px;padding:10px 12px;border-radius:10px;text-decoration:none;color:#493640;font-family:inherit;font-size:14px;font-weight:650;line-height:1.4;letter-spacing:normal;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.admin-nav-submenu a:hover{background:#fff4f8;color:#80013f}
.admin-nav-submenu a:focus-visible{outline:2px solid #80013f;outline-offset:2px}
@media(max-width:480px){.admin-nav-submenu a{font-size:14px;min-height:46px;padding:11px 12px}}
.admin-nav-submenu a.selected{background:#80013f;color:#fff;box-shadow:0 5px 14px rgba(128,1,63,.13)}
.admin-nav-subdot{width:6px;height:6px;flex:0 0 6px;border-radius:50%;background:#c7a7b7}
.admin-nav-submenu a.selected .admin-nav-subdot{background:#fff}
.admin-nav-current{margin-left:auto;font-size:8px;opacity:.9}


/* V14: refined, crisp typography for Admin drawer sub-navigation. */
.admin-drawer .admin-nav-submenu a,
.admin-drawer .admin-nav-submenu a span:not(.admin-nav-current) {
  font-family: Inter, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
  font-size: 14.5px !important;
  font-weight: 550 !important;
  line-height: 1.45 !important;
  letter-spacing: -0.12px !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
.admin-drawer .admin-nav-submenu a {
  position: relative;
  min-height: 46px;
  padding: 11px 13px !important;
  gap: 11px;
  color: #45313c;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 11px;
  transition: background-color .16s ease, color .16s ease, border-color .16s ease, transform .16s ease;
}
.admin-drawer .admin-nav-submenu a > span:nth-child(2) {
  display: block;
  flex: 1 1 auto;
  min-width: 0;
  overflow-wrap: anywhere;
}
.admin-drawer .admin-nav-submenu a:hover {
  color: #74113f;
  background: #fff4f8;
  border-color: #f4dce7;
  transform: translateX(2px);
}
.admin-drawer .admin-nav-submenu a.selected {
  color: #fff;
  background: linear-gradient(105deg, #80013f 0%, #9d245c 100%);
  border-color: #8b124c;
  box-shadow: 0 4px 11px rgba(128, 1, 63, .14);
  font-weight: 650 !important;
}
.admin-drawer .admin-nav-submenu a.selected > span:nth-child(2) {
  font-weight: 650 !important;
}
.admin-drawer .admin-nav-submenu .admin-nav-subdot {
  width: 6px;
  height: 6px;
  flex: 0 0 6px;
  border-radius: 50%;
  background: #c39aaa;
  box-shadow: 0 0 0 3px #f8edf2;
}
.admin-drawer .admin-nav-submenu a.selected .admin-nav-subdot {
  background: #fff;
  box-shadow: 0 0 0 3px rgba(255,255,255,.17);
}
.admin-drawer .admin-nav-submenu .admin-nav-current {
  margin-left: auto;
  flex: 0 0 auto;
  font-size: 8px !important;
  line-height: 1 !important;
  opacity: .9;
}
.admin-drawer .admin-nav-main-label {
  font-family: Inter, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  letter-spacing: -0.15px;
}
@media (max-width: 480px) {
  .admin-drawer .admin-nav-submenu a,
  .admin-drawer .admin-nav-submenu a span:not(.admin-nav-current) {
    font-size: 14.5px !important;
  }
  .admin-drawer .admin-nav-submenu a { min-height: 47px; }
}


/* Global server-confirmed form submission feedback */
.kys-submit-overlay[hidden],.kys-submit-error[hidden]{display:none!important}
.kys-submit-overlay{position:fixed;inset:0;z-index:100000;background:rgba(22,14,18,.48);backdrop-filter:blur(3px);display:grid;place-items:center;padding:22px}
.kys-submit-dialog{width:min(100%,360px);background:#fff;border:1px solid #f0dce6;border-radius:22px;padding:28px 24px;text-align:center;box-shadow:0 24px 80px rgba(32,8,20,.25);color:#34232b}
.kys-submit-dialog strong{display:block;font-size:17px;line-height:1.35;margin:14px 0 7px;font-weight:800;letter-spacing:-.2px}
.kys-submit-dialog p{margin:0;color:#786d75;font-size:13px;line-height:1.55}
.kys-submit-spinner{display:block;width:44px;height:44px;border:4px solid #f3dce7;border-top-color:#80013f;border-radius:50%;margin:0 auto;animation:kys-submit-spin .8s linear infinite}
@keyframes kys-submit-spin{to{transform:rotate(360deg)}}
.kys-submit-error{position:fixed;z-index:100001;left:16px;right:16px;bottom:calc(18px + env(safe-area-inset-bottom));max-width:620px;margin:0 auto;background:#fff;border:1px solid #f0c7c5;border-left:5px solid #b83232;border-radius:16px;padding:16px;box-shadow:0 18px 55px rgba(45,12,20,.22);display:flex;align-items:center;justify-content:space-between;gap:16px;color:#3f2528}
.kys-submit-error-copy{min-width:0}.kys-submit-error-copy strong{display:block;font-size:14px;font-weight:800;margin-bottom:5px}.kys-submit-error-copy p{font-size:13px;line-height:1.5;margin:0;overflow-wrap:anywhere}.kys-submit-error-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.kys-submit-error-actions .primary{width:auto;margin:0;padding:10px 14px;white-space:nowrap}.kys-submit-error-actions .secondary-btn{width:auto;margin:0;padding:10px 12px;white-space:nowrap}
.kys-submit-success-toast{position:fixed;z-index:100002;top:calc(14px + env(safe-area-inset-top));left:16px;right:16px;max-width:560px;margin:0 auto;padding:14px 18px;border-radius:14px;background:#176b37;color:#fff;font-size:14px;font-weight:800;line-height:1.45;box-shadow:0 14px 36px rgba(23,107,55,.25);text-align:center;animation:kys-submit-toast-in .24s ease-out}
@keyframes kys-submit-toast-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
button.busy{opacity:.75;cursor:wait}
@media(max-width:520px){.kys-submit-error{align-items:stretch;flex-direction:column;gap:12px}.kys-submit-error-actions{justify-content:flex-end}.kys-submit-dialog{padding:25px 20px}}


/* Accessible password visibility toggle */
.kys-password-field{position:relative;width:100%;min-width:0;display:block}
.kys-password-field>input[type="password"],.kys-password-field>input[type="text"]{width:100%;padding-right:94px!important;box-sizing:border-box}
.kys-password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);z-index:2;min-height:34px;width:auto!important;margin:0!important;padding:6px 9px!important;border:1px solid #ead5df!important;border-radius:9px!important;background:#fff!important;color:#80013f!important;font-family:inherit;font-size:12px!important;font-weight:700!important;line-height:1.2;cursor:pointer;box-shadow:none!important}
.kys-password-toggle:hover{background:#fff4f8!important;border-color:#d7a8bd!important}
.kys-password-toggle:focus-visible{outline:3px solid rgba(128,1,63,.25);outline-offset:2px}
.kys-password-field input:focus{position:relative;z-index:1}
@media(max-width:380px){.kys-password-field>input[type="password"],.kys-password-field>input[type="text"]{padding-right:82px!important}.kys-password-toggle{font-size:11px!important;padding:6px 7px!important}}

/* Activity audit log screen */
.activity-log-page { margin-top: 1rem; }
.activity-log-stats { margin: 1rem 0 1.25rem; }
.activity-log-filters { align-items: end; margin: 1rem 0; }
.activity-log-filters label { display: flex; flex-direction: column; gap: .4rem; font-size: .86rem; font-weight: 650; }
.activity-log-filters input, .activity-log-filters select { min-width: 0; width: 100%; }
.activity-log-filters .filter-actions { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
.activity-log-table { min-width: 850px; }
.activity-log-table td small { display: block; color: var(--muted, #6b7280); margin-top: .2rem; }
.activity-log-table code { white-space: normal; overflow-wrap: anywhere; font-size: .78rem; }
@media (max-width: 700px) {
  .activity-log-filters { grid-template-columns: 1fr 1fr; }
  .activity-log-filters label:first-child { grid-column: 1 / -1; }
  .activity-log-filters .filter-actions { grid-column: 1 / -1; }
}


/* =====================================================================
   V26 UI POLISH LAYER — visual only.
   Pure presentation: colours, type, depth, motion and loaders.
   No selectors here change layout logic, visibility rules or behaviour.
   ===================================================================== */

/* ---------- Self-hosted fonts (CSP-safe: served from /assets/fonts) ---------- */
@font-face{font-family:"KYS Sans";src:url("fonts/plus-jakarta-sans-latin-wght-normal.woff2") format("woff2-variations"),url("fonts/plus-jakarta-sans-latin-wght-normal.woff2") format("woff2");font-weight:200 800;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"KYS Devanagari";src:url("fonts/mukta-devanagari-400-normal.woff2") format("woff2");font-weight:400 500;font-display:swap;unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}
@font-face{font-family:"KYS Devanagari";src:url("fonts/mukta-devanagari-600-normal.woff2") format("woff2");font-weight:600;font-display:swap;unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}
@font-face{font-family:"KYS Devanagari";src:url("fonts/mukta-devanagari-700-normal.woff2") format("woff2");font-weight:700 900;font-display:swap;unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}

/* ---------- Design tokens ---------- */
:root{
  --kys-brand:#80013f;
  --kys-brand-600:#6b0035;
  --kys-brand-700:#55002a;
  --kys-brand-400:#a3215f;
  --kys-brand-300:#c9568c;
  --kys-brand-50:#fdf2f7;
  --kys-brand-100:#f8e3ed;
  --kys-gold:#d9a441;
  --kys-ink:#2e2228;
  --kys-ink-soft:#6f5f67;
  --kys-line:#efe3e8;
  --kys-surface:#ffffff;
  --kys-canvas:#fbf7f3;
  --kys-grad:linear-gradient(135deg,#9a0b4f 0%,#80013f 45%,#5e002e 100%);
  --kys-grad-soft:linear-gradient(135deg,#fff 0%,#fff7fa 100%);
  --kys-shadow-xs:0 1px 2px rgba(64,18,40,.05);
  --kys-shadow-sm:0 1px 2px rgba(64,18,40,.04),0 4px 14px rgba(64,18,40,.05);
  --kys-shadow-md:0 2px 4px rgba(64,18,40,.04),0 12px 30px rgba(64,18,40,.08);
  --kys-shadow-lg:0 4px 10px rgba(64,18,40,.06),0 24px 60px rgba(64,18,40,.16);
  --kys-shadow-brand:0 6px 18px rgba(128,1,63,.26);
  --kys-ease:cubic-bezier(.22,1,.36,1);
  --kys-ease-spring:cubic-bezier(.34,1.56,.64,1);
  font-family:"KYS Sans","KYS Devanagari",Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--kys-ink);
}
html{background:var(--kys-canvas)}
body{color:var(--kys-ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;-webkit-tap-highlight-color:transparent}
button,input,select,textarea{font-family:inherit}
h1,h2,h3{letter-spacing:-.02em}
h1{font-weight:800}
::selection{background:rgba(128,1,63,.16);color:var(--kys-brand-700)}
.eyebrow{letter-spacing:.14em}

/* Thin, branded scrollbars on desktop */
@media (hover:hover){
  *{scrollbar-width:thin;scrollbar-color:#dcc6d1 transparent}
  ::-webkit-scrollbar{width:10px;height:10px}
  ::-webkit-scrollbar-thumb{background:#dcc6d1;border-radius:99px;border:3px solid transparent;background-clip:content-box}
  ::-webkit-scrollbar-thumb:hover{background:#c49db0;background-clip:content-box;border:3px solid transparent}
}

/* ---------- Keyframes ---------- */
@keyframes kys-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes kys-fade{from{opacity:0}to{opacity:1}}
@keyframes kys-pop{0%{opacity:0;transform:scale(.92)}100%{opacity:1;transform:none}}
@keyframes kys-sheet-up{from{transform:translate(-50%,100%)}to{transform:translate(-50%,0)}}
@keyframes kys-grow-x{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes kys-shine{0%{transform:translateX(-120%) skewX(-18deg)}60%,100%{transform:translateX(220%) skewX(-18deg)}}
@keyframes kys-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes kys-blob{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(30px,-24px) scale(1.08)}66%{transform:translate(-22px,18px) scale(.95)}}
@keyframes kys-bell{0%,100%{transform:rotate(0)}10%{transform:rotate(14deg)}20%{transform:rotate(-12deg)}30%{transform:rotate(9deg)}40%{transform:rotate(-6deg)}50%{transform:rotate(0)}}
@keyframes kys-ping{0%{box-shadow:0 0 0 0 rgba(198,40,40,.55)}80%,100%{box-shadow:0 0 0 9px rgba(198,40,40,0)}}
@keyframes kys-pulse-dot{0%,100%{box-shadow:0 0 0 0 rgba(166,43,104,.45)}50%{box-shadow:0 0 0 6px rgba(166,43,104,0)}}
@keyframes kys-orbit{to{transform:rotate(360deg)}}
@keyframes kys-orbit-rev{to{transform:rotate(-360deg)}}
@keyframes kys-core{0%,100%{transform:scale(.72);opacity:.85}50%{transform:scale(1);opacity:1}}
@keyframes kys-indeterminate{0%{left:-40%;width:40%}50%{width:55%}100%{left:100%;width:40%}}
@keyframes kys-spin{to{transform:rotate(360deg)}}
@keyframes kys-shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-5px)}40%{transform:translateX(5px)}60%{transform:translateX(-3px)}80%{transform:translateX(3px)}}
@keyframes kys-toast-in{0%{opacity:0;transform:translateY(-16px) scale(.96)}100%{opacity:1;transform:none}}
@keyframes kys-error-in{0%{opacity:0;transform:translateY(24px)}100%{opacity:1;transform:none}}

/* ---------- Page canvases ---------- */
.page{position:relative;overflow:hidden;isolation:isolate;background:
  radial-gradient(1000px 520px at -10% -10%,#f6dfe9 0,transparent 60%),
  radial-gradient(800px 480px at 110% 110%,#f7ead6 0,transparent 60%),
  var(--kys-canvas)}
.page::before,.page::after{content:"";position:absolute;z-index:-1;border-radius:50%;filter:blur(60px);opacity:.55;pointer-events:none;animation:kys-blob 18s ease-in-out infinite}
.page::before{width:340px;height:340px;top:-90px;right:-60px;background:radial-gradient(circle,#e7a9c6,transparent 70%)}
.page::after{width:300px;height:300px;bottom:-80px;left:-70px;background:radial-gradient(circle,#f3cf95,transparent 70%);animation-delay:-9s}
.member-body{background:
  radial-gradient(900px 420px at -10% -5%,#f7e3ec 0,transparent 55%),
  radial-gradient(700px 380px at 110% 0%,#f8eedf 0,transparent 55%),
  var(--kys-canvas);background-attachment:fixed}
body:has(> .wide-page){background:
  radial-gradient(1100px 460px at 0% -10%,#f7e5ee 0,transparent 55%),
  radial-gradient(900px 420px at 100% 0%,#f8efe2 0,transparent 55%),
  var(--kys-canvas);background-attachment:fixed}

/* ---------- Auth card ---------- */
.auth-card{border:1px solid rgba(232,214,223,.9);border-radius:26px;background:rgba(255,255,255,.88);-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);box-shadow:var(--kys-shadow-lg);animation:kys-rise .6s var(--kys-ease) backwards;position:relative}
.auth-card{overflow:hidden}
.auth-card::before{content:"";position:absolute;inset:0 0 auto 0;height:5px;background:linear-gradient(90deg,#80013f,#c9568c,#d9a441,#80013f);background-size:300% 100%;animation:kys-gradient-run 8s linear infinite}
@keyframes kys-gradient-run{to{background-position:300% 0}}
.auth-card>.brand-mark{animation:kys-pop .7s var(--kys-ease-spring) .1s backwards,kys-float 6s ease-in-out 1s infinite;filter:drop-shadow(0 8px 16px rgba(128,1,63,.18))}
.auth-card h1{background:linear-gradient(120deg,#3a1a2a,#80013f);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.auth-card form>*{animation:kys-rise .5s var(--kys-ease) backwards}
.auth-card form>*:nth-child(1){animation-delay:.08s}.auth-card form>*:nth-child(2){animation-delay:.12s}.auth-card form>*:nth-child(3){animation-delay:.16s}.auth-card form>*:nth-child(4){animation-delay:.2s}.auth-card form>*:nth-child(5){animation-delay:.24s}.auth-card form>*:nth-child(6){animation-delay:.28s}.auth-card form>*:nth-child(7){animation-delay:.32s}.auth-card form>*:nth-child(8){animation-delay:.36s}.auth-card form>*:nth-child(n+9){animation-delay:.4s}

/* ---------- Form controls ---------- */
label{color:#4a3a42}
input,textarea,select{border-color:#e6d6de;border-radius:12px;background-color:#fff;color:var(--kys-ink);transition:border-color .2s ease,box-shadow .25s var(--kys-ease),background-color .2s ease}
input:hover,textarea:hover,select:hover{border-color:#d8bccb}
input:focus,textarea:focus,select:focus{border-color:var(--kys-brand);box-shadow:0 0 0 4px rgba(128,1,63,.12),0 2px 8px rgba(128,1,63,.08);background-color:#fff}
input::placeholder,textarea::placeholder{color:#b3a2aa}
input[type=file]{background:#fffafc;border-style:dashed;cursor:pointer}
input[type=file]::file-selector-button{margin-right:10px;border:0;border-radius:9px;padding:8px 12px;background:var(--kys-brand-100);color:var(--kys-brand);font-weight:700;cursor:pointer;transition:background .2s ease}
input[type=file]::file-selector-button:hover{background:#f2cfe0}
input[type=checkbox],input[type=radio]{accent-color:var(--kys-brand)}
.alert,.success,.notice{border-radius:14px;animation:kys-rise .45s var(--kys-ease) backwards;box-shadow:var(--kys-shadow-xs)}
.alert{animation:kys-rise .45s var(--kys-ease) backwards,kys-shake .45s ease .45s}
.alert{border-left:4px solid #d64a3f}
.success{border-left:4px solid #2a9a57}
.notice{border-left:4px solid #e0b43b}

/* ---------- Buttons ---------- */
.primary{position:relative;overflow:hidden;isolation:isolate;border-radius:12px;background:var(--kys-grad);background-size:140% 140%;background-position:0 0;box-shadow:var(--kys-shadow-brand),inset 0 1px 0 rgba(255,255,255,.14);letter-spacing:.01em;transition:transform .18s var(--kys-ease),box-shadow .25s ease,background-position .4s ease,filter .2s ease}
.primary::after{content:"";position:absolute;top:0;bottom:0;left:0;width:45%;z-index:-1;background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);transform:translateX(-120%) skewX(-18deg);pointer-events:none}
.primary:hover{background:var(--kys-grad);background-size:140% 140%;background-position:100% 100%;transform:translateY(-1px);box-shadow:0 10px 26px rgba(128,1,63,.32),inset 0 1px 0 rgba(255,255,255,.14)}
.primary:hover::after{animation:kys-shine .9s ease}
.primary:active{transform:translateY(1px) scale(.985);box-shadow:0 3px 10px rgba(128,1,63,.25)}
.primary:focus-visible{outline:3px solid rgba(128,1,63,.3);outline-offset:3px}
.secondary-btn,.icon-btn,.danger-btn,.admin-header>.secondary-link{transition:transform .18s var(--kys-ease),box-shadow .2s ease,background-color .2s ease,border-color .2s ease,color .2s ease}
.secondary-btn{border-color:#e7cfdb;border-radius:12px;box-shadow:var(--kys-shadow-xs)}
.secondary-btn:hover{background:var(--kys-brand-50);border-color:#d7a9c0;transform:translateY(-1px);box-shadow:var(--kys-shadow-sm)}
.secondary-btn:active,.icon-btn:active,.danger-btn:active{transform:scale(.97)}
.icon-btn{border-radius:11px;border-color:#ecd8e1;background:#fff}
.icon-btn:hover{background:var(--kys-brand-50);border-color:#d7a9c0;transform:translateY(-1px);box-shadow:var(--kys-shadow-sm)}
.icon-btn svg{transition:transform .25s var(--kys-ease-spring)}
.icon-btn:hover svg{transform:scale(1.12)}
.icon-btn.accent{background:var(--kys-grad);border-color:transparent;box-shadow:var(--kys-shadow-brand)}
.icon-btn.accent:hover{color:#fff;box-shadow:0 10px 24px rgba(128,1,63,.3)}
.danger-btn:hover{background:#fff3f2;box-shadow:0 4px 14px rgba(180,35,24,.12)}
.action-row button{border-radius:11px;box-shadow:0 3px 10px rgba(0,0,0,.08),inset 0 1px 0 rgba(255,255,255,.15);transition:transform .18s var(--kys-ease),filter .2s ease,box-shadow .2s ease}
.action-row button:not([disabled]):hover{transform:translateY(-1px);filter:brightness(1.08);box-shadow:0 8px 18px rgba(0,0,0,.14)}
.action-row button:not([disabled]):active{transform:scale(.97)}
.approve{background:linear-gradient(135deg,#1f8a50,#16683b)}
.rework{background:var(--kys-grad)}
.reject{background:linear-gradient(135deg,#cc3b3b,#a02a2a)}
.text-action,.dashboard-reset,.secondary-link,.link-row a,.footnote a,.back-link,.panel-head a{transition:color .2s ease,opacity .2s ease}
.link-row a,.panel-head a,.back-link,.footnote a{background-image:linear-gradient(currentColor,currentColor);background-size:0 1.5px;background-repeat:no-repeat;background-position:0 100%;transition:background-size .3s var(--kys-ease)}
.link-row a:hover,.panel-head a:hover,.back-link:hover,.footnote a:hover{background-size:100% 1.5px}

/* Busy buttons: subtle inline spinner + breathing shimmer */
button.busy,.primary.busy{position:relative}
button.busy::before{content:"";display:inline-block;width:14px;height:14px;margin-right:8px;vertical-align:-2px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:kys-spin .7s linear infinite;opacity:.9}
.primary.busy::after{animation:kys-shine 1.2s ease infinite}

/* ---------- Member app shell ---------- */
.app-bar{background:rgba(255,252,250,.78);-webkit-backdrop-filter:blur(16px) saturate(160%);backdrop-filter:blur(16px) saturate(160%);border-bottom:1px solid rgba(234,218,226,.8);box-shadow:0 1px 0 rgba(255,255,255,.6) inset,0 6px 20px rgba(64,18,40,.04)}
.app-logo{transition:transform .4s var(--kys-ease-spring)}
.app-logo:hover{transform:rotate(-6deg) scale(1.06)}
.app-name{background:linear-gradient(90deg,#80013f,#b83a78);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.app-logout{border-radius:10px;padding:8px 10px;transition:background-color .2s ease}
.app-logout:hover{background:var(--kys-brand-50)}
.app-title{font-weight:800;animation:kys-rise .5s var(--kys-ease) backwards}
.greeting{animation:kys-rise .5s var(--kys-ease) .05s backwards}

.bottom-nav{background:rgba(255,255,255,.86);-webkit-backdrop-filter:blur(18px) saturate(170%);backdrop-filter:blur(18px) saturate(170%);border-top:1px solid rgba(234,218,226,.8);box-shadow:0 -10px 30px rgba(64,18,40,.07)}
.bottom-nav a{position:relative;transition:color .2s ease}
.bottom-nav a svg{position:relative;z-index:1;transition:transform .3s var(--kys-ease-spring)}
.bottom-nav a::before{content:"";position:absolute;top:7px;left:50%;width:46px;height:30px;margin-left:-23px;border-radius:999px;background:var(--kys-brand-100);opacity:0;transform:scale(.5);transition:opacity .25s ease,transform .35s var(--kys-ease-spring)}
.bottom-nav a.active::before{opacity:1;transform:scale(1)}
.bottom-nav a.active svg{transform:translateY(-1px)}
.bottom-nav a:hover:not(.active) svg{transform:translateY(-2px)}
.bottom-nav a:active svg{transform:scale(.88)}
.bottom-nav a.active span{font-weight:800}
@media(max-width:430px){.bottom-nav a::before{width:40px;height:28px;margin-left:-20px;top:6px}}

/* Language toggle & bell */
.language-toggle{border-color:#ecdbe3;box-shadow:var(--kys-shadow-xs);background:#fff}
.language-option{transition:background-color .25s ease,color .2s ease,box-shadow .25s ease,transform .15s ease}
.language-option.is-active{background:var(--kys-grad);box-shadow:0 3px 10px rgba(128,1,63,.25)}
.language-option:not(.is-active):hover{background:var(--kys-brand-50);color:var(--kys-brand)}
.language-option:active{transform:scale(.94)}
.notification-bell{border-color:#ecdbe3!important;box-shadow:var(--kys-shadow-xs);transition:background-color .2s ease,box-shadow .2s ease,transform .2s var(--kys-ease)}
.notification-bell:hover{background:var(--kys-brand-50);box-shadow:var(--kys-shadow-sm);transform:translateY(-1px)}
.notification-bell:hover svg{animation:kys-bell .9s ease}
.notification-count{background:linear-gradient(135deg,#e04848,#b71f1f);animation:kys-pop .4s var(--kys-ease-spring) backwards,kys-ping 2.2s ease-out 1s infinite}

/* ---------- Surfaces: panels, cards, stats ---------- */
.panel,.user-card,.stat-card,.pay-item,.summary-strip div,.empty-state,.notification-item,.dashboard-panel,.dashboard-stat-card,.finance-stat,.loan-approval-card,.member-loan-tracker-card,.dashboard-filters,.dashboard-welcome,.check-list li,.dashboard-selected-member{border-color:var(--kys-line);box-shadow:var(--kys-shadow-sm)}
.panel{border-radius:20px}
.user-card,.dashboard-stat-card,.finance-stat,.loan-approval-card,.member-loan-tracker-card,.dashboard-panel{border-radius:20px}
.stat-card,.pay-item,.finance-stat,.dashboard-stat-card,.user-card,.notification-item,.loan-approval-card,.member-loan-tracker-card,.summary-strip div,.dashboard-panel,.check-list li{transition:transform .25s var(--kys-ease),box-shadow .25s ease,border-color .25s ease}
@media (hover:hover){
  .stat-card:hover,.pay-item:hover,.finance-stat:hover,.dashboard-stat-card:hover,.user-card:hover,.notification-item:hover,.loan-approval-card:hover,.member-loan-tracker-card:hover,.summary-strip div:hover,.dashboard-panel:hover{transform:translateY(-3px);box-shadow:var(--kys-shadow-md);border-color:#e6cfda}
}
.stat-card{position:relative;overflow:hidden;border-radius:18px;background:linear-gradient(160deg,#fff 0%,#fffafc 100%)}
.stat-card::after,.finance-stat::after{content:"";position:absolute;left:16px;right:16px;top:0;height:2px;border-radius:0 0 2px 2px;background:linear-gradient(90deg,transparent,rgba(128,1,63,.35),transparent);opacity:0;transition:opacity .3s ease;pointer-events:none}
.stat-card:hover::after,.finance-stat:hover::after{opacity:1}
.finance-stat{position:relative;overflow:hidden}
.stat-value,.dashboard-stat-value,.finance-stat strong,.pay-amount,.summary-strip strong,.finance-balance strong,.dashboard-panel-number{font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.stat-verified{background:linear-gradient(160deg,#f3fbf6 0%,#fff 100%);border-color:#cdeed8}
.pay-item{border-radius:16px}
.pay-item.highlight{border-color:var(--kys-brand);box-shadow:0 0 0 4px rgba(128,1,63,.1),var(--kys-shadow-md)}
.empty-state{border:1px dashed #e3cdd8;background:linear-gradient(160deg,#fff,#fff8fb)}

/* Staggered entrance for lists/grids */
.app-main>*,.wide-page>*:not(.admin-drawer):not(.admin-drawer-backdrop):not(.dashboard-bottom-sheet):not(.dashboard-sheet-backdrop):not(.loan-request-sheet):not(.loan-request-sheet-backdrop):not(.notification-sheet):not(.notification-sheet-backdrop):not(.kys-submit-overlay):not(.kys-submit-error){animation:kys-rise .55s var(--kys-ease) backwards}
.app-main>*:nth-child(2),.wide-page>*:nth-child(2){animation-delay:.05s}
.app-main>*:nth-child(3),.wide-page>*:nth-child(3){animation-delay:.1s}
.app-main>*:nth-child(4),.wide-page>*:nth-child(4){animation-delay:.15s}
.app-main>*:nth-child(5),.wide-page>*:nth-child(5){animation-delay:.2s}
.app-main>*:nth-child(n+6),.wide-page>*:nth-child(n+6){animation-delay:.25s}
.stat-grid>*,.dashboard-stat-grid>*,.finance-stat-grid>*,.user-grid>*,.pay-list>*,.notification-list>*,.loan-approver-queue>*,.member-loan-timeline-list>*,.check-list>*,.summary-strip>*{animation:kys-rise .5s var(--kys-ease) backwards}
:is(.stat-grid,.dashboard-stat-grid,.finance-stat-grid,.user-grid,.pay-list,.notification-list,.loan-approver-queue,.member-loan-timeline-list,.check-list,.summary-strip)>*:nth-child(1){animation-delay:.08s}
:is(.stat-grid,.dashboard-stat-grid,.finance-stat-grid,.user-grid,.pay-list,.notification-list,.loan-approver-queue,.member-loan-timeline-list,.check-list,.summary-strip)>*:nth-child(2){animation-delay:.13s}
:is(.stat-grid,.dashboard-stat-grid,.finance-stat-grid,.user-grid,.pay-list,.notification-list,.loan-approver-queue,.member-loan-timeline-list,.check-list,.summary-strip)>*:nth-child(3){animation-delay:.18s}
:is(.stat-grid,.dashboard-stat-grid,.finance-stat-grid,.user-grid,.pay-list,.notification-list,.loan-approver-queue,.member-loan-timeline-list,.check-list,.summary-strip)>*:nth-child(4){animation-delay:.23s}
:is(.stat-grid,.dashboard-stat-grid,.finance-stat-grid,.user-grid,.pay-list,.notification-list,.loan-approver-queue,.member-loan-timeline-list,.check-list,.summary-strip)>*:nth-child(5){animation-delay:.28s}
:is(.stat-grid,.dashboard-stat-grid,.finance-stat-grid,.user-grid,.pay-list,.notification-list,.loan-approver-queue,.member-loan-timeline-list,.check-list,.summary-strip)>*:nth-child(6){animation-delay:.33s}
:is(.stat-grid,.dashboard-stat-grid,.finance-stat-grid,.user-grid,.pay-list,.notification-list,.loan-approver-queue,.member-loan-timeline-list,.check-list,.summary-strip)>*:nth-child(n+7){animation-delay:.38s}

/* Status pills with a coloured dot */
.status,.pstatus,.loan-status-badge{display:inline-flex;align-items:center;gap:6px;letter-spacing:.01em;box-shadow:inset 0 0 0 1px rgba(0,0,0,.04)}
.status::before,.pstatus::before,.loan-status-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:0 0 6px;opacity:.85}
.status-pending::before,.ps-submitted::before,.loan-status-requested::before{animation:kys-pulse-dot 1.8s ease-in-out infinite}

/* Progress bars animate in */
.dashboard-progress span,.dashboard-summary-track span,.scorecard-progress span,.member-loan-progress-track span{transform-origin:left center;animation:kys-grow-x 1.1s var(--kys-ease) .25s backwards;position:relative;overflow:hidden}
.dashboard-progress span::after,.dashboard-summary-track span::after,.scorecard-progress span::after,.member-loan-progress-track span::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);transform:translateX(-120%) skewX(-18deg);animation:kys-shine 2.8s ease-in-out 1.4s infinite}

/* ---------- Filters, pagination, tabs ---------- */
.filters a,.pagination a{transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .18s var(--kys-ease),box-shadow .2s ease}
.filters a:hover:not(.selected),.pagination a:hover:not(.current){background:var(--kys-brand-50);border-color:#dfb7ca;color:var(--kys-brand);transform:translateY(-1px)}
.filters a.selected,.pagination .current,.admin-tabs a.selected{background:var(--kys-grad);border-color:transparent;box-shadow:0 4px 12px rgba(128,1,63,.22)}
.pagination a,.pagination span{border-radius:10px;min-width:36px;text-align:center}

/* ---------- Tables ---------- */
.table-scroll{border-color:var(--kys-line);border-radius:16px;box-shadow:var(--kys-shadow-sm);background:#fff}
.data-table th{background:linear-gradient(180deg,#fcf6f9,#f8eef3);position:sticky;top:0;z-index:1}
.data-table tbody tr{transition:background-color .18s ease}
.data-table tbody tr:hover{background:#fff6fa}

/* ---------- Hero banners ---------- */
.finance-hero{position:relative;overflow:hidden;isolation:isolate;background:linear-gradient(125deg,#3d0e29 0%,#80013f 55%,#b0447a 100%);box-shadow:0 18px 44px rgba(83,12,48,.25)}
.finance-hero::before{content:"";position:absolute;z-index:-1;width:420px;height:420px;right:-120px;top:-180px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.18),transparent 65%);animation:kys-blob 16s ease-in-out infinite}
.finance-hero::after{content:"";position:absolute;z-index:-1;width:300px;height:300px;left:30%;bottom:-200px;border-radius:50%;background:radial-gradient(circle,rgba(217,164,65,.28),transparent 65%);animation:kys-blob 20s ease-in-out -6s infinite}
.finance-balance{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:rgba(255,255,255,.12);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 8px 24px rgba(0,0,0,.12);transition:transform .3s var(--kys-ease)}
.finance-balance:hover{transform:translateY(-2px) scale(1.01)}
.finance-hero-link{transition:border-color .2s ease,color .2s ease}
.finance-hero-link:hover{border-color:#fff}
.dashboard-welcome,.loan-approver-hero{position:relative;overflow:hidden;isolation:isolate}
.dashboard-welcome::after,.loan-approver-hero::after{content:"";position:absolute;z-index:-1;right:-80px;top:-120px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(201,86,140,.14),transparent 65%);pointer-events:none}
.dashboard-period-dot{animation:kys-pulse-dot 1.8s ease-in-out infinite}
.dashboard-stat-icon,.loan-request-cta-icon,.loan-preview-icon,.loan-approval-avatar,.dashboard-selected-avatar,.dashboard-pending-avatar,.admin-nav-main-icon,.loan-check-number{transition:transform .35s var(--kys-ease-spring)}
.dashboard-stat-card:hover .dashboard-stat-icon,.loan-request-cta:hover .loan-request-cta-icon,.loan-approval-card:hover .loan-approval-avatar,.admin-nav-main:hover .admin-nav-main-icon{transform:scale(1.1) rotate(-4deg)}
.stat-pending:hover .dashboard-open-icon{transform:translate(2px,-2px)}
.dashboard-open-icon{transition:transform .25s var(--kys-ease)}
.coming-soon-badge{background:var(--kys-grad);box-shadow:var(--kys-shadow-brand);animation:kys-float 4s ease-in-out infinite}

/* Loan timeline */
.member-loan-timeline li.is-current .member-loan-timeline-dot{animation:kys-pulse-dot 1.8s ease-in-out infinite}
.member-loan-timeline li.is-done .member-loan-timeline-dot{background:var(--kys-grad)}

/* ---------- Admin header & drawer ---------- */
.admin-header{border-bottom-color:rgba(234,218,226,.9)}
.admin-header h1{font-weight:800}
.admin-menu-toggle{transition:background-color .2s ease,box-shadow .2s ease,transform .2s var(--kys-ease)}
.admin-menu-toggle:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(70,20,48,.12)}
.admin-menu-toggle:active{transform:scale(.95)}
.admin-hamburger-lines i{transition:transform .3s var(--kys-ease-spring),opacity .2s ease,width .25s var(--kys-ease)}
.admin-menu-toggle:hover .admin-hamburger-lines i:nth-child(2){width:14px}
.admin-drawer-backdrop:not([hidden]),.dashboard-sheet-backdrop:not([hidden]),.loan-request-sheet-backdrop:not([hidden]),.notification-sheet-backdrop:not([hidden]){animation:kys-fade .3s ease backwards}
.admin-drawer{transition:transform .42s var(--kys-ease);background:linear-gradient(180deg,#fffdfe 0%,#fff9f6 100%)}
.admin-drawer-header strong{background:linear-gradient(90deg,#80013f,#b83a78);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.admin-drawer-close,.dashboard-sheet-close,.loan-request-sheet-close,.notification-sheet-close{transition:background-color .2s ease,transform .3s var(--kys-ease-spring)}
.admin-drawer-close:hover,.dashboard-sheet-close:hover,.loan-request-sheet-close:hover,.notification-sheet-close:hover{background:#f1d6e3;transform:rotate(90deg)}
.admin-drawer.is-open .admin-drawer-links>*{animation:kys-drawer-in .45s var(--kys-ease) backwards}
@keyframes kys-drawer-in{from{opacity:0;transform:translateX(-14px)}to{opacity:1;transform:none}}
.admin-drawer.is-open .admin-drawer-links>*:nth-child(1){animation-delay:.08s}
.admin-drawer.is-open .admin-drawer-links>*:nth-child(2){animation-delay:.12s}
.admin-drawer.is-open .admin-drawer-links>*:nth-child(3){animation-delay:.16s}
.admin-drawer.is-open .admin-drawer-links>*:nth-child(4){animation-delay:.2s}
.admin-drawer.is-open .admin-drawer-links>*:nth-child(5){animation-delay:.24s}
.admin-drawer.is-open .admin-drawer-links>*:nth-child(6){animation-delay:.28s}
.admin-drawer.is-open .admin-drawer-links>*:nth-child(n+7){animation-delay:.32s}
.admin-nav-group{border-color:var(--kys-line);box-shadow:var(--kys-shadow-xs);transition:box-shadow .25s ease,border-color .25s ease}
.admin-nav-group.is-expanded{border-color:#ebd2de;box-shadow:var(--kys-shadow-sm)}
.admin-nav-main{transition:background-color .2s ease,color .2s ease}
.admin-nav-chevron{transition:transform .3s var(--kys-ease-spring)}
.admin-nav-submenu:not([hidden])>a{animation:kys-drawer-in .35s var(--kys-ease) backwards}
.admin-nav-submenu:not([hidden])>a:nth-child(2){animation-delay:.04s}
.admin-nav-submenu:not([hidden])>a:nth-child(3){animation-delay:.08s}
.admin-nav-submenu:not([hidden])>a:nth-child(n+4){animation-delay:.12s}
.admin-nav-main.admin-nav-single.selected,.admin-drawer .admin-nav-submenu a.selected,.admin-drawer-links a.selected{background:var(--kys-grad)}

/* ---------- Bottom sheets ---------- */
.notification-sheet:not([hidden]){animation:kys-sheet-up .42s var(--kys-ease) backwards}
.notification-sheet,.dashboard-bottom-sheet,.loan-request-sheet{box-shadow:0 -24px 70px rgba(35,12,25,.24)}
.dashboard-bottom-sheet,.loan-request-sheet{transition:transform .42s var(--kys-ease)}
.notification-sheet-handle,.dashboard-sheet-handle,.loan-request-sheet-handle{background:#dcc4d0;width:46px;height:5px}
.notification-sheet-backdrop,.dashboard-sheet-backdrop,.loan-request-sheet-backdrop,.admin-drawer-backdrop{background:rgba(30,10,22,.42);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.notification-item.unread{border-left-color:var(--kys-brand);background:linear-gradient(90deg,#fff5fa 0%,#fff 60%)}
.dashboard-pending-member{transition:background-color .2s ease,padding-left .25s var(--kys-ease);border-radius:12px}
.dashboard-pending-member:hover{background:#fff7fa;padding-left:10px}

/* ---------- Global submission loader (branded orbit) ---------- */
.kys-submit-overlay:not([hidden]){animation:kys-fade .25s ease backwards}
.kys-submit-overlay{background:radial-gradient(circle at 50% 45%,rgba(80,10,45,.38),rgba(20,8,14,.6));-webkit-backdrop-filter:blur(8px) saturate(120%);backdrop-filter:blur(8px) saturate(120%)}
.kys-submit-dialog{position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.7);border-radius:26px;padding:34px 26px 30px;background:linear-gradient(180deg,#fff 0%,#fff9fb 100%);box-shadow:0 30px 90px rgba(32,8,20,.35),inset 0 1px 0 #fff;animation:kys-pop .45s var(--kys-ease-spring) backwards}
.kys-submit-dialog::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:#f6e6ee}
.kys-submit-dialog::before{content:"";position:absolute;bottom:0;height:4px;left:-40%;width:40%;z-index:1;border-radius:4px;background:linear-gradient(90deg,#80013f,#c9568c,#d9a441);animation:kys-indeterminate 1.4s var(--kys-ease) infinite}
.kys-submit-spinner{position:relative;width:72px;height:72px;border:0;border-radius:50%;margin:0 auto 4px;background:conic-gradient(from 0deg,rgba(128,1,63,0) 0deg,rgba(128,1,63,.15) 120deg,#80013f 300deg,#c9568c 360deg);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 5px),#000 calc(100% - 4px));mask:radial-gradient(farthest-side,transparent calc(100% - 5px),#000 calc(100% - 4px));animation:kys-orbit 1s linear infinite}
.kys-submit-dialog>.kys-submit-spinner+strong{margin-top:18px}
/* the orbit uses a mask, so draw the inner pulsing core as a separate layer on the dialog */
.kys-submit-dialog{--kys-core-top:34px}
.kys-submit-dialog>strong::before{content:"";position:absolute;left:50%;top:calc(var(--kys-core-top) + 18px);width:36px;height:36px;margin-left:-18px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#c9568c,#80013f 70%);box-shadow:0 6px 16px rgba(128,1,63,.35);animation:kys-core 1.4s ease-in-out infinite}
.kys-submit-dialog>strong::after{content:"";position:absolute;left:50%;top:calc(var(--kys-core-top) - 8px);width:88px;height:88px;margin-left:-44px;border-radius:50%;border:1.5px dashed rgba(128,1,63,.18);animation:kys-orbit-rev 6s linear infinite;pointer-events:none}
.kys-submit-dialog strong{color:var(--kys-ink);font-size:18px}
.kys-submit-dialog p{color:var(--kys-ink-soft)}

/* Error banner + success toast */
.kys-submit-error:not([hidden]){animation:kys-error-in .45s var(--kys-ease-spring) backwards}
.kys-submit-error{border-radius:18px;border-left-width:5px;box-shadow:0 24px 60px rgba(45,12,20,.25);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:rgba(255,255,255,.96)}
.kys-submit-success-toast{display:flex;align-items:center;justify-content:center;gap:10px;border-radius:16px;background:linear-gradient(135deg,#1f8a50,#14603a);box-shadow:0 18px 40px rgba(23,107,55,.32),inset 0 1px 0 rgba(255,255,255,.18);animation:kys-toast-in .5s var(--kys-ease-spring)}
.kys-submit-success-toast::before{content:"✓";display:grid;place-items:center;flex:0 0 24px;width:24px;height:24px;border-radius:50%;background:rgba(255,255,255,.2);font-size:13px;font-weight:900;animation:kys-pop .5s var(--kys-ease-spring) .15s backwards}

/* Password toggle */
.kys-password-toggle{transition:background-color .2s ease,border-color .2s ease,transform .15s ease!important}
.kys-password-toggle:active{transform:translateY(-50%) scale(.95)!important}

/* File preview */
.file-preview{border-color:#e2c6d4;border-radius:14px;background:linear-gradient(160deg,#fffafc,#fff);animation:kys-pop .35s var(--kys-ease) backwards}
.file-preview img{box-shadow:var(--kys-shadow-sm)}

/* ---------- Guided tour: on-brand styling ---------- */
html body .kys-tour-overlay{background:rgba(30,10,22,.62);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:kys-fade .3s ease backwards}
html body .kys-tour-tip{border:1px solid rgba(255,255,255,.8);border-radius:20px;box-shadow:0 24px 70px rgba(20,6,14,.38);color:var(--kys-ink);animation:kys-pop .35s var(--kys-ease-spring) backwards}
html body .kys-tour-tip::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;border-radius:20px 20px 0 0;background:linear-gradient(90deg,#80013f,#c9568c,#d9a441)}
html body .kys-tour-title{color:var(--kys-ink)}
html body .kys-tour-text{color:#4b3c44}
html body .kys-tour-count{background:var(--kys-brand-50);color:var(--kys-brand)}
html body .kys-tour-close{background:#f6ebf0;color:var(--kys-brand);transition:transform .3s var(--kys-ease-spring),background-color .2s ease}
html body .kys-tour-close:hover{transform:rotate(90deg);background:#f1d6e3}
html body .kys-tour-actions button{border-radius:11px;transition:transform .15s ease,filter .2s ease,box-shadow .2s ease}
html body .kys-tour-actions button:active{transform:scale(.96)}
html body .kys-tour-next{background:var(--kys-grad);box-shadow:var(--kys-shadow-brand)}
html body .kys-tour-next:hover{filter:brightness(1.08)}
html body .kys-tour-skip{background:#f5eff2;color:#5a4650}
html body .kys-tour-back{background:#f6ebf0;color:var(--kys-brand)}
html body .kys-tour-focus{outline-color:#d9a441!important;box-shadow:0 0 0 6px rgba(217,164,65,.25)!important;border-radius:12px!important}
html body .kys-tour-replay{background:var(--kys-grad);box-shadow:0 10px 26px rgba(128,1,63,.35);transition:transform .2s var(--kys-ease),box-shadow .2s ease;animation:kys-pop .5s var(--kys-ease-spring) .6s backwards}
html body .kys-tour-replay:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(128,1,63,.42)}

/* ---------- Accessibility: honour reduced-motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* ---------- Payment bulk approval (aligned with KYS maroon/cream theme) ---------- */
.bulk-approve-panel{display:flex;flex-direction:column;gap:9px;margin:0 0 16px;padding:15px;background:#fff;border:1px solid #eadfd4;border-radius:16px;box-shadow:0 8px 25px rgba(15,39,80,.04)}
.bulk-approve-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.bulk-select-label{display:inline-flex;align-items:center;gap:8px;margin:0;color:#5d4b3d;font-size:13px;font-weight:700}
.bulk-select-label input[type=checkbox],.bulk-payment-select input[type=checkbox]{width:18px;height:18px;min-height:18px;margin:0;accent-color:#80013f;flex:0 0 auto}
.bulk-approve-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.bulk-approve-actions button{width:auto;min-height:42px;margin:0;padding:10px 14px;border:0;border-radius:10px;color:#fff;font:inherit;font-size:13px;font-weight:750;cursor:pointer}
.bulk-approve-actions button:disabled{opacity:.45;cursor:not-allowed}
.bulk-approve-all{background:#80013f}
.bulk-approve-all:hover{background:#60002f}
.bulk-approve-panel>label{margin:2px 0 0;color:#5d4b3d}
.bulk-approve-panel input:not([type=checkbox]){width:100%;min-height:42px}
.muted-inline{color:#786d63;font-weight:500}
.pay-reference{min-width:0;flex:1}
.pay-amount-select{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex:0 0 auto;max-width:48%;text-align:right}
.bulk-payment-select{display:inline-flex;align-items:center;justify-content:center;margin:0;padding:4px;min-width:28px;min-height:28px;border-radius:8px;background:#faf6f0;border:1px solid #eadfd4;cursor:pointer}
.pay-amount-select .pay-amount{overflow-wrap:anywhere}
@media(max-width:560px){.bulk-approve-toolbar{align-items:stretch;flex-direction:column}.bulk-approve-actions{display:grid;grid-template-columns:1fr 1fr}.bulk-approve-actions button{white-space:normal;padding:9px 10px}.pay-amount-select{gap:6px;max-width:54%}.pay-amount-select .pay-amount{font-size:15px}.bulk-payment-select{padding:3px}}

/* V5: lock payment bulk toolbar layout consistently when returning between status tabs */
html body .bulk-approve-panel{
  display:flex!important;flex-direction:column!important;align-items:stretch!important;
  gap:9px!important;margin:0 0 16px!important;padding:15px!important;
  background:#fff!important;border:1px solid #eadfd4!important;border-radius:16px!important;
  box-shadow:0 8px 25px rgba(15,39,80,.04)!important;box-sizing:border-box!important;
}
html body .bulk-approve-panel .bulk-approve-toolbar{
  display:flex!important;flex-direction:row!important;align-items:center!important;
  justify-content:space-between!important;gap:12px!important;flex-wrap:wrap!important;width:100%!important;
}
html body .bulk-approve-panel .bulk-select-label{
  display:inline-flex!important;align-items:center!important;gap:8px!important;margin:0!important;
  white-space:normal!important;color:#5d4b3d!important;font-size:13px!important;font-weight:700!important;
}
html body .bulk-approve-panel .bulk-approve-actions{
  display:flex!important;flex-direction:row!important;align-items:center!important;
  gap:8px!important;flex-wrap:wrap!important;min-width:0!important;
}
html body .bulk-approve-panel .bulk-approve-actions button{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  width:auto!important;min-width:0!important;min-height:42px!important;height:auto!important;
  margin:0!important;padding:10px 14px!important;border:0!important;border-radius:10px!important;
  color:#fff!important;font:inherit!important;font-size:13px!important;font-weight:750!important;
  line-height:1.25!important;white-space:normal!important;box-sizing:border-box!important;
}
html body .bulk-approve-panel .bulk-approve-actions .approve{background:#7bae3b!important}
html body .bulk-approve-panel .bulk-approve-actions .bulk-approve-all{background:#80013f!important}
html body .bulk-approve-panel .bulk-approve-actions button:disabled{opacity:.55!important;cursor:not-allowed!important}
html body .bulk-approve-panel>label{display:block!important;margin:2px 0 0!important;color:#5d4b3d!important}
html body .bulk-approve-panel input#bulk-approve-comment{
  display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;
  min-height:42px!important;box-sizing:border-box!important;margin:0!important;
}
html body .bulk-approve-panel .hint{margin:0!important;line-height:1.45!important}
html body .bulk-approve-panel .bulk-select-label input[type=checkbox]{
  width:18px!important;height:18px!important;min-height:18px!important;margin:0!important;flex:0 0 18px!important;
}
@media(max-width:560px){
  html body .bulk-approve-panel{padding:12px!important}
  html body .bulk-approve-panel .bulk-approve-toolbar{align-items:stretch!important;flex-direction:column!important;gap:10px!important}
  html body .bulk-approve-panel .bulk-select-label{align-self:flex-start!important}
  html body .bulk-approve-panel .bulk-approve-actions{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:8px!important;width:100%!important}
  html body .bulk-approve-panel .bulk-approve-actions button{width:100%!important;min-height:42px!important;padding:9px 8px!important;font-size:12px!important}
}

/* Member app compact dashboard/history/scorecard enhancements */
.compact-details{margin:12px 0;padding:12px 14px}
.compact-details>summary,.filter-details>summary{cursor:pointer;color:#80013f;font-weight:750;list-style:none;display:flex;align-items:center;gap:9px;padding:3px 0}
.compact-details>summary::-webkit-details-marker,.filter-details>summary::-webkit-details-marker{display:none}
.compact-details>summary:after,.filter-details>summary:after{content:'+';margin-left:auto;font-size:20px;line-height:1}
.compact-details[open]>summary:after,.filter-details[open]>summary:after{content:'−'}
.compact-details .finance-stat-grid{margin-top:14px}
.pay-item-link{display:block;color:inherit;text-decoration:none;border-radius:12px;padding:2px}
.pay-item-link:focus-visible{outline:3px solid rgba(128,0,63,.25);outline-offset:2px}
.pay-item-link:hover .pay-main strong{color:#80013f}
.record-open-hint{margin-left:auto;color:#80013f;font-weight:750;white-space:nowrap}
.filter-details{margin-bottom:14px}
.filter-details form{margin-top:14px}
.outstanding-top-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.outstanding-top-list li{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid #eee3d8;border-radius:12px;background:#fff;min-width:0}
.outstanding-rank{display:grid;place-items:center;flex:0 0 34px;height:34px;border-radius:10px;background:#f7eaf0;color:#80013f;font-weight:800}
.outstanding-name{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}
.outstanding-name strong{overflow-wrap:anywhere}
.outstanding-name small{color:#786d63;font-size:11px}
.outstanding-amount{white-space:nowrap;color:#80013f}
@media(max-width:520px){.record-open-hint{flex-basis:100%;margin-left:0}.outstanding-top-list li{gap:8px;padding:10px}.outstanding-amount{font-size:13px}}

/* Member profile avatar in the app header */
.member-header-avatar-link{display:flex;align-items:center;justify-content:center;flex:0 0 38px;width:38px;height:38px;min-width:38px;min-height:38px;text-decoration:none;overflow:hidden}.member-header-avatar,.member-header-avatar-link .app-logo{display:block!important;width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;max-width:38px!important;max-height:38px!important;flex:0 0 38px;box-sizing:border-box;object-fit:cover;border-radius:50%;margin:0;padding:0}.member-header-avatar{border:2px solid #f0dce6;background:#fff}.member-header-avatar-link .app-logo{object-fit:contain;border:0;border-radius:0;background:transparent}@media(max-width:480px){.member-header-avatar-link{flex-basis:32px;width:32px;height:32px;min-width:32px;min-height:32px}.member-header-avatar,.member-header-avatar-link .app-logo{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;max-width:32px!important;max-height:32px!important;flex-basis:32px}}


/* Member profile quick actions and one-tap guide preference */
.profile-heading-block{min-width:0;flex:1}
.profile-name-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px}
.profile-name-actions h2{margin:0!important;overflow-wrap:anywhere}
.profile-action-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex:0 0 34px;padding:7px;border:1px solid var(--border,#d8dee8);border-radius:10px;background:var(--surface,#fff);color:var(--primary,#003fa4);cursor:pointer}
.profile-action-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.profile-action-link{border:0;background:transparent;color:var(--primary,#003fa4);font:inherit;font-size:.9rem;font-weight:700;text-decoration:underline;text-underline-offset:3px;padding:7px 0;cursor:pointer}
.profile-edit-panel,.profile-password-panel{margin-top:14px}
.profile-edit-panel[hidden],.profile-password-panel[hidden]{display:none!important}
.guide-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:22px;padding:14px 0;border-top:1px solid var(--border,#d8dee8);font-weight:700}
.guide-toggle-row form{margin:0}
.kys-switch{position:relative;display:inline-flex;width:52px;height:30px;flex:0 0 52px;cursor:pointer}
.kys-switch input{position:absolute;opacity:0;width:1px;height:1px}
.kys-switch-track{position:absolute;inset:0;border-radius:999px;background:#9ca3af;transition:background .18s ease}
.kys-switch-track:before{content:"";position:absolute;left:3px;top:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .18s ease}
.kys-switch input:checked+.kys-switch-track{background:#16803d}
.kys-switch input:checked+.kys-switch-track:before{transform:translateX(22px)}
.kys-switch input:focus-visible+.kys-switch-track{outline:3px solid #7bae3b;outline-offset:3px}
@media(max-width:480px){.profile-name-actions{gap:6px}.profile-action-link{font-size:.84rem}.profile-action-icon{width:32px;height:32px;flex-basis:32px}}

/* Profile guide preference: compact horizontal ON/OFF switch */
.kys-switch{position:relative;display:inline-flex;width:72px;height:32px;flex:0 0 72px;cursor:pointer;vertical-align:middle}
.kys-switch input{position:absolute;opacity:0;width:1px;height:1px}
.kys-switch-track{position:absolute;inset:0;border-radius:7px;background:#6b7280;transition:background .18s ease;display:flex;align-items:center;justify-content:space-between;padding:0 7px;box-sizing:border-box;color:#fff;font-size:10px;font-weight:800;letter-spacing:.04em}
.kys-switch-track:before{content:"";position:absolute;left:3px;top:3px;width:26px;height:26px;border-radius:5px;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .18s ease;z-index:1}
.kys-switch-label{line-height:1;user-select:none}
.kys-switch-label-on{opacity:.45}.kys-switch-label-off{opacity:1}
.kys-switch input:checked+.kys-switch-track{background:#16803d}
.kys-switch input:checked+.kys-switch-track:before{transform:translateX(40px)}
.kys-switch input:checked+.kys-switch-track .kys-switch-label-on{opacity:1}
.kys-switch input:checked+.kys-switch-track .kys-switch-label-off{opacity:.45}
.kys-switch input:focus-visible+.kys-switch-track{outline:3px solid #7bae3b;outline-offset:3px}

/* Registration page language toggle */
.signup-language-row{display:flex;justify-content:flex-end;margin:0 0 12px}


/* =====================================================================
   V34 SIGNATURE UI LAYER — visual only.
   Presentation, motion and loaders. No logic, data, routing or feature
   behaviour is altered by anything below. Safe to remove as one block.
   ===================================================================== */

/* ---------- Extra tokens & glyphs (inline SVG masks, CSP-safe data: URIs) ---------- */
:root{
  --kys-radius:18px;
  --kys-radius-lg:24px;
  --g-rupee:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3h12M6 8h12M6 13l8.5 8M6 13h3a5 5 0 0 0 0-10'/%3E%3C/svg%3E");
  --g-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 11.1V12a10 10 0 1 1-5.9-9.1'/%3E%3Cpath d='M22 4 12 14l-3-3'/%3E%3C/svg%3E");
  --g-cal:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='3'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E");
  --g-trend:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 7 13.5 15.5 8.5 10.5 2 17'/%3E%3Cpath d='M16 7h6v6'/%3E%3C/svg%3E");
  --g-info:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 16v-4M12 8h.01'/%3E%3C/svg%3E");
  --g-alert:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z'/%3E%3Cpath d='M12 9v4M12 17h.01'/%3E%3C/svg%3E");
  --g-chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2380013f' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
}

/* ---------- Living canvas: soft aurora behind member & admin pages ---------- */
html body,html body.member-body,html body:has(> .wide-page){background:transparent;background-attachment:scroll}
html{background:
  radial-gradient(900px 520px at 0% 0%,#f9e6ef 0,transparent 60%),
  radial-gradient(800px 480px at 100% 100%,#faf0dd 0,transparent 60%),
  var(--kys-canvas);background-attachment:fixed}
body.member-body::before,body.member-body::after,body:has(> .wide-page)::before,body:has(> .wide-page)::after{
  content:"";position:fixed;z-index:-1;pointer-events:none;width:70vmax;height:70vmax;border-radius:50%;will-change:transform;
  animation:kys-blob 26s ease-in-out infinite}
body.member-body::before,body:has(> .wide-page)::before{left:-28vmax;top:-34vmax;background:radial-gradient(circle,rgba(201,86,140,.2),transparent 62%)}
body.member-body::after,body:has(> .wide-page)::after{right:-30vmax;bottom:-36vmax;background:radial-gradient(circle,rgba(217,164,65,.2),transparent 62%);animation-delay:-13s}

/* ---------- Member app bar: rich brand header ---------- */
.app-bar{background:linear-gradient(115deg,#44092a 0%,#80013f 52%,#a8316c 100%);border-bottom:0;border-radius:0 0 28px 28px;
  box-shadow:0 12px 32px rgba(80,0,40,.28),inset 0 -1px 0 rgba(255,255,255,.1);padding-top:calc(11px + env(safe-area-inset-top));padding-bottom:13px;
  -webkit-backdrop-filter:none;backdrop-filter:none;transition:box-shadow .3s ease}
.app-bar::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(rgba(255,255,255,.1) 1px,transparent 1.5px) 0 0/16px 16px;
  -webkit-mask:linear-gradient(90deg,transparent,#000 70%);mask:linear-gradient(90deg,transparent,#000 70%)}
.app-bar.is-scrolled{box-shadow:0 18px 40px rgba(80,0,40,.38),inset 0 -1px 0 rgba(255,255,255,.1)}
.app-logo{background:#fff;border-radius:50%;padding:2px;box-shadow:0 4px 12px rgba(0,0,0,.25),0 0 0 3px rgba(255,255,255,.22)}
.app-name{background:none;-webkit-background-clip:border-box;background-clip:border-box;-webkit-text-fill-color:#ffd9a0;color:#ffd9a0}
.app-user{color:#fff;font-weight:700}
.app-logout{color:#fff;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);padding:8px 14px}
.app-logout:hover{background:rgba(255,255,255,.26)}
.app-bar .language-toggle{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.28);box-shadow:none}
.app-bar .language-option{color:#ffe6f1}
.app-bar .language-option.is-active{background:#fff;color:var(--kys-brand);box-shadow:0 3px 10px rgba(0,0,0,.22)}
.app-bar .language-option:not(.is-active):hover{background:rgba(255,255,255,.18);color:#fff}
.app-bar .notification-bell{background:rgba(255,255,255,.14)!important;border-color:rgba(255,255,255,.3)!important;color:#fff;box-shadow:none}
.app-bar .notification-bell:hover{background:rgba(255,255,255,.28)!important;box-shadow:none}
.app-bar .notification-count{border-color:#80013f;box-shadow:none}
.app-bar .member-header-avatar-link{border-radius:50%;box-shadow:0 0 0 2px rgba(255,255,255,.55)}
.app-bar .member-header-avatar-link img{border-radius:50%}

/* ---------- Page headings ---------- */
.app-title{position:relative;font-size:27px;letter-spacing:-.03em;padding-bottom:12px;margin-bottom:10px}
.app-title::after{content:"";position:absolute;left:0;bottom:0;width:46px;height:4px;border-radius:4px;background:linear-gradient(90deg,#80013f,#d9a441);animation:kys-grow-x .8s var(--kys-ease) .2s backwards;transform-origin:left}
.greeting{font-size:15px;color:var(--kys-ink-soft)}

/* ---------- Floating bottom dock ---------- */
.member-body{padding-bottom:calc(104px + env(safe-area-inset-bottom))}
.bottom-nav{left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));max-width:580px;margin:0 auto;border-radius:28px;padding-bottom:0;
  background:rgba(255,255,255,.92);border:1px solid rgba(255,255,255,.9);
  box-shadow:0 22px 44px rgba(60,10,35,.24),0 3px 8px rgba(60,10,35,.08),inset 0 1px 0 #fff;animation:kys-dock-in .7s var(--kys-ease-spring) .15s backwards}
@keyframes kys-dock-in{from{transform:translateY(120%);opacity:0}to{transform:none;opacity:1}}
.bottom-nav a{min-height:64px;border-radius:24px}
.bottom-nav a::before{top:7px;width:50px;height:32px;margin-left:-25px;border-radius:14px;background:var(--kys-grad);box-shadow:0 8px 16px rgba(128,1,63,.35)}
.bottom-nav a.active{color:var(--kys-brand)}
.bottom-nav a.active svg{color:#fff;stroke-width:2.2;transform:translateY(-1px)}
.bottom-nav a.active span{color:var(--kys-brand)}
@media(max-width:430px){.bottom-nav a::before{width:44px;height:30px;margin-left:-22px;top:6px;border-radius:12px}.bottom-nav{left:8px;right:8px;border-radius:24px}}
html body.member-body .kys-tour-replay{bottom:calc(106px + env(safe-area-inset-bottom))}

/* ---------- Stat cards with coloured glyph chips ---------- */
.stat-card,.finance-stat{--chip-bg:#fbe6ef;--chip-fg:#80013f;--glyph:var(--g-rupee);background:#fff;border-radius:20px}
.stat-card:nth-child(4n+2),.finance-stat:nth-child(4n+2){--chip-bg:#fdf0d4;--chip-fg:#a06a00;--glyph:var(--g-trend)}
.stat-card:nth-child(4n+3),.finance-stat:nth-child(4n+3){--chip-bg:#dff5e7;--chip-fg:#16803d;--glyph:var(--g-check)}
.stat-card:nth-child(4n+4),.finance-stat:nth-child(4n+4){--chip-bg:#e3ecff;--chip-fg:#2f5bb5;--glyph:var(--g-cal)}
.stat-verified{--chip-bg:#d4f1de;--chip-fg:#16803d;--glyph:var(--g-check);background:linear-gradient(160deg,#f1fbf5,#fff)}
.stat-card::before,.finance-stat::before{content:"";position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:13px;background:var(--chip-bg);transition:transform .4s var(--kys-ease-spring)}
.stat-card::after,.finance-stat::after{content:"";position:absolute;top:12px;right:12px;left:auto;width:36px;height:36px;border-radius:0;opacity:1;
  background:var(--chip-fg);-webkit-mask:var(--glyph) center/18px 18px no-repeat;mask:var(--glyph) center/18px 18px no-repeat;pointer-events:none}
.stat-card:hover::before,.finance-stat:hover::before{transform:scale(1.12) rotate(-6deg)}
.stat-card .stat-label,.finance-stat>span:first-child{padding-right:44px}
.stat-card .stat-value,.finance-stat strong{font-size:clamp(20px,5.4vw,25px);font-weight:800}
.finance-stat{padding:16px}
.finance-stat-grid{gap:12px}

/* ---------- Status rail on receipt items ---------- */
.pay-item{position:relative;overflow:hidden;padding-left:18px}
.pay-item::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:#e0b43b}
.pay-item:has(.ps-verified)::before{background:linear-gradient(180deg,#34b36b,#16803d)}
.pay-item:has(.ps-rejected)::before{background:linear-gradient(180deg,#e25a50,#b83232)}
.pay-item:has(.ps-resubmit)::before{background:linear-gradient(180deg,#5b8def,#2f5bb5)}
.pay-item:has(.ps-submitted)::before{background:linear-gradient(180deg,#f0c24b,#d99a12)}
.pay-main h2{font-size:17px;font-weight:800}
.pay-amount{color:var(--kys-brand)}

/* ---------- Notices, alerts & success with friendly icons ---------- */
.alert,.success,.notice{position:relative;padding:14px 16px 14px 52px;border-radius:16px;font-size:14px;line-height:1.55}
.alert::before,.success::before,.notice::before{content:"";position:absolute;left:14px;top:13px;width:26px;height:26px;border-radius:50%;
  background:currentColor;-webkit-mask:var(--g-info) center/22px no-repeat;mask:var(--g-info) center/22px no-repeat;opacity:.9}
.alert::before{-webkit-mask-image:var(--g-alert);mask-image:var(--g-alert)}
.success::before{-webkit-mask-image:var(--g-check);mask-image:var(--g-check)}
.alert{background:linear-gradient(100deg,#fff1ef,#fff8f7)}
.success{background:linear-gradient(100deg,#ecfaf1,#f7fdf9)}
.notice{background:linear-gradient(100deg,#fff7e2,#fffcf3)}

/* ---------- Forms: bigger, calmer, clearer ---------- */
input,textarea,select{font-size:16px;min-height:48px;border-radius:14px;border-width:1.5px}
textarea{min-height:92px;line-height:1.5}
select{-webkit-appearance:none;appearance:none;background-image:var(--g-chev);background-repeat:no-repeat;background-position:right 14px center;background-size:16px;padding-right:42px;cursor:pointer}
input:user-invalid,select:user-invalid,textarea:user-invalid{border-color:#d64a3f;box-shadow:0 0 0 4px rgba(214,74,63,.1)}
input:user-valid:not([type=password]):not([type=file]):not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=search]),select:user-valid,textarea:user-valid{border-color:#5cb985}
input[type=file]{padding:14px;border-radius:16px;border:2px dashed #dcb5c8;background:linear-gradient(160deg,#fff9fc,#fff)}
input[type=file]:hover{border-color:var(--kys-brand);background:#fff5fa}
label{font-weight:700;font-size:13.5px;letter-spacing:.005em}
.hint,.small{line-height:1.55}
.form-panel,.signup-card form{gap:10px}

/* ---------- Buttons ---------- */
.primary{min-height:50px;border-radius:14px;font-size:15.5px}
.primary:disabled,.primary[disabled]{filter:saturate(.5);opacity:.6}
.secondary-btn,.icon-btn,.action-row button,.admin-nav-main,.filters a,.admin-tabs a,.pagination a{position:relative}
.fx-rip{overflow:hidden}
.fx-rip::before{content:"";position:absolute;left:var(--rx,50%);top:var(--ry,50%);width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:currentColor;opacity:.22;transform:scale(0);pointer-events:none;animation:kys-ripple .65s ease-out forwards}
@keyframes kys-ripple{to{transform:scale(22);opacity:0}}

/* ---------- Surfaces ---------- */
.panel,.user-card,.dashboard-panel,.loan-approval-card,.member-loan-tracker-card{border-radius:22px}
.panel-head h2{font-size:19px;font-weight:800}
.summary-strip div{border-radius:16px}
@media (hover:hover){
  :is(.stat-card,.finance-stat,.panel,.pay-item,.user-card,.dashboard-panel,.dashboard-stat-card,.loan-approval-card,.member-loan-tracker-card,.notification-item,.summary-strip div):hover{
    background-image:radial-gradient(340px circle at var(--mx,50%) var(--my,50%),rgba(201,86,140,.11),transparent 65%)}
}

/* ---------- Profile ---------- */
.avatar{border-radius:20px;box-shadow:0 0 0 3px #fff,0 8px 20px rgba(64,18,40,.18)}
.avatar-placeholder{background:linear-gradient(145deg,#f8e3ed,#fff);color:var(--kys-brand);font-weight:700}
.profile-top{gap:16px}
.profile-details dt{font-weight:600}
.profile-action-icon{border-radius:12px;color:var(--kys-brand);transition:transform .25s var(--kys-ease-spring),background-color .2s ease}
.profile-action-icon:hover{background:var(--kys-brand-50);transform:scale(1.08) rotate(-5deg)}
.profile-action-link{color:var(--kys-brand)}
.guide-toggle-row form{flex-direction:row;align-items:center;gap:0}
.kys-switch{width:76px;flex:0 0 76px;height:34px}
.kys-switch-track{border-radius:999px;box-shadow:inset 0 2px 5px rgba(0,0,0,.18);padding:0 10px;font-size:11px;font-weight:800;letter-spacing:.04em}
.kys-switch-track:before{border-radius:50%;width:28px;height:28px;top:3px;left:3px}
.kys-switch input:checked+.kys-switch-track{background:linear-gradient(135deg,#22a05a,#16803d)}
.kys-switch input:checked+.kys-switch-track:before{transform:translateX(42px)}

/* ---------- Dashboard / insight cards (admin) ---------- */
.dashboard-stat-card{border-radius:22px;position:relative;overflow:hidden}
.dashboard-stat-card::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,#80013f,#d9a441);opacity:.0;transition:opacity .3s ease}
.dashboard-stat-card:hover::before{opacity:1}
.dashboard-stat-icon{border-radius:13px;width:34px;height:34px;flex-basis:34px}
.dashboard-welcome{border-radius:26px;background:linear-gradient(120deg,#fff 0%,#fff3f8 55%,#fbe3ee 100%)}
.dashboard-welcome h2{background:linear-gradient(110deg,#3a1a2a,#80013f);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.dashboard-period-chip{box-shadow:var(--kys-shadow-sm)}
.finance-hero{border-radius:28px;background:
  radial-gradient(rgba(255,255,255,.09) 1.2px,transparent 1.6px) 0 0/20px 20px,
  linear-gradient(125deg,#3d0e29 0%,#80013f 55%,#b0447a 100%)}
.finance-hero h2{font-weight:800}
.finance-balance strong{font-size:clamp(24px,3vw,34px)}
.loan-approver-hero{border-radius:26px}

/* ---------- Admin header, menu & drawer ---------- */
.admin-header{position:sticky;top:0;z-index:40;margin-top:-8px;padding:12px 0 14px;background:rgba(251,247,243,.86);
  -webkit-backdrop-filter:blur(16px) saturate(160%);backdrop-filter:blur(16px) saturate(160%)}
.admin-header h1{background:linear-gradient(110deg,#2e1522,#80013f);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.admin-header .eyebrow{color:var(--kys-brand)}
.admin-menu-toggle{background:var(--kys-grad);color:#fff;border-color:transparent;box-shadow:var(--kys-shadow-brand)}
.admin-menu-toggle:hover{background:var(--kys-grad);border-color:transparent;box-shadow:0 12px 26px rgba(128,1,63,.36)}
.admin-drawer-header{margin:0 -14px 14px;padding:calc(26px + env(safe-area-inset-top)) 22px 22px;border-bottom:0;border-radius:0 24px 0 0;
  background:radial-gradient(rgba(255,255,255,.1) 1px,transparent 1.5px) 0 0/16px 16px,linear-gradient(135deg,#44092a,#80013f 60%,#a8316c)}
.admin-drawer-header strong{background:none;-webkit-text-fill-color:#fff;color:#fff;font-size:22px}
.admin-drawer-header span{color:rgba(255,255,255,.78)}
.admin-drawer-close{background:rgba(255,255,255,.16);color:#fff}
.admin-drawer-close:hover{background:rgba(255,255,255,.28)}
.admin-nav-group{border-radius:16px}
.admin-nav-main-icon{border-radius:11px}
.admin-drawer .admin-nav-submenu a{border-radius:12px}

/* ---------- Tables ---------- */
.table-scroll{border-radius:18px}
.data-table tbody tr:nth-child(even){background:#fffafc}
.data-table td,.data-table th{padding:13px 14px}

/* ---------- Auth pages ---------- */
.page{background:
  radial-gradient(rgba(128,1,63,.06) 1px,transparent 1.5px) 0 0/22px 22px,
  radial-gradient(1000px 520px at -10% -10%,#f6dfe9 0,transparent 60%),
  radial-gradient(800px 480px at 110% 110%,#f7ead6 0,transparent 60%),var(--kys-canvas)}
.auth-card{border-radius:30px;padding:34px 30px}
.auth-card>.brand-mark{width:72px;height:72px}
.auth-card h1{font-size:30px}
.auth-card .eyebrow{color:var(--kys-brand)}
.link-row a{font-size:14px;padding:6px 0}
.captcha-answer-row .captcha-refresh{border-radius:14px}
.signup-card{max-width:640px}

/* ---------- Bottom sheets & dialogs ---------- */
.notification-sheet,.dashboard-bottom-sheet,.loan-request-sheet{border-radius:30px 30px 0 0}
.notification-sheet-header h2,.dashboard-sheet-header h2,.loan-request-sheet-header h2{font-weight:800}
.notification-item{border-radius:16px}

/* ---------- Loader upgrades ---------- */
.kys-submit-dialog strong{background:linear-gradient(90deg,#2e2228 38%,#c0397a 50%,#2e2228 62%);background-size:260% 100%;
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:kys-text-shimmer 2.2s linear infinite}
@keyframes kys-text-shimmer{from{background-position:130% 0}to{background-position:-130% 0}}
.kys-submit-dialog{max-width:380px}

/* Celebration burst on success toast */
.kys-submit-success-toast::after{content:"";position:absolute;left:50%;top:50%;width:8px;height:8px;margin:-4px;border-radius:50%;pointer-events:none;
  box-shadow:-120px -34px 0 #ffd9a0,-86px 30px 0 #fff,-52px -44px 0 #ffb3d0,-18px 38px 0 #ffd9a0,22px -46px 0 #fff,58px 34px 0 #ffb3d0,94px -36px 0 #ffd9a0,126px 26px 0 #fff;
  animation:kys-confetti .9s ease-out .15s both}
@keyframes kys-confetti{0%{transform:scale(.1);opacity:1}70%{opacity:1}100%{transform:scale(1.7);opacity:0}}

/* ---------- Splash screen (first open of a session) ---------- */
.kys-splash{position:fixed;inset:0;z-index:2147483000;display:grid;place-items:center;color:#fff;cursor:pointer;
  background:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1.5px) 0 0/22px 22px,radial-gradient(circle at 50% 38%,#a3125a 0,#6a0036 55%,#2c0018 100%);
  transition:opacity .55s ease,transform .55s var(--kys-ease),visibility .55s}
.kys-splash.is-out{opacity:0;visibility:hidden;transform:scale(1.04)}
.kys-splash-inner{display:flex;flex-direction:column;align-items:center;gap:34px;text-align:center;padding:24px}
.kys-splash-logo{position:relative;width:112px;height:112px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 18px 50px rgba(0,0,0,.35);animation:kys-pop .6s var(--kys-ease-spring) backwards}
.kys-splash-logo img{width:92px;height:92px;object-fit:contain}
.kys-splash-logo::before,.kys-splash-logo::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid rgba(255,217,160,.7);animation:kys-splash-ring 1.8s ease-out infinite}
.kys-splash-logo::after{animation-delay:.9s}
@keyframes kys-splash-ring{0%{transform:scale(1);opacity:.9}100%{transform:scale(1.45);opacity:0}}
.kys-splash-name{font-size:21px;font-weight:800;letter-spacing:.01em;animation:kys-rise .6s var(--kys-ease) .25s backwards}
.kys-splash-bar{width:160px;height:4px;border-radius:4px;background:rgba(255,255,255,.2);overflow:hidden;animation:kys-fade .4s ease .4s backwards}
.kys-splash-bar i{display:block;height:100%;width:40%;border-radius:4px;background:linear-gradient(90deg,#ffd9a0,#fff);animation:kys-indeterminate-lite 1.1s var(--kys-ease) infinite}
@keyframes kys-indeterminate-lite{0%{transform:translateX(-110%)}100%{transform:translateX(260%)}}

/* ---------- Page-to-page progress bar ---------- */
.kys-route-bar{position:fixed;left:0;right:0;top:0;height:3px;z-index:2147482000;pointer-events:none;opacity:0;transform-origin:left;transform:scaleX(0);
  background:linear-gradient(90deg,#d9a441,#fff2d6,#c9568c);box-shadow:0 0 12px rgba(201,86,140,.8)}
html.fx-leaving .kys-route-bar{opacity:1;animation:kys-route 2.2s cubic-bezier(.1,.7,.2,1) forwards}
@keyframes kys-route{0%{transform:scaleX(0)}60%{transform:scaleX(.7)}100%{transform:scaleX(.92)}}
html.fx-leaving .app-main,html.fx-leaving .wide-page,html.fx-leaving .auth-card{opacity:.72;transform:translateY(3px);transition:opacity .25s ease,transform .25s ease}

/* ---------- Scroll reveal ---------- */
html.fx .fx-reveal{opacity:0;transform:translateY(24px) scale(.985);animation:none!important;transition:opacity .65s var(--kys-ease),transform .65s var(--kys-ease)}
html.fx .fx-reveal.fx-in{opacity:1;transform:none}

/* Keep the floating Guide button out of the way of open sheets and menus */
body.notification-sheet-open .kys-tour-replay,body.admin-drawer-open .kys-tour-replay,body.dashboard-sheet-open .kys-tour-replay,body.loan-request-sheet-open .kys-tour-replay{opacity:0;pointer-events:none;transform:translateY(12px)}
.kys-tour-replay{transition:opacity .25s ease,transform .25s ease,box-shadow .2s ease}

/* ---------- Motion safety & print ---------- */
@media (prefers-reduced-motion:reduce){
  html.fx .fx-reveal{opacity:1;transform:none;transition:none}
  .kys-splash{display:none}
  body.member-body::before,body.member-body::after,body:has(> .wide-page)::before,body:has(> .wide-page)::after{animation:none}
}
@media print{
  html.fx .fx-reveal{opacity:1!important;transform:none!important}
  .kys-splash,.kys-route-bar,.bottom-nav{display:none!important}
  body.member-body::before,body.member-body::after{display:none}
}


/* Unified member/admin role switcher */
.role-switch-form{display:inline-flex;align-items:center;margin:0}
.role-switch-btn{white-space:nowrap;font-size:.78rem;line-height:1.2;padding:.5rem .65rem}
@media(max-width:560px){.role-switch-btn{font-size:.72rem;padding:.42rem .5rem}}
