/* shared.css: the rules shared-directory.js, shared-notes.js and shared-mail.js need beyond the page's own base classes. Moved here from portal.css; one copy for the TC site and the Master CRM page. Load it after the page's main stylesheet. It uses that stylesheet's colour variables: --white, --ivory, --beige, --ink, --muted, --line, --field, --gold, --bronze, --alert. */
.send-form{max-width:720px;margin:0 0 6px}.send-form textarea{min-height:90px}.send-form .consent{margin:10px 0}.sig-preview{max-width:720px;margin:0 0 10px;padding:10px 12px;overflow-wrap:anywhere;white-space:pre-wrap;background:var(--white);border:1px solid var(--line);border-radius:8px;color:var(--ink);font:14px/1.45 system-ui,sans-serif}.mail-form .c360-group{min-width:0}.mail-partner{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:6px 12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.mail-partner span{overflow-wrap:anywhere}.mail-partner select{margin:0;padding:8px}.mail-files{margin:8px 0;border-top:1px solid var(--line)}.mail-files .consent{margin:0;padding:8px 0;border-bottom:1px solid var(--line)}.mail-files small{display:block;color:var(--muted);font-weight:400;overflow-wrap:anywhere}.mail-ask{margin:0 0 12px;padding:10px 14px;background:var(--white);border:1px solid var(--gold);border-radius:8px;font-weight:600}.mail-ask button{margin:4px 0 4px 8px;padding:7px 12px}.mail-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.mail-actions .secondary{margin:0}@media(max-width:650px){.mail-partner{grid-template-columns:minmax(0,1fr)}}.dir-find{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto auto;gap:0 12px;align-items:end;margin:0 0 6px}.dir-find label{margin:10px 0}.dir-find .consent{align-items:center;padding-bottom:10px}.dir-find button{margin:0 0 10px}.dir-note{margin:12px 0;padding:10px 14px;background:var(--white);border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:8px}.dir-note .secondary{margin:0 0 0 8px;padding:5px 11px;font-size:13px}.dir-list{margin-top:14px;border-top:1px solid var(--line)}.dir-card{padding:14px 0;border-bottom:1px solid var(--line)}.dir-card.archived{color:var(--muted)}
.dir-card p{margin:4px 0;overflow-wrap:anywhere;white-space:pre-wrap}.dir-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;overflow-wrap:anywhere}.dir-head strong{font-size:17px}.dir-head .tag{margin-left:0}.dir-card .assign-actions{margin-top:8px}.dir-card .secondary{margin:0;padding:7px 11px;font-size:13px}.card-form{max-width:820px;margin:14px 0 18px;padding:4px 16px 14px;background:var(--white);border:1px solid var(--gold);border-radius:10px}.card-form .c360-group{background:var(--ivory)}.card-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:0 12px;align-items:end}.card-row label{margin:8px 0}.card-row .secondary,.card-form .c360-group>.secondary{margin:0 0 8px;padding:7px 11px;font-size:13px}.card-form .consent{margin:10px 0}.dir-pick{margin:0 0 4px}.dir-linked{margin:0 0 8px;overflow-wrap:anywhere}.dir-linked .secondary{margin:0 0 0 6px;padding:5px 11px;font-size:13px}.dir-pick-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.dir-pick-row input{flex:1 1 200px;min-width:0;width:auto;margin:0;padding:8px}.dir-pick-row .secondary{margin:0;padding:8px 11px;font-size:13px}.dir-pick .match-list{margin:8px 0}.dir-pick .match{padding:8px 12px}@media(max-width:900px){.dir-find{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}@media(max-width:650px){.dir-find,.card-row{grid-template-columns:minmax(0,1fr)}}.suggest-host{position:relative}.dir-suggest{position:absolute;z-index:30;left:0;right:0;top:100%;margin-top:2px;max-height:300px;overflow:auto;padding:4px;background:var(--white);border:1px solid var(--gold);border-radius:8px;box-shadow:0 10px 24px rgba(27,24,20,.25)}.dir-suggest button{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;width:100%;padding:9px 10px;background:none;border:0;border-bottom:1px solid var(--line);border-radius:0;color:var(--ink);font-weight:500;text-align:left;overflow-wrap:anywhere}
.dir-suggest button:last-child{border-bottom:0}.dir-suggest button:hover,.dir-suggest button.on{background:#f4ecd8}.dir-suggest span{color:var(--muted);font-size:13px}.dir-linked{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}.dir-linked .tag{margin:0;overflow-wrap:anywhere}.dir-linked .secondary{margin:0}.chip-linked{background:#e3f0e4;border-color:#2e6b3e;color:#1f4d2b}.note-card{margin:0 0 10px;padding:10px 14px;background:var(--white);border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:8px}.note-card small{display:block;margin-bottom:4px;color:var(--muted);overflow-wrap:anywhere}.note-card p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.note-card .note-more{margin:4px 0;color:var(--muted);font-size:14px}.note-act{margin-top:8px}.note-act .secondary{margin:0;padding:6px 11px;font-size:13px}.rich{margin:14px 0}.rich-label{display:block;margin-bottom:7px;font-weight:600}.rich-bar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:8px;background:var(--beige);border:1px solid var(--field);border-bottom:0;border-radius:8px 8px 0 0}.rich-b{padding:6px 10px;background:var(--white);border:1px solid var(--field);color:var(--ink);font-size:13px}.rich-b[aria-pressed="true"]{background:var(--ink);color:var(--ivory)}.rich-bar select{width:auto;max-width:100%;margin:0;padding:6px 8px;font-size:13px}.rich-swatches{display:inline-flex;flex-wrap:wrap;gap:3px;align-items:center}.rich-cap{margin-right:2px;color:var(--muted);font-size:12px}.rich-sw{width:22px;height:22px;padding:0;border:1px solid var(--field);border-radius:4px}.rich-link{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;padding:8px;background:var(--white);border:1px solid var(--field);border-bottom:0}.rich-link label{flex:1 1 220px;min-width:0;margin:0}.rich-link button{margin:0;padding:9px 12px}
.rich-edit{min-height:180px;max-height:480px;overflow:auto;padding:12px;background:var(--white);border:1px solid var(--field);border-radius:0 0 8px 8px;overflow-wrap:anywhere}.rich-edit p{margin:0 0 8px}.rich-edit:focus-visible{outline-offset:-2px}.mail-local{margin:10px 0}.mail-local input{padding:8px}.mail-local-list{margin:6px 0;padding:0;list-style:none;border-top:1px solid var(--line)}.mail-local-list li{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;padding:8px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.mail-local-list small{color:var(--muted)}.mail-local-list .secondary{margin:0;padding:6px 11px;font-size:13px}.dir-group{display:flex;align-items:center;gap:10px;margin:22px 0 0;font-size:18px}@media(min-width:901px){.dir-find.grouped{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr) auto auto}}
/* shared-fields.js: the small line under a ZIP field. */
.sf-note{display:block;margin:-8px 0 12px;font-size:13px;font-weight:500}
/* P-170 (LKP-061): the signature picture on My signature. */
.sig-pic-img{display:block;max-width:100%;height:auto;margin:8px 0;border:1px solid rgba(0,0,0,.15);border-radius:6px}#sig-pic-form{margin-top:18px}
/* P-225 (shared-client-overview.js): the overview of the client file. Uses the page's colour variables. */
.c360-overview{margin:0 0 18px}.ov-top{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 16px;align-items:center;margin:0 0 14px;padding:12px 16px;background:var(--white);border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:10px;color:var(--ink)}.ov-top h3{margin:0 0 4px;color:var(--ink)}.ov-avatar{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--beige);border:2px solid var(--gold);color:var(--ink);font-weight:700;font-size:20px}.ov-bar{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px}.ov-btn{display:inline-block;margin:0;padding:8px 13px;background:var(--white);border:1px solid var(--gold);border-radius:8px;color:var(--ink);font-size:14px;font-weight:600;text-decoration:none;cursor:pointer}.ov-btn.off{border-color:var(--line);color:var(--muted);cursor:default}.ov-btn:disabled{opacity:.7}.ov-facts{display:flex;flex-wrap:wrap;gap:4px 24px;margin:0}.ov-facts div{min-width:0}.ov-facts dt{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.ov-facts dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.ov-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.ov-card{margin:0;padding:12px 16px;background:var(--white);border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:10px;min-width:0}.ov-card.wide{grid-column:1/-1}.ov-card h4{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 10px;margin:0 0 8px;font-size:16px}.ov-edit{margin:0;padding:3px 10px;background:none;border:1px solid var(--line);border-radius:6px;color:var(--ink);font-size:13px;font-weight:600;cursor:pointer}.ov-big{margin:0 0 4px;font-size:18px;font-weight:700}.ov-rows{margin:0}.ov-rows div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;padding:6px 0;border-bottom:1px solid var(--line)}.ov-rows dt{color:var(--muted);font-size:14px}.ov-rows dd{margin:0;font-weight:600;overflow-wrap:anywhere}.ov-list{margin:0;padding:0;list-style:none}.ov-list li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:4px 10px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}.ov-list small{color:var(--muted)}
.ov-badge{display:inline-block;padding:2px 9px;border-radius:999px;border:1px solid var(--line);background:var(--beige);color:var(--ink);font-size:12px;font-weight:700;white-space:nowrap}.ov-badge.late{background:#fbe3e0;border-color:#a8321f;color:#7a1f10}.ov-badge.soon{background:#fdf3d6;border-color:var(--bronze);color:#5c4410}.ov-badge.work{background:#e4eefb;border-color:#2c5d9b;color:#1c3f6e}.ov-badge.ok{background:#e3f0e4;border-color:#2e6b3e;color:#1f4d2b}.ov-badge.idle{background:var(--beige)}
.ov-timeline,.ov-steps{display:flex;gap:0;margin:0;padding:0 0 4px;list-style:none;overflow-x:auto}.ov-timeline li,.ov-steps li{position:relative;display:flex;flex-direction:column;align-items:center;flex:1 0 108px;min-width:108px;padding:0 6px;text-align:center}.ov-timeline li::before,.ov-steps li::before{content:"";position:absolute;top:42px;left:-50%;right:50%;height:2px;background:var(--line)}.ov-steps li::before{top:15px}.ov-timeline li:first-child::before,.ov-steps li:first-child::before{display:none}.ov-timeline li.past::before,.ov-steps li.done::before{background:var(--gold)}.ov-timeline time{display:flex;flex-direction:column;height:36px;line-height:1.15}.ov-timeline time small,.ov-timeline li small,.ov-steps li small{color:var(--muted);font-size:12px}.ov-dot{position:relative;z-index:1;width:14px;height:14px;margin:6px 0 6px;border-radius:50%;background:var(--white);border:2px solid var(--line)}.ov-timeline li.past .ov-dot{background:var(--gold);border-color:var(--bronze)}.ov-timeline li.next .ov-dot{border-color:var(--gold);box-shadow:0 0 0 3px #f4ecd8}.ov-timeline li b,.ov-steps li b{font-size:13px;overflow-wrap:anywhere}.ov-num{position:relative;z-index:1;display:grid;place-items:center;width:30px;height:30px;margin:0 0 4px;border-radius:50%;background:var(--white);border:2px solid var(--line);font-weight:700;font-size:13px}.ov-steps li.done .ov-num{background:var(--gold);border-color:var(--bronze)}.ov-steps li.now .ov-num{box-shadow:0 0 0 3px #f4ecd8}.ov-steps em{margin:2px 0;padding:1px 7px;border-radius:999px;background:#f4ecd8;color:var(--ink);font-size:11px;font-style:normal;font-weight:700}
@media(max-width:650px){.ov-top{grid-template-columns:minmax(0,1fr)}.ov-rows div{grid-template-columns:minmax(0,1fr)}}

/* P-226 (shared-client-properties.js): Interested Properties and Transaction workspace. Uses the page's colour variables. */
.pp-wrap{margin:0 0 18px}.pp-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 14px;margin:0 0 12px}.pp-bar h4{margin:0}.pp-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}.pp-actions .ov-btn,.pp-actions .ov-edit{padding:6px 10px}.pp-actions .ov-edit{display:inline-block;text-decoration:none}.pp-actions [aria-pressed="true"]{border-color:var(--gold);background:#fdf3d6}
.pp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;margin:0 0 14px}.pp-card{display:flex;flex-direction:column;min-width:0;background:var(--white);border:1px solid var(--line);border-top:3px solid var(--line);border-radius:10px;overflow:hidden}.pp-card.primary{border-top-color:var(--gold)}.pp-card.on{box-shadow:0 0 0 3px #f4ecd8;border-color:var(--gold)}
.pp-photo{position:relative;display:grid;place-items:center;height:140px;background:var(--beige)}.pp-photo img{width:100%;height:140px;object-fit:cover;display:block}.pp-ph{font-size:44px;font-weight:700;color:var(--muted)}.pp-flag{position:absolute;top:8px;left:8px}.pp-body{display:flex;flex-direction:column;gap:6px;padding:10px 12px 12px}.pp-body p{margin:0}.pp-addr{font-weight:600;overflow-wrap:anywhere}.pp-chips{display:flex;flex-wrap:wrap;gap:4px 6px}
.pp-miles{display:flex;gap:4px;margin:0;padding:0;list-style:none}.pp-miles li{flex:1 1 0;min-width:0;padding:3px 4px;border-top:3px solid var(--line);font-size:11px;line-height:1.2;color:var(--muted);text-align:center}.pp-miles li.done{border-top-color:var(--gold);color:var(--ink)}.pp-miles li.now{border-top-color:var(--bronze);color:var(--ink);font-weight:700}.pp-miles.big{margin:0 0 12px}.pp-miles.big li{font-size:13px;padding:6px}
.pp-cmp{display:inline-flex;align-items:center;gap:4px;margin:0;font-size:13px}.pp-cmp input{width:auto;margin:0}.pp-compare{overflow-x:auto;margin:0 0 14px}.pp-compare table{width:100%;border-collapse:collapse;background:var(--white)}.pp-compare th,.pp-compare td{padding:6px 10px;border:1px solid var(--line);text-align:left;vertical-align:top;overflow-wrap:anywhere}.pp-compare thead th{background:var(--beige)}
.pp-set{margin:0 0 14px;padding:10px 14px 14px;background:var(--white);border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:10px;min-width:0}.pp-set legend{padding:0 6px;font-weight:700}.pp-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}.pp-tabs .ov-edit.on{background:var(--beige);border-color:var(--gold)}.pp-pane[hidden]{display:none}
.pp-trow{margin:0 0 12px;padding:10px 0;border-bottom:1px solid var(--line)}.pp-assigned li{grid-template-columns:minmax(0,1fr) auto}.pp-team h5{margin:10px 0 6px}.pp-record{margin:0 0 14px}
@media (max-width:480px){.pp-grid{grid-template-columns:minmax(0,1fr)}.pp-bar{align-items:flex-start}}
/* P-260: Client stage is one small line; the milestones are one line with no scroll bar; the blocks sit close together. */
.c360-stage.c360-stage-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0 0 10px;padding:6px 12px;background:var(--white);border:1px solid var(--line);border-radius:10px;font-size:13px}
.c360-stage.c360-stage-line label{display:flex;flex:0 1 auto;align-items:center;gap:8px;max-width:none;margin:0;font-size:13px;font-weight:600}
.c360-stage.c360-stage-line select,.c360-stage.c360-stage-line button{width:auto;margin:0;padding:4px 10px;font-size:13px}
.c360-stage.c360-stage-line .muted{padding:0;font-size:12px}
.c360-overview{margin:0 0 10px}.c360-overview.ovp-manager .ov-top{margin:0}
.c360-overview.ovp-milestones .ov-steps{overflow:visible;flex-wrap:nowrap;padding:0}
.c360-overview.ovp-milestones .ov-steps li{flex:1 1 0;min-width:0;padding:0 2px}
.c360-overview.ovp-milestones .ov-steps li b{font-size:11px;line-height:1.15}
.c360-overview.ovp-milestones .ov-steps li small,.c360-overview.ovp-milestones .ov-steps em{font-size:10px}
.c360-overview.ovp-milestones .ov-num{width:24px;height:24px;font-size:11px}
.c360-overview.ovp-milestones .ov-steps li::before{top:11px}
@media(max-width:650px){.c360-overview.ovp-milestones .ov-steps{flex-wrap:wrap;row-gap:8px}.c360-overview.ovp-milestones .ov-steps li{flex:1 1 72px}}
/* P-261: the quick communication card (pop-up). */
.ov-acts{display:inline-flex;flex-wrap:wrap;gap:6px}
.cc-dialog{width:calc(100% - 32px);max-width:620px;max-height:calc(100vh - 32px);overflow:auto;padding:20px;background:var(--ivory,#fbf7ee);border:1px solid var(--gold);border-radius:14px;color:var(--ink)}
.cc-dialog::backdrop{background:rgba(14,15,16,.55)}
.cc-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.cc-head h3{margin:0}
.cc-chips{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.cc-chip{display:inline-flex;align-items:center;gap:6px;margin:0;padding:6px 12px;background:var(--white);border:1px solid var(--line);border-radius:999px;font-weight:600;cursor:pointer}
.cc-fields{margin:0;padding:0;border:0;min-width:0}.cc-fields[disabled]{opacity:.55}
.cc-gate{margin:10px 0;padding:10px 12px;background:#f4ecd8;border:1px solid var(--gold);border-radius:10px}.cc-gate p{margin:0 0 8px}
.cc-co{margin:8px 0}
.cc-form textarea{width:100%;min-height:140px}
/* P-262: the timeline is a smaller bar; the document state, last touch and the one-line internal message. */
.ov-card.ov-slim{padding:8px 14px}.ov-slim h4{margin:0 0 4px;font-size:15px}
.ov-slim .ov-timeline li{flex:1 0 84px;min-width:84px}.ov-slim .ov-timeline li::before{top:30px}.ov-slim .ov-timeline time{height:26px;font-size:12px}.ov-slim .ov-timeline li b{font-size:12px}.ov-slim .ov-timeline li small{font-size:11px}.ov-slim .ov-dot{width:11px;height:11px;margin:3px 0}
.ov-touch{margin:0 0 6px;font-size:13px}
.ov-quick{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:6px 0 0}.ov-quick-line{flex:1 1 280px;display:flex;align-items:center;gap:8px;margin:0}.ov-quick-label{font-size:12px;color:var(--muted);white-space:nowrap}.ov-quick input{flex:1;min-width:0;margin:0;padding:5px 10px;font-size:13px}
.ov-quick-to{flex:1 0 100%;display:flex;flex-wrap:wrap;gap:4px 14px}.ov-quick-to[hidden]{display:none}.ov-quick [role=status]{flex:1 0 100%;margin:0;font-size:12px}
/* P-264: the consent card and the STOPPED block. */
.cc-read{margin:0 0 10px;padding:8px 12px;background:#f4ecd8;border:1px solid var(--gold);border-radius:10px}.cc-read summary{cursor:pointer;font-weight:700}.cc-read ol{margin:8px 0 0 18px;padding:0}
.c360-consent{margin:0 0 14px}.c360-consent .consent small{display:block;color:var(--muted)}
.pipeline-stopped{margin:18px 0 0;padding:12px 16px;background:var(--white);border:1px solid var(--line);border-top:3px solid var(--ink);border-radius:10px}.pipeline-stopped h3{margin:0 0 4px}
/* P-263: checklists on the identity and contact cards. */
.c360-pick{margin:0 0 10px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;min-width:0}.c360-pick legend{font-weight:600;padding:0 6px}
.c360-pick-row{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center}.c360-pick-other{display:inline-flex;align-items:center;gap:6px;margin:0}.c360-pick-other input{width:180px;margin:0}
.c360-old{margin:6px 0 0;font-size:13px}.c360-old .secondary{margin:0 4px;padding:2px 8px;font-size:12px}
.c360-p263{border:0;padding:0;margin:0 0 10px}.c360-p263-linked{margin-top:6px}
/* P-265: the Tasks box and the document tick. */
.task-box{margin:8px 0}.task-row{margin:0 0 10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--white)}.task-row.task-q{border-color:var(--gold);background:#f4ecd8}
.task-acts{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:6px 0 0}.task-acts button{margin:0;padding:4px 10px;font-size:13px}.task-assign{display:inline-flex;align-items:center;gap:6px;margin:0}.task-assign select{width:auto;margin:0;padding:3px 6px;font-size:13px}
.task-archive{margin:10px 0 0}.task-archive summary{cursor:pointer;font-weight:600}
.ov-doc-tick{display:flex;align-items:center;gap:8px;margin:0;font-weight:400;cursor:pointer}.ov-doc-tick input{margin:0}
.ov-doc-done .ov-doc-tick span,.ov-doc-done small{color:var(--muted)}.ov-doc-done .ov-doc-tick span{text-decoration:line-through}.ov-doc-uploaded .ov-doc-tick{opacity:.75}
/* P-271: the tick on a checklist line, ID front and back in one line, the lender-review mount. */
.check-row .doc-tick{display:inline-flex;align-items:center;margin:0 8px 0 0}.check-row .doc-tick input{margin:0;width:18px;height:18px}
.check-row.done .check-label{color:var(--muted);text-decoration:line-through}.check-row.done{opacity:.8}
.check-row.id-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px}.check-row.id-row .consent{margin:0}.check-row.id-row .id-state{margin-left:auto}
.lender-review[hidden]{display:none}
/* P-267: the property photo at the top of Required Transaction Data. */
.c360-overview .ov-photo{margin:0 0 10px}
.c360-overview .ov-photo img{display:block;width:100%;max-height:200px;object-fit:cover;border-radius:8px}
.c360-overview .ov-photo figcaption{margin-top:4px;font-size:13px}

/* P-272: the lender review block. */
.lender-review{margin:14px 0;padding:10px 14px;background:var(--white);border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:10px}.lender-review .group-title{margin:0 0 6px}
.lr-line{display:flex;flex-wrap:wrap;gap:4px 22px;font-size:14px}.lr-line strong{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em;margin-right:4px}
.lr-actions{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 0}.lr-actions button{margin:0}
.lr-ready{background:#e3f1e3;border-color:#2e6b3e;color:#1d4a2a}.lr-next{margin:0 0 10px}.lr-card{margin:8px 0}.lr-view,.lr-read,.lr-check{margin:10px 0 0;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--ivory,#fbf7ee)}
/* P-268: the Intake tab. */
.c360-p268 .c360-p268-when{grid-column:1/-1}
.c360-p268 .c360-p268-when[hidden],.c360-p268 .c360-p268-script[hidden]{display:none}
.c360-p268-types .c360-pick-row{display:flex;flex-wrap:wrap;gap:8px 16px}
.c360-p268 .c360-p268-miles{font-weight:600}

/* P-266: campaigns with flows. */
.camp-dialog{max-width:760px}.camp-row{align-items:flex-start}.camp-row small{display:block;color:var(--muted)}
.camp-enrol{margin:10px 0;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--white)}.camp-enrol summary{cursor:pointer}
.camp-steps{margin:8px 0;padding:0;list-style:none}.camp-step{margin:0 0 8px;padding:6px 8px;border-left:3px solid var(--line)}.camp-step.is-sent{border-color:#2e6b3e}.camp-step.is-drafted{border-color:var(--gold)}.camp-step.is-blocked,.camp-step.is-missed{border-color:#b3261e}.camp-step.is-skipped{opacity:.7}
.camp-text{margin:4px 0 0;font-size:14px;color:var(--ink)}.camp-edit{margin:8px 0 0;padding:8px 10px;background:#f4ecd8;border-radius:8px}.camp-acts{margin:6px 0 0}
.camp-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 12px}.camp-tabs button{margin:0}
.camp-steprow{display:grid;grid-template-columns:90px 130px 1fr;gap:6px 10px;padding:8px 10px;margin:0 0 8px;border:1px solid var(--line);border-radius:10px;background:var(--white)}.camp-steprow .wide{grid-column:1/-1}.camp-tpl.off{opacity:.65}
@media(max-width:650px){.camp-steprow{grid-template-columns:minmax(0,1fr)}}
/* P-282 (12 Oct 2026): checklist rows line up (the tick added in P-265 made a sixth item in a five-column row), Save buttons fit, the document progress bar, and the ID row's date and note. */
.check-row:has(.doc-tick){grid-template-columns:30px minmax(130px,1.3fr) 128px 148px minmax(110px,1.6fr) auto}
.check-row button{justify-self:start;width:auto;padding:6px 14px;font-size:13px;line-height:1.2}
.check-row.id-row .id-state{margin-left:0}
.check-row.id-row .id-date{flex:0 0 150px}
.check-row.id-row .id-note{flex:1 1 200px;min-width:160px}
.check-row.id-row button{align-self:flex-end}
progress.doc-progress{display:block;width:100%;max-width:520px;height:10px;margin:0 0 12px;accent-color:#b8913a}
@media(max-width:1100px){.check-row:has(.doc-tick){grid-template-columns:30px 1fr 1fr}.check-row:has(.doc-tick) .check-label{grid-column:2/-1}}

/* P-282 item 11: the Timeline uses the Milestones look: one line, small circles, the ring on the step the file is working on. */
.c360-overview.ovp-timeline .ov-steps{overflow:visible;flex-wrap:nowrap;padding:0 0 30px}
.c360-overview.ovp-timeline .ov-steps li{flex:1 1 0;min-width:0;padding:0 1px}
.c360-overview.ovp-timeline .ov-steps li::before{top:9px}
.c360-overview.ovp-timeline .ov-stages .ov-num{width:18px;height:18px;margin:0;border-width:2px}
.c360-overview.ovp-timeline .ov-stages li.now .ov-num{background:#d98a1f;border-color:var(--bronze);box-shadow:0 0 0 3px #f4ecd8}
.c360-overview.ovp-timeline .ov-stages li.now b{position:absolute;top:24px;left:50%;transform:translateX(-50%);padding:1px 9px;border-radius:999px;background:#f4ecd8;font-size:12px;white-space:nowrap}
.c360-overview.ovp-timeline .ov-stages li.now small{position:absolute;top:44px;left:50%;transform:translateX(-50%);font-size:11px;white-space:nowrap}
.c360-overview.ovp-timeline .ov-stages li:first-child.now b,.c360-overview.ovp-timeline .ov-stages li:first-child.now small{left:0;transform:none}
.c360-overview.ovp-timeline .ov-stages li:last-child.now b,.c360-overview.ovp-timeline .ov-stages li:last-child.now small{left:auto;right:0;transform:none}
.ov-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ov-dates{margin:8px 0 0;font-size:12px}
.c360-overview.ovp-tracker{margin:0 0 14px;padding:10px 12px;background:var(--white);border:1px solid var(--gold);border-radius:10px}
/* Milestones: the "now" ring is the same gold/orange dot as the Timeline */
.c360-overview.ovp-milestones .ov-steps li.now .ov-num{background:#d98a1f;border-color:var(--bronze)}

/* P-282 items 8, 9, 10: the head bar is two lines with a gold border, the stage control sits in it, and the links bar has a paste box for each link. */
.client-head.c360-headbar{padding:8px 14px;border:1px solid var(--gold);border-top:3px solid var(--gold)}
.c360-headbar .toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px}
.c360-headbar .head-id{flex:1 1 360px;min-width:0}
.c360-headbar .eyebrow{margin:0}
.c360-headbar .head-name{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}
.c360-headbar .head-name h2{margin:0;font-size:20px;line-height:1.2}
.c360-headbar .head-name .stage{padding:2px 12px;font-size:14px}
.c360-headbar .c360-stage.c360-stage-line{flex:0 1 auto;margin:0;padding:0;border:0;background:none}
.c360-headbar .actions{flex:0 0 auto;display:flex;flex-wrap:wrap;gap:6px;margin-left:auto}
.c360-headbar .actions button{margin:0;padding:6px 12px;font-size:13px}
.head-chip{display:inline-block;padding:2px 10px;background:var(--white);border:1px solid var(--line);border-radius:999px;font:600 12px system-ui,sans-serif;vertical-align:middle}
.head-chip.ok{background:#e3f0e4;border-color:#2e6b3e;color:#1f4d2b}
.head-chip.warn{background:#f6ddd6;border-color:var(--alert);color:var(--alert)}
.ov-linkform{display:flex;flex-wrap:wrap;align-items:flex-end;gap:6px 8px;margin:0;padding:6px 10px;background:var(--white);border:1px solid var(--line);border-radius:10px}
.ov-linkform label{display:flex;flex-direction:column;gap:2px;margin:0;font-size:12px;color:var(--muted)}
.ov-linkform input{width:210px;max-width:100%;margin:0;padding:5px 8px;font-size:13px}
.ov-linkform .ov-edit,.ov-linkform .ov-btn{margin:0;padding:6px 12px;font-size:13px}
.ov-linkform small{flex:1 0 100%;min-height:0;margin:0}

/* P-283 (12 Oct 2026): the Documents card of the file overview. The tick was drawn as a 394 px wide box (the page's general rule for inputs reached it), so the checkboxes drifted and the names looked centred. One layout for every row: tick at the left, the name left-aligned beside it, the date under the name, the status pill at the right edge. */
.ov-list li.ov-doc{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:2px 10px}
.ov-doc .ov-doc-tick{grid-column:1;grid-row:1;display:flex;align-items:flex-start;justify-content:flex-start;gap:8px;min-width:0;text-align:left}
.ov-doc .ov-doc-tick input[type=checkbox]{flex:0 0 18px;width:18px;height:18px;min-width:18px;margin:2px 0 0;padding:0;display:inline-block}
.ov-doc .ov-doc-tick span{flex:1 1 auto;min-width:0;text-align:left;overflow-wrap:anywhere}
.ov-doc>small{grid-column:1;grid-row:2;padding-left:26px;text-align:left}
.ov-doc>small:empty{display:none}
.ov-doc>.ov-badge{grid-column:2;grid-row:1;justify-self:end;align-self:start}
progress.doc-progress{appearance:none;-webkit-appearance:none;height:8px;border:0;border-radius:99px;background:#eadfc4;overflow:hidden}
progress.doc-progress::-webkit-progress-bar{background:#eadfc4;border-radius:99px}
progress.doc-progress::-webkit-progress-value{background:#c9a24d;border-radius:99px}
progress.doc-progress::-moz-progress-bar{background:#c9a24d;border-radius:99px}

/* P-304 phase 1: the conversation and the sent-message bubble (both sites; look only) */
.conv{border:1px solid var(--line,#e6d9b8);border-radius:10px;padding:8px 12px;margin:0 0 14px}
.conv>summary{cursor:pointer;font-size:15px}
.conv-list{display:grid;gap:8px;margin:10px 0;max-height:420px;overflow:auto}
.conv-bubble{border:1px solid #e3e9ee;border-radius:12px;padding:8px 12px;background:#fff;max-width:92%}
.conv-bubble.mine{margin-left:auto;background:#f4f7fa}
.conv-bubble p{margin:4px 0 0}
.conv-bubble.sent-msg,.card.post.sent-msg{border-left:4px solid #b8923a;background:#fffdf6}
.conv-tag{color:#14324a}
.conv-tag.conv-bad{color:#b00020}

/* P-304 phase 2: the one compose box (look only) */
.mail-from{margin:0 0 8px}
.rich-emoji{display:flex;flex-wrap:wrap;gap:4px;padding:6px 0}
.rich-emoji[hidden]{display:none}
.rich-emoji .rich-b{font-size:18px;line-height:1;min-width:34px}
.rich-edit blockquote{margin:6px 0 6px 12px;padding-left:10px;border-left:3px solid #b8923a}
.mail-actions button[disabled]{opacity:.6}
.camp-rowwrap{display:flex;gap:8px;align-items:flex-start;margin:0 0 6px}.camp-rowwrap .camp-row{flex:1}.camp-pvbtn{margin:0;white-space:nowrap}.linklike.camp-tplname{font-weight:700;text-decoration:underline;background:none;border:0;padding:0;color:inherit;cursor:pointer;text-align:left}.camp-pv{margin:0 0 12px}.camp-pv-body{white-space:pre-wrap;font:inherit;margin:4px 0 0;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--white)}.c360-dnc{margin:0 0 10px}.c360-dnc-why{margin:4px 0 8px 18px}
/* P-301a: campaign command center */
.camp-tiles{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 12px}.camp-tile{display:flex;flex-direction:column;gap:2px;min-width:110px;padding:8px 12px;margin:0;border:1px solid var(--line);border-radius:10px;background:var(--white);color:inherit;text-align:left;font:inherit}.camp-tile b{font-size:1.2rem}.camp-tile span{font-size:.85rem;opacity:.8}button.camp-tile{cursor:pointer}button.camp-tile:hover,button.camp-tile:focus-visible{outline:2px solid currentColor}
.camp-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px 12px;margin:0 0 8px}.camp-check{display:flex;gap:6px;align-items:center}.camp-pick{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;cursor:pointer}.camp-pick.off{opacity:.6;cursor:default}.camp-go{position:sticky;bottom:8px}.camp-result{border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin:0 0 12px;background:var(--white)}
/* P-282 (12 Oct 2026): checklist rows line up (the tick added in P-265 made a sixth item in a five-column row), Save buttons fit, the document progress bar, and the ID row's date and note. */
.check-row:has(.doc-tick){grid-template-columns:30px minmax(130px,1.3fr) 128px 148px minmax(110px,1.6fr) auto}
.check-row button{justify-self:start;width:auto;padding:6px 14px;font-size:13px;line-height:1.2}
.check-row.id-row .id-state{margin-left:0}
.check-row.id-row .id-date{flex:0 0 150px}
.check-row.id-row .id-note{flex:1 1 200px;min-width:160px}
.check-row.id-row button{align-self:flex-end}
progress.doc-progress{display:block;width:100%;max-width:520px;height:10px;margin:0 0 12px;accent-color:#b8913a}
@media(max-width:1100px){.check-row:has(.doc-tick){grid-template-columns:30px 1fr 1fr}.check-row:has(.doc-tick) .check-label{grid-column:2/-1}}

/* P-282 item 11: the Timeline uses the Milestones look: one line, small circles, the ring on the step the file is working on. */
.c360-overview.ovp-timeline .ov-steps{overflow:visible;flex-wrap:nowrap;padding:0 0 30px}
.c360-overview.ovp-timeline .ov-steps li{flex:1 1 0;min-width:0;padding:0 1px}
.c360-overview.ovp-timeline .ov-steps li::before{top:9px}
.c360-overview.ovp-timeline .ov-stages .ov-num{width:18px;height:18px;margin:0;border-width:2px}
.c360-overview.ovp-timeline .ov-stages li.now .ov-num{background:#d98a1f;border-color:var(--bronze);box-shadow:0 0 0 3px #f4ecd8}
.c360-overview.ovp-timeline .ov-stages li.now b{position:absolute;top:24px;left:50%;transform:translateX(-50%);padding:1px 9px;border-radius:999px;background:#f4ecd8;font-size:12px;white-space:nowrap}
.c360-overview.ovp-timeline .ov-stages li.now small{position:absolute;top:44px;left:50%;transform:translateX(-50%);font-size:11px;white-space:nowrap}
.c360-overview.ovp-timeline .ov-stages li:first-child.now b,.c360-overview.ovp-timeline .ov-stages li:first-child.now small{left:0;transform:none}
.c360-overview.ovp-timeline .ov-stages li:last-child.now b,.c360-overview.ovp-timeline .ov-stages li:last-child.now small{left:auto;right:0;transform:none}
.ov-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ov-dates{margin:8px 0 0;font-size:12px}
.c360-overview.ovp-tracker{margin:0 0 14px;padding:10px 12px;background:var(--white);border:1px solid var(--gold);border-radius:10px}
/* Milestones: the "now" ring is the same gold/orange dot as the Timeline */
.c360-overview.ovp-milestones .ov-steps li.now .ov-num{background:#d98a1f;border-color:var(--bronze)}

/* P-282 items 8, 9, 10: the head bar is two lines with a gold border, the stage control sits in it, and the links bar has a paste box for each link. */
.client-head.c360-headbar{padding:8px 14px;border:1px solid var(--gold);border-top:3px solid var(--gold)}
.c360-headbar .toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px}
.c360-headbar .head-id{flex:1 1 360px;min-width:0}
.c360-headbar .eyebrow{margin:0}
.c360-headbar .head-name{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}
.c360-headbar .head-name h2{margin:0;font-size:20px;line-height:1.2}
.c360-headbar .head-name .stage{padding:2px 12px;font-size:14px}
.c360-headbar .c360-stage.c360-stage-line{flex:0 1 auto;margin:0;padding:0;border:0;background:none}
.c360-headbar .actions{flex:0 0 auto;display:flex;flex-wrap:wrap;gap:6px;margin-left:auto}
.c360-headbar .actions button{margin:0;padding:6px 12px;font-size:13px}
.head-chip{display:inline-block;padding:2px 10px;background:var(--white);border:1px solid var(--line);border-radius:999px;font:600 12px system-ui,sans-serif;vertical-align:middle}
.head-chip.ok{background:#e3f0e4;border-color:#2e6b3e;color:#1f4d2b}
.head-chip.warn{background:#f6ddd6;border-color:var(--alert);color:var(--alert)}
.ov-linkform{display:flex;flex-wrap:wrap;align-items:flex-end;gap:6px 8px;margin:0;padding:6px 10px;background:var(--white);border:1px solid var(--line);border-radius:10px}
.ov-linkform label{display:flex;flex-direction:column;gap:2px;margin:0;font-size:12px;color:var(--muted)}
.ov-linkform input{width:210px;max-width:100%;margin:0;padding:5px 8px;font-size:13px}
.ov-linkform .ov-edit,.ov-linkform .ov-btn{margin:0;padding:6px 12px;font-size:13px}
.ov-linkform small{flex:1 0 100%;min-height:0;margin:0}

/* P-283 (12 Oct 2026): the Documents card of the file overview. The tick was drawn as a 394 px wide box (the page's general rule for inputs reached it), so the checkboxes drifted and the names looked centred. One layout for every row: tick at the left, the name left-aligned beside it, the date under the name, the status pill at the right edge. */
.ov-list li.ov-doc{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:2px 10px}
.ov-doc .ov-doc-tick{grid-column:1;grid-row:1;display:flex;align-items:flex-start;justify-content:flex-start;gap:8px;min-width:0;text-align:left}
.ov-doc .ov-doc-tick input[type=checkbox]{flex:0 0 18px;width:18px;height:18px;min-width:18px;margin:2px 0 0;padding:0;display:inline-block}
.ov-doc .ov-doc-tick span{flex:1 1 auto;min-width:0;text-align:left;overflow-wrap:anywhere}
.ov-doc>small{grid-column:1;grid-row:2;padding-left:26px;text-align:left}
.ov-doc>small:empty{display:none}
.ov-doc>.ov-badge{grid-column:2;grid-row:1;justify-self:end;align-self:start}
progress.doc-progress{appearance:none;-webkit-appearance:none;height:8px;border:0;border-radius:99px;background:#eadfc4;overflow:hidden}
progress.doc-progress::-webkit-progress-bar{background:#eadfc4;border-radius:99px}
progress.doc-progress::-webkit-progress-value{background:#c9a24d;border-radius:99px}
progress.doc-progress::-moz-progress-bar{background:#c9a24d;border-radius:99px}

/* P-304 phase 1: the conversation and the sent-message bubble (both sites; look only) */
.conv{border:1px solid var(--line,#e6d9b8);border-radius:10px;padding:8px 12px;margin:0 0 14px}
.conv>summary{cursor:pointer;font-size:15px}
.conv-list{display:grid;gap:8px;margin:10px 0;max-height:420px;overflow:auto}
.conv-bubble{border:1px solid #e3e9ee;border-radius:12px;padding:8px 12px;background:#fff;max-width:92%}
.conv-bubble.mine{margin-left:auto;background:#f4f7fa}
.conv-bubble p{margin:4px 0 0}
.conv-bubble.sent-msg,.card.post.sent-msg{border-left:4px solid #b8923a;background:#fffdf6}
.conv-tag{color:#14324a}
.conv-tag.conv-bad{color:#b00020}

/* P-304 phase 2: the one compose box (look only) */
.mail-from{margin:0 0 8px}
.rich-emoji{display:flex;flex-wrap:wrap;gap:4px;padding:6px 0}
.rich-emoji[hidden]{display:none}
.rich-emoji .rich-b{font-size:18px;line-height:1;min-width:34px}
.rich-edit blockquote{margin:6px 0 6px 12px;padding-left:10px;border-left:3px solid #b8923a}
.mail-actions button[disabled]{opacity:.6}
/* B2 P-304e: the client card's conversation (sides by team) and the board strip on the Transaction Tracker */
.lkp-board-alert{background:#1d1a15;color:#f3ead6;border:1px solid #b8955a;border-radius:10px;padding:8px 12px;margin:0 0 12px}
.lkp-board-alert button{margin-left:8px}
.conv-bubble.side-ours{margin-left:auto;margin-right:0;background:#1d1a15;color:#f3ead6;border-color:#1d1a15}
.conv-bubble.side-ours small{color:#cfc4ab}
.conv-bubble.side-ours .conv-tag{color:#e7bd6a}
.conv-bubble.side-ours.sent-msg{background:#1d1a15;border-left:4px solid #b8955a}
.conv-bubble.side-out{margin-right:auto;margin-left:0;background:#fffdf8;border-color:#1d1a15}
/* B3 P-304f: the checklist link on a board message */
#hub-feed .b-linkchip{display:inline-block;margin:4px 6px 0 0;border:1px dashed #b8955a;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600;background:transparent}
#hub-feed .side-ours .b-linkchip{color:#f3ead6}
