@font-face{font-family:DirectorySans;src:local("Inter"),local("Arial");font-display:swap}
:root{--paper:#f7f7f2;--white:#fff;--ink:#203c37;--body:#43534e;--muted:#75817b;--line:#e1e5dd;--soft:#eef1e8;--green:#285a4e;--lime:#dce9b9;--amber:#8a5a15;--amber-bg:#faf1dd;--radius:17px;font-family:DirectorySans,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--paper);font-size:15px;line-height:1.5}button,input,select{font:inherit}button,select{cursor:pointer}button{color:inherit}button:disabled{cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #86ad72;outline-offset:3px}button{touch-action:manipulation}a{color:inherit}svg{display:block}button[hidden],[hidden]{display:none!important}.shell{width:min(1120px,calc(100% - 72px));margin:auto}.topbar{background:#fbfcf7;border-bottom:1px solid var(--line)}.topbar-inner{min-height:91px;display:flex;justify-content:space-between;align-items:center;gap:20px}.brand{display:flex;align-items:center;gap:12px;font-size:20px;font-weight:730;text-decoration:none;letter-spacing:-.5px;line-height:1.15}.brand-icon{height:43px;width:43px;display:grid;place-items:center;background:var(--ink);color:#e3edc9;border-radius:12px}.brand-icon svg{height:27px;width:27px}.brand-sub{display:block;font-size:11px;letter-spacing:.25px;font-weight:500;color:var(--muted);margin-top:5px}.private-badge{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:550;border:1px solid #d9dfcf;padding:7px 11px;border-radius:30px;background:#f2f5eb;color:#53634c}.private-badge svg{width:14px;height:14px}.intro{padding:47px 0 29px;display:flex;align-items:center;justify-content:space-between;gap:32px}.eyebrow{font-size:11px;font-weight:720;letter-spacing:2.1px;color:#73816c;margin:0 0 12px}h1{font-size:clamp(27px,3.5vw,39px);font-weight:650;line-height:1.14;letter-spacing:-1.5px;margin:0 0 13px}.intro-copy{font-size:14px;line-height:1.65;max-width:565px;color:var(--body);margin:0}.count-summary{border-left:1px solid #d9dfd4;display:flex;align-items:center;gap:13px;padding-left:30px;min-width:185px;font-size:12px;line-height:1.8;color:var(--muted)}.summary-number{font-size:48px;line-height:1;letter-spacing:-2px;font-weight:500;color:var(--ink)}.review-dot{display:inline-block;width:6px;height:6px;background:#af7c2b;border-radius:50%;margin-right:4px;vertical-align:middle}.search-panel{background:var(--ink);border-radius:var(--radius);padding:25px 29px 0;color:#edf3e4;box-shadow:0 5px 20px #213c3710}.search-label{display:block;font-size:13px;font-weight:550;margin-bottom:10px}.search-wrap{position:relative;display:flex;align-items:center;gap:12px;background:#fff;border-radius:10px;border:1px solid #fff;padding:0 16px;color:#687870}.search-wrap>svg{width:22px;height:22px;flex-shrink:0}.search-wrap:focus-within{outline:3px solid #b8d18d;outline-offset:2px}.search-wrap input{width:100%;background:none;border:0;font-size:17px;height:55px;outline:none!important;color:var(--ink);padding:0 26px 0 0;border-radius:0}.search-wrap input::placeholder{color:#8b948f}.search-wrap input::-webkit-search-cancel-button{display:none}.clear-search{position:absolute;right:10px;font-size:24px;background:none;border:0;width:40px;height:40px;line-height:1;border-radius:7px;color:#738078}.clear-search:hover{background:var(--soft)}.search-shortcut{border:1px solid #dfe3dc;border-radius:4px;font-size:13px;color:#909b94;padding:0 6px}.search-hint{margin:10px 0 16px;color:#b7c6b7;font-size:12px}.filters{display:flex;gap:20px;overflow:auto;scrollbar-width:thin;scrollbar-color:#6b8579 transparent}.filter{display:flex;align-items:center;white-space:nowrap;gap:7px;background:none;color:#bac9be;border:0;border-bottom:3px solid transparent;padding:10px 0 14px;font-size:12px;font-weight:550;min-height:46px}.filter.active{color:#e5f0c9;border-bottom-color:#c9dc9c}.filter:hover{color:#fff}.filter>span:not(.review-dot){font-size:10px;font-weight:650;border-radius:5px;padding:1px 5px;background:#ffffff14}.filter.active>span:not(.review-dot){background:#d2e6a325;color:#dcebb8}.filter .review-dot{background:#dbaf63;margin:0}.review-filter{margin-left:auto}.list-toolbar{display:flex;justify-content:flex-end;align-items:center;gap:20px;margin:27px 0 13px;font-size:12px}.list-toolbar p{margin:0;font-weight:650;color:#55634f}.sort-label{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--muted)}.sort-label select{border:0;background:transparent;color:#52634e;padding:7px 0 7px 4px;max-width:180px;font-size:12px;outline-offset:0}.list-heading,.contact-row{display:grid;grid-template-columns:minmax(270px,1fr) 190px 285px;gap:20px;align-items:center}.list-heading{padding:0 23px 12px;font-size:10px;font-weight:650;letter-spacing:1.3px;color:#7f8a7b}.contact-list{border:1px solid var(--line);background:var(--white);border-radius:13px;overflow:hidden}.contact-row{padding:18px 23px;border-bottom:1px solid #e9ece5;min-height:90px;position:relative;transition:background .15s}.contact-row:last-child{border-bottom:none}.contact-row:hover{background:#fcfdf9}.contact-identity{display:flex;align-items:center;gap:14px;min-width:0}.avatar{width:36px;height:36px;flex:0 0 36px;border:1px solid #e1e8d8;border-radius:10px;background:#f0f4e8;color:#6e805f;display:grid;place-items:center;font-size:11px;font-weight:600;letter-spacing:.5px}.avatar.business{background:#edf2ef;border-color:#dae4df;color:#507569}.avatar svg{width:19px;height:19px}.contact-name{font-size:14px;font-weight:620;line-height:1.45;margin:0}.contact-subtitle{font-size:11px;color:#8a9285;margin:3px 0 0}.number-cell{display:flex;gap:12px;justify-content:space-between;align-items:center}.cell-label{display:none}.number{font-variant-numeric:tabular-nums;letter-spacing:.3px;font-size:14px;white-space:nowrap;font-weight:500;color:#4c5c50;user-select:all}.not-provided{font-size:12px;color:#68766c}.copy-button{display:flex;align-items:center;justify-content:center;gap:5px;padding:7px 9px;font-size:11px;font-weight:600;color:#647858;border:1px solid #dfe6d8;background:#f9fbf5;border-radius:7px;min-width:65px;min-height:34px;transition:.15s}.copy-button:hover{border-color:#a6bd91;background:#eff4e6;color:#305242}.copy-button svg{width:13px;height:13px}.copy-button.copied{color:#226343;background:#eaf5e5;border-color:#b8d2aa}.review-row{background:#fffdf8}.review-row:hover{background:#fffdf8}.review-row .avatar{background:var(--amber-bg);border-color:#efdfb9;color:var(--amber)}.review-badge{display:inline-block;font-size:9px;line-height:1.6;background:var(--amber-bg);color:var(--amber);padding:1px 5px;border-radius:4px;margin-left:4px;white-space:nowrap;vertical-align:1px}.review-number{align-items:stretch;flex-direction:column;gap:3px}.review-number>span{font-size:12px;color:var(--amber);font-weight:600}.review-details{grid-column:1/-1;padding:0 0 0 50px;font-size:12px;color:#79623e}.review-details summary{cursor:pointer;width:fit-content;color:#8e6a29;font-size:11px}.review-details p{margin:9px 0 2px;line-height:1.7;max-width:700px}.candidate{font-variant-numeric:tabular-nums;color:#77551f;white-space:nowrap;font-weight:600}.source-note{display:flex;align-items:flex-start;gap:10px;padding:20px 0 0;color:#7c8978;font-size:11px;line-height:1.7}.source-note svg{width:17px;height:17px;flex-shrink:0;margin-top:2px}.source-note p{margin:0;max-width:840px}.source-note strong{font-weight:600;color:#5e6f56}footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #e1e6da;margin-top:25px;padding:20px 0 32px;font-size:10px;color:#8a9484}footer p{margin:0}.empty-state{text-align:center;border:1px dashed #d5ddcd;border-radius:13px;padding:50px 20px;background:#fcfdf8}.empty-icon{font-size:42px;color:#a9b59d;line-height:1}.empty-state h2{font-size:20px;font-weight:600;letter-spacing:-.5px;margin:10px 0}.empty-state p{font-size:13px;color:var(--muted)}.primary-button{background:var(--ink);border:0;border-radius:8px;color:#f2f7e9;padding:11px 17px;font-size:12px;margin-top:12px}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#1d3c34;color:#fff;border:1px solid #496454;box-shadow:0 5px 30px #16372730;border-radius:10px;padding:12px 20px;font-size:13px;z-index:10;text-align:center;max-width:calc(100% - 36px);width:max-content}.skip-link{position:fixed;top:-100px;left:20px;z-index:100;background:var(--white);color:var(--ink);padding:12px 18px;border-radius:8px}.skip-link:focus{top:10px}.noscript{padding:20px;color:var(--body)}
@media(min-width:1400px){.shell{width:1120px}.intro{padding-top:54px}}
@media(max-width:1000px){.list-heading,.contact-row{grid-template-columns:minmax(230px,1fr) 120px 260px;gap:12px}.contact-row{padding:17px 18px}.list-heading{padding-left:18px;padding-right:18px}.count-summary{min-width:155px;padding-left:20px}.contact-identity{gap:10px}.number{font-size:13px}.review-details{padding-left:46px}}
@media(max-width:800px){.shell{width:calc(100% - 40px)}.topbar-inner{min-height:78px}.intro{padding-top:32px;gap:15px}.intro-copy{max-width:430px}.count-summary{display:none}.list-heading,.contact-row{grid-template-columns:minmax(205px,1fr) 105px 230px;gap:12px}.contact-name{font-size:13px}.avatar{width:31px;height:31px;flex-basis:31px;font-size:10px}.contact-row{padding:15px}.list-heading{padding-left:15px;padding-right:15px}.copy-button{min-width:58px;padding:6px}.number-cell{gap:7px}.review-details{padding-left:41px}.search-panel{padding:22px 23px 0}}
@media(max-width:680px){.shell{width:calc(100% - 32px)}.topbar-inner{min-height:72px}.brand{font-size:18px;gap:10px}.brand-icon{width:37px;height:37px;border-radius:10px}.brand-icon svg{width:24px;height:24px}.brand-sub{font-size:10px}.private-badge{font-size:10px;padding:6px 8px;gap:5px}.intro{padding:30px 2px 24px}.eyebrow{font-size:10px;letter-spacing:1.8px;margin-bottom:11px}h1{max-width:330px;font-size:31px;line-height:1.15;letter-spacing:-1.2px;margin-bottom:11px}.intro-copy{font-size:13px;line-height:1.7;max-width:370px}.search-panel{padding:20px 17px 0;border-radius:13px}.search-label{font-size:12px}.search-wrap{padding:0 12px;gap:9px;border-radius:8px}.search-wrap>svg{width:18px;height:18px}.search-wrap input{font-size:16px;height:50px;min-width:0;padding-right:26px}.search-wrap input::placeholder{font-size:14px}.search-shortcut{display:none}.search-hint{font-size:10px;line-height:1.7;margin-bottom:10px}.filters{gap:17px;margin-right:-17px;padding-right:17px}.filter{font-size:11px;gap:5px;padding-bottom:12px;min-height:44px}.review-filter{margin-left:0}.filter>span:not(.review-dot){font-size:9px}.list-toolbar{margin:23px 1px 12px;gap:10px}.list-toolbar p{font-size:11px}.sort-label{font-size:10px;gap:3px}.sort-label select{font-size:11px;max-width:156px}.list-heading{display:none}.contact-list{background:transparent;overflow:visible;border:0;border-radius:0;display:grid;gap:10px}.contact-row{background:var(--white);border:1px solid var(--line);border-radius:11px;padding:17px 16px 15px;display:grid;grid-template-columns:1fr;gap:0;min-height:0}.contact-row:last-child{border-bottom:1px solid var(--line)}.contact-identity{gap:11px;margin-bottom:13px}.avatar{width:35px;height:35px;flex-basis:35px;font-size:11px}.contact-name{font-size:14px}.contact-subtitle{font-size:10px;margin-top:2px}.number-cell{display:grid;grid-template-columns:40px 1fr 66px;gap:8px;border-top:1px solid #f0f1eb;padding-top:9px;margin-top:8px;min-height:37px}.cell-label{display:block;font-size:10px;font-weight:500;color:#89917f}.phone-cell{grid-template-columns:40px 1fr;order:2;padding-top:8px;margin-top:9px;min-height:23px}.fax-cell{order:1;margin-top:0}.number{font-size:14px;letter-spacing:.3px}.not-provided{font-size:11px}.copy-button{min-height:36px;min-width:65px;font-size:11px;padding:6px 9px}.review-row{background:#fffdf8}.review-number{display:grid;grid-template-columns:40px 1fr;align-items:center}.review-number>span{font-size:12px}.review-number>.cell-label{font-size:10px;font-weight:500;color:#89917f}.review-details{order:3;padding:12px 0 0;margin-top:9px;border-top:1px solid #eee8da}.review-details summary{font-size:11px}.review-details p{font-size:11px}.source-note{padding:21px 2px 0;font-size:10px;gap:8px}.source-note svg{width:16px;height:16px}footer{font-size:9px;display:block;margin-top:21px;padding-top:17px}footer p+p{margin-top:6px}.toast{bottom:18px;font-size:12px;padding:12px 16px}.review-badge{font-size:9px}.empty-state{padding:37px 15px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.management-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:22px}.management-actions,.row-actions,.dialog-actions{display:flex;align-items:center;gap:8px}.management-actions .primary-button,.dialog-actions .primary-button{margin-top:0}.secondary-button{border:1px solid #d7dfcf;background:#f8faf3;border-radius:8px;padding:8px 12px;font-size:12px;color:var(--green)}.secondary-button:hover{background:var(--soft);border-color:#a6bd91}button:disabled{opacity:.55}.sync-status{font-size:12px;color:var(--muted);margin:10px 0 0;min-height:18px}.sync-status.error,.form-error{color:#974025}.row-actions{grid-column:1/-1;justify-content:flex-end;margin-top:-8px}.row-actions button{padding:5px 10px;font-size:11px}.contact-note{grid-column:1/-1;color:var(--muted);font-size:12px;margin:0 0 0 50px;white-space:pre-wrap;overflow-wrap:anywhere}.number-cell{flex-wrap:wrap}.contact-name,.contact-subtitle{overflow-wrap:anywhere}.number{white-space:normal;overflow-wrap:anywhere;min-width:0}.phone-cell .copy-button{flex-shrink:0}
dialog{width:min(600px,calc(100% - 28px));max-height:calc(100dvh - 40px);border:1px solid var(--line);border-radius:17px;padding:26px;color:var(--ink);background:var(--paper);box-shadow:0 15px 70px #132d3840}dialog::backdrop{background:#152d2866}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:15px}.dialog-heading h2{font-size:23px;letter-spacing:-.5px;margin:0}.dialog-heading button{font-size:24px;line-height:1;padding:6px 11px}.form-help{font-size:12px;color:var(--muted);margin:13px 0 20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;min-width:0}.form-grid input:not([type=checkbox]),.form-grid textarea{width:100%;border:1px solid #d4ddcc;background:white;border-radius:7px;padding:9px 10px;font:inherit;font-size:16px;color:var(--ink)}.form-grid textarea{resize:vertical;font-weight:400}.full-width{grid-column:1/-1}.form-grid .checkbox-label{flex-direction:row;align-items:center;gap:8px;font-weight:400}.checkbox-label input{width:17px;height:17px;accent-color:var(--green)}.dialog-actions{justify-content:flex-end;margin-top:24px}.form-error{font-size:12px;line-height:1.6}.form-grid textarea:focus-visible{outline:3px solid #86ad72;outline-offset:3px}
@media(max-width:680px){.management-toolbar{align-items:flex-start;flex-wrap:wrap}.management-actions{flex-wrap:wrap}.row-actions{order:4;margin-top:13px}.contact-note{order:3;margin:10px 0 0}.phone-cell{grid-template-columns:40px 1fr 66px}.form-grid{grid-template-columns:1fr}.full-width{grid-column:auto}dialog{padding:20px}.dialog-heading h2{font-size:21px}.number-cell .number{font-size:13px}}
/* Palette inspired by the rendered Orchard Heights site: navy, aqua, pale blue. */
:root{--paper:#f5fafb;--ink:#2b3957;--body:#43516a;--muted:#596980;--line:#d8e4ea;--soft:#edf7f9;--green:#2b3957;--lime:#67cbe7;--amber:#805310;--amber-bg:#fff4dc}
.topbar{background:#fff;border-top:5px solid #2b3957}.brand-icon{color:#67cbe7}.private-badge{background:#edf7f9;border-color:#b8dbe6;color:#2b3957}.eyebrow,.intro-copy,.source-note,.source-note strong,.list-toolbar p,.sort-label,.sort-label select,.count-summary,.contact-subtitle,.not-provided,.list-heading,footer,.cell-label{color:#596980}.count-summary{border-color:#d8e4ea}.search-panel{color:#fff;box-shadow:0 5px 20px #2b395710}.search-hint{color:#d5eaf1}.search-wrap{color:#596980}.search-wrap input::placeholder{color:#667589}.search-wrap:focus-within{outline-color:#67cbe7}.search-shortcut{color:#596980;border-color:#b7c7d1}.clear-search{color:#596980}.filter{color:#d5eaf1}.filter.active{color:#fff;border-bottom-color:#67cbe7}.filter.active>span:not(.review-dot){background:#67cbe7;color:#2b3957}.filter>span:not(.review-dot){background:#ffffff20;color:#fff}.avatar,.avatar.business{background:#edf7f9;border-color:#c5e5ed;color:#2b3957}.contact-row{border-bottom-color:#e1eaf0}.contact-row:hover{background:#f7fcfd}.number{color:#2b3957}.copy-button,.secondary-button{color:#2b3957;border-color:#bfd7e1;background:#edf7f9}.copy-button:hover,.secondary-button:hover{color:#2b3957;background:#d5f1f8;border-color:#64b4ca}.copy-button.copied{color:#2b3957;background:#cceef7;border-color:#64b4ca}.primary-button{background:#2b3957;color:#fff}.primary-button:hover{background:#394d73}.management-actions #add-contact{color:#2b3957;background:#67cbe7}.management-actions #add-contact:hover{background:#8dd9ec}.empty-state{background:#f7fcfd;border-color:#b8d5df}.empty-icon{color:#567b90}.toast{background:#2b3957;border-color:#667b9e;box-shadow:0 5px 30px #2b395730}footer{border-color:#d8e4ea}.form-grid input:not([type=checkbox]),.form-grid textarea{border-color:#b9ccd7}.form-grid input[type=checkbox]{accent-color:#2b3957}dialog::backdrop{background:#19264188}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible,summary:focus-visible,.form-grid textarea:focus-visible{outline-color:#267b99}.search-panel button:focus-visible{outline-color:#67cbe7}.review-row,.review-row:hover{background:#fffcf5}.review-row .avatar{background:var(--amber-bg);border-color:#e9d8b5;color:var(--amber)}.review-number>.cell-label{color:#596980}.review-details{color:#73551c}

.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}

/* Display formatting never changes the saved number text. */
.number-content{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.number-actions{display:flex;flex-direction:column;gap:5px;align-items:flex-end;flex-shrink:0}.number-extension{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums;user-select:all}.number-copy-hint{font-size:10px;color:var(--muted);line-height:1.5}.number-actions .copy-button{min-width:65px}.clipboard-target{position:fixed;top:0;left:-9999px;opacity:0}.number-cell{align-items:center}
@media(max-width:680px){.number-content{grid-column:2}.number-actions{grid-column:3}.number-cell .cell-label{align-self:start;padding-top:9px}}

/* Phone and fax need equal room for a complete number and its copy control. */
@media(min-width:681px){
  .list-heading,.contact-row{grid-template-columns:minmax(205px,1fr) minmax(190px,230px) minmax(190px,230px)}
}

/* Keep compact copy controls directly beneath the number they belong to. */
.number-cell{flex-direction:column;align-items:flex-start;justify-content:center;gap:6px}
.number-content{flex:none}
.number-actions{flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px}
.number-actions .copy-button{min-width:56px;min-height:28px;padding:4px 7px;font-size:10px;line-height:1.4;border-radius:6px;gap:4px}
.number-actions .copy-button svg{width:12px;height:12px}
@media(max-width:680px){
  .number-cell,.phone-cell{grid-template-columns:40px minmax(0,1fr);align-items:start;gap:5px 8px}
  .number-cell .cell-label{grid-column:1;grid-row:1;padding-top:2px}
  .number-content{grid-column:2;grid-row:1}
  .number-actions{grid-column:2;grid-row:2}
}

/* Contact type and custom fields share the responsive form layout. */
.form-grid select{width:100%;min-height:42px;border:1px solid #b9ccd7;background:#fff;border-radius:7px;padding:9px 10px;font:inherit;font-size:16px;color:var(--ink)}
.form-grid select:disabled{opacity:.55}

/* A separate confirmation keeps permanent deletion deliberate. */
.management-toolbar{justify-content:flex-end}
#delete-dialog{width:min(480px,calc(100% - 28px))}
.delete-contact-name{font-size:18px;font-weight:650;overflow-wrap:anywhere;margin:20px 0 3px}
.delete-warning{font-size:14px;line-height:1.65;color:var(--body);margin:20px 0}
.primary-button.danger-button{background:#a52e2e;color:#fff}
.primary-button.danger-button:hover{background:#862323}
#delete-dialog .dialog-actions{flex-wrap:wrap}
