/* Final visual overrides loaded after styles.css. */
.hero{
  background:
    radial-gradient(circle at 16% 10%,rgba(255,212,122,.3),transparent 280px),
    radial-gradient(circle at 76% 18%,rgba(104,176,138,.28),transparent 360px),
    radial-gradient(circle at 58% 106%,rgba(150,68,82,.28),transparent 420px),
    linear-gradient(124deg,#101713 0%,#1f342a 40%,#584624 72%,#171411 100%) !important;
}

/* Final globe alignment: match the main content width. */
.globe-section.shell{
  width:min(1240px,calc(100% - 44px))!important;
}
.globe-card{
  width:100%!important;
  max-width:none!important;
  min-height:clamp(640px,58vw,760px)!important;
}
@media(max-width:700px){
  .globe-section.shell{
    width:calc(100% - 28px)!important;
  }
  .globe-card{
    min-height:560px!important;
  }
}

.globe-section{
  display:block;
  margin-top:34px;
  margin-bottom:30px;
}
.globe-copy{
  padding:10px 0 18px;
  text-align:center;
}
.globe-copy h2{
  margin:8px 0 12px;
  font-family:Georgia,"Times New Roman","Songti SC","SimSun",serif;
  font-size:clamp(38px,5vw,72px);
  line-height:.98;
  letter-spacing:0;
  color:var(--ink);
}
.globe-copy p:not(.eyebrow){
  max-width:40em;
  margin:0 auto;
  color:var(--muted);
  font-size:13px;
  line-height:1.75;
}
.globe-card{
  position:relative;
  min-height:660px;
  max-width:980px;
  margin:0 auto;
  border:1px solid rgba(202,178,129,.42);
  border-radius:34px;
  overflow:hidden;
  background:
    radial-gradient(circle at 20% 12%,rgba(246,220,143,.48),transparent 24%),
    radial-gradient(circle at 82% 18%,rgba(28,72,55,.16),transparent 34%),
    linear-gradient(135deg,rgba(255,255,255,.94),rgba(255,252,244,.78) 48%,rgba(239,231,214,.66));
  box-shadow:0 24px 70px rgba(39,31,18,.13), inset 0 1px 0 rgba(255,255,255,.95);
}
.city-globe{
  position:absolute;
  width:min(650px,78vw);
  aspect-ratio:1;
  left:50%;
  top:48%;
  transform:translate(-50%,-50%);
  border-radius:50%;
  overflow:visible;
  cursor:grab;
  touch-action:none;
  user-select:none;
}
.city-globe.dragging{
  cursor:grabbing;
}
.city-globe canvas,
.globe-pins{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.city-globe canvas{
  border-radius:50%;
  filter:drop-shadow(0 32px 60px rgba(24,25,20,.25));
}
.globe-pins{
  pointer-events:none;
}
.globe-pin{
  position:absolute;
  left:var(--x);
  top:var(--y);
  transform:translate(calc(-50% + var(--dx,0px)),calc(-50% + var(--dy,0px))) scale(var(--scale,1));
  border:0;
  border-radius:999px;
  padding:8px 12px;
  display:flex;
  gap:8px;
  align-items:center;
  color:#fff;
  background:linear-gradient(135deg,rgba(244,216,128,.96),rgba(185,129,25,.86));
  box-shadow:0 12px 28px rgba(0,0,0,.26),inset 0 1px 1px rgba(255,255,255,.62);
  font:500 13px/1.1 "Songti SC","SimSun",serif;
  cursor:pointer;
  z-index:var(--z,3);
  white-space:nowrap;
  opacity:var(--opacity,1);
  pointer-events:auto;
  transition:opacity .18s ease, transform .18s ease, background .18s ease;
}
.globe-pin.is-dense{
  padding:7px 10px;
  gap:7px;
  font-size:12px;
}
.globe-pin:before{
  content:"";
  width:9px;
  height:9px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 0 0 5px rgba(255,255,255,.18),0 0 22px rgba(247,214,105,.8);
}
.globe-pin:hover,
.globe-pin.active{
  transform:translate(calc(-50% + var(--dx,0px)),calc(-50% + var(--dy,0px))) scale(calc(var(--scale,1) * 1.08));
  background:linear-gradient(135deg,rgba(255,235,164,.98),rgba(207,151,39,.95));
}
.globe-pin.is-hidden{
  opacity:0;
  pointer-events:none;
}
.globe-pin small{
  opacity:.78;
  font-size:11px;
}
.globe-city-list{
  display:none;
}
.globe-city-list button{
  border:1px solid rgba(207,177,110,.46);
  border-radius:999px;
  background:rgba(255,255,255,.78);
  color:var(--ink);
  padding:10px 14px;
  box-shadow:0 12px 28px rgba(33,28,18,.1),inset 0 1px 0 rgba(255,255,255,.95);
  cursor:pointer;
}
.globe-city-list button.active{
  color:#fff;
  background:linear-gradient(135deg,rgba(246,222,146,.95),rgba(197,142,36,.94));
}
body.dark .globe-card{
  background:linear-gradient(135deg,rgba(23,28,24,.92),rgba(45,39,25,.82));
}
body.dark .globe-copy h2{color:#fff}
@media (max-width:900px){
  .globe-section{
    margin-top:24px;
  }
  .globe-copy{
    padding:0 4px 14px;
  }
  .globe-copy h2{
    font-size:clamp(36px,11vw,54px);
  }
  .globe-card{
    min-height:620px;
    border-radius:30px;
  }
  .city-globe{
    top:43%;
    width:min(520px,96vw);
  }
  .globe-pin{
    padding:7px 10px;
    font-size:12px;
  }
}
.hero:before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(0,0,0,.45),rgba(0,0,0,.06) 54%,rgba(0,0,0,.26));
  pointer-events:none;
}
.hero-grid{position:relative;z-index:1}
.hero .sub span{
  display:block;
}
.hero .sub span + span{
  margin-top:4px;
}
.hero .sub{
  font-family:"Avenir Next","Helvetica Neue","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif!important;
  font-weight:400!important;
  letter-spacing:.01em!important;
  color:rgba(244,239,229,.72)!important;
  font-size:14px!important;
}
.hero-stats{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:16px!important;
  border:0!important;
  background:transparent!important;
}
.hero-stats div,
.hero-stats div:first-child{
  grid-column:auto!important;
  border:1px solid rgba(255,255,255,.16)!important;
  border-radius:28px!important;
  padding:24px 26px!important;
  background:
    radial-gradient(circle at 18% 8%,rgba(255,255,255,.16),transparent 160px),
    linear-gradient(145deg,rgba(255,255,255,.15),rgba(255,255,255,.055))!important;
  box-shadow:0 22px 50px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.2)!important;
}
.hero-stats div:first-child{grid-column:1/-1!important}
.hero-stats div{
  text-align:center!important;
}
.hero-stats div:first-child{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
}
.hero-stats div:nth-child(2),
.hero-stats div:nth-child(3),
.hero-stats div:nth-child(4){
  grid-column:auto!important;
}
.hero-stats strong{font-size:34px!important;line-height:1!important}
.hero-stats span{margin-top:10px!important;font-size:13px!important}
.hero-stats span{
  white-space:nowrap!important;
  word-break:keep-all!important;
  line-height:1.4!important;
}
.hero-stats div{
  min-width:0!important;
}

.ghost,
.meal-btn,
.area-pill,
.card-actions button,
.restaurant-actions button,
.reserve,
.local-btn,
.link-list a,
.mobile-filter{
  border-radius:999px!important;
  box-shadow:0 11px 24px rgba(23,21,17,.12),inset 0 1px 0 rgba(255,255,255,.7)!important;
  transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease;
}
.nav-actions .ghost{
  font-size:13px!important;
  color:color-mix(in srgb,var(--ink) 62%,var(--muted))!important;
  font-weight:500!important;
  padding:10px 17px!important;
  border:1px solid color-mix(in srgb,var(--line) 78%,white)!important;
  background:
    linear-gradient(180deg,rgba(255,255,255,.92),rgba(255,255,255,.62) 48%,rgba(246,242,233,.78))!important;
  box-shadow:
    0 14px 26px rgba(23,21,17,.13),
    0 4px 10px rgba(23,21,17,.06),
    inset 0 1px 0 rgba(255,255,255,.95),
    inset 0 -3px 8px rgba(127,102,64,.08)!important;
  text-shadow:0 1px 0 rgba(255,255,255,.72)!important;
}
.city-picker{
  position:relative!important;
  display:inline-flex!important;
}
.language-switch{
  display:inline-flex!important;
  align-items:center!important;
  gap:4px!important;
  height:42px!important;
  padding:4px!important;
  border-radius:999px!important;
  border:1px solid color-mix(in srgb,var(--line) 78%,white)!important;
  background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(247,242,232,.7))!important;
  box-shadow:
    0 14px 26px rgba(23,21,17,.12),
    inset 0 1px 0 rgba(255,255,255,.92)!important;
}
.language-switch button{
  height:32px!important;
  min-width:42px!important;
  padding:0 12px!important;
  border:0!important;
  border-radius:999px!important;
  background:transparent!important;
  color:color-mix(in srgb,var(--ink) 68%,var(--muted))!important;
  font:500 12px var(--cn-ui-font)!important;
  cursor:pointer!important;
}
.language-switch button.active{
  color:#fff!important;
  background:linear-gradient(135deg,rgba(253,230,158,.86),rgba(212,170,70,.74) 60%,rgba(157,111,31,.58))!important;
  text-shadow:0 1px 2px rgba(56,38,8,.28)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.74),0 8px 16px rgba(118,78,16,.14)!important;
}
.brand-cluster{
  display:flex!important;
  align-items:center!important;
  gap:16px!important;
  min-width:0!important;
}
.brand-cluster .brand{
  flex:0 1 auto!important;
  min-width:0!important;
}
.city-native{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  opacity:0!important;
  pointer-events:none!important;
  display:none!important;
}
.city-switch{
  min-width:96px!important;
  height:42px!important;
  padding:0 18px!important;
  border-radius:999px!important;
  border:1px solid rgba(244,214,126,.58)!important;
  color:#fff!important;
  font:500 13px var(--cn-ui-font)!important;
  text-align:center!important;
  text-align-last:center!important;
  background:
    radial-gradient(circle at 28% 18%,rgba(255,255,255,.48) 0 10%,transparent 32%),
    linear-gradient(180deg,rgba(255,226,145,.84) 0%,rgba(218,169,52,.72) 52%,rgba(167,119,31,.58) 100%)!important;
  box-shadow:
    0 15px 28px rgba(118,78,16,.2),
    0 5px 10px rgba(118,78,16,.08),
    inset 0 1px 0 rgba(255,255,255,.8),
    inset 0 -5px 12px rgba(86,55,10,.12)!important;
  text-shadow:0 1px 2px rgba(56,38,8,.34)!important;
  cursor:pointer!important;
  transition:transform .16s ease,box-shadow .16s ease,filter .16s ease!important;
}
.city-switch:hover{
  transform:translateY(-2px)!important;
  filter:saturate(1.06) brightness(1.02)!important;
  box-shadow:
    0 19px 34px rgba(118,78,16,.24),
    0 7px 14px rgba(118,78,16,.1),
    inset 0 1px 0 rgba(255,255,255,.84),
    inset 0 -5px 12px rgba(86,55,10,.12)!important;
}
.city-switch:active{
  transform:translateY(1px) scale(.985)!important;
  box-shadow:
    0 8px 16px rgba(118,78,16,.14),
    inset 0 4px 10px rgba(86,55,10,.16),
    inset 0 1px 0 rgba(255,255,255,.68)!important;
}
.city-menu{
  position:absolute!important;
  top:calc(100% + 10px)!important;
  left:50%!important;
  transform:translateX(-50%)!important;
  z-index:80!important;
  min-width:116px!important;
  padding:7px!important;
  border-radius:18px!important;
  border:1px solid rgba(212,170,70,.28)!important;
  background:
    linear-gradient(180deg,rgba(255,255,255,.96),rgba(250,247,239,.9))!important;
  box-shadow:
    0 20px 42px rgba(23,21,17,.18),
    0 8px 16px rgba(118,78,16,.09),
    inset 0 1px 0 rgba(255,255,255,.92)!important;
  backdrop-filter:blur(12px)!important;
}
.city-menu button{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  height:38px!important;
  border:0!important;
  border-radius:13px!important;
  background:transparent!important;
  color:color-mix(in srgb,var(--ink) 78%,var(--muted))!important;
  font:500 13px var(--cn-ui-font)!important;
  cursor:pointer!important;
}
.city-menu button:hover,
.city-menu button.active{
  color:#fff!important;
  background:
    radial-gradient(circle at 28% 16%,rgba(255,255,255,.34),transparent 32%),
    linear-gradient(180deg,rgba(242,217,144,.78),rgba(211,168,73,.68) 62%,rgba(169,121,34,.54))!important;
  box-shadow:
    0 8px 16px rgba(118,78,16,.16),
    inset 0 1px 0 rgba(255,255,255,.76)!important;
  text-shadow:0 1px 2px rgba(56,38,8,.28)!important;
}
.account-city-row{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:10px!important;
  margin:18px 0 16px!important;
}
.account-city{
  min-width:88px!important;
  height:38px!important;
  border-radius:999px!important;
  border:1px solid color-mix(in srgb,#d4aa46 32%,var(--line))!important;
  color:color-mix(in srgb,var(--ink) 78%,var(--muted))!important;
  background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(247,242,232,.76))!important;
  font:500 13px var(--cn-ui-font)!important;
  box-shadow:
    0 12px 22px rgba(23,21,17,.1),
    inset 0 1px 0 rgba(255,255,255,.92),
    inset 0 -4px 10px rgba(149,109,36,.07)!important;
  cursor:pointer!important;
}
.account-city.active{
  color:#fff!important;
  border-color:rgba(244,214,126,.66)!important;
  background:
    linear-gradient(135deg,rgba(253,230,158,.86),rgba(212,170,70,.74) 52%,rgba(157,111,31,.6))!important;
  box-shadow:
    0 15px 28px rgba(118,78,16,.18),
    inset 0 1px 0 rgba(255,255,255,.72),
    inset 0 -5px 12px rgba(86,55,10,.12)!important;
  text-shadow:0 1px 2px rgba(56,38,8,.3)!important;
}
.nav-actions .ghost:hover{
  transform:translateY(-2px)!important;
  color:color-mix(in srgb,var(--ink) 76%,var(--muted))!important;
  box-shadow:
    0 18px 34px rgba(23,21,17,.17),
    0 6px 12px rgba(23,21,17,.07),
    inset 0 1px 0 rgba(255,255,255,.96),
    inset 0 -3px 8px rgba(127,102,64,.08)!important;
}
.nav-actions .ghost:active{
  transform:translateY(1px)!important;
  box-shadow:
    0 7px 14px rgba(23,21,17,.1),
    inset 0 3px 8px rgba(80,62,32,.12),
    inset 0 1px 0 rgba(255,255,255,.7)!important;
}
.member-button{
  min-width:104px!important;
  height:40px!important;
  padding:0 17px!important;
  flex:0 0 auto!important;
}
.membership-modal .modal-shell{
  max-width:760px!important;
  padding:30px!important;
  border:1px solid transparent!important;
  border-radius:28px!important;
  background:
    linear-gradient(var(--surface),var(--surface)) padding-box,
    linear-gradient(135deg,rgba(215,168,52,.48),rgba(180,91,118,.14),rgba(122,167,144,.24)) border-box!important;
  box-shadow:0 24px 70px rgba(17,17,17,.12)!important;
}
.membership-head{
  margin:0 0 20px!important;
  padding:0 44px 20px 0!important;
}
.membership-head strong{
  font-size:34px!important;
  line-height:1.1!important;
}
.membership-summary{
  grid-template-columns:repeat(4,1fr)!important;
  margin-bottom:18px!important;
}
.membership-summary span{
  min-height:72px!important;
}
.membership-summary strong{
  font-family:var(--serif)!important;
  font-weight:500!important;
  white-space:nowrap!important;
}
.membership-sections{
  grid-template-columns:repeat(3,1fr)!important;
  margin:0 0 20px!important;
}
.membership-sections section{
  min-height:132px!important;
}
.membership-sections p{
  margin:0!important;
  color:color-mix(in srgb,var(--ink) 66%,var(--muted))!important;
  font:400 13px/1.85 var(--cn-ui-font)!important;
}
.membership-cta{
  width:100%!important;
  justify-content:center!important;
  margin-top:2px!important;
}
.membership-actions{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:12px!important;
}
.membership-manage{
  grid-column:1/-1!important;
  justify-content:center!important;
}
.membership-note{
  margin:14px 0 0!important;
  color:var(--muted)!important;
  font:400 12px/1.8 var(--cn-ui-font)!important;
}
@media(max-width:700px){
  .brand-cluster{
    gap:10px!important;
    min-width:0!important;
  }
  .member-button{
    min-width:82px!important;
    height:36px!important;
    padding:0 12px!important;
    font-size:12px!important;
  }
  .membership-grid{
    grid-template-columns:1fr!important;
  }
  .membership-modal .modal-shell{
    padding:22px!important;
  }
  .membership-summary,
  .membership-sections,
  .membership-actions{
    grid-template-columns:1fr!important;
  }
  .membership-head{
    padding-right:36px!important;
  }
  .membership-head strong{
    font-size:28px!important;
  }
}
@media(max-width:820px){
  .topbar{
    overflow:visible!important;
  }
  .nav{
    grid-template-columns:1fr!important;
    gap:10px!important;
    align-items:start!important;
    padding-top:10px!important;
    padding-bottom:10px!important;
  }
  .brand-cluster{
    width:100%!important;
    justify-content:flex-start!important;
  }
  .nav-actions{
    width:100%!important;
    justify-content:flex-end!important;
    flex-wrap:wrap!important;
    gap:8px!important;
  }
  .language-switch{
    height:38px!important;
  }
  .language-switch button{
    height:29px!important;
    min-width:38px!important;
    padding:0 10px!important;
    font-size:11px!important;
  }
  .city-switch{
    min-width:84px!important;
    height:38px!important;
    padding:0 14px!important;
    font-size:12px!important;
  }
  .nav-actions .ghost{
    height:38px!important;
    padding:8px 13px!important;
    font-size:12px!important;
    width:auto!important;
  }
  #loginButton,
  #themeButton{
    width:auto!important;
    min-width:74px!important;
  }
}
.brand-mark{
  position:relative!important;
  width:34px!important;
  height:34px!important;
  display:inline-grid!important;
  place-items:center!important;
  color:transparent!important;
  border-radius:50%!important;
  background:
    radial-gradient(circle at 32% 24%,rgba(255,255,255,.78) 0 9%,transparent 10%),
    radial-gradient(circle at 68% 74%,rgba(116,73,15,.18),transparent 34%),
    linear-gradient(145deg,rgba(255,226,138,.82) 0%,rgba(217,166,47,.7) 44%,rgba(142,100,24,.52) 100%)!important;
  border:1px solid rgba(255,220,126,.48)!important;
  box-shadow:
    0 8px 18px rgba(123,86,23,.16),
    inset 0 1px 0 rgba(255,255,255,.74),
    inset 0 -6px 12px rgba(101,66,13,.1)!important;
  backdrop-filter:blur(8px)!important;
  overflow:hidden!important;
}
.brand-mark:before{
  content:"";
  position:absolute;
  inset:7px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.44);
}
.brand-mark:after{
  content:"✦";
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  color:rgba(255,247,218,.92);
  font:400 19px Georgia,"Times New Roman",serif;
  text-shadow:0 1px 0 rgba(88,58,12,.38),0 0 12px rgba(255,244,190,.42);
}
.brand:hover .brand-mark{
  transform:translateY(-1px) rotate(-6deg);
  box-shadow:
    0 12px 24px rgba(123,86,23,.2),
    inset 0 1px 0 rgba(255,255,255,.78),
    inset 0 -6px 12px rgba(101,66,13,.1)!important;
}
.auth-brand .brand-mark{
  width:38px!important;
  height:38px!important;
}
.brand{
  align-items:center!important;
  gap:12px!important;
}
.brand-word{
  align-items:center!important;
  gap:9px!important;
  filter:drop-shadow(0 8px 16px rgba(118,78,16,.18));
}
.brand b,
.auth-brand strong{
  display:inline-flex!important;
  align-items:center!important;
  height:29px!important;
  font-family:"Songti SC","STSong","SimSun","Times New Roman",serif!important;
  font-weight:600!important;
  letter-spacing:.12em!important;
  background:linear-gradient(180deg,#f1d987 0%,#d4aa46 58%,#b88624 100%)!important;
  -webkit-background-clip:text!important;
  background-clip:text!important;
  color:transparent!important;
  text-shadow:
    0 1px 0 rgba(255,255,255,.22),
    0 5px 12px rgba(91,62,16,.12)!important;
  font-size:26px!important;
  line-height:29px!important;
}
.brand b{
  font-size:26px!important;
  transform:translateY(3px)!important;
}
.brand em,
.auth-brand em{
  display:inline-flex!important;
  align-items:center!important;
  height:26px!important;
  font-family:"Songti SC","STSong","SimSun","Times New Roman",serif!important;
  font-style:normal!important;
  font-weight:600!important;
  letter-spacing:.12em!important;
  background:linear-gradient(180deg,#f1d987 0%,#d4aa46 58%,#b88624 100%)!important;
  -webkit-background-clip:text!important;
  background-clip:text!important;
  color:transparent!important;
  text-shadow:
    0 1px 0 rgba(255,255,255,.22),
    0 5px 12px rgba(91,62,16,.12)!important;
  font-size:22px!important;
  line-height:26px!important;
  border-left:1px solid rgba(229,183,67,.5)!important;
  padding-left:10px!important;
  -webkit-text-fill-color:transparent!important;
}
html[lang="en"] .brand em,
html[lang="en"] .auth-brand em{
  font-family:"Songti SC","STSong","SimSun","Times New Roman",serif!important;
  font-size:22px!important;
  line-height:26px!important;
  letter-spacing:.12em!important;
}
.disclaimer{
  font-family:"Avenir Next","Helvetica Neue","PingFang SC","Hiragino Sans GB",sans-serif!important;
  color:color-mix(in srgb,var(--muted) 72%,var(--faint))!important;
  font-size:11px!important;
  font-weight:400!important;
  line-height:1.9!important;
}
.stations,
.station-line{
  display:block!important;
}
.station-list{
  display:grid!important;
  gap:7px!important;
  margin-top:6px!important;
}
.station-item{
  display:grid!important;
  gap:2px!important;
  line-height:1.55!important;
}
.station-item strong,
.station-main{
  display:block!important;
  font-weight:400!important;
  color:color-mix(in srgb,var(--ink) 82%,var(--muted))!important;
}
.station-routes{
  display:block!important;
  color:color-mix(in srgb,var(--faint) 84%,var(--surface-2))!important;
  font-size:12px!important;
  font-weight:400!important;
  line-height:1.55!important;
}
.card-head,
.card-media{
  cursor:pointer!important;
}
.detail-list .budget-row{
  margin-top:22px!important;
  padding-top:28px!important;
  border-top:1px solid color-mix(in srgb,#d4aa46 22%,var(--line))!important;
}
.detail-list .budget-row dt,
.detail-list .budget-row dd{
  font-weight:400!important;
}
.panel .stations{
  margin-bottom:18px!important;
}
.panel .budget{
  margin-top:22px!important;
  padding-top:18px!important;
  border-top:1px solid color-mix(in srgb,#d4aa46 22%,var(--line))!important;
}
.disclaimer span{
  max-width:920px!important;
}
.disclaimer small,
.disclaimer strong{
  font-size:10px!important;
  font-weight:500!important;
  color:var(--faint)!important;
}
.ghost:hover,
.meal-btn:hover,
.area-pill:hover,
.card-actions button:hover,
.restaurant-actions button:hover,
.reserve:hover,
.local-btn:hover,
.link-list a:hover{
  transform:translateY(-2px);
  box-shadow:0 17px 34px rgba(23,21,17,.16),inset 0 1px 0 rgba(255,255,255,.78)!important;
}
.ghost:active,
.meal-btn:active,
.area-pill:active,
.card-actions button:active,
.restaurant-actions button:active,
.reserve:active,
.local-btn:active,
.link-list a:active{
  transform:translateY(1px) scale(.985);
  box-shadow:inset 0 4px 10px rgba(0,0,0,.14)!important;
}
#searchInput,
.filters select,
.meal-toggle,
.card,
.account-panel,
.detail-page-content,
.modal,
.content-empty,
table{
  border-radius:26px!important;
  box-shadow:0 20px 54px rgba(25,31,27,.11),0 6px 16px rgba(25,31,27,.06)!important;
}
#searchInput,
.filters select{
  background:linear-gradient(180deg,var(--surface),color-mix(in srgb,var(--surface) 88%,var(--surface-2)))!important;
}
.chip,
.source-badge,
.guide-tags span{border-radius:999px!important}
.card-actions button,
.restaurant-actions button,
.local-btn,
.area-pill{
  background:linear-gradient(180deg,var(--surface),color-mix(in srgb,var(--surface) 82%,var(--surface-2)))!important;
}
.meal-btn.active,
.area-pill.active,
.local-btn.active,
.card-actions button.active,
.restaurant-actions button.active,
.reserve{
  background:linear-gradient(180deg,color-mix(in srgb,var(--ink) 92%,white),var(--ink))!important;
  color:var(--surface)!important;
  box-shadow:0 16px 34px rgba(12,14,12,.24),inset 0 1px 0 rgba(255,255,255,.16)!important;
}

.detail-page{padding:30px 0 48px}
.detail-page-content,
.modal{
  border:1px solid color-mix(in srgb,var(--line) 78%,transparent)!important;
  background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 98%,white),color-mix(in srgb,var(--surface) 92%,var(--surface-2)))!important;
}
.detail-page-content{padding:36px!important}
.modal-shell{padding:34px!important}
.detail-identity{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(320px,42%);
  gap:28px!important;
  align-items:stretch;
  margin-bottom:28px!important;
}
.detail-copy{
  min-height:320px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding:42px!important;
  border-radius:26px;
  background:
    radial-gradient(circle at 14% 12%,rgba(214,167,47,.18),transparent 260px),
    linear-gradient(145deg,color-mix(in srgb,var(--surface) 94%,white),color-mix(in srgb,var(--surface) 88%,var(--surface-2)));
  border:1px solid color-mix(in srgb,var(--line) 80%,transparent);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.68);
}
.detail-copy h1,
.detail-copy .modal-title{
  margin:0;
  color:var(--ink);
  font-family:var(--cn-title-font);
  font-size:clamp(36px,5.4vw,70px);
  line-height:1.02;
  letter-spacing:0;
}
.detail-copy .modal-title{font-size:clamp(30px,4vw,48px)}
.detail-copy .sub,
.detail-copy .modal-meta{
  margin-top:12px;
  color:var(--muted);
  line-height:1.75;
}
.detail-copy .source-row{margin-top:18px}
.detail-identity .detail-hero-media{
  min-height:320px;
  margin:0;
  border-radius:26px;
  box-shadow:0 20px 54px rgba(20,24,20,.16);
}
.detail-identity .detail-hero-media img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
}
.restaurant-actions{
  margin-top:22px;
  min-width:0!important;
  justify-content:flex-start;
}
.detail-layout{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(300px,.95fr);
  gap:26px!important;
  margin-top:0;
}
.detail-block,
.modal-section{
  border:1px solid color-mix(in srgb,var(--line) 78%,transparent)!important;
  border-radius:24px!important;
  padding:32px!important;
  background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 98%,white),color-mix(in srgb,var(--surface) 92%,var(--surface-2)))!important;
  box-shadow:0 14px 34px rgba(25,31,27,.075),inset 0 1px 0 rgba(255,255,255,.66)!important;
  line-height:1.88!important;
}
.detail-block-main{grid-row:span 2}
.detail-block h3,
.modal-section h3{
  margin:0 0 32px!important;
  font-size:12px;
  color:var(--muted);
  letter-spacing:.16em;
  text-transform:uppercase;
}
.detail-list{display:grid;gap:0;margin:0}
.detail-list div{
  display:grid;
  grid-template-columns:118px minmax(0,1fr)!important;
  gap:16px;
  padding:17px 0!important;
  border-bottom:1px solid color-mix(in srgb,var(--line) 76%,transparent);
}
.detail-list div:first-child{padding-top:0!important}
.detail-list div:last-child{border-bottom:0;padding-bottom:0!important}
.detail-list dt{color:var(--faint);font-size:12px;line-height:1.88!important}
.detail-list dd{margin:0;color:var(--ink);font-size:14px;line-height:1.88!important}
.detail-list.compact div{grid-template-columns:118px minmax(0,1fr)!important}
.detail-lead{margin:0 0 10px;color:var(--accent);font-weight:800}
.reservation-guide{margin-top:16px;border-radius:20px;padding:20px!important}
.detail-manners{
  margin:18px 0 0;
  padding:20px 24px 20px 42px!important;
  border-radius:20px;
  background:color-mix(in srgb,var(--surface-2) 62%,transparent);
  color:var(--muted);
  font-size:14px;
  line-height:1.88;
}
.detail-block p,
.detail-block li,
.detail-block dd,
.detail-manners,
.detail-manners li,
.panel p,
.panel li,
.modal-section,
.modal-section td,
.content-empty{
  font-size:14px!important;
  line-height:1.82!important;
  font-weight:400!important;
}
.detail-block h3,
.panel h3,
.modal-section h3{
  font-size:12px!important;
  line-height:1.4!important;
  font-weight:700!important;
}
.detail-lead{
  font-size:14px!important;
}
.detail-menu-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:26px!important;
  margin-top:26px!important;
}
.modal-section table{box-shadow:none!important;border-radius:18px!important}
.course-list{
  display:grid;
  gap:18px;
  margin-top:16px;
}
.course-card{
  padding:24px!important;
  border:1px solid color-mix(in srgb,var(--line) 78%,transparent);
  border-radius:22px;
  background:
    linear-gradient(180deg,color-mix(in srgb,var(--surface) 98%,white),color-mix(in srgb,var(--surface) 92%,var(--surface-2)));
  box-shadow:0 12px 28px rgba(25,31,27,.06),inset 0 1px 0 rgba(255,255,255,.62);
}
.course-main{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  padding-bottom:16px;
  margin-bottom:16px;
  border-bottom:1px solid color-mix(in srgb,var(--line) 76%,transparent);
}
.course-main h4{
  margin:0;
  font-size:16px;
  line-height:1.5;
  font-weight:700;
  color:var(--ink);
  overflow-wrap:anywhere;
}
.course-main strong{
  flex:0 0 auto;
  font-size:16px;
  line-height:1.5;
  color:var(--ink);
}
.course-body{
  min-width:0;
}
.course-details{
  margin:0;
  padding-left:22px!important;
  color:var(--ink);
  font-size:14px!important;
  line-height:1.9!important;
}
.course-details li{
  margin:0 0 8px!important;
  padding-left:4px;
  overflow-wrap:anywhere;
}
.course-note{
  margin:16px 0 0!important;
  padding:14px 16px;
  border-radius:16px;
  background:color-mix(in srgb,var(--surface-2) 66%,transparent);
  color:var(--muted);
  font-size:13px!important;
  line-height:1.75!important;
}
.modal-identity{grid-template-columns:minmax(0,1fr) 280px}
.modal-identity .detail-copy,
.modal-identity .detail-hero-media{min-height:240px}
.modal-identity .detail-copy{padding:26px!important}

.detail{padding:32px 36px 36px!important}
.quick-grid{gap:24px!important}
.panel{padding:26px!important}
.panel p{line-height:1.88!important}
.card-head{padding:32px 36px 24px!important}
.card-actions{padding:0 36px 32px!important}

@media(max-width:900px){
  .detail-identity,
  .modal-identity,
  .detail-layout{grid-template-columns:1fr}
  .detail-block-main{grid-row:auto}
  .detail-copy,
  .detail-identity .detail-hero-media{min-height:240px}
}
@media(max-width:700px){
  .hero-stats{
    grid-template-columns:1fr!important;
    gap:12px!important;
  }
  .hero-stats div,
  .hero-stats div:first-child{
    padding:18px!important;
    border-radius:22px!important;
  }
  .detail-page-content,
  .modal-shell{padding:22px!important}
  .detail-copy,
  .detail-block,
  .modal-section,
  .panel{padding:24px!important}
  .card-head{padding:26px 24px 20px!important}
  .card-actions{padding:0 24px 26px!important}
  .detail{padding:26px 24px 28px!important}
  .detail-list div,
  .detail-list.compact div{grid-template-columns:1fr!important;gap:6px!important}
  .course-card{padding:20px!important}
  .course-main{display:grid;gap:8px}
  .course-main strong{font-size:15px}
}

/* Global edge-safety pass: no text should sit close to container borders. */
.controls{
  padding-left:18px!important;
  padding-right:18px!important;
  border-color:color-mix(in srgb,#d4aa46 32%,var(--line))!important;
  background:
    linear-gradient(180deg,rgba(255,255,255,.82),rgba(250,248,242,.76)),
    radial-gradient(circle at 18% 0%,rgba(212,170,70,.14),transparent 220px)!important;
  box-shadow:
    0 20px 42px rgba(23,21,17,.08),
    inset 0 1px 0 rgba(255,255,255,.86),
    inset 0 0 0 1px rgba(212,170,70,.08)!important;
}
.controls-head{
  gap:16px!important;
}
#toggleFiltersButton{
  font-size:12px!important;
  font-weight:500!important;
  padding:9px 16px!important;
  color:color-mix(in srgb,var(--ink) 64%,var(--muted))!important;
  border-color:color-mix(in srgb,#d4aa46 34%,var(--line))!important;
  background:
    linear-gradient(180deg,rgba(255,255,255,.94),rgba(246,241,230,.74))!important;
  box-shadow:
    0 13px 24px rgba(23,21,17,.12),
    0 4px 9px rgba(23,21,17,.055),
    inset 0 1px 0 rgba(255,255,255,.96),
    inset 0 -3px 8px rgba(149,109,36,.08)!important;
}
#toggleFiltersButton:hover{
  transform:translateY(-2px)!important;
  box-shadow:
    0 17px 30px rgba(23,21,17,.15),
    0 5px 10px rgba(23,21,17,.06),
    inset 0 1px 0 rgba(255,255,255,.96),
    inset 0 -3px 8px rgba(149,109,36,.08)!important;
}
#toggleFiltersButton:active{
  transform:translateY(1px) scale(.985)!important;
}
#filterBody{
  padding-top:4px!important;
}
.filters{
  gap:14px!important;
}
#searchInput,
.filters select{
  padding-left:22px!important;
  padding-right:22px!important;
}
.meal-toggle{
  padding:18px 24px!important;
  gap:16px!important;
  align-items:center!important;
}
.meal-toggle:before{
  margin-right:16px!important;
  padding-left:2px!important;
}
.meal-btn{
  padding-left:28px!important;
  padding-right:28px!important;
  min-width:168px!important;
  border-color:color-mix(in srgb,#d4aa46 30%,var(--line))!important;
  background:linear-gradient(180deg,rgba(255,255,255,.94),rgba(247,242,232,.78))!important;
  box-shadow:
    0 14px 28px rgba(23,21,17,.12),
    inset 0 1px 0 rgba(255,255,255,.94),
    inset 0 -4px 10px rgba(149,109,36,.07)!important;
}
.meal-btn.active,
.solo-btn.active{
  border-color:#d4aa46!important;
  box-shadow:
    0 15px 30px rgba(23,21,17,.16),
    0 0 0 3px rgba(212,170,70,.22),
    inset 0 1px 0 rgba(255,255,255,.16)!important;
}
.area-rail{
  padding:18px 6px 4px!important;
  gap:12px!important;
}
.area-pill{
  padding:12px 18px!important;
  border-color:color-mix(in srgb,#d4aa46 24%,var(--line))!important;
  box-shadow:
    0 10px 20px rgba(23,21,17,.09),
    inset 0 1px 0 rgba(255,255,255,.9)!important;
}
.card,
.account-panel,
.detail-page-content,
.modal,
.controls{
  overflow:hidden;
}
.card-head,
.detail,
.account-panel,
.modal-shell,
.detail-page-content{
  box-sizing:border-box;
}
@media(max-width:700px){
  .controls{
    padding-left:12px!important;
    padding-right:12px!important;
  }
  .meal-toggle{
    padding:16px!important;
  }
  .meal-toggle:before{
    width:100%;
    margin-right:0!important;
  }
  .meal-btn{
    min-width:0!important;
    flex:1 1 120px;
    padding-left:18px!important;
    padding-right:18px!important;
  }
}

/* Table Manners: replace plain bullet list with polished guide rows. */
.detail-manners{
  margin:18px 0 0!important;
  padding:0!important;
  background:transparent!important;
  border-radius:0!important;
  list-style:none!important;
  display:grid!important;
  gap:10px!important;
}
.detail-manners li{
  position:relative;
  margin:0!important;
  padding:15px 18px!important;
  border:1px solid color-mix(in srgb,var(--line) 72%,transparent)!important;
  border-radius:16px!important;
  background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 96%,white),color-mix(in srgb,var(--surface) 88%,var(--surface-2)))!important;
  color:var(--muted)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55)!important;
  font-size:14px!important;
  line-height:1.78!important;
}
.detail-manners li:before{
  content:none!important;
}

/* Hero stats balance: never split 三星 / 二星 / 一星. */
.hero-stats span{
  white-space:nowrap!important;
  word-break:keep-all!important;
  line-height:1.4!important;
}
.hero-stats div{
  min-width:0!important;
}
@media(min-width:701px){
  .hero-stats div:nth-child(2),
  .hero-stats div:nth-child(3),
  .hero-stats div:nth-child(4){
    min-height:132px!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    align-items:center!important;
    text-align:center!important;
  }
}
@media(max-width:700px){
  .hero-stats{
    grid-template-columns:1fr!important;
  }
}

/* Final gold selected state for filter controls. */
.meal-btn.active,
.solo-btn.active,
.area-pill.active{
  background:
    linear-gradient(180deg,rgba(242,217,144,.64) 0%,rgba(211,168,73,.52) 58%,rgba(169,121,34,.42) 100%)!important;
  border-color:rgba(212,170,70,.46)!important;
  color:#17130b!important;
  text-shadow:0 1px 0 rgba(255,255,255,.42)!important;
  backdrop-filter:blur(8px)!important;
  box-shadow:
    0 14px 28px rgba(118,78,16,.16),
    0 0 0 3px rgba(212,170,70,.12),
    inset 0 1px 0 rgba(255,255,255,.76),
    inset 0 -4px 10px rgba(92,59,12,.07)!important;
}
.meal-btn.active:hover,
.solo-btn.active:hover,
.area-pill.active:hover{
  box-shadow:
    0 17px 32px rgba(118,78,16,.2),
    0 0 0 3px rgba(212,170,70,.14),
    inset 0 1px 0 rgba(255,255,255,.78),
    inset 0 -4px 10px rgba(92,59,12,.07)!important;
}
.meal-toggle .meal-btn.active,
.meal-toggle .solo-btn.active{
  background:
    radial-gradient(circle at 72% 78%,rgba(116,73,15,.13),transparent 34%),
    linear-gradient(145deg,rgba(255,226,138,.66) 0%,rgba(217,166,47,.5) 46%,rgba(142,100,24,.38) 100%)!important;
  border-color:rgba(255,220,126,.44)!important;
  color:#17130b!important;
  box-shadow:
    0 14px 28px rgba(123,86,23,.15),
    0 0 0 3px rgba(212,170,70,.11),
    inset 0 1px 0 rgba(255,255,255,.78),
    inset 0 -5px 11px rgba(101,66,13,.08)!important;
  backdrop-filter:blur(8px)!important;
}

.area-pill.active{
  color:#fff!important;
  text-shadow:0 1px 2px rgba(56,38,8,.28)!important;
}
.area-pill-muted{
  pointer-events:none!important;
  color:color-mix(in srgb,var(--ink) 58%,var(--muted))!important;
  background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(246,242,233,.72))!important;
  border-color:color-mix(in srgb,var(--line) 78%,white)!important;
  text-shadow:none!important;
}

body.restaurant-detail-body{
  background:
    linear-gradient(180deg,rgba(255,252,244,.96),rgba(250,248,241,.98) 320px),
    #fbfaf6!important;
}

body.restaurant-detail-body .detail-page-content{
  background:linear-gradient(180deg,#fffdfa 0%,#fbfaf5 100%)!important;
}

/* Detail body typography: keep section titles, normalize all body text. */
.detail-block p,
.detail-block li,
.detail-block dd,
.detail-list dt,
.reservation-guide,
.reservation-guide *,
.guide-row,
.guide-row span,
.guide-row strong,
.guide-list,
.guide-list li,
.detail-lead,
.panel p,
.panel li,
.difficulty,
.booking,
.stations,
.station-line,
.station-main,
.station-routes,
.budget,
.address,
.phone{
  font-size:14px!important;
  line-height:1.82!important;
  font-weight:400!important;
}
.detail-list dt,
.guide-row span{
  color:color-mix(in srgb,var(--muted) 82%,var(--faint))!important;
}
.detail-list dd,
.guide-row strong,
.detail-block p,
.panel p{
  color:color-mix(in srgb,var(--ink) 84%,var(--muted))!important;
}
.detail-lead,
.difficulty{
  color:color-mix(in srgb,var(--accent) 78%,var(--ink))!important;
}

/* Remove browser list markers from all Table Manners surfaces. */
.manners,
.manners-panel ul,
.detail-manners{
  list-style:none!important;
  padding-left:0!important;
}
.manners li,
.manners-panel li,
.detail-manners li{
  list-style:none!important;
}
.manners li::marker,
.manners-panel li::marker,
.detail-manners li::marker{
  content:""!important;
  font-size:0!important;
}
.manners,
.detail-manners{
  display:grid!important;
  gap:10px!important;
}
.manners li,
.detail-manners li{
  display:grid!important;
  grid-template-columns:44px minmax(0,1fr)!important;
  gap:14px!important;
  align-items:start!important;
  padding:14px 16px!important;
  border:1px solid color-mix(in srgb,var(--line) 72%,transparent)!important;
  border-radius:16px!important;
  background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 96%,white),color-mix(in srgb,var(--surface) 90%,var(--surface-2)))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.58)!important;
}
.manners-label{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:34px!important;
  height:24px!important;
  border-radius:999px!important;
  background:linear-gradient(180deg,rgba(242,217,144,.42),rgba(211,168,73,.28))!important;
  color:color-mix(in srgb,var(--accent) 76%,var(--ink))!important;
  font-size:11px!important;
  font-weight:500!important;
  line-height:1!important;
}
.manners-text{
  color:color-mix(in srgb,var(--ink) 82%,var(--muted))!important;
  font-size:14px!important;
  font-weight:400!important;
  line-height:1.82!important;
}

/* Responsive polish for phone / tablet / desktop. */
html,
body{
  max-width:100%!important;
  overflow-x:hidden!important;
}

@media(min-width:701px) and (max-width:1100px){
  .shell{width:min(100% - 44px,920px)!important}
  .hero-grid{
    grid-template-columns:1fr!important;
    gap:30px!important;
    align-items:start!important;
  }
  .hero-stats{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
  }
  .hero-stats div:first-child{
    grid-column:auto!important;
  }
  .filters{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .grid{
    grid-template-columns:1fr!important;
  }
}

@media(max-width:700px){
  .shell{
    width:calc(100% - 28px)!important;
  }
  .topbar{
    overflow:hidden!important;
  }
  .nav{
    width:calc(100% - 18px)!important;
    height:auto!important;
    min-height:58px!important;
    padding:10px 0!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:8px!important;
    align-items:center!important;
  }
  .brand{
    min-width:0!important;
    gap:7px!important;
    overflow:hidden!important;
  }
  .brand-mark{
    width:28px!important;
    height:28px!important;
    flex:0 0 28px!important;
  }
  .brand-mark:after{
    font-size:16px!important;
  }
  .brand-word{
    min-width:0!important;
    gap:6px!important;
    overflow:hidden!important;
    filter:drop-shadow(0 5px 10px rgba(118,78,16,.12))!important;
  }
  .brand b{
    font-size:18px!important;
    line-height:22px!important;
    height:22px!important;
    letter-spacing:.08em!important;
    transform:translateY(2px)!important;
    white-space:nowrap!important;
  }
  .brand em{
    font-size:15px!important;
    line-height:20px!important;
    height:20px!important;
    letter-spacing:.04em!important;
    padding-left:7px!important;
    white-space:nowrap!important;
    flex:0 0 auto!important;
  }
  .nav-actions{
    display:flex!important;
    gap:6px!important;
    flex:0 0 auto!important;
  }
  .nav-actions .ghost{
    font-size:11px!important;
    line-height:1.1!important;
    padding:8px 10px!important;
    white-space:nowrap!important;
    min-width:0!important;
  }
  #loginButton{
    width:54px!important;
  }
  #themeButton{
    width:68px!important;
  }
  .hero{
    padding:54px 0 28px!important;
  }
  .hero-grid{
    grid-template-columns:1fr!important;
    gap:28px!important;
    align-items:start!important;
  }
  .eyebrow{
    font-size:11px!important;
    line-height:1.5!important;
    letter-spacing:.18em!important;
    margin-bottom:18px!important;
  }
  h1{
    font-size:clamp(42px,15vw,58px)!important;
    line-height:.94!important;
    max-width:9ch!important;
  }
  .hero .sub{
    font-size:14px!important;
    line-height:1.75!important;
    max-width:100%!important;
    margin-top:26px!important;
  }
  .hero .sub span{
    display:block!important;
  }
  .hero .sub span + span{
    margin-top:10px!important;
  }
  .hero-stats{
    grid-template-columns:1fr!important;
    gap:14px!important;
  }
  .hero-stats div,
  .hero-stats div:first-child{
    min-height:108px!important;
    padding:22px 18px!important;
    border-radius:24px!important;
  }
  .hero-stats strong{
    font-size:32px!important;
  }
  .hero-stats span{
    font-size:12px!important;
  }
  .controls{
    position:relative!important;
    top:auto!important;
    margin-top:18px!important;
    padding:14px!important;
    border-radius:24px!important;
  }
  .controls-head{
    grid-template-columns:1fr!important;
    gap:10px!important;
  }
  #searchInput{
    height:48px!important;
    font-size:14px!important;
  }
  #toggleFiltersButton{
    width:100%!important;
    height:42px!important;
  }
  .filters{
    grid-template-columns:1fr!important;
    gap:10px!important;
  }
  .filters select{
    height:46px!important;
    font-size:14px!important;
  }
  .meal-toggle{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:9px!important;
    padding:14px!important;
  }
  .meal-toggle:before{
    grid-column:1/-1!important;
    width:auto!important;
    margin:0 0 2px!important;
    padding:0!important;
    font-size:12px!important;
  }
  .meal-btn{
    min-width:0!important;
    width:100%!important;
    height:42px!important;
    padding:0 8px!important;
    font-size:13px!important;
    white-space:nowrap!important;
  }
  .area-rail{
    padding:14px 0 2px!important;
    gap:9px!important;
  }
  .area-pill{
    padding:10px 14px!important;
    font-size:13px!important;
  }
  .result-bar{
    flex-direction:row!important;
    align-items:center!important;
    gap:10px!important;
  }
  .grid{
    grid-template-columns:1fr!important;
    gap:16px!important;
  }
  .card{
    border-radius:24px!important;
  }
  .card-head{
    padding:24px 20px 18px!important;
  }
  .card-actions{
    grid-template-columns:1fr!important;
    padding:0 20px 22px!important;
  }
  .quick-grid,
  .modal-grid,
  .account-sections,
  .account-sections-two{
    grid-template-columns:1fr!important;
  }
  .detail{
    padding:24px 20px 26px!important;
  }
  .panel,
  .detail-block,
  .modal-section{
    padding:22px!important;
    border-radius:22px!important;
  }
  .manners li,
  .detail-manners li{
    grid-template-columns:38px minmax(0,1fr)!important;
    gap:10px!important;
    padding:13px 14px!important;
  }
  .mobile-filter{
    right:18px!important;
    bottom:18px!important;
  }
}

@media(max-width:380px){
  .brand b{
    font-size:17px!important;
    letter-spacing:.08em!important;
  }
  .brand em{
    font-size:16px!important;
    padding-left:7px!important;
  }
  #loginButton{
    width:48px!important;
  }
  #themeButton{
    width:58px!important;
  }
  .nav-actions .ghost{
    font-size:10px!important;
    padding-left:8px!important;
    padding-right:8px!important;
  }
  .city-switch{
    min-width:62px!important;
    width:62px!important;
    height:38px!important;
    padding-left:8px!important;
    padding-right:8px!important;
    font-size:10px!important;
    text-align:center!important;
    text-align-last:center!important;
  }
  .city-menu{
    min-width:92px!important;
    padding:6px!important;
  }
  .city-menu button{
    height:34px!important;
    font-size:12px!important;
  }
  h1{
    font-size:42px!important;
  }
}

/* Detail page should read as calm single-column sections. */
body.restaurant-detail-body .detail-identity,
body.restaurant-detail-body .detail-layout,
body.restaurant-detail-body .detail-menu-grid{
  grid-template-columns:1fr!important;
  gap:26px!important;
}

body.restaurant-detail-body .detail-block-main{
  grid-row:auto!important;
}

body.restaurant-detail-body .detail-copy{
  min-height:auto!important;
  background:
    radial-gradient(circle at 10% 12%,rgba(224,178,61,.32) 0,rgba(224,178,61,.17) 23%,transparent 46%),
    radial-gradient(circle at 86% 18%,rgba(212,170,70,.16) 0,transparent 34%),
    linear-gradient(135deg,#fffdf7 0%,#fffaf0 38%,#f7f2e6 100%)!important;
  border-color:rgba(212,170,70,.32)!important;
  box-shadow:
    0 22px 58px rgba(74,55,18,.13),
    0 6px 18px rgba(74,55,18,.08),
    inset 0 1px 0 rgba(255,255,255,.78)!important;
}

body.restaurant-detail-body .detail-identity{
  display:block!important;
}

body.restaurant-detail-body .detail-identity .detail-hero-media{
  min-height:420px!important;
  max-height:520px!important;
}

@media(max-width:700px){
  body.restaurant-detail-body .detail-identity .detail-hero-media{
    min-height:260px!important;
  }
}

/* Mobile brand: same typography as desktop, only scaled down. */
@media(max-width:700px){
  .brand-word{
    align-items:center!important;
    gap:7px!important;
  }
  .brand b,
  .brand em{
    font-family:"Songti SC","STSong","SimSun","Times New Roman",serif!important;
    font-weight:600!important;
    background:linear-gradient(180deg,#f1d987 0%,#d4aa46 58%,#b88624 100%)!important;
    -webkit-background-clip:text!important;
    background-clip:text!important;
    color:transparent!important;
    text-shadow:
      0 1px 0 rgba(255,255,255,.22),
      0 5px 12px rgba(91,62,16,.12)!important;
  }
  .brand b{
    font-size:19px!important;
    line-height:24px!important;
    height:24px!important;
    letter-spacing:.1em!important;
    transform:translateY(2px)!important;
  }
  .brand em{
    font-size:18px!important;
    line-height:24px!important;
    height:24px!important;
    letter-spacing:.1em!important;
    border-left:1px solid rgba(229,183,67,.48)!important;
    padding-left:8px!important;
  }
}

@media(max-width:380px){
  .brand b{
    font-size:17px!important;
    line-height:22px!important;
    height:22px!important;
  }
  .brand em{
    font-size:16px!important;
    line-height:22px!important;
    height:22px!important;
  }
}

/* Premium preview and assistant layer. */
.member-button.premium{
  background:linear-gradient(135deg,rgba(241,217,135,.98),rgba(207,159,47,.92) 56%,rgba(164,111,22,.9))!important;
  color:#fff!important;
  border-color:rgba(191,135,25,.64)!important;
  text-shadow:0 1px 8px rgba(78,48,8,.22)!important;
}
.access-notice{
  margin:18px 0 22px;
  padding:18px 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  border:1px solid rgba(212,170,70,.34);
  border-radius:22px;
  background:linear-gradient(135deg,rgba(255,250,238,.96),rgba(255,255,255,.92) 48%,rgba(240,232,211,.88));
  box-shadow:0 18px 46px rgba(47,38,22,.08),inset 0 1px 0 rgba(255,255,255,.85);
}
.access-notice strong,
.access-notice span{
  display:block;
}
.access-notice strong{
  margin-bottom:5px;
  color:#a97717;
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.access-notice span{
  color:var(--muted);
  font-size:14px;
  line-height:1.65;
}
.access-notice button,
.assistant-input-row button,
.assistant-head button,
.assistant-message button,
.limit-card .reserve{
  border:1px solid rgba(206,165,70,.44);
  border-radius:999px;
  background:linear-gradient(135deg,rgba(241,217,135,.98),rgba(207,159,47,.92) 58%,rgba(164,111,22,.9));
  color:#fff;
  padding:10px 18px;
  box-shadow:0 14px 30px rgba(121,87,24,.16),inset 0 1px 0 rgba(255,255,255,.45);
  cursor:pointer;
  white-space:nowrap;
}
.limit-card{
  grid-column:1/-1;
  padding:28px!important;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  background:
    radial-gradient(circle at 16% 18%,rgba(229,190,92,.22),transparent 32%),
    linear-gradient(135deg,#fffdf8,#fff 48%,#f4efe2)!important;
}
.limit-card h2{
  margin:4px 0 8px;
  font-family:"Songti SC","STSong","SimSun","Times New Roman",serif;
  font-size:28px;
  font-weight:600;
  letter-spacing:0;
}
.limit-card p{
  margin:0;
  color:var(--muted);
  line-height:1.75;
}
.assistant-fab{
  position:fixed;
  right:24px;
  bottom:24px;
  z-index:70;
  display:flex;
  align-items:center;
  gap:8px;
  border:1px solid rgba(212,170,70,.5);
  border-radius:999px;
  background:linear-gradient(135deg,rgba(24,22,18,.96),rgba(77,60,28,.95) 52%,rgba(198,148,35,.92));
  color:#fff;
  padding:13px 18px;
  box-shadow:0 22px 50px rgba(24,18,8,.28),inset 0 1px 0 rgba(255,255,255,.22);
  cursor:pointer;
}
.assistant-fab span{
  color:#f6d97f;
  text-shadow:0 0 14px rgba(246,217,127,.45);
}
.assistant-panel{
  position:fixed;
  right:24px;
  bottom:86px;
  z-index:71;
  width:min(420px,calc(100vw - 32px));
  border:1px solid rgba(212,170,70,.32);
  border-radius:28px;
  background:rgba(255,255,255,.96);
  box-shadow:0 30px 80px rgba(22,19,14,.2),inset 0 1px 0 rgba(255,255,255,.82);
  overflow:hidden;
}
.assistant-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:18px 20px;
  border-bottom:1px solid var(--line);
  background:linear-gradient(135deg,rgba(255,250,235,.92),rgba(255,255,255,.96));
}
.assistant-head small,
.assistant-head strong{
  display:block;
}
.assistant-head small{
  color:#a97717;
  font-size:10px;
  letter-spacing:.18em;
}
.assistant-head strong{
  margin-top:4px;
  font-family:"Songti SC","STSong","SimSun","Times New Roman",serif;
  font-size:24px;
  font-weight:600;
}
.assistant-head button{
  padding:8px 13px;
  background:var(--surface);
  color:var(--ink);
}
.assistant-messages{
  max-height:360px;
  overflow:auto;
  padding:18px;
  display:grid;
  gap:12px;
}
.assistant-message{
  width:fit-content;
  max-width:92%;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  color:var(--ink);
  box-shadow:0 10px 28px rgba(33,28,20,.06);
}
.assistant-message.user{
  justify-self:end;
  background:linear-gradient(135deg,rgba(234,205,132,.9),rgba(208,162,55,.82));
  color:#fff;
  border-color:rgba(203,153,35,.5);
}
.assistant-message p{
  margin:0;
  line-height:1.7;
  font-size:14px;
}
.assistant-rec-list{
  display:grid;
  gap:9px;
  margin-top:10px;
}
.assistant-rec-list a{
  display:block;
  padding:12px;
  border:1px solid var(--line);
  border-radius:16px;
  color:inherit;
  text-decoration:none;
  background:linear-gradient(135deg,#fff,#fbf8f1);
}
.assistant-rec-list strong,
.assistant-rec-list span,
.assistant-rec-list small{
  display:block;
}
.assistant-rec-list span,
.assistant-rec-list small{
  margin-top:5px;
  color:var(--muted);
  font-size:12px;
  line-height:1.55;
}
.assistant-input-row{
  display:grid;
  grid-template-columns:1fr auto;
  gap:10px;
  padding:14px;
  border-top:1px solid var(--line);
  background:rgba(250,248,242,.86);
}
.assistant-input-row input{
  min-width:0;
  border:1px solid var(--line);
  border-radius:999px;
  padding:12px 15px;
  background:#fff;
}
.auth-code-field{
  margin-top:12px;
}
.auth-status{
  min-height:20px;
  margin:12px 0 0;
  color:var(--muted);
  font-size:13px;
  line-height:1.6;
}
.auth-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:16px;
}
.auth-actions .ghost,
.auth-actions .auth-submit{
  width:100%;
}
.legal-page{
  padding-top:72px;
  padding-bottom:72px;
}
.legal-hero,
.legal-section{
  border:1px solid rgba(212,170,70,.22);
  border-radius:28px;
  background:linear-gradient(135deg,rgba(255,252,244,.96),rgba(255,255,255,.94) 52%,rgba(244,239,226,.72));
  box-shadow:0 22px 58px rgba(43,35,21,.08),inset 0 1px 0 rgba(255,255,255,.8);
}
.legal-hero{
  padding:48px;
  margin-bottom:22px;
}
.legal-hero h1{
  margin:10px 0 16px;
  font-family:"Songti SC","STSong","SimSun","Times New Roman",serif;
  font-size:clamp(42px,6vw,76px);
  line-height:1.05;
  font-weight:600;
  letter-spacing:0;
}
.legal-hero p,
.legal-section p{
  color:var(--muted);
  line-height:1.9;
}
.legal-section{
  padding:30px 34px;
  margin-top:16px;
}
.legal-section h2{
  margin:0 0 12px;
  font-family:"Songti SC","STSong","SimSun","Times New Roman",serif;
  font-size:24px;
  font-weight:600;
}
.disclaimer a{
  color:inherit;
  text-decoration:none;
  border-bottom:1px solid rgba(164,119,23,.35);
}

@media(max-width:900px){
  .topbar .nav{
    gap:12px!important;
  }
  .nav-actions{
    gap:8px!important;
    justify-content:flex-end!important;
  }
  .hero-grid{
    grid-template-columns:1fr!important;
    gap:28px!important;
  }
  .hero h1{
    font-size:clamp(54px,12vw,96px)!important;
    line-height:.94!important;
  }
  .filters{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media(max-width:700px){
  .topbar{
    overflow:hidden;
  }
  .topbar .shell.nav{
    padding-inline:14px!important;
    align-items:center!important;
  }
  .brand-cluster{
    min-width:0!important;
    flex:1 1 auto!important;
  }
  .brand{
    min-width:0!important;
  }
  .member-button{
    padding:9px 12px!important;
    font-size:12px!important;
  }
  .nav-actions{
    flex:0 0 auto!important;
  }
  .nav-actions .ghost,
  .city-switch,
  .language-switch button{
    min-width:auto!important;
    padding:9px 11px!important;
    font-size:12px!important;
  }
  .hero{
    padding:54px 0 34px!important;
  }
  .hero h1{
    font-size:clamp(50px,16vw,76px)!important;
    max-width:9ch!important;
  }
  .hero .sub{
    max-width:32ch!important;
    font-size:15px!important;
    line-height:1.8!important;
  }
  .hero-stats{
    grid-template-columns:1fr!important;
  }
  .hero-stats div,
  .hero-stats div:first-child{
    min-height:112px!important;
  }
  .controls{
    margin-top:18px!important;
    padding:18px!important;
    border-radius:24px!important;
  }
  .filters{
    grid-template-columns:1fr!important;
  }
  .meal-toggle{
    grid-template-columns:1fr!important;
    padding:12px!important;
  }
  .area-rail{
    padding-bottom:8px!important;
  }
  .result-bar{
    align-items:flex-start!important;
    gap:12px!important;
  }
  .access-notice,
  .limit-card{
    flex-direction:column;
    align-items:flex-start;
  }
  .account-panel{
    padding:24px!important;
    border-radius:26px!important;
  }
  .account-member,
  .account-summary,
  .account-sections{
    grid-template-columns:1fr!important;
  }
  .membership-modal .modal-shell{
    padding:22px!important;
  }
  .auth-actions{
    grid-template-columns:1fr;
  }
  .legal-page{
    padding-top:34px;
  }
  .legal-hero,
  .legal-section{
    padding:24px;
    border-radius:24px;
  }
  .assistant-fab{
    right:16px;
    bottom:84px;
  }
  .assistant-panel{
    right:16px;
    bottom:144px;
  }
  .mobile-filter{
    right:16px!important;
    bottom:18px!important;
    background:linear-gradient(135deg,rgba(241,217,135,.98),rgba(207,159,47,.92) 58%,rgba(164,111,22,.9))!important;
    color:#fff!important;
  }
}
