:root {
  --yz-support-blue: #0b6fbd;
  --yz-support-blue-strong: #075a9d;
  --yz-support-ink: #0f2a4a;
  --yz-support-muted: #5e7188;
  --yz-support-line: #d8e5f0;
  --yz-support-bg: #eef5fb;
  --yz-support-card: #ffffff;
  --yz-support-accent: #d89b2b;
}

* { box-sizing: border-box; }

html {
  min-width: 0;
  background: var(--yz-support-bg);
  overflow-x: hidden;
  scrollbar-width: none;
}

html::-webkit-scrollbar,
body::-webkit-scrollbar { display: none; }

body {
  margin: 0;
  min-width: 0;
  min-height: 100vh;
  padding: 0 0 calc(76px + env(safe-area-inset-bottom, 0px));
  overflow-x: hidden;
  background: var(--yz-support-bg);
  color: var(--yz-support-ink);
  font-family: Arial, "Microsoft YaHei", sans-serif;
  -webkit-font-smoothing: antialiased;
}

a { color: inherit; }

.container,
.yz-consult-main,
.customer-legal-page {
  width: min(calc(100% - 24px), 760px);
  margin-inline: auto;
}

.yz-all-main,
.yz-deals-main,
.yz-guide-main,
.yz-help-main,
.yz-ports-main,
.yz-routes-main {
  min-width: 0;
}

.yz-order-page-hero {
  padding: 22px 0 14px;
  background: transparent;
}

.yz-order-page-hero h1,
.yz-consult-hero h1,
.customer-legal-document-head h1,
.customer-legal-document-head h2 {
  margin: 6px 0 8px;
  font-size: clamp(23px, 6.4vw, 32px);
  line-height: 1.25;
  letter-spacing: -.02em;
  color: var(--yz-support-ink);
}

.yz-order-page-hero p,
.yz-consult-hero p,
.customer-legal-document-head p {
  margin: 0;
  color: var(--yz-support-muted);
  font-size: 14px;
  line-height: 1.75;
}

.yz-section-kicker,
.yz-consult-kicker {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 4px 9px;
  border-left: 3px solid var(--yz-support-accent);
  background: #fff8e8;
  color: #8a5c05;
  font-size: 12px;
  font-weight: 800;
}

.yz-booking-section { padding: 0 0 18px; }

.yz-all-content,
.yz-guide-content,
.yz-help-content,
.yz-ports-content {
  display: grid;
  gap: 14px;
}

.yz-all-group,
.yz-guide-article-grid,
.yz-guide-side,
.yz-help-process-article,
.yz-help-side,
.yz-ports-card,
.yz-ports-side,
.yz-routes-toolbar,
.yz-routes-summary,
.yz-deals-search-panel,
.yz-deals-summary,
.customer-legal-document-head,
.customer-legal-section,
.yz-consult-card {
  min-width: 0;
  border: 1px solid rgba(24, 73, 116, .12);
  border-radius: 12px;
  background: var(--yz-support-card);
  box-shadow: 0 8px 24px rgba(12, 54, 93, .06);
}

.yz-all-group,
.yz-guide-article-grid,
.yz-guide-side,
.yz-help-process-article,
.yz-help-side,
.yz-ports-card,
.yz-ports-side,
.yz-routes-toolbar,
.yz-routes-summary,
.yz-deals-search-panel,
.yz-deals-summary { padding: 16px; }

.yz-all-group-head {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  margin-bottom: 12px;
}

.yz-all-group-head > span {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 8px;
  background: #e7f2fc;
  color: var(--yz-support-blue);
  font-size: 13px;
  font-weight: 900;
}

.yz-all-group h2,
.yz-guide-content h2,
.yz-help-content h2,
.yz-ports-content h2 {
  margin: 0 0 5px;
  font-size: 18px;
  line-height: 1.4;
}

.yz-all-group p,
.yz-guide-content p,
.yz-help-content p,
.yz-ports-content p {
  margin: 0;
  color: var(--yz-support-muted);
  font-size: 14px;
  line-height: 1.7;
}

.yz-all-grid,
.yz-guide-link-grid,
.yz-ports-grid,
.yz-port-data-grid,
.yz-routes-grid,
.yz-deals-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  min-width: 0;
}

.yz-all-card,
.yz-guide-card,
.yz-ports-grid > *,
.yz-port-data-grid > *,
.yz-routes-grid > *,
.yz-deals-grid > * {
  display: grid;
  gap: 6px;
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--yz-support-line);
  border-radius: 10px;
  background: #fff;
  color: var(--yz-support-ink);
  text-decoration: none;
}

.yz-all-card.primary { border-color: #8fc3ed; background: #f4faff; }
.yz-all-card strong { font-size: 16px; }
.yz-all-card b { color: var(--yz-support-blue); font-size: 13px; }

.yz-routes-toolbar {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  margin-bottom: 12px;
}

.yz-routes-toolbar label {
  display: grid;
  gap: 6px;
  color: #36516d;
  font-size: 13px;
  font-weight: 800;
}

.yz-routes-toolbar input,
.yz-routes-toolbar select {
  width: 100%;
  min-height: 44px;
  padding: 0 12px;
  border: 1px solid var(--yz-support-line);
  border-radius: 8px;
  background: #fff;
  color: var(--yz-support-ink);
  font: inherit;
}

.yz-routes-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
  margin-bottom: 10px;
}

.yz-routes-summary span {
  display: grid;
  gap: 2px;
  min-width: 0;
  text-align: center;
}

.yz-routes-summary b { color: var(--yz-support-blue); font-size: 15px; overflow-wrap: anywhere; }
.yz-routes-summary em { color: var(--yz-support-muted); font-size: 10px; font-style: normal; }

.yz-support-route-card,
.yz-support-port-card {
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 15px;
  border: 1px solid var(--yz-support-line);
  border-radius: 10px;
  background: #fff;
  text-decoration: none;
}

.yz-support-route-card h2 { margin: 0; font-size: 18px; }
.yz-support-route-card p,
.yz-support-port-card span { margin: 0; color: var(--yz-support-muted); font-size: 13px; line-height: 1.6; }
.yz-support-route-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.yz-support-route-actions strong { color: #ef5a2a; font-size: 17px; }
.yz-support-route-actions a,
.yz-support-port-card b { color: var(--yz-support-blue); font-size: 13px; font-weight: 900; text-decoration: none; }
.yz-support-port-card strong { font-size: 17px; }

.yz-all-hero-actions,
.yz-guide-hero-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 14px;
}

.yz-booking-card-action,
.yz-booking-secondary-action,
.yz-consult-btn {
  display: grid;
  place-items: center;
  min-height: 44px;
  padding: 10px 14px;
  border: 1px solid var(--yz-support-blue);
  border-radius: 9px;
  background: var(--yz-support-blue);
  color: #fff;
  font-size: 14px;
  font-weight: 800;
  text-align: center;
  text-decoration: none;
}

.yz-booking-secondary-action,
.yz-consult-btn.secondary {
  background: #fff;
  color: var(--yz-support-blue-strong);
}

.yz-guide-layout,
.yz-help-layout,
.yz-ports-layout {
  display: grid;
  gap: 14px;
}

.yz-guide-faq-list,
.yz-help-faq-list,
.yz-ports-faq,
.yz-guide-checklist,
.yz-ports-checklist {
  display: grid;
  gap: 10px;
  margin: 12px 0 0;
  padding: 0;
}

.yz-guide-faq-list > *,
.yz-help-faq-list > *,
.yz-ports-faq > * {
  min-width: 0;
  padding: 12px 0;
  border-bottom: 1px solid var(--yz-support-line);
}

.yz-guide-warning,
.yz-ports-warning,
.yz-booking-empty {
  padding: 13px 14px;
  border: 1px solid #efd7a5;
  border-radius: 9px;
  background: #fffaf0;
  color: #765116;
  font-size: 13px;
  line-height: 1.65;
}

.yz-deals-sortbar,
.yz-schedule-count {
  color: var(--yz-support-muted);
  font-size: 13px;
}

.yz-consult-main { padding: 14px 0 20px; }
.yz-consult-card { overflow: hidden; }
.yz-consult-hero { display: grid; gap: 8px; padding: 18px 16px 14px; }
.yz-consult-actions { display: grid; gap: 10px; padding: 0 16px 16px; }
.yz-consult-list { border-top: 1px solid var(--yz-support-line); }
.yz-consult-row {
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr);
  gap: 10px;
  padding: 13px 16px;
  border-bottom: 1px solid var(--yz-support-line);
  font-size: 14px;
  line-height: 1.55;
}
.yz-consult-row b { color: #36516d; }
.yz-consult-row span { min-width: 0; overflow-wrap: anywhere; }
.yz-consult-note { margin: 0; padding: 13px 16px 16px; color: var(--yz-support-muted); font-size: 13px; line-height: 1.65; }

.customer-legal-page { display: grid; gap: 12px; padding: 14px 0 22px; }
.customer-legal-document-head,
.customer-legal-section { padding: 17px 16px; }
.customer-legal-meta {
  display: grid;
  grid-template-columns: 78px minmax(0, 1fr);
  gap: 9px 12px;
  margin: 0;
  padding: 14px 16px;
  border: 1px solid rgba(24, 73, 116, .12);
  border-radius: 12px;
  background: #fff;
  color: var(--yz-support-muted);
  font-size: 13px;
  box-shadow: 0 8px 24px rgba(12, 54, 93, .05);
}
.customer-legal-meta dt,
.customer-legal-meta dd { margin: 0; }
.customer-legal-meta dt { color: #36516d; font-weight: 800; }
.customer-legal-notice { padding: 12px 14px; border-left: 3px solid var(--yz-support-accent); background: #fff9ec; color: #6e501b; font-size: 13px; line-height: 1.65; }
.customer-legal-section { position: relative; padding-left: 50px; }
.customer-legal-section__number { position: absolute; left: 16px; top: 18px; color: var(--yz-support-blue); font-size: 13px; font-weight: 900; }
.customer-legal-section h2,
.customer-legal-section h3 { margin: 0 0 8px; font-size: 17px; line-height: 1.4; }
.customer-legal-section p,
.customer-legal-section li { color: #334d68; font-size: 14px; line-height: 1.75; }
.customer-legal-section ul { margin: 0; padding-left: 18px; }
.customer-legal-footer { padding: 4px 0 10px; text-align: center; }
.customer-legal-footer__back { color: var(--yz-support-blue); font-weight: 800; text-decoration: none; }

.yz-booking-footer { display: none; }

@media (min-width: 700px) {
  .container,
  .yz-consult-main,
  .customer-legal-page { width: min(calc(100% - 40px), 980px); }
  .yz-all-grid,
  .yz-guide-link-grid,
  .yz-ports-grid,
  .yz-port-data-grid,
  .yz-routes-grid,
  .yz-deals-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .yz-guide-layout,
  .yz-help-layout,
  .yz-ports-layout { grid-template-columns: minmax(0, 1fr) 280px; }
}

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