/* ============================================================
   Contractor permits page
   ============================================================ */
.pm-wrap{max-width:900px; padding:40px 28px 20px;}

/* The privacy promise is the product here, so it leads rather than
   sitting in a footer nobody reads. */
.pm-privacy{display:grid; grid-template-columns:1.15fr .85fr; gap:34px;
  background:var(--accent-tint); border:1px solid var(--accent-line);
  border-radius:var(--radius-lg); padding:30px 32px; margin-bottom:46px;}
@media (max-width:820px){ .pm-privacy{grid-template-columns:1fr; gap:24px; padding:24px;} }
.pm-privacy h2{font-size:20px; margin:0 0 12px; color:var(--accent-deep);}
.pm-privacy p{font-size:14.5px; margin:0 0 12px; color:var(--accent-deep); max-width:56ch;}
.pm-privacy-side{border-left:1px solid var(--accent-line); padding-left:28px;}
@media (max-width:820px){ .pm-privacy-side{border-left:none; border-top:1px solid var(--accent-line); padding:22px 0 0;} }
.pm-remember{font-size:14px; font-weight:600; margin-bottom:8px; color:var(--accent-deep);
  display:flex; align-items:center; gap:10px; min-height:44px; cursor:pointer;}
.pm-remember input{width:20px; height:20px; flex:none; cursor:pointer;}
.pm-note{font-size:12.5px; color:var(--ink-soft); margin:0 0 16px; line-height:1.5;}
.pm-privacy-actions{display:flex; flex-direction:column; gap:8px;}
.pm-privacy-actions .btn{width:100%; font-size:13.5px; padding:9px 14px;}
.btn.pm-danger{color:var(--neg); border-color:var(--rule-strong);}
.btn.pm-danger:hover{background:var(--mark-soft); border-color:var(--mark-line);}
#profileInput{position:absolute; width:1px; height:1px; opacity:0; pointer-events:none;}

.pm-step{margin-bottom:52px;}
.pm-step-head{display:flex; align-items:baseline; justify-content:space-between; gap:16px; flex-wrap:wrap;}
.pm-step h2{font-size:clamp(20px,2.4vw,26px); letter-spacing:-0.02em; margin:0 0 8px;}
.pm-count{font-size:13px; color:var(--ink-faint); font-family:var(--font-mono);}
.pm-lead{font-size:15px; max-width:62ch; margin:0 0 18px;}
.pm-sample{font-size:13px; padding:8px 14px; margin-bottom:20px;}

.pm-group{margin-bottom:30px;}
.pm-group h3{font-family:var(--font); font-size:16px; font-weight:600; margin:0 0 3px;}
.pm-group .pm-note{margin-bottom:14px;}
.pm-fields{display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:14px 18px;}
.pm-field{display:flex; flex-direction:column; gap:5px;}
.pm-field span{font-size:12.5px; font-weight:600; color:var(--ink-soft);}
.pm-field input{padding:9px 11px; font-size:14.5px; width:100%;}

.pm-summary{display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  border:1px solid var(--rule); border-radius:var(--radius); overflow:hidden; margin-bottom:18px;}
.pm-stat{padding:16px 18px; border-right:1px solid var(--rule); background:var(--card);}
.pm-stat:last-child{border-right:none;}
.pm-stat .v{display:block; font-family:var(--font-display); font-size:26px; font-weight:600;
  letter-spacing:-0.02em; color:var(--accent);}
.pm-stat .l{display:block; font-size:12.5px; color:var(--ink-faint); margin-top:2px; line-height:1.4;}
.pm-hint{font-size:13.5px; color:var(--ink-soft); margin:0 0 12px;}
.pm-details{border-top:1px solid var(--rule); padding-top:12px; margin-top:6px;}
.pm-details summary{font-size:13.5px; font-weight:600; cursor:pointer; color:var(--accent);}
.pm-details p{font-size:13px; color:var(--ink-soft); margin:10px 0 0;}

.pm-ocr{background:var(--mark-soft); border:1px solid var(--mark-line);
  border-radius:var(--radius); padding:18px 20px; margin-top:18px;}
.pm-ocr p{font-size:14px; color:var(--mark-ink); margin:0 0 14px; max-width:60ch;}

.pm-h{font-family:var(--font); font-size:16px; font-weight:600; margin:0 0 12px;}
.pm-checklist{border-top:1px solid var(--rule-strong);}
.pm-crow{display:grid; grid-template-columns:minmax(140px,1fr) 2fr; gap:16px;
  padding:10px 0; border-bottom:1px solid var(--rule); font-size:14px;}
.pm-crow span{font-weight:600; color:var(--ink-soft);}
.pm-crow code{font-family:var(--font-mono); font-size:13px; word-break:break-word;}
@media (max-width:560px){ .pm-crow{grid-template-columns:1fr; gap:2px;} }

/* Read details off a document the contractor already has */
.pm-import{background:var(--paper-2); border:1px solid var(--rule);
  border-radius:var(--radius-lg); padding:24px 26px; margin:0 0 32px;}
.pm-import h3{font-family:var(--font); font-size:16px; font-weight:600; margin:0 0 5px;}
.pm-import .pm-lead{font-size:14px; margin-bottom:16px;}
.dropzone-slim{padding:22px 20px; background:var(--card);}
.dropzone-slim p{margin:0 0 6px; font-size:14.5px;}
.dropzone-slim .dz-hint{margin-bottom:14px;}
#docInput{position:absolute; width:1px; height:1px; opacity:0; pointer-events:none;}

#pmFindings{margin-top:20px;}
.pm-found{border-top:1px solid var(--rule-strong); margin-bottom:16px;}
.pm-frow{display:grid; grid-template-columns:auto minmax(120px,1fr) minmax(120px,1.3fr) auto;
  gap:12px; align-items:center; padding:11px 0; border-bottom:1px solid var(--rule); cursor:pointer;}
.pm-frow input{width:18px; height:18px; flex:none;}
.pm-fk{font-size:13.5px; font-weight:600; color:var(--ink-soft);}
.pm-fv{font-family:var(--font-mono); font-size:13px; word-break:break-word;}
.pm-fc{font-size:11.5px; text-align:right; white-space:nowrap;}
.conf-high{color:#1D6A4F;} .conf-medium{color:var(--mark-ink);} .conf-low{color:#A03328;}
@media (max-width:640px){
  .pm-frow{grid-template-columns:auto 1fr; gap:6px 12px;}
  .pm-fv{grid-column:2;} .pm-fc{grid-column:2; text-align:left;}
}
.pm-cities{border-top:1px solid var(--rule); padding-top:22px; margin-top:40px;}
.pm-cities h3{font-family:var(--font); font-size:15px; font-weight:600; margin:0 0 6px;}
.pm-cities p{font-size:14px; color:var(--ink-soft); margin:0; line-height:1.9; max-width:74ch;}
/* A row of inline city links is a row of small targets on a phone. */
.pm-cities a{display:inline-block; padding:8px 0; min-height:32px;}
@media (pointer:coarse){ .pm-cities a{padding:12px 0; min-height:44px;} }
.permit-source{font-size:12.5px; color:var(--ink-faint); border-top:1px solid var(--rule);
  padding-top:16px; margin-top:34px; line-height:1.6;}
