:root,[data-theme=dark]{--bg:#0a0e14;--sidebar:#111827;--card:#1a2332;--card-hover:#1f2937;--border:#2d3f56;--text:#f1f5f9;--muted:#94a3b8;--primary:#3b82f6;--primary-hover:#2563eb;--primary-glow:#3b82f640;--green:#22c55e;--red:#ef4444;--orange:#f97316;--purple:#a855f7;--teal:#14b8a6;--shadow:0 4px 24px #0000004d;--input-bg:#0f1419;--nav-hover:#3b82f61f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light]{--bg:#f8fafc;--sidebar:#fff;--card:#fff;--card-hover:#f1f5f9;--border:#e2e8f0;--text:#0f172a;--muted:#64748b;--primary:#2563eb;--primary-hover:#1d4ed8;--primary-glow:#2563eb26;--green:#16a34a;--red:#dc2626;--orange:#ea580c;--purple:#9333ea;--teal:#0d9488;--shadow:0 4px 24px #00000014;--input-bg:#f8fafc;--nav-hover:#2563eb14;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;color:var(--text);background:var(--bg);font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.5;transition:background .3s,color .3s}.app-layout{height:100vh;display:flex;overflow:hidden}.sidebar{background:var(--sidebar);border-right:1px solid var(--border);z-index:100;flex-direction:column;flex-shrink:0;width:270px;height:100vh;padding:1.25rem 1rem;transition:transform .3s,background .3s;display:flex;position:sticky;top:0;overflow:hidden}.sidebar-header-row{justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;display:flex}.brand{align-items:center;gap:.75rem;padding:0 .25rem;display:flex}.brand-icon{background:var(--nav-hover);border:1px solid var(--border);width:42px;height:42px;color:var(--primary);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.brand h1{letter-spacing:-.02em;font-size:1.2rem;font-weight:800}.brand p{color:var(--muted);font-size:.7rem}.theme-toggle{border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;border-radius:10px;align-items:center;gap:.4rem;padding:.45rem .75rem;font-size:.8rem;transition:all .2s;display:flex}.theme-toggle:hover{border-color:var(--primary);background:var(--nav-hover)}.theme-toggle-icon{font-size:1rem;line-height:1}.sidebar-nav{flex:1;min-height:0;margin:0 -.25rem;padding:0 .25rem;overflow-y:auto}.nav-section{margin-bottom:.75rem}.nav-section-title{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:.15rem;padding:.35rem .85rem;font-size:.62rem}.nav-link svg{opacity:.85;flex-shrink:0}.nav-link.active svg{opacity:1}.nav-link{color:var(--muted);border-radius:10px;align-items:center;gap:.7rem;margin-bottom:.15rem;padding:.65rem .85rem;font-size:.88rem;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.nav-link:hover{background:var(--nav-hover);color:var(--text)}.nav-link.active{background:linear-gradient(135deg, var(--primary), color-mix(in srgb, var(--primary) 70%, var(--teal)));color:#fff;box-shadow:0 2px 12px var(--primary-glow)}.sidebar-footer{color:var(--muted);margin-top:auto;padding:.75rem .25rem;font-size:.75rem}.sidebar-user{background:var(--nav-hover);border-radius:12px;align-items:center;gap:.65rem;margin-bottom:.75rem;padding:.65rem;display:flex}.sidebar-user-avatar{background:linear-gradient(135deg, var(--primary), var(--teal));color:#fff;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;font-size:.9rem;font-weight:700;display:flex}.sidebar-user-name{color:var(--text);font-size:.85rem;font-weight:600}.sidebar-user-role{color:var(--muted);text-transform:capitalize;font-size:.7rem}.btn-logout{width:100%;color:var(--muted);margin-bottom:.5rem;font-size:.8rem}.btn-logout:hover{color:var(--red);border-color:var(--red)}.sidebar-version{color:var(--muted);text-align:center;font-size:.68rem}.mobile-menu-btn{z-index:200;border:1px solid var(--border);background:var(--card);width:44px;height:44px;color:var(--text);cursor:pointer;box-shadow:var(--shadow);border-radius:12px;font-size:1.25rem;display:none;position:fixed;top:1rem;left:1rem}.sidebar-overlay{z-index:90;background:#00000080;display:none;position:fixed;inset:0}.main-content{background:radial-gradient(ellipse 80% 50% at 100% 0%, color-mix(in srgb, var(--primary) 6%, transparent), transparent 50%), radial-gradient(ellipse 60% 40% at 0% 100%, color-mix(in srgb, var(--teal) 5%, transparent), transparent 45%), var(--bg);flex:1;min-width:0;height:100vh;min-height:0;padding:2rem;transition:background .3s;overflow-y:auto}.main-topbar{justify-content:flex-end;align-items:center;gap:.75rem;margin-bottom:1rem;display:none}.page-header{margin-bottom:1.75rem}.page-header h2{letter-spacing:-.03em;color:var(--text);font-size:1.85rem;font-weight:800}.page-header p{color:var(--muted);margin-top:.35rem;font-size:.95rem}.page-header.row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(min(200px,100%),1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.stat-grid.compact{grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr));max-width:100%}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:18px;flex-direction:column;min-width:0;min-height:7.25rem;padding:1.25rem 1.35rem;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;position:relative;overflow:hidden;container-type:inline-size}.stat-card-money{justify-content:flex-start;min-height:7.5rem}.stat-card:before{content:"";background:linear-gradient(90deg, var(--primary), var(--teal));opacity:0;height:3px;transition:opacity .2s;position:absolute;top:0;left:0;right:0}.stat-card:hover{box-shadow:var(--shadow);border-color:color-mix(in srgb, var(--primary) 35%, var(--border));transform:translateY(-3px)}.stat-card:hover:before{opacity:1}.stat-blue:before{background:linear-gradient(90deg, var(--primary), color-mix(in srgb, var(--primary) 60%, var(--teal)));opacity:1}.stat-green:before{background:linear-gradient(90deg, var(--green), var(--teal));opacity:1}.stat-red:before{background:linear-gradient(90deg, var(--red), var(--orange));opacity:1}.stat-orange:before{background:linear-gradient(90deg, var(--orange), #eab308);opacity:1}.stat-purple:before{background:linear-gradient(90deg, var(--purple), var(--primary));opacity:1}.stat-teal:before{background:linear-gradient(90deg, var(--teal), var(--green));opacity:1}.stat-value{font-variant-numeric:tabular-nums;letter-spacing:-.02em;max-width:100%;font-size:clamp(1.35rem,2.8vw,2rem);font-weight:800;line-height:1.1}.stat-value-money{white-space:nowrap;flex-wrap:nowrap;align-items:baseline;gap:.4rem;width:100%;min-height:2.35rem;display:flex}.stat-money-prefix{opacity:.88;letter-spacing:0;flex-shrink:0;font-size:.72em;font-weight:700}.stat-money-amount{font-variant-numeric:tabular-nums;letter-spacing:-.03em;flex:auto;min-width:0;font-size:clamp(1.35rem,14cqi,2rem);font-weight:800;line-height:1}.stat-value-money.stat-money-medium .stat-money-amount{font-size:clamp(1.15rem,12cqi,1.65rem)}.stat-value-money.stat-money-long .stat-money-amount{font-size:clamp(1rem,10cqi,1.4rem)}.cell-money{white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:600}.stat-label{color:var(--muted);margin-top:.25rem;font-size:.82rem;line-height:1.35}.stat-blue .stat-value{color:var(--primary)}.stat-green .stat-value{color:var(--green)}.stat-red .stat-value{color:var(--red)}.stat-orange .stat-value{color:var(--orange)}.stat-purple .stat-value{color:var(--purple)}.stat-teal .stat-value{color:var(--teal)}.card{background:var(--card);border:1px solid var(--border);box-shadow:0 1px 0 color-mix(in srgb, var(--primary) 8%, transparent) inset;border-radius:18px;padding:1.5rem;transition:background .3s,border-color .3s,box-shadow .2s}.card:hover{border-color:color-mix(in srgb, var(--primary) 22%, var(--border))}.card h3{letter-spacing:-.01em;margin-bottom:1rem;font-size:1.08rem;font-weight:700}.chart-card{min-height:320px}.grid-2{grid-template-columns:1fr 1fr;gap:1.25rem;display:grid}.content-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;display:grid}table{border-collapse:collapse;width:100%;font-size:.88rem}th,td{text-align:left;border-bottom:1px solid var(--border);padding:.75rem}th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:600}tr:hover td{background:var(--nav-hover)}.badge{border-radius:20px;padding:.2rem .6rem;font-size:.72rem;font-weight:600;display:inline-block}.badge-active,.badge-granted,.badge-standard{background:color-mix(in srgb, var(--green) 18%, transparent);color:var(--green)}.badge-expired,.badge-denied,.badge-overdue{background:color-mix(in srgb, var(--red) 18%, transparent);color:var(--red)}.badge-frozen{background:color-mix(in srgb, var(--orange) 18%, transparent);color:var(--orange)}.badge-suspended{background:color-mix(in srgb, var(--purple) 18%, transparent);color:var(--purple)}.badge-pending{background:color-mix(in srgb, var(--orange) 18%, transparent);color:var(--orange)}.badge-verified{background:color-mix(in srgb, var(--green) 18%, transparent);color:var(--green)}.badge-refunded{background:color-mix(in srgb, var(--purple) 18%, transparent);color:var(--purple)}.badge-paid{background:color-mix(in srgb, var(--green) 18%, transparent);color:var(--green)}.badge-vip{color:#ca8a04;background:#eab3082e}.badge-personaltraining{background:color-mix(in srgb, var(--teal) 18%, transparent);color:var(--teal)}.btn{border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;border-radius:10px;padding:.5rem 1rem;font-size:.88rem;font-weight:500;transition:all .15s}.btn:hover{border-color:var(--primary);background:var(--nav-hover)}.btn-primary{background:linear-gradient(135deg, var(--primary), color-mix(in srgb, var(--primary) 80%, var(--teal)));color:#fff;border-color:#0000}.btn-primary:hover{opacity:.92;box-shadow:0 4px 16px var(--primary-glow);transform:translateY(-1px)}.btn-sm{padding:.4rem .75rem;font-size:.8rem}.btn-lg{width:100%;margin-top:1rem;padding:.75rem 1.5rem;font-size:1rem}.tabs{flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;display:flex}.tab{border:1px solid var(--border);background:var(--card);color:var(--muted);cursor:pointer;border-radius:10px;padding:.5rem 1rem;font-size:.85rem;transition:all .15s}.tab:hover{border-color:var(--primary);color:var(--text)}.tab.active{background:var(--primary);border-color:var(--primary);color:#fff}.form-grid{grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem;display:grid}.form-grid.single-col{grid-template-columns:1fr}.form-grid input,.form-grid select,.date-input,.toolbar select,.toolbar-field select,.toolbar-field input[type=date],.toolbar-field input[type=text],.toolbar-field input[type=search],.mar-filters select,.mar-filters input{border:1px solid var(--border);background:var(--input-bg);color:var(--text);border-radius:10px;padding:.65rem .9rem;font-size:.9rem;transition:border-color .15s,box-shadow .15s}.form-grid input:focus,.form-grid select:focus,.date-input:focus,.toolbar-field select:focus,.toolbar-field input:focus,.mar-filters select:focus,.mar-filters input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);outline:none}.form-grid label{color:var(--muted);flex-direction:column;gap:.35rem;font-size:.85rem;font-weight:500;display:flex}.form-card{margin-bottom:1.5rem}.checkbox-label{align-items:center;gap:.5rem;padding:.65rem 0;display:flex}.toolbar{margin-bottom:1rem}.attendance-history-toolbar{flex-wrap:wrap;align-items:center;gap:.65rem;margin-bottom:.75rem;display:flex}.attendance-history-search{flex:1;min-width:min(180px,100%)}.actions{flex-wrap:wrap;gap:.5rem;display:flex}.plan-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;display:grid}.plan-card{background:var(--card);border:1px solid var(--border);border-radius:20px;padding:0;transition:transform .25s,box-shadow .25s,border-color .25s;overflow:hidden}.plan-card:hover{box-shadow:0 16px 40px color-mix(in srgb, var(--primary) 14%, transparent);border-color:color-mix(in srgb, var(--primary) 40%, var(--border));transform:translateY(-5px)}.plan-card-inactive{opacity:.72;border-style:dashed}.plan-card-inactive .plan-card-accent{background:linear-gradient(90deg, var(--muted), color-mix(in srgb, var(--muted) 70%, var(--border)))}.plan-card-actions{border-top:1px solid var(--border);margin-top:1rem;padding-top:.75rem}.amount-input-active::placeholder{color:var(--muted)}.plan-card-accent{background:linear-gradient(90deg, var(--primary), var(--teal));height:5px}.plan-card-body{padding:1.35rem 1.5rem 1.5rem}.plan-header{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.65rem;display:flex}.plan-header h3{letter-spacing:-.02em;font-size:1.2rem;font-weight:800}.plan-desc{color:var(--muted);margin-bottom:1rem;font-size:.9rem;line-height:1.55}.field-label{flex-direction:column;gap:.35rem;display:flex}.field-error{color:var(--red);margin-top:.15rem;font-size:.78rem}.field-label>span{color:var(--muted);font-size:.78rem;font-weight:600}.plan-price-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:.15rem;font-size:.68rem;font-weight:600;display:block}.plan-price{color:var(--text);letter-spacing:-.02em;overflow-wrap:anywhere;word-break:break-word;margin-bottom:.35rem;font-size:clamp(1.2rem,3vw,1.75rem);font-weight:800}.plan-price small{color:var(--muted);font-size:.85rem;font-weight:600}.plan-meta{color:var(--teal);margin-bottom:1rem;font-size:.78rem;font-weight:600}.plan-features{color:var(--text);flex-direction:column;gap:.45rem;font-size:.88rem;list-style:none;display:flex}.plan-features li{align-items:center;gap:.5rem;display:flex}.plan-features li:before{content:"✓";width:20px;height:20px;color:var(--green);background:color-mix(in srgb, var(--green) 15%, transparent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.65rem;font-weight:800;display:flex}.peak-hours{flex-direction:column;gap:.5rem;display:flex}.peak-bar-row{align-items:center;gap:.75rem;display:flex}.peak-label{width:110px;color:var(--muted);font-size:.78rem}.peak-count{text-align:right;width:30px;font-size:.82rem}.peak-bar-track{background:var(--border);border-radius:4px;flex:1;height:8px;overflow:hidden}.peak-bar-fill{background:linear-gradient(90deg, var(--primary), var(--teal));border-radius:4px;min-width:4px;height:100%}.empty{color:var(--muted);font-size:.9rem;line-height:1.5}.table-card>.empty,.card-empty-state{text-align:center;margin:0;padding:1.25rem 1.35rem 1.5rem}.page-loading,.page-error{text-align:center;color:var(--muted);padding:3rem}.page-error{color:var(--red)}.tab-bar{flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem;display:flex}.tab-bar .tab{border:1px solid var(--border);background:var(--card);color:var(--muted);cursor:pointer;border-radius:8px;padding:.5rem 1rem}.tab-bar .tab.active{background:var(--primary);color:#fff;border-color:var(--primary)}.simple-table{border-collapse:collapse;width:100%;font-size:.9rem}.simple-table th,.simple-table td{border-bottom:1px solid var(--border);text-align:left;padding:.6rem .75rem}.simple-table .text-right{text-align:right}.simple-table .total-row td{border-top:2px solid var(--border);padding-top:.85rem}.text-red{color:var(--red)}.settings-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:1.25rem;display:grid}.settings-card{min-width:0;overflow:hidden}.settings-card h3{margin-bottom:1rem;font-size:1.05rem}.settings-card .form-grid{grid-template-columns:1fr}.settings-card .form-grid label.full-width{grid-column:1/-1}.device-detail-grid{grid-template-columns:minmax(8rem,11rem) 1fr;gap:.65rem 1rem;margin:0;font-size:.9rem;display:grid}.device-detail-grid dt{color:var(--muted);margin:0;font-weight:500}.device-detail-grid dd{margin:0}.settings-card input,.settings-card select,.settings-card textarea{box-sizing:border-box;width:100%;max-width:100%}.settings-card .hint{color:var(--muted);word-break:break-word;margin-top:.25rem;font-size:.75rem;display:block}.settings-save-bar{z-index:10;background:linear-gradient(to top, var(--bg) 70%, transparent);margin-top:1rem;padding:.75rem 0;position:sticky;bottom:0}.alert{border-radius:10px;margin-bottom:1rem;padding:.75rem 1rem}.alert-error{background:color-mix(in srgb, var(--red) 12%, transparent);border:1px solid var(--red);color:var(--red)}.table-card{overflow-x:auto}code{background:var(--input-bg);border-radius:4px;padding:.15rem .4rem;font-size:.78rem}@media (width<=1024px){.grid-2{grid-template-columns:1fr}.main-content{padding:1.5rem}}@media (width<=768px){.data-grid-toolbar{flex-direction:column;align-items:stretch}.data-grid-toolbar-left,.data-grid-toolbar-right{width:100%}.data-grid-search{min-width:100%}.data-grid-pagination{flex-wrap:wrap;justify-content:center}.mobile-menu-btn{justify-content:center;align-items:center;display:flex}.sidebar{height:100vh;box-shadow:var(--shadow);position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-overlay.open{display:block}.main-content{padding:4.5rem 1rem 1rem}.main-topbar{display:flex}.form-grid{grid-template-columns:1fr}.page-header h2{font-size:1.4rem}.page-header.row{flex-direction:column;align-items:stretch!important}.settings-grid{grid-template-columns:1fr}.settings-card{padding:1rem}.page-header.row .btn{width:100%}.stat-value{font-size:1.5rem}}@media (width<=480px){.stat-grid{grid-template-columns:repeat(2,1fr)}}.page{max-width:1600px;animation:.35s pageIn}.page .page-header.row{align-items:center}.sidebar-version{text-align:center;padding:0 .15rem;line-height:1.35}.animate-in{animation:.35s pageIn}@keyframes pageIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.stat-card-clickable{cursor:pointer}.stat-card-clickable:hover{border-color:var(--primary);transform:translateY(-3px)}.stat-hint{color:var(--muted);margin-top:.35rem;font-size:.68rem}.filter-bar,.toolbar-row{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1.25rem;display:flex}.toolbar-row .member-search-select{flex:1;min-width:220px}.member-search-select{position:relative}.member-search-input{width:100%}.member-search-list{z-index:20;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);max-height:240px;margin:0;padding:.35rem;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #0000001f}.member-search-list button{text-align:left;border-radius:calc(var(--radius) - 2px);width:100%;color:inherit;cursor:pointer;font:inherit;background:0 0;border:none;grid-template-columns:1fr auto;gap:.15rem .5rem;padding:.5rem .65rem;display:grid}.member-search-list button:hover,.member-search-list button.active{background:color-mix(in srgb, var(--primary) 12%, transparent)}.member-search-list code{color:var(--muted);font-size:.78rem}.member-search-meta{color:var(--muted);grid-column:1/-1;font-size:.75rem}.member-search-empty{color:var(--muted);padding:.65rem;font-size:.85rem}.toolbar-field{color:var(--muted);flex-direction:column;gap:.3rem;font-size:.78rem;display:flex}.chip{border:1px solid var(--border);background:var(--card);color:var(--muted);cursor:pointer;border-radius:999px;padding:.45rem .85rem;font-size:.82rem;transition:all .15s}.chip:hover{border-color:var(--primary);color:var(--text)}.chip-active{background:var(--primary);border-color:var(--primary);color:#fff}.card-desc{color:var(--muted);margin:-.5rem 0 1rem;font-size:.85rem}.table-card{border:1px solid var(--border);padding:0;overflow:hidden}.table-card>h3{margin-bottom:0;padding:1.25rem 1.25rem 0}.table-card .data-grid{border-radius:0 0 16px 16px}.data-grid{background:var(--card);border:1px solid color-mix(in srgb, var(--primary) 22%, var(--border));box-shadow:0 1px 0 color-mix(in srgb, var(--primary) 35%, transparent) inset, 0 8px 24px color-mix(in srgb, var(--primary) 8%, transparent);border-radius:14px;flex-direction:column;gap:0;display:flex;overflow:hidden}.data-grid-toolbar{background:linear-gradient(180deg, color-mix(in srgb, var(--primary) 10%, var(--card)), var(--card));border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.85rem;padding:1rem 1.15rem;display:flex}.data-grid-toolbar-left,.data-grid-toolbar-right{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.data-grid-search{border:1px solid var(--border);background:var(--input-bg);border-radius:10px;align-items:center;gap:.5rem;min-width:min(280px,100%);padding:.45rem .75rem;display:flex}.data-grid-search svg{color:var(--muted);flex-shrink:0}.data-grid-search-input{color:var(--text);background:0 0;border:none;outline:none;width:100%;font-size:.88rem}.data-grid-sort{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.data-grid-sort-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:600}.data-grid-sort select,.data-grid-page-size select{border:1px solid var(--border);background:var(--input-bg);color:var(--text);border-radius:8px;padding:.45rem .65rem;font-size:.82rem}.data-grid-meta{color:var(--muted);font-size:.78rem;font-weight:500}.data-grid-page-size{color:var(--muted);align-items:center;gap:.4rem;font-size:.78rem;display:flex}.data-grid-table-wrap{overflow-x:auto}.data-grid-table{border-collapse:separate;border-spacing:0;width:100%;font-size:.88rem}.data-grid-table thead th{z-index:1;text-align:left;text-transform:uppercase;letter-spacing:.06em;color:color-mix(in srgb, var(--text) 70%, var(--muted));background:color-mix(in srgb, var(--primary) 12%, var(--sidebar));border-bottom:2px solid color-mix(in srgb, var(--primary) 40%, var(--border));padding:.85rem 1rem;font-size:.72rem;font-weight:700;position:sticky;top:0}.data-grid-table tbody td{border-bottom:1px solid var(--border);vertical-align:middle;padding:.85rem 1rem}.data-grid-table tbody tr:nth-child(2n) td{background:color-mix(in srgb, var(--primary) 4%, transparent)}.data-grid-table tbody tr:hover td{background:color-mix(in srgb, var(--primary) 14%, transparent)}.data-grid-table tbody tr.data-grid-row-clickable{cursor:pointer}.data-grid-table tbody tr.data-grid-row-clickable:hover td:first-child{box-shadow:inset 3px 0 0 var(--primary)}.data-grid-empty{text-align:center;color:var(--muted);font-size:.9rem;padding:2.5rem 1rem!important}.data-grid-pagination{border-top:1px solid var(--border);background:color-mix(in srgb, var(--primary) 5%, var(--card));justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem 1.15rem;display:flex}.data-grid-pages{flex-wrap:wrap;gap:.35rem;display:flex}.data-grid-page-btn{border:1px solid var(--border);background:var(--card);min-width:34px;height:34px;color:var(--muted);cursor:pointer;border-radius:8px;padding:0 .5rem;font-size:.82rem;font-weight:600;transition:all .15s}.data-grid-page-btn:hover{border-color:var(--primary);color:var(--text)}.data-grid-page-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.view-toggle{border:1px solid var(--border);background:var(--input-bg);border-radius:10px;display:flex;overflow:hidden}.view-toggle-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:.35rem;padding:.4rem .7rem;font-size:.78rem;font-weight:600;transition:background .15s,color .15s;display:flex}.view-toggle-btn:hover{color:var(--text)}.view-toggle-btn.active{background:var(--primary);color:#fff}.th-sortable{color:inherit;font:inherit;cursor:pointer;text-transform:inherit;letter-spacing:inherit;background:0 0;border:none;align-items:center;gap:.35rem;padding:0;display:inline-flex}.th-sortable:hover,.th-sorted{color:var(--primary)}.th-sort-icon{opacity:.85;font-size:.7rem}.record-card-grid{background:color-mix(in srgb, var(--primary) 3%, var(--card));grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:1rem;padding:1.15rem;display:grid}.record-card-grid-empty{grid-column:1/-1;padding:2.5rem 1rem!important}.record-card{background:var(--card);border:1px solid var(--border);border-radius:16px;min-width:0;max-width:100%;transition:transform .2s,box-shadow .2s,border-color .2s;overflow:hidden}.record-card:hover{box-shadow:0 12px 32px color-mix(in srgb, var(--primary) 12%, transparent);border-color:color-mix(in srgb, var(--primary) 35%, var(--border));transform:translateY(-3px)}.record-card-clickable{cursor:pointer}.record-card-accent{background:linear-gradient(90deg, var(--primary), var(--teal));height:4px}.record-card-body{min-width:0;padding:1.1rem 1.15rem 1.15rem}.record-card-title{letter-spacing:-.02em;overflow-wrap:anywhere;word-break:break-word;margin-bottom:.75rem;font-size:1.05rem;font-weight:800;line-height:1.35}.record-card-fields{flex-direction:column;gap:.5rem;display:flex}.record-card-field{justify-content:space-between;align-items:flex-start;gap:.75rem;font-size:.82rem;display:flex}.record-card-field dt{color:var(--muted);flex-shrink:0;font-weight:600}.record-card-field dd{text-align:right;color:var(--text);overflow-wrap:anywhere;word-break:break-word;font-variant-numeric:tabular-nums;min-width:0;max-width:62%;font-weight:500}.record-card-wrap{min-width:0}.class-event-card{background:var(--card);border:1px solid var(--border);border-radius:18px;transition:transform .2s,box-shadow .2s;overflow:hidden}.class-event-card:hover{box-shadow:var(--shadow);border-color:color-mix(in srgb, var(--primary) 35%, var(--border));transform:translateY(-4px)}.class-event-card-accent{background:linear-gradient(90deg, var(--purple), var(--primary));height:5px}.class-event-card-body{padding:1.25rem}.class-event-card h4{margin-bottom:.35rem;font-size:1.15rem;font-weight:800}.class-event-meta{color:var(--muted);flex-wrap:wrap;gap:.5rem;margin-bottom:.85rem;font-size:.8rem;display:flex}.class-event-meta span{background:var(--input-bg);border:1px solid var(--border);border-radius:8px;align-items:center;gap:.25rem;padding:.2rem .55rem;display:inline-flex}.class-event-enrollment{color:var(--teal);margin-bottom:.75rem;font-size:.88rem;font-weight:700}.class-event-schedules{flex-direction:column;gap:.35rem;display:flex}.class-event-schedule{background:color-mix(in srgb, var(--primary) 10%, var(--input-bg));border:1px solid color-mix(in srgb, var(--primary) 22%, var(--border));color:var(--text);border-radius:8px;padding:.4rem .6rem;font-size:.78rem}.data-table-wrap{flex-direction:column;gap:.75rem;display:flex}.table-toolbar{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.table-count{color:var(--muted);font-size:.78rem}.table-scroll{overflow-x:auto}.data-table{width:100%}.th-sort{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;padding:0}.row-clickable{cursor:pointer;transition:background .12s}.row-clickable:hover td{background:var(--nav-hover)}.empty-cell{text-align:center;color:var(--muted);padding:2rem!important}.role-matrix{flex-direction:column;gap:.65rem;display:flex}.role-card{text-align:left;border:1px solid var(--border);background:var(--card);cursor:pointer;border-radius:12px;width:100%;padding:.85rem 1rem;transition:all .15s}.role-card:hover,.role-card-active{border-color:var(--primary);background:var(--nav-hover)}.role-card-head{justify-content:space-between;align-items:center;display:flex}.role-count{color:var(--muted);font-size:.75rem}.perm-list{flex-wrap:wrap;gap:.35rem;margin-top:.65rem;list-style:none;display:flex}.perm-list li code{background:var(--input-bg);border-radius:6px;padding:.15rem .45rem;font-size:.7rem}.modal-overlay{z-index:500;background:#0000008c;justify-content:center;align-items:center;padding:1rem;animation:.2s fadeOverlay;display:flex;position:fixed;inset:0}@keyframes fadeOverlay{0%{opacity:0}to{opacity:1}}.modal-panel{background:var(--card);border:1px solid var(--border);border-radius:16px;width:min(520px,100%);max-height:90vh;animation:.25s modalIn;overflow:auto}.modal-wide{width:min(720px,100%)}@keyframes modalIn{0%{opacity:0;transform:scale(.96)translateY(8px)}to{opacity:1;transform:none}}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.modal-header h3{font-size:1.05rem;font-weight:700}.modal-close{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:1.5rem;line-height:1}.modal-body{padding:1.25rem}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:.5rem;padding:1rem 1.25rem;display:flex}.toast-stack{z-index:600;flex-direction:column;gap:.5rem;display:flex;position:fixed;top:1rem;right:1rem}.toast{border:1px solid var(--border);background:var(--card);border-radius:10px;min-width:240px;padding:.75rem 1rem;font-size:.85rem;animation:.3s toastIn}@keyframes toastIn{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:none}}.toast-success{border-color:var(--green);color:var(--green)}.toast-error{border-color:var(--red);color:var(--red)}.toast-info{border-color:var(--primary);color:var(--primary)}.clock-type-toggle{gap:.5rem;display:flex}.detail-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.payslip-total{white-space:nowrap;color:var(--primary);font-variant-numeric:tabular-nums;flex-wrap:nowrap;align-items:baseline;gap:.45rem;margin-bottom:1rem;font-size:1.35rem;font-weight:800;display:flex}.payslip-total .stat-money-prefix{opacity:.85;font-size:.75em}.payslip-total .stat-money-amount{letter-spacing:-.03em}.schedule-list{flex-direction:column;gap:.35rem;display:flex}.schedule-chip{background:color-mix(in srgb, var(--primary) 10%, var(--input-bg));border:1px solid color-mix(in srgb, var(--primary) 25%, var(--border));color:var(--text);border-radius:8px;padding:.35rem .55rem;font-size:.78rem;line-height:1.45;display:inline-block}.pos-sale-layout{grid-template-columns:1fr;gap:1.25rem;margin-bottom:1.25rem;display:grid}.pos-sale-layout.has-success{grid-template-columns:1fr 1fr;align-items:start}@media (width<=1024px){.pos-sale-layout.has-success{grid-template-columns:1fr}}.sale-completed-panel{text-align:center;padding:1.75rem 1.5rem}.sale-completed-icon{color:#fff;background:#22c55e;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;margin:0 auto 1rem;display:flex;box-shadow:0 8px 24px #22c55e59}.sale-completed-title{color:var(--text);margin:0 0 .35rem;font-size:1.25rem;font-weight:700}.sale-completed-sub{color:var(--muted);margin:0 0 1.25rem;font-size:.95rem}.sale-completed-summary{text-align:left;background:var(--input-bg);border:1px solid var(--border);border-radius:12px;grid-template-columns:1fr 1fr;gap:.75rem 1.25rem;max-width:420px;margin:0 auto 1.5rem;padding:1rem 1.15rem;display:grid}.sale-completed-summary dt{color:var(--muted);margin-bottom:.15rem;font-size:.75rem}.sale-completed-summary dd{margin:0;font-size:.95rem;font-weight:600}.sale-completed-actions{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.sale-completed-actions .btn{align-items:center;gap:.45rem;display:inline-flex}.sale-completed-new{color:var(--primary);border:1.5px solid var(--primary);background:#fff}.sale-completed-new:hover{background:color-mix(in srgb, var(--primary) 8%, #fff)}@media (width<=480px){.sale-completed-summary{grid-template-columns:1fr}}.mar-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.25rem;display:flex}.mar-header .page-header{flex:1;margin-bottom:0}.mar-summary{flex-wrap:wrap;align-items:center;gap:.5rem;padding-top:.35rem;display:flex}.mar-chip{color:#fff;white-space:nowrap;border-radius:8px;align-items:center;padding:.45rem .85rem;font-size:.82rem;font-weight:600;display:inline-flex}.mar-chip-total{background:#1e3a8a}.mar-chip-male{background:#3b82f6}.mar-chip-female{background:#ec4899}.mar-filters{margin-bottom:1rem;padding:1rem 1.15rem}.mar-filters .form-grid select,.mar-filters .form-grid input{appearance:auto;width:100%;min-height:42px}.mar-search-field{grid-column:span 2;min-width:200px}.mar-filter-actions{flex-wrap:wrap;align-items:center;gap:.5rem;padding-bottom:.15rem;display:flex}.mar-btn-search{min-width:100px}.mar-btn-reset{border-color:color-mix(in srgb, var(--primary) 35%, var(--border));color:var(--primary)}.mar-table-card{padding-top:.85rem}.mar-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.85rem;display:flex}.mar-page-size{color:var(--muted);align-items:center;gap:.45rem;font-size:.85rem;display:inline-flex}.mar-page-size select{border:1px solid var(--border);background:var(--input-bg);color:var(--text);border-radius:6px;padding:.35rem .5rem}.mar-export-btns{flex-wrap:wrap;gap:.4rem;display:flex}.mar-export{padding:.4rem .75rem;font-size:.8rem;font-weight:600;color:#fff!important;border:none!important}.mar-export:disabled{opacity:.45;cursor:not-allowed}.mar-export-copy{background:#64748b!important}.mar-export-excel{background:#16a34a!important}.mar-export-pdf{background:#dc2626!important}.mar-export-print{background:#7c3aed!important}.mar-export-csv{background:#ea580c!important}.mar-table thead th{color:#fff;background:#1e3a8a}.mar-table thead .th-sortable{color:#fff;width:100%}.mar-table thead .th-sort-icon{color:#93c5fd}.mar-name-cell{align-items:center;gap:.55rem;display:inline-flex;position:relative}.mar-avatar{background:#cbd5e1 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2364748b'%3E%3Cpath d='M12 12c2.7 0 4.8-2.1 4.8-4.8S14.7 2.4 12 2.4 7.2 4.5 7.2 7.2 9.3 12 12 12zm0 2.4c-3.2 0-9.6 1.6-9.6 4.8v2.4h19.2v-2.4c0-3.2-6.4-4.8-9.6-4.8z'/%3E%3C/svg%3E") 50% 6px/70% no-repeat;border-radius:50%;flex-shrink:0;width:28px;height:28px}.mar-online-dot{border:1.5px solid var(--card,#fff);background:#22c55e;border-radius:50%;width:8px;height:8px;position:absolute;bottom:0;left:20px}.mar-pill{color:#fff;border-radius:999px;padding:.2rem .55rem;font-size:.75rem;font-weight:600;display:inline-block}.mar-pill-fees{background:#15803d}.mar-pill-status{background:#22c55e}.mar-footer{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-top:.85rem;font-size:.85rem;display:flex}.mar-pagination{flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.mar-page-btn.active{background:var(--primary)!important;border-color:var(--primary)!important;color:#fff!important}.mar-page-ellipsis{color:var(--muted);padding:0 .25rem}@media (width<=720px){.mar-search-field{grid-column:span 1}.mar-header{flex-direction:column}}.logs-tabs,.logs-filters{margin-bottom:1rem}.logs-filter-row{flex-wrap:wrap;align-items:flex-end;gap:.75rem;display:flex}.logs-filter-row>.field-label{flex:140px;min-width:140px;max-width:200px}.logs-filter-row>.field-label select,.logs-filter-row>.field-label input{width:100%;min-height:42px}.logs-search-group{flex-wrap:wrap;flex:2 320px;align-items:center;gap:.5rem;min-width:280px;display:flex}.logs-search-input{border:1px solid var(--border);background:var(--input-bg);min-width:180px;min-height:42px;color:var(--text);border-radius:10px;flex:180px;padding:.65rem .9rem;font-size:.9rem}.logs-search-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);outline:none}.logs-search-group .btn{align-self:stretch;min-height:42px}.logs-audit-note{color:var(--muted);margin:1rem 0 0;font-size:.82rem}.logs-pill{color:#fff;white-space:nowrap;border-radius:999px;align-items:center;padding:.2rem .65rem;font-size:.75rem;font-weight:700;display:inline-flex}.logs-pill-success{background:#16a34a}.logs-pill-info{background:#3b82f6}.logs-pill-warn{background:#d97706}.logs-pill-danger{background:#dc2626}.logs-detail-btn{border:1px solid var(--border);background:var(--card);width:34px;height:34px;color:var(--primary);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.logs-detail-btn:hover{border-color:var(--primary);background:var(--nav-hover)}.logs-modal-overlay{z-index:80;background:#0f172a73;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.logs-modal{width:min(560px,100%);max-height:min(85vh,720px);padding:1.25rem;overflow:auto}.logs-modal-header{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.logs-modal-header h3{margin:0}.logs-detail-grid{grid-template-columns:1fr 1fr;gap:.85rem 1rem;margin:0;display:grid}.logs-detail-grid dt{color:var(--muted);margin-bottom:.2rem;font-size:.75rem;font-weight:600}.logs-detail-grid dd{color:var(--text);margin:0;font-size:.92rem}.logs-detail-full{grid-column:1/-1}@media (width<=640px){.logs-detail-grid{grid-template-columns:1fr}}.fpc-filters{margin-bottom:1rem;padding:1rem 1.15rem}.fpc-filter-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));align-items:end;gap:.75rem;margin-bottom:0!important}.fpc-filter-actions{flex-wrap:wrap;align-items:end;gap:.5rem;padding-bottom:.1rem;display:flex}.fpc-calendar-card{padding:1rem 1.15rem 1.25rem;overflow:auto}.fpc-nav{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.fpc-month-title{color:var(--text);text-align:center;flex:1;font-size:1.15rem;font-weight:650}.fpc-weekdays{border:1px solid var(--border);background:var(--input-bg);border-bottom:none;border-radius:8px 8px 0 0;grid-template-columns:repeat(7,minmax(0,1fr));gap:0;display:grid;overflow:hidden}.fpc-weekday{text-align:center;color:var(--muted);border-right:1px solid var(--border);padding:.55rem .35rem;font-size:.8rem;font-weight:600}.fpc-weekday:last-child{border-right:none}.fpc-grid{border:1px solid var(--border);border-radius:0 0 8px 8px;grid-template-columns:repeat(7,minmax(0,1fr));min-height:420px;display:grid;overflow:hidden}.fpc-cell{border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--card);flex-direction:column;gap:.35rem;min-height:110px;padding:.4rem .45rem .5rem;display:flex}.fpc-cell:nth-child(7n){border-right:none}.fpc-grid>.fpc-cell:nth-last-child(-n+7){border-bottom:none}.fpc-cell-outside{background:var(--input-bg);opacity:.55}.fpc-day-num{color:var(--muted);align-self:flex-end;font-size:.8rem;font-weight:600;line-height:1}.fpc-cell:not(.fpc-cell-outside) .fpc-day-num{color:var(--text)}.fpc-chips{flex-direction:column;gap:.28rem;min-width:0;display:flex}.fpc-chip{color:var(--primary);background:var(--primary-glow);white-space:nowrap;text-overflow:ellipsis;border-radius:4px;padding:.2rem .45rem;font-size:.72rem;font-weight:600;line-height:1.35;display:block;overflow:hidden}.fpc-more{color:var(--primary);cursor:pointer;text-align:left;background:0 0;border:none;padding:.1rem .15rem;font-size:.72rem;font-weight:650}.fpc-more:hover{text-decoration:underline}.fpc-legend{color:var(--muted);align-items:center;gap:.5rem;margin-top:.9rem;font-size:.85rem;display:flex}.fpc-legend-dot{background:var(--primary);border-radius:50%;flex-shrink:0;width:10px;height:10px}@media (width<=900px){.fpc-cell{min-height:88px;padding:.3rem}.fpc-chip{padding:.15rem .3rem;font-size:.65rem}.fpc-month-title{font-size:1rem}}@media (width<=640px){.fpc-nav{flex-wrap:wrap;justify-content:center}.fpc-weekday{padding:.4rem .15rem;font-size:.7rem}.fpc-cell{min-height:72px}}.dash-section{margin-bottom:1.25rem}.dash-widget-header{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.dash-widget-header h3{letter-spacing:.04em;text-transform:uppercase;margin-bottom:0;font-size:.92rem;font-weight:700}.dash-widget-link{color:var(--primary);white-space:nowrap;font-size:.82rem;font-weight:600;text-decoration:none}.dash-widget-link:hover{color:var(--primary-hover);text-decoration:underline}.dash-widget-footer{border-top:1px solid var(--border);justify-content:flex-end;margin-top:.75rem;padding-top:.75rem;display:flex}.dash-period-select{background:var(--input-bg);border:1px solid var(--border);color:var(--primary);cursor:pointer;border-radius:8px;padding:.3rem .55rem;font-size:.8rem;font-weight:600}.activity-list{flex-direction:column;gap:.85rem;max-height:360px;list-style:none;display:flex;overflow-y:auto}.activity-row{align-items:flex-start;gap:.85rem;display:flex}.activity-icon{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.activity-icon-green{background:var(--green)}.activity-icon-blue{background:var(--primary)}.activity-icon-red{background:var(--red)}.activity-icon-orange{background:var(--orange)}.activity-icon-purple{background:var(--purple)}.activity-icon-teal{background:var(--teal)}.activity-body{flex:1;min-width:0}.activity-desc{color:var(--text);font-size:.9rem;font-weight:600;line-height:1.35}.activity-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.25rem;margin-top:.2rem;font-size:.75rem;display:flex}.activity-dot{opacity:.6}.expire-list{flex-direction:column;gap:.35rem;max-height:320px;list-style:none;display:flex;overflow-y:auto}.expire-row{width:100%;color:var(--text);cursor:pointer;text-align:left;font:inherit;background:0 0;border:none;border-radius:10px;grid-template-columns:auto 1fr auto auto;align-items:center;gap:.75rem;padding:.55rem .4rem;display:grid}.expire-row:hover{background:var(--nav-hover)}.expire-avatar{background:color-mix(in srgb, var(--primary) 18%, transparent);width:36px;height:36px;color:var(--primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.72rem;font-weight:700;display:flex}.expire-info{flex-direction:column;min-width:0;display:flex}.expire-name{white-space:nowrap;text-overflow:ellipsis;font-size:.88rem;font-weight:600;overflow:hidden}.expire-plan{color:var(--muted);font-size:.75rem}.expire-date{color:var(--muted);white-space:nowrap;font-size:.78rem}.expire-badge{white-space:nowrap;border-radius:20px;padding:.2rem .55rem;font-size:.7rem;font-weight:700;display:inline-block}.expire-badge-urgent{background:color-mix(in srgb, var(--red) 18%, transparent);color:var(--red)}.expire-badge-soon{background:color-mix(in srgb, var(--orange) 18%, transparent);color:var(--orange)}.expire-badge-warn{color:#ca8a04;background:#eab3082e}.expire-badge-ok{background:color-mix(in srgb, var(--green) 18%, transparent);color:var(--green)}.revenue-compare-stats{flex-wrap:wrap;align-items:flex-end;gap:1.25rem 1.75rem;margin-bottom:1rem;display:flex}.revenue-compare-value{font-variant-numeric:tabular-nums;font-size:1.15rem;font-weight:700;display:block}.revenue-compare-value.muted{color:var(--muted);font-weight:600}.revenue-compare-label{color:var(--muted);margin-top:.15rem;font-size:.75rem;display:block}.revenue-compare-growth{font-size:.88rem;font-weight:700}.revenue-compare-growth.up{color:var(--green)}.revenue-compare-growth.down{color:var(--red)}.quick-actions-grid{grid-template-columns:repeat(4,1fr);gap:.85rem;display:grid}.quick-action{color:var(--text);border-radius:12px;flex-direction:column;align-items:center;gap:.55rem;padding:.35rem;text-decoration:none;transition:background .15s;display:flex}.quick-action:hover{background:var(--nav-hover)}.quick-action-icon{color:#fff;border-radius:14px;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.quick-action-blue .quick-action-icon{background:var(--primary)}.quick-action-green .quick-action-icon{background:var(--green)}.quick-action-teal .quick-action-icon{background:var(--teal)}.quick-action-orange .quick-action-icon{background:var(--orange)}.quick-action-purple .quick-action-icon{background:var(--purple)}.quick-action-yellow .quick-action-icon{color:#0f172a;background:#eab308}.quick-action-label{text-align:center;font-size:.75rem;font-weight:600;line-height:1.25}@media (width<=900px){.expire-row{grid-template-rows:auto auto;grid-template-columns:auto 1fr auto}.expire-date{grid-area:2/2}.expire-badge{grid-area:1/3/span 2}.quick-actions-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.quick-actions-grid{grid-template-columns:repeat(2,1fr)}}.fee-notif{flex-shrink:0;align-self:center;position:relative}.fee-notif-bell{border:1px solid var(--border);background:var(--card);width:2.5rem;height:2.5rem;color:var(--muted);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;transition:color .15s,border-color .15s,background .15s;display:inline-flex;position:relative}.fee-notif-bell:hover,.fee-notif-bell.open{color:var(--primary);border-color:color-mix(in srgb, var(--primary) 35%, var(--border));background:color-mix(in srgb, var(--primary) 8%, var(--card))}.fee-notif-badge{background:var(--red);color:#fff;text-align:center;min-width:1.15rem;height:1.15rem;box-shadow:0 0 0 2px var(--card);border-radius:999px;padding:0 .3rem;font-size:.65rem;font-weight:700;line-height:1.15rem;position:absolute;top:-.3rem;right:-.3rem}.fee-notif-panel{z-index:40;background:var(--card);border:1px solid var(--border);width:min(420px,100vw - 2rem);box-shadow:0 12px 40px color-mix(in srgb, var(--text) 12%, transparent);border-radius:14px;flex-direction:column;max-height:min(28rem,70vh);display:flex;position:absolute;top:calc(100% + .5rem);right:0;overflow:hidden}.fee-notif-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.75rem;padding:.9rem 1rem;display:flex}.fee-notif-header h3{color:var(--text);margin:0;font-size:.95rem;font-weight:700}.fee-notif-mark-all{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:0;font-size:.8rem;font-weight:600}.fee-notif-mark-all:disabled{opacity:.45;cursor:default}.fee-notif-list{flex:1;overflow-y:auto}.fee-notif-empty{text-align:center;color:var(--muted);margin:0;padding:1.5rem 1rem;font-size:.875rem}.fee-notif-item{text-align:left;border:none;border-bottom:1px solid var(--border);cursor:pointer;width:100%;color:inherit;background:0 0;align-items:flex-start;gap:.75rem;padding:.85rem 1rem;transition:background .15s;display:flex}.fee-notif-item:last-child{border-bottom:none}.fee-notif-item:hover{background:var(--nav-hover)}.fee-notif-item.unread{background:color-mix(in srgb, var(--primary) 4%, transparent)}.fee-notif-icon{border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:2rem;height:2rem;display:inline-flex}.fee-notif-icon.overdue{background:color-mix(in srgb, var(--red) 16%, transparent);color:var(--red)}.fee-notif-icon.upcoming{background:color-mix(in srgb, var(--primary) 16%, transparent);color:var(--primary)}.fee-notif-body{flex-direction:column;flex:1;gap:.2rem;min-width:0;display:flex}.fee-notif-top{flex-wrap:wrap;align-items:center;gap:.4rem .55rem;display:flex}.fee-notif-member{color:var(--text);font-size:.875rem;font-weight:700}.fee-notif-code{color:var(--muted);margin-left:.35rem;font-size:.78rem;font-weight:500}.fee-notif-tag{white-space:nowrap;border-radius:999px;padding:.15rem .55rem;font-size:.68rem;font-weight:700}.fee-notif-tag.overdue{background:color-mix(in srgb, var(--red) 16%, transparent);color:var(--red)}.fee-notif-tag.upcoming{background:color-mix(in srgb, var(--primary) 16%, transparent);color:var(--primary)}.fee-notif-time{color:var(--muted);white-space:nowrap;margin-left:auto;font-size:.72rem}.fee-notif-meta{color:var(--muted);font-size:.78rem;line-height:1.35}.fee-notif-dot{border-radius:999px;flex-shrink:0;width:.45rem;height:.45rem;margin-top:.45rem}.fee-notif-dot.overdue{background:var(--red)}.fee-notif-dot.upcoming{background:var(--primary)}.fee-notif-footer{border-top:1px solid var(--border);text-align:center;padding:.75rem 1rem}.fee-notif-view-all{color:var(--primary);font-size:.85rem;font-weight:600;text-decoration:none}.fee-notif-view-all:hover{text-decoration:underline}@media (width<=640px){.fee-notif-panel{width:auto;max-height:70vh;position:fixed;inset:auto .75rem .75rem}}.reports-page .reports-export-bar{flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin-bottom:.75rem;padding:.85rem 1rem;display:flex}.reports-header-actions{flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}.reports-date-range{border:1px solid var(--border);background:var(--input-bg);border-radius:8px;align-items:center;gap:.35rem;padding:.3rem .55rem;display:inline-flex}.reports-date-range .date-input{color:var(--text);background:0 0;border:none;min-width:0;padding:.15rem 0;font-size:.82rem}.reports-date-sep{color:var(--muted);font-size:.85rem}.reports-filters-btn{border:1px solid var(--border);background:var(--card);color:var(--text);align-items:center;gap:.4rem;padding:.45rem .85rem;font-size:.85rem;font-weight:600;display:inline-flex}.reports-filters-btn:hover{border-color:var(--primary);color:var(--primary)}.reports-export-label{color:var(--text);white-space:nowrap;font-size:.9rem;font-weight:600}.reports-export-actions{flex:auto}.reports-export-refresh{background:color-mix(in srgb, var(--primary) 85%, #1e40af)!important}.reports-search{flex:0 220px;min-width:180px;margin-left:auto}.reports-search input{border:1px solid var(--border);background:var(--input-bg);width:100%;color:var(--text);border-radius:8px;padding:.45rem .75rem;font-size:.85rem}.reports-applied-filters{border:1px solid color-mix(in srgb, var(--primary) 35%, var(--border));background:color-mix(in srgb, var(--primary) 12%, var(--card));color:var(--text);border-radius:8px;flex-wrap:wrap;align-items:center;gap:.45rem .65rem;margin-bottom:1rem;padding:.65rem 1rem;font-size:.82rem;display:flex}.reports-applied-info{background:var(--primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:.7rem;font-style:italic;font-weight:700;display:inline-flex}.reports-applied-label{color:var(--text);white-space:nowrap;font-weight:600}.reports-filter-chips{flex-wrap:wrap;flex:280px;align-items:center;gap:.35rem .5rem;display:flex}.reports-chip-wrap{position:relative}.reports-chip{border:1px solid color-mix(in srgb, var(--primary) 30%, var(--border));background:color-mix(in srgb, var(--primary) 8%, var(--card));color:var(--text);cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:.25rem;padding:.25rem .55rem;font-size:.78rem;font-weight:500;display:inline-flex}.reports-chip:hover,.reports-chip-wrap.open .reports-chip{border-color:var(--primary);color:var(--primary)}.reports-chip-chevron{opacity:.75;transition:transform .15s}.reports-chip-chevron.open{transform:rotate(180deg)}.reports-chip-menu{z-index:40;border:1px solid var(--border);background:var(--card);border-radius:8px;flex-direction:column;gap:.5rem;min-width:200px;padding:.65rem;display:flex;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 8px 24px #00000040}.reports-chip-menu label{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.75rem;display:flex}.reports-chip-menu select,.reports-chip-menu .date-input{border:1px solid var(--border);background:var(--input-bg);width:100%;color:var(--text);border-radius:6px;padding:.4rem .5rem;font-size:.82rem}.reports-clear-all{color:var(--primary);cursor:pointer;white-space:nowrap;background:0 0;border:none;margin-left:auto;padding:.15rem .25rem;font-size:.82rem;font-weight:600}.reports-clear-all:hover{text-decoration:underline}.reports-filters-form{gap:.85rem}.reports-empty{text-align:center;color:var(--muted);padding:2rem}@media (width<=720px){.reports-export-bar{flex-direction:column;align-items:stretch}.reports-search{flex:auto;min-width:0;margin-left:0}.reports-header-actions{width:100%}.reports-date-range{flex:auto}}.public-portal{background:var(--bg);--portal-gradient:linear-gradient(135deg, color-mix(in srgb, var(--primary) 22%, transparent), color-mix(in srgb, var(--teal) 14%, transparent));--portal-glow:0 20px 50px color-mix(in srgb, var(--primary) 18%, transparent);flex-direction:column;min-height:100vh;display:flex}.gym-display-portal .gym-display{flex:1}.public-nav{border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--card) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:50;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1.25rem;display:flex;position:sticky;top:0}.public-nav-brand{color:var(--text);align-items:center;gap:.6rem;font-size:1.05rem;font-weight:800;text-decoration:none;display:flex}.public-nav-logo{background:var(--portal-gradient);border:1px solid color-mix(in srgb, var(--primary) 35%, var(--border));border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.public-nav-links{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.public-nav-links a{color:var(--muted);white-space:nowrap;border-radius:8px;padding:.45rem .85rem;font-size:.88rem;font-weight:600;text-decoration:none}.public-nav-links a:hover,.public-nav-links a.active{color:var(--primary);background:color-mix(in srgb, var(--primary) 12%, transparent)}.public-nav-staff{border:1px solid var(--border)}.public-portal-main{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:1.25rem}.public-hero{border:1px solid color-mix(in srgb, var(--primary) 25%, var(--border));background:radial-gradient(ellipse 80% 60% at 100% 0%, color-mix(in srgb, var(--primary) 20%, transparent), transparent 55%), radial-gradient(ellipse 60% 50% at 0% 100%, color-mix(in srgb, var(--teal) 15%, transparent), transparent 50%), var(--card);box-shadow:var(--shadow);border-radius:24px;margin-bottom:2rem;padding:2rem 1.75rem}.public-hero-badge{letter-spacing:.04em;text-transform:uppercase;color:var(--primary);background:color-mix(in srgb, var(--primary) 14%, transparent);border:1px solid color-mix(in srgb, var(--primary) 30%, transparent);border-radius:999px;align-items:center;gap:.35rem;margin-bottom:.85rem;padding:.35rem .75rem;font-size:.72rem;font-weight:700;display:inline-flex}.public-hero h1{letter-spacing:-.02em;margin-bottom:.5rem;font-size:clamp(1.75rem,4vw,2.35rem);font-weight:800}.public-hero p{color:var(--muted);max-width:560px;font-size:1rem;line-height:1.6}.public-hero-stats{border-top:1px solid var(--border);flex-wrap:wrap;gap:1.5rem;margin-top:1.25rem;padding-top:1.25rem;display:flex}.public-hero-stat{flex-direction:column;gap:.15rem;display:flex}.public-hero-stat strong{color:var(--text);font-size:1.35rem;font-weight:800}.public-hero-stat span{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:.78rem}.public-footer{text-align:center;color:var(--muted);border-top:1px solid var(--border);padding:1.25rem;font-size:.8rem}.membership-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));align-items:stretch;gap:1.5rem;display:grid}.membership-card{background:var(--card);border:1px solid var(--border);border-radius:22px;flex-direction:column;padding:0;transition:transform .25s,box-shadow .25s,border-color .25s;display:flex;position:relative;overflow:hidden}.membership-card:hover{box-shadow:var(--portal-glow);border-color:color-mix(in srgb, var(--primary) 40%, var(--border));transform:translateY(-6px)}.membership-card.featured{border-color:color-mix(in srgb, var(--primary) 55%, var(--border));box-shadow:var(--portal-glow)}.membership-card-accent{background:var(--accent-gradient,var(--portal-gradient));height:6px}.membership-card-body{flex-direction:column;flex:1;padding:1.5rem 1.5rem 1.25rem;display:flex}.membership-card-top{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:1rem;display:flex}.membership-card-icon{background:var(--accent-soft,color-mix(in srgb, var(--primary) 12%, transparent));border:1px solid color-mix(in srgb, var(--primary) 25%, var(--border));border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-size:1.5rem;display:flex}.membership-card-badges{flex-direction:column;align-items:flex-end;gap:.35rem;display:flex}.membership-popular{letter-spacing:.06em;text-transform:uppercase;color:#fff;background:linear-gradient(135deg, var(--primary), var(--teal));border-radius:999px;padding:.25rem .6rem;font-size:.68rem;font-weight:800}.membership-category{text-transform:uppercase;letter-spacing:.04em;background:var(--accent-soft,color-mix(in srgb, var(--primary) 12%, transparent));color:var(--accent-color,var(--primary));border:1px solid color-mix(in srgb, var(--accent-color,var(--primary)) 30%, var(--border));border-radius:999px;padding:.3rem .65rem;font-size:.72rem;font-weight:700}.membership-card h3{letter-spacing:-.02em;margin-bottom:.5rem;font-size:1.35rem;font-weight:800}.membership-desc{color:var(--muted);flex:1;margin-bottom:1.25rem;font-size:.9rem;line-height:1.55}.membership-pricing{background:var(--input-bg);border:1px solid var(--border);border-radius:16px;margin-bottom:1.25rem;padding:1rem 1.1rem}.membership-price-row{flex-wrap:wrap;align-items:baseline;gap:.35rem;display:flex}.membership-price{letter-spacing:-.03em;color:var(--text);font-size:2rem;font-weight:800;line-height:1}.membership-price-currency{color:var(--muted);font-size:.95rem;font-weight:700}.membership-price-period{color:var(--muted);margin-top:.35rem;font-size:.82rem}.membership-per-day{color:var(--teal);background:color-mix(in srgb, var(--teal) 12%, transparent);border-radius:8px;margin-top:.5rem;padding:.25rem .55rem;font-size:.75rem;font-weight:600;display:inline-block}.membership-features{flex-direction:column;gap:.55rem;margin-bottom:1.25rem;list-style:none;display:flex}.membership-features li{color:var(--text);align-items:center;gap:.6rem;font-size:.88rem;display:flex}.membership-features li:before{content:"✓";width:22px;height:22px;color:var(--green);background:color-mix(in srgb, var(--green) 15%, transparent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.7rem;font-weight:800;display:flex}.membership-card-cta{cursor:pointer;text-align:center;color:#fff;background:linear-gradient(135deg, var(--primary), color-mix(in srgb, var(--primary) 70%, var(--teal)));border:none;border-radius:12px;width:100%;padding:.75rem 1rem;font-size:.9rem;font-weight:700;text-decoration:none;transition:opacity .2s,transform .2s}.membership-card-cta:hover{opacity:.92;transform:scale(1.01)}.membership-card.standard{--accent-color:var(--primary);--accent-soft:color-mix(in srgb, var(--primary) 12%, transparent);--accent-gradient:linear-gradient(90deg, var(--primary), color-mix(in srgb, var(--primary) 60%, var(--teal)))}.membership-card.vip{--accent-color:#ca8a04;--accent-soft:#eab30824;--accent-gradient:linear-gradient(90deg, #eab308, #f97316)}.membership-card.personaltraining{--accent-color:var(--teal);--accent-soft:color-mix(in srgb, var(--teal) 14%, transparent);--accent-gradient:linear-gradient(90deg, var(--teal), var(--primary))}.portal-cta{border:1px solid var(--border);background:linear-gradient(135deg, color-mix(in srgb, var(--primary) 8%, var(--card)), var(--card));border-radius:22px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.25rem;margin-top:2rem;padding:1.75rem;display:flex}.portal-cta-text h3{margin-bottom:.35rem;font-size:1.2rem;font-weight:800}.portal-cta-text p{color:var(--muted);max-width:480px;font-size:.92rem}.portal-cta-actions{flex-wrap:wrap;gap:.75rem;display:flex}.shop-layout{grid-template-columns:1fr 340px;align-items:start;gap:1.5rem;display:grid}.shop-filters{background:var(--input-bg);border:1px solid var(--border);border-radius:16px;flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem;padding:.35rem;display:flex}.shop-filters button{color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;padding:.5rem 1rem;font-size:.85rem;font-weight:600;transition:background .2s,color .2s,border-color .2s}.shop-filters button:hover{color:var(--text);background:var(--card)}.shop-filters button.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 4px 14px color-mix(in srgb, var(--primary) 35%, transparent)}.shop-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1.25rem;display:grid}.shop-product-card{background:var(--card);border:1px solid var(--border);border-radius:20px;flex-direction:column;transition:transform .25s,box-shadow .25s,border-color .25s;display:flex;position:relative;overflow:hidden}.shop-product-card:hover:not(.sold-out){box-shadow:var(--portal-glow);border-color:color-mix(in srgb, var(--primary) 35%, var(--border));transform:translateY(-5px)}.shop-product-card.sold-out{opacity:.72}.shop-product-visual{background:var(--product-gradient,var(--portal-gradient));border-bottom:1px solid var(--border);justify-content:center;align-items:center;height:120px;font-size:2.75rem;display:flex;position:relative}.shop-product-visual:after{content:"";background:linear-gradient(180deg, transparent 40%, color-mix(in srgb, var(--card) 30%, transparent));position:absolute;inset:0}.shop-product-visual span{z-index:1;filter:drop-shadow(0 4px 12px #00000026);position:relative}.shop-stock-pill{z-index:2;text-transform:uppercase;letter-spacing:.03em;background:color-mix(in srgb, var(--card) 85%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);color:var(--green);border-radius:999px;padding:.28rem .6rem;font-size:.68rem;font-weight:700;position:absolute;top:.65rem;right:.65rem}.shop-stock-pill.low{color:var(--orange)}.shop-stock-pill.out{color:var(--red)}.shop-product-body{flex-direction:column;flex:1;gap:.45rem;padding:1rem 1.1rem 1.1rem;display:flex}.shop-product-category{text-transform:uppercase;letter-spacing:.04em;color:var(--primary);background:color-mix(in srgb, var(--primary) 12%, transparent);border-radius:8px;align-self:flex-start;padding:.22rem .55rem;font-size:.68rem;font-weight:700;display:inline-flex}.shop-product-card h3{letter-spacing:-.01em;font-size:1rem;font-weight:700;line-height:1.35}.shop-product-price-row{justify-content:space-between;align-items:baseline;gap:.5rem;margin-top:auto;padding-top:.5rem;display:flex}.shop-product-price{color:var(--text);letter-spacing:-.02em;font-size:1.25rem;font-weight:800}.shop-product-price small{color:var(--muted);font-size:.78rem;font-weight:600}.shop-add-btn{cursor:pointer;color:#fff;background:linear-gradient(135deg, var(--primary), color-mix(in srgb, var(--primary) 75%, var(--teal)));border:none;border-radius:12px;width:100%;margin-top:.75rem;padding:.65rem 1rem;font-size:.85rem;font-weight:700;transition:opacity .2s,transform .15s}.shop-add-btn:hover:not(:disabled){opacity:.9;transform:scale(1.02)}.shop-add-btn:disabled{opacity:.45;cursor:not-allowed;background:var(--border);color:var(--muted)}.shop-cart{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:22px;padding:0;position:sticky;top:72px;overflow:hidden}.shop-cart-header{background:var(--portal-gradient);border-bottom:1px solid var(--border);padding:1.1rem 1.25rem}.shop-cart-header h3{align-items:center;gap:.5rem;font-size:1.05rem;font-weight:800;display:flex}.shop-cart-count{color:#fff;background:var(--primary);border-radius:999px;justify-content:center;align-items:center;min-width:24px;height:24px;padding:0 .4rem;font-size:.75rem;font-weight:800;display:inline-flex}.shop-cart-body{padding:1rem 1.25rem 1.25rem}.shop-cart-item{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.75rem 0;font-size:.88rem;display:flex}.shop-cart-item-info{flex-direction:column;gap:.15rem;min-width:0;display:flex}.shop-cart-item-name{font-weight:600}.shop-cart-item-unit{color:var(--muted);font-size:.75rem}.shop-cart-item-actions{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:.35rem;display:flex}.shop-cart-item-price{color:var(--text);font-weight:700}.shop-qty-controls{align-items:center;gap:.25rem;display:flex}.shop-qty-btn{border:1px solid var(--border);background:var(--input-bg);width:28px;height:28px;color:var(--text);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;font-size:1rem;font-weight:700;line-height:1;display:flex}.shop-qty-btn:hover{border-color:var(--primary);color:var(--primary)}.shop-cart-total{background:var(--input-bg);border:1px solid var(--border);border-radius:14px;justify-content:space-between;align-items:center;margin:1rem 0;padding:.85rem 1rem;font-size:1.05rem;font-weight:800;display:flex}.shop-cart-total span:last-child{color:var(--primary);font-size:1.2rem}.shop-cart-actions{flex-direction:column;gap:.65rem;display:flex}.shop-cart-actions select{border:1px solid var(--border);background:var(--input-bg);width:100%;color:var(--text);border-radius:10px;padding:.6rem .75rem;font-size:.88rem}.shop-cart-actions .btn{width:100%}.shop-kiosk-note{color:var(--muted);background:color-mix(in srgb, var(--primary) 6%, var(--input-bg));border:1px dashed color-mix(in srgb, var(--primary) 35%, var(--border));border-radius:14px;padding:1rem;font-size:.85rem;line-height:1.55}.shop-kiosk-note strong{color:var(--text);margin-bottom:.35rem;display:block}.shop-empty-cart{text-align:center;color:var(--muted);padding:1.5rem .5rem;font-size:.88rem;line-height:1.55}.shop-empty-cart-icon{opacity:.6;margin-bottom:.5rem;font-size:2rem}@media (width<=900px){.shop-layout{grid-template-columns:1fr}.shop-cart{z-index:40;border-radius:22px 22px 0 0;max-height:55vh;position:fixed;inset:auto 0 0;overflow-y:auto;box-shadow:0 -12px 40px #0003}.public-portal-main{padding-bottom:6rem}.portal-cta{flex-direction:column;align-items:flex-start}}@media (width<=640px){.public-nav{padding:.75rem 1rem}.public-nav-links{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;width:100%;padding-bottom:.15rem;overflow-x:auto}.public-nav-links a{flex-shrink:0}.public-hero{padding:1.5rem 1.25rem}.membership-grid,.shop-grid{grid-template-columns:1fr}}.home-hero{text-align:center}.home-public-ctas{justify-content:center;margin-top:1.5rem}.home-staff-hint{color:var(--muted);margin-top:1.25rem;font-size:.9rem}.home-staff-hint a{color:var(--primary);font-weight:600;text-decoration:none}.home-staff-hint a:hover{text-decoration:underline}.home-section-title{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:2rem 0 .75rem;font-size:1.05rem;font-weight:700}.home-tiles{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:1.25rem;margin-top:1rem;display:grid}.home-tile{border:1px solid var(--border);background:var(--card);color:inherit;border-radius:18px;flex-direction:column;gap:.65rem;padding:1.5rem;text-decoration:none;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex}.home-tile:hover{border-color:color-mix(in srgb, var(--primary) 35%, var(--border));box-shadow:var(--shadow);transform:translateY(-3px)}.home-tile-icon{font-size:2rem}.home-tile h3{margin:0;font-size:1.1rem}.home-tile p{color:var(--muted);margin:0;font-size:.92rem;line-height:1.45}.home-tile-link{color:var(--primary);margin-top:auto;padding-top:.5rem;font-size:.88rem;font-weight:700}.login-page{background:var(--bg);width:100%;min-height:100vh;display:flex}.login-brand-panel{background:linear-gradient(145deg,#0b1220 0%,#132a4a 45%,#0c4a6e 100%);flex-direction:column;flex:1.1;justify-content:space-between;padding:3rem;display:flex;position:relative;overflow:hidden}.login-brand-panel:before{content:"";pointer-events:none;background:radial-gradient(circle,#3b82f62e 0%,#0000 70%);width:75%;height:75%;position:absolute;top:-45%;right:-25%}.login-brand-panel:after{content:"";pointer-events:none;background:radial-gradient(circle,#14b8a61f 0%,#0000 70%);width:55%;height:55%;position:absolute;bottom:-25%;left:-15%}.login-brand-content{z-index:1;max-width:520px;position:relative}.login-logo{align-items:center;gap:1rem;margin-bottom:2.5rem;display:flex}.login-logo-icon{background:#ffffff14;border:1px solid #ffffff1f;border-radius:16px;justify-content:center;align-items:center;width:56px;height:56px;font-size:1.75rem;display:flex;box-shadow:0 8px 24px #0003}.login-logo-text-wrap{flex-direction:column;gap:.15rem;display:flex}.login-logo-text{letter-spacing:.08em;color:#fff;font-size:2rem;font-weight:800}.login-logo-sub{color:#e2e8f0bf;letter-spacing:.02em;font-size:.82rem}.login-tagline{color:#fff;margin-bottom:1rem;font-size:2rem;font-weight:700;line-height:1.25}.login-description{color:#94a3b8;margin-bottom:2.25rem;font-size:1.02rem;line-height:1.7}.login-features{flex-direction:column;gap:1rem;display:flex}.login-feature{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff0f;border:1px solid #ffffff1a;border-radius:14px;align-items:flex-start;gap:1rem;padding:1rem 1.15rem;display:flex}.login-feature-icon{background:#3b82f626;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.35rem;display:flex}.login-feature strong{color:#e2e8f0;margin-bottom:.15rem;font-size:.95rem;display:block}.login-feature p{color:#64748b;margin:0;font-size:.85rem}.login-brand-footer{z-index:1;position:relative}.login-brand-footer p{color:#64748b;font-size:.8rem}.login-developer{color:#ffffff80;margin-top:.45rem;font-size:.78rem}.login-form-panel{background:var(--card,#fff);border-left:1px solid var(--border,#e2e8f0);justify-content:center;align-items:center;width:480px;min-width:400px;padding:2.5rem 2rem;display:flex}[data-theme=dark] .login-form-panel{background:var(--sidebar)}.login-form-wrapper{width:100%;max-width:380px}.login-top-actions{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.login-back-home{color:var(--muted);font-size:.88rem;font-weight:600;text-decoration:none}.login-back-home:hover{color:var(--primary)}.login-visitor-links{border-top:1px solid var(--border);text-align:center;margin-top:1.75rem;padding-top:1.25rem}.login-visitor-links p{color:var(--muted);margin:0 0 .75rem;font-size:.82rem}.login-visitor-actions{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.login-visitor-actions a{border:1px solid var(--border);color:var(--text);background:color-mix(in srgb, var(--card) 80%, transparent);border-radius:8px;padding:.45rem .85rem;font-size:.82rem;font-weight:600;text-decoration:none}.login-visitor-actions a:hover{border-color:var(--primary);color:var(--primary)}.login-public-links{flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;display:flex}.login-public-links a{text-align:center;min-width:0;color:var(--primary,#3b82f6);border:1px solid var(--border,#e2e8f0);background:var(--input-bg,#f8fafc);border-radius:10px;flex:auto;padding:.55rem .75rem;font-size:.82rem;font-weight:600;text-decoration:none}.login-public-links a:hover{border-color:var(--primary,#3b82f6);background:color-mix(in srgb, var(--primary,#3b82f6) 8%, transparent)}.login-member-link{color:var(--primary,#3b82f6);font-size:.85rem;font-weight:600;text-decoration:none}.login-member-link:hover{text-decoration:underline}.login-form-header{margin-bottom:1.75rem}.login-form-header h1{color:var(--text,#0f172a);margin-bottom:.35rem;font-size:1.75rem;font-weight:700}.login-form-header p{color:var(--muted,#64748b);font-size:.92rem}.login-form{flex-direction:column;gap:1.25rem;display:flex}.login-error{color:var(--red,#dc2626);background:color-mix(in srgb, var(--red,#dc2626) 10%, transparent);border:1px solid color-mix(in srgb, var(--red,#dc2626) 35%, transparent);border-radius:10px;padding:.75rem 1rem;font-size:.85rem}.login-field label{color:var(--muted,#334155);margin-bottom:.4rem;font-size:.85rem;font-weight:600;display:block}.login-field input{border:1px solid var(--border,#e2e8f0);background:var(--input-bg,#f8fafc);width:100%;color:var(--text,#0f172a);border-radius:10px;outline:none;padding:.8rem 1rem;font-size:.95rem;transition:border-color .15s,box-shadow .15s}.login-field input:focus{border-color:var(--primary,#3b82f6);box-shadow:0 0 0 3px var(--primary-glow,#3b82f633)}.login-password-wrap{position:relative}.login-password-wrap input{padding-right:2.75rem}.login-toggle-pw{cursor:pointer;opacity:.6;background:0 0;border:none;padding:.25rem;font-size:1rem;position:absolute;top:50%;right:.75rem;transform:translateY(-50%)}.login-toggle-pw:hover{opacity:1}.login-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg, var(--primary,#3b82f6), color-mix(in srgb, var(--primary,#3b82f6) 75%, var(--teal,#14b8a6)));width:100%;box-shadow:0 4px 16px var(--primary-glow,#3b82f640);border:none;border-radius:10px;margin-top:.35rem;padding:.9rem 1rem;font-size:1rem;font-weight:600;transition:transform .1s,opacity .15s,box-shadow .15s}.login-btn:hover:not(:disabled){opacity:.95;transform:translateY(-1px)}.login-btn:active:not(:disabled){transform:scale(.98)}.login-btn:disabled{opacity:.7;cursor:not-allowed}.login-demo-hint{color:var(--muted,#64748b);background:var(--input-bg,#f8fafc);border:1px dashed var(--border,#e2e8f0);border-radius:12px;margin-top:.5rem;padding:.9rem 1rem;font-size:.78rem;line-height:1.65}.login-demo-hint code{font-size:.76rem}@media (width<=900px){.login-page{flex-direction:column}.login-brand-panel{min-height:auto;padding:2rem 1.5rem}.login-tagline{font-size:1.45rem}.login-features{display:none}.login-form-panel{width:100%;min-width:unset;border-left:none;border-top:1px solid var(--border);flex:1;padding:2rem 1.5rem 2.5rem}}@media (width<=480px){.login-logo-text{font-size:1.5rem}.login-form-header h1{font-size:1.45rem}}.gym-display{background:var(--bg);min-height:100vh;color:var(--text)}.gym-display.loading-screen{flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex}.loader{border:4px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:48px;height:48px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.display-header{background:var(--card);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 2rem;display:flex}.display-brand{align-items:center;gap:1rem;display:flex}.display-logo{font-size:2.5rem}.display-brand h1{background:linear-gradient(135deg, var(--primary), var(--teal));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.5rem;font-weight:800}.display-brand p{color:var(--muted);font-size:.85rem}.display-header-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.branch-select{border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;border-radius:10px;padding:.5rem 1rem;font-size:.9rem}.display-main{max-width:1200px;margin:0 auto;padding:2rem}.occupancy-hero{background:linear-gradient(135deg, var(--card) 0%, var(--sidebar) 100%);border:1px solid var(--border);border-radius:24px;margin-bottom:2.5rem;padding:2.5rem;position:relative;overflow:hidden}.occupancy-hero:before{content:"";background:radial-gradient(circle, var(--primary-glow) 0%, transparent 70%);pointer-events:none;width:60%;height:100%;position:absolute;top:-50%;right:-20%}.occupancy-hero.crowd-quiet{--hero-accent:var(--green)}.occupancy-hero.crowd-moderate{--hero-accent:var(--primary)}.occupancy-hero.crowd-busy{--hero-accent:var(--orange)}.occupancy-hero.crowd-packed{--hero-accent:var(--red)}.occupancy-content{z-index:1;margin-bottom:2rem;position:relative}.occupancy-label{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:.5rem;font-size:.9rem}.occupancy-number{align-items:baseline;gap:.75rem;margin-bottom:.5rem;display:flex}.big-count{color:var(--hero-accent,var(--primary));font-size:clamp(4rem,12vw,7rem);font-weight:800;line-height:1}.count-suffix{color:var(--muted);font-size:1.5rem;font-weight:500}.branch-name{margin-bottom:1rem;font-size:1.25rem;font-weight:600}.crowd-badge{background:color-mix(in srgb, var(--hero-accent,var(--primary)) 20%, transparent);color:var(--hero-accent,var(--primary));border:1px solid color-mix(in srgb, var(--hero-accent,var(--primary)) 40%, transparent);border-radius:20px;padding:.4rem 1rem;font-size:.85rem;font-weight:700;display:inline-block}.occupancy-stats{z-index:1;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.5rem;display:grid;position:relative}.occ-stat{background:var(--bg);border:1px solid var(--border);text-align:center;border-radius:16px;padding:1.25rem}.occ-value{color:var(--text);font-size:1.75rem;font-weight:700;display:block}.occ-label{color:var(--muted);font-size:.8rem}.capacity-bar-wrap{z-index:1;position:relative}.capacity-bar{background:var(--border);border-radius:6px;height:12px;margin-bottom:.5rem;overflow:hidden}.capacity-fill{background:linear-gradient(90deg, var(--hero-accent,var(--primary)), var(--teal));border-radius:6px;height:100%;transition:width .6s}.capacity-text{color:var(--muted);font-size:.8rem}.trainers-section{margin-bottom:2.5rem}.section-head{margin-bottom:1.5rem}.section-head h2{margin-bottom:.25rem;font-size:1.75rem;font-weight:700}.section-head p{color:var(--muted)}.trainer-slider{border-radius:20px;margin-bottom:1.5rem;position:relative;overflow:hidden}.trainer-track{transition:transform .6s cubic-bezier(.4,0,.2,1);display:flex}.trainer-slide{min-width:100%;padding:.5rem}.trainer-card-display{background:linear-gradient(135deg, var(--card), var(--sidebar));border:1px solid var(--border);border-radius:20px;align-items:center;gap:2rem;padding:2rem;display:flex}.trainer-avatar{background:linear-gradient(135deg, var(--primary), var(--purple));color:#fff;width:120px;height:120px;box-shadow:0 8px 32px var(--primary-glow);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:2.5rem;font-weight:800;display:flex}.trainer-info h3{margin-bottom:.35rem;font-size:1.75rem;font-weight:700}.trainer-specialty{color:var(--primary);margin-bottom:.25rem;font-size:1.1rem;font-weight:600}.trainer-branch{color:var(--muted);margin-bottom:.75rem}.trainer-status{border-radius:20px;padding:.35rem .85rem;font-size:.8rem;font-weight:600;display:inline-block}.trainer-status.available{color:var(--green);background:#22c55e26}.slider-dots{justify-content:center;gap:.5rem;padding:1rem;display:flex}.slider-dot{background:var(--border);cursor:pointer;border:none;border-radius:50%;width:10px;height:10px;padding:0;transition:all .2s}.slider-dot.active{background:var(--primary);border-radius:5px;width:28px}.trainer-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;display:grid}.trainer-mini-card{background:var(--card);border:1px solid var(--border);border-radius:14px;align-items:center;gap:1rem;padding:1rem 1.25rem;transition:transform .2s,box-shadow .2s;display:flex}.trainer-mini-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.trainer-mini-avatar{background:linear-gradient(135deg, var(--primary), var(--teal));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-weight:700;display:flex}.trainer-mini-card strong{font-size:.95rem;display:block}.trainer-mini-card span{color:var(--muted);font-size:.8rem}.mini-status{color:var(--green);white-space:nowrap;margin-left:auto;font-size:.75rem}.branches-overview h2{margin-bottom:1rem;font-size:1.5rem}.branch-cards{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;display:grid}.branch-live-card{background:var(--card);border:1px solid var(--border);cursor:pointer;text-align:left;color:var(--text);border-radius:16px;padding:1.5rem;transition:all .2s}.branch-live-card:hover{border-color:var(--primary);box-shadow:var(--shadow);transform:translateY(-2px)}.branch-live-card h3{margin-bottom:.5rem}.branch-live-count{color:var(--primary);margin-bottom:.5rem;font-size:1.5rem;font-weight:700}.crowd-tag{border-radius:12px;padding:.25rem .65rem;font-size:.75rem;font-weight:600;display:inline-block}.crowd-tag.crowd-quiet{color:var(--green);background:#22c55e26}.crowd-tag.crowd-moderate{color:var(--primary);background:#3b82f626}.crowd-tag.crowd-busy{color:var(--orange);background:#f9731626}.crowd-tag.crowd-packed{color:var(--red);background:#ef444426}.display-footer{text-align:center;color:var(--muted);border-top:1px solid var(--border);padding:1.5rem;font-size:.8rem}.empty-trainers{text-align:center;color:var(--muted);padding:3rem}@media (width<=768px){.display-header,.display-main{padding:1rem}.occupancy-hero{padding:1.5rem}.occupancy-stats{grid-template-columns:1fr}.trainer-card-display{text-align:center;flex-direction:column;padding:1.5rem}.trainer-avatar{width:90px;height:90px;font-size:2rem}.trainer-grid{grid-template-columns:1fr}.mini-status{display:none}}
