:root{--bg:#f8f4ec;--surface:#fff;--ink:#2b2418;--muted:#74695a;--line:#ebe3d3;--line-strong:#cdbb98;--soft:#f4eee2;--primary:#8a6a2c;--on-primary:#fff;--gold:#c3a062;--head-bg:#fbf8f2;--head-ink:#9a7633;--head-sub:#857761;--danger:#b3261e;--danger-soft:#fbeceb;--ok:#1d7a46;--ok-soft:#e7f4ec;--warn-soft:#fff4dc;--shadow:0 1px 2px #281e0a0a, 0 6px 18px #281e0a0d;--radius:16px;--tap:44px;--font:"Noto Sans Thai", "Leelawadee UI", "Sukhumvit Set", Thonburi, Tahoma, system-ui, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=noir]{--bg:#f5f3ee;--ink:#1c1b19;--muted:#6a655c;--line:#e6e1d6;--line-strong:#c7bfae;--soft:#efebe3;--primary:#1c1b19;--on-primary:#ecd29b;--gold:#c9a45c;--head-bg:#111;--head-ink:#d4b06a;--head-sub:#b0a284}:root[data-theme=rose]{--bg:#fbf4f2;--ink:#4a2c33;--muted:#7f6268;--line:#f0dfdb;--line-strong:#d8b4b3;--soft:#f8eae7;--primary:#9c5260;--on-primary:#fff;--gold:#c48b8f;--head-bg:#fbf2ef;--head-ink:#a35a66;--head-sub:#8e6f76}:root[data-theme=sage]{--bg:#f3f6f1;--ink:#2e3a2d;--muted:#5f6c5c;--line:#dfe7da;--line-strong:#b5c5ae;--soft:#e8efe4;--primary:#4a6649;--on-primary:#fff;--gold:#7f9a7c;--head-bg:#eef2ea;--head-ink:#4f6b4e;--head-sub:#6b7967}:root[data-theme=navy]{--bg:#f3f5f9;--ink:#16233a;--muted:#5b6680;--line:#dde2ec;--line-strong:#b6bfd1;--soft:#e9edf5;--primary:#16263d;--on-primary:#ecd39b;--gold:#c9a45c;--head-bg:#0f1b2d;--head-ink:#d8b673;--head-sub:#a3b0c4}:root[data-theme=lavender]{--bg:#f7f4fb;--ink:#3a2d52;--muted:#6c6283;--line:#e8e1f2;--line-strong:#c5b7de;--soft:#efe9f8;--primary:#6a5194;--on-primary:#fff;--gold:#9c86c4;--head-bg:#f4f0fa;--head-ink:#6f559a;--head-sub:#7a6f91}:root[data-theme=pearl]{--bg:#f6f5f1;--ink:#1d1d1d;--muted:#6c6862;--line:#e4e1da;--line-strong:#bdb8ad;--soft:#eeece6;--primary:#1d1d1d;--on-primary:#fff;--gold:#8c877c;--head-bg:#fff;--head-ink:#1d1d1d;--head-sub:#77736b}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);font-family:var(--font);margin:0;padding:0;font-size:16px;line-height:1.5}body{-webkit-tap-highlight-color:transparent;overflow-wrap:anywhere}#root{min-height:100dvh}a{color:inherit}h1,h2,h3{margin:0;line-height:1.3}h1{letter-spacing:.005em;font-size:1.25rem;font-weight:700}h2{font-size:1.1rem;font-weight:700}h3{font-size:1rem;font-weight:600}p{margin:0}.app{background:var(--bg);flex-direction:column;max-width:480px;min-height:100dvh;margin:0 auto;display:flex}.page{flex:1;padding:0 16px 104px}.page-head{z-index:5;background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);align-items:center;gap:8px;margin-bottom:16px;padding:16px 0 12px;display:flex;position:sticky;top:0}.page-head h1{flex:1}.page-actions{gap:8px;display:flex}.stack{flex-direction:column;gap:12px;display:flex}.row{align-items:center;gap:8px;display:flex}.row-between{justify-content:space-between;align-items:center;gap:8px;display:flex}.muted{color:var(--muted)}.small{font-size:.875rem}.section-title{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:22px 0 10px;font-size:.78rem;font-weight:600}.brand{background:var(--head-bg);color:var(--head-ink);border-bottom:1px solid color-mix(in srgb, var(--gold) 45%, transparent);align-items:center;gap:12px;padding:18px 16px 16px;display:flex}.brand-logo{object-fit:contain;border-radius:12px;flex:none;width:56px;height:56px}.brand-wide{flex-direction:column;align-items:flex-start;gap:6px}.brand-logo-wide{object-fit:contain;width:auto;max-width:100%;height:44px;display:block}.brand-text{flex:1;min-width:0}.brand-name{letter-spacing:.02em;color:var(--head-ink);font-size:1.2rem;font-weight:700;line-height:1.25}.brand-sub{letter-spacing:.06em;color:var(--head-sub);margin-top:2px;font-size:.78rem}.brand-latin{text-transform:uppercase;letter-spacing:.12em}.btn{min-height:var(--tap);font:inherit;cursor:pointer;border:1.5px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 20px;font-weight:600;text-decoration:none;transition:transform 50ms,background-color .15s,border-color .15s;display:inline-flex}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary);box-shadow:0 4px 12px color-mix(in srgb, var(--primary) 22%, transparent)}.btn-secondary{background:var(--surface);border-color:var(--line-strong);color:var(--ink)}.btn-secondary:hover:not(:disabled){border-color:var(--primary)}.btn-ghost{color:var(--ink);background:0 0;border-color:#0000}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-block{width:100%}.btn-sm{min-height:36px;padding:0 14px;font-size:.875rem}.icon-btn{min-width:var(--tap);min-height:var(--tap);cursor:pointer;color:var(--ink);background:0 0;border:0;border-radius:50%;font-size:1.6rem;line-height:1}a.icon-btn{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.icon-btn:focus-visible,.btn:focus-visible,.card-button:focus-visible,.tabbar a:focus-visible{outline:3px solid color-mix(in srgb, var(--primary) 55%, transparent);outline-offset:2px}.sticky-bottom{padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);z-index:10;max-width:480px;margin:0 auto;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -6px 18px #281e0a0d}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);text-align:left;width:100%;font:inherit;color:inherit;box-shadow:var(--shadow);padding:14px 16px}.card-button{cursor:pointer;transition:border-color .15s;display:block}.card-button:hover{border-color:var(--line-strong)}.card.selected{border:2px solid var(--primary);background:color-mix(in srgb, var(--primary) 5%, var(--surface));padding:13px 15px}.card-title{font-weight:600}.list{flex-direction:column;gap:10px;display:flex}.chip{background:var(--soft);color:var(--ink);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:2px 10px;font-size:.75rem;font-weight:600;display:inline-flex}.chip-dark{background:var(--primary);color:var(--on-primary)}.chip-accent{background:var(--danger-soft);color:var(--danger)}.chip-muted{background:var(--soft);color:var(--muted)}.chip-ok{background:var(--ok-soft);color:var(--ok)}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field label{font-size:.9rem;font-weight:600}.field input,.field select,.field textarea{min-height:var(--tap);border:1.5px solid var(--line-strong);font:inherit;background:var(--surface);color:var(--ink);border-radius:12px;width:100%;padding:10px 12px}.field textarea{resize:vertical;min-height:88px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 16%, transparent);outline:none}.field-error input,.field-error select,.field-error textarea{border-color:var(--danger)}.field-msg{color:var(--muted);font-size:.82rem}.field-msg.error{color:var(--danger)}.check{min-height:var(--tap);align-items:flex-start;gap:10px;display:flex}.check input{width:22px;height:22px;accent-color:var(--primary);flex:none;margin-top:2px}.segmented{background:var(--soft);border-radius:999px;gap:4px;padding:4px;display:flex}.segmented button{min-height:38px;font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;flex:1;font-weight:600}.segmented button.active{background:var(--primary);color:var(--on-primary)}.banner{border-radius:14px;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;padding:12px 14px;font-size:.92rem;display:flex}.banner-info{background:var(--soft)}.banner-success{background:var(--ok-soft);color:var(--ok)}.banner-warn{background:var(--warn-soft)}.banner-error{background:var(--danger-soft);color:var(--danger)}.banner-text{flex:1}.empty{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:40px 16px;display:flex}.empty-mark{background:var(--soft);width:56px;height:56px;color:var(--primary);border-radius:50%;place-items:center;font-size:1.5rem;display:grid}.empty-title{font-weight:600}.empty-text{color:var(--muted);font-size:.9rem}.loading{color:var(--muted);flex-direction:column;align-items:center;gap:12px;padding:64px 16px;display:flex}.spinner{border:3px solid var(--line);border-top-color:var(--primary);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin;display:inline-block}.spinner-sm{border-width:2px;border-top-color:currentColor;width:16px;height:16px}@keyframes spin{to{transform:rotate(360deg)}}.overlay{z-index:50;background:#14100a80;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.overlay-sheet{place-items:end center;padding:0}.dialog{background:var(--surface);border-radius:20px;width:100%;max-width:420px;max-height:90dvh;padding:22px;overflow:auto;box-shadow:0 20px 50px #14100a33}.dialog-body{color:var(--ink);margin:12px 0 4px}.dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.sheet{background:var(--surface);border-radius:22px 22px 0 0;flex-direction:column;width:100%;max-width:480px;max-height:90dvh;display:flex}.sheet-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:12px 8px 8px 16px;display:flex}.sheet-body{padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom));overflow:auto}.toasts{z-index:60;flex-direction:column;gap:8px;width:calc(100% - 32px);max-width:440px;display:flex;position:fixed;bottom:92px;left:50%;transform:translate(-50%)}.toast{background:var(--ink);color:var(--surface);box-shadow:var(--shadow);border-radius:14px;padding:12px 16px;font-size:.92rem}.toast-error{background:var(--danger);color:#fff}.toast-success{background:var(--ok);color:#fff}.tabbar{background:var(--surface);border-top:1px solid var(--line);max-width:480px;padding-bottom:env(safe-area-inset-bottom);z-index:20;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -6px 18px #281e0a0a}.tabbar a{min-height:60px;color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:.72rem;text-decoration:none;display:flex;position:relative}.tabbar a .tab-icon{width:22px;height:22px;display:block}.tabbar a.active{color:var(--primary);font-weight:700}.tabbar a.active:before{content:"";background:var(--primary);border-radius:0 0 2px 2px;height:2px;position:absolute;top:0;left:30%;right:30%}.steps{gap:6px;margin-bottom:16px;display:flex}.steps span{background:var(--line);border-radius:4px;flex:1;height:4px}.steps span.done{background:var(--primary)}.date-strip{scroll-snap-type:x mandatory;gap:8px;padding-bottom:6px;display:flex;overflow-x:auto}.date-cell{border:1px solid var(--line);background:var(--surface);width:64px;min-height:76px;font:inherit;cursor:pointer;scroll-snap-align:start;color:var(--ink);border-radius:14px;flex-direction:column;flex:none;justify-content:center;align-items:center;display:flex}.date-cell .dow{color:var(--muted);font-size:.75rem}.date-cell .day{font-size:1.25rem;font-weight:700}.date-cell .tag{color:var(--muted);font-size:.65rem}.date-cell.selected{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.date-cell.selected .dow,.date-cell.selected .tag{color:var(--on-primary);opacity:.8}.date-cell:disabled{opacity:.4;cursor:not-allowed}.time-grid{grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:8px;display:grid}.time-cell{min-height:var(--tap);border:1px solid var(--line-strong);background:var(--surface);font:inherit;cursor:pointer;color:var(--ink);border-radius:12px;font-weight:600}.time-cell.selected{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.avatar{background:var(--soft);width:44px;height:44px;color:var(--primary);box-shadow:0 0 0 1px var(--line);border-radius:50%;flex:none;place-items:center;font-weight:700;display:grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.summary dt{color:var(--muted);font-size:.85rem}.summary dd{margin:0 0 10px;font-weight:600}.price{white-space:nowrap;color:var(--ink);font-weight:700}.slot-time{font-variant-numeric:tabular-nums;min-width:52px;color:var(--primary);font-weight:700}.booking-row{align-items:flex-start;gap:12px;display:flex}.booking-row .grow{flex:1;min-width:0}.status-line{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.filter-chips{gap:8px;margin-bottom:8px;padding-bottom:6px;display:flex;overflow-x:auto}.filter-chips button{border:1px solid var(--line-strong);background:var(--surface);min-height:36px;font:inherit;cursor:pointer;color:var(--ink);border-radius:999px;flex:none;padding:0 14px;font-weight:600}.filter-chips button.active{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.big-code{letter-spacing:.2em;text-align:center;background:var(--soft);border-radius:var(--radius);font-variant-numeric:tabular-nums;padding:16px;font-size:2.4rem;font-weight:700}.meter{background:var(--line);border-radius:999px;height:10px;overflow:hidden}.meter>span{background:var(--primary);height:100%;display:block}.meter.warn>span{background:var(--danger)}.menu-list a,.menu-list button{border:0;border-bottom:1px solid var(--line);width:100%;min-height:56px;font:inherit;color:var(--ink);cursor:pointer;background:0 0;justify-content:space-between;align-items:center;padding:0 4px;text-decoration:none;display:flex}.stat-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px}.stat b{font-size:1.4rem;display:block}table.simple{border-collapse:collapse;width:100%;font-size:.9rem}table.simple th,table.simple td{text-align:left;border-bottom:1px solid var(--line);padding:8px 4px}table.simple td.num,table.simple th.num{text-align:right;font-variant-numeric:tabular-nums}.info-hours{gap:2px;margin:0;padding:0;list-style:none;display:grid}.info-hours li{border-bottom:1px dashed var(--line);font-variant-numeric:tabular-nums;justify-content:space-between;padding:8px 0;display:flex}.info-hours li:last-child{border-bottom:0}.row>.field{flex:1 1 0;min-width:0}.field input,.field select,.field textarea{min-width:0;max-width:100%}.app.console{max-width:760px}.console-nav a{border:1px solid var(--line-strong);min-height:36px;color:var(--ink);background:var(--surface);border-radius:999px;flex:none;align-items:center;padding:0 14px;font-weight:600;text-decoration:none;display:inline-flex}.console-nav a.active{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.menu-preview{border:1px solid var(--line);background:var(--soft);width:100%;height:auto;box-shadow:var(--shadow);border-radius:14px;display:block}.theme-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.theme-swatch{min-height:var(--tap);border:1px solid var(--line);background:var(--surface);font:inherit;color:var(--ink);cursor:pointer;text-align:left;border-radius:12px;align-items:center;gap:8px;padding:6px 10px;font-size:.85rem;display:flex}.theme-swatch[aria-pressed=true]{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary) inset;font-weight:600}.theme-dot{border:2px solid;border-radius:50%;flex:none;place-items:center;width:26px;height:26px;display:grid}.theme-dot span{border-radius:50%;width:10px;height:10px}.field input[type=range]{min-height:0;box-shadow:none;accent-color:var(--primary);border:0;padding:0}.own-menu{border-top:1px solid var(--line);margin-top:20px;padding-top:12px}.own-menu summary{cursor:pointer;min-height:var(--tap);align-items:center;font-size:.9rem;font-weight:600;display:flex}.theme-more{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin-top:22px;padding:4px 14px 12px}.theme-more summary{cursor:pointer;min-height:var(--tap);justify-content:space-between;align-items:center;gap:8px;list-style:none;display:flex}.theme-more summary::-webkit-details-marker{display:none}.theme-more:not([open]){padding-bottom:4px}.date-strip{scrollbar-width:none}.date-strip::-webkit-scrollbar{display:none}
