@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap";
:root{--ink:#0e201b;--muted:#63736d;--lime:#d9ff4d;--paper:#f5f7ee;--line:#dce2d8;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--ink);background:var(--paper);margin:0;font-family:Manrope,Arial,sans-serif}button,input{font:inherit}button{cursor:pointer}.hero{background:var(--ink);color:#f7fbef;min-height:650px;padding:24px clamp(24px,6vw,96px) 62px;position:relative;overflow:hidden}.nav{z-index:1;align-items:center;gap:30px;max-width:1340px;margin:auto;display:flex;position:relative}.brand{color:inherit;letter-spacing:-2px;font-size:30px;font-weight:800;text-decoration:none}.brand span{color:var(--lime)}.brand b{color:#8ed8ff;font-weight:800}.brand i{color:var(--lime);vertical-align:top;margin-left:3px;font-size:15px;font-style:normal;display:inline-block;transform:rotate(-8deg)}.nav-link{color:#d6dfd2;margin-left:auto;font-size:14px;font-weight:600;text-decoration:none}.route-button{color:#f7fbef;background:0 0;border:1px solid #50645c;border-radius:99px;padding:10px 14px;font-size:13px}.route-button span{color:#92a69d;margin-left:5px}.hero-copy{z-index:1;text-align:center;max-width:670px;margin:104px auto 0;position:relative}.eyebrow{color:#6b8d82;letter-spacing:.14em;margin:0 0 17px;font:500 11px DM Mono,monospace}.hero .eyebrow{color:var(--lime)}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.075em;margin:0;font-size:clamp(52px,7vw,96px);line-height:.96}h1 em{color:var(--lime);font-style:normal}.hero-description{color:#b4c3bc;max-width:500px;margin:30px auto 0;font-size:17px;line-height:1.6}.quick-form{z-index:2;max-width:760px;color:var(--ink);background:#f9fbf5;border-radius:20px;margin:42px auto 0;padding:20px;position:relative;box-shadow:0 20px 50px #06120f55}.quick-form label{margin:0 0 12px;font-size:14px;font-weight:700;display:block}.capacity-row{align-items:center;gap:10px;display:flex}.capacity-row input{color:var(--ink);background:#eef2e9;border:1px solid #0000;border-radius:11px;outline:none;width:120px;min-width:0;padding:15px;font-size:20px;font-weight:700}.capacity-row input:focus{border-color:#8ea49b}.capacity-row span{color:var(--muted);font:500 13px DM Mono,monospace}.capacity-row button{background:var(--lime);color:var(--ink);border:0;border-radius:11px;justify-content:space-between;align-items:center;gap:16px;margin-left:auto;padding:16px 18px;font-size:14px;font-weight:800;display:flex}.capacity-row b{font-size:20px}.quick-form p{color:#738078;margin:12px 0 0;font-size:11px}.hero-orb{border:1px solid #29483e;border-radius:50%;position:absolute}.orb-one{width:570px;height:570px;top:90px;right:-160px}.orb-two{width:820px;height:820px;top:300px;left:-590px}.explore{background:var(--paper);max-width:1440px;margin:auto;padding:90px clamp(24px,6vw,96px)}.section-heading{justify-content:space-between;align-items:end;display:flex}.section-heading h2,.promise h2{letter-spacing:-.06em;margin:0;font-size:clamp(31px,4vw,48px);line-height:1}.demo-label{color:#617061;background:#e6ecd9;border-radius:99px;padding:8px 10px;font:500 10px DM Mono,monospace}.location-message{color:#4e7164;margin:20px 0 0;font-size:13px;font-weight:600}.location-search{max-width:560px;margin-top:24px;position:relative}.location-search label{margin-bottom:8px;font-size:12px;font-weight:800;display:block}.location-search>div{gap:8px;display:flex}.location-search input{color:var(--ink);background:#fff;border:1px solid #d0d9ce;border-radius:10px;outline:none;width:100%;min-width:0;padding:12px 13px;font-size:13px}.location-search input:focus{border-color:#81a50b;box-shadow:0 0 0 3px #d9ff4d66}.location-search button{background:var(--ink);color:#fff;border:0;border-radius:10px;padding:0 17px;font-size:12px;font-weight:800}.location-search button:disabled{cursor:wait;opacity:.65}.location-search-message{color:#8a5c24;margin:8px 0 0;font-size:11px}.location-results{z-index:600;background:#fff;border:1px solid #d9e0d6;border-radius:12px;width:100%;margin-top:8px;position:absolute;overflow:hidden;box-shadow:0 12px 26px #19312618}.location-results button{color:var(--ink);text-align:left;background:#fff;border:0;border-bottom:1px solid #edf1eb;gap:8px;width:100%;padding:11px 12px;font-size:11px;font-weight:600;line-height:1.4;display:flex}.location-results button:hover{background:#f2f8de}.location-results button:last-child{border-bottom:0}.location-results span{color:#83aa00;font-size:15px}.filter-groups{flex-wrap:wrap;gap:21px 38px;margin:28px 0 20px;display:flex}.filter-group{min-width:0}.filter-title{color:#61736a;letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;font:500 10px DM Mono,monospace;display:block}.filters{flex-wrap:wrap;gap:8px;display:flex}.filter{color:#607168;background:0 0;border:1px solid #d0d9ce;border-radius:99px;padding:9px 13px;font-size:12px}.filter.active{background:var(--ink);border-color:var(--ink);color:#f5f7ee}.explore-grid{grid-template-columns:minmax(290px,.85fr) minmax(400px,1.3fr);gap:22px;display:grid}.charger-list{flex-direction:column;gap:10px;max-height:550px;padding-right:4px;display:flex;overflow:auto}.charger-card{color:var(--ink);text-align:left;background:#fff;border:1px solid #0000;border-radius:14px;padding:18px;transition:all .2s}.charger-card:hover,.charger-card.selected{border-color:#9dc900;box-shadow:0 8px 20px #14352910}.charger-card-top{justify-content:space-between;gap:10px;display:flex}.charger-card h3{letter-spacing:-.03em;margin:0 0 5px;font-size:15px}.charger-card p{color:var(--muted);margin:0;font-size:11px;line-height:1.45}.status{color:#52645c;white-space:nowrap;flex:none;align-items:center;height:min-content;font-size:10px;font-weight:700;display:flex}.status i{background:#9aa9a3;border-radius:50%;width:7px;height:7px;margin-right:5px}.status.available{color:#37835d}.status.available i{background:#42bd7d}.status.busy{color:#ae7c21}.status.busy i{background:#f0b82d}.status.offline{color:#b44e4e}.status.offline i{background:#e26363}.charger-details{flex-wrap:wrap;align-items:center;gap:6px;margin-top:15px;display:flex}.charger-details strong{margin-right:3px;font:500 12px DM Mono,monospace}.charger-details span{color:#53675d;background:#edf2e9;border-radius:5px;padding:4px 6px;font-size:10px}.charger-card small{color:#7d8e84;margin-top:12px;font-size:10px;display:block}.empty-state{color:var(--muted);text-align:center;background:#fff;border-radius:14px;padding:25px;font-size:13px}.map-frame{border-radius:18px;min-height:550px;position:relative;overflow:hidden}.map{width:100%;height:550px}.map-loading{color:var(--muted);background:#dfe8d9;justify-content:center;align-items:center;display:flex}.charger-marker-wrapper{background:0 0;border:0}.charger-marker{background:var(--lime);border:3px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;font-size:16px;display:flex;box-shadow:0 3px 10px #17302566}.map-note{color:#506158;z-index:500;background:#fffefa;border-radius:8px;padding:9px 11px;font-size:11px;position:absolute;bottom:14px;left:14px;box-shadow:0 3px 14px #15251c22}.promise{background:var(--lime);grid-template-columns:auto 1fr 1fr;align-items:center;gap:34px;padding:74px clamp(24px,10vw,170px);display:grid}.promise .eyebrow{color:#45630c}.promise-icon{background:var(--ink);color:var(--lime);border-radius:50%;justify-content:center;align-items:center;width:70px;height:70px;font-size:27px;display:flex;transform:rotate(-12deg)}.promise>p{max-width:360px;margin:0;font-size:15px;line-height:1.7}footer{background:var(--ink);color:#f7fbef;justify-content:space-between;align-items:center;padding:28px clamp(24px,6vw,96px);display:flex}footer .brand{font-size:25px}footer>span{color:#89a096;font-size:11px}@media (max-width:760px){.hero{min-height:640px;padding:20px 20px 50px}.nav-link{display:none}.route-button{margin-left:auto}.route-button span{display:none}.hero-copy{margin-top:82px}.quick-form{margin-top:35px;padding:16px}.capacity-row{grid-template-columns:1fr auto;gap:8px;display:grid}.capacity-row input{width:100%}.capacity-row button{grid-column:1/-1;width:100%;margin:5px 0 0}.explore{padding:55px 20px}.explore-grid{grid-template-columns:1fr}.charger-list{order:2;max-height:none}.map-frame{min-height:380px}.map{height:380px}.section-heading{align-items:start}.demo-label{text-align:center;margin-left:12px}.promise{grid-template-columns:auto 1fr;padding:52px 24px}.promise>p{grid-column:1/-1}.promise-icon{width:55px;height:55px}.hero-orb{opacity:.6}.orb-one{width:450px;height:450px;right:-260px}}@media (min-width:761px){.hero{min-height:360px;padding-bottom:34px}.hero-copy{margin-top:50px}.hero h1{font-size:clamp(46px,4.7vw,68px)}.hero-description{margin-top:16px;font-size:14px}.quick-form{max-width:690px;margin-top:22px;padding:14px 16px}.quick-form label{margin-bottom:8px}.capacity-row input{padding:11px 14px;font-size:17px}.capacity-row button{padding:12px 16px}.quick-form p{display:none}.explore{max-width:1780px;padding-top:54px;padding-bottom:70px}.explore-grid{grid-template-columns:minmax(280px,.58fr) minmax(670px,1.92fr)}.charger-list{max-height:690px}.map-frame{min-height:690px}.map{height:690px}}@media (max-width:760px){.hero{min-height:470px}.hero-copy{margin-top:54px}.hero h1{font-size:48px}.hero-description{margin-top:18px;font-size:14px}.filter-groups{gap:18px}}@media (min-width:761px){.hero{min-height:250px;padding-top:18px;padding-bottom:22px}.hero-copy{margin-top:28px}.hero .eyebrow,.hero-description{display:none}.hero h1{font-size:clamp(34px,3.2vw,48px)}.quick-form{margin-top:14px;padding:11px 13px}.quick-form label{display:none}.capacity-row{align-items:center}.capacity-row input{padding:9px 12px}.capacity-row button{padding:10px 15px}.hero-orb{opacity:.45}.explore{padding-top:38px}.explore-grid{grid-template-columns:minmax(265px,.48fr) minmax(700px,2.25fr)}.charger-list,.map-frame{min-height:clamp(620px,78vh,900px);max-height:none}.map{height:clamp(620px,78vh,900px)}}.hero-map-controls{z-index:2;max-width:1340px;margin:24px auto 0;position:relative}.map-heading{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.map-heading h1{color:#f7fbef;letter-spacing:-.06em;margin:0;font-size:clamp(30px,3vw,45px);line-height:1}.hero .map-heading .eyebrow{color:var(--lime);margin-bottom:9px;display:block}.hero .location-message{color:#a7c9bb;margin:10px 0 0;font-size:11px}.hero .demo-label{color:#cbe0d3;white-space:nowrap;background:#24453a}.hero-control-row{gap:12px;max-width:900px;margin-top:16px;display:flex}.hero .quick-form,.hero .location-search{box-shadow:none;background:0 0;max-width:none;margin:0;padding:0}.hero .quick-form{flex:0 0 310px}.hero .location-search{flex:1}.hero .quick-form label,.hero .location-search label{color:#d5e1d7;margin:0 0 6px;font-size:10px;font-weight:700;display:block}.hero .capacity-row{gap:7px}.hero .capacity-row input,.hero .location-search input{background:#f6f9ef;border:0;padding:10px 12px}.hero .capacity-row input{width:76px}.hero .capacity-row button{background:var(--lime);padding:11px 12px}.hero .location-search>div{gap:7px}.hero .location-search button{color:var(--ink);background:#f6f9ef;padding:0 15px}.hero .location-search-message{color:#f4c77a}.hero .filter-groups{gap:14px 30px;margin:15px 0 0}.hero .filter-title{color:#a2b8ad}.hero .filter{color:#dbe8df;border-color:#4c675d}.hero .filter.active{background:var(--lime);border-color:var(--lime);color:var(--ink)}.hero .location-results{max-width:560px}.explore{max-width:1780px;padding-top:0}.explore-grid{margin-top:0}@media (max-width:760px){.hero-map-controls{margin-top:30px}.map-heading{align-items:flex-start}.map-heading h1{font-size:31px}.hero-control-row{flex-direction:column}.hero .quick-form{width:100%}.hero .location-search{width:100%;max-width:none;margin-top:0}.hero .quick-form label{display:block}.hero .filter-groups{margin-top:18px}.hero .location-results{max-width:100%}.explore{padding-top:0}}@media (min-width:761px){.map-heading h1{font-size:clamp(34px,3.15vw,48px)}.hero .location-message{margin-top:12px}.hero-control-row{gap:28px;max-width:1180px;margin-top:0}.hero .quick-form{flex-basis:330px}.hero .location-search{max-width:660px}.hero .capacity-row{gap:10px}.hero .capacity-row input{width:82px}.hero .capacity-row button{min-width:176px}.hero .location-search>div{gap:10px}.hero .location-search button{min-width:78px}.hero .filter-groups{gap:24px 48px;margin-top:27px}.hero .filter-group+.filter-group{border-left:1px solid #355147;padding-left:42px}.hero .filters{gap:10px}.hero{min-height:200px;padding-top:14px;padding-bottom:18px}.hero-map-controls{margin-top:24px}.map-heading{margin-bottom:19px}.hero .filter-groups{margin-top:22px}.charger-list,.map-frame{height:clamp(620px,78vh,900px);min-height:0}.charger-list{overscroll-behavior:contain;max-height:clamp(620px,78vh,900px);overflow-y:auto}}@media (max-width:760px){.charger-list{overscroll-behavior:contain;height:380px;max-height:380px;overflow-y:auto}}.charger-list::-webkit-scrollbar{width:8px}.charger-list::-webkit-scrollbar-track{background:0 0}.charger-list::-webkit-scrollbar-thumb{border:2px solid var(--paper);background:#bdc9bf;border-radius:99px}.directions-link{color:#214c3c;justify-content:space-between;align-items:center;margin-top:14px;font-size:11px;font-weight:800;text-decoration:none;display:flex}.directions-link span{background:var(--lime);color:var(--ink);border-radius:50%;justify-content:center;width:21px;height:21px;font-size:13px;line-height:21px;display:inline-flex}.directions-link:hover{color:#6d9100}.map-directions-link{color:#315a10;margin-top:9px;font-size:12px;font-weight:800;text-decoration:none;display:inline-block}.map-directions-link:hover{text-decoration:underline}.update-station-link{color:#4c6d13;cursor:pointer;background:0 0;border:0;margin-top:9px;padding:0;font-size:10px;font-weight:800;text-decoration:underline}.map-update-link{color:#315a10;cursor:pointer;background:0 0;border:0;margin-top:8px;padding:0;font-size:12px;font-weight:800;text-decoration:underline;display:block}.hero .capacity-row button{white-space:nowrap;justify-content:center;align-items:center;gap:8px}.hero .capacity-row button span{color:inherit;font-size:16px}.filter-result-count{color:#aac0b5;white-space:nowrap;align-self:end;padding-bottom:10px;font:500 10px DM Mono,monospace}@media (min-width:761px){.hero .capacity-row button{min-width:208px}}@media (max-width:760px){.filter-result-count{align-self:auto;padding-bottom:0}}.contribute-link{margin-left:0}.charger-photo{object-fit:cover;border-radius:9px;width:100%;height:112px;margin:0 0 13px;display:block}.charger-extra{line-height:1.45;color:#63736d!important;margin:11px 0 0!important;font-size:10px!important}.map-station-photo{object-fit:cover;border-radius:7px;width:100%;height:110px;margin:0 0 8px;display:block}@media (max-width:760px){.contribute-link{display:none}}.portal-shell{background:var(--paper);min-height:100vh;padding:24px max(24px,50vw - 490px)}.portal-header{justify-content:space-between;align-items:center;max-width:900px;margin:0 auto;display:flex}.portal-header>a:last-child,.portal-header>span{color:var(--muted);font-size:12px;font-weight:800;text-decoration:none}.portal-intro{max-width:900px;margin:76px auto 42px}.portal-intro h1,.portal-card h1,.admin-heading h1{letter-spacing:-.07em;margin:0;font-size:clamp(38px,6vw,68px);line-height:.94}.portal-intro>p:last-child{color:var(--muted);max-width:560px;margin:24px 0 0;font-size:15px;line-height:1.65}.portal-card{border:1px solid var(--line);background:#fff;border-radius:18px;max-width:900px;margin:0 auto 36px;padding:28px}.auth-card{grid-template-columns:.9fr 1.1fr;gap:34px;display:grid}.portal-card h2{letter-spacing:-.05em;margin:0 0 8px;font-size:25px}.portal-card p{color:var(--muted);font-size:13px;line-height:1.55}.portal-card form{gap:15px;display:grid}.portal-card label{color:#385047;gap:7px;font-size:12px;font-weight:800;display:grid}.portal-card input,.portal-card select,.portal-card textarea{color:var(--ink);background:#f8faf3;border:1px solid #d5ded2;border-radius:9px;outline:none;width:100%;padding:11px 12px}.portal-card input:focus,.portal-card select:focus,.portal-card textarea:focus{border-color:#8dac1d;box-shadow:0 0 0 3px #d9ff4d55}.portal-card select[multiple]{min-height:116px;padding:6px}.portal-card select[multiple] option{border-radius:5px;padding:7px 8px}.portal-card select[multiple] option:checked{color:var(--ink);background:#d9ff4d linear-gradient(#d9ff4d,#d9ff4d)}.portal-primary{background:var(--lime);color:var(--ink);border:0;border-radius:9px;padding:13px 16px;font-size:13px;font-weight:800}.portal-primary:disabled{cursor:wait;opacity:.65}.portal-text-button,.portal-user button,.admin-heading button{color:#46675a;background:0 0;border:0;padding:0;font-size:12px;font-weight:800;text-decoration:underline}.auth-card .portal-text-button{grid-column:2;justify-self:start}.portal-message{background:#f2f7e1;border-radius:8px;padding:10px 11px;color:#496126!important;margin:0!important;font-size:12px!important}.contribution-card{max-width:900px}.portal-user{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:20px;display:flex}.portal-user strong,.portal-user span{display:block}.portal-user strong{font-size:13px}.portal-user span{color:var(--muted);margin-top:3px;font-size:11px}.portal-card fieldset{border:0;margin:0;padding:0}.portal-card legend{margin:0 0 10px;font-size:13px;font-weight:800}.choice{width:auto;margin:0 22px 10px 0;font-weight:600!important;display:inline-flex!important}.choice input{accent-color:#769600;width:auto;margin:0 7px 0 0;padding:0}.portal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;display:grid}.portal-location{color:#315a3a;background:#e8f1dc;border:0;border-radius:8px;justify-self:start;padding:10px 12px;font-size:12px;font-weight:800}.portal-card input[type=file]{background:0 0;border:0;padding:2px 0}.portal-card label small{color:var(--muted);font-size:10px;font-weight:500}.file-counter{margin:-7px 0 0!important;font-size:11px!important}.admin-shell{max-width:none}.admin-list{max-width:900px;margin:66px auto}.admin-heading{justify-content:space-between;align-items:end;margin-bottom:26px;display:flex}.admin-submission{border:1px solid var(--line);background:#fff;border-radius:16px;gap:16px;margin-top:16px;padding:22px;display:grid}.admin-submission h2{letter-spacing:-.04em;margin:8px 0 4px;font-size:21px}.admin-submission p{color:var(--muted);margin:6px 0;font-size:12px;line-height:1.5}.submission-type{color:#556d44;background:#e9f0df;border-radius:99px;padding:5px 8px;font:500 10px DM Mono,monospace}.admin-submission>label{max-width:360px}.review-actions{gap:10px;display:flex}.review-reject{color:#8c4f45;background:#fff;border:1px solid #cdd9cb;border-radius:9px;padding:11px 15px;font-size:12px;font-weight:800}.admin-photos{flex-wrap:wrap;gap:10px;margin-top:12px;display:flex}.admin-photos img{object-fit:cover;border-radius:8px;width:180px;height:125px}.location-lookup{gap:10px;display:grid}.location-actions{flex-wrap:wrap;gap:8px;display:flex}.portal-location-secondary{background:#fff;border:1px solid #cdd9cb}.portal-location:disabled{cursor:wait;opacity:.65}.address-candidates{border:1px solid #d5ded2;border-radius:9px;overflow:hidden}.address-candidates button{color:#385047;text-align:left;background:#fff;border:0;border-bottom:1px solid #e6ece2;width:100%;padding:10px 12px;font-size:11px;line-height:1.4;display:block}.address-candidates button:last-child{border-bottom:0}.address-candidates button:hover{background:#f1f7df}.field-group{color:#385047;gap:7px;min-width:0;font-size:12px;font-weight:800;display:grid}.field-group>small{color:var(--muted);font-size:10px;font-weight:500}.multi-select{min-width:0;position:relative}.multi-select-trigger{color:var(--ink);text-align:left;background:#f8faf3;border:1px solid #d5ded2;border-radius:9px;justify-content:space-between;align-items:center;width:100%;min-height:43px;padding:10px 12px;font-size:13px;display:flex}.multi-select-trigger:hover{border-color:#9eb398}.multi-select-trigger.open{border-color:#8dac1d;box-shadow:0 0 0 3px #d9ff4d55}.multi-select-placeholder{color:#78877e;font-weight:500}.multi-select-value{font-weight:700}.multi-select-chevron{color:#547064;font-size:18px;line-height:1;transition:transform .18s;transform:translateY(-2px)}.multi-select-trigger.open .multi-select-chevron{transform:rotate(180deg)translateY(2px)}.multi-select-chips{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.multi-select-chips button{color:#3d5d43;background:#e8f1dc;border:0;border-radius:99px;align-items:center;gap:6px;padding:5px 8px;font-size:10px;font-weight:800;display:inline-flex}.multi-select-chips button:hover{background:#d9ff4d}.multi-select-chips span{color:#617961;font-size:14px;line-height:.7}.multi-select-menu{z-index:30;background:#fff;border:1px solid #c9d6c5;border-radius:10px;max-height:224px;padding:5px;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow:auto;box-shadow:0 14px 30px #142d231f}.multi-select-menu button{color:#294438;text-align:left;background:#fff;border:0;border-radius:7px;align-items:center;gap:9px;width:100%;padding:9px 8px;font-size:12px;font-weight:700;display:flex}.multi-select-menu button:hover{background:#f1f7df}.multi-select-menu button.selected{background:#e8f1dc}.multi-select-check{color:#315a3a;border:1px solid #a5bca0;border-radius:4px;flex:0 0 16px;justify-content:center;align-items:center;width:16px;height:16px;font-size:11px;display:inline-flex}.multi-select-menu button.selected .multi-select-check{background:#d9ff4d;border-color:#bbdf31}.coordinate-fields{grid-template-columns:1fr 1fr;align-self:start;gap:10px;min-width:0;display:grid}.selected-photo-previews{flex-wrap:wrap;gap:12px;margin-top:-5px;display:flex}.selected-photo-previews figure{background:#f5f8f0;border:1px solid #d7e1d3;border-radius:10px;width:154px;margin:0;overflow:hidden}.selected-photo-previews img{object-fit:cover;width:100%;height:106px;display:block}.selected-photo-previews figcaption{justify-content:space-between;align-items:center;gap:6px;padding:7px 8px;display:flex}.selected-photo-previews span{color:#597066;text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.selected-photo-previews button{color:#805044;cursor:pointer;background:#fff;border:1px solid #ccd9c8;border-radius:5px;padding:4px 5px;font-size:9px;font-weight:800}.admin-photo{background:#f5f8f0;border:1px solid #dce5d8;border-radius:9px;width:180px;margin:0;overflow:hidden}.admin-photo img{display:block}.admin-photo figcaption{flex-wrap:wrap;gap:5px;padding:7px;display:flex}.admin-photo a,.admin-photo button,.admin-photo label{color:#3e604f;cursor:pointer;background:#fff;border:1px solid #cdd9cb;border-radius:6px;padding:5px 6px;font-size:9px;font-weight:800;text-decoration:none}.admin-photo button:disabled{cursor:wait;opacity:.6}.admin-photo label{position:relative}.admin-photo label input{cursor:pointer;opacity:0;width:100%;padding:0;position:absolute;inset:0}.image-editor-backdrop{z-index:1000;background:#10271ed1;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.image-editor{background:#fff;border-radius:16px;width:100%;max-width:720px;max-height:calc(100vh - 48px);padding:22px;overflow:auto;box-shadow:0 24px 70px #0008}.image-editor-heading,.image-editor-footer{justify-content:space-between;align-items:center;gap:16px;display:flex}.image-editor-heading h2{letter-spacing:-.05em;margin:4px 0 0;font-size:26px}.image-editor-heading>button,.image-editor-actions button{color:#385047;cursor:pointer;background:#fff;border:1px solid #cdd9cb;border-radius:8px;padding:9px 11px;font-size:11px;font-weight:800}.image-editor-preview{object-fit:contain;background:#edf2e9;max-width:100%;max-height:410px;margin:24px auto;transition:transform .2s;display:block}.image-editor-actions{flex-wrap:wrap;gap:8px;display:flex}.image-editor>p{color:var(--muted);margin:16px 0;font-size:11px;line-height:1.45}.image-editor-footer{justify-content:flex-end}.local-model-settings{background:#edf5e4;border:1px solid #d1dfc6;border-radius:13px;grid-template-columns:1fr minmax(190px,270px);align-items:end;gap:16px;margin:0 0 20px;padding:16px 18px;display:grid}.local-model-settings strong{color:#244738;font-size:13px}.local-model-settings p{color:#597066;margin:5px 0 0;font-size:11px;line-height:1.45}.local-model-settings label{color:#385047;gap:6px;font-size:11px;font-weight:800;display:grid}.local-model-settings input{color:var(--ink);background:#fff;border:1px solid #cbd8c7;border-radius:8px;width:100%;padding:10px;font:600 12px DM Mono,monospace}.submission-map-section{margin-top:17px}.submission-map-section>strong{color:#385047;margin-bottom:8px;font-size:12px;display:block}.admin-map-frame{border:1px solid #d6e0d3;border-radius:10px;overflow:hidden}.admin-map{width:100%;height:230px}.admin-map-loading{color:#486457;background:#edf5e4;justify-content:center;align-items:center;font-size:12px;font-weight:800;display:flex}.admin-map-marker-wrapper{background:0 0;border:0}.admin-map-marker{background:var(--lime);color:#1d3a2e;border:2px solid #f9fff0;border-radius:50% 50% 50% 0;justify-content:center;align-items:center;width:30px;height:30px;font-size:16px;display:flex;transform:rotate(-45deg);box-shadow:0 3px 9px #16352755}.admin-map-marker:first-letter{display:inline-block;transform:rotate(45deg)}.submission-position-invalid{color:#a45a4d!important}.moderation-card{border:1px solid #d5ded2;border-radius:10px;margin-top:12px;padding:12px}.moderation-card strong{color:#385047;font-size:12px}.moderation-card p{margin:5px 0 0;font-size:11px}.moderation-card.safe_for_review{background:#eff8df;border-color:#b8d58a}.moderation-card.blocked,.moderation-card.error{background:#fff1ed;border-color:#e8b5a8}.moderation-card.blocked strong,.moderation-card.error strong{color:#984a3d}.moderation-result{border-top:1px solid #dbe4d7;padding-top:8px;margin-top:9px!important}.analysis-button{margin-top:10px}.analysis-button:disabled{cursor:wait;opacity:.65}@media (max-width:700px){.portal-shell{padding:20px}.portal-intro{margin:56px auto 32px}.auth-card{grid-template-columns:1fr}.auth-card .portal-text-button{grid-column:auto}.portal-grid,.coordinate-fields,.local-model-settings{grid-template-columns:1fr}.choice{display:flex!important}.portal-card{padding:21px}.admin-list{margin-top:48px}.admin-map{height:210px}}.verification-notice{color:#39543a;background:#edf5e4;border:1px solid #cadcb7;border-radius:10px;gap:7px;margin:-6px 0 20px;padding:13px;display:grid}.verification-notice strong{font-size:12px}.verification-notice span{color:#58705d;font-size:11px;line-height:1.45}.verification-notice>div{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.verification-notice .portal-text-button{justify-self:start}.verification-message{color:#496126;border-top:1px solid #cadcb7;margin:3px 0 0;padding-top:8px;font-size:11px;line-height:1.45}.portal-card input[readonly]{color:#52645c;cursor:not-allowed;background:#eef1e9}.multi-select-trigger:disabled,.multi-select-chips button:disabled,.location-actions .portal-location:disabled{cursor:not-allowed;opacity:.62}.portal-card input[aria-invalid=true]{border-color:#c56352;box-shadow:0 0 0 3px #efb0a755}.field-error{line-height:1.35;color:#a54438!important;font-size:10px!important;font-weight:700!important}.seo-page{background:var(--paper);min-height:100vh;padding:24px max(24px,50vw - 490px) 80px}.seo-page article{max-width:760px;margin:76px auto 0}.seo-page h1{letter-spacing:-.07em;margin:0;font-size:clamp(42px,7vw,74px);line-height:.92}.seo-page .seo-lead{color:#526b60;max-width:660px;margin:25px 0;font-size:17px;line-height:1.65}.seo-page .seo-cta{text-decoration:none;display:inline-block}.seo-page section{border-top:1px solid var(--line);margin-top:42px;padding-top:26px}.seo-page h2{letter-spacing:-.045em;margin:0 0 10px;font-size:25px}.seo-page section p{color:#526b60;margin:0;font-size:15px;line-height:1.65}.seo-page section>a{color:#496d17;margin-top:14px;font-size:13px;font-weight:800;display:inline-block}.city-links{flex-wrap:wrap;gap:9px;display:flex}.city-links a{color:#315a3a;background:#e8f1dc;border-radius:99px;padding:9px 12px;font-size:12px;font-weight:800;text-decoration:none}.city-links a:hover{background:var(--lime)}.station-links{gap:10px;display:grid}.station-links a{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:12px;gap:4px;padding:15px;text-decoration:none;display:grid}.station-links a:hover{border-color:#a8ca2e;box-shadow:0 8px 20px #183d2c0c}.station-links strong{font-size:15px}.station-links span{color:#536d61;font-size:12px;line-height:1.45}.station-links small{color:#526b60;font:700 11px DM Mono,monospace}.station-page-photo{border:1px solid var(--line);object-fit:cover;border-radius:14px;width:100%;max-height:410px;margin:0 0 22px;display:block}.station-description{color:#526b60;margin:0 0 28px;font-size:16px;line-height:1.65}.station-specs{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:28px 0;display:grid}.station-specs>div{border:1px solid var(--line);background:#fff;border-radius:12px;gap:6px;padding:15px;display:grid}.station-specs span{color:#64776d;text-transform:uppercase;font:500 10px DM Mono,monospace}.station-specs strong{font-size:14px;line-height:1.35}@media (max-width:700px){.seo-page{padding:20px 20px 56px}.seo-page article{margin-top:56px}.seo-page .seo-lead{font-size:16px}.seo-page h2{font-size:23px}.station-specs{grid-template-columns:1fr}}html,body{max-width:100%;overflow-x:clip}@media (max-width:900px){.explore{padding:0}.explore-grid{grid-template-columns:minmax(0,1fr);gap:0}.map-frame{border-radius:0;order:1;height:min(58vh,500px);min-height:360px}.map{height:100%}.charger-list{order:2;height:360px;max-height:360px;margin:16px;padding-right:4px}}@media (max-width:760px){.hero{min-height:0;padding:18px 20px 26px}.nav{gap:10px}.brand{white-space:nowrap;font-size:27px}.nav-link.contribute-link{background:var(--lime);color:var(--ink);border-radius:99px;align-items:center;min-height:40px;margin-left:auto;padding:0 13px;font-size:12px;display:inline-flex}.route-button{display:none}.hero-map-controls{margin-top:34px}.map-heading{flex-direction:column;gap:10px}.map-heading h1{font-size:clamp(30px,9vw,38px)}.hero .demo-label{white-space:normal;align-self:flex-start;max-width:100%;margin:0}.hero .location-search>div{grid-template-columns:minmax(0,1fr) auto;display:grid}.hero .location-search input,.hero .location-search button{min-height:44px}.hero .location-search button{padding:0 14px}.hero .filter-groups{gap:20px;margin:22px 0 12px}.hero .filters{gap:8px}.hero .filter{min-height:40px;padding:8px 12px}.filter-result-count{padding:0;display:block}.map-frame{height:min(56vh,460px);min-height:330px}.charger-list{height:340px;max-height:340px;margin:14px 16px 24px}.charger-card{padding:16px}.map-note{max-width:calc(100% - 20px);font-size:10px;bottom:10px;left:10px}.promise{gap:20px;padding:42px 20px}.promise>p{font-size:14px}footer{flex-direction:column;align-items:flex-start;gap:12px;padding:24px 20px}footer>span{line-height:1.5}.portal-shell,.seo-page{padding-left:16px;padding-right:16px}.portal-header{flex-wrap:wrap;align-items:flex-start;gap:12px}.portal-header>a:last-child,.portal-header>span{min-height:40px;padding-top:10px}.portal-intro{margin:52px auto 30px}.portal-intro h1,.portal-card h1,.admin-heading h1{font-size:clamp(36px,12vw,50px)}.portal-intro>p:last-child{margin-top:18px;font-size:14px}.portal-card{border-radius:14px;padding:18px}.portal-card input,.portal-card select,.portal-card textarea{min-height:44px;font-size:16px}.portal-card textarea{min-height:104px}.portal-primary,.review-reject,.portal-location{justify-content:center;align-items:center;min-height:44px;display:inline-flex}.portal-primary{width:100%}.portal-user{flex-wrap:wrap;align-items:flex-start;gap:12px}.portal-user button{min-height:40px}.choice{align-items:center;min-height:38px;margin:0 0 12px}.choice+.choice{margin-left:0}.verification-notice{margin-top:0}.location-actions .portal-location{width:100%}.selected-photo-previews{gap:8px}.selected-photo-previews figure{width:calc(50% - 4px)}.selected-photo-previews img{height:100px}.admin-list{margin:46px auto}.admin-heading{align-items:flex-start;gap:14px}.admin-heading button{min-height:40px}.admin-submission{border-radius:14px;padding:17px}.admin-photos{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.admin-photo{width:100%}.admin-photos img{width:100%;height:118px}.review-actions{flex-wrap:wrap}.review-actions>*{flex:130px}.image-editor-backdrop{align-items:flex-end;padding:10px}.image-editor{border-radius:14px;max-height:calc(100dvh - 20px);padding:16px}.image-editor-heading{align-items:flex-start}.image-editor-heading h2{font-size:22px}.image-editor-preview{max-height:45dvh;margin:16px auto}.image-editor-footer{flex-wrap:wrap}.image-editor-footer button{flex:130px;min-height:42px}.seo-page article{margin-top:48px}.seo-page h1{overflow-wrap:anywhere;font-size:clamp(38px,12vw,54px)}.seo-page section{margin-top:34px}.station-page-photo{max-height:300px}}@media (max-width:360px){.brand{font-size:24px}.nav-link.contribute-link{padding:0 10px;font-size:11px}.hero{padding-left:16px;padding-right:16px}.portal-shell,.seo-page{padding-left:12px;padding-right:12px}.portal-card{padding:15px}}.portal-user strong,.admin-submission p,.station-links span,.seo-page p{overflow-wrap:anywhere}.map-expand-button{color:#244738;cursor:pointer;z-index:1001;background:#fff;border:1px solid #c8d5c6;border-radius:8px;min-height:36px;padding:8px 11px;font-size:11px;font-weight:800;position:absolute;top:14px;right:14px;box-shadow:0 3px 12px #10271e24}.map-expand-button:hover{background:#f1f7df;border-color:#aacb3c}body.map-expanded-open{overflow:hidden}.map-frame.expanded{z-index:2000;border:1px solid #cbd8c7;border-radius:16px;width:auto;position:fixed;inset:16px;box-shadow:0 18px 60px #10271e55;height:calc(100dvh - 32px)!important;min-height:0!important;margin:0!important}.map-frame.expanded .map{height:100%!important}.reviewable-card{cursor:pointer}.reviewable-card:focus-visible{outline-offset:3px;outline:3px solid #9dc900}.review-submitted{border-top:1px solid var(--line);color:#496126;background:#f2f7e1;border-radius:8px;margin-top:16px;padding:14px 12px;font-size:11px;line-height:1.4}.review-submitted strong{font-size:13px;display:block}.review-submitted p{margin:5px 0 0}.reviews-backdrop{z-index:3000;background:#10271ed1;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.reviews-modal{background:#fff;border-radius:18px;width:100%;max-width:680px;max-height:calc(100dvh - 48px);padding:24px;overflow:auto;box-shadow:0 24px 70px #0008}.reviews-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:18px;padding-bottom:16px;display:flex}.reviews-heading h2{letter-spacing:-.05em;margin:4px 0 7px;font-size:28px;line-height:1.05}.reviews-heading p:last-child{color:var(--muted);margin:0;font-size:12px;line-height:1.5}.reviews-heading>button{color:#385047;cursor:pointer;background:#fff;border:1px solid #cdd9cb;border-radius:50%;flex:0 0 36px;height:36px;font-size:24px;line-height:1}.reviews-summary{background:#f1f7df;border-radius:12px;flex-wrap:wrap;align-items:center;gap:9px 12px;margin:18px 0 12px;padding:13px;display:flex}.reviews-summary strong{font-size:13px}.reviews-summary>span{color:#58705d;flex-basis:100%;font-size:11px;line-height:1.4}.review-stars{color:#88a600;letter-spacing:1px;white-space:nowrap;font-size:18px}.review-stars i{color:#d7dfd3;font-style:normal}.review-stars b{color:#244738;letter-spacing:0;margin-left:7px;font-size:13px}.reviews-actions{flex-wrap:wrap;gap:12px;display:flex}.reviews-actions a,.reviews-actions button{color:#496d17;cursor:pointer;background:0 0;border:0;padding:6px 0;font-size:12px;font-weight:800;text-decoration:underline}.reviews-list{border-top:1px solid var(--line);margin-top:16px;padding-top:16px}.reviews-list h3,.review-form h3{margin:0 0 10px;font-size:15px}.reviews-list>p{color:var(--muted);font-size:12px;line-height:1.5}.review-comment{border-top:1px solid #e8ece5;padding:13px 0}.review-comment:first-of-type{border-top:0}.review-comment .review-stars{font-size:14px}.review-comment p{color:#42594f;margin:7px 0;font-size:12px;line-height:1.55}.review-comment button{color:#58705d;cursor:pointer;background:0 0;border:0;padding:3px 0;font-size:11px;font-weight:800}.review-comment button[aria-pressed=true]{color:#6d9200}.review-form{border-top:1px solid var(--line);gap:11px;margin-top:12px;padding-top:18px;display:grid}.rating-picker{gap:4px;display:flex}.rating-picker button{color:#d7dfd3;cursor:pointer;background:0 0;border:0;padding:1px;font-size:28px;line-height:1}.rating-picker button.selected{color:#91ad00}.review-form label{color:#385047;gap:7px;font-size:12px;font-weight:800;display:grid}.review-form label span{color:var(--muted);font-size:10px;font-weight:500}.review-form textarea{color:var(--ink);font:inherit;resize:vertical;background:#f8faf3;border:1px solid #d5ded2;border-radius:9px;outline:none;width:100%;min-height:95px;padding:11px 12px}.review-form textarea:focus{border-color:#8dac1d;box-shadow:0 0 0 3px #d9ff4d55}.review-pending,.review-message{color:#496126;background:#f2f7e1;border-radius:8px;margin:0;padding:9px 10px;font-size:11px;line-height:1.4}.review-login{border-top:1px solid var(--line);margin-top:16px;padding-top:18px}.review-login strong{font-size:14px}.review-login p{color:var(--muted);font-size:12px;line-height:1.5}.review-login .portal-primary{width:auto;text-decoration:none;display:inline-block}.admin-review-queue{max-width:900px;margin:0 auto 66px}.admin-review-queue h2{letter-spacing:-.05em;margin:0;font-size:28px}.admin-review{border:1px solid var(--line);background:#fff;border-radius:13px;margin-top:12px;padding:16px}.admin-review>span{color:#668300;font-size:12px;font-weight:800}.admin-review p,.admin-review-empty{color:var(--muted);margin:9px 0;font-size:12px;line-height:1.5}@media (min-width:761px){.hero{min-height:0;padding-top:12px;padding-bottom:12px}.explore{padding-top:16px}.hero-map-controls{margin-top:16px}.map-heading{margin-bottom:10px}.map-heading h1{font-size:clamp(32px,2.8vw,42px)}.hero .location-message{margin-top:6px}.hero .location-search label{margin-bottom:4px}.hero .location-search input{padding-top:8px;padding-bottom:8px}.hero .filter-groups{gap:18px 42px;margin-top:14px}.hero .filter-title{margin-bottom:5px}.hero .filter{padding:7px 12px}.filter-result-count{padding-bottom:0}}@media (max-width:760px){.map-expand-button{min-height:40px;top:10px;right:10px}.map-frame.expanded{border-radius:12px;inset:8px;height:calc(100dvh - 16px)!important}.reviews-backdrop{align-items:flex-end;padding:8px}.reviews-modal{border-radius:14px;max-height:calc(100dvh - 16px);padding:18px}.reviews-heading h2{font-size:24px}.reviews-actions{gap:9px}.review-login .portal-primary{width:100%}.admin-review-queue{margin:0 auto 42px}}
