:root{
  --bg:#f5f5f7;--surface:#fff;--surface2:#f0f1f4;--text:#151516;--muted:#6e6e73;--line:#e2e2e7;
  --accent:#0a84ff;--danger:#ff453a;--warn:#ff9f0a;--ok:#30d158;--shadow:0 10px 35px rgba(0,0,0,.08);
  --radius:20px;--safe-bottom:env(safe-area-inset-bottom,0px);--safe-top:env(safe-area-inset-top,0px);
}
*{box-sizing:border-box} html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}
a{color:inherit;text-decoration:none}
.app{min-height:100dvh;padding-bottom:calc(86px + var(--safe-bottom))}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:calc(12px + var(--safe-top)) 16px 12px;background:rgba(245,245,247,.88);backdrop-filter:blur(18px);border-bottom:1px solid rgba(0,0,0,.04)}
.brand{font-size:22px;font-weight:750;letter-spacing:-.03em}.subtle{color:var(--muted);font-size:13px}.top-actions{display:flex;gap:8px}.icon-btn{width:42px;height:42px;border:0;border-radius:50%;background:var(--surface);box-shadow:0 1px 0 rgba(0,0,0,.05);display:grid;place-items:center;position:relative}.badge{position:absolute;right:-2px;top:-2px;min-width:18px;height:18px;padding:0 5px;border-radius:10px;background:var(--danger);color:#fff;font-size:11px;display:grid;place-items:center;font-weight:700}
.page{padding:14px 14px 24px;max-width:1180px;margin:auto}.hero{padding:10px 2px 18px}.hero h1{font-size:30px;margin:0 0 4px;letter-spacing:-.045em}.hero p{margin:0;color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat{background:var(--surface);border-radius:18px;padding:15px;min-height:108px;box-shadow:0 1px 1px rgba(0,0,0,.03)}.stat .n{font-size:28px;font-weight:750;letter-spacing:-.04em;margin-top:9px}.stat .label{font-size:13px;color:var(--muted)}.stat.warn .n{color:#c56a00}.stat.danger .n{color:#d70015}.stat.ok .n{color:#168a36}
.card{background:var(--surface);border-radius:var(--radius);padding:16px;margin:12px 0;box-shadow:0 1px 1px rgba(0,0,0,.025)}.card-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.card-title h2{font-size:18px;margin:0;letter-spacing:-.025em}.section-title{font-size:13px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:22px 4px 8px}
.row{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.row:last-child{border-bottom:0}.avatar{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,#dfe7ff,#eef2ff);display:grid;place-items:center;font-weight:750;flex:0 0 auto}.row-main{min-width:0;flex:1}.row-title{font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-meta{font-size:13px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pill{font-size:12px;padding:5px 8px;border-radius:999px;background:var(--surface2);white-space:nowrap}.pill.ok{background:#e8f8ec;color:#197331}.pill.warn{background:#fff3df;color:#996000}.pill.danger{background:#ffe8e6;color:#b3261e}
.btn{border:0;border-radius:14px;padding:12px 16px;font-weight:700;background:var(--accent);color:#fff;min-height:46px}.btn.secondary{background:var(--surface2);color:var(--text)}.btn.danger{background:var(--danger)}.btn.block{width:100%}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.small{min-height:34px;padding:7px 11px;border-radius:11px;font-size:13px}
.field{margin:12px 0}.field label{display:block;font-size:13px;color:var(--muted);font-weight:650;margin:0 0 6px 4px}.input{width:100%;border:1px solid transparent;border-radius:14px;background:var(--surface);padding:13px 14px;min-height:48px;outline:none;box-shadow:0 1px 1px rgba(0,0,0,.03)}.input:focus{border-color:rgba(10,132,255,.55);box-shadow:0 0 0 3px rgba(10,132,255,.12)}textarea.input{min-height:120px;resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.search{position:sticky;top:72px;z-index:10;padding:4px 0 8px;background:var(--bg)}
.bottom-nav{position:fixed;z-index:30;bottom:0;left:0;right:0;padding:8px 8px calc(8px + var(--safe-bottom));background:rgba(252,252,253,.92);backdrop-filter:blur(20px);border-top:1px solid rgba(0,0,0,.08);display:grid;grid-template-columns:repeat(var(--nav-cols,5),minmax(0,1fr))}.nav-item{border:0;background:transparent;color:var(--muted);padding:6px 2px;font-size:11px;display:grid;gap:3px;place-items:center}.nav-item .nav-icon{width:26px;height:24px;font-size:19px;line-height:1;display:grid;place-items:center}.nav-item .nav-icon i{width:24px;text-align:center}.nav-item.active{color:var(--accent);font-weight:700}
.login-wrap{min-height:100dvh;display:grid;place-items:center;padding:22px;background:radial-gradient(circle at 50% 5%,#fff 0,#f5f5f7 42%,#ececf1 100%)}.login-card{width:min(440px,100%);background:rgba(255,255,255,.9);backdrop-filter:blur(20px);padding:24px;border-radius:28px;box-shadow:var(--shadow)}.login-card h1{font-size:32px;letter-spacing:-.05em;margin:0}.login-card p{color:var(--muted);margin:7px 0 22px}.seg{display:grid;grid-template-columns:1fr 1fr;background:var(--surface2);padding:3px;border-radius:12px;margin:10px 0 18px}.seg button{border:0;border-radius:10px;padding:9px;background:transparent}.seg button.active{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.11);font-weight:700}
.sheet-backdrop{position:fixed;z-index:50;inset:0;background:rgba(0,0,0,.25);display:flex;align-items:flex-end}.sheet{width:100%;max-height:84dvh;background:var(--surface);border-radius:26px 26px 0 0;padding:12px 16px calc(18px + var(--safe-bottom));overflow:auto;box-shadow:0 -12px 35px rgba(0,0,0,.16)}.sheet-handle{width:38px;height:5px;border-radius:6px;background:#d1d1d6;margin:0 auto 14px}.sheet h2{margin:0 0 10px}
.toast{position:fixed;z-index:100;left:50%;bottom:calc(96px + var(--safe-bottom));transform:translateX(-50%);max-width:min(92vw,520px);background:#202124;color:#fff;padding:11px 15px;border-radius:13px;box-shadow:var(--shadow);font-size:14px}.empty{padding:28px 12px;text-align:center;color:var(--muted)}
.checkout-bar{position:sticky;bottom:80px;background:rgba(245,245,247,.92);backdrop-filter:blur(12px);padding:9px 0}.cart-line{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.price{font-variant-numeric:tabular-nums;font-weight:700}.qr{width:min(280px,80vw);aspect-ratio:1;background:#fff;border-radius:20px;border:1px solid var(--line);display:block;margin:16px auto;object-fit:contain;padding:12px}.receipt{max-width:80mm;margin:auto;background:#fff;padding:8mm;color:#000;font-family:ui-monospace,Consolas,monospace}.desktop-rail{display:none}
@media(min-width:800px){.app{padding-left:220px;padding-bottom:0}.bottom-nav{display:none}.desktop-rail{display:block;position:fixed;left:0;top:0;bottom:0;width:220px;padding:24px 12px;background:rgba(252,252,253,.92);backdrop-filter:blur(20px);border-right:1px solid var(--line);z-index:40}.desktop-rail .brand{padding:4px 10px 22px}.desktop-rail .nav-item{display:flex;justify-content:flex-start;gap:12px;font-size:14px;padding:11px 12px;border-radius:13px;margin:3px 0}.desktop-rail .nav-item.active{background:#e8f2ff}.page{padding:22px}.grid{grid-template-columns:repeat(4,1fr)}.search{top:80px}.sheet-backdrop{align-items:center;justify-content:center}.sheet{max-width:620px;border-radius:26px;max-height:85dvh}.checkout-bar{bottom:0}}
@media print{body{background:#fff}.topbar,.bottom-nav,.desktop-rail,.no-print{display:none!important}.app{padding:0}.page{padding:0}.receipt{box-shadow:none}}
.notice{margin:12px 0;padding:12px 14px;border-radius:14px;background:var(--surface2);font-size:13px;line-height:1.45}.notice.warn{background:#fff3df;color:#795100}.btn.compact{min-height:34px;padding:7px 10px;border-radius:11px;font-size:12px;white-space:nowrap}

.check-row{display:flex;align-items:center;gap:10px;padding:10px 0 16px;font-size:14px;color:var(--text)}.check-row input{width:20px;height:20px;accent-color:var(--accent)}
.public-body{background:#fff}.public-topbar{position:sticky;top:0;z-index:20;height:64px;padding:0 max(18px,calc((100vw - 1100px)/2));display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.88);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.public-topbar a{text-decoration:none;color:var(--text);font-weight:650}.public-topbar nav{display:flex;gap:18px;align-items:center}.public-logo{font-size:20px;letter-spacing:-.04em}.public-login{padding:8px 13px;border-radius:999px;background:var(--text);color:#fff!important}.public-main{max-width:1100px;margin:auto;padding:0 18px 70px}.public-hero{min-height:62vh;display:flex;align-items:center;padding:64px 0}.public-hero h1{font-size:clamp(44px,8vw,84px);line-height:.95;letter-spacing:-.065em;margin:10px 0 22px}.public-hero p{font-size:18px;color:var(--muted);max-width:620px}.public-actions{display:flex;gap:10px;margin-top:28px}.public-actions a{text-decoration:none;display:inline-flex;align-items:center}.public-section{padding:34px 0}.public-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.public-card{border:0;background:var(--surface2);border-radius:22px;overflow:hidden;padding:0;text-align:left;color:inherit;min-height:160px}.public-cover{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}.public-card-body{padding:16px}.public-excerpt{white-space:normal;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.public-footer{max-width:1100px;margin:auto;padding:28px 18px 50px;border-top:1px solid var(--line);display:flex;justify-content:space-between}.public-footer a{color:var(--muted)}.content-dialog{width:min(760px,calc(100vw - 24px));max-height:88vh;border:0;border-radius:24px;padding:28px;background:#fff;box-shadow:0 30px 100px rgba(0,0,0,.25)}.content-dialog::backdrop{background:rgba(0,0,0,.35);backdrop-filter:blur(8px)}.content-close{position:sticky;float:right;top:0}.public-lead{font-size:18px;color:var(--muted)}.public-copy{font-size:16px;line-height:1.8;margin-top:24px}@media(max-width:720px){.public-topbar nav>a:not(.public-login){display:none}.public-grid{grid-template-columns:1fr}.public-hero{min-height:54vh}.public-actions{flex-direction:column}.public-actions .btn{justify-content:center}.public-section{padding:24px 0}}

/* PATCH-003: Member login + POS category filter */
.member-login-wrap{position:relative;min-height:100dvh;overflow:hidden;display:grid;place-items:center;padding:calc(24px + var(--safe-top)) 18px calc(24px + var(--safe-bottom));background:linear-gradient(155deg,#eef2ff 0%,#f6f7fb 42%,#fff4f1 100%)}
.member-login-glow{position:absolute;border-radius:999px;filter:blur(6px);opacity:.62;pointer-events:none}.member-login-glow.glow-one{width:330px;height:330px;top:-150px;right:-130px;background:rgba(88,101,242,.20)}.member-login-glow.glow-two{width:300px;height:300px;bottom:-150px;left:-130px;background:rgba(226,35,42,.13)}
.member-login-card{position:relative;z-index:1;width:min(430px,100%);padding:10px 2px 18px}.member-login-brand{display:flex;justify-content:center;margin:4px auto 24px}.member-login-logo{width:150px;height:150px;object-fit:cover;border-radius:32px;box-shadow:0 18px 48px rgba(31,35,48,.16);border:1px solid rgba(255,255,255,.8)}
.member-login-copy{text-align:center;margin-bottom:24px}.member-login-copy h1{font-size:30px;line-height:1.08;margin:0 0 7px;letter-spacing:-.045em}.member-login-copy p{margin:0;color:#697083;font-size:14px;line-height:1.5}
.member-login-form{display:grid;gap:12px}.member-login-input{width:100%;height:58px;border:1px solid #d8dce7;border-radius:16px;background:rgba(255,255,255,.92);padding:0 16px;color:#17191f;outline:none;box-shadow:0 2px 8px rgba(41,45,62,.035);font-size:16px}.member-login-input::placeholder{color:#969bad}.member-login-input:focus{border-color:#e2232a;box-shadow:0 0 0 4px rgba(226,35,42,.10);background:#fff}
.member-login-button{height:54px;border:0;border-radius:16px;background:#e2232a;color:#fff;font-weight:800;font-size:16px;box-shadow:0 10px 24px rgba(226,35,42,.20)}.member-login-button:active{transform:translateY(1px)}.member-login-button:disabled{opacity:.58}.member-login-help{display:block;text-align:center;color:#d91f26;font-weight:700;font-size:14px;padding:18px 8px 12px}.member-login-divider{height:1px;background:#dfe2ea;margin:12px 0 18px}.member-login-divider span{display:none}.member-login-foot{text-align:center;color:#858a99;font-size:12px;line-height:1.5;max-width:330px;margin:auto}
.pos-filter-scroll{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 8px;margin:0 -2px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.pos-filter-scroll::-webkit-scrollbar{display:none}.pos-filter-chip{flex:0 0 auto;min-height:38px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font-weight:700;font-size:13px}.pos-filter-chip.active{background:#17191f;border-color:#17191f;color:#fff}.pos-filter-chip:focus-visible{outline:3px solid rgba(10,132,255,.22);outline-offset:2px}
@media(min-width:700px){.member-login-card{padding:32px 34px;background:rgba(255,255,255,.60);border:1px solid rgba(255,255,255,.8);border-radius:32px;box-shadow:0 24px 80px rgba(33,38,56,.10);backdrop-filter:blur(18px)}.member-login-logo{width:164px;height:164px}}


/* PATCH-006: production polish, premium icon/navigation, safe save state */
.icon-btn i{font-size:17px;color:#6e6e73}.nav-item.active .nav-icon i{color:currentColor}.icon-avatar{font-size:17px;color:#70757d;background:#f1f3f5}.course-edit-row,.branch-edit-row{cursor:pointer}.course-edit-row>i,.branch-edit-row>i{color:#a0a3aa;font-size:13px}
.branch-static{min-height:48px;border-radius:14px;background:var(--surface2);display:flex;align-items:center;gap:10px;padding:0 14px;color:var(--text);font-weight:650}.branch-static i{color:#8b8f98;width:18px;text-align:center}
.branch-check-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.check-tile{display:flex;align-items:center;gap:9px;border:1px solid var(--line);background:#fff;border-radius:13px;padding:10px 12px;font-size:13px}.check-tile input{width:18px;height:18px;accent-color:var(--accent)}
.global-busy{position:fixed;z-index:9999;inset:0;background:rgba(245,245,247,.78);backdrop-filter:blur(8px);display:grid;place-items:center;padding:20px;cursor:wait}.busy-card{min-width:min(310px,90vw);background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:22px;padding:24px;text-align:center;box-shadow:0 24px 70px rgba(0,0,0,.15);font-weight:750}.busy-card .subtle{margin-top:7px;font-weight:500}.busy-spinner{width:30px;height:30px;border:3px solid #e4e6ea;border-top-color:#e2232a;border-radius:50%;display:block;margin:0 auto 14px;animation:gym-spin .75s linear infinite}@keyframes gym-spin{to{transform:rotate(360deg)}}html.is-busy,html.is-busy body{overflow:hidden}
#memberProfileForm.card{padding-top:12px}.notice.warn#walkInHint{background:#ffe8e6;color:#a32820}
@media(max-width:520px){.bottom-nav{padding-left:4px;padding-right:4px}.bottom-nav .nav-item{width:100%;min-width:0;text-align:center;justify-self:stretch}.bottom-nav .nav-item>span:last-child{width:100%;text-align:center}.branch-check-grid{grid-template-columns:1fr}.form-row{grid-template-columns:1fr}}

/* PATCH-007: member lifecycle + social/premium production UI */
.member-body{
  --bg:#f6f7f9;--surface:#fff;--surface2:#f2f3f5;--text:#18191a;--muted:#65676b;--line:#e4e6eb;
  --accent:#d9272e;--danger:#c81e26;--ok:#2f7d46;--shadow:0 1px 2px rgba(0,0,0,.08);
  background:var(--bg);
}
.member-body .topbar{background:rgba(255,255,255,.94);border-bottom:1px solid #e6e7ea;box-shadow:0 1px 2px rgba(0,0,0,.025)}
.member-body .topbar .brand{font-size:20px}.member-body .icon-btn{box-shadow:none;background:#f0f2f5}.member-body .icon-btn i{color:#65676b}
.member-body .page{max-width:720px;padding-left:14px;padding-right:14px}.member-body .hero{padding-top:14px}.member-body .hero h1{font-size:28px}
.member-body .card,.member-body .stat,.member-body .session-card,.member-body .settings-group{box-shadow:0 1px 2px rgba(0,0,0,.06);border:1px solid rgba(0,0,0,.025)}
.member-body .btn{background:#d9272e}.member-body .btn.secondary{background:#eef0f3;color:#202124}.member-body .btn:focus-visible,.member-body .settings-row:focus-visible,.member-body .nav-item:focus-visible{outline:3px solid rgba(217,39,46,.18);outline-offset:2px}
.member-body .bottom-nav{background:rgba(255,255,255,.96);border-top:1px solid #e1e4e8;padding-left:0;padding-right:0;grid-template-columns:repeat(var(--nav-cols,3),minmax(0,1fr));}
.member-body .bottom-nav .nav-item{width:100%;justify-self:stretch;place-items:center;color:#73777d;padding:7px 0 5px}.member-body .bottom-nav .nav-item .nav-icon{margin:0 auto}.member-body .bottom-nav .nav-item>span:last-child{width:100%;text-align:center}.member-body .bottom-nav .nav-item.active{color:#d9272e}.member-body .bottom-nav .nav-item.active .nav-icon{background:#fdebec;border-radius:999px;width:42px;height:26px}
.member-body .desktop-rail .nav-item.active{background:#fdebec;color:#b61d24}.member-body .search{background:var(--bg)}

.member-body .member-login-wrap{background:radial-gradient(circle at 50% -5%,#fff0f1 0,#fff 40%,#f7f8fa 100%);align-items:center}
.member-body .member-login-card{width:min(430px,100%)}.member-body .member-login-logo{box-shadow:0 14px 42px rgba(94,15,20,.14);border-radius:28px}.member-body .member-login-input{background:#fff;border-color:#d9dde3;border-radius:12px;height:54px}.member-body .member-login-input:focus{border-color:#d9272e;box-shadow:0 0 0 3px rgba(217,39,46,.12)}
.member-body .member-login-button{background:#d9272e;border-radius:12px;height:52px;box-shadow:none}.member-body .member-login-actions{display:grid;gap:10px;margin-top:12px}.member-login-secondary,.member-login-create{width:100%;min-height:46px;border-radius:12px;font-weight:700;border:0}.member-login-secondary{background:transparent;color:#c52229}.member-login-create{background:#fff;color:#c52229;border:1px solid #d9272e}.member-login-secondary.block{display:block;margin-top:10px}
.member-login-lang{display:flex;justify-content:center;gap:6px;margin:-6px 0 18px}.member-login-lang button{border:0;background:#eef0f3;color:#686c73;border-radius:999px;padding:7px 11px;font-weight:700;font-size:12px}.member-login-lang button.active{background:#d9272e;color:#fff}
.auto-branch-card{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid #e5e6ea;border-radius:14px;padding:12px 14px;color:#202124}.auto-branch-card>i{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#fdebec;color:#c7222a}.auto-branch-card strong,.auto-branch-card small{display:block}.auto-branch-card small{color:#767a80;margin-top:2px;font-size:12px}
.legal-check{display:flex;align-items:flex-start;gap:10px;padding:4px 2px;color:#404348;font-size:13px;line-height:1.45}.legal-check input{width:19px;height:19px;accent-color:#d9272e;flex:0 0 auto;margin-top:1px}.legal-check a{color:#c52229;font-weight:700;text-decoration:underline;text-underline-offset:2px}
.premium-empty{padding:30px 18px;text-align:center;background:#fff;border:1px solid #e6e7ea;border-radius:18px}.premium-empty>i{font-size:34px;color:#9a9ea5}.premium-empty h2{font-size:20px;margin:12px 0 7px}.premium-empty p{color:#6f7379;line-height:1.5}

.social-profile-head{display:flex;align-items:center;gap:14px;padding:8px 4px 18px}.social-profile-head h2{margin:0 0 3px;font-size:23px}.profile-avatar{width:60px;height:60px;border-radius:50%;display:grid;place-items:center;background:#fdebec;color:#c52229;font-size:27px;border:1px solid #f4d4d6}
.settings-group{background:#fff;border-radius:14px;overflow:hidden;margin:0 0 14px}.settings-row{width:100%;border:0;background:#fff;color:#1c1e21;display:flex;align-items:center;gap:12px;text-align:left;padding:12px 14px;border-bottom:1px solid #edf0f2;min-height:64px}.settings-row:last-child{border-bottom:0}.settings-row:active{background:#f7f8fa}.settings-icon{width:36px;height:36px;border-radius:50%;background:#eef0f3;color:#63676d;display:grid;place-items:center;flex:0 0 auto}.settings-main{flex:1;min-width:0}.settings-title,.settings-value{display:block}.settings-title{font-weight:700;font-size:14px}.settings-value{color:#73777d;font-size:13px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-row>i{color:#a0a4aa;font-size:14px}
.form-section{font-weight:800;font-size:13px;color:#666b72;text-transform:uppercase;letter-spacing:.04em;margin:20px 2px 8px}.tri-lang{display:grid;gap:9px}.data-actions,.cms-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0 12px}.toolbar-chip{display:inline-flex;gap:6px;align-items:center;border-radius:999px;background:#fff;border:1px solid #e2e4e8;padding:8px 11px;color:#565a61;font-size:12px;font-weight:700}

.session-card{background:#fff;border-radius:16px;padding:14px;margin:10px 0}.session-top{display:flex;gap:12px;justify-content:space-between}.session-title{font-weight:800}.session-meta{color:#72767d;font-size:13px;line-height:1.55;margin-top:4px}.session-actions{display:flex;justify-content:flex-end;margin-top:12px}.session-actions .btn{min-height:38px;padding:8px 14px}.activity-tabs{display:flex;overflow-x:auto;gap:6px;padding:2px 0 10px}.activity-tabs button{border:0;border-radius:999px;background:#eef0f3;color:#64686e;padding:8px 12px;font-weight:700;white-space:nowrap}.activity-tabs button.active{background:#d9272e;color:#fff}

.schedule-date{font-size:13px;color:#72767d;font-weight:800;text-transform:uppercase;margin:18px 2px 6px}.schedule-row{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line)}.schedule-row:last-child{border-bottom:0}.schedule-time{width:58px;flex:0 0 auto;font-weight:800;color:#484c52}.week-hours{display:grid;gap:8px}.hour-row{display:grid;grid-template-columns:48px 72px 1fr 1fr;gap:8px;align-items:center}.hour-row>label:first-child{font-weight:800}.closed-box{display:flex!important;align-items:center;gap:5px;margin:0!important;color:#6d7178!important}.closed-box input{accent-color:#d9272e}.refund-grid{display:grid;grid-template-columns:minmax(0,1fr) 90px;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.sale-status{font-size:11px;color:#767a80;text-align:right;margin-top:2px}.staff-edit-row{cursor:pointer}

/* CMS remains neutral/premium, but icons are intentionally restrained gray. */
body:not(.member-body) .nav-icon i,body:not(.member-body) .icon-btn i,body:not(.member-body) .settings-icon i{color:#6b7077}.seg{display:flex;grid-template-columns:none}.seg button{flex:1;min-width:0}
@media(max-width:520px){.member-body .page{padding-left:12px;padding-right:12px}.member-body .bottom-nav{grid-template-columns:repeat(var(--nav-cols,3),minmax(0,1fr))}.hour-row{grid-template-columns:42px 70px 1fr 1fr;gap:5px}.hour-row .input{padding-left:8px;padding-right:8px}.data-actions .btn{flex:1 1 auto}.refund-grid{grid-template-columns:1fr 82px}}
@media(min-width:800px){.member-body .page{max-width:900px}.member-body .desktop-rail{background:#fff;border-right-color:#e5e6e9}}


/* PATCH-008: owner-only manual check-in history correction */
.bulk-checkin-toolbar{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 2px;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.compact-check{padding:4px 0;margin:0}.checkin-history-list{padding-top:4px}.checkin-history-row{gap:9px}.history-check{width:19px;height:19px;accent-color:var(--accent);flex:0 0 auto}.history-check-spacer{width:19px;flex:0 0 auto}.checkin-history-row .icon-btn{width:36px;height:36px;box-shadow:none;background:var(--surface2);flex:0 0 auto}.checkin-history-row .icon-btn i{font-size:14px}.required{color:var(--danger)}
@media(max-width:520px){.bulk-checkin-toolbar{align-items:stretch;flex-direction:column}.bulk-checkin-toolbar .btn{width:100%}.checkin-history-row{align-items:flex-start}.checkin-history-row .pill{margin-top:2px}}


/* ================= PATCH-009: production POS / navigation / modal polish ================= */
:root{--rail-w:220px;--rail-collapsed-w:76px}
.topbar-leading{display:flex;align-items:center;gap:10px;min-width:0}.mobile-back-btn{display:none;width:38px;height:38px;border:0;border-radius:12px;background:#fff;color:#34373d;place-items:center;font-size:20px;box-shadow:0 1px 0 rgba(0,0,0,.04)}
@media(max-width:799px){.member-body .mobile-back-btn{display:grid}.member-body .topbar{padding-left:12px}.member-body .topbar-leading .brand{font-size:17px}}
@media(min-width:800px){
  .app{padding-left:var(--rail-w);transition:padding-left .18s ease}.app.sidebar-collapsed{padding-left:var(--rail-collapsed-w)}
  .desktop-rail{display:flex!important;flex-direction:column;width:var(--rail-w);height:100dvh;max-height:100dvh;padding:14px 10px 10px;overflow:hidden;transition:width .18s ease;background:rgba(252,252,253,.96)}
  .sidebar-collapsed .desktop-rail{width:var(--rail-collapsed-w)}
  .rail-head{height:58px;min-height:58px;display:flex;align-items:center;gap:10px;padding:0 8px;border-bottom:1px solid transparent}.rail-brand-mark{width:38px;height:38px;border-radius:12px;background:#22252a;color:#fff;display:grid;place-items:center;font-size:11px;font-weight:850;letter-spacing:.04em;flex:0 0 auto}.rail-brand-copy{display:grid;line-height:1.1;min-width:0;transition:opacity .12s ease}.rail-brand-copy strong{font-size:15px}.rail-brand-copy span{font-size:11px;color:var(--muted);margin-top:3px}.sidebar-collapsed .rail-brand-copy{opacity:0;width:0;overflow:hidden}
  .rail-nav{min-height:0;flex:1;overflow-y:auto;overflow-x:hidden;padding:8px 0;scrollbar-width:thin}.desktop-rail .rail-nav .nav-item{width:100%;height:46px;min-height:46px;margin:2px 0;padding:0 10px;display:flex;align-items:center;justify-content:flex-start;gap:12px;border-radius:12px}.desktop-rail .rail-nav .nav-icon{width:32px;min-width:32px;height:32px;font-size:17px}.desktop-rail .nav-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-collapsed .desktop-rail .nav-item{justify-content:center;padding:0}.sidebar-collapsed .desktop-rail .nav-label{display:none}.sidebar-collapsed .desktop-rail .nav-icon{margin:0}
  .rail-foot{min-height:58px;padding-top:8px;border-top:1px solid var(--line);display:flex;align-items:flex-end}.rail-collapse{width:100%;height:42px;border:0;background:transparent;color:#686d75;border-radius:12px;display:flex;align-items:center;gap:12px;padding:0 12px;font:inherit;font-size:13px;cursor:pointer}.rail-collapse:hover{background:#f0f1f3;color:#202124}.sidebar-collapsed .rail-collapse{justify-content:center;padding:0}.rail-collapse i{font-size:17px}
}

.sheet-backdrop{background:rgba(18,20,24,.28);transition:background .16s ease,opacity .16s ease}.sheet{position:relative;padding-top:0;transition:transform .18s cubic-bezier(.2,.8,.2,1),opacity .16s ease;will-change:transform}.sheet.is-dragging{transition:none}.sheet-backdrop.is-closing{opacity:0}.sheet-backdrop.is-closing .sheet{transform:translateY(18px);opacity:.85}.sheet-chrome{position:sticky;top:0;z-index:5;height:48px;margin:0 -4px 4px;background:linear-gradient(var(--surface) 72%,rgba(255,255,255,0));display:flex;align-items:flex-start;justify-content:center;padding-top:8px}.sheet-drag-zone{border:0;background:transparent;width:88px;height:28px;display:grid;place-items:start center;padding-top:2px;touch-action:none;cursor:grab}.sheet-drag-zone:active{cursor:grabbing}.sheet-handle{margin:0}.sheet-close{position:absolute;right:0;top:4px;width:36px;height:36px;border:0;border-radius:50%;background:#f0f1f3;color:#4b4f56;display:grid;place-items:center;cursor:pointer}.sheet-close:hover{background:#e4e6e9;color:#1c1e21}.sheet-content{min-width:0}.sheet-attention{animation:sheetAttention .24s ease}@keyframes sheetAttention{0%,100%{transform:translateX(0)}35%{transform:translateX(-4px)}70%{transform:translateX(4px)}}
@media(min-width:800px){.sheet-chrome{height:44px}.sheet-drag-zone{pointer-events:none}.sheet-handle{opacity:.45}.sheet{padding-left:22px;padding-right:22px}}

/* Desktop POS: catalog workspace + fixed order column, with mobile fallback. */
.pos-page{max-width:none!important;padding-bottom:18px}.pos-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,380px);gap:18px;min-height:calc(100dvh - 116px)}.pos-catalog-pane{min-width:0}.pos-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px}.pos-toolbar h1{margin:2px 0 0;font-size:24px}.pos-kicker{font-size:11px;letter-spacing:.12em;color:var(--muted);font-weight:800}.pos-toolbar-actions{display:flex;align-items:flex-end;gap:10px}.pos-branch-select{display:grid;gap:4px;font-size:11px;color:var(--muted);min-width:170px}.pos-branch-select .input{min-height:40px;padding-top:8px;padding-bottom:8px}.pos-product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:10px}.pos-product-card{position:relative;min-height:142px;border:1px solid #e1e4e8;background:#fff;border-radius:16px;padding:14px;text-align:left;color:var(--text);cursor:pointer;box-shadow:0 1px 2px rgba(0,0,0,.035);transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.pos-product-card:hover:not(:disabled){transform:translateY(-1px);border-color:#cfd3d8;box-shadow:0 5px 16px rgba(0,0,0,.07)}.pos-product-card:disabled{opacity:.45;cursor:not-allowed}.pos-product-type{font-size:11px;color:var(--muted);font-weight:700}.pos-product-name{font-weight:750;font-size:15px;line-height:1.25;margin-top:8px;padding-right:22px}.pos-product-meta{font-size:12px;color:var(--muted);margin-top:7px}.pos-product-price{font-size:17px;font-weight:800;margin-top:12px}.pos-add-mark{position:absolute;right:12px;bottom:12px;width:27px;height:27px;border-radius:50%;background:#f0f1f3;display:grid;place-items:center;color:#555b63}
.pos-order-pane{height:calc(100dvh - 116px);min-height:520px;position:sticky;top:86px;background:#fff;border:1px solid var(--line);border-radius:18px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 8px 30px rgba(0,0,0,.055)}.pos-order-section{padding:14px 14px 0}.pos-order-label{font-size:12px;color:var(--muted);font-weight:750;margin-bottom:7px}.pos-customer-card{margin:0;padding:0 12px}.pos-cart-section{min-height:0;flex:1;display:flex;flex-direction:column}.pos-cart-list{min-height:0;overflow:auto;padding-right:2px}.pos-cart-line{display:flex;align-items:center;gap:8px;padding:11px 0;border-bottom:1px solid var(--line)}.pos-cart-remove{width:32px;height:32px;flex:0 0 auto}.pos-order-footer{padding:14px;border-top:1px solid var(--line);background:#fff}.pos-total-row{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px}.pos-total-row span{color:var(--muted);font-size:13px}.pos-total-row strong{font-size:24px;letter-spacing:-.03em}.pos-pay-btn{min-height:48px}
.checkout-customer{display:flex;justify-content:space-between;gap:16px;align-items:center;background:#f7f8fa;border-radius:14px;padding:12px 14px;margin-bottom:12px}.checkout-grand{font-weight:850;font-size:22px}.payment-summary{display:flex;justify-content:space-between;align-items:center;padding:12px 0}.payment-summary strong{font-size:20px}.cash-payment-box{background:#f8f9fa;border:1px solid #e8eaed;border-radius:16px;padding:12px;margin-top:10px}.cash-received-input{font-size:22px;font-weight:800;text-align:right}.cash-change{background:#fff;border-radius:12px;padding:12px;text-align:center;font-size:18px;font-weight:800;margin-top:8px}.danger-text{color:#b3261e}.cash-quick{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.cash-quick-btn{border:1px solid #dadce0;background:#fff;border-radius:999px;padding:7px 11px;font-weight:700;cursor:pointer}
.audit-row{width:100%;border:0;border-bottom:1px solid var(--line);background:#fff;display:flex;align-items:center;gap:12px;padding:12px;text-align:left;color:inherit}.audit-row:last-child{border-bottom:0}.audit-icon{width:36px;height:36px;border-radius:12px;background:#f0f1f3;display:grid;place-items:center;color:#62676f}.audit-json{white-space:pre-wrap;overflow:auto;background:#f7f8fa;border:1px solid #e4e6e9;border-radius:12px;padding:12px;font-size:11px;line-height:1.45}.compact-hero{padding-bottom:6px}
@media(max-width:1050px){.pos-workspace{grid-template-columns:minmax(0,1fr) 320px}.pos-product-grid{grid-template-columns:repeat(auto-fill,minmax(145px,1fr))}}
@media(max-width:799px){.pos-page{padding-bottom:96px}.pos-workspace{display:block;min-height:0}.pos-toolbar{align-items:stretch;flex-direction:column}.pos-toolbar-actions{align-items:stretch;flex-wrap:wrap}.pos-toolbar-actions>.btn{flex:1}.pos-branch-select{min-width:100%;}.pos-product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pos-product-card{min-height:130px}.pos-order-pane{position:relative;top:auto;height:auto;min-height:0;margin-top:14px;border-radius:16px}.pos-cart-list{max-height:42dvh}.pos-order-footer{position:sticky;bottom:72px;z-index:3;box-shadow:0 -8px 20px rgba(0,0,0,.04)}}
@media(max-width:390px){.pos-product-grid{grid-template-columns:1fr}.pos-toolbar-actions{display:grid;grid-template-columns:1fr}}

/* ========================= PATCH-011 HANDOFF RC1 ========================= */
:root{--amg-red:#c7262c;--amg-red-dark:#9f1d22;--amg-soft:#fff5f5;--amg-ink:#191919}
.handoff-public{background:#fff;color:var(--amg-ink)}
.handoff-topbar{height:72px;gap:22px;padding-left:max(18px,calc((100vw - 1200px)/2));padding-right:max(18px,calc((100vw - 1200px)/2));background:rgba(255,255,255,.94)}
.handoff-brand{display:flex;align-items:center;gap:10px;font-size:13px;letter-spacing:.03em}.handoff-brand img{width:40px;height:40px;object-fit:contain}.handoff-nav{display:flex;gap:22px;align-items:center;flex:1;justify-content:center}.handoff-nav a{font-size:13px;color:#4b4b4f}.handoff-nav a:hover{color:var(--amg-red)}
.handoff-top-actions{display:flex;align-items:center;gap:12px}.public-lang{display:flex;background:#f3f3f5;border-radius:999px;padding:3px}.public-lang button{border:0;background:transparent;color:#777;padding:6px 8px;border-radius:999px;font-size:11px}.public-lang button.active{background:#fff;color:#111;box-shadow:0 1px 5px rgba(0,0,0,.09)}.handoff-topbar .public-login{background:var(--amg-red)}
.handoff-main{max-width:1200px;margin:auto;padding:0 20px 80px}.handoff-hero{min-height:620px;display:grid;grid-template-columns:1.4fr .8fr;gap:42px;align-items:center;padding:72px 0}.handoff-hero-copy h1{font-size:clamp(48px,6.8vw,86px);line-height:.96;letter-spacing:-.07em;margin:14px 0 24px;max-width:840px}.handoff-hero-copy p{font-size:19px;line-height:1.65;color:#68686d;max-width:620px}.public-eyebrow{font-size:12px;font-weight:800;letter-spacing:.13em;color:var(--amg-red)}.handoff-primary{background:var(--amg-red)}.handoff-primary:hover{background:var(--amg-red-dark)}.handoff-trust{display:flex;flex-wrap:wrap;gap:18px;margin-top:26px;color:#68686d;font-size:13px}.handoff-trust span{display:flex;gap:7px;align-items:center}.handoff-trust i{color:var(--amg-red)}
.handoff-hero-card{min-height:370px;border-radius:36px;background:linear-gradient(145deg,#fff7f7,#f5f5f7);border:1px solid #f0e7e8;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:40px;box-shadow:0 28px 80px rgba(92,25,29,.11)}.handoff-hero-card img{width:min(220px,70%);max-height:180px;object-fit:contain;margin-bottom:25px}.handoff-hero-card strong{font-size:20px}.handoff-hero-card span{color:#74747a;font-size:13px;line-height:1.6;margin-top:8px;max-width:300px}
.handoff-section{padding:64px 0}.soft-section{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding-left:max(20px,calc((100vw - 1200px)/2));padding-right:max(20px,calc((100vw - 1200px)/2));background:#fafafa}.handoff-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px}.handoff-section-head h2,.finder-copy h2{font-size:clamp(30px,4vw,48px);letter-spacing:-.05em;margin:7px 0 0}.handoff-section-head>p{color:#777;max-width:440px;line-height:1.6}
.handoff-course-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.handoff-course-card{border:1px solid #ececef;border-radius:24px;overflow:hidden;background:#fff;min-height:330px;display:flex;flex-direction:column}.handoff-course-card.featured{border-color:#efc8ca;box-shadow:0 12px 35px rgba(199,38,44,.08)}.handoff-course-card>img{width:100%;aspect-ratio:16/10;object-fit:cover}.course-icon{height:120px;display:grid;place-items:center;background:linear-gradient(145deg,#fff7f7,#f6f6f7);font-size:38px;color:var(--amg-red)}.course-card-copy{padding:18px;display:flex;flex-direction:column;flex:1}.course-card-copy h3{font-size:21px;margin:7px 0 8px;letter-spacing:-.03em}.course-card-copy p{color:#737379;font-size:13px;line-height:1.6;flex:1}.course-type{font-size:10px;font-weight:800;letter-spacing:.11em;color:var(--amg-red)}.course-facts{display:flex;gap:9px;flex-wrap:wrap}.course-facts span,.coach-tags span{font-size:11px;background:#f3f3f5;padding:6px 8px;border-radius:999px;color:#555}.course-card-foot{display:flex;justify-content:space-between;align-items:center;margin-top:17px;padding-top:14px;border-top:1px solid #eee}.course-card-foot strong{font-size:20px}.course-card-foot a{font-size:12px;font-weight:750;color:var(--amg-red)}
.handoff-coach-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.coach-card{background:#fff;border:1px solid #ededf0;border-radius:24px;overflow:hidden}.coach-card>img,.coach-avatar{width:100%;aspect-ratio:4/3;object-fit:cover;background:linear-gradient(145deg,#f4f4f6,#fff5f5)}.coach-avatar{display:grid;place-items:center;font-size:48px;color:#b8b8bd}.coach-card>div:last-child{padding:18px}.coach-card h3{font-size:22px;margin:7px 0}.coach-card p{color:#737379;font-size:13px;line-height:1.6;min-height:42px}.coach-tags{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}.coach-card small{color:#777}
.finder-shell{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px;background:linear-gradient(145deg,#191919,#2b2324);color:#fff;border-radius:34px;padding:42px}.finder-copy p{color:#c9c5c6;line-height:1.7}.finder-form{background:#fff;color:#222;border-radius:24px;padding:22px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.finder-form label{font-size:12px;font-weight:700;color:#666}.finder-form .btn{grid-column:1/-1}.finder-result{grid-column:1/-1;background:#fff;color:#222;border-radius:24px;padding:22px;margin-top:-18px}.finder-result h3{font-size:28px;margin:8px 0}.finder-result p{color:#696970;line-height:1.6}.finder-course{display:flex;justify-content:space-between;width:100%;border:0;border-bottom:1px solid #eee;background:transparent;padding:12px 0;text-align:left}.finder-course span{color:var(--amg-red);font-weight:750}.finder-result .btn{margin-top:16px}
.trial-section{max-width:900px;margin:auto}.trial-form{background:#fff;border:1px solid #ececef;border-radius:28px;padding:28px;box-shadow:0 18px 50px rgba(0,0,0,.05)}.trial-result{text-align:center;border-radius:28px;background:#f0faf3;padding:40px}.trial-result i{font-size:48px;color:#168a36}.trial-result h3{font-size:28px;margin:12px 0}.trial-result strong{display:inline-block;margin-top:8px;padding:8px 13px;border-radius:999px;background:#fff}
.handoff-branch-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.branch-card{display:grid;grid-template-columns:52px 1fr;gap:14px;border:1px solid #ededf0;border-radius:22px;padding:20px;background:#fff}.branch-pin{width:48px;height:48px;display:grid;place-items:center;border-radius:16px;background:var(--amg-soft);color:var(--amg-red);font-size:21px}.branch-card h3{margin:0 0 7px}.branch-card p{color:#717177;font-size:13px;line-height:1.55}.branch-card a{font-size:13px;color:var(--amg-red)}.opening-hours{display:flex;gap:5px;flex-wrap:wrap;margin-top:14px}.opening-hours span{display:grid;gap:2px;text-align:center;background:#f5f5f7;border-radius:9px;padding:6px 7px;font-size:10px}.opening-hours b{font-size:9px;color:#777}.public-grid-secondary{margin-top:14px}.handoff-footer{display:flex;align-items:flex-start}.handoff-footer>div{display:flex;gap:12px}.handoff-footer>div:first-child{flex-direction:column}.handoff-footer a{color:#6b6b70}

.handoff-dashboard-hero{display:flex;align-items:center;justify-content:space-between;gap:12px}.handoff-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.handoff-alert-strip{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.handoff-alert-strip span{display:flex;gap:7px;align-items:center;background:#fff2df;color:#865800;padding:9px 12px;border-radius:12px;font-size:12px}.report-filters{display:grid;grid-template-columns:180px minmax(200px,1fr) auto;gap:10px}.report-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px}.settings-form{max-width:820px}.cash-close-system{display:flex;justify-content:space-between;align-items:center;background:#f4f5f7;border-radius:15px;padding:15px;margin:14px 0}.cash-close-system strong{font-size:22px}.trial-request-row .btn{flex:0 0 auto}

@media(min-width:800px){.desktop-rail{height:100dvh;bottom:auto;display:flex;flex-direction:column;overflow:hidden;padding:18px 12px}.rail-head,.rail-foot{flex:0 0 auto}.rail-nav{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:6px 0}.rail-foot{padding-top:8px;border-top:1px solid var(--line)}.rail-collapse{width:100%;min-height:44px;border:0;border-radius:12px;background:transparent;display:flex;align-items:center;gap:11px;padding:10px 12px;color:#6e6e73}.sidebar-collapsed .desktop-rail{width:76px}.sidebar-collapsed.app{padding-left:76px}.sidebar-collapsed .rail-brand-copy,.sidebar-collapsed .nav-label{display:none}.sidebar-collapsed .rail-head,.sidebar-collapsed .rail-collapse,.sidebar-collapsed .desktop-rail .nav-item{justify-content:center}.sidebar-collapsed .desktop-rail .nav-item{padding-left:0;padding-right:0}}
@media(max-width:900px){.handoff-nav{display:none}.handoff-course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.handoff-coach-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.handoff-hero{grid-template-columns:1fr;min-height:auto}.handoff-hero-card{min-height:280px}.finder-shell{grid-template-columns:1fr}.finder-result{margin-top:0}.handoff-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.handoff-topbar{height:62px}.handoff-brand span{display:none}.handoff-brand img{width:36px;height:36px}.public-lang{display:none}.handoff-main{padding-left:14px;padding-right:14px}.handoff-hero{padding:42px 0}.handoff-hero-copy h1{font-size:48px}.handoff-hero-card{display:none}.handoff-trust{gap:10px;flex-direction:column}.handoff-section{padding:42px 0}.handoff-section-head{align-items:flex-start;flex-direction:column}.handoff-section-head>p{margin:0}.handoff-course-grid,.handoff-coach-grid,.handoff-branch-grid{grid-template-columns:1fr}.finder-shell{padding:24px 18px;border-radius:26px}.finder-form{grid-template-columns:1fr}.trial-form{padding:18px}.trial-form .form-row{grid-template-columns:1fr}.handoff-stat-grid{grid-template-columns:1fr 1fr}.report-filters{grid-template-columns:1fr}.report-columns{grid-template-columns:1fr}.handoff-dashboard-hero{align-items:flex-start;flex-direction:column}.handoff-footer{gap:18px;flex-direction:column}.handoff-footer>div:last-child{flex-wrap:wrap}}
/* ======================= END PATCH-011 HANDOFF RC1 ======================= */

/* ========================= PATCH-013 ALIAS + RESPONSIVE POS ========================= */
.member-alias-editor{margin:14px 0}.member-alias-copy{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.member-alias-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.member-alias-controls .btn{min-height:44px;white-space:nowrap}
.pos-heading{min-width:0}.pos-heading h1{word-break:keep-all;overflow-wrap:normal}.pos-order-drawer-head{display:none}.pos-order-backdrop,.pos-cart-toggle{display:none}

/* Intermediate widths: never squeeze catalog + cart + full sidebar into the same row. */
@media (min-width:800px) and (max-width:1180px){
  .app{padding-left:var(--rail-collapsed-w)!important}
  .desktop-rail{width:var(--rail-collapsed-w)!important;height:100dvh!important;max-height:100dvh!important;overflow:hidden!important}
  .desktop-rail .rail-brand-copy,.desktop-rail .nav-label{display:none!important}
  .desktop-rail .rail-head,.desktop-rail .rail-collapse,.desktop-rail .nav-item{justify-content:center!important}
  .desktop-rail .nav-item{padding-left:0!important;padding-right:0!important}
  .rail-nav{min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important}
  .rail-foot{flex:0 0 auto!important}
  .pos-page{padding-bottom:92px!important;overflow-x:hidden}
  .pos-workspace{display:block!important;min-height:0!important}
  .pos-catalog-pane{min-width:0;width:100%;padding-bottom:18px}
  .pos-toolbar{align-items:stretch!important;flex-direction:column!important;gap:12px!important}
  .pos-toolbar h1{font-size:clamp(22px,3vw,28px)!important;line-height:1.15;margin-top:3px!important}
  .pos-toolbar-actions{display:grid!important;grid-template-columns:max-content minmax(180px,1fr);align-items:end!important;width:100%;gap:10px!important}
  .pos-toolbar-actions>.btn{min-height:42px;white-space:nowrap}
  .pos-branch-select{min-width:0!important;width:100%}
  .pos-product-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))!important;gap:10px!important}
  .pos-product-card{min-width:0!important;min-height:138px!important}
  .pos-filter-scroll{max-width:100%}
  .pos-order-backdrop{display:block;position:fixed;inset:0;border:0;background:rgba(20,22,26,.22);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .18s ease;z-index:88}
  .pos-order-backdrop.is-open{opacity:1;pointer-events:auto}
  .pos-order-pane{display:flex!important;position:fixed!important;z-index:89!important;top:0!important;right:0!important;bottom:0!important;left:auto!important;width:min(390px,calc(100vw - var(--rail-collapsed-w)))!important;height:100dvh!important;min-height:0!important;max-height:100dvh!important;border-radius:22px 0 0 22px!important;transform:translateX(105%);transition:transform .22s cubic-bezier(.2,.8,.2,1);box-shadow:-18px 0 55px rgba(0,0,0,.14)!important}
  .pos-order-pane.is-open{transform:translateX(0)}
  .pos-order-drawer-head{display:flex;align-items:center;justify-content:space-between;min-height:58px;padding:10px 14px;border-bottom:1px solid var(--line);flex:0 0 auto}
  .pos-order-section{padding-left:14px!important;padding-right:14px!important}
  .pos-order-footer{padding-bottom:max(14px,env(safe-area-inset-bottom))!important}
  .pos-cart-toggle{display:flex;position:fixed;left:calc(var(--rail-collapsed-w) + 18px);right:18px;bottom:18px;z-index:65;min-height:54px;border:0;border-radius:16px;background:#17191f;color:#fff;align-items:center;justify-content:space-between;padding:0 18px;font:inherit;box-shadow:0 12px 34px rgba(0,0,0,.2);cursor:pointer}
  .pos-cart-toggle span{display:flex;align-items:center;gap:7px;font-size:13px}.pos-cart-toggle strong{font-size:18px}.pos-cart-toggle.has-items{background:#111318}
}

@media (max-width:799px){
  .pos-page{padding-bottom:150px!important;overflow-x:hidden}
  .pos-workspace{display:block!important;min-height:0!important}
  .pos-toolbar{align-items:stretch!important;flex-direction:column!important;gap:10px!important}
  .pos-toolbar h1{font-size:24px!important;line-height:1.15!important;word-break:keep-all!important}
  .pos-toolbar-actions{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;width:100%}
  .pos-toolbar-actions>.btn{width:100%;justify-content:center}
  .pos-branch-select{min-width:0!important;width:100%}
  .pos-product-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important}
  .pos-product-card{min-width:0!important;min-height:128px!important;padding:12px!important}
  .pos-product-name{font-size:14px!important}.pos-product-price{font-size:16px!important}
  .pos-order-backdrop{display:block;position:fixed;inset:0;border:0;background:rgba(20,22,26,.25);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .18s ease;z-index:88}
  .pos-order-backdrop.is-open{opacity:1;pointer-events:auto}
  .pos-order-pane{display:flex!important;position:fixed!important;z-index:89!important;left:0!important;right:0!important;bottom:0!important;top:auto!important;width:100%!important;height:min(72dvh,640px)!important;max-height:72dvh!important;min-height:0!important;border-radius:24px 24px 0 0!important;transform:translateY(105%);transition:transform .24s cubic-bezier(.2,.8,.2,1);box-shadow:0 -18px 55px rgba(0,0,0,.16)!important}
  .pos-order-pane.is-open{transform:translateY(0)}
  .pos-order-drawer-head{display:flex;align-items:center;justify-content:space-between;min-height:56px;padding:9px 14px;border-bottom:1px solid var(--line);flex:0 0 auto}
  .pos-order-footer{position:static!important;padding-bottom:max(14px,env(safe-area-inset-bottom))!important}
  .pos-cart-toggle{display:flex;position:fixed;left:12px;right:12px;bottom:calc(76px + env(safe-area-inset-bottom));z-index:65;min-height:54px;border:0;border-radius:16px;background:#17191f;color:#fff;align-items:center;justify-content:space-between;padding:0 17px;font:inherit;box-shadow:0 10px 30px rgba(0,0,0,.22)}
  .pos-cart-toggle span{display:flex;align-items:center;gap:7px;font-size:13px}.pos-cart-toggle strong{font-size:18px}
  .member-alias-controls{grid-template-columns:1fr}.member-alias-controls .btn{width:100%}
}
@media (max-width:390px){.pos-product-grid{grid-template-columns:1fr!important}}
html.pos-drawer-open,html.pos-drawer-open body{overflow:hidden}
/* ======================= END PATCH-013 ALIAS + RESPONSIVE POS ======================= */
/* PATCH-013 layering: transactional sheets must always sit above the POS cart drawer. */
.sheet-backdrop{z-index:120}

/* ========================= PATCH-014 CHECK-IN MONITOR + VOID ========================= */
.checkin-monitor-card{overflow:hidden}
.checkin-monitor-filters{display:grid;grid-template-columns:170px minmax(180px,1fr) 150px minmax(220px,1.2fr) auto;gap:10px;align-items:end}
.checkin-monitor-filters .field{margin:0}
.checkin-monitor-today{height:44px;white-space:nowrap}
.checkin-monitor-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}
.checkin-monitor-summary .stat{min-height:84px}
.checkin-monitor-row{display:grid;grid-template-columns:minmax(160px,.9fr) minmax(220px,1.35fr) minmax(170px,.9fr) auto;gap:14px;align-items:center;padding:13px 4px;border-top:1px solid var(--line,#e8e8ec)}
.checkin-monitor-row:first-child{border-top:0}
.checkin-monitor-row.is-void{opacity:.72;background:linear-gradient(90deg,rgba(120,120,120,.035),transparent)}
.checkin-monitor-time,.checkin-monitor-member,.checkin-monitor-meta{min-width:0}
.checkin-monitor-time{display:flex;flex-direction:column;gap:3px}.checkin-monitor-time strong{font-size:14px}.checkin-monitor-time span{font-size:12px;color:var(--muted,#6d7280)}
.checkin-monitor-meta{display:flex;flex-direction:column;align-items:flex-start;gap:5px}
.checkin-monitor-actions{display:flex;align-items:center;gap:8px;justify-content:flex-end}
.checkin-monitor-row.is-void .row-title,.checkin-monitor-row.is-void .checkin-monitor-time strong{text-decoration:line-through;text-decoration-thickness:1px}
@media (max-width:1080px){.checkin-monitor-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.checkin-monitor-today{width:100%}.checkin-monitor-row{grid-template-columns:minmax(150px,.8fr) minmax(200px,1.2fr) auto}.checkin-monitor-meta{grid-column:2}.checkin-monitor-actions{grid-column:3;grid-row:1 / span 2}}
@media (max-width:700px){.checkin-monitor-filters{grid-template-columns:1fr}.checkin-monitor-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.checkin-monitor-row{grid-template-columns:1fr auto;gap:8px 10px;padding:14px 0}.checkin-monitor-time{grid-column:1}.checkin-monitor-member{grid-column:1}.checkin-monitor-meta{grid-column:1}.checkin-monitor-actions{grid-column:2;grid-row:1 / span 3;align-self:center;flex-direction:column}.checkin-monitor-actions .btn{min-width:64px}}
/* ======================= END PATCH-014 CHECK-IN MONITOR + VOID ======================= */

/* PATCH-015 consolidated POS/payment/report foundation */
.pos-mode-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}.pos-mode{min-height:48px;border:1px solid #e1e4e8;border-radius:14px;background:#fff;font-weight:800;color:#60646b;cursor:pointer}.pos-mode.active{background:#18191b;color:#fff;border-color:#18191b}.pos-search{position:relative;margin-bottom:10px}.pos-search i{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:#8a8f98}.pos-search input{width:100%;min-height:44px;border:1px solid #dde1e6;border-radius:13px;padding:9px 12px 9px 38px;background:#fff;font:inherit}.payment-confirm-card{padding:18px;border:1px solid #eceef1;border-radius:18px;background:#fafafa;margin-bottom:14px}.payment-confirm-amount{font-size:34px;font-weight:850;letter-spacing:-.04em;margin-bottom:6px}.notif-button{width:100%;border-left:0;border-right:0;border-top:0;text-align:left;cursor:pointer}.business-report-section{margin-top:28px}.receipt-copy{color:#000;background:#fff}
@media(max-width:799px){.pos-mode-tabs{position:sticky;top:0;z-index:4;background:var(--bg);padding-top:4px}.pos-search{position:sticky;top:58px;z-index:4;background:var(--bg);padding-bottom:4px}.pos-order-pane{margin-top:10px}.pos-customer-card{min-height:58px}.pos-filter-scroll{margin-top:4px}}

/* PATCH-016 — Reports, POS member context, remembered Staff session, app identity */
.staff-login-card{max-width:460px}.staff-login-brand{display:flex;align-items:center;gap:14px;margin-bottom:8px}.staff-login-brand img{width:72px;height:72px;object-fit:cover;border-radius:18px;background:#0d0d0e;box-shadow:0 8px 28px rgba(0,0,0,.12)}.staff-login-brand h1{margin:2px 0 0}.remember-login{display:flex;gap:11px;align-items:flex-start;padding:12px 13px;margin:12px 0 14px;background:#f3f4f6;border-radius:14px;cursor:pointer}.remember-login input{width:20px;height:20px;margin-top:2px;accent-color:var(--accent);flex:0 0 auto}.remember-login span{display:grid;gap:2px}.remember-login strong{font-size:14px}.remember-login small{font-size:12px;color:var(--muted);line-height:1.35}.staff-login-security{line-height:1.45}.rail-brand-logo{overflow:hidden;background:#111!important;padding:0!important}.rail-brand-logo img{width:100%;height:100%;object-fit:cover;display:block}

.pos-member-panel016{margin:12px 0 14px;padding:15px;border:1px solid #e3e5e8;background:rgba(255,255,255,.78);border-radius:18px;box-shadow:0 1px 1px rgba(0,0,0,.03)}.pos-member-panel-head016{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.pos-member-panel-head016>div{display:grid;gap:2px}.pos-member-panel-head016 strong{font-size:15px}.pos-member-search016{position:relative}.pos-member-search016>i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#858a92}.pos-member-search016 input{width:100%;min-height:50px;border:1px solid #dfe2e6;border-radius:14px;background:#fff;padding:10px 14px 10px 40px;outline:none;font:inherit}.pos-member-search016 input:focus{border-color:rgba(10,132,255,.45);box-shadow:0 0 0 3px rgba(10,132,255,.10)}.pos-member-quick-results016{border:1px solid #e4e6e9;border-radius:14px;background:#fff;margin-top:7px;overflow:hidden;box-shadow:0 12px 35px rgba(0,0,0,.08)}.pos-quick-member016{width:100%;border:0;background:#fff;padding:10px 12px;display:flex;align-items:center;gap:10px;text-align:left;border-bottom:1px solid #edf0f2}.pos-quick-member016:last-child{border-bottom:0}.pos-quick-member016:hover{background:#f7f8fa}.pos-quick-member016 .row-main{display:grid;min-width:0}.pos-quick-member016 strong,.pos-quick-member016 small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pos-quick-member016 small{color:var(--muted);font-size:12px;margin-top:2px}.pos-customer-top016{margin:9px 0 0;padding:12px 13px;background:#fff}.pos-selected-member016,.pos-walkin016{display:flex;align-items:center;gap:11px}.pos-member-facts016{display:flex;gap:8px;flex-wrap:wrap;margin-top:5px}.pos-member-facts016 span{font-size:11px;padding:4px 7px;border-radius:999px;background:#f0f2f4;color:#676c73}.pos-member-facts016 b{color:#23262b}.pos-walkin016>div{flex:1;min-width:0}.pos-recent-members016{display:flex;align-items:center;gap:6px;overflow-x:auto;margin-top:8px;padding-bottom:1px}.pos-recent-members016>span{font-size:11px;color:var(--muted);font-weight:700;white-space:nowrap}.pos-recent-members016 button{border:1px solid #e2e4e7;background:#fff;color:#555b63;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:700;white-space:nowrap}.pos-workspace016 .pos-order-pane .pos-order-section:first-of-type{padding-top:12px}

.report-shell016{max-width:1280px;margin:0 auto;padding-bottom:32px}.report-head016{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin:8px 0 16px}.report-head016 h1{font-size:34px;line-height:1;margin:5px 0 7px;letter-spacing:-.045em}.report-head016 p{margin:0;color:var(--muted)}.report-head-actions016{display:flex;gap:8px}.report-presets016{display:flex;gap:6px;overflow-x:auto;margin:0 0 10px}.report-presets016 button,.report-groups016 button{border:1px solid #e2e5e9;background:#fff;color:#656a72;border-radius:999px;padding:8px 12px;white-space:nowrap;font-weight:750;font-size:12px}.report-presets016 button.active,.report-groups016 button.active{background:#17191d;color:#fff;border-color:#17191d}.report-global-filters016{display:grid;grid-template-columns:150px 150px minmax(170px,1fr) minmax(160px,1fr) minmax(180px,1.2fr) auto;gap:8px;align-items:end;background:#fff;border:1px solid #e7e9ec;border-radius:18px;padding:12px;margin-bottom:12px}.report-global-filters016 label{display:grid;gap:5px;min-width:0}.report-global-filters016 label>span{font-size:11px;font-weight:800;color:#747982;text-transform:uppercase;letter-spacing:.035em}.report-global-filters016 .input{min-height:42px;padding:9px 10px;border-color:#eceef1;background:#fafbfc;border-radius:11px}.report-global-filters016 label.is-disabled{opacity:.4}.report-apply016{min-height:42px;padding:9px 14px}.report-groups016{display:flex;gap:6px;overflow-x:auto;margin:0 0 12px}.report-groups016 button{display:inline-flex;align-items:center;gap:6px}.report-body-grid016{display:grid;grid-template-columns:230px minmax(0,1fr);gap:12px;align-items:start}.report-list016{display:grid;gap:6px;position:sticky;top:88px}.report-list016 button{border:1px solid #e7e9ec;background:#fff;border-radius:14px;padding:11px 12px;text-align:left;color:#30343a}.report-list016 button strong,.report-list016 button span{display:block}.report-list016 button strong{font-size:13px}.report-list016 button span{font-size:11px;line-height:1.35;color:#858a92;margin-top:3px}.report-list016 button.active{border-color:#17191d;background:#17191d;color:#fff}.report-list016 button.active span{color:#bdc0c5}.report-content016{min-width:0;background:#fff;border:1px solid #e7e9ec;border-radius:18px;padding:16px;min-height:430px}.report-content-head016{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid #eef0f2;padding-bottom:12px}.report-content-head016 h2{margin:0 0 4px;font-size:21px;letter-spacing:-.025em}.report-content-head016 p{margin:0;color:var(--muted);font-size:13px}.report-summary016{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:12px 0}.report-kpi016{border:1px solid #eceef1;background:#fafbfc;border-radius:13px;padding:10px 11px;min-height:74px}.report-kpi016 span{font-size:11px;color:#7d8289;font-weight:700}.report-kpi016 strong{display:block;font-size:20px;line-height:1.1;margin-top:7px;letter-spacing:-.035em;font-variant-numeric:tabular-nums}.report-note016{display:flex;align-items:flex-start;gap:7px;background:#f4f5f7;color:#666b73;border-radius:11px;padding:9px 11px;font-size:12px;margin:8px 0}.report-table-wrap016{overflow:auto;border:1px solid #eceef1;border-radius:13px;margin-top:10px}.report-table016{width:100%;border-collapse:separate;border-spacing:0;min-width:680px;font-size:12px}.report-table016 th{position:sticky;top:0;z-index:1;background:#f5f6f8;color:#6d7279;font-size:10px;text-transform:uppercase;letter-spacing:.04em;text-align:left;padding:9px 10px;border-bottom:1px solid #e6e8eb;white-space:nowrap}.report-table016 td{padding:10px;border-bottom:1px solid #f0f1f3;white-space:nowrap;max-width:280px;overflow:hidden;text-overflow:ellipsis}.report-table016 tbody tr:last-child td{border-bottom:0}.report-table016 td.num{text-align:right;font-variant-numeric:tabular-nums;font-weight:650}.report-table016 tbody tr:hover{background:#fafbfc}.report-empty016{min-height:260px;display:grid;place-items:center;align-content:center;gap:8px;color:#777d85;text-align:center;padding:30px}.report-empty016 i{font-size:28px;color:#a8adb4}.report-empty016 strong{color:#353a40}.report-empty016 span{font-size:12px}.report-loading016{min-height:250px;display:flex;align-items:center;justify-content:center;gap:10px;color:#777d85;font-size:13px}.report-loading016 .busy-spinner{width:22px;height:22px;margin:0;border-width:2px}

@media(max-width:1100px){.report-global-filters016{grid-template-columns:repeat(3,minmax(0,1fr))}.report-apply016{width:100%}.report-summary016{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:799px){.staff-login-card{padding:22px}.report-shell016{padding:0 0 110px}.report-head016{align-items:flex-start;flex-direction:column}.report-head-actions016{width:100%}.report-head-actions016 .btn{flex:1}.report-head016 h1{font-size:29px}.report-global-filters016{grid-template-columns:1fr 1fr;gap:7px;padding:10px}.report-global-filters016 label:nth-of-type(3),.report-global-filters016 label:nth-of-type(4),.report-global-filters016 label:nth-of-type(5){grid-column:span 1}.report-apply016{grid-column:1/-1}.report-body-grid016{grid-template-columns:1fr}.report-list016{position:static;display:flex;overflow-x:auto;gap:7px}.report-list016 button{min-width:180px;flex:0 0 auto}.report-content016{padding:12px;border-radius:16px}.report-summary016{grid-template-columns:repeat(2,minmax(0,1fr))}.report-kpi016{min-height:66px}.report-kpi016 strong{font-size:18px}.pos-member-panel016{margin-top:8px;padding:12px;border-radius:16px}.pos-member-panel-head016 strong{font-size:14px}.pos-member-search016 input{min-height:52px;font-size:16px}.pos-customer-top016{min-height:64px}.pos-quick-member016{min-height:58px}.pos-order-pane .pos-cart-section{padding-top:14px!important}}
@media(max-width:480px){.report-global-filters016{grid-template-columns:1fr}.report-global-filters016 label{grid-column:auto!important}.report-summary016{grid-template-columns:1fr 1fr}.report-groups016{margin-left:-2px;margin-right:-2px}.pos-member-panel-head016{align-items:flex-start}.pos-member-panel-head016>div strong{max-width:230px}.pos-selected-member016{align-items:flex-start}.pos-selected-member016 .btn{margin-left:auto}.pos-member-facts016{gap:5px}.pos-walkin016{align-items:flex-start;flex-direction:column}.pos-walkin016 .btn{width:100%}}

/* PATCH-017 — Thai-first front desk operational UI */
body:not(.member-body):not(.public-body){--radius:10px;--ops-radius:9px;--ops-radius-lg:12px;--ops-line:#e4e6e9;--ops-soft:#f7f8f9;--ops-ink:#1c1d20;--ops-muted:#6d7178}
body:not(.member-body):not(.public-body) .card,
body:not(.member-body):not(.public-body) .stat{border-radius:var(--ops-radius-lg)}
body:not(.member-body):not(.public-body) .input,
body:not(.member-body):not(.public-body) .btn{border-radius:8px}
body:not(.member-body):not(.public-body) .btn{min-height:42px;white-space:normal;line-height:1.25}
body:not(.member-body):not(.public-body) .btn.small{min-height:36px}
body:not(.member-body):not(.public-body) .sheet{border-radius:14px}
body:not(.member-body):not(.public-body) .sheet-close{border-radius:8px}
body:not(.member-body):not(.public-body) .field label{line-height:1.35}
body:not(.member-body):not(.public-body) .row{gap:10px}
body:not(.member-body):not(.public-body) .pill{border-radius:999px}
body:not(.member-body):not(.public-body) .desktop-rail .nav-item{border-radius:8px}
body:not(.member-body):not(.public-body) .remember-login{border-radius:10px}
body:not(.member-body):not(.public-body) .pos-member-panel016,
body:not(.member-body):not(.public-body) .pos-member-quick-results016,
body:not(.member-body):not(.public-body) .pos-customer-top016,
body:not(.member-body):not(.public-body) .pos-product-card,
body:not(.member-body):not(.public-body) .pos-order-pane{border-radius:10px}
body:not(.member-body):not(.public-body) .pos-member-search016 input,
body:not(.member-body):not(.public-body) .pos-search{border-radius:8px}

.ops-page-head017{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:4px 0 18px}.ops-page-head017 h1{margin:3px 0 6px;font-size:30px;line-height:1.05;letter-spacing:-.035em;color:var(--ops-ink)}.ops-page-head017 p{margin:0;color:var(--ops-muted);font-size:13px;line-height:1.5}.ops-eyebrow017{display:block;font-size:11px;font-weight:800;letter-spacing:.04em;color:#777b82}.ops-head-actions017{display:flex;gap:8px;flex-wrap:wrap}.ops-section-head017{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:20px 0 9px}.ops-section-head017 h2{margin:0;font-size:17px}.ops-section-head017 p{margin:3px 0 0;font-size:12px;color:var(--ops-muted)}.ops-empty017{min-height:240px;display:grid;place-items:center;align-content:center;text-align:center;gap:7px;padding:24px;color:var(--ops-muted)}.ops-empty017 i{font-size:27px}.ops-empty017 strong{color:var(--ops-ink)}.ops-list017,.action-list017{background:#fff;border:1px solid var(--ops-line);border-radius:10px;overflow:hidden}.action-list017>button{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;border:0;background:#fff;text-align:left;padding:13px 14px;border-bottom:1px solid #eceef0;color:inherit}.action-list017>button:last-child{border-bottom:0}.action-list017>button:hover{background:#f8f9fa}.action-list017 span{display:grid;gap:3px}.action-list017 small{font-size:12px;color:var(--ops-muted)}

/* Today / operational home */
.today-shell017{max-width:1180px;margin:0 auto;padding-bottom:30px}.today-head017{margin-bottom:12px}.today-kpis017{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--ops-line);background:#fff;border-radius:10px;overflow:hidden}.today-kpis017 button{border:0;border-right:1px solid var(--ops-line);background:#fff;text-align:left;padding:14px 16px;min-width:0;color:inherit}.today-kpis017 button:last-child{border-right:0}.today-kpis017 button:hover{background:#f8f9fa}.today-kpis017 button.attention{background:#fff8ed}.today-kpis017 span{display:block;font-size:12px;color:var(--ops-muted);margin-bottom:5px}.today-kpis017 strong{display:block;font-size:24px;letter-spacing:-.025em;overflow:hidden;text-overflow:ellipsis}.quick-action-grid017{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.quick-action-grid017>button{display:flex;align-items:flex-start;gap:11px;border:1px solid var(--ops-line);background:#fff;border-radius:9px;text-align:left;padding:13px;color:inherit;min-height:76px}.quick-action-grid017>button:hover{background:#f8f9fa}.quick-action-grid017>button.attention{border-color:#efc47d;background:#fffaf1}.quick-action-grid017>button>i{font-size:18px;line-height:1;margin-top:2px}.quick-action-grid017>button>span{display:grid;gap:3px}.quick-action-grid017 small{font-size:11px;color:var(--ops-muted);line-height:1.35}

/* More menu */
.more-shell017{max-width:920px;margin:0 auto;padding-bottom:90px}.more-grid017{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.more-item017{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid var(--ops-line);background:#fff;border-radius:9px;padding:12px;text-align:left;color:inherit;min-height:72px}.more-item017:hover{background:#f8f9fa}.more-icon017{display:grid;place-items:center;width:38px;height:38px;border-radius:8px;background:#f0f2f4;font-size:17px}.more-item017>span:nth-child(2){display:grid;gap:3px;min-width:0}.more-item017 strong{font-size:14px}.more-item017 small{font-size:11px;line-height:1.35;color:var(--ops-muted)}.more-item017>i{color:#9a9da3}.more-logout017{margin-top:16px}

/* Payment confirmation queue */
.payment-shell017{max-width:1180px;margin:0 auto;padding-bottom:30px}.payment-tabs017{display:flex;gap:6px;margin-bottom:10px;overflow:auto}.payment-tabs017 button{border:1px solid var(--ops-line);background:#fff;border-radius:8px;padding:8px 11px;white-space:nowrap;color:#555b62}.payment-tabs017 button.active{background:#1f2226;border-color:#1f2226;color:#fff}.payment-tabs017 b{font-size:11px;margin-left:5px;opacity:.8}.payment-workspace017{display:grid;grid-template-columns:360px minmax(0,1fr);min-height:610px;border:1px solid var(--ops-line);border-radius:10px;overflow:hidden;background:#fff}.payment-list-pane017{border-right:1px solid var(--ops-line);min-width:0;background:#fafbfb}.payment-search017{position:relative;padding:10px;border-bottom:1px solid var(--ops-line);background:#fff}.payment-search017 i{position:absolute;left:23px;top:50%;transform:translateY(-50%);color:#8a8e94}.payment-search017 input{width:100%;min-height:44px;border:1px solid var(--ops-line);border-radius:8px;padding:9px 12px 9px 38px;font:inherit;background:#fff;outline:none}.payment-search017 input:focus{border-color:#8daed0;box-shadow:0 0 0 3px rgba(72,120,168,.1)}.payment-queue-row017{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid #e8eaec;background:#fff;padding:12px 13px;color:inherit}.payment-queue-row017:hover,.payment-queue-row017.active{background:#f1f5f8}.payment-queue-row017.active{box-shadow:inset 3px 0 #1f6fb2}.payment-row-top017{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-bottom:5px}.payment-row-top017 strong{font-size:17px}.payment-row-main017{display:block;font-size:13px;font-weight:750;margin-bottom:3px}.payment-row-meta017{display:block;font-size:11px;color:var(--ops-muted);line-height:1.45}.status-badge017{display:inline-flex;align-items:center;border-radius:999px;padding:4px 7px;background:#eaf3fb;color:#1b5e94;font-size:10px;font-style:normal;font-weight:800}.status-badge017.warn{background:#fff0d8;color:#9b5c00}.payment-detail-pane017{min-width:0;background:#fff}.payment-empty-detail017{height:100%;min-height:540px;display:grid;place-items:center;align-content:center;gap:8px;color:var(--ops-muted);text-align:center}.payment-empty-detail017 i{font-size:32px;color:#a6abb1}.payment-empty-detail017 strong{color:var(--ops-ink)}.payment-detail017{max-width:700px;margin:0 auto;padding:22px}.payment-mobile-back017{display:none;border:0;background:transparent;padding:7px 0;color:#34678f;font-weight:700}.payment-detail-head017{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--ops-line)}.payment-amount017{font-size:36px;font-weight:800;letter-spacing:-.04em;margin-top:7px}.payment-receipt017{font-size:12px;color:var(--ops-muted)}.payment-facts017{margin:14px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border:1px solid var(--ops-line);border-radius:9px;overflow:hidden}.payment-facts017>div{padding:10px 12px;border-bottom:1px solid var(--ops-line)}.payment-facts017>div:nth-child(odd){border-right:1px solid var(--ops-line)}.payment-facts017>div:nth-last-child(-n+2){border-bottom:0}.payment-facts017 dt{font-size:10px;color:var(--ops-muted);font-weight:700;margin-bottom:3px}.payment-facts017 dd{margin:0;font-size:13px;font-weight:650}.payment-confirm-main017{margin-top:12px}.payment-detail017 #paymentReview017{margin-top:8px}

/* Role permissions */
.permission-shell017{max-width:1120px;margin:0 auto;padding-bottom:40px}.permission-layout017{display:grid;grid-template-columns:220px minmax(0,1fr);border:1px solid var(--ops-line);border-radius:10px;overflow:hidden;background:#fff;min-height:590px}.permission-role-list017{background:#fafbfb;border-right:1px solid var(--ops-line);padding:8px}.permission-role-list017 button{display:block;width:100%;border:0;border-radius:7px;background:transparent;text-align:left;padding:10px;color:inherit}.permission-role-list017 button:hover{background:#f0f2f4}.permission-role-list017 button.active{background:#202327;color:#fff}.permission-role-list017 strong,.permission-role-list017 span{display:block}.permission-role-list017 strong{font-size:13px}.permission-role-list017 span{font-size:10px;opacity:.65;margin-top:2px}.permission-editor017{padding:18px;min-width:0}.permission-editor-head017{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.permission-editor-head017 h2{margin:0 0 4px}.permission-editor-head017 p{margin:0;color:var(--ops-muted);font-size:12px}.permission-warning017{margin:14px 0}.permission-group017{margin:0 0 16px}.permission-group017 h3{font-size:12px;color:#686d74;margin:0 0 6px;padding-bottom:6px;border-bottom:1px solid var(--ops-line)}.permission-group017>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}.permission-row017{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;border-bottom:1px solid #eff0f2;padding:7px 2px;cursor:pointer}.permission-row017>span{display:grid;gap:2px;min-width:0}.permission-row017 strong{font-size:12px}.permission-row017 small{font-size:9px;color:#9a9da3;overflow:hidden;text-overflow:ellipsis}.permission-row017 input{width:20px;height:20px;accent-color:#1672b8;flex:0 0 auto}

/* Reports — operational workspace, fewer floating pills/cards */
.report-shell017{max-width:1280px;margin:0 auto;padding-bottom:40px}.report-presets017,.report-groups017{display:flex;gap:5px;overflow:auto;margin-bottom:9px}.report-presets017 button,.report-groups017 button{border:1px solid var(--ops-line);border-radius:7px;background:#fff;padding:8px 11px;white-space:nowrap;color:#5d6269;font-size:12px;font-weight:700}.report-presets017 button.active,.report-groups017 button.active{background:#202327;border-color:#202327;color:#fff}.report-filter-panel017{border:1px solid var(--ops-line);background:#fff;border-radius:9px;margin-bottom:9px}.report-filter-title017{display:none}.report-global-filters017{display:grid;grid-template-columns:145px 145px minmax(160px,1fr) minmax(150px,1fr) minmax(170px,1.15fr) auto;align-items:end;gap:7px;padding:10px}.report-global-filters017 label{display:grid;gap:4px;min-width:0}.report-global-filters017 label>span,.report-mobile-picker017 label>span{font-size:10px;font-weight:800;color:#747980}.report-global-filters017 .input{min-height:40px;padding:8px 9px;border-radius:7px;background:#fbfbfc}.report-global-filters017 label.is-disabled{opacity:.35}.report-apply017{min-height:40px}.report-workspace017{display:grid;grid-template-columns:230px minmax(0,1fr);border:1px solid var(--ops-line);border-radius:10px;overflow:hidden;background:#fff;min-height:520px}.report-list017{padding:7px;background:#fafbfb;border-right:1px solid var(--ops-line)}.report-list017 button{display:block;width:100%;border:0;border-radius:7px;background:transparent;text-align:left;padding:9px 10px;color:#33373d;margin-bottom:2px}.report-list017 button:hover{background:#f0f2f4}.report-list017 button.active{background:#202327;color:#fff}.report-list017 button strong,.report-list017 button span{display:block}.report-list017 button strong{font-size:12px}.report-list017 button span{font-size:10px;line-height:1.35;color:#8a8e94;margin-top:2px}.report-list017 button.active span{color:#c7c9cc}.report-content017{padding:15px;min-width:0}.report-content-head017{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:11px;border-bottom:1px solid var(--ops-line)}.report-content-head017 h2{font-size:20px;margin:0 0 4px}.report-content-head017 p{font-size:12px;color:var(--ops-muted);margin:0}.report-summary017{display:flex;gap:0;border:1px solid var(--ops-line);border-radius:8px;overflow-x:auto;margin:11px 0}.report-kpi017{min-width:135px;flex:1;padding:9px 11px;border-right:1px solid var(--ops-line);background:#fff}.report-kpi017:last-child{border-right:0}.report-kpi017 span{display:block;font-size:10px;color:var(--ops-muted)}.report-kpi017 strong{display:block;font-size:18px;margin-top:4px;white-space:nowrap}.report-mobile-picker017{display:none}.report-shell017 .report-table-wrap016{border-radius:8px}.report-shell017 .report-table016 th{background:#f6f7f8;text-transform:none;letter-spacing:0;font-size:10px}.report-shell017 .report-table016 td{font-size:11px}.report-action-row017{cursor:pointer}.report-action-row017:hover{background:#eef5fb!important}

/* POS Thai-first and explicit keyboard exit */
body:not(.member-body):not(.public-body) .pos-kicker{font-size:11px;letter-spacing:.025em}.input-done-inline017{position:absolute;right:7px;top:50%;transform:translateY(-50%);display:none;border:0;background:#edf1f4;border-radius:6px;padding:6px 8px;font-size:11px;color:#3f617b}.pos-member-search016:focus-within .input-done-inline017{display:block}.pos-member-search016:focus-within input{padding-right:60px}.mobile-input-done017{position:fixed;right:12px;z-index:10000;border:1px solid #d3d7dc;background:#fff;border-radius:8px;min-height:38px;padding:7px 12px;box-shadow:0 8px 30px rgba(0,0,0,.14);font-weight:800;color:#245f8c}.mobile-input-done017[hidden]{display:none!important}

/* Large phones remain phone UI even with wide CSS viewport. Desktop requires mouse/hover-like space. */
@media (max-width:900px), (pointer:coarse) and (max-width:980px){
  body:not(.member-body):not(.public-body) .app{padding-left:0!important;padding-bottom:calc(78px + env(safe-area-inset-bottom))!important}
  body:not(.member-body):not(.public-body) .desktop-rail{display:none!important}
  body:not(.member-body):not(.public-body) .bottom-nav{display:grid!important}
  body:not(.member-body):not(.public-body) .page{padding:14px 12px 18px!important}
  body:not(.member-body):not(.public-body) .topbar{padding-left:12px;padding-right:12px}
  body:not(.member-body):not(.public-body) .sheet-backdrop{align-items:flex-end!important;justify-content:stretch!important}
  body:not(.member-body):not(.public-body) .sheet{width:100%!important;max-width:none!important;max-height:88dvh!important;border-radius:12px 12px 0 0!important}
  body:not(.member-body):not(.public-body) .sheet-drag-zone{pointer-events:auto!important}
  .ops-page-head017{margin-top:1px}.ops-page-head017 h1{font-size:26px}.ops-page-head017 p{font-size:12px}.today-kpis017{grid-template-columns:repeat(2,minmax(0,1fr))}.today-kpis017 button{border-bottom:1px solid var(--ops-line)}.today-kpis017 button:nth-child(2){border-right:0}.today-kpis017 button:nth-last-child(-n+2){border-bottom:0}.quick-action-grid017{grid-template-columns:repeat(2,minmax(0,1fr))}.more-grid017{grid-template-columns:1fr}
  .payment-workspace017{display:block;min-height:0;border:0;background:transparent}.payment-list-pane017{border:1px solid var(--ops-line);border-radius:9px;overflow:hidden}.payment-detail-pane017{display:none}.payment-workspace017.has-selection .payment-list-pane017{display:none}.payment-workspace017.has-selection .payment-detail-pane017{display:block}.payment-mobile-back017{display:inline-flex;align-items:center;gap:4px}.payment-detail017{padding:4px 0 90px}.payment-facts017{grid-template-columns:1fr}.payment-facts017>div,.payment-facts017>div:nth-child(odd){border-right:0;border-bottom:1px solid var(--ops-line)}.payment-facts017>div:last-child{border-bottom:0}.payment-confirm-main017{min-height:50px;font-size:15px}
  .report-filter-title017{display:flex;align-items:center;justify-content:space-between;padding:9px 10px}.report-filter-title017 strong{font-size:12px}.report-global-filters017{display:none;grid-template-columns:1fr 1fr;border-top:1px solid var(--ops-line)}.report-global-filters017.is-open{display:grid}.report-global-filters017 label:nth-child(n+3){grid-column:1/-1}.report-apply017{grid-column:1/-1}.report-groups017{margin-left:-1px;margin-right:-1px}.report-mobile-picker017{display:block;margin-bottom:8px}.report-mobile-picker017 label{display:grid;gap:4px}.report-workspace017{display:block;border-radius:9px;min-height:0}.report-list017{display:none}.report-content017{padding:11px}.report-content-head017{display:block}.report-content-head017 .btn{margin-top:8px;width:100%}.report-summary017{margin:9px 0}.report-kpi017{min-width:115px}.report-shell017 .report-table-wrap016{margin-left:-2px;margin-right:-2px}.ops-head-actions017{width:100%}.ops-head-actions017 .btn{flex:1}.permission-layout017{display:block;border:0;background:transparent}.permission-role-list017{display:flex;overflow:auto;border:1px solid var(--ops-line);border-radius:8px;padding:5px;margin-bottom:8px}.permission-role-list017 button{min-width:140px;flex:0 0 auto}.permission-editor017{padding:12px;border:1px solid var(--ops-line);border-radius:9px;background:#fff}.permission-editor-head017{align-items:stretch;flex-direction:column}.permission-editor-head017 .btn{width:100%}.permission-group017>div{grid-template-columns:1fr}.permission-row017{min-height:56px}.pos-member-panel016{padding:10px!important}.pos-member-panel-head016{align-items:flex-start}.pos-member-panel-head016 strong{line-height:1.3}.pos-toolbar .pos-heading h1{font-size:24px}.pos-toolbar-actions{gap:7px}
}
@media (max-width:520px){.today-kpis017 strong{font-size:21px}.quick-action-grid017{grid-template-columns:1fr 1fr}.quick-action-grid017>button{min-height:88px}.payment-tabs017 button{font-size:11px}.payment-amount017{font-size:32px}.report-global-filters017{grid-template-columns:1fr}.report-global-filters017 label{grid-column:auto!important}.report-presets017 button,.report-groups017 button{font-size:11px}.more-item017{min-height:68px}}
@media (min-width:981px) and (pointer:coarse){body:not(.member-body):not(.public-body) .desktop-rail .nav-item{min-height:48px}body:not(.member-body):not(.public-body) .btn,body:not(.member-body):not(.public-body) .input{min-height:44px}}

/* PATCH-017 Thai copy resilience: longer labels must not break operational layouts. */
body:not(.member-body):not(.public-body) .btn,
body:not(.member-body):not(.public-body) .nav-label,
body:not(.member-body):not(.public-body) .more-item017 strong,
body:not(.member-body):not(.public-body) .more-item017 small,
body:not(.member-body):not(.public-body) .quick-action-grid017 strong,
body:not(.member-body):not(.public-body) .quick-action-grid017 small,
body:not(.member-body):not(.public-body) .permission-row017 strong,
body:not(.member-body):not(.public-body) .permission-row017 small{min-width:0;overflow-wrap:anywhere;line-height:1.35}
body:not(.member-body):not(.public-body) .btn{white-space:normal}
body:not(.member-body):not(.public-body) .field label{line-height:1.35}
body:not(.member-body):not(.public-body) .row-main,
body:not(.member-body):not(.public-body) .ops-page-head017>div,
body:not(.member-body):not(.public-body) .payment-row-main017,
body:not(.member-body):not(.public-body) .permission-editor-head017>div{min-width:0}
@media (max-width:520px){
  body:not(.member-body):not(.public-body) .btn{padding-left:10px;padding-right:10px}
  body:not(.member-body):not(.public-body) .ops-head-actions017{flex-wrap:wrap}
}

/* PATCH-018 — shared editor shell, member editor, catalog navigation, report semantics */
body:not(.member-body):not(.public-body) .editor-shell018{width:min(780px,calc(100vw - 32px));max-width:780px;border-radius:10px;padding-left:0;padding-right:0;overflow:hidden}
body:not(.member-body):not(.public-body) .editor-shell018 .sheet-chrome{padding-left:16px;padding-right:16px;margin:0;background:linear-gradient(var(--surface) 78%,rgba(255,255,255,0))}
body:not(.member-body):not(.public-body) .editor-shell018 .sheet-content{padding:0 18px 24px;overflow-x:hidden}
body:not(.member-body):not(.public-body) .editor-shell018 form{min-width:0}
body:not(.member-body):not(.public-body) .editor-shell018 .form-row{gap:10px}
body:not(.member-body):not(.public-body) .editor-shell018 .field{min-width:0}
body:not(.member-body):not(.public-body) .editor-shell018 .input{width:100%;max-width:100%}

.member-editor018{display:grid;gap:12px;padding:2px 0 8px}.member-editor-head018{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:3px 1px 2px}.member-editor-id018{display:flex;align-items:center;gap:12px;min-width:0}.member-editor-id018>div{min-width:0}.member-editor-id018 h2{margin:2px 0 2px;font-size:23px;line-height:1.1;letter-spacing:-.025em;overflow-wrap:anywhere}.member-editor-id018 p{margin:0;color:var(--ops-muted);font-size:11px;line-height:1.45;overflow-wrap:anywhere}.member-avatar018{width:50px;height:50px;flex:0 0 50px;border-radius:10px;font-size:15px}.member-summary018{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--ops-line);border-radius:9px;overflow:hidden;background:#fff}.member-summary018>div{padding:11px 12px;border-right:1px solid var(--ops-line);min-width:0}.member-summary018>div:last-child{border-right:0}.member-summary018 span{display:block;font-size:10px;color:var(--ops-muted);line-height:1.35}.member-summary018 strong{display:block;margin-top:4px;font-size:17px;line-height:1.25;overflow-wrap:anywhere}.editor-section018{border-top:1px solid var(--ops-line);padding:15px 1px 3px}.member-summary018+.editor-section018{border-top:0;padding-top:5px}.editor-section-head018{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.editor-section-head018>div{min-width:0}.editor-section-head018 h3{margin:0;font-size:15px;line-height:1.25}.editor-section-head018 p{margin:3px 0 0;color:var(--ops-muted);font-size:11px;line-height:1.45}.editor-inline-actions018,.editor-action-row018{margin-top:9px}.member-nickname-form018{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:9px}.member-readonly018{display:grid;gap:3px}.member-readonly018 span{font-size:10px;color:var(--ops-muted)}.editor-details018{border:1px solid var(--ops-line);border-radius:8px;background:#fff;overflow:hidden}.editor-details018>summary{list-style:none;cursor:pointer;padding:11px 12px;font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:space-between;gap:8px}.editor-details018>summary::-webkit-details-marker{display:none}.editor-details018>summary span{font-size:10px;color:var(--ops-muted);font-weight:700}.member-course-list018{border-top:1px solid var(--ops-line)}.member-course-row018{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid #eceef0}.member-course-row018:last-child{border-bottom:0}.member-course-row018>div{display:grid;gap:2px;min-width:0}.member-course-row018 strong{font-size:12px;overflow-wrap:anywhere}.member-course-row018 span{font-size:10px;color:var(--ops-muted);line-height:1.45;overflow-wrap:anywhere}.member-limit-grid018,.member-status-form018{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr) auto;align-items:end;gap:9px}.editor-action-row018{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--ops-line);background:#fff;border-radius:8px;padding:10px 11px;color:inherit;text-align:left}.editor-action-row018>span{display:flex;align-items:center;gap:9px;min-width:0}.editor-action-row018>span>span{display:grid;gap:2px;min-width:0}.editor-action-row018 strong{font-size:12px}.editor-action-row018 small{font-size:10px;color:var(--ops-muted);line-height:1.4}.editor-danger-zone018{margin-top:4px}.ops-empty018{padding:16px;text-align:center;color:var(--ops-muted);font-size:11px}.status-badge017{flex:0 0 auto}

.catalog-shell018{max-width:1180px;margin:0 auto;padding-bottom:34px}.catalog-switch018{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--ops-line);border-radius:9px;overflow:hidden;background:#fff;margin-bottom:10px}.catalog-switch018 button{border:0;background:#fff;min-height:46px;padding:8px 12px;font:inherit;font-weight:800;color:#555b62}.catalog-switch018 button+button{border-left:1px solid var(--ops-line)}.catalog-switch018 button.active{background:#202327;color:#fff}.catalog-panel018{border:1px solid var(--ops-line);border-radius:9px;background:#fff;overflow:hidden}.catalog-panel-head018{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 13px;border-bottom:1px solid var(--ops-line)}.catalog-panel-head018>div{min-width:0}.catalog-panel-head018 h2{font-size:16px;margin:0}.catalog-panel-head018 p{font-size:11px;color:var(--ops-muted);margin:3px 0 0}.catalog-details018{border:0}.catalog-details018>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 13px;background:#fafbfb;border-bottom:1px solid var(--ops-line);cursor:pointer;font-size:12px;font-weight:800}.catalog-details018>summary::-webkit-details-marker{display:none}.catalog-details018>summary span{font-size:10px;color:var(--ops-muted);font-weight:700}.catalog-list018{display:grid}.catalog-row018{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:11px 13px;border-bottom:1px solid #eceef0;cursor:pointer}.catalog-row018:last-child{border-bottom:0}.catalog-row018:hover{background:#f8f9fa}.catalog-row018>div{min-width:0}.catalog-row018 strong{display:block;font-size:12px;line-height:1.3;overflow-wrap:anywhere}.catalog-row018 span{display:block;margin-top:2px;font-size:10px;line-height:1.4;color:var(--ops-muted);overflow-wrap:anywhere}.catalog-row-meta018{font-size:10px;color:var(--ops-muted);white-space:nowrap}.report-mode-note018{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--ops-line);background:#f7f8f9;border-radius:7px;padding:8px 10px;font-size:11px;color:#62676d}.report-mode-note018 i{font-size:12px}.report-shell017 [hidden]{display:none!important}

@media (max-width:900px), (pointer:coarse) and (max-width:980px){
  body:not(.member-body):not(.public-body) .sheet.editor-shell018{width:100%!important;max-width:none!important;height:100dvh!important;max-height:100dvh!important;border-radius:0!important;padding-bottom:calc(10px + var(--safe-bottom))!important}
  body:not(.member-body):not(.public-body) .sheet.editor-shell018 .sheet-chrome{height:50px;flex:0 0 50px;padding-left:12px;padding-right:12px;background:var(--surface);border-bottom:1px solid var(--ops-line)}
  body:not(.member-body):not(.public-body) .sheet.editor-shell018 .sheet-drag-zone{display:none}
  body:not(.member-body):not(.public-body) .sheet.editor-shell018 .sheet-close{left:8px;right:auto;top:7px;background:#f0f2f4}
  body:not(.member-body):not(.public-body) .sheet.editor-shell018 .sheet-close::after{content:'กลับ';position:absolute;left:38px;top:50%;transform:translateY(-50%);font-size:12px;font-weight:800;color:#3f444a;white-space:nowrap}
  body:not(.member-body):not(.public-body) .sheet.editor-shell018 .sheet-content{padding:10px 12px calc(28px + var(--safe-bottom));height:calc(100dvh - 50px);overflow:auto;-webkit-overflow-scrolling:touch}
  .member-editor018{gap:10px}.member-editor-head018{padding-top:2px}.member-editor-id018 h2{font-size:20px}.member-avatar018{width:44px;height:44px;flex-basis:44px}.member-summary018{overflow-x:auto;grid-template-columns:repeat(3,minmax(125px,1fr))}.member-summary018>div{min-width:125px}.member-nickname-form018{grid-template-columns:1fr}.member-nickname-form018 .btn{width:100%}.editor-section-head018{align-items:stretch;flex-direction:column}.editor-section-head018>.btn{width:100%}.member-limit-grid018,.member-status-form018{grid-template-columns:1fr}.member-limit-grid018>.btn,.member-status-form018>.btn{width:100%}.member-course-row018{align-items:flex-start}.member-course-row018>.btn{flex:0 0 auto}.catalog-panel-head018{align-items:flex-start;flex-direction:column}.catalog-panel-head018 .btn{width:100%}.catalog-row018{grid-template-columns:minmax(0,1fr) auto}.catalog-switch018{position:sticky;top:0;z-index:8}.report-mode-note018{width:100%;justify-content:center}
}
@media (max-width:520px){.member-editor-head018{display:grid}.member-editor-head018>.status-badge017{justify-self:start}.member-course-row018{display:grid;grid-template-columns:1fr}.member-course-row018>.btn{width:100%}.catalog-row018{grid-template-columns:1fr}.catalog-row-meta018{white-space:normal}}
/* P018 catalog row final structure */
.catalog-row018{width:100%;border:0;border-bottom:1px solid #eceef0;background:#fff;text-align:left;color:inherit;font:inherit}.catalog-row018>span:first-child{display:grid;gap:2px;min-width:0}.catalog-row018 strong{display:block}.catalog-row018 small{display:block;font-size:10px;line-height:1.4;color:var(--ops-muted);overflow-wrap:anywhere}.catalog-price018{font-size:12px;font-weight:800;white-space:nowrap}.catalog-row018>i{color:#9a9da3}

/* ======================= PATCH-018 HF2 EDITOR FIXES ======================= */
body:not(.member-body):not(.public-body) .sheet.editor-shell018.editor-shell-hf2{
  display:flex;
  flex-direction:column;
  max-height:calc(100dvh - 40px);
}
body:not(.member-body):not(.public-body) .sheet.editor-shell018.editor-shell-hf2 .sheet-chrome{flex:0 0 48px}
body:not(.member-body):not(.public-body) .sheet.editor-shell018.editor-shell-hf2 .sheet-content{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
.member-general-form-hf2,.branch-editor-hf2{display:grid;gap:0;min-width:0}
.member-limit-grid-hf2{display:grid;grid-template-columns:minmax(160px,.7fr) minmax(0,1.3fr);gap:10px}
.editor-save-bar-hf2{
  position:sticky;
  bottom:-24px;
  z-index:6;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:16px -18px -24px;
  padding:12px 18px calc(12px + env(safe-area-inset-bottom,0px));
  border-top:1px solid var(--ops-line);
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.editor-save-bar-hf2>span{font-size:10px;line-height:1.4;color:var(--ops-muted)}
.editor-save-bar-hf2 .btn{flex:0 0 auto;min-width:170px}
.branch-editor-head-hf2{padding:2px 1px 5px}
.branch-editor-head-hf2 h2{font-size:22px;line-height:1.15;margin:3px 0 4px}
.branch-editor-head-hf2 p{margin:0;color:var(--ops-muted);font-size:11px;line-height:1.45}
.branch-check-hf2{min-height:44px;margin-top:2px}
.week-hours-hf2{display:grid;gap:0;border:1px solid var(--ops-line);border-radius:8px;overflow:hidden;background:#fff}
.hour-row-hf2{display:grid;grid-template-columns:minmax(92px,.7fr) 74px minmax(105px,1fr) auto minmax(105px,1fr);gap:9px;align-items:center;padding:9px 10px;border-bottom:1px solid #eceef0}
.hour-row-hf2:last-child{border-bottom:0}
.hour-row-hf2>label:first-child{display:grid;gap:1px}
.hour-row-hf2>label:first-child strong{font-size:11px}
.hour-row-hf2>label:first-child small{font-size:9px;color:var(--ops-muted)}
.hour-row-hf2>span{font-size:10px;color:var(--ops-muted)}

@media (max-width:900px), (pointer:coarse) and (max-width:980px){
  body:not(.member-body):not(.public-body) .sheet.editor-shell018.editor-shell-hf2{height:100dvh;max-height:100dvh}
  .editor-save-bar-hf2{bottom:calc(-28px - var(--safe-bottom));margin:16px -12px calc(-28px - var(--safe-bottom));padding:11px 12px calc(11px + var(--safe-bottom));display:grid;grid-template-columns:1fr}
  .editor-save-bar-hf2>span{display:none}
  .editor-save-bar-hf2 .btn{width:100%;min-width:0;min-height:46px}
  .member-limit-grid-hf2{grid-template-columns:1fr}
  .hour-row-hf2{grid-template-columns:1fr 70px minmax(0,1fr);gap:7px}
  .hour-row-hf2>span{display:none}
  .hour-row-hf2>input[name^="close_"]{grid-column:3}
  .hour-row-hf2>label:first-child{grid-row:1 / span 2}
}
@media (max-width:520px){
  .hour-row-hf2{grid-template-columns:72px 64px minmax(0,1fr)}
}
/* ===================== END PATCH-018 HF2 EDITOR FIXES ===================== */


/* ======================= PATCH-018 HF3 MEMBER SAVE + CACHE UX ======================= */
.member-editor-hf3{padding-bottom:10px}.member-action-form-hf3{display:grid;gap:0}.section-action-hf3{display:flex;justify-content:flex-end;align-items:center;gap:8px;padding-top:10px;margin-top:2px;border-top:1px solid #eef0f2}.section-action-hf3 .btn{min-width:154px}.editor-shell-hf3 .member-limit-grid-hf2{align-items:end}.editor-shell-hf3 .editor-section018{overflow:visible}
/* HF2 sticky footer fix: Branch editor keeps a visible sticky Save without negative offsets. */
body:not(.member-body):not(.public-body) .sheet.editor-shell-hf2 .editor-save-bar-hf2{bottom:0;margin:16px -18px 0;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}
@media (max-width:900px), (pointer:coarse) and (max-width:980px){
  .section-action-hf3{position:sticky;bottom:0;z-index:5;margin:8px -12px -10px;padding:10px 12px calc(10px + var(--safe-bottom));background:rgba(255,255,255,.97);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
  .section-action-hf3 .btn{width:100%;min-width:0;min-height:46px}
  body:not(.member-body):not(.public-body) .sheet.editor-shell-hf2 .editor-save-bar-hf2{bottom:0;margin:16px -12px 0;padding:11px 12px calc(11px + var(--safe-bottom))}
}
/* ===================== END PATCH-018 HF3 MEMBER SAVE + CACHE UX ===================== */


/* ======================= PATCH-018 HF4 UX HARDENING ======================= */
:root{
  --cms-page-gutter-phone:14px;
  --cms-page-gutter-tablet:24px;
  --cms-page-gutter-desktop:32px;
  --cms-content-max:1240px;
  --cms-bottom-nav-h:68px;
  --cms-pos-cart-h:56px;
  --cms-z-nav:30;
  --cms-z-sticky:40;
  --cms-z-sheet:100;
  --cms-z-dialog:120;
  --cms-z-input-done:130;
  --cms-z-toast:150;
}
body:not(.member-body):not(.public-body) .page{max-width:var(--cms-content-max)}
body:not(.member-body):not(.public-body) .ops-list017>.row{padding-left:16px;padding-right:16px;gap:14px}
body:not(.member-body):not(.public-body) .ops-list017>.row>.pill{flex:0 0 auto;min-width:66px;text-align:center}
body:not(.member-body):not(.public-body) .ops-section-head017{margin-top:24px;margin-bottom:11px}
body:not(.member-body):not(.public-body) .bottom-nav{z-index:var(--cms-z-nav)}
body:not(.member-body):not(.public-body) .pos-cart-toggle{z-index:var(--cms-z-sticky)!important}
body:not(.member-body):not(.public-body) .sheet-backdrop{z-index:var(--cms-z-sheet)}
body:not(.member-body):not(.public-body) .mobile-input-done017{z-index:var(--cms-z-input-done)}
body:not(.member-body):not(.public-body) .toast{z-index:var(--cms-z-toast)}
.pos-keyboard-hint-hf4{display:flex;flex-wrap:wrap;gap:5px 14px;margin:6px 2px 1px;color:var(--ops-muted,#72777d);font-size:10px;line-height:1.4}
.pos-keyboard-hint-hf4 span{display:inline-flex;align-items:center;gap:5px}.pos-keyboard-hint-hf4 i{font-size:11px;color:#666c73}
@media (min-width:800px){body:not(.member-body):not(.public-body) .page{padding-left:var(--cms-page-gutter-tablet);padding-right:var(--cms-page-gutter-tablet)}}
@media (min-width:1200px){body:not(.member-body):not(.public-body) .page{padding-left:var(--cms-page-gutter-desktop);padding-right:var(--cms-page-gutter-desktop)}}
@media (max-width:900px), (pointer:coarse) and (max-width:980px){
  body:not(.member-body):not(.public-body) .page{padding-left:var(--cms-page-gutter-phone)!important;padding-right:var(--cms-page-gutter-phone)!important}
  body:not(.member-body):not(.public-body) .bottom-nav{min-height:calc(var(--cms-bottom-nav-h) + var(--safe-bottom))}
  body:not(.member-body):not(.public-body) .app{padding-bottom:calc(var(--cms-bottom-nav-h) + var(--safe-bottom) + 12px)!important}
  body:not(.member-body):not(.public-body) .page.pos-page{padding-bottom:calc(var(--cms-bottom-nav-h) + var(--cms-pos-cart-h) + var(--safe-bottom) + 32px)!important}
  body:not(.member-body):not(.public-body) .pos-cart-toggle{min-height:var(--cms-pos-cart-h)!important;bottom:calc(var(--cms-bottom-nav-h) + var(--safe-bottom) + 8px)!important;left:var(--cms-page-gutter-phone)!important;right:var(--cms-page-gutter-phone)!important}
  body:not(.member-body):not(.public-body) .row-meta{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;line-height:1.35}
  .pos-keyboard-hint-hf4{font-size:9px}
}
@media (min-width:768px) and (pointer:coarse){body:not(.member-body):not(.public-body) .ops-list017>.row{padding-left:18px;padding-right:18px;min-height:62px}}
/* ===================== END PATCH-018 HF4 UX HARDENING ===================== */

/* ================= PATCH-019 course approval / print / nav ================= */
.approval-shell019,.approval-detail019{max-width:1080px;margin:0 auto}
.approval-list019{display:grid;gap:10px}
.approval-row019{width:100%;border:1px solid var(--line,#e4e7ec);background:var(--card,#fff);border-radius:9px;padding:15px 17px;display:grid;grid-template-columns:minmax(0,1fr) auto 24px;gap:14px;align-items:center;text-align:left;color:inherit;font:inherit;cursor:pointer}
.approval-row019:hover{border-color:#aeb4bd;background:#fafafa}
.approval-main019{display:flex;flex-direction:column;gap:4px;min-width:0}.approval-main019 strong{font-size:15px}.approval-main019 small{color:var(--muted,#667085);overflow-wrap:anywhere}
.approval-money019{display:flex;flex-direction:column;align-items:flex-end;gap:4px;white-space:nowrap}.approval-money019 strong{font-size:16px}.approval-money019 small{color:var(--muted,#667085)}.approval-money019 em{font-style:normal;font-size:12px;font-weight:700;color:#9a6700}
.mobile-page-head019{display:flex;align-items:center;gap:12px;margin-bottom:18px}.mobile-page-head019 h1{margin:2px 0 0}.approval-hero019{background:#111;color:#fff;border-radius:10px;padding:20px;margin-bottom:14px;display:flex;flex-direction:column;gap:4px}.approval-hero019 strong{font-size:30px;line-height:1.05}.approval-hero019 small{opacity:.76}
.approval-facts019{padding:8px 16px}.approval-facts019>div{display:flex;justify-content:space-between;gap:18px;padding:11px 0;border-bottom:1px solid var(--line,#e9eaec)}.approval-facts019>div:last-child{border-bottom:0}.approval-facts019 span{color:var(--muted,#667085)}.approval-facts019 strong{text-align:right;max-width:68%;overflow-wrap:anywhere}
.sale-customer019{display:flex;align-items:baseline;gap:8px;margin:4px 0 12px;padding:9px 11px;background:#f6f7f8;border-radius:8px}.sale-customer019 span,.sale-customer019 small{color:#667085}.sale-customer019 strong{flex:1}
.device-print-settings019{margin-top:24px}.settings-actions019{display:flex;gap:10px;flex-wrap:wrap}.input-affix019{display:flex;align-items:center;gap:8px}.input-affix019 .input{min-width:0}.input-affix019 span{white-space:nowrap;color:#667085}
.coach-photo-editor019{display:grid;grid-template-columns:150px minmax(0,1fr);gap:18px;align-items:start;margin:10px 0 18px}.coach-photo-preview019{aspect-ratio:2/3;background:#f0f1f3;border:1px solid #dfe2e7;border-radius:8px;overflow:hidden;display:grid;place-items:center;color:#667085;text-align:center}.coach-photo-preview019 img{width:100%;height:100%;object-fit:cover}.coach-photo-preview019 i{display:block;font-size:30px;margin-bottom:6px}
@media(max-width:767px),(pointer:coarse) and (max-width:980px){
  .approval-row019{grid-template-columns:minmax(0,1fr) 18px;padding:14px}.approval-money019{grid-column:1/2;align-items:flex-start;white-space:normal;margin-top:4px}.approval-row019>i{grid-column:2;grid-row:1/3;align-self:center}.approval-facts019>div{flex-direction:column;gap:4px}.approval-facts019 strong{text-align:left;max-width:100%}.approval-hero019 strong{font-size:27px}.coach-photo-editor019{grid-template-columns:112px minmax(0,1fr);gap:12px}
}
/* ================= END PATCH-019 ================= */


/* ================= PATCH-020 editor scroll contract + home cleanup ================= */
body:not(.member-body):not(.public-body) .sheet.editor-shell020{
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
  max-height:min(860px,calc(100dvh - 40px))!important;
  padding-bottom:0!important;
}
body:not(.member-body):not(.public-body) .sheet.editor-shell020>.sheet-chrome{
  position:relative!important;
  top:auto!important;
  flex:0 0 48px!important;
  min-height:48px!important;
  margin-bottom:0!important;
  border-bottom:1px solid var(--ops-line,#e5e7eb);
  background:var(--surface,#fff)!important;
}
body:not(.member-body):not(.public-body) .sheet.editor-shell020>.sheet-content{
  flex:1 1 auto!important;
  min-height:0!important;
  height:auto!important;
  max-height:none!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  padding-bottom:calc(28px + var(--safe-bottom,0px))!important;
  scroll-padding-bottom:96px;
}
.home-date020{font-size:13px;font-weight:700;color:var(--ops-muted,#667085);margin:2px 0 16px;padding:0 1px}
.coach-photo-note020{margin-top:8px;line-height:1.45;overflow-wrap:anywhere}
@media (max-width:900px), (pointer:coarse) and (max-width:980px){
  body:not(.member-body):not(.public-body) .sheet.editor-shell020{height:100dvh!important;max-height:100dvh!important;border-radius:0!important;}
  body:not(.member-body):not(.public-body) .sheet.editor-shell020>.sheet-content{padding:10px 12px calc(34px + var(--safe-bottom,0px))!important;}
}
@media (max-width:520px){
  .coach-photo-editor019{grid-template-columns:1fr!important}.coach-photo-preview019{width:min(220px,70vw);margin:0 auto}.home-date020{margin-bottom:12px}
}
/* ================= END PATCH-020 ================= */


/* ================= PATCH-025 POS STABILITY + COMFORT ================= */
html{scrollbar-gutter:stable}
body:not(.member-body):not(.public-body) .page.pos-page{background:#f1f3f5;border-radius:12px}
body:not(.member-body):not(.public-body) .pos-workspace{align-items:start;min-width:0}
body:not(.member-body):not(.public-body) .pos-catalog-pane{min-width:0;width:100%;background:#f6f7f8;border:1px solid #e4e7ea;border-radius:12px;padding:14px;overflow:hidden}
body:not(.member-body):not(.public-body) #posBody{width:100%;min-width:0;max-width:100%;overflow-x:hidden;contain:inline-size}
body:not(.member-body):not(.public-body) .pos-mode-tabs{width:100%;min-width:0;grid-template-columns:repeat(2,minmax(0,1fr));min-height:48px}
body:not(.member-body):not(.public-body) .pos-mode{min-width:0;background:#eceff2;border-color:#d7dce1;color:#4f5963;box-shadow:none}
body:not(.member-body):not(.public-body) .pos-mode:hover{background:#e4e8ec}
body:not(.member-body):not(.public-body) .pos-mode.active{background:#343a40;border-color:#343a40;color:#fff}
body:not(.member-body):not(.public-body) .pos-search{width:100%;min-width:0}
body:not(.member-body):not(.public-body) .pos-search input{background:#fff;border-color:#d9dee3}
body:not(.member-body):not(.public-body) .pos-filter-scroll{width:100%;min-width:0;max-width:100%;min-height:48px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;contain:inline-size}
body:not(.member-body):not(.public-body) .pos-filter-chip{background:#fff;border-color:#d9dee3;color:#58616a}
body:not(.member-body):not(.public-body) .pos-filter-chip.active{background:#4a5158;border-color:#4a5158;color:#fff}
body:not(.member-body):not(.public-body) .pos-product-grid{width:100%;min-width:0;max-width:100%;align-content:start}
body:not(.member-body):not(.public-body) .pos-product-card{min-width:0;max-width:100%;overflow:hidden;background:#fff;border-color:#dde2e6;box-shadow:0 1px 2px rgba(20,30,40,.04)}
body:not(.member-body):not(.public-body) .pos-product-name{min-width:0;overflow-wrap:anywhere}
body:not(.member-body):not(.public-body) .pos-product-card:hover:not(:disabled){background:#fbfcfd;border-color:#c8d0d7;box-shadow:0 3px 10px rgba(20,30,40,.07);transform:none}
body:not(.member-body):not(.public-body) .pos-order-pane{background:#fbfcfd;border-color:#dfe3e7}
body:not(.member-body):not(.public-body) .pos-order-footer{background:#f7f8f9}
body:not(.member-body):not(.public-body) .pos-customer-card{background:#fff;border:1px solid #e5e8eb}
.row-new025{animation:rowInsert025 .16s ease-out}
@keyframes rowInsert025{from{opacity:.72;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
.home-smooth025 [data-kpi025]{font-variant-numeric:tabular-nums}
@media (min-width:800px) and (max-height:820px){
  body:not(.member-body):not(.public-body) .pos-page{padding-top:14px!important;padding-bottom:14px!important}
  body:not(.member-body):not(.public-body) .pos-toolbar{margin-bottom:10px;gap:10px}
  body:not(.member-body):not(.public-body) .pos-toolbar h1{font-size:21px}
  body:not(.member-body):not(.public-body) .pos-catalog-pane{padding:11px}
  body:not(.member-body):not(.public-body) .pos-product-card{min-height:122px!important;padding:11px!important}
  body:not(.member-body):not(.public-body) .pos-product-name{margin-top:5px;font-size:14px}
  body:not(.member-body):not(.public-body) .pos-product-meta{margin-top:5px;font-size:11px}
  body:not(.member-body):not(.public-body) .pos-product-price{margin-top:8px;font-size:16px}
  body:not(.member-body):not(.public-body) .pos-order-pane{height:calc(100dvh - 96px);top:76px;min-height:0}
}
/* ================= END PATCH-025 ================= */

/* ================= PATCH-026 OFFLINE / UPDATE / MERCH CATEGORY ================= */
.global-status-stack026{
  position:fixed;z-index:13000;left:50%;top:max(10px,env(safe-area-inset-top));
  transform:translateX(-50%);width:min(660px,calc(100vw - 24px));display:grid;gap:8px;pointer-events:none
}
.network-status026,.app-update026{
  pointer-events:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;
  min-height:44px;padding:9px 12px;border-radius:12px;border:1px solid #d8dde3;
  background:rgba(255,255,255,.96);box-shadow:0 8px 24px rgba(20,30,40,.12);backdrop-filter:blur(10px);
  font-size:13px;line-height:1.35;color:#27313b
}
.network-status026 strong,.app-update026 strong{font-weight:700}
.network-status026 small,.app-update026 small{display:block;margin-top:1px;color:#66717c}
.network-status026.offline{background:#fff7ed;border-color:#fed7aa;color:#9a3412}
.network-status026.offline small{color:#b45309}
.network-status026.degraded{background:#fffbeb;border-color:#fde68a;color:#92400e}
.network-status026.degraded small{color:#a16207}
.app-update026{background:#f8fafc;border-color:#cbd5e1}
.app-update026 .status-actions026{display:flex;gap:7px;flex:0 0 auto}
.app-update026 button{min-height:34px;padding:6px 10px;border-radius:8px}
body.is-offline026 [data-network-mutation026="1"]{opacity:.55;filter:grayscale(.18)}
.health-device026{margin:0 0 14px}
.health-device026 .row-meta{white-space:normal}
.catalog-head-actions026{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.category-manager026{display:grid;gap:10px}
.category-manager026 .category-help026{font-size:12px;line-height:1.45;color:#667085;margin:0 0 2px}
.category-list026{display:grid;gap:8px}
.category-row026{
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;
  border:1px solid #e3e7eb;background:#fff;border-radius:11px;padding:9px 10px
}
.category-row026.is-inactive{background:#f7f8f9;color:#69727c}
.category-order026{display:grid;grid-template-columns:32px 32px;gap:4px}
.category-order026 button{width:32px;height:32px;min-height:32px;padding:0;border-radius:8px}
.category-main026{min-width:0}
.category-title026{font-weight:700;overflow-wrap:anywhere}
.category-meta026{font-size:11px;color:#77818b;margin-top:2px;overflow-wrap:anywhere}
.category-actions026{display:flex;gap:6px;align-items:center}
.category-actions026 .pill{white-space:nowrap}
.category-savebar026{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:8px;padding-top:10px;background:linear-gradient(to bottom,rgba(255,255,255,0),#fff 28%)}
@media (max-width:620px){
  .global-status-stack026{top:max(8px,env(safe-area-inset-top));width:calc(100vw - 16px)}
  .network-status026,.app-update026{align-items:flex-start;border-radius:10px}
  .app-update026{display:grid;grid-template-columns:minmax(0,1fr) auto}
  .category-row026{grid-template-columns:auto minmax(0,1fr)}
  .category-actions026{grid-column:1/-1;justify-content:flex-end}
  .catalog-head-actions026{width:100%;justify-content:stretch}
  .catalog-head-actions026 .btn{flex:1 1 auto}
}
/* ================= END PATCH-026 ================= */
/* PATCH-026 category row alignment hardening */
.category-main026{appearance:none;border:0;background:transparent;color:inherit;text-align:left;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:9px;width:100%;min-width:0;padding:4px 2px;cursor:pointer}
.category-main026>span:first-child{min-width:0;display:grid;gap:2px}
.category-main026 strong{font-size:14px;overflow-wrap:anywhere}
.category-main026 small{font-size:11px;color:#77818b;overflow-wrap:anywhere}
.category-main026:focus-visible{outline:2px solid #7b8794;outline-offset:3px;border-radius:7px}
@media (max-width:620px){.category-main026{grid-template-columns:minmax(0,1fr) auto auto}}

/* ================= PATCH-027 POS PROMOTION / CONTRAST / SAFE AREA ================= */
body:not(.member-body):not(.public-body) .pos-workspace{
  --pos-ink:#16181d;--pos-muted:#5f6670;--pos-line:#d7dce2;--pos-soft:#f3f5f7;--pos-accent:#1e5f96;
}
body:not(.member-body):not(.public-body) .pos-catalog-pane{background:#f7f8fa}
body:not(.member-body):not(.public-body) .pos-order-pane{background:#fff;border-left-color:#cfd5dc;box-shadow:-10px 0 28px rgba(18,27,38,.08)}
body:not(.member-body):not(.public-body) .pos-order-label{color:#505761;font-weight:800}
body:not(.member-body):not(.public-body) .pos-cart-line{border-color:#e0e4e8}
body:not(.member-body):not(.public-body) .pos-total-row{border-top:1px solid #cfd5dc;padding-top:12px;color:var(--pos-ink)}
body:not(.member-body):not(.public-body) .pos-total-row strong{font-size:24px;letter-spacing:-.025em}
body:not(.member-body):not(.public-body) .pos-pay-btn{min-height:52px;font-size:16px;font-weight:850}
.pos-promo-box027{display:grid;gap:7px;padding:11px;border:1px solid #d9dee4;border-radius:12px;background:#f8fafb;margin-bottom:11px}
.pos-promo-head027{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;font-weight:850;color:#343a42;text-transform:uppercase;letter-spacing:.035em}
.pos-promo-manage027{border:0;background:transparent;color:#275f8a;font:inherit;font-size:11px;text-transform:none;letter-spacing:0;padding:3px;cursor:pointer}
.pos-promo-input027{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:center}
.pos-promo-input027 .input{text-transform:uppercase;font-weight:800;letter-spacing:.035em;background:#fff;border-color:#bfc6ce}
.pos-promo-meta027{min-height:16px;font-size:11px;color:#23613d;line-height:1.35}
.promo-manager027{display:grid;gap:10px}.promo-row027{display:flex;width:100%;align-items:center;justify-content:space-between;gap:10px;text-align:left;border:1px solid #dde2e7;background:#fff;border-radius:11px;padding:11px 12px;color:inherit;cursor:pointer}.promo-row027>span{display:grid;gap:3px}.promo-row027 small{color:#69727d}.promo-course-map027{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:270px;overflow:auto;border:1px solid #e1e5e9;border-radius:10px;padding:9px;background:#fafbfc}.promo-course-map027 label{display:flex;align-items:flex-start;gap:7px;padding:7px;background:#fff;border:1px solid #e6e9ec;border-radius:8px;font-size:12px}.ghost-danger027{background:#fff!important;color:#a32620!important;border:1px solid #d8aaa7!important}
.money-kpi027 strong{color:#1f5f42}.money-kpi027.refund strong{color:#9b352f}
@media(max-width:620px){
  /* Keep connectivity/update status below the in-app mobile header/back control on iPhone. */
  .global-status-stack026{top:calc(max(8px,env(safe-area-inset-top)) + 54px)!important}
  .promo-course-map027{grid-template-columns:1fr}
  .pos-promo-input027{grid-template-columns:minmax(0,1fr) 74px}
}
/* ================= END PATCH-027 ================= */

/* PATCH-027 home KPI density */
.today-kpis017{grid-template-columns:repeat(6,minmax(0,1fr))}
@media (max-width:980px){.today-kpis017{grid-template-columns:repeat(3,minmax(0,1fr))}.today-kpis017 button:nth-child(3n){border-right:0}}
@media (max-width:620px){.today-kpis017{grid-template-columns:repeat(2,minmax(0,1fr))}.today-kpis017 button:nth-child(3n){border-right:1px solid var(--ops-line)}.today-kpis017 button:nth-child(2n){border-right:0}}

/* ================= PATCH-028 SYSTEM WEB PUSH ================= */
.push-panel028{display:grid;gap:10px;margin:0 0 14px}.push-state028{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border:1px solid rgba(0,0,0,.10);border-radius:14px;background:#fff}.push-state028 strong{font-size:14px}.push-state028 small{font-size:12px;line-height:1.45;color:var(--muted,#666)}.push-state028.ok{border-color:rgba(24,135,84,.25);background:rgba(24,135,84,.06)}.push-state028.warn{border-color:rgba(185,112,0,.25);background:rgba(185,112,0,.06)}.push-actions028{display:flex;flex-wrap:wrap;gap:8px}.push-actions028 .btn{flex:1 1 180px}.device-push-settings028{margin-top:18px}
@media(max-width:640px){.push-actions028{display:grid;grid-template-columns:1fr}.push-actions028 .btn{width:100%}}
/* ================= END PATCH-028 ================= */

/* ================= PATCH-029 MEMBER / NETWORK / POS DEVICE POLISH ================= */
.member-search-sticky029{z-index:19;padding:5px 0 9px;background:linear-gradient(to bottom,var(--bg) 0,var(--bg) 76%,rgba(245,245,247,0));}
.member-search-surface029{position:relative;display:flex;align-items:center;background:#fff;border:1px solid #e0e4e8;border-radius:16px;box-shadow:0 6px 18px rgba(30,36,44,.06);overflow:hidden;transition:border-color .16s ease,box-shadow .16s ease}
.member-search-surface029:focus-within{border-color:#aeb8c2;box-shadow:0 0 0 3px rgba(46,65,84,.07),0 8px 24px rgba(30,36,44,.07)}
.member-search-surface029>i{position:absolute;left:15px;color:#7b8490;font-size:16px;pointer-events:none}
.member-search-surface029 .input{padding-left:43px;padding-right:45px;border:0;border-radius:0;box-shadow:none;background:transparent;min-height:52px}
.member-search-surface029 .input:focus{border:0;box-shadow:none}
.member-search-clear029{position:absolute;right:9px;width:34px;height:34px;border:0;background:transparent;border-radius:50%;color:#8a929b;display:grid;place-items:center}
.member-search-clear029:hover{background:#f0f2f4;color:#4f5964}
.member-list029{padding-top:6px;padding-bottom:6px}
.member-row029{width:100%;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}
.member-row029:hover{background:#f8f9fa}
.member-row029 .row-meta{display:flex;gap:8px;flex-wrap:wrap;white-space:normal}
.member-row029 .row-meta span+span:before{content:'·';margin-right:8px;color:#b1b6bd}
.member-expired029{color:#a15b00;font-weight:650}
.member-course-summary029{font-size:15px!important;line-height:1.3;overflow-wrap:anywhere}
.member-summary-facts029{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.member-summary-facts029>div{padding:12px;border:1px solid #e7e9ec;border-radius:13px;background:#fafbfc;display:grid;gap:3px}
.member-summary-facts029 span{font-size:11px;color:#757d87}.member-summary-facts029 strong{font-size:13px;overflow-wrap:anywhere}
.member-branch-grid029{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px;padding:4px 0}
.member-branch-check029{padding:8px 4px 8px 0;margin:0;border-bottom:1px solid #eef0f2}
.member-savebar029{position:sticky;z-index:7;bottom:calc(-18px - var(--safe-bottom));display:flex;align-items:center;justify-content:space-between;gap:16px;margin:18px -16px -18px;padding:13px 16px calc(13px + var(--safe-bottom));background:rgba(255,255,255,.96);backdrop-filter:blur(14px);border-top:1px solid #e2e5e8;box-shadow:0 -10px 24px rgba(20,30,40,.06)}
.member-savebar029>div{display:grid;gap:2px}.member-savebar029 strong{font-size:13px}.member-savebar029 small{font-size:11px;color:#737c86}
.member-editor-shell029 .editor-section018{border-color:#e5e8eb}
.member-editor-shell029 .input{border-color:#dfe3e7;background:#fff}
.member-summary-only029 .notice{margin-top:18px}

/* Network status: below sticky app header on mobile, compact and non-blocking. */
.network-status029{min-height:40px;padding:7px 9px 7px 11px;border-radius:11px;box-shadow:0 5px 16px rgba(20,30,40,.1)}
.network-copy029{min-width:0;display:flex;align-items:center;gap:9px}.network-copy029>i{font-size:16px;flex:0 0 auto}.network-copy029>span{min-width:0}
.network-status029 strong{font-size:12px}.network-status029 small{font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:min(520px,70vw)}
.network-dismiss029{width:30px;height:30px;min-width:30px;border:0;border-radius:9px;background:rgba(255,255,255,.62);color:currentColor;font-size:20px;line-height:1;display:grid;place-items:center}
.network-status029.offline{justify-content:flex-start}

/* Cashier limited reports + per-device POS settings. */
.limited-report029 .report-content017{margin-top:14px}.limited-report-tabs029{max-width:720px}
.pos-device029{max-width:900px;margin:0 auto}.pos-direct029{align-items:flex-start;border:1px solid #dde2e7;border-radius:14px;padding:13px;margin:10px 0 14px;background:#fafbfc}.pos-direct029 span{display:grid;gap:3px}.pos-direct029 small{color:#6f7882;font-size:11px;font-weight:500}
.pos-launchers029{display:grid;gap:0}.launcher-row029{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;padding:14px 0;border-bottom:1px solid #e8eaed}.launcher-row029:first-child{padding-top:0}.launcher-row029>div{display:grid;gap:4px}.launcher-row029 small{color:#6d7680;line-height:1.5}.pos-launchers029 code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px}

@media(max-width:799px){
  .member-search-sticky029{top:72px;margin:0 -2px;padding:4px 2px 8px}
  .member-search-surface029{border-radius:13px;box-shadow:0 2px 8px rgba(30,36,44,.05)}
  .member-search-surface029 .input{min-height:48px}
  .global-status-stack026{top:calc(66px + var(--safe-top));width:calc(100vw - 18px)}
  .network-status029 small{max-width:68vw}
  .member-summary-facts029{grid-template-columns:1fr}
  .member-branch-grid029{grid-template-columns:1fr}
  .member-savebar029{align-items:stretch;flex-direction:column;gap:9px}.member-savebar029 .btn{width:100%}
  .launcher-row029{grid-template-columns:1fr}.launcher-row029 .btn{width:100%}
}
@media(min-width:800px){
  .member-filter029{max-width:920px;margin-left:auto;margin-right:auto}
  .member-search-sticky029{top:80px;max-width:920px;margin:0 auto 10px;padding:8px 0 10px;background:rgba(245,245,247,.96);backdrop-filter:blur(12px);border-bottom:1px solid #e5e8eb;border-radius:0;box-shadow:none}
  .member-search-surface029{border-radius:11px;border-color:#d9dee3;box-shadow:0 1px 2px rgba(28,36,44,.045)}
  .member-search-surface029:focus-within{border-color:#aeb8c2;box-shadow:0 0 0 3px rgba(46,65,84,.06)}
  .member-search-surface029 .input{min-height:48px}
  .member-list029{max-width:920px;margin-left:auto;margin-right:auto;border:1px solid #e6e9ec;box-shadow:0 5px 18px rgba(28,36,44,.035)}
  .global-status-stack026{top:12px}
  .member-editor-shell029{max-width:min(800px,calc(100vw - 64px))}
}
/* ================= END PATCH-029 ================= */


/* ================= PATCH-029-HF2 NETWORK UX ================= */
.network-inline029hf2{
  width:min(100%,var(--cms-content-max,1180px));margin:8px auto 0;padding:7px 12px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:#fff7ed;border:1px solid #fed7aa;border-radius:9px;color:#9a3412;
  box-shadow:none;font-size:12px;line-height:1.3
}
.network-inline029hf2[hidden]{display:none!important}
.network-inline-copy029hf2{display:flex;align-items:center;gap:9px;min-width:0}
.network-inline-copy029hf2>i{font-size:15px;flex:0 0 auto}
.network-inline-copy029hf2>span{min-width:0;display:flex;align-items:baseline;gap:7px;flex-wrap:wrap}
.network-inline-copy029hf2 strong{font-size:12px}
.network-inline-copy029hf2 small{font-size:11px;color:#b45309;white-space:normal}
.network-inline-dismiss029hf2{width:28px;height:28px;min-width:28px;border:0;border-radius:7px;background:rgba(255,255,255,.7);color:#9a3412;font-size:18px;line-height:1;display:grid;place-items:center;cursor:pointer}
/* HF2 uses the in-flow offline strip; suppress the legacy network popup entirely. */
#networkStatus026{display:none!important}
@media(max-width:799px){
  .network-inline029hf2{width:calc(100% - 18px);margin:7px 9px 0;border-radius:8px;padding:6px 8px 6px 10px}
  .network-inline-copy029hf2>span{display:grid;gap:1px}.network-inline-copy029hf2 small{font-size:10.5px}
}
@media(min-width:800px){.network-inline029hf2{width:calc(100% - 44px)}}
/* ================= END PATCH-029-HF2 ================= */
