/* Taxi demand page. Ported from improve/sydney_page_template.html of the research repository,
   in MiliRoute colours (Ocean ramp; Tangerine marks the chosen area). Everything is scoped to .td-page. */
.td-page{
  --td-bg:#F4F8F9; --td-surface:#FFFFFF; --td-ink:#10222B; --td-muted:#4F626C; --td-line:#D3DEE3; --td-soft:#E6EFF2;
  --td-sel:#FF8A2B; --td-bar:#0A7A9C; --td-link:#086783;
  --td-note-bg:#FFF4E6; --td-note-ink:#5A3300; --td-note-line:#F2C08A;
  --r0:#EEF6F8; --r1:#CDE6EC; --r2:#9FCFDB; --r3:#64B0C4; --r4:#2E8CA8; --r5:#0A6585; --r6:#073F5C;
  background:var(--td-bg); color:var(--td-ink); font-family:'Inter',system-ui,sans-serif; font-size:16px; line-height:1.5;
  padding:96px 0 48px;
}
@media (prefers-color-scheme: dark){ .td-page:not([data-theme="light"]){
  --td-bg:#0D161C; --td-surface:#14212A; --td-ink:#E6EEF2; --td-muted:#9AAEB9; --td-line:#283A43; --td-soft:#1B2C36;
  --td-sel:#FFA45C; --td-bar:#4FB3CC; --td-link:#7FD0E3;
  --td-note-bg:#2C2112; --td-note-ink:#F4D9B2; --td-note-line:#6B4A1E;
  --r0:#16303B; --r1:#1B4C60; --r2:#1F6E8A; --r3:#2A93AF; --r4:#4FB8C8; --r5:#92DADC; --r6:#DDFAF6; color-scheme:dark }}
.td-page[data-theme="dark"]{
  --td-bg:#0D161C; --td-surface:#14212A; --td-ink:#E6EEF2; --td-muted:#9AAEB9; --td-line:#283A43; --td-soft:#1B2C36;
  --td-sel:#FFA45C; --td-bar:#4FB3CC; --td-link:#7FD0E3;
  --td-note-bg:#2C2112; --td-note-ink:#F4D9B2; --td-note-line:#6B4A1E;
  --r0:#16303B; --r1:#1B4C60; --r2:#1F6E8A; --r3:#2A93AF; --r4:#4FB8C8; --r5:#92DADC; --r6:#DDFAF6; color-scheme:dark }
.td-page *{box-sizing:border-box}
.td-page [hidden]{display:none!important}
.td-wrap{max-width:1240px;margin:0 auto;padding:0 16px}
.td-page a{color:var(--td-link);text-underline-offset:2px}
.td-page h1,.td-page h2,.td-page h3{font-family:'Nunito','Inter',sans-serif;color:var(--td-ink);letter-spacing:-.01em}
.td-page h1{font-weight:800;font-size:clamp(30px,5vw,46px);line-height:1.08;margin:6px 0 8px}
.td-page h2{font-weight:800;font-size:clamp(23px,3vw,30px);margin:0 0 10px}
.td-page h3{font-weight:700;font-size:19px;margin:18px 0 8px}
.td-crumbs ol{list-style:none;display:flex;gap:6px;padding:0;margin:0;font-size:14px;color:var(--td-muted)}
.td-crumbs li+li::before{content:"\203A";margin-right:6px}
.td-sub{font-size:18px;color:var(--td-muted);margin:0 0 12px;max-width:70ch}
.td-answer{font-size:18px;max-width:80ch;margin:0 0 14px}
.td-notice{background:var(--td-note-bg);color:var(--td-note-ink);border:1px solid var(--td-note-line);border-radius:10px;padding:12px 16px;max-width:86ch;margin:0 0 10px}
.td-version{font-size:14px;color:var(--td-muted);margin:0 0 8px}
.td-section{margin-top:44px}
.td-lead{max-width:80ch;margin:0 0 14px}
.td-small{font-size:14px;color:var(--td-muted)}
.td-lab{display:block;font-size:13px;text-transform:uppercase;letter-spacing:.07em;color:var(--td-muted);font-weight:700;margin-bottom:6px}
.td-step{margin:0 0 16px}
.td-seg{display:inline-flex;flex-wrap:wrap;border:1px solid var(--td-line);border-radius:10px;overflow:hidden;background:var(--td-surface)}
.td-seg button,.td-tabs button{font:inherit;font-size:15px;font-weight:600;color:var(--td-ink);background:transparent;border:0;border-right:1px solid var(--td-line);padding:10px 14px;min-height:44px;cursor:pointer}
.td-seg button:last-child,.td-tabs button:last-child{border-right:0}
.td-seg button[aria-pressed="true"],.td-tabs button[aria-pressed="true"]{background:var(--td-ink);color:var(--td-bg)}
.td-count{font-weight:500;opacity:.7;margin-left:4px}
.td-tabs{display:inline-flex;border:1px solid var(--td-line);border-radius:10px;overflow:hidden;background:var(--td-surface);margin:4px 0 14px}
.td-page button:focus-visible,.td-page input:focus-visible,.td-page select:focus-visible,.td-page a:focus-visible,.td-page summary:focus-visible{outline:3px solid var(--td-sel);outline-offset:2px}
.td-input,.td-page select{font:inherit;color:var(--td-ink);background:var(--td-surface);border:1px solid var(--td-line);border-radius:10px;padding:10px 12px;min-height:44px;max-width:100%}
#td-city-q{width:min(420px,100%);margin-bottom:10px}
.td-citylist{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.td-citylist a{display:inline-block;padding:8px 12px;border:1px solid var(--td-line);border-radius:999px;background:var(--td-surface);text-decoration:none;color:var(--td-ink);font-weight:600;min-height:44px;line-height:26px}
.td-citylist a[aria-current="true"]{background:var(--td-bar);border-color:var(--td-bar);color:#fff}
.td-citylist a[aria-current="true"] .td-region{color:#E8F6FA}
.td-region{font-weight:400;color:var(--td-muted)}
.td-explorer{margin:22px 0 0;background:var(--td-soft);border-radius:14px;padding:16px;min-width:0}
.td-ex-title{margin-top:0!important}
.td-msg{background:var(--td-surface);border:1px solid var(--td-line);border-radius:10px;padding:12px 14px}
.td-controls{display:flex;flex-wrap:wrap;gap:14px 26px;align-items:flex-end;margin-bottom:10px}
.td-ctl{display:flex;flex-direction:column;min-width:0}
.td-grow{flex:1 1 260px}
.td-timerow{display:flex;align-items:center;gap:12px}
.td-timerow input[type=range]{flex:1;min-width:110px;accent-color:var(--td-bar);height:32px}
.td-timerow output{font-variant-numeric:tabular-nums;font-weight:700;min-width:9em}
.td-btn{font:inherit;font-weight:600;background:var(--td-surface);color:var(--td-ink);border:1px solid var(--td-line);border-radius:10px;padding:9px 14px;min-height:44px;cursor:pointer}
.td-btn[aria-pressed="true"]{background:var(--td-ink);color:var(--td-bg)}
.td-totalrow{margin:4px 0 14px}
#td-total{width:12em;font-variant-numeric:tabular-nums}
.td-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:16px;align-items:start}
@media (max-width:900px){.td-grid{grid-template-columns:minmax(0,1fr)}}
.td-card{background:var(--td-surface);border:1px solid var(--td-line);border-radius:12px;padding:16px;min-width:0}
.td-side{display:flex;flex-direction:column;gap:16px;min-width:0}
.td-maphead{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin-bottom:8px}
.td-mt{font-family:'Nunito','Inter',sans-serif;font-weight:700;font-size:18px}
.td-scalesel{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--td-muted)}
.td-scalesel select{padding:6px 8px;min-height:36px;font-size:14px}
#td-map{display:block;width:100%;height:auto;max-height:78vh;margin:0 auto;touch-action:manipulation}
#td-map .sub,#td-map .halo,#td-map .ring{vector-effect:non-scaling-stroke}
#td-map .sub{stroke:var(--td-surface);stroke-width:.8px;cursor:pointer}
#td-map .sub:hover{stroke:var(--td-ink);stroke-width:2px}
#td-map .halo{fill:none;stroke:var(--td-ink);stroke-width:5.5px;pointer-events:none;stroke-linejoin:round}
#td-map .ring{fill:none;stroke:var(--td-sel);stroke-width:3px;pointer-events:none;stroke-linejoin:round}
#td-map text{font-family:'Inter',sans-serif;font-weight:700;fill:var(--td-ink);stroke:var(--td-surface);paint-order:stroke;pointer-events:none;text-anchor:middle}
.td-legend{margin-top:10px}
.td-legbar{height:10px;border-radius:5px}
.td-ticks{display:flex;justify-content:space-between;font-size:13px;color:var(--td-muted);font-variant-numeric:tabular-nums;margin-top:4px}
.td-legcap{font-size:13px;color:var(--td-muted);margin-top:2px}
.td-tip{position:fixed;z-index:1050;pointer-events:none;background:var(--td-ink);color:var(--td-bg);padding:6px 10px;border-radius:8px;font-size:14px;white-space:nowrap;font-variant-numeric:tabular-nums}
.td-pickrow{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;margin-bottom:10px}
.td-pickrow input{flex:1 1 180px}
.td-sname{font-family:'Nunito','Inter',sans-serif;font-weight:800;font-size:27px;line-height:1.1;margin:2px 0 6px}
.td-chips{display:flex;flex-wrap:wrap;gap:6px 14px;color:var(--td-muted);font-size:14px;margin-bottom:12px}
.td-big{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.td-big .num{font-family:'Nunito','Inter',sans-serif;font-weight:800;font-size:46px;line-height:1;font-variant-numeric:tabular-nums}
.td-big .unit{color:var(--td-muted)}
.td-fx{display:flex;flex-wrap:wrap;gap:6px 22px;margin:10px 0 14px;font-size:15px;font-variant-numeric:tabular-nums}
.td-chart{width:100%;height:auto;display:block}
.td-chart text{font-family:'Inter',sans-serif;font-size:16px;fill:var(--td-muted)}
.td-cap{font-size:13px;color:var(--td-muted);margin:2px 0 0}
.td-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;background:var(--td-surface)}
.td-table caption{caption-side:top;text-align:left;color:var(--td-muted);font-size:14px;padding:0 0 8px}
.td-table th,.td-table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--td-line);font-size:15px;vertical-align:top}
.td-table thead th{font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--td-muted);font-weight:700;position:sticky;top:0;background:var(--td-surface);white-space:nowrap}
.td-table thead th button{font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;background:none;border:0;padding:0;cursor:pointer;min-height:32px}
.td-table tbody th{font-weight:600}
.td-table .td-group th{background:var(--td-soft);font-family:'Nunito','Inter',sans-serif;font-size:16px}
.td-table .num{text-align:right}
.td-list-t tbody tr{cursor:pointer}
.td-list-t tbody tr:hover,.td-list-t tbody tr.on{background:var(--td-soft)}
.td-list-t .nmbox{display:flex;flex-direction:column;gap:3px}
.td-list-t .bar{display:block;height:5px;border-radius:3px;background:var(--td-bar)}
.td-scroll{max-height:600px;overflow:auto;border-radius:10px}
.td-compare-wrap{max-height:none}
.td-compare .td-short{min-width:22em;font-size:14px;color:var(--td-muted)}
.td-rk{color:var(--td-muted);width:2.4em}
.td-facts-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin-top:16px}
@media (max-width:900px){.td-facts-grid{grid-template-columns:minmax(0,1fr)}}
.td-facts-grid h3{margin-top:0}
.td-dl{margin:0}
.td-dl div{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 14px;padding:7px 0;border-bottom:1px solid var(--td-line)}
.td-dl dt{font-weight:600}
.td-dl dd{margin:0;text-align:right}
.td-findings{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.td-findings li{background:var(--td-surface);border:1px solid var(--td-line);border-radius:12px;padding:14px 16px}
.td-findings h3{margin-top:0;font-size:17px}
.td-findings p{margin:0}
.td-list{margin:0 0 12px;padding-left:20px}
.td-list li{margin:4px 0}
.td-qa{max-width:84ch}
.td-qa p{margin:0 0 6px}
.td-details{margin:6px 0 10px}
.td-details summary{cursor:pointer;font-weight:600;min-height:32px}
.td-dl-list{font-size:14px;padding-left:20px}
.td-cite{background:var(--td-surface);border:1px solid var(--td-line);border-radius:10px;padding:10px 14px;max-width:90ch}
.td-bib{background:var(--td-surface);color:var(--td-ink);border:1px solid var(--td-line);border-radius:10px;padding:10px 14px;font-size:13px;white-space:pre-wrap;word-break:break-word;max-width:90ch}
.td-foot{margin-top:40px;font-size:14px;color:var(--td-muted)}
.td-vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.td-more{margin-top:8px}
@media (max-width:600px){
  .td-page{padding-top:84px}
  .td-big .num{font-size:38px}
  .td-seg button,.td-tabs button{padding:9px 11px;font-size:14px}
  .td-dl dd{text-align:left}
  .td-compare .td-short{min-width:16em}
}
@media (prefers-reduced-motion: reduce){.td-page *{transition:none!important;scroll-behavior:auto!important}}
.td-linkbtn{font:inherit;color:var(--td-ink);background:none;border:0;padding:4px 0;text-align:left;cursor:pointer;min-height:32px}
.td-linkbtn:hover{text-decoration:underline}
h4.td-mt{margin:0 0 8px}
#td-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));width:min(100%,460px)}
#td-days button{padding:9px 4px;min-width:0;text-align:center}
.td-timerow{flex-wrap:wrap}
@media (max-width:600px){.td-timerow output{min-width:0}.td-ctl{width:100%}}
