/* Shared outdoor reading and touch rules. Loaded after component layouts. */
:root{--field-ink:#183d39;--field-muted:#405b52;--field-paper:#f6f7f2;--field-border:#82998b}
body,button,input,select,textarea{font-family:"Avenir Next","Segoe UI",Arial,sans-serif}
body{color:var(--field-ink)}
dialog{color:var(--field-ink);background:var(--field-paper);max-height:88dvh;overflow:auto;line-height:1.5}
dialog h2{font-size:24px;line-height:1.25;font-weight:600}dialog h3{font-size:19px;line-height:1.35;font-weight:600}
dialog p,dialog label,dialog input,dialog textarea,dialog select{font-size:16px;line-height:1.5}
dialog small,.bookmark-distance,#places-dialog .service-results>p{font-size:14px;line-height:1.5;color:var(--field-muted)}
dialog button,dialog a,dialog summary{touch-action:manipulation}
dialog button,dialog input,dialog select,.map-controls button{min-height:48px}
dialog button:focus-visible,dialog a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #42665a;outline-offset:3px}
#places-dialog .places-actions{display:flex;flex-wrap:wrap;gap:8px}
#places-dialog .places-actions button,#places-dialog .service-shortcuts button,#places-dialog .farm-options button{margin:0;min-height:48px;padding:10px 12px;font-size:15px;font-weight:600;border-color:var(--field-border)}
#places-dialog .service-shortcuts{gap:8px}
#places-dialog .service-results article{grid-template-columns:minmax(0,1fr);gap:10px;padding:18px 0}
#places-dialog .service-results article>strong{grid-column:1;grid-row:1;font-size:18px;line-height:1.4}
#places-dialog .service-results article>small{grid-column:1;grid-row:2;font-size:14px;color:var(--field-muted);margin:0}
#places-dialog .service-results article>.service-phones{grid-column:1;grid-row:3;padding-right:100px;align-self:start}
#places-dialog .service-results article>a.service-map-link{grid-column:1;grid-row:3;justify-self:end;width:88px;min-height:48px;height:48px;margin:0;padding:0 12px;font-size:16px;font-weight:600;border:1px solid var(--field-border);background:#f6f7f2;color:var(--field-ink)}
#places-dialog .service-results .service-phone-row{min-height:48px;gap:10px}
#places-dialog .service-results .service-phone-row>strong{font-size:16px;color:var(--field-ink);font-weight:500;letter-spacing:0}
#places-dialog .service-results .service-phone-row>button{min-width:64px;min-height:48px;height:48px;border:1px solid var(--field-border);font-size:16px;font-weight:600;background:#e8eee3}
#places-dialog .service-results .service-phone-row>button span{font-size:16px}
#places-dialog #place-list>div{padding:16px 0}#place-list small{margin:5px 0 8px;color:var(--field-muted)}
#handover button strong{font-size:17px}#handover button small{font-size:14px;color:var(--field-muted)}
#handover>button,#farm-picker .farm-options button{min-height:48px}
#mobile-search-panel .search,#mobile-search-panel #search-mode,#mobile-farm{min-height:48px;height:48px}
#mobile-search-panel #search{font-size:16px}#mobile-search-panel #search-submit{min-height:40px;width:40px}
#sos-dialog .sos-status{font-size:16px;color:var(--field-ink)}
#sos-dialog .sos-handle{min-height:48px}
@media(max-width:760px){
 header{gap:6px;flex-wrap:wrap}header .icon-btn,header .account-button,header .sos-button{min-width:44px;width:44px;height:44px;min-height:44px;padding:0;flex-shrink:0}
 header .account-button span{display:none}header .sensor-status button{min-width:40px;height:44px}header .sensor-status{gap:2px}
 dialog{padding:18px!important;width:calc(100vw - 24px);box-sizing:border-box}
 .map-controls button{width:48px;height:48px}
}
@media(max-width:400px){
 #places-dialog .service-results article>.service-phones{padding-right:0;grid-row:3}
 #places-dialog .service-results article>a.service-map-link{grid-row:4;width:100%}
}
#navigation-error button{display:block;width:100%;margin-top:10px;padding:12px;font-size:16px;border-radius:8px;box-sizing:border-box}
#navigation-error button:first-of-type{background:transparent;color:#183d39;border:1px solid #82998b}
#places-dialog .service-tabs{display:flex;gap:8px;margin:12px 0}
#places-dialog .service-tabs button{flex:1;margin:0;padding:10px;font-size:15px;min-height:48px}
#places-dialog .service-tabs button[aria-pressed=true],#places-dialog .fuel-filters button[aria-pressed=true]{border:2px solid #183d39;background:#e0ead7;font-weight:600}
#places-dialog .fuel-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0}
#places-dialog .fuel-filters button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:0;margin:0;padding:8px 3px;background:white;font-size:13px;border:1px solid #82998b}
#places-dialog .fuel-filters button:first-child{grid-column:1/-1;min-height:44px}
.fuel-logo{display:block;width:52px;height:70px;background-image:url('./assets/brands/fuel-logos.png');background-size:400% 100%;background-repeat:no-repeat}
/* Focused directory screens, following mobile list/navigation conventions. */
#places-dialog.service-page> :not(.service-results):not(#places-close){display:none!important}
#places-dialog.service-page .service-results{margin:0}
#places-dialog{background:#fff}
#places-dialog #places-close{width:44px;height:44px;min-height:44px;border:0;border-radius:50%;background:#edf1eb;margin:0 0 12px 12px;font-size:24px}
#places-dialog .service-page-head{display:flex;flex-direction:column;gap:16px;margin-bottom:20px}
#places-dialog .service-page-head h3{font-size:25px;font-weight:600;margin:0;line-height:1.2}
#places-dialog .service-page-head .service-back{align-self:flex-start;background:transparent;border:0;margin:0;padding:0 8px 0 0;min-height:44px;font-size:16px;color:#183d39}
#places-dialog .service-tabs{background:#edf1eb;padding:4px;border-radius:10px;gap:4px;margin-bottom:18px}
#places-dialog .service-tabs button{border:0;background:transparent;border-radius:7px;font-size:15px;font-weight:500}
#places-dialog .service-tabs button[aria-pressed=true]{background:#183d39;color:#fff;border:0;font-weight:600}
#places-dialog .service-results article{padding:18px 0;gap:8px;border-bottom:1px solid #dce3da}
#places-dialog .service-results article>strong{font-size:18px;line-height:1.35}
#places-dialog .service-results article>small{font-size:14px;color:#526157}
#places-dialog .service-results .service-phone-row>button{background:#183d39;color:white;border:0}
#places-dialog .service-results .service-phone-row>button span{color:white}
#places-dialog .service-results article>a.service-map-link{background:#edf1eb;border:0}
#places-dialog .service-shortcuts{display:flex;flex-direction:column;gap:0;border-top:1px solid #dce3da;border-bottom:1px solid #dce3da}
#places-dialog .service-shortcuts button{display:flex;align-items:center;justify-content:space-between;min-height:56px;border:0;border-bottom:1px solid #e6ebe3;border-radius:0;background:transparent;font-size:17px;font-weight:500;padding:12px 4px;text-align:left}
#places-dialog .service-shortcuts button:after{content:'›';font-size:24px;color:#526157}
#places-dialog .service-shortcuts button:last-child{border-bottom:0}
@media(max-width:760px){#places-dialog{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0;padding:20px!important}#places-dialog.service-page .service-result-list{padding-bottom:20px}}
/* Equal contact actions and an unmistakable Back button. */
#places-dialog .service-results .service-phone-row>button,
#places-dialog .service-results article>a.service-map-link{width:80px;min-width:80px;max-width:80px;height:48px;min-height:48px;padding:0;box-sizing:border-box;font-size:16px;font-weight:600;border-radius:8px;flex:0 0 80px}
#places-dialog .service-results article>.service-phones{padding-right:92px}
#places-dialog .service-page-head .service-back{display:inline-flex;align-items:center;justify-content:center;min-width:88px;min-height:48px;padding:0 16px;border:1px solid #82998b;border-radius:8px;background:#edf1eb;color:#183d39;font-size:16px;font-weight:600;box-sizing:border-box}
@media(max-width:400px){#places-dialog .service-results article>.service-phones{padding-right:0}}
/* Five consistent category icons, retaining screen-reader labels. */
#places-dialog .service-shortcuts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:12px 0;border:0}
#places-dialog .service-shortcuts button{display:flex;align-items:center;justify-content:center;padding:10px;min-width:0;min-height:56px;border:1px solid #ccd7c9;border-radius:10px;background:#edf1eb}
#places-dialog .service-shortcuts button:last-child{border-bottom:1px solid #ccd7c9}
#places-dialog .service-shortcuts button:after{content:none}
#places-dialog .service-shortcuts button svg{width:28px;height:28px;flex-shrink:0}
#places-dialog .service-shortcuts button:hover{background:#dde8d6;border-color:#82998b}
#places-dialog .service-shortcuts>button,
#places-dialog .service-shortcuts>button:first-child{grid-column:auto;grid-row:auto;width:100%;height:56px;min-height:56px;margin:0;box-sizing:border-box}
#places-dialog #places-close{display:flex;align-items:center;justify-content:center;padding:0;line-height:1;font-family:Arial,sans-serif;font-size:26px;box-sizing:border-box}
#places-dialog .places-more{margin:12px 0;text-align:right}
#places-dialog .places-more>summary{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 14px;border:1px solid #ccd7c9;border-radius:8px;cursor:pointer;font-size:15px;list-style:none}
#places-dialog .places-more>summary::-webkit-details-marker{display:none}
#places-dialog .places-more .places-actions{justify-content:flex-end;padding:8px 0}
#places-dialog .office-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0 18px}
#places-dialog .office-filters button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;margin:0;padding:14px;min-height:120px;background:white;border:1px solid #82998b;border-radius:10px;font-size:15px}
#places-dialog .office-filters button[aria-pressed=true]{border:2px solid #183d39;background:#edf1eb;font-weight:600}
#places-dialog .office-filters img{display:block;width:130px;max-width:100%;height:76px;object-fit:contain}
