:root{color:#17201c;background:#f6f8f5;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{border:1px solid #cad4ca;border-radius:8px;background:#fff;color:#17201c;cursor:pointer;min-height:40px;padding:0 14px}button svg{display:block}button:disabled{cursor:not-allowed;opacity:.5}.primary{background:#1f7a4d;border-color:#1f7a4d;color:#fff;font-weight:700}.app-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{background:#101815;color:#fff;padding:24px}.brand{align-items:center;display:flex;gap:12px;margin-bottom:32px}.brand span,.table-row span,.mini-row span,.stat-card span{color:#718078;display:block;font-size:13px}.brand-mark{align-items:center;background:#31a86c;border-radius:8px;display:grid;height:44px;justify-items:center;width:44px}nav{display:grid;gap:8px}nav button{background:transparent;border-color:transparent;color:#cfdbd3;justify-content:flex-start;text-align:left}nav button.active,nav button:hover{background:#1d2a24;color:#fff}main{padding:28px}.topbar,.toolbar,.action-strip{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:22px}.eyebrow{color:#4b6f5d;font-size:13px;font-weight:700;letter-spacing:.08em;margin:0 0 4px;text-transform:uppercase}h1,h2,p{margin-top:0}h1{font-size:32px;margin-bottom:0}h2{font-size:18px}.alert,.loading,.empty{background:#fff;border:1px solid #dde5dc;border-radius:8px;color:#5d6962;padding:16px}.alert{border-color:#f0b8a8;color:#9d3418;margin-bottom:20px}.success{background:#edf7f1;border:1px solid #b9dfc7;border-radius:8px;color:#1f7a4d;padding:12px}.auth-shell{align-items:center;display:grid;min-height:100vh;padding:28px}.auth-card{background:#fff;border:1px solid #dde5dc;border-radius:8px;display:grid;gap:18px;margin:0 auto;max-width:760px;padding:24px;width:min(100%,760px)}.auth-copy{color:#59665e;line-height:1.5;margin-bottom:0}.auth-tabs,.topbar-actions{align-items:center;display:flex;gap:8px}.auth-tabs button,.topbar-actions button{align-items:center;display:inline-flex;gap:8px;justify-content:center}.auth-tabs button.active{background:#1d2a24;border-color:#1d2a24;color:#fff}.login-form{display:grid;gap:12px}.login-form label{display:grid;gap:6px}.login-form span,.topbar-actions span{color:#526159;font-size:13px;font-weight:700}.login-form input{border:1px solid #d8e1d8;border-radius:8px;min-height:42px;padding:0 12px;width:100%}.auth-registration{border:0;padding:0}.photo-upload-field input{padding:9px 12px}.photo-upload-row{align-items:center;display:grid;gap:12px;grid-template-columns:auto 1fr}.profile-photo-preview,.member-avatar{align-items:center;background:#edf7f1;border:1px solid #cfe0d3;border-radius:8px;color:#1f7a4d;display:grid;height:72px;justify-items:center;overflow:hidden;width:72px}.profile-photo-preview img,.member-avatar img{height:100%;object-fit:cover;width:100%}.qr-panel{align-items:center;background:#f6f8f5;border:1px dashed #b8c8bd;border-radius:8px;display:flex;gap:12px;padding:14px}.qr-panel svg{color:#1f7a4d}.qr-panel span{color:#59665e;display:block;font-size:13px;overflow-wrap:anywhere}.member-receipt{max-width:520px}.receipt-grid{display:grid;gap:10px;grid-template-columns:auto 1fr}.receipt-grid span{color:#59665e}.member-profile-block{border-bottom:1px solid #24332c;display:grid;gap:8px;margin-bottom:18px;padding-bottom:18px}.member-profile-block strong{overflow-wrap:anywhere}.member-profile-block span{color:#9fb0a6;font-size:13px}.member-shell nav{grid-template-columns:1fr}.member-sections{display:grid;gap:18px}.member-form-panel{display:grid;gap:16px}.section-heading{align-items:center;display:flex;gap:12px;justify-content:space-between}.section-heading h2{margin-bottom:0}.section-heading button,.photo-action{align-items:center;display:inline-flex;gap:8px}.section-heading.compact{align-items:center;margin-bottom:12px}.fitness-summary,.progress-hero{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.compact-stat{min-height:120px}.compact-stat strong{overflow-wrap:anywhere}.metric-field>div,.range-field>div{align-items:center;display:grid;gap:8px}.metric-field>div{grid-template-columns:minmax(0,1fr) auto}.metric-field small,.range-field small{color:#718078;font-size:12px;font-weight:700}.range-field{display:grid;gap:8px}.range-field span,.segmented-field legend{color:#526159;font-size:13px;font-weight:700}.range-field>div{grid-template-columns:minmax(120px,1fr) 96px auto}.range-field input[type=range]{accent-color:#1f7a4d}.segmented-field{border:0;display:grid;gap:8px;margin:0;padding:0}.segmented-field>div{display:flex;flex-wrap:wrap;gap:8px}.segmented-field button{min-height:36px}.segmented-field button.active{background:#1d2a24;border-color:#1d2a24;color:#fff}.measurement-grid{display:grid;gap:12px;grid-template-columns:repeat(5,minmax(0,1fr))}.photo-library{border-top:1px solid #edf1ed;padding-top:16px}.photo-action{border:1px solid #cad4ca;border-radius:8px;cursor:pointer;min-height:40px;padding:0 14px}.photo-action input{display:none}.progress-photo-grid{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.progress-photo,.photo-empty{border:1px solid #edf1ed;border-radius:8px;overflow:hidden}.progress-photo{display:grid;gap:8px;padding:8px}.progress-photo img{aspect-ratio:1;border-radius:6px;object-fit:cover;width:100%}.progress-photo button{min-height:34px}.photo-empty{align-items:center;color:#718078;display:flex;gap:8px;grid-column:1 / -1;justify-content:center}.member-fee-list{display:grid;gap:10px}.member-fee-row{align-items:center;border:1px solid #edf1ed;border-radius:8px;display:grid;gap:12px;grid-template-columns:minmax(220px,1.4fr) repeat(2,minmax(120px,.8fr));padding:14px}.member-fee-row span{color:#718078;display:block;font-size:13px}.member-fee-row strong{overflow-wrap:anywhere}.auth-floating-error{left:50%;position:fixed;top:20px;transform:translate(-50%);z-index:2}.popup-error{align-items:center;background:#fff0ea;border:1px solid #f0b8a8;border-radius:8px;box-shadow:0 18px 45px #17201c2e;color:#9d3418;display:flex;gap:12px;justify-content:space-between;left:50%;max-width:min(92vw,560px);padding:12px 14px;position:fixed;top:18px;transform:translate(-50%);width:max-content;z-index:20}.popup-error span{line-height:1.4}.popup-error button{align-items:center;border-color:transparent;color:#9d3418;display:inline-flex;font-size:20px;height:32px;justify-content:center;min-height:32px;padding:0;width:32px}.subscription-card{max-width:920px;width:min(100%,920px)}.subscription-grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.subscription-plan{border:1px solid #dde5dc;border-radius:8px;display:grid;gap:16px;padding:18px;position:relative}.subscription-plan svg{color:#1f7a4d}.subscription-plan h2{margin:8px 0 4px}.subscription-plan strong{display:block;font-size:28px}.subscription-plan button{align-items:center;display:inline-flex;gap:8px}.subscription-saving{background:#fff8df;border-radius:999px;color:#8a6500;display:inline-flex;font-size:13px;font-weight:700;padding:6px 10px;position:absolute;right:14px;top:14px}.payments-view{display:grid;gap:18px}.payment-stats{display:grid;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr))}.payment-stat-card strong{overflow-wrap:anywhere}.payment-history-search{max-width:320px;width:min(100%,320px)}.payment-collection-panel,.payment-history-panel{display:grid;gap:16px}.auto-sync-note{background:#edf7f1;border-radius:999px;color:#1f7a4d;font-size:13px;font-weight:700;padding:6px 10px}.member-due-list,.simple-payment-table{display:grid;gap:10px}.member-due-card,.simple-payment-row{align-items:center;border:1px solid #edf1ed;border-radius:8px;display:grid;gap:12px;padding:14px}.member-due-card{grid-template-columns:minmax(220px,1.4fr) repeat(3,minmax(110px,.7fr)) auto}.simple-payment-row{grid-template-columns:minmax(220px,1.4fr) minmax(120px,.8fr) minmax(120px,.8fr) auto auto}.member-due-card span,.simple-payment-row span{color:#718078;display:block;font-size:13px}.member-due-card strong,.simple-payment-row strong{overflow-wrap:anywhere}.member-due-card button,.simple-payment-row button{align-items:center;display:inline-flex;gap:8px;justify-content:center;white-space:nowrap}.undo-payment-button{color:#8a6500}.stats-grid{display:grid;gap:16px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.stat-card,.panel,.form-panel,.reminder-card{background:#fff;border:1px solid #dde5dc;border-radius:8px}.stat-card{padding:18px}.stat-card svg{color:#1f7a4d}.stat-card strong{display:block;font-size:28px;margin-top:8px}.two-column,.content-grid{display:grid;gap:18px;grid-template-columns:minmax(0,1fr) minmax(320px,420px)}.panel,.form-panel{padding:18px}.mini-row,.table-row{align-items:center;border-top:1px solid #edf1ed;display:grid;gap:14px;padding:14px 0}.mini-row{grid-template-columns:1fr auto}.table{background:#fff;border:1px solid #dde5dc;border-radius:8px;overflow:hidden}.table-row{grid-template-columns:minmax(220px,1.3fr) 1fr .8fr auto auto;padding:14px 18px}.table-row:first-child,.mini-row:first-of-type{border-top:0}.clickable-row{cursor:pointer}.clickable-row:focus-visible,.clickable-row:hover{background:#f7faf7;outline:none}.status{background:#edf7f1;border-radius:999px;color:#1f7a4d;display:inline-flex;font-size:12px;font-weight:700;justify-content:center;padding:6px 10px;text-transform:capitalize;white-space:nowrap}.status.expired,.status.overdue{background:#fff0ea;color:#b23a17}.status.pending{background:#fff8df;color:#8a6500}.status.open,.status.inside{background:#e8f3ff;color:#1264a3}.search{align-items:center;background:#fff;border:1px solid #d8e1d8;border-radius:8px;display:flex;gap:10px;min-height:44px;padding:0 12px;width:min(100%,520px)}.search input,.form-panel input,.form-panel select,.form-panel textarea,.action-strip select{border:1px solid #d8e1d8;border-radius:8px;min-height:42px;padding:0 12px;width:100%}.form-panel textarea{min-height:90px;padding:10px 12px;resize:vertical}.search input{border:0;outline:0}.form-panel{display:grid;gap:12px}.config-form-grid{display:grid;gap:12px;grid-template-columns:1fr 1fr}.config-field{display:grid;gap:6px;grid-column:1 / -1}.config-field.half{grid-column:auto}.config-field span{color:#526159;font-size:13px;font-weight:700}.config-field small{color:#8a6500;font-size:12px}.toggle-field{align-items:center;color:#526159;display:flex;font-size:14px;gap:10px}.toggle-field input{min-height:auto;width:auto}.form-actions,.row-actions{align-items:center;display:flex;gap:8px}.form-actions button{align-items:center;display:inline-flex;gap:8px;justify-content:center}.row-actions{justify-content:flex-end}.row-actions button{align-items:center;display:inline-flex;justify-content:center}.modal-backdrop{align-items:center;background:#10181575;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;padding:20px;position:fixed;z-index:10}.details-dialog{background:#fff;border:1px solid #dde5dc;border-radius:8px;box-shadow:0 18px 45px #10181538;max-height:min(720px,90vh);overflow:auto;padding:18px;width:min(100%,680px)}.dialog-header{align-items:flex-start;border-bottom:1px solid #edf1ed;display:flex;gap:16px;justify-content:space-between;margin-bottom:16px;padding-bottom:14px}.dialog-header h2{margin-bottom:4px}.dialog-header span,.detail-item span{color:#718078;display:block;font-size:13px}.icon-button{align-items:center;display:inline-flex;height:40px;justify-content:center;padding:0;width:40px}.details-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.detail-item{border:1px solid #edf1ed;border-radius:8px;display:grid;gap:5px;min-width:0;padding:12px}.detail-item strong{font-size:14px;overflow-wrap:anywhere}.detail-photo{border-radius:6px;height:92px;object-fit:cover;width:92px}.date-pair{display:grid;gap:10px;grid-template-columns:1fr 1fr}.action-strip{background:#fff;border:1px solid #dde5dc;border-radius:8px;justify-content:flex-start;padding:14px}.action-strip select{max-width:360px}.card-grid{display:grid;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr))}.reminder-card{padding:18px}.reminder-card svg{color:#1f7a4d}.reminder-card p{color:#59665e;line-height:1.5}@media(max-width:980px){.app-shell,.two-column,.content-grid{grid-template-columns:1fr}.sidebar{padding:18px}nav{grid-template-columns:repeat(5,minmax(0,1fr))}.stats-grid,.card-grid,.payment-stats,.fitness-summary,.progress-hero{grid-template-columns:repeat(2,minmax(0,1fr))}.member-due-card,.simple-payment-row,.member-fee-row{grid-template-columns:1fr 1fr}.measurement-grid,.progress-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.table-row{grid-template-columns:1fr}}@media(max-width:640px){main{padding:18px}nav,.stats-grid,.card-grid,.payment-stats,.subscription-grid,.config-form-grid,.date-pair,.details-grid,.fitness-summary,.progress-hero,.measurement-grid,.progress-photo-grid{grid-template-columns:1fr}.member-due-card,.simple-payment-row,.member-fee-row{grid-template-columns:1fr}.section-heading,.section-heading.compact,.photo-upload-row,.range-field>div{align-items:stretch;grid-template-columns:1fr}.config-field.half{grid-column:1 / -1}.topbar,.action-strip{align-items:stretch;flex-direction:column}}html{background:#eef4f0}body{color:#17201c;min-width:320px}button,input,select,textarea{transition:border-color .14s ease,box-shadow .14s ease,background .14s ease,color .14s ease,transform .14s ease}button:hover:not(:disabled){border-color:#9eb3a5;box-shadow:0 8px 20px #17201c14}button:active:not(:disabled){transform:translateY(1px)}input:focus,select:focus,textarea:focus,.search:focus-within{border-color:#31a86c;box-shadow:0 0 0 3px #31a86c24;outline:none}.app-shell{background:radial-gradient(circle at top right,rgba(49,168,108,.12),transparent 32rem),#f5f8f4}.sidebar{border-right:1px solid #1f3028;min-width:0;position:sticky;top:0;height:100vh}.brand{min-width:0}.brand strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}nav button{align-items:center;border-radius:8px;display:flex;font-weight:700;min-width:0}main{min-width:0}.topbar{background:#f5f8f4e6;border-bottom:1px solid rgba(221,229,220,.8);margin:-28px -28px 24px;padding:24px 28px 18px;position:sticky;top:0;z-index:3}h1{letter-spacing:0;line-height:1.08}h2{line-height:1.25}.alert,.loading,.empty,.success,.stat-card,.panel,.form-panel,.reminder-card,.table,.auth-card,.subscription-plan,.action-strip{box-shadow:0 12px 30px #17201c0f}.stat-card,.panel,.form-panel,.reminder-card,.auth-card,.subscription-plan,.action-strip,.table{border-color:#d7e2d8}.stat-card{min-width:0}.stat-card strong{line-height:1.1}.panel h2,.form-panel h2{margin-bottom:12px}.table{display:grid}.table-row,.member-due-card,.simple-payment-row,.member-fee-row,.mini-row{min-width:0}.table-row>*,.member-due-card>*,.simple-payment-row>*,.member-fee-row>*,.mini-row>*{min-width:0}.table-row strong,.member-due-card strong,.simple-payment-row strong,.member-fee-row strong,.mini-row strong{overflow-wrap:anywhere}.table-row:hover,.member-due-card:hover,.simple-payment-row:hover,.member-fee-row:hover{background:#fbfdfb}.member-due-card,.simple-payment-row,.member-fee-row{background:#fff}.search{box-shadow:0 8px 22px #17201c0d}.form-panel input,.form-panel select,.form-panel textarea,.login-form input,.action-strip select,.config-field input,.config-field select,.config-field textarea,.range-field input[type=number]{background:#fbfdfb}.primary:hover:not(:disabled){background:#17683f;border-color:#17683f}.status{align-items:center}.auth-shell{background:radial-gradient(circle at 20% 10%,rgba(49,168,108,.18),transparent 24rem),radial-gradient(circle at 80% 80%,rgba(31,122,77,.12),transparent 26rem),#eef4f0}.auth-card{gap:20px}.auth-tabs{background:#f3f7f3;border:1px solid #dfe8df;border-radius:8px;padding:4px}.auth-tabs button{border-color:transparent;flex:1}.qr-panel,.member-profile-block{min-width:0}.member-avatar{flex:0 0 auto}.progress-photo-grid{align-items:start}.details-dialog{width:min(100%,760px)}@media(max-width:1180px){.app-shell{grid-template-columns:230px 1fr}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.content-grid{grid-template-columns:minmax(0,1fr) minmax(300px,380px)}.member-due-card,.simple-payment-row{grid-template-columns:minmax(220px,1.2fr) repeat(2,minmax(110px,.8fr))}.member-due-card>div:nth-of-type(4),.member-due-card>button,.simple-payment-row>.status,.simple-payment-row>button{grid-column:auto}}@media(max-width:980px){.app-shell{display:block}.sidebar{border-bottom:1px solid #23332c;border-right:0;height:auto;position:static}.brand{margin-bottom:16px}nav{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}nav button{flex:0 0 auto;white-space:nowrap}main{padding:22px}.topbar{margin:-22px -22px 22px;padding:20px 22px 16px;position:static}.toolbar{align-items:stretch;flex-direction:column}.search{width:100%}.content-grid{gap:16px}.table-row{align-items:start}.member-due-card,.simple-payment-row{grid-template-columns:repeat(2,minmax(0,1fr))}.member-due-card>div:first-child,.simple-payment-row>div:first-child,.member-due-card>button,.simple-payment-row>button{grid-column:1 / -1}}@media(max-width:720px){.auth-shell{align-items:stretch;padding:14px}.auth-card{padding:18px}.auth-tabs{display:grid;grid-template-columns:1fr}.topbar-actions,.form-actions,.row-actions{align-items:stretch;flex-direction:column;width:100%}.topbar-actions button,.form-actions button,.row-actions button,.section-heading button,.photo-action{justify-content:center;width:100%}.topbar-actions span{text-align:left}.section-heading{align-items:stretch;flex-direction:column}.auto-sync-note{border-radius:8px;display:block;line-height:1.35}.stats-grid,.payment-stats{gap:12px}.stat-card{padding:16px}.stat-card strong{font-size:24px}.panel,.form-panel{padding:16px}.modal-backdrop{align-items:stretch;padding:10px}.details-dialog{max-height:calc(100vh - 20px)}}@media(max-width:640px){main{padding:14px}.topbar{margin:-14px -14px 16px;padding:16px 14px}h1{font-size:26px}.brand{align-items:center}.member-profile-block{align-items:center;grid-template-columns:auto 1fr}.member-profile-block .member-avatar{grid-row:span 2}.member-profile-block strong,.member-profile-block span{min-width:0}.table{background:transparent;border:0;box-shadow:none;gap:10px}.table-row,.member-due-card,.simple-payment-row,.member-fee-row,.reminder-card{border:1px solid #d7e2d8;border-radius:8px;box-shadow:0 10px 24px #17201c0f;padding:14px}.table-row{background:#fff}.table-row>.row-actions{align-items:stretch;flex-direction:column;justify-content:stretch;width:100%}.table-row button,.member-due-card button,.simple-payment-row button,.action-strip button{width:100%}.receipt-grid{grid-template-columns:1fr}.qr-panel{align-items:flex-start}.progress-photo,.photo-empty{min-height:0}}@media(max-width:420px){button{padding-left:12px;padding-right:12px}.sidebar{padding:14px}.brand-mark{height:40px;width:40px}.auth-card,.panel,.form-panel,.stat-card,.action-strip{padding:14px}h1{font-size:24px}.eyebrow{font-size:12px}}@media(max-width:980px){.content-grid{grid-template-columns:minmax(0,1fr)}.content-grid>*{min-width:0}.content-grid>.form-panel{width:100%}.content-grid .table-row{grid-template-columns:minmax(0,1.3fr) minmax(120px,.7fr)}.content-grid .table-row>.status,.content-grid .table-row>.row-actions{justify-self:start}.content-grid .table-row>button,.content-grid .table-row>.row-actions{grid-column:1 / -1}.content-grid .row-actions{justify-content:flex-start}}@media(max-width:720px){.content-grid{gap:14px}.content-grid .toolbar{margin-bottom:14px}.content-grid .table-row{grid-template-columns:1fr}.content-grid .table-row>*,.content-grid .table-row>.status,.content-grid .table-row>.row-actions{justify-self:stretch}.content-grid .table-row>.status{width:fit-content}.content-grid .row-actions{display:grid;grid-template-columns:1fr}.content-grid .row-actions button,.content-grid .table-row>button{width:100%}.content-grid .form-panel{gap:14px}.content-grid .form-panel>button.primary{width:100%}}@media(max-width:640px){.content-grid .table-row{align-items:stretch;display:grid}.content-grid .table-row>div:not(.row-actions){display:grid;gap:4px}.content-grid .table-row>div:not(.row-actions):not(:first-child){border-top:1px solid #edf1ed;padding-top:10px}.content-grid .table-row>.status{margin-top:2px}.content-grid .config-form-grid{grid-template-columns:1fr}.content-grid .config-field.half{grid-column:1 / -1}.popup-error{align-items:stretch;width:calc(100vw - 28px)}}.mobile-section-action{align-items:center;display:none;gap:8px;justify-content:center}.plans-view{display:grid;gap:16px}.section-action-toolbar{justify-content:flex-end;margin-bottom:0}.section-action-toolbar button{align-items:center;display:inline-flex;gap:8px;justify-content:center}.form-dialog{width:min(100%,720px)}.dialog-form-panel{border:0;box-shadow:none;padding:0}.dialog-form-panel h2{display:none}@media(max-width:720px){.mobile-section-action{display:inline-flex}.desktop-side-form{display:none}.content-grid .toolbar,.section-action-toolbar{align-items:stretch;display:grid;gap:10px;grid-template-columns:1fr}.content-grid .toolbar .search,.mobile-section-action,.section-action-toolbar button{width:100%}.form-dialog{max-height:calc(100vh - 20px);overflow:auto}.dialog-form-panel .form-actions{display:grid;grid-template-columns:1fr}.dialog-form-panel .form-actions button,.dialog-form-panel>button.primary{width:100%}}
