.customer-rule-strip{border-bottom:1px solid var(--line);background:var(--surface);padding:10px 14px;flex-shrink:0}.customer-rule-strip>summary{cursor:pointer;color:var(--muted);font-size:14px}.customer-rule-strip>summary .bi-main{font-size:14px;font-weight:550}.customer-rule-strip[open] .customer-grade-rule{margin-top:14px}.customer-grade-rule{padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}.grade-rule-heading{display:flex;justify-content:space-between;gap:18px;align-items:center}.grade-rule-heading>.computed-grade{display:flex;align-items:center;gap:8px;white-space:nowrap;font-size:24px;font-weight:700;border:1px solid var(--line);border-radius:7px;padding:7px 12px;background:var(--surface)}.computed-grade .bi-main{font-size:14px}.computed-grade .bi-sub{font-size:11px}.grade-a{color:#2f7052}.grade-b{color:#916127}.grade-c{color:#4d6789}.grade-d{color:var(--muted)}.grade-dimensions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:16px 0}.grade-dimensions>div{display:flex;gap:10px;align-items:flex-start;padding:13px;border:1px solid var(--line);border-radius:7px;background:var(--surface)}.dimension-indicator{display:grid;place-items:center;flex-shrink:0;width:26px;height:26px;border:1px solid var(--line);border-radius:50%;font-size:14px;color:var(--muted)}.grade-dimensions .complete{border-color:#93b69e}.complete .dimension-indicator{background:#e5f1e8;color:#2f7052;border-color:#93b69e}.grade-dimensions .bi-main{font-size:14px;font-weight:500}.grade-dimensions small{display:block;margin-top:8px}.grade-dimensions small .bi-main{font-size:12px;font-weight:400;color:var(--muted)}.grade-dimensions small .bi-sub{font-size:11px}.customer-grade-rule>p>.bi .bi-main{font-size:13px;font-weight:400}.customer-grade-rule>p>.bi .bi-sub{font-size:12px}.customer-profile-guide{margin:18px 0}.customer-form-group{border:1px solid var(--line);border-radius:8px;padding:18px;margin:0;min-width:0}.customer-form-group legend{padding:0 8px}.customer-editor .dialog-body{padding-top:16px}.customer-editor .grade-dimensions{grid-template-columns:1fr}.customer-editor .grade-dimensions>div{padding:9px 12px}.customer-editor .grade-dimensions small{display:none}.customer-editor #facebook-account-field[hidden]{display:none}.customer-other-fields{border:1px solid var(--line);border-radius:8px;padding:14px 18px}.customer-other-fields>summary{cursor:pointer}.customer-other-fields[open]>.form-grid{margin-top:18px}
.visit-list-intro{padding:13px 16px;border-bottom:1px solid var(--line);background:var(--bg);flex-shrink:0}.visit-list-intro strong .bi-main{font-size:15px}.visit-list-intro p{margin-top:8px;max-width:125ch}.visit-list-intro p .bi-main{font-size:13px;font-weight:400;color:var(--muted)}.visit-list-intro p .bi-sub{font-size:12px}.invitation-editor{width:min(1380px,calc(100vw - 36px));max-width:none}.invitation-editor .dialog-body{padding:20px}.invitation-editor-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:28px;align-items:start}.invitation-fields{display:grid;gap:20px;min-width:0}.invitation-fields fieldset{margin:0;padding:18px;border:1px solid var(--line);border-radius:9px;min-width:0;display:grid;gap:16px}.invitation-fields legend{padding:0 8px}.invitation-fields .field{display:flex;flex-direction:column;gap:8px;min-width:0}.invitation-fields .field input,.invitation-fields .field select,.invitation-fields .field textarea{box-sizing:border-box;max-width:100%;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:6px;min-height:44px;background:var(--surface);color:var(--ink);font:inherit}.invitation-fields .form-grid{gap:16px}.invitation-fields .hint .bi-main{font-size:13px}.invitation-fields .hint .bi-sub{font-size:12px}.visit-zone{font-size:13px;color:var(--muted);overflow-wrap:anywhere;line-height:1.6}.invitation-fields [hidden]{display:none!important}.invitation-preview{padding:20px;background:var(--bg);border:1px solid var(--line);border-radius:10px;min-width:0;position:sticky;top:0;align-self:start}.invitation-preview>div{margin-bottom:16px}.invitation-preview h3{margin:0 0 8px}.invitation-preview p{color:var(--muted);line-height:1.6}.invitation-preview p .bi-main{font-size:13px;font-weight:400}.invitation-preview p .bi-sub{font-size:12px}.invitation-preview canvas{display:block;width:100%;height:auto;max-width:100%;box-shadow:0 8px 24px #49352018;background:#f7f1e7}.invitation-preview canvas:not([width]){aspect-ratio:3/4}.invitation-preview>.hint{margin-top:18px}.visit-detail-grid{display:grid;grid-template-columns:minmax(360px,.8fr) minmax(0,1.2fr);gap:24px;margin:22px 0;align-items:start}.visit-workflow{min-width:0;display:grid;gap:20px}.visit-workflow>.detail-block{margin:0}.visit-workflow h2>.bi .bi-main{font-size:calc(var(--base) + 4px)}.visit-workflow .definitions{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.visit-workflow .definitions dd{overflow-wrap:anywhere;white-space:pre-wrap}.visit-workflow .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}.visit-handoff .business-title p,.visit-attendance .business-title p{max-width:80ch;margin-top:10px;color:var(--muted)}.visit-handoff .business-title p .bi-main,.visit-attendance .business-title p .bi-main{font-size:14px;font-weight:400}.visit-handoff .business-title p .bi-sub,.visit-attendance .business-title p .bi-sub{font-size:12px}.reception-note{padding:16px;border:1px solid var(--line);background:var(--bg);border-radius:7px;margin:20px 0}.reception-note p{white-space:pre-wrap;margin-top:10px;overflow-wrap:anywhere}.handoff-receipt{margin-top:18px;color:var(--muted);font-size:14px}.attendance-result{display:flex;flex-direction:column;gap:10px;padding:16px;background:var(--bg);border-radius:7px;margin:18px 0}.attendance-result strong{color:var(--accent)}.attendance-result p{white-space:pre-wrap;overflow-wrap:anywhere}.visit-attendance>.btn{margin:10px 10px 0 0}.visit-confirm{display:flex;gap:12px;align-items:flex-start;padding:16px;border:1px solid var(--line);border-radius:7px;background:var(--soft)}.visit-confirm input{flex-shrink:0;width:20px;height:20px;margin:3px 0}.visit-history{margin-top:20px;display:grid;gap:16px}.visit-history article{padding:0 0 16px 16px;border-left:3px solid var(--line);min-width:0}.visit-history article p{margin:8px 0;white-space:pre-wrap;overflow-wrap:anywhere}.visit-history small{color:var(--muted);font-size:13px}.invitation-old-versions{margin-top:20px;border-top:1px solid var(--line);padding-top:16px}.invitation-old-versions>summary{cursor:pointer}.invitation-old-versions article{padding:16px;border:1px solid var(--line);margin-top:14px;border-radius:7px}.invitation-old-versions article p{margin-top:8px}
@media(max-width:1100px){.grade-dimensions{grid-template-columns:1fr}.visit-detail-grid{grid-template-columns:minmax(280px,.75fr) minmax(0,1fr)}.invitation-editor-layout{grid-template-columns:1fr 1fr;gap:18px}.visit-workflow .definitions{grid-template-columns:1fr}}
@media(max-width:760px){.invitation-editor{width:calc(100vw - 20px)}.invitation-editor-layout,.visit-detail-grid{grid-template-columns:1fr}.invitation-editor-layout>.invitation-preview{position:static;max-width:470px;width:100%;box-sizing:border-box;justify-self:center}.invitation-fields .form-grid{grid-template-columns:1fr}.invitation-fields fieldset{padding:14px}.grade-rule-heading{flex-wrap:wrap}.invitation-preview{position:static;padding:14px}.saved-invitation{max-width:520px;width:100%;box-sizing:border-box;justify-self:center}.visit-workflow .definitions{grid-template-columns:1fr}.visit-list-intro p{display:none}.customer-rule-strip>summary .bi-sub{display:none}}
/* Confirmed customer layout: composite contact/time cells, extensible full addresses. */
.customer-list-guide{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap;flex-shrink:0}.customer-list-guide summary{cursor:pointer}.customer-list-guide .actions{display:flex;gap:8px;flex-wrap:wrap}.customer-list-guide details[open]{flex-basis:100%}.customer-list-guide .hint{max-width:100ch;line-height:1.7}.customer-stacked{display:flex;flex-direction:column;gap:6px;white-space:normal;overflow-wrap:anywhere;line-height:1.5;text-align:left}.customer-stacked .secondary-time{font-size:12px;color:var(--muted)}.customer-stacked-button{border:0;background:transparent;color:inherit;font:inherit;cursor:pointer;padding:0;width:100%}.customer-editor{width:min(1000px,calc(100vw - 24px));max-width:1000px}.customer-editor [hidden]{display:none!important}.customer-editor .form-grid{align-items:start}.customer-address-row{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end;padding:16px;border:1px solid var(--line);border-radius:7px;background:var(--bg);margin-bottom:12px}.customer-address-row .customer-address-full{grid-column:1/3}.customer-address-row .field{min-width:0}.customer-address-row textarea{width:100%;box-sizing:border-box;font:inherit;padding:10px;border:1px solid var(--line);border-radius:5px;background:var(--surface);color:var(--ink)}.customer-profile-guide{padding:16px;border:1px solid var(--line);border-radius:7px}.customer-profile-guide details{margin-top:14px}.customer-address-row>.field:nth-child(2){grid-column:2/4}.customer-editor .computed-grade{font-size:20px;margin-left:8px}.customer-list-guide .btn{min-height:38px}.definitions dd{white-space:pre-line}
@media(max-width:760px){.customer-address-row{grid-template-columns:1fr}.customer-address-row>.field:nth-child(2),.customer-address-row .customer-address-full{grid-column:auto}.customer-editor .customer-form-group>.form-grid{grid-template-columns:1fr}.customer-list-guide .actions{gap:6px}.customer-editor{width:calc(100vw - 20px)}}
.customer-totals{flex:1;min-width:250px;display:flex;align-items:center;gap:8px;max-width:850px}.customer-totals>button:first-child{min-width:0;display:flex;flex-direction:column;gap:4px;align-items:flex-start;text-align:left;flex:1;background:transparent;border:0;padding:6px 10px;cursor:pointer;font:12px/1.4 system-ui;color:var(--muted);border-radius:5px}.customer-totals>button:first-child:hover,.customer-totals>button:first-child:focus-visible{background:var(--soft);color:var(--ink)}.customer-totals strong{font-size:12px;color:var(--ink)}.customer-totals .bi{display:inline}.customer-totals .bi-main{font-size:12px;font-weight:400;display:inline}.customer-totals .bi-sub{display:none}.stats-export{font:12px system-ui;border:1px solid var(--line);border-radius:5px;background:var(--surface);color:var(--ink);padding:9px;cursor:pointer}.customer-stats-dialog{width:min(860px,calc(100vw - 24px));max-width:860px}.customer-stats-dialog .hint{line-height:1.7;margin:12px 0 20px}.customer-stats-table{width:100%;border-collapse:collapse}.customer-stats-table td,.customer-stats-table th{padding:10px 14px;border-bottom:1px solid var(--line);text-align:left}.customer-stats-table td:nth-child(n+3){text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.stats-table-scroll{overflow:auto}.stats-scope{padding:12px;background:var(--bg);border-radius:6px}
@media(min-width:1001px){.work-body[data-page=customers] .table-status{gap:10px}.work-body[data-page=customers] .selection-tools{flex-wrap:wrap;max-width:480px;gap:6px}.work-body[data-page=customers] .selection-tools .btn{padding:6px 8px}.work-body[data-page=customers] .selection-tools .bi-main{font-size:12px}.work-body[data-page=customers] .selection-tools .bi-sub{font-size:10px}.work-body[data-page=customers] .data-footer{flex-shrink:0}}
@media(max-width:1000px){.customer-totals{min-width:0;width:100%;flex-basis:100%;max-width:none}.work-body[data-page=customers] .table-status{flex-wrap:wrap}.customer-stats-dialog .dialog-body{padding:12px}.customer-stats-table td,.customer-stats-table th{padding:8px}.customer-stats-table{font-size:13px}}
.field-table td>.customer-stacked{display:flex;flex-direction:column;gap:6px;white-space:normal;overflow-wrap:anywhere}.field-table .customer-stacked>span{display:block}.field-table td[data-field=leadBeijing]>.customer-stacked,.field-table td[data-field=lastBeijing]>.customer-stacked{font-size:13px}.field-table td[data-field=leadBeijing] .customer-stacked>span,.field-table td[data-field=lastBeijing] .customer-stacked>span{white-space:nowrap;font-size:13px}
.field-table td[data-field=contact] .customer-stacked>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
/* Excel-like customer editing stays inside its original table cell. */
.work-body[data-page=customers] .cell-edit{padding:0;border:0;border-radius:0;min-height:30px;cursor:text;justify-content:flex-start}.work-body[data-page=customers] .cell-edit .edit-hint{display:none}.work-body[data-page=customers] .cell-edit:hover{background:transparent;color:inherit}.work-body[data-page=customers] .cell-edit:focus-visible,.customer-direct-cell:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.customer-direct-cell{display:block;width:100%;min-width:0;max-width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:text;white-space:normal;overflow-wrap:anywhere}.field-table td[data-field=contact] .customer-direct-cell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.field-table td[data-field=leadBeijing] .customer-direct-cell{font-size:13px;white-space:nowrap}.customer-inline-editor{position:static;box-sizing:border-box;width:100%;max-width:100%;margin:0;display:flex;flex-direction:column;gap:4px;min-width:0}.customer-inline-editor input[name=value],.customer-inline-editor select[name=value]{box-sizing:border-box;width:100%;min-width:0;max-width:100%;height:34px;padding:4px 6px;border:1px solid var(--accent);border-radius:1px;outline:none;box-shadow:none;background:var(--surface);color:var(--ink);font:inherit}.customer-inline-editor .inline-key-hint{font-size:10px;color:var(--muted);white-space:normal}.customer-inline-editor .inline-error{font-size:12px;color:#963e2f;white-space:normal;overflow-wrap:anywhere;line-height:1.4}.customer-inline-editor .inline-grade-confirm{display:flex;gap:6px;align-items:flex-start;font-size:12px;white-space:normal;line-height:1.5}.customer-inline-editor [hidden]{display:none!important}.customer-inline-editor .inline-grade-confirm input{flex-shrink:0;width:15px;height:15px}.work-body[data-page=customers] .cell-edit[hidden],.work-body[data-page=customers] .customer-direct-cell[hidden]{display:none!important}.customer-inline-editor .inline-error:empty{display:none}
