.meeting-page .lead { max-width: 960px; }
.meeting-journey-lab .lab-grid { grid-template-columns: minmax(0, 2.45fr) minmax(390px, 1fr); }
.meeting-journey-lab .journey-targets { gap: 12px; }
.meeting-journey-lab .journey-targets span { min-width: 64px; }
.meeting-journey-lab .meeting-scene,
.meeting-journey-lab .meeting-scene svg { min-height: 272px; height: 272px; }

.meeting-route-line {
  stroke: #b8c4d2;
  stroke-width: 5;
  stroke-linecap: round;
  vector-effect: non-scaling-stroke;
}
.meeting-route-active {
  stroke: #64758c;
  stroke-width: 7;
  stroke-linecap: round;
  vector-effect: non-scaling-stroke;
}
.meeting-walked-a,
.meeting-walked-b {
  stroke-width: 9;
  stroke-linecap: butt;
  vector-effect: non-scaling-stroke;
}
.meeting-walked-a { stroke: #168c83; }
.meeting-walked-b { stroke: #e37632; }
.meeting-gap {
  stroke: #7b8799;
  stroke-width: 3;
  stroke-dasharray: 7 6;
  vector-effect: non-scaling-stroke;
}
.meeting-direction-a,
.meeting-direction-b {
  stroke-width: 2.3;
  stroke-dasharray: 7 6;
  vector-effect: non-scaling-stroke;
}
.meeting-direction-a { stroke: #168c83; }
.meeting-direction-b { stroke: #db6f30; }
.meeting-arrow-a { fill: #168c83; }
.meeting-arrow-b { fill: #db6f30; }
.meeting-route-label,
.meeting-person-label,
.meeting-node-label,
.meeting-point-label,
.meeting-scale-note {
  paint-order: stroke;
  stroke: rgba(255, 255, 255, .97);
  stroke-width: 5px;
  stroke-linejoin: round;
  font-family: "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  font-weight: 900;
}
.meeting-route-label { fill: #4f6077; font-size: 17px; }
.meeting-scale-note { fill: #68778c; font-size: 16px; }
.meeting-person-label { font-size: 20px; }
.meeting-person-a .meeting-person-label { fill: #087b73; }
.meeting-person-b .meeting-person-label { fill: #bd571e; }
.meeting-person-a .person-head { fill: #79d2c7; stroke: #176e67; }
.meeting-person-b .person-head { fill: #f4ad74; stroke: #9d481c; }
.meeting-person-a .person-stroke { stroke: #087b73; }
.meeting-person-b .person-stroke { stroke: #c25c22; }
.meeting-person-leader {
  stroke: #8795a7;
  stroke-width: 1.5;
  stroke-dasharray: 3 3;
  vector-effect: non-scaling-stroke;
}
.meeting-node-a circle {
  fill: #fff;
  stroke: #168c83;
  stroke-width: 3;
  vector-effect: non-scaling-stroke;
}
.meeting-node-b polygon {
  fill: #fff8f1;
  stroke: #e37632;
  stroke-width: 3;
  vector-effect: non-scaling-stroke;
}
.meeting-node-leader {
  stroke: #a0a9b5;
  stroke-width: 1.2;
  stroke-dasharray: 3 3;
  vector-effect: non-scaling-stroke;
}
.meeting-node-label { fill: #4d5c70; font-size: 15px; }
.meeting-node-label.is-a { fill: #087b73; }
.meeting-node-label.is-b { fill: #ae4d19; }
.meeting-node-key {
  fill: #66758a;
  paint-order: stroke;
  stroke: rgba(255, 255, 255, .97);
  stroke-width: 5px;
  font-family: "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  font-size: 15px;
  font-weight: 900;
}
.meeting-point circle {
  fill: #fff;
  stroke: #774fb4;
  stroke-width: 4;
  vector-effect: non-scaling-stroke;
}
.meeting-point-label { fill: #6840a1; font-size: 18px; }

.meeting-evidence { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.meeting-journey-lab .case-button strong { font-size: 11px; }
.meeting-journey-lab .case-button span { font-size: 8px; }
.meeting-journey-lab .primary-action,
.meeting-journey-lab .reset-button,
.meeting-journey-lab .case-button { min-height: 44px; }

@media (max-width: 1100px) and (min-width: 981px) {
  .meeting-journey-lab .lab-grid { grid-template-columns: minmax(0, 2.3fr) minmax(360px, 1fr); }
  .meeting-journey-lab .journey-targets { gap: 8px; }
  .meeting-journey-lab .journey-targets strong { font-size: 13px; }
}

@media (max-width: 980px) {
  .meeting-journey-lab .lab-grid { grid-template-columns: 1fr; }
  .meeting-journey-lab .control-heading { grid-column: 1 / -1; }
  .meeting-journey-lab .journey-formula-zone { grid-column: 1 / -1; }
}

@media (max-width: 720px) {
  .meeting-journey-lab .meeting-status { align-items: flex-start; flex-direction: column; gap: 3px; }
  .meeting-journey-lab .journey-targets { width: 100%; justify-content: space-between; }
  .meeting-journey-lab .meeting-scene,
  .meeting-journey-lab .meeting-scene svg { min-height: 244px; height: 244px; }
}

@media (max-width: 430px) {
  .meeting-page .tool-heading h1 {
    max-width: 100%;
    font-size: 23px;
    letter-spacing: -.025em;
    line-height: 1.22;
    text-wrap: balance;
  }
  .meeting-journey-lab .journey-targets span { min-width: 0; }
  .meeting-journey-lab .journey-targets strong { font-size: 12px; }
  .meeting-journey-lab .meeting-scene,
  .meeting-journey-lab .meeting-scene svg { min-height: 224px; height: 224px; }
  .meeting-evidence { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .meeting-evidence span { min-height: 44px; grid-template-columns: 1fr; }
  .meeting-journey-lab .case-button strong { font-size: 9px; }
  .meeting-journey-lab .case-button span { font-size: 7px; }
  .meeting-node-label { font-size: 22px; stroke-width: 6px; }
  .meeting-node-key { font-size: 19px; stroke-width: 6px; }
}

@media (prefers-reduced-motion: reduce) {
  .meeting-person-a,
  .meeting-person-b,
  .meeting-walked-a,
  .meeting-walked-b,
  .meeting-gap { transition: none !important; }
}
