:root {
  --ink: #183b7a;
  --ink-soft: #58677d;
  --line: #d8e0ea;
  --paper: #ffffff;
  --mist: #f3f6fa;
  --navy: #183b7a;
  --blue: #1f4dbd;
  --violet: #6c42c5;
  --pink: #d32c75;
  --pink-deep: #a61c5b;
  --artifact-gradient: linear-gradient(104deg, #1f4dbd 0%, #6c42c5 52%, #d32c75 100%);
  --blue-pink: var(--artifact-gradient);
  --shadow: 0 14px 32px rgba(28, 53, 106, .08);
  --font-ui: "HarmonyOS Sans SC", "MiSans", "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", "Source Han Sans SC", "Microsoft YaHei", sans-serif;
  --font-num: "Bahnschrift", "DIN Alternate", ui-sans-serif, var(--font-ui);
  color-scheme: light;
  font-family: var(--font-ui);
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html, body { margin: 0; min-height: 100%; background: #edf2f6; color: var(--ink); }
body { min-width: 320px; }
button, input { font: inherit; }
button { cursor: pointer; }
button:focus-visible, a:focus-visible, [tabindex]:focus-visible { outline: 3px solid rgba(31, 77, 189, .42); outline-offset: 3px; }
button[disabled] { cursor: not-allowed; opacity: .48; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; pointer-events: none; }
.ui-icon { width: 20px; height: 20px; display: block; flex: 0 0 auto; fill: none; stroke: currentColor; pointer-events: none; }
.ui-icon--sm { width: 16px; height: 16px; }
.ui-icon--md { width: 20px; height: 20px; }
.ui-icon--lg { width: 24px; height: 24px; }

.app-shell {
  min-height: 100dvh;
  background: var(--paper);
  isolation: isolate;
  overflow: hidden;
}

.app-topbar {
  height: calc(62px + env(safe-area-inset-top));
  padding: calc(8px + env(safe-area-inset-top)) 15px 8px;
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr) 52px;
  align-items: center;
  border-bottom: 1px solid #e1e6ee;
  background: rgba(255, 255, 255, .98);
  position: relative;
  z-index: 6;
}
.topbar-start { display: flex; align-items: center; min-width: 0; height: 44px; }
.app-topbar::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 2px;
  background: var(--artifact-gradient);
  opacity: .72;
}

.round-button {
  width: 44px; height: 44px; border: 1px solid #dfe6ef; border-radius: 12px; color: var(--ink);
  background: #f8fafc; display: grid; place-items: center;
}
.round-button:hover { background: #eef3f9; }
#nav-menu { justify-self: end; }
.quick-map-button { width: 52px; height: 44px; display: grid; grid-template-columns: 15px minmax(0, 1fr); gap: 2px; align-items: center; padding: 0 7px; color: var(--blue); border: 1px solid #d7e1f0; border-radius: 12px; background: #f5f8fc; font-size: 11px; font-weight: 700; letter-spacing: -.03em; line-height: 1; text-decoration: none; }
.quick-map-button .ui-icon { color: var(--pink-deep); }
.quick-map-button strong { font-weight: 700; }
.quick-map-button:hover { color: #183f9f; border-color: #c5d5eb; background: #edf4fc; }
.wordmark { min-width: 44px; min-height: 44px; padding: 3px 6px; border: 0; background: transparent; color: var(--ink); text-align: center; line-height: 1.08; font-size: 14px; font-weight: 700; letter-spacing: -.015em; }
.wordmark__eyebrow { display: block; color: #748198; font-family: var(--font-num); font-size: 9px; font-weight: 650; letter-spacing: .1em; margin-bottom: 3px; }

main { height: calc(100dvh - 62px - env(safe-area-inset-top)); }
.screen { height: 100%; min-height: 0; display: flex; flex-direction: column; background: var(--paper); }
.screen[hidden] { display: none; }
.screen-scroll { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 26px 20px 28px; -webkit-overflow-scrolling: touch; }
.screen-scroll--map { padding-bottom: 14px; }
.screen-scroll--route { padding-bottom: 18px; }
.screen-scroll--poster { padding-bottom: 18px; }
.screen-scroll--products { position: relative; isolation: isolate; padding-bottom: 20px; }

.screen-footer {
  padding: 12px 20px calc(14px + env(safe-area-inset-bottom));
  display: grid; gap: 10px; background: rgba(255,255,255,.98); border-top: 1px solid var(--line);
}
.screen-footer--two { grid-template-columns: minmax(0, .9fr) minmax(0, 1.35fr); }
.screen-footer--direction { gap: 6px; padding-top: 8px; }
.screen-footer--product { padding-top: 10px; }
.direction-footer-note { margin: 0; color: #52647d; font-size: 11px; font-weight: 700; line-height: 1.35; text-align: center; }
.direction-footer-note strong { color: var(--pink-deep); }

.primary-button, .secondary-button {
  min-height: 50px; border-radius: 12px; border: 0; padding: 0 16px; font-weight: 700; letter-spacing: -.015em;
}
.primary-button { color: #fff; background: var(--blue); box-shadow: 0 8px 16px rgba(31, 77, 189, .22); }
.button-arrow { width: 16px; height: 16px; display: inline-block; margin: 0 0 -3px 7px; fill: none; stroke: currentColor; }
.primary-button:hover { background: #183f9f; }
.secondary-button { color: var(--ink); background: #f5f7fa; border: 1px solid #dfe5ed; }

.screen--home { overflow: hidden; background: #f7f9fc; }
.home-scroll { position: relative; padding: 44px 24px calc(25px + env(safe-area-inset-bottom)); overflow-x: hidden; background: linear-gradient(180deg, #f4f7fc 0, #ffffff 470px); }
.hero-wayfinding-art { display: none; }
.home-scroll::after { display: none; }
.home-scroll > :not(.hero-wayfinding-art) { position: relative; z-index: 1; }
.home-scroll > #nav-quick-map.quick-map-button--home {
  position: absolute;
  z-index: 3;
  top: 10px;
  right: 18px;
  width: auto;
  min-width: 106px;
  height: 56px;
  grid-template-columns: 24px minmax(0, 1fr);
  gap: 8px;
  padding: 0 12px 0 10px;
  color: #274b94;
  border-color: #cfdcf0;
  border-left: 3px solid var(--pink-deep);
  border-radius: 14px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 7px 15px rgba(38, 61, 122, .07);
  letter-spacing: -.02em;
}
.home-scroll > #nav-quick-map.quick-map-button--home .ui-icon { width: 23px; height: 23px; color: var(--pink-deep); }
.home-scroll > #nav-quick-map.quick-map-button--home .quick-map-button__copy { display: grid; gap: 1px; text-align: left; line-height: 1; }
.home-scroll > #nav-quick-map.quick-map-button--home small { color: #78879d; font-family: var(--font-num); font-size: 8px; font-weight: 750; letter-spacing: .08em; }
.home-scroll > #nav-quick-map.quick-map-button--home strong { color: var(--blue); font-size: 15px; font-weight: 800; }
.kicker { color: var(--pink-deep); font-family: var(--font-num); font-size: 11px; font-weight: 700; letter-spacing: .13em; margin: 0 0 13px; text-transform: uppercase; }
.screen--home h1 { margin: 0; color: #173b7c; font-size: clamp(32px, 9vw, 41px); font-weight: 800; line-height: 1.1; letter-spacing: -.06em; max-width: 360px; text-wrap: balance; }
.screen--home h1 span { display: block; }
.hero-copy { max-width: 278px; color: #4f6381; margin: 15px 0 25px; font-size: 14px; font-weight: 650; line-height: 1.68; }
.hero-stat-grid { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin: 0 0 22px; overflow: hidden; border-top: 1px solid #c8d4e4; border-bottom: 1px solid #c8d4e4; border-radius: 0; background: rgba(255,255,255,.62); }
.hero-stat-grid div { min-width: 0; padding: 10px 7px 9px; border-right: 1px solid #d7e0eb; text-align: center; }
.hero-stat-grid div:last-child { border-right: 0; }
.hero-stat-grid strong { display: block; color: var(--blue); font-family: var(--font-num); font-size: 17px; font-weight: 700; letter-spacing: -.04em; }
.hero-stat-grid span { display: block; color: #66758a; font-size: 11px; line-height: 1.32; margin-top: 4px; }
.home-actions { display: grid; gap: 0; position: relative; overflow: hidden; border: 1px solid #d4dfec; border-radius: 10px; background: rgba(255,255,255,.8); counter-reset: home-action; }
.action-card { position: relative; width: 100%; min-height: 66px; display: grid; grid-template-columns: 38px minmax(0, 1fr) 32px; align-items: center; gap: 10px; border: 0; border-bottom: 1px solid #dce4ed; background: rgba(255,255,255,.93); border-radius: 0; padding: 10px 13px 10px 16px; text-align: left; color: var(--ink); box-shadow: none; counter-increment: home-action; }
.action-card::before { position: absolute; top: 13px; bottom: 13px; left: 0; width: 3px; content: ""; background: #aabbd4; }
.action-card:last-child { border-bottom: 0; }
.action-card:not(.action-card--main) { min-height: 62px; }
.action-card--main { min-height: 76px; color: #fff; background: #173b7c; box-shadow: none; }
.action-card--main::before { top: 0; bottom: 0; width: 4px; background: var(--pink); }
.action-card--search::before { background: #2a67b8; }
.action-card--documents::before { background: #d32c75; }
.action-card__icon { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid #cbd9ee; border-radius: 50%; background: rgba(255,255,255,.6); color: var(--blue); }
.action-card__icon .ui-icon { width: 19px; height: 19px; }
.action-card--main .action-card__icon { color: #fff; border-color: rgba(255,255,255,.48); background: transparent; }
.action-card--search .action-card__icon { color: #3153a7; border-color: #cad9ee; background: #f5f9ff; }
.action-card--documents .action-card__icon { color: var(--pink-deep); border-color: #f1c7d9; background: #fff8fb; }
.action-card strong { display: block; font-size: 15px; font-weight: 700; }
.action-card small { display: block; margin-top: 3px; color: #64738a; font-size: 12px; line-height: 1.35; }
.action-card--main small { color: rgba(255,255,255,.8); }
.action-card__trail { display: grid; justify-items: end; gap: 1px; color: #61718a; line-height: 1; }
.action-card__trail::before { content: counter(home-action, decimal-leading-zero); color: #8a96aa; font-family: var(--font-num); font-size: 9px; font-weight: 800; letter-spacing: .05em; }
.action-card__trail .ui-icon { width: 15px; height: 15px; }
.action-card--main .action-card__trail { color: #fff; }
.action-card--main .action-card__trail::before { color: rgba(255,255,255,.66); }
.home-note { color: #66758a; font-size: 12px; line-height: 1.62; margin: 16px 2px 0; }
.home-contact-card { position: relative; isolation: isolate; margin-top: 15px; padding: 15px; overflow: hidden; border: 1px solid #dce4ed; border-radius: 14px; background: #f8fafc url("./assets/contact-optics-v1.png") right center / auto 100% no-repeat; }
.home-contact-card::before { position: absolute; z-index: -1; inset: 0; content: ""; background: linear-gradient(90deg, rgba(248,250,252,.98) 0%, rgba(248,250,252,.96) 56%, rgba(248,250,252,.68) 100%); }
.home-deepo-link { display: grid; grid-template-columns: 34px minmax(0, 1fr) 16px; gap: 9px; align-items: center; margin-top: 12px; padding: 9px; color: var(--ink); border: 1px solid #d7e1f0; border-radius: 11px; background: #fff; text-decoration: none; }
.home-deepo-link:hover { border-color: #bdd0ea; background: #f7faff; }
.home-deepo-link__icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 9px; color: #3454a4; background: #edf2ff; }
.home-deepo-link__icon .ui-icon { width: 18px; height: 18px; }
.home-deepo-link__copy { min-width: 0; display: grid; gap: 1px; }
.home-deepo-link small { color: #7b89a1; font-family: var(--font-num); font-size: 8px; font-weight: 800; letter-spacing: .08em; line-height: 1.2; }
.home-deepo-link strong { display: block; color: #284780; font-size: 12px; font-weight: 800; line-height: 1.3; }
.home-deepo-link em { overflow: hidden; color: #6d7c94; font-size: 10px; font-style: normal; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.home-deepo-link > .ui-icon { color: var(--pink-deep); }
.home-contact-card__heading { display: grid; gap: 3px; }
.home-contact-card__heading p { margin: 0; color: var(--pink-deep); font-size: 11px; font-weight: 700; letter-spacing: .07em; }
.home-contact-card__heading h2 { margin: 0; color: var(--ink); font-size: 19px; font-weight: 700; letter-spacing: -.03em; }
.home-contact-card__heading span { color: #64738a; font-size: 12px; }
.home-contact-card__codes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin-top: 13px; }
.home-contact-code { min-width: 0; display: grid; justify-items: center; gap: 3px; padding: 9px 7px 8px; color: var(--ink); border: 1px solid #dce4ed; border-radius: 11px; background: #fff; text-align: center; text-decoration: none; }
.home-contact-code:hover { border-color: #c5d4e7; background: #fff; }
.home-contact-code canvas, .home-contact-code img { display: block; width: 88px; height: 88px; border-radius: 6px; background: #fff; image-rendering: auto; }
.home-contact-code strong { max-width: 100%; overflow: hidden; color: #30445f; font-size: 11px; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.home-contact-code small { color: #718096; font-size: 10px; line-height: 1.3; }
.home-contact-brief { display: grid; align-content: center; gap: 6px; min-width: 0; padding: 10px; color: #64738a; border: 1px solid #dce4ed; border-radius: 11px; background: #fff; font-size: 11px; line-height: 1.42; }
.home-contact-brief strong { color: #30445f; font-size: 12px; }
.home-contact-brief span { position: relative; padding-left: 9px; }
.home-contact-brief span::before { position: absolute; top: .5em; left: 0; width: 4px; height: 4px; content: ""; border-radius: 50%; background: #7c70b7; }
.home-contact-email { min-height: 44px; display: grid; grid-template-columns: minmax(0, 1fr) auto 15px; gap: 6px; align-items: center; margin-top: 10px; padding: 10px 2px 0; color: #52647d; border-top: 1px solid #e0e6ee; font-size: 11px; text-decoration: none; }
.home-contact-email strong { color: #31509a; font-size: 11px; font-weight: 700; }
.home-contact-email .ui-icon { color: var(--pink-deep); justify-self: end; }
.home-footer-images { display: grid; gap: 12px; margin-top: 20px; }
.home-footer-image-link { display: block; color: inherit; text-decoration: none; }
.home-footer-image { display: block; width: 100%; height: auto; border: 1px solid #dfe6ee; border-radius: 12px; background: #fff; object-fit: contain; box-shadow: 0 8px 18px rgba(25, 60, 122, .05); }
.home-contact-email--simple { margin-top: 0; padding: 9px 10px; border: 1px solid #e0e6ee; border-radius: 10px; background: #fff; }
.fatal-panel { position: relative; display: grid; gap: 7px; margin-top: 15px; padding: 13px; color: #772359; border: 1px solid #f0b8d3; border-radius: 14px; background: #fff5fa; font-size: 12px; line-height: 1.45; }
.fatal-panel span { color: #92647d; }
.fatal-panel button { justify-self: start; min-height: 44px; padding: 0 12px; color: #7e2161; background: #fff; border: 1px solid #edb1d0; border-radius: 9px; font-size: 11px; font-weight: 800; }

.step-heading { margin: 0 0 20px; }
.step-heading--compact { margin-bottom: 14px; }
.step-count { margin: 0 0 9px; color: var(--pink-deep); font-family: var(--font-num); font-size: 11px; font-weight: 700; letter-spacing: .12em; }
.step-heading h2 { margin: 0; color: var(--ink); font-size: 24px; font-weight: 700; line-height: 1.2; letter-spacing: -.04em; }
.step-heading p:last-child { margin: 9px 0 0; color: var(--ink-soft); font-size: 14px; line-height: 1.62; }
.screen[data-screen="directions"] .screen-scroll, .screen[data-screen="products"] .screen-scroll, .screen[data-screen="search"] .screen-scroll { position: relative; isolation: isolate; }
.screen[data-screen="directions"] .screen-scroll > :not(.page-stage-art), .screen[data-screen="products"] .screen-scroll > :not(.page-stage-art), .screen[data-screen="search"] .screen-scroll > :not(.page-stage-art) { position: relative; z-index: 1; }
.page-stage-art { position: absolute; z-index: 0; top: 0; right: -20px; width: calc(100% + 40px); height: 176px; object-fit: cover; pointer-events: none; -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 64%, transparent 100%); mask-image: linear-gradient(180deg, #000 0%, #000 64%, transparent 100%); }
.page-stage-art--directions { object-position: right top; opacity: .76; }
.page-stage-art--products { object-position: left top; opacity: .46; transform: scaleX(-1); }
.page-stage-art--search { object-position: right top; opacity: .78; }

.interest-grid-v2 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.interest-button { position: relative; min-height: 72px; padding: 10px; text-align: left; display: flex; flex-direction: column; justify-content: space-between; border: 1px solid #dce4ed; background: #fff; color: var(--ink); border-radius: 12px; overflow: hidden; }
.interest-button::after { display: none; }
.interest-button:hover { border-color: #bfcde0; }
.interest-button.is-selected { color: var(--ink); border: 2px solid var(--blue); background: #f8fbff; box-shadow: inset 3px 0 0 var(--pink); }
.interest-button__icon { position: relative; z-index: 1; width: 25px; height: 25px; display: grid; place-items: center; border-radius: 7px; background: var(--tile-soft, #eef1ff); color: var(--tile-color, #3153d4); }
.interest-button__icon .ui-icon { width: 15px; height: 15px; }
.interest-button.is-selected .interest-button__icon { background: var(--tile-soft, #eef1ff); color: var(--tile-color, #3153d4); }
.interest-button__name { position: relative; z-index: 1; font-size: 12px; font-weight: 700; letter-spacing: -.04em; line-height: 1.25; }
.live-match-card { display: flex; gap: 7px; flex-direction: column; background: #f7f9fc; border-left: 3px solid var(--blue); padding: 12px 13px; border-radius: 0 10px 10px 0; }
.live-match-card strong { font-size: 13px; font-weight: 700; }
.live-match-card span { color: #5c6d84; font-size: 12px; line-height: 1.5; }
.direction-data-note { margin: 9px 2px 0; color: #718099; font-size: 10px; line-height: 1.55; }

.map-card { border: 1px solid #d4deeb; border-radius: 10px; background: #f8fafc; overflow: hidden; box-shadow: none; }
.map-card--select, .map-card--route, .map-card--overview { background: #f9fbfe url("./assets/hall-stage-v2.png") center / cover no-repeat; }
.map-card--select { padding-top: 0; }
.map-card--route { padding: 7px 0; }
.map-card__toolbar { display: flex; justify-content: space-between; gap: 8px; align-items: center; min-height: 47px; padding: 7px 9px 6px 11px; border-bottom: 1px solid #e3e8f1; background: rgba(255,255,255,.84); }
.map-legend { display: flex; min-width: 0; align-items: center; flex-wrap: wrap; gap: 4px 7px; color: #617087; font-size: 10px; font-weight: 650; }
.legend-dot { width: 8px; height: 8px; border: 1px solid #a6b3c4; border-radius: 50%; background: #fff; }
.legend-dot--match { border-color: #6387ca; background: #dceaff; }
.legend-dot--selected { border-color: var(--pink-deep); background: var(--pink); }
.map-viewport-v2 { width: 100%; overflow: hidden; overscroll-behavior: contain; scrollbar-width: none; background: rgba(255,255,255,.68); touch-action: manipulation; }
.map-viewport-v2::-webkit-scrollbar { display: none; }
.map-viewport-v2 > svg { display: block; box-sizing: border-box; width: 100%; min-width: 0; max-width: 100%; height: auto; padding: 5px 8px 10px; }
.map-viewport-v2 .hall { cursor: pointer; }
.map-viewport-v2 .hall .hall-body { transition: fill .14s ease, stroke .14s ease; }
.map-viewport-v2 .hall.is-match .hall-body { fill: #e2edff; stroke: #6186cf; stroke-width: 3; }
.map-viewport-v2 .hall.is-selected .hall-body { fill: #fde5ef; stroke: var(--pink-deep); stroke-width: 4; }
.map-viewport-v2 .hall.is-unavailable { cursor: not-allowed; opacity: .62; }
.map-viewport-v2 .hall.is-unavailable .hall-body { fill: #eef1f5; stroke: #aeb8c6; stroke-dasharray: 8 5; }
.map-viewport-v2 .v2-match-count { font-family: var(--font-num); font-size: 15px; font-weight: 700; fill: #3153a7; text-anchor: middle; pointer-events: none; }
.map-viewport-v2 .is-selected .v2-match-count { fill: var(--pink-deep); }
.map-viewport-v2 .v2-marker circle { fill: var(--pink); stroke: #fff; stroke-width: 4; filter: drop-shadow(0 2px 3px rgba(120, 24, 87, .2)); }
.map-viewport-v2 .v2-marker text { fill: #fff; font-family: var(--font-num); font-size: 16px; font-weight: 700; text-anchor: middle; dominant-baseline: central; }
.map-viewport-v2 .v2-route { fill: none; stroke: var(--blue); stroke-width: 6; stroke-dasharray: 11 8; stroke-linecap: round; stroke-linejoin: round; opacity: .9; pointer-events: none; }
.map-viewport-v2 .v2-entrance-dot { fill: var(--navy); stroke: #fff; stroke-width: 4; }
.map-viewport-v2 .v2-entrance-label { fill: var(--navy); font-size: 15px; font-weight: 700; text-anchor: middle; }
.map-fit-hint { display: flex; align-items: center; gap: 5px; margin: 8px 2px 0; color: #64738a; font-size: 11px; font-weight: 650; line-height: 1.45; }
.map-fit-hint .ui-icon { width: 18px; height: 18px; flex: 0 0 auto; padding: 2px; color: var(--blue); border-radius: 50%; background: #eaf1ff; }
.overview-route-tip { display: flex; align-items: center; gap: 5px; margin: 9px 2px 0; color: #64738a; font-size: 12px; font-weight: 650; line-height: 1.45; }
.overview-route-tip .ui-icon { width: 18px; height: 18px; padding: 2px; color: var(--blue); border-radius: 50%; background: #eaf1ff; }
.hall-selection-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: center; margin: 13px 1px 8px; }
.hall-selection-summary { min-width: 0; color: var(--ink); font-size: 13px; font-weight: 700; line-height: 1.5; }
.hall-selection-summary strong { color: var(--pink-deep); }
.inline-hall-action { min-height: 44px; padding: 0 10px; color: #455f9d; border: 1px solid #d7e1f0; border-radius: 9px; background: #f7faff; font-size: 10px; font-weight: 800; white-space: nowrap; }
.inline-hall-action[disabled] { display: none; }
.selected-hall-rail { display: flex; gap: 7px; overflow-x: auto; padding: 0 1px 9px; scrollbar-width: none; }
.selected-hall-rail:empty::after { content: "点地图上的相关展馆，把它加入路线。"; color: #8a95aa; font-size: 12px; padding: 3px 0; }
.selected-hall-rail::-webkit-scrollbar { display: none; }
.hall-chip { flex: 0 0 auto; display: inline-flex; align-items: center; min-height: 44px; border: 1px solid #efb5d0; color: var(--pink-deep); background: #fff5f9; border-radius: 999px; padding: 4px 4px 4px 11px; font-size: 11px; font-weight: 700; }
.hall-chip button { width: 44px; min-height: 44px; display: grid; place-items: center; padding: 0; background: transparent; border: 0; color: inherit; }
.hall-chip button .ui-icon { width: 15px; height: 15px; }
.hall-adjust-details { margin-top: 4px; border: 1px solid #dbe4ef; border-radius: 11px; background: rgba(255,255,255,.76); }
.hall-adjust-details summary { min-height: 44px; display: flex; align-items: center; padding: 0 12px; color: #3a5685; cursor: pointer; font-size: 11px; font-weight: 800; list-style: none; }
.hall-adjust-details summary::-webkit-details-marker { display: none; }
.hall-adjust-details summary::after { content: "+"; margin-left: auto; color: var(--pink-deep); font-size: 18px; font-weight: 500; }
.hall-adjust-details[open] summary { border-bottom: 1px solid #e4eaf2; }
.hall-adjust-details[open] summary::after { content: "−"; }
.hall-adjust-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; padding: 10px; }
.hall-adjust-button { min-height: 48px; display: flex; align-items: baseline; justify-content: center; gap: 3px; padding: 0 4px; color: #60708a; border: 1px solid #d7e1ed; border-radius: 9px; background: #fff; }
.hall-adjust-button strong { color: #425c88; font-family: var(--font-num); font-size: 16px; line-height: 1; }
.hall-adjust-button small { color: #8090a7; font-size: 9px; font-weight: 700; }
.hall-adjust-button.is-match { border-color: #b9cdec; background: #f4f8ff; }
.hall-adjust-button.is-match small { color: #5275b4; }
.hall-adjust-button.is-selected { color: var(--pink-deep); border-color: #e8a6c7; background: #fff0f6; }
.hall-adjust-button.is-selected strong, .hall-adjust-button.is-selected small { color: var(--pink-deep); }
.hall-adjust-button:disabled { color: #9aa5b5; border-style: dashed; background: #f5f7fa; }
.map-disclaimer, .route-disclaimer { color: #627187; font-size: 12px; line-height: 1.55; margin: 11px 3px 0; }
.route-data-note { margin: 7px 3px 0; color: #7a879c; font-size: 10px; line-height: 1.52; }

.entrance-pills { display: flex; gap: 7px; margin: 0 0 12px; overflow-x: auto; scrollbar-width: none; }
.entrance-pills::-webkit-scrollbar { display: none; }
.entrance-pill { flex: 0 0 auto; min-height: 44px; padding: 0 14px; border-radius: 999px; color: #52647e; border: 1px solid #dbe3ed; background: #fff; font-size: 12px; font-weight: 700; }
.entrance-pill.is-selected { color: #fff; border-color: var(--blue); background: var(--blue); }
.route-order-strip { display: grid; gap: 2px; margin: 0 0 10px; padding: 9px 11px; color: #516384; border: 1px solid #dbe5f1; border-left: 3px solid var(--pink); border-radius: 0 10px 10px 0; background: #f7faff; font-size: 11px; font-weight: 750; line-height: 1.45; }
.route-order-strip strong { color: var(--ink); font-family: var(--font-ui); }
.route-order-strip span { overflow: hidden; color: #516384; font-family: var(--font-num); text-overflow: ellipsis; white-space: nowrap; }
.route-order-strip em { color: var(--pink-deep); font-family: var(--font-num); font-size: 10px; font-style: normal; font-weight: 850; letter-spacing: .04em; }
.route-list-v2 { display: grid; gap: 7px; margin: 14px 0 0; padding-left: 0; list-style: none; }
.route-plan-note { display: grid; gap: 4px; margin: 11px 0 0; padding: 11px 13px; color: #52657f; border: 1px solid #dce5ef; border-left: 3px solid var(--pink); border-radius: 0 11px 11px 0; background: #f8faff; font-size: 12px; line-height: 1.52; }
.route-plan-note strong { color: var(--ink); font-size: 13px; font-weight: 700; }
.route-list-v2 li { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; gap: 8px; align-items: center; min-height: 60px; border: 1px solid #dfe6ee; border-radius: 12px; padding: 7px 10px; background: #fff; }
.route-list-v2__index { display: grid; place-items: center; color: #fff; background: var(--blue); width: 27px; height: 27px; border-radius: 8px; font-family: var(--font-num); font-size: 10px; font-weight: 700; }
.route-list-v2 strong { display: block; font-size: 13px; font-weight: 700; }
.route-list-v2 small { display: block; color: #68778d; margin-top: 3px; font-size: 12px; }
.route-list-v2 button { min-height: 44px; color: var(--blue); background: #edf3ff; border: 0; border-radius: 8px; padding: 6px 10px; font-size: 11px; font-weight: 700; }

.poster-preview-shell { overflow: hidden; border: 1px solid #e6e8f2; border-radius: 17px; background: #f3f4fb; box-shadow: var(--shadow); }
#mobile-poster-canvas { display: block; width: 100%; height: auto; background: #fff; }
.poster-name-toggle { width: 100%; min-height: 48px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; margin-top: 10px; padding: 8px 12px; color: var(--ink); border: 1px solid #dbe4ef; border-radius: 10px; background: #fff; text-align: left; }
.poster-name-toggle span { min-width: 0; font-size: 13px; font-weight: 850; line-height: 1.25; }
.poster-name-toggle strong { position: relative; min-width: 86px; padding: 6px 8px 6px 27px; color: #6a7890; border-radius: 999px; background: #eef3f8; font-size: 10px; line-height: 1.2; text-align: center; white-space: nowrap; }
.poster-name-toggle strong::before { content: ""; position: absolute; top: 50%; left: 8px; width: 14px; height: 14px; border-radius: 50%; background: #94a3b8; transform: translateY(-50%); }
.poster-name-toggle.is-active { color: #fff; border-color: var(--blue); background: var(--blue); }
.poster-name-toggle.is-active strong { color: #fff; background: rgba(255,255,255,.18); }
.poster-name-toggle.is-active strong::before { background: var(--pink); box-shadow: 0 0 0 2px rgba(255,255,255,.55); }
.poster-note { color: #78849d; font-size: 11px; line-height: 1.55; margin: 10px 2px 0; }
.wanted-plan { margin-top: 17px; padding-top: 16px; border-top: 1px solid #e5eaf2; }
.wanted-plan__head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 12px; align-items: end; margin: 0 1px 10px; }
.wanted-plan__head p { grid-column: 1 / -1; margin: 0; color: var(--pink-deep); font-family: var(--font-num); font-size: 10px; font-weight: 850; letter-spacing: .1em; }
.wanted-plan__head h3 { margin: 0; color: var(--ink); font-size: 17px; letter-spacing: -.035em; }
.wanted-plan__head span { color: #71809a; font-size: 10px; font-weight: 750; text-align: right; }
.wanted-plan__empty { display: grid; gap: 5px; padding: 14px; color: #72809a; border: 1px dashed #d3dce8; border-radius: 13px; background: #fafbfe; font-size: 11px; line-height: 1.6; }
.wanted-plan__empty strong { color: #415372; font-size: 12px; }
.wanted-plan__group { margin-top: 9px; padding: 12px; border: 1px solid #e0e7f0; border-radius: 14px; background: #fff; }
.wanted-plan__group--pending { border-style: dashed; background: #fafbfe; }
.wanted-plan__group--themed { position: relative; isolation: isolate; overflow: hidden; border-color: var(--hall-line, #d8e1ef); background: linear-gradient(122deg, rgba(255,255,255,.93) 0%, rgba(255,255,255,.70) 50%, rgba(255,255,255,.28) 100%), var(--hall-soft, #f4f7ff); }
.wanted-plan__group--themed::before { content: ""; position: absolute; z-index: 0; inset: 0; opacity: .96; pointer-events: none; background-image: linear-gradient(112deg, rgba(255,255,255,.12), rgba(255,255,255,.01)), var(--hall-art, none), var(--hall-pattern, none); background-position: center, var(--hall-art-position, center), center; background-size: cover, cover, auto; background-repeat: no-repeat, no-repeat, repeat; }
.wanted-plan__group--themed::after { content: ""; position: absolute; z-index: 0; top: -36px; right: -30px; width: 162px; height: 162px; border: 1px solid var(--hall-line, #cbd6e8); border-radius: 50%; opacity: .72; pointer-events: none; }
/* 这些无字原创图只表示展区气质；馆号、企业、展位和数量仍由页面实时绘制。 */
.wanted-plan__group--themed[data-hall-theme="optics"] { --hall-art: url("./assets/hall-theme-precision-optics-v1.png"); --hall-art-position: left center; --hall-pattern: radial-gradient(circle at 86% 24%, transparent 0 19px, rgba(36,105,196,.20) 20px 21px, transparent 22px 37px, rgba(36,105,196,.15) 38px 39px, transparent 40px 57px), repeating-linear-gradient(116deg, transparent 0 18px, rgba(36,105,196,.09) 19px 20px, transparent 21px 37px); }
.wanted-plan__group--themed[data-hall-theme="camera"] { --hall-art: url("./assets/hall-theme-camera-machine-vision-v2.png"); --hall-art-position: right center; --hall-pattern: radial-gradient(ellipse at 88% 18%, rgba(57,102,209,.16) 0 13%, transparent 14%), repeating-linear-gradient(90deg, transparent 0 16px, rgba(57,102,209,.10) 17px 18px, transparent 19px 34px), linear-gradient(145deg, transparent 46%, rgba(57,102,209,.12) 47% 48%, transparent 49%); }
.wanted-plan__group--themed[data-hall-theme="precision"] { --hall-art: url("./assets/hall-theme-precision-optics-v1.png"); --hall-art-position: center; --hall-pattern: repeating-linear-gradient(102deg, transparent 0 10px, rgba(33,135,170,.11) 11px 12px, transparent 13px 25px), radial-gradient(circle at 82% 24%, rgba(33,135,170,.15) 0 9%, transparent 10%); }
.wanted-plan__group--themed[data-hall-theme="coating"] { --hall-art: url("./assets/hall-theme-optical-coating-v2.png"); --hall-art-position: right bottom; --hall-pattern: repeating-linear-gradient(169deg, transparent 0 10px, rgba(124,75,205,.12) 11px 12px, transparent 13px 24px), linear-gradient(135deg, transparent 48%, rgba(124,75,205,.15) 49% 51%, transparent 52%); }
.wanted-plan__group--themed[data-hall-theme="laser"] { --hall-art: url("./assets/hall-theme-laser-manufacturing-v1.png"); --hall-art-position: center; --hall-pattern: linear-gradient(120deg, transparent 25%, rgba(220,84,77,.18) 26% 27%, transparent 28% 48%, rgba(220,84,77,.12) 49% 50%, transparent 51%), repeating-linear-gradient(0deg, transparent 0 20px, rgba(220,84,77,.07) 21px 22px, transparent 23px 40px); }
.wanted-plan__group--themed[data-hall-theme="sensing"] { --hall-art: url("./assets/hall-theme-sensing-lidar-v2.png"); --hall-art-position: left bottom; --hall-pattern: radial-gradient(circle at 87% 24%, transparent 0 10px, rgba(32,141,118,.17) 11px 12px, transparent 13px 26px, rgba(32,141,118,.12) 27px 28px, transparent 29px 43px), conic-gradient(from 218deg at 87% 24%, transparent 0 14%, rgba(32,141,118,.11) 14% 15%, transparent 15% 30%, rgba(32,141,118,.09) 30% 31%, transparent 31% 100%); }
.wanted-plan__group--themed[data-hall-theme="infrared"] { --hall-art: url("./assets/hall-theme-infrared-special-imaging-v2.png"); --hall-art-position: right top; --hall-pattern: radial-gradient(ellipse at 86% 22%, rgba(211,56,135,.17) 0 7%, transparent 8% 15%, rgba(211,56,135,.11) 16% 17%, transparent 18%), repeating-radial-gradient(ellipse at 86% 22%, transparent 0 19px, rgba(211,56,135,.09) 20px 21px, transparent 22px 39px); }
.wanted-plan__group--themed[data-hall-theme="communication"] { --hall-art: url("./assets/hall-theme-optical-communication-v1.png"); --hall-art-position: center; --hall-pattern: linear-gradient(90deg, transparent 0 67%, rgba(37,94,233,.11) 67% 68%, transparent 68% 100%), repeating-linear-gradient(0deg, transparent 0 13px, rgba(37,94,233,.09) 14px 15px, transparent 16px 28px), repeating-linear-gradient(90deg, transparent 0 20px, rgba(37,94,233,.06) 21px 22px, transparent 23px 42px); }
.wanted-plan__group--themed[data-hall-theme="future"] { --hall-art: url("./assets/hall-theme-future-innovation-v2.png"); --hall-art-position: right center; --hall-pattern: radial-gradient(circle at 86% 24%, rgba(106,116,151,.13) 0 9%, transparent 10%), linear-gradient(135deg, transparent 47%, rgba(106,116,151,.10) 48% 49%, transparent 50%); }

@supports (background-image: image-set(url("./assets/hall-theme-precision-optics-v1.webp") type("image/webp"))) {
  .wanted-plan__group--themed[data-hall-theme="optics"], .wanted-plan__group--themed[data-hall-theme="precision"] { --hall-art: image-set(url("./assets/hall-theme-precision-optics-v1.webp") type("image/webp"), url("./assets/hall-theme-precision-optics-v1.png") type("image/png")); }
  .wanted-plan__group--themed[data-hall-theme="camera"] { --hall-art: image-set(url("./assets/hall-theme-camera-machine-vision-v2.webp") type("image/webp"), url("./assets/hall-theme-camera-machine-vision-v2.png") type("image/png")); }
  .wanted-plan__group--themed[data-hall-theme="coating"] { --hall-art: image-set(url("./assets/hall-theme-optical-coating-v2.webp") type("image/webp"), url("./assets/hall-theme-optical-coating-v2.png") type("image/png")); }
  .wanted-plan__group--themed[data-hall-theme="sensing"] { --hall-art: image-set(url("./assets/hall-theme-sensing-lidar-v2.webp") type("image/webp"), url("./assets/hall-theme-sensing-lidar-v2.png") type("image/png")); }
  .wanted-plan__group--themed[data-hall-theme="infrared"] { --hall-art: image-set(url("./assets/hall-theme-infrared-special-imaging-v2.webp") type("image/webp"), url("./assets/hall-theme-infrared-special-imaging-v2.png") type("image/png")); }
  .wanted-plan__group--themed[data-hall-theme="future"] { --hall-art: image-set(url("./assets/hall-theme-future-innovation-v2.webp") type("image/webp"), url("./assets/hall-theme-future-innovation-v2.png") type("image/png")); }
  .wanted-plan__group--themed[data-hall-theme="laser"] { --hall-art: image-set(url("./assets/hall-theme-laser-manufacturing-v1.webp") type("image/webp"), url("./assets/hall-theme-laser-manufacturing-v1.png") type("image/png")); }
  .wanted-plan__group--themed[data-hall-theme="communication"] { --hall-art: image-set(url("./assets/hall-theme-optical-communication-v1.webp") type("image/webp"), url("./assets/hall-theme-optical-communication-v1.png") type("image/png")); }
}
.wanted-plan__group--themed .wanted-plan__group-head { position: relative; z-index: 1; margin: 0 0 9px; padding: 8px 9px; border: 1px solid rgba(255,255,255,.84); border-radius: 10px; background: rgba(255,255,255,.84); box-shadow: 0 3px 12px rgba(30,54,94,.05); backdrop-filter: blur(8px); }
.wanted-plan__group--themed .wanted-plan__group-head > strong { color: var(--hall-accent, var(--pink-deep)); }
.wanted-plan__group--themed ul { position: relative; z-index: 1; }
.wanted-plan__group--themed li { min-height: 48px; padding: 0; border: 1px solid rgba(255,255,255,.82); border-radius: 10px; background: rgba(255,255,255,.84); box-shadow: 0 2px 8px rgba(30,54,94,.035); }
.wanted-plan__group--themed .company-mini__open { width: 100%; min-height: 48px; padding: 8px 10px; border-radius: 10px; background: transparent; }
.wanted-plan__group--themed .company-mini__open:hover { background: rgba(255,255,255,.55); }
.wanted-plan__group--themed .hall-sheet__more, .wanted-plan__group--themed .wanted-plan__empty { position: relative; z-index: 1; margin: 8px 0 0; border-color: rgba(255,255,255,.8); background: rgba(255,255,255,.72); }
.wanted-plan__group-head { display: flex; align-items: start; justify-content: space-between; gap: 10px; margin: 0 0 9px; }
.wanted-plan__group-head h4 { margin: 0; color: var(--ink); font-size: 13px; }
.wanted-plan__group-head span { display: block; margin-top: 3px; color: #77849b; font-size: 10px; font-weight: 650; }
.wanted-plan__group-head > strong { flex: 0 0 auto; color: var(--pink-deep); font-family: var(--font-num); font-size: 12px; }
.wanted-plan__group ul { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.wanted-plan__group li { display: flex; align-items: center; justify-content: space-between; gap: 9px; min-height: 52px; padding-top: 8px; border-top: 1px solid #edf0f5; }
.wanted-plan__group li > div { min-width: 0; }
.wanted-plan__group li strong { display: block; overflow: hidden; color: #314463; font-size: 12px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.wanted-plan__group li small, .wanted-plan__source { display: block; overflow: hidden; margin-top: 3px; color: #75829a; font-size: 10px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.plan-list-disclosure { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 9px; align-items: center; margin-top: 8px; padding: 9px 10px; color: #64738f; border: 1px solid rgba(255,255,255,.9); border-radius: 10px; background: rgba(255,255,255,.88); font-size: 10px; line-height: 1.45; }
.plan-list-disclosure button { min-height: 44px; max-width: 156px; padding: 5px 9px; color: #244d9f; border: 1px solid #cbd9f0; border-radius: 8px; background: #fff; font-size: 10px; font-weight: 850; line-height: 1.28; text-align: center; }
.plan-list-disclosure.is-expanded { grid-template-columns: minmax(0, 1fr) auto; color: #556985; background: rgba(255,255,255,.76); }
.plan-list-disclosure.is-expanded button { color: #65728b; border-color: #dbe2ec; background: #f8fafc; }
.wanted-plan__source { color: #4865a2; text-decoration: none; }
.wanted-plan__source[href] { display: inline-flex; align-items: center; min-height: 44px; margin: -12px 0 -12px -6px; padding: 0 6px; }
.wanted-plan__source:hover { text-decoration: underline; }

.official-pdf-empty { margin-top: 10px; min-height: 310px; padding: 36px 24px; text-align: center; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1px dashed #cbd7e4; border-radius: 14px; background: #f8fafc; }
.official-pdf-empty__icon { width: 56px; height: 56px; display: grid; place-items: center; color: #fff; background: var(--blue); border-radius: 13px; box-shadow: 0 9px 18px rgba(31, 77, 189, .18); }
.official-pdf-empty__icon .ui-icon { width: 25px; height: 25px; }
.official-pdf-empty h3 { margin: 17px 0 8px; font-size: 17px; letter-spacing: -.04em; }
.official-pdf-empty p { max-width: 310px; color: #72809b; font-size: 12px; line-height: 1.7; margin: 0; }
#official-pdf-frame { width: 100%; min-height: 65dvh; border: 1px solid var(--line); border-radius: 15px; background: #fff; }
.conference-scroll { padding-bottom: 30px; }
.conference-venue-card { display: grid; gap: 6px; margin: 12px 0; padding: 14px; border: 1px solid #d9e2f0; border-radius: 15px; background: linear-gradient(128deg, #f8fbff, #f5f6fd); box-shadow: 0 7px 20px rgba(32, 56, 114, .045); }
.conference-venue-card__label { display: inline-flex; align-items: center; gap: 5px; color: var(--pink-deep); font-family: var(--font-num); font-size: 10px; font-weight: 850; letter-spacing: .08em; }
.conference-venue-card strong { color: var(--ink); font-size: 14px; letter-spacing: -.025em; }
.conference-venue-card > span { color: #697892; font-size: 10px; line-height: 1.55; }
.conference-venue-card a, .conference-source-note a { display: inline-flex; align-items: center; gap: 4px; min-height: 36px; width: fit-content; margin-top: 2px; color: #325bb8; font-size: 11px; font-weight: 850; text-decoration: none; }
.conference-venue-card a:hover, .conference-source-note a:hover, .conference-card__actions a:hover { text-decoration: underline; }
.conference-status { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 8px; align-items: baseline; margin: 13px 0 10px; padding: 10px 11px; color: #687892; border: 1px solid #e1e6ef; border-radius: 12px; background: #fbfcff; font-size: 10px; line-height: 1.5; }
.conference-status strong { color: #33496d; font-size: 11px; }
.conference-status.is-error { grid-template-columns: 1fr; color: #9b4d66; border-color: #f0cad7; background: #fff8fa; }
.conference-status.is-error button { width: fit-content; min-height: 38px; padding: 0 10px; color: #9d2c5d; border: 1px solid #e9afc5; border-radius: 8px; background: #fff; font-size: 10px; font-weight: 850; }
.conference-filter-panel { margin: 10px 0 12px; padding: 12px; border: 1px solid #dce4ee; border-radius: 14px; background: #fff; }
.conference-filter-panel__head { display: flex; align-items: start; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.conference-filter-panel__head strong { display: block; color: #2a416c; font-size: 12px; }
.conference-filter-panel__head span { display: block; max-width: 215px; margin-top: 3px; color: #7d8aa2; font-size: 9px; line-height: 1.48; }
.conference-saved-toggle { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 5px; min-height: 38px; padding: 0 9px; color: #53647f; border: 1px solid #d8e1ed; border-radius: 9px; background: #f9fbfe; font-size: 10px; font-weight: 800; white-space: nowrap; }
.conference-saved-toggle b { display: grid; min-width: 17px; height: 17px; place-items: center; color: #fff; border-radius: 99px; background: #7386a8; font-family: var(--font-num); font-size: 9px; }
.conference-saved-toggle.is-active { color: #a42666; border-color: #efb3d0; background: #fff3f8; }
.conference-saved-toggle.is-active b { background: var(--pink-deep); }
.conference-filter-group { display: grid; gap: 6px; margin-top: 10px; }
.conference-filter-group > span { color: #7a879d; font-size: 10px; font-weight: 800; }
.conference-filter-rail { display: grid; grid-template-columns: repeat(auto-fit, minmax(88px, 1fr)); gap: 6px; overflow: visible; padding: 1px 0 3px; scrollbar-width: none; }
.conference-filter-rail::-webkit-scrollbar { display: none; }
.conference-filter-rail--wrap { flex-wrap: wrap; overflow: visible; }
.conference-filter-chip { min-height: 38px; padding: 4px 9px; color: #52637f; border: 1px solid #dce4ed; border-radius: 999px; background: #fff; font-size: 10px; font-weight: 750; line-height: 1.25; }
.conference-filter-chip.is-active { color: #2352b2; border-color: #9db8ee; background: #edf3ff; }
.conference-venue-filter { margin-top: 11px; padding-top: 10px; border-top: 1px solid #edf0f5; }
.conference-venue-filter summary { display: flex; align-items: center; min-height: 34px; color: #4d6182; cursor: pointer; font-size: 10px; font-weight: 850; list-style: none; }
.conference-venue-filter summary::-webkit-details-marker { display: none; }
.conference-venue-filter summary::after { content: "+"; margin-left: auto; color: var(--pink-deep); font-size: 16px; font-weight: 500; }
.conference-venue-filter[open] summary::after { content: "−"; }
.conference-venue-filter .conference-filter-rail { margin-top: 7px; }
.conference-summary { display: flex; align-items: baseline; justify-content: space-between; gap: 9px; margin: 10px 1px; color: #73819a; font-size: 10px; line-height: 1.45; }
.conference-summary strong { color: #263f70; font-family: var(--font-num); font-size: 13px; }
.conference-summary span { text-align: right; }
.conference-list { display: grid; gap: 8px; }
.conference-card { padding: 12px; border: 1px solid #dfe6ef; border-radius: 13px; background: #fff; box-shadow: 0 3px 12px rgba(28, 45, 96, .035); }
.conference-card.is-saved { border-color: #e9acd0; background: linear-gradient(132deg, #fff 0%, #fff8fb 100%); }
.conference-card__top { display: flex; align-items: center; justify-content: space-between; gap: 7px; }
.conference-card time { color: #3558a4; font-family: var(--font-num); font-size: 10px; font-weight: 850; letter-spacing: .025em; }
.conference-access { flex: 0 0 auto; padding: 3px 6px; color: #46608c; border-radius: 6px; background: #edf2fa; font-size: 9px; font-weight: 800; white-space: nowrap; }
.conference-access.is-paid { color: #916600; background: #fff6dc; }
.conference-access.is-invite { color: #9b3d5c; background: #fff0f4; }
.conference-card h3 { margin: 8px 0 7px; color: #24395f; font-size: 13px; line-height: 1.42; letter-spacing: -.02em; }
.conference-card__venue { display: flex; align-items: center; gap: 4px; margin: 0; color: #536984; font-size: 10px; font-weight: 750; line-height: 1.4; }
.conference-card__venue .ui-icon { flex: 0 0 auto; color: #d03a86; }
.conference-card__tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 9px; }
.conference-card__tags span { padding: 3px 6px; color: #506584; border: 1px solid #e1e6ef; border-radius: 6px; background: #f8fafc; font-size: 9px; line-height: 1.3; }
.conference-card__tags span.is-language { color: #78628e; border-color: #ebe5f1; background: #fbf9fd; }
.conference-card__actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 10px; padding-top: 9px; border-top: 1px solid #eef1f5; }
.conference-card__actions a { display: inline-flex; align-items: center; gap: 3px; min-height: 38px; color: #44619b; font-size: 10px; font-weight: 800; text-decoration: none; }
.conference-card__actions button { min-height: 44px; padding: 0 9px; color: #a02865; border: 1px solid #e9accb; border-radius: 8px; background: #fff6fa; font-size: 10px; font-weight: 850; white-space: nowrap; }
.conference-card.is-saved .conference-card__actions button { color: #fff; border-color: #bd2367; background: var(--pink-deep); }
.conference-empty { display: grid; gap: 5px; padding: 21px 15px; text-align: center; color: #7a879d; border: 1px dashed #d5deea; border-radius: 13px; background: #fbfcfe; font-size: 11px; line-height: 1.55; }
.conference-empty strong { color: #435573; font-size: 12px; }
.conference-loading { display: grid; gap: 8px; padding: 4px 0; }
.conference-loading span { display: block; height: 72px; border-radius: 13px; background: linear-gradient(90deg, #f2f5fa 25%, #fafcff 37%, #f2f5fa 63%); background-size: 400% 100%; animation: conference-loading 1.25s ease infinite; }
.conference-source-note { display: grid; gap: 5px; margin: 15px 2px 0; color: #77849a; font-size: 10px; line-height: 1.6; }
.conference-source-note a { min-height: 32px; }
@keyframes conference-loading { 0% { background-position: 100% 0; } 100% { background-position: 0 0; } }
@media (prefers-reduced-motion: reduce) { .conference-loading span { animation: none; } }
.nonofficial-map-sheet { margin-top: 10px; padding: 14px; border: 1px solid #e2e5f2; border-radius: 18px; background: #f9faff; box-shadow: 0 9px 24px rgba(28, 39, 110, .05); }
.nonofficial-map-sheet__topline { display: flex; justify-content: space-between; gap: 10px; color: #7b86a1; font-size: 9px; font-weight: 850; letter-spacing: .06em; }
.nonofficial-map-sheet__topline span:last-child { color: #5a4ca2; text-align: right; }
.nonofficial-map-sheet h3 { margin: 7px 0 11px; color: var(--ink); font-size: 18px; letter-spacing: -.04em; }
.nonofficial-map-sheet > p { margin: 11px 1px 0; color: #73809b; font-size: 11px; font-weight: 650; line-height: 1.58; }
.nonofficial-hall-schematic { display: block; width: 100%; height: auto; padding: 11px; overflow: hidden; border: 1px solid #dde2ef; border-radius: 12px; background: linear-gradient(145deg, #fdfdff, #f2f6ff); }
.nonofficial-hall-schematic__corridor { fill: #e7edf8; stroke: #c7d3e8; stroke-width: 1.2; }
.nonofficial-hall-schematic__halls rect { fill: #fff; stroke: #5271b4; stroke-width: 1.3; }
.nonofficial-hall-schematic__halls text { fill: #284982; font-family: var(--font-num); font-size: 10px; font-weight: 850; text-anchor: middle; }
.nonofficial-hall-schematic__entry circle { fill: var(--pink); stroke: #fff; stroke-width: 2; }
.nonofficial-hall-schematic__entry text { fill: #5c6c87; font-family: var(--font-ui); font-size: 8px; font-weight: 760; text-anchor: middle; }
.nonofficial-map-action { width: 100%; min-height: 44px; display: flex; align-items: center; justify-content: space-between; margin-top: 12px; padding: 0 13px; color: var(--blue); border: 1px solid #d6e0ef; border-radius: 11px; background: #f7faff; font-size: 12px; font-weight: 850; }
.nonofficial-map-action .ui-icon { color: var(--pink-deep); }
.hall-theme-atlas { position: relative; isolation: isolate; overflow: hidden; margin-top: 14px; padding: 14px; border: 1px solid #d9e2f2; border-radius: 14px; background: linear-gradient(145deg, rgba(255,255,255,.96), rgba(246,249,255,.82)); }
.hall-theme-atlas::before { position: absolute; z-index: -1; inset: 0; content: ""; opacity: .58; background: linear-gradient(120deg, transparent 0 42%, rgba(48,91,188,.07) 43% 44%, transparent 45% 100%), repeating-linear-gradient(90deg, transparent 0 31px, rgba(48,91,188,.045) 32px 33px); pointer-events: none; }
.hall-theme-atlas__head p { margin: 0 0 4px; color: var(--pink-deep); font-family: var(--font-num); font-size: 9px; font-weight: 850; letter-spacing: .08em; }
.hall-theme-atlas__head h3 { margin: 0; color: var(--ink); font-size: 17px; letter-spacing: -.045em; }
.hall-theme-atlas__head > span { display: block; margin-top: 4px; color: #6c7b94; font-size: 11px; line-height: 1.5; }
.hall-theme-atlas__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin: 12px 0 0; padding: 0; list-style: none; }
.hall-theme-atlas__item { --atlas-accent: #3769ba; --atlas-soft: #edf5ff; display: grid; grid-template-columns: 31px minmax(0, 1fr); gap: 7px; align-items: center; min-height: 58px; padding: 8px; border: 1px solid rgba(255,255,255,.9); border-radius: 10px; background: rgba(255,255,255,.82); box-shadow: 0 3px 10px rgba(39,66,117,.04); }
.hall-theme-atlas__item b { display: grid; width: 31px; height: 31px; place-items: center; color: var(--atlas-accent); border-radius: 8px; background: var(--atlas-soft); font-family: var(--font-num); font-size: 11px; letter-spacing: -.04em; }
.hall-theme-atlas__item span { min-width: 0; }
.hall-theme-atlas__item strong { display: block; overflow: hidden; color: #253d6d; font-size: 10px; font-weight: 820; letter-spacing: -.035em; line-height: 1.28; }
.hall-theme-atlas__item small { display: block; overflow: hidden; margin-top: 3px; color: #71809b; font-size: 9px; font-weight: 650; line-height: 1.25; }
.hall-theme-atlas__item--laser { --atlas-accent: #d86b3a; --atlas-soft: #fff0e8; }
.hall-theme-atlas__item--sensing { --atlas-accent: #25816d; --atlas-soft: #e8f7f1; }
.hall-theme-atlas__item--infrared { --atlas-accent: #c53f82; --atlas-soft: #fff0f7; }
.hall-theme-atlas__item--communication { --atlas-accent: #315bd6; --atlas-soft: #edf2ff; }
.hall-theme-atlas__note { margin: 11px 1px 0; color: #697991; font-size: 10px; line-height: 1.58; }
.official-secondary-link { min-height: 44px; display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 12px; padding: 13px 1px; color: #4354a7; border-top: 1px solid #e5e8f4; border-bottom: 1px solid #e5e8f4; font-size: 12px; font-weight: 850; text-decoration: none; }
.official-secondary-link .ui-icon { color: var(--pink-deep); }
.source-details { color: #66738d; margin: 15px 0; font-size: 12px; line-height: 1.65; }
.source-details summary { font-weight: 800; color: var(--ink); cursor: pointer; }
.source-details p { margin: 9px 0 0; }

.search-scroll { padding-bottom: 30px; }
.company-search-form { position: relative; margin-top: 16px; }
.company-search-form__icon { position: absolute; z-index: 1; left: 15px; top: 50%; width: 19px; height: 19px; transform: translateY(-50%); color: #5469bb; pointer-events: none; }
.company-search-form input { width: 100%; min-height: 52px; padding: 0 46px 0 45px; color: var(--ink); border: 1px solid #d7e0ea; border-radius: 12px; outline: 0; background: #fbfcfe; font-size: 14px; font-weight: 600; box-shadow: inset 0 1px 0 rgba(255,255,255,.9); }
.company-search-form input::placeholder { color: #7d8ca1; font-weight: 500; }
.company-search-form input:focus { border-color: #7694ca; background: #fff; box-shadow: 0 0 0 4px rgba(31, 77, 189, .1); }
.company-search-form__clear { position: absolute; right: 4px; top: 50%; width: 44px; height: 44px; display: grid; place-items: center; transform: translateY(-50%); color: #52647e; border: 0; border-radius: 10px; background: #edf2f7; }
.company-search-form__clear .ui-icon { width: 18px; height: 18px; }
.search-mode-rail-wrap { position: relative; margin: 12px 0 0; }
.search-mode-rail { display: grid; grid-template-columns: repeat(auto-fit, minmax(72px, 1fr)); gap: 7px; margin: 0; padding: 0 0 2px; overflow: visible; scrollbar-width: none; }
.search-mode-rail::-webkit-scrollbar { display: none; }
.search-mode-rail-wrap__hint { display: none; }
.search-mode-rail button { min-height: 44px; padding: 0 10px; color: #52647e; border: 1px solid #dce4ed; border-radius: 999px; background: #fff; font-size: 12px; font-weight: 700; }
.search-mode-rail button[aria-pressed="true"] { color: #fff; border-color: var(--blue); background: var(--blue); }
.search-coverage { margin: 14px 0 0; padding: 11px; border: 1px solid #dce4ef; border-radius: 12px; background: rgba(249,251,255,.92); }
.search-coverage__head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.search-coverage__head strong { color: #4c5d7e; font-size: 11px; font-weight: 850; }
.search-coverage__head span { color: #8995aa; font-size: 10px; line-height: 1.4; text-align: right; }
.search-coverage__rail { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin-top: 8px; }
.search-coverage__rail button { min-height: 52px; padding: 7px 8px; color: #50627f; border: 1px solid #d7e1ee; border-radius: 9px; background: #fff; font-size: 11px; font-weight: 800; line-height: 1.25; text-align: left; }
.search-coverage__rail button span, .search-coverage__rail button small { display: block; }
.search-coverage__rail button small { margin-top: 4px; color: #8692a7; font-family: var(--font-num); font-size: 10px; font-weight: 800; }
.search-coverage__rail button[aria-pressed="true"] { color: #1f4dbd; border-color: #6f8fd3; background: #f1f6ff; box-shadow: inset 3px 0 0 var(--pink); }
.search-coverage__rail button[aria-pressed="true"] small { color: #4b66aa; }
.search-coverage__note { margin: 8px 1px 0; color: #79869b; font-size: 10px; line-height: 1.48; }
.search-hall-context { display: flex; align-items: center; justify-content: space-between; gap: 9px; margin-top: 9px; padding-top: 9px; border-top: 1px solid #e3e9f2; color: #60708b; font-size: 10px; line-height: 1.42; }
.search-hall-context span { min-width: 0; }
.search-hall-context strong { color: #284982; }
.search-hall-context button { flex: 0 0 auto; min-height: 44px; padding: 0 9px; color: #3558a5; border: 1px solid #d2dff1; border-radius: 8px; background: #fff; font-size: 10px; font-weight: 850; }
.search-suggestions { display: flex; flex-wrap: wrap; gap: 7px; min-height: 0; margin: 14px 0 0; }
.search-suggestion { min-height: 44px; padding: 6px 11px; color: #455d85; border: 1px solid #dbe4ef; border-radius: 999px; background: #f7faff; font-size: 11px; font-weight: 650; }
.search-suggestion::before { content: "试试 "; color: #909ab0; font-weight: 600; }
.search-result-summary { min-height: 44px; margin: 17px 0 9px; color: #66748e; font-size: 12px; line-height: 1.5; }
.search-result-summary strong { display: block; color: var(--ink); font-size: 13px; }
.search-result-summary span { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 1; }
.search-plan-link { min-height: 44px; margin: 7px 0 0; padding: 0 11px; color: var(--blue); border: 1px solid #cddcf0; border-radius: 9px; background: #f6f9ff; font-size: 11px; font-weight: 850; }
.company-search-results { display: grid; gap: 7px; width: 100%; }
.search-result { width: 100%; display: block; min-height: 68px; color: var(--ink); border: 1px solid #dfe6ee; border-radius: 11px; background: #fff; }
.search-result:hover { border-color: #c0d0e4; background: #fbfdff; }
.search-result__open { width: 100%; min-width: 0; min-height: 66px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: start; padding: 10px 12px; color: inherit; border: 0; background: transparent; text-align: left; }
.search-result__main { display: block; min-width: 0; }
.search-result strong { display: block; overflow: hidden; font-size: 14px; font-weight: 750; line-height: 1.35; text-overflow: ellipsis; white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.search-result__product { display: block; overflow: hidden; margin-top: 3px; color: #53667f; font-size: 12px; font-weight: 550; line-height: 1.38; text-overflow: ellipsis; white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.search-result__meta { display: flex; min-width: 0; gap: 5px; align-items: center; margin-top: 4px; color: #68778c; font-size: 10px; font-weight: 650; line-height: 1.25; }
.search-result__meta span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.search-result__meta span:first-child { flex: 1 1 auto; min-width: 0; }
.search-result__meta span + span { flex: 0 1 auto; color: #4e679e; }
.search-result__coverage { display: inline-flex; width: fit-content; margin-top: 5px; padding: 3px 5px; color: #6c778b; border: 1px solid #dde3eb; border-radius: 5px; background: #f7f8fa; font-size: 9px; font-weight: 750; line-height: 1.15; }
.search-result em { align-self: start; margin-top: 1px; padding: 4px 5px; color: #89506f; border-radius: 6px; background: #fff3f8; font-size: 9px; font-style: normal; font-weight: 800; line-height: 1.15; white-space: nowrap; }
.search-result__status.is-source { color: #4f6698; background: #f0f4ff; }
.search-result__status.is-pending { color: #8e4f72; background: #fff3f8; }
.want-button { min-width: 44px; min-height: 44px; padding: 0 11px; color: #8d225e; border: 1px solid #e8b3ce; border-radius: 9px; background: #fff7fa; font-size: 10px; font-weight: 850; line-height: 1.2; white-space: nowrap; }
.want-button[aria-pressed="true"] { color: #fff; border-color: var(--pink-deep); background: var(--pink-deep); }
.want-button--search { align-self: center; margin-right: 8px; }
.want-button--sheet { width: 100%; }
.want-button--mini { align-self: center; margin-right: 7px; }
.want-button--plan { flex: 0 0 auto; }
.search-result__empty { display: grid; grid-template-columns: 82px minmax(0, 1fr); gap: 11px; align-items: center; padding: 13px; color: #74819a; border: 1px dashed #cfd9e8; border-radius: 14px; background: #fafbff; font-size: 12px; line-height: 1.6; }
.search-result__empty img { display: block; width: 82px; height: 82px; object-fit: cover; border-radius: 10px; mix-blend-mode: multiply; }
.search-result__empty strong { display: block; margin-bottom: 4px; color: #314d84; }
.search-more { width: 100%; margin-top: 10px; }
.search-company-data { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin: 15px 0; }
.search-company-data div { padding: 9px 10px; border-radius: 11px; background: #f6f7fc; }
.search-company-data dt { color: #8792a9; font-size: 10px; font-weight: 700; }
.search-company-data dd { margin: 4px 0 0; color: #32405f; font-size: 11px; font-weight: 800; line-height: 1.42; }
.search-company-data__coverage { grid-column: 1 / -1; border: 1px solid #dce3ec; background: #f8f9fb !important; }
.search-company-coverage-note { margin: 10px 0 -3px; color: #6f7c92; font-size: 10px; line-height: 1.52; }
.search-company-source { display: block; padding: 12px; color: #3d49ba; border-radius: 12px; background: #f1f4ff; text-decoration: none; font-size: 12px; font-weight: 850; }
.company-sheet-actions { margin: 0 0 10px; }

.documents-scroll { padding-bottom: 30px; }
.documents-atlas-teaser { position: relative; display: grid; align-items: end; min-height: 152px; margin: 4px 0 9px; padding: 15px; overflow: hidden; color: #fff; border: 1px solid #d9e1ee; border-radius: 16px; background: #173b7c; }
.documents-atlas-teaser::after { position: absolute; z-index: 0; inset: 0; content: ""; background: linear-gradient(90deg, rgba(13,42,101,.95) 0%, rgba(13,42,101,.83) 48%, rgba(13,42,101,.18) 100%); }
.documents-atlas-teaser img { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: right center; opacity: .94; }
.documents-atlas-teaser > div { position: relative; z-index: 1; max-width: 220px; }
.documents-atlas-teaser p { margin: 0 0 5px; color: #f1b0ce; font-family: var(--font-num); font-size: 9px; font-weight: 850; letter-spacing: .12em; }
.documents-atlas-teaser h3 { margin: 0; color: #fff; font-size: 21px; line-height: 1.15; letter-spacing: -.045em; }
.documents-atlas-teaser span { display: block; margin-top: 7px; color: #dbe7ff; font-size: 11px; line-height: 1.48; }
.document-card { width: 100%; min-height: 86px; display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 12px 0; color: var(--ink); border: 0; border-top: 1px solid #e8ebf4; background: transparent; text-align: left; }
.document-card--link, .resource-card--link { text-decoration: none; }
.document-card + .document-card { border-bottom: 1px solid #e8ebf4; }
.document-card__icon { width: 35px; height: 35px; display: grid; place-items: center; color: #a65b90; border-radius: 11px; background: #fff0f7; }
.document-card__icon .ui-icon { width: 18px; height: 18px; }
.document-card:nth-of-type(2) .document-card__icon { color: #4e58ad; background: #eef1ff; }
.document-card strong { display: block; font-size: 13px; line-height: 1.35; }
.document-card small { display: block; margin-top: 4px; color: #77839b; font-size: 10px; font-weight: 650; line-height: 1.45; }
.document-card em { align-self: start; margin-top: 2px; padding: 4px 6px; color: #a76487; border-radius: 7px; background: #fff2f7; font-size: 9px; font-style: normal; font-weight: 850; white-space: nowrap; }
.documents-boundary { display: grid; gap: 6px; margin: 20px 0 13px; padding: 14px; border-radius: 15px; background: #f6f7fc; color: #738099; font-size: 11px; line-height: 1.58; }
.documents-boundary strong { color: #485671; font-size: 12px; }

.resource-scroll { padding-bottom: 30px; }
.resource-group { margin-top: 24px; }
.resource-group h3 { margin: 0 0 9px; color: #53617e; font-size: 11px; font-weight: 900; letter-spacing: .1em; }
.resource-card { width: 100%; min-height: 76px; display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px 0; color: var(--ink); border: 0; border-top: 1px solid #ebedf5; background: transparent; text-align: left; }
.resource-card:last-child { border-bottom: 1px solid #ebedf5; }
.resource-card__icon { width: 32px; height: 32px; display: grid; place-items: center; color: #6042c7; border-radius: 10px; background: #f0efff; }
.resource-card__icon .ui-icon { width: 17px; height: 17px; }
.resource-card strong { display: block; font-size: 13px; letter-spacing: -.015em; }
.resource-card small { display: block; margin-top: 4px; color: #77839b; font-size: 10px; font-weight: 650; line-height: 1.42; }
.resource-card em { align-self: start; margin-top: 2px; padding: 4px 6px; color: #6552a4; border-radius: 7px; background: #f2f0ff; font-size: 9px; font-style: normal; font-weight: 850; white-space: nowrap; }
.resource-card--pending { opacity: .82; }
.resource-card--pending .resource-card__icon { color: #9a72a9; background: #fff2f8; }
.resource-card--pending em { color: #a76487; background: #fff2f7; }
.resource-waiting-note { display: grid; gap: 5px; margin-top: 14px; padding: 12px 13px; color: #6e7a92; border-radius: 13px; background: #f7f8fc; font-size: 11px; line-height: 1.55; }
.resource-waiting-note strong { color: #46536f; font-size: 12px; }
.resource-source-note { margin: 22px 0 9px; color: #8590a5; font-size: 10px; line-height: 1.55; }
.resource-source-note span { color: #5e6c86; font-weight: 750; }
.resource-contact { min-height: 44px; display: flex; justify-content: space-between; align-items: center; padding: 12px 0; color: #3d49ba; border-top: 1px solid #edf0f6; text-decoration: none; font-size: 12px; font-weight: 850; }
.resource-contact .ui-icon { color: var(--pink-deep); }

.screen-scroll--overview { padding-bottom: 16px; }
.map-card--overview { margin-top: 15px; padding-top: 10px; }
.map-card--overview .hall { cursor: default; }

.menu-sheet, .hall-sheet { position: fixed; z-index: 20; inset: 0; }
.menu-sheet[hidden], .hall-sheet[hidden] { display: none; }
.menu-sheet__backdrop, .hall-sheet__backdrop { position: absolute; inset: 0; background: rgba(16, 30, 61, .36); }
.menu-sheet__panel, .hall-sheet__panel { position: absolute; left: 0; right: 0; bottom: 0; padding: 10px 20px calc(22px + env(safe-area-inset-bottom)); max-height: min(80dvh, 650px); overflow-y: auto; border-radius: 18px 18px 0 0; background: #fff; box-shadow: 0 -20px 48px rgba(14, 31, 68, .18); }
.menu-sheet__handle { width: 35px; height: 4px; margin: 0 auto 16px; border-radius: 4px; background: #dfe3ef; }
.menu-sheet__panel h2 { margin: 0 0 13px; font-size: 20px; font-weight: 700; letter-spacing: -.05em; }
.menu-sheet__panel button, .menu-sheet__panel a { display: flex; width: 100%; align-items: center; gap: 12px; color: var(--ink); background: transparent; text-decoration: none; text-align: left; border: 0; border-top: 1px solid #e8edf3; padding: 16px 4px; font-size: 14px; font-weight: 650; }
.menu-sheet__panel .menu-icon { width: 25px; height: 25px; display: grid; place-items: center; color: var(--violet); background: #f0effe; border-radius: 8px; }
.menu-sheet__panel .menu-icon .ui-icon { width: 15px; height: 15px; }
.hall-sheet__panel { padding-top: 22px; }
.sheet-close { float: right; width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid #dfe6ee; border-radius: 10px; color: var(--ink); background: #f7f9fb; }
.sheet-close .ui-icon { width: 18px; height: 18px; }
.hall-sheet__panel h2 { margin: 0 40px 7px 0; font-size: 22px; letter-spacing: -.05em; }
.hall-sheet__meta { display: flex; flex-wrap: wrap; gap: 7px; color: #687691; font-size: 12px; }
.hall-sheet__meta span { padding: 4px 7px; border-radius: 7px; background: #f2f4fb; }
.hall-sheet__notice { margin: 14px 0 10px; color: #75829b; font-size: 11px; line-height: 1.5; }
.company-mini-list { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.company-mini { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px; align-items: center; min-height: 64px; padding: 0; border: 1px solid #ebedf5; border-radius: 12px; background: #fff; }
.company-mini__open { min-width: 0; min-height: 62px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 9px; align-items: center; padding: 10px 0 10px 11px; color: var(--ink); border: 0; background: transparent; text-align: left; cursor: pointer; }
.company-mini__open:hover { background: #fbfcff; }
.company-mini__open:active { background: #f6f8ff; }
.company-mini strong { display: block; font-size: 12px; line-height: 1.35; }
.company-mini small { display: block; color: #73809a; font-size: 10px; margin-top: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.company-mini em { color: #a72c70; font-size: 10px; font-style: normal; font-weight: 800; white-space: nowrap; }
.hall-sheet__more { color: #687693; font-size: 11px; padding: 10px 0 0; }
.hall-sheet__all-public { display: grid; gap: 5px; margin-top: 12px; padding: 11px; border: 1px solid #dbe4ee; border-radius: 11px; background: #f8faff; }
.hall-sheet__all-public strong { color: #425776; font-size: 11px; line-height: 1.42; }
.hall-sheet__all-public span { color: #748199; font-size: 10px; line-height: 1.46; }
.hall-sheet__all-public button { min-height: 44px; margin-top: 3px; padding: 0 11px; color: #3357a6; border: 1px solid #ccdbee; border-radius: 9px; background: #fff; font-size: 11px; font-weight: 850; text-align: left; }
.hall-sheet__all-public--shown { background: #fafbfc; }

.product-step-state { display: grid; gap: 4px; margin: 0 0 16px; padding: 13px 14px; color: #26477f; border: 1px solid #cedcf0; border-left: 3px solid var(--pink); border-radius: 0 10px 10px 0; background: rgba(255,255,255,.86); box-shadow: 0 8px 18px rgba(25, 60, 122, .05); }
.product-step-state strong { font-size: 13px; font-weight: 800; }
.product-step-state span { color: #5d6f89; font-size: 12px; line-height: 1.5; }
.product-filter-content--screen { padding: 0 14px; border: 1px solid #d8e2ee; border-radius: 12px; background: rgba(255,255,255,.88); box-shadow: 0 10px 24px rgba(24, 59, 122, .045); }
.product-step-empty { margin: 0; padding: 18px 0; color: #71809b; font-size: 12px; line-height: 1.58; }
.product-filter-group { padding: 13px 0; border-top: 1px solid #edf0f6; }
.product-filter-group:first-child { border-top: 0; padding-top: 0; }
.product-filter-group__head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin: 0 0 9px; }
.product-filter-group__head h3 { margin: 0; font-size: 14px; letter-spacing: -.02em; }
.product-filter-group__head span { color: #7f8ca4; font-size: 10px; font-weight: 700; white-space: nowrap; }
.product-filter-group__hint { margin: -3px 0 9px; color: #8a95aa; font-size: 10px; }
.product-chip-grid { display: flex; flex-wrap: wrap; gap: 7px; }
.product-chip { min-height: 44px; padding: 5px 11px; color: #52617d; border: 1px solid #dce4ed; border-radius: 999px; background: #fff; font-size: 11px; font-weight: 650; line-height: 1.2; }
.product-chip small { margin-left: 4px; color: #8c97ac; font-size: 9px; font-weight: 700; }
.product-chip.is-selected { color: var(--pink-deep); border-color: #eeb3d0; background: #fff3f8; }
.product-chip.is-selected small { color: #c95a91; }
.product-filter-group details { margin-top: 9px; }
.product-filter-group summary { color: #586786; font-size: 11px; font-weight: 800; cursor: pointer; }
.product-filter-group details .product-chip-grid { margin-top: 9px; }

/* Modern mobile browsers, including current WeChat, use the much smaller WebP copies. PNG remains as a graceful fallback. */
@supports (background-image: image-set(url("./assets/contact-optics-v1.webp") type("image/webp"))) {
  .home-contact-card { background-image: image-set(url("./assets/contact-optics-v1.webp") type("image/webp"), url("./assets/contact-optics-v1.png") type("image/png")); }
  .map-card--select, .map-card--route, .map-card--overview { background-image: image-set(url("./assets/hall-stage-v2.webp") type("image/webp"), url("./assets/hall-stage-v2.png") type("image/png")); }
}

.resume-plan-dialog { position: relative; width: min(360px, calc(100vw - 34px)); border: 0; border-radius: 22px; padding: 23px 21px 18px; overflow: hidden; color: var(--ink); box-shadow: 0 24px 65px rgba(14, 20, 75, .3); }
.resume-plan-dialog::backdrop { background: rgba(11, 20, 62, .32); backdrop-filter: blur(3px); }
.resume-plan-dialog__accent { position: absolute; top: 0; right: 0; left: 0; height: 4px; background: var(--blue-pink); }
.resume-plan-dialog .kicker { margin-bottom: 8px; }
.resume-plan-dialog h2 { margin: 0; font-size: 24px; letter-spacing: -.055em; }
.resume-plan-dialog__summary { margin: 10px 0 12px; color: #687694; font-size: 13px; line-height: 1.55; }
.resume-plan-dialog__steps { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; margin: 0 0 18px; padding: 10px 11px; color: #52618a; border: 1px solid #e5e8f5; border-radius: 13px; background: #f7f8fe; font-size: 11px; font-weight: 750; line-height: 1.4; }
.resume-plan-dialog__steps .ui-icon { color: var(--pink-deep); }
.resume-plan-dialog__actions { display: grid; grid-template-columns: minmax(0, .84fr) minmax(0, 1.26fr); gap: 9px; }
.resume-plan-dialog__actions .primary-button, .resume-plan-dialog__actions .secondary-button { min-height: 48px; padding: 0 11px; font-size: 13px; }
.resume-plan-dialog__dismiss { display: block; min-height: 44px; margin: 13px auto 0; padding: 2px 10px; color: #7d88a3; border: 0; background: transparent; font-size: 12px; }
.resume-plan-dialog__dismiss:hover { color: var(--ink); }
.resume-plan-dialog__map-link { margin-top: 12px; color: #4b57aa; font-weight: 850; }
#close-resume-plan { margin-top: 5px; }

.toast-v2 { position: fixed; z-index: 40; max-width: calc(100vw - 40px); bottom: calc(82px + env(safe-area-inset-bottom)); left: 50%; transform: translateX(-50%); padding: 10px 14px; color: #fff; background: rgba(21, 32, 80, .94); border-radius: 999px; font-size: 12px; line-height: 1.35; box-shadow: 0 10px 25px rgba(10,16,56,.25); }

.primary-button, .secondary-button, .action-card, .interest-button, .entrance-pill, .product-chip, .search-mode-rail button, .search-result, .round-button, .quick-map-button, .route-list-v2 button {
  transition: transform 120ms ease, background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, color 160ms ease;
}

@media (hover: hover) {
  .action-card:hover { border-color: #bdcde2; transform: translateY(-1px); }
  .action-card--main:hover { border-color: #183f9f; background: #183f9f; }
  .search-result:hover { transform: translateY(-1px); }
}

@media (prefers-reduced-motion: no-preference) {
  .screen.is-active .step-heading,
  .screen.is-active .home-actions,
  .screen.is-active .map-card {
    animation: guide-content-in 220ms cubic-bezier(.2, .75, .25, 1) both;
  }
  .screen.is-active .home-actions { animation-delay: 35ms; }
  .screen.is-active .map-card { animation-delay: 55ms; }
}

@keyframes guide-content-in {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (pointer: coarse) {
  .primary-button:active, .secondary-button:active, .action-card:active, .interest-button:active, .entrance-pill:active, .product-chip:active, .search-mode-rail button:active, .search-result:active, .round-button:active, .quick-map-button:active, .route-list-v2 button:active { transform: scale(.985); }
}

@media (min-width: 700px) {
  body { padding: 20px; }
  .app-shell { width: min(100%, 1080px); margin: 0 auto; min-height: calc(100dvh - 40px); border-radius: 28px; box-shadow: 0 24px 70px rgba(30, 39, 107, .13); }
  main { height: calc(100dvh - 102px - env(safe-area-inset-top)); }
  .screen-scroll { width: min(100%, 760px); margin: 0 auto; padding-left: 32px; padding-right: 32px; }
  .screen--home .screen-scroll { width: min(100%, 760px); }
  .screen[data-screen="search"] .screen-scroll,
  .screen[data-screen="directions"] .screen-scroll,
  .screen[data-screen="products"] .screen-scroll,
  .screen[data-screen="poster"] .screen-scroll {
    width: 100%;
    max-width: none;
    margin: 0;
    padding-left: clamp(20px, 3vw, 32px);
    padding-right: clamp(20px, 3vw, 32px);
  }
  .screen[data-screen="search"] .company-search-results {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
  }
  .screen[data-screen="search"] .search-result__open {
    height: 100%;
  }
  .home-scroll > #nav-quick-map.quick-map-button--home { top: 160px; right: 22px; min-width: 112px; height: 60px; }
  .screen-footer { padding-left: max(32px, calc((100% - 760px) / 2)); padding-right: max(32px, calc((100% - 760px) / 2)); }
  .map-viewport-v2 > svg { width: max(800px, 100%); min-width: 800px; }
}

@media (max-height: 680px) and (max-width: 699px) {
  .home-scroll { padding-top: 25px; }
  .hero-copy { margin-bottom: 16px; }
  .hero-stat-grid { margin-bottom: 14px; }
  .action-card { min-height: 63px; }
  .interest-button { min-height: 66px; }
}

@media (max-width: 359px) {
  .home-scroll { padding-right: 18px; padding-left: 18px; }
  .screen--home h1 { font-size: 37px; }
  .home-actions .action-card:not(.action-card--main) { grid-template-columns: minmax(0, 1fr) 30px; min-height: 60px; }
  .home-actions .action-card:not(.action-card--main) .action-card__trail::before { display: none; }
  .home-actions .action-card:not(.action-card--main) small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .hero-stat-grid span { font-size: 11px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* V2：图主导的展会导视图册。固定视觉由原创 Image2 资产承担；实时资料仍保持真实可读。 */
.wordmark { font-size: 12px; letter-spacing: -.04em; }
.wordmark__eyebrow { font-size: 8px; letter-spacing: .075em; }

.home-scroll { padding: 34px 20px calc(28px + env(safe-area-inset-bottom)); background: #fff; }
.hero-wayfinding-art { display: none; }
.home-scroll::after { display: none; }
.home-scroll > #nav-quick-map.quick-map-button--home { border-radius: 9px; background: rgba(255,255,255,.92); box-shadow: 0 8px 22px rgba(20,54,110,.08); }
.kicker { margin-bottom: 10px; font-size: 10px; }
.screen--home h1 { max-width: 312px; font-size: clamp(30px, 8.4vw, 36px); line-height: 1.12; letter-spacing: -.065em; }
.hero-copy { max-width: 244px; margin: 12px 0 20px; font-size: 13px; line-height: 1.58; }
.hero-stat-grid { margin-bottom: 18px; background: rgba(255,255,255,.76); }
.hero-stat-grid div { padding: 9px 5px 8px; }
.hero-stat-grid strong { font-size: 18px; }
.hero-stat-grid span { font-size: 11px; }

.home-actions { border-radius: 9px; border-color: #cbd7e6; background: #fff; }
.action-card { min-height: 62px; grid-template-columns: minmax(0,1fr) 30px; gap: 0; padding: 10px 12px 10px 15px; isolation: isolate; overflow: hidden; background: #fff; }
.action-card:not(.action-card--main) { min-height: 60px; }
.action-card--main { min-height: 70px; background: #183b7a; }
.action-card__art { position: absolute; z-index: 0; top: 0; right: 0; bottom: 0; width: 66%; height: 100%; object-fit: cover; object-position: right center; opacity: .84; mix-blend-mode: multiply; pointer-events: none; -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 42%); mask-image: linear-gradient(90deg, transparent 0%, #000 42%); }
.action-card--main .action-card__art { opacity: .24; mix-blend-mode: screen; }
.action-card:not(.action-card--main) .action-card__art { opacity: .46; }
.action-card:not(.action-card--main)::after { position: absolute; z-index: 0; inset: 0; content: ""; pointer-events: none; background: linear-gradient(90deg, #fff 0 62%, rgba(255,255,255,.65) 79%, rgba(255,255,255,.12) 100%); }
.action-card::before { z-index: 2; }
.action-card__icon { display: none; }
.action-card > span:not(.action-card__icon):not(.action-card__trail) { position: relative; z-index: 1; max-width: 71%; }
.action-card__trail { position: relative; z-index: 2; }
.action-card strong { font-size: 14px; letter-spacing: -.035em; }
.action-card small { margin-top: 2px; font-size: 11px; line-height: 1.3; }
.action-card--search::before { background: #315fb0; }
.action-card--documents::before { background: #ca397b; }
.home-contact-card { margin-top: 24px; padding: 14px; border-radius: 9px; background-color: #fbfcfe; }
.home-contact-card__heading h2 { font-size: 18px; }
.home-contact-code canvas, .home-contact-code img { width: 72px; height: 72px; }

.page-stage-art { height: 166px; }
.page-stage-art--directions, .page-stage-art--products, .page-stage-art--search { opacity: .66; }
.step-heading { margin-bottom: 17px; }
.step-heading h2 { font-size: 23px; line-height: 1.18; }
.step-heading p:last-child { font-size: 13px; line-height: 1.55; }
.interest-button { min-height: 64px; border-radius: 8px; background: rgba(255,255,255,.93); }
.interest-button__icon { border-radius: 6px; }
.live-match-card { border-radius: 0 8px 8px 0; }
.product-step-state { border-radius: 0 8px 8px 0; }
.product-filter-content--screen { border-radius: 8px; }

.map-card { border-radius: 8px; }
.map-viewport-v2 { background: rgba(255,255,255,.74); }
.map-viewport-v2 > svg { width: max(720px, 188vw); min-width: 720px; padding: 9px 10px 13px; }
.hall-chip, .entrance-pill, .search-mode-rail button, .product-chip { border-radius: 8px; }

.search-result { min-height: 60px; border-radius: 8px; }
.search-result strong { font-size: 12px; }
.search-result__product { margin-top: 2px; }
.want-button { min-height: 44px; min-width: 44px; border-radius: 7px; padding: 0 9px; }
.search-result__empty { border-radius: 9px; }

.documents-atlas-teaser { min-height: 166px; align-items: end; color: var(--ink); border-radius: 9px; background: #fff; }
.documents-atlas-teaser::after { background: linear-gradient(90deg, rgba(255,255,255,.98) 0%, rgba(255,255,255,.92) 54%, rgba(255,255,255,.1) 100%); }
.documents-atlas-teaser img { object-position: right 62%; opacity: .98; }
.documents-atlas-teaser p { color: var(--pink-deep); }
.documents-atlas-teaser h3 { color: var(--ink); }
.documents-atlas-teaser span { color: #64748b; }
.document-card { min-height: 76px; }
.document-card__icon, .document-card em { border-radius: 7px; }

.poster-preview-shell { border-radius: 9px; box-shadow: none; }
.wanted-plan__group { border-radius: 9px; }

/* 手机端以完整馆图为主；点击细小馆号不方便时，可展开下方的 44px 馆号按钮。 */
@media (max-width: 699px) {
  .screen-scroll--map .map-card--select,
  .screen-scroll--route .map-card--route { margin-right: -20px; margin-left: -20px; border-right: 0; border-left: 0; border-radius: 0; }
  .screen-scroll--map .map-card--select .map-card__toolbar { padding-right: 20px; padding-left: 20px; }
  .map-viewport-v2 > svg { width: 100%; min-width: 0; max-width: 100%; padding: 4px 6px 8px; }
  .map-viewport-v2 #map-heading,
  .map-viewport-v2 .hall-name,
  .map-viewport-v2 .hall-gate,
  .map-viewport-v2 .hall-gate-label,
  .map-viewport-v2 #map-footer { display: none; }
  .map-viewport-v2 .hall-number { font-size: 90px; letter-spacing: -4px; }
  .map-viewport-v2 .v2-match-count { font-size: 26px; }
  .map-fit-hint { margin-right: 2px; margin-left: 2px; }
}

/* 企业清单要像导览册：保留主题背景和文字底色，但不用玻璃拟态。 */
.wanted-plan__group--themed .wanted-plan__group-head { border-color: rgba(255,255,255,.96); border-left: 3px solid var(--hall-accent, var(--pink-deep)); background: rgba(255,255,255,.93); box-shadow: none; backdrop-filter: none; }
.wanted-plan__group--themed li { border-color: rgba(255,255,255,.96); border-left: 3px solid var(--hall-accent, var(--pink-deep)); background: rgba(255,255,255,.92); box-shadow: none; }

.primary-button, .secondary-button, .action-card, .interest-button, .entrance-pill, .product-chip, .search-mode-rail button, .search-result, .round-button, .quick-map-button, .route-list-v2 button { transition: background-color 120ms ease, border-color 120ms ease, color 120ms ease; }
@media (hover: hover) {
  .action-card:hover, .search-result:hover { transform: none; }
}
@media (pointer: coarse) {
  .primary-button:active, .secondary-button:active, .action-card:active, .interest-button:active, .entrance-pill:active, .product-chip:active, .search-mode-rail button:active, .search-result:active, .round-button:active, .quick-map-button:active, .route-list-v2 button:active { transform: none; }
}
@media (prefers-reduced-motion: no-preference) {
  .screen.is-active .step-heading,
  .screen.is-active .home-actions,
  .screen.is-active .map-card { animation: none; }
}
@media (min-width: 700px) {
  .map-viewport-v2 > svg { width: max(860px, 100%); min-width: 860px; }
}
