:root{--ink:#262421;--muted:#7c786f;--orange:#f15a24;--orange2:#d94716;--cream:#f7f3df;--paper:#fffdf8;--bg:#fbfaf4;--line:#e7e1d4;--black:#252525;--green:#2bb673;--red:#e84b4b;--shadow:0 8px 24px rgba(54,42,20,.06)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);line-height:1.45}a{color:inherit;text-decoration:none}a:hover{color:var(--orange)}h1,h2,h3{letter-spacing:-.025em}h1,h2{font-family:Georgia,"Times New Roman",serif}.utility{height:30px;background:var(--orange);color:white;font-size:12px}.utility-inner{max-width:1220px;margin:auto;padding:6px 22px;display:flex;justify-content:space-between;gap:20px}.top{background:rgba(255,253,248,.97);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:1000;backdrop-filter:blur(12px)}.nav{max-width:1220px;margin:auto;padding:12px 22px;display:flex;align-items:center;gap:26px}.brand{display:flex;align-items:center;gap:10px;font-weight:800}.brandmark{width:34px;height:34px;border-radius:10px;background:var(--orange);color:#fff;display:grid;place-items:center;font-family:Georgia,serif;font-size:19px}.brandtext{line-height:1}.brandtext small{display:block;font-size:9px;letter-spacing:.23em;font-weight:600;color:#858078;margin-top:3px}.nav>a:not(.brand){font-size:14px}.nav .spacer{flex:1}.nav-search{width:min(360px,32vw);background:var(--cream);border:1px solid #ece5cb;border-radius:999px;padding:10px 15px}.wrap{max-width:1220px;margin:auto;padding:28px 22px}.hero-shell{max-width:1220px;margin:24px auto 0;padding:0 22px}.hero{display:grid;grid-template-columns:1.15fr .85fr;border:1px solid var(--line);border-radius:22px;overflow:hidden;background:var(--paper);box-shadow:var(--shadow)}.hero-main{padding:42px 38px}.eyebrow{display:inline-flex;gap:7px;align-items:center;background:var(--cream);border-radius:999px;padding:6px 12px;font-size:12px;color:#746f61}.dot{width:7px;height:7px;background:var(--green);border-radius:50%}.hero h1{font-size:48px;line-height:.98;margin:22px 0 14px;max-width:650px}.accent{color:var(--orange)}.hero p{font-size:16px;color:#5f5a52;max-width:650px}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;padding:11px 18px;background:var(--orange);color:#fff;font-weight:750;cursor:pointer}.btn:hover{background:var(--orange2);color:#fff}.btn.secondary{background:var(--cream);color:var(--ink);border:1px solid #ece5cb}.btn.dark{background:var(--black)}.hero-side{background:linear-gradient(145deg,#f8f4df,#f3efd7);padding:28px;display:flex;flex-direction:column;gap:14px}.principles,.safety{border-radius:14px;padding:18px;background:#fff;border:1px solid var(--line)}.principles h3,.safety h3{font-size:12px;letter-spacing:.16em;color:#8c867c;margin:0 0 12px}.principles div{margin:9px 0;font-size:13px}.safety{background:var(--black);color:#fff;border:0}.safety p{font-size:12px;color:#ddd;margin:0}.stat-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:25px}.stat{min-width:115px;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:#fffdf8}.stat span{display:block;color:#8c867c;font-size:10px;text-transform:uppercase}.stat strong{font-size:17px}.section-title{font-size:25px;margin:6px 0 16px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.card{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:0 2px 8px rgba(40,30,10,.025)}.card h2,.card h3{margin-top:0}.card h3{font-family:inherit}.discovery{margin-top:24px}.discovery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.feature-card{min-height:170px}.feature-card h3{font-size:14px}.business-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}.business-row{display:flex;align-items:center;gap:12px;padding:11px;border:1px solid var(--line);border-radius:11px;background:#fff}.avatar{width:34px;height:34px;border-radius:50%;background:#fff0e9;color:var(--orange);display:grid;place-items:center;font-weight:800}.business-row .meta{font-size:12px;color:var(--muted)}.pill{display:inline-block;padding:4px 9px;border-radius:999px;background:var(--cream);color:#665f50;font-size:12px}.muted{color:var(--muted)}.empty{padding:30px;border:1px dashed #cec5b4;border-radius:12px;text-align:center;color:var(--muted);background:#fff}.searchbar{display:flex;gap:8px;max-width:760px;margin-top:22px}.searchbar input{flex:1;padding:14px 16px;border:1px solid var(--line);border-radius:999px;font-size:16px;background:#fff}.form{max-width:780px}.field{margin-bottom:18px}.field label{display:block;font-weight:700;margin-bottom:6px}.field input,.field select,.field textarea{width:100%;padding:12px;border:1px solid #cfc8ba;border-radius:9px;background:#fff;font:inherit}.field textarea{min-height:150px}.field-error{border-color:#b42318!important;box-shadow:0 0 0 2px #b4231818}.error,.success,.notice{padding:12px 14px;border-radius:9px;margin:0 0 18px}.error{background:#fff1f0;color:#b42318}.success{background:#ecfdf3;color:#067647}.notice{background:var(--cream);border:1px solid #e9dfb9}.stars{display:flex;gap:8px;flex-wrap:wrap}.stars label{font-size:18px;cursor:pointer;border:1px solid var(--line);padding:8px 11px;border-radius:9px;background:#fff}.stars input{width:auto}.business-title{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.map{height:610px;border-radius:14px;border:1px solid var(--line);overflow:hidden;background:#e8edf3;box-shadow:var(--shadow)}.media-preview{display:flex;gap:10px;flex-wrap:wrap}.media-preview span{padding:8px;background:var(--cream);border-radius:6px;font-size:13px}.footer{margin-top:56px;padding:30px 22px;border-top:1px solid var(--line);background:#fffdf8}.footer-inner{max-width:1220px;margin:auto;font-size:12px;color:#716b61;display:flex;justify-content:space-between;gap:25px}.toolbar{display:grid;grid-template-columns:2fr 1fr auto;gap:10px;align-items:end}.results-head{display:flex;justify-content:space-between;gap:15px;align-items:center}.pager{display:flex;gap:8px;justify-content:center;margin:26px 0}.selected-business{padding:15px;border-left:4px solid var(--orange);background:#fff4ee;border-radius:7px;margin-bottom:20px}.road-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:20px}.small{font-size:13px}.directory-card{position:relative;padding-left:20px}.directory-card:before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:3px;border-radius:3px;background:var(--orange)}.directory-card strong{color:#4d4942}.category-chips{display:flex;gap:8px;flex-wrap:wrap}.category-chips a{padding:7px 11px;background:var(--cream);border-radius:999px;font-size:12px}.road-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:16px}.road-head h1{font-size:40px;margin:0}.road-panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px}.black-callout{background:var(--black);color:#fff;border-radius:14px;padding:20px}.black-callout .btn{background:#fff;color:#111;width:100%;margin-top:12px}.black-callout p{color:#ddd;font-size:13px}.no-rating{font-size:12px;color:#8a8378;background:var(--cream);padding:5px 9px;border-radius:999px}@media(max-width:900px){.hero{grid-template-columns:1fr}.grid,.discovery-grid{grid-template-columns:1fr 1fr}.road-layout{grid-template-columns:1fr}.nav-search{display:none}}@media(max-width:650px){.utility{height:auto}.utility-inner{padding:5px 12px}.utility-inner span:last-child{display:none}.nav{padding:10px 14px;gap:12px}.brandtext small{display:none}.nav>a:not(.brand){font-size:12px}.hero-shell{padding:0 12px}.hero-main{padding:28px 22px}.hero h1{font-size:38px}.hero-side{padding:20px}.wrap{padding:22px 12px}.grid,.discovery-grid,.business-list{grid-template-columns:1fr}.toolbar{grid-template-columns:1fr}.business-title,.results-head,.road-head,.footer-inner{display:block}.map{height:480px}.stat{min-width:95px}.footer-inner>div+div{margin-top:12px}}

.confirm-row{display:flex;gap:10px;align-items:flex-start;margin:8px 0 18px;font-weight:700}.confirm-row input{width:auto;margin-top:3px}.road-report-card{margin:0 0 12px}.road-report-card h3{margin:10px 0 6px}.road-report-card p{margin:0 0 8px}.success a{font-weight:800;text-decoration:underline}

/* v4.1 readability fix: keep business name and details visually separated */
.business-row > span:last-child{display:flex;flex-direction:column;min-width:0;gap:4px}
.business-row > span:last-child > b{display:block;font-size:16px;line-height:1.2}
.business-row .meta{display:block;font-size:13px;line-height:1.35;color:var(--muted)}
.business-row{min-height:62px;padding:13px 15px;gap:14px}
.business-row .avatar{flex:0 0 38px;width:38px;height:38px}
@media(max-width:650px){.business-row > span:last-child > b{font-size:15px}.business-row .meta{font-size:12px}}

/* v5 functional review system */
.rating-badge{font-size:12px;color:#8a4b19;background:#fff0e9;padding:5px 9px;border-radius:999px;font-weight:800}.rating-summary{display:flex;flex-direction:column;align-items:flex-end;gap:3px}.big-rating{font:700 28px Georgia,serif;color:var(--orange)}.business-info{margin:20px 0}.business-info #listingInfo{display:grid;gap:8px}.review-card{padding:18px 0;border-top:1px solid var(--line)}.review-card:first-child{border-top:0}.review-top{display:flex;justify-content:space-between;gap:15px}.review-stars{color:#d94716;font-weight:800}.review-meta{font-size:12px;color:var(--muted);margin:5px 0}.form-grid{grid-template-columns:1fr 1fr}.form-grid .field{margin-bottom:4px}@media(max-width:650px){.form-grid{grid-template-columns:1fr}.rating-summary{align-items:flex-start}.review-top{display:block}.review-stars{display:block;margin-top:4px}}

/* v5.1 Road Watch moderation + media fix */
.report-media{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.report-photo{width:min(320px,100%);max-height:240px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}.admin-stats{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.admin-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.admin-report{margin-bottom:14px}.status-pending{background:#fff3cd;color:#795b00}.status-approved{background:#dff6e9;color:#067647}.status-rejected{background:#ffe5e5;color:#a21b1b}
.map-report-popup img{display:block;width:100%;max-width:300px;max-height:190px;object-fit:cover;border-radius:8px;margin:0 0 8px}.map-report-popup p{margin:6px 0 0}.admin-lock{max-width:520px;margin:45px auto}.admin-lock input{width:100%;padding:13px;border:1px solid var(--line);border-radius:9px;font:inherit;margin:8px 0 12px}.admin-lock .error{margin-top:12px}.admin-toolbar{display:flex;justify-content:flex-end;margin-bottom:12px}

/* v5.3 incident map + popup media */
.incident-legend{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px;padding:10px 12px;background:#fff;border:1px solid var(--line);border-radius:12px;font-size:12px}.incident-legend span{display:inline-flex;align-items:center;gap:5px}.legend-dot{width:12px;height:12px;border-radius:50%;display:inline-block}.incident-marker-wrap{background:transparent;border:0}.incident-marker{width:38px;height:38px;border-radius:50% 50% 50% 8px;transform:rotate(-45deg);display:grid;place-items:center;border:3px solid #fff;box-shadow:0 3px 10px rgba(0,0,0,.35)}.incident-marker span{transform:rotate(45deg);font-size:18px;line-height:1}.incident-accident{background:#d32f2f!important;color:#fff}.incident-construction{background:#f57c00!important;color:#fff}.incident-closure{background:#212121!important;color:#fff}.incident-hazard{background:#fbc02d!important;color:#1b1b1b}.incident-weather{background:#1976d2!important;color:#fff}.incident-emergency{background:#7b1fa2!important;color:#fff}.incident-vehicle{background:#388e3c!important;color:#fff}.incident-general{background:#607d8b!important;color:#fff}.popup-type{display:inline-block;padding:5px 8px;border-radius:8px;margin:0 0 8px;font-weight:800}.map-report-popup video{display:block;width:100%;max-width:300px;max-height:210px;border-radius:8px;margin:0 0 8px;background:#111}.report-video{width:min(420px,100%);max-height:280px;border-radius:10px;background:#111;border:1px solid var(--line)}

.media-preview{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}.media-preview-item{display:flex;flex-direction:column;gap:5px;max-width:180px;font-size:11px;color:var(--muted)}.media-preview-thumb,.media-preview-video{width:180px;height:115px;object-fit:cover;border:1px solid var(--line);border-radius:9px;background:#111}

/* v5.6 Road Watch active incident attention markers */
.incident-marker{position:relative;animation:incidentPulse 1.45s ease-in-out infinite;transform-origin:center}
.incident-marker::after{content:"";position:absolute;inset:-8px;border:3px solid currentColor;border-radius:50%;opacity:.55;animation:incidentRing 1.45s ease-out infinite;pointer-events:none}
@keyframes incidentPulse{0%,100%{filter:brightness(1);box-shadow:0 3px 10px rgba(0,0,0,.35)}50%{filter:brightness(1.25);box-shadow:0 3px 14px rgba(0,0,0,.5)}}
@keyframes incidentRing{0%{transform:scale(.65);opacity:.7}100%{transform:scale(1.45);opacity:0}}
@media (prefers-reduced-motion:reduce){.incident-marker,.incident-marker::after{animation:none}}

/* v5.7 location-lock clarity */
#locationLock strong{color:#1d5e2b} #submitRoadReport:disabled{opacity:.5;cursor:not-allowed}
