/* Primary views + Location-Based Details (Distribution Permitting Tool). Uses the tokens in clr.css. */
input[type=text]{width:100%;height:34px;padding:0 10px;border-radius:8px;border:0;background:var(--bg);color:var(--fg);box-shadow:var(--shadow-border);font-size:.9rem;font-variant-numeric:tabular-nums;font-family:var(--font-mono)}
input[type=text]:hover{box-shadow:0 0 0 1px #ffffff2e}
input[type=text]:focus-visible{outline:0;box-shadow:0 0 0 1px var(--fg)}

/* ---------- primary view tabs (top-left, above the panels) ---------- */
.app{grid-template-rows:auto minmax(0,.9fr) minmax(0,1.1fr) auto;grid-template-areas:"views views" "inp draw" "inp res" "foot foot"}
.views{grid-area:views;display:flex;align-items:stretch;gap:6px;min-width:0;padding:3px;margin-bottom:-2px;justify-self:start;max-width:100%;
  background:var(--surface);border-radius:12px;box-shadow:var(--shadow-border)}
.vt{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:3px;min-width:0;padding:7px 16px 7px 14px;border:0;border-radius:9px;background:transparent;color:var(--muted);text-align:left;
  transition:background var(--motion-quick),color var(--motion-quick);position:relative}
.vt:hover{color:var(--fg);background:#ffffff0a}
.vt-t{font-family:var(--font-display);font-weight:600;font-size:17px;line-height:1;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}
.vt-s{font-size:9px;letter-spacing:.14em;color:var(--subtle);white-space:nowrap}
.vt[aria-selected=true]{background:var(--fg);color:var(--accent-fg)}
.vt[aria-selected=true] .vt-s{color:#070708a6}
.vt:focus-visible{outline:2px solid var(--warn);outline-offset:2px}
/* Location-Based Details: one full-width panel */
.p-loc{grid-area:loc}
.pmode .app{grid-template-areas:"views views" "loc loc" "loc loc" "foot foot"}
.pm-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);gap:14px;flex:1;min-height:0;padding:12px 14px 12px}
.pm-left{display:flex;flex-direction:column;gap:10px;min-height:0;min-width:0}
.pm-right{min-height:0;min-width:0;overflow:auto;scrollbar-width:thin;scrollbar-color:#ffffff26 transparent;padding-right:4px}
.pm-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}
.pm-row .fld{margin-bottom:0}
.pm-row2{grid-template-columns:auto auto;justify-content:space-between;margin-top:6px}
.pm-poles{display:grid;gap:8px}
.pm-pole .label{display:flex;align-items:center;gap:6px}
.pm-pr{display:grid;grid-template-columns:minmax(0,1fr) 6.2rem;gap:8px}
.pm-pr select{height:34px}
.pm-tag{display:inline-grid;place-items:center;width:17px;height:17px;border-radius:50%;background:var(--fg);color:var(--accent-fg);font-size:10px;font-weight:600;letter-spacing:0}
.pm-pole+.pm-pole .pm-tag{background:var(--warn)}
.pm-row3{grid-template-columns:minmax(0,1fr) auto;align-items:center;margin-top:8px}
.pm-span{margin:0;font-size:10.5px;letter-spacing:.08em;color:var(--muted)}
.pm-span b{color:var(--fg);font-weight:500}
.pm-span .warn{color:var(--warn)}
.pm-btns{display:flex;gap:6px}
.pm-rst{height:34px;padding:0 12px;border:0;border-radius:8px;background:transparent;color:var(--muted);box-shadow:var(--shadow-border);font-size:10.5px;letter-spacing:.14em}
.pm-rst:hover{color:var(--fg)}
.pm-pin{display:grid;place-items:center;border-radius:50%;background:#fff;color:#070708;font:600 12px/1 var(--font-mono);box-shadow:0 0 0 2px #070708,0 0 0 3.5px #ffffffb3;cursor:grab}
.pm-pin-b{background:var(--warn)}
.pm-pin span{pointer-events:none}
.leaflet-tooltip.pm-spantip{background:#070708d9;color:#fff;font:500 10.5px/1 var(--font-mono);letter-spacing:.06em;padding:3px 6px;box-shadow:var(--shadow-border)}
.leaflet-tooltip.pm-spantip:before{display:none}
input[aria-invalid=true]{box-shadow:0 0 0 1px var(--fault)}
.pm-row2 .seg{display:flex}
.pm-go{height:34px;padding:0 16px;border:0;border-radius:8px;background:var(--warn);color:#070708;font-size:10.5px;letter-spacing:.14em;white-space:nowrap;font-weight:600;box-shadow:0 0 0 1px #f0b25a,0 2px 10px #f0b25a33;transition:background var(--motion-quick)}
.pm-go:hover{background:#f6c57e}
.pm-go:focus-visible{outline:2px solid var(--fg);outline-offset:2px}
.pm-hint{margin-top:6px}
.pm-hint.bad{color:var(--fault)}
.pm-mapwrap{position:relative;flex:1;min-height:220px;border-radius:10px;overflow:hidden;box-shadow:var(--shadow-border);background:#1c1c20}
.pm-map{position:absolute;inset:0}
.pm-legend{position:absolute;left:8px;bottom:22px;z-index:500;display:flex;flex-wrap:wrap;gap:4px 10px;max-width:calc(100% - 16px);padding:6px 8px;border-radius:8px;background:#070708d9;box-shadow:var(--shadow-border);font-size:9.5px;letter-spacing:.08em;color:var(--fg);pointer-events:none}
.pm-legend:empty{display:none}
.lg{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.lg i{display:inline-block;width:14px;height:4px;border-radius:2px;background:var(--c)}
.lg i.lg-pole{display:inline-grid;place-items:center;width:13px;height:13px;border-radius:50%;background:#fff;color:#070708;font-style:normal;font-size:8px;font-weight:600;box-shadow:0 0 0 1.5px #070708}
.lg i.lg-pole+i.lg-pole{background:var(--warn);margin-left:-2px}
.lg i.lg-span{width:16px;height:3px;background:#fff}
.lg i.lg-buf{width:12px;height:12px;border-radius:50%;background:transparent;border:1.5px dashed #fff}
.lg i.lg-rail{background:repeating-linear-gradient(90deg,var(--c) 0 6px,transparent 6px 8px)}
.lg i.lg-boundary{background:repeating-linear-gradient(90deg,var(--c) 0 5px,transparent 5px 8px)}
.lg i.lg-wetland,.lg i.lg-flood,.lg i.lg-land,.lg i.lg-airport{height:9px;opacity:.85}

/* Leaflet, dark */
.leaflet-container{background:#1c1c20;font-family:var(--font-sans)}
.leaflet-bar a,.leaflet-bar a:hover{background:#121214;color:var(--fg);border-bottom-color:#ffffff1f}
.leaflet-bar{box-shadow:var(--shadow-border)!important;border:0!important}
.leaflet-control-layers{background:#121214;color:var(--fg);box-shadow:var(--shadow-border)!important;border:0!important;border-radius:8px!important}
.leaflet-control-layers-toggle{filter:invert(1) brightness(1.4);width:32px!important;height:32px!important}
.leaflet-control-layers-expanded{padding:6px 10px;font-size:12px}
.leaflet-control-attribution{background:#070708b3!important;color:var(--muted)!important;font-size:9.5px}
.leaflet-control-attribution a{color:var(--steel)!important}
.leaflet-control-scale-line{background:#070708b3;color:var(--fg);border-color:var(--fg)}
.leaflet-tooltip{background:#121214;color:var(--fg);border:0;box-shadow:var(--shadow-border);font-size:11px}
.leaflet-tooltip-top:before{border-top-color:#121214}

/* results */
.pm-disc{padding:9px 12px;border-radius:10px;background:#f0b25a14;box-shadow:inset 0 0 0 1px #f0b25a4d;color:#e9d3ae;font-size:.82rem;line-height:1.45}
.pm-disc b{color:var(--warn);font-weight:600}
.pm-status{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:10px 0 8px;font-size:10px;letter-spacing:.1em;color:var(--muted)}
.pm-status .cnt{padding:3px 7px;border-radius:6px;background:#ffffff0d}
.c-likely{color:var(--warn)}.c-possible{color:var(--line-c)}.c-always{color:var(--fg)}.c-err{color:var(--fault)}
.pm-meta{color:var(--subtle);text-transform:none;letter-spacing:.04em}
.spin{display:inline-block;width:11px;height:11px;margin-right:6px;border-radius:50%;border:2px solid #ffffff33;border-top-color:var(--fg);animation:pmspin .8s linear infinite;vertical-align:-1px}
@keyframes pmspin{to{transform:rotate(360deg)}}
.busy .pm-list,.busy .pm-layers{opacity:.4}
.pf{--lc:var(--subtle);padding:9px 12px 10px;margin-bottom:8px;border-radius:10px;background:var(--bg);box-shadow:var(--shadow-border),inset 3px 0 0 var(--lc)}
.lv-likely{--lc:var(--warn)}.lv-possible{--lc:var(--line-c)}.lv-always{--lc:var(--fg)}.lv-info{--lc:#6b6e73}
.pf-h{display:flex;align-items:center;gap:8px;font-size:9.5px;letter-spacing:.14em}
.pf-h .lv{color:var(--lc);font-weight:500}
.pf-cat{color:var(--subtle)}
.pf-d{margin-left:auto;color:var(--fg);letter-spacing:.06em;font-variant-numeric:tabular-nums}
.pf-t{margin:4px 0 0;font-size:.95rem;font-weight:600;line-height:1.3}
.pf-a{font-weight:400;color:var(--steel)}
.pf-a::before{content:"· "}
.pf-w{margin:4px 0 0;font-size:.82rem;line-height:1.5;color:#d4d2cd}
.pf-src{margin:5px 0 0;font-size:11px;color:var(--subtle);line-height:1.45}
.pf-src:empty{display:none}
.pm-right a{color:var(--steel);text-decoration:underline;text-decoration-color:#9aa3ad55;text-underline-offset:2px;word-break:break-word}
.pf-own{margin-top:6px;padding-top:6px;border-top:1px solid var(--border);font-size:.8rem;line-height:1.45}
.pf-own summary{cursor:pointer;color:var(--fg)}
.pf-own summary .mono{font-size:9px;letter-spacing:.14em;color:var(--warn);margin-right:4px}
.pf-own ul{margin:.35rem 0;padding-left:1.1rem}
.pf-own li{margin:.25rem 0}
.pf-own .q{color:var(--muted)}
.pf-own .sec{font-size:9.5px;color:var(--steel);letter-spacing:.06em}
.pf-own .src{margin:.3rem 0 0;color:var(--subtle);font-size:11px}
.pm-h{margin:14px 0 6px;font-family:var(--font-display);font-weight:500;font-size:15px;letter-spacing:.12em;text-transform:uppercase}
table.pm-tbl td,table.pm-tbl th{text-align:left;white-space:normal;vertical-align:top;font-size:11.5px}
table.pm-tbl .ok{color:var(--ok)}table.pm-tbl .bad{color:var(--fault)}table.pm-tbl .m{color:var(--subtle)}
.pm-manual ul{margin:.2rem 0;padding-left:1.1rem;font-size:.8rem;line-height:1.5;color:#d4d2cd}
.pm-manual li{margin:.3rem 0}

/* ---------- Required heights & staking ---------- */
.ph-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:6px 0 2px}
.ph-head .pm-h[hidden]+#pmLine{margin-left:auto}
.ph-head .pm-h{margin:0 0 4px}
.ph-line{display:flex;gap:8px;flex-wrap:wrap}
.ph-line .fld{margin:0;min-width:0}
.ph-line select{height:30px;font-size:.82rem;min-width:9.5rem}
#phKvF select{min-width:6rem}
.ph-note{margin:4px 0 8px;font-size:.78rem;line-height:1.45;color:var(--muted)}
.ph-note b{color:var(--fg);font-weight:600}
.ph{margin-top:8px;padding-top:7px;border-top:1px solid var(--border)}
.ph-h{margin:0 0 2px;font-size:9px;letter-spacing:.16em;color:var(--warn);font-weight:500}
table.ph-t{margin-top:6px;table-layout:fixed}
table.ph-t th:nth-child(1){width:24%}table.ph-t th:nth-child(2){width:36%}table.ph-t th:nth-child(3){width:24%}table.ph-t th:nth-child(4){width:16%}
table.ph-t th,table.ph-t td{text-align:left;white-space:normal;vertical-align:top;font-size:11.5px;padding:5px 6px}
table.ph-t th{font-family:var(--font-mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--subtle);font-weight:400}
table.ph-t td b{font-weight:600;color:var(--fg);font-variant-numeric:tabular-nums}
table.ph-t td .q{display:block;color:var(--subtle);font-size:10px;line-height:1.35;margin-top:1px}
table.ph-t td>span:not(.q):not(.m){display:block}
table.ph-t td.gov b{color:var(--warn);font-size:13px}
table.ph-t .m{color:var(--subtle)}
table.ph-t tr.cond td{color:var(--muted);font-size:10.5px;border-bottom-style:dashed}
table.ph-t tr.cond .mono{font-size:8.5px;letter-spacing:.12em;color:var(--steel);margin-right:4px}
table.ph-t tr.cond .q{display:inline}
.ph-stk{margin-top:6px}
.ph-stk h5{margin:6px 0 2px;font-size:9px;letter-spacing:.16em;color:var(--steel);font-weight:400}
.ph-stk ul{margin:0;padding-left:1.05rem;font-size:.8rem;line-height:1.5;color:#d4d2cd}
.ph-stk li{margin:.3rem 0}
.ph-stk li b{color:var(--fg);font-weight:600}
.ph-stk .sec{font-size:9px;color:var(--steel);letter-spacing:.06em}
.ph-stk details{margin-top:2px}
.ph-stk summary{cursor:pointer;font-size:9px;letter-spacing:.14em;color:var(--subtle)}
.ph-stk details .q{margin:.25rem 0;color:var(--muted);font-size:.76rem}
.ph-stk details .src{margin:0;font-size:10.5px}
.ph-stk li.vfy{color:var(--warn);list-style:"! "}
.ph-stk li.vfy b{color:var(--warn)}
.ph-cav{margin:6px 0 0;font-size:.76rem;line-height:1.45;color:var(--muted);font-style:italic}

/* tablets / narrow desktop: one column, panel scrolls */
@media (max-width:999px) and (min-width:760px){
  .app{grid-template-rows:auto minmax(0,1fr) minmax(0,1.15fr) auto}
}
@media (max-width:999px){
  .vt-t{font-size:15px}
  .p-loc{overflow:auto}
  .pm-grid{display:block;flex:none}
  .pm-mapwrap{flex:none;height:340px}
  .pm-right{overflow:visible;margin-top:12px;padding-right:0}
}
/* phones */
@media (max-width:759px){
  .views{order:0;position:sticky;top:0;z-index:600;justify-self:stretch;width:100%;margin:0;box-shadow:var(--shadow-border),0 6px 14px #070708cc}
  .vt{flex:1 1 0;padding:7px 10px}
  .vt-t{font-size:13.5px;letter-spacing:.08em;white-space:normal}
  .vt-s{display:none}
  .p-loc{order:1;overflow:visible}
  .pm-grid{padding:10px}
  .pm-go{height:38px}
  table.ph-t thead{display:none}
  table.ph-t tr{display:block;padding:4px 0;border-bottom:1px solid var(--border)}
  table.ph-t td{display:block;position:relative;border:0;padding:2px 0 2px 5.8rem;width:auto}
  table.ph-t td::before{content:attr(data-l);position:absolute;left:0;top:4px;font-family:var(--font-mono);font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--subtle)}
  table.ph-t td:first-child{padding-left:0;font-weight:600;color:var(--fg)}
  table.ph-t td:first-child::before{content:none}
  table.ph-t tr.cond td{display:block;padding-left:0}
  table.ph-t tr.cond td::before{content:none}
  .pm-row2{grid-template-columns:minmax(0,1fr) 7.5rem}
  .pm-row2{grid-template-columns:1fr;gap:6px}
  .pm-row2 .seg button{padding:0 8px}
  .pm-row3{grid-template-columns:1fr;gap:6px}
  .pm-btns{justify-content:stretch}.pm-btns button{flex:1;height:38px}
  .pm-pr{grid-template-columns:minmax(0,1fr) 5.6rem}
  .pm-pr select{height:38px}
  input[type=text]{font-size:16px;height:38px}
  .pm-mapwrap{height:300px}
  .pm-legend{bottom:20px;font-size:9px}
}

/* print: permits report when the tab is open, hidden otherwise */
@media print{
  .views{display:none!important}
  body:not(.pmode) #pane-pmt,body:not(.pmode) #pmPrint{display:none!important}
  .pmode #printInputs,.pmode .p-draw,.pmode .p-results,.pmode .p-inputs{display:none!important}
  .pm-grid{display:block;padding:0}
  .ph-line,.ph-stk details{display:none!important}
  .ph{margin-top:5px;padding-top:4px;border-top-color:#0002}.ph-h{color:#9a5200}
  #pmLine{display:none!important}
  .pf-h,.pf-t{break-after:avoid}.ph .tbl-wrap,.ph-stk li{break-inside:avoid}
  .ph-note,.ph-cav{color:#333}.ph-note b{color:#111}
  table.ph-t td b{color:#111}table.ph-t td.gov b{color:#9a5200}
  table.ph-t th,table.ph-t td{font-size:8.5pt}table.ph-t td .q{color:#555;font-size:7.5pt}
  .ph-stk ul{color:#111;font-size:8.5pt}.ph-stk li b{color:#111}.ph-stk li.vfy,.ph-stk li.vfy b{color:#9a5200}
  .pmode #pmPrint{display:block}
  #pmPrint h2{font-family:var(--font-display);font-weight:600;font-size:15px;letter-spacing:.12em;text-transform:uppercase;margin:10px 0 4px}
  #pmPrint table{width:auto}
  .pm-pdisc{margin:2px 0 6px;font-size:9.5pt;color:#7a3e00}
  .pmode #pane-pmt{display:block!important;padding:0;overflow:visible}
  .pm-ctl,.pm-disc,.leaflet-control-zoom,.leaflet-control-layers{display:none!important}
  .pm-mapwrap{height:3.1in;flex:none;break-inside:avoid;box-shadow:0 0 0 1px #0004;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .pm-legend{background:#fff;color:#111;box-shadow:0 0 0 1px #0003;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .lg i.lg-pole{background:#fff;box-shadow:0 0 0 1.5px #111}.lg i.lg-pole+i.lg-pole{background:#f0b25a}.lg i.lg-span{background:#111}.lg i.lg-buf{border-color:#111}
  .pm-pin{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .pm-right{overflow:visible;margin-top:8px}
  .pm-status{color:#333}.pm-status .cnt{background:none;box-shadow:inset 0 0 0 1px currentColor}
  .c-likely{color:#9a5200}.c-possible{color:#1f5fa0}
  .pf{background:none;box-shadow:inset 0 0 0 1px #0002,inset 3px 0 0 var(--lc);break-inside:auto;-webkit-print-color-adjust:exact;print-color-adjust:exact;margin-bottom:5px;padding:6px 10px}
  .lv-likely{--lc:#b35c00}.lv-possible{--lc:#1f5fa0}.lv-always{--lc:#111}.lv-info{--lc:#888}
  .pf-w{color:#111;font-size:9pt}.pf-t{font-size:10pt}.pf-a{color:#335}
  .pf-own ul,.pf-own>.q{display:none}
  .pm-right a{color:#123;text-decoration:none}
  .pf-src a::after,.pf-own .src a::after,.pm-manual a::after{content:" (" attr(href) ")";font-size:7.5pt;color:#555;word-break:break-all}
  .pm-manual ul{color:#111;font-size:8.5pt}
  table.pm-tbl td,table.pm-tbl th{font-size:8.5pt}
  .pm-layers{break-before:auto}
}
/* print-size map (set by the app just before printing so Leaflet can refit) */
.pm-printing .pm-mapwrap{width:7in!important;height:3.1in!important;flex:none!important;min-height:0}
@media print{
  .pm-mapwrap{width:7in;height:auto!important;overflow:visible;box-shadow:none;background:none}
  .pm-map{position:relative;inset:auto;width:7in;height:3.1in;box-shadow:0 0 0 1px #0004;overflow:hidden}
  .pm-legend{position:static;margin-top:4px;max-width:none}
  .leaflet-control-attribution{background:#fff!important;color:#333!important}
}
@media print{body.pm-printing .pm-mapwrap,.pm-mapwrap{height:auto!important;width:7in!important}}

/* ---------- attachment heights, assumptions, crossing wire table, span profile ---------- */
.pm-att-sel{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr);gap:6px;margin-top:6px}
.pm-att-sel .fld{margin:0;min-width:0}
.pm-att-sel .label{font-size:8.5px;letter-spacing:.14em;margin-bottom:2px}
.pm-att-sel select{height:30px;font-size:.8rem;width:100%;min-width:0}
details.pm-att{margin-top:5px;border-radius:8px;box-shadow:var(--shadow-border);background:var(--surface)}
details.pm-att>summary{cursor:pointer;padding:6px 9px;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--steel);list-style:none;display:flex;gap:6px;align-items:center}
details.pm-att>summary::-webkit-details-marker{display:none}
details.pm-att>summary::before{content:"\25B8";font-size:9px;color:var(--subtle);transition:transform var(--motion-quick) var(--ease-out)}
details.pm-att[open]>summary::before{transform:rotate(90deg)}
details.pm-att>summary span{color:var(--fg);letter-spacing:.06em;text-transform:none}
details.pm-att>div{padding:0 9px 8px}
.pm-asm-tag{background:#f0b25a26;color:var(--warn)!important;padding:1px 6px;border-radius:999px;font-size:8.5px;letter-spacing:.12em!important;text-transform:uppercase!important}
.pm-att-n{margin:4px 0 6px;font-size:.74rem;line-height:1.45;color:var(--muted)}
.pm-att-n b{color:var(--fg);font-weight:600}
.pm-att-n a{color:var(--line-c)}
table.ph-t.pm-att-t{margin-top:2px}
table.ph-t.pm-att-t th:nth-child(1){width:34%}table.ph-t.pm-att-t th:nth-child(2){width:24%}table.ph-t.pm-att-t th:nth-child(3){width:42%}
table.pm-att-t input{width:100%;max-width:5.2rem;height:26px;font-size:12px;padding:0 6px;font-variant-numeric:tabular-nums}
table.pm-att-t td.b{color:var(--muted);font-size:10.5px;line-height:1.35}
table.pm-att-t tr.ov input{box-shadow:inset 0 0 0 1px var(--warn)}
table.pm-att-t .tag{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--warn);margin-right:3px}
.lnk{background:none;border:0;padding:0;color:var(--line-c);font-size:9.5px;letter-spacing:.08em;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.pm-att-w{margin:6px 0 0;padding-left:1rem;font-size:.74rem;color:var(--warn);line-height:1.4}
.pm-asm-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(14.5rem,1fr));gap:4px 12px}
.pm-asm-f{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:4px 0;border-bottom:1px solid var(--border);font-size:.76rem;color:var(--fg)}
.pm-asm-f>span:first-child{min-width:0;line-height:1.3}
.pm-asm-f small{display:block;color:var(--subtle);font-size:10px;line-height:1.3;margin-top:1px}
.pm-asm-f i{font-style:normal;font-family:var(--font-mono);font-size:8px;letter-spacing:.1em;text-transform:uppercase;padding:0 4px;border-radius:3px;vertical-align:1px}
.pm-asm-f i.asm{color:var(--warn);box-shadow:inset 0 0 0 1px #f0b25a66}
.pm-asm-f i.nesc{color:var(--ok);box-shadow:inset 0 0 0 1px #76c89366}
.pm-asm-i{display:flex;align-items:center;gap:3px;flex:none}
.pm-asm-i input{width:4.4rem;height:26px;font-size:12px;padding:0 6px}
.pm-asm-i em{font-style:normal;font-size:10px;color:var(--subtle);width:1rem}
.px{margin-top:8px}
.px-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.px-n{margin:2px 0 0;font-size:.74rem;line-height:1.4;color:var(--muted)}
table.ph-t.px-t th:nth-child(1){width:20%}table.ph-t.px-t th:nth-child(2){width:17%}table.ph-t.px-t th:nth-child(3){width:14%}table.ph-t.px-t th:nth-child(4){width:19%}table.ph-t.px-t th:nth-child(5){width:14%}table.ph-t.px-t th:nth-child(6){width:16%}
.rs{display:inline-block;font-family:var(--font-mono);font-size:9px;letter-spacing:.12em;padding:1px 6px;border-radius:4px;font-weight:600}
.rs-pass{color:#0b1a10;background:var(--ok)}.rs-warn{color:#1d1406;background:var(--warn)}.rs-fail{color:#fff;background:var(--fault)}.rs-verify{color:var(--fg);box-shadow:inset 0 0 0 1px var(--subtle)}
.px-fig{margin:8px 0 0}
.px-svg{display:block;width:100%;height:auto;background:var(--surface);border-radius:8px;box-shadow:var(--shadow-border)}
.px-grid{stroke:var(--grid);stroke-width:1}
.px-ax{fill:var(--subtle);font:9px var(--font-mono)}
.px-lb{fill:var(--fg);font:10px var(--font-mono)}
.px-gnd{fill:none;stroke:#8a6d4b;stroke-width:2}
.px-pole{stroke:#b9a27f;stroke-width:4;stroke-linecap:round}
.px-x{stroke:var(--line-c);stroke-width:1;stroke-dasharray:3 3}
.px-w{fill:none;stroke-width:1.6}.k-shield{stroke:#9aa3ad;background:#9aa3ad}.k-prim{stroke:#ef6b5b;background:#ef6b5b}.k-neut{stroke:#e8e6e1;background:#e8e6e1}.k-sec{stroke:#f0b25a;background:#f0b25a}.k-comm{stroke:#7fb0e0;background:#7fb0e0}
.px-req{stroke:var(--fault);stroke-width:1.5;stroke-dasharray:6 4}
.px-pt{stroke:var(--bg);stroke-width:1.5}.px-pt.rs-pass{fill:var(--ok)}.px-pt.rs-warn{fill:var(--warn)}.px-pt.rs-fail{fill:var(--fault)}.px-pt.rs-verify{fill:var(--subtle)}
.px-fig figcaption{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:4px;font-size:9px;letter-spacing:.06em;color:var(--muted)}
.px-fig figcaption i{display:inline-block;width:14px;height:2px;margin-right:4px;vertical-align:middle}
.px-fig figcaption i.rq{background:none;border-top:2px dashed var(--fault);height:0}
.px-fig figcaption .m{color:var(--subtle)}
@media (max-width:759px){
  .pm-att-sel select{height:38px;font-size:16px}
  table.pm-att-t input,.pm-asm-i input{height:34px;font-size:16px}
  .pm-asm-g{grid-template-columns:1fr}
}
@media print{
  .px-svg{background:#fff;box-shadow:0 0 0 1px #0003;break-inside:avoid}
  .px-ax{fill:#555}.px-lb{fill:#111}.px-grid{stroke:#0001}.k-neut{stroke:#111;background:#111}.k-shield{stroke:#667;background:#667}
  .px-fig figcaption i{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .px-fig figcaption{color:#333}
  .rs{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .px .tbl-wrap,.px-fig{break-inside:avoid}
  .px-n{color:#333}
}
table.ph-t td>span.rs:not(.q):not(.m){display:inline-block}
.px-lb{paint-order:stroke;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round}
@media (max-width:759px){
  table.ph-t.px-t tr{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px 8px;padding:6px 0}
  table.ph-t.px-t td{padding:0;min-width:0}
  table.ph-t.px-t td::before{position:static;display:block;margin-bottom:1px}
  table.ph-t.px-t td:first-child{grid-column:1/4;grid-row:1}
  table.ph-t.px-t td:last-child{grid-column:4;grid-row:1;text-align:right}
  table.ph-t.px-t td:last-child::before{content:none}
  table.ph-t.px-t td:last-child .q{display:inline;margin-left:4px}
  table.ph-t.px-t td:not(:first-child):not(:last-child){grid-row:2}
  table.ph-t.px-t td .q{font-size:9.5px}
  table.ph-t.pm-att-t tr{display:grid;grid-template-columns:minmax(0,1fr) 6.5rem;gap:2px 8px;align-items:center;padding:5px 0}
  table.ph-t.pm-att-t td{padding:0}
  table.ph-t.pm-att-t td::before{content:none}
  table.ph-t.pm-att-t td.b{grid-column:1/3}
  table.pm-att-t input{max-width:none}
}
@media (max-width:759px){.px-lb{font-size:17px}.px-ax{font-size:15px}.px-w{stroke-width:2.4}}

/* stale results: inputs changed after the last Check Span */
.pm-stale{margin:0 0 8px;padding:8px 11px;border-radius:9px;background:#f0b25a1f;box-shadow:inset 0 0 0 1px #f0b25a80;color:var(--fg);font-size:.82rem;line-height:1.45}
.pm-stale b{color:var(--warn)}
.pm-stale .lnk{font-size:.78rem;color:var(--warn)}
.pm-right.is-stale #pmList,.pm-right.is-stale #pmLayers,.pm-right.is-stale .pm-status{opacity:.55}
@media print{.pm-stale{color:#7a3e00;background:none;box-shadow:inset 0 0 0 1px #b35c00}.pm-right.is-stale #pmList{opacity:1}}

/* ---------- 10-02e: site linework (parcels -> ROW, OSM curbs/sidewalks), placement checks ---------- */
.pr{margin-top:8px;padding-top:6px;border-top:1px dashed var(--line,#ffffff22)}
table.pr-t th:nth-child(1){width:20%}table.pr-t th:nth-child(2){width:20%}table.pr-t th:nth-child(3){width:22%}table.pr-t th:nth-child(4){width:22%}table.pr-t th:nth-child(5){width:16%}
table.pr-t .q,.pr-c .q{display:block;font-size:10.5px;color:var(--subtle);line-height:1.35;margin-top:1px}
table.pr-t .warn{color:var(--warn)}table.pr-t .bad{color:var(--fault)}
.pr-c{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:4px;font-size:11.5px;line-height:1.45}
.pr-c li{padding-left:0}.pr-c .q{display:inline;margin-left:2px}
.pr-r{display:inline-block;min-width:44px;text-align:center;font-size:9.5px;letter-spacing:.08em;padding:1px 5px;border-radius:3px;border:1px solid currentColor;margin-right:4px}
.pr-r.rs-info{color:var(--subtle)}.pr-r.rs-pass,.pr-r.rs-warn,.pr-r.rs-fail{border-color:transparent}
.pr-n{margin:6px 0 0;font-size:10.5px;color:var(--subtle);line-height:1.45}.pr-n b{color:var(--fg);font-weight:600}
.lg-t{background:none;border:0;padding:0;color:inherit;font:inherit;cursor:pointer}
.lg-t[aria-pressed="false"]{opacity:.38;text-decoration:line-through}
.lg i.lg-r{width:18px;height:0;border-top:2px solid;border-radius:0;background:none}
.lg i.lg-r-row{border-top:2px dashed #ff4fd8}.lg i.lg-r-curb{border-top-color:#ffe14d}.lg i.lg-r-eop{border-top:2px dashed #ffe14d}
.lg i.lg-r-walk{border-top-color:#5fd3ff}.lg i.lg-r-parcel{border-top:1px solid #c9ced6}
@media print{.lg i.lg-r-row{border-top-color:#b0008a}.lg i.lg-r-curb,.lg i.lg-r-eop{border-top-color:#8a6d00}.lg i.lg-r-walk{border-top-color:#0077a8}.pr-r{border-color:#000}}

/* ---------- 10-02f: Pole A | Pole B tabs, larger map, map expand ---------- */
.pm-ptabs{display:flex;gap:4px;padding:3px;border-radius:10px;background:#ffffff08;box-shadow:var(--shadow-border)}
.pm-ptab{flex:1 1 0;min-width:0;display:flex;align-items:center;gap:6px;height:34px;padding:0 10px;border:0;border-radius:7px;background:transparent;color:var(--muted);font-size:10.5px;letter-spacing:.1em;cursor:pointer;white-space:nowrap;overflow:hidden}
.pm-ptab:hover{color:var(--fg);background:#ffffff0d}
.pm-ptab[aria-selected=true]{background:#ffffff1a;color:var(--fg);box-shadow:inset 0 0 0 1px #ffffff2e}
.pm-ptab:focus-visible{outline:2px solid var(--warn);outline-offset:1px}
.pm-ptab .pm-tt{font-weight:600}
.pm-ptab .pm-ts{color:var(--subtle);overflow:hidden;text-overflow:ellipsis;letter-spacing:.06em}
.pm-ptab[aria-selected=true] .pm-ts{color:var(--muted)}
.pm-dot{flex:none;margin-left:auto;width:8px;height:8px;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--subtle)}
.pm-dot.on{background:var(--ok);box-shadow:0 0 0 2px #5fd38a33}
.pm-tag-b,.pm-pole+.pm-pole .pm-tag{background:var(--warn)}
.pm-pole[hidden]{display:none}
.pm-poles{gap:0}
.pm-pole{padding-top:2px}
/* wide screens (1600+): controls | map (full pane height) | results; below that the map fills the left column under the tabs */
@media (min-width:1000px) and (max-width:1599px){
  .pm-left{gap:8px}
  .pm-ctl .pm-hint{margin-top:4px;font-size:9.5px}
  .pm-ctl .pm-row2{margin-top:4px}.pm-ctl .pm-row3{margin-top:4px}
  .pm-mapwrap{min-height:300px}
}
@media (min-width:1600px){
  .pm-grid{grid-template-columns:minmax(300px,340px) minmax(0,1fr) minmax(0,1.15fr);gap:12px}
  .pm-left{display:contents}
  .pm-ctl{min-height:0;overflow:auto;scrollbar-width:thin;scrollbar-color:#ffffff26 transparent;padding-right:4px}
  .pm-mapwrap{min-height:0;height:auto}
  .pm-ctl .pm-row2{grid-template-columns:1fr;gap:6px}
  .pm-ctl .pm-att-sel{grid-template-columns:repeat(3,minmax(0,1fr))}
}
.pm-mx{position:absolute;top:10px;right:56px;z-index:800;display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border:0;border-radius:8px;background:#070708d9;color:var(--fg);box-shadow:var(--shadow-border);font-size:9.5px;letter-spacing:.12em;cursor:pointer}
.pm-mx:hover{background:#18181cf0}
.pm-mx:focus-visible{outline:2px solid var(--warn);outline-offset:2px}
.pm-mapwrap.pm-mapx{position:fixed!important;inset:0!important;z-index:4500;height:auto!important;min-height:0;border-radius:0;flex:none}
body.pm-mapx-on{overflow:hidden}
@media (max-width:999px){
  .pm-mapwrap{height:max(420px,58vh);min-height:0}
}
@media (max-width:759px){
  .pm-mapwrap{height:max(340px,56vh)}
  .pm-ptab{height:38px;padding:0 8px;font-size:10px;letter-spacing:.06em}
  .pm-mx span{display:none}.pm-mx{padding:0 9px;right:52px}
}
@media print{.pm-mx,.pm-ptabs{display:none!important}.pm-mapwrap.pm-mapx{position:relative!important}}
.pm-place-ov{position:absolute;top:10px;left:50px;z-index:800;display:flex;align-items:center;gap:6px;padding:3px 3px 3px 9px;border-radius:9px;background:#070708d9;box-shadow:var(--shadow-border);font-size:9px;letter-spacing:.12em;color:var(--muted)}
.pm-place-ov .seg button{height:24px;padding:0 9px;font-size:9.5px}
.pm-row2b{grid-template-columns:auto;justify-content:start}
@media (max-width:759px){.pm-place-ov{left:46px;padding-left:7px}.pm-place-ov>span{display:none}.pm-row2b{grid-template-columns:1fr}}
@media print{.pm-place-ov{display:none!important}}
/* buffer, span readout and the buttons share one row */
.pm-row3b{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px}
.pm-row3b .pm-buf{display:flex;align-items:center;gap:6px;margin:0}
.pm-row3b .pm-buf .label{margin:0}
.pm-row3b .pm-buf .seg button{height:30px;padding:0 8px}
@media (min-width:1600px){.pm-row3b{grid-template-columns:1fr auto;grid-template-areas:"buf buf" "span btns"}.pm-row3b .pm-buf{grid-area:buf}.pm-row3b .pm-span{grid-area:span}.pm-row3b .pm-btns{grid-area:btns}}
@media (max-width:759px){.pm-row3b{grid-template-columns:1fr;gap:6px}.pm-row3b .pm-buf .seg{flex:1}.pm-row3b .pm-buf .seg button{flex:1}}
@media (min-width:1000px) and (max-width:1299px){
  .pm-row3b{grid-template-columns:1fr auto;grid-template-areas:"buf buf" "span btns";row-gap:4px}.pm-row3b .pm-buf{grid-area:buf}.pm-row3b .pm-span{grid-area:span}.pm-row3b .pm-btns{grid-area:btns}
  .pm-mapwrap{min-height:220px}
}
@media (min-width:1000px) and (max-width:1599px){.pm-left{overflow-y:auto;scrollbar-width:thin;scrollbar-color:#ffffff26 transparent}.pm-mapwrap{flex-shrink:0}}
@media (min-width:1000px) and (max-width:1599px) and (min-height:821px){.pm-mapwrap{flex-shrink:1}}
@media (max-width:759px){
  .pm-tcl{display:none}
  .pm-att-sel{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .pm-att-sel>.fld:first-child{grid-column:1/-1}
}
