.contacts-title{font-size:26px;line-height:1.3;margin:12px 0 18px;color:#0b1f3a}.contacts-workspace{display:grid;grid-template-columns:minmax(300px,340px) minmax(0,1fr);gap:16px;height:calc(100dvh - 85px);min-height:480px;box-sizing:border-box}.contacts-workspace .dw-panel{background:#fff;border:1px solid #dbe3ee;border-radius:8px;padding:20px;min-width:0;min-height:0;overflow:auto}.contacts-toolbar{display:flex;align-items:center;gap:12px;margin:4px 0 22px}.contacts-search{flex:1;min-width:0;margin:0}.contacts-search input{width:100%;box-sizing:border-box;height:42px;font-size:13px}.contacts-toolbar button{background:white;color:#155dfb;border:1px solid #155dfb;border-radius:6px;padding:10px 12px;white-space:nowrap;min-height:42px;font-size:13px}.contacts-list{border:1px solid #dbe3ee;border-radius:6px;overflow:hidden}.contacts-list [data-contact-row]{margin:0;padding:0}.contacts-list [data-contact-row]+[data-contact-row]{border-top:1px solid #e3e9f2}.contacts-list button.dw-secondary{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:right;padding:18px 20px;background:#fff;color:#0b1f3a;border:0;border-radius:0;box-sizing:border-box;cursor:pointer}.contacts-list button+button{border-top:1px solid #edf0f5}.contacts-list button.dw-secondary:hover{background:#f6f9fe}.contacts-list button.dw-secondary[aria-pressed=true]{background:#edf3ff;box-shadow:inset -4px 0 #155dfb}.contacts-list button[aria-pressed=true] strong{color:#155dfb}.contact-row-copy{display:grid;gap:7px;min-width:0}.contact-row-copy strong{font-size:16px;font-weight:600}.contact-row-copy bdi{font-size:14px;justify-self:start;font-weight:400}.contact-row-copy small{font-size:13px;font-weight:400;color:#405371;overflow-wrap:anywhere}.contact-chevron{font-size:27px;font-weight:400}.contacts-list>p{padding:16px;color:#526783}.contacts-editor form{display:flex;flex-direction:column;gap:14px;height:100%;margin:0;min-height:0;justify-content:flex-start}.contacts-editor label{display:grid;gap:8px;font-size:14px;margin:0;flex:none}.contact-identity{display:grid;grid-template-columns:1fr 1fr;gap:16px}.contacts-editor input:not([type=hidden]){width:100%;min-width:0;height:42px;box-sizing:border-box;background:#fff}.contacts-map{position:relative;display:flex;flex-direction:column;flex:1;min-height:180px;border:1px solid #dbe3ee;border-radius:7px;overflow:hidden;background:#f3f6fa}.contacts-map [data-pilot-map-insertion]{flex:1;min-height:180px}.contacts-map #pilot-live-map{height:100%;min-height:180px}.contacts-map [data-live-status]:empty{display:none}.contacts-map p{padding:10px;color:#526783}.contacts-actions{display:flex;flex-direction:row-reverse;align-items:center;gap:12px;flex:none}.contacts-actions button{min-height:40px;padding:8px 16px;border-radius:6px;font-size:14px}.contacts-actions [data-contact-unsaved]{order:1}.contacts-error{color:#b42318;flex:none}.contacts-error p{margin:4px 0}@media(max-width:1050px){.contacts-workspace{grid-template-columns:300px minmax(0,1fr)}.contacts-toolbar{flex-wrap:wrap}.contacts-search{flex-basis:100%}.contacts-workspace .dw-panel{padding:14px}}@media(max-width:750px){.contacts-title{font-size:23px}.contacts-workspace{height:auto;min-height:0;grid-template-columns:1fr}.contacts-directory{max-height:330px}.contacts-editor form{height:auto}.contacts-map,.contacts-map [data-pilot-map-insertion]{min-height:300px}.contact-identity{grid-template-columns:1fr;gap:14px}.contacts-toolbar{flex-wrap:nowrap}.contacts-search{flex-basis:auto}.contacts-actions{flex-wrap:wrap}}

.contacts-editor label:has(input){grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:10px;min-width:0}.contact-identity{align-items:center}.contact-identity label{min-width:0}

.contacts-workspace .contacts-editor{display:flex;flex-direction:column;padding:22px 20px 0;border-radius:10px}.contacts-editor h2[data-contact-heading]{font-size:21px;line-height:1.4;color:#0b1f3a;margin:0 0 20px;flex:none}.contacts-editor form{flex:1;height:auto;min-height:0;gap:14px}.contacts-editor label:has(input){font-weight:500;grid-template-columns:80px minmax(0,1fr)}.contacts-editor input:not([type=hidden]){height:44px;border-radius:7px;font-size:14px}.contact-identity{gap:20px}.contact-map-heading{border-top:1px solid #dbe3ee;padding-top:14px;flex:none}.contact-map-heading h3{font-size:16px;margin:0;color:#0b1f3a}.contact-map-heading p{font-size:12px;color:#526783;margin:5px 0 0}.contacts-actions{border-top:1px solid #dbe3ee;margin:0 -20px;padding:16px 20px;justify-content:space-between;flex-direction:row;min-height:42px}.contacts-actions button{margin-inline-start:auto;display:inline-flex;align-items:center;gap:8px;min-height:42px}.contacts-actions [data-contact-unsaved]{order:0;background:none;border:0;color:#bc7606;font-size:13px;padding:0}.contacts-actions [data-contact-unsaved]::before{content:'●';margin-inline-end:7px}.contacts-map{min-height:180px}@media(max-width:1050px){.contacts-editor label:has(input){grid-template-columns:max-content minmax(0,1fr)}.contact-identity{gap:14px}}@media(max-width:750px){.contacts-editor form{flex:auto}.contacts-workspace .contacts-editor{min-height:620px}.contacts-actions{gap:10px}.contacts-editor h2[data-contact-heading]{font-size:19px}}

.contacts-actions .contact-delete{margin-inline-start:0;background:#fff;color:#b42318;border:1px solid #f0aaa3}.contacts-actions .contact-delete:hover{background:#fff1f0}.contacts-actions .contact-delete[hidden]{display:none}
.contact-name-phone{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px}.contact-name-phone strong,.contact-name-phone bdi{display:inline}
.contact-editor-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex:none;margin-bottom:20px}.contacts-editor .contact-editor-heading h2[data-contact-heading]{margin:0}.contact-editor-heading .contact-required{margin-inline-start:auto}@media(max-width:750px){.contact-editor-heading{flex-wrap:wrap;gap:10px}}
.contact-required{display:flex;align-items:center;gap:10px;font-size:13px;white-space:nowrap}.contact-required [data-required-field]{color:#b42318}.contact-required [data-complete=true]{color:#15803d}.contact-required [data-required-mark]{font-weight:700}.contacts-actions{gap:10px}.contacts-actions button{white-space:nowrap}.contact-place-pin{position:absolute;top:12px;left:12px;z-index:2;width:44px;height:44px;padding:8px;display:grid;place-items:center;background:#fff;border:1px solid #dbe3ee;border-radius:8px;box-shadow:0 2px 8px #10274a18}.contact-place-pin img{width:24px;height:28px}.contact-place-pin:disabled{opacity:.5;cursor:wait}@media(max-width:1200px){.contacts-actions [data-contact-unsaved]{display:none}}@media(max-width:750px){.contact-required{flex-wrap:wrap;gap:8px}}

.contacts-actions [data-contact-submit]{order:2}.contacts-actions .contact-delete{order:0}.contacts-actions [data-contact-unsaved]{order:1}

.contacts-directory{display:flex;flex-direction:column;overflow:hidden}
.contacts-directory .contacts-list{flex:1 1 auto;min-height:0;overflow-y:auto}

body:has(.contacts-workspace){overflow:hidden}
.shell:has(.contacts-workspace){height:100dvh;min-height:0;display:flex;flex-direction:column}
.shell:has(.contacts-workspace)>main{flex:1;min-height:0;display:flex;flex-direction:column}
main>[hx-history-elt]:has(.contacts-workspace),#dashboard-page:has(.contacts-workspace){flex:1;min-height:0;display:flex;flex-direction:column}
.contacts-workspace{flex:1 1 auto;min-height:0;height:auto}
@media(max-width:750px){body:has(.contacts-workspace){overflow:auto}.shell:has(.contacts-workspace){height:auto;display:block}.shell:has(.contacts-workspace)>main{display:block}}.contacts-autosave{display:flex;align-items:center;gap:10px;flex:none;border-top:1px solid #e3e9f2;margin:12px 0 0;padding:12px 2px 0}
.contacts-autosave .autosave-toggle{display:flex;align-items:center;gap:8px;flex:1 1 auto;min-width:0;margin:0;font-size:13px;color:#0b1f3a}
.contacts-autosave .autosave-toggle input{flex:none;width:18px;height:18px;margin:0}
.contacts-autosave .autosave-toggle span{min-width:0;overflow-wrap:anywhere}
.contacts-autosave button{flex:none;white-space:nowrap;min-height:40px;padding:8px 14px;border-radius:6px;font-size:13px}
.contact-no-location{display:inline-block;font-size:12px;color:#b42318;background:#fff1f0;border:1px solid #f0aaa3;border-radius:20px;padding:2px 10px;margin-top:6px}
.contact-location-hint{font-size:13px;color:#526783;margin:8px 0 0}
.contact-location-hint[hidden]{display:none}
.contact-delete-dialog{width:min(440px,calc(100vw - 48px));padding:0;border:0;border-radius:12px;box-shadow:0 24px 64px rgba(20,44,80,.2);color:#0b1f3a}
.contact-delete-dialog::backdrop{background:rgba(15,29,49,.42)}
.contact-delete-dialog[open]{display:block}
.contact-delete-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0;padding:20px 24px 16px;border-bottom:1px solid #e3e9f2}
.contact-delete-head h3{margin:0;font-size:19px}
.contact-delete-head button{display:grid;place-items:center;width:36px;height:36px;padding:0;background:#fff;color:#0b1f3a;border:1px solid #dbe3ee;border-radius:7px;font-size:18px;cursor:pointer}
.contact-delete-dialog>p{margin:20px 24px 16px;color:#405371;font-size:14px;line-height:1.8}
.contact-delete-actions{display:flex;gap:10px;margin:0 24px 24px}
.contact-delete-actions button{flex:1;min-height:44px;border-radius:7px;font-size:15px;cursor:pointer}
.contact-delete-actions .outline{background:#fff;color:#0b1f3a;border:1px solid #dbe3ee}
.contact-confirm-delete{background:#b42318;border:1px solid #b42318;color:#fff}
/* Editor actions: save/cancel at the start, delete pinned at the end. */
.contacts-actions{justify-content:flex-start}
.contacts-actions button{margin-inline-start:0}
.contacts-actions [data-contact-submit]{order:0}
.contacts-actions [data-contact-cancel]{order:1;background:#fff;color:#0b1f3a;border:1px solid #dbe3ee}
.contacts-actions [data-contact-cancel]:hover{background:#f3f6fa}
.contacts-actions [data-contact-unsaved]{order:2}
.contacts-actions .contact-delete{order:3;margin-inline-start:auto}
.contacts-actions .contact-delete img{width:18px;height:18px}
/* Autosave is a switch that saves on flip; no separate button. */
.contacts-autosave .autosave-toggle input{appearance:none;width:44px;height:24px;min-height:0;border-radius:12px;background:#cbd5e1;border:0;position:relative;cursor:pointer;margin:0;padding:0;order:2}
.contacts-autosave .autosave-toggle input:checked{background:#155dfb}
.contacts-autosave .autosave-toggle input:focus-visible{outline:2px solid #155dfb;outline-offset:2px}
.contacts-autosave .autosave-toggle input::after{content:'';position:absolute;top:2px;inset-inline-start:2px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .15s ease}
.contacts-autosave .autosave-toggle input:checked::after{transform:translateX(-20px)}
.contacts-autosave .autosave-text{display:grid;gap:2px}
.contacts-autosave .autosave-text small{font-size:12px;color:#526783}
.contacts-autosave .autosave-toggle{justify-content:space-between}
