:root{--side:#0f172a;--bg:#f8fafc;--card:#fff;--text:#0f172a;--muted:#64748b;--line:#e2e8f0;--accent:#2563eb;--success:#16a34a;--danger:#dc2626;--warn:#f59e0b;--radius:22px;--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans Thai",Inter,sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}.hidden{display:none!important}.mobile-only{display:none!important}.mt{margin-top:16px}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:28px;padding:28px;box-shadow:0 24px 70px rgba(15,23,42,.1)}.login-card h1{margin:0}.login-card label{display:block;font-weight:800;margin-top:16px}.login-card input,.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:14px;padding:12px 13px;background:#fff}.login-card button,.btn{border:0;border-radius:14px;padding:12px 15px;background:var(--side);color:#fff;font-weight:900;cursor:pointer;min-height:44px}.login-card button{width:100%;margin-top:20px}.btn.secondary{background:#fff;color:var(--text);border:1px solid var(--line)}.btn.danger{background:var(--danger)}.btn.success{background:var(--success)}.btn.full-width{width:100%}.app{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.sidebar{background:var(--side);color:#fff;padding:20px;display:flex;flex-direction:column;gap:6px}.logo{font-size:22px;font-weight:950;margin-bottom:16px}.sidebar button{background:transparent;color:#cbd5e1;border:0;text-align:left;padding:12px 14px;border-radius:14px;font-weight:900;cursor:pointer}.sidebar button.active,.sidebar button:hover{background:#1e293b;color:#fff}.sidebar .logout{margin-top:auto;color:#fecaca}.main{padding:24px;overflow:auto}.top{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:22px}.top-title{min-width:0;flex:1}.top h1{margin:0;font-size:30px}.top p{margin:5px 0 0;color:var(--muted)}.top-actions{display:flex;align-items:center;gap:10px}.branch-picker{display:flex;align-items:center;gap:8px;font-weight:900;color:#334155}.branch-picker select{border:1px solid var(--line);border-radius:14px;padding:10px 12px;background:#fff}.badge,.status,.pill{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;font-weight:900;font-size:12px;background:#e0e7ff;color:#3730a3}.status.active,.status.paid,.status.success{background:#dcfce7;color:#166534}.status.expired,.status.failed,.status.banned,.status.void{background:#fee2e2;color:#991b1b}.status.inactive,.status.skipped{background:#f1f5f9;color:#475569}.grid{display:grid;gap:16px}.stats{grid-template-columns:repeat(4,minmax(0,1fr))}.report-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:0 10px 35px rgba(15,23,42,.04)}.card h2{margin:0 0 12px}.stat strong{font-size:34px;display:block}.muted,.stat span{color:var(--muted)}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.search{flex:1;min-width:220px;border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:#fff}.big-input{font-size:22px;padding:16px!important;border-radius:20px!important}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:18px}table{width:100%;border-collapse:collapse}th,td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}th{font-size:12px;text-transform:uppercase;color:var(--muted);background:#f8fafc}.actions{display:flex;gap:8px;flex-wrap:wrap}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.field{display:flex;flex-direction:column;gap:7px;font-weight:800}.field.full{grid-column:1/-1}.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.check{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:#f8fafc;border-radius:14px;padding:10px}.checkin-panel{display:grid;grid-template-columns:minmax(0,1fr) 480px;gap:16px}.mini-list{display:grid;gap:8px;margin-top:12px}.mini-item,.selected-member{border:1px solid var(--line);border-radius:16px;padding:12px;background:#fff;display:flex;justify-content:space-between;gap:12px;align-items:center}.toast{position:fixed;right:20px;bottom:20px;background:#111827;color:#fff;border-radius:16px;padding:14px 18px;font-weight:900;box-shadow:0 20px 60px rgba(0,0,0,.2);z-index:90}.icon-btn{border:1px solid var(--line);background:#fff;color:var(--text);border-radius:14px;min-width:44px;min-height:44px;font-size:20px;font-weight:900}.bottom-nav{display:none}.mobile-overlay{position:fixed;inset:0;background:rgba(15,23,42,.35);z-index:45}.mobile-menu{position:fixed;left:10px;right:10px;bottom:calc(10px + var(--safe-bottom));background:#fff;border:1px solid var(--line);border-radius:28px;padding:10px 14px 14px;z-index:50;box-shadow:0 24px 80px rgba(15,23,42,.25)}.sheet-handle{width:46px;height:5px;background:#cbd5e1;border-radius:99px;margin:3px auto 12px}.mobile-menu-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.mobile-menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.mobile-menu-grid button{border:1px solid var(--line);background:#f8fafc;border-radius:16px;padding:12px 8px;min-height:48px;font-weight:900;color:#334155}.mobile-menu-grid button.active{background:#e0e7ff;color:#3730a3;border-color:#c7d2fe}.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.45);display:grid;place-items:center;padding:18px;z-index:80}.modal-card{width:min(880px,100%);max-height:92vh;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:28px;box-shadow:0 30px 100px rgba(15,23,42,.35)}.modal-head{position:sticky;top:0;background:#fff;z-index:1;display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line)}.modal-body{padding:18px}.modal-actions{display:flex;gap:10px;justify-content:flex-end;padding:14px 18px;border-top:1px solid var(--line);background:#f8fafc;position:sticky;bottom:0}.tabs{display:flex;gap:8px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:12px}.tab{border:1px solid var(--line);background:#fff;border-radius:999px;padding:10px 14px;font-weight:900;cursor:pointer}.tab.active{background:#e0e7ff;border-color:#c7d2fe;color:#3730a3}.reports-layout{display:grid;grid-template-columns:280px 1fr;gap:16px;align-items:start}.report-menu{position:sticky;top:88px}.report-link{width:100%;border:1px solid var(--line);background:#fff;color:var(--text);border-radius:14px;padding:11px 12px;margin-bottom:8px;text-align:left;font-weight:900;cursor:pointer}.report-link.active{background:#e0e7ff;border-color:#c7d2fe;color:#3730a3}.calendar-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:12px}.week-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}.week-day{min-height:180px;border:1px solid var(--line);border-radius:18px;background:#fff;padding:10px}.week-day-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:8px;font-size:13px}.week-event{border:1px solid #dbeafe;background:#eff6ff;border-radius:14px;padding:8px;margin-bottom:8px;font-size:12px}.week-event.is-template{background:#fef3c7;border-color:#fde68a}.pos-layout{display:grid;grid-template-columns:minmax(0,1fr) 440px;gap:16px}.category-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 13px;font-weight:900;cursor:pointer}.chip.active{background:#0f172a;color:#fff}.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}.product-card{border:1px solid var(--line);background:#fff;border-radius:18px;padding:14px;text-align:left;display:flex;flex-direction:column;gap:6px;cursor:pointer}.product-card:hover{border-color:#bfdbfe;background:#eff6ff}.perm-grid{display:grid;gap:14px}.perm-role{border:1px solid var(--line);border-radius:18px;padding:14px}.perm-row{display:flex;justify-content:space-between;gap:16px;align-items:center;border-top:1px solid var(--line);padding:8px 0}.toggle{display:inline-flex;align-items:center;cursor:pointer}.toggle input{display:none}.toggle span{width:48px;height:28px;border-radius:999px;background:#cbd5e1;position:relative;transition:.2s}.toggle span:before{content:"";position:absolute;width:22px;height:22px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s;box-shadow:0 2px 5px rgba(0,0,0,.15)}.toggle input:checked+span{background:#2563eb}.toggle input:checked+span:before{transform:translateX(20px)}hr{border:0;border-top:1px solid var(--line);margin:16px 0}@media(max-width:1000px){.stats{grid-template-columns:repeat(2,1fr)}.checkin-panel,.pos-layout,.report-grid,.reports-layout{grid-template-columns:1fr}.week-calendar{grid-template-columns:1fr}.week-day{min-height:auto}}@media(max-width:900px){.mobile-only{display:inline-flex!important}.app{display:block;padding-bottom:calc(82px + var(--safe-bottom))}.sidebar{display:none}.main{padding:14px}.top{position:sticky;top:0;background:rgba(248,250,252,.94);backdrop-filter:blur(16px);z-index:10;margin:-14px -14px 16px;padding:12px 14px;border-bottom:1px solid var(--line)}.top h1{font-size:22px}.top p{font-size:12px}.top-actions{gap:6px}.branch-picker span{display:none}.branch-picker select{max-width:150px}.form-grid{grid-template-columns:1fr}.check-grid{grid-template-columns:1fr}.table-wrap{border:0;background:transparent}table,thead,tbody,tr,td,th{display:block}thead{display:none}tr{background:#fff;border:1px solid var(--line);border-radius:18px;margin-bottom:12px;padding:8px}td{border:0;white-space:normal;display:flex;justify-content:space-between;gap:16px;align-items:flex-start}td:before{content:attr(data-label);font-weight:900;color:var(--muted);min-width:110px}.bottom-nav{position:fixed;left:0;right:0;bottom:0;height:calc(68px + var(--safe-bottom));padding-bottom:var(--safe-bottom);display:grid;grid-template-columns:repeat(4,1fr);background:rgba(255,255,255,.94);backdrop-filter:blur(18px);border-top:1px solid var(--line);z-index:40}.bottom-nav button{border:0;background:transparent;font-weight:900;color:#334155}.bottom-nav button.active{color:var(--accent)}.mobile-menu-grid{grid-template-columns:repeat(2,1fr)}.modal-backdrop{align-items:end;padding:0}.modal-card{max-height:92vh;border-radius:28px 28px 0 0}.modal-actions{padding-bottom:calc(14px + var(--safe-bottom))}.modal-actions .btn{flex:1}.actions .btn{flex:1}.toolbar .search{min-width:100%}}@media print{.sidebar,.top,.bottom-nav,.mobile-menu,.mobile-overlay,.toast,.toolbar,.report-menu{display:none!important}.app{display:block}.main{padding:0}.card{border:0;padding:0;box-shadow:none}.table-wrap{border:0}body{background:#fff}@page{size:A4;margin:14mm}}
/* Patch 007 UI polish */
.icon-btn{display:inline-grid;place-items:center;padding:0;line-height:1}.hamburger-lines{width:22px;height:16px;display:grid;gap:4px;align-content:center}.hamburger-lines i{display:block;height:2px;background:#0f172a;border-radius:999px}.app-dialog{z-index:120}.dialog-card{width:min(420px,calc(100vw - 28px));background:#fff;border:1px solid var(--line);border-radius:30px;padding:22px;text-align:center;box-shadow:0 30px 100px rgba(15,23,42,.32)}.dialog-icon{width:48px;height:48px;border-radius:18px;display:grid;place-items:center;margin:0 auto 10px;background:#dbeafe;color:#1d4ed8;font-size:26px;font-weight:950}.dialog-card.danger .dialog-icon{background:#fee2e2;color:#991b1b}.dialog-card.prompt .dialog-icon{background:#fef3c7;color:#92400e}.dialog-card h2{margin:6px 0 8px}.dialog-card p{margin:0 0 16px;color:var(--muted);white-space:pre-line}.dialog-actions{display:flex;gap:10px;margin-top:14px}.dialog-actions .btn{flex:1}.segmented{display:flex;flex-wrap:wrap;gap:8px}.segmented label{display:inline-flex}.segmented input{display:none}.segmented span{border:1px solid var(--line);background:#fff;border-radius:999px;padding:10px 14px;font-weight:900;cursor:pointer}.segmented input:checked+span{background:#0f172a;color:#fff;border-color:#0f172a}.type-pills,.sub-pills{margin:8px 0 12px}.sub-pills .chip{padding:8px 12px;font-size:13px}.week-event.holiday{background:#fee2e2;border-color:#fecaca;color:#7f1d1d}.schedule-card{overflow:hidden}.hours-grid{display:grid;gap:8px}.hours-row{display:grid;grid-template-columns:54px 56px 1fr 1fr minmax(120px,1.2fr);gap:8px;align-items:center;border:1px solid var(--line);border-radius:16px;padding:8px;background:#f8fafc}.hours-row input{min-width:0;border:1px solid var(--line);border-radius:12px;padding:8px;background:#fff}.branch-card h3{margin:14px 0 8px}.pos-products-card h2,.pos-cart-card h2{margin-top:0}.pos-layout{align-items:start}.pos-cart-card{position:sticky;top:90px}.cart-line{background:#f8fafc}.cart-total{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);margin-top:12px;padding-top:14px;font-size:20px}.cart-total strong{font-size:24px}.checkout-btn{margin-top:14px;min-height:52px}.role-list{display:grid;gap:10px}.role-card{display:flex;justify-content:space-between;gap:14px;align-items:center;border:1px solid var(--line);background:#f8fafc;border-radius:18px;padding:14px}.role-card h3{margin:0}.role-card p{margin:4px 0 0}.perm-row small{display:block;color:var(--muted);font-weight:700;margin-top:3px}.perm-row .toggle{flex:0 0 auto}.product-card strong{font-size:18px}.product-card small{color:var(--muted)}
@media(max-width:900px){.dialog-card{border-radius:28px 28px 0 0;width:100%;max-width:none}.app-dialog{align-items:end;padding:0}.dialog-actions{padding-bottom:var(--safe-bottom)}.hours-row{grid-template-columns:1fr 56px;grid-template-areas:'day toggle' 'open close' 'note note'}.hours-row b{grid-area:day}.hours-row .toggle{grid-area:toggle}.hours-row input[name^=open]{grid-area:open}.hours-row input[name^=close]{grid-area:close}.hours-row input[name^=note]{grid-area:note}.pos-cart-card{position:static}.role-card{align-items:flex-start}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.product-card{padding:12px}.top{box-shadow:0 8px 24px rgba(15,23,42,.05)}}


/* patch 009: production UI polish */
body{font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased} .top h1{font-size:24px}.top p{font-size:12px}.card{padding:16px}.card h2{font-size:18px}.btn,.login-card button{padding:9px 12px;min-height:38px;border-radius:12px;font-size:13px}.search{padding:10px 12px}.big-input{font-size:18px!important;padding:13px 14px!important}.toolbar.checkin-toolbar{display:grid;grid-template-columns:minmax(360px,720px) auto;justify-content:start}.toolbar.checkin-toolbar .search{width:100%;min-width:min(720px,100%)}th,td{padding:8px 10px;font-size:13px}.table-wrap{max-width:100%}.actions.action-row{display:inline-flex;align-items:center;gap:6px;flex-wrap:nowrap}.actions.no-wrap{white-space:nowrap}.icon-action{width:36px;height:36px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--text);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0}.icon-action svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.icon-action.secondary:hover{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}.icon-action.danger{background:#fff;color:#dc2626;border-color:#fecaca}.icon-action.danger:hover{background:#fee2e2}.icon-btn{display:inline-flex;align-items:center;justify-content:center;padding:0}.hamburger-lines{width:20px;height:16px;display:inline-flex;flex-direction:column;justify-content:space-between;align-items:center;line-height:1}.hamburger-lines i{display:block;width:20px;height:2px;background:currentColor;border-radius:999px;margin:0;position:static;transform:none}.modal-card{border-radius:24px}.dialog-card{width:min(430px,100%);background:#fff;border-radius:26px;padding:24px;box-shadow:0 28px 90px rgba(15,23,42,.28);text-align:center}.dialog-icon{width:44px;height:44px;margin:0 auto 10px;border-radius:50%;display:grid;place-items:center;background:#e0e7ff;color:#3730a3;font-weight:950}.dialog-card.danger .dialog-icon{background:#fee2e2;color:#991b1b}.dialog-actions{display:flex;gap:10px;justify-content:center;margin-top:18px}.dialog-actions .btn{min-width:120px}.role-card{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:16px;padding:12px;margin-bottom:10px}.role-card h3{margin:0;font-size:15px}.role-card p{margin:3px 0 0}.week-event{line-height:1.35}.category-row{gap:6px}.chip{padding:7px 11px;font-size:13px}.product-card{min-height:118px}.pos-cart-card .field{margin:10px 0}.cart-total{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:10px;margin-top:8px;font-size:16px}.segmented{display:flex;gap:8px;flex-wrap:wrap}.segmented label{display:inline-flex;align-items:center}.segmented input{position:absolute;opacity:0;pointer-events:none}.segmented span{border:1px solid var(--line);border-radius:999px;padding:8px 12px;background:#fff;font-weight:900}.segmented input:checked+span{background:#0f172a;color:#fff;border-color:#0f172a}@media(max-width:900px){body{font-size:13px}.main{padding:12px}.top{padding:10px 12px}.top h1{font-size:20px}.toolbar.checkin-toolbar{display:flex}.toolbar.checkin-toolbar .search{min-width:0;flex:1 1 100%}.mobile-menu-grid{grid-template-columns:repeat(2,1fr)}.btn{min-height:40px}.table-wrap.mobile-optional{max-height:320px;overflow:auto}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pos-layout{gap:12px}.modal-actions{justify-content:stretch}.modal-actions .btn{flex:1}.icon-action{width:34px;height:34px}td{font-size:13px;padding:9px 10px}.actions{gap:6px}.actions .btn{padding:8px 10px}.week-calendar{gap:8px}.week-day{border-radius:16px}.bottom-nav button{font-size:12px}}@media(max-width:520px){.product-grid{grid-template-columns:1fr}.stats{grid-template-columns:1fr}.top-actions .badge{display:none}.branch-picker select{max-width:124px}.big-input{font-size:16px!important}.dialog-actions{flex-direction:column}.auth-actions{display:grid}}


/* Patch 010: glassmorphism back-office visual refresh */
:root{--bg:#e7e7e5;--card:rgba(255,255,255,.58);--card-solid:#f7f7f5;--side:rgba(245,245,243,.76);--text:#161719;--muted:#71737a;--line:rgba(24,24,27,.10);--accent:#f45108;--accent-soft:rgba(244,81,8,.13);--success:#0f9f6e;--danger:#df2438;--warn:#e9a600;--radius:22px}body{font-size:13px;background:radial-gradient(circle at 80% 0%,rgba(244,81,8,.10),transparent 34%),linear-gradient(135deg,#dededc,#f3f3f1 42%,#dadbd8);color:var(--text);letter-spacing:-.01em}.app{grid-template-columns:250px 1fr}.sidebar{background:var(--side);backdrop-filter:blur(28px) saturate(155%);border-right:1px solid rgba(255,255,255,.48);color:var(--text);box-shadow:18px 0 60px rgba(39,39,42,.08)}.logo{font-size:19px;color:#222;letter-spacing:-.04em}.sidebar button{color:#5f626b;border:1px solid transparent;font-size:13px}.sidebar button.active,.sidebar button:hover{background:rgba(255,255,255,.56);border-color:rgba(255,255,255,.76);color:#111;box-shadow:0 12px 28px rgba(39,39,42,.08)}.sidebar .logout{color:#b91c1c}.main{padding:22px}.top{background:rgba(231,231,229,.62);backdrop-filter:blur(22px);border-radius:0 0 28px 28px}.top h1{font-size:22px;letter-spacing:-.05em}.top p{font-size:11px}.card,.table-wrap,.modal-card,.login-card,.week-day,.product-card,.role-card,.mini-item,.selected-member{background:var(--card);border:1px solid rgba(255,255,255,.62);box-shadow:0 18px 60px rgba(23,23,23,.08),inset 0 1px 0 rgba(255,255,255,.72);backdrop-filter:blur(24px) saturate(145%)}.card h2{font-size:17px;letter-spacing:-.04em}.btn,.login-card button{background:#171923;border:1px solid rgba(255,255,255,.22);box-shadow:0 8px 20px rgba(22,23,25,.12);font-size:12.5px}.btn.secondary{background:rgba(255,255,255,.52);border-color:rgba(17,24,39,.10);color:#171923;box-shadow:none}.btn.danger{background:#e1072b;color:#fff}.btn.success{background:#0f9f6e}.chip,.tab,.report-link{background:rgba(255,255,255,.54);border-color:rgba(255,255,255,.72);font-size:12px}.chip.active,.tab.active,.report-link.active{background:linear-gradient(135deg,#ff6a00,#f0440b);border-color:transparent;color:#fff;box-shadow:0 14px 30px rgba(244,81,8,.20)}input,select,textarea,.search,.field input,.field select,.field textarea{background:rgba(255,255,255,.54);border-color:rgba(31,41,55,.11);border-radius:14px;min-height:38px;font-size:13px}th{background:rgba(255,255,255,.36);font-size:10.5px;letter-spacing:.02em}th,td{padding:7px 9px}.status,.badge,.pill{font-size:11px;padding:5px 9px}.week-calendar{gap:12px}.week-day{min-height:166px}.week-event{background:rgba(244,81,8,.12);border-color:rgba(244,81,8,.22);font-size:11.5px}.week-event.is-template{background:rgba(244,81,8,.16);border-color:rgba(244,81,8,.28)}.week-event.holiday{background:rgba(223,36,56,.12);border-color:rgba(223,36,56,.20)}.modal-backdrop{background:rgba(38,38,42,.42);backdrop-filter:blur(10px)}.modal-card{background:rgba(248,248,247,.86)}.modal-head,.modal-actions{background:rgba(248,248,247,.70);backdrop-filter:blur(24px)}.icon-btn{width:42px;height:42px;border-radius:15px;color:#111}.hamburger-lines{width:18px;height:14px;display:flex;flex-direction:column;justify-content:space-between;align-items:center}.hamburger-lines i{width:18px;height:2px}.icon-action{width:32px;height:32px;border-radius:11px;background:rgba(255,255,255,.54)}.toolbar.checkin-toolbar{grid-template-columns:minmax(420px,880px) auto}.big-input{font-size:16px!important}.segmented.weekday-segmented span{min-width:58px;text-align:center}.auth-actions{display:flex;gap:10px}@media(max-width:900px){body{background:#ededeb}.app{padding-bottom:calc(76px + var(--safe-bottom))}.main{padding:12px}.top{margin:-12px -12px 14px;padding:10px 12px;border-radius:0 0 22px 22px}.top h1{font-size:20px}.icon-btn.mobile-only{display:inline-flex!important;align-items:center;justify-content:center;width:42px;height:42px}.card{padding:14px;border-radius:22px}.table-wrap.mobile-optional{max-height:300px}.mobile-menu{background:rgba(255,255,255,.78);backdrop-filter:blur(28px) saturate(150%);border-color:rgba(255,255,255,.70)}.bottom-nav{background:rgba(246,246,244,.74);backdrop-filter:blur(28px) saturate(150%)}td{padding:8px 9px}.toolbar .search{min-width:0}.toolbar.checkin-toolbar{display:flex}.week-day{min-height:auto}.modal-card{border-radius:28px 28px 0 0}.segmented.weekday-segmented{display:grid;grid-template-columns:repeat(4,1fr)}.segmented.weekday-segmented span{min-width:0;width:100%}}@media(max-width:520px){.top-actions{gap:6px}.branch-picker select{max-width:118px}.segmented.weekday-segmented{grid-template-columns:repeat(2,1fr)}}

/* Patch 013: coach/catalog/POS production UI */
.coach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}.coach-card{display:grid;grid-template-columns:105px 1fr;gap:14px;padding:14px;border-radius:20px;background:var(--card);border:1px solid rgba(255,255,255,.66);box-shadow:0 15px 42px rgba(24,24,27,.07);backdrop-filter:blur(22px)}.coach-card-body{min-width:0}.coach-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.coach-card h3{margin:0;font-size:16px}.coach-card p{margin:5px 0;font-size:12px}.rating-pill{white-space:nowrap;border-radius:999px;background:#fff7db;color:#8a5b00;padding:5px 8px;font-size:11px;font-weight:850}.tag-list{display:flex;gap:5px;flex-wrap:wrap;margin:8px 0}.tag-list span{border-radius:999px;background:rgba(244,81,8,.11);color:#9a3412;padding:4px 7px;font-size:10.5px;font-weight:750}.asset-thumb{object-fit:cover;display:block;border-radius:14px;border:1px solid rgba(24,24,27,.08);background:#eee}.asset-thumb.portrait{width:88px;aspect-ratio:3/4}.asset-thumb.square{width:54px;aspect-ratio:1}.asset-placeholder{display:grid;place-items:center;color:var(--muted);font-size:11px;font-weight:800;background:rgba(255,255,255,.5);border:1px dashed rgba(24,24,27,.18);border-radius:14px}.asset-placeholder.portrait{width:88px;aspect-ratio:3/4}.asset-placeholder.square{width:54px;aspect-ratio:1}.asset-editor{grid-column:1/-1;display:flex;align-items:center;gap:16px;border:1px solid var(--line);border-radius:17px;padding:12px;background:rgba(255,255,255,.38)}.asset-editor>div:last-child{display:flex;flex-direction:column;gap:7px;min-width:0}.asset-editor input[type=file]{max-width:100%}.branch-access-list{padding:10px;border-radius:16px;background:rgba(255,255,255,.34);border:1px solid var(--line)}.pos-payment-box{display:grid;gap:10px;background:rgba(255,255,255,.36);border:1px solid var(--line);border-radius:18px;padding:12px;margin-top:12px}.change-box{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:14px;background:#e8f8ef;color:#08643f;margin-top:4px}.change-box strong{font-size:19px}.cart-summary{display:grid;gap:6px;border-top:1px solid var(--line);margin-top:12px;padding-top:10px}.cart-summary>div{display:flex;align-items:center;justify-content:space-between}.selected-member small{display:block;color:var(--muted);margin-top:3px}.product-card img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px;margin-bottom:5px}.week-event.holiday{color:#8b1727}.week-event .pill{white-space:normal;line-height:1.2}.modal-card .form-grid{align-items:start}td .asset-thumb.square{width:42px}.product-grid .product-card{overflow:hidden}.product-grid .product-card .asset-thumb{width:100%;aspect-ratio:1;max-height:140px}.branch-checks{margin-top:4px}
@media(max-width:900px){.coach-grid{grid-template-columns:1fr}.coach-card{grid-template-columns:82px 1fr}.coach-card .asset-thumb.portrait,.coach-card .asset-placeholder.portrait{width:72px}.asset-editor{align-items:flex-start}.pos-payment-box{padding:10px}.week-calendar{overflow-x:visible}.coach-card-head{display:block}.rating-pill{display:inline-flex;margin-top:5px}}
@media(max-width:520px){.coach-card{grid-template-columns:68px 1fr;padding:11px;gap:10px}.coach-card .asset-thumb.portrait,.coach-card .asset-placeholder.portrait{width:60px}.asset-editor{flex-direction:column}.asset-editor .asset-thumb.portrait,.asset-editor .asset-placeholder.portrait{width:104px}.asset-editor .asset-thumb.square,.asset-editor .asset-placeholder.square{width:96px}.check-grid.branch-checks{grid-template-columns:1fr}.selected-member{align-items:flex-start}.modal-body{padding:14px}}


/* Patch 014: settings sizing and restored branch management */
.settings-save{grid-column:1/-1;justify-self:start;width:auto;min-width:150px;padding-inline:26px}.settings-system-card select[name=timezone]{font-variant-numeric:tabular-nums}.branch-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:16px}.branch-card{min-width:0}.branch-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.branch-card-head h2{margin-bottom:4px}.branch-card-head p{margin:0}.branch-hours{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}.branch-hours summary{cursor:pointer;font-size:15px;font-weight:900;margin-bottom:12px}.branch-hours-grid{display:grid;gap:8px}.branch-hour-row{display:grid;grid-template-columns:90px minmax(100px,1fr) minmax(100px,1fr) 78px minmax(130px,1.35fr);gap:8px;align-items:end;border:1px solid var(--line);background:rgba(255,255,255,.32);border-radius:15px;padding:9px}.branch-hour-row>strong{align-self:center}.branch-hour-row .field{gap:4px}.branch-hour-row .field>span{font-size:10px;color:var(--muted);text-transform:uppercase}.branch-hour-row .field.compact{align-items:center}.branch-hour-row input{min-height:36px!important;padding:7px 9px!important}.branch-hours-save{margin-top:10px}.branch-room-section{margin-top:18px}.branch-room-section h3{display:flex;align-items:center;gap:8px}.branch-card a{color:var(--accent);font-weight:800}.settings-system-card .field small{line-height:1.4}
@media(max-width:1100px){.branch-hour-row{grid-template-columns:78px repeat(2,minmax(90px,1fr)) 70px}.branch-hour-row .field:last-child{grid-column:2/-1}}
@media(max-width:900px){.settings-save{width:100%;justify-self:stretch}.branch-grid{grid-template-columns:1fr}.branch-card-head{flex-direction:column}.branch-card-head .actions{width:100%}.branch-card-head .actions .btn{flex:1}.branch-hour-row{grid-template-columns:1fr 1fr}.branch-hour-row>strong{grid-column:1/-1}.branch-hour-row .field.compact{align-items:flex-start}.branch-hour-row .field:last-child{grid-column:1/-1}}
@media(max-width:520px){.branch-hour-row{grid-template-columns:1fr}.branch-hour-row>strong,.branch-hour-row .field:last-child{grid-column:1}.branch-card-head .actions{display:grid;grid-template-columns:1fr 1fr}.branch-card-head .actions .btn{width:100%}}

/* Patch 015: compact table corners and balanced desktop check-in layout */
.table-wrap{border-radius:8px}
.card>.table-wrap{border-radius:8px}
.checkin-panel{
  grid-template-columns:minmax(320px,.62fr) minmax(0,1.38fr);
  align-items:start;
}
.checkin-panel>.card{min-width:0}
.checkin-panel .big-input{width:100%;max-width:none}
@media(max-width:1000px){
  .checkin-panel{grid-template-columns:1fr}
}
@media(max-width:900px){
  .table-wrap{border-radius:6px}
}

/* Patch 017: schedule/reviews/action reliability */
button, .btn, .icon-action, [role="button"] { pointer-events:auto; touch-action:manipulation; }
.schedule-source-legend{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 14px}
.source-badge,.warning-badge{display:inline-flex;align-items:center;justify-content:center;min-height:22px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;line-height:1.2;white-space:nowrap}
.source-template{background:#e8efff;color:#2858a6}.source-manual{background:#e9f8ef;color:#247447}.source-one_time{background:#f5eefe;color:#7545a1}.warning-badge{background:#fff1dc;color:#9b5c00;border:1px solid #f3d29c}
.week-event{display:flex;flex-direction:column;gap:4px}.event-badges{display:flex;gap:4px;flex-wrap:wrap}.week-event.has-warning{border-color:#e4a43c;background:#fffaf1}
.review-stars{color:#f3a21b;letter-spacing:1px;font-size:15px}.review-comment{display:block;max-width:360px;white-space:normal;line-height:1.45}.review-summary-card{display:grid;gap:4px}.review-summary-card strong{font-size:22px;color:#d98200}
.asset-upload-row{display:grid;grid-template-columns:76px minmax(0,1fr);gap:12px;align-items:center}.asset-upload-row small{grid-column:2;color:var(--muted)}
.table-wrap .actions.action-row{justify-content:flex-start}.table-wrap th,.table-wrap td{vertical-align:middle}
@media (max-width:760px){.schedule-card{padding:12px}.week-calendar{overflow-x:auto;grid-template-columns:repeat(7,minmax(180px,1fr));padding-bottom:8px}.calendar-head{align-items:center}.calendar-head h2{font-size:15px}.review-comment{max-width:220px}.asset-upload-row{grid-template-columns:64px minmax(0,1fr)}}

/* Patch 018: reliable actions and compact staff controls */
.btn.compact{min-height:34px;padding:6px 10px;border-radius:9px;font-size:12px}
button[disabled],.btn[disabled]{opacity:.56;cursor:wait;pointer-events:none}
.action-pending{position:relative;color:transparent!important}.action-pending:after{content:"";position:absolute;inset:0;margin:auto;width:15px;height:15px;border:2px solid rgba(255,255,255,.55);border-top-color:currentColor;border-radius:50%;animation:spin018 .7s linear infinite}@keyframes spin018{to{transform:rotate(360deg)}}
.staff-form-note{grid-column:1/-1;padding:10px 12px;border-radius:8px;background:#f8fafc;border:1px solid var(--line);font-size:12px;color:var(--muted)}
@media(max-width:900px){.actions.action-row{align-items:center}.btn.compact{min-height:40px}}


/* Patch 020: 1024/1280 production layout, compact header, vertical check-in */
.logo{line-height:1.02;letter-spacing:-.02em}.top-title h1{line-height:1.05}.top-title p{line-height:1.2;margin-top:3px}.branch-picker select{width:clamp(140px,16vw,210px);max-width:100%}.checkin-panel{display:block}.checkin-quick{max-width:none}.checkin-toolbar .search{min-width:min(620px,100%)}.settings-collapsible summary{cursor:pointer;font-weight:900}.details-body{padding-top:16px}.review-filter-grid{display:grid;grid-template-columns:1fr 1.2fr 1fr auto;gap:12px;align-items:end}.pill.exclusive{background:#f3e8ff;color:#7e22ce}
@media (min-width:901px) and (max-width:1280px){.app{grid-template-columns:216px minmax(0,1fr)}.sidebar{padding:15px 12px}.sidebar button{padding:10px 11px}.main{padding:18px}.top{gap:10px}.top h1{font-size:25px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.report-grid{grid-template-columns:1fr}.product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.branch-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.table-wrap{max-width:100%}th,td{padding:9px 10px;font-size:12px}.actions{gap:5px}.btn{padding:9px 11px}.top-actions{min-width:0}.badge{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
@media (min-width:901px) and (max-width:1080px){.app{grid-template-columns:188px minmax(0,1fr)}.sidebar{padding-inline:9px}.logo{font-size:19px}.sidebar button{font-size:13px}.main{padding:14px}.top{align-items:flex-start}.top-actions{flex-direction:column;align-items:flex-end}.branch-picker span{display:none}.branch-picker select{width:150px}.week-calendar{overflow-x:auto;grid-template-columns:repeat(7,minmax(150px,1fr))}.modal-card{width:min(820px,calc(100vw - 24px))}.review-filter-grid{grid-template-columns:1fr 1fr}.review-filter-grid .btn{width:100%}}
@media (max-width:900px){.review-filter-grid{grid-template-columns:1fr}.checkin-toolbar{display:grid!important;grid-template-columns:1fr auto}.settings-collapsible{padding:14px}.top-actions .badge{display:none}}

/* Patch 021 */
.member-action-row .btn{font-size:11px;font-weight:600;min-height:32px;padding:5px 9px}
.checkin-history-toolbar{align-items:flex-end}.checkin-period-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.checkin-period-controls input,.checkin-period-controls select{min-height:36px;padding:7px 10px}
.review-filter-grid{grid-template-columns:minmax(140px,.9fr) minmax(180px,1.25fr) minmax(120px,.8fr) minmax(150px,.9fr) minmax(150px,1fr) auto}
.report-filter-bar,.sales-history-filter{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin:0 0 14px}.report-filter-bar input,.report-filter-bar select,.sales-history-filter input,.sales-history-filter select{min-height:38px}.sales-history-filter .search{flex:1 1 240px}.sales-history-filter input[type=datetime-local]{flex:0 1 210px}
@media(max-width:1280px){.review-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.review-filter-grid .btn{width:100%}.sales-history-filter>*{min-width:0}}
@media(max-width:900px){.checkin-history-toolbar{align-items:stretch}.checkin-period-controls{display:grid;grid-template-columns:auto 1fr 1fr auto;width:100%}.review-filter-grid{grid-template-columns:1fr}.report-filter-bar,.sales-history-filter{display:grid;grid-template-columns:1fr 1fr}.report-filter-bar .btn,.sales-history-filter .btn,.sales-history-filter .search{grid-column:1/-1;width:100%}}
@media(max-width:560px){.checkin-period-controls{grid-template-columns:auto 1fr auto}.checkin-period-controls select{grid-column:1/-1}.report-filter-bar,.sales-history-filter{grid-template-columns:1fr}.report-filter-bar>*,.sales-history-filter>*{grid-column:1!important;width:100%}.member-action-row{display:grid;grid-template-columns:repeat(3,1fr);width:100%}.member-action-row .btn{width:100%;padding-inline:5px}}

/* Patch 023: 414px mobile containment and CMS-wide responsive hardening */
html,body{width:100%;max-width:100%}
.main,#content,.card,.toolbar,.top,.top-title,.top-actions,.branch-picker,.form-grid,.field,.checkin-panel>*,.pos-layout>*,.reports-layout>*,.report-grid>*,.grid>*{min-width:0}
input,select,textarea{max-width:100%}

@media(max-width:900px){
  .toolbar.checkin-toolbar{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    width:100%;
    max-width:100%;
    align-items:stretch;
  }
  .toolbar.checkin-toolbar .search{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
  .toolbar.checkin-toolbar .btn{
    width:auto;
    min-width:0;
    max-width:100%;
    white-space:nowrap;
  }
  .top-title{overflow:hidden}
  .top-title h1,.top-title p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .top-actions,.branch-picker{min-width:0}
  .branch-picker{max-width:min(42vw,150px)}
  .branch-picker select{width:100%;min-width:0;max-width:100%}
  .toolbar>*{max-width:100%}
  .mini-item>div,.selected-member>div,.role-card>div,.perm-row>div{min-width:0;overflow-wrap:anywhere}
  .modal-card{max-width:100vw}
  .modal-head,.modal-body,.modal-actions{min-width:0}
}

@media(max-width:414px){
  .main{width:100%;max-width:100%}
  .checkin-quick{overflow:hidden}
  .toolbar.checkin-toolbar{gap:8px}
  .toolbar.checkin-toolbar .big-input{font-size:16px!important;padding-inline:12px!important}
  .checkin-history-toolbar>div:first-child{min-width:0}
  .checkin-period-controls{min-width:0;max-width:100%}
  .checkin-period-controls input,.checkin-period-controls select{min-width:0;width:100%;max-width:100%}
  .mobile-menu{max-width:calc(100vw - 20px)}
}

@media(max-width:360px){
  .toolbar.checkin-toolbar{grid-template-columns:1fr!important}
  .toolbar.checkin-toolbar .btn{width:100%}
  .top{gap:8px}
  .branch-picker{max-width:112px}
}
