/* Shared readability fixes, then a phone-first Plan / Map / My walk layout. */
h1{font-size:32px;line-height:1.2;letter-spacing:-.035em;overflow-wrap:normal;word-break:normal}
html[lang="de"] h1{letter-spacing:-.025em}
.brand{align-items:center;letter-spacing:-.6px;gap:11px}
.brand-mark{display:block;width:44px;height:44px;flex:0 0 44px;object-fit:contain;background:none;border-radius:12px}
.brand-city{letter-spacing:3px}
.place-field{padding:17px 14px;gap:12px;min-height:96px}
.place-letter{width:32px;height:32px;font-size:14px}
.place-input{flex:1;min-width:0}
.place-input label{font-size:14px;line-height:1.4;margin-bottom:3px}
.input-line{gap:0;min-height:44px}
.input-line input{font-size:16px;min-width:0;line-height:1.5;min-height:44px;padding:0}
.search-button{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;min-height:44px;font-size:26px;line-height:1;border-radius:9px}
.search-button:hover{background:#eaf4e5}
.swap{width:40px;height:40px;right:14px;font-size:23px;color:var(--forest);box-shadow:0 2px 7px #153c3010}
.place-help{font-size:13px;line-height:1.5;color:var(--muted);margin:12px 0 9px}
.place-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:8px;margin:0 0 24px}
.place-actions button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:10px 4px;min-height:80px;border:1px solid #dce6da;border-radius:10px;background:#f6faf3;font-size:14px;font-weight:550;line-height:1.35;text-align:center;white-space:normal;overflow-wrap:normal}
.place-actions button.active{background:#e4f1dc;border-color:var(--green);text-decoration:none}
.place-actions svg,.phone-nav svg{display:block;width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.place-actions button:focus-visible,.phone-nav button:focus-visible{outline:3px solid var(--green);outline-offset:3px}
#detour{min-height:44px;margin:10px 0 2px}
.control-heading{font-size:15px;line-height:1.4}
.control-heading output{font-size:14px;white-space:nowrap}
#detour-help{font-size:14px;line-height:1.6}
.primary{min-height:54px;font-size:17px;border-radius:11px}
.primary:disabled{opacity:.6;cursor:wait}
.phone-nav,.phone-route-card,.phone-notice,.phone-only{display:none}

@media (max-width:700px),(max-width:1000px) and (pointer:coarse){
  :root{--phone-header:68px;--phone-nav:72px}
  html,body{min-width:0;max-width:100%;overflow-x:clip}
  body{padding-bottom:calc(var(--phone-nav) + env(safe-area-inset-bottom));background:#f7faf5}
  .topbar{position:sticky;top:0;z-index:1100;height:calc(var(--phone-header) + env(safe-area-inset-top));padding:env(safe-area-inset-top) 16px 0;gap:10px}
  .brand{font-size:24px;gap:9px;flex-shrink:0}
  .brand-mark{width:42px;height:42px;flex-basis:42px}
  .brand-city{font-size:9px;letter-spacing:3px;margin-top:7px}
  .top-note,.beta{display:none}
  .header-actions{margin-left:auto;flex-shrink:0}
  #language{min-height:44px;font-size:15px;min-width:96px;max-width:104px;border-radius:9px}
  .workspace{display:block;height:auto;min-height:0}
  .planner{display:block;overflow:visible;width:100%;border:0;background:var(--paper)}
  .planner-content{padding:25px 18px 18px;max-width:560px;margin:0 auto}
  .eyebrow{font-size:10px;line-height:1.5;letter-spacing:1.25px;margin-bottom:13px}
  h1{font-size:31px;line-height:1.2;margin-bottom:12px;letter-spacing:-.035em}
  .intro{font-size:16px;line-height:1.6;margin:0 0 24px}
  .places{border-radius:14px;background:#fcfefb}
  .place-field{min-height:99px;padding:17px 13px;gap:10px}
  .place-actions{gap:8px;margin-bottom:22px}
  .preference{padding-top:20px;margin-bottom:23px}
  .range-labels{font-size:13px;line-height:1.5;gap:12px}
  .range-labels>span:last-child{text-align:right}
  .status{font-size:14px;line-height:1.6}
  .primary{min-height:56px;padding:16px 18px;font-size:17px}
  .phone-only{display:flex}
  .phone-map-open{justify-content:center;margin-top:18px;gap:9px}
  body[data-phone-view="plan"] .map-wrap,body[data-phone-view="walk"] .map-wrap{display:none}
  body[data-phone-view="plan"] #walk-choices,body[data-phone-view="plan"] #result,body[data-phone-view="plan"] #empty{display:none}
  body[data-phone-view="plan"] .feature-grid button:not([data-feature="circle"]):not([data-feature="accessibility"]){display:none}
  body[data-phone-view="walk"] .plan-intro,body[data-phone-view="walk"] #route-form,body[data-phone-view="walk"] .planner-content>#status{display:none}
  body[data-phone-view="walk"] .planner-content{padding-top:22px}
  body[data-phone-view="walk"] .walk-choices{border-top:0;margin-top:0;padding-top:0}
  body[data-phone-view="map"] .planner{display:none}
  body[data-phone-view="map"] .workspace{height:calc(100dvh - var(--phone-header) - var(--phone-nav) - env(safe-area-inset-top) - env(safe-area-inset-bottom));min-height:220px}
  body[data-phone-view="map"] .map-wrap{display:block;width:100%;height:100%;min-height:0;max-height:none;overflow:hidden}
  #map{height:100%;width:100%}
  .map-tools{top:14px;right:12px;border-radius:11px}
  .map-tools button{width:44px;height:46px;font-size:25px}
  .map-tools .phone-follow[aria-pressed="true"]{background:#e4f1d9;color:var(--forest)}
  .map-heading{top:14px;left:12px;max-width:calc(100% - 80px);padding:12px}
  .map-label{font-size:10px;line-height:1.5;letter-spacing:1px}
  #network-caption{font-size:13px;line-height:1.5}
  body.has-walk .map-heading,body.picking .map-heading{display:none}
  .map-legend{left:12px;bottom:26px;max-width:calc(100% - 24px);padding:10px 12px;font-size:12px;line-height:1.5;gap:8px 14px;border-radius:10px}
  .map-legend input{width:18px;height:18px}
  .map-legend label{min-height:30px}
  .map-legend .legend-line{width:19px}
  .map-instruction{top:14px;left:12px;right:68px;transform:none;max-width:none;width:auto;font-size:15px;line-height:1.5;gap:4px;padding:9px 8px 9px 13px}
  .map-instruction>span{flex:1;min-width:0}
  .map-instruction button{flex:0 0 44px;min-width:44px;min-height:44px;font-size:27px}
  .phone-route-card{display:block;position:absolute;top:14px;left:12px;right:68px;z-index:550;background:#fffffff5;border:1px solid #d5e3d1;border-radius:14px;padding:13px;box-shadow:0 5px 22px #1537271c}
  body.picking .phone-route-card{display:none}
  .phone-route-label{display:block;font-size:13px;line-height:1.4;color:var(--green);font-weight:650;margin-bottom:4px}
  #phone-route-summary{display:block;font-size:21px;line-height:1.35;color:var(--forest);letter-spacing:-.4px}
  .phone-route-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
  .phone-route-actions button{min-height:44px;border:1px solid #cbdfc4;border-radius:8px;padding:8px 5px;background:#eef6e9;color:var(--forest);font-size:14px;font-weight:650;line-height:1.35}
  #phone-start-walk{background:var(--forest);color:white;border-color:var(--forest)}
  .phone-guidance-status{font-size:14px;line-height:1.5;margin:9px 0 0;color:var(--ink);overflow-wrap:anywhere}
  .phone-notice{display:block;position:absolute;left:12px;right:12px;bottom:135px;z-index:650;padding:13px;border-radius:10px;background:#fff3e4;border:1px solid #eed5b5;color:#754518;font-size:14px;line-height:1.5}
  .phone-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));position:fixed;bottom:0;left:0;right:0;height:calc(var(--phone-nav) + env(safe-area-inset-bottom));padding:6px 10px calc(6px + env(safe-area-inset-bottom));z-index:1200;background:#fffffff8;border-top:1px solid #dce6d8;box-shadow:0 -4px 20px #153c300b;gap:6px}
  .phone-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:0;border-radius:10px;padding:5px 4px;background:none;color:#607064;font-size:14px;line-height:1.35;font-weight:550;min-height:54px}
  .phone-nav button[aria-current="page"]{background:#eaf4e2;color:var(--forest);font-weight:750}
  .phone-nav svg{width:23px;height:23px}
  .walk-choice{padding:16px 13px;border-radius:14px}
  .walk-choice-heading strong{font-size:18px;line-height:1.45}
  .walk-choice-time{font-size:28px}
  .walk-choice-detail{font-size:15px}
  .result{margin-top:25px;padding-top:24px}
  .result-heading{align-items:flex-start;flex-wrap:wrap}
  .result-heading h2{font-size:21px;letter-spacing:-.5px;line-height:1.4}
  .metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
  .metric strong{font-size:25px;line-height:1.4;letter-spacing:-.7px}
  .metric>span{font-size:13px;line-height:1.5}
  .step-info strong{font-size:15px;line-height:1.5}
  .step-info small,.step-distance,.route-comparison{font-size:14px;line-height:1.5}
  .route-details summary{font-size:15px;min-height:44px;padding-top:10px}
  .feature-tools{margin-top:25px;padding-top:24px}
  .feature-heading-row h2{font-size:18px;line-height:1.4}
  .feature-heading-row>span{display:none}
  .feature-grid{gap:10px}
  .feature-grid button{flex-direction:column;gap:9px;min-height:123px;padding:14px 12px;border-radius:12px;overflow-wrap:anywhere}
  .feature-icon{width:28px;height:28px;flex-basis:28px;font-size:19px}
  .feature-grid strong{font-size:15px;line-height:1.4}
  .feature-grid small{font-size:13px;line-height:1.5;margin-top:4px}
  .result-quick-actions{gap:9px}
  .result-quick-actions button{min-height:46px;font-size:15px;padding:10px 13px}
  .about summary{min-height:44px;font-size:15px;line-height:1.5;align-items:center}
  .about p{font-size:14px;line-height:1.7}
  .panel-footer{font-size:12px;padding:18px}
  .dialog-card{padding:20px 18px;max-height:calc(100dvh - 28px);border-radius:18px}
  .dialog-header h2{font-size:23px;line-height:1.3;overflow-wrap:anywhere}
  .dialog-close{width:44px;height:44px;flex:0 0 44px;font-size:25px}
  .dialog-card button,.dialog-card .share-buttons a{min-height:44px;font-size:15px;white-space:normal}
  .dialog-intro,.check-row strong{font-size:16px;line-height:1.6}
  .check-row small,.data-note,.dialog-status{font-size:14px;line-height:1.6}
  .dialog-card input,.dialog-card select,.dialog-card textarea{font-size:16px}
  .check-row input{width:22px;height:22px}
  .empty{padding:25px 8px}
  .empty h2{font-size:20px;line-height:1.4}
  .empty p{font-size:16px;line-height:1.7}
}

@media (max-height:500px) and (min-width:500px) and (pointer:coarse){
  .phone-route-card{right:auto;width:270px}
  .map-legend{left:auto;right:12px;max-width:calc(100% - 330px)}
  .map-instruction{right:auto;max-width:360px}
}
