:root{--brand-primary:#6f42c1;--brand-primary-dark:#4a2a85;--brand-accent:#8b5cf6;--brand-primary-light:#f3eeff;--brand-surface:#2f3136;--brand-border:#e5e7eb;--brand-border-soft:#ddd6fe;--color-text:#1f2937;--color-heading:#1f2937;--color-muted:#4b5563;--color-subtle:#6b7280;--color-panel:#fff;--color-panel-soft:#faf8ff;--color-page:#f8f7fc;--color-link:var(--brand-primary-dark);--color-focus:var(--brand-accent);--color-danger:#9f1239;--color-warning:#7c4a03;--color-success:#166534;--shadow-panel:0 16px 48px #4a2a8524;--shadow-brand:0 8px 20px #6f42c147;--slot-available-bg:#fff;--slot-available-text:#1f2937;--slot-reserved-bg:#fff;--slot-reserved-text:#1f2937;--slot-paid-bg:#fff;--slot-paid-text:#1f2937;--slot-selected-bg:var(--brand-accent);--slot-selected-text:#0b0618;--slot-past-bg:#e5e7eb;--slot-past-text:#374151;color:var(--color-text);background:var(--color-page);font-synthesis:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-family:Inter,Noto Sans TC,Microsoft JhengHei,sans-serif}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;background-color:#0000;background-image:linear-gradient(#ffffffe0,#f8f7fcf5),url(https://images.unsplash.com/photo-1626224583764-f87db24ac4ea?auto=format&fit=crop&w=1800&q=80);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:cover;background-attachment:fixed;background-origin:padding-box,padding-box;background-clip:border-box,border-box;min-width:320px;min-height:100vh;margin:0;font-family:Inter,Noto Sans TC,Microsoft JhengHei,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}a{color:inherit;text-decoration:none}.app-shell{width:min(1480px,100% - 32px);padding:24px 0 calc(36px + env(safe-area-inset-bottom,0px));margin:0 auto}.topbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;padding:18px 0;display:flex}.topbar h1,.section-head h2,.panel-title h2,.login-card h1{letter-spacing:0;margin:0}.topbar h1{font-size:clamp(24px,4vw,42px);font-weight:850}.eyebrow{color:var(--color-muted);margin:0 0 4px;font-size:13px;font-weight:760}.booking-layout,.admin-grid{grid-template-columns:minmax(0,1fr) 380px;align-items:start;gap:18px;display:grid}.admin-grid>*{min-width:0;max-width:100%}.booking-main,.side-panel,.login-card,.settings-band,.settings-page section{background:#fffffff0;border:1px solid #4a2a851f;border-radius:8px;box-shadow:0 16px 48px #4a2a851f}.booking-main{min-width:0;padding:18px}.section-head,.panel-title{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.section-head h2,.panel-title h2{font-size:22px}.panel-title{justify-content:flex-start}.side-panel{padding:18px;position:sticky;top:14px}.week-controls,.row-actions,.admin-nav,.topbar-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.topbar-actions{flex-wrap:wrap;justify-content:flex-end}.icon-button,.icon-link,.line-login-button,.secondary-button,.primary-button,.admin-nav button{min-height:40px;color:var(--color-text);background:#fff;border:1px solid #4a2a8529;border-radius:8px}.icon-button{place-items:center;width:40px;display:inline-grid}.icon-link,.line-login-button,.primary-button,.secondary-button,.admin-nav button{justify-content:center;align-items:center;gap:8px;padding:0 14px;font-weight:800;display:inline-flex}.member-chip{min-height:40px;color:var(--color-text);background:#fffffff0;border:1px solid #4a2a8529;border-radius:8px;align-items:center;gap:8px;padding:0 12px;font-weight:800;display:inline-flex}.member-chip img{object-fit:cover;border-radius:50%;width:26px;height:26px}.member-chip span{text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.member-menu{display:inline-flex;position:relative}.member-menu-button{min-width:40px;padding-inline:10px}.member-menu-panel{z-index:30;border:1px solid var(--brand-border);min-width:176px;box-shadow:var(--shadow-panel);background:#fffffffa;border-radius:8px;padding:8px;position:absolute;top:calc(100% + 8px);right:0}.member-menu-name,.member-menu-item,.member-menu-logout{border-radius:8px;align-items:center;gap:8px;width:100%;min-height:38px;padding:0 10px;font-weight:800;display:flex}.member-menu-name{color:var(--color-heading)}.member-menu-item{color:var(--color-text);background:0 0;border:0;justify-content:flex-start;margin-top:4px}.member-menu-name img{object-fit:cover;border-radius:50%;width:24px;height:24px}.member-menu-name span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.member-menu-logout{color:var(--color-danger);background:0 0;border:0;justify-content:flex-start;margin-top:4px}.member-menu-item:hover{background:var(--brand-primary-light)}.member-menu-logout:hover{background:#fff1f2}.primary-button{border-color:var(--brand-primary);background:var(--brand-primary);color:#fff;width:100%}.secondary-button,.admin-nav button.active{background:var(--brand-primary-light);border-color:var(--brand-border-soft)}.icon-link.active{background:var(--brand-primary);border-color:var(--brand-primary);color:#fff}.button-link{width:auto}.danger{color:#a72c33}.day-tabs{grid-template-columns:repeat(7,minmax(74px,1fr));gap:8px;margin-bottom:14px;display:grid}.day-tabs button{min-height:58px;color:var(--color-text);background:#fff;border:1px solid #4a2a8524;border-radius:8px}.day-tabs button.active{border-color:var(--brand-primary);background:var(--brand-primary);color:#fff}.day-tabs span,.day-tabs strong{display:block}.day-tabs span{opacity:.76;font-size:12px}.day-tabs strong{margin-top:3px}.public-day-tabs button{align-content:center;justify-items:center;row-gap:2px;line-height:1.15;display:grid;overflow:visible}.public-day-tabs button span,.public-day-tabs button strong{z-index:1;max-width:100%;color:inherit;white-space:nowrap;text-overflow:clip;visibility:visible;line-height:1.15;position:relative;overflow:visible}.public-day-tabs button.active span,.public-day-tabs button.active strong{color:#fff;opacity:1}.public-day-tabs button.today:not(.active){background:#faf7ff;border-color:#6d28d957}.public-day-tabs button.today:not(.active) span{color:#5b21b6;opacity:1;font-weight:850}.compact-tabs{grid-template-columns:repeat(4,minmax(62px,1fr));max-height:134px;overflow:auto}.table-wrap{width:100%;overflow:auto}.slot-table,.orders-table,.rules-table{border-collapse:separate;border-spacing:0;width:100%}.slot-table th,.slot-table td,.orders-table th,.orders-table td,.rules-table th,.rules-table td{text-align:left;vertical-align:top;border-bottom:1px solid #4a2a851a;padding:8px}.slot-table th{min-width:132px;color:var(--color-muted);font-size:13px}.slot-table th:first-child,.time-cell{width:86px;min-width:86px;color:var(--color-muted);font-weight:840}.time-cell span{margin-top:2px;font-size:12px;font-weight:650;display:block}.slot-button{border:1px solid var(--brand-border);background:var(--slot-available-bg);width:100%;min-width:120px;height:62px;color:var(--slot-available-text);text-align:left;border-radius:8px;padding:8px}.slot-button strong,.slot-button span{white-space:nowrap;display:block}.slot-button span{color:var(--color-muted);margin-top:4px;font-size:12px}.slot-button.selected{border-color:var(--brand-accent);background:var(--brand-primary-light);box-shadow:inset 0 0 0 2px var(--brand-accent)}.slot-button.booked,.slot-button.closed{color:#897160;background:#f4f0eb;border-color:#ece4dc}.slot-button.waitlistable,.mobile-slot-button.waitlistable{color:#165336;cursor:pointer;background:#eef8f1;border-color:#3a7f5b}.slot-button.waitlistable span,.mobile-slot-button.waitlistable .mobile-slot-state{color:#216b47}.mobile-slot-list{display:none}.mobile-time-card{background:#fff;border:1px solid #4a2a851f;border-radius:8px;gap:8px;min-width:0;padding:10px;display:grid}.mobile-time-card h3{color:var(--color-text);margin:0;font-size:16px;font-weight:850}.mobile-court-list{grid-template-columns:repeat(4,1fr);gap:6px;min-width:0;display:grid}.mobile-slot-button{border:1px solid var(--brand-border);background:var(--slot-available-bg);width:100%;min-width:0;height:60px;min-height:56px;max-height:64px;color:var(--slot-available-text);text-align:center;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:7px 4px;line-height:1.1;display:flex;overflow:hidden}.mobile-court-name{white-space:nowrap;width:100%;font-size:13px;font-weight:850}.mobile-slot-state{width:100%;min-width:0;color:var(--color-muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:800;overflow:hidden}.mobile-slot-button:disabled{opacity:1}.mobile-slot-button.selected{border-color:var(--brand-accent);background:var(--brand-primary-light);box-shadow:inset 0 0 0 2px var(--brand-accent)}.mobile-slot-button.booked{color:#897160;background:#f4f0eb;border-color:#ece4dc}.mobile-slot-button.closed{border-color:var(--brand-border);background:var(--slot-past-bg);color:var(--slot-past-text)}.mobile-slot-button.booked .mobile-slot-state{color:#897160}.mobile-slot-button.closed .mobile-slot-state{color:var(--slot-past-text)}.selected-list{gap:8px;max-height:260px;display:grid;overflow:auto}.empty-order-summary{border:1px dashed var(--brand-border-soft);background:var(--color-panel-soft);color:var(--brand-primary-dark);text-align:center;border-radius:8px;padding:14px;font-size:15px;font-weight:850}.selected-item{border-bottom:1px solid #4a2a851a;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.selected-item span,.orders-table td span,.muted{color:var(--color-muted);font-size:13px;display:block}.orders-table .member-line{color:var(--brand-primary-dark);margin-top:3px;font-weight:760}.total-row{border-top:2px solid #4a2a851f;justify-content:space-between;margin:16px 0;padding-top:14px;font-size:18px;display:flex}.member-booking-identity,.login-required-panel{margin-bottom:12px}.member-booking-identity{background:var(--color-panel-soft);min-height:40px;color:var(--color-heading);border:1px solid #4a2a8524;border-radius:8px;align-items:center;gap:8px;padding:0 12px;font-weight:850;display:flex}.member-booking-identity img{object-fit:cover;border-radius:50%;width:24px;height:24px}.login-required-panel{gap:10px;display:grid}.login-required-button{min-height:42px}.form-stack{gap:12px;display:grid}.booking-notice-sections{gap:8px;display:grid}.booking-notice-section{background:#fff;border:1px solid #4a2a851f;border-left-width:4px;border-radius:8px;overflow:hidden}.booking-notice-section.notice{border-left-color:var(--brand-accent);background:#f2f8ff}.booking-notice-section.danger{background:#fff5f5;border-left-color:#a72c33}.booking-notice-section.bank_info{background:#fff9e8;border-left-color:#8a6712}.booking-notice-section.normal{border-left-color:var(--brand-primary)}.booking-notice-section summary{min-height:42px;color:var(--color-text);cursor:pointer;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;font-weight:850;display:flex}.booking-notice-section p{color:var(--color-muted);white-space:pre-line;margin:0;padding:0 12px 12px;font-size:14px;font-weight:650;line-height:1.7}.booking-rule-check{background:var(--color-panel-soft);color:var(--color-text);border:1px solid #4a2a8524;border-radius:8px;align-items:flex-start;padding:12px;line-height:1.45}label{color:var(--color-muted);gap:6px;font-size:13px;font-weight:760;display:grid}input,select,textarea{width:100%;min-height:40px;color:var(--color-text);background:#fff;border:1px solid #4a2a852e;border-radius:8px;padding:0 10px}textarea{resize:vertical;min-height:92px;padding:10px}.notice{border:1px solid var(--brand-border-soft);background:var(--brand-primary-light);color:var(--brand-primary-dark);border-radius:8px;margin-bottom:12px;padding:12px;font-weight:720}.notice.error{color:#8d242b;background:#fff1f1;border-color:#e7c1c3}.notice.warning{color:#76540e;background:#fff8df;border-color:#efd38a}.notice.compact{margin:12px 0 0;font-size:14px}.notice.full{width:min(480px,100% - 32px);margin:60px auto}.login-screen{place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{gap:16px;width:min(420px,100%);padding:24px;display:grid}.admin-shell .topbar{align-items:center}.app-shell.admin-shell{width:min(1920px,100% - 20px);padding-top:12px}.admin-overview-grid{grid-template-columns:minmax(0,1fr);gap:12px}.admin-overview-panel{padding:12px}.admin-overview-panel .section-head{margin-bottom:10px}.orders-table th,.rules-table th{color:var(--color-muted);font-size:13px}.orders-table td{min-width:92px}.orders-table .line{white-space:nowrap}.inline-status-select{width:132px;min-height:34px;color:var(--color-text);background:#fff;border:1px solid #4a2a8529;border-radius:8px;padding:0 8px;font-size:13px;font-weight:760}.status{background:var(--brand-border);white-space:nowrap;border-radius:999px;align-items:center;min-height:26px;padding:0 9px;font-size:12px;font-weight:850;display:inline-flex}.status.confirmed,.status.pending_payment,.status.held{background:var(--brand-primary-light);color:var(--brand-primary-dark)}.status.waiting,.status.notified{color:#165336;background:#e5f4ec}.status.cancelled,.status.expired,.status.no_show{color:#8d242b;background:#f7e1e1}.member-orders-page,.member-profile-page{gap:14px;display:grid}.member-profile-card{gap:14px;max-width:520px;display:grid}.member-profile-summary{background:var(--color-panel-soft);border:1px solid #4a2a8524;border-radius:8px;align-items:center;gap:12px;padding:14px;display:flex}.member-profile-summary img{object-fit:cover;border-radius:50%;width:44px;height:44px}.member-profile-summary strong,.member-profile-summary span{display:block}.member-profile-summary strong{color:var(--color-heading);font-size:18px}.member-waitlists{gap:10px;display:grid}.member-waitlist-cards{display:none}.member-waitlist-card{background:#fff;border:1px solid #4a2a8524;border-radius:8px;gap:12px;min-width:0;padding:12px;display:grid}.member-waitlist-card-head{justify-content:space-between;align-items:flex-start;gap:10px;min-width:0;display:flex}.member-waitlist-card-head span,.member-waitlist-card dt{color:var(--color-muted);font-size:12px;font-weight:760}.member-waitlist-card-head strong{color:var(--color-text);margin-top:3px;font-size:15px;line-height:1.25;display:block}.member-waitlist-card dl{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;display:grid}.member-waitlist-card dd{color:var(--color-text);margin:2px 0 0;font-weight:820;line-height:1.25}.member-waitlist-actions{flex-wrap:wrap;gap:8px;display:flex}.member-waitlist-actions .primary-button,.member-waitlist-actions .secondary-button{width:auto;min-width:118px}.compact-head{margin-top:4px}.member-order-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.member-order-tabs button{min-height:58px;color:var(--color-text);background:#fff;border:1px solid #4a2a8524;border-radius:8px}.member-order-tabs button.active{border-color:var(--brand-primary);background:var(--brand-primary);color:#fff}.member-order-tabs span,.member-order-tabs strong{display:block}.member-order-tabs span{font-size:13px;font-weight:820}.member-order-tabs strong{margin-top:3px;font-size:18px}.member-orders-table td{vertical-align:middle}.member-cancel-button{width:auto;min-width:118px}.waitlist-admin-page{gap:14px;display:grid}.waitlist-admin-table .row-actions{flex-wrap:nowrap;gap:6px;display:flex}.waitlist-admin-table .row-actions .primary-button,.waitlist-admin-table .row-actions .secondary-button{width:auto;min-width:92px}.blacklist-badge{color:#b91c1c;vertical-align:middle;background:#fef2f2;border:1px solid #b91c1c47;border-radius:999px;align-items:center;width:fit-content;margin-left:8px;padding:2px 7px;font-size:12px;font-weight:700;line-height:1.4;display:inline-flex}.blacklist-admin-page{gap:14px;display:grid}.blacklist-admin-grid{grid-template-columns:minmax(280px,360px) minmax(0,1fr);align-items:start;gap:16px;display:grid}.blacklist-form{background:#fff;border:1px solid #4a2a851f;border-radius:8px;padding:16px}.blacklist-table .row-actions{flex-wrap:nowrap;gap:6px;display:flex}.blacklist-table .row-actions .secondary-button{width:auto;min-width:72px}.blacklist-warning{gap:8px;display:grid}.status.blacklist-active{color:#b91c1c;background:#fef2f2}.status.blacklist-inactive{color:#64748b;background:#f1f5f9}.status.blacklist-expired{color:#92400e;background:#fffbeb}.modal-backdrop{z-index:80;background:#16102161;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.waitlist-confirm-dialog{background:#fff;border:1px solid #4a2a8529;border-radius:8px;gap:14px;width:min(420px,100%);padding:18px;display:grid;box-shadow:0 18px 48px #1f143638}.waitlist-confirm-dialog dl{gap:8px;margin:0;display:grid}.waitlist-confirm-dialog dl>div{grid-template-columns:74px minmax(0,1fr);gap:10px;display:grid}.waitlist-confirm-dialog dt{color:var(--color-muted);font-size:13px;font-weight:760}.waitlist-confirm-dialog dd{color:var(--color-text);margin:0;font-weight:850}.waitlist-confirm-dialog .row-actions{justify-content:flex-end}.waitlist-confirm-dialog .row-actions .primary-button,.waitlist-confirm-dialog .row-actions .secondary-button{width:auto;min-width:128px}.deadline-text{color:#76540e;white-space:nowrap;align-items:center;min-height:34px;font-size:13px;font-weight:800;display:inline-flex}.admin-side{max-height:calc(100vh - 96px);overflow:auto}.admin-side .form-stack>*{min-width:0;max-width:100%}.admin-side .slot-table th,.admin-side .slot-table td{padding:5px}.admin-side .slot-button{min-width:96px;height:54px}.admin-booking-page{gap:18px;display:grid}.admin-week-overview-page{grid-template-columns:minmax(0,1fr);align-items:start;gap:12px;display:grid}.admin-week-overview-page.has-detail{grid-template-columns:minmax(0,1fr) 340px}.admin-week-overview-page .admin-order-detail-panel{position:sticky;top:12px}.admin-create-booking-page .admin-create-form{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-overview-panel{min-width:0}.week-switch-panel{margin-bottom:14px}.week-tab-strip{scrollbar-width:thin;gap:8px;padding:2px 2px 10px;display:flex;overflow-x:auto}.week-tab{min-height:58px;color:var(--color-text);text-align:left;background:#fff;border:1px solid #4a2a8524;border-radius:8px;flex:0 0 98px;align-content:center;gap:2px;padding:7px 8px;display:grid}.week-tab strong,.week-tab span,.week-tab em{display:block}.week-tab strong{font-size:13px;font-weight:880}.week-tab span{color:inherit;opacity:.8;font-size:11px;font-weight:760}.week-tab em{color:#6c4700;background:#fff1bf;border-radius:999px;width:fit-content;margin-top:2px;padding:2px 6px;font-size:10px;font-style:normal;font-weight:850}.admin-stat-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:10px;display:grid}.admin-stat-grid>div{background:var(--color-panel-soft);border:1px solid #4a2a851a;border-radius:8px;min-width:0;min-height:70px;padding:10px 12px}.admin-stat-grid span{color:var(--color-muted);font-size:12px;font-weight:780;display:block}.admin-stat-grid strong{color:var(--color-text);margin-top:4px;font-size:17px;display:block}.admin-stat-grid em{color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:12px;font-style:normal;font-weight:760;display:block;overflow:hidden}.admin-day-block{border-top:1px solid #4a2a851f;padding-top:14px}.admin-day-head{justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:8px;display:flex}.admin-day-head span,.admin-day-head em{color:var(--color-muted);font-size:13px;font-style:normal;font-weight:760}.admin-day-head strong{color:var(--color-text);margin-top:2px;font-size:20px;font-weight:880;display:block}.admin-overview-table th{min-width:116px}.admin-overview-table th:first-child,.admin-overview-table .time-cell{z-index:1;background:#fff;position:sticky;left:0}.admin-overview-slot{border:1px solid var(--brand-border);width:100%;min-width:112px;height:58px;color:var(--color-text);text-align:left;background:#fff;border-radius:8px;padding:8px}.admin-overview-slot strong,.admin-overview-slot span{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.admin-overview-slot span{color:var(--color-muted);margin-top:4px;font-size:12px;font-weight:720}.admin-overview-slot.selected,.slot-button.selected,.mobile-slot-button.selected{border-color:var(--brand-accent);background:var(--brand-primary-light);box-shadow:inset 0 0 0 2px var(--brand-accent)}.admin-overview-slot.unpaid,.slot-button.unpaid,.mobile-slot-button.unpaid{border-color:var(--brand-border-soft);background:var(--brand-primary-light);color:var(--brand-primary-dark)}.slot-button.reserved,.mobile-slot-button.reserved{border-color:var(--brand-border);background:var(--slot-past-bg);color:var(--slot-past-text)}.admin-overview-slot.past,.admin-overview-slot.closed,.slot-button.past,.slot-button.closed,.mobile-slot-button.past,.mobile-slot-button.closed{border-color:var(--brand-border);background:var(--slot-past-bg);color:var(--slot-past-text)}.admin-overview-slot.unpaid span,.slot-button.unpaid span,.mobile-slot-button.unpaid .mobile-slot-state,.admin-overview-slot.paid span,.slot-button.paid span,.mobile-slot-button.paid .mobile-slot-state{color:var(--brand-primary-dark)}.slot-button.reserved span,.mobile-slot-button.reserved .mobile-slot-state{color:var(--slot-past-text)}.slot-button.promotion,.mobile-slot-button.promotion{border-color:var(--brand-primary-dark);background:var(--brand-primary-dark);color:#fff}.slot-button.promotion span,.mobile-slot-button.promotion .mobile-slot-state{color:var(--brand-primary-light)}.admin-week-schedule{gap:8px;display:grid}.admin-week-search-panel{background:var(--color-panel-soft);border:1px solid #4a2a851a;border-radius:8px;gap:10px;margin:0 0 12px;padding:10px;display:grid}.admin-week-search-form,.search-batch-actions,.search-result-summary{flex-wrap:wrap;align-items:end;gap:8px;display:flex}.admin-week-search-form label{color:var(--color-muted);flex:280px;gap:5px;font-size:12px;font-weight:780;display:grid}.search-input-wrap{background:#fff;border:1px solid #4a2a8524;border-radius:8px;align-items:center;gap:8px;min-height:40px;padding:0 10px;display:flex}.search-input-wrap input{width:100%;min-width:0;color:var(--color-text);font:inherit;background:0 0;border:0;outline:0}.search-result-summary{color:var(--color-muted);justify-content:space-between;font-size:13px;font-weight:780}.overview-batch-toolbar{z-index:4;background:var(--color-panel-soft);border:1px solid #4a2a851a;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px;padding:10px;display:flex;position:sticky;top:0}.overview-batch-toolbar span{color:var(--color-text);margin-right:auto;font-size:13px;font-weight:880}.overview-batch-toolbar .secondary-button{min-height:36px}.search-results-wrap{background:#fff;border:1px solid #4a2a851a;border-radius:8px;max-height:320px}.search-results-table th:first-child,.search-results-table td:first-child{text-align:center;width:54px}.compact-check{justify-content:center;margin:0}mark{color:inherit;background:#fff1a8;border-radius:3px;padding:0 2px}.admin-week-grid-wrap{background:#fff;border:1px solid #4a2a851f;border-radius:8px;width:100%;min-height:340px;max-height:calc(100vh - 328px);overflow:auto}.admin-week-grid{--day-count:7;grid-template-columns:72px repeat(var(--day-count), minmax(196px, 1fr));min-width:calc(72px + (var(--day-count) * 210px));display:grid}.admin-corner-cell,.admin-day-column-head,.admin-court-cell,.admin-court-day-grid{border-bottom:1px solid #4a2a851a;border-right:1px solid #4a2a851a}.admin-corner-cell,.admin-day-column-head{z-index:3;background:var(--color-panel-soft);position:sticky;top:0}.admin-corner-cell{z-index:5;min-height:58px;color:var(--color-muted);place-items:center;font-size:12px;font-weight:880;display:grid;left:0}.admin-day-column-head{min-width:0;padding:7px 8px 6px}.admin-day-column-head strong{color:var(--color-text);text-align:center;font-size:13px;font-weight:880;display:block}.admin-time-track,.admin-court-day-grid{--slot-count:1;grid-template-columns:repeat(var(--slot-count), minmax(32px, 1fr));gap:2px;display:grid}.admin-time-track{margin-top:6px}.admin-time-track span{color:var(--color-muted);text-align:center;font-size:10px;font-weight:780;line-height:1;display:block}.admin-court-cell{z-index:2;min-height:86px;color:var(--color-text);text-align:center;background:#fff;place-items:center;padding:6px;font-size:13px;font-weight:880;display:grid;position:sticky;left:0}.admin-court-day-grid{background:linear-gradient(90deg,#4a2a850d 1px,#0000 1px),#fff;background-size:calc(100% / var(--slot-count)) 100%;min-height:86px;padding:4px}.admin-overview-slot{border-radius:5px;align-content:start;gap:2px;min-width:0;height:76px;padding:5px 6px;font-size:11px;line-height:1.24;display:grid;overflow:hidden}.admin-overview-slot-wrap{width:100%;min-width:0;height:76px;position:relative}.admin-overview-slot-wrap .admin-overview-slot{width:100%}.admin-overview-slot.selectable-booking{cursor:pointer}.admin-overview-slot.batch-selected{border-color:var(--brand-accent);box-shadow:0 0 0 2px var(--brand-accent);position:relative}.admin-overview-slot.batch-selected:after{content:"✓";background:var(--brand-accent);color:#fff;pointer-events:none;border-radius:999px;place-items:center;width:16px;height:16px;font-size:11px;font-weight:900;line-height:1;display:grid;position:absolute;top:3px;right:4px}.admin-overview-slot strong,.admin-overview-slot span,.admin-overview-slot em{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.admin-overview-slot strong{font-size:11px;font-weight:900}.admin-overview-slot span,.admin-overview-slot em{color:inherit;margin:0;font-size:10px;font-style:normal;font-weight:760}.admin-overview-slot.empty-slot{border-color:var(--brand-border);background:#ffffffeb}.admin-overview-slot.empty-slot:hover{border-color:var(--brand-accent);background:var(--brand-primary-light)}.admin-overview-slot.unpaid{border-color:var(--brand-border-soft);background:var(--brand-primary-light);color:var(--brand-primary-dark)}.admin-overview-slot.paid,.admin-overview-slot.promotion{border-color:var(--brand-accent);background:var(--brand-primary-light);color:var(--brand-primary-dark)}.admin-overview-slot.selected{border-color:var(--brand-accent);box-shadow:inset 0 0 0 2px var(--brand-accent)}.admin-overview-slot.empty-slot.selected{background:var(--brand-primary-light)}.admin-overview-slot.closed,.admin-overview-slot.past,.admin-slot-placeholder{visibility:hidden;pointer-events:none}.admin-overview-legend{color:var(--color-muted);flex-wrap:wrap;justify-content:flex-end;gap:12px;font-size:12px;font-weight:760;display:flex}.admin-overview-legend span{align-items:center;gap:6px;display:inline-flex}.admin-overview-legend i{background:#fff;border:1px solid #4a2a8524;border-radius:3px;width:14px;height:14px}.admin-overview-legend .legend-unpaid{border-color:var(--brand-border-soft);background:var(--brand-primary-light)}.admin-overview-legend .legend-promotion,.admin-overview-legend .legend-empty{border-color:var(--brand-accent);background:var(--brand-primary-light)}.admin-day-table-grid{grid-template-columns:1fr;align-items:start;gap:12px;display:grid}.admin-day-table-card{background:#fff;border:1px solid #4a2a851f;border-radius:8px;min-width:0;overflow:hidden}.admin-day-table-card.is-collapsed,.admin-day-table-card.is-past-day{background:var(--color-page)}.admin-day-table-card.is-past-day .admin-day-table-head,.admin-day-table-card.is-past-day .admin-day-table-wrap{background:var(--color-panel-soft)}.admin-day-table-head{background:var(--color-panel-soft);border-bottom:1px solid #4a2a851a;justify-content:space-between;align-items:center;gap:10px;min-height:44px;padding:7px 9px;display:flex}.admin-day-table-head span,.admin-day-table-head em{color:var(--color-muted);font-size:13px;font-style:normal;font-weight:760;display:block}.admin-day-table-head strong{color:var(--color-text);margin-top:2px;font-size:16px;font-weight:880;display:block}.admin-day-table-head em{background:var(--color-panel-soft);color:var(--color-muted);border-radius:999px;flex:none;padding:3px 8px}.admin-day-table-wrap{width:100%;overflow:auto}.admin-day-table{width:100%;min-width:calc(56px + (var(--time-count,12) * 46px));border-collapse:separate;border-spacing:0;table-layout:fixed}.admin-day-table th,.admin-day-table td{text-align:center;vertical-align:top;border-bottom:1px solid #4a2a8517;padding:3px}.admin-day-table th{z-index:1;color:var(--color-muted);white-space:nowrap;background:#fff;font-size:12px;font-weight:850;position:sticky;top:0}.admin-day-table th:first-child,.admin-time-cell,.admin-court-row-cell{width:56px;min-width:56px}.admin-day-table th:first-child{z-index:2;left:0}.admin-time-cell,.admin-court-row-cell{z-index:1;color:var(--color-muted);white-space:nowrap;background:#fff;font-size:13px;font-weight:860;position:sticky;left:0}.admin-time-cell span{color:var(--color-muted);margin-top:2px;font-size:12px;font-weight:700;display:block}.admin-day-table .admin-overview-slot{border-radius:5px;align-content:center;width:100%;min-width:40px;height:52px;padding:4px;font-size:11px;line-height:1.15;display:grid;overflow:hidden}.admin-day-table .admin-overview-slot-wrap{height:52px}.admin-day-table .admin-overview-slot strong,.admin-day-table .admin-overview-slot span,.admin-day-table .admin-overview-slot em{min-width:0;color:inherit;text-overflow:ellipsis;white-space:nowrap;margin:0;display:block;overflow:hidden}.admin-day-table .admin-overview-slot strong{font-size:12px;font-weight:900}.admin-day-table .admin-overview-slot span,.admin-day-table .admin-overview-slot em{margin-top:1px;font-size:11px;font-style:normal;font-weight:780}.admin-day-table .admin-overview-slot.closed,.admin-day-table .admin-overview-slot.past{visibility:visible;pointer-events:none}.admin-day-table .admin-overview-slot.closed{border-color:var(--brand-border);background:var(--slot-past-bg);color:var(--slot-past-text)}.admin-day-table .admin-overview-slot.is-past-slot{opacity:.68}.admin-day-table .admin-overview-slot.booked.is-past-slot{border-style:dashed}.admin-day-table .admin-overview-slot.booked.is-past-slot:hover,.admin-day-table .admin-overview-slot.booked.is-past-slot:focus-visible{opacity:1}.admin-day-table .admin-overview-slot.search-match{border-color:var(--brand-accent);box-shadow:inset 0 0 0 2px var(--brand-accent), 0 0 0 2px #8b5cf629}.admin-day-empty{min-height:118px;color:var(--color-muted);place-items:center;padding:20px;font-size:14px;font-weight:780;display:grid}.admin-order-detail-panel,.admin-quick-create{max-height:none;position:static;overflow:visible}.admin-order-detail-panel .admin-booking-detail{border-bottom:0;margin-bottom:0;padding-bottom:0}.quick-booking-form{grid-template-columns:minmax(140px,1fr) minmax(160px,1fr) minmax(260px,1.4fr) minmax(160px,.8fr);align-items:end}.quick-booking-form>label,.quick-booking-form>.two-cols,.quick-booking-form>.three-cols{min-width:0}.quick-booking-form>.three-cols,.quick-booking-form .quick-selected-area,.quick-booking-form .notice,.quick-booking-form .day-tabs,.quick-booking-form .slot-picker,.quick-booking-form .primary-button{grid-column:1/-1}.quick-booking-form .admin-selected-list{max-height:180px}.quick-booking-form .primary-button{justify-self:start;width:auto}.admin-booking-detail{border-bottom:1px solid #4a2a851f;gap:10px;margin-bottom:16px;padding-bottom:16px;display:grid}.admin-booking-detail .panel-title{justify-content:space-between;margin-bottom:0}.admin-booking-detail .panel-title h2{flex:1}.detail-status-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.detail-status-controls label{color:var(--color-muted);gap:5px;font-size:12px;font-weight:780;display:grid}.admin-booking-detail dl{gap:8px;margin:0;display:grid}.admin-booking-detail dl>div{grid-template-columns:58px minmax(0,1fr);gap:10px;display:grid}.admin-booking-detail dt{color:var(--color-muted);font-size:13px;font-weight:760}.admin-booking-detail dd{color:var(--color-text);margin:0;font-weight:820}.detail-lines{color:var(--color-muted);gap:4px;font-size:13px;display:grid}.customer-edit-form{background:var(--color-panel-soft);border:1px solid #4a2a851f;border-radius:8px;gap:10px;padding:12px;display:grid}.customer-edit-form textarea{min-height:76px}.admin-booking-detail .row-actions .secondary-button{width:auto}.admin-selected-list{max-height:160px}.two-cols,.settings-band{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.three-cols{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.recurring-layout{grid-template-columns:minmax(0,1fr) 440px;align-items:start;gap:18px;display:grid}.recurring-form,.request-meta{gap:12px;display:grid}.recurring-check{background:#fff;border:1px solid #4a2a8524;border-radius:8px;align-self:end;min-height:40px;padding:0 10px}.court-checkbox-grid{background:var(--color-panel-soft);border:1px solid #4a2a851f;border-radius:8px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;padding:12px;display:grid}.form-actions,.review-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.review-actions{margin:12px 0}.form-actions .primary-button,.form-actions .secondary-button,.review-actions .primary-button,.review-actions .secondary-button{width:auto}.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}.summary-grid div{background:var(--color-panel-soft);border:1px solid #4a2a851f;border-radius:8px;gap:4px;padding:10px;display:grid}.summary-grid span,.request-meta span{color:var(--color-muted);font-size:12px;font-weight:760}.summary-grid strong{font-size:20px}.preview-scroll{max-height:520px}.review-slot-scroll{max-height:420px}.compact-table th,.compact-table td{min-width:112px;font-size:13px}.compact-table input[type=checkbox]{width:18px;min-height:18px}.compact-table input,.compact-table select{min-width:104px}.selected-row{background:var(--brand-primary-light)}.orders-table tbody tr{transition:background .15s}.orders-table tbody tr:hover{background:#f3eeffc7}.source-badge{background:var(--brand-primary-light);min-height:26px;color:var(--brand-accent);white-space:nowrap;border-radius:999px;align-items:center;padding:0 9px;font-size:12px;font-weight:850;display:inline-flex}.status.request-pending,.status.request-approved,.status.request-partially_approved{background:var(--brand-primary-light);color:var(--brand-primary-dark)}.status.request-rejected,.status.request-cancelled{color:#8d242b;background:#f7e1e1}.settings-page{gap:16px;display:grid}.settings-page section:has(.open-hours){display:none}.business-hours-page .section-head .primary-button{width:auto}.business-hour-list{gap:10px}.business-hour-row{background:var(--color-panel-soft);border:1px solid #4a2a851a;border-radius:8px;grid-template-columns:90px 110px repeat(2,minmax(120px,160px));align-items:end;gap:10px;padding:10px;display:grid}.business-hour-row strong{color:var(--color-text);align-self:center;font-size:15px;font-weight:880}.special-hour-form{grid-template-columns:minmax(150px,.9fr) 112px repeat(2,minmax(120px,.7fr)) minmax(220px,1.4fr) auto;align-items:end;gap:10px;margin-bottom:14px;display:grid}.special-hour-form .primary-button{white-space:nowrap;width:auto}.special-closed-check{background:var(--color-panel-soft);border:1px solid #4a2a8524;border-radius:8px;min-height:40px;padding:0 10px}.special-hours-table td{vertical-align:middle}.notice-admin-grid{grid-template-columns:minmax(0,1fr) 360px;padding-bottom:88px}.notice-admin-list,.promotion-plan-list{gap:12px;display:grid}.notice-admin-item{background:#fff;border:1px solid #4a2a851f;border-left-width:4px;border-radius:8px;gap:12px;padding:14px;display:grid}.notice-admin-item.normal{border-left-color:var(--brand-primary)}.notice-admin-item.notice{border-left-color:var(--brand-accent)}.notice-admin-item.danger{border-left-color:#a72c33}.notice-admin-item.bank_info{border-left-color:#8a6712}.notice-admin-item-head,.promotion-plan-item-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.promotion-plan-item{border:1px solid #4a2a851f;border-left:4px solid var(--brand-accent);background:#fff;border-radius:8px;gap:12px;padding:14px;display:grid}.promotion-plan-item-head span{color:var(--color-muted);margin-top:4px;font-size:13px;font-weight:700;display:block}.notice-admin-fields{grid-template-columns:minmax(180px,1.2fr) minmax(140px,.8fr) 96px 96px 126px;align-items:end;gap:10px;display:grid}.promotion-admin-fields{grid-template-columns:repeat(4,minmax(128px,1fr));align-items:end;gap:10px;display:grid}.notice-content-field,.wide-field{grid-column:1/-1}.field-label{color:var(--color-muted);margin-bottom:6px;font-size:13px;font-weight:760;display:block}.weekday-checkbox-grid{background:var(--color-panel-soft);border:1px solid #4a2a851f;border-radius:8px;grid-template-columns:repeat(7,minmax(74px,1fr));gap:8px;padding:12px;display:grid}.admin-side .promotion-admin-fields{grid-template-columns:1fr}.notice-toggle{background:var(--color-panel-soft);border:1px solid #4a2a8524;border-radius:8px;justify-content:flex-start;align-self:end;min-height:40px;padding:0 10px}.settings-band{grid-template-columns:repeat(3,minmax(0,1fr));padding:16px}.settings-page section{padding:16px}.rules-grid{gap:8px;display:grid}.rule-row{grid-template-columns:70px 130px 130px 100px;align-items:center;gap:10px;display:grid}.check-label{align-items:center;gap:8px;display:inline-flex}.check-label input{width:18px;min-height:18px}.rules-table input,.rules-table select{min-width:112px}.sticky-actions{background:#fffffff0;border:1px solid #4a2a851f;border-radius:8px;justify-content:flex-end;align-items:center;gap:14px;padding:12px;display:flex;position:sticky;bottom:12px;box-shadow:0 12px 36px #4a2a8524}.sticky-actions .primary-button{width:auto}.notice-save-dock{z-index:30;background:#fffffff5;border:1px solid #4a2a8524;border-radius:8px;justify-content:flex-end;align-items:center;gap:10px;max-width:min(640px,100% - 32px);padding:12px;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 16px 44px #4a2a852e}.notice-save-dock .primary-button,.notice-save-dock .secondary-button{white-space:nowrap;width:auto;min-width:112px}.notice-save-dock-status{color:#76540e;white-space:nowrap;font-size:14px;font-weight:820}.notice-save-dock-status.error{color:#8d242b}.backup-admin-grid{grid-template-columns:minmax(0,1fr) 340px}.backup-status-grid,.backup-retention-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.backup-retention-list{grid-template-columns:1fr}.backup-status-grid>div,.backup-retention-list>div,.backup-file-row,.backup-log-meta{background:var(--color-panel-soft);border:1px solid #4a2a851f;border-radius:8px;min-width:0;padding:12px}.backup-status-grid span,.backup-retention-list span,.backup-file-row span,.backup-log-meta span{color:var(--color-muted);font-size:12px;font-weight:780;display:block}.backup-status-grid strong,.backup-retention-list strong,.backup-file-row strong,.backup-log-meta strong{color:var(--color-text);overflow-wrap:anywhere;margin-top:5px;font-size:16px;font-weight:860;display:block}.backup-file-row{grid-template-columns:24px minmax(0,1fr);align-items:center;gap:10px;margin-top:12px;display:grid}.backup-actions{margin-top:14px}.backup-actions .primary-button,.backup-actions .secondary-button{width:auto}.backup-log-meta{margin-top:12px}.backup-restore-panel{border-top:1px solid #4a2a851f;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;margin-top:14px;padding-top:14px;display:grid}.backup-restore-panel .backup-log-meta{grid-column:1/-1;margin-top:0}.field-block{min-width:0}.field-block label{margin-bottom:6px;display:block}.backup-restore-panel .secondary-button{width:auto}.admin-backup-alert{justify-content:space-between;align-items:center;gap:12px;display:flex}.admin-backup-alert div{min-width:0}.admin-backup-alert strong,.admin-backup-alert span{display:block}.admin-backup-alert span{overflow-wrap:anywhere;margin-top:4px}.admin-backup-alert .secondary-button{white-space:nowrap;width:auto}@media (width<=1500px){.admin-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-week-overview-page.has-detail{grid-template-columns:1fr}.quick-booking-form{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=1120px){.booking-layout,.admin-grid,.recurring-layout{grid-template-columns:1fr}.side-panel{position:static}}@media (width<=720px){html,body{max-width:100%;overflow-x:hidden}.app-shell{width:min(100% - 20px,1480px);max-width:100%;padding-top:6px;padding-bottom:calc(88px + env(safe-area-inset-bottom,0px));overflow-x:hidden}.booking-layout,.booking-main,.slot-picker,.mobile-slot-list{min-width:0;max-width:100%;overflow-x:hidden}.booking-main,.side-panel{padding:14px}.order-panel{padding-bottom:calc(18px + env(safe-area-inset-bottom,0px))}.order-panel.is-empty .panel-title{margin-bottom:8px}.topbar,.section-head{flex-direction:column;align-items:flex-start}.public-topbar{gap:5px;margin-bottom:8px;padding:2px 0 5px}.public-topbar h1{font-size:22px;line-height:1.05}.admin-nav{width:100%;overflow:auto}.topbar-actions{justify-content:flex-start;width:100%}.public-topbar .topbar-actions{flex-wrap:nowrap;gap:5px}.public-topbar .member-chip,.public-topbar .icon-link,.public-topbar .line-login-button{gap:5px;min-height:32px;padding:0 9px;font-size:13px}.public-topbar .member-chip img{width:22px;height:22px}.public-topbar .member-menu-button{width:34px;min-width:34px;padding:0}.public-topbar .member-menu-panel{min-width:168px;right:-2px}.public-day-tabs{margin-inline:-4px;scroll-snap-type:x proximity;scrollbar-width:none;-webkit-overflow-scrolling:touch;grid-template-columns:none;gap:6px;margin-bottom:10px;padding:0 4px 4px;display:flex;overflow:auto hidden}.public-day-tabs::-webkit-scrollbar{display:none}.public-day-tabs button{scroll-snap-align:center;flex:0 0 66px;min-height:48px;padding:4px 2px}.public-day-tabs span{font-size:11px}.public-day-tabs strong{margin-top:1px;font-size:14px}.week-tab-strip{flex-wrap:nowrap;margin-inline:-2px}.week-tab{flex-basis:92px}.admin-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-week-grid-wrap{max-height:none}.admin-week-grid{grid-template-columns:68px repeat(var(--day-count), minmax(180px, 1fr));min-width:calc(68px + (var(--day-count) * 180px))}.admin-day-table-grid,.detail-status-controls,.quick-booking-form,.admin-create-booking-page .admin-create-form{grid-template-columns:1fr}.admin-court-cell,.admin-court-day-grid{min-height:82px}.admin-overview-slot{height:72px}.admin-day-head{flex-direction:column;align-items:flex-start}.admin-overview-table th{min-width:108px}.admin-overview-slot{min-width:104px}.slot-picker.has-mobile-cards .table-wrap{display:none}.slot-picker.has-mobile-cards .mobile-slot-list{gap:6px;display:grid}.member-waitlist-table-wrap{display:none}.member-waitlist-cards{gap:10px;min-width:0;display:grid}.member-waitlist-card dl{grid-template-columns:1fr 1fr}.member-waitlist-card dl>div:last-child{grid-column:1/-1}.member-waitlist-actions{grid-template-columns:1fr;display:grid}.member-waitlist-actions .primary-button,.member-waitlist-actions .secondary-button{width:100%;min-width:0}.waitlist-confirm-dialog{align-self:end;max-height:calc(100vh - 24px);overflow:auto}.waitlist-confirm-dialog .row-actions{grid-template-columns:1fr;display:grid}.waitlist-confirm-dialog .row-actions .primary-button,.waitlist-confirm-dialog .row-actions .secondary-button{width:100%;min-width:0}.mobile-time-card{gap:4px;padding:6px}.mobile-time-card h3{font-size:14px;line-height:1.05}.mobile-court-list{gap:4px}.mobile-slot-button{gap:2px;height:48px;min-height:46px;max-height:52px;padding:4px 3px}.mobile-court-name{font-size:12px;line-height:1.1}.mobile-slot-state{text-overflow:clip;white-space:normal;font-size:11px;line-height:1.15;overflow:visible}.mobile-slot-selected-label{color:#fff;white-space:nowrap;width:100%;font-size:10px;font-weight:900;line-height:1}.settings-band,.two-cols,.three-cols,.notice-admin-fields,.promotion-admin-fields,.business-hour-row,.special-hour-form,.backup-status-grid,.weekday-checkbox-grid{grid-template-columns:1fr}.rule-row{grid-template-columns:1fr 1fr}.notice-save-dock{flex-wrap:wrap;max-width:none;bottom:10px;left:10px;right:10px}.notice-save-dock .primary-button,.notice-save-dock .secondary-button{flex:140px}.admin-backup-alert{flex-direction:column;align-items:stretch}.admin-backup-alert .secondary-button{width:100%}.backup-restore-panel{grid-template-columns:1fr}.backup-restore-panel .secondary-button{width:100%}}body{background-color:var(--color-page);color:var(--color-text);background-image:linear-gradient(#f3eeffe6,#f8f7fcf5),url(https://images.unsplash.com/photo-1626224583764-f87db24ac4ea?auto=format&fit=crop&w=1800&q=80);background-size:cover;background-attachment:fixed}a{color:var(--color-link)}.topbar h1,.section-head h2,.panel-title h2,.login-card h1,.mobile-time-card h3,.admin-day-head strong,.admin-stat-grid strong,.admin-court-cell,.admin-day-table-head strong,.admin-booking-detail dd,.business-hour-row strong,.backup-status-grid strong,.backup-retention-list strong,.backup-file-row strong,.backup-log-meta strong{color:var(--color-heading)}.eyebrow,.slot-table th,.slot-table th:first-child,.time-cell,.orders-table th,.rules-table th,.orders-table td span,.muted,.selected-item span,.admin-overview-slot span,.admin-stat-grid span,.admin-stat-grid em,.admin-day-head span,.admin-day-head em,.search-result-summary,.admin-overview-legend,.admin-day-table-head span,.admin-day-table-head em,.admin-day-table th,.admin-time-cell span,.admin-day-empty,.detail-status-controls label,.admin-booking-detail dt,.detail-lines,.summary-grid span,.request-meta span,.promotion-plan-item-head span,.field-label,label,.backup-status-grid span,.backup-retention-list span,.backup-file-row span,.backup-log-meta span{color:var(--color-muted)}.booking-main,.side-panel,.login-card,.settings-band,.settings-page section,.mobile-time-card,.admin-overview-panel,.admin-week-search-panel,.overview-batch-toolbar,.search-results-wrap,.admin-week-grid-wrap,.admin-day-table-card,.notice-admin-item,.promotion-plan-item,.sticky-actions,.notice-save-dock,.backup-status-grid>div,.backup-retention-list>div,.backup-file-row,.backup-log-meta{border-color:var(--brand-border);box-shadow:var(--shadow-panel);background:#fffffff5}.admin-stat-grid>div,.booking-rule-check,.customer-edit-form,.court-checkbox-grid,.summary-grid div,.business-hour-row,.weekday-checkbox-grid,.notice-toggle,.special-closed-check{background:var(--color-panel-soft);border-color:var(--brand-border)}.icon-button,.icon-link,.secondary-button,.primary-button,.admin-nav button,.member-chip,.day-tabs button,.member-order-tabs button,.week-tab,input,select,textarea,.inline-status-select,.search-input-wrap,.recurring-check{border-color:var(--brand-border);background:var(--color-panel);color:var(--color-text)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline-offset:2px;border-color:var(--color-focus);outline:3px solid #8b5cf657}.primary-button,.day-tabs button.active,.member-order-tabs button.active,.icon-link.active{border-color:var(--brand-primary);background:var(--brand-primary);color:#fff;box-shadow:var(--shadow-brand)}.primary-button:hover,.day-tabs button.active:hover,.member-order-tabs button.active:hover,.icon-link.active:hover{border-color:var(--brand-primary-dark);background:var(--brand-primary-dark)}.secondary-button,.admin-nav button.active,.week-tab.active,.secondary-button:hover,.icon-button:hover,.icon-link:hover,.day-tabs button:hover,.member-order-tabs button:hover,.week-tab:hover{border-color:var(--brand-accent);background:var(--brand-primary-light);color:var(--brand-primary-dark)}.danger,.icon-button.danger{color:var(--color-danger)}.line-login-button{color:#fff;background:#06c755;border-color:#05b34d}.app-shell.admin-shell{grid-template-columns:248px minmax(0,1fr);align-items:start;gap:16px;display:grid}.admin-shell .topbar{display:contents}.admin-shell .topbar>div:first-child{grid-column:1/-1;padding:12px 0 2px}.admin-shell>:not(.topbar){grid-column:2;min-width:0}.admin-shell .admin-nav{background:var(--brand-primary-dark);max-height:calc(100vh - 100px);box-shadow:var(--shadow-panel);border:1px solid #ffffff29;border-radius:8px;flex-direction:column;grid-column:1;align-items:stretch;padding:10px;position:sticky;top:12px;overflow:auto}.admin-shell .admin-nav button,.admin-shell .admin-nav .icon-link{color:#fff;width:100%;box-shadow:none;background:0 0;border-color:#ffffff29;justify-content:flex-start}.admin-shell .admin-nav button:hover,.admin-shell .admin-nav .icon-link:hover{color:#fff;background:#ffffff1f;border-color:#ffffffb8}.admin-shell .admin-nav button.active{border-color:var(--brand-accent);background:var(--brand-primary);color:#fff}.slot-table th,.slot-table td,.orders-table th,.orders-table td,.rules-table th,.rules-table td,.admin-corner-cell,.admin-day-column-head,.admin-court-cell,.admin-court-day-grid,.admin-day-table th,.admin-day-table td,.selected-item,.admin-booking-detail{border-color:var(--brand-border)}.orders-table tbody tr:hover,.selected-row{background:var(--brand-primary-light)}.source-badge,.status.confirmed,.status.pending_payment,.status.held,.status.request-pending,.status.request-approved,.status.request-partially_approved{background:var(--brand-primary-light);color:var(--brand-primary-dark)}.booking-notice-section.normal,.notice-admin-item.normal{border-left-color:var(--brand-primary)}.booking-notice-section.notice,.notice-admin-item.notice,.promotion-plan-item{border-left-color:var(--brand-accent)}.notice{background:var(--brand-primary-light);color:var(--brand-primary-dark);border-color:#d8ccfa}.notice.error,.status.cancelled,.status.expired,.status.no_show,.status.request-rejected,.status.request-cancelled{color:var(--color-danger);background:#fff1f2}.notice.warning,.deadline-text,.notice-save-dock-status{color:var(--color-warning)}.week-tab.active{border-color:var(--brand-primary);background:var(--brand-primary);color:#fff;box-shadow:var(--shadow-brand)}.week-tab em{background:var(--brand-primary-light);color:var(--brand-primary-dark)}.slot-button,.mobile-slot-button,.admin-overview-slot,.admin-overview-slot.empty-slot{border-color:var(--brand-border);background:var(--slot-available-bg);color:var(--slot-available-text)}.slot-button span,.mobile-slot-state,.admin-overview-slot span,.admin-overview-slot em{color:var(--color-muted)}.slot-button.selected,.mobile-slot-button.selected,.admin-overview-slot.selected,.admin-overview-slot.empty-slot.selected,.admin-overview-slot.batch-selected{border-color:var(--brand-primary-dark);background:var(--slot-selected-bg);color:var(--slot-selected-text);box-shadow:inset 0 0 0 2px var(--brand-primary-dark)}.slot-button.selected span,.mobile-slot-button.selected .mobile-slot-state,.admin-overview-slot.selected span,.admin-overview-slot.selected em,.admin-overview-slot.batch-selected span,.admin-overview-slot.batch-selected em{color:var(--slot-selected-text)}.admin-overview-slot.batch-selected:after{background:var(--brand-primary-dark);color:#fff}.admin-overview-slot.unpaid,.slot-button.unpaid,.mobile-slot-button.unpaid,.slot-button.reserved,.mobile-slot-button.reserved{background:var(--slot-reserved-bg);color:var(--slot-reserved-text);border-color:#c4b5fd}.admin-overview-slot.unpaid span,.slot-button.unpaid span,.mobile-slot-button.unpaid .mobile-slot-state,.slot-button.reserved span,.mobile-slot-button.reserved .mobile-slot-state{color:var(--slot-reserved-text)}.admin-overview-slot.paid,.slot-button.paid,.mobile-slot-button.paid{border-color:var(--brand-primary-dark);background:var(--slot-paid-bg);color:var(--slot-paid-text)}.admin-overview-slot.paid span,.admin-overview-slot.paid em,.slot-button.paid span,.mobile-slot-button.paid .mobile-slot-state{color:var(--slot-paid-text)}.admin-overview-slot.promotion,.slot-button.promotion,.mobile-slot-button.promotion{border-color:var(--brand-accent);background:var(--brand-primary-light);color:var(--brand-primary-dark)}.admin-overview-slot.promotion span,.slot-button.promotion span,.mobile-slot-button.promotion .mobile-slot-state{color:var(--brand-primary-dark)}.admin-overview-slot.past,.admin-overview-slot.closed,.slot-button.past,.slot-button.closed,.mobile-slot-button.past,.mobile-slot-button.closed,.admin-day-table .admin-overview-slot.closed,.admin-day-table .admin-overview-slot.past{background:var(--slot-past-bg);color:var(--slot-past-text);border-color:#d1d5db}.admin-overview-slot.past span,.admin-overview-slot.closed span,.admin-overview-slot.past em,.admin-overview-slot.closed em,.slot-button.past span,.slot-button.closed span,.mobile-slot-button.past .mobile-slot-state,.mobile-slot-button.closed .mobile-slot-state{color:var(--slot-past-text)}.admin-overview-slot.empty-slot:hover,.admin-day-table .admin-overview-slot.search-match{border-color:var(--brand-accent);background:var(--brand-primary-light);box-shadow:inset 0 0 0 2px var(--brand-accent)}.admin-overview-legend .legend-paid{border-color:var(--brand-primary-dark);background:var(--brand-primary-dark)}.admin-overview-legend .legend-unpaid{background:var(--brand-primary-light);border-color:#c4b5fd}.admin-overview-legend .legend-promotion{border-color:var(--brand-accent);background:var(--brand-primary-light)}.admin-overview-legend .legend-empty{border-color:var(--brand-border);background:#fff}mark{color:var(--brand-primary-dark);background:#ede9fe}@media (width<=960px){.app-shell.admin-shell{display:block}.admin-shell .topbar{display:flex}.admin-shell .topbar>div:first-child{padding:0}.admin-shell .admin-nav{flex-direction:row;align-items:center;width:100%;max-height:none;margin-top:12px;position:static;overflow:auto}.admin-shell .admin-nav button,.admin-shell .admin-nav .icon-link{flex:none;width:auto}}.public-topbar+.booking-layout .slot-button.reserved,.public-topbar+.booking-layout .mobile-slot-button.reserved{color:#fff;background:#4b5563;border-color:#374151}.public-topbar+.booking-layout .slot-button.reserved span,.public-topbar+.booking-layout .mobile-slot-button.reserved .mobile-court-name,.public-topbar+.booking-layout .mobile-slot-button.reserved .mobile-slot-state{color:#fff}.public-topbar+.booking-layout .slot-button.available:not(.selected):not(.promotion),.public-topbar+.booking-layout .mobile-slot-button.available:not(.selected):not(.promotion){color:#5b21b6;background:#fff;border-color:#8b5cf6}.public-topbar+.booking-layout .slot-button.available:not(.selected):not(.promotion) span,.public-topbar+.booking-layout .mobile-slot-button.available:not(.selected):not(.promotion) .mobile-slot-state{color:#6d28d9}.public-topbar+.booking-layout .slot-button.selected,.public-topbar+.booking-layout .mobile-slot-button.selected{color:#fff;background:#6d28d9;border-color:#5b21b6;box-shadow:inset 0 0 0 2px #fff3,0 3px 8px #4a2a852e}.public-topbar+.booking-layout .slot-button.selected strong,.public-topbar+.booking-layout .slot-button.selected span,.public-topbar+.booking-layout .mobile-slot-button.selected .mobile-slot-selected-label,.public-topbar+.booking-layout .mobile-slot-button.selected .mobile-court-name,.public-topbar+.booking-layout .mobile-slot-button.selected .mobile-slot-state{color:#fff}.admin-shell{color:var(--color-text)}.admin-shell .topbar h1{color:var(--color-heading);font-weight:700}.admin-shell .section-head h2,.admin-shell .panel-title h2,.admin-shell .admin-day-head strong,.admin-shell .admin-day-table-head strong,.admin-shell .business-hour-row strong{color:var(--color-heading);font-weight:600}.admin-shell .eyebrow,.admin-shell label,.admin-shell .muted,.admin-shell .selected-item span,.admin-shell .orders-table td span,.admin-shell .admin-stat-grid em,.admin-shell .admin-day-head span,.admin-shell .admin-day-head em,.admin-shell .admin-day-table-head span,.admin-shell .admin-day-table-head em,.admin-shell .admin-time-cell span,.admin-shell .admin-overview-legend,.admin-shell .detail-lines,.admin-shell .field-label{color:var(--color-subtle);font-weight:400}.admin-shell .orders-table td,.admin-shell .rules-table td,.admin-shell .admin-day-table td,.admin-shell .slot-table td{color:var(--color-text);font-weight:500}.admin-shell .orders-table th,.admin-shell .rules-table th,.admin-shell .admin-day-table th,.admin-shell .slot-table th,.admin-shell .time-cell,.admin-shell .admin-time-cell,.admin-shell .admin-court-row-cell,.admin-shell .admin-corner-cell,.admin-shell .admin-day-column-head strong{color:var(--color-muted);font-weight:600}.admin-shell .booking-main,.admin-shell .side-panel,.admin-shell .login-card,.admin-shell .settings-band,.admin-shell .settings-page section,.admin-shell .mobile-time-card,.admin-shell .admin-overview-panel,.admin-shell .admin-week-search-panel,.admin-shell .overview-batch-toolbar,.admin-shell .search-results-wrap,.admin-shell .admin-week-grid-wrap,.admin-shell .admin-day-table-card,.admin-shell .notice-admin-item,.admin-shell .promotion-plan-item,.admin-shell .sticky-actions,.admin-shell .notice-save-dock,.admin-shell .admin-stat-grid>div,.admin-shell .summary-grid div,.admin-shell .business-hour-row,.admin-shell .backup-status-grid>div,.admin-shell .backup-retention-list>div,.admin-shell .backup-file-row,.admin-shell .backup-log-meta{background:#fffffff7;border-color:#e5e7eb;box-shadow:0 10px 28px #1f293714}.admin-shell .admin-nav{background:#fff;border-color:#e5e7eb;box-shadow:0 10px 28px #1f293714}.admin-shell .admin-nav button,.admin-shell .admin-nav .icon-link{color:var(--color-text);background:#fff;border-color:#e5e7eb;font-weight:600}.admin-shell .admin-nav button:hover,.admin-shell .admin-nav .icon-link:hover,.admin-shell .secondary-button:hover,.admin-shell .icon-button:hover,.admin-shell .icon-link:hover,.admin-shell .week-tab:hover,.admin-shell .day-tabs button:hover{color:var(--color-text);background:#f9fafb;border-color:#d1d5db}.admin-shell .admin-nav button.active,.admin-shell .week-tab.active,.admin-shell .day-tabs button.active,.admin-shell .member-order-tabs button.active,.admin-shell .icon-link.active,.admin-shell .primary-button{border-color:var(--brand-primary);background:var(--brand-primary);color:#fff;box-shadow:var(--shadow-brand)}.admin-shell .secondary-button,.admin-shell .icon-button,.admin-shell .icon-link,.admin-shell .week-tab,.admin-shell input,.admin-shell select,.admin-shell textarea,.admin-shell .inline-status-select,.admin-shell .search-input-wrap{color:var(--color-text);background:#fff;border-color:#e5e7eb}.admin-shell .secondary-button,.admin-shell .icon-button,.admin-shell .icon-link,.admin-shell .admin-nav button,.admin-shell .week-tab,.admin-shell .primary-button{font-weight:600}.admin-shell .slot-table th,.admin-shell .slot-table td,.admin-shell .orders-table th,.admin-shell .orders-table td,.admin-shell .rules-table th,.admin-shell .rules-table td,.admin-shell .admin-corner-cell,.admin-shell .admin-day-column-head,.admin-shell .admin-court-cell,.admin-shell .admin-court-day-grid,.admin-shell .admin-day-table th,.admin-shell .admin-day-table td,.admin-shell .selected-item,.admin-shell .admin-booking-detail{border-color:#e5e7eb}.admin-shell .admin-court-day-grid{background:linear-gradient(90deg,#e5e7ebbf 1px,#0000 1px),#fff;background-size:calc(100% / var(--slot-count)) 100%}.admin-shell .orders-table tbody tr:hover,.admin-shell .selected-row{background:#f9fafb}.admin-shell .status{border:1px solid #0000;font-weight:600}.admin-shell .status.confirmed,.admin-shell .status.completed,.admin-shell .status.paid,.admin-shell .status.request-approved,.admin-shell .status.request-partially_approved{color:#166534;background:#dcfce7}.admin-shell .status.pending,.admin-shell .status.pending_payment,.admin-shell .status.held,.admin-shell .status.request-pending{color:#9a3412;background:#ffedd5}.admin-shell .status.waiting,.admin-shell .status.notified{color:#1d4ed8;background:#dbeafe}.admin-shell .status.cancelled,.admin-shell .status.expired,.admin-shell .status.no_show,.admin-shell .status.request-rejected,.admin-shell .status.request-cancelled{color:#9f1239;background:#ffe4e6}.admin-shell .admin-overview-slot,.admin-shell .admin-overview-slot.empty-slot,.admin-shell .admin-overview-slot.paid,.admin-shell .admin-overview-slot.unpaid,.admin-shell .admin-overview-slot.reserved,.admin-shell .admin-overview-slot.booked{color:var(--color-text);background:#fff;border-color:#e5e7eb;box-shadow:0 1px 2px #1f293714}.admin-shell .admin-overview-slot.booked{align-content:start;gap:3px}.admin-shell .admin-overview-slot.booked strong{color:var(--color-text);font-weight:600}.admin-shell .admin-overview-slot.booked span,.admin-shell .admin-overview-slot.booked em{width:fit-content;max-width:100%;min-height:16px;color:var(--color-muted);background:#f3f4f6;border-radius:999px;align-items:center;margin:0;padding:1px 5px;font-size:10px;font-style:normal;font-weight:600;line-height:1.25;display:inline-flex}.admin-shell .admin-overview-slot.payment-paid em,.admin-shell .admin-overview-slot.booking-completed span{color:#166534;background:#dcfce7}.admin-shell .admin-overview-slot.payment-pending em,.admin-shell .admin-overview-slot.payment-unpaid em{color:#9a3412;background:#ffedd5}.admin-shell .admin-overview-slot.booking-cancelled span,.admin-shell .admin-overview-slot.payment-refunded em,.admin-shell .admin-overview-slot.cancelled span,.admin-shell .admin-overview-slot.cancelled em{color:#9f1239;background:#ffe4e6}.admin-shell .admin-overview-slot.waitlistable,.admin-shell .slot-button.waitlistable,.admin-shell .mobile-slot-button.waitlistable{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.admin-shell .admin-overview-slot.selected,.admin-shell .admin-overview-slot.empty-slot.selected,.admin-shell .admin-overview-slot.batch-selected{border-color:var(--brand-primary);background:var(--brand-primary);color:#fff;box-shadow:inset 0 0 0 2px #ffffff38, var(--shadow-brand)}.admin-shell .admin-overview-slot.selected strong,.admin-shell .admin-overview-slot.selected span,.admin-shell .admin-overview-slot.selected em,.admin-shell .admin-overview-slot.batch-selected strong,.admin-shell .admin-overview-slot.batch-selected span,.admin-shell .admin-overview-slot.batch-selected em{color:#fff;background:#ffffff2e}.admin-shell .admin-overview-slot.selected strong,.admin-shell .admin-overview-slot.batch-selected strong{background:0 0}.admin-shell .admin-overview-slot.empty-slot:hover{background:#f9fafb;border-color:#d1d5db;box-shadow:0 1px 2px #1f293714}.admin-shell .admin-day-table .admin-overview-slot.search-match{background:#fffbeb;border-color:#f59e0b;box-shadow:inset 0 0 0 2px #f59e0b59}.admin-shell .admin-overview-legend .legend-paid{background:#dcfce7;border-color:#166534}.admin-shell .admin-overview-legend .legend-unpaid{background:#ffedd5;border-color:#9a3412}.admin-shell .admin-overview-legend .legend-promotion{background:#f3f4f6;border-color:#d1d5db}.admin-shell .admin-overview-legend .legend-empty{background:#fff;border-color:#e5e7eb}.admin-shell,.admin-shell button,.admin-shell input,.admin-shell select,.admin-shell textarea{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-family:Inter,Noto Sans TC,Microsoft JhengHei,sans-serif}.admin-shell .admin-day-table{min-width:calc(64px + (var(--time-count,12) * 112px))}.admin-shell .admin-day-table th:first-child,.admin-shell .admin-time-cell,.admin-shell .admin-court-row-cell{width:64px;min-width:64px}.admin-shell .admin-day-table th:not(:first-child){min-width:112px}.admin-shell .admin-day-table th,.admin-shell .admin-day-table td{padding:5px}.admin-shell .admin-day-table .admin-overview-slot-wrap,.admin-shell .admin-day-table .admin-overview-slot{height:68px;min-height:68px}.admin-shell .admin-day-table .admin-overview-slot{color:#1f2937;text-align:left;background:#fff;border:1px solid #e5e7eb;border-radius:6px;flex-direction:column;justify-content:center;align-items:stretch;gap:6px;min-width:0;padding:7px 8px;font-size:12px;line-height:1.25;display:flex;box-shadow:0 1px 2px #1f293712}.admin-shell .admin-day-table .admin-overview-slot:disabled{cursor:default;opacity:1}.admin-shell .admin-day-table .admin-overview-slot.booked,.admin-shell .admin-day-table .admin-overview-slot.paid,.admin-shell .admin-day-table .admin-overview-slot.unpaid,.admin-shell .admin-day-table .admin-overview-slot.promotion,.admin-shell .admin-day-table .admin-overview-slot.empty-slot{color:#1f2937;background:#fff;border-color:#e5e7eb}.admin-shell .admin-day-table .admin-overview-slot strong,.admin-shell .admin-day-table .admin-overview-slot span,.admin-shell .admin-day-table .admin-overview-slot em{color:inherit;font-size:inherit}.admin-shell .admin-day-table .admin-slot-customer{color:#1f2937;text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;font-size:13px;font-weight:600;line-height:1.25;display:block;overflow:hidden}.admin-shell .admin-day-table .admin-slot-customer mark{color:#92400e;background:#fef3c7;border-radius:3px}.admin-shell .admin-day-table .admin-slot-badge-row{white-space:nowrap;align-items:center;gap:5px;min-width:0;display:flex;overflow:hidden}.admin-shell .admin-day-table .admin-overview-slot.booked span.admin-slot-badge{text-overflow:ellipsis;white-space:nowrap;border:1px solid #0000;border-radius:999px;flex:0 auto;justify-content:center;align-items:center;min-width:0;max-width:100%;min-height:20px;margin:0;padding:2px 6px;font-size:12px;font-style:normal;font-weight:600;line-height:1.15;display:inline-flex;overflow:hidden}.admin-shell .admin-day-table .admin-slot-badge.booking-badge.reserved,.admin-shell .admin-day-table .admin-slot-badge.booking-badge.confirmed{color:#5b21b6;background:#ede9fe;border-color:#ddd6fe}.admin-shell .admin-day-table .admin-slot-badge.payment-badge.paid,.admin-shell .admin-day-table .admin-slot-badge.booking-badge.completed{color:#166534;background:#dcfce7;border-color:#bbf7d0}.admin-shell .admin-day-table .admin-slot-badge.payment-badge.pending,.admin-shell .admin-day-table .admin-slot-badge.payment-badge.unpaid,.admin-shell .admin-day-table .admin-slot-badge.booking-badge.pending_payment,.admin-shell .admin-day-table .admin-slot-badge.booking-badge.held{color:#9a3412;background:#ffedd5;border-color:#fed7aa}.admin-shell .admin-day-table .admin-slot-badge.booking-badge.waiting,.admin-shell .admin-day-table .admin-slot-badge.booking-badge.notified{color:#1d4ed8;background:#dbeafe;border-color:#bfdbfe}.admin-shell .admin-day-table .admin-slot-badge.booking-badge.cancelled,.admin-shell .admin-day-table .admin-slot-badge.booking-badge.expired,.admin-shell .admin-day-table .admin-slot-badge.booking-badge.no_show,.admin-shell .admin-day-table .admin-slot-badge.payment-badge.refunded{color:#9f1239;background:#ffe4e6;border-color:#fecdd3}.admin-shell .admin-day-table .admin-slot-empty-title{color:#6b7280;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;font-weight:600;line-height:1.25;display:block;overflow:hidden}.admin-shell .admin-day-table .admin-slot-empty-price{color:#9ca3af;text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;font-size:12px;font-weight:500;line-height:1.2;display:block;overflow:hidden}.admin-shell .admin-day-table .admin-overview-slot.closed,.admin-shell .admin-day-table .admin-overview-slot.past{visibility:visible;color:#4b5563;box-shadow:none;background:#e5e7eb;border-color:#d1d5db}.admin-shell .admin-day-table .admin-slot-closed-title{color:#4b5563;font-size:13px;font-weight:600;line-height:1.25}.admin-shell .admin-day-table .admin-slot-closed-reason{color:#6b7280;font-size:12px;font-weight:500;line-height:1.2}.admin-shell .admin-day-table .admin-overview-slot.is-past-slot{opacity:.88}.admin-shell .admin-day-table .admin-overview-slot.selected,.admin-shell .admin-day-table .admin-overview-slot.batch-selected{border-color:var(--brand-primary);background:var(--brand-primary);color:#fff;box-shadow:inset 0 0 0 2px #ffffff38, var(--shadow-brand)}.admin-shell .admin-day-table .admin-overview-slot.selected .admin-slot-customer,.admin-shell .admin-day-table .admin-overview-slot.batch-selected .admin-slot-customer{color:#fff}.admin-shell .admin-day-table .admin-overview-slot.selected span.admin-slot-badge,.admin-shell .admin-day-table .admin-overview-slot.batch-selected span.admin-slot-badge{color:#fff;background:#ffffff2e;border-color:#ffffff47}.admin-shell .status.confirmed{color:#5b21b6;background:#ede9fe}.admin-shell .status.paid,.admin-shell .status.completed{color:#166534;background:#dcfce7}.admin-shell .blacklist-badge,.admin-shell .orders-table td span.blacklist-badge,.admin-shell .admin-day-table .admin-overview-slot.booked span.blacklist-badge{color:#b91c1c;background:#fef2f2;border-color:#b91c1c47;width:fit-content;margin-left:8px;font-size:12px;font-weight:700;display:inline-flex}
