/* The compact contact book keeps every action available in a smaller footprint. */
.contact-filterbar label{min-width:0;max-width:100%}
.contact-filterbar select{min-width:0}
.contact-filter-help{font-size:11px;line-height:1.8;color:#617052;margin:-8px 0 16px}
.contact-viewbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:-2px 0 16px}
.contact-viewbar>span{font:9px ui-monospace,monospace;letter-spacing:1px;color:#7d8973}
.contact-view-options{display:inline-flex;border:1px solid #cfd8c4;border-radius:5px;background:#edf0e5;padding:3px;gap:3px}
.contact-view-options button{padding:8px 12px;min-height:36px;font-size:11px;color:#718063;border-radius:3px}
.contact-view-options button[aria-pressed=true]{background:#fffdf7;color:#385333;box-shadow:0 1px 3px #30442216}
.contact-viewbar>small{font:9px ui-monospace,monospace;color:#7c8971;line-height:1.7}
.contact-list{display:flex;flex-direction:column;gap:8px}
.contact-row{display:grid;grid-template-columns:minmax(170px,1fr) minmax(130px,.7fr) minmax(200px,1.2fr) auto;gap:12px 18px;align-items:center;padding:14px 16px;background:#fffdf7;border:1px solid var(--line);border-radius:6px}
.contact-row>div{min-width:0}
.contact-row-identity{display:flex;align-items:center;gap:12px}
.contact-row-identity>.contact-avatar{height:36px;width:36px;font-size:14px}
.contact-row-identity>div{min-width:0}
.contact-row h2{font-size:13px;line-height:1.6;overflow-wrap:anywhere}
.contact-row-identity p{font-size:10px;line-height:1.7;color:#7c8b70;margin-top:3px;overflow-wrap:anywhere}
.contact-row-state{display:flex;align-items:flex-start;flex-wrap:wrap;gap:6px}
.contact-row-state .relationship-pill{max-width:100%;flex-wrap:wrap}
.contact-row-state .relationship-pill small{white-space:nowrap}
.contact-row-assignments>p{font-size:10px;line-height:1.7;color:#7b8971;overflow-wrap:anywhere}
.contact-row-assignments>p strong{font-weight:500;color:#506c43}
.contact-row-stops{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px;align-items:center}
.contact-row-stops:empty{display:none}
.contact-row-stops button{font-size:10px;line-height:1.5;padding:5px 7px;border:1px solid #dbe2d0;border-radius:4px;background:#f0f4e9;color:#607b52;text-align:left;max-width:100%;min-height:34px;overflow-wrap:anywhere}
.contact-row-stops button small{display:block;color:#7b8b6f;font-size:9px;margin-top:3px;line-height:1.5}
.contact-row-stops>small{font-size:9px;color:#7b8971;line-height:1.7}
.contact-row-manage{font-size:11px;min-height:38px;padding:8px 13px}
.contact-view-options button:focus-visible,.contact-row button:focus-visible{outline:2px solid #b67b52;outline-offset:3px}
@media(max-width:1050px){
 .contact-row{grid-template-columns:minmax(170px,1fr) minmax(130px,.75fr) auto;gap:10px 14px}
 .contact-row-assignments{grid-column:1/3}
 .contact-row-manage{grid-column:3;grid-row:1/3}
}
@media(max-width:600px){
 .contact-filterbar label{flex:1 1 135px;max-width:100%;min-width:0}
 .contact-viewbar{gap:8px}
 .contact-view-options{display:flex;flex:1}
 .contact-view-options button{flex:1;min-height:44px;white-space:nowrap;padding:8px 10px}
 .contact-viewbar>small{width:100%}
 .contact-row{grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:13px}
 .contact-row-identity{grid-column:1;grid-row:1;gap:9px}
 .contact-row-identity>.contact-avatar{height:32px;width:32px;font-size:12px}
 .contact-row h2{font-size:13px}
 .contact-row-state{grid-column:1/-1;grid-row:2}
 .contact-row-assignments{grid-column:1/-1;grid-row:3}
 .contact-row-assignments>p{font-size:11px}
 .contact-row-stops{gap:7px;margin-top:8px}
 .contact-row-stops button{min-height:44px;font-size:11px;padding:7px 9px}
 .contact-row-manage{grid-column:2;grid-row:1;min-height:44px;padding:8px 10px}
}
@media(max-width:350px){
 .contact-row{padding:11px;gap:9px}
 .contact-row-identity>.contact-avatar{display:none}
}

/* Client numbers are personal, optional values copied from the game. */
.customer-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 12px;padding:11px 0;border-top:1px solid #e1e6d6;border-bottom:1px solid #e1e6d6}
.customer-metrics>div{min-width:0}
.customer-metrics dt{font:9px ui-monospace,monospace;color:#7b8971;line-height:1.6;margin-bottom:4px}
.customer-metrics dd{font:15px ui-monospace,monospace;color:#45653a;margin:0;line-height:1.6;overflow-wrap:anywhere}
.customer-metrics dd>span{font:10px system-ui;color:#849077}
.contact-row .customer-metrics{padding:0;border:0;gap:12px;margin-bottom:7px}
.contact-row .customer-metrics dd{font-size:12px}
.customer-summary{padding:17px 19px;background:#edf1e5;border:1px solid #d1dcc4;border-radius:6px;margin:0 0 20px;min-width:0}
.customer-summary header h2{font:18px Georgia,serif;color:#405c35;margin:0 0 6px;line-height:1.5}
.customer-summary header p{font-size:10px;color:#7a886e;line-height:1.8;margin:0}
.customer-summary-numbers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin-top:13px}
.customer-summary-numbers>div{min-width:0;border-top:1px solid #d4deca;padding-top:11px}
.customer-summary-numbers span,.customer-summary-numbers small{display:block;font-size:10px;color:#748568;line-height:1.7}
.customer-summary-numbers strong{display:block;font:24px ui-monospace,monospace;color:#436139;line-height:1.6;overflow-wrap:anywhere}
.customer-inputs{border:1px solid #d5dfca;border-radius:6px;background:#edf1e5;padding:16px;min-width:0}
.manager-dialog .customer-inputs h3{margin:0 0 8px;color:#45633a}
.customer-inputs .manager-form-grid>div{min-width:0}
.customer-inputs[hidden]{display:none}
@media(max-width:600px){
 .customer-summary{padding:14px;margin-bottom:17px}
 .customer-summary-numbers{gap:12px}
 .customer-summary-numbers strong{font-size:21px}
 .customer-inputs{padding:14px}
 .customer-metrics dt{font-size:10px}
 .contact-row .customer-metrics{gap:10px;margin-bottom:10px}
}
@media(max-width:350px){.customer-summary-numbers{grid-template-columns:minmax(0,1fr);gap:10px}}

/* Whole-book network totals stay separate from the filtered client summary. */
.contact-overview{margin:0 0 25px;min-width:0}
.contact-overview>header{margin-bottom:13px}
.contact-overview h2{font:20px Georgia,serif;color:#405c35;line-height:1.5;margin:0 0 5px}
.contact-overview>header p,.contact-overview-coverage{font-size:10px;line-height:1.8;color:#7c8971}
.contact-overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.contact-overview-card{min-width:0;padding:16px;background:#edf1e5;border:1px solid #d1dcc4;border-radius:6px;display:flex;flex-direction:column;align-items:flex-start}
.contact-overview-card>span{font-size:11px;font-weight:600;line-height:1.7;color:#5b724d}
.contact-overview-card>strong{font:27px ui-monospace,monospace;color:#3e5c35;line-height:1.6;letter-spacing:-.7px;margin:7px 0 6px;max-width:100%;overflow-wrap:anywhere}
.contact-overview-card>strong.unrecorded{font:17px Georgia,serif;letter-spacing:0;line-height:1.6;margin:12px 0}
.contact-overview-card>small{font:10px ui-monospace,monospace;line-height:1.8;color:#587149;overflow-wrap:anywhere}
.contact-overview-card>p{font-size:10px;line-height:1.8;color:#8a957e;margin:7px 0 0}
.contact-overview-coverage{margin:10px 0 0}
@media(min-width:1200px){.contact-overview-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.contact-overview-card{padding:15px 13px}.contact-overview-card>strong{font-size:25px}}
@media(max-width:600px){.contact-overview{margin-bottom:21px}.contact-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.contact-overview-card{padding:13px}.contact-overview-card>span{font-size:10px}.contact-overview-card>strong{font-size:23px}.contact-overview-card>strong.unrecorded{font-size:16px}.contact-overview>header p,.contact-overview-coverage{font-size:10px}}
@media(max-width:350px){.contact-overview-card{padding:11px}.contact-overview-card>strong{font-size:20px}.contact-overview-card>small{font-size:9px}}
