@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700;800;900&display=swap');
*{box-sizing:border-box}body{margin:0;font-family:'Noto Sans JP',system-ui,sans-serif;background:#f5efe5;color:#151515}.landing{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#f6efe5,#ded5c7)}.landing-card{width:min(520px,92vw);background:white;border-radius:32px;padding:34px;box-shadow:0 24px 70px #0002;display:grid;gap:14px}.logo{font-size:46px;font-weight:900;letter-spacing:-.06em}.landing-card a,.landing-card button{border:0;text-decoration:none;text-align:center;background:#111;color:white;border-radius:18px;padding:16px;font-weight:900;font-size:18px}.landing-card button{background:#eee6d9;color:#111}.mobile-shell{max-width:520px;margin:0 auto;background:#fbfaf6;min-height:100vh;box-shadow:0 0 60px #0002}.hero{height:230px;padding:24px;background:radial-gradient(circle at 85% 8%,#ffbf65,transparent 18%),linear-gradient(135deg,#111,#2d1b13 55%,#67401f);color:white}.topline{display:flex;justify-content:space-between;align-items:center;font-size:14px}.brand-actions{display:flex;align-items:center;gap:10px}.topline b{font-size:24px;letter-spacing:-.05em}.notification-toggle{border:1px solid rgba(255,255,255,.7);background:rgba(255,255,255,.12);color:#fff;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:900;line-height:1;}.notification-toggle.is-on{background:#94ffc1;color:#101010;border-color:#94ffc1}.hero h1{margin:62px 0 8px;font-size:31px;letter-spacing:-.04em}.hero p{margin:0;color:#ffffffcc}.summary{margin:-28px 18px 18px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;position:relative}.summary div{background:#111;color:white;border-radius:22px;padding:15px 12px;box-shadow:0 14px 34px #0003;min-width:0}.summary span,.service-card span{display:block;color:#bbb;font-size:12px;font-weight:800;white-space:nowrap}.summary strong,.service-card strong{font-size:32px;letter-spacing:-.06em;color:#94ffc1}.summary strong.seat-full{color:#ff8f8f;font-size:26px;letter-spacing:-.04em}.summary strong.seat-open{font-size:24px;letter-spacing:-.04em}.seat-waitlist-button{width:100%;margin-top:8px;border:0;border-radius:12px;background:#7c3aed;color:#fff;padding:9px 4px;font-size:12px;font-weight:900;box-shadow:0 6px 0 rgba(0,0,0,.2)}.panel{margin:18px;padding:18px;background:white;border:1px solid #eee4d8;border-radius:28px;box-shadow:0 12px 32px #1e160c12}.panel.dark{margin:0;background:#1d1d1d;border-color:#333;color:white;height:100%}.panel-head{display:flex;justify-content:space-between;gap:12px;align-items:end;margin-bottom:14px}.panel h2{margin:0;font-size:22px;letter-spacing:-.04em}.panel small{color:#796f62;font-weight:800}.dark small{color:#aaa}.floor{position:relative;background:#fff;border:1px solid #eee4d8;border-radius:24px;overflow:hidden}.user-floor{height:500px}.store-floor{height:690px;background:#252525;border-color:#3a3a3a}.entrance{position:absolute;left:14px;top:16px;bottom:16px;width:68px;border-radius:18px;background:linear-gradient(#eee4d7,#d6caba);display:flex;align-items:center;justify-content:center;writing-mode:vertical-rl;font-size:12px;font-weight:900;color:#776d60;letter-spacing:.12em}.seat{position:absolute;border:3px solid #ddd;background:#fff;color:#222;display:flex;align-items:center;justify-content:center;text-align:center;font-weight:900;box-shadow:0 9px 22px #0001;cursor:pointer;user-select:none;transition:.12s transform}.seat:active{transform:scale(.96)}.counter{border-radius:50%}.sofa{border-radius:18px;line-height:1.25}.free{border-color:#2ed987!important;background:#eafff3!important;color:#087a42!important}.few{border-color:#f2b443!important;background:#fff6dd!important;color:#9c6100!important}.busy{border-color:#d9d9d9!important;background:#eee!important;color:#999!important}.seat.selected{outline:4px solid #111;outline-offset:3px}.store-floor .free{background:#143b26!important;color:#9dffc9!important}.store-floor .few{background:#3c2b12!important;color:#ffd080!important}.store-floor .busy{background:#303030!important;color:#777!important;border-color:#555!important}.store-floor .seat.selected{outline-color:white}.darts-area{position:absolute;right:16px;bottom:22px;border-radius:18px;background:#171717;color:white;display:flex;align-items:center;justify-content:center;text-align:center;font-weight:900}.legend{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0 0}.legend span{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:900;color:#5e564d}.dark-legend span{color:#ccc}.legend i{width:13px;height:13px;border-radius:4px;display:inline-block}.legend i.free{background:#2ed987!important}.legend i.few{background:#f2b443!important}.legend i.busy{background:#d9d9d9!important}.legend i.selected{background:#111!important}.photos{display:flex;gap:10px;margin:0 18px 18px}.photos div{height:78px;flex:1;border-radius:18px;background:linear-gradient(135deg,#15110f,#704421);color:white;display:flex;align-items:end;justify-content:end;padding:10px;font-size:12px;font-weight:900}.photos div:nth-child(2){background:linear-gradient(135deg,#1b1714,#9a6535)}.photos div:nth-child(3){background:linear-gradient(135deg,#151515,#5d3274)}.reserve-card{margin:18px;padding:18px;background:#111;color:white;border-radius:28px}.reserve-card h2{margin:0 0 12px;font-size:20px}.form-row{display:grid;grid-template-columns:1fr 120px;gap:10px;margin-bottom:10px}input,select,textarea{width:100%;border:0;border-radius:14px;padding:14px;font:inherit;font-weight:800;background:#2a2a2a;color:white}textarea{height:70px;resize:none}form button{width:100%;margin-top:10px;border:0;border-radius:17px;padding:16px;background:white;color:#111;font-size:18px;font-weight:900}.notice{color:#c7c7c7;font-size:12px;line-height:1.5}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#111;color:white;border-radius:999px;padding:13px 18px;font-weight:900;box-shadow:0 12px 32px #0004;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1}.store-body{background:#0c0c0c}.tablet{height:100vh;min-height:760px;display:grid;grid-template-columns:430px 1fr;color:white}.reservations{background:#f8f5ef;color:#151515;padding:28px;overflow:auto}.brand-row{display:flex;justify-content:space-between;align-items:start}.brand-row b{font-size:28px;font-weight:900;letter-spacing:-.06em}.brand-row h1,.operator h1{margin:8px 0 0;font-size:30px;letter-spacing:-.04em}.brand-row button,.ops button{border:0;border-radius:14px;padding:12px 14px;font-weight:900}.muted{color:#71685d;font-weight:800}.reservation{background:white;border:1px solid #e9dfd1;border-radius:22px;padding:16px;margin:14px 0;box-shadow:0 10px 28px #1e160c12}.reservation h3{margin:0 0 10px;font-size:21px}.reservation p{margin:5px 0;color:#5e574e;font-weight:800}.operator{padding:20px 28px 28px}.op-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:18px}.op-head p{color:#aaa;font-weight:800;margin:6px 0}.ops{display:flex;gap:10px}.ops button:last-child{background:white;color:#111}.ops button:first-child{background:#2c2c2c;color:white}.op-grid{display:grid;grid-template-columns:1fr 320px;gap:18px;height:calc(100vh - 120px);min-height:640px}.service-panel{display:grid;gap:14px;align-content:start}.service-card{background:#1f1f1f;border:1px solid #333;border-radius:26px;padding:20px}.service-card.main{background:linear-gradient(135deg,#202020,#141414)}.service-card strong{display:block;font-size:48px}.counter-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.counter-actions button{border:0;border-radius:14px;padding:14px 8px;font-weight:900;color:white;background:#123621}.counter-actions button:last-child{background:#3a2512;color:#ffc470}.hint{background:#2a241c;border:1px solid #4b3923;color:#ffd48d;border-radius:22px;padding:16px;font-size:14px;line-height:1.6;font-weight:800}@media(max-width:900px){.tablet{grid-template-columns:1fr;height:auto}.op-grid{grid-template-columns:1fr;height:auto}.store-floor{height:560px}}
/* layout update: reference sketch uses a counter band, not an entrance band */
.counter-zone{position:absolute;left:14px;top:8%;height:73%;width:68px;border-radius:18px;background:linear-gradient(#eee4d7,#d6caba);display:flex;align-items:center;justify-content:center;writing-mode:vertical-rl;font-size:13px;font-weight:900;color:#776d60;letter-spacing:.18em;z-index:0}.door-label{position:absolute;left:14px;bottom:6%;width:68px;border-radius:14px;background:#2a2118;color:#f8ead8;text-align:center;font-size:12px;font-weight:900;padding:9px 4px;letter-spacing:.04em}.darts-area{right:2%!important;top:9%!important;bottom:9%!important;width:10%!important;display:flex!important;flex-direction:column!important;gap:7%!important;background:transparent!important;color:inherit!important;border-radius:0!important}.darts-slot{flex:1;border-radius:16px;background:#171717;color:white;display:flex;align-items:center;justify-content:center;text-align:center;font-size:10px;font-weight:900;line-height:1.15;letter-spacing:.02em;box-shadow:0 8px 20px #0002}.store-floor .darts-slot{background:#101010;border:1px solid #444;color:#eee}.seat{z-index:1}.darts-area{z-index:0}.door-label{z-index:0}


/* layout correction: keep counter band + door, match supplied floor image for seats/darts */
.floor .seat.counter{border-radius:999px;font-size:clamp(12px,1.6vw,18px);padding:0;}
.floor .seat.sofa{border-radius:18px;white-space:pre-line;line-height:1.2;}
.user-floor .seat.sofa{font-size:clamp(10px,2.35vw,13px);letter-spacing:-.05em;line-height:1.16;}
.darts-area{right:1.5%!important;top:7%!important;bottom:auto!important;height:52%!important;width:8%!important;display:flex!important;flex-direction:column!important;justify-content:space-between!important;gap:0!important;background:transparent!important;border:0!important;box-shadow:none!important;pointer-events:none!important;z-index:0!important;}
.darts-slot,.store-floor .darts-slot{flex:0 0 auto!important;height:44px!important;border:0!important;background:transparent!important;box-shadow:none!important;color:#fff!important;display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;font-size:clamp(9px,1.2vw,14px)!important;font-weight:900!important;line-height:1.08!important;letter-spacing:.02em!important;text-shadow:0 2px 8px rgba(0,0,0,.85)!important;}


/* door-label layout: entrance + wc */
.door-label{line-height:1.25;white-space:normal;}


/* darts lanes: hard square clickable boxes */
.darts-area{pointer-events:auto!important;z-index:2!important;right:1.5%!important;top:7%!important;height:52%!important;width:9.5%!important;}
.darts-slot,.store-floor .darts-slot{height:58px!important;border-radius:3px!important;border:2px solid #f2f2f2!important;background:#151515!important;color:#fff!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.16),0 8px 18px rgba(0,0,0,.35)!important;cursor:pointer!important;font-size:clamp(9px,1.1vw,13px)!important;text-shadow:none!important;}

/* floor decorations: visual-only guard and stairs/rail divider */
.floor-guard{position:absolute;left:40%;top:5.1%;width:1.5%;height:70.7%;border-radius:999px;background:rgba(80,88,96,.55);box-shadow:0 0 0 1px rgba(255,255,255,.06),0 10px 22px rgba(0,0,0,.22);z-index:0;pointer-events:none;}
.floor-stairs{position:absolute;left:31.6%;top:80.3%;width:9%;height:15.1%;display:flex;align-items:flex-end;justify-content:space-between;padding:0 .4%;z-index:0;pointer-events:none;}
.floor-stair{display:block;width:14%;height:76%;background:rgba(80,88,96,.55);border-radius:999px;box-shadow:0 0 0 1px rgba(255,255,255,.06),0 6px 14px rgba(0,0,0,.18);}
.user-floor .counter-zone{left:6px;width:36px;border-radius:12px;font-size:10px;letter-spacing:.12em;}
.user-floor .door-label{left:6px;width:36px;border-radius:10px;font-size:10px;padding:7px 2px;}
.user-floor .floor-guard{left:39.9%;top:5%;width:1.6%;height:72%;}
.user-floor .floor-stairs{left:30.4%;top:80%;width:9.8%;height:16%;}
.darts-slot.free{border-color:#f8f8f8!important;background:#141414!important;}
.darts-slot.busy{border-color:#d7d7d7!important;background:#4b4b4b!important;color:#f0f0f0!important;}
.darts-slot:active{transform:scale(.96);}

/* user closed/off-hours floor: make the whole customer map visually unavailable */
body.user-page .user-floor.is-closed{
  position:relative;
  background:linear-gradient(135deg,#eeeeee,#d6d6d6)!important;
  border-color:#b9b9b9!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.55),0 12px 26px rgba(0,0,0,.12)!important;
}
body.user-page .user-floor.is-closed .seat,
body.user-page .user-floor.is-closed .darts-slot,
body.user-page .user-floor.is-closed .counter-zone,
body.user-page .user-floor.is-closed .door-label,
body.user-page .user-floor.is-closed .floor-guard,
body.user-page .user-floor.is-closed .floor-stair{
  filter:grayscale(1)!important;
  opacity:.38!important;
  background:#8f949b!important;
  border-color:#777!important;
  color:#f3f3f3!important;
  box-shadow:none!important;
  text-shadow:none!important;
  cursor:not-allowed!important;
}
body.user-page .user-floor.is-closed .darts-area,
body.user-page .user-floor.is-closed .seat{
  pointer-events:none!important;
}
body.user-page .user-floor.is-closed::after{
  content:'営業時間外';
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  z-index:5;
  padding:10px 18px;
  border-radius:999px;
  background:rgba(24,24,24,.76);
  color:#fff;
  font-weight:900;
  font-size:clamp(18px,5vw,28px);
  letter-spacing:.04em;
  box-shadow:0 10px 30px rgba(0,0,0,.22);
  pointer-events:none;
}
body.store-body .store-floor.is-closed{
  position:relative;
  background:linear-gradient(135deg,#eeeeee,#d6d6d6)!important;
  border-color:#b9b9b9!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.55),0 12px 26px rgba(0,0,0,.12)!important;
}
body.store-body .store-floor.is-closed .seat,
body.store-body .store-floor.is-closed .darts-slot,
body.store-body .store-floor.is-closed .counter-zone,
body.store-body .store-floor.is-closed .door-label,
body.store-body .store-floor.is-closed .floor-guard,
body.store-body .store-floor.is-closed .floor-stair{
  filter:grayscale(1)!important;
  opacity:.38!important;
  background:#8f949b!important;
  border-color:#777!important;
  color:#f3f3f3!important;
  box-shadow:none!important;
  text-shadow:none!important;
  cursor:not-allowed!important;
}
body.store-body .store-floor.is-closed .darts-area,
body.store-body .store-floor.is-closed .seat{
  pointer-events:none!important;
}
body.store-body .store-floor.is-closed::after{
  content:'営業時間外';
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  z-index:5;
  padding:10px 18px;
  border-radius:999px;
  background:rgba(24,24,24,.76);
  color:#fff;
  font-weight:900;
  font-size:clamp(18px,5vw,28px);
  letter-spacing:.04em;
  box-shadow:0 10px 30px rgba(0,0,0,.22);
  pointer-events:none;
}

/* store-only darts crowded toggle */
.crowded-toggle{width:100%;margin-top:12px;border:2px solid #2a2a2a;background:#fff;color:#171717;border-radius:12px;padding:12px 10px;font-weight:900;font-size:13px;letter-spacing:.01em;box-shadow:0 5px 0 #151515;cursor:pointer;}
.crowded-toggle.active{background:#171717;color:#fff;border-color:#ffb84d;box-shadow:0 5px 0 #8a4f00;}
.crowded-toggle:active{transform:translateY(3px);box-shadow:0 2px 0 #151515;}


/* lower service hint after darts crowded button */
.service-panel .hint{margin-top:22px;}

/* user-side crowded darts summary */
.summary strong.crowded-label{font-size:20px;letter-spacing:-.04em;line-height:1.15;color:#ffcf7a;}

/* in-app popup notifications */
.app-popup{position:fixed;inset:0;display:none;align-items:flex-start;justify-content:center;padding:18px;z-index:9999;background:rgba(0,0,0,.28);}
.app-popup.show{display:flex;}
.app-popup-card{position:relative;width:min(420px,94vw);margin-top:18px;background:#fff;color:#151515;border-radius:22px;padding:20px;box-shadow:0 24px 80px rgba(0,0,0,.35);border:2px solid #111;}
.app-popup-card b{display:block;font-size:20px;font-weight:900;margin-right:32px;}
.app-popup-card p{margin:10px 0 0;line-height:1.55;font-weight:700;color:#3a3028;}
.app-popup-close{position:absolute;right:12px;top:10px;border:0;background:#eee;border-radius:999px;width:32px;height:32px;font-size:20px;font-weight:900;cursor:pointer;}
.app-popup-action{width:100%;margin-top:14px;border:0;border-radius:14px;background:#111;color:#fff;padding:13px;font-weight:900;cursor:pointer;}
.user-reservation-status-host{display:block;margin:0 18px 12px;}
.user-reservation-status-host:empty{display:none;}
.own-reservation-status{display:none;margin-bottom:12px;border:2px solid #111;background:#fff8df;border-radius:18px;padding:14px;}
.own-reservation-status.show{display:block;}
.own-reservation-status b{font-size:17px;font-weight:900;}
.own-reservation-status p{margin:8px 0 0;color:#3a3028;font-weight:800;line-height:1.5;}
.own-reservation-status button{width:100%;margin-top:10px;border:0;border-radius:14px;background:#d9480f;color:#fff;padding:12px;font-weight:900;}
.own-reservation-status .mini-note{font-size:12px;color:#7a6a5b;}
.roulette-benefit-user{margin-top:10px;border:2px solid #d9b45f;background:#fff2b8;border-radius:14px;padding:12px;}
.roulette-benefit-user b{display:block;color:#111;}
.roulette-benefit-link,.roulette-benefit-skip{display:block;width:100%;margin-top:8px;border:0;border-radius:13px;padding:12px;text-align:center;text-decoration:none;font-weight:1000;}
.roulette-benefit-link{background:#111;color:#fff;}
.roulette-benefit-skip{background:#eee4d8;color:#111;}
.roulette-choice-actions{display:grid;grid-template-columns:1fr;gap:7px;margin:8px auto 0;width:min(100%,620px);position:relative;z-index:2;}
.roulette-choice-popup.dope-reservation-roulette{width:min(740px,96vw);max-height:calc(100dvh - 6px);overflow:auto;margin-top:-10px;padding:0;border:0;background:transparent;color:#fff;box-shadow:none;}
.dope-reservation-roulette .app-popup-close{z-index:10;right:12px;top:12px;background:#efe0b4;color:#16120a;box-shadow:0 5px 16px rgba(0,0,0,.45);}
.dope-reservation-roulette .vip-card{position:relative;overflow:hidden;min-height:auto;padding:14px 7px 14px;border:1px solid rgba(214,173,82,.36);border-radius:28px;background:linear-gradient(135deg,rgba(255,255,255,.07),transparent 22%),linear-gradient(180deg,rgba(18,18,24,.96),rgba(5,5,7,.94));box-shadow:0 22px 72px rgba(0,0,0,.54),inset 0 0 0 1px rgba(255,255,255,.05);text-align:center;}
.dope-reservation-roulette .vip-card::before{content:"";position:absolute;inset:8px;border:1px solid rgba(214,173,82,.22);border-radius:22px;pointer-events:none;}
.dope-reservation-roulette .card-head{position:relative;z-index:2;}
.dope-reservation-roulette .kicker{margin:0 0 4px;color:#ffe3a0;font-size:10px;letter-spacing:.22em;font-weight:900;}
.dope-reservation-roulette h1{margin:0;color:#fff8e8;font-size:clamp(30px,8vw,52px);line-height:.96;letter-spacing:-.055em;font-weight:1000;}
.dope-reservation-roulette .status{display:inline-flex;align-items:center;justify-content:center;min-height:27px;margin:8px 0 0;padding:5px 12px;border:1px solid rgba(214,173,82,.32);border-radius:999px;color:#b9aa86;background:rgba(0,0,0,.24);font-size:12px;font-weight:900;}
.dope-reservation-roulette .status.used{color:#8f886f;}
.roulette-choice-note{position:relative;z-index:2;margin:7px auto 0!important;width:min(620px,94%);color:#d8caa4!important;font-size:11.5px;font-weight:900!important;line-height:1.28!important;}
.dope-reservation-roulette .roulette-wrap{position:relative;z-index:2;--pointer-height:clamp(28px,5.2vw,42px);width:min(84vw,440px);aspect-ratio:1;margin:calc(7px + var(--pointer-height)) auto 7px;display:grid;place-items:center;}
.dope-reservation-roulette canvas{width:100%;height:100%;filter:drop-shadow(0 18px 36px rgba(0,0,0,.58));}
.dope-reservation-roulette .pointer{position:absolute;z-index:5;top:0;left:50%;transform:translate(-50%,-100%);width:clamp(24px,4.5vw,36px);height:var(--pointer-height);clip-path:polygon(50% 100%,0 0,100% 0);background:linear-gradient(180deg,#fff7df,#c99637);filter:drop-shadow(0 4px 6px rgba(0,0,0,.52));pointer-events:none;}
.dope-reservation-roulette .center-spin{position:absolute;z-index:6;width:clamp(82px,23vw,120px);height:clamp(82px,23vw,120px);border:1px solid rgba(255,240,200,.8);border-radius:50%;color:#16120a;background:radial-gradient(circle at 35% 25%,#fff9df 0 12%,#f2cf7b 36%,#a97626 100%);box-shadow:0 12px 28px rgba(0,0,0,.54),inset 0 3px 12px rgba(255,255,255,.48);font-size:clamp(21px,5.6vw,30px);font-weight:1000;cursor:pointer;}
.dope-reservation-roulette .center-spin:disabled{cursor:not-allowed;color:#6d644c;background:linear-gradient(135deg,#39342a,#1d1c1a);border-color:rgba(214,173,82,.22);box-shadow:inset 0 0 0 1px rgba(255,255,255,.04);}
.dope-reservation-roulette .center-spin:active:not(:disabled){transform:scale(.975);}
.dope-reservation-roulette .result-card{position:relative;z-index:2;width:min(100%,620px);margin:0 auto;padding:10px 12px 11px;border-radius:18px;border:1px solid rgba(214,173,82,.35);background:linear-gradient(135deg,rgba(214,173,82,.14),transparent 35%),rgba(0,0,0,.34);}
.dope-reservation-roulette .result-label{margin:0 0 4px;color:#b9aa86;font-size:10px;letter-spacing:.16em;font-weight:900;}
.dope-reservation-roulette .result-value{min-height:1.1em;color:#fff8e8;font-size:clamp(24px,6.4vw,40px);line-height:1.02;font-weight:1000;word-break:keep-all;overflow-wrap:anywhere;}
.dope-reservation-roulette .result-value.hit{color:#ffe3a0;text-shadow:0 0 20px rgba(214,173,82,.35);}
.dope-reservation-roulette .vip-card.locked .result-card{background:linear-gradient(135deg,rgba(214,173,82,.20),rgba(0,0,0,.38));}
.roulette-choice-popup .roulette-skip-reserve{width:100%;border:1px solid rgba(255,240,200,.8);border-radius:13px;background:#fff;color:#111;padding:10px 12px;font-weight:900;cursor:pointer;}
@media (max-height:710px){.dope-reservation-roulette .vip-card{padding:8px 3px 10px}.dope-reservation-roulette h1{font-size:clamp(28px,7.2vw,44px)}.dope-reservation-roulette .status{min-height:24px;margin-top:5px;padding:4px 10px;font-size:11px}.roulette-choice-note{margin-top:5px!important;font-size:11px;line-height:1.2!important}.dope-reservation-roulette .roulette-wrap{--pointer-height:clamp(24px,4.7vw,34px);width:min(76vw,340px);margin:calc(4px + var(--pointer-height)) auto 6px}.dope-reservation-roulette .result-card{padding:8px 10px 9px;border-radius:16px}.dope-reservation-roulette .result-value{font-size:clamp(22px,5.9vw,34px)}.roulette-choice-actions{margin-top:6px}.roulette-choice-popup .roulette-skip-reserve{padding:7px 10px}}
@media (max-height:620px){.dope-reservation-roulette .kicker{font-size:9px;margin-bottom:3px}.dope-reservation-roulette h1{font-size:clamp(26px,6.8vw,38px)}.roulette-choice-note{font-size:10.5px;line-height:1.15!important}.dope-reservation-roulette .roulette-wrap{width:min(72vw,310px);margin:calc(3px + var(--pointer-height)) auto 5px}.dope-reservation-roulette .result-card{padding:7px 9px 8px}.dope-reservation-roulette .result-label{font-size:9px;margin-bottom:3px}.dope-reservation-roulette .result-value{font-size:clamp(20px,5.5vw,30px)}}
@media (prefers-reduced-motion:reduce){.dope-reservation-roulette .center-spin:active:not(:disabled){transform:none;}}
.roulette-choice-result{border:2px solid #d9b45f;background:#fff2b8;border-radius:14px;padding:14px;color:#111!important;font-size:18px;font-weight:1000!important;text-align:center;}
.reservation-roulette-line{border:1px solid #d9b45f;background:#fff7d6;color:#4b3411!important;border-radius:12px;padding:8px 10px;font-weight:1000!important;}
.user-push-status{margin-bottom:12px;border:2px solid #111;background:#eef7ff;border-radius:18px;padding:14px;box-shadow:0 8px 0 rgba(17,17,17,.08);}
.user-push-status.waitlist-only{background:#fff8df;border-color:#d99a22;}
.user-push-status b{font-size:17px;font-weight:900;}
.user-push-status p{margin:8px 0 0;color:#26313a;font-weight:800;line-height:1.45;font-size:12px;}
.user-push-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;}
.user-push-status.waitlist-only .user-push-actions{grid-template-columns:1fr;}
.user-push-actions button{border:0;border-radius:14px;background:#111;color:#fff;padding:12px;font-weight:900;}
.user-push-actions button:last-child{background:#7c3aed;}

/* user-side 360/wide interior view */
.view360{overflow:hidden;}
.view360 .panel-head{margin-bottom:10px;}
.view360-frame{position:relative;width:100%;height:230px;border-radius:22px;overflow-x:auto;overflow-y:hidden;background:#111;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12),0 12px 30px rgba(0,0,0,.18);scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;}
.view360-track{height:100%;display:flex;gap:10px;padding:0;}
.view360-track figure{position:relative;flex:0 0 88%;height:100%;margin:0;scroll-snap-align:center;background:#111;}
.view360-frame img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;}
.view360-track figcaption{position:absolute;left:12px;bottom:12px;background:rgba(0,0,0,.62);color:#fff;border:1px solid rgba(255,255,255,.24);border-radius:999px;padding:6px 10px;font-size:11px;font-weight:900;pointer-events:none;}
.view360-frame::after{content:'横にスライド';position:sticky;right:12px;bottom:12px;float:right;display:block;width:max-content;margin-top:-42px;margin-right:12px;background:rgba(0,0,0,.62);color:#fff;border:1px solid rgba(255,255,255,.24);border-radius:999px;padding:6px 10px;font-size:11px;font-weight:900;pointer-events:none;}
.view360-note{margin:10px 0 0!important;font-size:12px;line-height:1.45;}

/* entrance electronic vacancy board */
.board-body{margin:0;background:#050505;color:#fff;font-family:'Noto Sans JP',system-ui,sans-serif;min-height:100dvh;overflow:hidden;}
.board-screen{min-height:100dvh;padding:clamp(18px,4vw,44px);display:grid;grid-template-rows:auto 1fr auto auto auto;gap:clamp(14px,2.5vw,28px);background:radial-gradient(circle at 80% 12%,rgba(255,255,255,.10),transparent 18%),linear-gradient(135deg,#101010,#181818);}
.board-screen.is-free{background:radial-gradient(circle at 80% 12%,rgba(148,255,193,.22),transparent 20%),linear-gradient(135deg,#05130b,#10291a 58%,#041009);}
.board-screen.is-full{background:radial-gradient(circle at 80% 12%,rgba(255,92,92,.22),transparent 20%),linear-gradient(135deg,#170505,#351010 58%,#100404);}
.board-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;color:#ffffffcc;font-weight:900;}
.board-top b{display:block;font-size:clamp(26px,5vw,58px);letter-spacing:-.06em;color:#fff;}
.board-top span,.board-top time{display:block;font-size:clamp(12px,1.8vw,22px);color:#ffffffaa;}
.board-status{display:grid;place-items:center;text-align:center;border:3px solid rgba(255,255,255,.18);border-radius:clamp(28px,5vw,64px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),0 32px 100px rgba(0,0,0,.35);}
.board-status p{margin:0;font-size:clamp(24px,4vw,54px);font-weight:900;color:#ffffffcc;}
.board-status h1{margin:0;font-size:clamp(76px,18vw,230px);line-height:.95;letter-spacing:-.09em;text-shadow:0 12px 40px rgba(0,0,0,.38);}
.board-status small{font-size:clamp(20px,3.2vw,46px);font-weight:900;color:#ffffffcc;}
.board-status.is-free h1{color:#76ff9f;}
.board-status.is-full h1{color:#ff5c5c;}
.board-counts{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(10px,2vw,22px);}
.board-counts div{border:1px solid rgba(255,255,255,.16);border-radius:24px;background:rgba(255,255,255,.08);padding:clamp(12px,2vw,24px);text-align:center;}
.board-counts span{display:block;color:#ffffffa8;font-weight:900;font-size:clamp(12px,1.7vw,22px);}
.board-counts strong{display:block;margin-top:3px;font-size:clamp(30px,5vw,70px);line-height:1;color:#fff;}
.board-indicators{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;}
.board-indicators span{border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(255,255,255,.08);padding:9px 14px;font-size:clamp(12px,1.4vw,18px);font-weight:900;color:#ffffffc8;}
.board-indicators span.ok{background:rgba(37,211,102,.18);border-color:rgba(118,255,159,.45);color:#adffc7;}
.board-indicators span.ng{background:rgba(255,92,92,.16);border-color:rgba(255,92,92,.38);color:#ffc4c4;}
.board-note{text-align:center;margin:0;color:#ffffff99;font-weight:800;font-size:clamp(12px,1.5vw,20px);}

/* store management reset buttons */
.push-status{margin:-6px 0 8px;padding:8px 10px;border-radius:12px;background:#fff7df;color:#2a2118;border:1px solid #e4c977;font-size:12px;font-weight:800;line-height:1.45;}
.push-status b{font-weight:900;}
.reset-mini{border:0;border-radius:999px;background:#f1e7d7;color:#151515;padding:8px 11px;font-size:12px;font-weight:900;box-shadow:0 3px 0 #c8b79d;cursor:pointer;white-space:nowrap;}
.reset-mini:active{transform:translateY(2px);box-shadow:0 1px 0 #c8b79d;}
.reset-all{background:#111;color:#fff;box-shadow:0 3px 0 #000;}
.panel-head>div{min-width:0;}
.service-card{position:relative;}
.service-card .service-reset{position:absolute;top:10px;right:10px;padding:6px 9px;font-size:11px;background:#fff3dd;box-shadow:0 2px 0 #d6bc8d;}
.service-card span{padding-right:68px;}


/* store daily reservation summary */
.daily-summary{margin:10px 0 12px;padding:12px;border:2px solid #111;border-radius:18px;background:#fff;box-shadow:0 6px 0 rgba(17,17,17,.08);display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.daily-summary>b{grid-column:1/-1;font-size:13px;font-weight:900;letter-spacing:.02em;}
.daily-summary div{border-radius:14px;background:#111;color:#fff;padding:10px;text-align:center;}
.daily-summary span{display:block;color:#cfcfcf;font-size:11px;font-weight:900;}
.daily-summary strong{display:block;margin-top:2px;color:#94ffc1;font-size:24px;line-height:1;font-weight:900;letter-spacing:-.05em;}

/* store reservation manual management */
.reservation{position:relative;}
.reservation-passed{border:2px solid #e29b30;background:#fff8ec;}
.reservation-overdue{border:3px solid #ef4444!important;background:#fff1f2!important;box-shadow:0 0 0 2px rgba(239,68,68,.12),0 8px 0 rgba(239,68,68,.12)!important;}
.elapsed-badge{display:inline-block;margin-left:6px;padding:3px 7px;border-radius:999px;background:#dc2626;color:#fff;font-size:11px;font-weight:900;vertical-align:middle;}
.reservation-minimize-btn,.reservation-apply-btn{position:absolute;top:8px;border:0;border-radius:999px;color:#fff;padding:8px 11px;font-size:12px;font-weight:900;box-shadow:0 2px 0 #000;cursor:pointer;z-index:2;min-height:34px;touch-action:manipulation;}
.reservation-minimize-btn{right:8px;background:#111;}
.reservation-apply-btn{right:66px;background:#146c43;}
.reservation-minimize-btn:active,.reservation-apply-btn:active{transform:translateY(1px);box-shadow:0 1px 0 #000;}
.reservation-minimize-btn:disabled{background:#9ca3af!important;color:#f3f4f6!important;box-shadow:none!important;cursor:not-allowed!important;opacity:.74;transform:none!important;pointer-events:none!important;}
.reservation-minimized .reservation-minimize-btn:disabled{transform:translateY(-50%)!important;}
.reservation-mini-summary{display:none!important;margin:4px 0 0;padding-right:142px;font-size:12px;font-weight:1000;line-height:1.28;color:#111;white-space:nowrap;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;}
.reservation-minimized{min-height:50px;padding:10px 150px 10px 10px;}
.reservation-minimized .reservation-minimize-btn{top:50%;right:8px;transform:translateY(-50%);}
.reservation-minimized .reservation-apply-btn{top:50%;right:66px;transform:translateY(-50%);}
.reservation-minimized h3,.reservation-minimized .reservation-detail{display:none;}
.reservation-minimized .reservation-mini-summary{display:block!important;margin:0!important;padding-right:0!important;color:#111!important;font-weight:1000!important;line-height:34px!important;}
.store-reply-box{display:grid;gap:6px;margin:8px 0;padding:8px;border:1px solid #e5e7eb;border-radius:12px;background:#fafafa;}
.store-reply-box label{display:grid;gap:4px;font-size:12px;font-weight:900;color:#111;}
.store-reply-box textarea{width:100%;box-sizing:border-box;border:1px solid #d1d5db;border-radius:10px;padding:8px;font:inherit;resize:vertical;background:#fff!important;color:#111!important;-webkit-text-fill-color:#111!important;caret-color:#111;}
.store-reply-box textarea::placeholder{color:#6b7280;}
.store-reply-box button{border:0;border-radius:999px;background:#111;color:#fff;padding:5px 10px;min-height:36px;height:auto;line-height:1.1;font-weight:900;cursor:pointer;align-self:end;}
.store-reply-line,.store-reply-user{font-weight:900;color:#111;}
.reservation-actions{display:grid;gap:6px;margin-top:8px;}
.reservation .complete-btn,.reservation .complete-release-btn{width:100%;border:0;border-radius:12px;padding:10px 12px;background:#2a2a2a;color:#fff;font-weight:900;cursor:pointer;}
.reservation .complete-release-btn{background:#146c43;}
.reservation .complete-btn:active,.reservation .complete-release-btn:active{transform:scale(.98);}

/* store: smartphone landscape support */
@media (orientation: landscape) and (max-height: 520px) {
  html,.store-body{width:100%;max-width:100%;overflow-x:hidden;background:#0c0c0c;}
  .tablet{width:100vw;height:100vh;min-height:0;grid-template-columns:120px minmax(0,1fr);overflow:hidden;}
  .reservations{padding:7px;max-height:100vh;overflow:auto;}
  .brand-row{gap:4px;align-items:center;}
  .brand-row b{font-size:14px;}
  .brand-row h1,.operator h1{font-size:14px;margin:1px 0 0;}
  .brand-row button,.ops button{padding:6px 7px;border-radius:8px;font-size:10px;}
  .push-status{margin:-2px 0 5px;padding:5px 7px;border-radius:8px;font-size:8px;line-height:1.25;max-height:30px;overflow:auto;}
  .reset-mini{padding:5px 7px;font-size:9px;box-shadow:0 2px 0 #c8b79d;}
  .service-card .service-reset{top:6px;right:6px;padding:4px 6px;font-size:8px;}
  .service-card span{padding-right:44px;}
  .muted{display:none;}
  .reservation{padding:7px;margin:6px 0;border-radius:12px;}
  .daily-summary{margin:6px 0 8px;padding:7px;border-radius:12px;gap:5px;}
  .daily-summary>b{font-size:10px;}
  .daily-summary div{padding:6px;border-radius:9px;}
  .daily-summary span{font-size:9px;}
  .daily-summary strong{font-size:18px;}
  .reservation h3{font-size:12px;margin:0 0 3px;}
  .reservation p{font-size:10px;margin:1px 0;}
  .reservation .approve-btn,.reservation .complete-btn,.reservation .complete-release-btn{padding:7px 8px;border-radius:9px;font-size:10px;}
  .operator{min-width:0;padding:7px;overflow:hidden;}
  .op-head{margin-bottom:6px;align-items:center;gap:6px;}
  .op-head p{font-size:10px;margin:1px 0;}
  .ops{gap:4px;flex-shrink:0;}
  .op-grid{grid-template-columns:minmax(0,1fr) 128px;gap:6px;height:calc(100vh - 48px);min-height:0;overflow:hidden;}
  .panel.dark{min-width:0;margin:0;padding:7px;border-radius:14px;height:100%;overflow:hidden;}
  .panel-head{margin-bottom:5px;align-items:center;gap:6px;}
  .panel h2{font-size:13px;}
  .panel small{font-size:9px;}
  .store-floor{height:calc(100vh - 112px);min-height:280px;max-height:360px;border-radius:14px;}
  .counter-zone{left:6px;width:40px;border-radius:11px;font-size:9px;}
  .door-label{left:6px;width:40px;border-radius:9px;font-size:8px;padding:5px 1px;}
  .floor .seat.counter{font-size:9px;border-width:2px;}
  .floor .seat.sofa{font-size:9px;border-width:2px;border-radius:10px;}
  .darts-area{width:8.5%!important;right:1%!important;}
  .darts-slot,.store-floor .darts-slot{height:32px!important;font-size:8px!important;border-width:1px!important;}
  .legend{font-size:9px;gap:6px;margin-top:5px;flex-wrap:wrap;}
  .legend i{width:10px;height:10px;}
  .service-panel{min-width:0;gap:6px;overflow:hidden;}
  .service-card{padding:8px;border-radius:13px;}
  .service-card span{font-size:9px;}
  .service-card strong{font-size:23px;}
  .counter-actions{gap:4px;margin-top:6px;}
  .counter-actions button{padding:7px 2px;border-radius:8px;font-size:9px;}
  .crowded-toggle{margin-top:6px;padding:7px 3px;border-radius:8px;font-size:9px;box-shadow:0 2px 0 #151515;}
  .service-panel .hint{display:none;}
}

@media (orientation: landscape) and (max-height: 430px) {
  .tablet{grid-template-columns:96px minmax(0,1fr);}
  .reservations{padding:5px;}
  .brand-row b{display:none;}
  .brand-row h1,.operator h1{font-size:12px;}
  .op-grid{grid-template-columns:minmax(0,1fr) 108px;height:calc(100vh - 40px);}
  .store-floor{height:calc(100vh - 98px);min-height:240px;max-height:310px;}
  .service-card{padding:6px;}
  .service-card strong{font-size:20px;}
  .counter-actions{grid-template-columns:1fr;}
  .counter-actions button{padding:5px 2px;font-size:8px;}
}

/* store tablet layout guard: keep the added Push buttons from breaking tablet view */
.store-body .ops #alertSoundToggle.active{background:#ffb84d;color:#1d1205;box-shadow:0 4px 0 #8a4f00;}
.store-body .ops #alertSoundStop:disabled{opacity:.45;filter:grayscale(1);cursor:not-allowed;}

@media (orientation: landscape) and (min-width: 768px) and (max-width: 1180px) and (min-height: 521px) {
  html,.store-body{width:100%;max-width:100%;overflow-x:hidden;background:#0c0c0c;}
  .store-body .tablet{width:100vw;height:100dvh;min-height:0;grid-template-columns:300px minmax(0,1fr);overflow:hidden;}
  .store-body .reservations{padding:18px;max-height:100dvh;overflow:auto;}
  .store-body .brand-row{gap:8px;align-items:center;}
  .store-body .brand-row b{font-size:22px;}
  .store-body .brand-row h1,.store-body .operator h1{font-size:20px;}
  .store-body .operator{min-width:0;padding:18px;overflow:hidden;}
  .store-body .op-head{margin-bottom:10px;gap:8px;align-items:center;}
  .store-body .ops{gap:6px;flex-shrink:1;}
  .store-body .ops button{padding:8px 10px;border-radius:10px;font-size:12px;}
  .store-body .push-status{margin:-4px 0 8px;padding:7px 9px;border-radius:10px;font-size:11px;line-height:1.35;max-height:48px;overflow:auto;}
  .store-body .op-grid{grid-template-columns:minmax(0,1fr) 240px;gap:12px;height:calc(100dvh - 112px);min-height:0;overflow:hidden;}
  .store-body .panel.dark{min-width:0;margin:0;padding:14px;border-radius:20px;height:100%;overflow:hidden;}
  .store-body .panel-head{margin-bottom:9px;gap:8px;}
  .store-body .panel h2{font-size:18px;}
  .store-body .panel small{font-size:11px;}
  .store-body .store-floor{height:calc(100dvh - 198px);min-height:420px;max-height:610px;border-radius:20px;}
  .store-body .service-panel{min-width:0;gap:10px;overflow:hidden;}
  .store-body .service-card{padding:13px;border-radius:18px;}
  .store-body .service-card span{font-size:11px;}
  .store-body .service-card strong{font-size:30px;}
  .store-body .counter-actions{gap:6px;margin-top:8px;}
  .store-body .counter-actions button{padding:9px 4px;border-radius:10px;font-size:11px;}
  .store-body .crowded-toggle{margin-top:8px;padding:9px 5px;border-radius:10px;font-size:11px;}
  .store-body .service-panel .hint{display:none;}
}

/* store viewport fit: prevent clipped bottom on phones/tablets; allow vertical scroll when content is taller */
:root{--store-vh:100dvh;--store-vw:100vw;}
.store-body{min-height:var(--store-vh);overflow-x:hidden;overflow-y:auto;padding-bottom:max(12px,env(safe-area-inset-bottom));}
.store-body .tablet{min-height:var(--store-vh);height:auto;overflow:visible;}
.store-body .operator,.store-body .op-grid,.store-body .panel.dark,.store-body .service-panel{min-height:0;overflow:visible;}
.store-body .reservations{max-height:none;overflow:visible;}
.store-body .store-floor{height:clamp(360px,58dvh,690px);height:clamp(360px,calc(var(--store-vh) - 300px),690px);}

@media (orientation: landscape) and (max-height: 520px){
  .store-body{height:auto;min-height:var(--store-vh);overflow-y:auto;}
  .store-body .tablet{height:auto;min-height:var(--store-vh);overflow:visible;}
  .store-body .operator{overflow:visible;}
  .store-body .op-grid{height:auto;min-height:0;overflow:visible;align-items:start;}
  .store-body .panel.dark{height:auto;overflow:visible;}
  .store-body .service-panel{overflow:visible;}
  .store-body .reservations{max-height:none;overflow:visible;}
  .store-body .store-floor{height:clamp(240px,calc(var(--store-vh) - 132px),360px);min-height:240px;}
}

@media (orientation: landscape) and (max-height: 430px){
  .store-body .store-floor{height:clamp(220px,calc(var(--store-vh) - 116px),310px);min-height:220px;}
}

@media (orientation: landscape) and (min-width: 768px) and (max-width: 1180px) and (min-height: 521px){
  .store-body .tablet{height:auto;min-height:var(--store-vh);overflow:visible;}
  .store-body .operator{overflow:visible;}
  .store-body .op-grid{height:auto;min-height:0;overflow:visible;align-items:start;}
  .store-body .panel.dark{height:auto;overflow:visible;}
  .store-body .service-panel{overflow:visible;}
  .store-body .reservations{max-height:none;overflow:visible;}
  .store-body .store-floor{height:clamp(380px,calc(var(--store-vh) - 230px),610px);min-height:380px;}
}


/* user summary cards: image instruction = centered labels and values */
.summary{align-items:stretch;}
.summary div{text-align:center;display:grid;grid-template-rows:22px minmax(0,1fr) 36px;align-items:center;justify-items:center;row-gap:5px;height:148px;min-height:148px;max-height:148px;overflow:hidden;border:2px solid #111;padding:14px 10px;}
.summary span{width:100%;text-align:center;align-self:end;line-height:1.05;}
.summary strong{display:grid;align-items:center;justify-items:center;width:100%;height:100%;text-align:center;white-space:nowrap;align-self:center;}
.summary strong.seat-open{font-size:20px;letter-spacing:-.06em;white-space:nowrap;}
.summary strong.seat-full{font-size:24px;white-space:nowrap;}
.summary strong.seat-breakdown{display:grid;gap:3px;margin-top:0;font-size:15px;letter-spacing:0;line-height:1.14;color:#94ffc1;align-content:center;}
.seat-breakdown-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;width:100%;text-align:left;line-height:1.05;}
.seat-breakdown-row b{font-size:12px;font-weight:900;color:#fff;letter-spacing:-.04em;}
.seat-breakdown-row em{font-style:normal;font-size:20px;font-weight:900;color:#94ffc1;line-height:1;}
.seat-waitlist-button{min-height:33px;align-self:start;}
.refresh-state-button{border:1px solid rgba(255,255,255,.75);background:rgba(255,255,255,.18);color:#fff;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:900;line-height:1;white-space:nowrap;min-width:48px;min-height:36px;position:relative;z-index:30;pointer-events:auto;touch-action:manipulation;cursor:pointer;}
.topline-actions{display:flex;align-items:center;gap:8px;}
.floor-guide{display:flex;align-items:center;gap:6px;flex-wrap:wrap;line-height:1.5;}
.floor-guide span{font-weight:900;color:#4b3a2a;}
.floor-guide .guide-arrow{font-weight:900;color:#111;}
.large-group-shortcut{border:0;border-radius:999px;background:#111;color:#fff;padding:6px 10px;font-size:12px;font-weight:900;line-height:1;cursor:pointer;box-shadow:0 5px 12px rgba(0,0,0,.12);}


/* user-side seat selection header: keep title above guide/button on mobile */
.seat-select-panel .seat-select-head{display:block;margin-bottom:10px;}
.seat-select-panel .seat-select-head h2{margin-bottom:8px;white-space:nowrap;}
.seat-guide-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.seat-guide-row .floor-guide{flex:0 1 auto;min-width:0;}
.floor-guide .counter-guide{font-weight:800;color:#6f6256;}
.floor-guide .large-group-guide{display:inline-flex;align-items:center;gap:6px;flex-wrap:nowrap;}
.floor-guide .large-group-guide .large-group-shortcut{margin-left:0;}
.large-group-shortcut{white-space:nowrap;min-height:34px;min-width:0;}
.reject-btn{border:0;border-radius:12px;background:#b91c1c;color:#fff;padding:10px 12px;font-weight:900;cursor:pointer;box-shadow:0 4px 0 #7f1d1d;}
.reject-btn:active{transform:translateY(2px);box-shadow:0 2px 0 #7f1d1d;}
@media (max-width: 430px){
  .seat-guide-row{align-items:flex-start;}
  .seat-guide-row .floor-guide{flex:0 1 auto;}
  .seat-guide-row .large-group-shortcut{width:auto;min-width:0;}
}

.seat-admin-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end;}
/* compact public header: brand lives in top bar only. Previous amber header kept here as fallback: radial-gradient(circle at 85% 8%,#ffbf65,transparent 18%),linear-gradient(135deg,#111,#2d1b13 55%,#67401f) */
.hero{height:92px;padding:16px 14px 12px;display:flex;align-items:flex-start;background-image:linear-gradient(90deg,rgba(7,5,20,.2),rgba(7,5,20,.08)),url('header-dope-purple.webp');background-size:cover;background-position:center;background-repeat:no-repeat;}
.hero .topline{width:100%;gap:10px;align-items:flex-start;}
.hero .brand-actions{gap:8px;min-width:0;align-items:flex-start;}
.hero .brand-title{display:flex;flex-direction:column;gap:3px;min-width:0;}
.hero .topline b{font-size:18px;letter-spacing:-.06em;line-height:1.05;white-space:normal;}
.store-open-status{display:inline-flex;align-items:center;width:max-content;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:900;line-height:1;background:rgba(255,255,255,.86);border:1px solid rgba(255,255,255,.7);box-shadow:0 5px 14px rgba(0,0,0,.18);}
.store-open-status.is-open{color:#047857;}
.store-open-status.is-closed{color:#b91c1c;}
.hero .topline-actions{flex-shrink:0;}
.hero h1,.hero p{display:none;}
.summary{margin:12px 18px 18px;}
/* user reservation quick arrival button */
.time-row{align-items:stretch;}
.time-quick{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;min-width:0;}
.time-quick input{width:100%;}
.arrive-soon-button{border:2px solid #111;background:#fff8df;color:#111;border-radius:14px;padding:0 10px;font-size:12px;font-weight:900;white-space:nowrap;box-shadow:0 4px 0 #111;cursor:pointer;}
.arrive-soon-button:active{transform:translateY(2px);box-shadow:0 2px 0 #111;}
@media (max-width:390px){.time-quick{grid-template-columns:1fr}.arrive-soon-button{min-height:42px;padding:10px}}
/* compact summary cards overlapping the header */
.summary{margin:-18px 14px 12px;gap:8px;z-index:2;}
.summary div{height:112px;min-height:112px;max-height:112px;padding:10px 8px;border-radius:18px;grid-template-rows:auto minmax(0,1fr) auto;row-gap:2px;border-width:1px;}
.summary span{font-size:11px;line-height:1.05;}
.summary strong,.service-card strong{font-size:28px;line-height:1;}
.summary strong.seat-full{font-size:20px;line-height:1;letter-spacing:-.05em;}
.summary strong.seat-breakdown{gap:1px;font-size:13px;line-height:1.02;}
.seat-breakdown-row{gap:4px;line-height:1;}
.seat-breakdown-row b{font-size:10.5px;}
.seat-breakdown-row em{font-size:17px;}
.seat-waitlist-button{min-height:26px;padding:4px 6px;font-size:10px;line-height:1.05;border-radius:10px;}
/* reservation form compact fix: keep hookah select normal height even when 15min button wraps */
.time-row{align-items:start;}
.time-row select[name="hookah"]{align-self:start;height:auto;min-height:50px;}
.time-quick{align-items:start;}
.time-quick input{min-height:50px;}
.arrive-soon-button{min-height:42px;margin-top:0;}
/* align seat breakdown numbers in the top summary card */
.summary strong.seat-breakdown{justify-content:center;}
.seat-breakdown-row{width:82px;grid-template-columns:58px 18px;justify-content:center;gap:6px;text-align:left;}
.seat-breakdown-row b{display:block;text-align:left;}
.seat-breakdown-row em{display:block;width:18px;text-align:right;}
/* force seat count rows to stay on one line: label column + aligned number column */
.summary strong.seat-breakdown .seat-breakdown-row{display:grid!important;width:84px!important;grid-template-columns:60px 18px!important;justify-content:center!important;align-items:center!important;gap:6px!important;line-height:1!important;}
.summary strong.seat-breakdown .seat-breakdown-row b{display:block!important;width:60px!important;text-align:left!important;white-space:nowrap!important;}
.summary strong.seat-breakdown .seat-breakdown-row em{display:block!important;width:18px!important;text-align:right!important;white-space:nowrap!important;}

/* quick arrival visual feedback */
input.time-quick-set{outline:3px solid #94ffc1!important;box-shadow:0 0 0 4px rgba(148,255,193,.22)!important;}


/* legend: selected is an outline state, not a black filled status */
.legend i.selected{background:transparent!important;border:2px solid #111!important;box-shadow:0 0 0 2px rgba(17,17,17,.18);}
.dark-legend i.selected{border-color:#fff!important;box-shadow:0 0 0 2px rgba(255,255,255,.18);}

/* store large-group seat assignment */
.large-seat-picker{margin:10px 0;padding:10px;border-radius:14px;background:#fff8df;border:1px solid #e8c96e;display:grid;gap:8px;}
.large-seat-picker b{font-size:13px;font-weight:900;color:#2a2118;}
.large-seat-picker small{font-size:11px;font-weight:900;color:#6f5a32;}
.large-seat-grid{display:flex;flex-wrap:wrap;gap:6px;}
.large-seat-choice{border:2px solid #c9b16b;background:#fff;color:#20180d;border-radius:10px;padding:7px 9px;font-size:12px;font-weight:900;cursor:pointer;}
.large-seat-choice.is-selected{background:#111;color:#fff;border-color:#111;box-shadow:0 0 0 3px rgba(17,17,17,.18);}
.large-seat-choice:disabled{opacity:.38;cursor:not-allowed;background:#ececec;color:#777;border-color:#d5d5d5;}


/* user toast visibility: keep update feedback visible on mobile, away from the floor map */
.mobile-shell + .toast{
  top:calc(env(safe-area-inset-top, 0px) + 78px);
  bottom:auto;
  z-index:10050;
  min-width:148px;
  max-width:calc(100vw - 32px);
  text-align:center;
  background:#d9fff0;
  color:#064e3b;
  border:2px solid #111;
  box-shadow:0 14px 40px rgba(0,0,0,.28),0 0 0 4px rgba(217,255,240,.55);
  font-size:15px;
  line-height:1.2;
  padding:12px 18px;
}
.mobile-shell + .toast.show{
  opacity:1;
  transform:translateX(-50%) translateY(0);
}


/* fixed name tag quick reservation */
.fixed-name-tag-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:10px 0 14px;
  padding:13px;
  border-radius:18px;
  background:#111;
  color:#fff;
  box-shadow:0 14px 34px rgba(0,0,0,.16);
}
.fixed-name-tag-card[hidden]{display:none!important;}
.fixed-name-tag-card span{display:block;font-size:12px;font-weight:900;color:#bfffe8;margin-bottom:3px;}
.fixed-name-tag-card b{display:block;font-size:18px;font-weight:900;letter-spacing:-.03em;}
.fixed-name-tag-card p{margin:3px 0 0;font-size:12px;line-height:1.35;color:#e8fff6;font-weight:800;}
.fixed-name-tag-card button{flex:0 0 auto;border:0;border-radius:999px;background:#d9fff0;color:#064e3b;padding:11px 14px;font-weight:900;box-shadow:0 0 0 2px rgba(255,255,255,.16) inset;}
.fixed-tag-store-line{display:inline-block;margin:4px 0 8px!important;padding:6px 9px;border-radius:999px;background:#fff8dd;color:#5b3b00;font-weight:900;font-size:12px;}
.reservation-actions .fixed-tag-btn{background:#d9fff0;color:#064e3b;}

/* mobile reservation time row: prevent time/15min/hookah overlap */
@media (max-width: 460px){
  .reserve-card{margin:12px 12px 16px;padding:14px;border-radius:24px;}
  .reserve-card h2{font-size:18px;margin-bottom:10px;}
  .reserve-card .form-row{gap:8px;margin-bottom:8px;}
  .reserve-card input,.reserve-card select,.reserve-card textarea{border-radius:13px;padding:11px 12px;font-size:15px;line-height:1.2;}
  .time-row{grid-template-columns:1fr!important;gap:8px!important;align-items:start!important;}
  .time-quick{display:grid!important;grid-template-columns:minmax(0,1fr) 96px!important;gap:7px!important;width:100%!important;min-width:0!important;}
  .time-quick input{min-width:0!important;width:100%!important;min-height:46px!important;padding:10px 8px!important;font-size:15px!important;}
  .arrive-soon-button{width:96px!important;min-width:0!important;min-height:42px!important;padding:7px 6px!important;font-size:11px!important;line-height:1.08!important;white-space:normal!important;box-shadow:0 3px 0 #111!important;}
  .time-row select[name="hookah"]{width:100%!important;min-height:46px!important;padding:11px 12px!important;}
}
@media (max-width: 360px){
  .reserve-card{margin-left:10px;margin-right:10px;padding:12px;}
  .time-quick{grid-template-columns:minmax(0,1fr) 84px!important;gap:6px!important;}
  .arrive-soon-button{width:84px!important;font-size:10.5px!important;padding:6px 4px!important;}
}

/* latest mobile compact: shorter summary cards and one-line seat guide */
.summary div{height:98px!important;min-height:98px!important;max-height:98px!important;padding:8px 7px!important;border-radius:16px!important;row-gap:1px!important;}
.summary strong,.service-card strong{font-size:25px;}
.summary strong.seat-full{font-size:18px;}
.summary strong.seat-breakdown{font-size:12px;gap:0;}
.seat-breakdown-row{line-height:.95!important;}
.seat-waitlist-button{min-height:23px!important;padding:3px 6px!important;font-size:9.5px!important;}
.seat-select-panel .seat-select-head{display:flex!important;align-items:center!important;gap:6px 8px!important;flex-wrap:wrap!important;margin-bottom:8px!important;}
.seat-title-row{display:flex;align-items:center;gap:8px;flex:0 0 auto;min-width:0;}
.seat-select-panel .seat-title-row h2{margin:0!important;white-space:nowrap;font-size:20px;letter-spacing:-.06em;}
.usual-reservation-button{border:0;border-radius:999px;background:#d9fff0;color:#064e3b;padding:7px 10px;font-size:12px;font-weight:900;line-height:1;box-shadow:0 4px 0 rgba(6,78,59,.25);white-space:nowrap;cursor:pointer;}
.usual-reservation-button[hidden]{display:none!important;}
.usual-reservation-button:active{transform:translateY(2px);box-shadow:0 2px 0 rgba(6,78,59,.25);}
.seat-guide-row{flex:1 1 auto!important;min-width:0!important;display:flex!important;align-items:center!important;gap:4px!important;}
.seat-guide-row .floor-guide{display:flex!important;align-items:center!important;gap:7px!important;line-height:1.15!important;flex:1 1 auto!important;min-width:0!important;}
.floor-guide .counter-guide{white-space:nowrap!important;font-size:11px!important;letter-spacing:-.05em;color:#4b3a2a!important;}
.floor-guide .large-group-guide{white-space:nowrap!important;font-size:11px!important;}
.floor-guide .large-group-guide .large-group-shortcut{min-height:26px!important;padding:5px 8px!important;font-size:11px!important;}
@media (max-width: 380px){
  .seat-select-panel .seat-title-row h2{font-size:18px;}
  .usual-reservation-button{font-size:11px;padding:6px 8px;}
  .floor-guide .counter-guide{font-size:10px!important;}
  .floor-guide .large-group-guide{font-size:10px!important;}
}

/* latest seat header arrangement: title + 6+ shortcut, guide below */
.seat-select-panel .seat-select-head{display:block!important;margin-bottom:8px!important;}
.seat-title-row{display:flex!important;align-items:center!important;gap:7px!important;flex-wrap:nowrap!important;min-width:0!important;width:100%!important;}
.seat-select-panel .seat-title-row h2{margin:0!important;white-space:nowrap!important;font-size:20px!important;letter-spacing:-.06em!important;flex:0 0 auto!important;}
.large-group-inline{display:inline-flex!important;align-items:center!important;gap:3px!important;min-width:0!important;white-space:nowrap!important;font-size:11px!important;font-weight:900!important;line-height:1!important;color:#4b3a2a!important;}
.large-group-inline .large-group-shortcut{border:0;border-radius:999px;background:#111;color:#fff;padding:5px 8px;font-size:11px;font-weight:900;line-height:1;cursor:pointer;box-shadow:0 4px 10px rgba(0,0,0,.12);white-space:nowrap;min-height:24px;}
.seat-guide-row{margin-top:5px!important;display:block!important;}
.seat-guide-row .floor-guide{display:block!important;line-height:1.2!important;}
.floor-guide .counter-guide{display:block!important;white-space:nowrap!important;font-size:12px!important;letter-spacing:-.04em!important;font-weight:900!important;color:#4b3a2a!important;}
@media (max-width: 380px){
  .seat-select-panel .seat-title-row h2{font-size:18px!important;}
  .large-group-inline{font-size:10px!important;gap:2px!important;}
  .large-group-inline .large-group-shortcut{font-size:10px!important;padding:5px 7px!important;}
  .floor-guide .counter-guide{font-size:11px!important;}
}

/* mobile reservation time controls: keep time / 15min / hookah in one row */
@media (max-width: 460px){
  .reserve-card .time-row{
    display:grid!important;
    grid-template-columns:minmax(0, 174px) minmax(0, 1fr)!important;
    gap:7px!important;
    align-items:stretch!important;
  }
  .reserve-card .time-quick{
    display:grid!important;
    grid-template-columns:minmax(0, 80px) minmax(0, 87px)!important;
    gap:7px!important;
    width:100%!important;
    min-width:0!important;
  }
  .reserve-card .time-quick input[type="time"]{
    width:100%!important;
    min-width:0!important;
    max-width:80px!important;
    min-height:44px!important;
    height:44px!important;
    padding:8px 4px!important;
    font-size:14px!important;
    line-height:1!important;
    text-align:center!important;
    appearance:none!important;
    -webkit-appearance:none!important;
  }
  .reserve-card .arrive-soon-button{
    width:87px!important;
    min-width:0!important;
    max-width:87px!important;
    min-height:42px!important;
    height:42px!important;
    padding:5px 5px!important;
    font-size:10.5px!important;
    line-height:1.05!important;
    white-space:normal!important;
    align-self:start!important;
  }
  .reserve-card .time-row select[name="hookah"]{
    width:100%!important;
    min-width:0!important;
    min-height:44px!important;
    height:44px!important;
    padding:8px 7px!important;
    font-size:13px!important;
    line-height:1!important;
    align-self:start!important;
  }
}
@media (max-width: 380px){
  .reserve-card .time-row{grid-template-columns:minmax(0, 160px) minmax(0, 1fr)!important;gap:6px!important;}
  .reserve-card .time-quick{grid-template-columns:minmax(0, 74px) minmax(0, 80px)!important;gap:6px!important;}
  .reserve-card .time-quick input[type="time"]{max-width:74px!important;font-size:13px!important;padding-left:2px!important;padding-right:2px!important;}
  .reserve-card .arrive-soon-button{width:80px!important;max-width:80px!important;font-size:10px!important;padding-left:3px!important;padding-right:3px!important;}
  .reserve-card .time-row select[name="hookah"]{font-size:12px!important;padding-left:5px!important;padding-right:5px!important;}
}

/* usual reservation button placement: right of C guide */
.seat-guide-row .floor-guide{
  display:inline-flex!important;
  align-items:center!important;
  gap:7px!important;
  max-width:100%!important;
  white-space:nowrap!important;
}
.seat-guide-row .floor-guide .counter-guide{
  display:inline!important;
  flex:0 1 auto!important;
  min-width:0!important;
}
.seat-guide-row .floor-guide .usual-reservation-button{
  flex:0 0 auto!important;
  margin:0!important;
  padding:5px 8px!important;
  min-height:24px!important;
  font-size:11px!important;
  line-height:1!important;
  white-space:nowrap!important;
}
@media (max-width: 380px){
  .seat-guide-row .floor-guide{gap:5px!important;}
  .seat-guide-row .floor-guide .counter-guide{font-size:10px!important;letter-spacing:-.06em!important;}
  .seat-guide-row .floor-guide .usual-reservation-button{font-size:10px!important;padding:5px 7px!important;}
}

/* usual reservation edit button and form controls */
.usual-reservation-edit-button{border:0;border-radius:999px;background:#111;color:#fff;padding:5px 8px;font-size:11px;font-weight:900;line-height:1;box-shadow:0 4px 0 rgba(0,0,0,.22);white-space:nowrap;cursor:pointer;}
.usual-reservation-edit-button[hidden]{display:none!important;}
.usual-reservation-edit-button:active{transform:translateY(2px);box-shadow:0 2px 0 rgba(0,0,0,.22);}
.seat-guide-row .floor-guide .usual-reservation-edit-button{flex:0 0 auto!important;margin:0!important;min-height:24px!important;}
.fixed-name-tag-edit-panel{margin:10px 0 0;padding:10px;border:1px solid rgba(255,255,255,.22);border-radius:14px;background:rgba(255,255,255,.08);color:#fff;display:grid;gap:7px;}
.fixed-name-tag-edit-panel[hidden]{display:none!important;}
.fixed-name-tag-edit-panel b{font-size:13px;line-height:1.2;}
.fixed-name-tag-edit-panel small{font-size:11px;color:rgba(255,255,255,.72);line-height:1.25;}
.fixed-name-tag-edit-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;}
.fixed-name-tag-edit-actions button{border:0;border-radius:12px;padding:9px 6px;font-size:12px;font-weight:900;line-height:1;cursor:pointer;}
#saveFixedNameTagButton{background:#d9fff0;color:#064e3b;}
#deleteFixedNameTagButton{background:#ffe4e6;color:#9f1239;}
#cancelFixedNameTagEditButton{background:#f5f5f5;color:#111;}
@media (max-width:380px){
  .seat-guide-row .floor-guide .usual-reservation-edit-button{font-size:10px!important;padding:5px 7px!important;}
  .fixed-name-tag-edit-actions{gap:5px;}
  .fixed-name-tag-edit-actions button{font-size:11px;padding:8px 4px;}
}

/* keep C guide + usual/edit buttons on one mobile line */
.seat-guide-row .floor-guide{
  flex-wrap:nowrap!important;
  gap:5px!important;
}
.seat-guide-row .floor-guide .counter-guide{
  flex:0 1 auto!important;
  white-space:nowrap!important;
  font-size:10.5px!important;
  letter-spacing:-.075em!important;
}
.seat-guide-row .floor-guide .usual-reservation-button,
.seat-guide-row .floor-guide .usual-reservation-edit-button{
  flex:0 0 auto!important;
  min-height:22px!important;
  padding:4px 6px!important;
  font-size:10px!important;
  letter-spacing:-.04em!important;
}
@media (max-width:380px){
  .seat-guide-row .floor-guide{gap:3px!important;}
  .seat-guide-row .floor-guide .counter-guide{font-size:9.2px!important;letter-spacing:-.1em!important;}
  .seat-guide-row .floor-guide .usual-reservation-button,
  .seat-guide-row .floor-guide .usual-reservation-edit-button{font-size:9px!important;padding:4px 5px!important;min-height:21px!important;}
}

/* make C guide readable while keeping usual/edit on one line */
.seat-guide-row .floor-guide .counter-guide{
  font-size:11px!important;
  letter-spacing:-.055em!important;
}
@media (max-width:380px){
  .seat-guide-row .floor-guide .counter-guide{
    font-size:10.5px!important;
    letter-spacing:-.065em!important;
  }
  .seat-guide-row .floor-guide .usual-reservation-button,
  .seat-guide-row .floor-guide .usual-reservation-edit-button{
    font-size:9.5px!important;
    padding:4px 5px!important;
  }
}
/* store business open/closed toggle */
.store-body .ops #businessOpenToggle.business-open{
  background:#16a34a;
  color:#fff;
  box-shadow:0 4px 0 #0f6b32;
}
.store-body .ops #businessOpenToggle.business-closed{
  background:#dc2626;
  color:#fff;
  box-shadow:0 4px 0 #8f1d1d;
}
.own-reservation-status.closed{
  background:#fff1f2;
  border-color:#dc2626;
}
.own-reservation-status.closed b{color:#b91c1c;}
.store-closed-mode #reserveForm{opacity:.58;}
.store-closed-mode #selectedText{color:#b91c1c;font-weight:900;}
@media (orientation: landscape) and (max-height: 520px){
  .store-body .ops #businessOpenToggle{padding:6px 8px;font-size:10px;}
}
/* tablet signboard display for 1F entrance / stairs */
.kanban-body{margin:0;background:#050505;color:#fff;font-family:'Noto Sans JP',system-ui,sans-serif;min-height:100dvh;overflow:hidden;}
.kanban-screen{min-height:100dvh;padding:clamp(16px,3.4vw,42px);display:grid;grid-template-rows:auto minmax(0,1fr) auto auto auto auto;gap:clamp(10px,2vw,22px);background:radial-gradient(circle at 80% 12%,rgba(255,255,255,.10),transparent 18%),linear-gradient(135deg,#101010,#181818);transition:background .25s ease;}
.kanban-screen.is-open{background:radial-gradient(circle at 82% 10%,rgba(148,255,193,.26),transparent 22%),linear-gradient(135deg,#031308,#0f3b20 58%,#041009);}
.kanban-screen.is-limited{background:radial-gradient(circle at 82% 10%,rgba(255,191,101,.30),transparent 22%),linear-gradient(135deg,#1f1203,#4b2d08 58%,#130b02);}
.kanban-screen.is-full{background:radial-gradient(circle at 82% 10%,rgba(255,92,92,.28),transparent 22%),linear-gradient(135deg,#190404,#4a1010 58%,#100404);}
.kanban-screen.is-closed{background:radial-gradient(circle at 82% 10%,rgba(170,170,170,.14),transparent 22%),linear-gradient(135deg,#050505,#151515 58%,#050505);}
.kanban-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;color:#ffffffcc;font-weight:900;}
.kanban-top b{display:block;font-size:clamp(24px,4.4vw,56px);letter-spacing:-.07em;color:#fff;line-height:1;}
.kanban-top span,.kanban-top time{display:block;margin-top:6px;font-size:clamp(11px,1.6vw,20px);color:#ffffffaa;}
.kanban-status{display:grid;place-items:center;text-align:center;border:3px solid rgba(255,255,255,.18);border-radius:clamp(26px,5vw,64px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),0 32px 100px rgba(0,0,0,.35);padding:clamp(16px,3vw,34px);}
.kanban-status p{margin:0;font-size:clamp(20px,3.4vw,48px);font-weight:900;color:#ffffffcc;}
.kanban-status h1{margin:0;font-size:clamp(62px,15vw,210px);line-height:.95;letter-spacing:-.09em;text-shadow:0 12px 40px rgba(0,0,0,.38);}
.kanban-status small{font-size:clamp(18px,3vw,42px);font-weight:900;color:#ffffffd8;}
.kanban-status.is-open h1{color:#76ff9f;}
.kanban-status.is-limited h1{color:#ffbf65;}
.kanban-status.is-full h1{color:#ff5c5c;}
.kanban-status.is-closed h1{color:#d8d8d8;font-size:clamp(48px,12vw,160px);letter-spacing:-.07em;}
.kanban-breakdown{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(8px,1.5vw,18px);}
.kanban-breakdown div{border:1px solid rgba(255,255,255,.16);border-radius:22px;background:rgba(255,255,255,.08);padding:clamp(10px,1.8vw,22px);text-align:center;}
.kanban-breakdown span{display:block;color:#ffffffa8;font-weight:900;font-size:clamp(11px,1.55vw,20px);white-space:nowrap;}
.kanban-breakdown strong{display:block;margin-top:3px;font-size:clamp(28px,4.7vw,68px);line-height:1;color:#fff;}
.kanban-qr{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:clamp(12px,2vw,26px);border:2px solid rgba(255,255,255,.28);border-radius:26px;background:rgba(255,255,255,.12);padding:clamp(12px,2vw,22px);}
.kanban-qr b{display:block;font-size:clamp(22px,3vw,42px);font-weight:900;color:#fff;}
.kanban-qr span{display:block;margin-top:4px;font-size:clamp(14px,2vw,26px);font-weight:900;color:#ffd4d4;}
.kanban-qr em{display:block;margin-top:6px;font-style:normal;font-size:clamp(10px,1.3vw,16px);font-weight:900;color:#ffffffaa;word-break:break-all;}
.kanban-qr img{width:clamp(96px,16vw,180px);height:clamp(96px,16vw,180px);background:#fff;border-radius:16px;padding:8px;}
.kanban-indicators{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;}
.kanban-indicators span{border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(255,255,255,.08);padding:9px 14px;font-size:clamp(11px,1.3vw,18px);font-weight:900;color:#ffffffc8;}
.kanban-indicators span.ok{background:rgba(37,211,102,.18);border-color:rgba(118,255,159,.45);color:#adffc7;}
.kanban-indicators span.ng{background:rgba(255,92,92,.16);border-color:rgba(255,92,92,.38);color:#ffc4c4;}
.kanban-note{text-align:center;margin:0;color:#ffffff99;font-weight:800;font-size:clamp(11px,1.4vw,18px);}
@media (max-width:720px){.kanban-breakdown{grid-template-columns:repeat(2,1fr)}.kanban-qr{grid-template-columns:1fr;text-align:center}.kanban-qr img{justify-self:center}}
.kanban-qr[hidden]{display:none!important;}
@media (max-height:700px){
  .kanban-screen{padding:12px 18px;gap:8px;grid-template-rows:auto minmax(0,1fr) auto auto auto auto;}
  .kanban-top b{font-size:clamp(22px,4vw,40px);}
  .kanban-top span,.kanban-top time{font-size:12px;margin-top:3px;}
  .kanban-status{border-radius:28px;padding:10px;}
  .kanban-status p{font-size:22px;}
  .kanban-status h1{font-size:clamp(54px,12vw,120px);}
  .kanban-status small{font-size:20px;}
  .kanban-breakdown div{border-radius:16px;padding:8px;}
  .kanban-breakdown span{font-size:12px;}
  .kanban-breakdown strong{font-size:34px;}
  .kanban-indicators span{padding:6px 10px;font-size:12px;}
  .kanban-note{font-size:11px;}
  .kanban-qr{padding:8px 12px;border-radius:18px;}
  .kanban-qr b{font-size:20px;}
  .kanban-qr span{font-size:14px;}
  .kanban-qr img{width:92px;height:92px;border-radius:12px;padding:6px;}
}



/* POP neon tablet signboard refresh */
.kanban-body{background:#08030f;}
.kanban-screen{position:relative;isolation:isolate;overflow:hidden;background:#08030f;grid-template-rows:auto minmax(0,1fr) auto auto auto auto;}
.kanban-screen::before{content:"";position:absolute;inset:0;z-index:-2;background-image:linear-gradient(135deg,rgba(8,3,15,.44),rgba(9,3,20,.68) 45%,rgba(0,0,0,.50)),url('kanban-backdrop.webp');background-size:cover;background-position:center 42%;filter:saturate(1.2) contrast(1.04);transform:scale(1.03);}
.kanban-screen::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 18% 12%,rgba(255,225,86,.22),transparent 22%),radial-gradient(circle at 80% 18%,rgba(255,64,205,.24),transparent 26%),radial-gradient(circle at 50% 82%,rgba(69,205,255,.20),transparent 26%),linear-gradient(180deg,rgba(0,0,0,.10),rgba(0,0,0,.34));pointer-events:none;}
.kanban-screen.is-open,.kanban-screen.is-limited,.kanban-screen.is-full,.kanban-screen.is-closed{background:#08030f;}
.kanban-top{position:relative;z-index:1;align-items:flex-start;padding:clamp(10px,1.7vw,18px);border:1px solid rgba(255,255,255,.24);border-radius:28px;background:rgba(12,6,24,.50);box-shadow:0 18px 50px rgba(0,0,0,.28),inset 0 0 0 1px rgba(255,255,255,.08);backdrop-filter:blur(12px);}
.kanban-brand{display:grid;gap:5px;}
.kanban-top b{font-size:clamp(25px,4.2vw,58px);letter-spacing:-.055em;text-shadow:0 0 18px rgba(255,255,255,.36),0 0 36px rgba(255,63,203,.30);}
.kanban-top .kanban-location{display:inline-flex;align-items:center;width:max-content;max-width:100%;padding:6px 14px;border-radius:999px;background:linear-gradient(90deg,#fff26b,#ff63d8 52%,#6ae8ff);color:#150415;font-weight:1000;font-size:clamp(12px,1.65vw,22px);box-shadow:0 0 26px rgba(255,99,216,.30);}
.kanban-top .kanban-floor{font-size:clamp(13px,1.65vw,22px);font-weight:950;color:#fff;text-shadow:0 0 18px rgba(106,232,255,.38);}
.kanban-top time{padding:9px 13px;border-radius:999px;background:rgba(0,0,0,.34);border:1px solid rgba(255,255,255,.22);color:#ffffffd6;white-space:nowrap;}
.kanban-status{position:relative;z-index:1;border:2px solid rgba(255,255,255,.28);background:linear-gradient(135deg,rgba(255,255,255,.16),rgba(255,255,255,.07));box-shadow:0 30px 90px rgba(0,0,0,.36),inset 0 0 60px rgba(255,255,255,.06);backdrop-filter:blur(14px);}
.kanban-status p{display:inline-block;margin-bottom:4px;padding:7px 18px;border-radius:999px;background:rgba(255,255,255,.18);color:#fff;font-size:clamp(18px,3vw,42px);text-shadow:0 0 16px rgba(255,255,255,.25);}
.kanban-status h1{font-weight:1000;letter-spacing:-.07em;text-shadow:0 10px 34px rgba(0,0,0,.40),0 0 30px currentColor;}
.kanban-status.is-open h1{color:#72ffb0;}
.kanban-status.is-limited h1{color:#ffd55c;}
.kanban-status.is-full h1{color:#ff2b2b;}
.kanban-status.is-closed h1{color:#8f949b;}
.kanban-status small{color:#fff;font-weight:1000;text-shadow:0 0 16px rgba(0,0,0,.45);}
.kanban-breakdown{position:relative;z-index:1;}
.kanban-breakdown div{border:1px solid rgba(255,255,255,.24);background:rgba(12,6,24,.58);box-shadow:0 10px 32px rgba(0,0,0,.25),inset 0 0 0 1px rgba(255,255,255,.08);backdrop-filter:blur(10px);}
.kanban-breakdown span{color:#ffffffd6;}
.kanban-breakdown strong{text-shadow:0 0 20px rgba(106,232,255,.28);}
.kanban-qr{position:relative;z-index:1;background:linear-gradient(135deg,rgba(255,62,126,.34),rgba(120,36,255,.26));box-shadow:0 20px 55px rgba(0,0,0,.34);backdrop-filter:blur(12px);}
.kanban-indicators,.kanban-note{position:relative;z-index:1;}
.kanban-indicators span{background:rgba(10,5,20,.58);backdrop-filter:blur(8px);}
.kanban-note{color:#ffffffc2;text-shadow:0 2px 12px rgba(0,0,0,.55);}
@media (max-height:700px){
  .kanban-screen{padding:10px 16px;gap:7px;}
  .kanban-top{padding:8px 12px;border-radius:20px;}
  .kanban-brand{gap:3px;}
  .kanban-top b{font-size:clamp(21px,3.4vw,34px);}
  .kanban-top .kanban-location{font-size:11px;padding:4px 10px;}
  .kanban-top .kanban-floor,.kanban-top time{font-size:11px;margin-top:2px;}
  .kanban-status{padding:8px;border-radius:24px;}
  .kanban-status p{font-size:18px;padding:4px 12px;}
  .kanban-status h1{font-size:clamp(52px,11vw,112px);}
  .kanban-status small{font-size:18px;}
}
@media (max-width:720px){
  .kanban-top{display:grid;gap:8px;}
  .kanban-top time{justify-self:start;}
  .kanban-top .kanban-location{width:auto;}
}


/* tighter tablet signage fit after live device feedback */
.kanban-screen{padding:clamp(8px,1.8vw,22px);gap:clamp(6px,1.1vw,12px);grid-template-rows:auto minmax(0,1fr) auto auto;}
.kanban-top{padding:clamp(7px,1vw,12px) clamp(10px,1.4vw,16px);border-radius:20px;}
.kanban-brand{gap:2px;}
.kanban-top b{font-size:clamp(20px,3.1vw,44px);line-height:.96;}
.kanban-top .kanban-floor{font-size:clamp(12px,1.25vw,18px);line-height:1.05;}
.kanban-top time{font-size:clamp(10px,1.05vw,14px);padding:6px 10px;margin-top:0;}
.kanban-status{border-radius:clamp(18px,3vw,36px);padding:clamp(8px,1.5vw,18px);}
.kanban-status p{font-size:clamp(15px,2.1vw,28px);padding:4px 13px;margin-bottom:2px;}
.kanban-status h1{font-size:clamp(46px,10.5vw,145px);line-height:.88;}
.kanban-status.is-closed h1{font-size:clamp(40px,8.5vw,112px);}
.kanban-status small{font-size:clamp(13px,2vw,26px);line-height:1.15;}
.kanban-breakdown{gap:clamp(5px,1vw,10px);}
.kanban-breakdown div{border-radius:16px;padding:clamp(6px,1.1vw,12px);}
.kanban-breakdown span{font-size:clamp(10px,1.15vw,15px);}
.kanban-breakdown strong{font-size:clamp(22px,3.6vw,46px);}
.kanban-qr{border-radius:18px;padding:clamp(7px,1.1vw,12px);gap:clamp(8px,1.2vw,14px);}
.kanban-qr b{font-size:clamp(15px,2vw,26px);line-height:1.05;}
.kanban-qr span{font-size:clamp(11px,1.45vw,18px);}
.kanban-qr img{width:clamp(72px,11vw,122px);height:clamp(72px,11vw,122px);border-radius:10px;padding:5px;}
@media (max-height:700px){
  .kanban-screen{padding:8px 12px;gap:5px;grid-template-rows:auto minmax(0,1fr) auto auto;}
  .kanban-top{padding:6px 9px;border-radius:16px;}
  .kanban-top b{font-size:clamp(18px,3vw,30px);}
  .kanban-top .kanban-floor,.kanban-top time{font-size:10px;}
  .kanban-top time{padding:4px 8px;}
  .kanban-status{padding:6px;border-radius:18px;}
  .kanban-status p{font-size:15px;padding:3px 10px;}
  .kanban-status h1{font-size:clamp(40px,9.2vw,86px);}
  .kanban-status.is-closed h1{font-size:clamp(34px,7.6vw,72px);}
  .kanban-status small{font-size:14px;}
  .kanban-breakdown div{padding:5px;border-radius:12px;}
  .kanban-breakdown span{font-size:10px;}
  .kanban-breakdown strong{font-size:24px;}
  .kanban-qr{padding:5px 8px;border-radius:14px;}
  .kanban-qr b{font-size:14px;}
  .kanban-qr span{font-size:11px;margin-top:1px;}
  .kanban-qr img{width:64px;height:64px;padding:4px;border-radius:8px;}
}
@media (max-height:520px){
  .kanban-top time{display:none;}
  .kanban-status h1{font-size:clamp(34px,8vw,64px);}
  .kanban-status small{font-size:12px;}
  .kanban-breakdown strong{font-size:20px;}
  .kanban-qr img{width:56px;height:56px;}
}

.kanban-status small:empty{display:none;}


/* emphasize core vacancy text while keeping tablet fit */
.kanban-status{padding:clamp(12px,2.2vw,28px);}
.kanban-status p{font-size:clamp(24px,4vw,56px);padding:8px 22px;margin-bottom:8px;}
.kanban-status h1{font-size:clamp(76px,15.5vw,220px);line-height:.88;}
.kanban-status.is-closed h1{font-size:clamp(58px,12vw,168px);}
.kanban-status small:empty{display:none;}
@media (max-height:700px){
  .kanban-status{padding:10px;border-radius:20px;}
  .kanban-status p{font-size:clamp(22px,4.4vw,40px);padding:5px 16px;margin-bottom:4px;}
  .kanban-status h1{font-size:clamp(62px,13vw,118px);}
  .kanban-status.is-closed h1{font-size:clamp(46px,10vw,88px);}
}
@media (max-height:520px){
  .kanban-status p{font-size:clamp(18px,3.6vw,30px);}
  .kanban-status h1{font-size:clamp(48px,11vw,86px);}
  .kanban-status.is-closed h1{font-size:clamp(38px,8.5vw,68px);}
}


/* user header neon visual refresh */
.user-page .hero{
  background-image:
    linear-gradient(90deg,rgba(7,5,20,.42),rgba(7,5,20,.22) 46%,rgba(7,5,20,.58)),
    url('user-header-neon.webp');
  background-size:cover;
  background-position:left center;
  background-repeat:no-repeat;
  box-shadow:0 10px 28px rgba(255,0,180,.16);
}
.user-page .hero .topline b,
.user-page .hero .topline-actions,
.user-page .hero .brand-title{
  text-shadow:0 2px 10px rgba(0,0,0,.65);
}


/* tablet kanban live tuning: move vacancy status upward, emphasize QR callout */
.kanban-screen{grid-template-rows:auto auto auto auto;align-content:start;gap:clamp(7px,1.1vw,12px);}
.kanban-status{min-height:clamp(210px,36dvh,330px);align-content:start;place-items:center;padding-top:clamp(16px,3.4dvh,38px);padding-bottom:clamp(10px,1.6dvh,18px);}
.kanban-status p{margin-top:0;margin-bottom:clamp(4px,1dvh,10px);}
.kanban-status h1{font-size:clamp(68px,14vw,190px);}
.kanban-qr{grid-template-columns:minmax(0,1fr) auto;padding:clamp(10px,1.7vw,18px) clamp(12px,2vw,22px);gap:clamp(12px,2vw,22px);}
.kanban-qr b{font-size:clamp(22px,3.2vw,44px);line-height:1.08;}
.kanban-qr span{font-size:clamp(15px,2.1vw,26px);font-weight:950;}
.kanban-qr img{width:clamp(96px,14vw,150px);height:clamp(96px,14vw,150px);padding:6px;border-radius:12px;}
@media (max-height:700px){
  .kanban-screen{gap:5px;}
  .kanban-status{min-height:clamp(170px,33dvh,245px);padding-top:10px;padding-bottom:6px;}
  .kanban-status h1{font-size:clamp(54px,11.5vw,98px);}
  .kanban-qr{padding:8px 12px;gap:10px;}
  .kanban-qr b{font-size:clamp(18px,3vw,30px);}
  .kanban-qr span{font-size:clamp(12px,1.9vw,18px);}
  .kanban-qr img{width:clamp(78px,12.5vw,110px);height:clamp(78px,12.5vw,110px);}
}
@media (max-height:520px){
  .kanban-status{min-height:140px;padding-top:6px;}
  .kanban-status h1{font-size:clamp(42px,9.5vw,72px);}
  .kanban-qr b{font-size:16px;}
  .kanban-qr img{width:64px;height:64px;}
}


/* kanban tablet balance: taller status/cards and larger bottom QR callout */
.kanban-screen{height:100dvh;grid-template-rows:auto minmax(230px,38dvh) auto minmax(150px,1fr);align-content:stretch;}
.kanban-status{min-height:clamp(230px,38dvh,360px);align-content:center;padding-top:clamp(18px,3dvh,34px);padding-bottom:clamp(18px,3dvh,34px);}
.kanban-breakdown div{min-height:clamp(76px,11dvh,116px);display:grid;align-content:center;}
.kanban-breakdown span{font-size:clamp(12px,1.45vw,18px);}
.kanban-breakdown strong{font-size:clamp(30px,4.6vw,62px);}
.kanban-qr{min-height:clamp(150px,24dvh,230px);align-self:stretch;grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:clamp(14px,2.3vw,26px);}
.kanban-qr b{font-size:clamp(26px,3.8vw,54px);line-height:1.08;}
.kanban-qr span{font-size:clamp(17px,2.35vw,30px);}
.kanban-qr img{width:clamp(125px,18vw,200px);height:clamp(125px,18vw,200px);padding:7px;border-radius:14px;}
@media (max-height:700px){
  .kanban-screen{grid-template-rows:auto minmax(205px,36dvh) auto minmax(126px,1fr);gap:5px;}
  .kanban-status{min-height:clamp(205px,36dvh,245px);padding-top:10px;padding-bottom:10px;}
  .kanban-breakdown div{min-height:58px;padding:6px;}
  .kanban-breakdown strong{font-size:28px;}
  .kanban-qr{min-height:116px;padding:9px 12px;}
  .kanban-qr b{font-size:clamp(20px,3.4vw,34px);}
  .kanban-qr span{font-size:clamp(13px,2vw,20px);}
  .kanban-qr img{width:clamp(96px,16vw,136px);height:clamp(96px,16vw,136px);}
}
@media (max-height:520px){
  .kanban-screen{grid-template-rows:auto minmax(150px,34dvh) auto minmax(90px,1fr);}
  .kanban-status{min-height:150px;}
  .kanban-breakdown div{min-height:46px;}
  .kanban-breakdown strong{font-size:22px;}
  .kanban-qr{min-height:86px;}
  .kanban-qr b{font-size:17px;}
  .kanban-qr span{font-size:12px;}
  .kanban-qr img{width:72px;height:72px;}
}


/* larger scan-ready QR for tablet signage */
.kanban-screen{grid-template-rows:auto minmax(210px,34dvh) auto minmax(190px,1fr);}
.kanban-qr{min-height:clamp(190px,31dvh,290px);}
.kanban-qr b{font-size:clamp(24px,3.5vw,48px);}
.kanban-qr span{font-size:clamp(16px,2.2vw,28px);}
.kanban-qr img{width:clamp(170px,25vw,260px);height:clamp(170px,25vw,260px);padding:8px;border-radius:16px;}
@media (max-height:700px){
  .kanban-screen{grid-template-rows:auto minmax(190px,32dvh) auto minmax(155px,1fr);}
  .kanban-status{min-height:clamp(190px,32dvh,225px);}
  .kanban-breakdown div{min-height:54px;}
  .kanban-qr{min-height:150px;}
  .kanban-qr b{font-size:clamp(19px,3vw,30px);}
  .kanban-qr span{font-size:clamp(12px,1.8vw,18px);}
  .kanban-qr img{width:clamp(132px,22vw,178px);height:clamp(132px,22vw,178px);padding:7px;}
}
@media (max-height:520px){
  .kanban-screen{grid-template-rows:auto minmax(135px,30dvh) auto minmax(108px,1fr);}
  .kanban-status{min-height:135px;}
  .kanban-qr{min-height:104px;}
  .kanban-qr img{width:88px;height:88px;}
}


/* match user-edited section proportions more closely: compact top/status, bigger bottom QR area */
@media (max-height:700px){
  .kanban-screen{grid-template-rows:auto minmax(165px,29dvh) auto minmax(238px,1fr);gap:5px;}
  .kanban-status{min-height:clamp(165px,29dvh,190px);padding-top:8px;padding-bottom:8px;}
  .kanban-status p{font-size:clamp(20px,3.6vw,36px);margin-bottom:4px;}
  .kanban-status h1{font-size:clamp(58px,11vw,104px);}
  .kanban-breakdown div{min-height:70px;padding:7px;}
  .kanban-breakdown span{font-size:12px;}
  .kanban-breakdown strong{font-size:32px;}
  .kanban-qr{min-height:clamp(238px,41dvh,280px);padding:12px 16px;}
  .kanban-qr b{font-size:clamp(23px,3.6vw,42px);}
  .kanban-qr span{font-size:clamp(15px,2.2vw,24px);}
  .kanban-qr img{width:clamp(190px,18vw,230px);height:clamp(190px,18vw,230px);padding:8px;border-radius:16px;}
}
@media (max-height:520px){
  .kanban-screen{grid-template-rows:auto minmax(128px,28dvh) auto minmax(112px,1fr);}
  .kanban-status{min-height:128px;}
  .kanban-status h1{font-size:clamp(40px,8.8vw,68px);}
  .kanban-breakdown div{min-height:46px;}
  .kanban-qr{min-height:108px;}
  .kanban-qr img{width:88px;height:88px;}
}


/* QR section correction: text top-left, larger quick-scan QR */
.kanban-qr{align-items:stretch;}
.kanban-qr div{align-self:start;justify-self:start;padding-top:clamp(2px,.5vw,8px);}
.kanban-qr img{justify-self:end;align-self:center;width:clamp(240px,28vw,330px);height:clamp(240px,28vw,330px);padding:8px;border-radius:16px;}
@media (max-height:700px){
  .kanban-screen{grid-template-rows:auto minmax(135px,24dvh) auto minmax(295px,1fr);gap:5px;}
  .kanban-status{min-height:135px;padding-top:6px;padding-bottom:6px;}
  .kanban-status p{font-size:clamp(18px,3.2vw,30px);padding:4px 14px;margin-bottom:3px;}
  .kanban-status h1{font-size:clamp(50px,9.5vw,86px);}
  .kanban-breakdown div{min-height:55px;padding:5px;}
  .kanban-breakdown strong{font-size:26px;}
  .kanban-qr{min-height:295px;padding:14px 16px;align-items:stretch;}
  .kanban-qr div{align-self:start;justify-self:start;padding-top:2px;}
  .kanban-qr b{font-size:clamp(22px,3.4vw,38px);line-height:1.08;}
  .kanban-qr span{font-size:clamp(14px,2vw,22px);}
  .kanban-qr img{width:clamp(260px,23vw,300px);height:clamp(260px,23vw,300px);justify-self:end;align-self:center;padding:8px;}
}
@media (max-height:520px){
  .kanban-screen{grid-template-rows:auto minmax(112px,24dvh) auto minmax(135px,1fr);}
  .kanban-status{min-height:112px;}
  .kanban-status h1{font-size:clamp(36px,8vw,58px);}
  .kanban-breakdown div{min-height:40px;}
  .kanban-qr{min-height:130px;padding:7px 10px;}
  .kanban-qr img{width:112px;height:112px;padding:5px;}
}


/* prevent QR clipping while keeping it scan-large */
@media (max-height:700px){
  .kanban-qr img{width:clamp(250px,21vw,276px);height:clamp(250px,21vw,276px);}
}


/* section border separation: no touching/overlap between panels */
@media (max-height:700px){
  .kanban-screen{gap:10px;grid-template-rows:auto minmax(128px,22dvh) auto minmax(270px,1fr);}
  .kanban-status{min-height:128px;}
  .kanban-breakdown div{min-height:52px;}
  .kanban-qr{min-height:270px;}
  .kanban-qr img{width:clamp(250px,20.6vw,268px);height:clamp(250px,20.6vw,268px);}
}
@media (max-height:520px){
  .kanban-screen{gap:6px;grid-template-rows:auto minmax(104px,23dvh) auto minmax(120px,1fr);}
  .kanban-status{min-height:104px;}
  .kanban-breakdown div{min-height:38px;}
  .kanban-qr{min-height:116px;}
  .kanban-qr img{width:96px;height:96px;}
}


/* collision-safe kanban compensation: panels never intrude, status lifted, larger QR */
@media (max-height:700px){
  .kanban-body{overflow:hidden;}
  .kanban-screen{
    box-sizing:border-box;
    height:100dvh;
    min-height:0;
    padding:6px 12px 8px;
    gap:12px;
    grid-template-rows:52px 116px 52px minmax(0,1fr);
    align-content:stretch;
  }
  .kanban-screen > *{box-sizing:border-box;min-height:0;overflow:hidden;}
  .kanban-top{height:52px;align-items:center;padding:6px 12px;}
  .kanban-top b{font-size:clamp(24px,3.7vw,38px);line-height:.95;}
  .kanban-top span{font-size:12px;margin-top:2px;}
  .kanban-status{
    height:116px;
    min-height:0;
    padding:4px 12px;
    border-width:3px;
    border-radius:26px;
  }
  .kanban-status p{font-size:clamp(18px,3vw,28px);line-height:1;margin:0 0 2px;}
  .kanban-status h1{font-size:clamp(54px,9.2vw,84px);line-height:.9;}
  .kanban-breakdown{height:52px;gap:10px;}
  .kanban-breakdown div{height:52px;min-height:0;padding:3px 6px;border-radius:16px;display:grid;place-items:center;}
  .kanban-breakdown span{font-size:11px;line-height:1;}
  .kanban-breakdown strong{font-size:24px;line-height:1;}
  .kanban-qr{
    min-height:0;
    height:100%;
    padding:8px 16px 8px 18px;
    border-radius:28px;
    align-items:start;
    overflow:hidden;
  }
  .kanban-qr div{align-self:start;justify-self:start;padding-top:0;}
  .kanban-qr b{font-size:clamp(24px,3.5vw,40px);line-height:1.04;}
  .kanban-qr span{font-size:clamp(15px,2.1vw,23px);line-height:1.15;}
  .kanban-qr img{
    box-sizing:border-box;
    justify-self:end;
    align-self:center;
    width:min(292px,calc(100dvh - 312px),24vw);
    height:min(292px,calc(100dvh - 312px),24vw);
    min-width:270px;
    min-height:270px;
    max-width:100%;
    max-height:100%;
    padding:8px;
    border-radius:16px;
  }
}
@media (max-height:620px){
  .kanban-screen{grid-template-rows:50px 108px 48px minmax(0,1fr);gap:10px;padding:6px 12px;}
  .kanban-status{height:108px;}
  .kanban-status h1{font-size:clamp(48px,8.5vw,78px);}
  .kanban-breakdown,.kanban-breakdown div{height:48px;}
  .kanban-qr img{width:min(300px,calc(100dvh - 282px),24vw);height:min(300px,calc(100dvh - 282px),24vw);min-width:270px;min-height:270px;}
}
@media (max-height:520px){
  .kanban-screen{grid-template-rows:44px 92px 38px minmax(0,1fr);gap:6px;padding:5px 10px;}
  .kanban-top{height:44px;}
  .kanban-status{height:92px;border-radius:20px;padding:3px 8px;}
  .kanban-status p{font-size:16px;}
  .kanban-status h1{font-size:clamp(34px,7.5vw,56px);}
  .kanban-breakdown,.kanban-breakdown div{height:38px;}
  .kanban-breakdown strong{font-size:18px;}
  .kanban-qr{padding:6px 10px;}
  .kanban-qr img{width:min(180px,calc(100dvh - 205px),22vw);height:min(180px,calc(100dvh - 205px),22vw);min-width:110px;min-height:110px;padding:5px;}
}


/* hard separation fix: status bottom must not visually collide with 4 black cards; QR larger */
@media (min-width:1024px) and (max-height:700px) and (min-height:521px){
  .kanban-body{overflow:hidden!important;}
  .kanban-screen{
    height:100dvh!important;
    min-height:0!important;
    box-sizing:border-box!important;
    padding:4px 12px 8px!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-rows:46px 96px 42px minmax(0,1fr)!important;
    column-gap:0!important;
    row-gap:18px!important;
    align-content:stretch!important;
    overflow:hidden!important;
  }
  .kanban-screen > *{box-sizing:border-box!important;min-height:0!important;overflow:hidden!important;}
  .kanban-top{height:46px!important;padding:4px 12px!important;border-radius:20px!important;}
  .kanban-top b{font-size:clamp(23px,3.4vw,36px)!important;line-height:.92!important;}
  .kanban-top span{font-size:11px!important;margin-top:1px!important;}

  .kanban-status{
    height:96px!important;
    min-height:0!important;
    padding:3px 12px!important;
    border:2px solid rgba(255,255,255,.26)!important;
    border-radius:22px!important;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.07),0 4px 10px rgba(0,0,0,.24)!important;
    transform:none!important;
  }
  .kanban-status p{font-size:clamp(17px,2.8vw,26px)!important;line-height:.95!important;margin:0 0 1px!important;padding:2px 12px!important;}
  .kanban-status h1{font-size:clamp(52px,8.4vw,76px)!important;line-height:.86!important;letter-spacing:-.08em!important;text-shadow:0 5px 14px rgba(0,0,0,.34)!important;}

  .kanban-breakdown{
    height:42px!important;
    min-height:0!important;
    display:grid!important;
    grid-template-columns:repeat(4,1fr)!important;
    gap:10px!important;
    overflow:visible!important;
  }
  .kanban-breakdown div{
    height:42px!important;
    min-height:0!important;
    padding:2px 6px!important;
    border:2px solid rgba(255,255,255,.22)!important;
    border-radius:15px!important;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.04)!important;
    display:grid!important;
    place-items:center!important;
    align-content:center!important;
  }
  .kanban-breakdown span{font-size:10px!important;line-height:.95!important;}
  .kanban-breakdown strong{font-size:21px!important;line-height:.95!important;}

  .kanban-qr{
    height:100%!important;
    min-height:0!important;
    padding:6px 14px 6px 18px!important;
    border:2px solid rgba(255,255,255,.24)!important;
    border-radius:24px!important;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.06),0 4px 12px rgba(0,0,0,.25)!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:start!important;
    gap:14px!important;
    overflow:hidden!important;
  }
  .kanban-qr div{align-self:start!important;justify-self:start!important;padding-top:0!important;}
  .kanban-qr b{font-size:clamp(24px,3.4vw,38px)!important;line-height:1.02!important;}
  .kanban-qr span{font-size:clamp(15px,2vw,22px)!important;line-height:1.08!important;}
  .kanban-qr img{
    box-sizing:border-box!important;
    justify-self:end!important;
    align-self:center!important;
    width:min(310px,calc(100dvh - 276px),24.5vw)!important;
    height:min(310px,calc(100dvh - 276px),24.5vw)!important;
    min-width:300px!important;
    min-height:300px!important;
    max-width:100%!important;
    max-height:100%!important;
    padding:8px!important;
    border-radius:16px!important;
    object-fit:contain!important;
  }
}
@media (min-width:1024px) and (max-height:620px) and (min-height:521px){
  .kanban-screen{grid-template-rows:44px 92px 40px minmax(0,1fr)!important;row-gap:16px!important;padding:4px 12px 7px!important;}
  .kanban-top{height:44px!important;}
  .kanban-status{height:92px!important;}
  .kanban-status h1{font-size:clamp(48px,8vw,72px)!important;}
  .kanban-breakdown,.kanban-breakdown div{height:40px!important;}
  .kanban-qr img{width:min(304px,calc(100dvh - 265px),24vw)!important;height:min(304px,calc(100dvh - 265px),24vw)!important;min-width:292px!important;min-height:292px!important;}
}


/* kanban final spacing: shrink lower black cards and push large white QR to bottom */
@media (min-width:1024px) and (max-height:700px) and (min-height:521px){
  .kanban-screen{
    grid-template-rows:44px 92px 30px minmax(0,1fr)!important;
    row-gap:18px!important;
    padding:4px 12px 7px!important;
  }
  .kanban-top{height:44px!important;}
  .kanban-status{height:92px!important;}
  .kanban-breakdown{height:30px!important;gap:10px!important;overflow:visible!important;}
  .kanban-breakdown div{
    height:30px!important;
    min-height:0!important;
    padding:0 6px!important;
    border-radius:12px!important;
    border-width:1px!important;
    box-shadow:none!important;
  }
  .kanban-breakdown span{font-size:9px!important;line-height:.9!important;}
  .kanban-breakdown strong{font-size:16px!important;line-height:.9!important;}
  .kanban-qr{
    height:100%!important;
    padding:6px 14px 6px 18px!important;
    align-items:stretch!important;
    overflow:hidden!important;
  }
  .kanban-qr div{align-self:start!important;justify-self:start!important;}
  .kanban-qr img{
    align-self:end!important;
    justify-self:end!important;
    width:min(330px,calc(100dvh - 252px),25.8vw)!important;
    height:min(330px,calc(100dvh - 252px),25.8vw)!important;
    min-width:320px!important;
    min-height:320px!important;
    padding:8px!important;
    background:#fff!important;
    border-radius:16px!important;
  }
}
@media (min-width:1024px) and (max-height:620px) and (min-height:521px){
  .kanban-screen{grid-template-rows:42px 88px 28px minmax(0,1fr)!important;row-gap:17px!important;padding:4px 12px 6px!important;}
  .kanban-top{height:42px!important;}
  .kanban-status{height:88px!important;}
  .kanban-breakdown,.kanban-breakdown div{height:28px!important;}
  .kanban-qr img{width:min(324px,calc(100dvh - 240px),25.4vw)!important;height:min(324px,calc(100dvh - 240px),25.4vw)!important;min-width:312px!important;min-height:312px!important;}
}


/* emergency visible kanban change: cache-busted, black cards ultra-thin, QR white block bottom-filled */
@media (min-width:1024px) and (max-height:700px) and (min-height:521px){
  .kanban-screen{
    height:100dvh!important;
    padding:4px 10px 6px!important;
    grid-template-rows:40px 86px 20px minmax(0,1fr)!important;
    row-gap:16px!important;
    overflow:hidden!important;
  }
  .kanban-top{height:40px!important;padding:3px 10px!important;}
  .kanban-top b{font-size:34px!important;line-height:.9!important;}
  .kanban-top span{font-size:10px!important;margin-top:0!important;}
  .kanban-status{height:86px!important;min-height:0!important;padding:2px 10px!important;border-radius:20px!important;border-width:2px!important;box-shadow:none!important;}
  .kanban-status p{font-size:20px!important;line-height:.9!important;margin:0!important;padding:1px 10px!important;}
  .kanban-status h1{font-size:70px!important;line-height:.82!important;text-shadow:none!important;}
  .kanban-breakdown{height:20px!important;min-height:0!important;gap:8px!important;overflow:visible!important;}
  .kanban-breakdown div{height:20px!important;min-height:0!important;padding:0 5px!important;border-radius:9px!important;border-width:1px!important;box-shadow:none!important;background:rgba(0,0,0,.56)!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:6px!important;}
  .kanban-breakdown span{font-size:8px!important;line-height:1!important;}
  .kanban-breakdown strong{font-size:13px!important;line-height:1!important;}
  .kanban-qr{height:100%!important;min-height:0!important;padding:6px 12px 6px 16px!important;border-radius:22px!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:stretch!important;overflow:hidden!important;}
  .kanban-qr div{align-self:start!important;justify-self:start!important;padding-top:0!important;z-index:2!important;}
  .kanban-qr b{font-size:34px!important;line-height:1!important;}
  .kanban-qr span{font-size:19px!important;line-height:1.05!important;}
  .kanban-qr img{
    box-sizing:border-box!important;
    justify-self:end!important;
    align-self:end!important;
    width:min(356px,calc(100dvh - 222px),27.8vw)!important;
    height:min(356px,calc(100dvh - 222px),27.8vw)!important;
    min-width:345px!important;
    min-height:345px!important;
    max-width:100%!important;
    max-height:100%!important;
    padding:8px!important;
    border-radius:18px!important;
    background:#fff!important;
  }
}
@media (min-width:1024px) and (max-height:620px) and (min-height:521px){
  .kanban-screen{grid-template-rows:38px 82px 18px minmax(0,1fr)!important;row-gap:15px!important;padding:3px 10px 5px!important;}
  .kanban-top{height:38px!important;}
  .kanban-status{height:82px!important;}
  .kanban-status h1{font-size:66px!important;}
  .kanban-breakdown,.kanban-breakdown div{height:18px!important;}
  .kanban-qr img{width:min(350px,calc(100dvh - 211px),27.3vw)!important;height:min(350px,calc(100dvh - 211px),27.3vw)!important;min-width:338px!important;min-height:338px!important;}
}

/* waitlist preference popup: 空席通知はインライン展開せずPOPUPのみ */
body.waitlist-preference-popup-open{overflow:hidden;}
.waitlist-preference-popup{display:none;position:fixed;inset:0;z-index:3050;background:rgba(0,0,0,.62);padding:18px;align-items:center;justify-content:center;}
body.waitlist-preference-popup-open .waitlist-preference-popup{display:flex;}
.waitlist-preference-popup[aria-hidden="true"]{display:none!important;}
.waitlist-preference-card{position:relative;width:min(420px,100%);background:#fff;color:#111;border:2px solid #111;border-radius:26px;padding:22px;box-shadow:0 18px 0 rgba(17,17,17,.22);}
.waitlist-preference-card h2{margin:0 0 6px;font-size:24px;font-weight:900;letter-spacing:-.05em;}
.waitlist-preference-card p{margin:0 0 14px;color:#6b6258;font-size:13px;font-weight:800;line-height:1.5;}
.waitlist-preference-close{position:absolute;right:12px;top:12px;width:38px;height:38px;border:0;border-radius:999px;background:#111;color:#fff;font-size:23px;font-weight:900;line-height:1;cursor:pointer;}
.waitlist-preference-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;}
.waitlist-preference-fields label{display:grid;gap:6px;font-size:12px;font-weight:900;color:#111;line-height:1;text-align:left;}
.waitlist-preference-fields select{width:100%;min-height:44px;border:2px solid #111;border-radius:14px;background:#fff;color:#111;font-size:15px;font-weight:900;padding:8px 10px;}
.waitlist-preference-actions{display:grid;grid-template-columns:1fr .72fr;gap:10px;width:100%;margin-top:14px;}
.waitlist-preference-actions button{min-height:46px;border:0;border-radius:16px;background:#111;color:#fff;font-size:15px;font-weight:900;padding:10px 12px;cursor:pointer;}
.waitlist-preference-actions button:last-child{background:#eee7dd;color:#111;border:2px solid #111;}
#seatInfoCard .seat-waitlist-button[aria-expanded="true"]{background:#7c3aed;color:#fff;}
@media (max-width:520px){
  .waitlist-preference-popup{padding:14px;align-items:flex-end;}
  .waitlist-preference-card{border-radius:24px 24px 18px 18px;padding:20px 16px 16px;box-shadow:0 -10px 30px rgba(0,0,0,.22);}
  .waitlist-preference-fields{gap:8px;}
  .waitlist-preference-fields select{font-size:14px;min-height:42px;}
}

/* kanban full-state color correction: use straight red, not pink */
.kanban-status.is-full h1{color:#ff2b2b!important;text-shadow:0 8px 28px rgba(0,0,0,.42),0 0 24px rgba(255,43,43,.58)!important;}
.kanban-screen.is-full::after{background:radial-gradient(circle at 18% 12%,rgba(255,225,86,.18),transparent 22%),radial-gradient(circle at 80% 18%,rgba(255,43,43,.24),transparent 26%),radial-gradient(circle at 50% 82%,rgba(69,205,255,.16),transparent 26%),linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.36))!important;}

/* kanban closed-state color correction: 営業時間外 is neutral gray */
.kanban-status.is-closed h1{color:#8f949b!important;text-shadow:0 8px 26px rgba(0,0,0,.42),0 0 18px rgba(143,148,155,.38)!important;}
.kanban-screen.is-closed::after{background:radial-gradient(circle at 18% 12%,rgba(190,190,190,.12),transparent 22%),radial-gradient(circle at 80% 18%,rgba(120,125,132,.18),transparent 26%),radial-gradient(circle at 50% 82%,rgba(95,100,108,.14),transparent 26%),linear-gradient(180deg,rgba(0,0,0,.18),rgba(0,0,0,.42))!important;}


/* user seat picker: right-bottom advance button */
.user-page .seat-action-row{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:10px;margin-top:8px;}
.user-page .seat-action-row .legend{margin-top:0;width:100%;display:flex;align-items:center;justify-content:flex-start;gap:14px;flex:0 0 auto;min-width:0;}
.go-reservation-form-button{flex:0 0 auto;border:0;border-radius:999px;background:#a8a29e;color:#fff;padding:12px 18px;font-size:14px;font-weight:900;line-height:1;box-shadow:0 4px 0 #78716c;opacity:.72;cursor:not-allowed;white-space:nowrap;}
.go-reservation-form-button.is-ready{background:#111;color:#fff;box-shadow:0 5px 0 #4ade80,0 0 0 4px rgba(74,222,128,.18);opacity:1;cursor:pointer;animation:goReservationPulse 1.05s ease-in-out infinite;}
.go-reservation-form-button.is-ready:active{transform:translateY(2px);box-shadow:0 2px 0 #4ade80,0 0 0 4px rgba(74,222,128,.18);}
@keyframes goReservationPulse{0%,100%{filter:brightness(1);transform:scale(1)}50%{filter:brightness(1.28);transform:scale(1.035)}}
@media (prefers-reduced-motion: reduce){.go-reservation-form-button.is-ready{animation:none;}}
@media (max-width:390px){body.user-page .seat-action-row{gap:8px}body.user-page .go-reservation-form-button{padding:10px 12px!important;font-size:12px!important;min-height:34px!important;}}


/* user reservation request: fullscreen popup */
.user-page .reserve-card{display:none;}
body.reserve-popup-open{overflow:hidden;}
body.reserve-popup-open.user-page .reserve-card{display:block;position:fixed;inset:0;z-index:3000;margin:0;width:100vw;height:100dvh;max-height:100dvh;overflow:auto;border-radius:0;padding:18px 16px 24px;background:#fffaf2;box-shadow:none;}
body.reserve-popup-open.user-page::after{content:"";position:fixed;inset:0;z-index:2999;background:rgba(0,0,0,.45);}
.reserve-popup-head{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-18px -16px 14px;padding:16px;background:rgba(255,250,242,.96);backdrop-filter:blur(10px);border-bottom:1px solid rgba(17,17,17,.1);}
.reserve-popup-head h2{margin:0;font-size:22px;letter-spacing:-.04em;}
.reserve-popup-close{width:42px;height:42px;border:0;border-radius:999px;background:#111;color:#fff;font-size:26px;font-weight:900;line-height:1;cursor:pointer;box-shadow:0 4px 0 #4b3a2a;}
.reserve-popup-close:active{transform:translateY(2px);box-shadow:0 2px 0 #4b3a2a;}
body.reserve-popup-open.user-page .reserve-card #selectedText{font-weight:900;color:#4b3a2a;margin-bottom:12px;}
body.reserve-popup-open.user-page .reserve-card .seat-usage-window-note{display:block;margin:0 0 12px;padding:12px 14px;border:2px solid #f59e0b;border-radius:14px;background:#fff2b8;color:#111;font-size:15px;font-weight:1000;line-height:1.45;white-space:pre-line;box-shadow:0 4px 0 rgba(245,158,11,.24);}
body.reserve-popup-open.user-page .reserve-card .form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px;}
body.reserve-popup-open.user-page .reserve-card input,body.reserve-popup-open.user-page .reserve-card select,body.reserve-popup-open.user-page .reserve-card textarea{font-size:16px;}
@media (max-width:430px){body.reserve-popup-open.user-page .reserve-card{padding:14px 12px 22px}.reserve-popup-head{margin:-14px -12px 12px;padding:13px 12px}.reserve-popup-head h2{font-size:20px}body.reserve-popup-open.user-page .reserve-card .form-row{grid-template-columns:1fr;gap:8px}body.reserve-popup-open.user-page .reserve-card .seat-usage-window-note{font-size:14px;padding:11px 12px;margin-bottom:10px}.reserve-popup-close{width:40px;height:40px}}


/* user mobile first-view compact: keep DARTS and reservation CTA visible */
@media (max-width:520px){
  body.user-page .hero{height:76px!important;padding:11px 12px 9px!important;}
  body.user-page .hero .topline b{font-size:16px!important;line-height:1!important;}
  body.user-page .store-open-status{font-size:10px!important;padding:2px 7px!important;}
  body.user-page .notification-toggle,
  body.user-page .refresh-state-button{font-size:10px!important;padding:7px 9px!important;min-width:46px!important;min-height:34px!important;}
  body.user-page .summary{margin:-13px 10px 8px!important;gap:6px!important;}
  body.user-page .summary div{height:72px!important;min-height:72px!important;max-height:72px!important;padding:6px 5px!important;border-radius:13px!important;grid-template-rows:auto minmax(0,1fr) auto!important;row-gap:0!important;box-shadow:0 7px 16px rgba(0,0,0,.18)!important;}
  body.user-page .summary span{font-size:9.5px!important;line-height:1!important;}
  body.user-page .summary strong,
  body.user-page .service-card strong{font-size:21px!important;line-height:.95!important;}
  body.user-page .summary strong.seat-breakdown{font-size:10.5px!important;gap:0!important;line-height:.95!important;}
  body.user-page .summary strong.seat-breakdown .seat-breakdown-row{width:72px!important;grid-template-columns:50px 16px!important;gap:4px!important;line-height:.95!important;}
  body.user-page .summary strong.seat-breakdown .seat-breakdown-row b{width:50px!important;font-size:9px!important;}
  body.user-page .summary strong.seat-breakdown .seat-breakdown-row em{width:16px!important;font-size:14px!important;}
  body.user-page .seat-waitlist-button{min-height:20px!important;padding:2px 5px!important;font-size:8.5px!important;border-radius:8px!important;}
  body.user-page .panel.seat-select-panel{margin:8px 10px 6px!important;padding:10px!important;border-radius:20px!important;}
  body.user-page .seat-select-panel .seat-select-head{margin-bottom:5px!important;}
  body.user-page .seat-title-row{gap:5px!important;}
  body.user-page .seat-select-panel .seat-title-row h2{font-size:18px!important;line-height:1!important;}
  body.user-page .large-group-inline{font-size:9.5px!important;gap:2px!important;}
  body.user-page .large-group-inline .large-group-shortcut{font-size:9.5px!important;min-height:21px!important;padding:4px 6px!important;}
  body.user-page .seat-guide-row{margin-top:3px!important;}
  body.user-page .floor-guide .counter-guide{font-size:10px!important;line-height:1.05!important;}
  body.user-page .user-floor{height:385px!important;border-radius:18px!important;}
  body.user-page .user-floor .counter-zone{left:5px!important;width:31px!important;font-size:8.5px!important;border-radius:10px!important;}
  body.user-page .user-floor .door-label{left:5px!important;width:31px!important;font-size:8px!important;padding:5px 1px!important;}
  body.user-page .user-floor .floor-guard{top:3.3%!important;height:70%!important;}
  body.user-page .user-floor .floor-stairs{top:78.5%!important;height:14%!important;}
  body.user-page .user-floor .seat.counter{font-size:8.5px!important;border-width:2px!important;}
  body.user-page .user-floor .seat.sofa{font-size:8.7px!important;border-width:2px!important;border-radius:9px!important;line-height:1.05!important;}
  body.user-page .user-floor .darts-area{right:2%!important;top:5%!important;width:8.4%!important;height:43%!important;}
  body.user-page .user-floor .darts-slot{width:100%!important;min-width:0!important;height:40px!important;font-size:7.8px!important;border-width:1px!important;border-radius:2px!important;line-height:1!important;padding:0!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12),0 4px 9px rgba(0,0,0,.25)!important;}
  body.user-page .seat-action-row{margin-top:5px!important;gap:6px!important;align-items:center!important;}
  body.user-page .seat-action-row .legend{font-size:9px!important;gap:5px!important;line-height:1.1!important;}
  body.user-page .seat-action-row .legend span{font-size:9px!important;gap:4px!important;}
  body.user-page .seat-action-row .legend i{width:10px!important;height:10px!important;}
  body.user-page .go-reservation-form-button{padding:10px 12px!important;font-size:12px!important;min-height:34px!important;}
}
@media (max-width:380px){
  body.user-page .summary div{height:68px!important;min-height:68px!important;max-height:68px!important;}
  body.user-page .user-floor{height:365px!important;}
  body.user-page .panel.seat-select-panel{margin-left:8px!important;margin-right:8px!important;padding:9px!important;}
  body.user-page .user-floor .darts-slot{height:37px!important;font-size:7.3px!important;}
}

/* user interior image popup + slightly roomier mobile summary cards */
.seat-action-buttons{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:0 0 auto;}
.interior-image-button,.future-reservation-button{flex:0 0 auto;border:1.5px solid #111;border-radius:999px;background:#fff;color:#111;padding:11px 14px;font-size:13px;font-weight:900;line-height:1;box-shadow:0 4px 0 #d6cfc6;cursor:pointer;white-space:nowrap;}
.future-reservation-button{background:#f5edff;border-color:#7c3aed;color:#4c1d95;box-shadow:0 4px 0 #d8b4fe;}
.interior-image-button:active,.future-reservation-button:active{transform:translateY(2px);box-shadow:0 2px 0 #d6cfc6;}
.future-reservation-button:active{box-shadow:0 2px 0 #d8b4fe;}
body.interior-image-popup-open{overflow:hidden;}
.interior-image-popup{display:none;position:fixed;inset:0;z-index:3100;background:rgba(0,0,0,.88);color:#fff;padding:16px;overflow:auto;}
body.interior-image-popup-open .interior-image-popup{display:block;}
.interior-image-popup[aria-hidden="true"]{display:none!important;}
.interior-image-popup-head{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-16px -16px 14px;padding:14px 16px;background:rgba(0,0,0,.78);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.16);}
.interior-image-popup-head h2{margin:0;font-size:22px;font-weight:900;letter-spacing:-.04em;}.interior-image-popup-head small{display:block;margin-top:3px;color:rgba(255,255,255,.78);font-size:12px;font-weight:800;}
.interior-image-popup-close{width:42px;height:42px;border:0;border-radius:999px;background:#fff;color:#111;font-size:26px;font-weight:900;line-height:1;cursor:pointer;}
.interior-image-popup-frame{max-width:960px;margin:0 auto;padding-bottom:18px;overflow:hidden;}.interior-image-popup-track{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:0 0 14px;}
.interior-image-popup-track figure{flex:0 0 88%;scroll-snap-align:center;margin:0;border-radius:22px;overflow:hidden;background:#111;border:1px solid rgba(255,255,255,.16);box-shadow:0 20px 60px rgba(0,0,0,.35);}
.interior-image-popup-track img{display:block;width:100%;height:min(68dvh,620px);object-fit:cover;background:#111;}
.interior-image-popup-track figcaption{padding:10px 12px;font-size:13px;font-weight:900;color:#fff;background:rgba(255,255,255,.08);}
@media (max-width:520px){
  body.user-page .summary div{height:84px!important;min-height:84px!important;max-height:84px!important;padding:7px 5px!important;}
  body.user-page .summary strong.seat-full{font-size:20px!important;line-height:1!important;}
  body.user-page .seat-waitlist-button{min-height:23px!important;padding:3px 5px!important;font-size:9px!important;}
  body.user-page .seat-action-buttons{gap:6px;}
  body.user-page .interior-image-button{padding:10px 10px!important;font-size:11px!important;min-height:34px!important;}
  body.user-page .go-reservation-form-button{padding:10px 11px!important;font-size:12px!important;min-height:34px!important;}
}
@media (max-width:380px){
  body.user-page .summary div{height:80px!important;min-height:80px!important;max-height:80px!important;}
  body.user-page .seat-action-row{flex-wrap:wrap;}
  body.user-page .seat-action-buttons{width:100%;justify-content:flex-end;}
}

@media (max-width:520px){
  body.user-page .interior-image-popup{padding:12px;}
  body.user-page .interior-image-popup-head{margin:-12px -12px 12px;padding:12px;}
  body.user-page .interior-image-popup-track{gap:10px;}
  body.user-page .interior-image-popup-track figure{flex-basis:92%;}
  body.user-page .interior-image-popup-track img{height:62dvh;}
}

/* user future reservation popup: 当日以外のご予約 */
body.future-reservation-popup-open{overflow:hidden;}
.future-reservation-popup{display:none;position:fixed;inset:0;z-index:3080;background:rgba(0,0,0,.62);padding:18px;align-items:center;justify-content:center;color:#111;}
body.future-reservation-popup-open .future-reservation-popup{display:flex;}
.future-reservation-popup[aria-hidden="true"]{display:none!important;}
.future-reservation-card{width:min(720px,100%);max-height:calc(100dvh - 36px);overflow:auto;background:#fffaf2;border:2px solid #111;border-radius:26px;padding:0;box-shadow:0 18px 0 rgba(17,17,17,.2);}
.future-reservation-head{position:sticky;top:0;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px;background:rgba(255,250,242,.96);backdrop-filter:blur(10px);border-bottom:1px solid rgba(17,17,17,.1);}
.future-reservation-head h2{margin:0;font-size:22px;font-weight:900;letter-spacing:-.04em;}.future-reservation-head small{display:block;margin-top:4px;color:#6b6258;font-size:12px;font-weight:800;line-height:1.35;}
.future-reservation-close{flex:0 0 auto;width:40px;height:40px;border:0;border-radius:999px;background:#111;color:#fff;font-size:25px;font-weight:900;line-height:1;cursor:pointer;box-shadow:0 4px 0 #4b3a2a;}
.future-reservation-form{display:grid;gap:12px;padding:16px 18px 18px;}
.future-reservation-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.future-reservation-form label{display:grid;gap:6px;font-size:12px;font-weight:900;color:#111;line-height:1.1;text-align:left;}
.future-reservation-form input,.future-reservation-form select,.future-reservation-form textarea{width:100%;box-sizing:border-box;border:2px solid #111;border-radius:14px;background:#fff;color:#111;font-size:16px;font-weight:800;padding:10px 11px;}
.future-reservation-form textarea{resize:vertical;line-height:1.45;}
.future-reservation-note{margin:0;color:#6b6258;font-size:12px;font-weight:800;line-height:1.45;}
.future-seat-picker{display:grid;gap:8px;border:2px solid #111;border-radius:18px;background:#fff;padding:10px;}
.future-seat-picker-head{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;font-weight:900;color:#111;}
.future-seat-picker-head span{color:#4c1d95;text-align:right;line-height:1.25;}
.future-reservation-floor{height:420px;border-radius:18px;overflow:hidden;background:#f4eadc;}
.future-reservation-floor .darts-slot{cursor:not-allowed;opacity:.72;}
.future-reservation-floor .seat{cursor:pointer;}
.future-reservation-floor .seat.selected{outline:4px solid #111;outline-offset:3px;box-shadow:0 0 0 5px rgba(255,255,255,.7),0 12px 24px rgba(0,0,0,.24)!important;}
.future-reservation-actions{display:grid;grid-template-columns:1fr .55fr;gap:10px;}
.future-reservation-actions button{min-height:46px;border:0;border-radius:16px;background:#7c3aed;color:#fff;font-size:15px;font-weight:900;padding:10px 12px;cursor:pointer;box-shadow:0 4px 0 #4c1d95;}
.future-reservation-actions button:last-child{background:#eee7dd;color:#111;border:2px solid #111;box-shadow:0 4px 0 #d6cfc6;}
@media (max-width:520px){
  body.user-page .seat-action-row{flex-wrap:wrap;gap:8px;}
  body.user-page .seat-action-row .legend{flex:1 0 100%;}
  body.user-page .seat-action-buttons{width:100%;display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;}
  body.user-page .interior-image-button,body.user-page .future-reservation-button,body.user-page .go-reservation-form-button{width:100%;padding:9px 6px!important;font-size:10.5px!important;min-height:34px!important;}
  .future-reservation-popup{padding:14px;align-items:flex-end;}
  .future-reservation-card{max-height:calc(100dvh - 28px);border-radius:24px 24px 18px 18px;box-shadow:0 -10px 30px rgba(0,0,0,.22);}
  .future-reservation-head{padding:15px 16px 12px;}
  .future-reservation-form{padding:14px 16px 16px;gap:10px;}
  .future-reservation-grid{gap:8px;}
  .future-seat-picker{margin-left:-4px;margin-right:-4px;padding:8px;border-radius:16px;}
  .future-seat-picker-head{align-items:flex-start;flex-direction:column;gap:4px;}
  .future-seat-picker-head span{text-align:left;}
  .future-reservation-floor{height:360px;border-radius:15px;}
}
@media (max-width:380px){
  body.user-page .interior-image-button,body.user-page .future-reservation-button,body.user-page .go-reservation-form-button{font-size:9.8px!important;padding-left:4px!important;padding-right:4px!important;}
  .future-reservation-grid{grid-template-columns:1fr;}
  .future-reservation-actions{grid-template-columns:1fr;}
}


/* final user action layout: legend row above, button group below */
body.user-page .seat-action-row{display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;gap:10px!important;}
body.user-page .seat-action-row .legend{width:100%!important;display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;gap:14px!important;margin:0!important;flex:0 0 auto!important;}
body.user-page .seat-action-row .legend span{display:inline-flex!important;align-items:center!important;gap:5px!important;white-space:nowrap!important;writing-mode:horizontal-tb!important;}
body.user-page .seat-action-row .legend i{display:inline-block!important;flex:0 0 auto!important;}
body.user-page .seat-action-buttons{width:100%!important;display:grid!important;grid-template-columns:1fr 1fr 1fr!important;gap:8px!important;justify-content:stretch!important;align-items:center!important;}
body.user-page .seat-action-buttons button{width:100%!important;min-width:0!important;text-align:center!important;}
@media (max-width:520px){body.user-page .seat-action-row{gap:8px!important;}body.user-page .seat-action-row .legend{gap:12px!important;}body.user-page .seat-action-buttons{gap:6px!important;}body.user-page .seat-action-buttons button{font-size:10.5px!important;padding:9px 5px!important;min-height:34px!important;}}
@media (max-width:380px){body.user-page .seat-action-row .legend{gap:9px!important;}body.user-page .seat-action-buttons button{font-size:9.6px!important;padding-left:3px!important;padding-right:3px!important;}}


/* final user action button centering: keep all three labels visually centered */
body.user-page .seat-action-buttons button{display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;line-height:1.12!important;white-space:normal!important;padding-top:9px!important;padding-bottom:9px!important;}
body.user-page .interior-image-button{display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;}


/* keep the interior-image action label on one line on mobile */
body.user-page .seat-action-buttons .interior-image-button{font-size:11px!important;letter-spacing:-.06em!important;white-space:nowrap!important;word-break:keep-all!important;line-height:1!important;padding-left:6px!important;padding-right:6px!important;}
@media (max-width:390px){body.user-page .seat-action-buttons .interior-image-button{font-size:10.5px!important;letter-spacing:-.07em!important;padding-left:4px!important;padding-right:4px!important;}}

/* user add-to-home prompt */
.add-home-banner{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:2450;display:none;align-items:center;justify-content:space-between;gap:12px;background:#111;color:#fff;border:2px solid rgba(255,255,255,.86);border-radius:20px;padding:12px 12px 12px 14px;box-shadow:0 16px 48px rgba(0,0,0,.38);}
body.user-page.add-home-banner-visible .add-home-banner{display:flex;}
body.reserve-popup-open .add-home-banner,body.waitlist-preference-popup-open .add-home-banner,body.future-reservation-popup-open .add-home-banner,body.interior-image-popup-open .add-home-banner,body.add-home-guide-open .add-home-banner{display:none!important;}
.add-home-banner-text{display:grid;gap:2px;min-width:0;}
.add-home-banner-text b{font-size:14px;font-weight:900;letter-spacing:-.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.add-home-banner-text span{font-size:11px;font-weight:800;color:#e8ddff;line-height:1.25;}
.add-home-banner-actions{display:flex;align-items:center;gap:7px;flex:0 0 auto;}
.add-home-banner-actions button{border:0;border-radius:999px;font-weight:900;cursor:pointer;min-height:34px;padding:8px 12px;white-space:nowrap;}
#addHomeInstallButton{background:#8b5cf6;color:#fff;box-shadow:0 4px 0 #4c1d95;}
#addHomeLaterButton{background:#fff;color:#111;}
#addHomeDismissButton{width:34px;padding:0;background:#2f2937;color:#fff;font-size:20px;line-height:1;}
.add-home-guide-popup{display:none;position:fixed;inset:0;z-index:3060;background:rgba(0,0,0,.62);padding:18px;align-items:center;justify-content:center;}
body.add-home-guide-open .add-home-guide-popup{display:flex;}
.add-home-guide-popup[aria-hidden="true"]{display:none!important;}
.add-home-guide-card{position:relative;width:min(430px,100%);background:#fff;color:#111;border:2px solid #111;border-radius:26px;padding:22px;box-shadow:0 18px 0 rgba(17,17,17,.22);}
.add-home-guide-card h2{margin:0 36px 8px 0;font-size:24px;font-weight:900;letter-spacing:-.05em;}
.add-home-guide-card p{margin:0 0 12px;color:#4b4038;font-size:14px;font-weight:800;line-height:1.55;}
.add-home-guide-card .add-home-safari-note{margin:10px 0 12px;padding:11px 12px;border:2px solid #111;border-radius:16px;background:#f2e9ff;color:#111;text-align:center;font-size:14px;font-weight:900;line-height:1.45;}
.add-home-guide-card .add-home-safari-note b{font-size:18px;color:#7c3aed;}
.add-home-guide-card ol{margin:10px 0 0;padding-left:20px;color:#111;font-size:14px;font-weight:900;line-height:1.65;}
.add-home-guide-card li{padding-left:2px;}
.add-home-close{position:absolute;right:12px;top:12px;width:38px;height:38px;border:0;border-radius:999px;background:#111;color:#fff;font-size:23px;font-weight:900;line-height:1;cursor:pointer;}
.add-home-guide-actions{display:grid;grid-template-columns:1fr;gap:9px;margin-top:16px;}
.add-home-guide-actions button{min-height:46px;border:0;border-radius:16px;background:#111;color:#fff;font-size:15px;font-weight:900;padding:10px 12px;cursor:pointer;}
.add-home-guide-actions .add-home-secondary{background:#7c3aed;color:#fff;}
.add-home-safari-pointer{position:fixed;left:50%;bottom:calc(12px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:3062;display:grid;place-items:center;gap:0;min-width:64px;padding:6px 10px 2px;border:2px solid #fff;border-radius:999px;background:#7c3aed;color:#fff;box-shadow:0 8px 26px rgba(0,0,0,.45);font-weight:900;pointer-events:none;animation:add-home-pointer-bounce 1.05s ease-in-out infinite;}
.add-home-safari-pointer span{font-size:12px;line-height:1;}
.add-home-safari-pointer b{font-size:24px;line-height:.8;}
.ios-share-icon{display:inline-block;width:1.18em;height:1.18em;vertical-align:-.18em;margin:0 .08em;color:currentColor;background:currentColor;-webkit-mask:url('ios-share-icon.png') center/contain no-repeat;mask:url('ios-share-icon.png') center/contain no-repeat;}
.ios-share-icon::before,.ios-share-icon::after{content:none;}
.add-home-safari-note .ios-share-icon{font-size:25px;color:#7c3aed;}
.add-home-guide-card li .ios-share-icon{font-size:19px;color:#111;}
.add-home-safari-pointer .pointer-share-icon{font-size:21px;color:#fff;margin:2px 0 1px;}
@keyframes add-home-pointer-bounce{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,-7px)}}
@media (max-width:430px){.add-home-banner{left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom,0px));align-items:stretch;gap:9px;padding:11px 10px 10px 12px;border-radius:18px}.add-home-banner-text b{font-size:13px}.add-home-banner-text span{font-size:10.5px}.add-home-banner-actions{gap:5px}.add-home-banner-actions button{min-height:32px;padding:7px 9px;font-size:12px}#addHomeDismissButton{width:32px;font-size:18px}.add-home-guide-popup{padding:14px;align-items:flex-end}.add-home-guide-card{border-radius:24px 24px 18px 18px;padding:20px 16px 16px;box-shadow:0 -10px 30px rgba(0,0,0,.22);margin-bottom:58px}.add-home-guide-card h2{font-size:22px}.add-home-guide-card p,.add-home-guide-card ol{font-size:13px}.add-home-safari-pointer{bottom:calc(8px + env(safe-area-inset-bottom,0px));}}

/* store kanban display setting + runtime signboard bottom toggle */
.kanban-settings-card small{display:block;margin-top:7px;color:#6b5f50;font-size:10px;font-weight:800;line-height:1.25;}
.kanban-settings-card .crowded-toggle.active{background:#171717;color:#fff;border-color:#76ff9f;box-shadow:0 5px 0 #0f5132;}
.kanban-screen.hide-kanban-bottom .kanban-qr{display:none!important;}
.kanban-screen.hide-kanban-bottom{grid-template-rows:86px minmax(250px,1fr) 112px!important;}
@media (orientation:portrait) and (max-width:599px){.kanban-screen.hide-kanban-bottom{grid-template-rows:64px minmax(150px,1fr) 58px!important;}}
@media (orientation:landscape) and (max-height:700px){.kanban-screen.hide-kanban-bottom{grid-template-rows:52px minmax(108px,1fr) 34px!important;}}
.kanban-button-copy{display:block!important;margin-top:6px!important;color:#fff26b!important;font-weight:1000!important;text-shadow:0 0 18px rgba(255,242,107,.45)!important;letter-spacing:-.03em!important;}

/* DOPE operational improvements */
.future-store-panel,.terminal-penalty-panel{margin:12px 0;padding:12px;border:1px solid rgba(17,17,17,.12);border-radius:16px;background:#fff}
.future-store-head,.terminal-penalty-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.future-store-head{flex-wrap:nowrap}.future-store-head b{min-width:0;white-space:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;}
.future-store-head b{font-weight:1000;}
.future-store-head button{border:0;border-radius:999px;background:#111;color:#fff;padding:8px 12px;font-weight:900;cursor:pointer;}
.future-store-list{display:grid;gap:10px;margin-top:10px}
.future-store-row{position:relative;padding:10px;border:1px solid rgba(17,17,17,.1);border-radius:14px;background:#fafafa;color:#111}
.future-store-row.is-handled{}
.future-store-row button[data-future-status]:disabled{background:#9ca3af!important;color:#f3f4f6!important;cursor:not-allowed!important;box-shadow:none!important;opacity:.9!important;}
.future-store-row span,.future-store-row small,.future-store-row p{display:block;margin-top:4px}
.future-store-row .reservation-detail{display:block;margin-top:0;padding-right:64px;}
.future-store-row.reservation-minimized .reservation-detail{display:none!important;}
.future-store-row .reservation-detail>b{display:block;line-height:1.35;}
.future-store-row .reservation-detail>div{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;padding-right:0;}
.future-request-badge{display:inline-block;margin-left:6px;padding:3px 8px;border-radius:999px;background:#dc2626;color:#fff;font-size:11px;font-style:normal;font-weight:1000;vertical-align:middle;}
.future-request-badge.is-handled{background:#4b5563;}
.future-store-alert-red{border-color:#ef4444!important;background:#fff1f2!important;box-shadow:0 0 0 3px rgba(239,68,68,.16),0 8px 0 rgba(239,68,68,.14)!important;}
.future-store-alert-amber{border-color:#f59e0b!important;background:#fffbeb!important;box-shadow:0 0 0 3px rgba(245,158,11,.18),0 8px 0 rgba(245,158,11,.12)!important;}
.future-store-panel.future-store-alert-red .future-store-head b{color:#b91c1c;}
.future-store-panel.future-store-alert-amber .future-store-head b{color:#92400e;}
.future-store-row.is-unhandled{font-weight:900;}
@keyframes futureStoreAttention{0%,100%{filter:saturate(1);transform:translateZ(0)}50%{filter:saturate(1.65) brightness(1.04);box-shadow:0 0 0 5px rgba(239,68,68,.24),0 10px 0 rgba(239,68,68,.14)}}
.future-store-alert-blink{animation:futureStoreAttention 1.15s ease-in-out infinite;}
@media (prefers-reduced-motion:reduce){.future-store-alert-blink{animation:none!important;}}
.reservation-contact-line{padding:8px;border-radius:10px;background:#fff7ed;color:#7c2d12;font-weight:800}
.no-show-btn{background:#111;color:#fff}
.terminal-penalty-row{padding:8px 0;border-top:1px solid rgba(17,17,17,.08)}
.reservation-contact-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0}
.reservation-contact-actions small{grid-column:1/-1;color:#666;font-weight:800}
.own-reservation-status.blocked{border-color:#111;background:#fff7ed}

/* store header: compact last-updated/title beside action buttons */
.store-body .op-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;}
.store-body .op-head > div:first-child{display:flex;align-items:baseline;gap:8px;min-width:0;}
.store-body .op-head p#storeLastUpdated{margin:0;color:#aaa;font-weight:800;font-size:11px;line-height:1.1;white-space:nowrap;}
.store-body .operator .op-head h1{margin:0;font-size:22px;line-height:1.1;white-space:nowrap;}
.store-body .ops{display:flex;gap:6px;flex-wrap:wrap;align-items:center;justify-content:flex-end;flex:0 1 auto;}
.store-body .ops button{min-width:0;white-space:nowrap;padding:9px 11px;font-size:12px;line-height:1;border-radius:12px;}



/* user google review prompt */
.google-review-prompt{margin:6px 18px 8px;padding:10px 12px 10px;border:1px solid rgba(124,58,237,.24);border-radius:18px;background:linear-gradient(135deg,#f5f3ff,#ecfeff);box-shadow:0 10px 22px rgba(76,29,149,.10);color:#000;}
.google-review-copy{display:grid;gap:2px;margin-top:-2px;}
.google-review-copy b{font-size:15px;font-weight:1000;letter-spacing:.01em;}
.google-review-copy span{font-size:12px;font-weight:800;color:#000;line-height:1.45;}
.google-review-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:6px;}
.google-review-actions :is(button,a){border:0;border-radius:14px;padding:10px 8px;font-weight:1000;cursor:pointer;box-shadow:0 4px 0 rgba(17,17,17,.14);text-align:center;text-decoration:none;display:grid;place-items:center;line-height:1.15;}
.google-review-actions :is(button,a):first-child{background:#7c3aed;color:#fff;}
.google-review-actions :is(button,a):last-child{background:#0f766e;color:#fff;}
.google-review-prompt.is-attention{animation:googleReviewAttention 1.6s ease-in-out 6;}
@keyframes googleReviewAttention{0%,100%{transform:translateZ(0);box-shadow:0 10px 22px rgba(76,29,149,.10);}50%{transform:translateY(-1px);box-shadow:0 0 0 5px rgba(20,184,166,.22),0 14px 28px rgba(124,58,237,.18);filter:saturate(1.16) brightness(1.03);}}
.google-review-draft-popup{position:fixed;inset:0;display:none;place-items:center;padding:18px;background:rgba(15,23,42,.48);z-index:1200;}
.google-review-draft-popup.show{display:grid;}
.google-review-draft-card{position:relative;width:min(420px,100%);max-height:92dvh;overflow:auto;padding:18px;border-radius:20px;background:#fff;color:#000;box-shadow:0 24px 60px rgba(15,23,42,.3);}
.google-review-draft-close{position:absolute;top:10px;right:10px;width:34px;height:34px;border:0;border-radius:999px;background:#111;color:#fff;font-size:20px;font-weight:1000;cursor:pointer;padding:0;display:grid;place-items:center;line-height:1;}
.google-review-draft-close-icon{display:inline-block;line-height:1;transform:translateY(-2px);}
.google-review-draft-card h2{margin:0 42px 6px 0;font-size:20px;}
.google-review-draft-card p{margin:0 0 12px;color:#000;font-weight:800;line-height:1.45;}
.google-review-draft-card .google-review-draft-lead{font-size:13px;line-height:1.55;font-weight:800;}
.google-review-draft-card label{display:grid;gap:6px;margin:10px 0;font-weight:900;}
.google-review-draft-card .google-review-form-row{grid-template-columns:minmax(76px,auto) 1fr;align-items:center;column-gap:10px;margin:8px 0;}
.google-review-draft-card .google-review-form-row span{color:#000;font-weight:1000;white-space:nowrap;}
.google-review-draft-card .google-review-form-row select,.google-review-draft-card .google-review-form-row textarea{min-width:0;}
.google-review-draft-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:8px 0;}
.google-review-draft-pair .google-review-form-row{margin:0;grid-template-columns:auto minmax(0,1fr);column-gap:3px;}
.google-review-draft-pair .google-review-form-row span{font-size:13px;letter-spacing:-.04em;}
.google-review-draft-pair .google-review-form-row select{font-size:13px;padding-left:5px;padding-right:18px;}
.google-review-draft-card .google-review-form-row-textarea{display:grid;grid-template-columns:1fr;align-items:start;gap:6px;}
.google-review-draft-card .google-review-form-row-textarea span{padding-top:0;}
.google-review-draft-card input,.google-review-draft-card textarea{width:100%;box-sizing:border-box;border:1px solid #d1d5db;border-radius:12px;padding:10px;font:inherit;color:#000;background:#fff;-webkit-text-fill-color:#000;caret-color:#000;}
.google-review-draft-card textarea::placeholder{color:#9ca3af;-webkit-text-fill-color:#9ca3af;opacity:1;}
.google-review-draft-card button#googleReviewMakeDraft{width:100%;border:0;border-radius:14px;background:#7c3aed;color:#fff;padding:12px;font-weight:1000;cursor:pointer;margin:8px 0;}
.google-review-draft-card .mini-note{font-size:11px;color:#000;margin-top:8px;}
@media (prefers-reduced-motion:reduce){.google-review-prompt.is-attention{animation:none!important;}}
@media (max-width:520px){.google-review-prompt{margin:2px 12px 6px;padding:8px 10px 9px;}}
.google-review-rating-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.google-review-draft-card select{width:100%;box-sizing:border-box;border:1px solid #d1d5db;border-radius:12px;padding:10px;font:inherit;background:#fff;color:#000;}
.google-review-draft-output{display:grid;gap:10px;margin-top:10px;}
.google-review-draft-option{border:1px solid rgba(124,58,237,.18);border-radius:14px;padding:10px;background:#faf7ff;}
.google-review-draft-option b{display:block;margin-bottom:4px;color:#000;font-size:12px;}
.google-review-draft-option p{margin:0 0 8px;color:#000;font-weight:700;line-height:1.55;}
.google-review-draft-option button{border:0;border-radius:999px;background:#111;color:#fff;padding:7px 12px;font-weight:900;cursor:pointer;}

/* user short-height compact: home-button phones / small vertical viewport */
@media (orientation:portrait) and (max-width:430px) and (max-height:700px){
  body.user-page .mobile-shell{min-height:100dvh!important;}
  body.user-page .hero{height:64px!important;padding:8px 10px 7px!important;}
  body.user-page .hero .topline b{font-size:15px!important;line-height:.95!important;}
  body.user-page .store-open-status{font-size:9px!important;padding:1px 6px!important;}
  body.user-page .notification-toggle,
  body.user-page .refresh-state-button{font-size:9px!important;padding:5px 7px!important;min-width:40px!important;min-height:28px!important;}
  body.user-page .summary{margin:-10px 8px 5px!important;gap:5px!important;}
  body.user-page .summary div{height:58px!important;min-height:58px!important;max-height:58px!important;padding:5px 4px!important;border-radius:12px!important;}
  body.user-page .summary span{font-size:8.5px!important;line-height:.95!important;}
  body.user-page .summary strong,
  body.user-page .service-card strong{font-size:18px!important;line-height:.9!important;}
  body.user-page .summary strong.seat-breakdown{font-size:9px!important;line-height:.9!important;}
  body.user-page .summary strong.seat-breakdown .seat-breakdown-row{width:64px!important;grid-template-columns:44px 14px!important;gap:3px!important;}
  body.user-page .summary strong.seat-breakdown .seat-breakdown-row b{width:44px!important;font-size:8px!important;}
  body.user-page .summary strong.seat-breakdown .seat-breakdown-row em{width:14px!important;font-size:12px!important;}
  body.user-page .panel.seat-select-panel{margin:5px 8px 3px!important;padding:7px!important;border-radius:17px!important;}
  body.user-page .seat-select-panel .seat-select-head{margin-bottom:3px!important;}
  body.user-page .seat-select-panel .seat-title-row h2{font-size:16px!important;}
  body.user-page .large-group-inline{font-size:8.5px!important;}
  body.user-page .large-group-inline .large-group-shortcut{font-size:8.5px!important;min-height:19px!important;padding:3px 5px!important;}
  body.user-page .seat-guide-row{margin-top:1px!important;}
  body.user-page .floor-guide .counter-guide{font-size:9px!important;line-height:1!important;}
  body.user-page .user-floor{height:315px!important;border-radius:15px!important;}
  body.user-page .user-floor .counter-zone{font-size:7.8px!important;width:29px!important;}
  body.user-page .user-floor .door-label{font-size:7.2px!important;width:29px!important;padding:4px 1px!important;}
  body.user-page .user-floor .seat.counter{font-size:7.7px!important;border-width:1.5px!important;}
  body.user-page .user-floor .seat.sofa{font-size:7.9px!important;border-width:1.5px!important;border-radius:8px!important;line-height:1!important;}
  body.user-page .user-floor .darts-slot{height:33px!important;font-size:6.8px!important;}
  body.user-page .seat-action-row{margin-top:3px!important;gap:4px!important;}
  body.user-page .seat-action-row .legend{font-size:8px!important;gap:4px!important;}
  body.user-page .seat-action-row .legend span{font-size:8px!important;gap:3px!important;}
  body.user-page .seat-action-row .legend i{width:8px!important;height:8px!important;}
  body.user-page .seat-action-buttons{gap:4px!important;}
  body.user-page .interior-image-button,
  body.user-page .future-reservation-button{padding:8px 7px!important;font-size:9.5px!important;min-height:28px!important;border-radius:999px!important;}
  body.user-page .go-reservation-form-button{padding:8px 8px!important;font-size:10.5px!important;min-height:30px!important;}
  body.user-page .google-review-prompt{margin:0 10px 5px!important;padding:7px 9px 8px!important;border-radius:15px!important;}
  body.user-page .google-review-copy{gap:1px!important;margin-top:-2px!important;}
  body.user-page .google-review-copy b{font-size:13px!important;line-height:1.05!important;}
  body.user-page .google-review-copy span{display:none!important;}
  body.user-page .google-review-actions{gap:6px!important;margin-top:5px!important;}
  body.user-page .google-review-actions :is(button,a){padding:8px 6px!important;border-radius:12px!important;font-size:11px!important;}
}
@media (orientation:portrait) and (max-width:380px) and (max-height:650px){
  body.user-page .user-floor{height:295px!important;}
  body.user-page .summary div{height:54px!important;min-height:54px!important;max-height:54px!important;}
  body.user-page .hero{height:60px!important;}
  body.user-page .google-review-prompt{padding:6px 8px 7px!important;}
}
