
/* Existing portal tokens only. New layout sizes and motion use existing --sp/--dur. */
:root{--contact-chip-inset:2px;--paper:var(--page);--bg:var(--page);--tx:var(--ink-head);--tx2:var(--ink-2);--bd:var(--edge);--card:var(--surface);--gold:var(--accent);--ff:var(--font-body);--text:var(--ink);--flag-ink:var(--cta-ink);--fm:ui-monospace,monospace;--ft:var(--font-body);--r-pill:999px}
/* Contact actions are locked to A Three-up (33/33/33) in every option. */
.lead-round{max-width:600px;padding-bottom:var(--sp5)}
.lead-round .identity h1{font-size:var(--fs-lg);margin:0;line-height:1.15;overflow-wrap:anywhere}
/* Name row: name + First/Repeat badge left, compact status dropdown right. */
.identity{position:relative}
.name-row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:var(--sp1)}
.name-wrap{display:flex;align-items:center;gap:6px;min-width:0;flex:1 1 auto}
.pro-badge-wrap{flex:none}
.pro-badge{min-height:44px;min-width:44px;display:inline-flex;align-items:center;gap:4px;padding:0;border:0;background:none;cursor:pointer;color:var(--ink-head);font:inherit;position:relative;isolation:isolate}
.pro-badge::before{content:"";position:absolute;inset:10px -2px;z-index:-1;border-radius:var(--r-pill);background:color-mix(in srgb,var(--accent) 16%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 50%,var(--edge-2))}
.pro-badge .badge-label{font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding-left:8px}
.pro-badge .pp-yhash{width:16px;margin:0 7px 0 2px}
.pro-badge[data-kind=repeat]::before{background:color-mix(in srgb,var(--ok) 16%,var(--surface));border-color:color-mix(in srgb,var(--ok) 55%,var(--edge-2))}
.pro-badge:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--r-pill)}
.badge-tip{position:absolute;z-index:6;left:0;right:0;top:52px;max-width:360px;padding:var(--sp3);background:var(--surface);color:var(--ink);border:1px solid var(--edge-2);border-radius:var(--r);box-shadow:0 10px 30px color-mix(in srgb,#000 35%,transparent);font-size:var(--fs-sm)}
.badge-tip::before{content:"";position:absolute;top:-7px;left:var(--tip-x,120px);width:12px;height:12px;background:var(--surface);border-left:1px solid var(--edge-2);border-top:1px solid var(--edge-2);transform:rotate(45deg)}
.badge-tip p{margin:0}.badge-tip .help{margin-top:var(--sp2)}
.badge-tip .past-list{margin-top:var(--sp2);border-top:1px solid var(--edge);padding-top:var(--sp2)}
/* Compact themed status dropdown. Still a native select so phones get their own picker. */
.status-pill{position:relative;flex:none;display:inline-flex;align-items:center}
.status-pill::before{content:"";position:absolute;left:12px;top:50%;width:8px;height:8px;margin-top:-4px;border-radius:50%;background:var(--accent);pointer-events:none;z-index:1}
.status-pill[data-status=New]::before{background:var(--ink-2)}.status-pill[data-status=Won]::before{background:var(--ok)}.status-pill[data-status=Lost]::before{background:var(--bad)}
.status-select{appearance:none;-webkit-appearance:none;min-height:44px;min-width:44px;padding:0 30px 0 24px;font:inherit;font-size:16px;font-weight:750;color:var(--ink-head);background:color-mix(in srgb,var(--accent) 10%,var(--surface));border:1.5px solid color-mix(in srgb,var(--accent) 40%,var(--edge-2));border-radius:var(--r-pill);cursor:pointer;transition:border-color var(--dur-fast),background var(--dur-fast)}
.status-select:hover{border-color:var(--accent)}.status-select:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.status-chev{position:absolute;right:10px;top:50%;width:16px;height:16px;margin-top:-8px;color:var(--ink-2);pointer-events:none}
.status-pill>.save-feedback{position:absolute;right:6px;top:50%;margin:-12px 0 0;min-width:24px;min-height:24px}.status-pill:has(.save-feedback[data-state=saving]) .status-chev,.status-pill:has(.save-feedback[data-state=success]) .status-chev,.status-pill:has(.save-feedback[data-state=error]) .status-chev{visibility:hidden}
.hurry{display:block;margin:0;padding:10px 12px;border-radius:var(--r-sm);font-size:var(--fs-sm);font-weight:600;color:var(--ink-head);background:color-mix(in srgb,var(--accent) 12%,var(--surface));border-left:3px solid var(--accent)}
.hurry b{color:var(--ink-head);font-weight:800}.hurry.calm{background:var(--surface);border-left-color:var(--ok)}
.job-line{font-weight:700;color:var(--ink-head);font-size:var(--fs-md)}
.identity-contact{display:flex;flex-wrap:wrap;gap:8px;margin-top:var(--sp2)}
.identity-contact .id-link{position:relative;isolation:isolate;min-height:44px;min-width:44px;display:flex;align-items:center;gap:6px;text-decoration:none;color:var(--ink-head);font-size:13px;font-weight:600;line-height:1.2;padding:0 12px 0 6px;background:transparent;border:1px solid transparent;border-radius:var(--r-pill);transition:transform var(--dur-fast) var(--spring)}
.identity-contact .id-link::before{content:"";position:absolute;inset:calc(var(--contact-chip-inset) - 1px) -1px;z-index:-1;pointer-events:none;border-radius:inherit;background:color-mix(in srgb,var(--accent) 14%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 45%,var(--edge-2))}
.identity-contact .id-link:active{transform:scale(.96)}.identity-contact .id-link:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.identity-contact .id-ic{flex:none;width:24px;height:24px;padding:5px;border-radius:50%;background:var(--accent);color:var(--cta-ink)}.identity-contact .id-val{min-width:0;overflow-wrap:anywhere}
.address{margin-top:var(--sp1)}
.address summary{display:flex;gap:6px;align-items:center;min-height:44px;cursor:pointer;list-style:none;color:var(--ink-2);font-size:var(--fs-sm)}
.address summary::-webkit-details-marker{display:none}.address summary>.ic:last-child{margin-left:auto;transition:transform var(--dur)}
.address[open] summary>.ic:last-child{transform:rotate(90deg)}
.address-body{padding:var(--sp3);background:var(--deep);border:1px solid var(--edge);border-radius:var(--r)}
.map-actions{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:6px}.map-actions .btn{padding:8px 4px;font-size:var(--fs-xs)}
.zip-map{border-radius:var(--r-sm);overflow:hidden;position:relative;isolation:isolate;border:1px solid var(--edge);background:var(--deep)}
.zip-map svg{width:100%;display:block;min-height:170px}.zip-map.large svg{min-height:300px}
.map-roads{stroke:var(--edge-2);stroke-width:10;fill:none}.zip-outline{fill:color-mix(in srgb,var(--accent) 12%,transparent);stroke:var(--accent);stroke-width:2;stroke-dasharray:760;stroke-dashoffset:0}
.map-pin path{fill:var(--accent);stroke:var(--cta-ink);stroke-width:1.5}.map-pin circle{fill:var(--cta-ink)}
.map-label{position:absolute;top:14px;left:12px;padding:5px 8px;background:var(--surface);border-radius:var(--r-sm);font-size:var(--fs-sm);font-weight:750;color:var(--ink-head)}
.map-caption{display:block;padding:6px 10px;font-size:var(--fs-xs);color:var(--ink-2);background:var(--surface)}
.past-list h2{font-size:var(--fs-sm);margin:0}
.past-row{display:flex;gap:8px;align-items:center;justify-content:space-between;min-height:64px;text-decoration:none;color:var(--ink);padding:var(--sp2) 0}.past-row span span{display:block}
.contact-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.contact-actions .btn{min-height:48px;padding:10px 8px;gap:6px;font-size:var(--fs-sm);transition:transform var(--dur-fast) var(--spring)}
.contact-actions .btn:active{transform:scale(.96)}.own-phone{margin-top:var(--sp2)}
.request-chips{gap:6px}.request .chip{cursor:default;font-size:var(--fs-xs);background:var(--surface);border-color:var(--edge)}
.photo-strip{display:flex;gap:8px;overflow:auto}.photo-thumb{position:relative;display:block;flex:none;width:132px;height:88px;border:1px solid var(--edge);padding:0;overflow:hidden;border-radius:var(--r-sm);background:var(--surface);cursor:pointer}.photo-thumb img{height:88px;width:132px;object-fit:cover}.photo-thumb span{position:absolute;left:0;right:0;bottom:0;background:var(--page);color:var(--ink);font-size:12px;padding:2px}
.lead-round .inp{font-size:16px;min-height:48px}.save-wrap{position:relative}
.save-feedback{display:inline-flex;align-items:center;justify-content:center;font-weight:800;color:var(--ok);min-width:24px;min-height:24px;margin-left:8px;vertical-align:middle;pointer-events:none}.save-feedback[data-state=error]{color:var(--bad)}.save-feedback[data-state=saving]::before{content:"";width:16px;height:16px;border:2px solid var(--edge-2);border-top-color:var(--accent);border-radius:50%}
.quote-row{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:6px 8px;margin:0 0 var(--sp2);padding:6px 6px 6px 12px;background:var(--deep);border:1px solid var(--edge);border-radius:var(--r-sm)}.quote-row .f{margin:0;font-size:var(--fs-xs);display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.quote-row .help{grid-column:1/-1;margin:0}#quote-amount{min-width:0;min-height:44px}.quote-row .btn{position:relative;min-height:44px}.quote-cur{color:var(--ink-2)}
.planning{position:relative;border-block:1px solid var(--edge);padding-block:var(--sp2)}.plan-open{width:100%;border:0;background:none;text-align:left;color:var(--ink-head);padding:0;cursor:pointer;display:flex;gap:6px;min-height:52px}.plan-open>span:first-child{display:flex;align-items:center;gap:8px;flex:1}.plan-open>.ic{margin-left:auto}.plan-label{font-weight:650}.plan-links{display:flex;align-items:center;justify-content:space-between}.plan-links a{min-height:44px;display:inline-flex;align-items:center;font-size:var(--fs-sm)}
.notes-section textarea{resize:vertical}.notes-section .btn{position:relative}.notes-section .timeline{margin:0;padding:0}.activity [data-pp-untap]{min-height:32px;padding:0 10px;font-size:var(--fs-xs);vertical-align:middle;margin-left:8px}.activity h2{font-size:var(--fs-sm)}.activity .timeline{font-size:var(--fs-sm)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
dialog{border:1px solid var(--edge-2);border-radius:var(--r-lg);background:var(--page);color:var(--ink);padding:24px;max-width:min(480px,calc(100vw - 24px));max-height:85dvh;overscroll-behavior:contain}dialog::backdrop{background:color-mix(in srgb,var(--page) 70%,transparent)}.photo-dialog img{display:block;max-width:100%;max-height:65dvh;object-fit:contain;margin:12px auto}.photo-dialog p{font-size:12px}.plan-dialog{width:420px}.plan-dialog .f{margin:0}
.route-stops{list-style:none;padding:0;counter-reset:stop}.route-stops a{display:flex;flex-direction:column;gap:4px;color:var(--ink);text-decoration:none;padding:16px;border-bottom:1px solid var(--edge);min-height:64px}.state-link{padding-block:12px;border-bottom:1px solid var(--edge)}.state-link h2{font-size:var(--fs);margin-bottom:8px}
.save-wrap>.wv-chip-burst,.notes-section .btn>.wv-chip-burst,.quote-row .btn>.wv-chip-burst,.planning>.wv-chip-burst{position:absolute;left:50%;top:50%;width:48px;height:48px;margin:-24px;pointer-events:none;overflow:visible;z-index:3}.wv-burst path{opacity:0;stroke-linecap:round;transform-origin:24px 24px}.save-wrap.won>.wv-chip-burst{transform:scale(1.35)}
[hidden]{display:none!important}.lead-round button:disabled,.lead-round select:disabled{opacity:.65;cursor:wait}.btn:hover{filter:brightness(1.08)}.btn:focus-visible,summary:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
@media(min-width:900px){.mobtn{bottom:16px!important}.lead-round{margin-inline:auto}.scr-lead .dhead{max-width:600px;margin-inline:auto}.main{width:100%}}
@media(prefers-reduced-motion:no-preference){.address[open] .address-body{animation:address-in var(--dur) var(--ease)}.address[open] .zip-outline{animation:zip-draw .6s var(--ease)}.address[open] .map-pin{animation:pin-drop .3s .6s both var(--spring)}.save-feedback[data-state=saving]::before{animation:spin .7s linear infinite}.save-feedback[data-state=success]{animation:saved-fade 1.5s both}.firing .wv-burst path{animation:round-rays .65s ease-out both}.photo-dialog[open],.plan-dialog[open],.badge-tip:not([hidden]),.quote-row:not([hidden]){animation:address-in var(--dur-fast) var(--ease)}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes saved-fade{0%{opacity:0}15%,65%{opacity:1}100%{opacity:0}}@keyframes address-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}@keyframes zip-draw{from{stroke-dashoffset:760}to{stroke-dashoffset:0}}@keyframes pin-drop{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:none}}@keyframes round-rays{0%{opacity:0;transform:rotate(var(--r)) translateX(0)}15%{opacity:1}100%{opacity:0;transform:rotate(var(--r)) translateX(var(--d))}}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.wv-chip-burst{display:none!important}}

.stop-numbers circle{fill:var(--accent);stroke:var(--cta-ink);stroke-width:1.5}.stop-numbers text{font:800 13px var(--font-body);fill:var(--cta-ink)}