.xianggui-launcher-shell {
  position: fixed;
  z-index: 1100;
  right: 0;
  bottom: 24px;
  width: 106px;
  height: 106px;
  filter: drop-shadow(0 10px 13px rgba(24,53,44,.2));
  transition: right .2s ease, bottom .2s ease, width .2s ease, height .2s ease, opacity .18s ease, transform .18s ease, filter .18s ease;
}
.xianggui-launcher-shell.is-user-positioned { right:auto; bottom:auto; transition:opacity .18s ease,filter .18s ease; }
.xianggui-launcher-shell.is-dragging { z-index:1200; filter:drop-shadow(0 16px 20px rgba(24,53,44,.32)); transition:none; }
.xianggui-launcher-shell[data-xianggui-mode="dragging"] { width:140px; height:140px; }
.xianggui-launcher-shell[data-xianggui-mode="dragging"] .xianggui-launcher-toggle,
.xianggui-launcher-shell[data-xianggui-mode="dragging"] .xianggui-launcher-bubble { display:none; }
.xianggui-launcher-shell[data-xianggui-edge="left"][data-xianggui-mode="hidden"] .xianggui-launcher img { transform:translateX(-8px) scaleX(-1); }
.xianggui-launcher-shell[data-xianggui-edge="left"][data-xianggui-mode="selected"] .xianggui-launcher img { transform:scaleX(-1); }
.xianggui-launcher-shell[hidden] { display:none!important; }
.xianggui-launcher-shell[data-xianggui-mode="idle"] { right: max(14px, env(safe-area-inset-right, 0px)); width: 108px; height: 129px; }
.xianggui-launcher-shell[data-xianggui-mode^="transition"] { right: 7px; width: 118px; height: 118px; pointer-events: none; }
.xianggui-launcher-shell:hover { filter: drop-shadow(0 12px 16px rgba(24,53,44,.28)); }
.xianggui-launcher-shell.is-active { opacity: 0; transform: translateY(12px) scale(.88); pointer-events: none; }
.xianggui-launcher {
  position: relative;
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  color: var(--ink);
  background: transparent;
  cursor: pointer;
  touch-action:none;
  -webkit-user-drag:none;
  -webkit-tap-highlight-color:transparent;
}
.xianggui-launcher-shell.is-dragging .xianggui-launcher { cursor:grabbing; }
.xianggui-launcher:focus-visible { outline: 2px solid var(--teal); outline-offset: 3px; border-radius: 45%; }
.xianggui-launcher img { display: block; width: 100%; height: 100%; object-fit: contain; transform-origin: 50% 88%; }
.xianggui-launcher-shell[data-xianggui-mode="idle"] .xianggui-launcher img { width: 108px; height: 108px; animation: xianggui-idle 3.4s ease-in-out infinite; }
.xianggui-launcher-toggle { position:absolute; z-index:2; top:-7px; left:50%; display:none; place-items:center; width:22px; height:22px; padding:0; border:1px solid rgba(23,111,98,.3); border-radius:50%; color:var(--teal); background:rgba(255,255,255,.95); box-shadow:0 4px 12px rgba(24,53,44,.15); font-size:15px; font-weight:700; line-height:1; translate:-50% 0; cursor:pointer; }
.xianggui-launcher-shell[data-xianggui-mode="idle"][data-xianggui-edge="left"] .xianggui-launcher-toggle,
.xianggui-launcher-shell[data-xianggui-mode="idle"][data-xianggui-edge="right"] .xianggui-launcher-toggle { display:grid; }
.xianggui-launcher-toggle:focus-visible { outline:2px solid var(--teal); outline-offset:3px; }
.xianggui-launcher-bubble { position: absolute; right: calc(100% - 20px); bottom: 72%; width: max-content; max-width: 205px; padding: 8px 10px; border: 1px solid rgba(23,111,98,.15); border-radius: 11px 11px 3px 11px; color: #36564d; background: rgba(255,255,255,.96); box-shadow: 0 8px 22px rgba(24,53,44,.14); font-size: 9px; font-weight: 700; line-height: 1.45; opacity: 0; transform: translateY(5px); pointer-events: none; transition:opacity .16s ease,transform .16s ease; }
.xianggui-launcher-shell[data-xianggui-edge="left"] .xianggui-launcher-bubble { right:auto; left:calc(100% - 20px); border-radius:11px 11px 11px 3px; direction:ltr; text-align:left; unicode-bidi:isolate; }
.xianggui-launcher-shell[data-xianggui-mode="selected"] .xianggui-launcher-bubble { opacity:1; transform:translateY(0); }

.xianggui-level-guide {
  position:fixed;
  z-index:1150;
  right:max(22px, env(safe-area-inset-right, 0px));
  bottom:max(22px, env(safe-area-inset-bottom, 0px));
  display:grid;
  width:min(370px, calc(100vw - 44px));
  max-height:calc(100dvh - 120px);
  box-sizing:border-box;
  gap:10px;
  padding:17px;
  overflow:auto;
  border:1px solid rgba(23,111,98,.18);
  border-radius:20px 7px 20px 20px;
  color:var(--ink);
  background:#fff;
  box-shadow:0 18px 45px rgba(23,55,44,.2);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.xianggui-level-guide[hidden] { display:none; }
.xianggui-level-guide > header { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.xianggui-level-guide-heading { display:flex; align-items:center; min-width:0; gap:9px; }
.xianggui-level-guide-heading img { flex:0 0 58px; width:58px; height:64px; object-fit:contain; filter:drop-shadow(0 4px 7px rgba(24,53,44,.13)); }
.xianggui-level-guide-heading div { display:grid; min-width:0; gap:2px; }
.xianggui-level-guide-heading span { color:var(--gold); font-size:10px; font-weight:750; letter-spacing:.08em; }
.xianggui-level-guide-heading strong { font-size:17px; line-height:1.35; }
.xianggui-level-guide [data-xianggui-level-close] { flex:0 0 28px; width:28px; height:28px; padding:0; border:0; border-radius:50%; color:#60736a; background:#eff5f2; font-size:19px; line-height:1; cursor:pointer; }
.xianggui-level-message-window { min-height:150px; max-height:min(42dvh, 330px); overflow:hidden; }
.xianggui-level-messages { display:grid; align-content:start; height:100%; min-height:150px; gap:8px; padding:2px 2px 8px; overflow:auto; }
.xianggui-level-message { width:fit-content; max-width:90%; margin:0; padding:10px 12px; border-radius:4px 13px 13px 13px; color:#42544c; background:#edf5f1; font-size:12px; line-height:1.65; white-space:pre-line; }
.xianggui-level-message--user { justify-self:end; border-radius:13px 4px 13px 13px; color:#fff; background:var(--teal); }
.xianggui-inline-action,
.guide-inline-action { display:inline; margin:0; padding:0; border:0; border-radius:0; color:var(--teal); background:transparent; font:inherit; font-weight:800; line-height:inherit; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; cursor:pointer; appearance:none; }
.xianggui-inline-action:hover,
.guide-inline-action:hover { color:#105d52; }
.xianggui-inline-action:focus-visible,
.guide-inline-action:focus-visible { outline:2px solid rgba(23,111,98,.28); outline-offset:2px; }
.guide-login-action { display:inline-flex;align-items:center;justify-content:center;margin-left:6px;padding:5px 10px;border:1px solid rgba(23,111,98,.22);border-radius:999px;color:#fff;background:var(--teal);font:inherit;font-size:.88em;font-weight:800;line-height:1.2;cursor:pointer;appearance:none; }
.guide-login-action:hover { background:#105d52; }
.guide-login-action:focus-visible { outline:3px solid rgba(23,111,98,.25);outline-offset:2px; }
.xianggui-level-destination { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:10px; width:min(100%, 310px); padding:10px 11px; border:1px solid rgba(23,111,98,.16); border-radius:12px; color:#42544c; background:#f8fbf9; }
.xianggui-level-destination span { font-size:11px; line-height:1.55; }
.xianggui-level-destination button { min-width:52px; min-height:31px; padding:0 10px; border:1px solid var(--teal); border-radius:9px; color:#fff; background:var(--teal); font-size:10px; font-weight:750; cursor:pointer; }
.xianggui-level-composer { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:7px; padding-top:9px; border-top:1px solid rgba(23,111,98,.1); }
.xianggui-level-composer textarea { min-width:0; min-height:42px; box-sizing:border-box; resize:none; padding:9px 10px; border:1px solid rgba(23,111,98,.18); border-radius:10px; color:var(--ink); background:#fff; font:inherit; font-size:13px; line-height:1.45; outline:none; }
.xianggui-level-composer textarea:focus { border-color:var(--teal); box-shadow:0 0 0 2px rgba(23,111,98,.09); }
.xianggui-level-composer textarea::placeholder { color:#94a29b; }
.xianggui-level-composer > button { min-width:58px; min-height:42px; align-self:end; padding:0 13px; border:1px solid var(--teal); border-radius:9px; color:#fff; background:var(--teal); font-size:12px; font-weight:750; cursor:pointer; }
.xianggui-level-guide-status { min-height:1.25em; margin:0; color:#718078; font-size:9px; line-height:1.4; }
:root[data-theme="night"] .xianggui-level-guide { border-color:rgba(126,159,147,.2); background:rgba(13,25,21,.96); }
:root[data-theme="night"] .xianggui-level-message { color:#c8d8d1; background:#1a3028; }
:root[data-theme="night"] .xianggui-level-message--user { color:#fff; background:#287665; }
:root[data-theme="night"] .xianggui-level-destination { border-color:#30483f; color:#c8d8d1; background:#101d19; }
:root[data-theme="night"] .xianggui-level-composer textarea { border-color:#30483f; color:var(--ink); background:#101d19; }
:root[data-theme="night"] .xianggui-level-guide [data-xianggui-level-close] { color:#b8ddd1; background:#1a3029; }

@keyframes xianggui-idle {
  0%, 100% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-5px) rotate(1deg); }
}
.city-local-guide {
  position: absolute;
  display: grid;
  grid-template-rows: auto minmax(0,1fr) auto auto auto auto;
  z-index: 30;
  top: 88px;
  bottom: 20px;
  right: max(18px, calc(50% - 470px));
  width: min(360px, calc(100% - 36px));
  box-sizing: border-box;
  padding: 16px;
  overflow: hidden;
  border: 1px solid rgba(23,111,98,.18);
  border-radius: 18px 6px 18px 18px;
  color: var(--ink);
  background: #fff;
  box-shadow: 0 18px 45px rgba(23,55,44,.2);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.city-local-guide[hidden] { display: none; }
.city-local-guide > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.city-local-guide > header .xianggui-guide-heading { display: flex; align-items: center; min-width: 0; gap: 8px; }
.city-local-guide > header .xianggui-guide-heading > img { flex: 0 0 58px; width: 58px; height: 64px; object-fit: contain; filter: drop-shadow(0 4px 7px rgba(24,53,44,.13)); transition: opacity .16s ease, transform .16s ease; }
.city-local-guide > header .xianggui-guide-copy { display: grid; min-width: 0; gap: 2px; }
.guide-header-actions { display:flex; align-items:center; gap:6px; }
.guide-header-actions a { padding:6px 8px; border-radius:999px; color:var(--teal); background:#edf6f1; font-size:10px; font-weight:800; text-decoration:none; }
.guide-header-actions a:hover { background:#e2f0e9; }
.city-local-guide > header span { color: var(--gold); font-size: 9px; font-weight: 750; letter-spacing: .08em; }
.city-local-guide > header strong { font-size: 15px; }
.city-local-guide [data-guide-close] { width: 28px; height: 28px; border: 0; border-radius: 50%; color: #60736a; background: #eff5f2; font-size: 19px; line-height: 1; }
.guide-intro { margin: 8px 0 11px; color: #718078; font-size: 9px; line-height: 1.5; }
.guide-message-window { position:relative; min-height:0; overflow:hidden; }
.guide-messages { display: grid; align-content: start; height:100%; min-height: 0; gap: 7px; padding: 3px 2px 8px; overflow: auto; }
.guide-latest { position:absolute; z-index:2; left:50%; bottom:10px; translate:-50% 0; display:grid; place-items:center; width:32px; height:32px; padding:0; border:1px solid rgba(23,111,98,.2); border-radius:50%; color:#fff; background:var(--teal); box-shadow:0 6px 18px rgba(20,55,44,.24); font-size:17px; line-height:1; cursor:pointer; }
.guide-latest[hidden] { display:none; }
.guide-latest:hover { background:#105d52; }
.guide-latest:focus-visible { outline:2px solid #6eaa9c; outline-offset:2px; }
.guide-latest:not([data-unread="0"])::after { content:attr(data-unread); position:absolute; top:-6px; right:-8px; display:grid; place-items:center; min-width:17px; height:17px; padding:0 4px; border:2px solid #fff; border-radius:999px; color:#fff; background:var(--gold); box-sizing:border-box; font-size:8px; font-weight:800; line-height:1; }
.guide-message { width: fit-content; max-width: 88%; margin: 0; padding: 10px 12px; border-radius: 4px 12px 12px 12px; color: #42544c; background: #edf5f1; font-size: 12px; line-height: 1.65; }
.guide-message--user { justify-self: end; border-radius: 12px 4px 12px 12px; color: #fff; background: var(--teal); }
.guide-composer { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 6px; padding-top: 8px; border-top: 1px solid rgba(23,111,98,.1); }
.guide-composer textarea { min-width: 0; resize: none; padding: 10px 11px; border: 1px solid rgba(23,111,98,.18); border-radius: 10px; color: var(--ink); background: #fff; font: inherit; font-size: 13px; line-height: 1.5; outline: none; }
.guide-composer textarea:focus { border-color: var(--teal); box-shadow: 0 0 0 2px rgba(23,111,98,.09); }
.guide-composer textarea::placeholder { color: #94a29b; }
.guide-composer > button,
.guide-result-actions button,
.city-local-guide [data-guide-reset] { min-height: 30px; padding: 0 10px; border: 1px solid rgba(23,111,98,.14); border-radius: 9px; color: var(--teal); background: #f1f7f4; font-size: 9px; font-weight: 700; }
.guide-composer > button { min-width: 58px; min-height: 42px; align-self: center; padding: 0 14px; color: #fff; border-color: var(--teal); background: var(--teal); font-size: 12px; }
.guide-feedback { min-height: 1.3em; margin: 4px 2px 0; color: #9a5f31; font-size: 8px; }
.guide-feedback:empty { display:none; }
.guide-result { display: grid; gap: 4px; margin-top: 1px; padding: 11px; border: 1px solid rgba(182,138,48,.3); border-radius: 12px; background: #fff9ec; }
.guide-accommodation-recommendation,
.guide-trip-advisory,
.guide-booking-entry,
.guide-booking-choices,
.guide-booking-handoff { display:grid; gap:4px; margin-top:1px; padding:11px; border:1px solid rgba(110,113,154,.28); border-radius:12px; background:#f7f6fc; }
.guide-accommodation-recommendation strong,
.guide-trip-advisory strong,
.guide-booking-entry strong,
.guide-booking-choices strong,
.guide-booking-handoff strong { font-size:12px; }
.guide-accommodation-recommendation small { color:#6e7d76; font-size:8px; line-height:1.45; }
.guide-accommodation-recommendation p,
.guide-trip-advisory p,
.guide-booking-entry p,
.guide-booking-handoff p { margin:4px 0; color:#52635b; font-size:9px; line-height:1.55; }
.guide-trip-advisory { border-color:rgba(23,111,98,.22); background:#f4f9f6; }
.guide-trip-advisory p { padding:6px 8px; border-radius:8px; background:rgba(23,111,98,.06); }
.guide-weather-panel { display:grid; gap:6px; min-width:0; }
.guide-weather-days { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(86px,1fr); gap:6px; overflow-x:auto; padding:1px 0 4px; scrollbar-width:thin; }
.guide-weather-day { display:grid; justify-items:center; align-content:center; gap:2px; min-height:92px; padding:8px 6px; border:1px solid rgba(23,111,98,.13); border-radius:10px; background:rgba(255,255,255,.72); text-align:center; }
.guide-weather-day .guide-weather-date { color:#718078; font-size:8px; font-weight:650; }
.guide-weather-day .guide-weather-icon { min-height:28px; color:#d29b2b; font-size:25px; line-height:1; font-family:"Segoe UI Symbol","Microsoft YaHei",sans-serif; }
.guide-weather-day strong { max-width:82px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:9px; }
.guide-weather-day small { color:#52635b; font-size:8px; font-variant-numeric:tabular-nums; }
.guide-weather-source { justify-self:end; color:var(--teal); font-size:8px; }
.guide-booking-entry,
.guide-booking-handoff { border-color:rgba(182,138,48,.28); background:#fffbf2; }
.guide-booking-actions { display:flex; flex-wrap:wrap; gap:6px; margin-top:4px; }
.guide-booking-actions button,
.guide-booking-actions a,
.guide-booking-choice button { display:inline-grid; min-height:30px; box-sizing:border-box; place-items:center; padding:0 10px; border:1px solid rgba(23,111,98,.14); border-radius:9px; color:var(--teal); background:#f1f7f4; font-size:9px; font-weight:700; text-decoration:none; }
.guide-booking-actions .is-primary { color:#fff; border-color:var(--teal); background:var(--teal); }
.guide-booking-choice { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:8px; padding:7px 0; border-top:1px solid rgba(23,111,98,.09); color:#42544c; font-size:9px; }
.guide-booking-summary { white-space:pre-line; padding:7px 8px; border-radius:8px; background:rgba(23,111,98,.06); }
.guide-booking-handoff .guide-booking-warning { color:#805d22; }
.guide-result[data-route-source="guide"] { border-color: rgba(23,111,98,.28); background: #f3faf7; }
.guide-result-source { color: var(--gold); font-size: 8px; font-weight: 750; }
.guide-result[data-route-source="guide"] .guide-result-source { color: var(--teal); }
.guide-result strong { font-size: 12px; }
.guide-result small { color: #6e7d76; font-size: 8px; line-height: 1.45; }
.guide-result p { margin: 4px 0; color: #52635b; font-size: 9px; line-height: 1.55; }
.guide-result .guide-result-stops { color: #254d42; font-weight: 650; }
.guide-result .guide-result-notice { padding: 6px 8px; border-radius: 8px; color: #805d22; background: rgba(182,138,48,.1); }
.guide-result-schedule { display: grid; gap: 3px; margin: 4px 0; padding: 7px 8px; border-radius: 9px; background: rgba(23,111,98,.06); list-style: none; }
.guide-result-schedule li { display: grid; grid-template-columns: 72px minmax(0,1fr); gap: 6px; color: #52635b; font-size: 8px; line-height: 1.45; }
.guide-result-schedule li span:first-child { color: var(--teal); font-weight: 750; font-variant-numeric: tabular-nums; }
.guide-result-actions { display: flex; gap: 6px; margin-top: 3px; }
.guide-result-actions .is-primary { color: #fff; border-color: var(--teal); background: var(--teal); }
.guide-result-rating { display:flex; align-items:center; flex-wrap:wrap; gap:5px; padding-top:5px; border-top:1px solid rgba(23,111,98,.09); color:#718078; font-size:8px; }
.guide-result-rating button { min-height:24px; padding:0 8px; border:1px solid rgba(23,111,98,.13); border-radius:8px; color:var(--teal); background:#f5f9f7; font-size:8px; }
.guide-result-rating button:disabled { opacity:.55; cursor:default; }
.guide-result-feedback-form { display:grid; gap:6px; padding:7px; border:1px solid rgba(23,111,98,.13); border-radius:10px; background:rgba(255,255,255,.62); }
.guide-result-feedback-form[hidden] { display:none; }
.guide-result-feedback-form textarea { width:100%; min-width:0; box-sizing:border-box; resize:vertical; padding:7px 8px; border:1px solid rgba(23,111,98,.18); border-radius:8px; color:var(--ink); background:#fff; font:inherit; font-size:9px; line-height:1.45; outline:none; }
.guide-result-feedback-form textarea:focus { border-color:var(--teal); box-shadow:0 0 0 2px rgba(23,111,98,.09); }
.guide-result-feedback-form textarea::placeholder { color:#94a29b; }
.guide-result-feedback-actions { display:flex; justify-content:flex-end; gap:6px; }
.guide-result-feedback-actions button { min-height:27px; padding:0 9px; border:1px solid rgba(23,111,98,.14); border-radius:8px; color:var(--teal); background:#f1f7f4; font-size:8px; font-weight:700; }
.guide-result-feedback-actions .is-primary { color:#fff; border-color:var(--teal); background:var(--teal); }
.city-local-guide [data-guide-reset] { width: 100%; margin-top: 9px; }
.city-local-guide [data-guide-reset][hidden] { display: none; }

:root[data-theme="night"] .city-local-guide { border-color: rgba(126,159,147,.2); background: rgba(13,25,21,.96); }
:root[data-theme="night"] .guide-message { color: #c8d8d1; background: #1a3028; }
:root[data-theme="night"] .guide-message--user { color: #fff; background: #287665; }
:root[data-theme="night"] .guide-composer textarea { border-color: #30483f; color: var(--ink); background: #101d19; }
:root[data-theme="night"] .guide-result-feedback-form { border-color:#30483f; background:rgba(255,255,255,.03); }
:root[data-theme="night"] .guide-result-feedback-form textarea { border-color:#30483f; color:var(--ink); background:#101d19; }
:root[data-theme="night"] .guide-result { border-color: rgba(213,168,63,.35); background: #241f13; }
:root[data-theme="night"] .guide-result[data-route-source="guide"] { border-color: rgba(82,160,140,.4); background: #142720; }
:root[data-theme="night"] .guide-accommodation-recommendation { border-color:rgba(137,139,190,.38); background:#202034; }
:root[data-theme="night"] .guide-trip-advisory { border-color:rgba(82,160,140,.32); background:#14241e; }
:root[data-theme="night"] .guide-weather-day { border-color:rgba(82,160,140,.25); background:rgba(255,255,255,.04); }
:root[data-theme="night"] .guide-weather-day small { color:#aebdb6; }
:root[data-theme="night"] .guide-booking-entry,
:root[data-theme="night"] .guide-booking-choices,
:root[data-theme="night"] .guide-booking-handoff { border-color:rgba(213,168,63,.32); background:#241f13; }
:root[data-theme="night"] .guide-accommodation-recommendation p,
:root[data-theme="night"] .guide-accommodation-recommendation small,
:root[data-theme="night"] .guide-trip-advisory p,
:root[data-theme="night"] .guide-booking-entry p,
:root[data-theme="night"] .guide-booking-handoff p,
:root[data-theme="night"] .guide-booking-choice { color:#aebdb6; }
:root[data-theme="night"] .guide-result p,
:root[data-theme="night"] .guide-result small { color: #aebdb6; }
:root[data-theme="night"] .guide-result-schedule { background: rgba(82,160,140,.1); }
:root[data-theme="night"] .guide-latest { border-color:rgba(255,255,255,.2); background:#287665; }
:root[data-theme="night"] .guide-latest:not([data-unread="0"])::after { border-color:#16211d; }
:root[data-theme="night"] .xianggui-launcher-bubble { border-color:#30483f; color:#d7e3de; background:rgba(16,29,25,.96); }
:root[data-theme="night"] .xianggui-launcher-toggle { border-color:#30483f; color:#b8ddd1; background:rgba(16,29,25,.96); }
:root[data-theme="night"] .guide-header-actions a { color:#b8ddd1; background:#1a3029; }
:root[data-theme="night"] .xianggui-inline-action,
:root[data-theme="night"] .guide-inline-action { color:#b8ddd1; }

@media (max-width: 720px) {
  .xianggui-level-guide { left:9px; right:9px; bottom:max(12px, env(safe-area-inset-bottom, 0px)); width:auto; max-height:58dvh; padding:14px; border-radius:17px 17px 6px 6px; }
  .xianggui-level-guide-heading img { flex-basis:52px; width:52px; height:57px; }
  .xianggui-level-guide-heading strong { font-size:16px; }
  .xianggui-level-message-window { min-height:135px; max-height:32dvh; }
  .xianggui-level-messages { min-height:135px; }
  .xianggui-level-composer textarea { min-height:38px; max-height:64px; padding:7px 9px; font-size:16px; }
  .xianggui-level-composer > button { min-width:52px; min-height:38px; padding:0 11px; font-size:11px; }
  .city-local-guide { top: auto; left: 7px; right: 7px; bottom: 25px; width: auto; height: 55%; padding: 13px 13px 8px; border-radius: 16px 16px 5px 5px; }
  html.map-page-root.is-guide-keyboard-open,
  body.map-page.is-guide-keyboard-open { height:auto; min-height:100%; overflow-x:hidden; overflow-y:auto; }
  html.is-guide-keyboard-open .topbar { opacity:0; transform:translateY(-100%); visibility:hidden; pointer-events:none; }
  html.is-guide-keyboard-open .level-nav,
  html.is-guide-keyboard-open .is-city-explorer .city-category-bar { opacity:0; visibility:hidden; pointer-events:none; }
  body.map-page.is-guide-keyboard-open .page-shell { width:100%; height:100lvh; min-height:100lvh; overflow:visible; padding-top:0; }
  html.is-guide-keyboard-open .world-stage,
  html.is-guide-keyboard-open .world-stage:has(.is-city-explorer) { height:100lvh; min-height:0; }
  html.is-guide-keyboard-open .map-explorer.is-city-explorer { inset:0; }
  html.is-guide-keyboard-open .is-city-explorer .city-live-map { inset:0; }
  .city-local-guide.is-keyboard-open { height:auto; max-height:calc(100lvh - 32px); }
  .city-local-guide.is-keyboard-open .guide-message-window { max-height:min(38lvh,320px); }
  .city-local-guide.is-keyboard-open > header .xianggui-guide-heading > img { flex-basis:40px; width:40px; height:44px; }
  .city-local-guide.is-keyboard-open > header strong { font-size:13px; }
  .guide-composer textarea { height:42px; min-height:42px; max-height:42px; padding:6px 8px; overflow:auto; font-size:16px; line-height:1.25; }
  .guide-composer textarea::placeholder { font-size:13px; }
  .guide-composer > button { min-width:48px; height:42px; min-height:42px; align-self:start; padding:0 9px; font-size:10px; }
  .xianggui-launcher-shell { right:0; bottom:18px; width:90px; height:90px; }
  .xianggui-launcher-shell[data-xianggui-mode="idle"] { right:max(8px, env(safe-area-inset-right, 0px)); width:94px; height:113px; }
  .xianggui-launcher-shell[data-xianggui-mode^="transition"] { right:0; width:101px; height:101px; }
  .xianggui-launcher-shell[data-xianggui-mode="dragging"] { width:119px; height:119px; }
  .xianggui-launcher-shell[data-xianggui-mode="idle"] .xianggui-launcher img { width:94px; height:94px; }
  .xianggui-launcher-bubble { right:calc(100% - 14px); bottom:68%; }
}

@media (prefers-reduced-motion: reduce) {
  .xianggui-launcher-shell,
  .xianggui-launcher img,
  .xianggui-launcher-bubble { animation: none; transition:none; }
}
.guide-conversation-evaluation{display:grid;gap:10px;padding:14px;border:1px solid #d7e3db;border-radius:16px;background:#f7faf7;color:#17483f}.guide-conversation-evaluation>p{margin:0;line-height:1.65}.guide-evaluation-reasons{display:flex;flex-wrap:wrap;gap:10px}.guide-evaluation-reasons label{display:flex;align-items:center;gap:5px;font-size:12px}.guide-evaluation-reasons input{width:auto;min-height:0}.guide-conversation-evaluation button[aria-pressed="true"]{background:#176f62;color:#fff}
.guide-plan-basis{font-size:12px;line-height:1.65;overflow-wrap:anywhere}.guide-plan-basis summary{cursor:pointer;color:var(--teal,#176f62)}.guide-plan-basis ul{margin:8px 0;padding-left:18px}.guide-plan-basis p{font-size:12px}
.guide-day-adjustment{font-size:12px;line-height:1.65;overflow-wrap:anywhere}.guide-day-adjustment summary{cursor:pointer;color:var(--teal,#176f62)}.guide-adjustment-stops{display:grid;gap:8px;margin:10px 0}.guide-adjustment-stop{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-bottom:8px;border-bottom:1px solid rgba(104,145,130,.2)}.guide-adjustment-stop>span{flex:1 1 130px;min-width:0}.guide-adjustment-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;margin-left:auto}.guide-day-adjustment button{padding:7px 10px;border:1px solid #d7e3db;border-radius:10px;background:#edf4ef;color:var(--teal,#176f62);font:inherit;cursor:pointer}.guide-day-adjustment button[aria-pressed="true"]{background:#176f62;color:white}.guide-day-adjustment button:disabled{opacity:.5;cursor:default}.guide-day-adjustment>p,.guide-weather-date-note{font-size:12px;line-height:1.65}.guide-weather-date{overflow-wrap:anywhere}
:root[data-theme="night"] .guide-day-adjustment button{border-color:#30483f;background:#1a3029;color:#b8ddd1}:root[data-theme="night"] .guide-day-adjustment button[aria-pressed="true"]{background:#287665;color:#fff}
.guide-quick-actions{display:flex;flex-wrap:wrap;gap:6px;flex-shrink:0;padding:6px 0}.guide-quick-actions[hidden]{display:none}.guide-quick-actions button{padding:6px 10px;border:1px solid var(--line,#d7e3db);border-radius:12px;background:var(--paper,#edf4ef);color:var(--teal,#176f62);font:inherit;font-size:12px;cursor:pointer}.guide-quick-actions button:disabled{opacity:.45;cursor:default}
.guide-plan-dialog{box-sizing:border-box;width:min(620px,calc(100vw - 24px));max-height:calc(100dvh - 32px);padding:0;border:1px solid var(--line,#d7e3db);border-radius:24px;background:var(--paper,#fff);color:var(--ink,#17483f);overflow:hidden}.guide-plan-dialog[open]{display:flex;flex-direction:column}.guide-plan-dialog::backdrop{background:rgba(20,49,42,.45)}.guide-plan-dialog>h2{flex-shrink:0;margin:0;padding:20px 22px 12px;font-size:21px}.guide-plan-dialog-body{min-height:0;overflow:auto;overscroll-behavior:contain;padding:0 22px 18px;overflow-wrap:anywhere}.guide-plan-dialog-body p{line-height:1.7;font-size:14px}.guide-plan-dialog-body label{display:grid;gap:6px;margin:12px 0}.guide-plan-dialog-body input,.guide-plan-dialog-body select{box-sizing:border-box;min-width:0;max-width:100%;padding:10px;border:1px solid var(--line,#d7e3db);border-radius:12px;background:var(--paper,#fff);color:inherit;font:inherit}.guide-plan-dialog-body .guide-plan-checkbox{display:flex;align-items:center;gap:8px}.guide-plan-dialog-actions{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:6px;flex-shrink:0;padding:10px 16px;border-top:1px solid var(--line,#d7e3db);background:var(--paper,#fff)}.guide-plan-dialog-actions>button{box-sizing:border-box;flex:0 0 auto;max-width:100%;min-height:40px;padding:8px 12px;border:1px solid var(--line,#d7e3db);border-radius:10px;background:#edf4ef;color:#176f62;font:600 13px/1.3 system-ui,sans-serif;white-space:nowrap;cursor:pointer}.guide-plan-dialog-actions .is-primary{background:#176f62;color:#fff}.guide-overview-day{border-top:1px solid var(--line,#d7e3db);padding:8px 0}.guide-overview-day h3{margin:8px 0;font-size:16px}.guide-plan-change{padding:10px;background:rgba(185,146,50,.12);border-radius:12px}
@media(pointer:coarse){.guide-plan-dialog-actions>button{min-height:44px}}
