:root{--bg:#faf9f7;--ink:#222923;--muted:#777d75;--line:#dedfd8;--accent:#626b59;--soft:#f0f0eb;font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;color:var(--ink);background:var(--bg);font-size:15px;line-height:1.75}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}button,input,textarea,select{font:inherit}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;border:1px solid var(--accent);border-radius:3px;background:var(--accent);color:#fff;min-height:49px;padding:10px 22px;cursor:pointer;font-size:14px;font-weight:500;text-align:center;transition:background .15s}button:hover,.button:hover{background:#4e5846;color:white}.secondary{background:transparent;color:var(--ink);border-color:#8a9184}.secondary:hover{background:var(--soft);color:var(--ink)}.text-button{background:transparent;border:0;color:var(--ink);padding:8px 0;min-height:40px}.text-button:hover{background:transparent;color:var(--accent)}input,textarea,select{width:100%;background:#fff;border:1px solid #cdd0c7;border-radius:3px;padding:11px 12px;color:var(--ink);min-height:46px}input:focus,textarea:focus,select:focus,button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}input[type=checkbox]{width:18px;min-height:18px;height:18px;accent-color:var(--accent);flex-shrink:0}label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:500}form{display:grid;gap:18px}fieldset{padding:0;border:0;margin:0}legend{font-size:13px;margin-bottom:8px}.check{flex-direction:row;align-items:flex-start;font-weight:400;gap:10px}p{margin:0 0 14px}h1,h2,h3{font-weight:500;line-height:1.5;margin:0 0 20px}h1{font-size:26px;letter-spacing:.025em}h2{font-size:18px}section{margin-top:32px}.muted{color:var(--muted)}.small{font-size:12px}.preline{white-space:pre-line;overflow-wrap:anywhere}.brand{width:170px;height:auto;display:block}.icon{width:23px;height:23px;flex-shrink:0}.member-shell{max-width:440px;margin:auto;min-height:100dvh;border-left:1px solid var(--line);border-right:1px solid var(--line);padding-bottom:95px}.member-header{height:98px;display:flex;align-items:center;justify-content:space-between;padding:24px}.member-header .brand{width:159px}.member main{padding:0 24px 24px}.greeting{font-size:21px;letter-spacing:.04em;border-bottom:1px solid var(--line);padding:10px 0 18px;margin:0}.stamp-card{margin-top:15px}.stamp-card h1{font-size:18px;margin:0}.visit-count{text-align:center;line-height:1;margin:8px 0 25px}.visit-count>span{font-family:"Times New Roman",serif;font-size:85px;font-weight:400;display:block}.visit-count p{font-size:13px;margin:7px 0 0}.stamp-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:13px 10px;max-width:316px;margin:0 auto}.stamp{width:100%;aspect-ratio:1;border:1px solid #919889;border-radius:50%;display:flex;justify-content:center;align-items:center;font-family:"Times New Roman",serif;font-size:28px;line-height:1}.stamp.filled{background:var(--accent);color:#fff;border-color:var(--accent)}.stamp-caption{text-align:center;font-size:12px;margin:18px 0 21px}.home-actions{display:grid;gap:12px}.home-notices{border-top:1px solid var(--line);padding-top:17px;margin-top:25px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.section-heading h2{margin:0}.section-heading a{font-size:12px;display:flex;align-items:center;gap:5px}.section-heading .icon{width:16px;height:16px}.empty{padding:28px 6px;text-align:center;color:var(--muted);font-size:14px}.bottom-nav{position:fixed;bottom:0;width:min(100%,438px);background:var(--bg);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr);padding:10px 10px max(10px,env(safe-area-inset-bottom));z-index:5}.bottom-nav a{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10px;position:relative;padding-bottom:9px}.bottom-nav a.active:after{content:"";position:absolute;height:2px;width:48px;background:var(--accent);bottom:0}.list-row{display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);padding:19px 0}.list-row p{margin:4px 0 0}.small-stamp{width:36px;font-size:17px;flex-shrink:0}.notice{border-bottom:1px solid var(--line);padding:20px 0}.notice h2{margin:8px 0 14px}.coupon{border:1px solid var(--line);padding:22px;margin-top:20px}.coupon-code{font-family:monospace;letter-spacing:.12em;font-size:20px}.auth{margin-top:28px}.auth h1{font-family:serif;font-size:28px}.auth form{margin-top:28px}.auth-links{display:flex;flex-direction:column;gap:15px;text-align:center;margin-top:28px;font-size:13px}.flash,.error,.verification{padding:14px 16px;background:#edf0e9;border-left:3px solid var(--accent);font-size:13px;margin:16px 0 22px}.error{background:#f6ece8;border-color:#925640}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.scan-guide{text-align:center;padding:40px}.scan-guide .icon{width:100px;height:100px;stroke-width:.7}.text-link{display:block;margin-top:22px;text-align:center}.sidebar{width:224px;position:fixed;inset:0 auto 0 0;border-right:1px solid var(--line);padding:39px 20px;display:flex;flex-direction:column;gap:20px;background:var(--bg);overflow:auto}.sidebar .brand{margin:0 auto 20px;width:170px}.sidebar-label{font-size:14px;margin:0 12px}.sidebar nav{display:grid;gap:4px}.sidebar nav a{display:flex;align-items:center;gap:18px;padding:13px 12px;border-radius:4px;font-size:14px;white-space:nowrap}.sidebar nav a.active{background:#e9eae4}.sidebar>a.muted{font-size:12px;margin:20px 12px 0}.sidebar form{margin:0 12px}.admin-main{margin-left:224px;padding:28px 42px 60px;max-width:1550px}.admin-top{font-size:12px;text-align:right;margin-bottom:42px;color:var(--muted)}.dashboard-title{font-family:"Hiragino Mincho ProN", "Yu Mincho",serif;font-size:36px;letter-spacing:.03em;margin-bottom:18px}.inline-form{display:flex;align-items:end;gap:14px;margin:20px 0}.inline-form select{max-width:280px}.inline-form label{min-width:200px}.filter{margin:12px 0 35px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);margin:42px 0 50px;text-align:center}.metrics>div+div{border-left:1px solid var(--line)}.metrics span{font-size:16px}.metrics strong{display:block;font-family:"Times New Roman",serif;font-size:76px;line-height:1.3;font-weight:400;margin-top:4px}.table-wrap{overflow:auto;border:1px solid var(--line)}table{width:100%;border-collapse:collapse;font-size:13px;text-align:left}th{font-weight:500;padding:15px 18px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:16px 18px;border-bottom:1px solid var(--line)}tbody tr:last-child td{border-bottom:0}td a{text-decoration:underline;text-underline-offset:4px}td.empty.tall{height:200px}.setup-row{display:flex;align-items:center;gap:20px;margin-top:35px;padding-top:25px;border-top:1px solid var(--line)}.setup-row p{margin:0;flex:1}.compact-form,.editor{max-width:700px}.editor section{margin-top:12px;padding:20px 0;border-bottom:1px solid var(--line);display:grid;gap:16px}.editor section h2{margin:0}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:55px}.qr-panel{max-width:460px;text-align:center;margin:35px auto}.qr-panel img{max-width:100%;height:auto;background:white}.qr-panel button{margin:10px auto}.splash{position:fixed;inset:0;background:var(--bg);z-index:20;display:flex;align-items:center;justify-content:center}.splash[hidden]{display:none}.splash>img{width:min(65vw,320px)}.splash video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;background:var(--bg)}.splash button{position:absolute;bottom:35px;right:30px;z-index:1}.splash.leaving{opacity:0;transition:opacity .35s}details{font-size:12px}details form{margin:15px 0}@media(min-width:700px){body.member{background:#eeeee9}.member-shell{background:var(--bg);box-shadow:0 0 60px #22292306}}@media(max-width:850px){.sidebar{position:static;width:100%;padding:18px;border-right:0;border-bottom:1px solid var(--line);gap:10px}.sidebar .brand{width:135px;margin:0}.sidebar-label{display:none}.sidebar nav{display:flex;overflow:auto}.sidebar nav a{padding:10px;gap:6px;font-size:12px}.sidebar nav .icon{width:18px}.sidebar>a.muted,.sidebar form{margin:0}.sidebar form{display:none}.admin-main{margin:0;padding:18px 20px 45px}.admin-top{margin-bottom:22px}.dashboard-title{font-size:27px}.metrics{margin:25px 0}.metrics strong{font-size:50px}.metrics span{font-size:12px}.two-columns{grid-template-columns:1fr;gap:0}.setup-row{flex-wrap:wrap}.setup-row p{min-width:180px}.inline-form{flex-wrap:wrap}.form-row{gap:10px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
/* Photo-led member surfaces. Preserve the existing background and accent tokens. */
.member-header{height:84px;padding-top:18px;padding-bottom:18px}.member-hero{position:relative;margin:0 -24px;isolation:isolate}.member-hero>img{display:block;width:100%;height:220px;object-fit:cover;object-position:center}.member-hero h1{position:absolute;left:25px;bottom:25px;margin:0;font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:21px;line-height:1.95;font-weight:400;letter-spacing:.1em;max-width:75%}.membership-identity{margin:0;padding:24px 0 19px;border-bottom:1px solid var(--line)}.editorial-label{font-family:"Times New Roman",serif;font-size:11px;letter-spacing:.16em;color:var(--muted);margin:0 0 10px}.identity-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.identity-row>span{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:20px;overflow-wrap:anywhere}.identity-row small{font-size:13px}.identity-row>p{font-size:10px;white-space:nowrap;margin:0}.identity-row>p span{font-size:12px;margin-left:6px}.photo-stamp{margin-top:23px}.photo-stamp .section-heading h2{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:18px}.photo-stamp .visit-count{display:flex;align-items:baseline;gap:9px;text-align:left;margin:5px 0 16px}.photo-stamp .visit-count>span{font-size:67px;line-height:1}.photo-stamp .visit-count p{font-size:13px}.photo-stamp .stamp-grid{max-width:none;gap:12px;margin-bottom:26px}.photo-stamp .stamp{max-width:54px;justify-self:center;border-color:#bbc0b5;font-size:23px}.member .home-actions .button{min-height:49px}.favorite-preview{margin-top:30px;border-top:1px solid var(--line);padding-top:22px}.favorite-preview-store{display:block;padding:12px 0;border-bottom:1px solid var(--line)}.favorite-preview-store>img{display:block;width:100%;height:150px;object-fit:cover;margin-bottom:12px}.favorite-preview-store>div{display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:15px}.favorite-preview-store>div>span{overflow-wrap:anywhere}.favorite-empty{text-align:center;padding:24px 8px;color:var(--muted);font-size:13px}.favorite-empty>.icon{width:29px;height:29px;margin-bottom:10px}.favorite-empty p{margin:0 0 10px}.favorite-empty a{display:inline-flex;align-items:center;gap:5px;color:var(--ink);font-size:12px}.favorite-empty a .icon{width:14px}.editorial-heading{text-align:center;margin:24px 0 34px}.editorial-heading h1{font-family:"Times New Roman",serif;font-size:27px;font-weight:400;letter-spacing:.2em;margin:0 0 4px}.editorial-heading p{font-size:12px;letter-spacing:.16em;margin:0}.editorial-heading:after{content:"";display:block;width:35px;border-bottom:1px solid var(--accent);margin:19px auto 0}.reservation-intro{font-size:14px;text-align:center;margin-bottom:25px}.reservation-photo{width:100%;height:176px;object-fit:cover;object-position:center;display:block;margin-bottom:32px}.store-section{margin-top:28px}.store-section>h2{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:17px;letter-spacing:.06em;border-bottom:1px solid var(--line);padding-bottom:13px;margin-bottom:0}.store-card{padding:22px 0 24px;scroll-margin-top:18px}.store-card+.store-card{border-top:1px solid var(--line)}.store-card-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:19px}.store-card h3{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:18px;margin:0;overflow-wrap:anywhere}.store-photo{width:100%;height:160px;object-fit:cover;display:block;margin-bottom:17px}.favorite-form{display:block;flex-shrink:0}.favorite-button{display:inline-flex;align-items:center;gap:7px;border:0;background:transparent;color:var(--muted);padding:8px 0 8px 8px;font-size:11px;min-width:82px;min-height:44px}.favorite-button:hover{background:transparent;color:var(--accent)}.favorite-button .icon{width:22px;height:22px}.favorite-button.is-favorite{color:var(--accent)}.favorite-button.is-favorite .icon{fill:currentColor}.full-width{width:100%}.booking-caption{font-size:10px;text-align:center;margin:11px 0 0}.booking-unavailable{background:var(--soft);border:1px solid var(--line);padding:12px;text-align:center;font-size:12px;color:var(--muted);margin:0}.reservation-note{text-align:center;margin:28px 0 8px}.profile-shortcut{display:flex;align-items:center;gap:12px;padding:17px 0;border-bottom:1px solid var(--line);font-size:14px}.profile-shortcut>.icon:last-child{margin-left:auto;width:17px}.profile-shortcut+ p{margin-top:25px}.photo-preview-admin{width:240px;max-width:100%;height:135px;object-fit:cover}.member .home-notices{margin-top:27px}.member .section-heading h2{font-weight:400}.member .home-notices .list-row{font-size:13px}.member .button .icon{width:20px;height:20px}.member .bottom-nav{background:var(--bg)}@media(max-width:360px){.member-hero>img{height:220px}.identity-row{align-items:flex-start;flex-direction:column;gap:6px}.store-card-heading{gap:8px}.store-card h3{font-size:16px}.member .section-heading a{font-size:11px}}
.management-metrics{grid-template-columns:repeat(4,1fr)}.management-metrics strong{font-size:62px}.management-metrics small{display:block;color:var(--muted);font-size:11px}.management-insights{display:grid;grid-template-columns:1fr 1fr;gap:32px;border-top:1px solid var(--line);padding-top:25px}.management-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.stamp-success{text-align:center;padding:28px 0}.stamp-success[hidden],#stamp-claim-form[hidden]{display:none}.stamp-success .stamp{width:86px;margin:0 auto 25px;animation:stamp-in .35s ease-out}.stamp-success h2{margin-bottom:12px}button:disabled{opacity:.6;cursor:wait}@keyframes stamp-in{from{transform:scale(1.35);opacity:0}to{transform:scale(1);opacity:1}}@media(max-width:850px){.management-metrics{grid-template-columns:repeat(2,1fr);row-gap:28px}.management-metrics>div:nth-child(3){border-left:0}.management-insights{grid-template-columns:1fr;gap:20px}}@media(prefers-reduced-motion:reduce){.stamp-success .stamp{animation:none}}

.trial-banner{padding:7px 16px;text-align:center;font-size:11px;letter-spacing:.06em;background:#eeeae3;color:#626b59}.admin .trial-banner{margin-left:224px}@media(max-width:760px){.admin .trial-banner{margin-left:0}}

.flow-step{font-size:11px;letter-spacing:.18em;color:var(--muted);margin-bottom:18px}.consent-document{border:1px solid var(--line);padding:22px;margin:24px 0;font-size:14px;line-height:1.9;background:var(--soft);overflow-wrap:anywhere}.login-subtitle{font-size:15px;margin:30px 0 18px}.consent-mark{display:inline-block;padding:4px 10px;border:1px solid var(--line);font-size:12px;white-space:nowrap}.consent-mark.accepted{color:var(--accent);background:var(--soft)}
.qr-scanner{margin:24px 0}.camera-preview{position:relative;background:#222923;aspect-ratio:1;overflow:hidden;border-radius:8px}.camera-preview video{width:100%;height:100%;object-fit:contain;display:block}.camera-frame{position:absolute;inset:20%;border:2px solid #fff;border-radius:12px;pointer-events:none;box-shadow:0 0 0 100vmax #0002}#camera-status{font-size:14px;line-height:1.8;min-height:3.6em;margin:18px 0}#camera-start[hidden],#camera-stop[hidden]{display:none}

.install-icon{display:block;border-radius:20px;margin:1.5rem auto}.install-guide details{padding:1rem 0;border-bottom:1px solid var(--line,#e4e0d9)}.install-guide ol{padding-left:1.5rem;line-height:1.9}.install-guide .text-link{display:block;text-align:center;margin-top:1rem}#install-app[hidden]{display:none}.access-controls{padding:1rem;border:1px solid var(--line,#e4e0d9);border-radius:12px}

.password-field{position:relative;margin-bottom:20px}.password-field input{width:100%;padding-right:54px;margin:0}.password-toggle{position:absolute;right:2px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:44px;height:44px;min-height:44px;padding:0;margin:0;border:0;background:transparent;color:var(--muted);border-radius:4px}.password-toggle:hover{background:var(--soft);color:var(--accent)}.password-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}.password-toggle[hidden]{display:none}.password-toggle .eye-slash{display:none}.password-toggle[aria-pressed="true"] .eye-slash{display:block}

.member-hero.has-coupon{min-height:300px}.member-hero.has-coupon>img{position:absolute;inset:0;width:100%;height:100%;z-index:-2}.member-hero.has-coupon:after{content:"";position:absolute;inset:0;background:rgba(250,249,247,.82);z-index:-1}.hero-coupon{padding:28px 25px;text-align:center}.member-hero .hero-coupon h1{position:static;max-width:none;font-size:23px;line-height:1.6;letter-spacing:.04em;margin:8px 0 12px;overflow-wrap:anywhere}.hero-coupon-body{font-size:14px;line-height:1.8;margin:0 auto 10px;max-width:32em;overflow-wrap:anywhere}.hero-coupon-expiry{font-size:12px;color:var(--muted);margin:0 0 18px}.hero-coupon .button{display:inline-flex;align-items:center;gap:14px;max-width:100%}.hero-coupon-all{display:block;font-size:12px;margin-top:14px}.coupon{scroll-margin-top:20px}

.quick-reservation{white-space:normal;overflow-wrap:anywhere;text-align:center}.home-actions>.text-link{text-align:center;padding:8px}

.profile-birthday{margin-top:6px}.profile-birthday hr{border:0;border-top:1px solid var(--line);margin:0 0 20px}.profile-birthday .birthday-description{margin:0 0 16px}.profile-birthday legend{margin-bottom:12px}.profile-email-preference{display:grid;gap:12px;margin:10px 0 6px}.profile-email-preference p{margin:0;line-height:1.8}.profile-email-preference .check{align-items:center}.profile-notifications{margin:36px 0 24px;padding-top:26px;border-top:1px solid var(--line)}.profile-notifications h2{margin-bottom:14px}.profile-notifications>p{margin:0;line-height:1.8}.notification-actions{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin-top:22px}.notification-actions .text-button{padding:8px 2px;text-decoration:underline;text-underline-offset:4px}.profile-notifications #push-status:not(:empty){margin-top:16px}

.email-address{overflow-wrap:anywhere}.profile-email-address{margin-bottom:24px}.profile-email-address p{margin-bottom:6px}.profile-email-address>a{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--accent);min-height:40px}.profile-email-address .icon{width:16px;height:16px}.email-change-pending{padding:16px;border:1px solid var(--line);margin:20px 0}.email-change-pending p{margin:8px 0}.email-change-pending form{margin-top:12px}

.consent-document h2{font-size:20px;margin:0 0 20px}.consent-document h3{font-size:16px;margin:26px 0 12px}.consent-document p{margin:0 0 18px}.consent-document ul{padding-left:1.4em;margin:0 0 20px}.consent-document li+li{margin-top:8px}.consent-document>:last-child{margin-bottom:0}

#consent-guardian[hidden]{display:none}#consent-guardian p{margin:10px 0 0}.guardian-record{overflow-wrap:anywhere}

.consent-item{margin-top:26px}.consent-item-check{padding:14px;background:var(--soft);border:1px solid var(--line);line-height:1.7}.consent-item-check input{margin-top:3px}.consent-checked-items{list-style:none;padding:0;font-size:13px;line-height:1.9;margin:16px 0}

.consent-guardian-fields{display:grid;gap:16px;margin-top:20px}

.consent-item-check>.consent-guardian-fields{margin-top:0;margin-bottom:20px}

#consent-guardian>.check{margin-top:20px}.consent-item-check>.consent-guardian-fields:only-child{margin-bottom:0}

.consent-document>p,.consent-document>.consent-item>p{text-indent:1em}

.consent-document h2,.consent-document h3{font-weight:700}

.access-danger>summary{color:#a52a2a;font-weight:700}.access-warning{color:#922424;background:#fff1ef;border-left:3px solid #b63232;padding:12px;margin:16px 0;font-size:13px}.access-ban-button{background:#a52a2a;border-color:#a52a2a;color:#fff}.access-ban-button:hover{background:#842020;border-color:#842020;color:#fff}.access-ban-button:focus-visible{outline-color:#a52a2a}

.hero-coupon[data-birthday-celebration]{position:relative;isolation:isolate}.birthday-confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:3;border-radius:inherit}.birthday-confetti i{position:absolute;display:block;width:7px;height:11px;pointer-events:none;will-change:transform,opacity}@media(prefers-reduced-motion:reduce){.birthday-confetti{display:none}}

.birthday-coupon-page{margin:0 -24px -24px;padding:32px 24px 120px;min-height:850px;background:#e6d8c5 url('/assets/birthday-cake.jpg') center center/cover no-repeat}.birthday-coupon-page>.editorial-heading{margin-top:0;padding-top:6px;text-shadow:0 1px 12px rgba(255,255,255,.8)}.birthday-coupon-page>.coupon{background:rgba(250,249,247,.95)}.birthday-coupon-page>.birthday-glass{background:rgba(255,253,248,.50);border:1px solid rgba(255,255,255,.78);border-radius:12px;box-shadow:0 12px 40px rgba(63,46,24,.1),inset 0 1px 0 rgba(255,255,255,.8);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);color:#222923;margin-top:80px}.birthday-glass .muted{color:#50564e}.birthday-glass .coupon-code{overflow-wrap:anywhere}.birthday-coupon-page>.birthday-glass~.coupon{margin-top:24px}@supports not ((backdrop-filter:blur(2px)) or (-webkit-backdrop-filter:blur(2px))){.birthday-coupon-page>.birthday-glass{background:rgba(255,253,248,.9)}}

.customer-detail-panel{padding:1rem;border:1px solid var(--line,#e4e0d9);border-radius:12px;margin-top:24px}.customer-detail-panel>:last-child{margin-bottom:0}

.customer-status-row{display:flex;align-items:baseline;justify-content:space-between;gap:18px;flex-wrap:wrap}.customer-status-info{flex:0 1 auto}.customer-status-info p{margin:0}.consent-status-info{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.customer-row-action{flex:1 1 240px;min-width:0;margin-left:auto}.customer-row-action>summary{text-align:right}.customer-row-action[open]{flex-basis:100%}.customer-row-action[open]>summary{margin-bottom:18px}.customer-row-action .consent-document{margin-bottom:16px}.customer-row-action .small{overflow-wrap:anywhere}

.customer-identity-heading{display:flex;align-items:baseline;gap:10px 18px;flex-wrap:wrap}.customer-identity-heading h2{margin:0;overflow-wrap:anywhere}.customer-identity-heading>span{white-space:nowrap}.customer-identity-email{margin-top:20px;overflow-wrap:anywhere}

.customer-history-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}.customer-history-heading .button{font-size:12px;min-height:40px;padding:8px 14px}

.customer-back-link{margin-bottom:24px}

.inline-form.store-display-filter{align-items:center;flex-wrap:nowrap;gap:12px}.store-display-filter select{flex:1 1 280px;min-width:0;height:46px;margin:0}.store-display-filter button{flex:0 0 auto;height:46px;min-height:46px;padding:0 20px;margin:0;white-space:nowrap}

.notice-history-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}.notice-history-heading h2{margin:0}.notice-limit-buttons{display:flex;gap:8px;flex-wrap:wrap}.notice-limit-buttons .button{min-height:40px;padding:7px 14px;font-size:13px}.campaign-row>div{min-width:0;overflow-wrap:anywhere}.campaign-row>span{flex-shrink:0}

.notice-editor select,.notice-editor input[type=number]{height:46px;min-height:46px;padding:10px 12px}.notice-target-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;gap:16px}.notice-target-row label{min-width:0}.notice-target-or{height:46px;display:flex;align-items:center;color:var(--muted)}.notice-editor select:disabled{opacity:.55}.notice-editor #notice-target-help{margin:0}@media(max-width:480px){.notice-target-row{grid-template-columns:minmax(0,1fr);gap:8px}.notice-target-or{height:auto;justify-content:center}}

.member-id-copy{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:150px}.member-id-value{font-variant-numeric:tabular-nums;white-space:nowrap}.copy-member-id{font-size:12px;padding:5px 10px;min-height:36px;white-space:nowrap}.copy-member-status:not(:empty){flex-basis:100%}.copy-member-fallback[hidden]{display:none}.copy-member-fallback{max-width:160px}

.notice-body-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,320px);gap:24px;align-items:start}.notice-body-layout>label{min-width:0}.notice-placeholder-guide{padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--soft);font-size:13px}.notice-placeholder-guide h2{font-size:15px;font-weight:700;margin:0 0 14px}.notice-placeholder-guide dl{margin:0 0 18px}.notice-placeholder-guide dt{font-weight:700;margin-top:12px}.notice-placeholder-guide dt:first-child{margin-top:0}.notice-placeholder-guide dd{margin:4px 0 0;line-height:1.8}.notice-placeholder-guide p:last-child{margin-bottom:0}@media(max-width:760px){.notice-body-layout{grid-template-columns:minmax(0,1fr);gap:16px}}

.coupon-use-link{width:100%;margin-top:12px}.coupon-use-warning{margin:24px 0;padding:16px;background:var(--soft);border:1px solid var(--line);line-height:1.8}.coupon-use-back{margin-top:16px;width:100%}.coupon-used-status{border-top:1px solid var(--line);padding-top:18px;margin-top:18px}.coupon-used-status strong{display:block;font-size:24px;color:var(--accent);margin-bottom:10px}.coupon-used-status p{font-size:14px;font-weight:600;line-height:1.8;overflow-wrap:anywhere}

.coupon-manual-fallback{margin-top:36px;padding:18px 0;border-top:1px solid var(--line)}.coupon-manual-fallback>summary{color:var(--muted);font-size:14px}.coupon-manual-fallback[open]>summary{margin-bottom:18px}.coupon-manual-fallback select{height:46px;min-height:46px}

.coupon-single-issue select,.coupon-manual-fallback select{height:46px;min-height:46px;padding:10px 12px}

.coupon-admin-panel{border:1px solid var(--line);padding:24px;margin-top:24px;border-radius:8px}.coupon-admin-panel h2{font-weight:700}.coupon-admin-panel select{height:46px;min-height:46px;padding:10px 12px}.coupon-admin-panel .coupon-manual-fallback{margin-top:0;border-top:0;padding:0}.coupon-admin-panel>form+.button{margin-top:16px}@media(max-width:480px){.coupon-admin-panel{padding:16px}}

.admin-main .compact-form select{height:46px;min-height:46px;padding:10px 12px}

.store-management-tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);margin:28px 0 24px}.store-management-tabs a{flex:1;max-width:240px;text-align:center;padding:13px 18px;border:1px solid var(--line);border-bottom:0;border-radius:6px 6px 0 0;font-weight:600}.store-management-tabs a.active{background:var(--accent);border-color:var(--accent);color:#fff}.store-management-tabs a:not(.active):hover{background:var(--soft)}

.store-management-tabs a{min-width:0}@media(max-width:600px){.store-management-tabs{gap:4px}.store-management-tabs a{padding:12px 8px;font-size:12px;overflow-wrap:anywhere}}

.staff-store-change{margin:0;align-items:flex-end!important}.staff-store-change label{min-width:0;flex:1}.staff-store-change select{width:100%}.list-row:has(.staff-store-change){flex-wrap:wrap}.staff-store-change{flex:1 1 330px;max-width:520px}

.store-create-panel{margin:24px 0}.store-create-panel>summary{list-style:none;width:fit-content}.store-create-panel>summary::-webkit-details-marker{display:none}.store-create-fields{margin-top:18px;padding:24px;border:1px solid var(--line);border-radius:8px}.store-create-fields h2{font-weight:600}@media(max-width:480px){.store-create-fields{padding:16px}}

.staff-store-change label>select{flex:0 0 auto;height:46px;min-height:46px;max-height:46px;max-width:none}.staff-store-change{gap:12px}.staff-store-change button{align-self:flex-end}

.store-create-panel>summary{display:flex;margin-left:auto}
.appearance-panel{border:1px solid var(--line);border-radius:8px;padding:24px;max-width:760px}.appearance-preview{display:block;max-width:100%;width:320px;object-fit:cover;margin:18px 0}.appearance-preview.landscape{aspect-ratio:3/2}.appearance-preview.portrait{width:220px;aspect-ratio:2/3}.appearance-restore{margin-top:14px}.custom-coupon-scene{position:relative;isolation:isolate;overflow:hidden;margin:0 -24px -24px;padding:32px 24px 120px;min-height:850px;background:#e6d8c5}.coupon-scene-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1;pointer-events:none}.custom-coupon-scene>.editorial-heading{position:relative;background:rgba(250,249,247,.50);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:20px 12px;border-radius:8px;margin-top:0}.custom-coupon-scene>.coupon{background:rgba(255,253,248,.50);border-radius:12px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.custom-coupon-scene>.coupon .muted{color:#50564e}.custom-coupon-scene>.birthday-glass{background:rgba(255,253,248,.50)}

.sidebar .admin-brand{display:flex;justify-content:center;margin:0 0 20px}.admin-brand-icon{display:block;width:72px;height:72px;border-radius:14px}

.customer-list-filter{flex-wrap:wrap;align-items:flex-end}.customer-list-filter select{flex:none;height:46px;min-height:46px}.customer-history-heading h2{margin:0}

.management-month-form{margin:24px 0 12px}.management-month-fields{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.management-month-fields label{min-width:100px}.management-month-fields select{height:46px;min-height:46px;flex:none}.management-month-fields button{height:46px;min-height:46px}.management-month-shortcuts{display:flex;gap:10px;flex-wrap:wrap}.management-month-shortcuts .button{min-height:40px;padding:7px 18px}.management-month-fields .visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}

/* Management overview section spacing */
.management-month-form{margin-top:32px;margin-bottom:16px}.management-month-shortcuts{margin-bottom:40px}.management-metrics{margin:0 0 48px}.management-stores{margin-top:0}.management-stores .section-heading{margin-bottom:20px}.management-stores .table-wrap+p{margin:14px 0 0}.management-insights{margin-top:40px;padding-top:32px;gap:32px}.management-insights>div>p:last-child{margin-bottom:0}.management-actions{margin-top:40px;padding-top:28px;border-top:1px solid var(--line);padding-bottom:8px}@media(max-width:850px){.management-month-shortcuts{margin-bottom:32px}.management-metrics{margin-bottom:36px}.management-insights{margin-top:32px;gap:28px;padding-top:28px}.management-actions{margin-top:32px;padding-top:24px}}

.checkin-display-link{margin:24px 0}.checkin-display{margin:0;min-height:100dvh}.checkin-display-main{max-width:780px;margin:0 auto;padding:40px 24px;text-align:center}.checkin-display-logo{width:180px;height:auto;display:block;margin:0 auto 28px}.checkin-display-store{margin-bottom:24px;color:var(--muted)}.checkin-display-main h1{font-size:clamp(22px,4vw,32px);margin-bottom:20px}.checkin-display-copy{line-height:2;margin-bottom:28px}.checkin-display-main .qr-panel{margin:0 auto;padding:24px;max-width:440px;background:#fff;border:1px solid var(--line)}.checkin-display-main #checkin-qr{display:block;width:100%;max-width:320px;height:auto;margin:0 auto 16px}.checkin-display-main #qr-status{margin:12px 0;font-size:12px}.checkin-display-main .qr-panel p{color:var(--muted);font-size:12px}

/* Readable reception display for landscape tablets. */
.checkin-display-main{max-width:1320px;padding:28px 32px}.checkin-display-logo{margin-bottom:12px}.checkin-display-store{font-size:20px;color:var(--ink);margin-bottom:28px}.checkin-display-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,1fr);align-items:center;gap:36px}.checkin-display-instructions{text-align:left;min-width:0}.checkin-display-main h1{font-size:30px;font-weight:600;line-height:1.5;margin-bottom:24px}.checkin-display-copy,.checkin-display-birthday{font-size:22px;line-height:1.8;letter-spacing:.02em}.checkin-display-copy{margin-bottom:24px}.checkin-display-birthday{margin:0;padding-top:24px;border-top:1px solid var(--line)}.checkin-display-birthday strong{font-weight:700}.checkin-display-main .qr-panel{width:100%;max-width:440px;padding:20px}.checkin-display-main #checkin-qr{max-width:360px}.checkin-display-main .qr-panel p,.checkin-display-main #qr-status{font-size:16px;color:var(--ink);line-height:1.6}@media(max-width:800px),(orientation:portrait){.checkin-display-main{max-width:760px;padding:28px 24px}.checkin-display-layout{grid-template-columns:minmax(0,1fr);gap:28px}.checkin-display-main h1{font-size:28px}.checkin-display-copy,.checkin-display-birthday{font-size:22px}.checkin-display-main .qr-panel{max-width:400px}}

/* Nine-space ink stamp card. */
.stamp-grid.stamp-grid-nine{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;max-width:330px;margin:18px auto 28px;padding:18px;background:#f5f3ed;border:1px solid var(--line);border-radius:12px}
.stamp-grid-nine .stamp{position:relative;width:100%;max-width:none;height:auto;aspect-ratio:1;margin:0;border:1px dashed #b6bcae;border-radius:50%;background:#fcfbf8;color:#69745e;animation:none;font-family:"Times New Roman",serif}
.stamp-mark{position:absolute;inset:3px;border:2px solid currentColor;outline:1px solid currentColor;outline-offset:-5px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(-9deg);opacity:0}
.stamp-brand{font-size:9px;letter-spacing:.12em;line-height:1.3}.stamp-letter{font-size:36px;line-height:1}.stamp-word{font-size:7px;letter-spacing:.14em;line-height:1.4}.stamp-slot{font-family:inherit;font-size:22px;color:#abb0a4}
.stamp-grid-nine .stamp.filled{background:#f9faf5;border-color:transparent;color:#58674c}.stamp-grid-nine .filled .stamp-mark{opacity:.9}.stamp-grid-nine .filled .stamp-slot{visibility:hidden}.stamp-grid-nine .stamp:nth-child(3n) .stamp-mark{transform:rotate(7deg)}
.stamp-grid-nine .stamp-new .stamp-mark{animation:ink-press .65s cubic-bezier(.2,.65,.25,1) both}.stamp-grid-nine .stamp-new:after{content:"";position:absolute;inset:-4px;border:2px solid #7b896c;border-radius:50%;animation:ink-ring .65s ease-out both;pointer-events:none}
@keyframes ink-press{0%{opacity:0;transform:scale(1.8) rotate(-20deg)}28%{opacity:1;transform:scale(.92) rotate(-9deg)}48%{transform:scale(1.06) rotate(-9deg)}100%{opacity:.9;transform:scale(1) rotate(-9deg)}}
@keyframes ink-ring{0%,27%{opacity:0;transform:scale(.85)}30%{opacity:.45}100%{opacity:0;transform:scale(1.3)}}
@media(prefers-reduced-motion:reduce){.stamp-grid-nine .stamp-new .stamp-mark,.stamp-grid-nine .stamp-new:after{animation:none}.stamp-grid-nine .stamp-new:after{display:none}}

.stamp-mark{gap:6px}.stamp-brand{font-size:13px;letter-spacing:.06em;font-weight:600}.stamp-word{font-size:9px;letter-spacing:.1em}@media(max-width:360px){.stamp-brand{font-size:11px}.stamp-word{font-size:8px}}

#stamp-claim-form button[hidden]{display:none}

.profile-information .profile-field{margin:28px 0 0;padding-bottom:24px;border-bottom:1px solid var(--line)}.profile-information>.profile-field:first-child{margin-top:0;padding-bottom:12px;border-bottom:0}.profile-field h2{font-size:14px;color:var(--muted);margin-bottom:10px}.profile-value{font-size:17px;overflow-wrap:anywhere;margin-bottom:12px}.profile-edit summary,.profile-change-link{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;color:var(--accent);font-size:14px;cursor:pointer;list-style:none}.profile-edit summary::-webkit-details-marker{display:none}.profile-edit[open] summary .icon{transform:rotate(90deg)}.profile-edit form{margin-top:16px}.profile-settings-section{margin-top:32px;padding-top:26px;border-top:1px solid var(--line)}.profile-help-links{margin-top:32px;border-top:1px solid var(--line)}.profile-help-links .profile-shortcut{font-size:14px}.profile-logout{margin-top:24px}

.profile-details-form{margin-top:28px;gap:24px}.profile-edit-actions{display:flex;gap:12px;flex-wrap:wrap}.profile-edit-actions>*{flex:1}.profile-edit-button{margin-top:24px;width:100%}

#profile-notifications[hidden],#push-device-actions[hidden],#push-install-guide[hidden]{display:none}

#push-ios-instruction[hidden]{display:none}#push-ios-instruction strong{font-weight:700}

.email-verification-choice{display:grid;gap:14px}.email-verification-choice [hidden]{display:none}

.profile-password-button{width:100%;margin-top:32px}

/* Shared native select dimensions across member and admin screens. */
:root select:not([multiple]){appearance:none;-webkit-appearance:none;box-sizing:border-box;height:46px;min-height:46px;max-height:46px;padding:10px 40px 10px 12px;line-height:1.4;border:1px solid #cdd0c7;border-radius:3px;background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%23626b59' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px 16px}

.install-guide p,.install-guide summary,.install-guide ol{font-size:16px;line-height:1.9}.install-guide strong{font-weight:700}.install-guide li+li{margin-top:10px}.install-guide .install-start-note{margin:20px 0}.install-guide #install-continue,.install-guide>.text-link{font-size:16px}

.email-bounce-alert{display:block;margin:12px 0;padding:12px 16px;border:1px solid #b78132;border-left:4px solid #b78132;background:#fff6e5;color:#704717;font-weight:700;line-height:1.6}.email-bounce-controls{margin:24px 0;padding:24px 0;border-top:1px solid var(--line,#ddd)}.email-bounce-controls details{margin-top:20px}

#arrival-alerts:not(:empty){position:sticky;top:12px;z-index:30;max-height:55vh;overflow:auto}#arrival-alerts button{margin-left:20px}#arrival-alerts .email-bounce-alert{box-shadow:0 4px 18px #0002}

.checkin-display #arrival-alerts:not(:empty){position:fixed;top:auto;bottom:16px;left:16px;right:16px;font-size:20px;z-index:40}.checkin-display #arrival-alerts .email-bounce-alert{margin:0}

.arrival-sound-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:16px 0}.arrival-sound-controls span{font-size:14px;color:#767c73}.checkin-display .arrival-sound-controls{justify-content:center}.checkin-display .arrival-sound-controls span{display:block;font-size:16px}

.arrival-sound-controls>strong,.arrival-sound-controls>p{flex-basis:100%;margin:0}.arrival-sound-controls>p{font-size:16px;line-height:1.6}.checkin-display .arrival-sound-controls{text-align:center}

.arrival-notification-guide{margin:28px 0;padding:24px;border:1px solid #dcded7}.arrival-notification-guide p{line-height:1.8}.checkin-display .arrival-sound-controls{gap:12px}.checkin-display .arrival-sound-controls span{font-weight:600}

.checkin-display-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:16px;margin-bottom:28px}.checkin-display-header:before{content:""}.checkin-display-header .checkin-display-store{margin-bottom:0}#checkin-notification-controls{justify-self:end}#checkin-notification-controls .arrival-sound-controls{margin:0;flex-direction:column;align-items:flex-end;gap:8px;text-align:right}#checkin-notification-controls button{font-size:13px;padding:8px 12px;min-height:36px;width:auto}#checkin-notification-controls span{font-size:13px;font-weight:500}.arrival-sound-controls button.sound-enabled{background:#1769aa;border-color:#1769aa;color:#fff}@media(max-width:700px){.checkin-display-header{grid-template-columns:1fr}.checkin-display-header:before{display:none}#checkin-notification-controls{justify-self:center}#checkin-notification-controls .arrival-sound-controls{align-items:center;text-align:center}}

.arrival-sound-controls button[hidden]{display:none!important}.arrival-sound-controls .sound-enabled-status{color:#1769aa;font-weight:700}

/* Center the QR and guidance within the available screen below the header. */
.checkin-display{display:flex;flex-direction:column;min-height:100dvh}.checkin-display>.trial-banner{flex-shrink:0}.checkin-display-main{flex:1;width:100%;display:flex;flex-direction:column}.checkin-display-header{flex-shrink:0}.checkin-display-layout{flex:1;width:100%;align-content:center}

/* Read-only member preview, using the member application's visual styles. */
.preview-selector{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;margin:24px 0}.preview-selector label{min-width:220px;max-width:100%;flex:1}.member-preview-frame{display:block;width:100%;max-width:460px;height:850px;max-height:85dvh;margin:28px auto;border:1px solid var(--line);background:var(--bg)}.preview-note{padding:12px 16px;background:var(--soft);text-align:center;font-size:12px}.preview-note p{margin:0}.preview-member button:disabled{cursor:default;opacity:.65}.preview-member .bottom-nav span{font-size:10px}

/* Store account setup and temporary closure. */
.account-password-actions{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0}
.store-lifecycle{margin-top:32px;padding-top:24px;border-top:1px solid var(--line,#dedfd9)}
.store-lifecycle summary{cursor:pointer;font-weight:600;margin-bottom:20px}
.store-temporarily-closed{background:#eeefec;color:#626860}
.store-temporarily-closed .store-photo{filter:grayscale(1);opacity:.65}
.store-temporarily-closed .booking-unavailable{font-size:1.1rem}
.store-temporarily-closed{padding:24px}
.store-temporarily-closed .booking-unavailable{margin-bottom:16px}

.passkey-revoke>summary{width:fit-content;max-width:100%;margin-left:auto;text-align:right;color:#a52a2a;cursor:pointer}

.profile-passkey-button{width:100%;margin-top:16px;background:#fff}
.passkey-explanation h3{font-size:16px;margin:26px 0 12px}.passkey-explanation ol{padding-left:24px}.passkey-explanation li{margin-bottom:12px}
/* Match the intro video's matte so its portrait edges do not form vertical seams. */
.splash,.splash video{background:#fbf8f6}

/* Keep the initial video surface and the underlying page out of Safari's first paint. */
.splash{isolation:isolate;overflow:hidden;z-index:100}
.splash video{visibility:hidden}
.splash.video-ready video{visibility:visible}
body.intro-active> :not(.splash){visibility:hidden}

.splash video::-webkit-media-controls-start-playback-button{display:none!important;-webkit-appearance:none}

/* Let the gift artwork show through; white text halos preserve letter edges. */
.custom-coupon-scene>.editorial-heading,.custom-coupon-scene>.coupon,.birthday-coupon-page>.birthday-glass{text-shadow:0 1px 1px rgba(255,255,255,.95),0 0 2px rgba(255,255,255,.85)}
.custom-coupon-scene>.coupon .muted,.birthday-glass .muted{color:#394136}
.custom-coupon-scene .button,.custom-coupon-scene button,.birthday-glass .button,.birthday-glass button{text-shadow:none}
/* Coupon text: two points larger, preserving the existing hierarchy. */
.coupon-page{font-size:calc(15px + 2pt)}
.coupon-page>.editorial-heading h1{font-size:calc(27px + 2pt)}
.coupon-page>.editorial-heading p,.coupon-page .small{font-size:calc(12px + 2pt)}
.coupon-page .coupon h2{font-size:calc(18px + 2pt)}
.coupon-page .coupon-code{font-size:calc(20px + 2pt)}
.coupon-page .button,.coupon-page button,.coupon-page .coupon-used-status p{font-size:calc(14px + 2pt)}
.coupon-page .coupon-used-status strong{font-size:calc(24px + 2pt)}
