*{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))}}
