/* Responsive refinements; all colors inherit the existing Pilski Kosz palette. */
.mobile-nav{display:none}
:where(button,.button,select,summary){min-height:44px}
:where(button,a,input,select,textarea,summary):focus-visible{outline:3px solid #85a852;outline-offset:3px}
:where(.view,.card,.hero-copy,.route-row>div,.top-actions){min-width:0}
:where(p,h1,h2,h3,strong,a){overflow-wrap:anywhere}
summary{cursor:pointer;align-content:center;font-weight:650;font-size:13px;padding:10px 0}
.ux-filters{border-top:1px solid var(--line);margin-top:16px}
.ux-filters>p:last-child{margin-bottom:12px}
.ux-filters label{display:block;margin-top:10px}
.ux-filters select,.ux-filters input{width:100%}
.sidebar{height:100dvh;overflow-y:auto;scrollbar-width:thin}
.sidebar .nav-item{min-height:44px}
#view-dashboard.has-address{display:flex;flex-direction:column}
.has-saved-address #view-dashboard{display:flex;flex-direction:column}
.has-saved-address #view-dashboard>.page-heading{display:none}
.has-saved-address #view-dashboard>.hero{order:-2;min-height:0}
.has-saved-address .hero-copy{padding:24px 30px;max-width:75%}
.has-saved-address .hero-badge,.has-saved-address .hero-foot{display:none}
.has-saved-address .hero h2{font-size:26px;margin-bottom:6px}
.has-saved-address .hero-copy>p#heroDescription{margin-bottom:12px}
.has-saved-address #heroNext{margin:0 0 10px}
.has-saved-address #heroNext .next-large{font-size:25px;line-height:1.3}
.has-saved-address #heroNext a{font-size:12px;margin-top:10px}
.has-saved-address .hero-copy:has(#heroNext:not([hidden])) #heroChoose{min-height:44px;padding:10px 14px;margin-bottom:10px}
#heroRemind{display:inline-flex;align-items:center;color:#fff;text-decoration:underline;padding:10px 12px;min-height:44px}
.business-entry{margin-top:12px}
.push-setup{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;margin-top:18px}
.push-setup .card{min-width:0}
.push-enable-step{grid-column:1/-1}
.push-enable-step #pushSave{display:block;margin-top:18px}
.push-rule{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(100px,1fr) 44px;gap:6px;align-items:stretch}
.push-rule>select,.push-rule>input,.push-rule>button{width:100%;min-width:0;height:48px;margin:0;padding:8px}
.push-rule>button{font-size:22px}
.push-rule+.push-rule{margin-top:10px}
.push-address p{font-size:13px;line-height:1.5;margin:6px 0}
.push-checks label,.report-kinds label{min-height:44px;display:flex;align-items:center;gap:8px}
.consent-label{align-items:flex-start;min-height:44px;line-height:1.6}
.consent-label input{flex:none;margin-top:5px}
#pushSetupHint:empty,#pushSavedHint:empty{display:none}
.directory-filters{display:flex;flex-wrap:wrap;gap:14px;align-items:start}
.directory-filters>label{flex:1;min-width:180px}
.directory-filters>label.grow{flex:2}
.directory-advanced{flex-basis:100%;margin-top:0}
.directory-advanced[open]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.directory-advanced>summary{grid-column:1/-1}
.route-row{align-items:center;gap:18px;padding:18px 0}
.route-row>div{flex:1}
.route-row h3{margin-bottom:6px}
.route-row .ux-filters{margin-top:6px}
.route-row .ux-filters p{font-size:13px;line-height:1.6}
.route-row>.button{flex-shrink:0;max-width:240px;white-space:normal}
#directoryMore,#guideMore{display:block;margin:22px auto}
.guide-explorer{padding:20px}
.guide-filter-details{margin-top:12px}
.guide-examples button,.guide-mode button,.guide-category{min-height:44px}
.waste-results{align-items:stretch}
.waste-answer{display:flex;flex-direction:column;gap:0}
.waste-answer h2{font-size:21px;margin:12px 0 8px}
.waste-where{margin-bottom:18px}
.guide-answer-action{margin-top:auto;min-height:78px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;border-radius:12px;background:var(--soft);padding:12px 14px}
.guide-answer-action small,.guide-answer-action strong{display:block}
.guide-answer-action .button{margin:0}
.guide-details{border-top:1px solid var(--line);margin-top:14px;padding-top:0}
.guide-details>summary{font-size:12px}
.guide-details h3{font-size:13px;margin:18px 0 6px}
.guide-details .guide-source{margin:16px 0 0}
.collection-point .button{margin-top:auto;align-self:start}
.map-sidebar .ux-filters select{margin-bottom:10px}
.map-sidebar>p.muted{font-size:12px;line-height:1.5}
#mapResults .button{width:100%}
.report-service strong{display:block;font-size:15px}
.report-service p{margin:6px 0 10px}
#reportRecipientSummary{font-size:13px}
.report-form-actions{gap:10px}
#reportClear{display:block;margin-top:14px;color:var(--muted);text-decoration:underline}
.report-form textarea,.report-preview textarea{font-size:15px;line-height:1.65}
.report-export-buttons{gap:10px}
.more-links{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.more-links button,.more-links a{min-height:56px;border:1px solid var(--line);border-radius:12px;background:var(--soft);color:var(--ink);padding:12px;text-align:left;font-size:14px;text-decoration:none}
.more-links [aria-current=page]{border-color:var(--green);font-weight:700}
#moreDialog,#installHelp,#clearReportDialog{width:min(520px,calc(100vw - 24px));max-height:90dvh;overflow-y:auto}
.dialog-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:22px}
#installHelp p{font-size:14px}
#locationManual{margin:12px 0}
#locationManual>.location-selects{margin-top:8px}
.geo-privacy summary{font-size:12px}
#locationDialog{max-height:92dvh;overflow-y:auto}
.location-results{max-height:36dvh}
.location-result{min-height:44px}
#locationMore{margin:8px 0;width:100%}
footer,footer a,footer .footer-copy{font-size:12px}
@media(max-width:1100px){.directory-advanced[open]{grid-template-columns:repeat(2,minmax(0,1fr))}.has-saved-address .hero-copy{max-width:85%}}
@media(max-width:850px){
 .sidebar{position:static;height:auto;padding:12px 16px;overflow:visible}
 .sidebar nav,.sidebar .nav-label,.sidebar-bottom{display:none}
 .brand{font-size:22px}.brand small{font-size:9px;letter-spacing:.4px}
 .topbar{height:auto;min-height:64px;padding:10px 16px}
 .topbar .breadcrumb,.topbar .data-pill{display:none}
 .top-actions{display:flex;width:100%;gap:8px}
 .top-actions .language-select{width:78px;flex:none;margin:0;padding:8px}
 #themeSelect{width:92px;flex:none;margin:0;font-size:12px;padding:8px}
 .location-button{flex:1;max-width:none;min-width:0;min-height:44px;font-size:12px;padding:8px}
 .location-button #savedPlace{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
 main{padding:18px 16px 0}
 .page-heading{margin-bottom:18px}.page-heading h1{font-size:28px}
 .page-heading .subtitle{font-size:14px;line-height:1.6}
 .mobile-nav{position:fixed;bottom:0;left:0;right:0;z-index:100;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--surface);border-top:1px solid var(--line);padding:6px 5px max(6px,env(safe-area-inset-bottom));box-shadow:0 -4px 20px #00000008}
 .mobile-nav button{border:0;background:transparent;min-height:52px;border-radius:10px;padding:6px 2px;font-size:11px;line-height:1.3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--muted)}
 .mobile-nav button>span:first-child{font-size:20px;line-height:1.1}
 .mobile-nav [aria-current=page]{background:var(--soft);color:var(--ink);font-weight:750}
 footer{padding-bottom:calc(92px + env(safe-area-inset-bottom));margin:16px 16px 0;gap:12px}
 #toast{bottom:calc(86px + env(safe-area-inset-bottom))}
 .map-layout{gap:16px}.map-sidebar{padding:18px}.map-sidebar h2{margin-bottom:12px}#regionMap{height:340px}
 .hero-art{opacity:.22}.has-saved-address .hero-art{display:none}
 .has-saved-address .hero-copy{padding:20px;max-width:100%;width:100%}
 .has-saved-address .hero h2{font-size:23px}
 .has-saved-address .hero-copy>p#heroDescription{font-size:13px;line-height:1.5;-webkit-line-clamp:2}
 .has-saved-address #view-dashboard>.business-entry{order:0}
 .business-entry{font-size:12px}.business-entry .button{font-size:12px}
 .has-saved-address #heroNext .next-large{font-size:24px}
 .has-saved-address #heroNext .waste-badge{font-size:11px}
 .hero-copy:has(#heroNext:not([hidden])) #heroChoose{font-size:12px}
 .hero-copy #heroRemind{font-size:12px}
 dialog{padding:20px;max-height:92dvh}
 .location-selects{gap:10px}
 .location-results{max-height:30dvh}
 .dialog-footer{position:sticky;bottom:-20px;background:var(--surface);z-index:2;padding:12px 0 4px}
 .push-setup{gap:14px}.push-setup .card{padding:20px}
 .waste-answer{padding:20px}
 .report-layout{gap:16px}
}
@media(max-width:620px){
 .push-setup{grid-template-columns:minmax(0,1fr)}
 .push-rule{grid-template-columns:minmax(0,1.3fr) minmax(90px,1fr) 44px}
 .push-enable-step{grid-column:auto}
 .directory-filters>label{min-width:100%;width:100%}
 .directory-advanced[open]{grid-template-columns:1fr}
 .route-row{flex-direction:column;align-items:stretch}
 .route-row>.button{align-self:stretch;max-width:none}
 .guide-explorer{padding:16px}.guide-search-row{grid-template-columns:minmax(0,1fr)}
 .guide-mode{gap:8px}.guide-mode button{font-size:13px;padding:10px}
 .guide-examples{gap:6px}.guide-examples button{padding:8px;font-size:12px}
 .guide-results-top{gap:8px}.guide-results-top>*{font-size:12px}
 .guide-answer-action{min-height:76px}
 .waste-results{grid-template-columns:minmax(0,1fr)}
 #reportForm input:not([type=checkbox]),#reportForm textarea,#reportForm select,#locationDialog input,#locationDialog select,.guide-search-row input,.directory-filters input,.directory-filters select{font-size:16px}
 #reportForm .location-selects{grid-template-columns:1fr}
 .report-intro{gap:6px;flex-wrap:wrap}.report-step{font-size:12px}
 .report-service{font-size:13px}.report-service a{display:inline-flex;align-items:center;min-height:44px}
 .report-form-actions>.button,.report-export-buttons>.button{width:100%}
 .report-export-buttons{display:flex;flex-direction:column}
 .more-links{grid-template-columns:1fr 1fr}.more-links button,.more-links a{font-size:13px}
 .map-card{padding:10px}#regionMap{height:300px}
 .has-saved-address .hero{margin-bottom:18px}.has-saved-address .hero-copy{padding:18px}
 .has-saved-address .hero-copy>p#heroDescription{margin-bottom:8px}
 .has-saved-address .business-entry{display:none}
 .has-saved-address #heroNext{margin-bottom:0}
 .has-saved-address .hero-copy #heroChoose{margin-bottom:4px}
 .calendar-controls button{min-width:36px;min-height:44px}
 .calendar-controls #currentMonth{padding:8px}
 .day{min-height:48px}
 .content-grid{gap:16px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media print{.mobile-nav{display:none!important}.has-saved-address #view-dashboard{display:none!important}}

.location-scope{margin:0 0 12px;padding:0 12px}.location-scope p{font-size:12px}.location-scope summary{font-size:12px}.location-confirm{bottom:-20px;padding-bottom:8px}

#locationDialog>h2{font-size:23px;margin-bottom:12px}.geo-choice{border-bottom:0;padding:0 0 10px}.geo-choice>summary{font-size:13px}.geo-choice .geo-privacy{margin-top:8px}
@media screen and (max-width:850px){
 .map-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
 .map-layout>.map-sidebar{display:contents}
 .map-sidebar>h2{display:none}
 .map-sidebar>label{grid-row:1;margin:0}
 .map-sidebar>select{grid-row:2;width:100%;margin:0}
 .map-layout>.map-card{grid-row:3;margin:0}
 #mapAdvanced{grid-row:4;margin-top:0}
 .map-sidebar>p.muted{grid-row:5;margin:0}
 #mapResults{grid-row:6}
 #view-map>.page-heading .eyebrow{display:none}
}
/* Keep native selects and the address control on one 44px row. */
.topbar .top-actions>.language-select,
.topbar .top-actions>#themeSelect,
.topbar .top-actions>.location-button{height:44px;min-height:44px;max-height:44px;margin:0;border-radius:9px;box-sizing:border-box}
.topbar .top-actions>.location-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;line-height:1.2}
.topbar .location-button #savedPlace{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:850px){.topbar .top-actions>.location-button{max-width:none}}
/* Let the full address determine row height; never replace it with ellipsis. */
.topbar{height:auto;min-height:81px;padding-top:12px;padding-bottom:12px;gap:16px}
.topbar .top-actions{align-items:stretch}
.topbar .top-actions>.language-select,
.topbar .top-actions>#themeSelect,
.topbar .top-actions>.location-button{height:auto;min-height:44px;max-height:none}
.topbar .top-actions>.location-button{max-width:360px;white-space:normal;overflow:visible;flex-shrink:1}
.topbar .location-button #savedPlace{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;text-align:left;line-height:1.3}
.topbar .data-pill{align-self:center}
@media(max-width:850px){
 .topbar{min-height:0;padding:10px 16px}
 .topbar .top-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;align-items:stretch}
 .topbar .top-actions>.language-select,.topbar .top-actions>#themeSelect{width:100%;height:44px}
 .topbar .top-actions>.location-button{grid-column:1/-1;width:100%;max-width:none;justify-content:flex-start;padding:10px 12px;font-size:13px}
}

.footer-related{flex-basis:100%;border-top:1px solid var(--line);padding-top:8px;margin-top:4px;color:var(--muted)}
.footer-related a{display:inline-flex;align-items:center;min-height:44px;font-size:12px}
.footer-related a:hover{color:var(--ink)}
