:root{color-scheme:light;--bg: #f6f8f5;--panel: #ffffff;--ink: #17201b;--muted: #6d776f;--line: #e1e8e1;--green: #11784a;--green-dark: #073f2d;--green-deep: #052d21;--green-soft: #e8f6ee;--red: #c43d32;--red-soft: #fae9e7;--blue: #4f46e5;--blue-soft: #ececff;--gold: #a36500;--gold-soft: #fff3d8;--shadow: 0 18px 45px rgba(16, 31, 24, .08);--lime: #c6f26b;--card-shadow: 0 1px 2px rgba(16, 31, 24, .05), 0 8px 24px rgba(16, 31, 24, .06);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}html.app-shell{--safe-top: 0px;--safe-bottom: 0px}*{box-sizing:border-box}html{scroll-behavior:smooth}html.app-shell{scroll-behavior:auto}body{margin:0;min-height:100vh;min-height:100dvh;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--ink);-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;text-size-adjust:100%;overscroll-behavior-y:none}button,input,textarea,select{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}.dashboard-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:auto;display:flex;flex-direction:column;gap:18px;padding:22px 18px;background:radial-gradient(circle at 10% 0%,rgba(255,255,255,.14),transparent 30%),linear-gradient(160deg,var(--green-dark),var(--green-deep));color:#fff}.brand-block{display:grid;grid-template-columns:54px 1fr;gap:12px;align-items:center}.brand-logo,.settings-logo{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:#ffffff29;border:1px solid rgba(255,255,255,.22);color:#fff;font-weight:900;overflow:hidden}.brand-logo img,.settings-logo img{width:100%;height:100%;object-fit:cover}.brand-block strong{display:block;font-size:1.08rem}.brand-block span{display:block;color:#ffffffb8;font-size:.82rem}.side-nav{display:grid;gap:6px}.side-nav p{margin:14px 8px 4px;color:#ffffff94;font-size:.68rem;font-weight:900;text-transform:uppercase}.side-nav a,.side-nav button{display:flex;align-items:center;gap:10px;min-height:42px;border:0;border-radius:8px;padding:0 12px;background:transparent;color:#ffffffdb;text-decoration:none;font-weight:800;text-align:left}.side-nav a.active,.side-nav a:hover,.side-nav .nav-link.active,.side-nav button:hover{background:#ffffff1f;color:#fff}.side-nav span{width:18px;text-align:center}.support-card{display:block;width:100%;margin-top:10px;border:1px solid rgba(255,255,255,.13);border-radius:8px;background:#ffffff14;padding:14px;text-align:left;color:inherit;font:inherit;cursor:pointer;transition:background .16s ease,border-color .16s ease}.support-card:hover{background:#ffffff24;border-color:#ffffff47}.support-card strong{display:block;color:#fff}.support-card span{display:block;margin-top:2px;color:#ffffffb3;font-size:.82rem}.help-tabs{display:flex;gap:8px;margin-bottom:16px;overflow-x:auto;padding-bottom:2px;-webkit-overflow-scrolling:touch}.help-tab{display:inline-flex;align-items:center;gap:8px;flex:none;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--muted);padding:10px 16px;font-weight:800;font-size:.9rem;cursor:pointer;transition:background .16s ease,color .16s ease,border-color .16s ease,transform .11s ease}.help-tab .material-symbols-outlined{font-size:1.15rem}.help-tab:hover{border-color:var(--green);color:var(--green)}.help-tab.active{background:var(--green);border-color:var(--green);color:#fff}.help-tab:active{transform:scale(.96)}.video-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.video-card{display:flex;flex-direction:column;gap:10px;border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:10px;text-align:left;cursor:pointer;transition:transform .12s ease,box-shadow .16s ease,border-color .16s ease}button.video-card{font:inherit;color:inherit}.video-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--green)}.video-thumb{position:relative;display:block;aspect-ratio:16 / 9;border-radius:8px;background:#0c1512 center / cover no-repeat;overflow:hidden}.video-play{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:52px;height:52px;display:grid;place-items:center;border-radius:50%;background:#c43d32eb;color:#fff;box-shadow:0 6px 18px #00000059;transition:transform .14s ease,background .14s ease}.video-play .material-symbols-outlined{font-size:2rem}.video-card:hover .video-play{transform:scale(1.08);background:#c43d32}.video-label{font-weight:800;font-size:.9rem;color:var(--ink);line-height:1.3}.video-dialog{width:min(94vw,960px);max-width:960px;padding:0;overflow:hidden;background:#000;border-radius:14px}.video-dialog-frame{position:relative;width:100%;aspect-ratio:16 / 9;background:#000}.video-dialog-frame iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0;display:block}.video-dialog-close{position:absolute;top:10px;right:10px;z-index:2;width:40px;height:40px;display:grid;place-items:center;border:0;border-radius:50%;background:#0009;color:#fff;font-size:1.6rem;line-height:1;cursor:pointer;transition:background .14s ease,transform .11s ease}.video-dialog-close:hover{background:#c43d32f2}.video-dialog-close:active{transform:scale(.92)}.video-dialog-label{margin:0;padding:12px 16px;background:#000;color:#fff;font-weight:800;font-size:.92rem}.guide-head{flex-wrap:wrap}.lang-toggle{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:3px;background:var(--bg);flex:none}.lang-btn{border:0;border-radius:999px;background:transparent;color:var(--muted);padding:6px 16px;font-weight:800;font-size:.85rem;cursor:pointer;transition:background .14s ease,color .14s ease}.lang-btn.active{background:var(--green);color:#fff}.guide-list{display:flex;flex-direction:column;gap:10px}.guide-item{border:1px solid var(--line);border-radius:10px;background:var(--panel);overflow:hidden}.guide-item>summary{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;list-style:none;font-weight:800;color:var(--ink)}.guide-item>summary::-webkit-details-marker{display:none}.guide-ico{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:8px;background:var(--green-soft);color:var(--green)}.guide-ico .material-symbols-outlined{font-size:1.25rem}.guide-title{flex:1;line-height:1.35}.guide-chevron{color:var(--muted);transition:transform .2s ease;flex:none}.guide-item[open]>summary .guide-chevron{transform:rotate(180deg)}.guide-item[open]>summary{border-bottom:1px solid var(--line)}.guide-body{padding:14px 16px 16px;color:var(--ink);font-size:.92rem;line-height:1.55}.guide-body p{margin:0 0 10px}.guide-body ol{margin:0 0 12px;padding-left:20px}.guide-body ol li{margin-bottom:6px}.guide-when{color:var(--muted)}.guide-sub-label{font-weight:800;color:var(--ink);margin-bottom:6px!important}.guide-tip{display:flex;gap:8px;align-items:flex-start;margin:0!important;border:1px solid var(--gold-soft);border-radius:8px;background:var(--gold-soft);color:#6b4a00;padding:10px 12px}.guide-tip .material-symbols-outlined{font-size:1.2rem;color:var(--gold);flex:none}.faq-heading{margin:24px 0 12px;font-size:1.02rem}.faq-item>summary{align-items:flex-start}.faq-item .guide-title{font-weight:800}.mobile-appbar{display:none}.hamburger{position:relative;flex:none;width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:12px;background:#ffffff24;transition:background .16s ease,transform .12s ease}.hamburger:active{transform:scale(.92)}.hamburger span{position:absolute;width:20px;height:2px;border-radius:2px;background:#fff;transition:transform .32s cubic-bezier(.4,0,.2,1),opacity .2s ease}.hamburger span:nth-child(1){transform:translateY(-6px)}.hamburger span:nth-child(3){transform:translateY(6px)}body.nav-open .hamburger span:nth-child(1){transform:translateY(0) rotate(45deg)}body.nav-open .hamburger span:nth-child(2){opacity:0}body.nav-open .hamburger span:nth-child(3){transform:translateY(0) rotate(-45deg)}.mobile-appbar-title{flex:1;min-width:0;font-size:1.08rem;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-appbar-add{flex:none;width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:50%;background:#ffffff29;color:#fff;font-size:1.6rem;line-height:1;transition:transform .12s ease,background .16s ease}.mobile-appbar-add:active{transform:scale(.9)}.sidebar-scrim{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#06181180;opacity:0;pointer-events:none;transition:opacity .32s ease}.main-content{min-width:0;overflow-x:clip;padding:24px 28px 34px}.view{display:none}.view.active{display:block;animation:viewEnter .16s ease-out}@keyframes viewEnter{0%{opacity:0}to{opacity:1}}.stat-card,.member-card,.trainer-card,.history-member-card,.payment-customer-card,.nav-shortcut,.tab,.primary-action,.secondary-action,.attendance-button,.collect-fee-button{transition:transform .11s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease}@media (hover: none){.member-card:active,.trainer-card:active,.history-member-card:active,.payment-customer-card:active,.nav-shortcut:active,.tab:active,.primary-action:active,.secondary-action:active,.attendance-button:active,.collect-fee-button:active,.side-nav button:active,.side-nav a:active{transform:scale(.97)}}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px}.topbar h1{margin-bottom:6px;font-size:clamp(1.5rem,3vw,2.15rem);line-height:1.08}.topbar p{margin-bottom:0;color:var(--muted)}.topbar-actions{display:flex;align-items:center;gap:10px}.ios-install-guide{display:flex;align-items:center;gap:10px;margin:-8px 0 18px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--green) 30%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--green) 8%,var(--panel));color:var(--ink);font-size:.9rem}.ios-install-guide[hidden]{display:none!important}.ios-install-guide strong{white-space:nowrap}.ios-install-guide span{color:var(--muted)}.ios-install-close{margin-left:auto;border:0;background:transparent;color:var(--muted);font-size:1.45rem;line-height:1;cursor:pointer}.date-pill{display:inline-flex;align-items:center;min-height:44px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 12px;color:var(--ink);font-weight:850}.primary-action,.secondary-action,.present-action,.paid-action,.whatsapp-action{min-height:46px;border:0;border-radius:8px;padding:0 16px;font-weight:850}.primary-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--green);color:#fff}.primary-action span{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#ffffff29}.secondary-action{border:1px solid var(--line);background:#fff;color:var(--ink)}.present-action{background:var(--green);color:#fff}.paid-action{background:var(--blue);color:#fff}.whatsapp-action{background:#25d366;color:#062d19}.stats-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:18px}.stat-card,.panel,.member-card,.detail-grid article,.payment-row{border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow)}.stat-card{position:relative;min-height:96px;padding:14px 14px 13px 56px;overflow:hidden}.stat-card span{display:block;color:var(--muted);font-size:.74rem;font-weight:850;line-height:1.25}.stat-card strong{display:block;margin-top:5px;font-size:1.6rem;line-height:1}.stat-card small{display:block;margin-top:5px;color:var(--muted);font-size:.7rem}.stat-icon{position:absolute;top:14px;left:13px;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;font-weight:900}.stat-card.total{background:linear-gradient(135deg,#f8fffb,#eef9f3);border-color:#cdebd9}.stat-card.total .stat-icon{background:#d9f2e4;color:var(--green)}.stat-card.due{background:linear-gradient(135deg,#fff7f6,#fae9e7);border-color:#f0cac5}.stat-card.due .stat-icon{background:#ffd9d5;color:var(--red)}.stat-card.paid{background:linear-gradient(135deg,#fbfbff,var(--blue-soft));border-color:#d7d8ff}.stat-card.paid .stat-icon{background:#dedfff;color:var(--blue)}.stat-card.attend{background:linear-gradient(135deg,#fffaf0,var(--gold-soft));border-color:#f2dca8}.stat-card.attend .stat-icon{background:#ffe2a4;color:var(--gold)}.stat-card.trainers{background:linear-gradient(135deg,#f9fbff,var(--blue-soft));border-color:#d7d8ff}.stat-card.trainers .stat-icon{background:#dedfff;color:var(--blue)}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}.left-stack,.right-stack{display:grid;gap:16px}.panel{padding:16px}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.panel-head h2{margin-bottom:4px;font-size:1.08rem}.panel-head h3{margin-bottom:4px}.panel-head p{margin-bottom:0;color:var(--muted);font-size:.86rem}.compact{margin-bottom:10px}.toast{position:fixed;top:16px;left:50%;z-index:20;transform:translate(-50%,-120%);width:min(92vw,420px);border:1px solid #b9dfc7;border-radius:8px;background:#f0fbf4;color:var(--green);padding:12px 14px;box-shadow:var(--shadow);font-weight:850;opacity:0;pointer-events:none;transition:transform .18s ease,opacity .18s ease}.toast.show{transform:translate(-50%);opacity:1}.date-picker,.search-box,.settings-form label,.photo-field label,.form-grid label,.logo-upload{display:grid;gap:6px;color:var(--muted);font-size:.8rem;font-weight:850}.date-picker{min-width:min(100%,210px)}input,textarea,select{width:100%;min-height:46px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);padding:10px 12px;outline:none}textarea{resize:vertical}input:focus,textarea:focus,select:focus{border-color:var(--green);box-shadow:0 0 0 3px #11784a1f}.attendance-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;border:1px solid #cdebd9;border-radius:8px;background:#f3fbf6;padding:12px 14px;color:var(--green)}.attendance-summary strong{font-size:1rem}.attendance-summary span{color:var(--muted);font-weight:750}.attendance-holiday-note{margin:0 0 12px;border:1px solid #f2dca8;border-radius:8px;background:var(--gold-soft);padding:12px 14px;color:var(--gold);font-weight:750;font-size:.88rem;line-height:1.4}.attendance-list{display:grid;gap:10px}.attendance-row{display:grid;grid-template-columns:58px minmax(160px,1fr) minmax(190px,.75fr) minmax(160px,auto);gap:12px;align-items:center;border:1px solid var(--line);border-radius:8px;background:#fff;padding:12px;box-shadow:0 10px 24px #101f180a}.attendance-row.is-present{border-color:#b9dfc7;background:#fbfffc}.attendance-row.is-pending{border-left:4px solid #d8ded8}.attendance-row.is-expired{border-color:#f0cac5;background:snow;border-left:4px solid var(--red)}.attendance-member-copy{min-width:0}.attendance-row h3{margin:0 0 2px;font-size:.98rem}.attendance-row p{margin:0;color:var(--muted);font-size:.84rem}.attendance-status-cell{display:grid;gap:4px;justify-items:start}.attendance-status-cell small{color:var(--muted);font-size:.75rem;line-height:1.25}.attendance-status{display:inline-flex;align-items:center;min-height:30px;border-radius:999px;padding:0 10px;font-size:.78rem;font-weight:900}.attendance-status.present{background:var(--green-soft);color:var(--green)}.attendance-status.pending{background:#eef2ef;color:var(--muted)}.attendance-status.expired{background:var(--red-soft);color:var(--red)}.attendance-actions{display:flex;justify-content:flex-end}.attendance-confirm-actions{display:flex;gap:8px}.attendance-button{min-height:40px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);padding:0 12px;font-weight:850;white-space:nowrap}.attendance-button.mark-present{border-color:var(--green);background:var(--green);color:#fff}.attendance-button.correction{border-color:#f0cac5;color:var(--red);background:#fff}.attendance-button.danger{border-color:var(--red);background:var(--red);color:#fff}.attendance-button.ghost{background:#fff;color:var(--muted)}.history-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px 12px}.history-row+.history-row{margin-top:8px}.history-row span{font-weight:850}.history-row strong,.badge{border-radius:999px;padding:5px 8px;font-size:.74rem;font-weight:850}.history-row strong{background:var(--green-soft);color:var(--green)}.history-empty{margin:0;border:1px dashed var(--line);border-radius:8px;padding:12px;color:var(--muted)}.history-filters{display:grid;grid-template-columns:1.4fr repeat(3,minmax(130px,1fr));gap:10px;margin-bottom:16px}.history-filters label{display:grid;gap:6px;color:var(--muted);font-size:.8rem;font-weight:850}.history-filters label:has(>input[type=search]){align-content:end}.history-filters select{width:100%;min-height:46px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);padding:10px 12px}.history-workspace{display:grid;grid-template-columns:minmax(240px,360px) 1fr;gap:14px;align-items:start}.subhead{margin-bottom:10px;font-size:.96rem}.history-member-grid{display:grid;gap:10px}.history-member-card{display:grid;grid-template-columns:54px 1fr;gap:10px;align-items:center;width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px;text-align:left}.history-member-card.active{border-color:var(--green);background:var(--green-soft)}.history-member-card h3{margin:0 0 2px;font-size:.96rem}.history-member-card p,.history-member-card span{display:block;margin:0;color:var(--muted);font-size:.82rem}.history-report{border:1px solid var(--line);border-radius:8px;background:#fff;padding:14px}.history-report-head{display:grid;grid-template-columns:58px 1fr;gap:12px;align-items:center;margin-bottom:14px}.history-report-head h3{margin:0 0 3px}.history-report-head p{margin:0;color:var(--muted)}.history-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:14px}.history-stat-grid article{border:1px solid var(--line);border-radius:8px;background:#fbfdfb;padding:10px}.history-stat-grid span{display:block;color:var(--muted);font-size:.76rem;font-weight:850}.history-stat-grid strong{display:block;margin-top:5px;font-size:1.3rem}.attendance-chart{display:grid;grid-template-columns:repeat(auto-fill,minmax(18px,1fr));gap:5px;margin-bottom:14px;border:1px solid var(--line);border-radius:8px;padding:10px;background:#fbfdfb}.chart-day{aspect-ratio:1;min-width:14px;border-radius:5px;background:#edf0ed}.chart-day.present{background:var(--green)}.chart-day.absent{background:var(--red-soft);border:1px solid #f0cac5}.chart-day.holiday{background:var(--gold-soft);border:1px solid #f2dca8}.chart-day.expired{background:var(--red)}.history-date-list{display:grid;gap:8px;max-height:380px;overflow:auto}.history-date-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:8px;padding:10px 12px}.history-date-row strong{border-radius:999px;padding:5px 8px;font-size:.74rem;text-transform:capitalize}.history-date-row strong.present{background:var(--green-soft);color:var(--green)}.history-date-row strong.absent{background:var(--red-soft);color:var(--red)}.history-date-row strong.holiday{background:var(--gold-soft);color:var(--gold)}.history-date-row strong.expired{background:var(--red);color:#fff}.expired-flag{color:var(--red);font-style:normal;font-weight:800}.history-stat-grid article.expired-stat{border-color:#f0cac5;background:snow}.history-stat-grid article.expired-stat strong{color:var(--red)}.billing-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.billing-card{border:1px solid var(--line);border-radius:8px;background:#fff;padding:12px}.billing-card.is-paid{background:#fbfffc;border-color:#c9ead6}.billing-card-head,.payment-detail-head{display:grid;grid-template-columns:58px 1fr auto;gap:10px;align-items:center;margin-bottom:12px}.billing-card-head h3,.payment-detail-head h3,.payment-customer-card h3{margin:0 0 3px;font-size:1rem}.billing-card-head p,.payment-detail-head p,.payment-customer-card p{margin:0;color:var(--muted);font-size:.84rem}.payment-customer-card span{display:block;margin-top:3px;color:var(--green);font-size:.78rem;font-weight:850}.billing-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px}.billing-meta div{border:1px solid var(--line);border-radius:8px;padding:10px}.billing-meta span{display:block;color:var(--muted);font-size:.76rem;font-weight:850}.billing-meta strong{display:block;margin-top:4px}.collect-fee-button{width:100%;min-height:44px;border:0;border-radius:8px;background:var(--green);color:#fff;font-weight:850}.collect-fee-button:disabled{cursor:not-allowed;background:#d9ded9;color:#7d867f}.fee-dialog-panel{padding:18px}.fee-dialog-panel .dialog-head p{margin-bottom:0;color:var(--muted)}.fee-month-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;border-radius:8px;background:var(--green-soft);color:var(--green);padding:12px;margin-bottom:12px}.fee-month-summary strong{font-size:1.25rem}.fee-month-summary span{color:var(--muted);font-weight:850}.fee-month-list{display:grid;gap:8px;max-height:340px;overflow:auto}.fee-month-option{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px 12px;font-weight:850}.fee-month-option input{width:18px;min-height:18px;accent-color:var(--green)}.fee-month-option span{color:var(--ink)}.fee-month-option strong{color:var(--green)}.fee-mode-field{display:grid;gap:6px;margin-top:12px}.payment-customer-grid{display:grid;gap:10px;max-height:640px;overflow:auto;padding-right:2px}.payment-customer-card{display:grid;grid-template-columns:54px 1fr;gap:10px;align-items:center;width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px;text-align:left}.payment-customer-card.active{border-color:var(--green);background:var(--green-soft)}.payment-workspace .payment-customer-detail{margin-top:0}.payment-customer-detail{margin-top:14px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:14px}.compact-collect{width:auto;min-width:170px;padding:0 14px}.payment-history-list{display:grid;gap:8px}.payment-history-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:8px;padding:10px 12px}.payment-history-row span{color:var(--muted)}.billing-list{display:grid;gap:10px}.billing-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:12px}.billing-row strong{display:block;margin-bottom:3px}.billing-row span{color:var(--muted);font-size:.86rem}.quick-actions-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.summary-list{display:grid}.summary-list div{display:flex;align-items:center;justify-content:space-between;min-height:42px;border-bottom:1px solid var(--line);color:var(--muted)}.summary-list div:last-child{border-bottom:0}.summary-list strong{color:var(--ink)}.settings-form{display:grid;gap:12px}.settings-logo-row{display:flex;align-items:center;gap:12px}.settings-logo{background:var(--green-soft);color:var(--green);border-color:#cdebd9}.logo-upload input{max-width:100%}.theme-settings,.membership-options,.billing-cycle-settings{display:grid;gap:10px;margin:2px 0 0;border:1px solid var(--line);border-radius:8px;padding:12px}.theme-settings legend,.membership-options legend,.billing-cycle-settings legend{padding:0 6px;color:var(--ink);font-size:.9rem;font-weight:900}.membership-option,.billing-cycle-option{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px}.membership-option input,.billing-cycle-option input{width:auto;min-height:auto;margin-top:4px}.membership-option strong,.billing-cycle-option strong{display:block;color:var(--ink)}.membership-option small,.billing-cycle-option small{display:block;margin-top:3px;color:var(--muted);line-height:1.35}.package-months-field[hidden]{display:none}.custom-billing-days input:disabled{background:#f2f5f2;color:var(--muted)}.holiday-settings .holiday-hint{color:var(--muted);font-size:.82rem;line-height:1.35}.weekday-picker{display:flex;flex-wrap:wrap;gap:8px}.weekday-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;background:#fff;padding:8px 12px;cursor:pointer;font-weight:800;font-size:.82rem;color:var(--muted);-webkit-user-select:none;user-select:none}.weekday-chip input{width:auto;min-height:auto;margin:0}.weekday-chip:has(input:checked){background:var(--green-soft);border-color:var(--green);color:var(--green-dark)}.holiday-date-add{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}.holiday-date-add .secondary-action{min-height:44px;white-space:nowrap}.holiday-date-list{display:flex;flex-wrap:wrap;gap:8px}.holiday-chip{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;background:#fff;padding:6px 6px 6px 12px;font-weight:800;font-size:.82rem;color:var(--ink)}.holiday-chip-remove{width:22px;height:22px;border-radius:50%;border:none;background:var(--red-soft);color:var(--red);font-weight:900;line-height:1;cursor:pointer;padding:0}.holiday-empty{color:var(--muted);font-size:.82rem;margin:0}.theme-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.theme-grid label{display:grid;grid-template-columns:1fr 52px;align-items:center;gap:10px;color:var(--muted);font-size:.82rem;font-weight:850}.theme-grid input{width:52px;min-height:40px;padding:4px}.action-panel{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end;margin-top:16px}.filter-tabs{display:grid;grid-template-columns:repeat(4,minmax(72px,1fr));gap:8px}.tab{min-height:46px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted);font-weight:850}.tab.active{border-color:var(--green);background:var(--green);color:#fff}.member-section{margin-top:16px}#monthLabel{flex:0 0 auto;border-radius:999px;background:var(--green-soft);color:var(--green);padding:7px 10px;font-size:.78rem;font-weight:850}.member-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.member-card{display:grid;gap:10px;width:100%;border:1px solid var(--line);padding:12px;text-align:left}.member-card-main{display:grid;grid-template-columns:58px 1fr;gap:12px;width:100%;border:0;background:transparent;padding:0;text-align:left;color:inherit}.member-card h3{margin:0 0 3px;font-size:1rem}.member-card p{margin:0;color:var(--muted);font-size:.86rem}.member-whatsapp-action{width:100%;min-height:40px;border:0;border-radius:8px;background:#25d366;color:#062d19;font-weight:850}.member-whatsapp-action:disabled{cursor:not-allowed;background:#eef2ef;color:var(--muted)}.trainer-section{margin-top:16px}.trainer-toolbar{display:grid;grid-template-columns:1fr minmax(180px,240px);gap:12px;align-items:end;margin-bottom:14px}.trainer-toolbar label{display:grid;gap:6px;color:var(--muted);font-size:.8rem;font-weight:850}.trainer-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.trainer-summary article{border:1px solid var(--line);border-radius:8px;background:linear-gradient(145deg,#fff,color-mix(in srgb,var(--green-soft) 50%,#fff));padding:12px}.trainer-summary span{display:block;color:var(--muted);font-size:.76rem;font-weight:850}.trainer-summary strong{display:block;margin-top:5px;font-size:1.45rem}.trainer-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.trainer-card{border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow);padding:12px}.trainer-card-main{display:grid;grid-template-columns:58px 1fr;gap:12px;width:100%;border:0;background:transparent;padding:0;color:inherit;text-align:left}.trainer-card-headline{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:3px}.trainer-card h3{margin:0;font-size:1rem}.trainer-card p{margin:0 0 3px;color:var(--muted);font-size:.86rem}.trainer-card small{display:block;margin-top:8px;color:var(--muted);line-height:1.4}.trainer-card:hover{border-color:color-mix(in srgb,var(--green) 40%,var(--line))}.trainer-attendance-panel{border:1px solid color-mix(in srgb,var(--blue) 18%,var(--line));border-radius:8px;background:linear-gradient(145deg,#fff,color-mix(in srgb,var(--blue-soft) 45%,#fff));padding:14px;margin-bottom:14px}.trainer-attendance-summary{margin-bottom:12px}.trainer-attendance-list{display:grid;gap:10px}.trainer-attendance-row{display:grid;grid-template-columns:58px minmax(150px,1fr) auto auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:8px;background:#fff;padding:12px}.trainer-attendance-row.is-present{border-color:#b9dfc7;background:#fbfffc}.trainer-attendance-row h3{margin:0 0 2px;font-size:.98rem}.trainer-attendance-row p{margin:0;color:var(--muted);font-size:.84rem}.member-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.badge.overdue{background:var(--red-soft);color:var(--red)}.badge.paid{background:var(--blue-soft);color:var(--blue)}.badge.present{background:var(--green-soft);color:var(--green)}.badge.pending{background:var(--gold-soft);color:var(--gold)}.member-photo,.avatar-fallback,#detailPhoto,#photoPreview,#trainerPhotoPreview{width:58px;height:58px;border-radius:8px;object-fit:cover;background:var(--green-soft)}.avatar-fallback{display:grid;place-items:center;color:var(--green);font-size:1.2rem;font-weight:900}.empty-state{display:none;place-items:center;padding:28px 18px;text-align:center}.empty-state.show{display:grid}.empty-avatar{display:grid;place-items:center;width:66px;height:66px;margin-bottom:14px;border-radius:50%;background:var(--green-soft);color:var(--green);font-size:1.8rem;font-weight:900}.empty-state p{max-width:360px;color:var(--muted)}.compact-empty{padding:24px 16px}dialog{width:min(94vw,720px);border:0;border-radius:12px;padding:0;box-shadow:0 24px 80px #17201b42}dialog::backdrop{background:#17201b6b}.member-form{padding:18px}.detail-panel{padding:18px;background:linear-gradient(180deg,var(--green-soft),transparent 170px),var(--panel)}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.detail-panel .dialog-head{align-items:center;border:1px solid color-mix(in srgb,var(--green) 20%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--panel) 88%,var(--green-soft));padding:12px}.eyebrow{margin:0 0 4px;color:var(--green);font-size:.76rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.icon-button{flex:0 0 auto;width:44px;height:44px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-size:1.5rem;line-height:1}.photo-field{display:grid;grid-template-columns:84px 1fr;gap:14px;align-items:center;margin-bottom:14px}.photo-preview-box{position:relative;width:84px;height:84px;border-radius:8px;overflow:hidden;background:var(--green-soft);display:grid;place-items:center}.photo-preview-box:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:8px;border:1px dashed color-mix(in srgb,var(--green) 45%,var(--line))}.photo-placeholder{color:color-mix(in srgb,var(--green) 70%,transparent);font-size:1.9rem;line-height:1}#photoPreview,#trainerPhotoPreview{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border-radius:0}.photo-field label{gap:0;min-width:0}.photo-field label span{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:46px;padding:10px 14px;border:1px solid var(--green);border-radius:8px;background:var(--green-soft);color:var(--green);font-size:.86rem;font-weight:850;text-align:center;cursor:pointer;transition:background .14s ease}.photo-field label span:before{content:"photo_camera";font-family:Material Symbols Outlined;font-weight:400;font-size:1rem;line-height:1;margin-right:6px;vertical-align:-2px;font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}.photo-field label:active span{background:color-mix(in srgb,var(--green) 22%,var(--green-soft))}.photo-field label:focus-within span{border-color:var(--green);box-shadow:0 0 0 3px #11784a1f}.photo-field input[type=file]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;border:0;min-height:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-grid .wide{grid-column:1 / -1}.field-hint{color:var(--muted);font-size:.72rem;font-weight:700;line-height:1.35}.field-error{color:var(--red);font-size:.72rem;font-weight:800;line-height:1.35}input.has-error,textarea.has-error,select.has-error{border-color:var(--red);background:snow}input.has-error:focus,textarea.has-error:focus,select.has-error:focus{border-color:var(--red);box-shadow:0 0 0 3px #c43d3224}.form-error{margin:14px 0 0;border:1px solid #f0cac5;border-radius:8px;background:var(--red-soft);color:var(--red);padding:10px 12px;font-size:.82rem;font-weight:800;line-height:1.4}.phone-input{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden}.phone-input .phone-prefix{display:flex;align-items:center;padding:0 10px;border-right:1px solid var(--line);background:#f4f7f4;color:var(--muted);font-weight:850;font-size:.85rem}.phone-input input{border:0;border-radius:0;background:transparent}.phone-input input:focus{box-shadow:none}.phone-input:focus-within{border-color:var(--green);box-shadow:0 0 0 3px #11784a1f}.phone-input.has-error{border-color:var(--red);background:snow}.phone-input.has-error .phone-prefix{border-right-color:#f0cac5;background:var(--red-soft);color:var(--red)}.phone-input.has-error:focus-within{border-color:var(--red);box-shadow:0 0 0 3px #c43d3224}.form-actions{display:flex;justify-content:space-between;gap:10px;margin-top:16px}.member-title{display:grid;grid-template-columns:64px 1fr;gap:12px;align-items:center}.member-title p{margin-bottom:0;color:var(--muted)}.detail-actions{display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:14px}.detail-actions .secondary-action{background:var(--panel);border-color:color-mix(in srgb,var(--green) 28%,var(--line))}.detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}.detail-grid article{position:relative;min-height:92px;padding:14px;overflow:hidden;border:1px solid color-mix(in srgb,var(--green) 16%,var(--line));background:linear-gradient(145deg,var(--panel),color-mix(in srgb,var(--green-soft) 68%,var(--panel)));box-shadow:none}.detail-grid article:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--green)}.detail-grid article:nth-child(2):before{background:var(--gold)}.detail-grid article:nth-child(3):before{background:var(--blue)}.detail-grid article:nth-child(4):before{background:var(--red)}.detail-grid span{display:block;color:var(--muted);font-size:.78rem;font-weight:900}.detail-grid strong{display:block;margin-top:8px;font-size:1.05rem;line-height:1.2}.calendar-section,.payment-history{border-top:1px solid var(--line);padding-top:16px}.calendar-section .panel-head{margin-bottom:10px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.day-cell{aspect-ratio:1;min-height:64px;border:1px solid color-mix(in srgb,var(--green) 14%,var(--line));border-radius:8px;background:linear-gradient(180deg,var(--panel),color-mix(in srgb,var(--bg) 58%,var(--panel)));color:var(--muted);font-weight:900;box-shadow:0 8px 18px #101f180d}.day-cell:hover{border-color:var(--green);color:var(--green)}.day-cell.present{border-color:var(--green);background:linear-gradient(145deg,var(--green),color-mix(in srgb,var(--green) 72%,#ffffff));color:#fff}.day-cell.holiday{border-color:#f2dca8;background:var(--gold-soft);color:var(--gold)}.day-cell.today{outline:3px solid color-mix(in srgb,var(--blue) 22%,transparent);border-color:var(--blue)}.payment-row{display:flex;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--panel) 92%,var(--green-soft));box-shadow:none}.payment-row+.payment-row{margin-top:8px}.payment-row span{color:var(--muted)}@media (max-width: 1180px){.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 1060px){.dashboard-grid{grid-template-columns:1fr}}@media (max-width: 900px){.dashboard-shell{grid-template-columns:1fr}.mobile-appbar{display:flex;align-items:center;gap:10px;position:fixed;top:0;left:0;right:0;z-index:65;height:calc(56px + var(--safe-top));padding:var(--safe-top) max(14px,env(safe-area-inset-right)) 0 max(14px,env(safe-area-inset-left));background:radial-gradient(circle at 12% 0%,rgba(255,255,255,.14),transparent 40%),linear-gradient(160deg,var(--green-dark),var(--green-deep));color:#fff;box-shadow:0 4px 18px #051e1552}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:60;width:min(84vw,300px);height:100vh;height:100dvh;padding:calc(64px + var(--safe-top)) 16px calc(16px + var(--safe-bottom));border-radius:0 18px 18px 0;transform:translate(-100%);visibility:hidden;box-shadow:12px 0 40px #051e1559;transition:transform .28s cubic-bezier(.32,.72,0,1),visibility 0s linear .28s;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;will-change:transform}body.nav-open .sidebar{transform:translate(0);visibility:visible;transition:transform .28s cubic-bezier(.32,.72,0,1),visibility 0s}.side-nav{grid-template-columns:1fr}.side-nav a,.side-nav button{min-height:48px}.sidebar-scrim{display:block;touch-action:none;transition-duration:.28s}body.nav-open .sidebar-scrim{opacity:1;pointer-events:auto}.main-content{padding-top:calc(56px + var(--safe-top) + 8px);padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right));padding-bottom:calc(28px + var(--safe-bottom))}.toast{top:calc(60px + var(--safe-top));z-index:80}.topbar #openAddMember{display:none}}@media (max-width: 760px){.topbar,.topbar-actions,.panel-head{display:grid;align-items:stretch}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.action-panel,.quick-actions-grid,.history-filters,.history-workspace,.payment-workspace,.trainer-toolbar,.member-list,.billing-card-grid,.trainer-list{grid-template-columns:1fr}.detail-actions,.detail-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 520px){.main-content{padding-left:10px;padding-right:10px}.stats-grid{gap:8px}.stat-card{min-height:96px;padding:13px 11px 11px 52px}.stat-icon{left:11px;top:14px;width:30px;height:30px}.stat-card strong{font-size:1.45rem}.filter-tabs{grid-template-columns:repeat(2,1fr)}.attendance-row{grid-template-columns:52px 1fr}.attendance-status-cell,.attendance-actions{grid-column:1 / -1}.trainer-attendance-row{grid-template-columns:52px 1fr}.trainer-attendance-row .attendance-status,.trainer-attendance-row .attendance-button{grid-column:1 / -1}.attendance-actions,.attendance-confirm-actions{width:100%}.attendance-button{flex:1}.billing-card-head,.payment-detail-head{grid-template-columns:52px 1fr}.billing-card-head .badge,.compact-collect{grid-column:1 / -1}.form-grid,.detail-actions,.detail-grid,.history-stat-grid,.theme-grid,.trainer-summary{grid-template-columns:1fr}.day-cell{min-height:48px}dialog{width:100vw;max-width:100vw;min-height:100dvh;border-radius:0}.member-form,.detail-panel,.fee-dialog-panel{padding:14px}.form-actions{position:sticky;bottom:0;margin:16px -14px -14px;padding:10px 14px;background:#fff;border-top:1px solid var(--line)}.fee-month-option{grid-template-columns:auto 1fr}.fee-month-option strong{grid-column:2}.form-actions button{flex:1}}.checkin-status-panel{margin-bottom:16px}.checkin-status{display:flex;align-items:center;gap:14px}.checkin-status .status-dot{width:12px;height:12px;border-radius:50%;background:var(--muted);flex:none;box-shadow:0 0 0 4px #6d776f26}.checkin-status strong{display:block}.checkin-status p{margin:2px 0 0;color:var(--muted);font-size:.86rem}.checkin-status #checkinRetry{margin-left:auto}.checkin-status[data-state=online] .status-dot{background:var(--green);box-shadow:0 0 0 4px var(--green-soft)}.checkin-status[data-state=offline] .status-dot{background:var(--red);box-shadow:0 0 0 4px var(--red-soft)}.checkin-status[data-state=online] #checkinRetry{display:none}.checkin-grid{display:grid;grid-template-columns:minmax(280px,360px) 1fr;gap:16px;align-items:start}.today-code{display:flex;flex-direction:column;align-items:center;gap:2px;padding:14px 12px;margin:4px 0 0;background:var(--green-soft);border:1px solid var(--line);border-radius:16px}.today-code-label{font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--green-dark)}.today-code-value{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:2.6rem;line-height:1.1;font-weight:700;letter-spacing:.18em;text-indent:.18em;color:var(--green-dark)}.today-code-date{font-size:.78rem;color:var(--muted)}.qr-frame{display:flex;justify-content:center;padding:16px;background:#fff;border:1px solid var(--line);border-radius:16px;margin:4px 0 14px}.qr-frame img{width:100%;max-width:260px;height:auto;image-rendering:pixelated}.checkin-url-row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--green-soft);border-radius:12px;margin-bottom:14px}.checkin-url-row span{flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;word-break:break-all;color:var(--green-dark)}.checkin-url-row button{flex:none}.checkin-steps{margin:0;padding-left:18px;color:var(--muted);font-size:.88rem;line-height:1.7}.checkin-feed{display:flex;flex-direction:column;gap:8px;max-height:60vh;overflow-y:auto}.checkin-feed-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff}.checkin-feed-row.is-new{border-color:var(--green);background:var(--green-soft)}.checkin-feed-row .feed-avatar{width:38px;height:38px;border-radius:50%;background:#d9f2e4;color:var(--green);display:flex;align-items:center;justify-content:center;font-weight:850;flex:none}.checkin-feed-row .feed-avatar.unknown{background:var(--red-soft);color:var(--red)}.checkin-feed-row div{flex:1;min-width:0}.checkin-feed-row strong{display:block}.checkin-feed-row span{color:var(--muted);font-size:.82rem}.checkin-feed-row time{color:var(--muted);font-size:.82rem;white-space:nowrap}@media (max-width: 760px){.checkin-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){.view.active{animation:none}.sidebar,.sidebar-scrim,.hamburger span,.stat-card,.member-card,.trainer-card,.primary-action,.secondary-action{transition:none!important}}.app-tabbar{display:none}html.pwa{-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}html.pwa body{overscroll-behavior-y:none}html.pwa #installAppButton,html.pwa .date-pill{display:none!important}@media (max-width: 900px){html.pwa .app-tabbar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:fixed;left:0;right:0;bottom:0;z-index:70;gap:2px;padding:6px 8px calc(6px + var(--safe-bottom));background:#fff;border-top:1px solid var(--line);box-shadow:0 -6px 22px #051e151a}html.pwa .app-tabbar .tab-link{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:52px;padding:4px 2px;border:0;background:transparent;color:var(--muted);font-size:11px;font-weight:600;line-height:1.1;border-radius:12px;cursor:pointer;transition:color .14s ease,background .14s ease}html.pwa .app-tabbar .tab-link .tab-ico{font-size:20px;line-height:1}html.pwa .app-tabbar .tab-link .tab-ico .material-symbols-outlined{font-size:24px}html.pwa .app-tabbar .tab-link:active .tab-ico{transform:scale(.9)}html.pwa .view.active{animation:none}html.pwa .app-tabbar .tab-link.active{color:var(--green);background:var(--green-soft)}html.pwa .main-content,html.pwa .sidebar{padding-bottom:calc(84px + var(--safe-bottom))}}.history-filters{grid-template-columns:1.6fr 1fr 1fr 1.2fr;border:1px solid var(--line);border-radius:12px;background:#fafcf9;padding:14px}.history-filters label>span{font-size:.68rem;font-weight:900;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.history-filters input[type=search]{padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236d776f' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.8-4.8'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:18px 18px}.payment-list-head{grid-area:list-head;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:30px}.payment-list-head .subhead{margin:0;font-size:.78rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.payment-filter-pill{display:none;align-items:center;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--ink);font-size:.72rem;font-weight:850;padding:5px 11px;white-space:nowrap}.billing-panel:has(#paymentSearch:not(:placeholder-shown)) .payment-filter-pill,.billing-panel:has(#paymentStartDate:in-range) .payment-filter-pill,.billing-panel:has(#paymentEndDate:in-range) .payment-filter-pill,.billing-panel:has(#paymentStatusFilter option:checked:not([value=all])) .payment-filter-pill{display:inline-flex}.payment-workspace{grid-template-columns:minmax(260px,380px) 1fr;grid-template-rows:auto 1fr;grid-template-areas:"list-head detail" "list      detail";gap:12px 16px}.payment-workspace .fee-mode-field{display:grid;gap:6px;margin-top:12px}.fee-mode-field>span{font-size:.78rem;font-weight:850;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.fee-mode-field select{width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);padding:10px 12px;font:inherit;font-weight:850}.payment-customer-grid{grid-area:list}.payment-workspace .payment-customer-detail{grid-area:detail}.payment-customer-card{position:relative;grid-template-columns:auto 1fr auto;gap:12px;border-radius:12px;padding:12px}.payment-customer-card h3{margin:0 0 2px;font-size:1.02rem}.payment-customer-card .customer-phone{margin:0;color:var(--muted);font-size:.8rem}.payment-customer-card .customer-phone:before{content:"call";font-family:Material Symbols Outlined;font-weight:400;font-size:1em;line-height:1;margin-right:4px;vertical-align:-2px;font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}.payment-customer-card span{margin-top:3px;color:var(--muted);font-size:.78rem;font-weight:800}.payment-customer-card .customer-filtered{font-style:normal;color:var(--green);font-weight:850}.payment-customer-card .customer-amount{align-self:center;font-size:1.06rem;font-weight:900;color:var(--ink)}.payment-customer-card:after,.payment-detail-head:after{content:"";position:absolute;width:11px;height:11px;border-radius:50%;border:2px solid var(--panel);background:var(--gold)}.payment-customer-card:after{left:8px;top:calc(50% + 17px)}.payment-detail-head:after{left:-3px;top:calc(50% + 17px)}.payment-customer-card.is-paid:after,.payment-detail-head.is-paid:after{background:var(--green)}.payment-customer-detail{display:grid;gap:12px;border-radius:12px;border-left:4px solid var(--green);padding:14px;box-shadow:0 10px 26px #101f180d}.payment-detail-head{position:relative;grid-template-columns:auto 1fr auto;margin-bottom:0}.payment-detail-head h3{margin:0 0 3px;font-size:1.16rem}.payment-detail-head p{display:flex;flex-wrap:wrap;align-items:center;gap:5px;font-size:.84rem}.payment-status{font-weight:850}.payment-status.pending{color:var(--gold)}.payment-status.paid{color:var(--green)}.payment-detail-amount{color:var(--green);font-size:1.2rem;font-weight:900;white-space:nowrap}.payment-customer-detail .collect-fee-button{min-height:48px;border-radius:10px;font-size:.98rem}.payment-history-list{gap:10px}.payment-history-row{background:var(--bg);border-radius:10px;padding:12px 14px}.payment-history-row>div{display:flex;align-items:baseline;gap:8px}.payment-history-row strong{font-size:1rem}.payment-history-row>div>span{color:var(--ink);font-weight:700;font-size:.9rem}.payment-history-row>span{color:var(--muted);font-size:.82rem}@media (max-width: 760px){.history-filters{grid-template-columns:1fr 1fr;padding:12px}.history-filters label:first-child,.history-filters label:last-child{grid-column:1 / -1}.payment-workspace{grid-template-columns:1fr;grid-template-rows:auto auto auto;grid-template-areas:"list-head" "detail" "list"}.fee-mode-field{display:grid;gap:6px;margin-top:12px}.fee-mode-field>span{font-size:.78rem;font-weight:850;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.fee-mode-field select{width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);padding:10px 12px;font:inherit;font-weight:850}.payment-customer-grid{max-height:none;overflow:visible;padding-right:0}}.date-pill:before{content:"calendar_month";font-family:Material Symbols Outlined;font-weight:400;font-size:1.1em;line-height:1;margin-right:8px;font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}.attendance-history .subhead{font-size:.78rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.history-member-card{border-radius:12px}@media (max-width: 760px){.attendance-history .panel-head{grid-template-columns:1fr auto;align-items:center;gap:10px}.attendance-history .panel-head h2{display:none}.attendance-history .panel-head p{margin:0;font-size:.84rem}.attendance-history .panel-head .primary-action{padding:0 14px}}#searchInput{padding-left:42px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236d776f' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.8-4.8'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:14px center;background-size:18px 18px}.action-panel{align-items:center}.filter-tabs{display:flex;flex-wrap:wrap;gap:8px}.tab{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:0 16px;border-radius:999px;font-size:.84rem}.tab:before{content:"";width:8px;height:8px;border-radius:50%}.tab[data-filter=all]:before{display:none}.tab[data-filter=overdue]:before{background:var(--red)}.tab[data-filter=paid]:before{background:var(--green)}.tab[data-filter=present]:before{background:var(--blue)}.tab.active:before{background:#fff}.member-card{border-radius:12px;gap:12px}.member-card-main{position:relative;grid-template-columns:58px 1fr auto;align-items:start}.member-card h3{font-size:1.06rem}.member-card .member-phone,.member-card .member-address,.member-card .member-trainer{margin:0 0 2px;font-size:.84rem}.member-card .member-phone:before,.member-card .member-address:before{font-family:Material Symbols Outlined;font-weight:400;font-size:1em;line-height:1;margin-right:4px;vertical-align:-2px;font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}.member-card .member-phone:before{content:"call"}.member-card .member-address:before{content:"location_on"}.member-card .member-trainer{font-size:.78rem}.member-card-main:after{content:"";position:absolute;left:46px;top:46px;width:12px;height:12px;border-radius:50%;border:2px solid var(--panel);background:var(--gold)}.member-card.is-overdue .member-card-main:after{background:var(--red)}.member-card.is-paid .member-card-main:after{background:var(--green)}.member-badges{margin-top:0;flex-direction:column;align-items:flex-end;gap:4px}.member-badges .badge{text-transform:uppercase;font-size:.68rem;letter-spacing:.05em;white-space:nowrap}.member-card-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:12px}.member-fee strong{display:block;color:var(--green);font-size:1.12rem;font-weight:900}.member-fee span{display:block;margin-top:2px;color:var(--muted);font-size:.76rem;font-weight:800}.member-card-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.member-whatsapp-action{width:auto;min-height:42px;border-radius:10px;padding:0 16px;font-size:.84rem;white-space:nowrap}.member-whatsapp-action:before{content:"💬 ";font-size:.9em}#trainerSearch{padding-left:42px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236d776f' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.8-4.8'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:14px center;background-size:18px 18px}.trainer-toolbar label{display:grid;gap:6px;color:var(--muted);font-weight:850}.trainer-toolbar label>span{font-size:.68rem;font-weight:900;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.trainer-summary article{position:relative;border-radius:12px}.trainer-summary article:after{position:absolute;top:12px;right:12px;font-family:Material Symbols Outlined;font-weight:400;font-size:1.1rem;line-height:1;letter-spacing:normal;opacity:.7;font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}.trainer-summary article:nth-child(1):after{content:"exercise"}.trainer-summary article:nth-child(2):after{content:"person_check"}.trainer-summary article:nth-child(3):after{content:"asterisk"}.trainer-summary article:nth-child(4):after{content:"person_check"}.trainer-summary span{padding-right:28px}.trainer-summary strong{font-size:1.9rem;line-height:1.15}.empty-state{border:1.5px dashed color-mix(in srgb,var(--muted) 40%,var(--line));border-radius:14px;padding:36px 18px}.empty-state h3{font-size:1.15rem}.empty-avatar{border-radius:14px}@media (max-width: 760px){.trainer-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 900px){.topbar,.topbar-actions{display:grid;align-items:stretch}.date-pill{width:100%}}.material-symbols-outlined{font-size:1.25em;line-height:1;vertical-align:-.22em;font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}.material-symbols-outlined.filled{font-variation-settings:"FILL" 1,"wght" 400,"GRAD" 0,"opsz" 24}@media (max-width: 900px){.topbar>div:first-child{display:none}.topbar{gap:8px;margin-bottom:12px}.topbar-actions{gap:8px}.topbar-actions:empty,.topbar:not(:has(.topbar-actions>:not([hidden]):not(#openAddMember):not(.plan-badge):not(.date-pill))){display:none}.topbar .plan-badge,.topbar .date-pill{display:none!important}}@media (max-width: 900px){.wmb-100{width:100%!important}}button.is-busy{pointer-events:none;opacity:.75}button.is-busy:before{content:"";display:inline-block;flex:none;width:14px;height:14px;margin-right:8px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-2px;animation:button-spin .6s linear infinite}@keyframes button-spin{to{transform:rotate(360deg)}}#financeNet.is-negative{color:var(--red)}.finance-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:16px;align-items:start}.finance-head-actions{display:flex;flex-wrap:wrap;gap:8px}.finance-ledger{display:grid;gap:10px}.ledger-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--panel);text-align:left}.ledger-row:hover{border-color:color-mix(in srgb,var(--green) 35%,var(--line))}.ledger-ico{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;flex:none}.ledger-row.is-earning .ledger-ico{background:var(--green-soft);color:var(--green)}.ledger-row.is-expense .ledger-ico{background:var(--red-soft);color:var(--red)}.ledger-copy{min-width:0;display:grid;gap:2px}.ledger-copy strong{font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ledger-copy>span{color:var(--muted);font-size:.78rem}.ledger-amount{white-space:nowrap;font-size:.95rem}.ledger-row.is-earning .ledger-amount{color:var(--green)}.ledger-row.is-expense .ledger-amount{color:var(--red)}.finance-overdue-list{display:grid;gap:10px}.finance-overdue-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--red) 22%,var(--line));border-radius:14px;background:linear-gradient(135deg,var(--panel),var(--red-soft))}.finance-overdue-row .member-photo,.finance-overdue-row .avatar-fallback{width:44px;height:44px;border-radius:12px;object-fit:cover}.finance-overdue-copy{min-width:0}.finance-overdue-copy h3{margin:0;font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.finance-overdue-copy p{margin:2px 0 0;color:var(--muted);font-size:.78rem}.finance-overdue-actions{display:grid;justify-items:end;gap:6px}.finance-overdue-actions strong{color:var(--red);white-space:nowrap}.finance-overdue-actions .secondary-action{padding:6px 14px}@media (max-width: 1060px){.finance-grid{grid-template-columns:1fr}}@media (max-width: 760px){.finance-filters{grid-template-columns:1fr 1fr}.finance-head-actions{width:100%}.finance-head-actions .primary-action,.finance-head-actions .secondary-action{flex:1 1 auto;justify-content:center}}@media (max-width: 520px){.ledger-row{padding:10px 12px;gap:10px}.ledger-ico{width:32px;height:32px;border-radius:10px}.finance-overdue-row{grid-template-columns:auto minmax(0,1fr)}.finance-overdue-actions{grid-column:1 / -1;grid-template-columns:auto auto;justify-content:space-between;align-items:center;width:100%}}.insight-period-panel{margin-bottom:16px}.insight-mode-switch{display:inline-flex;flex-wrap:wrap;gap:4px;padding:4px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--panel) 90%,var(--green-soft));margin-bottom:12px}.insight-mode-button{border:1px solid transparent;border-radius:9px;background:transparent;color:var(--muted);padding:8px 14px;font-size:.82rem;font-weight:850;min-height:40px}.insight-mode-button.active{border-color:color-mix(in srgb,var(--green) 30%,var(--line));background:var(--panel);color:var(--green)}.insight-filters{margin-bottom:0}.insight-breakdown-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start;margin-bottom:16px}.insight-breakdown-list{display:grid;gap:12px;list-style:none;margin:0;padding:0}.insight-breakdown-row{display:grid;gap:6px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.insight-breakdown-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.insight-breakdown-label{font-size:.88rem;font-weight:850}.insight-breakdown-row.is-in .insight-breakdown-head strong{color:var(--green)}.insight-breakdown-row.is-out .insight-breakdown-head strong{color:var(--red)}.insight-breakdown-row small{color:var(--muted);font-size:.74rem;font-weight:750}.insight-breakdown-bar{height:8px;border-radius:99px;background:color-mix(in srgb,var(--line) 70%,var(--panel));overflow:hidden}.insight-breakdown-bar>span{display:block;height:100%;border-radius:99px}.insight-breakdown-row.is-in .insight-breakdown-bar>span{background:var(--green)}.insight-breakdown-row.is-out .insight-breakdown-bar>span{background:var(--red)}.insight-subhead{margin:18px 0 10px;color:var(--muted);font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.insight-member-list{display:grid;gap:8px;list-style:none;margin:0;padding:0}.insight-member-list button{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel);text-align:left;font-weight:800;min-height:44px}.insight-member-list button:hover{border-color:color-mix(in srgb,var(--green) 35%,var(--line))}.insight-member-list strong{color:var(--green);white-space:nowrap}.insight-day-list{display:grid;gap:10px;list-style:none;margin:0;padding:0}.insight-day-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.insight-day-main{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;min-width:0}.insight-day-date{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--green-soft);color:var(--green);font-size:1rem;flex:none}.insight-day-copy{min-width:0;display:grid;gap:2px}.insight-day-copy>strong{font-size:.95rem}.insight-day-copy>span{color:var(--muted);font-size:.78rem;font-weight:750}.insight-day-copy em{font-style:normal;font-weight:900}.is-in{color:var(--green)}.is-out{color:var(--red)}.insight-day-net{white-space:nowrap;font-size:.98rem}.insight-read-more{display:inline-flex;align-items:center;gap:4px;border:1px solid color-mix(in srgb,var(--green) 26%,var(--line));border-radius:10px;background:var(--panel);color:var(--green);padding:8px 10px;font-size:.76rem;font-weight:900;white-space:nowrap;min-height:40px}.insight-read-more:hover{background:var(--green-soft)}.insight-read-more .material-symbols-outlined{font-size:1rem}.day-ledger-dialog{width:min(96vw,520px)}.day-ledger-panel{display:grid;gap:14px}.day-ledger-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.day-ledger-summary article{padding:12px 14px;border:1px solid var(--line);border-radius:14px}.day-ledger-summary span{display:block;color:var(--muted);font-size:.76rem;font-weight:900}.day-ledger-summary strong{display:block;margin-top:6px;font-size:1.1rem}.day-ledger-summary article.is-in{border-color:color-mix(in srgb,var(--green) 24%,var(--line));background:var(--green-soft)}.day-ledger-summary article.is-out{border-color:color-mix(in srgb,var(--red) 20%,var(--line));background:var(--red-soft)}.day-ledger-summary article.is-in strong{color:var(--green)}.day-ledger-summary article.is-out strong{color:var(--red)}.day-ledger-list{display:grid;gap:10px;max-height:min(52vh,420px);overflow-y:auto}.day-ledger-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--panel);text-align:left}.day-ledger-row:hover{border-color:color-mix(in srgb,var(--green) 35%,var(--line))}.day-ledger-ico{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;flex:none}.day-ledger-row.is-earning .day-ledger-ico{background:var(--green-soft);color:var(--green)}.day-ledger-row.is-expense .day-ledger-ico{background:var(--red-soft);color:var(--red)}.day-ledger-copy{min-width:0;display:grid;gap:2px}.day-ledger-copy strong{font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.day-ledger-copy>span{color:var(--muted);font-size:.78rem}.day-ledger-amount-col{display:grid;gap:2px;justify-items:end}.day-ledger-amount{white-space:nowrap;font-size:.95rem}.day-ledger-row.is-earning .day-ledger-amount{color:var(--green)}.day-ledger-row.is-expense .day-ledger-amount{color:var(--red)}.day-ledger-mode{white-space:nowrap;color:var(--muted);font-size:.72rem;font-weight:700}@media (max-width: 900px){.insight-breakdown-grid{grid-template-columns:1fr}}@media (max-width: 560px){.insight-day-row{grid-template-columns:minmax(0,1fr) auto}.insight-read-more{grid-column:1 / -1;justify-content:center}.insight-mode-switch{width:100%}.insight-mode-button{flex:1}}.notify-view{display:flex;flex-direction:column;gap:16px}.notify-panel .panel-head{display:block}.notify-panel .panel-head p:last-child{color:var(--muted);font-size:.86rem}.notify-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px}.notify-stats article{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--green) 5%,var(--panel))}.notify-stats span{color:var(--muted);font-size:.72rem;font-weight:700;line-height:1.3}.notify-stats strong{font-size:1.25rem;font-weight:850}.notify-button{width:100%;min-height:46px;padding:0 16px;border:0;border-radius:10px;background:var(--green);color:#fff;font-weight:850;cursor:pointer}.notify-button:disabled{cursor:not-allowed;background:#d9ded9;color:#7d867f}.notify-form{display:flex;flex-direction:column}.notify-picker{display:flex;flex-direction:column;gap:8px;margin-top:12px}.notify-picker .fee-month-list{max-height:260px;overflow-y:auto}.notify-recipient-count{margin:12px 0}.notify-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.notify-summary-grid article{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid var(--line);border-radius:10px}.notify-summary-grid span{color:var(--muted);font-size:.72rem;font-weight:700;line-height:1.3}.notify-summary-grid strong{font-size:1.15rem;font-weight:850}@media (max-width: 720px){.notify-stats,.notify-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.notify-warning{margin:0 0 12px;padding:12px;border-radius:10px;background:#fdf3e7;border:1px solid #f0d2a8;color:#6b4405;font-size:.84rem;font-weight:600;line-height:1.45}.notify-unreachable{margin-bottom:12px}.notify-unreachable-list{display:flex;flex-direction:column;max-height:220px;overflow-y:auto;border:1px solid var(--line);border-radius:10px}.notify-unreachable-list>div{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:9px 12px;border-bottom:1px solid var(--line)}.notify-unreachable-list>div:last-child{border-bottom:0}.notify-unreachable-list em{color:var(--muted);font-style:normal;font-size:.78rem;font-weight:700}.notify-unreachable-list strong{color:var(--red);font-weight:850}.notify-subscribed-list strong{color:var(--muted);font-size:.78rem;font-weight:750;white-space:nowrap}.appbar-plan-chip{display:none}@media (max-width: 900px){.mobile-appbar{gap:8px;padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));background:var(--green-dark);box-shadow:0 1px #ffffff0a,0 6px 18px #051e1533}.mobile-appbar.is-flush{box-shadow:none}.hamburger{width:40px;height:40px;border-radius:12px;background:#ffffff1a}.hamburger span{width:18px}.mobile-appbar-title{margin-left:2px;font-size:1.04rem;font-weight:800;letter-spacing:-.01em}.mobile-appbar-add{width:38px;height:38px;border-radius:12px;background:var(--lime);color:var(--green-deep)}.mobile-appbar-add .material-symbols-outlined{font-size:21px;vertical-align:0}.appbar-plan-chip{flex:none;display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 11px;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:#ffffff14;color:#fff;font-size:.74rem;font-weight:700;white-space:nowrap;transition:background .16s ease,transform .12s ease}.appbar-plan-chip:active{transform:scale(.95)}.appbar-plan-chip:disabled{cursor:default;opacity:1}.appbar-plan-dot{width:7px;height:7px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 3px color-mix(in srgb,var(--lime) 22%,transparent)}.appbar-plan-chip.warn .appbar-plan-dot{background:#ffc857;box-shadow:0 0 0 3px #ffc85738;animation:planPulse 2.4s ease-in-out infinite}.appbar-plan-chip.danger .appbar-plan-dot{background:#ff8a80;box-shadow:0 0 0 3px #ff8a8038}.main-content>.plan-banner{display:none}}@keyframes planPulse{0%,to{box-shadow:0 0 0 3px #ffc85738}50%{box-shadow:0 0 0 6px #ffc85700}}@media (max-width: 359px){.appbar-plan-text{display:none}.appbar-plan-chip{padding:0 10px}}@media (max-width: 900px){html.pwa .app-tabbar{gap:0;padding:6px 6px calc(6px + var(--safe-bottom));background:var(--green-deep);border-top:1px solid rgba(255,255,255,.06);box-shadow:0 -10px 30px #051e1529}html.pwa .app-tabbar .tab-link{gap:4px;min-height:54px;color:#ffffff9e;font-size:10.5px;font-weight:600}html.pwa .app-tabbar .tab-link .tab-ico{display:grid;place-items:center;width:54px;height:30px;border-radius:999px;transition:background .16s ease,color .16s ease,transform .12s ease}html.pwa .app-tabbar .tab-link .tab-ico .material-symbols-outlined{font-size:22px;vertical-align:0}html.pwa .app-tabbar .tab-link.active{background:transparent;color:#fff}html.pwa .app-tabbar .tab-link.active .tab-ico{background:var(--lime);color:var(--green-deep)}html.pwa .app-tabbar .tab-link.active .material-symbols-outlined{font-variation-settings:"FILL" 1,"wght" 500,"GRAD" 0,"opsz" 24}}.dash{display:grid;gap:16px}.dash-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);grid-template-areas:"head card" "stats card";gap:18px 28px;padding:24px;border-radius:22px;color:#fff;background:radial-gradient(110% 80% at 100% 40%,color-mix(in srgb,var(--lime) 13%,transparent),transparent 60%),linear-gradient(180deg,var(--green-dark),var(--green-deep));box-shadow:0 18px 40px #051e1529}.dash-hero-head{grid-area:head;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.dash-hero-overline{margin:0 0 6px;color:#ffffffad;font-size:.8rem;font-weight:600}.dash-hero h2{margin:0;font-size:clamp(1.35rem,2.4vw,1.8rem);font-weight:800;letter-spacing:-.02em;line-height:1.15;overflow-wrap:anywhere}.dash-hero-logo{flex:none;display:grid;place-items:center;width:44px;height:44px;overflow:hidden;border:1px solid rgba(255,255,255,.18);border-radius:14px;background:#ffffff1f;font-weight:800}.dash-hero-logo img{width:100%;height:100%;object-fit:cover}.dash-hero-card{grid-area:card;position:relative;padding:16px 16px 12px;border:1px solid rgba(255,255,255,.1);border-radius:18px;background:#ffffff12}.dash-overline{display:block;color:#ffffffb3;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.dash-hero-value{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:6px 0 4px}.dash-hero-value strong{font-size:clamp(1.9rem,4vw,2.4rem);font-weight:800;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}.dash-hero-metric small{color:#ffffff9e;font-size:.78rem}.dash-delta{display:inline-flex;align-items:center;gap:2px;padding:3px 8px 3px 6px;border-radius:999px;font-size:.74rem;font-weight:800;white-space:nowrap}.dash-delta .material-symbols-outlined{font-size:16px;vertical-align:0}.dash-delta.up{background:var(--green-soft);color:var(--green)}.dash-delta.down{background:var(--red-soft);color:var(--red)}.dash-hero .dash-delta.up{background:var(--lime);color:var(--green-deep)}.dash-hero .dash-delta.down{background:#ffd9d5;color:#8c1d14}.dash-delta-suffix{font-weight:600;opacity:.8}.dash-hero-stats{grid-area:stats;align-self:end;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0}.dash-hero-stats div{min-width:0;padding:0 12px;border-left:1px solid rgba(255,255,255,.12)}.dash-hero-stats div:first-child{padding-left:0;border-left:0}.dash-hero-stats dt{margin-bottom:4px;color:#ffffff9e;font-size:.72rem;font-weight:600}.dash-hero-stats dd{margin:0;font-size:1rem;font-weight:800;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.dash-hero-stats dd.is-negative{color:#ffb4ab}.dash-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.dash-kpi{--kpi: var(--green);display:grid;align-content:start;gap:10px;min-width:0;padding:14px;border:1px solid var(--line);border-radius:18px;background:var(--panel);box-shadow:var(--card-shadow);color:var(--ink);font:inherit;text-align:left;transition:transform .12s ease,box-shadow .16s ease,border-color .16s ease}.dash-kpi:hover{border-color:color-mix(in srgb,var(--kpi) 35%,var(--line))}.dash-kpi:active{transform:scale(.97)}.dash-kpi:focus-visible,.dash-quick button:focus-visible,.dash-bar:focus-visible,.dash-attention-row:focus-visible,.dash-link:focus-visible{outline:2px solid var(--green);outline-offset:2px}.dash-kpi.members{--kpi: var(--blue)}.dash-kpi.present{--kpi: var(--gold)}.dash-kpi.paid{--kpi: var(--green)}.dash-kpi.due{--kpi: var(--red)}.dash-kpi.trainers{--kpi: var(--blue)}.dash-kpi-head{display:flex;align-items:center;gap:8px;min-width:0}.dash-kpi-icon{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:color-mix(in srgb,var(--kpi) 13%,var(--panel));color:var(--kpi)}.dash-kpi-icon .material-symbols-outlined{font-size:19px;vertical-align:0}.dash-kpi-label{overflow:hidden;color:var(--muted);font-size:.8rem;font-weight:700;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.dash-kpi-value{font-size:1.85rem;font-weight:800;letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}.dash-kpi-foot{display:grid;gap:6px;min-height:1.1em;color:var(--muted);font-size:.74rem;font-weight:600}.dash-meter{display:block;height:6px;overflow:hidden;border-radius:99px;background:color-mix(in srgb,var(--kpi) 12%,var(--panel))}.dash-meter i{display:block;height:100%;border-radius:inherit;background:var(--kpi);transform-origin:left;animation:dashGrowX .7s cubic-bezier(.22,.61,.36,1) both;transition:width .6s cubic-bezier(.22,.61,.36,1)}.dash-kpi-up{display:inline-flex;align-items:center;gap:3px;color:var(--green);font-weight:700}.dash-kpi-up .material-symbols-outlined{font-size:14px;vertical-align:0}.dash-kpi-due{color:var(--red);font-weight:700}.dash-quick{display:none}.dash-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(0,1.15fr);gap:16px;align-items:stretch}.dash-card{min-width:0;padding:18px;border:1px solid var(--line);border-radius:20px;background:var(--panel);box-shadow:var(--card-shadow)}.dash-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.dash-card-head h3{margin:0 0 3px;font-size:1rem;font-weight:800;letter-spacing:-.01em}.dash-card-head p{margin:0;color:var(--muted);font-size:.8rem}.dash-card-figure{display:grid;justify-items:end;gap:5px}.dash-card-figure strong{font-size:1.5rem;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}.dash-link{flex:none;display:inline-flex;align-items:center;padding:6px 4px 6px 11px;border:0;border-radius:999px;background:var(--green-soft);color:var(--green);font-size:.76rem;font-weight:700}.dash-link .material-symbols-outlined{font-size:18px;vertical-align:0}.dash-bars{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;height:168px;padding-top:26px}.dash-bar{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:8px;min-width:0;padding:0;border:0;border-radius:10px;background:transparent;color:var(--muted);font:inherit}.dash-bar-track{display:flex;align-items:flex-end;width:100%;max-width:34px;height:100%;margin:0 auto;border-radius:10px;background:color-mix(in srgb,var(--green) 6%,var(--panel))}.dash-bar.is-holiday .dash-bar-track{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--muted) 14%,transparent) 0 3px,transparent 3px 7px)}.dash-bar-fill{position:relative;display:block;width:100%;min-height:4px;border-radius:10px 10px 4px 4px;background:color-mix(in srgb,var(--green) 32%,var(--panel));transform-origin:bottom;animation:dashGrowY .7s cubic-bezier(.22,.61,.36,1) both;transition:height .5s cubic-bezier(.22,.61,.36,1),background .16s ease}.dash-bar.is-selected .dash-bar-fill{background:color-mix(in srgb,var(--green) 62%,var(--panel))}.dash-bar.is-today .dash-bar-fill{background:var(--green)}.dash-bar-value{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);padding:2px 7px;border-radius:7px;background:var(--ink);color:#fff;font-size:.72rem;font-weight:800;line-height:1.4;font-variant-numeric:tabular-nums}.dash-bar-label{overflow:hidden;font-size:.7rem;font-weight:600;text-align:center;text-overflow:ellipsis;white-space:nowrap}.dash-bar.is-selected .dash-bar-label{color:var(--ink);font-weight:700}.dash-bar.is-today .dash-bar-label{color:var(--green);font-weight:800}.dash-bars-caption{margin:10px 0 0;color:var(--muted);font-size:.76rem;text-align:center}.dash-card-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0 0;padding-top:14px;border-top:1px solid var(--line)}.dash-card-stats dt{margin-bottom:3px;color:var(--muted);font-size:.72rem;font-weight:600}.dash-card-stats dd{margin:0;font-size:.95rem;font-weight:800;font-variant-numeric:tabular-nums}.dash-fees-body{display:grid;grid-template-columns:132px minmax(0,1fr);align-items:center;gap:18px}.dash-ring{position:relative;width:132px;aspect-ratio:1}.dash-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.dash-ring-track{fill:none;stroke:color-mix(in srgb,var(--muted) 10%,var(--panel));stroke-width:11}.dash-ring-seg{fill:none;stroke-width:11;transition:stroke-dasharray .6s ease,stroke-dashoffset .6s ease}.dash-ring-seg.paid,.dash-legend .paid{--seg: var(--green);stroke:var(--green)}.dash-ring-seg.overdue,.dash-legend .overdue{--seg: var(--red);stroke:var(--red)}.dash-ring-seg.upcoming,.dash-legend .upcoming{--seg: color-mix(in srgb, var(--muted) 40%, var(--panel));stroke:color-mix(in srgb,var(--muted) 40%,var(--panel))}.dash-ring-center{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;text-align:center}.dash-ring-center strong{font-size:1.6rem;font-weight:800;letter-spacing:-.02em;line-height:1;font-variant-numeric:tabular-nums}.dash-ring-center strong span{color:var(--muted);font-size:.95rem;font-weight:700}.dash-ring-center small{margin-top:4px;color:var(--muted);font-size:.72rem;font-weight:600}.dash-legend{display:grid;gap:12px;margin:0;padding:0;list-style:none}.dash-legend li{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;column-gap:9px;row-gap:2px;font-size:.84rem}.dash-legend i{width:10px;height:10px;border-radius:3px;background:var(--seg)}.dash-legend span{color:var(--muted);font-weight:600}.dash-legend strong{font-variant-numeric:tabular-nums}.dash-legend small{grid-column:2 / -1;color:var(--red);font-size:.74rem;font-weight:700}.dash-attention-list{display:grid;gap:2px;margin:0 -8px;padding:0;list-style:none}.dash-attention-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;padding:8px;border:0;border-radius:14px;background:transparent;color:var(--ink);font:inherit;text-align:left;transition:background .14s ease,transform .11s ease}.dash-attention-row:hover{background:color-mix(in srgb,var(--red) 5%,var(--panel))}.dash-attention-row:active{transform:scale(.98)}.dash-attention-row .member-photo,.dash-attention-row .avatar-fallback{width:42px;height:42px;border-radius:13px;font-size:.9rem}.dash-attention-copy{display:grid;gap:2px;min-width:0}.dash-attention-copy strong{overflow:hidden;font-size:.92rem;text-overflow:ellipsis;white-space:nowrap}.dash-attention-copy small{color:var(--muted);font-size:.74rem}.dash-attention-amount{display:grid;justify-items:end;gap:2px}.dash-attention-amount strong{color:var(--red);font-size:.92rem;font-variant-numeric:tabular-nums}.dash-attention-amount small{color:var(--green);font-size:.74rem;font-weight:700}.dash-all-clear{display:flex;align-items:center;gap:12px;padding:14px;border-radius:14px;background:var(--green-soft)}.dash-all-clear-icon{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:12px;background:var(--panel);color:var(--green)}.dash-all-clear strong{display:block;font-size:.92rem}.dash-all-clear small{color:var(--muted);font-size:.78rem}@keyframes dashGrowY{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes dashGrowX{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@media (max-width: 1180px){.dash-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.dash-kpi-desktop{display:none}.dash-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-attention{grid-column:1 / -1}}@media (max-width: 900px){.main-content{--page-l: max(14px, env(safe-area-inset-left));--page-r: max(14px, env(safe-area-inset-right))}.dash{gap:14px}.dash-hero{grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "card" "stats";gap:16px;margin:-8px calc(-1 * var(--page-r)) 0 calc(-1 * var(--page-l));padding:12px var(--page-r) 64px var(--page-l);border-radius:0 0 28px 28px;box-shadow:none}.dash-hero-card{padding:14px 14px 10px}.dash-hero-stats{padding:0 2px}.dash-kpis{position:relative;z-index:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:-50px}.dash-kpi{gap:9px;padding:13px}.dash-kpi-value{font-size:1.65rem}.dash-quick{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:14px 6px 12px;border:1px solid var(--line);border-radius:20px;background:var(--panel);box-shadow:var(--card-shadow)}.dash-quick button{display:grid;justify-items:center;gap:7px;min-width:0;padding:2px;border:0;border-radius:12px;background:transparent;color:var(--ink);font-size:.72rem;font-weight:700;line-height:1.15;text-align:center}.dash-quick button>span{display:grid;place-items:center;width:48px;height:48px;border-radius:16px;background:var(--green-soft);color:var(--green);transition:transform .12s ease,background .16s ease}.dash-quick button:active>span{transform:scale(.9);background:color-mix(in srgb,var(--green) 18%,var(--panel))}.dash-quick .material-symbols-outlined{font-size:24px;vertical-align:0}.dash-grid{grid-template-columns:minmax(0,1fr);gap:14px}}@media (max-width: 520px){.main-content{--page-l: 10px;--page-r: 10px}.dash-card{padding:16px;border-radius:18px}.dash-fees-body{grid-template-columns:116px minmax(0,1fr);gap:16px}.dash-ring{width:116px}}@media (max-width: 359px){.dash-kpi-label{white-space:normal}.dash-hero-stats dd{font-size:.9rem}}@media (prefers-reduced-motion: reduce){.dash-bar-fill,.dash-meter i,.appbar-plan-chip.warn .appbar-plan-dot{animation:none}}.list-view{display:grid;gap:14px}.summary-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.summary-pair>div{padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:var(--panel);box-shadow:var(--card-shadow)}.summary-pair span{display:block;color:var(--muted);font-size:.76rem;font-weight:700}.summary-pair strong{display:block;margin-top:4px;font-size:1.35rem;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.summary-pair strong.is-due{color:var(--red)}.list-toolbar{display:flex;gap:8px}.list-search{flex:1;display:flex;align-items:center;gap:8px;min-width:0;min-height:46px;padding:0 14px;border:1px solid var(--line);border-radius:14px;background:var(--panel);color:var(--muted);transition:border-color .16s ease,box-shadow .16s ease}.list-search:focus-within{border-color:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 14%,transparent)}.list-search .material-symbols-outlined{font-size:20px;vertical-align:0}.list-toolbar .list-search input{flex:1;min-width:0;min-height:44px;padding:0;border:0;background:transparent;box-shadow:none;font-size:.95rem}.list-filter-toggle{position:relative;flex:none;display:grid;place-items:center;width:46px;height:46px;border:1px solid var(--line);border-radius:14px;background:var(--panel);color:var(--ink)}.list-filter-toggle .material-symbols-outlined{font-size:20px;vertical-align:0}.list-filter-toggle.is-on{border-color:var(--green);background:var(--green-soft);color:var(--green)}.list-filter-toggle i{position:absolute;top:9px;right:9px;width:7px;height:7px;border-radius:50%;background:var(--green)}.list-dates{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:8px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--panel);animation:payReveal .2s ease}.list-dates label{display:grid;gap:4px;min-width:0}.list-dates label>span{color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.list-dates input{min-height:40px;padding:6px 10px;border-radius:10px}.list-dates-clear{min-height:40px;padding:0 10px;border:0;border-radius:10px;background:transparent;color:var(--green);font-weight:700}.list-dates-clear:disabled{color:var(--muted);opacity:.5;cursor:default}@keyframes payReveal{0%{opacity:0;transform:translateY(-4px)}}.chip-row{display:flex;gap:8px;overflow-x:auto;padding:2px;margin:0 -2px;scrollbar-width:none}.chip-row::-webkit-scrollbar{display:none}.filter-chip{flex:none;display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:0 8px 0 14px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--ink);font-size:.84rem;font-weight:700;transition:background .16s ease,color .16s ease,border-color .16s ease}.filter-chip span{min-width:22px;padding:1px 7px;border-radius:999px;background:var(--bg);color:var(--muted);font-size:.72rem;text-align:center}.filter-chip.active{border-color:var(--green-dark);background:var(--green-dark);color:#fff}.filter-chip.active span{background:#ffffff29;color:#fff}.contact-group{display:grid;gap:8px}.contact-group-title{display:flex;align-items:center;gap:8px;margin:6px 4px 0;color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.contact-group-title>span:not(.checkin-title){padding:1px 7px;border:1px solid var(--line);border-radius:999px;background:var(--panel);font-size:.68rem;letter-spacing:0}.contact-list{margin:0;padding:0;overflow:hidden;list-style:none;border:1px solid var(--line);border-radius:18px;background:var(--panel);box-shadow:var(--card-shadow)}.contact-list li+li{border-top:1px solid var(--line)}.contact-row{display:grid;grid-template-columns:46px minmax(0,1fr) auto 18px;align-items:center;gap:12px;width:100%;padding:12px 14px;border:0;background:transparent;color:var(--ink);font:inherit;text-align:left;transition:background .14s ease}.contact-row:hover{background:color-mix(in srgb,var(--green) 4%,var(--panel))}.contact-row:active{background:color-mix(in srgb,var(--green) 9%,var(--panel))}.contact-row:focus-visible{outline:2px solid var(--green);outline-offset:-2px}.contact-avatar{position:relative;display:block;width:46px;height:46px}.contact-avatar .member-photo,.contact-avatar .avatar-fallback{width:46px;height:46px;border-radius:50%;font-size:.95rem}.contact-row .contact-avatar:after{content:"";position:absolute;right:0;bottom:0;width:12px;height:12px;border:2px solid var(--panel);border-radius:50%;background:var(--gold)}.contact-row.is-overdue .contact-avatar:after{background:var(--red)}.contact-row.is-paid .contact-avatar:after{background:var(--green)}.contact-row.is-balance .contact-avatar:after{background:var(--blue)}.contact-copy{display:grid;gap:2px;min-width:0}.contact-copy strong{overflow:hidden;font-size:.96rem;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.contact-copy small{overflow:hidden;color:var(--muted);font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.contact-copy .contact-meta{font-size:.74rem}.contact-copy .contact-meta:empty{display:none}.contact-meta .material-symbols-outlined{margin-right:2px;font-size:14px;vertical-align:-2px}.contact-state{display:grid;justify-items:end;gap:2px;text-align:right}.contact-state strong{font-size:.92rem;font-weight:800;font-variant-numeric:tabular-nums}.contact-state small{color:var(--muted);font-size:.72rem;white-space:nowrap}.contact-row.is-overdue .contact-state strong{color:var(--red)}.contact-row.is-paid .contact-state strong{color:var(--green)}.contact-row.is-balance .contact-state strong{color:var(--blue)}.contact-go{color:var(--muted);font-size:20px;vertical-align:0}.contact-empty,.contact-more{margin:4px;color:var(--muted);font-size:.86rem;text-align:center}.contact-empty{padding:32px 16px;border:1.5px dashed var(--line);border-radius:16px}@media (max-width: 900px){.contact-list>li{content-visibility:auto;contain-intrinsic-size:auto 71px}}@media (min-width: 901px){.summary-pair{grid-template-columns:repeat(2,minmax(0,280px))}.list-toolbar,.list-dates{max-width:620px}.contact-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:10px;overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none}.contact-list li+li{border-top:0}.contact-row{border:1px solid var(--line);border-radius:16px;background:var(--panel);box-shadow:var(--card-shadow)}}dialog.sheet{width:min(94vw,460px);max-height:min(88vh,760px);overflow:hidden;border-radius:24px;background:var(--panel)}dialog.sheet[open]{animation:sheetPop .22s ease}.sheet-panel{display:flex;flex-direction:column;max-height:min(88vh,760px)}.sheet-head{position:relative;display:flex;align-items:center;justify-content:center;padding:18px 56px 12px}.sheet-head h2{margin:0;font-size:1.02rem;font-weight:800}.sheet-grabber{display:none}.sheet-close{position:absolute;top:12px;right:14px;display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:50%;background:var(--bg);color:var(--ink)}.sheet-close .material-symbols-outlined{font-size:20px;vertical-align:0}.sheet-body{flex:1;display:grid;align-content:start;gap:16px;padding:4px 18px 18px;overflow-y:auto;overscroll-behavior:contain}.sheet-member{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;border-radius:16px;background:var(--bg)}.sheet-member>div{display:grid;gap:2px;min-width:0}.sheet-member strong{overflow:hidden;font-size:.98rem;text-overflow:ellipsis;white-space:nowrap}.sheet-member small{overflow:hidden;color:var(--muted);font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.status-pill{padding:4px 10px;border-radius:999px;font-size:.72rem;font-weight:800;white-space:nowrap}.status-pill.overdue{background:var(--red-soft);color:var(--red)}.status-pill.paid{background:var(--green-soft);color:var(--green)}.status-pill.pending{background:var(--gold-soft);color:var(--gold)}.status-pill.upcoming{background:#eef2ef;color:var(--muted)}.status-pill.balance{background:var(--blue-soft);color:var(--blue)}.sheet-section{display:grid;gap:10px}.sheet-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.sheet-section-head h3{margin:0;font-size:.84rem;font-weight:800}.sheet-link{padding:4px;border:0;background:transparent;color:var(--green);font-size:.8rem;font-weight:700}.pay-periods{display:grid;gap:8px}.pay-period{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:14px;background:var(--panel);color:var(--ink);font:inherit;text-align:left;transition:border-color .16s ease,background .16s ease,transform .11s ease}.pay-period:active{transform:scale(.99)}.pay-period.is-checked{border-color:var(--green);background:color-mix(in srgb,var(--green) 6%,var(--panel))}.pay-check{display:grid;place-items:center;width:22px;height:22px;border:1.5px solid color-mix(in srgb,var(--muted) 50%,var(--panel));border-radius:7px;color:transparent;transition:background .16s ease,border-color .16s ease,color .16s ease}.pay-check .material-symbols-outlined{font-size:16px;vertical-align:0;font-variation-settings:"FILL" 0,"wght" 700,"GRAD" 0,"opsz" 20}.pay-period.is-checked .pay-check{border-color:var(--green);background:var(--green);color:#fff}.pay-period-copy{display:grid;gap:1px;min-width:0}.pay-period-copy strong{font-size:.92rem;font-weight:700}.pay-period-copy small{color:var(--muted);font-size:.74rem}.pay-period-copy small.is-due{color:var(--red);font-weight:700}.pay-period-copy small.is-part{color:var(--blue);font-weight:700}.pay-tag{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;background:var(--blue-soft);color:var(--blue);font-size:.66rem;font-style:normal;font-weight:800;letter-spacing:.02em;vertical-align:1px}.pay-owed{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0;padding:0 4px}.pay-owed span{color:var(--muted);font-size:.82rem;font-weight:700}.pay-owed strong{font-size:1.25rem;font-weight:800;font-variant-numeric:tabular-nums}.pay-owed.is-due strong{color:var(--red)}.pay-split{display:grid;grid-template-columns:1fr 1fr;gap:8px}.pay-split-option{display:grid;gap:2px;padding:12px 14px;border:1.5px solid var(--line);border-radius:14px;background:var(--panel);color:var(--ink);font:inherit;text-align:left;transition:border-color .16s ease,background .16s ease,transform .11s ease}.pay-split-option:active{transform:scale(.99)}.pay-split-option strong{font-size:.9rem;font-weight:800}.pay-split-option small{color:var(--muted);font-size:.76rem;font-variant-numeric:tabular-nums}.pay-split-option.active{border-color:var(--green);background:color-mix(in srgb,var(--green) 6%,var(--panel))}.pay-split-option.active strong{color:var(--green-dark)}.pay-amount{display:grid;gap:6px;animation:pay-reveal .18s ease}.pay-amount .affix-input input{flex:1;min-width:0;padding:12px;border:0;border-radius:0;background:transparent;box-shadow:none;font-size:1.15rem;font-weight:800;font-variant-numeric:tabular-nums}.pay-amount .affix-input input:focus{outline:none}.pay-hint{margin:0;color:var(--muted);font-size:.78rem;line-height:1.4}.pay-hint.is-error{color:var(--red);font-weight:700}@keyframes pay-reveal{0%{opacity:0;transform:translateY(-4px)}}@media (prefers-reduced-motion: reduce){.pay-amount{animation:none}}.pay-period-amount{font-weight:800;font-variant-numeric:tabular-nums}.sheet-note{display:flex;align-items:center;gap:8px;margin:0;padding:14px;border-radius:14px;background:var(--green-soft);color:var(--green);font-size:.88rem;font-weight:700}.sheet-note .material-symbols-outlined{font-size:20px;vertical-align:0}.pay-modes{display:flex;flex-wrap:wrap;gap:8px}.pay-mode{min-height:36px;padding:0 14px;border:1.5px solid var(--line);border-radius:999px;background:var(--panel);color:var(--ink);font-size:.84rem;font-weight:700;transition:background .16s ease,border-color .16s ease,color .16s ease}.pay-mode.active{border-color:var(--green-dark);background:var(--green-dark);color:#fff}.pay-summary-card{padding:14px;border-radius:16px;background:var(--bg)}.pay-summary-card h3{margin:0 0 10px;font-size:.84rem;font-weight:800}.pay-summary-card dl{display:grid;margin:0;padding:4px 14px;border-radius:12px;background:var(--panel)}.pay-summary-card dl>div{display:flex;justify-content:space-between;gap:12px;padding:9px 0;font-size:.86rem}.pay-summary-card dt{color:var(--muted)}.pay-summary-card dd{margin:0;font-weight:700;text-align:right;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.pay-summary-card .pay-summary-total{margin-top:4px;padding-top:12px;border-top:1px solid var(--line)}.pay-summary-total dt{color:var(--ink);font-weight:700}.pay-summary-total dd{font-size:1.1rem;font-weight:800}.pay-summary-card dd small{display:block;color:var(--muted);font-size:.72rem;font-weight:600}.pay-summary-card dl>div.is-skipped dt,.pay-summary-card dl>div.is-skipped dd{color:var(--muted)}.pay-summary-card .pay-summary-balance dt,.pay-summary-card .pay-summary-balance dd{color:var(--blue);font-weight:800}.pay-summary-card>.pay-hint{margin-top:10px}.sheet-history{padding:0 14px;border:1px solid var(--line);border-radius:16px}.sheet-history summary{display:flex;align-items:center;justify-content:space-between;padding:12px 0;font-size:.84rem;font-weight:800;list-style:none;cursor:pointer}.sheet-history summary::-webkit-details-marker{display:none}.sheet-history summary .material-symbols-outlined{font-size:20px;vertical-align:0;transition:transform .2s ease}.sheet-history[open] summary .material-symbols-outlined{transform:rotate(180deg)}.sheet-history ul{margin:0;padding:0 0 4px;list-style:none}.sheet-history li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.sheet-history li span{display:grid;gap:1px;min-width:0}.sheet-history li span strong{font-size:.86rem}.sheet-history li small{color:var(--muted);font-size:.74rem}.sheet-history li>strong{font-size:.9rem;font-variant-numeric:tabular-nums}.sheet-foot{padding:12px 18px calc(16px + var(--safe-bottom));border-top:1px solid var(--line);background:var(--panel)}.sheet-confirm{width:100%;min-height:52px;border:0;border-radius:999px;background:var(--green-dark);color:#fff;font-size:.98rem;font-weight:800;transition:transform .11s ease,opacity .16s ease}.sheet-confirm:disabled{opacity:.45;cursor:not-allowed}.sheet-confirm:not(:disabled):active{transform:scale(.98)}@keyframes sheetPop{0%{opacity:0;transform:translateY(12px) scale(.98)}}@keyframes sheetUp{0%{transform:translateY(100%)}}@media (max-width: 760px){dialog.sheet{width:100%;max-width:100%;min-height:0;max-height:92dvh;margin:auto 0 0;border-radius:24px 24px 0 0}dialog.sheet[open]{animation:sheetUp .32s cubic-bezier(.22,.61,.36,1)}.sheet-panel{max-height:92dvh}.sheet-grabber{position:absolute;top:7px;left:50%;display:block;width:38px;height:4px;border-radius:4px;background:var(--line);transform:translate(-50%)}.sheet-head{padding-top:22px}}@media (prefers-reduced-motion: reduce){dialog.sheet[open],.list-dates{animation:none}}.member-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;padding-right:12px}.member-item .contact-row{grid-template-columns:46px minmax(0,1fr) auto;padding-right:10px}.member-remind{display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:50%;background:color-mix(in srgb,#25d366 16%,var(--panel));color:#128c4a;transition:transform .11s ease,background .16s ease}.member-remind:hover{background:color-mix(in srgb,#25d366 26%,var(--panel))}.member-remind:active{transform:scale(.9)}.member-remind:focus-visible{outline:2px solid var(--green);outline-offset:2px}.member-remind .material-symbols-outlined{font-size:19px;vertical-align:0}.member-go{justify-self:center;width:38px;text-align:center}.contact-copy strong{display:flex;align-items:center;gap:6px;min-width:0}.contact-tag{flex:none;padding:1px 7px;border-radius:999px;background:var(--blue-soft);color:var(--blue);font-size:.66rem;font-style:normal;font-weight:800;letter-spacing:.02em}.contact-state .status-pill{font-size:.7rem}@media (min-width: 901px){.member-item{border:1px solid var(--line);border-radius:16px;background:var(--panel);box-shadow:var(--card-shadow)}.member-item .contact-row{border:0;border-radius:16px 0 0 16px;background:transparent;box-shadow:none}}.detail-actions{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}@media (min-width: 761px){dialog.member-sheet{width:min(94vw,520px)}}.sheet-actions{display:grid;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:6px}.sheet-actions button{display:grid;justify-items:center;gap:6px;min-width:0;padding:2px 0;border:0;background:transparent;color:var(--ink);font-size:.74rem;font-weight:700}.sheet-actions button>span{display:grid;place-items:center;width:48px;height:48px;border-radius:16px;background:var(--green-soft);color:var(--green);transition:transform .11s ease,background .16s ease}.sheet-actions button:hover>span{background:color-mix(in srgb,var(--green) 18%,var(--panel))}.sheet-actions button:active>span{transform:scale(.92)}.sheet-actions button:focus-visible{outline:2px solid var(--green);outline-offset:2px;border-radius:12px}.sheet-actions button.is-primary>span{background:var(--green-dark);color:#fff}.sheet-actions .material-symbols-outlined{font-size:22px;vertical-align:0}.member-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}.member-stats>div{padding:12px 14px;border:1px solid var(--line);border-radius:14px}.member-stats dt{color:var(--muted);font-size:.74rem;font-weight:700}.member-stats dd{margin:4px 0 0;font-size:1rem;font-weight:800;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.member-stats dd small{display:block;color:var(--muted);font-size:.72rem;font-weight:600}.member-stats .is-due dd{color:var(--red)}.member-stats .is-balance dd{color:var(--blue)}.member-facts{display:grid;gap:8px;margin:0;padding:0;color:var(--muted);font-size:.86rem;list-style:none}.member-facts li{display:flex;align-items:flex-start;gap:8px}.member-facts .material-symbols-outlined{flex:none;font-size:18px;vertical-align:0}.member-calendar-hint{color:var(--muted);font-size:.74rem}.member-sheet .calendar-grid{gap:6px}.member-sheet .day-cell{aspect-ratio:auto;min-height:0;height:40px;border-radius:10px;font-size:.84rem;font-weight:700;box-shadow:none}.member-empty{margin:0 0 12px;color:var(--muted);font-size:.84rem}.list-search input[type=search]{background-image:none}.sheet-close:focus-visible{outline:2px solid var(--green);outline-offset:2px}.summary-pair small{display:block;margin-top:2px;color:var(--muted);font-size:.74rem}.day-bar{display:grid;grid-template-columns:46px minmax(0,1fr) 46px;align-items:center;gap:8px}.day-step{display:grid;place-items:center;width:46px;height:46px;border:1px solid var(--line);border-radius:14px;background:var(--panel);color:var(--ink);transition:transform .11s ease,background .16s ease}.day-step:active{transform:scale(.92);background:var(--green-soft)}.day-step .material-symbols-outlined{font-size:22px;vertical-align:0}.day-pick{position:relative;display:grid;justify-items:center;gap:1px;min-width:0;padding:7px 8px;border:1px solid var(--line);border-radius:14px;background:var(--panel);cursor:pointer}.day-pick:focus-within{border-color:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 14%,transparent)}.day-pick strong{font-size:.98rem;font-weight:800}.day-pick small{color:var(--muted);font-size:.76rem}.day-pick input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;min-height:0;height:100%;padding:0;border:0;opacity:0;cursor:pointer}.day-today{grid-column:1 / -1;justify-self:center;padding:5px 14px;border:0;border-radius:999px;background:var(--green-soft);color:var(--green);font-size:.78rem;font-weight:800}.list-note{display:flex;align-items:flex-start;gap:10px;margin:0;padding:12px 14px;border-radius:14px;background:var(--gold-soft);color:var(--gold);font-size:.82rem;line-height:1.4}.list-note .material-symbols-outlined{flex:none;font-size:20px;vertical-align:0}.contact-row.is-static{grid-template-columns:46px minmax(0,1fr) auto;cursor:default}.contact-row.is-static:hover,.contact-row.is-static:active{background:transparent}.contact-row.no-dot .contact-avatar:after{display:none}.contact-tag.warn{background:var(--gold-soft);color:var(--gold)}.contact-tag.package{background:transparent;color:var(--green);box-shadow:inset 0 0 0 1px currentColor}@media (min-width: 901px){.contact-row.is-static,.contact-row.is-static:hover,.contact-row.is-static:active{background:var(--panel)}}.att-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:38px;padding:0 16px;border:0;border-radius:999px;background:var(--green-dark);color:#fff;font-size:.84rem;font-weight:800;white-space:nowrap;transition:transform .11s ease,background .16s ease}.att-btn:active{transform:scale(.94)}.att-btn:focus-visible{outline:2px solid var(--green);outline-offset:2px}.att-btn .material-symbols-outlined{font-size:18px;vertical-align:0;font-variation-settings:"FILL" 0,"wght" 700,"GRAD" 0,"opsz" 20}.att-btn.in{padding:0 14px 0 10px;background:var(--green-soft);color:var(--green)}.att-btn.danger{background:var(--red)}.att-btn.icon{width:38px;padding:0;background:var(--bg);color:var(--ink)}.att-confirm{display:inline-flex;align-items:center;gap:6px}.att-meter{display:block;width:56px;height:4px;overflow:hidden;border-radius:99px;background:var(--line)}.att-meter i{display:block;height:100%;border-radius:inherit;background:var(--green)}.contact-state>.att-meter{margin-top:2px}.contact-row .contact-state>strong{font-size:.95rem}.att-legend{display:flex;gap:10px;color:var(--muted);font-size:.72rem;font-weight:600}.att-legend span{display:inline-flex;align-items:center;gap:5px}.att-legend span:before{content:"";width:9px;height:9px;border-radius:3px;background:var(--line)}.att-legend .present:before{background:var(--green)}.att-legend .absent:before{background:color-mix(in srgb,var(--red) 28%,var(--panel))}.att-legend .holiday:before{background:repeating-linear-gradient(135deg,var(--line) 0 2px,var(--panel) 2px 4px);border:1px solid var(--line)}.att-dots{display:flex;flex-wrap:wrap;gap:4px}.att-dot{width:16px;height:16px;border-radius:5px;background:color-mix(in srgb,var(--red) 22%,var(--panel))}.att-dot.present{background:var(--green)}.att-dot.expired{background:var(--amber, #f0b323)}.att-dot.holiday{background:repeating-linear-gradient(135deg,var(--line) 0 2px,var(--panel) 2px 4px);box-shadow:inset 0 0 0 1px var(--line)}.att-days{margin:4px 0 0;padding:0;list-style:none;border:1px solid var(--line);border-radius:16px}.att-days li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px}.att-days li+li{border-top:1px solid var(--line)}.att-days li>span:first-child{display:grid;gap:1px}.att-days strong{font-size:.88rem}.att-days small{color:var(--muted);font-size:.74rem}.status-pill.present{background:var(--green-soft);color:var(--green)}.status-pill.absent{background:var(--red-soft);color:var(--red)}.status-pill.holiday{background:var(--blue-soft);color:var(--blue)}.status-pill.expired{background:var(--gold-soft);color:var(--gold)}.status-pill.neutral{background:var(--bg);color:var(--ink)}@media (min-width: 901px){.day-bar{max-width:460px}}.contact-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width: 761px){dialog.member-form-sheet{width:min(94vw,580px)}}.member-form-sheet .sheet-body{gap:22px}.mf-photo{display:grid;grid-template-columns:76px minmax(0,1fr);align-items:center;gap:14px;padding:12px;border-radius:18px;background:var(--bg)}.mf-photo strong{display:block;font-size:.95rem}.mf-photo small{display:block;margin-top:2px;color:var(--muted);font-size:.78rem;line-height:1.35}.mf-avatar{position:relative;display:grid;place-items:center;width:76px;height:76px;border-radius:50%;background:var(--green-soft);color:var(--green);cursor:pointer}.mf-avatar #photoPreview{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border-radius:50%;object-fit:cover}.mf-avatar-empty{font-size:38px;vertical-align:0;font-variation-settings:"FILL" 1,"wght" 400,"GRAD" 0,"opsz" 40}.mf-avatar-badge{position:absolute;right:-2px;bottom:-2px;display:grid;place-items:center;width:28px;height:28px;border:3px solid var(--bg);border-radius:50%;background:var(--green-dark);color:#fff}.mf-avatar-badge .material-symbols-outlined{font-size:15px;vertical-align:0}.mf-avatar input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.mf-avatar:focus-within{outline:2px solid var(--green);outline-offset:3px}.mf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px}.mf-grid .wide{grid-column:1 / -1}.mf-field{display:grid;align-content:start;gap:6px;min-width:0;color:var(--muted);font-size:.8rem;font-weight:700}.mf-label{color:var(--muted);font-size:.8rem;font-weight:700}.mf-label-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.mf-label-row em{color:var(--muted);font-size:.7rem;font-style:normal;font-weight:600;opacity:.8}.member-form-sheet input:not([type=radio]):not([type=file]),.member-form-sheet select,.member-form-sheet textarea{border-radius:12px;color:var(--ink);font-weight:600}.member-form-sheet textarea{min-height:0;resize:none}.member-form-sheet .phone-input{border-radius:12px}.member-form-sheet .phone-input input{border-radius:0}.affix-input{display:flex;align-items:stretch;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.affix-input .affix{display:grid;place-items:center;padding:0 12px;background:var(--bg);color:var(--muted);font-size:.9rem;font-weight:800}.affix-input .affix:first-child{border-right:1px solid var(--line)}.affix-input .affix:last-child{border-left:1px solid var(--line);font-size:.78rem}.member-form-sheet .affix-input input{min-width:0;border:0;border-radius:0;background:transparent;box-shadow:none}.affix-input:focus-within{border-color:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 14%,transparent)}.affix-input.has-error{border-color:var(--red)}.segmented{display:grid;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:4px;padding:4px;border-radius:14px;background:var(--bg);border:1px solid var(--line, rgba(16, 31, 24, .14))}.segmented label{position:relative;display:block;cursor:pointer}.segmented input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.segmented span{display:grid;place-items:center;min-height:40px;padding:0 10px;border-radius:11px;color:var(--muted);font-size:.86rem;font-weight:800;text-align:center;transition:background .16s ease,color .16s ease,box-shadow .16s ease}.segmented input:checked+span{background:var(--panel);color:var(--ink);box-shadow:0 1px 3px #101f181f;outline:1px solid var(--green);outline-offset:-1px}.segmented input:focus-visible+span{outline:2px solid var(--green);outline-offset:1px}.mf-months{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.mf-months-custom{flex:1 1 140px;max-width:200px}.mf-months-custom input{min-height:36px;padding:6px 10px}.mf-locked{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:10px;padding:10px 12px;border:1px dashed var(--line);border-radius:12px;background:var(--bg)}.mf-locked>.material-symbols-outlined{color:var(--muted);font-size:18px;vertical-align:0}.mf-locked span{display:grid;gap:1px}.mf-locked strong{color:var(--ink);font-size:.92rem;font-weight:800}.mf-locked small{color:var(--muted);font-size:.74rem;font-weight:600}.member-form-sheet input[readonly]{background:var(--bg);color:var(--muted);cursor:not-allowed}.mf-foot{display:flex;gap:10px}.mf-foot .sheet-confirm{flex:1}.mf-delete{flex:none;display:grid;place-items:center;width:52px;height:52px;border:1px solid color-mix(in srgb,var(--red) 30%,var(--line));border-radius:50%;background:var(--red-soft);color:var(--red)}.mf-delete .material-symbols-outlined{font-size:22px;vertical-align:0}.mf-delete.is-busy:before{margin-right:0}@media (max-width: 520px){.mf-grid{grid-template-columns:minmax(0,1fr)}}.wa-icon{display:block;flex:none}.member-remind{background:color-mix(in srgb,#25d366 14%,var(--panel));color:#1da851}.sheet-actions button.is-whatsapp>span{background:color-mix(in srgb,#25d366 16%,var(--panel));color:#1da851}.sheet-actions button.is-whatsapp:hover>span{background:color-mix(in srgb,#25d366 26%,var(--panel))}.member-form-sheet input::placeholder,.member-form-sheet textarea::placeholder{color:color-mix(in srgb,var(--muted) 75%,var(--panel));font-weight:500}.mf-avatar img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border-radius:50%;object-fit:cover}.toolbar-add{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:46px;padding:0 18px 0 14px;border:0;border-radius:14px;background:var(--green-dark);color:#fff;font-size:.9rem;font-weight:800;white-space:nowrap;transition:transform .11s ease}.toolbar-add:active{transform:scale(.96)}.toolbar-add:focus-visible{outline:2px solid var(--green);outline-offset:2px}.toolbar-add .material-symbols-outlined{font-size:20px;vertical-align:0}.list-toolbar .toolbar-add:first-child{flex:1;justify-content:center}.money-card{display:grid;gap:4px;padding:18px;border:1px solid var(--line);border-radius:20px;background:var(--panel);box-shadow:var(--card-shadow)}.money-card-label{color:var(--muted);font-size:.78rem;font-weight:700}.money-card>strong{font-size:2rem;font-weight:800;letter-spacing:-.03em;line-height:1.1;font-variant-numeric:tabular-nums}.money-card>strong.is-negative{color:var(--red)}.money-card-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.money-card-split>div{display:flex;align-items:center;gap:10px;min-width:0;padding:12px;border-radius:14px;background:var(--bg)}.money-card-split small{display:block;color:var(--muted);font-size:.72rem;font-weight:600}.money-card-split b{display:block;font-size:1.02rem;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.money-card-ico{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:11px}.money-card-ico .material-symbols-outlined{font-size:19px;vertical-align:0}.is-in .money-card-ico{background:var(--green-soft);color:var(--green)}.is-out .money-card-ico{background:var(--red-soft);color:var(--red)}.money-card-due{display:flex;align-items:center;gap:10px;margin-top:10px;padding:11px 12px;border:0;border-radius:14px;background:var(--gold-soft);color:var(--gold);font:inherit;font-size:.84rem;text-align:left}.money-card-due-text{flex:1}.money-card-due .material-symbols-outlined{font-size:19px;vertical-align:0}.ledger-filters{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.ledger-filters-category{grid-column:1 / -1}.ledger-filters select{min-height:40px;padding:6px 10px;border-radius:10px}.ledger-filters .list-dates-clear{grid-column:1 / -1;justify-self:end}.ledger-days{display:grid;gap:14px}.ledger-day-title{justify-content:space-between}.ledger-day-title em{font-style:normal;letter-spacing:0;font-variant-numeric:tabular-nums}.ledger-day-title em.is-in{color:var(--green)}.ledger-day-title em.is-out{color:var(--red)}.contact-row.ledger-entry{grid-template-columns:42px minmax(0,1fr) auto}.ledger-tile{display:grid;place-items:center;width:42px;height:42px;border-radius:13px}.ledger-tile .material-symbols-outlined{font-size:21px;vertical-align:0}.ledger-entry.is-in .ledger-tile{background:var(--green-soft);color:var(--green)}.ledger-entry.is-out .ledger-tile{background:var(--red-soft);color:var(--red)}.ledger-entry .ledger-amount{font-size:.95rem;font-weight:800;white-space:nowrap}.ledger-entry.is-in .ledger-amount{color:var(--green)}.ledger-entry.is-out .ledger-amount{color:var(--ink)}.amount-hero{display:grid;justify-items:center;gap:6px;padding:18px 12px;border-radius:18px;background:var(--bg);color:var(--muted);font-size:.8rem;font-weight:700}.amount-hero-field{display:flex;align-items:center;justify-content:center;gap:4px}.amount-hero-field b{color:var(--ink);font-size:2rem;font-weight:800}.member-form-sheet .amount-hero input{width:7ch;min-height:0;padding:0;border:0;border-bottom:2px solid var(--line);border-radius:0;background:transparent;box-shadow:none;color:var(--ink);font-size:2.2rem;font-weight:800;text-align:center;font-variant-numeric:tabular-nums}.member-form-sheet .amount-hero input:focus{border-bottom-color:var(--green);box-shadow:none}.amount-hero.has-error input{border-bottom-color:var(--red)!important}.category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}.category-tile{display:grid;justify-items:center;gap:6px;padding:12px 6px;border:1.5px solid var(--line);border-radius:14px;background:var(--panel);color:var(--ink);font-size:.76rem;font-weight:700;line-height:1.2;text-align:center;transition:border-color .16s ease,background .16s ease,transform .11s ease}.category-tile:active{transform:scale(.96)}.category-tile .material-symbols-outlined{font-size:22px;vertical-align:0;color:var(--muted)}.category-tile.active{border-color:var(--green);background:color-mix(in srgb,var(--green) 7%,var(--panel))}.category-tile.active .material-symbols-outlined{color:var(--green)}.contact-row.is-inactive .contact-avatar:after{background:color-mix(in srgb,var(--muted) 45%,var(--panel))}.contact-row.is-inactive .contact-copy strong{color:var(--muted)}.contact-tag.muted{background:var(--bg);color:var(--muted)}.contact-row .contact-state>small{color:var(--muted);font-size:.72rem}.mf-months+input{margin-top:4px}@media (min-width: 901px){.money-card{max-width:620px}.list-view>.segmented{max-width:360px}}@media (max-width: 359px){.toolbar-add-text{display:none}.toolbar-add{padding:0 14px}}.list-search #trainerSearch,.list-search #searchInput{padding-left:0;background-image:none}@media (min-width: 901px){.ledger-days{max-width:620px}.ledger-days .contact-list{grid-template-columns:minmax(0,1fr)}}.insights-view .list-toolbar .segmented{flex:1}.day-pick select{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;min-height:0;height:100%;padding:0;border:0;opacity:0;cursor:pointer}.money-card-foot{margin-top:8px;color:var(--muted);font-size:.76rem}.insight-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}.insight-card-total{font-size:1.1rem;font-weight:800;font-variant-numeric:tabular-nums}.insight-card-total.is-in{color:var(--green)}.insight-card-total.is-out{color:var(--red)}.split-list{display:grid;gap:14px;margin:0;padding:0;list-style:none}.split-row{display:grid;grid-template-columns:36px minmax(0,1fr);align-items:start;gap:12px}.split-ico{display:grid;place-items:center;width:36px;height:36px;border-radius:11px}.split-ico .material-symbols-outlined{font-size:19px;vertical-align:0}.split-row.is-in .split-ico{background:var(--green-soft);color:var(--green)}.split-row.is-out .split-ico{background:var(--red-soft);color:var(--red)}.split-body{display:grid;gap:5px;min-width:0}.split-head{display:flex;justify-content:space-between;gap:10px;font-size:.88rem}.split-head span{overflow:hidden;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.split-head strong{font-variant-numeric:tabular-nums}.split-bar{height:6px;overflow:hidden;border-radius:99px;background:var(--bg)}.split-bar span{display:block;height:100%;border-radius:inherit}.split-row.is-in .split-bar span{background:var(--green)}.split-row.is-out .split-bar span{background:var(--red)}.split-body small{color:var(--muted);font-size:.72rem}.insight-subhead{margin:20px 0 8px!important}.insight-top{display:grid;gap:2px;margin:0;padding:0;list-style:none}.insight-top button{display:grid;grid-template-columns:18px 38px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;padding:8px 4px;border:0;border-radius:12px;background:transparent;color:var(--ink);font:inherit;text-align:left}.insight-top button:hover{background:var(--bg)}.insight-top .contact-avatar,.insight-top .contact-avatar .member-photo,.insight-top .contact-avatar .avatar-fallback{width:38px;height:38px;font-size:.8rem}.insight-top .contact-avatar:after{display:none}.insight-rank{color:var(--muted);font-size:.8rem;font-weight:800;text-align:center}.insight-top-amount{color:var(--green);font-variant-numeric:tabular-nums}.contact-row.insight-day{grid-template-columns:46px minmax(0,1fr) auto 18px}.date-tile{display:grid;place-items:center;align-content:center;width:46px;height:46px;border-radius:13px;background:var(--bg);line-height:1}.date-tile b{font-size:1.05rem}.date-tile small{margin-top:2px;color:var(--muted);font-size:.62rem;font-weight:700;text-transform:uppercase}.insight-day .contact-state strong.is-in{color:var(--green)}.insight-day .contact-state strong.is-out{color:var(--red)}.checkin-pill{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.checkin-pill>div{flex:1;min-width:0}.checkin-pill strong{display:block;font-size:.88rem}.checkin-pill small{display:block;color:var(--muted);font-size:.76rem}.checkin-pill-dot{flex:none;width:10px;height:10px;border-radius:50%;background:var(--gold)}.checkin-pill.is-online .checkin-pill-dot{background:var(--green);box-shadow:0 0 color-mix(in srgb,var(--green) 50%,transparent);animation:livePulse 2s ease-out infinite}.checkin-pill.is-offline{border-color:color-mix(in srgb,var(--red) 35%,var(--line));background:var(--red-soft)}.checkin-pill.is-offline .checkin-pill-dot{background:var(--red)}.checkin-pill-retry{padding:6px 14px;border:0;border-radius:999px;background:var(--ink);color:#fff;font-size:.8rem;font-weight:800}@keyframes livePulse{70%{box-shadow:0 0 0 7px transparent}to{box-shadow:0 0 0 0 transparent}}.checkin-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}.qr-card{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;padding:18px;border-radius:22px;background:linear-gradient(180deg,var(--green-dark),var(--green-deep));color:#fff}.qr-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.qr-card-head span{display:block;color:#ffffffad;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.qr-card-head strong{display:block;margin:2px 0;font-size:2.2rem;font-weight:800;letter-spacing:.22em;line-height:1.1;font-variant-numeric:tabular-nums}.qr-card-head small{color:#ffffffad;font-size:.78rem}.qr-card-present{flex:none;display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:0;border-radius:999px;background:var(--lime);color:var(--green-deep);font-size:.8rem;font-weight:800}.qr-card-present:disabled{opacity:.5}.qr-card-present .material-symbols-outlined{font-size:18px;vertical-align:0}.qr-card-code{display:grid;place-items:center;aspect-ratio:1;width:min(100%,300px);margin:0 auto;padding:16px;border-radius:18px;background:#fff}.qr-card-code img{display:block;width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.qr-card-wait{color:var(--muted);font-size:.85rem}.qr-card-hint{margin:0;color:#ffffffb8;font-size:.8rem;text-align:center}.qr-card-url{display:flex;align-items:center;gap:8px;padding:6px 6px 6px 14px;border-radius:14px;background:#ffffff1a}.qr-card-url>span{flex:1;min-width:0;overflow:hidden;color:#ffffffd9;font-family:ui-monospace,monospace;font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.qr-card-url button{display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:10px;background:#ffffff24;color:#fff}.qr-card-url .material-symbols-outlined{font-size:18px;vertical-align:0}.checkin-count{margin-left:6px;padding:1px 7px;border:1px solid var(--line);border-radius:999px;background:var(--panel);font-size:.68rem;letter-spacing:0}.checkin-refresh{display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--line);border-radius:50%;background:var(--panel);color:var(--ink)}.checkin-refresh .material-symbols-outlined{font-size:18px;vertical-align:0}.checkin-time{color:var(--muted);font-size:.8rem;font-weight:700;white-space:nowrap}.checkin-feed-group li.is-new .contact-row{animation:feedNew 1.6s ease-out}@keyframes feedNew{0%{background:color-mix(in srgb,var(--lime) 40%,var(--panel))}}dialog.qr-present{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:0;border-radius:0;background:var(--green-deep);color:#fff}.qr-present-panel{position:relative;display:grid;place-content:center;justify-items:center;gap:10px;min-height:100dvh;padding:24px;text-align:center}.qr-present-panel p{margin:0 0 8px;font-size:1.4rem;font-weight:800}.qr-present-code{width:min(78vw,62vh,520px);aspect-ratio:1;padding:22px;border-radius:26px;background:#fff}.qr-present-code img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.qr-present-panel>span{margin-top:12px;color:#ffffffb3;font-size:.85rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.qr-present-panel strong{font-size:clamp(2.6rem,9vw,4.5rem);font-weight:800;letter-spacing:.25em;line-height:1}.qr-present-panel small{color:#ffffffb3}.qr-present-close{position:absolute;top:16px;right:16px;display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:#ffffff24;color:#fff}.list-note.is-info{background:var(--blue-soft);color:color-mix(in srgb,var(--blue) 80%,var(--ink))}.notify-owed{color:var(--red);font-variant-numeric:tabular-nums}.notify-send{display:inline-flex;align-items:center;justify-content:center;gap:8px}.notify-send .material-symbols-outlined{font-size:20px;vertical-align:0}.notify-form{display:grid;gap:14px}.notify-form .dash-card input,.notify-form .dash-card textarea{border-radius:12px}.notify-form .dash-card textarea{resize:none}.notify-form .segmented span{font-size:.8rem}.contact-row.notify-pick{grid-template-columns:46px minmax(0,1fr) 22px}.notify-pick.is-checked .pay-check{border-color:var(--green);background:var(--green);color:#fff}.notify-preview{display:grid;gap:8px}.notify-bubble{display:grid;grid-template-columns:40px minmax(0,1fr);gap:12px;padding:14px;border-radius:20px;background:color-mix(in srgb,var(--ink) 6%,var(--panel));box-shadow:0 6px 20px #101f1814}.notify-bubble-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:var(--green-dark);color:#fff;font-size:.8rem;font-weight:800}.notify-bubble small{color:var(--muted);font-size:.72rem}.notify-bubble strong{display:block;margin-top:2px;font-size:.92rem;overflow-wrap:anywhere}.notify-bubble p{margin:2px 0 0;color:var(--ink);font-size:.86rem;line-height:1.4;overflow-wrap:anywhere}.notify-foot{margin:-4px 0 0;color:var(--muted);font-size:.76rem;text-align:center}.notify-result-icon{color:var(--green);font-size:26px;vertical-align:0}.notify-off code{font-size:.8em;overflow-wrap:anywhere}@media (min-width: 901px){.insights-view>.list-toolbar,.insights-view>.day-bar,.insights-view>.list-dates{max-width:620px}.checkin-layout{grid-template-columns:minmax(300px,400px) minmax(0,1fr);align-items:start}.checkin-feed-group .contact-list{grid-template-columns:minmax(0,1fr)}.notify-view{max-width:680px}.notify-view .contact-list{grid-template-columns:minmax(0,1fr)}}@media (max-width: 760px){.insight-grid{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion: reduce){.checkin-pill.is-online .checkin-pill-dot,.checkin-feed-group li.is-new .contact-row{animation:none}}.contact-group-title .checkin-title{display:inline-flex;align-items:center}.split-head span{color:var(--ink)}.notify-picker .contact-list{max-height:360px;overflow-y:auto;overscroll-behavior:contain}.plan-current{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--bg)}.plan-current>div{display:grid;gap:2px;min-width:0}.plan-current strong{color:var(--ink);font-size:.95rem;font-weight:800;overflow-wrap:anywhere}.plan-current small{color:var(--muted);font-size:.76rem;font-weight:600}.plan-current-ico{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--green-soft);color:var(--green)}.plan-current-ico .material-symbols-outlined{font-size:21px;vertical-align:0}.plan-change-btn{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border:0;border-radius:12px;background:var(--green-dark);color:#fff;font-size:.82rem;font-weight:800;white-space:nowrap;transition:transform .14s ease,background .16s ease}.plan-change-btn .material-symbols-outlined{font-size:18px;vertical-align:0}.plan-change-btn:hover{background:var(--green)}.plan-change-btn:active{transform:scale(.96)}.plan-change-btn:focus-visible{outline:2px solid var(--green);outline-offset:2px}@media (max-width: 420px){.plan-current{grid-template-columns:40px minmax(0,1fr)}.plan-change-btn{grid-column:1 / -1;justify-content:center}}@media (min-width: 761px){dialog.cp-sheet{width:min(94vw,520px)}}.cp-progress{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px;padding:0 18px 12px}.cp-progress span{height:4px;border-radius:4px;background:var(--line);transition:background .22s ease}.cp-progress span.is-on{background:var(--green)}.cp-sr{position:absolute;width:1px;height:1px;margin:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.cp-body{padding-top:6px}.cp-step{display:grid;gap:18px;animation:cpIn .22s ease}.cp-section{display:grid;gap:10px}.cp-step>*+.cp-section{padding-top:18px;border-top:1px solid var(--line)}.cp-label{display:flex;align-items:center;gap:6px;margin:0;color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.cp-label .material-symbols-outlined{font-size:16px;vertical-align:0}.cp-question{display:flex;align-items:center;gap:8px;margin:0;color:var(--ink);font-size:.95rem;font-weight:800}.cp-question .material-symbols-outlined{color:var(--green);font-size:20px;vertical-align:0}.cp-label-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.cp-aside{color:var(--muted);font-size:.78rem;font-weight:700;font-variant-numeric:tabular-nums}.cp-chips{display:flex;flex-wrap:wrap;gap:8px}.cp-chip{display:inline-flex;align-items:center;gap:6px;min-height:42px;padding:0 16px;border:1.5px solid var(--line);border-radius:999px;background:var(--panel);color:var(--ink);font-size:.88rem;font-weight:700;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .11s ease}.cp-chip:hover{border-color:color-mix(in srgb,var(--green) 45%,var(--line))}.cp-chip:active{transform:scale(.97)}.cp-chip.is-active{border-color:var(--green-dark);background:var(--green-dark);color:#fff}.cp-chip:focus-visible{outline:2px solid var(--green);outline-offset:2px}.cp-now{padding:2px 6px;border-radius:999px;background:var(--green-soft);color:var(--green);font-size:.62rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.cp-chip.is-active .cp-now{background:#ffffff2e;color:#fff}.cp-stepper{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:8px;max-width:280px;animation:cpReveal .18s ease}.cp-stepper>button{display:grid;place-items:center;width:44px;height:44px;border:1.5px solid var(--line);border-radius:50%;background:var(--panel);color:var(--ink)}.cp-stepper>button:disabled{opacity:.4;cursor:default}.cp-stepper>button .material-symbols-outlined{font-size:20px;vertical-align:0}.cp-stepper label{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 12px;border:1.5px solid var(--line);border-radius:14px;background:var(--panel);color:var(--muted);font-size:.82rem;font-weight:700}.cp-stepper label:focus-within{border-color:var(--green)}.cp-stepper.has-error label{border-color:var(--red)}.cp-stepper input{width:4ch;min-height:0;padding:8px 0;border:0;border-radius:0;background:transparent;box-shadow:none;color:var(--ink);font-size:1.1rem;font-weight:800;text-align:center}.cp-fee{display:flex;align-items:center;gap:6px;padding:0 16px;border:1.5px solid var(--line);border-radius:16px;background:var(--panel);transition:border-color .16s ease,box-shadow .16s ease}.cp-fee:focus-within{border-color:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 14%,transparent)}.cp-fee.has-error{border-color:var(--red)}.cp-fee>span{color:var(--muted);font-size:1.35rem;font-weight:800}.cp-fee input{flex:1;min-width:0;min-height:58px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;color:var(--ink);font-size:1.6rem;font-weight:800;font-variant-numeric:tabular-nums}.cp-fee input::placeholder{color:color-mix(in srgb,var(--muted) 55%,var(--panel))}.cp-fee input:focus,.cp-stepper input:focus{box-shadow:none}.cp-fee input,.cp-stepper input{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.cp-fee input::-webkit-inner-spin-button,.cp-fee input::-webkit-outer-spin-button,.cp-stepper input::-webkit-inner-spin-button,.cp-stepper input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.cp-opts{display:grid;gap:8px}.cp-opt{position:relative;display:grid;grid-template-columns:36px minmax(0,1fr) 22px;align-items:center;gap:12px;padding:12px 14px;border:1.5px solid var(--line);border-radius:16px;background:var(--panel);cursor:pointer;transition:border-color .16s ease,background .16s ease,transform .11s ease}.cp-opt:active{transform:scale(.99)}.cp-opt:has(input:focus-visible){outline:2px solid var(--green);outline-offset:2px}.cp-opt input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;min-height:0;margin:0;padding:0;border:0;opacity:0;cursor:pointer}.cp-opt strong{font-size:.9rem;font-weight:700;line-height:1.3}.cp-opt-ico{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:var(--bg);color:var(--muted);transition:background .16s ease,color .16s ease}.cp-opt-ico .material-symbols-outlined{font-size:20px;vertical-align:0}.cp-opt-dot{width:20px;height:20px;border:2px solid color-mix(in srgb,var(--muted) 45%,var(--panel));border-radius:50%;background:var(--panel);transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}.cp-opt.is-on{border-color:var(--green);background:color-mix(in srgb,var(--green) 7%,var(--panel))}.cp-opt.is-on .cp-opt-ico{background:var(--green-soft);color:var(--green)}.cp-opts.has-error .cp-opt,.pay-modes.has-error .pay-mode{border-color:var(--red)}.cp-opt.is-on .cp-opt-dot{border-color:var(--green-dark);background:var(--green-dark);box-shadow:inset 0 0 0 3px var(--panel)}.cp-summary{display:grid;gap:12px;padding:12px;border-radius:18px;background:var(--bg)}.cp-summary-head{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px}.cp-summary-head .contact-avatar,.cp-summary-head .contact-avatar .member-photo,.cp-summary-head .contact-avatar .avatar-fallback{width:34px;height:34px;font-size:.76rem}.cp-summary-head strong{overflow:hidden;font-size:.92rem;text-overflow:ellipsis;white-space:nowrap}.cp-edit{display:inline-flex;align-items:center;gap:4px;min-height:32px;padding:0 12px;border:0;border-radius:999px;background:var(--panel);color:var(--green);font-size:.8rem;font-weight:800}.cp-edit .material-symbols-outlined{font-size:16px;vertical-align:0}.cp-edit:focus-visible{outline:2px solid var(--green);outline-offset:2px}.cp-shift{display:grid;grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr);align-items:center;gap:8px;padding:12px;border-radius:14px;background:var(--panel)}.cp-shift-side{display:grid;gap:2px;min-width:0}.cp-shift-side small{color:var(--muted);font-size:.66rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.cp-shift-side.is-new small{color:var(--green)}.cp-shift-side strong{font-size:.92rem;font-weight:800;overflow-wrap:anywhere}.cp-shift-side>span{color:var(--muted);font-size:.78rem;font-weight:600;overflow-wrap:anywhere}.cp-shift-side em{font-style:normal}.cp-shift-side.is-old strong,.cp-shift-side strong.is-same{color:var(--muted);font-weight:700}.cp-shift-side em.is-changed{color:var(--ink);font-weight:800}.cp-shift-arrow{color:var(--green);font-size:20px;vertical-align:0}.cp-dates{display:grid;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:8px}.cp-date{display:grid;align-content:center;gap:2px;min-height:64px;padding:10px 12px;border:1.5px solid var(--line);border-radius:16px;background:var(--panel);color:var(--ink);text-align:left;transition:border-color .16s ease,background .16s ease,transform .11s ease}.cp-date small{color:var(--muted);font-size:.72rem;font-weight:700}.cp-date strong{font-size:.98rem;font-weight:800;line-height:1.2;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.cp-date .material-symbols-outlined{color:var(--muted);font-size:20px;vertical-align:0}.cp-date:active{transform:scale(.98)}.cp-date:focus-visible{outline:2px solid var(--green);outline-offset:2px}.cp-date.is-active{border-color:var(--green);background:color-mix(in srgb,var(--green) 7%,var(--panel))}.cp-date.is-active small,.cp-date.is-active .material-symbols-outlined{color:var(--green)}.cp-other{display:flex;flex-wrap:wrap;align-items:center;gap:8px;animation:cpReveal .18s ease}.cp-other input[type=date]{flex:1 1 170px;width:auto;min-height:46px;border-radius:12px;font-weight:700}.cp-quick{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border:1.5px dashed var(--line);border-radius:999px;background:transparent;color:var(--ink);font-size:.8rem;font-weight:700}.cp-quick:hover{border-color:var(--green);color:var(--green)}.cp-bill{display:grid;padding:0 14px;border-radius:18px;background:var(--bg)}.cp-line{display:grid;gap:6px;padding:14px 0;animation:cpReveal .18s ease}.cp-line+.cp-line,.cp-pay{border-top:1px solid var(--line)}.cp-line-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.cp-line-head strong{font-size:.9rem;font-weight:800}.cp-line-head b{flex:none;font-size:.98rem;font-weight:800;font-variant-numeric:tabular-nums;transition:color .16s ease}.cp-line>small{color:var(--muted);font-size:.76rem;font-weight:600;line-height:1.4;overflow-wrap:anywhere}.cp-line .cp-opts{margin-top:4px}.cp-line.is-waived .cp-line-head b{color:var(--muted);text-decoration:line-through}.cp-pay{display:grid;gap:12px;padding:14px 0}.cp-total{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.cp-total span{font-size:.86rem;font-weight:700}.cp-total b{font-size:1.15rem;font-weight:800;font-variant-numeric:tabular-nums}.cp-add-note{justify-self:start;display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 4px;border:0;background:transparent;color:var(--green);font-size:.84rem;font-weight:700}.cp-add-note .material-symbols-outlined{font-size:18px;vertical-align:0}.cp-note{display:grid;gap:8px;animation:cpReveal .18s ease}.cp-note input{border-radius:12px;font-weight:600}@keyframes cpIn{0%{opacity:0;transform:translateY(6px)}}@keyframes cpReveal{0%{opacity:0;transform:translateY(-4px)}}@media (prefers-reduced-motion: reduce){.cp-step,.cp-stepper,.cp-other,.cp-line,.cp-note{animation:none}}@media (max-width: 380px){.cp-chip{padding:0 13px}.cp-dates{gap:6px}.cp-date{padding:10px}}.plan-dues{padding:12px;border:1px solid color-mix(in srgb,var(--gold) 35%,var(--line));border-radius:16px;background:var(--gold-soft)}.plan-dues-head{display:grid;grid-template-columns:24px minmax(0,1fr);gap:10px;align-items:start}.plan-dues-head>.material-symbols-outlined{color:var(--gold);font-size:22px;vertical-align:0}.plan-dues-head strong{display:block;color:var(--ink);font-size:.9rem}.plan-dues-head small{display:block;margin-top:2px;color:var(--muted);font-size:.76rem;font-weight:600;overflow-wrap:anywhere}.plan-dues .segmented{background:var(--panel)}.plan-check{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:16px;cursor:pointer;transition:border-color .16s ease,background .16s ease}.plan-check:has(input:checked){border-color:var(--green);background:var(--green-soft)}.plan-check input{width:20px;height:20px;margin:0;accent-color:var(--green-dark)}.plan-check span{display:grid;gap:1px}.plan-check strong{color:var(--ink);font-size:.88rem}.plan-check small{color:var(--muted);font-size:.76rem;font-weight:600}.plan-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:12px;border-radius:16px;background:var(--bg)}.plan-summary>div{display:grid;gap:2px;min-width:0}.plan-summary dt{color:var(--muted);font-size:.72rem;font-weight:700}.plan-summary dd{margin:0;font-size:.92rem;font-weight:800;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.plan-summary dd.is-due{color:var(--red)}.plan-summary p{grid-column:1 / -1;display:flex;align-items:center;gap:6px;margin:4px 0 0;color:var(--muted);font-size:.74rem;font-weight:600}.plan-summary p .material-symbols-outlined{font-size:16px;vertical-align:0}.plan-history li span small+small{margin-top:1px}.insight-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.insight-tab{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:14px;background:var(--panel);color:var(--muted);font-size:.88rem;font-weight:800;transition:background .16s ease,color .16s ease,border-color .16s ease,transform .14s ease}.insight-tab .material-symbols-outlined{font-size:19px;vertical-align:0}.insight-tab:hover{border-color:var(--green);color:var(--green)}.insight-tab.active{border-color:var(--green-dark);background:var(--green-dark);color:#fff}.insight-tab:active{transform:scale(.97)}.insight-tab:focus-visible{outline:2px solid var(--green);outline-offset:2px}.plan-log-card{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px;padding:12px 14px;border-radius:16px}.plan-log-total{display:grid;gap:0;padding-right:14px;border-right:1px solid var(--line)}.plan-log-total strong{font-size:1.6rem;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}.plan-log-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none}.plan-log-stats li{display:grid;grid-template-columns:28px minmax(0,1fr);column-gap:8px;align-items:center;min-width:0;padding:8px 10px;border-radius:12px;background:var(--bg)}.plan-log-stats .money-card-ico{grid-row:span 2;width:28px;height:28px;border-radius:9px;background:var(--panel);color:var(--muted)}.plan-log-stats .money-card-ico .material-symbols-outlined{font-size:16px}.plan-log-stats b{font-size:1rem;font-weight:800;line-height:1.15;font-variant-numeric:tabular-nums}.plan-log-stats small{overflow:hidden;color:var(--muted);font-size:.7rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.plan-log-stats .is-up .money-card-ico{background:var(--green-soft);color:var(--green)}.plan-log-stats .is-up b{color:var(--green)}.plan-log-stats .is-down .money-card-ico{background:var(--gold-soft);color:var(--gold)}.plan-log-stats .is-down b{color:var(--gold)}.plan-log-days{display:grid;gap:14px}@media (max-width: 359px){.plan-log-card{gap:10px}.plan-log-total{padding-right:10px}.plan-log-stats{gap:6px}.plan-log-stats li{grid-template-columns:minmax(0,1fr);padding:8px}.plan-log-stats .money-card-ico{display:none}}.plan-log-row .contact-copy small{white-space:normal}.plan-log-row .plan-log-what{color:var(--ink);font-weight:600}.plan-log-row:disabled{cursor:default}.plan-tag.is-upgrade{background:var(--green-soft);color:var(--green)}.plan-tag.is-downgrade{background:var(--gold-soft);color:var(--gold)}.plan-tag.is-same{background:var(--bg);color:var(--muted)}@media (min-width: 901px){.insights-view>.insight-tabs{max-width:620px}.plan-log-days{max-width:620px}.plan-log-days .contact-list{grid-template-columns:minmax(0,1fr)}.money-card.plan-log-card{max-width:420px}}.contact-row.plan-log-row{grid-template-columns:46px minmax(0,1fr) auto;align-items:start}.plan-log-row .contact-copy strong{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;white-space:normal}.plan-log-row .contact-copy small{line-height:1.4}.help-tour{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:12px 14px;margin-bottom:16px;border:1px solid var(--line);border-radius:18px;background:var(--panel);box-shadow:var(--card-shadow)}.help-tour>div:not(.help-tour-actions){display:grid;gap:2px;min-width:0}.help-tour strong{font-size:.95rem}.help-tour small{color:var(--muted);font-size:.8rem}.help-tour-ico{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:var(--green-soft);color:var(--green)}.help-tour-ico .material-symbols-outlined{font-size:22px;vertical-align:0}.help-tour-actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:8px}.menu-tour{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000}.menu-tour-dim{position:absolute;top:0;right:0;bottom:0;left:0;background:#06140ea8}.menu-tour-spot{position:fixed;border-radius:14px;outline:2px dashed #fff;outline-offset:2px;box-shadow:0 0 0 9999px #06140ea8;pointer-events:none;transition:top .26s cubic-bezier(.32,.72,0,1),left .26s cubic-bezier(.32,.72,0,1),width .26s cubic-bezier(.32,.72,0,1),height .26s cubic-bezier(.32,.72,0,1)}.menu-tour-tip{position:fixed;width:min(300px,calc(100vw - 24px));padding:14px 14px 12px;border-radius:18px;background:var(--panel);color:var(--ink);box-shadow:0 18px 50px #00000052;transition:top .26s cubic-bezier(.32,.72,0,1),left .26s cubic-bezier(.32,.72,0,1);animation:menuTourIn .22s ease-out}.menu-tour-arrow{position:absolute;width:14px;height:14px;background:var(--panel);transform:rotate(45deg);border-radius:3px}.menu-tour-tip.is-below .menu-tour-arrow{top:-6px;margin-left:-7px}.menu-tour-tip.is-above .menu-tour-arrow{bottom:-6px;margin-left:-7px}.menu-tour-tip.is-right .menu-tour-arrow{left:-6px;margin-top:-7px}.menu-tour-head{position:relative;display:flex;align-items:center;gap:10px}.menu-tour-head strong{flex:1;font-size:1rem;font-weight:800;letter-spacing:-.01em}.menu-tour-ico{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:11px;background:var(--green-soft);color:var(--green)}.menu-tour-ico .material-symbols-outlined{font-size:19px;vertical-align:0}.menu-tour-skip{padding:6px 4px;border:0;background:transparent;color:var(--muted);font-size:.82rem;font-weight:700}.menu-tour-skip:hover{color:var(--ink)}.menu-tour-tip p{margin:10px 0 12px;color:var(--muted);font-size:.9rem;line-height:1.45}.menu-tour-foot{display:flex;align-items:center;gap:8px}.menu-tour-count{flex:1;color:var(--muted);font-size:.86rem;font-variant-numeric:tabular-nums}.menu-tour-count b{color:var(--ink);font-weight:800}.menu-tour-back{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--ink)}.menu-tour-back .material-symbols-outlined{font-size:19px;vertical-align:0}.menu-tour-next{min-width:84px;height:40px;padding:0 18px;border:0;border-radius:12px;background:var(--green-dark);color:#fff;font-size:.9rem;font-weight:800;transition:transform .12s ease,background .16s ease}.menu-tour-next:hover{background:var(--green)}.menu-tour-next:active,.menu-tour-back:active{transform:scale(.96)}.menu-tour-next:focus-visible,.menu-tour-back:focus-visible,.menu-tour-skip:focus-visible{outline:2px solid var(--green);outline-offset:2px}@keyframes menuTourIn{0%{opacity:0;transform:translateY(6px) scale(.98)}}@media (prefers-reduced-motion: reduce){.menu-tour-spot,.menu-tour-tip{transition:none;animation:none}}.sheet-back{position:absolute;top:12px;left:14px;display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:50%;background:var(--bg);color:var(--ink)}.sheet-back .material-symbols-outlined{font-size:20px;vertical-align:0}.member-kind{display:grid;gap:10px}.member-kind-option{display:grid;grid-template-columns:40px minmax(0,1fr) 20px;align-items:center;gap:12px;width:100%;padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--panel);color:var(--ink);text-align:left;cursor:pointer;transition:border-color .16s ease,background .16s ease,transform .16s ease}.member-kind-option:hover{border-color:var(--green);background:var(--green-soft)}.member-kind-option:active{transform:scale(.99)}.member-kind-option:focus-visible{outline:2px solid var(--green);outline-offset:2px}.member-kind-option>.material-symbols-outlined:first-child{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--green-soft);color:var(--green);font-size:22px}.member-kind-option span{display:grid;gap:2px;min-width:0}.member-kind-option strong{font-size:.94rem}.member-kind-option small{color:var(--muted);font-size:.78rem;font-weight:600;line-height:1.35}.member-kind-go{color:var(--muted);font-size:20px}.history-bulk{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.history-bulk>span{margin-right:auto;color:var(--muted);font-size:.78rem;font-weight:700;font-variant-numeric:tabular-nums}.history-bulk-btn{display:inline-flex;align-items:center;gap:4px;min-height:34px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--ink);font-size:.8rem;font-weight:700}.history-bulk-btn .material-symbols-outlined{font-size:16px;vertical-align:0;color:var(--green)}.hist-status{display:flex;gap:6px}.hist-status-btn{display:inline-flex;align-items:center;gap:4px;min-height:36px;padding:0 12px;border:1.5px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);font-size:.84rem;font-weight:800;box-shadow:0 1px 2px #101f180f;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .11s ease}.hist-status-btn .material-symbols-outlined{font-size:17px;vertical-align:0;color:var(--muted)}.hist-status-btn:hover{border-color:color-mix(in srgb,var(--green) 40%,var(--line))}.hist-status-btn:active{transform:scale(.96)}.hist-status-btn:focus-visible{outline:2px solid var(--green);outline-offset:2px}.hist-status-btn.is-paid.is-on{border-color:var(--green-dark);background:var(--green-dark);color:#fff}.hist-status-btn.is-unpaid.is-on{border-color:var(--red);background:var(--red);color:#fff}.hist-status-btn.is-on .material-symbols-outlined{color:#fff}.history-terms{display:grid;gap:10px;margin:0;padding:0;list-style:none}.history-term{display:grid;gap:10px;padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}.history-term.is-paid{border-color:color-mix(in srgb,var(--green) 45%,var(--line));box-shadow:inset 4px 0 0 var(--green)}.history-term.is-unpaid{border-color:var(--line);box-shadow:inset 4px 0 0 var(--red)}.history-term.is-missing{border-color:var(--red);background:color-mix(in srgb,var(--red) 3%,var(--panel))}.history-term-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}.history-term-head strong{font-size:.86rem;font-variant-numeric:tabular-nums}.history-term-head .segmented{min-width:180px}.history-term-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px 10px}.history-term.history-term-body{margin-top:10px}.history-term-body .affix-input{min-height:44px}.history-term-body .affix-input input{min-height:0}.history-term-body .history-full{grid-column:1 / -1}.history-term-body select,.history-term-body input[type=date]{min-height:44px}.history-paid-on{gap:4px}.history-paid-on input:disabled{opacity:.5}.history-unknown{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.74rem;font-weight:700;cursor:pointer}.history-unknown input{width:16px;height:16px;margin:0;accent-color:var(--green-dark)}.history-owed{display:flex;align-items:center;gap:6px;color:var(--red);font-size:.78rem;font-weight:700}.history-owed .material-symbols-outlined{font-size:16px;vertical-align:0}.history-warning{margin:0}.field-hint.wide{grid-column:1 / -1}@media (max-width: 480px){.history-term-body{grid-template-columns:minmax(0,1fr)}.history-term-head .segmented{min-width:0;width:100%}.hist-status{width:100%}.hist-status-btn{flex:1;justify-content:center}}.mf-steps{display:grid;gap:10px;justify-items:center;padding:0 18px 8px}.mf-steps-chip{padding:6px 16px;border-radius:999px;background:var(--green-soft);color:var(--green-dark);font-size:.8rem;font-weight:700}.mf-steps-bar{width:100%;height:6px;border-radius:999px;background:var(--line);overflow:hidden}.mf-steps-bar span{display:block;height:100%;border-radius:inherit;background:var(--green-dark);transition:width .25s ease}.payedit-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}.payedit-row{display:grid;gap:10px;padding:10px 10px 10px 14px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.payedit-row.is-editing{border-color:var(--green)}.payedit-main{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:6px}.payedit-copy{display:grid;gap:1px;min-width:0}.payedit-copy strong{font-size:.9rem;font-weight:800}.payedit-copy small{color:var(--muted);font-size:.74rem;font-weight:600;overflow-wrap:anywhere}.payedit-copy .undated-dot{margin:0 5px 0 0}.payedit-amount{padding:0 4px;font-size:.92rem;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}.payedit-icon{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink)}.payedit-icon .material-symbols-outlined{font-size:18px;vertical-align:0}.payedit-icon:hover{background:var(--bg)}.payedit-icon.is-danger{color:var(--red);border-color:color-mix(in srgb,var(--red) 30%,var(--line))}.payedit-icon:disabled{opacity:.45}.payedit-form{display:grid;gap:10px;padding-top:10px;border-top:1px solid var(--line)}.payedit-date-toggle{justify-self:start;display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 12px;border:1px dashed var(--line);border-radius:999px;background:transparent;color:var(--green);font-size:.8rem;font-weight:700}.payedit-date-toggle .material-symbols-outlined{font-size:16px;vertical-align:0}.payedit-actions{display:flex;gap:8px;justify-content:flex-end}.payedit-months{display:grid;grid-template-columns:36px minmax(0,1fr) 36px auto;align-items:center;gap:6px}.payedit-months .day-step{width:36px;height:36px;border-radius:11px}.payedit-months .day-step .material-symbols-outlined{font-size:20px}.payedit-months .day-step:disabled{opacity:.35;cursor:default}.payedit-months .day-pick{grid-auto-flow:column;justify-content:center;align-items:baseline;gap:6px;min-height:36px;padding:0 10px;align-content:center;border-radius:11px}.payedit-months .day-pick strong{font-size:.86rem}.payedit-months .day-pick small{font-size:.72rem}.payedit-all{min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:11px;background:var(--panel);color:var(--ink);font-size:.8rem;font-weight:700}.payedit-all.is-on{border-color:var(--green-dark);background:var(--green-dark);color:#fff}@media (min-width: 761px){dialog#paymentEditDialog{width:min(94vw,420px)}}.money-card-main{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.undated-dot{display:inline-block;flex:none;width:8px;height:8px;margin-left:6px;border-radius:50%;background:#98a29b;vertical-align:1px}.ledger-entry .contact-copy small{white-space:normal;overflow:visible;text-overflow:clip}.undated-line{display:flex;align-items:center;gap:6px;color:var(--ink);font-weight:700}.undated-line .undated-dot{margin-left:0}.undated-note{margin:0}.next-due{margin-top:10px}.other-pay-open{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;margin-top:10px;padding:12px 14px;border:1px dashed color-mix(in srgb,var(--green) 45%,var(--line));border-radius:16px;background:transparent;color:var(--ink);text-align:left;cursor:pointer;transition:background .16s ease,border-color .16s ease}.other-pay-open:hover{background:var(--green-soft)}.other-pay-open>span:nth-child(2){display:grid;gap:1px;min-width:0}.other-pay-open strong{font-size:.9rem}.other-pay-open small{color:var(--muted);font-size:.76rem;font-weight:600}.other-pay-ico{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--green-soft);color:var(--green)}.other-pay-go{color:var(--muted)}.other-pay{display:grid;gap:14px;margin-top:10px;padding:14px;border:1px solid color-mix(in srgb,var(--green) 40%,var(--line));border-radius:16px;background:var(--panel)}.other-pay-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.other-pay-head h3{margin:0;font-size:.95rem}.other-pay-cancel{padding:6px 10px;border:0;border-radius:999px;background:var(--bg);color:var(--muted);font-size:.78rem;font-weight:700;cursor:pointer}.other-pay input[type=text]{min-height:44px;border-radius:12px;color:var(--ink);font-weight:600}.other-pay input.has-error{border-color:var(--red)}.other-pay .affix-input input{min-height:44px}.other-pay-chips{display:flex;flex-wrap:wrap;gap:6px}.other-pay-chip{padding:5px 10px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--muted);font-size:.76rem;font-weight:700;cursor:pointer}.other-pay-chip:hover{border-color:var(--green);color:var(--green)}.other-pay-chip.active{border-color:var(--green-dark);background:var(--green-soft);color:var(--green-dark)}.other-pay .field-hint{display:flex;justify-content:space-between;gap:8px}.other-pay .field-hint.is-error{color:var(--red)}.other-pay-count{flex:none;font-variant-numeric:tabular-nums}.pay-note{color:var(--ink);font-weight:600;white-space:normal;overflow-wrap:anywhere}.mf-steps.is-compact{padding:0 0 4px}.review-card .review-sub{margin:-4px 0 8px;color:var(--muted);font-size:.78rem;font-weight:600}.review-card dd.is-due{color:var(--red)}.review-card dd{text-align:right;overflow-wrap:anywhere}.sheet-secondary{padding:0 18px;min-height:48px;border:1px solid var(--line);border-radius:16px;background:var(--panel);color:var(--ink);font-size:.92rem;font-weight:700;cursor:pointer}.sheet-secondary:disabled{opacity:.5;cursor:default}.sheet-foot.is-split{display:flex;gap:10px}.sheet-foot.is-split .sheet-confirm{flex:1}.other-pay-actions{display:flex;gap:10px}.other-pay-actions .sheet-confirm{flex:1}.purchase-list{display:grid;margin:0;padding:0;list-style:none}.purchase-list li+li{border-top:1px solid var(--line)}.purchase-list button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:10px 2px;border:0;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.purchase-list button>span{display:grid;gap:1px;min-width:0}.purchase-list strong{font-size:.88rem;overflow-wrap:anywhere}.purchase-list small{color:var(--muted);font-size:.74rem;font-weight:600}.purchase-list b{flex:none;font-size:.9rem;font-variant-numeric:tabular-nums;color:var(--green)}.purchase-more{display:block;padding-top:4px;color:var(--muted);font-size:.74rem;font-weight:600}.history-term-title{display:grid;gap:1px;min-width:0}.history-term-title small{color:var(--muted);font-size:.74rem;font-weight:600;font-variant-numeric:tabular-nums}.colchart{--bar: var(--green);margin:0}.colchart.is-out{--bar: var(--red)}.colchart-plot{display:grid;grid-template-columns:38px minmax(0,1fr);gap:6px;height:150px}.colchart-axis{position:relative}.colchart-axis span{position:absolute;right:0;transform:translateY(50%);color:var(--muted);font-size:.68rem;font-weight:600;font-variant-numeric:tabular-nums}.colchart-area{position:relative}.colchart-grid{position:absolute;left:0;right:0;height:0;border-top:1px solid var(--line)}.colchart-cols{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-end}.colchart-col{flex:1 1 0;min-width:0;height:100%;display:flex;align-items:flex-end;justify-content:center;padding:0 1px;outline:none;cursor:default}.colchart-bar{display:block;width:100%;max-width:24px;border-radius:4px 4px 0 0;background:var(--bar);transition:opacity .12s ease}.colchart-cols:hover .colchart-col:not(.is-active) .colchart-bar{opacity:.55}.colchart-col:focus-visible{box-shadow:inset 0 0 0 2px var(--green-dark);border-radius:4px}.colchart-tip{position:absolute;top:-6px;z-index:2;display:grid;gap:1px;padding:6px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel);box-shadow:var(--card-shadow);transform:translate(-50%,-100%);white-space:nowrap;pointer-events:none}.colchart-tip small{color:var(--muted);font-size:.7rem;font-weight:600}.colchart-tip strong{font-size:.88rem;font-variant-numeric:tabular-nums}.colchart-x{display:flex;margin:6px 0 0 44px}.colchart-x span{flex:1 1 0;min-width:0;color:var(--muted);font-size:.68rem;font-weight:600;text-align:center;white-space:nowrap}.chart-title{margin:14px 0 4px;color:var(--muted);font-size:.74rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.stat-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.stat-tile{display:grid;gap:2px;min-width:0;padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}.stat-tile span{color:var(--muted);font-size:.72rem;font-weight:700}.stat-tile strong{font-size:1.1rem;font-weight:800;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.stat-tile small{color:var(--muted);font-size:.7rem;font-weight:600}@media (max-width: 520px){.stat-row{gap:8px}.stat-tile{padding:10px;border-radius:14px}.stat-tile strong{font-size:.98rem}.colchart-plot{height:130px}}.app-shell .insight-tab{flex-direction:column;gap:6px;min-height:0;padding:10px 4px;border-radius:16px;font-size:.74rem}.app-shell .insight-tab .material-symbols-outlined{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:var(--bg);font-size:20px}.app-shell .insight-tab.active .material-symbols-outlined{background:#ffffff29}@media (max-width: 520px){.insight-tab{flex-direction:column;gap:6px;min-height:0;padding:10px 4px;border-radius:16px;font-size:.74rem}.insight-tab .material-symbols-outlined{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:var(--bg);font-size:20px}.insight-tab.active .material-symbols-outlined{background:#ffffff29}}.money-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.money-tiles.has-4{grid-template-columns:repeat(4,minmax(0,1fr))}.money-tile{display:grid;align-content:start;gap:2px;min-width:0;padding:10px 12px;border:1px solid var(--line);border-radius:16px;background:var(--panel);color:var(--ink);text-align:left}.money-tile>span{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:.72rem;font-weight:700}.money-tile>span .material-symbols-outlined{font-size:15px}.money-tile strong{font-size:1.05rem;font-weight:800;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.money-tile small{color:var(--muted);font-size:.7rem;font-weight:600}.money-tile.is-in strong,.money-tile.is-in>span .material-symbols-outlined{color:var(--green)}.money-tile.is-out strong,.money-tile.is-out>span .material-symbols-outlined{color:var(--red)}.money-tile.is-net strong.is-negative{color:var(--red)}.money-tile.is-undated{background:#eef2ef;cursor:pointer}.money-tile.is-undated .undated-dot{margin-left:0}.money-tile-go{margin-left:auto}@media (max-width: 520px){.money-tiles.has-4{grid-template-columns:repeat(2,minmax(0,1fr))}.money-tile{padding:9px 10px;border-radius:14px}.money-tile strong{font-size:.98rem}}@media (max-width: 520px){.insights-view{gap:10px}.insights-view .insight-tabs{gap:6px}.insights-view .insight-tab{gap:3px;padding:6px 4px;border-radius:14px;font-size:.7rem}.insights-view .insight-tab .material-symbols-outlined{width:28px;height:28px;border-radius:9px;font-size:17px}.insights-view .segmented{padding:3px;border-radius:12px}.insights-view .segmented span{min-height:32px;font-size:.82rem}.insights-view .list-filter-toggle{width:40px;height:40px;border-radius:12px}.insights-view .day-bar{grid-template-columns:38px minmax(0,1fr) 38px;gap:6px}.insights-view .day-step{width:38px;height:38px;border-radius:12px}.insights-view .day-pick{gap:0;padding:4px 8px;border-radius:12px}.insights-view .day-pick strong{font-size:.9rem}.insights-view .day-pick small{font-size:.7rem}.insights-view .money-tiles,.insights-view .money-tiles.has-4{grid-template-columns:repeat(auto-fit,minmax(0,1fr));grid-auto-flow:column;gap:6px}.insights-view .money-tile{gap:1px;padding:7px 6px;border-radius:12px}.insights-view .money-tile>span{gap:3px;font-size:.64rem}.insights-view .money-tile>span .material-symbols-outlined{font-size:13px}.insights-view .money-tile strong{font-size:clamp(.8rem,3.5vw,.95rem);overflow-wrap:normal;white-space:nowrap}.insights-view .money-tile small{font-size:.6rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.insights-view .money-tile-go{display:none}}.app-shell .insights-view{gap:10px}.app-shell .insights-view .insight-tabs{gap:6px}.app-shell .insights-view .insight-tab{gap:3px;padding:6px 4px;border-radius:14px;font-size:.7rem}.app-shell .insights-view .insight-tab .material-symbols-outlined{width:28px;height:28px;border-radius:9px;font-size:17px}.app-shell .insights-view .segmented{padding:3px;border-radius:12px}.app-shell .insights-view .segmented span{min-height:32px;font-size:.82rem}.app-shell .insights-view .list-filter-toggle{width:40px;height:40px;border-radius:12px}.app-shell .insights-view .day-bar{grid-template-columns:38px minmax(0,1fr) 38px;gap:6px}.app-shell .insights-view .day-step{width:38px;height:38px;border-radius:12px}.app-shell .insights-view .day-pick{gap:0;padding:4px 8px;border-radius:12px}.app-shell .insights-view .day-pick strong{font-size:.9rem}.app-shell .insights-view .day-pick small{font-size:.7rem}.app-shell .insights-view .money-tiles,.app-shell .insights-view .money-tiles.has-4{grid-template-columns:repeat(auto-fit,minmax(0,1fr));grid-auto-flow:column;gap:6px}.app-shell .insights-view .money-tile{gap:1px;padding:7px 6px;border-radius:12px}.app-shell .insights-view .money-tile>span{gap:3px;font-size:.64rem}.app-shell .insights-view .money-tile>span .material-symbols-outlined{font-size:13px}.app-shell .insights-view .money-tile strong{font-size:clamp(.8rem,3.5vw,.95rem);overflow-wrap:normal;white-space:nowrap}.app-shell .insights-view .money-tile small{font-size:.6rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-shell .insights-view .money-tile-go{display:none}@media (min-width: 901px){.dlog-view{max-width:720px}}.dlog-month{position:relative;flex:1;min-width:0;display:flex;align-items:center;gap:12px;min-height:48px;padding:6px 14px;border:1px solid var(--line);border-radius:14px;background:var(--panel);color:var(--ink);cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease}.dlog-month:focus-within{border-color:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 14%,transparent)}.dlog-month>.material-symbols-outlined{color:var(--green);font-size:22px;vertical-align:0}.dlog-month>span:not(.material-symbols-outlined){display:grid;gap:0;min-width:0}.dlog-month small{color:var(--muted);font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.dlog-month strong{font-size:.95rem;font-weight:800}.dlog-month .dlog-month-go{margin-left:auto;color:var(--muted)}.dlog-month input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;min-height:0;height:100%;padding:0;border:0;opacity:0;cursor:pointer}.day-step:disabled{opacity:.4;cursor:default}.dlog-stats{display:flex;flex-wrap:wrap;gap:4px 14px;margin:0;padding:0 4px;color:var(--muted);font-size:.8rem;font-weight:700;font-variant-numeric:tabular-nums}.dlog-stats .is-in{color:var(--green)}.dlog-stats .is-out{color:var(--red)}.dlog-filters{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 -2px;padding:2px}.dlog-filters::-webkit-scrollbar{display:none}.dlog-filter{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--ink);font-size:.82rem;font-weight:700;transition:background .16s ease,border-color .16s ease,color .16s ease}.dlog-filter span{color:var(--muted);font-size:.74rem;font-weight:700;font-variant-numeric:tabular-nums}.dlog-filter.is-active{border-color:var(--green-dark);background:var(--green-dark);color:#fff}.dlog-filter.is-active span{color:#ffffffb3}.dlog-filter:focus-visible{outline:2px solid var(--green);outline-offset:2px}.dlog-day.is-skeleton{border:1px solid var(--line);border-radius:18px}.dlog-day.is-skeleton{height:72px;background:linear-gradient(90deg,var(--panel) 0%,var(--bg) 50%,var(--panel) 100%);background-size:200% 100%;animation:dlogShimmer 1.2s linear infinite}.dlog-amt{font-weight:800;white-space:nowrap}.is-in.dlog-amt{color:var(--green)}.is-out.dlog-amt{color:var(--red)}.dlog-list{position:relative;display:grid;gap:8px;margin:0;padding:0;list-style:none;animation:dlogReveal .18s ease}.dlog-entry{display:grid;grid-template-columns:54px 30px minmax(0,1fr) auto;align-items:start;gap:10px;width:100%;padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--panel);box-shadow:var(--card-shadow);color:var(--ink);font:inherit;text-align:left}.dlog-entry time{padding-top:6px;color:var(--muted);font-size:.72rem;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.dlog-ico{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:var(--bg);color:var(--muted)}.dlog-ico .material-symbols-outlined{font-size:17px;vertical-align:0}.dlog-ico.tone-in{background:var(--green-soft);color:var(--green)}.dlog-ico.tone-out{background:var(--red-soft);color:var(--red)}.dlog-ico.tone-member{background:var(--blue-soft);color:var(--blue)}.dlog-ico.tone-plan{background:var(--gold-soft);color:var(--gold)}.dlog-ico.tone-removed{background:var(--red-soft);color:var(--red)}.dlog-copy{display:grid;gap:2px;min-width:0;padding-top:1px}.dlog-line{color:var(--muted);font-size:.86rem;font-weight:600;line-height:1.35;overflow-wrap:anywhere}.dlog-line strong{color:var(--ink);font-weight:800}.dlog-line{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}.dlog-tag{padding:2px 8px;border-radius:999px;font-size:.68rem;font-style:normal;font-weight:800;letter-spacing:.02em;white-space:nowrap}.dlog-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:3px}.dlog-chip{padding:2px 7px;border:1px solid transparent;border-radius:7px;font-size:.7rem;font-weight:700;line-height:1.4;font-variant-numeric:tabular-nums}:is(.dlog-tag,.dlog-chip).tone-in{background:var(--green-soft);color:var(--green)}:is(.dlog-tag,.dlog-chip).tone-part{background:var(--blue-soft);color:var(--blue)}:is(.dlog-tag,.dlog-chip):is(.tone-purchase,.tone-admission){background:var(--gold-soft);color:var(--gold)}:is(.dlog-tag,.dlog-chip).tone-member{background:var(--blue-soft);color:var(--blue)}:is(.dlog-tag,.dlog-chip):is(.tone-removed,.tone-out,.tone-due){background:var(--red-soft);color:var(--red)}:is(.dlog-tag,.dlog-chip).tone-plan{background:color-mix(in srgb,var(--gold) 14%,var(--panel));color:var(--gold)}:is(.dlog-tag,.dlog-chip):is(.tone-edit,.tone-now){background:var(--bg);color:var(--ink)}.dlog-chip.tone-term{background:color-mix(in srgb,var(--blue) 8%,var(--panel));color:var(--blue);border-color:color-mix(in srgb,var(--blue) 18%,var(--line))}.dlog-chip.tone-opening{background:color-mix(in srgb,#7c3aed 10%,var(--panel));color:#6d28d9}.dlog-chip.tone-mode,.dlog-chip.tone-category,.dlog-chip.tone-date,.dlog-chip.tone-by,.dlog-chip.tone-note{background:var(--panel);color:var(--muted);border-color:var(--line)}.dlog-copy small{color:var(--muted);font-size:.74rem;font-weight:600;line-height:1.35;overflow-wrap:anywhere}.dlog-amt{padding-top:4px;font-size:.88rem;font-variant-numeric:tabular-nums}.dlog-amt.is-struck{color:var(--muted);text-decoration:line-through}.dlog-amt.is-history{display:grid;justify-items:end;color:var(--muted)}.dlog-amt.is-history small{font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.dlog-chip.tone-change{background:var(--panel);color:var(--ink);border-color:color-mix(in srgb,var(--ink) 18%,var(--line))}.dlog-more{width:100%;min-height:44px;border:1px dashed var(--line);border-radius:14px;background:transparent;color:var(--green);font-size:.82rem;font-weight:800}.dlog-error{display:grid;justify-items:center;gap:6px}.dlog-error p{margin:0}@keyframes dlogReveal{0%{opacity:0;transform:translateY(-4px)}}@keyframes dlogShimmer{to{background-position:-200% 0}}@media (prefers-reduced-motion: reduce){.dlog-list,.dlog-day.is-skeleton{animation:none}}@media (max-width: 380px){.dlog-entry{grid-template-columns:46px 28px minmax(0,1fr) auto;gap:8px;padding:10px}}.auth-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#0b241a;padding:20px}.auth-overlay[hidden],.auth-bar[hidden]{display:none!important}.auth-card{background:#fff;width:min(380px,100%);border-radius:16px;padding:28px;box-shadow:0 20px 60px #00000059;display:flex;flex-direction:column;gap:12px}.auth-card h2{margin:0;color:#0b241a}.auth-sub{margin:0 0 6px;color:#5b6b62;font-size:14px}.auth-card label,.auth-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:#26332c}.auth-card input,.auth-form input,.auth-form select{padding:10px 12px;border:1px solid #cdd8d1;border-radius:10px;font-size:15px}.auth-card button[type=submit],.auth-form button[type=submit],.auth-actions button{cursor:pointer}.auth-card button[type=submit]{margin-top:6px;padding:11px;border:0;border-radius:10px;background:#11784a;color:#fff;font-weight:700;font-size:15px}.auth-error{background:#fdecea;color:#b42318;padding:8px 10px;border-radius:8px;font-size:13px}body.auth-locked{overflow:hidden}.auth-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;width:100%;padding:12px;border:1px solid rgba(255,255,255,.2);border-radius:14px;background:#ffffff1a}.auth-user{flex:1 1 100%;color:#ffffffeb;font-size:13px;font-weight:600;line-height:1.35;overflow-wrap:anywhere}.auth-chip{cursor:pointer;border:1px solid #cdd8d1;background:#f2f7f4;color:#11543a;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:700}.auth-chip.danger{background:#fdecea;color:#b42318;border-color:#f3c6c0}.auth-select{border:1px solid #cdd8d1;border-radius:999px;padding:5px 10px;font-size:12px;flex:1 1 100%;max-width:none}.auth-dialog{border:0;border-radius:16px;padding:22px;width:min(560px,94vw);box-shadow:0 24px 70px #00000059}.auth-dialog::backdrop{background:#06140e8c}.auth-dialog h3{margin:0 0 14px;color:#0b241a}.auth-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.auth-actions{display:flex;gap:8px;margin-top:12px}.auth-actions button[type=submit]{border:0;border-radius:10px;background:#11784a;color:#fff;font-weight:700;padding:10px 14px}.auth-list{margin-top:16px;display:flex;flex-direction:column;gap:8px;max-height:40vh;overflow:auto}.auth-list-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #e4ece7;border-radius:10px;padding:8px 12px;font-size:13px}.auth-list-row small{color:#6a7a71}@media (max-width: 560px){.auth-grid{grid-template-columns:1fr}}@media (max-width: 900px){.auth-bar{margin-top:auto}.auth-bar .auth-chip{flex:1 1 auto;min-height:42px;text-align:center;font-size:13px}}.plan-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding:10px 14px;border:1px solid #d7d8ff;border-radius:10px;background:#ececff;color:#3730a3;font-size:14px;font-weight:600}.plan-banner.warn{border-color:#f1d9a2;background:#fff3d8;color:#7a4c00}.plan-banner a{flex:none;padding:5px 12px;border-radius:8px;background:#fff;color:inherit;font-weight:700;text-decoration:none}@media (max-width: 640px){.plan-banner{flex-direction:column;align-items:flex-start}}.plan-badge{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border:1px solid #d7d8ff;border-radius:999px;background:#ececff;color:#3730a3;font-size:13px;font-weight:700;text-decoration:none;white-space:nowrap}.plan-badge-dot{width:7px;height:7px;border-radius:50%;background:currentColor}.plan-badge.lifetime{border-color:#f1d9a2;background:#fff3d8;color:#7a4c00}.plan-badge.monthly{border-color:#bfe6cf;background:#e3f6ec;color:#11633a}.plan-badge.grace{border-color:#f1d9a2;background:#fff3d8;color:#7a4c00}.plan-badge.expired{border-color:#f3c3c3;background:#fde8e8;color:#9b1c1c}button.plan-badge{font-family:inherit;cursor:pointer}.plan-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-bottom:16px}.plan-card{display:flex;flex-direction:column;gap:6px;padding:16px;border:1px solid #e3e8e4;border-radius:14px;background:#fff}.plan-card span{color:#5b6b62;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.plan-card strong{font-size:1.5rem;line-height:1.15}.plan-card strong em{color:#5b6b62;font-size:.85rem;font-style:normal;font-weight:700}.plan-card small{color:#5b6b62;font-size:13px}.plan-link{align-self:flex-start;margin-top:6px;padding:6px 12px;border-radius:8px;background:#ececff;color:#3730a3;font-size:13px;font-weight:700;text-decoration:none}.maint-pill{align-self:flex-start;margin-top:4px;padding:4px 10px;border-radius:999px;background:#ececff;color:#3730a3;font-size:12px}.plan-card.maint.due{border-color:#f1d9a2}.plan-card.maint.due .maint-pill{background:#fff3d8;color:#7a4c00}.plan-card.maint.overdue{border-color:#f3c3c3}.plan-card.maint.overdue .maint-pill{background:#fde8e8;color:#9b1c1c}.plan-table-wrap{overflow-x:auto}.plan-table{width:100%;border-collapse:collapse;font-size:14px}.plan-table th,.plan-table td{padding:10px 12px;border-bottom:1px solid #edf0ee;text-align:left;white-space:nowrap}.plan-table th{color:#5b6b62;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.plan-table .num{text-align:right}.plan-status{padding:3px 9px;border-radius:999px;font-size:12px;font-weight:700;background:#e3f6ec;color:#11633a}.plan-status.verifying{background:#fff3d8;color:#7a4c00}.plan-status.rejected{background:#fde8e8;color:#9b1c1c}.plan-note{margin:12px 4px 4px;color:#5b6b62;font-size:13px}.plan-banner-btn{flex:none;padding:5px 12px;border:0;border-radius:8px;background:#fff;color:inherit;font:inherit;font-weight:700;cursor:pointer}.maint-lock{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;padding:16px;background:#0f1714b8}.maint-lock-card{max-width:460px;padding:26px;border-radius:16px;background:#fff;box-shadow:0 20px 60px #0000004d}.maint-lock-card h2{margin:0 0 10px}.maint-lock-card p{margin:0 0 12px;line-height:1.5;color:#35443b}.maint-pay{padding:10px 12px;border-radius:10px;background:#f3f6f4}.password-field{position:relative;display:block}.password-field input{width:100%;box-sizing:border-box;padding-right:44px}.password-toggle{position:absolute;top:50%;right:6px;transform:translateY(-50%);display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:8px;background:transparent;color:#5b6b62;cursor:pointer}.password-toggle:hover{background:#eef3f0;color:#11784a}.password-toggle svg{width:20px;height:20px}.auth-card{max-height:100%;overflow-y:auto}.auth-switch{margin:4px 0 0;text-align:center;font-size:13px;color:#5b6b62}.auth-link{padding:0;border:0;background:none;color:#11784a;font:inherit;font-weight:700;cursor:pointer}.auth-link:hover{text-decoration:underline}
