.route-day-body { width: 100%; max-width: 100%; overflow-x: clip; background: #f3f7fa; color: #102746; }
.route-day-page { width: min(1440px, calc(100% - 48px)); max-width: 100%; min-width: 0; margin: 0 auto; padding: 24px 0 30px; overflow-x: clip; }
.route-day-page *, .route-day-page *::before, .route-day-page *::after { min-width: 0; box-sizing: border-box; }
.route-day-page h1, .route-day-page h2, .route-day-page h3, .route-day-stat-grid strong { font-family: Georgia, "Times New Roman", serif; }
.route-day-page p, .route-day-page a, .route-day-page span, .route-day-page dd { overflow-wrap: break-word; }
.route-day-breadcrumb { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 18px; color: #66758a; font-size: .9rem; }
.route-day-breadcrumb a { color: #315d9d; text-decoration: none; }
.route-day-breadcrumb strong { color: #102746; }
.route-day-kicker { margin: 0 0 10px; color: #a62828; font-size: .76rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.route-day-hero { display: grid; grid-template-columns: minmax(0, 1.42fr) minmax(310px, .58fr); gap: 16px; }
.route-day-intro, .route-day-picker, .route-day-record, .route-day-section, .route-day-civic { border: 1px solid #d4dfeb; border-radius: 24px; background: #fff; }
.route-day-intro { position: relative; overflow: hidden; padding: clamp(38px, 6vw, 78px); background: radial-gradient(circle at 92% 18%, rgba(206,48,55,.12) 0 13%, transparent 13.2%), linear-gradient(135deg, #fff 20%, #f7fbff 100%); }
.route-day-intro::after { position: absolute; right: -30px; bottom: 18px; width: 40%; height: 5px; border-radius: 10px; background: #cf3037; content: ""; opacity: .85; }
.route-day-intro h1 { max-width: 900px; margin: 0; font-size: clamp(3.1rem, 6.3vw, 6.7rem); line-height: .92; letter-spacing: -.055em; }
.route-day-intro > p:not(.route-day-kicker) { max-width: 780px; margin: 22px 0 0; color: #495d78; font-size: clamp(1.08rem, 1.6vw, 1.35rem); line-height: 1.52; }
.route-day-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.route-day-actions a { padding: 12px 15px; border: 1px solid #b9c9d9; border-radius: 12px; color: #174f86; background: #fff; font-weight: 850; text-decoration: none; }
.route-day-actions a:last-child { border-color: #c83238; color: #fff; background: #c83238; }
.route-day-picker { padding: 26px; color: #fff; background: #142b4d; }
.route-day-picker label { display: block; margin-bottom: 11px; font-size: .78rem; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.route-day-picker > div { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 8px; }
.route-day-picker > div > span { display: grid; place-items: center; border-radius: 12px; background: #d3343a; font-size: 1.2rem; font-weight: 900; }
.route-day-picker select { width: 100%; min-height: 54px; padding: 0 13px; border: 0; border-radius: 12px; color: #102746; background: #fff; font: inherit; font-weight: 800; }
.route-day-picker p { margin: 16px 0 0; color: #d9e5f1; line-height: 1.5; }
.route-day-record, .route-day-section { margin-top: 16px; padding: clamp(26px, 4.5vw, 58px); }
.route-day-record-heading, .route-day-section-heading { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(280px, .55fr); gap: clamp(28px, 6vw, 90px); align-items: end; }
.route-day-record-heading h2, .route-day-section h2, .route-day-civic h2 { margin: 0; font-size: clamp(2.2rem, 4vw, 4.35rem); line-height: .98; letter-spacing: -.04em; }
.route-day-record-heading > div:first-child > p:last-child, .route-day-section-heading > p { margin: 15px 0 0; color: #52657d; font-size: 1.04rem; line-height: 1.6; }
.route-day-coverage { display: grid; grid-template-columns: 12px minmax(0, 1fr); column-gap: 10px; align-items: center; padding: 17px; border-radius: 15px; background: #eef4f9; }
.route-day-status { grid-row: 1 / 3; width: 12px; height: 12px; border-radius: 50%; background: #d39b23; box-shadow: 0 0 0 5px rgba(211,155,35,.12); }
.route-day-status.is-strong { background: #3d8b52; box-shadow: 0 0 0 5px rgba(61,139,82,.13); }
.route-day-status.is-limited { background: #c83238; box-shadow: 0 0 0 5px rgba(200,50,56,.12); }
.route-day-status.is-loading { animation: route-day-pulse 1.2s infinite; }
.route-day-coverage strong { font-size: 1rem; }
.route-day-coverage small { color: #63758b; }
.route-day-chart-wrap { width: 100%; min-height: 350px; margin-top: 30px; overflow: hidden; border: 1px solid #d7e1ec; border-radius: 18px; background: linear-gradient(#fbfdff, #f3f8fb); }
.route-day-chart { display: block; width: 100%; height: auto; min-height: 350px; }
.route-chart-grid line { stroke: #dce5ee; stroke-width: 1; }
.route-chart-grid text, .route-chart-axis-label { fill: #64758a; font-family: Arial, sans-serif; font-size: 14px; }
.route-chart-lines polyline { fill: none; stroke: #244f88; stroke-width: 5; stroke-linecap: round; stroke-linejoin: round; }
.route-chart-lines .route-chart-comparison { stroke: #c89022; stroke-width: 3; stroke-dasharray: 8 9; opacity: .72; }
.route-chart-dots circle { fill: #fff; stroke: #244f88; stroke-width: 3; }
.route-day-loading, .route-day-empty { display: grid; min-height: 350px; place-content: center; padding: 30px; text-align: center; }
.route-day-loading span { width: 36px; height: 36px; margin: 0 auto 12px; border: 4px solid #dce5ee; border-top-color: #c83238; border-radius: 50%; animation: route-day-spin 1s linear infinite; }
.route-day-loading p, .route-day-empty p { margin: 8px 0 0; color: #617289; }
.route-day-empty strong { font-size: 1.2rem; }
.route-day-legend { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 14px; color: #52657d; font-size: .85rem; }
.route-day-legend span { display: flex; align-items: center; gap: 7px; }
.route-day-legend i { display: inline-block; width: 24px; height: 4px; border-radius: 6px; background: #244f88; }
.route-day-legend .legend-comparison { height: 0; border-top: 3px dashed #c89022; background: transparent; }
.route-day-legend .legend-gap { height: 0; border-top: 3px dotted #8a98a9; background: transparent; }
.route-day-stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-top: 28px; }
.route-day-stat-grid article { padding: 20px; border-radius: 15px; background: #f2f6f9; }
.route-day-stat-grid span { color: #a62828; font-size: .72rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.route-day-stat-grid strong { display: block; margin-top: 15px; font-size: clamp(2.7rem, 4vw, 4.2rem); line-height: .85; }
.route-day-stat-grid p { margin: 9px 0 0; color: #617289; }
.route-day-section-heading > p { margin: 0; }
.route-dayparts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-top: 30px; }
.route-daypart { position: relative; padding: 22px; border-top: 4px solid #cf3037; border-radius: 5px 5px 16px 16px; background: #f3f7fa; }
.route-daypart.is-empty { opacity: .62; }
.route-daypart-icon { display: grid; width: 44px; height: 44px; place-items: center; margin-bottom: 18px; border-radius: 13px; color: #1c6daa; background: #e4f2fc; }
.route-daypart-icon svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.route-daypart > span, .route-moment-list small { color: #a62828; font-size: .7rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.route-daypart h3 { margin: 8px 0 20px; font-size: 1.3rem; }
.route-daypart strong { display: block; font-size: 2.5rem; line-height: 1; }
.route-daypart p { margin: 4px 0 15px; color: #52657d; }
.route-daypart small { color: #68798d; line-height: 1.4; }
.route-day-moments { background: #142b4d; color: #fff; }
.route-day-moments h2, .route-day-moments .route-day-section-heading > p { color: #fff; }
.route-moment-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 30px; }
.route-moment-list article { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 15px; padding: 22px; border-radius: 16px; color: #102746; background: #fff; }
.route-moment-list article > span { display: grid; width: 43px; height: 43px; place-items: center; border-radius: 50%; color: #fff; background: #cf3037; font-size: .76rem; font-weight: 900; }
.route-moment-list h3 { margin: 7px 0; font-size: 1.45rem; }
.route-moment-list p { margin: 0; color: #5b6c82; line-height: 1.5; }
.route-day-civic { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: clamp(24px, 5vw, 70px); align-items: center; margin-top: 16px; padding: clamp(34px, 6vw, 74px); background: linear-gradient(135deg, #fff 0%, #fff2f3 100%); }
.route-day-civic-icon { display: grid; aspect-ratio: 1; place-items: center; border-radius: 34px; color: #cf3037; background: #fff; box-shadow: 0 16px 45px rgba(19,43,76,.12); }
.route-day-civic-icon svg { width: 78%; height: 78%; }
.route-day-civic p:last-child { max-width: 900px; margin: 20px 0 0; color: #50637b; font-size: 1.08rem; line-height: 1.65; }
.route-day-evidence dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 30px 0 0; }
.route-day-evidence dl div { padding: 20px; border-radius: 15px; background: #f2f6f9; }
.route-day-evidence dt { color: #a62828; font-weight: 900; }
.route-day-evidence dd { margin: 9px 0 0; color: #53657b; line-height: 1.5; }
.route-day-occupancy { overflow: hidden; }
.route-occupancy-content { margin-top: 30px; }
.route-occupancy-heading { grid-template-columns: minmax(0,1fr) minmax(430px,.72fr); align-items: start; }
.route-occupancy-guide { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.route-occupancy-guide article { display: flex; gap: 10px; align-items: center; min-width: 0; padding: 12px; border: 1px solid #d9e3eb; border-radius: 13px; background: #f7fafc; }
.route-occupancy-guide article.not-busy { border-top: 4px solid #3f8b55; }
.route-occupancy-guide article.busy { border-top: 4px solid #d39b23; }
.route-occupancy-guide article.very-busy { border-top: 4px solid #c83238; }
.route-occupancy-guide strong,.route-occupancy-guide small { display: block; }
.route-occupancy-guide strong { color: #152d4f; font-size: .82rem; }
.route-occupancy-guide small { margin-top: 3px; color: #65768a; font-size: .68rem; line-height: 1.25; }
.route-occupancy-guide > p { grid-column: 1 / -1; margin: 5px 0 0; color: #596c82; font-size: .86rem; line-height: 1.45; }
.route-occupancy-density { display: grid; grid-template-columns: repeat(2,7px); gap: 3px; flex: 0 0 auto; width: 28px; height: 28px; place-content: center; border-radius: 8px; background: #e7eef4; }
.route-occupancy-density i { width: 7px; height: 7px; border-radius: 50%; background: #c0cad4; }
.route-occupancy-guide .not-busy .route-occupancy-density i:first-child { background: #3f8b55; }
.route-occupancy-guide .busy .route-occupancy-density i:nth-child(-n+3) { background: #d39b23; }
.route-occupancy-guide .very-busy .route-occupancy-density i { background: #c83238; }
.route-occupancy-unavailable { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 18px; align-items: center; min-height: 150px; padding: 28px; border: 1px solid #d8e3ec; border-radius: 18px; background: #f4f8fb; }
.route-occupancy-unavailable strong { font: 700 1.45rem Georgia, "Times New Roman", serif; }
.route-occupancy-unavailable p { margin: 8px 0 0; color: #596c82; line-height: 1.55; }
.route-occupancy-icon { display: grid; width: 58px; height: 58px; place-items: center; border-radius: 17px; color: #fff; background: #244f88; font-weight: 900; }
.route-occupancy-building { overflow: hidden; border: 1px solid #d8e3ec; border-radius: 18px; background: #fff; }
.route-occupancy-building-head { display: flex; justify-content: space-between; gap: 24px; align-items: center; padding: 24px 26px; color: #fff; background: #142b4d; }
.route-occupancy-building-head h3 { margin: 3px 0 0; color: #fff; font: 700 2rem/1.05 Georgia, "Times New Roman", serif; }
.route-occupancy-building-head p:not(.route-day-kicker) { margin: 7px 0 0; color: #c9d8e7; }
.route-occupancy-building-head > span { flex: 0 0 auto; padding: 9px 13px; border: 1px solid #52749c; border-radius: 99px; color: #e7f0f8; font-size: .78rem; font-weight: 850; }
.route-occupancy-snapshot { padding: 26px; background: linear-gradient(135deg,#f5f9fc 0%,#fff 70%); }
.route-occupancy-snapshot-summary { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 8px 14px; align-items: baseline; }
.route-occupancy-snapshot-summary strong { color: #102a4c; font: 700 2.4rem/.9 Georgia,"Times New Roman",serif; }
.route-occupancy-snapshot-summary span { color: #50647b; }
.route-occupancy-snapshot-summary b { color: #315d9d; font-size: .82rem; }
.route-occupancy-snapshot-bar { display: flex; height: 18px; margin-top: 18px; overflow: hidden; border-radius: 99px; background: #e1e7ed; }
.route-occupancy-snapshot-bar i { display: block; height: 100%; }
.route-occupancy-snapshot-bar .not-busy { background: #3f8b55; }
.route-occupancy-snapshot-bar .busy { background: #d39b23; }
.route-occupancy-snapshot-bar .very-busy { background: #c83238; }
.route-occupancy-snapshot-stats { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-top: 18px; }
.route-occupancy-snapshot-stat { padding: 16px; border: 1px solid #dce5ed; border-top: 4px solid #3f8b55; border-radius: 13px; background: #fff; }
.route-occupancy-snapshot-stat.busy { border-top-color: #d39b23; }
.route-occupancy-snapshot-stat.very-busy { border-top-color: #c83238; }
.route-occupancy-snapshot-stat span,.route-occupancy-snapshot-stat small { display: block; color: #64758a; }
.route-occupancy-snapshot-stat span { font-size: .78rem; font-weight: 900; text-transform: uppercase; }
.route-occupancy-snapshot-stat strong { display: block; margin: 7px 0 3px; color: #102a4c; font: 700 2rem/1 Georgia,"Times New Roman",serif; }
.route-occupancy-snapshot-stat small { line-height: 1.35; }
.route-occupancy-missing { margin: 17px 0 0; color: #596c82; line-height: 1.5; }
.route-occupancy-evidence-progress { padding: 22px 26px; border-top: 1px solid #d8e3ec; }
.route-occupancy-evidence-progress > div:first-child { display: flex; justify-content: space-between; gap: 18px; }
.route-occupancy-evidence-progress span { color: #596c82; }
.route-occupancy-evidence-progress > p { margin: 12px 0 0; color: #596c82; line-height: 1.5; }
.route-occupancy-progress { height: 9px; margin-top: 12px; overflow: hidden; border-radius: 99px; background: #dfe7ee; }
.route-occupancy-progress i { display: block; height: 100%; border-radius: inherit; background: #3272bd; }
.route-occupancy-building > .route-occupancy-progress { margin: 22px 26px 0; }
.route-occupancy-building > p { margin: 15px 26px 22px; color: #596c82; line-height: 1.5; }
.route-occupancy-building-foot { display: flex; justify-content: space-between; gap: 20px; align-items: center; padding: 17px 26px; border-top: 1px solid #d8e3ec; background: #f4f8fb; color: #596c82; font-size: .86rem; }
.route-occupancy-building-foot a { flex: 0 0 auto; color: #315d9d; font-weight: 850; }
.route-occupancy-overview { display: flex; justify-content: space-between; gap: 24px; align-items: center; padding: 24px; border-radius: 18px 18px 0 0; color: #fff; background: #142b4d; }
.route-occupancy-overview > div:first-child { display: grid; grid-template-columns: auto 1fr; gap: 4px 16px; align-items: end; }
.route-occupancy-overview > div:first-child span { grid-column: 1 / -1; color: #b9cce0; font-size: .72rem; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.route-occupancy-overview strong { font: 700 3.4rem/.9 Georgia, "Times New Roman", serif; }
.route-occupancy-overview p { max-width: 580px; margin: 0; color: #d8e5f1; line-height: 1.5; }
.route-occupancy-key { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px 16px; }
.route-occupancy-key span { display: flex; gap: 6px; align-items: center; color: #e5edf5; font-size: .78rem; }
.route-occupancy-key i { width: 10px; height: 10px; border-radius: 50%; }
.route-occupancy-categories { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: #d9e3ec; }
.route-occupancy-category { padding: 24px; background: #fff; }
.route-occupancy-category > div { display: flex; gap: 9px; align-items: center; }
.route-occupancy-category i { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; color: #fff; background: #3f8b55; font-style: normal; font-size: .78rem; font-weight: 900; }
.route-occupancy-category.busy i { background: #d39b23; }
.route-occupancy-category.very-busy i { background: #c83238; }
.route-occupancy-category span { font-weight: 900; }
.route-occupancy-category strong { display: block; margin-top: 20px; font: 700 3rem/.9 Georgia, "Times New Roman", serif; }
.route-occupancy-category p { margin: 9px 0 4px; color: #51657c; }
.route-occupancy-category small { color: #718096; }
.route-occupancy-dayparts { padding: 28px; border: 1px solid #d8e3ec; border-top: 0; }
.route-occupancy-dayparts > header { display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, .55fr); gap: 30px; align-items: end; }
.route-occupancy-dayparts h3 { margin: 0; font-size: 2rem; }
.route-occupancy-dayparts > header > p { margin: 0; color: #596c82; line-height: 1.5; }
.route-occupancy-dayparts > div { display: grid; gap: 16px; margin-top: 24px; }
.route-occupancy-dayparts article header { display: flex; justify-content: space-between; gap: 15px; align-items: end; }
.route-occupancy-dayparts article header span { display: block; margin-top: 3px; color: #718096; font-size: .8rem; }
.route-occupancy-dayparts article header b { color: #315d9d; font-size: .82rem; }
.route-occupancy-bar { display: flex; height: 14px; margin-top: 9px; overflow: hidden; border-radius: 99px; background: #e2e8ee; }
.route-occupancy-bar i { display: block; height: 100%; }
.route-occupancy-bar .not-busy, .route-occupancy-key .not-busy { background: #3f8b55; }
.route-occupancy-bar .busy, .route-occupancy-key .busy { background: #d39b23; }
.route-occupancy-bar .very-busy, .route-occupancy-key .very-busy { background: #c83238; }
.route-occupancy-bar .unavailable, .route-occupancy-key .unavailable { background: #9ba7b4; }
.route-occupancy-dayparts article > p { margin: 6px 0 0; color: #718096; font-size: .8rem; }
.route-occupancy-content > footer { display: flex; justify-content: space-between; gap: 25px; align-items: center; padding: 18px 22px; border: 1px solid #d8e3ec; border-top: 0; border-radius: 0 0 18px 18px; background: #f4f8fb; }
.route-occupancy-content > footer p { max-width: 760px; margin: 0; color: #596c82; line-height: 1.5; }
.route-occupancy-content > footer a { flex: 0 0 auto; color: #315d9d; font-weight: 850; }
@keyframes route-day-spin { to { transform: rotate(360deg); } }
@keyframes route-day-pulse { 50% { opacity: .35; } }
@media (max-width: 1000px) {
  .route-day-hero, .route-day-record-heading, .route-day-section-heading { grid-template-columns: 1fr; }
  .route-day-stat-grid, .route-dayparts, .route-day-evidence dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .route-occupancy-dayparts > header { grid-template-columns: 1fr; }
  .route-occupancy-guide { max-width: 680px; }
}
@media (max-width: 680px) {
  .route-day-page { width: calc(100% - 20px); padding-top: 14px; }
  .route-day-intro, .route-day-picker, .route-day-record, .route-day-section, .route-day-civic { border-radius: 18px; }
  .route-day-intro, .route-day-record, .route-day-section { padding: 27px 17px; }
  .route-day-intro h1 { font-size: clamp(2.75rem, 14vw, 4rem); }
  .route-day-actions { display: grid; }
  .route-day-actions a { text-align: center; }
  .route-day-picker { padding: 19px; }
  .route-day-picker > div { grid-template-columns: 52px minmax(0, 1fr); }
  .route-day-chart-wrap, .route-day-loading, .route-day-empty { min-height: 250px; }
  .route-day-chart { width: 100%; min-height: 0; }
  .route-day-stat-grid, .route-dayparts, .route-moment-list, .route-day-evidence dl { grid-template-columns: 1fr; }
  .route-day-stat-grid { grid-template-columns: 1fr 1fr; }
  .route-day-stat-grid article { padding: 16px; }
  .route-day-stat-grid strong { font-size: 2.5rem; }
  .route-day-civic { grid-template-columns: 1fr; padding: 30px 20px; }
  .route-day-civic-icon { width: 90px; border-radius: 24px; }
  .route-moment-list article { grid-template-columns: 42px minmax(0, 1fr); padding: 18px; }
  .route-occupancy-overview, .route-occupancy-content > footer { align-items: flex-start; flex-direction: column; }
  .route-occupancy-overview > div:first-child { grid-template-columns: 1fr; }
  .route-occupancy-key { justify-content: flex-start; }
  .route-occupancy-categories { grid-template-columns: 1fr; }
  .route-occupancy-dayparts { padding: 24px 17px; }
  .route-occupancy-unavailable { grid-template-columns: 48px minmax(0, 1fr); padding: 22px 17px; }
  .route-occupancy-icon { width: 46px; height: 46px; border-radius: 14px; }
  .route-occupancy-building-head,.route-occupancy-building-foot,.route-occupancy-evidence-progress > div:first-child { align-items: flex-start; flex-direction: column; }
  .route-occupancy-building-head,.route-occupancy-snapshot,.route-occupancy-evidence-progress { padding: 21px 17px; }
  .route-occupancy-building-head h3 { font-size: 1.7rem; }
  .route-occupancy-snapshot-summary { grid-template-columns: 1fr auto; }
  .route-occupancy-snapshot-summary span { grid-column: 1 / -1; grid-row: 2; }
  .route-occupancy-snapshot-summary b { grid-column: 2; grid-row: 1; }
  .route-occupancy-snapshot-stats { grid-template-columns: 1fr; }
  .route-occupancy-building-foot { padding: 17px; }
  .route-occupancy-building > .route-occupancy-progress { margin-right: 17px; margin-left: 17px; }
  .route-occupancy-building > p { margin-right: 17px; margin-left: 17px; }
  .route-occupancy-guide { grid-template-columns: 1fr; gap: 7px; }
  .route-occupancy-guide > p { grid-column: auto; margin-top: 8px; }
  .route-occupancy-guide article { padding: 11px 12px; }
}
@media (max-width: 390px) { .route-day-stat-grid { grid-template-columns: 1fr; } }
@supports not (overflow: clip) { .route-day-body, .route-day-page { overflow-x: hidden; } }
