*{box-sizing:border-box}body{margin:0;font-family:system-ui,"Noto Sans Bengali",sans-serif;background:#f5f7fb;color:#172033}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0}.center{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(135deg,#6f1834,#a65d2d)}.login-card{background:#fff;width:min(420px,100%);padding:32px;border-radius:20px;box-shadow:0 20px 50px #0003;text-align:center}.logo{width:62px;height:62px;margin:auto;border-radius:50%;display:grid;place-items:center;background:#7b1e3a;color:#fff;font-size:32px;font-weight:800}.login-card input{width:100%;padding:13px;margin:7px 0;border:1px solid #d8deea;border-radius:10px}.login-card button:not(.ghost){width:100%;padding:13px;margin-top:8px;border-radius:10px;background:#7b1e3a;color:#fff}.layout{display:grid;grid-template-columns:230px 1fr;min-height:calc(100vh - 64px)}header{height:64px;background:#fff;border-bottom:1px solid #e5e8ef;display:flex;justify-content:space-between;align-items:center;padding:0 24px;position:sticky;top:0;z-index:5}.top-actions{display:flex;gap:12px;align-items:center}.ghost{background:#eef1f6;padding:8px 13px;border-radius:8px}aside{background:#fff;border-right:1px solid #e5e8ef;padding:15px}.nav{display:block;width:100%;text-align:left;background:transparent;padding:12px 14px;border-radius:9px;margin:3px 0;color:#465064}.nav.active,.nav:hover{background:#f3e9ed;color:#7b1e3a;font-weight:700}main{padding:25px;max-width:1400px;width:100%;margin:auto}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.page-head h2{margin:0}.page-head p{margin:4px 0;color:#778197}.primary{background:#7b1e3a;color:#fff;padding:10px 15px;border-radius:9px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:20px}.stat,.panel{background:#fff;border:1px solid #e7eaf0;border-radius:14px;padding:18px}.stat span{display:block;color:#6e7788;font-size:14px}.stat b{display:block;font-size:25px;margin-top:8px}.panel{margin-bottom:18px;overflow:auto}.panel h3{margin-top:0}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:11px 9px;border-bottom:1px solid #edf0f4;text-align:left;white-space:nowrap}.table th{background:#fafbfc;font-size:13px}.actions button{padding:6px 8px;border-radius:6px;margin-right:4px}.edit{background:#eef4ff}.del{background:#fff0f0;color:#a11}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.form-grid label{display:grid;gap:6px;font-weight:600}.form-grid input,.form-grid select,.form-grid textarea{padding:11px;border:1px solid #d7dce5;border-radius:8px;background:#fff}.form-grid textarea{min-height:80px}.filters{display:flex;gap:10px;align-items:center}.filters input{padding:9px;border:1px solid #d7dce5;border-radius:8px}.modal[hidden]{display:none!important}.modal{position:fixed;inset:0;background:#0008;display:grid;place-items:center;padding:20px;z-index:20}.modal[hidden]{display:none!important}.modal-box{background:#fff;width:min(650px,100%);max-height:90vh;overflow:auto;border-radius:15px;padding:24px;position:relative}.modal h3{margin-top:0}.modal form{display:grid;gap:10px}.modal label{display:grid;gap:5px}.modal input,.modal select,.modal textarea{padding:10px;border:1px solid #d6dce7;border-radius:8px}.modal form button{padding:11px;border-radius:8px;background:#7b1e3a;color:#fff}.receipt{padding:25px}.receipt h2{text-align:center}.muted{color:#727b8b}.badge{display:inline-block;padding:3px 7px;border-radius:20px;background:#f0f2f6;font-size:12px}@media(max-width:800px){.layout{grid-template-columns:1fr}aside{display:flex;overflow:auto;gap:5px;border-right:0;border-bottom:1px solid #e5e8ef}.nav{min-width:max-content;width:auto}.cards{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}main{padding:15px}header{padding:0 15px}.top-actions span{display:none}}@media print{header,aside,.page-head button,.filters,.actions,.nav{display:none!important}.layout{display:block}main{padding:0}.panel,.stat{box-shadow:none;border:1px solid #ddd}.page{display:none!important}#reports{display:block!important}.cards{grid-template-columns:repeat(3,1fr)}}
.due-member{border:1px solid #e5e8ef;border-radius:12px;padding:14px;margin-bottom:14px}.due-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:12px}.due-head .badge{margin-left:8px}.month-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.month-btn{padding:9px;border-radius:8px;border:1px solid #ddd;text-align:left;background:#fff}.month-btn strong{display:block;font-size:11px;margin-top:3px}.month-btn.paid{background:#e8f7ed;border-color:#9bd2aa;color:#176b2d}.month-btn.unpaid{background:#fff5f5;border-color:#f0b2b2;color:#9b2222}@media(max-width:800px){.month-grid{grid-template-columns:repeat(2,1fr)}.due-head{align-items:flex-start;flex-direction:column}}
.member-result{margin-top:12px}.member-card{display:flex;justify-content:space-between;align-items:center;gap:15px;border:1px solid #e5e8ef;border-radius:10px;padding:12px;margin-top:8px}.success{padding:10px;border-radius:8px;background:#e8f7ed;color:#176b2d}@media(max-width:800px){.member-card{flex-direction:column;align-items:flex-start}}
