:root{color:#2c2731;font-synthesis:none;--paper:#fffcf5;--white:#fff;--ink:#2c2731;--muted:#716877;--line:#e0d9e3;--purple:#784a99;--purple-dark:#61377f;--purple-soft:#f0e8f6;--lime:#78bb2e;--lime-soft:#eaf4d9;--lime-ink:#375516;--mint:#e0f0ed;--amber-soft:#fff0ce;--amber-ink:#76500c;--red:#a6363a;--red-soft:#ffeded;--radius:12px;background:#fffcf5;font-family:PingFang SC,Microsoft YaHei,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px}*{box-sizing:border-box}body{background:var(--paper);min-width:320px;min-height:100vh;margin:0;line-height:1.5}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:not-allowed;opacity:.48}button svg,a svg{flex-shrink:0}a{color:inherit;text-decoration:none}:is(button,a,input,textarea,select):focus-visible{outline:3px solid var(--purple);outline-offset:3px}input,textarea{width:100%;min-height:48px;color:var(--ink);background:var(--white);border-radius:var(--radius);border:1px solid #bcb0c4;padding:10px 12px;font-size:1rem}input::placeholder,textarea::placeholder{color:var(--muted)}input:focus,textarea:focus{border-color:var(--purple)}input:disabled{background:#f1ecef}textarea{resize:vertical;min-height:110px}label b{color:var(--red)}.prototype-bar{z-index:50;background:var(--purple-soft);border-bottom:1px solid var(--line);position:sticky;top:0}.prototype-inner{align-items:center;gap:16px;max-width:1320px;min-height:48px;margin:0 auto;padding:0 24px;display:flex}.prototype-note{color:#584563;align-items:center;gap:9px;margin-right:auto;font-size:.875rem;display:flex}.prototype-dot{background:var(--purple);border-radius:50%;flex-shrink:0;width:8px;height:8px}.prototype-view{color:var(--purple-dark);white-space:nowrap;font-size:1rem;font-weight:650}.reset-button{min-width:44px;min-height:44px;color:var(--purple-dark);background:0 0;border:0;border-radius:8px;align-items:center;gap:7px;padding:0 10px;font-size:1rem;display:inline-flex}.reset-button:hover{background:#e7d9ef}.brand-logo{flex-shrink:0;width:176px;max-width:100%;height:auto;display:block}.brand-logo-symbol{width:56px}.site-shell{width:min(1240px,100% - 48px);margin:0 auto;padding:12px 0 64px}.member-site{max-width:1120px}.member-topbar,.admin-topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;min-height:92px;display:flex}.member-wordmark,.admin-wordmark,.member-account,.admin-account{align-items:center;display:flex}.member-account,.admin-account{text-align:right;gap:16px}.member-account>div,.admin-account>div{flex-direction:column;display:flex}.member-account strong,.admin-account strong{font-size:1.125rem}.member-account small,.admin-account small{color:var(--muted);font-size:.875rem}.header-logout{width:44px;height:44px;color:var(--purple);border:1px solid var(--line);background:0 0;border-radius:50%;place-items:center;display:grid}.header-logout:hover{background:var(--purple-soft)}.auth-stage{align-content:center;width:min(100% - 36px,460px);min-height:calc(100dvh - 49px);margin:0 auto;padding:56px 0;display:grid}.auth-card{text-align:center;width:100%}.auth-card .brand-logo{width:270px;margin:0 auto 24px}.auth-card h1{letter-spacing:-.035em;margin:0 0 36px;font-size:clamp(2rem,5vw,2.5rem);line-height:1.3}.wechat-button{width:100%;min-height:54px;color:var(--white);background:var(--purple);border-radius:var(--radius);border:0;justify-content:center;align-items:center;gap:10px;padding:12px 16px;font-size:1.125rem;font-weight:650;display:inline-flex}.wechat-button:hover{background:var(--purple-dark)}.binding-card form{text-align:left;gap:20px;display:grid}.binding-card form label,.dialog-field{gap:8px;display:grid}.binding-card form label span,.dialog-field>span,.capacity-input>span{font-size:1rem;font-weight:600}.binding-card>.text-button{margin-top:16px}.demo-credential{text-align:left;color:var(--muted);border-top:1px solid var(--line);flex-direction:column;gap:4px;margin-top:24px;padding:16px 0;font-size:1rem;display:flex}.demo-credential strong{color:var(--ink)}.venue-heading,.admin-page-heading{justify-content:space-between;align-items:end;gap:28px;padding:36px 0 30px;display:flex}.venue-title{align-items:center;gap:16px;display:flex}.venue-title>span{width:56px;height:56px;color:var(--lime-ink);background:var(--lime-soft);border-radius:18px;place-items:center;display:grid}.venue-title p,.admin-page-heading p{color:var(--purple);margin:0 0 4px;font-size:1rem;font-weight:650}.venue-title h1,.admin-page-heading h1{letter-spacing:-.04em;margin:0;font-size:clamp(2rem,4vw,2.75rem);line-height:1.2}.venue-facts{margin:0;display:flex}.venue-facts>div{border-left:1px solid var(--line);min-width:108px;padding:0 18px}.venue-facts dt{color:var(--muted);font-size:.875rem}.venue-facts dd{white-space:nowrap;margin:6px 0 0;font-size:1.125rem;font-weight:650}.booking-layout{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) 336px;align-items:start;gap:48px;padding:30px 0 36px;display:grid}.booking-layout>*,.admin-overview-grid>*,.member-admin-grid>*{min-width:0}.picker-title,.slot-heading h2,.duration-row h2,.bookings-heading h2,.booking-form-heading h2,.admin-block-heading h2{letter-spacing:-.025em;margin:0;font-size:1.375rem;line-height:1.4}.picker-title{margin-bottom:16px}.date-grid{grid-template-columns:repeat(7,minmax(70px,1fr));gap:6px;margin:-4px;padding:4px;display:grid;overflow-x:auto}.date-option{min-height:80px;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:10px 6px;display:flex}.date-option span{font-size:1rem}.date-option strong{font-variant-numeric:tabular-nums;font-size:1.125rem}.date-option:hover:not(.selected){background:var(--purple-soft)}.date-option.selected{color:#fff;background:var(--purple);border-color:var(--purple)}.slot-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin:32px 0 16px;display:flex}.slot-heading span{color:var(--muted);font-size:.875rem}.time-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.time-option{min-height:72px;color:var(--ink);background:var(--white);border-radius:var(--radius);border:1px solid #cbbcd4;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:10px 6px;display:flex}.time-option strong{font-variant-numeric:tabular-nums;font-size:1.125rem}.time-option span{color:var(--muted);font-size:.875rem}.time-option:hover:not(:disabled):not(.selected){border-color:var(--purple);background:var(--purple-soft)}.time-option.selected{color:#fff;background:var(--purple);border-color:var(--purple)}.time-option.selected span{color:#fff}.time-option:disabled{color:#817887;opacity:1;background:#f0ecf0;border-color:#e3dfe5}.time-option:disabled span{color:#817887}.duration-row{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:30px;padding-top:24px;display:flex}.duration-options{gap:6px;display:flex}.duration-option{min-width:70px;min-height:46px;color:var(--ink);background:0 0;border:1px solid #cbbcd4;border-radius:10px;padding:8px 10px;font-size:1rem}.duration-option.selected{color:var(--purple-dark);border:2px solid var(--purple);background:var(--purple-soft);padding:7px 9px;font-weight:650}.selection-summary{border-top:1px solid var(--line);justify-content:space-between;align-items:end;gap:12px;min-height:76px;margin-top:24px;padding:14px 0 0;display:flex}.selection-summary div{flex-direction:column;gap:4px;display:flex}.selection-summary div span{color:var(--muted);font-size:.875rem}.selection-summary strong{font-size:1rem}.summary-remaining{color:var(--lime-ink);background:var(--lime-soft);border-radius:8px;flex-shrink:0;padding:4px 10px;font-size:1rem;font-weight:650}.booking-form-card{border-top:4px solid var(--lime);padding-top:22px;position:sticky;top:76px}.booking-form-heading{flex-direction:column;gap:8px;margin-bottom:20px;display:flex}.booking-form-heading strong{color:var(--purple);font-size:1rem}.booking-form-card form{gap:20px;display:grid}.bound-identity-card{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:60px 1fr;align-items:center;gap:12px;padding:16px 0;display:grid}.bound-identity-card>span{color:var(--muted);font-size:1rem}.bound-identity-card strong{font-size:1.125rem}.bound-identity-card p{color:var(--muted);overflow-wrap:anywhere;margin:4px 0 0;font-size:1rem}.consent-list{gap:10px;display:grid}.consent-check{grid-template-columns:44px minmax(0,1fr);align-items:start;margin-left:-8px;display:grid}.consent-toggle{cursor:pointer;place-items:center;width:44px;min-height:44px;display:grid}.consent-toggle input{width:22px;height:22px;min-height:22px;accent-color:var(--purple);cursor:pointer;margin:0;padding:0}.consent-check>div{flex-wrap:wrap;align-items:center;display:flex}.consent-check>div>label{cursor:pointer;align-items:center;min-height:44px;display:inline-flex}.agreement-link{min-height:44px;color:var(--purple-dark);text-align:left;text-underline-offset:4px;background:0 0;border:0;padding:0;font-size:1rem;text-decoration:underline;text-decoration-thickness:1px}.agreement-access{flex-wrap:wrap;justify-content:center;gap:8px 24px;margin-top:24px;display:flex}.primary-button,.secondary-button,.danger-button,.success-button,.danger-ghost-button,.icon-square-button,.text-button{border-radius:var(--radius);justify-content:center;align-items:center;gap:8px;min-height:44px;padding:10px 14px;font-size:1rem;font-weight:650;line-height:1.4;display:inline-flex}.primary-button{color:#fff;background:var(--purple);border:1px solid var(--purple);min-height:52px}.primary-button:hover:not(:disabled){background:var(--purple-dark)}.secondary-button{color:var(--purple-dark);background:0 0;border:1px solid #bb9fcb}.secondary-button:hover:not(:disabled){background:var(--purple-soft)}.danger-button{color:#fff;background:var(--red);border:1px solid var(--red)}.danger-ghost-button{color:var(--red);background:0 0;border:1px solid #e6b7b9}.danger-ghost-button:hover:not(:disabled){background:var(--red-soft)}.success-button{color:var(--lime-ink);background:var(--lime-soft);border:1px solid var(--lime)}.success-button:hover:not(:disabled){background:#d5edb3}.small-button{padding:9px 10px}.text-button{color:var(--purple);background:0 0;border:0;padding:6px 4px}.icon-square-button{width:46px;color:var(--purple);background:0 0;border:1px solid #bb9fcb;flex-shrink:0;padding:0}.full-button{width:100%}.form-footnote{color:var(--muted);margin:12px 0 0;font-size:.875rem}.my-bookings{padding-top:32px}.bookings-heading{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.bookings-heading span{color:var(--muted);font-size:1rem}.reservation-list{border-top:1px solid var(--line)}.reservation-card{border-bottom:1px solid var(--line);grid-template-columns:70px minmax(0,1fr) auto;align-items:center;gap:20px;min-height:108px;padding:20px 0;display:grid}.reservation-date{min-height:70px;color:var(--purple-dark);background:var(--purple-soft);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;display:flex}.reservation-date small{font-size:.75rem}.reservation-date strong{font-size:1.75rem;line-height:1.2}.reservation-main>div{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.reservation-main>div>strong{font-size:1.125rem}.reservation-main p{color:var(--muted);margin:6px 0 0;font-size:1rem}.reservation-main>small{color:var(--red);overflow-wrap:anywhere;margin-top:6px;font-size:.875rem;display:block}.reservation-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}#my-bookings-title{scroll-margin-top:76px}#my-bookings-title:focus{outline:none}.action-hint{color:var(--muted);font-size:.875rem}.empty-state{color:var(--muted);padding:28px 0;font-size:1rem}.status-badge,.member-status{white-space:nowrap;border-radius:8px;width:fit-content;padding:5px 10px;font-size:.875rem;font-weight:650}.status-booked{color:var(--purple-dark);background:var(--purple-soft)}.status-arrived,.member-active{color:#28574e;background:var(--mint)}.status-canceled,.member-disabled{color:#655a66;background:#ece7ed}.admin-section-tabs{border-bottom:1px solid var(--line);gap:28px;width:100%;margin:0;display:flex}.admin-section-tabs button{min-height:56px;color:var(--muted);background:0 0;border:0;padding:0 4px;font-size:1.125rem;font-weight:650}.admin-section-tabs button.active{color:var(--purple);box-shadow:inset 0 -4px var(--purple)}.date-control-panel{border-bottom:1px solid var(--line);padding:26px 0}.admin-block-heading{justify-content:space-between;align-items:center;gap:16px;min-height:34px;margin-bottom:16px;display:flex}.admin-block-heading>strong{color:var(--muted);font-size:1rem}.admin-date-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.admin-date-controls input{width:182px}.admin-date-controls>strong{margin-left:12px;font-size:1.125rem}.readonly-pill{color:var(--amber-ink);background:var(--amber-soft);border-radius:8px;padding:6px 10px;font-size:.875rem}.admin-overview-grid{border-bottom:1px solid var(--line);grid-template-columns:246px minmax(0,1fr);align-items:start;gap:36px;padding:32px 0 36px;display:grid}.capacity-metrics{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;margin-bottom:24px;display:grid}.capacity-metrics article{flex-direction:column;gap:8px;min-height:108px;padding:16px 0;display:flex}.capacity-metrics article+article{border-left:1px solid var(--line);padding-left:18px}.capacity-metrics span{color:var(--muted);font-size:.875rem}.capacity-metrics strong{color:var(--purple);font-size:2rem;line-height:1}.capacity-input{gap:8px;margin-bottom:16px;display:grid}.capacity-input>div{position:relative}.capacity-input input{padding-right:44px}.capacity-input em{color:var(--muted);font-size:1rem;font-style:normal;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.records-heading{flex-wrap:wrap}.records-title{align-items:baseline;gap:10px;display:flex}.records-title>span{color:var(--muted);font-size:1rem}.admin-table-scroll,.member-table-scroll{overflow-x:auto}.admin-record-table{min-width:820px}.admin-record-head,.admin-record-row{grid-template-columns:1.05fr 1.25fr 1.05fr .8fr 1.35fr;align-items:center;gap:14px;display:grid}.admin-record-head{min-height:48px;color:var(--muted);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:0 10px;font-size:.875rem}.admin-record-row{border-bottom:1px solid var(--line);min-height:110px;padding:16px 10px}.admin-record-row>div{flex-direction:column;align-items:flex-start;gap:6px;min-width:0;display:flex}.admin-record-row strong{overflow-wrap:anywhere;font-size:1rem}.admin-record-row small{color:var(--muted);overflow-wrap:anywhere;font-size:.8125rem;line-height:1.5}.admin-record-row .row-actions{flex-flow:wrap;gap:10px}.row-actions button{flex-shrink:0}.mobile-field-label{display:none}.privacy-notice{color:var(--muted);align-items:center;gap:10px;padding:16px 0;font-size:.875rem;display:flex}.privacy-notice svg{flex-shrink:0}.member-admin-grid{grid-template-columns:290px minmax(0,1fr);align-items:start;gap:40px;padding-top:32px;display:grid}.member-upload-zone{min-height:176px;color:var(--purple);border-radius:var(--radius);cursor:pointer;text-align:center;background:#faf5fd;border:1px dashed #b394c5;flex-direction:column;justify-content:center;align-items:center;gap:10px;margin:16px 0;padding:20px;display:flex;position:relative}.member-upload-zone:hover{background:var(--purple-soft)}.member-upload-zone:focus-within{outline:3px solid var(--purple);outline-offset:3px}.member-upload-zone input{opacity:0;width:1px;height:1px;min-height:1px;position:absolute}.member-upload-zone strong{font-size:1rem}.member-upload-zone span{color:var(--muted);font-size:.875rem}.inline-error,.inline-success{border-radius:var(--radius);margin:12px 0;padding:12px;font-size:1rem}.inline-error,.import-issues{color:var(--red);background:var(--red-soft)}.inline-success{color:var(--lime-ink);background:var(--lime-soft);align-items:center;gap:8px;display:flex}.member-import-preview{border-top:1px solid var(--line);margin-top:16px;padding-top:16px}.import-counts{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.import-counts span{text-align:center;color:var(--muted);background:var(--amber-soft);border-radius:8px;padding:10px 6px;font-size:.875rem}.import-counts strong{color:var(--amber-ink);font-size:1.25rem;display:block}.import-issues{border-radius:var(--radius);padding:12px}.import-issues p{margin:4px 0;font-size:1rem}.preview-ready{color:var(--lime-ink);margin:16px 0;font-size:1rem}.member-metrics{flex-wrap:wrap;gap:8px 22px;margin-bottom:16px;display:flex}.member-metrics span{color:var(--muted);padding:12px 0;font-size:1rem}.member-metrics strong{color:var(--purple);font-size:1.25rem}.member-table{min-width:710px}.member-table-head,.member-table-row{grid-template-columns:1fr .85fr 1.2fr .65fr 1.3fr;align-items:center;gap:16px;display:grid}.member-table-head{min-height:48px;color:var(--muted);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:0 12px;font-size:.875rem}.member-table-row{border-bottom:1px solid var(--line);min-height:72px;padding:14px 12px;font-size:1rem}.member-table-row>*{overflow-wrap:anywhere}.dialog-backdrop{z-index:100;background:#281c3073;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.dialog-panel{text-align:left;background:var(--paper);border-radius:20px;flex-direction:column;width:min(480px,100%);max-height:calc(100dvh - 48px);display:flex;overflow:hidden;box-shadow:0 20px 72px #281c3033}.dialog-wide{width:min(720px,100%)}.dialog-header{border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;min-height:76px;padding:12px 20px 12px 24px;display:flex}.dialog-header h2{margin:0;font-size:1.375rem;line-height:1.4}.dialog-body{overscroll-behavior:contain;padding:24px;overflow-y:auto}.dialog-body:focus-visible{outline:2px solid var(--purple);outline-offset:-4px}.icon-button{width:44px;height:44px;color:var(--purple);background:var(--purple-soft);border:0;border-radius:50%;flex-shrink:0;place-items:center;display:grid}.dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:12px;margin-top:24px;display:flex}.invitation-page{width:min(680px,100% - 36px);margin:0 auto;padding:40px 0 48px}.invitation-letter{color:var(--purple-dark);background:var(--paper);border:1px solid #d6c8de;border-radius:4px;padding:44px 56px 36px;position:relative;box-shadow:0 12px 36px #784a990f}.invitation-letter:before{content:"";background:var(--lime);width:72px;height:4px;position:absolute;top:-1px;left:50%;transform:translate(-50%)}.invitation-header{text-align:center}.invitation-header .brand-logo{width:240px;margin:0 auto 22px}.invitation-header h1{color:var(--purple);letter-spacing:-.02em;overflow-wrap:anywhere;margin:0;font-size:clamp(2rem,4vw,2.375rem);font-weight:650;line-height:1.35}.invitation-header h1 span{display:inline-block}.invitation-header h1:focus{outline:none}.invitation-message{margin:34px 0 28px}.invitation-greeting{overflow-wrap:anywhere;margin:0 0 14px;font-size:1.25rem;line-height:1.6}.invitation-greeting strong{font-weight:650}.invitation-welcome{color:var(--ink);margin:0;font-size:1.125rem;line-height:1.8}.invitation-details{border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:20px;margin:0;padding:24px 0;display:grid}.invitation-details dt{color:var(--muted);margin:0 0 6px;font-size:1rem}.invitation-details dd{color:var(--purple-dark);overflow-wrap:anywhere;margin:0;font-size:1.375rem;font-weight:650;line-height:1.5}.invitation-signoff{text-align:right;color:var(--purple);margin:26px 0 0;font-size:1.125rem;font-weight:650}.invitation-actions{width:min(100%,360px);margin:24px auto 0}.invitation-unavailable-message{color:var(--ink);margin:30px 0 10px;font-size:1.125rem;line-height:1.8}.invitation-letter-unavailable:before{background:var(--line)}.confirm-content>p{margin:0;font-size:1rem;line-height:1.7}.dialog-field{margin-top:20px}.agreement-content{overflow-wrap:anywhere;font-size:1.0625rem;line-height:1.85}.agreement-content h3{margin:24px 0 12px;font-size:1.25rem;line-height:1.5}.agreement-content p{margin:0 0 16px}.agreement-content .agreement-version,.agreement-subtitle{color:var(--muted);font-size:1rem}.agreement-content>h3{margin-top:12px;font-size:1.5rem}.agreement-content ol{margin:24px 0;padding-left:1.75em}.agreement-content li{margin-bottom:20px;padding-left:.25em}.agreement-content li::marker{color:var(--purple);font-weight:700}.agreement-ending{border-top:1px solid var(--line);padding-top:20px}.agreement-content footer{color:var(--muted);padding-top:12px}.agreement-content footer p:last-child{margin-bottom:0}.error-toast{z-index:130;max-width:min(480px,100vw - 32px);color:var(--red);border-radius:var(--radius);background:#fff5f5;border:1px solid #e6b7b9;align-items:center;gap:12px;padding:10px 12px 10px 16px;font-size:1rem;display:flex;position:fixed;bottom:20px;right:20px;box-shadow:0 8px 32px #4614191a}.error-toast>svg{flex-shrink:0}.error-toast span{flex:1}.error-toast button{width:44px;height:44px;color:inherit;background:0 0;border:0;border-radius:8px;flex-shrink:0;place-items:center;display:grid}@media (width<=960px){.booking-layout,.admin-overview-grid,.member-admin-grid{grid-template-columns:1fr;gap:32px}.booking-form-card{position:static}.venue-heading{flex-direction:column;align-items:start;gap:24px}.venue-facts>div:first-child{border-left:0;padding-left:0}.prototype-note{font-size:0}.prototype-note:after{content:"体验版";white-space:nowrap;font-size:.875rem}}@media (width<=680px){.prototype-inner{gap:8px;padding:0 12px}.reset-button{justify-content:center;width:44px;padding:0;font-size:0}.site-shell{width:calc(100% - 36px);padding-top:8px;padding-bottom:40px}.member-topbar,.admin-topbar{min-height:80px}.brand-logo{width:156px}.member-account>div,.admin-account>div{display:none}.venue-heading,.admin-page-heading{gap:20px;padding:26px 0}.venue-title{gap:12px}.venue-title>span{border-radius:15px;flex-shrink:0;width:46px;height:46px}.venue-title h1,.admin-page-heading h1{font-size:2rem}.venue-facts{border-top:1px solid var(--line);width:100%;padding-top:18px}.venue-facts>div{flex:1;min-width:0;padding:0 12px}.venue-facts>div:last-child{padding-right:0}.venue-facts dd{font-size:1rem}.booking-layout{padding:26px 0 30px}.date-grid{grid-template-columns:repeat(7,72px)}.date-option{min-height:78px}.time-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.duration-row{flex-direction:column;align-items:stretch}.duration-options{grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.duration-option{min-width:0;padding:8px 2px}.duration-option.selected{padding:7px 1px}.selection-summary{flex-wrap:wrap}.reservation-card{grid-template-columns:60px minmax(0,1fr);gap:12px}.reservation-actions{grid-column:2;justify-content:flex-start}.reservation-main>div>strong{font-size:1rem}.admin-section-tabs{gap:24px}.admin-section-tabs button{font-size:1rem}.admin-date-controls input{flex:1;width:120px;min-width:0}.admin-date-controls>strong{width:100%;margin:8px 0 0}.admin-table-scroll{overflow:visible}.admin-record-table{min-width:0}.admin-record-head{display:none}.admin-record-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px 12px;padding:20px 0}.admin-record-row:nth-child(2){border-top:1px solid var(--line)}.admin-record-row .record-person{grid-area:1/2}.admin-record-row .record-member{grid-area:2/2}.admin-record-row .phone-cell{grid-area:2/1}.admin-record-row .row-actions{grid-column:1/-1}.mobile-field-label{color:var(--muted);font-size:.875rem;font-weight:400;display:inline}.auth-stage{padding:36px 0}.auth-card .brand-logo{width:240px}.dialog-backdrop{padding:12px}.dialog-panel{border-radius:18px;max-height:calc(100dvh - 24px)}.dialog-header{min-height:72px;padding:12px 14px 12px 20px}.dialog-header h2{font-size:1.25rem}.dialog-body{padding:20px}.error-toast{bottom:16px;right:16px}.invitation-page{width:calc(100% - 28px);padding:20px 0 32px}.invitation-letter{padding:28px 22px}.invitation-header .brand-logo{width:220px;margin-bottom:18px}.invitation-message{margin-top:26px}.invitation-details dd{font-size:1.25rem}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.app-operation-boundary{border:0;width:100%;min-width:0;margin:0;padding:0}.app-operation-boundary:disabled{cursor:progress}.api-login-fields{text-align:left;gap:16px;display:grid}.api-login-fields label{gap:8px;font-size:16px;display:grid}.api-login-fields input,.api-login-fields select{width:100%;min-height:44px;font-size:16px}.phone-login{text-align:left;gap:12px;display:grid}.phone-login-intro{color:var(--muted);text-align:center;margin:0 0 6px;font-size:16px}.phone-login label{font-size:16px;font-weight:600}.phone-login input{width:100%;min-width:0;min-height:48px;font-size:16px}.phone-login-tabs{border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px;display:grid}.phone-login-tabs button{min-height:48px;color:var(--muted);background:0 0;border:0;border-bottom:3px solid #0000;font-size:16px;font-weight:600}.phone-login-tabs button[aria-pressed=true]{color:var(--purple);border-bottom-color:var(--purple)}.phone-password-row{grid-template-columns:minmax(0,1fr) 48px;align-items:center;gap:8px;display:grid}.password-visibility{border:1px solid var(--line);min-width:48px;min-height:48px;color:var(--purple);border-radius:var(--radius);background:0 0;place-items:center;display:grid}.phone-login-help{text-align:center;color:var(--muted);margin:6px 0 0;font-size:16px}.phone-login-notice{overflow-wrap:anywhere;color:var(--muted);margin:4px 0;font-size:16px;line-height:1.6}.phone-login .full-button{min-height:48px;margin-top:10px}
