:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#152923;background:#f4f7f5;font-synthesis:none;--green:#07563c;--dark:#082e28;--light:#ecf6ef;--red:#e33b3b;--muted:#778982;--line:#e1eae5;--shadow:0 20px 50px rgba(11,54,41,.08)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;-webkit-tap-highlight-color:transparent}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}img{max-width:100%}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(25px,3vw,34px);letter-spacing:-.035em}h2{font-size:21px;letter-spacing:-.025em}h3{font-size:16px}p{line-height:1.58}small,.muted{color:var(--muted)}
.btn{border:1px solid transparent;border-radius:14px;background:#eaf2ec;color:#165640;padding:11px 17px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:750;transition:.2s ease;min-height:43px}.btn:hover{transform:translateY(-1px);filter:brightness(.98)}.btn.primary{background:linear-gradient(125deg,#0a734d,#04422f);color:#fff;box-shadow:0 9px 19px #08634128}.btn.danger{background:#feecec;color:#c93434}.btn.soft{background:#f2f6f4;color:#315647}.btn.outline{background:white;border-color:#d3e0d8;color:#255d48}.btn:active{transform:scale(.98)}.btn.sm{padding:7px 11px;min-height:33px;font-size:12px;border-radius:10px}.btn.full{width:100%}.btn.ghost{background:transparent;color:inherit}.btn.red{background:#d63838;color:#fff}
input:not([type=checkbox]):not([type=radio]):not([type=file]),textarea,select{width:100%;outline:0;border:1px solid #dce7e0;padding:12px 14px;border-radius:14px;background:#fafcfb;color:#1d3329;min-height:46px;transition:border .2s,box-shadow .2s}input:focus,textarea:focus,select:focus{border-color:#0f8960!important;box-shadow:0 0 0 3px #0d995a17}textarea{resize:vertical;min-height:92px}.field{margin:0 0 16px;display:block}.field>label,.field>span{display:block;font-size:12px;font-weight:800;margin-bottom:8px;color:#496056}.field em{font-style:normal;color:#e34b4b}.fieldrow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field small{display:block;margin-top:6px;font-size:11px}
.card{background:#fff;border:1px solid #e6eee9;border-radius:22px;padding:22px;box-shadow:0 5px 20px #08362406}.section{margin-bottom:25px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:15px;flex-wrap:wrap}.section-title h2{margin:0}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.stat{position:relative;overflow:hidden;min-height:138px}.stat strong{font-size:28px;display:block;margin:8px 0 4px;letter-spacing:-.04em}.stat .symbol{background:#ebf6ef;color:#0d704d;width:42px;height:42px;display:grid;place-items:center;border-radius:14px}.stat small{font-size:12px}
.badge{display:inline-flex;gap:5px;padding:5px 10px;border-radius:50px;font-size:11px;font-weight:800;white-space:nowrap;background:#eef3f0;color:#506c5e}.badge.active,.badge.paid,.badge.approved,.badge.published{background:#e3f8ec;color:#0e8452}.badge.pending{background:#fff4d9;color:#93640d}.badge.inactive,.badge.rejected,.badge.expired,.badge.unpaid,.badge.draft{background:#feeeee;color:#c54d42}
.table-wrap{overflow-x:auto;border:1px solid #e7eee9;border-radius:16px;background:white}table{border-collapse:collapse;width:100%;min-width:600px}thead{background:#f8faf9}th{text-align:left;padding:14px 16px;white-space:nowrap;font-size:11px;letter-spacing:.045em;color:#70827a;text-transform:uppercase}td{padding:13px 16px;font-size:13px;border-top:1px solid #eff3f0;vertical-align:middle}tr:hover td{background:#fcfefd}.actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.toolbar>input{max-width:320px}.toolbar select{max-width:180px}.toolbar .push{margin-left:auto}.empty{padding:35px;text-align:center;color:#7f9589}.empty .emoji{display:block;font-size:40px;margin-bottom:12px}.empty h3{color:#1d4533;margin:0 0 8px}.avatar{display:inline-grid;place-items:center;object-fit:cover;border-radius:50%;background:linear-gradient(130deg,#d4f0e0,#c8dcd0);color:#0a6749;width:40px;height:40px;font-weight:900;font-size:15px;flex-shrink:0}.avatar.sm{width:34px;height:34px}.person{display:flex;align-items:center;gap:11px}.person strong{display:block}.person small{display:block;margin-top:4px}
.modal-backdrop,.sheet-backdrop{position:fixed;inset:0;z-index:80;background:rgba(6,22,15,.58);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;padding:18px;animation:fade .18s ease}.modal{background:#fff;width:min(670px,100%);max-height:min(90vh,950px);display:flex;flex-direction:column;border-radius:25px;box-shadow:0 25px 80px #0004;animation:rise .25s cubic-bezier(.2,.9,.4,1);overflow:hidden}.modal-head{padding:21px 24px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.modal-head h2{font-size:19px;margin:0}.modal-body{overflow:auto;padding:22px 24px}.modal-foot{padding:16px 24px;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end;background:white}.modal-close{border:0;border-radius:13px;width:37px;height:37px;display:grid;place-items:center;background:#f0f5f1;font-size:20px;color:#547362}.sheet-backdrop{align-items:flex-end;padding:0}.sheet{background:white;width:min(520px,100%);border-radius:28px 28px 0 0;padding:16px 20px max(22px,env(safe-area-inset-bottom));animation:sheetup .28s ease;max-height:85vh;overflow-y:auto}.sheet-handle{width:48px;height:5px;border-radius:4px;background:#dae7de;margin:0 auto 18px}.sheet h2{font-size:20px;margin:0 0 16px}.sheet-item{width:100%;border:1px solid #e7eee9;background:white;text-align:left;border-radius:15px;padding:15px;display:flex;gap:12px;align-items:center;justify-content:space-between;margin:8px 0;color:#194633;font-weight:700}.sheet-item:hover{background:#f4faf5}
.toast-stack{position:fixed;top:max(15px,env(safe-area-inset-top));right:15px;z-index:150;display:flex;flex-direction:column;gap:10px;width:min(410px,calc(100vw - 30px))}.toast{display:flex;align-items:center;gap:12px;background:#0d4131;color:#fff;border-radius:16px;padding:14px 16px;box-shadow:0 14px 40px #002b1f40;animation:slidetoast .25s ease;font-size:13px;font-weight:650;line-height:1.55}.toast.error{background:#922727}.toast button{background:transparent;border:0;color:inherit;font-size:22px;margin-left:auto}
.tabs{display:flex;align-items:center;gap:7px;overflow-x:auto;padding-bottom:7px}.tab{border:0;background:#f1f5f2;border-radius:12px;padding:10px 15px;color:#64806e;font-size:13px;font-weight:800;white-space:nowrap}.tab.active{background:#0d6547;color:white}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.detail-cell{padding:13px 15px;border-radius:13px;background:#f6faf7}.detail-cell small{display:block;margin-bottom:6px}.detail-cell strong{font-size:13px;overflow-wrap:anywhere}.print-card{width:335px;max-width:100%;aspect-ratio:1.64;border-radius:19px;background:linear-gradient(130deg,#063927,#08704a);color:white;position:relative;overflow:hidden;padding:19px;box-shadow:0 15px 35px #06392e3d}.print-card:before{content:"";position:absolute;width:230px;height:230px;border-radius:50%;border:40px solid #ffffff14;right:-115px;top:-90px}.print-card>*{position:relative}.print-card .card-logo{height:38px;width:38px;object-fit:cover;border-radius:50%}.print-card .cardname{font-size:10px;letter-spacing:.2em;font-weight:900}.print-card .cardmember{font-size:18px;font-weight:900;margin-top:25px;text-transform:uppercase}.print-card .cardno{font-size:12px;opacity:.82;letter-spacing:.06em}.print-card .cardexpiry{font-size:10px;opacity:.85;margin-top:14px}.logo{width:42px;height:42px;object-fit:contain;border-radius:50%}
.boot{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:15px;min-height:100vh;color:#26624b}.loader{width:33px;height:33px;border:3px solid #d3eadf;border-top-color:#0d784e;border-radius:50%;animation:spin .8s linear infinite}
.auth-wrap{min-height:100dvh;display:grid;place-items:center;padding:30px 18px;background:radial-gradient(circle at 85% 15%,#daf2e6,transparent 40%),linear-gradient(150deg,#f0f7f3,#f9fcfa)}.auth-card{width:min(445px,100%);padding:30px;background:white;border:1px solid #e4eee7;border-radius:26px;box-shadow:0 22px 70px #073f3014}.auth-card h1{font-size:25px;margin:8px 0}.auth-card .auth-logo{width:72px;height:72px;object-fit:contain}.auth-card>p{font-size:13px;color:#7b8e85;margin-bottom:25px}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes rise{from{opacity:0;transform:translateY(16px) scale(.98)}}@keyframes sheetup{from{transform:translateY(100%)}}@keyframes fade{from{opacity:0}}@keyframes slidetoast{from{opacity:0;transform:translateX(25px)}}
@media(max-width:800px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fieldrow{grid-template-columns:1fr}.card{padding:17px}.modal-backdrop{padding:8px}.modal{max-height:94dvh;border-radius:20px}.modal-head,.modal-body,.modal-foot{padding:16px}.stat strong{font-size:24px}}@media(max-width:430px){.grid{gap:10px}.grid.two{grid-template-columns:1fr}.stat{min-height:119px;padding:14px}.stat strong{font-size:22px}}
@media print{body *{visibility:hidden!important}.print-card,.print-card *{visibility:visible!important}.print-card{position:absolute;top:20px;left:20px;print-color-adjust:exact;-webkit-print-color-adjust:exact;box-shadow:none}.modal-backdrop{background:white!important}}
.print-card .card-photo{position:absolute;top:72px;right:16px;width:58px;height:65px;object-fit:cover;border-radius:10px;border:2px solid #ffffffab;box-shadow:0 7px 16px #0004}.print-card .cardmember{max-width:240px;font-size:16px;line-height:1.18;margin-top:22px}.print-card .cardno{max-width:240px}

.gr-icon{display:inline-block;flex-shrink:0;vertical-align:middle}
