html:has(.workspace){scroll-behavior:auto}
::selection{background:var(--copper-tint)}
.field{display:grid;gap:var(--space-2);margin-bottom:var(--space-3)}
.field label{font-weight:var(--weight-strong);font-size:var(--text-small)}
.field input,.field textarea,.app select,.date-field input{font:inherit;font-size:var(--text-body);padding:var(--space-2) var(--space-3);border:1px solid var(--field-rule);border-radius:var(--radius);background:var(--paper);color:var(--ink);caret-color:var(--copper);min-height:var(--target-primary);width:100%;min-width:0}
.field textarea{resize:vertical}
.status{min-height:1.5em;margin:var(--space-3) 0 0}
.status:empty{min-height:0;margin:0}
.error,.status.error{color:var(--copper-deep);font-weight:var(--weight-strong);font-size:var(--text-small)}
.error:empty{display:none}
.facts-list{list-style:none;padding:0;margin:0 0 var(--space-4);border-top:1px solid var(--rule)}
.facts-list li{display:flex;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--rule)}
.facts-list span:first-child{color:var(--pencil)}

.app-nav{display:grid;grid-template-columns:auto auto 1fr;gap:var(--space-4);align-items:center;min-height:calc(var(--target) + 2 * var(--space-3));border-bottom:1px solid var(--rule)}
.workspace .skip-link{min-height:var(--target)}
.app-nav .brand{min-height:var(--target)}
.app-nav nav{display:flex;gap:var(--space-4);font-size:var(--text-small);font-weight:var(--weight-strong);line-height:1.25}
.app-nav nav a{display:flex;align-items:center;min-height:var(--target);text-decoration:none}
.app-nav nav a:hover,.app-nav nav a[aria-current=page]{text-decoration:underline;text-underline-offset:5px}
.app-company{display:flex;justify-content:flex-end;align-items:center;gap:var(--space-3);font-size:var(--text-small);color:var(--pencil);min-width:0}
.app-company span{overflow-wrap:anywhere}
.app-company .linkbtn{min-height:var(--target);font-size:var(--text-small);white-space:nowrap}
.read-only{font-size:var(--text-small);color:var(--pencil);padding-top:var(--space-3)}
.app-legal{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);color:var(--pencil)}
.app-legal a{display:inline-flex;align-items:center;min-height:var(--target)}
.workspace footer{padding:var(--space-2) 0}
.app{max-width:680px;padding:calc(1.5 * var(--space-4)) var(--space-3) calc(2 * var(--space-4));overflow-wrap:anywhere}
.app h1{line-height:1.15}
.app .btn{box-shadow:none;color:var(--paper)}
.app .btn.ghost,.app .btn.act{color:var(--ink);background:var(--paper);border:1px solid var(--ink);box-shadow:none}
.app .btn.act{min-height:var(--target);font-size:var(--text-small);padding:var(--space-2) var(--space-3)}
.app .btn.act[aria-pressed=true]{background:var(--ink);color:var(--paper)}
.app .btn:disabled{cursor:default;color:var(--pencil);background:var(--paper);border:1px solid var(--field-rule)}
.app .textlink,.app .crumbs a{display:inline-flex;align-items:center;min-height:var(--target)}
.app .empty{border-color:var(--field-rule);padding:var(--space-4)}
.app .empty p:empty{display:none}
.app .empty p{margin:0 0 var(--space-2)}
.app time,.app .num,.request-status,.last-outcome,.wrong-label,.checked{font-variant-numeric:tabular-nums}
.app fieldset{border:0;padding:0;margin:0;min-width:0}

.row-link{display:flex;align-items:center;min-height:var(--target);text-decoration:none}
.row-link::after{content:"";position:absolute;inset:0}
.row-link:visited{color:var(--pencil)}
.row-link:hover{text-decoration:underline}
.row-link:focus-visible::after{outline:3px solid var(--copper);outline-offset:2px;border-radius:var(--radius)}
.source-line{font-size:var(--text-small);color:var(--pencil);margin:0 0 var(--space-3)}
.source-line a{position:relative;z-index:1}
.app .source-line a{font-size:inherit;color:inherit}

.app .person-card{background:var(--paper);padding:var(--space-4);margin:var(--space-4) 0;border:1px solid var(--rule);border-radius:var(--radius)}
.app .person-name{font-size:var(--text-body);font-weight:var(--weight-strong);margin:0 0 var(--space-1);line-height:1.3}
.person-role{font-size:var(--text-small);color:var(--pencil);margin:0 0 var(--space-3)}
.person-role:empty{display:none}
.number-row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-1) var(--space-3);margin-bottom:var(--space-3)}
.person-number{margin:0;font-size:var(--text-title);font-weight:var(--weight-heading);color:var(--ink);font-variant-numeric:tabular-nums;min-height:var(--target);display:inline-flex;align-items:center;text-decoration:none}
.evidence p{margin:0}
.checked{font-size:var(--text-small);color:var(--pencil);margin-top:var(--space-1)!important}
.person-actions{display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--space-2)}
.person-actions .btn{min-width:0}
.app .call-action{background:var(--ink)}
.person-actions.no-call{grid-template-columns:1fr 1fr}
.after-call{margin-top:var(--space-2)}
.after-call>summary{display:list-item;padding-block:var(--space-2);line-height:28px;cursor:pointer;font-size:var(--text-small);color:var(--pencil)}
.after-call[open]>.outcomes{margin-top:var(--space-1)}
.outcomes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2)}
.last-outcome,.wrong-label{font-size:var(--text-small);color:var(--pencil);margin:var(--space-3) 0 0}
.wrong-label{margin-bottom:var(--space-1)}
.person-number.plain{color:var(--pencil);font-size:var(--text-body)}
.job-call-top{margin:var(--space-2) 0}
.wrong-number .person-number{color:var(--pencil);text-decoration:line-through}
.action-feedback{display:block;font-size:var(--text-small);color:var(--pencil);margin-top:var(--space-2)}
.action-feedback:empty,.last-outcome:empty{display:none}
.how-known{margin:var(--space-3) 0;color:var(--pencil);font-size:var(--text-small)}
.how-known summary{min-height:var(--target);cursor:pointer;padding:var(--space-2) 0;font-weight:var(--weight-strong);color:var(--ink)}
.how-known .source-line{margin:0}
.how-known ul{padding-left:var(--space-4);margin:var(--space-2) 0}

.lookup-row{border-top:1px solid var(--rule);padding:var(--space-3) 0}
.lookup-head{display:flex;justify-content:space-between;gap:var(--space-3);align-items:baseline}
.app .lookup-head h3{font-size:var(--text-body);margin:0}
.lookup-head p{margin:0;color:var(--pencil);font-size:var(--text-small);text-align:right}
.lookup-card .person-actions{grid-template-columns:repeat(3,minmax(0,1fr))}
.lookup-card .lookup-email{display:block;margin:0 0 var(--space-3);overflow-wrap:anywhere}
.lookup-outcomes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2)}

@media (max-width:759px){
  .app-nav{grid-template-columns:1fr;gap:0 var(--space-3);padding:var(--space-2) var(--space-3)}
  .app-nav .brand{font-size:var(--text-body);font-stretch:90%}
  .app-nav nav{grid-column:1/-1;grid-row:2;justify-content:flex-start;gap:var(--space-4)}
  .app-nav nav a{flex:0 1 auto}
  .app-company{grid-row:3;justify-content:flex-start}
  .app{padding:var(--space-4) var(--space-3) calc(1.5 * var(--space-4))}
  .app .person-card{padding:var(--space-3)}
  .person-actions{grid-template-columns:1fr 1fr}
  .call-action{grid-column:1/-1}
  .outcomes{grid-template-columns:repeat(2,minmax(0,1fr))}
}

.app.wide{max-width:1120px}
.app .lane>h2{margin:var(--space-4) 0 0}
.lane>summary{min-height:var(--target);padding:var(--space-2) 0;margin-top:var(--space-4);font-size:var(--text-body);font-weight:var(--weight-heading);cursor:pointer}
.job-list{list-style:none;padding:0;margin:var(--space-2) 0 var(--space-4);border-top:1px solid var(--rule);container-type:inline-size}
.job-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"addr value" "meta meta" "call call" "what react";column-gap:var(--space-3);padding:0 0 var(--space-2);border-bottom:1px solid var(--rule)}
.app .job-address{grid-area:addr;font-size:var(--text-body);line-height:1.25;margin:0;min-width:0}
.job-value{grid-area:value;align-self:center;justify-self:end;margin:0;font-size:var(--text-body);font-weight:var(--weight-heading);font-variant-numeric:tabular-nums}
.job-meta{grid-area:meta;display:flex;margin:0;min-width:0;overflow:hidden;white-space:nowrap;font-size:var(--text-small);line-height:1.4;color:var(--pencil)}
.job-meta span{flex:none}
.job-meta .sep{white-space:pre}
.job-meta .job-gc{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--ink);font-weight:var(--weight-strong)}
.job-meta .job-gc.none{color:var(--pencil);font-weight:var(--weight-body)}
.job-what{grid-area:what;margin:2px 0 0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:var(--text-small);line-height:1.4;color:var(--pencil)}
.job-row .reactions{grid-area:react;position:relative;z-index:1}
.job-call{grid-area:call;display:flex;align-items:center;gap:var(--space-2);min-width:0;margin-top:2px;font-size:var(--text-small);line-height:1.4}
.job-call .call-who{flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--ink)}
.job-call .call-who.pending{color:var(--pencil)}
.job-call .call-name{font-weight:var(--weight-strong);color:var(--ink);position:relative;z-index:1}
.job-call .call-source{color:var(--pencil)}
.job-call .call-asked{color:var(--pencil)}
.app .job-call .btn.act{flex:none;position:relative;z-index:1;min-height:var(--target);padding:0 var(--space-3)}
.app .job-call .call-button{background:var(--ink);color:var(--paper)}
.job-call .find-button{position:relative;z-index:1;min-height:var(--target);padding:0;border:0;background:none;font:inherit;font-weight:var(--weight-strong);color:var(--copper);text-decoration:underline;cursor:pointer}
.job-call .find-button:disabled{color:var(--pencil);cursor:default}
@container (min-width:880px){
  .job-row{grid-template-columns:minmax(0,2fr) 6rem minmax(0,.9fr) minmax(0,1.4fr) 11.5rem;grid-template-areas:"addr value city gc when" "call call call call dial" "what what what what react";column-gap:var(--space-3);padding:0 var(--space-2) var(--space-2)}
  .job-meta{display:contents}
  .job-meta span{align-self:center;overflow:hidden;text-overflow:ellipsis}
  .job-meta .sep{display:none}
  .job-meta .job-city{grid-area:city}
  .job-meta .job-gc{grid-area:gc}
  .job-meta .job-when{grid-area:when}
  .job-value{text-align:right}
  .job-call{display:contents}
  .job-call .call-who,.job-call .find-button,.job-call .call-asked{grid-area:call;justify-self:start;align-self:center;max-width:100%}
  .app .job-call .btn.act{grid-area:dial;justify-self:start;align-self:center}
}

.job-size{margin:var(--space-1) 0;font-size:var(--text-title);font-weight:var(--weight-heading);font-variant-numeric:tabular-nums}
.app .job-summary{margin:0 0 var(--space-2);color:var(--pencil);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.job-company{margin:0;font-weight:var(--weight-strong)}
.job-stage{margin:0 0 var(--space-2);font-size:var(--text-small);color:var(--pencil)}
.permit-details{margin:var(--space-4) 0;border-top:1px solid var(--rule)}
.permit-details>summary{min-height:var(--target);padding:var(--space-2) 0;font-weight:var(--weight-strong);cursor:pointer}
.permit-details .facts-list{margin:var(--space-2) 0 var(--space-3)}
.permit-description{font-size:var(--text-small);color:var(--pencil)}
.app .permit-details h3{font-size:var(--text-body);margin:var(--space-3) 0 var(--space-1)}
.site-permits{list-style:none;padding:0;margin:0 0 var(--space-3);font-size:var(--text-small);color:var(--pencil)}
.people-list .person-card{margin:var(--space-3) 0}
.job-request{margin:var(--space-4) 0}

#contacts-search{margin-bottom:var(--space-2)}
#contacts-search .field{margin:0}
.company-group{margin-top:var(--space-4)}
.app .company-head{position:sticky;top:0;z-index:1;display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);margin:0;padding:var(--space-3) 0 var(--space-2);background:var(--paper);border-bottom:1px solid var(--rule);font-size:var(--text-title);line-height:1.25}
.group-count{flex:none;font-size:var(--text-small);font-weight:var(--weight-strong);color:var(--pencil);font-variant-numeric:tabular-nums}
.company-group .person-card{margin:var(--space-3) 0}
.app summary.company-head{position:static;cursor:pointer;min-height:var(--target);list-style:none}
.app summary.company-head::-webkit-details-marker{display:none}
details.company-group{margin-top:0}
details.company-group[open]>summary.company-head{border-bottom-color:var(--ink)}
.person-meta{font-size:var(--text-small);color:var(--pencil);margin:calc(-1 * var(--space-2)) 0 var(--space-3)}
.app .person-name .person-link{color:inherit;text-decoration:none;display:inline-flex;align-items:center;min-height:var(--target)}
.app .person-name .person-link:hover{text-decoration:underline}
.person-head .person-role a{display:inline-flex;align-items:center;min-height:var(--target)}
.person-section{margin-top:var(--space-4)}
.methods,.history,.job-links,.job-choices,.notes{list-style:none;padding:0;margin:var(--space-2) 0 var(--space-3);border-top:1px solid var(--rule)}
.methods li,.history li,.job-links li,.job-choices li,.notes li{padding:var(--space-2) 0;border-bottom:1px solid var(--rule)}
.method{display:grid;gap:2px}
.method-value{font-size:var(--text-title);font-weight:var(--weight-heading);font-variant-numeric:tabular-nums;display:inline-flex;align-items:center;min-height:var(--target);color:var(--ink)}
.method-value.retired{color:var(--pencil);text-decoration:line-through}
.method-facts,.job-link-city{font-size:var(--text-small);color:var(--pencil)}
.job-dates{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-3);align-items:end;margin-top:var(--space-2)}
.date-field{display:grid;gap:var(--space-1);font-size:var(--text-small);font-weight:var(--weight-strong)}
.date-field input{width:auto;min-height:var(--target)}
.add-job>summary{min-height:var(--target);padding:var(--space-2) 0;font-weight:var(--weight-strong);cursor:pointer}
.job-choice{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3)}
.notes p{margin:0}
.note-form .btn{margin-top:var(--space-1)}

.merge-fields{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:calc(-1 * var(--space-1)) 0 var(--space-3)}
.app .choice{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);margin:0 0 var(--space-3)}
.app .choice legend{font-weight:var(--weight-strong);font-size:var(--text-small);margin-bottom:var(--space-2);width:100%}
.app .choice label{display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--target)}
#google{margin-top:calc(1.5 * var(--space-4));border-top:1px solid var(--rule);padding-top:var(--space-3)}
.compose{width:min(640px,calc(100vw - 2 * var(--space-3)));border:1px solid var(--rule);border-radius:var(--radius);padding:var(--space-4);color:var(--ink);background:var(--paper)}
.compose::backdrop{background:var(--ink);opacity:.35}
.compose-to{color:var(--pencil);margin:0 0 var(--space-3)}
.compose .person-actions{grid-template-columns:1fr 1fr}

.ops section{margin-block:calc(1.5 * var(--space-4))}
.ops .ops-item{padding:var(--space-4) 0;border-top:1px solid var(--rule)}
.ops .ops-item h3{margin:0 0 var(--space-2)}
.ops .ops-item h4{margin:var(--space-3) 0 0;font-size:var(--text-body)}
.ops .ops-actions{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}
.ops .lookup-evidence ul,.ops .sign-ins,.ops .activity-jobs{padding-left:var(--space-4);margin:var(--space-1) 0}
.ops .field small{color:var(--pencil)}
.ops .sign-ins li{margin:var(--space-3) 0}
.ops .activity-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2);margin:var(--space-3) 0 0}
.ops .activity-counts div{border:1px solid var(--rule);border-radius:var(--radius);padding:var(--space-2) var(--space-3);background:var(--paper)}
.ops .activity-counts dt{font-size:var(--text-small);color:var(--pencil)}
.ops .activity-counts dd{margin:2px 0 0;font-size:var(--text-title);font-weight:var(--weight-heading);font-variant-numeric:tabular-nums}
.ops .activity-jobs li{margin:var(--space-2) 0}
@media (max-width:520px){.ops .activity-counts{grid-template-columns:repeat(2,minmax(0,1fr))}}

.app.wide{max-width:1180px}
.app.wide{min-height:60vh}

.today-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}
.today-ready{margin:0;font-weight:var(--weight-strong);font-variant-numeric:tabular-nums}
.today-summary{font-size:var(--text-small);color:var(--pencil);font-variant-numeric:tabular-nums;margin:var(--space-3) 0}
.today-summary:empty{display:none}
.app .today-row{scroll-margin-top:var(--space-4)}
.app .today-row.current{border-color:var(--copper);outline:0}
.app .today-row:focus-visible{outline:3px solid var(--copper);outline-offset:2px}
.app .today-row.done{opacity:.6}
.today-row .person-actions{grid-template-columns:2fr 1fr}
.today-row .person-actions .call-action{grid-column:auto}
.today-row .person-actions:has(> :only-child){grid-template-columns:1fr}
@media (max-width:760px){.app-nav nav{gap:var(--space-3)}}
.today-outcomes{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:var(--space-3)}
.today-outcomes[hidden]{display:none}
.template-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2);margin-bottom:var(--space-3)}
.template-subject{font-weight:var(--weight-strong);margin:0 0 var(--space-2)}
.template-body{white-space:pre-wrap;font:inherit;font-size:var(--text-small);margin:0 0 var(--space-3);padding:var(--space-3);border:1px solid var(--rule);border-radius:var(--radius)}
.template-actions{grid-template-columns:1fr 1fr;margin-bottom:var(--space-3)}
@media (max-width:760px){.today-outcomes,.template-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
.today-row .person-role{margin-bottom:var(--space-2)}
.today-row .source-line,.today-row .last-outcome{margin:0 0 var(--space-1)}
.today-row .number-row{margin:var(--space-2) 0}
