/* Public storefront. Administration uses the existing theme. */
.store-shell {
  --bg:#f2f5fa; --surface:#fff; --surface-2:#eaf0fb; --text:#101c32;
  --muted:#495a73; --line:#d9e2ef; --border:var(--line);
  --accent:#224ed3; --accent-soft:#e8efff; --good:#086b51; --radius:22px;
  background:var(--bg); color:var(--text); color-scheme:light;
  font-family:system-ui,-apple-system,"Segoe UI",sans-serif;
}
.store-shell .store-header,.store-shell .mobile-tabs {
  background:#fff; border-color:var(--line); color:var(--text);
}
.store-shell .store-header { gap:clamp(12px,3vw,44px); }
.store-shell .store-header nav a { color:var(--muted); }
.store-shell .store-header nav a:hover { color:var(--accent); }
.store-shell .brand { color:var(--text); letter-spacing:-.055em; }
.store-shell .brand-symbol { background:#224ed3; color:white; box-shadow:0 4px 14px #224ed340; }
.store-shell .store-main { max-width:1390px; padding-inline:clamp(14px,4vw,58px); }
.store-shell .hero {
  display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); align-items:center;
  margin:clamp(16px,4vw,50px) 0 18px; padding:clamp(24px,5vw,70px);
  min-height:0; gap:clamp(20px,4vw,60px); border-radius:30px;
  background:radial-gradient(ellipse at 95% 15%,#213e78,transparent 62%),#0c1730;
  color:#f4f8ff; overflow:hidden;
}
.store-shell .hero h1,.store-shell .auth-story h1 {
  font-size:clamp(2.35rem,5vw,5rem); line-height:1.02; letter-spacing:-.07em;
}
.store-shell .hero h1 span,.store-shell .hero .eyebrow,.store-shell .auth-story .red { color:#a6c2ff; }
.store-shell .hero p,.store-shell .auth-story p { color:#d3def2; font-size:clamp(1rem,1.4vw,1.15rem); line-height:1.6; }
.store-shell .hero .button { background:#b9ceff; color:#122452; }
.store-shell .market-chart {
  min-width:0; padding:clamp(14px,2vw,26px); border:1px solid #7599e47a;
  border-radius:22px; background:#14254b; color:#eef4ff;
}
.store-shell .market-chart header,.store-shell .market-chart footer { display:flex; flex-wrap:wrap; justify-content:space-between; gap:6px 12px; }
.store-shell .market-chart small { color:#adc1e9; font-size:.72rem; font-weight:700; letter-spacing:.07em; }
.store-shell .market-chart svg { display:block; width:100%; height:auto; margin:10px 0; }
.store-shell .market-chart footer { padding-top:12px; border-top:1px solid #789bdf60; }
.store-shell .market-chart footer span { font-weight:750; }
.store-shell .trust-strip {
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:center;
  background:var(--surface); border:1px solid var(--line); border-radius:18px;
  padding:15px 20px; margin-bottom:clamp(32px,5vw,64px); font-size:.87rem;
}
.store-shell .trust-strip b { color:var(--accent); }
.store-shell #salas { scroll-margin-top:95px; }
.store-shell .section-heading :is(h1,h2),.store-shell .purchase-panel h1 { letter-spacing:-.055em; overflow-wrap:anywhere; }
.store-shell .eyebrow { font-size:.72rem; font-weight:800; }
.store-shell .panel,.store-shell .room-card,.store-shell .market-note { border-radius:var(--radius); box-shadow:0 10px 35px #14254b0b; }
.store-shell .room-card { background:#fff; border:1px solid var(--line); overflow:hidden; min-width:0; }
.store-shell .room-cover { background:#eaf0fb; }
.store-shell .room-cover img { object-fit:contain; }
.store-shell .room-prices,.store-shell .live-price,.store-shell .checkout-amount { background:var(--surface-2); border-radius:14px; }
.store-shell .live-price>strong,.store-shell .checkout-amount strong { font-variant-numeric:tabular-nums; }
.store-shell .market-note { margin:clamp(24px,5vw,56px) 0; padding:clamp(20px,4vw,40px); background:#dfe9ff; color:#14254b; }
.store-shell .market-note h2 { margin:7px 0; font-size:clamp(1.35rem,3vw,2.2rem); letter-spacing:-.045em; }
.store-shell .market-note p { max-width:76ch; line-height:1.65; }
.store-shell .how-grid article { padding:22px; background:var(--surface); border:1px solid var(--line); border-radius:18px; }
.store-shell .auth-grid { gap:clamp(16px,4vw,58px); align-items:start; }
.store-shell .auth-story {
  padding:clamp(24px,5vw,64px); border-radius:26px; color:#f4f8ff;
  background:radial-gradient(ellipse at 100% 0,#244a8a,transparent 66%),#0c1730;
}
.store-shell .auth-story h1 { font-size:clamp(2rem,4.6vw,4.25rem); }
.store-shell .auth-number { color:#a6c2ff; }
.store-shell .auth-card,.store-shell .compact-auth { background:#fff; padding:clamp(20px,4vw,40px); }
.store-shell .form-stack :is(input:not([type=checkbox]):not([type=radio]),select,textarea) {
  font-size:16px; color:var(--text); background:#f7f9fd; border-color:#aebed6;
}
.store-shell :is(a,button,input,textarea,select,summary):focus-visible { outline:3px solid #547bf2; outline-offset:3px; }
.store-shell .button { min-height:44px; }
.store-shell .button:not(.secondary):not(.danger) { background:var(--accent); color:#fff; }
.store-shell .hero .button:not(.secondary) { background:#b9ceff; color:#122452; }
.store-shell .button.secondary { background:#fff; color:#20345b; border-color:#aebed6; }
.store-shell :is(.list-row,.room-feed li,.sequence-item,.gateway-card,.faq-item) { border-color:var(--line); }
.store-shell :is(.panel,.list-row,.sequence-item,.checkout-layout,.product-layout,.two-columns,.header-actions)>* { min-width:0; }
.store-shell :is(.list-row,.notice,.room-card-body,.checkout-layout,.purchase-panel,.form-stack,.store-footer) { overflow-wrap:anywhere; }
.store-shell .store-footer { border-color:var(--line); }
.store-shell .mobile-tabs { padding-bottom:max(6px,env(safe-area-inset-bottom)); }
@media(max-width:960px) {
  .store-shell .store-main { padding-inline:clamp(14px,3.5vw,30px); }
}
@media(max-width:700px) {
  .store-shell .hero,.store-shell .auth-grid { grid-template-columns:minmax(0,1fr); }
  .store-shell .hero { border-radius:22px; }
  .store-shell .market-chart svg { max-height:145px; }
  .store-shell .auth-story { padding:22px; }
  .store-shell .auth-number { display:none; }
  .store-shell .trust-strip { grid-template-columns:minmax(0,1fr); gap:12px; }
  .store-shell .header-actions .account-link { display:none; }
  .store-shell .header-actions .text-button { min-height:44px; padding-inline:5px; }
  .store-shell .store-header .brand { overflow-wrap:anywhere; min-width:0; }
}

/* Navigation and customer overview */
.store-shell .store-header {
  height:auto; min-height:78px; padding:12px clamp(14px,4.2vw,68px);
  justify-content:space-between; box-shadow:0 8px 30px #10244a12;
}
.store-shell .store-header .brand-symbol { width:42px; height:42px; border-radius:13px; background:linear-gradient(135deg,#416cf2,#1938a7); }
.store-shell .store-header .brand small { display:block; margin-top:3px; font-size:9px; letter-spacing:.16em; color:var(--muted); }
.store-shell .store-navigation {
  display:flex; align-items:center; gap:3px; padding:4px;
  background:#edf2fa; border:1px solid #dce5f4; border-radius:14px;
}
.store-shell .store-navigation a {
  display:inline-flex; align-items:center; gap:7px; min-height:42px; padding:0 12px;
  font-size:.83rem; font-weight:750; white-space:nowrap; border-radius:10px;
}
.store-shell .store-navigation a span { font-size:1.04rem; color:#3456ad; }
.store-shell .store-navigation a[aria-current=page] { background:white; color:#193d9f; box-shadow:0 2px 8px #1a387820; }
.store-shell .hero { position:relative; box-shadow:0 24px 60px #13295033; }
.store-shell .market-chart {
  background:linear-gradient(145deg,#284c89,#14254b 68%); box-shadow:0 20px 40px #060e22a0;
}
.store-shell .market-chart header strong { font-size:clamp(1rem,2vw,1.35rem); }
.store-shell .market-actions,.store-shell .market-proof { display:flex; align-items:center; flex-wrap:wrap; gap:12px 18px; }
.store-shell .market-guide { display:inline-flex; align-items:center; gap:8px; min-height:44px; color:#f2f6ff; font-weight:700; }
.store-shell .market-proof { margin-top:24px; color:#c1d4fb; font-size:.81rem; }
.store-shell .market-count {
  display:inline-flex; align-items:center; gap:8px; padding:8px 12px; background:#e4edff;
  color:#1a3b88; border:1px solid #c5d5f8; border-radius:99px; font-size:.78rem; font-weight:750;
}
.store-shell .market-count i { width:7px; height:7px; border-radius:50%; background:#315cdd; }
.store-shell .room-card .arrow-link { width:auto; min-height:44px; padding:0 14px; font-size:.82rem; white-space:nowrap; }
.store-shell .customer-overview { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:0 0 24px; }
.store-shell .customer-overview a {
  display:grid; grid-template-columns:1fr auto; gap:7px 12px; padding:clamp(16px,3vw,28px);
  color:#f1f6ff; background:linear-gradient(125deg,#122348,#284b8a); border-radius:18px;
}
.store-shell .customer-overview a span { grid-column:2; grid-row:1; color:#c1d4fb; }
.store-shell .customer-overview strong { grid-column:1; grid-row:1; font-size:clamp(1.8rem,3.5vw,3rem); line-height:1; }
.store-shell .customer-overview small { grid-column:1/-1; color:#d5e3ff; font-weight:650; }
.store-shell :is(#minhas-reservas,#meus-acessos,#meus-pagamentos) { scroll-margin-top:110px; }
@media(max-width:960px) {
  .store-shell .store-header { flex-wrap:wrap; gap:8px 12px; }
  .store-shell .store-header .store-navigation { order:3; width:100%; justify-content:center; }
  .store-shell .store-navigation a { flex:1 1 auto; justify-content:center; }
}
@media(max-width:500px) {
  .store-shell .store-header .brand-symbol { width:34px; height:34px; }
  .store-shell .store-header .brand { font-size:16px; }
  .store-shell .store-header .brand small { font-size:8px; letter-spacing:.09em; }
  .store-shell .store-navigation a { padding:0 5px; gap:4px; font-size:.69rem; }
  .store-shell .store-navigation a span { font-size:.82rem; }
  .store-shell .customer-overview { grid-template-columns:minmax(0,1fr); gap:8px; }
  .store-shell .customer-overview a { grid-template-columns:auto 1fr auto; align-items:center; }
  .store-shell .customer-overview a span { grid-column:3; }
  .store-shell .customer-overview small { grid-column:2; grid-row:1; }
}

/* Storefront composition */
.store-shell {
  --accent:#4231b0; --accent-soft:#ece8ff; --bg:#f6f5fa; --surface-2:#eeebfa;
  --text:#161228; --muted:#554e68; --line:#ded9ec; --border:var(--line);
  --launch-ink:#17102e; --launch-lime:#d9ff79;
}
.store-shell .store-header { border-bottom:1px solid var(--line); }
.store-shell .store-header .brand-symbol { background:linear-gradient(145deg,#714df4,#352099); }
.store-shell .store-navigation { background:#f1eef8; border-color:var(--line); }
.store-shell .store-navigation a[aria-current=page] { color:#3d2597; }
.store-shell .launch-stage {
  display:grid; grid-template-columns:minmax(0,1.04fr) minmax(0,1fr); align-items:center;
  gap:clamp(18px,5vw,72px); padding:clamp(22px,5vw,72px); margin:clamp(14px,3vw,40px) 0 18px;
  background:radial-gradient(ellipse at 82% 5%,#4b2b90 0,transparent 65%),var(--launch-ink);
  border-radius:clamp(20px,4vw,38px); color:#fff; box-shadow:0 24px 58px #25164b30;
}
.store-shell .launch-copy h1 {
  margin:22px 0 18px; font-size:clamp(2.7rem,6.2vw,6rem); line-height:.99; letter-spacing:-.083em;
  overflow-wrap:anywhere;
}
.store-shell .launch-copy h1 span,.store-shell .launch-empty svg { color:var(--launch-lime); }
.store-shell .launch-copy p { max-width:34ch; color:#e0d8fa; font-size:clamp(1rem,1.6vw,1.23rem); line-height:1.65; }
.store-shell .launch-copy .market-actions { margin-top:24px; }
.store-shell .launch-label {
  display:inline-flex; align-items:center; gap:8px; width:fit-content; padding:7px 11px;
  background:#2b1c52; color:#f4efff; border:1px solid #7867a5; border-radius:99px;
  font-size:.68rem; font-weight:800; letter-spacing:.08em;
}
.store-shell .launch-label i { width:7px; height:7px; background:var(--launch-lime); border-radius:50%; }
.store-shell .launch-copy .launch-primary { background:var(--launch-lime); color:#211b0d; }
.store-shell .launch-spotlight { min-width:0; border-radius:24px; border:1px solid #7867a5; overflow:hidden; background:#261947; }
.store-shell .launch-photo { position:relative; aspect-ratio:16/10; background:#eae5f7; }
.store-shell .launch-photo img { display:block; width:100%; height:100%; object-fit:contain; }
.store-shell .launch-photo .launch-label { position:absolute; top:14px; left:14px; }
.store-shell .launch-ticket {
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px;
  padding:clamp(16px,3vw,27px); color:#fff;
}
.store-shell .launch-ticket small,.store-shell .launch-ticket time { display:block; color:#ded2f8; font-size:.78rem; }
.store-shell .launch-ticket h2 { margin:4px 0; font-size:clamp(1.2rem,2.6vw,2rem); letter-spacing:-.05em; overflow-wrap:anywhere; }
.store-shell .launch-ticket-link { display:inline-flex; align-items:center; min-height:44px; padding:0 12px; border:1px solid #8574ad; border-radius:10px; color:#fff; font-weight:750; }
.store-shell .launch-empty>.launch-label { margin:18px; }
.store-shell .launch-empty svg { display:block; width:calc(100% - 36px); margin:0 18px; }
.store-shell .market-note { background:var(--launch-ink); color:#f8f5ff; }
.store-shell .market-note a { color:var(--launch-lime); }
.store-shell .auth-story { background:radial-gradient(ellipse at 100% 0,#4b2b90,transparent 70%),var(--launch-ink); }
.store-shell .auth-perks { display:grid; gap:12px; margin-top:30px; }
.store-shell .auth-perks>div { display:flex; gap:12px; align-items:center; border-top:1px solid #7867a5; padding-top:12px; }
.store-shell .auth-perks b { color:var(--launch-lime); }
.store-shell .auth-perks small { display:block; margin-top:3px; color:#e0d8fa; }
.store-shell .room-masthead { background:var(--launch-ink); color:#fff; padding:clamp(20px,4vw,44px); border-radius:24px; }
.store-shell .room-masthead .muted,.store-shell .room-masthead .eyebrow { color:#e0d8fa; }
.store-shell .entry-ticket { border-top:5px solid var(--accent); }
.store-shell .purchase-panel .live-price { background:var(--launch-ink); color:#fff; padding:clamp(18px,3vw,30px); }
.store-shell .purchase-panel .live-price :is(span,b) { color:#ede5ff; }
.store-shell .purchase-panel .live-price>strong { color:var(--launch-lime); }
.store-shell .customer-overview a { background:linear-gradient(130deg,#21143e,#4b2b90); }
.store-shell .checkout-layout>.panel { border-top:4px solid var(--accent); }
.store-shell .store-footer { border-top:1px solid var(--line); }
@media(max-width:760px) {
  .store-shell .launch-stage { grid-template-columns:minmax(0,1fr); }
  .store-shell .launch-photo { aspect-ratio:16/8; }
  .store-shell .auth-perks { display:none; }
}

.store-shell .room-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr)); }
.store-shell .room-card { max-width:440px; width:100%; }
.store-shell .room-card .room-prices { padding:12px; gap:10px; }
.store-shell .room-prices span { color:var(--muted); font-weight:650; }
.store-shell .room-prices strong { font-size:clamp(1.05rem,4vw,1.28rem); color:var(--text); }
.store-shell .room-prices span+span strong { color:var(--accent); }
.store-shell .room-schedule { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:10px 0; }
.store-shell .room-schedule div { border:1px solid var(--line); border-radius:12px; padding:9px 10px; }
.store-shell .room-schedule dt,.store-shell .room-entry-bar span { font-size:.74rem; font-weight:700; color:var(--muted); }
.store-shell .room-schedule dd,.store-shell .room-entry-bar strong { display:block; margin:3px 0 0; color:var(--text); font-size:1rem; font-weight:800; }
.store-shell .room-entry-bar { display:flex; justify-content:space-between; align-items:center; gap:8px; padding-top:10px; border-top:1px solid var(--line); }
@media(max-width:600px) {
  .store-shell .launch-stage { padding:16px; gap:13px; margin:12px 0 9px; }
  .store-shell .launch-copy h1 { margin:8px 0 5px; font-size:clamp(1.9rem,7vw,2.55rem); letter-spacing:-.065em; }
  .store-shell .launch-copy h1 br { display:none; }
  .store-shell .launch-copy p { margin:0; max-width:none; font-size:.87rem; line-height:1.4; }
  .store-shell .launch-copy .market-actions { margin-top:8px; gap:4px 12px; }
  .store-shell .launch-spotlight { display:grid; grid-template-columns:70px minmax(0,1fr); border-radius:13px; }
  .store-shell .launch-photo { aspect-ratio:auto; }
  .store-shell .launch-photo .launch-label { display:none; }
  .store-shell .launch-ticket { padding:8px; gap:3px 8px; }
  .store-shell .launch-ticket h2 { font-size:1rem; margin:2px 0; }
  .store-shell .launch-ticket small,.store-shell .launch-ticket time { font-size:.67rem; }
  .store-shell .launch-ticket-link { font-size:.71rem; padding-inline:6px; }
  .store-shell .launch-spotlight:has(.launch-empty) { display:none; }
  .store-shell .trust-strip { display:none; }
  .store-shell #salas { margin-top:20px; }
  .store-shell #salas .section-heading { margin-bottom:12px; }
  .store-shell .room-cover { height:145px; }
  .store-shell .room-card-body { padding:13px; }
}

/* Dark storefront surfaces and semantic states. */
.store-shell {
  color-scheme:dark;
  --bg:#0e1019; --surface:#181c2b; --surface-2:#22283b; --text:#f4f5ff;
  --muted:#b7bfd6; --line:#3c4560; --border:var(--line);
  --accent:#b9aaff; --accent-soft:#30264e; --good:#83ecc5;
}
.store-shell :is(.store-header,.mobile-tabs,.room-card,.auth-card,.compact-auth) { background:var(--surface); color:var(--text); }
.store-shell .store-navigation { background:#111523; }
.store-shell .store-navigation a span { color:#baafff; }
.store-shell .store-navigation a[aria-current=page] { background:#33304d; color:#f2edff; }
.store-shell .room-cover { background:var(--surface-2); }
.store-shell :is(.market-count,.badge,.sequence-number) { background:#302650; color:#f3ebff; border-color:#655790; }
.store-shell .badge.live { background:#12392e; color:#9bf6d6; }
.store-shell .market-count i { background:#cbbcff; }
.store-shell .button:not(.secondary):not(.danger) { background:#b9aaff; color:#18112e; }
.store-shell .launch-copy .launch-primary { background:var(--launch-lime); color:#201a0d; }
.store-shell .button.secondary { background:#22283b; color:#f4f5ff; border-color:#65718e; }
.store-shell .button:disabled { opacity:.65; }
.store-shell :is(input:not([type=checkbox]):not([type=radio]),textarea,select),
.store-shell .form-stack :is(input:not([type=checkbox]):not([type=radio]),textarea,select) {
  background:#121625; color:var(--text); border-color:#64708d;
}
.store-shell :is(input,textarea)::placeholder { color:#a4aec8; }
.store-shell :is(input[type=checkbox],input[type=radio]) { accent-color:#b9aaff; }
.store-shell :is(.notice,.secure-note,.account-notice) { background:#22283b; color:#e8edff; border-color:#596887; }
.store-shell :is(.notice.success,.access-granted) { background:#12392e; color:#a1f8da; border-color:#388771; }
.store-shell :is(.notice.danger,.notice.error,.notice.warning) { background:#42253a; color:#ffd8e5; border-color:#a35e78; }
.store-shell :is(.fine-print,.muted,.facts dt,.room-schedule dt,.room-entry-bar span) { color:var(--muted); }
.store-shell :is(.text-link,.back-link,.auth-switch a) { color:#c8baff; }
.store-shell :is(.payment-row,.notification-bell,.gateway-card,.faq-item,.help-essentials article) { border-color:var(--line); }
.store-shell :is(a,button,input,textarea,select,summary):focus-visible { outline-color:#d9ff79; }
.store-shell .launch-photo { background:#eae5f7; }

/* Notifications control in the customer header */
.store-shell .header-actions .notification-bell {
  display:inline-grid; place-items:center; width:46px; height:46px;
  color:#e9e3ff; background:#252139; border:1px solid #51456e; border-radius:14px;
  text-decoration:none; isolation:isolate;
}
.store-shell .header-actions .notification-bell:hover,
.store-shell .header-actions .notification-bell:focus-visible {
  color:#fff; background:#352951; border-color:#aa91ed;
}
.store-shell .header-actions .notification-bell svg { width:20px; height:20px; }
.store-shell .header-actions .notification-bell:has([data-notification-count]:not([hidden])) svg {
  transform:translate(-3px,2px);
}
.store-shell .header-actions .notification-bell [data-notification-count] {
  position:absolute; inset:2px 2px auto auto; min-width:17px; height:17px; padding:0 3px;
  line-height:17px; border-radius:99px; background:#d9ff79; color:#1b2312;
  font-size:9px; font-weight:800; font-variant-numeric:tabular-nums;
}
.store-shell .header-actions .notification-bell [hidden] { display:none; }
@media(max-width:500px) {
  .store-shell .header-actions .notification-bell { width:44px; height:44px; }
}

.store-shell .confirmation-dialog[open] {
  position:fixed; inset:0; margin:auto; box-sizing:border-box;
  width:min(440px,calc(100% - 32px)); height:fit-content;
  max-height:calc(100% - 32px); max-height:calc(100dvh - 32px); overflow:auto;
  padding:clamp(18px,5vw,28px); border-radius:20px;
  box-shadow:0 24px 80px #0009;
}
.store-shell .confirmation-dialog .actions {
  display:flex; flex-direction:row; flex-wrap:wrap; gap:8px; justify-content:flex-end;
}
.store-shell .confirmation-dialog .actions .button { min-width:0; }
