/* Oversize & Permits. The map picks the two ends of the move; three tabs under
   it carry the work in the order a planner does it: route, dimensions, what to
   do. Dense on purpose — a planner should see the map, the step they are on and
   the next field without scrolling past empty space. Google keeps its own
   terrain colors, so state fills stay translucent and the two ends of the move
   are the brightest thing on the map. */
.permit-top{padding:22px 0 0}
.permit-top h1{max-width:900px;font-size:clamp(30px,3.4vw,46px);margin:6px 0 0}
.permit-lede{max-width:860px;margin:10px 0 0;font-size:.97rem}
.permit-app{padding:16px 0 46px}
.permit-app h2{font-size:1.3rem}
.permit-note{font-size:.82rem;color:var(--muted);margin:6px 0 0}

/* Map */
.permit-map-shell{border:2px solid var(--navy);background:#fff}
.permit-map-bar{display:flex;justify-content:space-between;align-items:center;gap:10px 20px;flex-wrap:wrap;padding:9px 13px;border-bottom:1px solid var(--rule)}
.permit-cue{margin:0;font-size:.95rem;font-weight:600;color:var(--ink)}
.permit-cue b{display:inline-block;background:var(--ask-blue);color:#fff;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;margin-right:9px;vertical-align:1px}
.permit-cue.is-done b{background:var(--green-dark)}
.permit-map-tools{display:flex;align-items:flex-end;gap:10px}
.permit-jump{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.permit-jump select{display:block;margin-top:3px;min-height:34px;min-width:180px;padding:5px 8px;border:1px solid var(--navy-soft);background:#fff;font:inherit;font-size:.84rem;text-transform:none;letter-spacing:0;color:var(--ink)}
.permit-reset{min-height:34px;padding:6px 12px;border:1px solid var(--navy-soft);background:#fff;font:inherit;font-size:.82rem;font-weight:600;cursor:pointer;color:var(--navy)}
.permit-reset:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.permit-map{position:relative;background:var(--surface-blue)}
.permit-map-google{height:min(62vh,640px);min-height:400px}
.permit-map svg{width:100%;display:block;max-height:600px;background:var(--surface-blue)}
.permit-map path{fill:#fff;stroke:#9FB3C2;stroke-width:.8;cursor:pointer}
.permit-map path.reviewed{fill:#DCF1E6}
.permit-map path:hover,.permit-map path:focus{fill:var(--blue-tint);outline:none;stroke:var(--navy);stroke-width:2}
.permit-map path.from{fill:#168FE5;stroke:#0B4F80;stroke-width:1.8}
.permit-map path.to{fill:#16A45F;stroke:#0C5F38;stroke-width:1.8}
.permit-map path.crossed{fill:#9AD7B6}
.permit-map path.selected{stroke:var(--navy);stroke-width:2.6}
.permit-map-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;padding:7px 13px;border-top:1px solid var(--rule);font-size:.76rem;color:var(--body)}
.permit-map-legend .k{display:inline-flex;align-items:center;gap:7px}
.permit-map-legend .k::before{content:"";width:12px;height:12px;border:1px solid var(--navy-soft);background:#fff}
.permit-map-legend .k-from::before{background:#168FE5;border-color:#0B4F80}
.permit-map-legend .k-to::before{background:#16A45F;border-color:#0C5F38}
.permit-map-legend .k-route::before{background:#9AD7B6}
.permit-map-legend .k-reviewed::before{background:#DCF1E6}
.permit-map-legend [data-map-status]{color:var(--muted);margin-left:auto}

/* State detail, opened by a map click once both ends are set, or from the list */
.permit-state-card{border:2px solid var(--navy);border-top:0;background:var(--surface-blue);padding:15px 17px;scroll-margin-top:110px}
.permit-state-card:focus{outline:none}
.permit-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.permit-state-card h2{margin:2px 0 6px;font-size:1.45rem}
.permit-state-card .eyebrow{font-size:.66rem}
.permit-card-close{border:1px solid var(--navy-soft);background:#fff;width:30px;height:30px;font-size:1rem;line-height:1;cursor:pointer;flex:none}
.permit-card-close:hover{background:var(--navy);color:#fff}
.permit-badge{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:3px 8px;border:1px solid var(--navy-soft);color:var(--muted);background:#fff}
.permit-badge.is-reviewed{border-color:var(--green-dark);color:var(--green-dark);background:#E8F7EF}
.permit-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:9px;margin:11px 0}
.permit-tile{background:#fff;border:1px solid var(--ground-line);border-top:3px solid var(--green);padding:8px 10px}
.permit-tile.is-open{border-top-color:var(--navy-soft)}
.permit-tile h4{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700}
.permit-tile p{margin:4px 0 0;font-size:.86rem;line-height:1.3}
.permit-tile b{font-size:1.4rem;font-weight:800;letter-spacing:-.02em}
.permit-tile em{font-style:normal;color:var(--muted)}
.permit-tile small{display:block;margin-top:4px;font-size:.68rem;color:var(--muted)}
.permit-card-status{font-size:.85rem;font-weight:600;color:var(--green-dark);margin:7px 0 0;min-height:1em}
.permit-state-card .permit-actions{margin:0}
.permit-state-card .btn{min-height:36px;padding:8px 13px;font-size:.84rem}

/* Step tabs */
.permit-utility{display:flex;flex-wrap:wrap;gap:9px;align-items:center;justify-content:flex-end;margin:12px 0 6px;font-size:.76rem;color:var(--muted)}
.permit-utility button{border:1px solid var(--navy-soft);background:#fff;padding:5px 10px;font:inherit;font-size:.76rem;font-weight:600;cursor:pointer;color:var(--navy)}
.permit-utility button:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.permit-utility label{display:flex;align-items:center;gap:7px;margin:0;font-weight:600}
.permit-utility input{font:inherit;font-size:.74rem;max-width:200px}
.permit-tabs{border-bottom:2px solid var(--navy)}
.permit-tab{flex:1 1 200px;justify-content:flex-start;align-items:center;min-height:54px;padding:8px 14px;gap:10px;text-align:left;letter-spacing:0;font-size:14px}
.permit-tab i{display:grid;place-items:center;width:23px;height:23px;flex:none;background:var(--ground-line);color:var(--navy);font-style:normal;font-size:.78rem;font-weight:800}
.permit-tab.is-on i{background:var(--ask-blue);color:#fff}
.permit-tab span{font-weight:800}
.permit-tab small{margin-left:auto;font-size:.76rem;font-weight:700;color:var(--green-dark);text-align:right;text-transform:none;letter-spacing:0}
.permit-panel{border:1px solid var(--ground-line);border-top:0;background:#fff;padding:15px 17px}
.permit-panel-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:12px}
.permit-panel-actions .btn{min-height:42px;padding:12px 18px;font-size:.92rem}
.permit-panel-actions .permit-note{margin:0}
.permit-panel details{margin-top:12px}
.permit-panel summary{cursor:pointer;font-weight:700;font-size:.86rem;padding:8px 0}
.permit-route-states{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.permit-route-states:empty{display:none}
.permit-route-states button{border:1px solid var(--navy-soft);background:#fff;padding:5px 10px;font:inherit;font-size:.82rem;cursor:pointer}
.permit-route-states button:hover{background:var(--navy);color:#fff;border-color:var(--navy)}

/* Dense field grid: four to a row, small controls, quiet labels */
.permit-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px 12px;align-items:end}
.permit-fields label{display:block;margin:0;font-size:.71rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}
.permit-fields input,.permit-fields select{display:block;width:100%;margin-top:3px;min-height:37px;padding:7px 8px;background:#fff;border:1px solid var(--navy-soft);font:inherit;font-size:.9rem;text-transform:none;letter-spacing:0;color:var(--ink)}
.permit-fields .span2{grid-column:span 2}
.permit-field-group{grid-column:1/-1;margin:7px 0 -2px;font-size:.73rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--navy)}

.permit-promise{margin:14px 0 0;padding:10px 13px;background:var(--surface-blue);border-left:3px solid var(--ask-blue);font-size:.85rem;line-height:1.5}
.permit-promise b{color:var(--navy)}
.permit-gets{list-style:none;display:flex;flex-wrap:wrap;gap:6px 8px;margin:12px 0 0;padding:0}
.permit-gets li{padding:5px 10px;border:1px solid var(--ground-line);background:var(--surface-blue);font-size:.79rem;font-weight:600;color:var(--body)}
/* Step 3: the cost lines and the order of the work */
.permit-process{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 30px;margin-top:18px;padding-top:16px;border-top:1px solid var(--ground-line)}
.permit-process-title{font-size:1.02rem;margin:0}
.permit-costs{list-style:none;margin:10px 0 0;padding:0}
.permit-costs li{padding:8px 0;border-top:1px solid var(--ground-line)}
.permit-costs li:first-child{border-top:0}
.permit-costs b{display:block;font-size:.88rem}
.permit-costs span{display:block;margin-top:2px;font-size:.81rem;color:var(--muted);line-height:1.45}
.permit-sequence{margin:10px 0 0;padding:0;list-style:none;counter-reset:permit-step}
.permit-sequence li{counter-increment:permit-step;position:relative;padding:7px 0 7px 30px;font-size:.85rem;line-height:1.45;border-top:1px solid var(--ground-line)}
.permit-sequence li:first-child{border-top:0}
.permit-sequence li::before{content:counter(permit-step);position:absolute;left:0;top:7px;display:grid;place-items:center;width:20px;height:20px;background:var(--navy);color:#fff;font-size:.68rem;font-weight:800}

/* The states, in two honest groups */
.permit-states{margin-top:32px}
.permit-states-head{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;flex-wrap:wrap}
.permit-filter{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.permit-filter input{display:block;margin-top:4px;min-height:38px;min-width:240px;padding:7px 10px;border:1px solid var(--navy-soft);background:#fff;font:inherit;font-size:.9rem;text-transform:none;letter-spacing:0}
.permit-guide-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:13px}
.permit-guide-card{display:flex;flex-direction:column;gap:2px;padding:11px 13px;border:1px solid var(--ground-line);border-left:3px solid var(--green);background:#fff;color:var(--ink);text-decoration:none}
.permit-guide-card:hover{border-color:var(--navy);border-left-color:var(--green);background:var(--surface-blue)}
.permit-guide-card b{font-size:1rem}
.permit-guide-card span{font-size:.75rem;color:var(--muted)}
.permit-guide-card em{font-style:normal;font-size:.77rem;font-weight:700;color:var(--green-dark)}
.permit-progress-title{margin:24px 0 0;font-size:1.02rem;display:flex;align-items:baseline;gap:10px}
.permit-progress-title span{font-size:.77rem;font-weight:600;color:var(--muted)}
.permit-chip-grid{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px}
.permit-chip{padding:6px 11px;border:1px solid var(--ground-line);background:#fff;color:var(--body);font:inherit;font-size:.83rem;font-weight:600;cursor:pointer}
.permit-chip:hover{border-color:var(--navy);background:var(--surface-blue);color:var(--ink)}

.permit-notice{padding:10px 13px;border-left:3px solid var(--navy);background:var(--surface-blue);font-size:.85rem;margin-top:16px}
.permit-reading{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 28px;margin-bottom:16px}
.permit-app>div>h2{margin-top:28px}
.permit-facts{border-bottom:1px solid var(--rule)}
.permit-facts summary{cursor:pointer;font-weight:700;padding:10px 0}
.permit-facts dl{display:grid;grid-template-columns:minmax(160px,1fr) 3fr;gap:12px}
.permit-facts dt{font-weight:700}
.permit-facts dd{margin:0}
.permit-facts dd p{margin:.4em 0}
.permit-facts small{display:block;color:var(--muted);margin-top:4px}
.permit-actions{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 14px}
.permit-state{max-width:1050px}
.permit-result{padding:16px;border:1px solid var(--ground-line);margin:12px 0}
.permit-result h3{margin-top:0}
.permit-result .triggered{border-left:3px solid #B87820;padding-left:12px}
.permit-summary{overflow:auto}
.permit-summary table{width:100%;border-collapse:collapse}
.permit-summary th,.permit-summary td{text-align:left;border-bottom:1px solid var(--rule);padding:9px}
.permit-total{font-size:1.3rem;font-weight:700}
[data-move-plan]{scroll-margin-top:120px;margin-top:20px}
.permit-app [hidden]{display:none!important}

@media(max-width:1000px){.permit-guide-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.permit-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.permit-process{grid-template-columns:1fr}.permit-map-google{height:50vh;min-height:320px}.permit-tab{flex:1 1 140px}}
@media(max-width:700px){.permit-map-bar,.permit-map-legend{padding:10px}.permit-map-tools{width:100%}.permit-jump{flex:1}.permit-jump select,.permit-filter input{min-width:0;width:100%}.permit-tab{flex:1 1 100%;min-height:46px}.permit-tab small{font-size:.72rem}.permit-guide-grid{grid-template-columns:1fr}.permit-fields{grid-template-columns:1fr}.permit-fields .span2{grid-column:span 1}.permit-facts dl{grid-template-columns:1fr}.permit-reading{grid-template-columns:1fr}.permit-utility{justify-content:flex-start}}
@media print{.permit-map-shell,.permit-state-card,.permit-tabs,.permit-panel,.permit-states,.permit-actions,.permit-reading,.permit-top,.permit-utility{display:none!important}[data-move-plan]{display:block!important;margin:0}.permit-result{break-inside:avoid}.permit-facts,.permit-facts>*{display:block!important}.permit-summary{overflow:visible}}
