/* ContractNearMe — Consumer (homeowner) portal.
   Reuses the shared --cnm-* tokens + .cnm-* components from admin.css.
   This file adds the consumer marketing/app shell + page styles, scoped under .cnm-cz. */

.cnm-cz { min-height: 100vh; background: var(--cnm-slate-50); display: flex; flex-direction: column; font-family: var(--cnm-font-sans); color: var(--cnm-slate-900); }

/* ── Header ─────────────────────────────────────────────── */
.cnm-cz .ccx-header { position: sticky; top: 0; z-index: 20; background: #fff; border-bottom: 1px solid var(--cnm-slate-200); }
.cnm-cz .ccx-header-in { max-width: 1080px; margin: 0 auto; padding: 12px 20px; display: flex; align-items: center; gap: 18px; }
.cnm-cz .ccx-brand { display: flex; align-items: center; gap: 9px; text-decoration: none; color: inherit; }
.cnm-cz .ccx-brand .sq { width: 30px; height: 30px; border-radius: 8px; background: linear-gradient(135deg, var(--cnm-brand-500), var(--cnm-brand-700)); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.cnm-cz .ccx-brand .nm { font-weight: 800; font-size: 16px; letter-spacing: -.01em; }
.cnm-cz .ccx-actions { margin-left: auto; display: flex; align-items: center; gap: 14px; }
.cnm-cz .ccx-login { font-size: 14px; font-weight: 600; color: var(--cnm-slate-700); text-decoration: none; }
.cnm-cz .ccx-login:hover { color: var(--cnm-brand-700); }
.cnm-cz .ccx-nav { display: flex; align-items: center; gap: 22px; margin-left: 10px; }
.cnm-cz .ccx-nav a { font-size: 14px; font-weight: 600; color: var(--cnm-slate-600); text-decoration: none; }
.cnm-cz .ccx-nav a:hover { color: var(--cnm-brand-700); }
.cnm-cz .ccx-footer .ccx-foot-grid { max-width: 1080px; margin: 0 auto; padding: 34px 20px 22px; display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 28px; }
.cnm-cz .ccx-foot-brand .brand { display: inline-flex; align-items: center; gap: 7px; font-weight: 800; font-size: 15px; color: var(--cnm-slate-800); }
.cnm-cz .ccx-foot-brand p { font-size: 13.5px; color: var(--cnm-slate-600); line-height: 1.55; max-width: 280px; margin: 12px 0 0; }
.cnm-cz .ccx-foot-col h4 { font-size: 13px; font-weight: 700; color: var(--cnm-slate-800); margin: 0 0 10px; }
.cnm-cz .ccx-foot-col a { display: block; font-size: 13.5px; color: var(--cnm-slate-600); text-decoration: none; padding: 4px 0; }
.cnm-cz .ccx-foot-col a:hover { color: var(--cnm-brand-700); }
.cnm-cz .ccx-foot-bottom { max-width: 1080px; margin: 0 auto; padding: 16px 20px; border-top: 1px solid var(--cnm-slate-200); display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; font-size: 12.5px; color: var(--cnm-slate-500); }

.cnm-cz .ccx-main { flex: 1; }
.cnm-cz .ccx-wrap { max-width: 1080px; margin: 0 auto; padding: 28px 20px 56px; }
.cnm-cz .ccx-wrap.narrow { max-width: 720px; }

.cnm-cz .ccx-footer { border-top: 1px solid var(--cnm-slate-200); background: #fff; }
.cnm-cz .ccx-footer-in { max-width: 1080px; margin: 0 auto; padding: 18px 20px; display: flex; justify-content: space-between; gap: 12px; font-size: 12.5px; color: var(--cnm-slate-500); flex-wrap: wrap; align-items: center; }
.cnm-cz .ccx-footer-in .brand { display: flex; align-items: center; gap: 7px; font-weight: 700; color: var(--cnm-slate-700); }

/* ── Home ───────────────────────────────────────────────── */
.cnm-home .hero { text-align: center; padding: 32px 0 8px; }
.cnm-home .hero h1 { font-size: 40px; font-weight: 800; letter-spacing: -.03em; line-height: 1.07; margin: 0 0 12px; }
.cnm-home .hero p { font-size: 16.5px; color: var(--cnm-slate-600); max-width: 560px; margin: 0 auto 22px; line-height: 1.55; }
.cnm-home .searchbar { display: flex; gap: 6px; max-width: 600px; margin: 0 auto; background: #fff; border: 1px solid var(--cnm-slate-300); border-radius: 14px; padding: 7px; box-shadow: var(--cnm-shadow-card); }
.cnm-home .searchbar input { flex: 1; min-width: 0; border: 0; outline: none; font-size: 15px; padding: 0 12px; height: 46px; background: transparent; color: inherit; }
.cnm-home .searchbar .zip { width: 96px; flex: none; border-left: 1px solid var(--cnm-slate-200); }
.cnm-home .hero-note { font-size: 12.5px; color: var(--cnm-slate-500); margin-top: 12px; }

.cnm-home .sec-label { font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--cnm-slate-500); margin: 38px 0 12px; text-align: center; }
.cnm-home .trades { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.cnm-home .trade-tile { background: #fff; border: 1px solid var(--cnm-slate-200); border-radius: 12px; padding: 18px 14px; text-align: center; text-decoration: none; color: inherit; box-shadow: var(--cnm-shadow-card); transition: border-color 120ms, transform 120ms; }
.cnm-home .trade-tile:hover { border-color: var(--cnm-brand-300); transform: translateY(-1px); }
.cnm-home .trade-ic { width: 42px; height: 42px; border-radius: 11px; background: var(--cnm-brand-50); color: var(--cnm-brand-600); display: flex; align-items: center; justify-content: center; margin: 0 auto 9px; font-weight: 800; font-size: 16px; }
.cnm-home .trade-tile .lbl { font-weight: 600; font-size: 13.5px; }

.cnm-home .trust-trio { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 16px; }
.cnm-home .trust-card { background: #fff; border: 1px solid var(--cnm-slate-200); border-radius: 14px; padding: 22px; text-align: center; box-shadow: var(--cnm-shadow-card); }
.cnm-home .trust-ic { width: 46px; height: 46px; border-radius: 12px; display: flex; align-items: center; justify-content: center; margin: 0 auto 12px; }
.cnm-home .trust-card h3 { font-size: 15px; font-weight: 700; margin: 0 0 5px; }
.cnm-home .trust-card p { font-size: 13px; color: var(--cnm-slate-600); margin: 0; line-height: 1.5; }

/* resume-project card (logged-in) */
.cnm-home .resume { background: linear-gradient(135deg, var(--cnm-brand-600), var(--cnm-brand-800)); color: #fff; border-radius: 16px; padding: 22px; margin-bottom: 22px; display: flex; align-items: center; gap: 16px; }
.cnm-home .resume .meta { flex: 1; }

/* ── Results ────────────────────────────────────────────── */
.cnm-results .range-band { background: var(--cnm-brand-50); border: 1px solid var(--cnm-brand-100); border-radius: 12px; padding: 14px 18px; margin-bottom: 14px; }
.cnm-results .range-band .lbl { font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--cnm-brand-700); }
.cnm-results .range-band .val { font-size: 20px; font-weight: 800; font-family: var(--cnm-font-mono); margin-top: 2px; }
.cnm-results .mask-band { background: var(--cnm-slate-900); color: #fff; border-radius: 12px; padding: 13px 18px; margin-bottom: 14px; display: flex; align-items: center; gap: 12px; font-size: 13px; }
.cnm-results .mask-band a { color: #fff; font-weight: 700; margin-left: auto; white-space: nowrap; }
.cnm-results .pro-card { background: #fff; border: 1px solid var(--cnm-slate-200); border-radius: 14px; padding: 18px; margin-bottom: 12px; box-shadow: var(--cnm-shadow-card); display: flex; gap: 16px; align-items: flex-start; }
.cnm-results .pro-card.best { border-color: var(--cnm-brand-300); box-shadow: 0 0 0 3px var(--cnm-brand-50); }
.cnm-results .pro-main { flex: 1; min-width: 0; }
.cnm-results .pro-name { font-size: 16px; font-weight: 700; }
.cnm-results .pro-sub { font-size: 13px; color: var(--cnm-slate-600); margin-top: 2px; }
.cnm-results .pro-badges { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.cnm-results .pro-right { text-align: right; flex-shrink: 0; display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
.cnm-results .lic-chip { display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; font-weight: 600; color: var(--cnm-slate-600); background: var(--cnm-slate-50); border: 1px solid var(--cnm-slate-200); border-radius: 7px; padding: 3px 8px; }

/* ── Contractor profile ─────────────────────────────────── */
.cnm-cz .back-link { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: var(--cnm-slate-500); text-decoration: none; margin-bottom: 14px; }
.cnm-cz .back-link:hover { color: var(--cnm-brand-700); }
.cnm-profile { max-width: 1040px; margin: 0 auto; }
.cnm-profile .prof-head { display: flex; gap: 16px; align-items: center; }
.cnm-profile .prof-head h1 { font-size: 22px; font-weight: 800; letter-spacing: -.02em; margin: 0; }
.cnm-profile .creds { display: flex; gap: 8px; margin-top: 16px; }
.cnm-profile .cred { flex: 1; min-width: 0; padding: 12px 4px; border-radius: 12px; background: var(--cnm-trust-50); border: 1px solid var(--cnm-trust-200); text-align: center; text-decoration: none; color: inherit; }
.cnm-profile .cred:hover { border-color: var(--cnm-trust-300, #86efac); }
.cnm-profile .cred .l { font-size: 10px; font-weight: 800; color: var(--cnm-trust-700); letter-spacing: .03em; margin: 4px 0 1px; }
.cnm-profile .cred .v { font-size: 11px; color: var(--cnm-slate-500); font-family: var(--cnm-font-mono); }
.cnm-profile .sec-h { font-size: 13px; font-weight: 800; margin: 22px 0 9px; }
.cnm-profile .work-grid { display: grid; grid-template-columns: 1.6fr 1fr; gap: 8px; }
.cnm-profile .work-grid .col { display: grid; gap: 8px; }
.cnm-profile .wphoto { background: linear-gradient(135deg, var(--cnm-slate-100), var(--cnm-slate-300)); border-radius: 10px; position: relative; min-height: 96px; overflow: hidden; }
.cnm-profile .wphoto.tall { min-height: 200px; }
.cnm-profile .wphoto::after { content: attr(data-label); position: absolute; bottom: 6px; left: 8px; font-size: 10px; color: var(--cnm-slate-600); font-family: var(--cnm-font-mono); }
.cnm-profile .review-card { padding: 14px; border-radius: 13px; border: 1px solid var(--cnm-slate-200); background: #fff; }
.cnm-profile .cta-bar { display: flex; gap: 10px; margin-top: 22px; }
.cnm-profile .msg-btn { width: 52px; height: 50px; border-radius: 13px; border: 1.5px solid var(--cnm-slate-300); display: flex; align-items: center; justify-content: center; background: #fff; flex-shrink: 0; }

/* ── Verification detail ────────────────────────────────── */
.cnm-verify { max-width: 640px; margin: 0 auto; }
.cnm-verify .lic-card { border: 1px solid var(--cnm-slate-200); border-radius: 14px; overflow: hidden; background: #fff; }
.cnm-verify .lic-hd { padding: 10px 14px; background: var(--cnm-trust-50); border-bottom: 1px solid var(--cnm-trust-200); display: flex; align-items: center; gap: 8px; font-size: 12.5px; font-weight: 800; color: var(--cnm-trust-700); }
.cnm-verify .lic-row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 10px 14px; border-top: 1px solid var(--cnm-slate-100); }
.cnm-verify .lic-row .k { font-size: 12.5px; color: var(--cnm-slate-500); }
.cnm-verify .lic-row .v { font-size: 13px; font-weight: 600; text-align: right; }
.cnm-verify .two { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 12px; }
.cnm-verify .vbox { border: 1px solid var(--cnm-slate-200); border-radius: 13px; padding: 12px 13px; background: #fff; }
.cnm-verify .vbox .l { font-size: 11px; font-weight: 800; color: var(--cnm-slate-500); letter-spacing: .05em; }
.cnm-verify .timeline { margin-top: 14px; padding: 13px 15px; border-radius: 13px; background: #fff; border: 1px solid var(--cnm-slate-200); }
.cnm-verify .tl-row { display: flex; gap: 11px; align-items: stretch; }
.cnm-verify .tl-rail { display: flex; flex-direction: column; align-items: center; }
.cnm-verify .tl-dot { width: 18px; height: 18px; border-radius: 50%; background: var(--cnm-trust-50); border: 1.5px solid var(--cnm-trust-500); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.cnm-verify .tl-line { width: 2px; flex: 1; min-height: 14px; background: var(--cnm-slate-200); }
.cnm-profile .work-empty, .cnm-profile .rev-empty { padding: 22px 14px; text-align: center; font-size: 13px; color: var(--cnm-slate-500); background: var(--cnm-slate-50); border: 1px dashed var(--cnm-slate-200); border-radius: 12px; }
.cnm-verify .verify-note { margin-top: 14px; padding: 14px 15px; border-radius: 13px; background: var(--cnm-slate-50); border: 1px solid var(--cnm-slate-200); font-size: 12px; line-height: 1.55; color: var(--cnm-slate-600); }

/* ── Live cost estimate ─────────────────────────────────── */
.cnm-estimate { max-width: 560px; margin: 0 auto; }
.cnm-estimate .est-range { padding: 18px; border-radius: 16px; background: var(--cnm-slate-900); color: #fff; }
.cnm-estimate .est-range .lbl { font-size: 11px; font-weight: 700; letter-spacing: .06em; color: var(--cnm-slate-400); }
.cnm-estimate .est-range .nums { display: flex; align-items: baseline; gap: 8px; margin-top: 5px; }
.cnm-estimate .est-range .nums .cnm-mono { font-size: 28px; font-weight: 800; letter-spacing: -.02em; }
.cnm-estimate .est-range .dash { color: var(--cnm-slate-500); font-weight: 700; }
.cnm-estimate .est-bar { position: relative; height: 8px; border-radius: 999px; background: rgb(255 255 255 / .12); margin-top: 14px; overflow: hidden; }
.cnm-estimate .est-bar .fill { position: absolute; left: 8%; right: 8%; top: 0; bottom: 0; border-radius: 999px; background: linear-gradient(90deg, var(--cnm-trust-500), var(--cnm-brand-400)); }
.cnm-estimate .est-range .note { font-size: 11.5px; color: var(--cnm-slate-400); margin-top: 10px; line-height: 1.5; }
.cnm-estimate .est-factors { margin-top: 16px; }
.cnm-estimate .factor { margin-bottom: 16px; }
.cnm-estimate .f-label { display: flex; align-items: center; gap: 7px; margin-bottom: 8px; font-size: 13px; font-weight: 700; }
.cnm-estimate .opts { display: flex; gap: 7px; }
.cnm-estimate .opt { flex: 1; padding: 11px 8px; border-radius: 11px; text-align: center; font-size: 12px; font-weight: 600; background: #fff; color: var(--cnm-slate-600); border: 1.5px solid var(--cnm-slate-200); cursor: pointer; line-height: 1.25; }
.cnm-estimate .opt:hover { border-color: var(--cnm-brand-300); }
.cnm-estimate .opt.on { background: var(--cnm-brand-50); color: var(--cnm-brand-700); border: 2px solid var(--cnm-brand-600); font-weight: 700; }
.cnm-estimate .est-protect { margin: 4px 0 16px; padding: 11px 14px; border-radius: 12px; background: var(--cnm-brand-50); border: 1px solid var(--cnm-brand-200); display: flex; gap: 9px; align-items: flex-start; font-size: 12px; line-height: 1.5; color: var(--cnm-brand-700); }

/* ── Register gate ──────────────────────────────────────── */
.cnm-gate { max-width: 480px; margin: 0 auto; }
.cnm-gate .gfield { margin-bottom: 14px; }
.cnm-gate .gfield label { display: block; font-size: 13px; font-weight: 600; color: var(--cnm-slate-700); margin-bottom: 6px; }
.cnm-gate .gfield input { width: 100%; height: 46px; padding: 0 14px; border: 1.5px solid var(--cnm-slate-300); border-radius: 10px; font-size: 15px; outline: none; background: #fff; color: inherit; }
.cnm-gate .gfield input:focus { border-color: var(--cnm-brand-500); box-shadow: 0 0 0 3px var(--cnm-brand-100); }
.cnm-gate .gfield .hint { font-size: 11.5px; color: var(--cnm-slate-500); margin-top: 4px; }
.cnm-gate .consent { display: flex; gap: 10px; padding: 2px 0; font-size: 12.5px; line-height: 1.5; color: var(--cnm-slate-700); cursor: pointer; }
.cnm-gate .consent input { margin-top: 2px; width: 16px; height: 16px; accent-color: var(--cnm-brand-600); flex-shrink: 0; }
.cnm-gate .consent.dim { color: var(--cnm-slate-500); }
.cnm-gate .err { font-size: 12.5px; color: var(--cnm-emer-700); background: var(--cnm-emer-50); border: 1px solid var(--cnm-emer-200); border-radius: 9px; padding: 10px 12px; margin-bottom: 12px; }

/* ── OTP entry ──────────────────────────────────────────── */
.cnm-otp { max-width: 420px; margin: 0 auto; text-align: center; }
.cnm-otp .badge-ic { width: 56px; height: 56px; border-radius: 16px; background: var(--cnm-brand-50); display: flex; align-items: center; justify-content: center; margin: 8px auto 14px; }
.cnm-otp .code-input { width: 100%; max-width: 280px; height: 60px; margin: 18px auto 0; display: block; text-align: center; font-family: var(--cnm-font-mono); font-size: 28px; font-weight: 800; letter-spacing: 12px; border: 2px solid var(--cnm-slate-300); border-radius: 12px; outline: none; background: #fff; color: inherit; padding-left: 12px; }
.cnm-otp .code-input:focus { border-color: var(--cnm-brand-500); box-shadow: 0 0 0 4px var(--cnm-brand-100); }
.cnm-otp .devbanner { margin: 18px auto 0; max-width: 300px; font-size: 12px; color: var(--cnm-warn-700); background: var(--cnm-warn-50); border: 1px solid var(--cnm-warn-200); border-radius: 9px; padding: 9px 12px; }

/* ── Quote-comparison board ─────────────────────────────── */
.cnm-quotes { max-width: 560px; margin: 0 auto; }
.cnm-quotes .qrange { background: #fff; border: 1px solid var(--cnm-slate-200); border-radius: 14px; padding: 14px 16px; margin-bottom: 16px; }
.cnm-quotes .qrange .hd { display: flex; justify-content: space-between; font-size: 11px; font-weight: 700; color: var(--cnm-slate-500); margin-bottom: 12px; }
.cnm-quotes .qrange .bar { position: relative; height: 8px; border-radius: 999px; background: linear-gradient(90deg, var(--cnm-trust-200), var(--cnm-brand-200), var(--cnm-warn-200)); margin: 10px 0; }
.cnm-quotes .qrange .dot { position: absolute; top: -4px; width: 16px; height: 16px; border-radius: 50%; border: 2.5px solid #fff; box-shadow: 0 1px 4px rgb(0 0 0 / .25); transform: translateX(-50%); }
.cnm-quotes .qrange .legend { display: flex; gap: 16px; margin-top: 10px; font-size: 11px; color: var(--cnm-slate-500); flex-wrap: wrap; }
.cnm-quotes .qrange .legend .ld { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 5px; }
.cnm-quotes .qcard { background: #fff; border: 1px solid var(--cnm-slate-200); border-radius: 16px; padding: 16px; margin-bottom: 14px; box-shadow: var(--cnm-shadow-card); position: relative; }
.cnm-quotes .qcard.best { border: 2px solid var(--cnm-brand-600); margin-top: 12px; }
.cnm-quotes .qbadge { position: absolute; top: -10px; left: 14px; padding: 3px 10px; border-radius: 999px; background: var(--cnm-brand-600); color: #fff; font-size: 10.5px; font-weight: 800; letter-spacing: .04em; }
.cnm-quotes .qhead { display: flex; align-items: center; gap: 11px; }
.cnm-quotes .qfoot { display: flex; align-items: center; gap: 8px; margin-top: 12px; }
.cnm-quotes .qpending { display: flex; align-items: center; gap: 12px; padding: 14px; border: 1.5px dashed var(--cnm-slate-300); border-radius: 14px; margin-bottom: 14px; }
.cnm-quotes .qnote { margin-top: 4px; padding: 11px 14px; border-radius: 12px; background: var(--cnm-trust-50); border: 1px solid var(--cnm-trust-200); display: flex; gap: 9px; align-items: flex-start; font-size: 12px; line-height: 1.5; color: var(--cnm-trust-700); }

/* ── Scope approval ─────────────────────────────────────── */
.cnm-scope { max-width: 560px; margin: 0 auto; }
.cnm-scope h1 { font-size: 21px; font-weight: 800; letter-spacing: -.02em; margin: 0 0 12px; }
.cnm-scope .scope-trust { display: flex; align-items: center; gap: 9px; padding: 10px 13px; border-radius: 12px; background: var(--cnm-trust-50); border: 1px solid var(--cnm-trust-200); font-size: 12.5px; font-weight: 600; color: var(--cnm-trust-700); }
.cnm-scope .scope-ms { margin-top: 12px; background: #fff; border: 1px solid var(--cnm-slate-200); border-radius: 15px; overflow: hidden; }
.cnm-scope .ms-row { padding: 13px 15px; border-top: 1px solid var(--cnm-slate-100); display: flex; align-items: center; gap: 12px; }
.cnm-scope .ms-row:first-child { border-top: 0; }
.cnm-scope .ms-total { padding: 13px 15px; border-top: 2px solid var(--cnm-slate-200); display: flex; justify-content: space-between; align-items: baseline; font-size: 13px; font-weight: 700; color: var(--cnm-slate-600); }
.cnm-scope .scope-terms { margin-top: 12px; display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; }
.cnm-scope .term { padding: 9px 10px; border-radius: 11px; background: #fff; border: 1px solid var(--cnm-slate-200); text-align: center; }
.cnm-scope .term .l { font-size: 9.5px; font-weight: 800; color: var(--cnm-slate-400); letter-spacing: .06em; }
.cnm-scope .term .v { font-size: 12px; font-weight: 700; margin-top: 2px; }
.cnm-scope .scope-agree { display: flex; gap: 10px; margin: 16px 0; font-size: 12.5px; line-height: 1.5; color: var(--cnm-slate-700); cursor: pointer; }
.cnm-scope .scope-agree input { margin-top: 2px; width: 16px; height: 16px; accent-color: var(--cnm-brand-600); flex-shrink: 0; }
.cnm-scope .scope-cta { display: flex; gap: 10px; }

/* ── Fund escrow (pay) ──────────────────────────────────── */
.cnm-pay { max-width: 480px; margin: 0 auto; }
.cnm-pay h1 { font-size: 21px; font-weight: 800; letter-spacing: -.02em; margin: 0 0 14px; }
.cnm-pay .pay-amt { background: #fff; border: 1px solid var(--cnm-slate-200); border-radius: 14px; padding: 16px; margin-bottom: 16px; }
.cnm-pay .pay-amt .lbl { font-size: 11.5px; color: var(--cnm-slate-500); font-weight: 600; }
.cnm-pay .pay-amt .amt { font-size: 28px; font-weight: 800; letter-spacing: -.02em; margin: 3px 0 0; }
.cnm-pay .pay-amt .bar { height: 6px; border-radius: 3px; background: var(--cnm-slate-100); overflow: hidden; margin: 12px 0 6px; }
.cnm-pay .pay-amt .bar .fill { height: 100%; background: var(--cnm-trust-500); border-radius: 3px; }
.cnm-pay .pay-amt .rem { font-size: 11.5px; color: var(--cnm-slate-500); }
.cnm-pay .pay-methods { display: flex; flex-direction: column; gap: 8px; margin-bottom: 14px; }
.cnm-pay .pmethod { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1.5px solid var(--cnm-slate-200); border-radius: 12px; cursor: pointer; background: #fff; }
.cnm-pay .pmethod.on { border: 2px solid var(--cnm-brand-600); background: var(--cnm-brand-50); }
.cnm-pay .pmethod input { display: none; }
.cnm-pay .pm-ic { width: 34px; height: 34px; border-radius: 9px; background: var(--cnm-brand-50); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.cnm-pay .pmethod.on .pm-ic { background: #fff; }
.cnm-pay .pm-t { font-size: 13.5px; font-weight: 700; }
.cnm-pay .pm-d { font-size: 11.5px; color: var(--cnm-slate-500); }
.cnm-pay .pay-card { background: #fff; border: 1px solid var(--cnm-slate-200); border-radius: 12px; padding: 14px; margin-bottom: 12px; }
.cnm-pay .pf { margin-bottom: 10px; }
.cnm-pay .pf:last-child { margin-bottom: 0; }
.cnm-pay .pf label { display: block; font-size: 11.5px; font-weight: 600; color: var(--cnm-slate-600); margin-bottom: 5px; }
.cnm-pay .pin { width: 100%; height: 42px; padding: 0 12px; border: 1px solid var(--cnm-slate-300); border-radius: 9px; font-size: 14px; outline: none; background: #fff; color: inherit; box-sizing: border-box; }
.cnm-pay .pin:focus { border-color: var(--cnm-brand-500); }
.cnm-pay .pay-alt, .cnm-pay .pay-sim { display: flex; gap: 9px; align-items: flex-start; padding: 11px 13px; border-radius: 11px; font-size: 12px; line-height: 1.5; margin-bottom: 12px; }
.cnm-pay .pay-alt { background: var(--cnm-slate-50); border: 1px solid var(--cnm-slate-200); color: var(--cnm-slate-600); }
.cnm-pay .pay-sim { background: var(--cnm-brand-50); border: 1px solid var(--cnm-brand-100); color: var(--cnm-slate-600); }
.cnm-pay .pay-err { display: flex; gap: 10px; padding: 12px 14px; border-radius: 10px; background: var(--cnm-emer-50); border: 1px solid var(--cnm-emer-200); color: var(--cnm-emer-700); font-size: 12.5px; line-height: 1.5; margin-bottom: 12px; }
.cnm-pay .pay-foot { text-align: center; font-size: 11.5px; color: var(--cnm-slate-500); margin-top: 8px; line-height: 1.5; }

/* ── Escrow confirmed (payok) ───────────────────────────── */
.cnm-payok { max-width: 440px; margin: 0 auto; text-align: center; padding-top: 12px; }
.cnm-payok .ok-ring { width: 88px; height: 88px; border-radius: 50%; background: var(--cnm-trust-50); display: flex; align-items: center; justify-content: center; margin: 0 auto 16px; }
.cnm-payok .ok-inner { width: 60px; height: 60px; border-radius: 50%; background: var(--cnm-trust-600); display: flex; align-items: center; justify-content: center; }
.cnm-payok h1 { font-size: 22px; font-weight: 800; letter-spacing: -.02em; margin: 0 0 8px; }
.cnm-payok p { font-size: 14px; color: var(--cnm-slate-600); line-height: 1.6; margin: 0 auto 18px; max-width: 380px; }
.cnm-payok .ok-card { display: flex; align-items: center; gap: 12px; padding: 14px; background: var(--cnm-slate-50); border-radius: 12px; text-align: left; margin-bottom: 12px; }
.cnm-payok .ok-note { display: flex; gap: 9px; padding: 12px 14px; border-radius: 12px; background: var(--cnm-trust-50); border: 1px solid var(--cnm-trust-200); color: var(--cnm-trust-700); font-size: 12.5px; line-height: 1.5; text-align: left; margin-bottom: 16px; }

/* ── Account (logged-in landing) ────────────────────────── */
.cnm-acct .welcome { font-size: 24px; font-weight: 800; letter-spacing: -.02em; margin: 0 0 4px; }

@media (max-width: 760px) {
    .cnm-cz .ccx-nav { display: none; }
    .cnm-cz .ccx-foot-grid { grid-template-columns: 1fr 1fr; gap: 18px; }
    .cnm-cz .ccx-foot-brand { grid-column: 1 / -1; }
    .cnm-cz .ccx-foot-bottom { justify-content: center; text-align: center; }
    .cnm-home .hero h1 { font-size: 30px; }
    .cnm-home .trades { grid-template-columns: repeat(2, 1fr); }
    .cnm-home .trust-trio { grid-template-columns: 1fr; }
    .cnm-results .pro-card { flex-direction: column; }
    .cnm-results .pro-right { text-align: left; align-items: flex-start; }
}

/* ── Phase 6 · project dashboard (escrow rail + milestone review) ───────── */

/* Escrow rail */
.cnm-cz .escrow-rail { background:#fff; border:1px solid var(--cnm-slate-200); border-radius:14px; padding:18px; box-shadow:var(--cnm-shadow-card); }
.cnm-cz .escrow-rail.frozen { border-color:var(--cnm-emer-300); background:var(--cnm-emer-50); }
.cnm-cz .er-top { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:12px; }
.cnm-cz .er-lbl { font-size:10.5px; font-weight:800; letter-spacing:.06em; color:var(--cnm-slate-400); }
.cnm-cz .escrow-rail.frozen .er-lbl { color:var(--cnm-emer-600); }
.cnm-cz .er-amt { font-size:19px; font-weight:800; margin-top:3px; }
.cnm-cz .er-rel { font-size:15px; font-weight:800; color:var(--cnm-trust-700); margin-top:3px; }
.cnm-cz .er-bar { display:flex; gap:3px; height:8px; margin-bottom:10px; }
.cnm-cz .er-seg { height:8px; border-radius:999px; min-width:4px; }
.cnm-cz .er-seg.released { background:var(--cnm-trust-500); }
.cnm-cz .er-seg.held { background:var(--cnm-warn-400); }
.cnm-cz .er-seg.unfunded { background:var(--cnm-slate-200); }
.cnm-cz .er-legend { display:flex; flex-wrap:wrap; gap:12px; font-size:11.5px; color:var(--cnm-slate-500); }
.cnm-cz .er-legend span { display:inline-flex; align-items:center; gap:5px; }
.cnm-cz .erd { width:8px; height:8px; border-radius:50%; display:inline-block; }
.cnm-cz .erd.released { background:var(--cnm-trust-500); }
.cnm-cz .erd.held { background:var(--cnm-warn-400); }
.cnm-cz .erd.unfunded { background:var(--cnm-slate-300); }
.cnm-cz .er-note { margin-top:11px; font-size:12px; line-height:1.5; color:var(--cnm-slate-500); }
.cnm-cz .escrow-rail.frozen .er-note { color:var(--cnm-emer-700); }

/* Payment-progress rail (no funds held): paid | approved | due. Reuses the
   .er-* structure above; adds only the semantic state colours. */
.cnm-cz .payment-rail { background:#fff; border:1px solid var(--cnm-slate-200); border-radius:14px; padding:18px; box-shadow:var(--cnm-shadow-card); }
.cnm-cz .er-seg.approved { background:var(--cnm-trust-500); }
.cnm-cz .er-seg.paid { background:var(--cnm-warn-400); }
.cnm-cz .er-seg.due { background:var(--cnm-slate-200); }
.cnm-cz .erd.approved { background:var(--cnm-trust-500); }
.cnm-cz .erd.paid { background:var(--cnm-warn-400); }
.cnm-cz .erd.due { background:var(--cnm-slate-300); }

/* Dashboard status banners */
.cnm-cz .dash-banner { display:flex; gap:10px; align-items:flex-start; padding:12px 14px; border-radius:11px; font-size:13px; line-height:1.45; }
.cnm-cz .dash-banner strong { font-weight:800; }
.cnm-cz .dash-banner.needs { background:var(--cnm-warn-50); color:var(--cnm-warn-700); }
.cnm-cz .dash-banner.ok { background:var(--cnm-trust-50); color:var(--cnm-trust-700); }
.cnm-cz .dash-banner > svg { flex-shrink:0; margin-top:1px; }

/* Dashboard tiles (gated affordances) */
.cnm-cz .dash-tiles { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:14px; }
.cnm-cz .dtile { display:flex; gap:11px; align-items:center; background:#fff; border:1px solid var(--cnm-slate-200); border-radius:12px; padding:13px 14px; }
.cnm-cz .dt-ic { width:36px; height:36px; border-radius:10px; background:var(--cnm-brand-50); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.cnm-cz .dt-t { font-size:13.5px; font-weight:700; }
.cnm-cz .dt-d { font-size:11.5px; color:var(--cnm-slate-500); margin-top:1px; }

/* ── Milestone review ──────────────────────────────────────────────────── */
.cnm-cz .cnm-milestone { max-width:560px; margin:0 auto; }
.cnm-cz .ms-back { display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:600; color:var(--cnm-slate-500); text-decoration:none; margin-bottom:6px; }
.cnm-cz .ms-back:hover { color:var(--cnm-brand-700); }
.cnm-cz .ms-title { font-size:23px; font-weight:800; letter-spacing:-.025em; line-height:1.2; margin:10px 0 0; }
.cnm-cz .ms-sub { font-size:13.5px; color:var(--cnm-slate-600); line-height:1.5; margin:7px 0 0; }
.cnm-cz .ms-proof { margin-top:16px; }
.cnm-cz .ms-proof-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:9px; }
.cnm-cz .ms-photo { aspect-ratio:1; border-radius:11px; background:var(--cnm-slate-100); border:1px dashed var(--cnm-slate-300); display:flex; align-items:center; justify-content:center; }
.cnm-cz .ms-proof-note { display:flex; gap:7px; align-items:flex-start; margin-top:10px; font-size:12px; color:var(--cnm-slate-500); line-height:1.5; }
.cnm-cz .ms-proof-note > svg { flex-shrink:0; margin-top:1px; }
.cnm-cz .ms-card { margin-top:14px; background:#fff; border:1px solid var(--cnm-slate-200); border-radius:13px; padding:14px 16px; }
.cnm-cz .ms-card-h { font-size:10.5px; font-weight:800; letter-spacing:.06em; color:var(--cnm-slate-400); margin-bottom:8px; }
.cnm-cz .ms-check { display:flex; align-items:center; gap:9px; padding:5px 0; font-size:13px; color:var(--cnm-slate-700); }
.cnm-cz .ms-tick { width:18px; height:18px; border-radius:5px; background:var(--cnm-trust-500); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.cnm-cz .ms-card-foot { margin-top:8px; padding-top:9px; border-top:1px solid var(--cnm-slate-100); font-size:12px; color:var(--cnm-slate-500); font-weight:600; }
.cnm-cz .ms-actions { margin-top:18px; }
.cnm-cz .ms-secondary { display:flex; gap:10px; margin-top:10px; }
.cnm-cz .ms-fine { margin:11px 0 0; font-size:11.5px; color:var(--cnm-slate-500); line-height:1.5; }

/* Milestone confirm modal — scoped + explicit display (avoids [hidden] / Bootstrap collisions) */
.cnm-cz .ms-modal { position:fixed; inset:0; z-index:60; background:rgba(15,23,42,.5); display:flex; align-items:center; justify-content:center; padding:20px; }
.cnm-cz .ms-modal[hidden] { display:none; }
.cnm-cz .ms-modal-card { background:#fff; border-radius:16px; padding:22px; max-width:420px; width:100%; box-shadow:0 20px 50px rgba(15,23,42,.3); }
.cnm-cz .ms-modal-h { font-size:17px; font-weight:800; letter-spacing:-.01em; }
.cnm-cz .ms-modal-b { font-size:13.5px; color:var(--cnm-slate-600); line-height:1.5; margin:8px 0 16px; }
.cnm-cz .ms-modal-actions { display:flex; gap:10px; justify-content:flex-end; }

@media (max-width: 560px) {
    .cnm-cz .dash-tiles { grid-template-columns:1fr; }
}

/* ── Phase 7 · disputes (file + status timeline) ───────────────────────── */

/* Dashboard frozen banner */
.cnm-cz .dash-banner.alert { background:var(--cnm-emer-50); color:var(--cnm-emer-700); }

/* Shared dispute page chrome */
.cnm-cz .cnm-dispute, .cnm-cz .cnm-dispute-status { max-width:560px; margin:0 auto; }
.cnm-cz .cnm-dispute .dsp-hint { font-size:12px; color:var(--cnm-slate-500); line-height:1.5; margin:10px 2px 2px; }
.cnm-cz .cnm-dispute .dsp-hint:empty { display:none; }
.cnm-cz .dsp-title { font-size:22px; font-weight:800; letter-spacing:-.02em; line-height:1.2; margin:10px 0 0; }

/* File-a-dispute form */
.cnm-cz .dsp-frozen-note { display:flex; gap:9px; align-items:flex-start; margin-top:14px; padding:11px 13px; border-radius:12px; background:var(--cnm-trust-50); border:1px solid var(--cnm-trust-200); font-size:12.5px; line-height:1.5; color:var(--cnm-trust-700); }
.cnm-cz .dsp-frozen-note > svg { flex-shrink:0; margin-top:1px; }
.cnm-cz .dsp-form { margin-top:16px; }
.cnm-cz .dsp-reasons { display:flex; flex-direction:column; gap:8px; }
.cnm-cz .dsp-reason { display:flex; align-items:center; gap:11px; padding:12px 14px; border-radius:12px; border:1.5px solid var(--cnm-slate-200); background:#fff; cursor:pointer; }
.cnm-cz .dsp-reason:has(input:checked) { border:2px solid var(--cnm-brand-600); background:var(--cnm-brand-50); }
.cnm-cz .dsp-reason input { position:absolute; opacity:0; width:0; height:0; }
.cnm-cz .dsp-dot { width:18px; height:18px; border-radius:50%; border:1.5px solid var(--cnm-slate-300); flex-shrink:0; }
.cnm-cz .dsp-reason input:checked ~ .dsp-dot { border:5.5px solid var(--cnm-brand-600); }
.cnm-cz .dsp-rlabel { font-size:14px; font-weight:500; }
.cnm-cz .dsp-reason:has(input:checked) .dsp-rlabel { font-weight:700; }
.cnm-cz .dsp-flbl { display:block; margin:16px 0 7px; font-size:13px; font-weight:700; color:var(--cnm-slate-700); }
.cnm-cz .dsp-textarea { width:100%; padding:13px; border-radius:12px; border:1.5px solid var(--cnm-slate-300); min-height:80px; font-size:13.5px; color:var(--cnm-slate-900); line-height:1.5; font-family:inherit; outline:none; resize:vertical; }
.cnm-cz .dsp-textarea:focus { border-color:var(--cnm-brand-500); }
.cnm-cz .dsp-err { margin-top:7px; font-size:12.5px; font-weight:600; color:var(--cnm-emer-600); }
.cnm-cz .dsp-photos { display:flex; gap:8px; align-items:center; margin-top:12px; }
.cnm-cz .dsp-photo { width:72px; height:72px; border-radius:10px; border:1.5px dashed var(--cnm-slate-300); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; color:var(--cnm-slate-400); font-size:10px; font-weight:600; }
.cnm-cz .dsp-photo-note { flex:1; font-size:11.5px; color:var(--cnm-slate-500); line-height:1.45; }
.cnm-cz .dsp-fine { margin:11px 0 0; font-size:11.5px; color:var(--cnm-slate-500); line-height:1.5; text-align:center; }

/* Dispute status — frozen banner + SLA + timeline */
.cnm-cz .dst-frozen { margin-top:14px; padding:13px 15px; border-radius:14px; background:var(--cnm-emer-50); border:1px solid var(--cnm-emer-200); }
.cnm-cz .dst-frozen-top { display:flex; align-items:center; gap:9px; }
.cnm-cz .dst-frozen-lbl { font-size:13px; font-weight:800; letter-spacing:.03em; color:var(--cnm-emer-700); flex:1; }
.cnm-cz .dst-frozen-amt { font-size:14px; font-weight:800; color:var(--cnm-emer-700); }
.cnm-cz .dst-frozen-sub { font-size:12px; color:var(--cnm-emer-700); opacity:.9; line-height:1.45; margin-top:6px; }
.cnm-cz .dst-sla { display:flex; align-items:center; gap:10px; margin-top:12px; padding:11px 14px; border-radius:12px; background:var(--cnm-slate-900); color:#fff; }
.cnm-cz .dst-sla-lbl { font-size:12.5px; font-weight:600; flex:1; }
.cnm-cz .dst-sla-clock { font-size:14px; font-weight:700; color:var(--cnm-warn-400); }
.cnm-cz .dst-sla.elapsed .dst-sla-clock { color:var(--cnm-emer-400, #f87171); }
.cnm-cz .dst-tl-head { margin:18px 0 12px; font-size:11px; font-weight:800; letter-spacing:.06em; color:var(--cnm-slate-400); }
.cnm-cz .dst-timeline { }
.cnm-cz .dst-step { display:flex; gap:12px; align-items:flex-start; }
.cnm-cz .dst-rail { display:flex; flex-direction:column; align-items:center; align-self:stretch; }
.cnm-cz .dst-node { width:24px; height:24px; border-radius:50%; flex-shrink:0; display:flex; align-items:center; justify-content:center; }
.cnm-cz .dst-node.done { background:var(--cnm-trust-500); }
.cnm-cz .dst-node.active { background:var(--cnm-warn-500); }
.cnm-cz .dst-line { width:2px; flex:1; min-height:26px; background:var(--cnm-slate-200); }
.cnm-cz .dst-step:last-child .dst-line { display:none; }
.cnm-cz .dst-body { flex:1; padding-bottom:16px; }
.cnm-cz .dst-row { display:flex; align-items:baseline; gap:8px; }
.cnm-cz .dst-t { font-size:13.5px; font-weight:700; flex:1; }
.cnm-cz .dst-when { font-size:10.5px; color:var(--cnm-slate-400); }
.cnm-cz .dst-d { font-size:12.5px; color:var(--cnm-slate-500); line-height:1.5; margin-top:2px; }
.cnm-cz .dst-note { margin-top:4px; padding:11px 14px; border-radius:12px; background:var(--cnm-slate-100); font-size:11.5px; line-height:1.5; color:var(--cnm-slate-600); }
.cnm-cz .dst-actions { display:flex; gap:10px; margin-top:16px; }

/* ── Phase 8 · account (settings + saved pros + account links) ──────────── */

/* Account-dashboard links */
.cnm-cz .acct-links { margin-top:16px; display:flex; flex-direction:column; gap:10px; }
.cnm-cz .acct-link { display:flex; align-items:center; gap:12px; padding:14px 16px; background:#fff; border:1px solid var(--cnm-slate-200); border-radius:13px; text-decoration:none; color:inherit; }
.cnm-cz .acct-link:hover { border-color:var(--cnm-brand-300); }
.cnm-cz .al-ic { width:34px; height:34px; border-radius:9px; background:var(--cnm-brand-50); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.cnm-cz .al-t { flex:1; font-size:14px; font-weight:700; }

/* Settings */
.cnm-cz .cnm-settings, .cnm-cz .cnm-pros { max-width:560px; margin:0 auto; }
.cnm-cz .set-title { font-size:23px; font-weight:800; letter-spacing:-.025em; margin:10px 0 0; }
.cnm-cz .set-profile { display:flex; align-items:center; gap:13px; padding:14px; background:#fff; border:1px solid var(--cnm-slate-200); border-radius:14px; margin-top:16px; }
.cnm-cz .set-name { font-size:15px; font-weight:700; }
.cnm-cz .set-meta { font-size:12px; color:var(--cnm-slate-500); margin-top:1px; }
.cnm-cz .set-edit { font-size:12.5px; font-weight:700; color:var(--cnm-brand-600); background:none; border:0; cursor:pointer; align-self:flex-start; }
.cnm-cz .set-edit:disabled { color:var(--cnm-slate-300); cursor:not-allowed; }
.cnm-cz .set-sec-h { display:flex; align-items:center; gap:8px; margin:20px 0 8px; font-size:11px; font-weight:800; letter-spacing:.06em; color:var(--cnm-slate-400); }
.cnm-cz .set-saved { font-size:10px; font-weight:800; letter-spacing:.04em; color:var(--cnm-trust-600); opacity:0; transition:opacity .15s; }
.cnm-cz .set-saved.show { opacity:1; }
.cnm-cz .set-saved.err { color:var(--cnm-emer-600); }
.cnm-cz .set-card { background:#fff; border:1px solid var(--cnm-slate-200); border-radius:14px; overflow:hidden; }
.cnm-cz .set-row { display:flex; align-items:center; gap:12px; padding:14px 15px; border-bottom:1px solid var(--cnm-slate-100); }
.cnm-cz .set-row:last-child { border-bottom:0; }
.cnm-cz .set-row-l { font-size:13.5px; font-weight:600; }
.cnm-cz .set-row-s { font-size:11.5px; color:var(--cnm-slate-500); margin-top:1px; }
.cnm-cz .set-row-ic { width:34px; height:34px; border-radius:9px; background:var(--cnm-slate-100); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.cnm-cz .set-empty { padding:16px; font-size:12.5px; color:var(--cnm-slate-500); line-height:1.5; }

/* Toggle switch */
.cnm-cz .set-switch { width:46px; height:27px; border-radius:999px; background:var(--cnm-slate-300); position:relative; flex-shrink:0; border:0; padding:0; cursor:pointer; transition:background .15s; }
.cnm-cz .set-switch.on { background:var(--cnm-trust-500); }
.cnm-cz .set-switch .knob { position:absolute; top:3px; left:3px; width:21px; height:21px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgb(0 0 0 / .3); transition:left .15s; }
.cnm-cz .set-switch.on .knob { left:22px; }

/* Disclosures */
.cnm-cz .set-disc { border-bottom:1px solid var(--cnm-slate-100); }
.cnm-cz .set-disc:last-child { border-bottom:0; }
.cnm-cz .set-disc summary { display:flex; align-items:center; gap:10px; padding:14px 15px; font-size:13.5px; font-weight:600; cursor:pointer; list-style:none; }
.cnm-cz .set-disc summary::-webkit-details-marker { display:none; }
.cnm-cz .set-disc .set-chev { margin-left:auto; transition:transform .15s; }
.cnm-cz .set-disc[open] .set-chev { transform:rotate(90deg); }
.cnm-cz .set-disc p { margin:0; padding:0 15px 14px; font-size:12.5px; color:var(--cnm-slate-600); line-height:1.55; }

/* Sign out */
.cnm-cz .set-signout { margin-top:22px; }
.cnm-cz .set-signout button { width:100%; text-align:center; padding:14px; font-size:13.5px; font-weight:700; color:var(--cnm-emer-600); background:none; border:0; cursor:pointer; }
.cnm-cz .set-signout button:hover { color:var(--cnm-emer-700); }

/* Saved pros */
.cnm-cz .pros-sub { font-size:13px; color:var(--cnm-slate-500); margin:6px 0 16px; }
.cnm-cz .pro-row { display:flex; align-items:center; gap:12px; padding:14px; background:#fff; border:1px solid var(--cnm-slate-200); border-radius:14px; margin-bottom:11px; }
.cnm-cz .pro-row-top { display:flex; align-items:center; gap:8px; }
.cnm-cz .pro-row-name { font-size:14px; font-weight:700; }
.cnm-cz .pro-row-rating { display:inline-flex; align-items:center; gap:3px; font-size:12px; font-weight:700; color:var(--cnm-slate-600); }
.cnm-cz .pro-row-sub { font-size:11.5px; color:var(--cnm-slate-500); margin-top:2px; }
.cnm-cz .pro-row-actions { display:flex; align-items:center; gap:8px; flex-shrink:0; }
.cnm-cz .pro-remove { width:32px; height:32px; border-radius:9px; border:1px solid var(--cnm-slate-200); background:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; }
.cnm-cz .pro-remove:hover { border-color:var(--cnm-emer-300); background:var(--cnm-emer-50); }

/* Profile save toggle (button reusing .msg-btn) */
.cnm-cz .cnm-profile .msg-btn { cursor:pointer; }
.cnm-cz .cnm-profile .msg-btn.saved { border-color:var(--cnm-warn-400); background:var(--cnm-warn-50); }

/* ── Phase 9 · desktop polish + emergency ──────────────────────────────── */

/* Home: emergency entry (only rendered when the flag is on) */
.cnm-cz .hero-emer { display:inline-flex; align-items:center; gap:6px; margin-top:14px; font-size:13px; font-weight:700; color:var(--cnm-emer-600); text-decoration:none; padding:8px 14px; border:1px solid var(--cnm-emer-200); border-radius:999px; background:var(--cnm-emer-50); }
.cnm-cz .hero-emer:hover { background:var(--cnm-emer-100); }

/* Home: desktop 2-col hero with a real trust panel */
.cnm-cz .hero-aside { display:none; }
@media (min-width:1000px) {
    .cnm-cz .hero-wrap { display:grid; grid-template-columns:1.05fr .95fr; gap:44px; align-items:center; padding:18px 0 10px; }
    .cnm-cz .cnm-home .hero { text-align:left; padding:0; }
    .cnm-cz .cnm-home .hero h1 { font-size:46px; }
    .cnm-cz .cnm-home .hero p { margin-left:0; }
    .cnm-cz .cnm-home .searchbar { margin-left:0; }
    .cnm-cz .cnm-home .hero-note { text-align:left; }
    .cnm-cz .hero-aside { display:flex; flex-direction:column; gap:13px; background:linear-gradient(150deg,var(--cnm-brand-50),var(--cnm-slate-100)); border:1px solid var(--cnm-slate-200); border-radius:20px; padding:24px; }
    .cnm-cz .ha-row { display:flex; gap:13px; align-items:flex-start; background:#fff; border:1px solid var(--cnm-slate-200); border-radius:13px; padding:14px; }
    .cnm-cz .ha-ic { width:38px; height:38px; border-radius:10px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
    .cnm-cz .ha-t { font-size:14px; font-weight:700; }
    .cnm-cz .ha-d { font-size:12px; color:var(--cnm-slate-500); margin-top:2px; line-height:1.45; }
    /* Results: comfortable centered directory + card lift */
    .cnm-cz .cnm-results { max-width:1060px; margin:0 auto; }
    .cnm-cz .cnm-results .pro-card { transition:box-shadow .15s, border-color .15s; }
    .cnm-cz .cnm-results .pro-card:hover { border-color:var(--cnm-brand-300); box-shadow:0 8px 28px -16px rgb(15 23 42 / .35); }
}

/* Emergency — disabled gate (the launch default) */
.cnm-cz .cnm-emer-off { max-width:520px; margin:8px auto 0; background:var(--cnm-slate-900); border-radius:22px; padding:46px 34px; text-align:center; color:#fff; }
.cnm-cz .cnm-emer-off .eo-ic { width:60px; height:60px; border-radius:16px; background:rgb(255 255 255 / .08); display:flex; align-items:center; justify-content:center; margin:0 auto 18px; }
.cnm-cz .cnm-emer-off h1 { font-size:23px; font-weight:800; letter-spacing:-.02em; margin:0; }
.cnm-cz .cnm-emer-off p { font-size:14px; line-height:1.55; color:var(--cnm-slate-400); margin:12px 0 0; }
.cnm-cz .cnm-emer-off .eo-911 { display:flex; gap:9px; align-items:flex-start; text-align:left; margin:20px 0; padding:13px 15px; border-radius:12px; background:rgb(255 255 255 / .06); font-size:12.5px; line-height:1.5; color:var(--cnm-slate-300); }
.cnm-cz .cnm-emer-off .eo-911 strong { color:#fff; }
.cnm-cz .cnm-emer-off .eo-911 > svg { flex-shrink:0; margin-top:1px; }

/* Emergency — safety triage (when the flag is on) */
.cnm-cz .cnm-emer { max-width:560px; margin:0 auto; }
.cnm-cz .cnm-emer .em-tag { display:inline-flex; align-items:center; gap:7px; background:var(--cnm-emer-600); color:#fff; font-size:12px; font-weight:800; letter-spacing:.06em; padding:6px 12px; border-radius:999px; }
.cnm-cz .cnm-emer h1 { font-size:27px; font-weight:800; letter-spacing:-.025em; line-height:1.15; margin:14px 0 0; }
.cnm-cz .cnm-emer .em-sub { font-size:14.5px; color:var(--cnm-slate-600); line-height:1.5; margin:8px 0 0; }
.cnm-cz .cnm-emer .em-opts { display:flex; flex-direction:column; gap:10px; margin-top:20px; }
.cnm-cz .cnm-emer .em-opt { display:flex; align-items:center; gap:13px; padding:15px 16px; border-radius:15px; background:#fff; border:1.5px solid var(--cnm-slate-200); text-decoration:none; color:inherit; }
.cnm-cz .cnm-emer .em-opt > div { flex:1; min-width:0; }
.cnm-cz .cnm-emer .em-opt.danger { background:var(--cnm-emer-600); border-color:var(--cnm-emer-600); }
.cnm-cz .cnm-emer .em-opt.danger .em-opt-t { color:#fff; }
.cnm-cz .cnm-emer .em-opt.danger .em-opt-d { color:rgb(255 255 255 / .85); }
.cnm-cz .cnm-emer .em-opt.go:hover { border-color:var(--cnm-emer-400); }
.cnm-cz .cnm-emer .em-opt-ic { width:42px; height:42px; border-radius:11px; flex-shrink:0; display:flex; align-items:center; justify-content:center; }
.cnm-cz .cnm-emer .em-opt.danger .em-opt-ic { background:rgb(255 255 255 / .18); }
.cnm-cz .cnm-emer .em-opt.go .em-opt-ic { background:var(--cnm-emer-50); }
.cnm-cz .cnm-emer .em-opt-t { font-size:15px; font-weight:800; }
.cnm-cz .cnm-emer .em-opt-d { font-size:12px; line-height:1.45; color:var(--cnm-slate-500); margin-top:2px; }
.cnm-cz .cnm-emer .em-note { margin-top:16px; font-size:12px; line-height:1.5; color:var(--cnm-slate-500); padding:12px 14px; background:var(--cnm-slate-100); border-radius:12px; }

/* ── Header Messages link + unread dot ─────────────────────────────────── */
.cnm-cz .ccx-msglink { position: relative; display: inline-flex; align-items: center; gap: 7px; font-size: 14px; font-weight: 600; color: var(--cnm-slate-700); text-decoration: none; }
.cnm-cz .ccx-msglink:hover { color: var(--cnm-brand-700); }
.cnm-cz .ccx-msgdot { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 999px; background: var(--cnm-emer-500); color: #fff; font-size: 11px; font-weight: 800; line-height: 1; }

/* ── Account "Messages" tile → real link ───────────────────────────────── */
.cnm-cz a.dtile-link { text-decoration: none; color: inherit; cursor: pointer; transition: border-color .12s, background .12s; }
.cnm-cz a.dtile-link:hover { border-color: var(--cnm-brand-300); background: var(--cnm-brand-50); }
.cnm-cz .dt-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; background: var(--cnm-emer-500); color: #fff; font-size: 11.5px; font-weight: 800; flex-shrink: 0; }

/* ── Homeowner ↔ pro project chat ──────────────────────────────────────── */
.cnm-cz .cz-chat { max-width: 680px; margin: 0 auto; }
.cnm-cz .cz-chat-back { display: inline-flex; align-items: center; gap: 5px; font-size: 13px; font-weight: 600; color: var(--cnm-slate-500); text-decoration: none; margin-bottom: 12px; }
.cnm-cz .cz-chat-back:hover { color: var(--cnm-brand-700); }
.cnm-cz .cz-chat-card { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.cnm-cz .cz-chat-head { display: flex; align-items: center; gap: 12px; padding: 16px 18px; border-bottom: 1px solid var(--cnm-slate-200); }
.cnm-cz .cz-chat-av { width: 40px; height: 40px; border-radius: 50%; background: var(--cnm-brand-600); color: #fff; font-size: 14px; font-weight: 800; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.cnm-cz .cz-chat-name { font-size: 15px; font-weight: 700; }
.cnm-cz .cz-chat-sub { font-size: 12px; color: var(--cnm-slate-500); margin-top: 1px; }
.cnm-cz .cz-chat-thread { padding: 18px; display: flex; flex-direction: column; gap: 12px; background: var(--cnm-slate-50); min-height: 260px; max-height: 54vh; overflow-y: auto; }
.cnm-cz .cz-row { display: flex; }
.cnm-cz .cz-row.me { justify-content: flex-end; }
.cnm-cz .cz-bubble { max-width: 78%; background: #fff; border: 1px solid var(--cnm-slate-200); border-radius: 14px; border-top-left-radius: 4px; padding: 10px 13px; }
.cnm-cz .cz-row.me .cz-bubble { background: var(--cnm-brand-600); border-color: var(--cnm-brand-600); color: #fff; border-radius: 14px; border-top-right-radius: 4px; }
.cnm-cz .cz-meta { font-size: 11px; font-weight: 600; color: var(--cnm-slate-400); margin-bottom: 3px; }
.cnm-cz .cz-row.me .cz-meta { color: rgb(255 255 255 / .78); }
.cnm-cz .cz-text { font-size: 13.5px; line-height: 1.5; white-space: pre-wrap; word-break: break-word; }
.cnm-cz .cz-empty { display: flex; flex-direction: column; align-items: center; gap: 9px; text-align: center; color: var(--cnm-slate-500); font-size: 13px; line-height: 1.5; padding: 36px 28px; margin: auto; max-width: 380px; }
.cnm-cz .cz-compose { display: flex; gap: 9px; padding: 13px 15px; border-top: 1px solid var(--cnm-slate-200); }
.cnm-cz .cz-compose input { flex: 1; height: 42px; padding: 0 14px; border: 1px solid var(--cnm-slate-300); border-radius: 10px; font-size: 14px; font-family: inherit; outline: none; background: #fff; color: inherit; }
.cnm-cz .cz-compose input:focus { border-color: var(--cnm-brand-500); box-shadow: 0 0 0 3px var(--cnm-brand-100); }
.cnm-cz .cz-compose-locked { padding: 14px 16px; border-top: 1px solid var(--cnm-slate-200); font-size: 12.5px; color: var(--cnm-slate-500); text-align: center; }
.cnm-cz .cz-chat-foot { display: flex; align-items: center; justify-content: center; gap: 6px; margin-top: 12px; font-size: 11.5px; color: var(--cnm-slate-400); }
.cnm-cz .cz-chat-err { margin-top: 8px; font-size: 12.5px; color: var(--cnm-emer-600); font-weight: 600; text-align: center; }
.cnm-cz .cz-chat-none { padding: 40px 30px; display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center; }
.cnm-cz .cz-none-t { font-size: 16px; font-weight: 700; }
.cnm-cz .cz-none-d { font-size: 13.5px; color: var(--cnm-slate-600); line-height: 1.5; max-width: 360px; }
.cnm-cz .cz-chat-none .cnm-btn { margin-top: 4px; }

/* ── Request-a-quote / contact modal (the no-spam flow on a pro profile) ── */
.cnm-cz .cnm-qmodal-scrim { position: fixed; inset: 0; z-index: 1200; display: none; background: rgb(15 23 42 / .55); padding: 20px; overflow-y: auto; }
.cnm-cz .cnm-qmodal-scrim.open { display: flex; align-items: flex-start; justify-content: center; }
.cnm-cz .cnm-qmodal { font-family: inherit; width: 100%; max-width: 440px; margin: auto; background: #fff; border-radius: 18px; box-shadow: 0 24px 60px rgb(15 23 42 / .35); padding: 18px; max-height: calc(100vh - 40px); overflow-y: auto; }
.cnm-cz .cnm-qmodal .qm-head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.cnm-cz .cnm-qmodal .qm-title { font-size: 15px; font-weight: 800; letter-spacing: -.01em; }
.cnm-cz .cnm-qmodal .qm-sub { font-size: 12.5px; color: var(--cnm-slate-500); margin-top: 1px; }
.cnm-cz .cnm-qmodal .qm-x { margin-left: auto; width: 32px; height: 32px; border: 0; border-radius: 9px; background: var(--cnm-slate-100); display: grid; place-items: center; cursor: pointer; flex: none; }
.cnm-cz .cnm-qmodal .qm-x:hover { background: var(--cnm-slate-200); }
.cnm-cz .cnm-qmodal .qm-step { display: none; }
.cnm-cz .cnm-qmodal .qm-step.on { display: block; }
.cnm-cz .cnm-qmodal .qfield { margin-bottom: 11px; }
.cnm-cz .cnm-qmodal .qfield label { display: block; font-size: 12.5px; font-weight: 700; color: var(--cnm-slate-700); margin-bottom: 5px; }
.cnm-cz .cnm-qmodal .qfield textarea,
.cnm-cz .cnm-qmodal .qfield input,
.cnm-cz .cnm-qmodal .qfield select { width: 100%; font: inherit; font-size: 14px; padding: 10px 12px; border: 1px solid var(--cnm-slate-300); border-radius: 10px; background: #fff; color: var(--cnm-slate-900); outline: none; }
.cnm-cz .cnm-qmodal .qfield textarea { resize: vertical; min-height: 72px; line-height: 1.5; }
.cnm-cz .cnm-qmodal .qfield textarea:focus,
.cnm-cz .cnm-qmodal .qfield input:focus,
.cnm-cz .cnm-qmodal .qfield select:focus { border-color: var(--cnm-brand-500); box-shadow: 0 0 0 3px var(--cnm-brand-100); }
.cnm-cz .cnm-qmodal .qfield .qmono { font-family: var(--cnm-font-mono); letter-spacing: .01em; }
.cnm-cz .cnm-qmodal .qerr { font-size: 11.5px; color: var(--cnm-emer-600); margin-top: 4px; }
.cnm-cz .cnm-qmodal .qm-privacy { display: flex; gap: 8px; align-items: flex-start; margin-top: 4px; padding: 10px 12px; background: var(--cnm-trust-50); border: 1px solid var(--cnm-trust-200); border-radius: 11px; font-size: 12px; line-height: 1.45; color: var(--cnm-slate-700); }
.cnm-cz .cnm-qmodal .qm-privacy > svg { flex: none; margin-top: 1px; }
.cnm-cz .cnm-qmodal .qm-success { width: 60px; height: 60px; border-radius: 50%; background: var(--cnm-trust-50); border: 1px solid var(--cnm-trust-200); display: grid; place-items: center; margin: 6px auto 12px; }
.cnm-cz .cnm-qmodal .qm-done-h { font-size: 20px; font-weight: 800; letter-spacing: -.02em; }
.cnm-cz .cnm-qmodal .qm-done-p { font-size: 13.5px; color: var(--cnm-slate-600); line-height: 1.55; margin: 8px auto 0; max-width: 340px; }
.cnm-cz .cnm-qmodal .qm-next { margin-top: 16px; padding: 13px 14px; border: 1px solid var(--cnm-slate-200); border-radius: 12px; text-align: left; background: var(--cnm-slate-50); }
.cnm-cz .cnm-qmodal .qm-next-h { font-size: 10.5px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--cnm-slate-500); margin-bottom: 8px; }
.cnm-cz .cnm-qmodal .qm-next ol { margin: 0; padding-left: 18px; }
.cnm-cz .cnm-qmodal .qm-next li { font-size: 12.5px; color: var(--cnm-slate-700); line-height: 1.5; margin-bottom: 5px; }
.cnm-cz .cnm-qmodal .qm-next li:last-child { margin-bottom: 0; }

/* ── Results toolbar (real Sort) + per-card Contact CTA (search.html parity) ── */
.cnm-cz .cnm-results .rtools { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.cnm-cz .cnm-results .results-sort { display: inline-flex; align-items: center; gap: 7px; margin: 0; }
.cnm-cz .cnm-results .results-sort label { font-size: 12px; font-weight: 700; color: var(--cnm-slate-500); }
.cnm-cz .cnm-results .results-sort select { height: 34px; padding: 0 10px; border: 1px solid var(--cnm-slate-300); border-radius: 9px; background: #fff; font: inherit; font-size: 13px; font-weight: 600; color: var(--cnm-slate-700); cursor: pointer; }
.cnm-cz .cnm-results .results-sort select:focus { outline: none; border-color: var(--cnm-brand-500); box-shadow: 0 0 0 3px var(--cnm-brand-100); }
.cnm-cz .cnm-results .resp-chip { font-size: 11.5px; font-weight: 600; color: var(--cnm-slate-500); }
.cnm-cz .cnm-results .pro-cta { display: flex; gap: 7px; margin-top: 4px; }
.cnm-cz .cnm-results .pro-cta .cnm-btn { white-space: nowrap; }

/* ── Cost guide (multi-trade planning ranges, cost-guide.html parity) ───── */
.cnm-cz .cnm-costguide { max-width: 920px; margin: 0 auto; }
.cnm-cz .cnm-costguide .cg-hero { text-align: center; padding: 8px 0 6px; }
.cnm-cz .cnm-costguide .cg-eyebrow { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; color: var(--cnm-brand-700); background: var(--cnm-brand-50); border: 1px solid var(--cnm-brand-100); padding: 5px 11px; border-radius: 999px; }
.cnm-cz .cnm-costguide h1 { font-size: 34px; font-weight: 800; letter-spacing: -.03em; line-height: 1.1; margin: 14px 0 0; }
.cnm-cz .cnm-costguide h1 .accent { color: var(--cnm-brand-600); }
.cnm-cz .cnm-costguide .cg-lead { font-size: 15px; color: var(--cnm-slate-600); line-height: 1.55; max-width: 620px; margin: 12px auto 0; }
.cnm-cz .cnm-costguide .cg-featured { display: grid; grid-template-columns: 1.05fr 1fr; gap: 22px; margin-top: 30px; align-items: start; }
.cnm-cz .cnm-costguide .cg-estbox { background: linear-gradient(135deg, var(--cnm-brand-50), #fff); border: 1px solid var(--cnm-brand-200); border-radius: 18px; padding: 24px; }
.cnm-cz .cnm-costguide .cg-estbox-eyebrow { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; color: var(--cnm-brand-700); }
.cnm-cz .cnm-costguide .cg-big { font-size: 36px; font-weight: 800; letter-spacing: -.03em; margin: 8px 0 2px; }
.cnm-cz .cnm-costguide .cg-estbox-sub { font-size: 13.5px; color: var(--cnm-slate-600); margin-bottom: 16px; }
.cnm-cz .cnm-costguide .cg-estbox-note { display: flex; align-items: center; gap: 6px; justify-content: center; margin-top: 11px; font-size: 12px; color: var(--cnm-slate-500); }
.cnm-cz .cnm-costguide .cg-items-h { font-size: 14px; font-weight: 700; margin-bottom: 10px; }
.cnm-cz .cnm-costguide .cg-items { border: 1px solid var(--cnm-slate-200); border-radius: 14px; overflow: hidden; background: #fff; }
.cnm-cz .cnm-costguide .cg-li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; border-top: 1px solid var(--cnm-slate-100); font-size: 13.5px; color: var(--cnm-slate-700); }
.cnm-cz .cnm-costguide .cg-li:first-child { border-top: 0; }
.cnm-cz .cnm-costguide .cg-li .rng { font-weight: 600; color: var(--cnm-slate-900); white-space: nowrap; }
.cnm-cz .cnm-costguide .cg-sec-h { font-size: 18px; font-weight: 800; letter-spacing: -.02em; margin: 34px 0 14px; }
.cnm-cz .cnm-costguide .cg-cats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.cnm-cz .cnm-costguide .cg-cat { border: 1px solid var(--cnm-slate-200); border-radius: 16px; overflow: hidden; background: #fff; }
.cnm-cz .cnm-costguide .cg-cat-h { display: flex; align-items: center; gap: 11px; padding: 14px 18px; background: var(--cnm-slate-50); border-bottom: 1px solid var(--cnm-slate-200); }
.cnm-cz .cnm-costguide .cg-cat-ib { width: 34px; height: 34px; border-radius: 9px; background: var(--cnm-brand-100); display: grid; place-items: center; flex: none; }
.cnm-cz .cnm-costguide .cg-cat-h h3 { font-size: 15.5px; font-weight: 700; margin: 0; flex: 1; }
.cnm-cz .cnm-costguide .cg-cat-link { font-size: 12.5px; font-weight: 700; color: var(--cnm-brand-600); white-space: nowrap; }
.cnm-cz .cnm-costguide .cg-crow { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 18px; border-top: 1px solid var(--cnm-slate-100); font-size: 13px; color: var(--cnm-slate-700); }
.cnm-cz .cnm-costguide .cg-crow .rng { font-weight: 600; color: var(--cnm-brand-700); white-space: nowrap; }
.cnm-cz .cnm-costguide .cg-note { display: flex; gap: 9px; align-items: flex-start; margin-top: 22px; padding: 14px 16px; background: var(--cnm-brand-50); border: 1px solid var(--cnm-brand-100); border-radius: 13px; font-size: 12.5px; line-height: 1.5; color: var(--cnm-slate-700); }
.cnm-cz .cnm-costguide .cg-note > svg { flex: none; margin-top: 1px; }
.cnm-cz .cnm-costguide .cg-cta { text-align: center; margin-top: 34px; padding: 30px; border: 1px solid var(--cnm-slate-200); border-radius: 18px; background: var(--cnm-slate-50); }
.cnm-cz .cnm-costguide .cg-cta h2 { font-size: 21px; font-weight: 800; letter-spacing: -.02em; margin: 0; }
.cnm-cz .cnm-costguide .cg-cta p { font-size: 14px; color: var(--cnm-slate-600); margin: 8px 0 0; }
.cnm-cz .cnm-costguide .cg-cta-btns { display: flex; gap: 12px; justify-content: center; margin-top: 18px; flex-wrap: wrap; }
@media (max-width: 860px) {
    .cnm-cz .cnm-costguide .cg-featured, .cnm-cz .cnm-costguide .cg-cats { grid-template-columns: 1fr; }
    .cnm-cz .cnm-costguide h1 { font-size: 27px; }
}

/* ── Marketing / company pages (how-it-works, about, trust, contact) ────── */
.cnm-cz .cnm-mpage { max-width: 980px; margin: 0 auto; }
.cnm-cz .cnm-mpage .mp-hero { text-align: center; padding: 10px 0 14px; }
.cnm-cz .cnm-mpage .mp-eyebrow { display: inline-flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 700; color: var(--cnm-slate-600); background: var(--cnm-slate-100); padding: 5px 12px; border-radius: 999px; }
.cnm-cz .cnm-mpage .mp-eyebrow.center { color: var(--cnm-brand-700); background: var(--cnm-brand-50); border: 1px solid var(--cnm-brand-100); }
.cnm-cz .cnm-mpage .mp-eyebrow .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--cnm-trust-500); }
.cnm-cz .cnm-mpage h1 { font-size: 36px; font-weight: 800; letter-spacing: -.03em; line-height: 1.1; margin: 16px 0 0; }
.cnm-cz .cnm-mpage h1 .accent { color: var(--cnm-brand-600); }
.cnm-cz .cnm-mpage .mp-lead { font-size: 16px; color: var(--cnm-slate-600); line-height: 1.6; max-width: 640px; margin: 14px auto 0; }
.cnm-cz .cnm-mpage .mp-sec-head { text-align: center; margin: 44px 0 4px; }
.cnm-cz .cnm-mpage .mp-sec-h { font-size: 24px; font-weight: 800; letter-spacing: -.025em; margin: 12px 0 0; }
.cnm-cz .cnm-mpage .mp-cta { text-align: center; margin-top: 40px; padding: 34px; border: 1px solid var(--cnm-slate-200); border-radius: 20px; background: var(--cnm-slate-50); }
.cnm-cz .cnm-mpage .mp-cta h2 { font-size: 22px; font-weight: 800; letter-spacing: -.02em; margin: 0; }
.cnm-cz .cnm-mpage .mp-cta p { font-size: 14.5px; color: var(--cnm-slate-600); margin: 8px 0 0; }
.cnm-cz .cnm-mpage .mp-cta-btns { display: flex; gap: 12px; justify-content: center; margin-top: 18px; flex-wrap: wrap; }

/* how-it-works: flow + comparison */
.cnm-cz .cnm-howitworks .mp-flow { margin-top: 24px; }
.cnm-cz .cnm-howitworks .mp-fstep { display: grid; grid-template-columns: 64px 1fr; gap: 22px; align-items: start; padding: 28px 0; border-top: 1px solid var(--cnm-slate-200); }
.cnm-cz .cnm-howitworks .mp-fstep:first-child { border-top: 0; }
.cnm-cz .cnm-howitworks .mp-fnum { width: 52px; height: 52px; border-radius: 15px; background: var(--cnm-brand-600); color: #fff; display: grid; place-items: center; font-size: 21px; font-weight: 800; box-shadow: 0 8px 20px -6px rgb(37 99 235 / .5); }
.cnm-cz .cnm-howitworks .mp-fstep h3 { font-size: 21px; font-weight: 800; letter-spacing: -.025em; margin: 4px 0 7px; }
.cnm-cz .cnm-howitworks .mp-fstep p { font-size: 15px; color: var(--cnm-slate-600); line-height: 1.6; margin: 0; }
.cnm-cz .cnm-howitworks .mp-pt { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: var(--cnm-trust-700); margin-top: 12px; }
.cnm-cz .cnm-howitworks .mp-compare { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 22px; }
.cnm-cz .cnm-howitworks .mp-ctable { border-radius: 18px; overflow: hidden; border: 1px solid var(--cnm-slate-200); }
.cnm-cz .cnm-howitworks .mp-ctable .h { padding: 16px 22px; font-weight: 800; font-size: 16px; letter-spacing: -.01em; }
.cnm-cz .cnm-howitworks .mp-ctable.us .h { background: var(--cnm-brand-600); color: #fff; }
.cnm-cz .cnm-howitworks .mp-ctable.them .h { background: var(--cnm-slate-100); color: var(--cnm-slate-700); }
.cnm-cz .cnm-howitworks .mp-ctable .row { display: flex; gap: 10px; align-items: flex-start; padding: 13px 22px; border-top: 1px solid var(--cnm-slate-100); font-size: 14px; color: var(--cnm-slate-700); }
.cnm-cz .cnm-howitworks .mp-ctable .row > svg { flex: none; margin-top: 1px; }

/* about: story + stats + values */
.cnm-cz .cnm-about .mp-story { max-width: 720px; margin: 30px auto 0; }
.cnm-cz .cnm-about .mp-story p { font-size: 16px; color: var(--cnm-slate-700); line-height: 1.7; margin: 0 0 16px; }
.cnm-cz .cnm-about .mp-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 34px; text-align: center; }
.cnm-cz .cnm-about .mp-stats .v { font-size: 32px; font-weight: 800; letter-spacing: -.03em; color: var(--cnm-brand-600); }
.cnm-cz .cnm-about .mp-stats .l { font-size: 13px; color: var(--cnm-slate-600); margin-top: 4px; }
.cnm-cz .cnm-about .mp-vals { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 22px; }
.cnm-cz .cnm-about .mp-val { border: 1px solid var(--cnm-slate-200); border-radius: 18px; padding: 24px; background: #fff; }
.cnm-cz .cnm-about .mp-val-ib { width: 46px; height: 46px; border-radius: 13px; background: var(--cnm-brand-50); display: grid; place-items: center; margin-bottom: 14px; }
.cnm-cz .cnm-about .mp-val h3 { font-size: 18px; font-weight: 700; letter-spacing: -.02em; margin: 0 0 6px; }
.cnm-cz .cnm-about .mp-val p { font-size: 14px; color: var(--cnm-slate-600); line-height: 1.6; margin: 0; }

/* trust & safety: pillars + steps + report */
.cnm-cz .cnm-trust .mp-pillars { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; margin-top: 24px; }
.cnm-cz .cnm-trust .mp-pillar { border: 1px solid var(--cnm-slate-200); border-radius: 18px; padding: 24px; background: #fff; }
.cnm-cz .cnm-trust .mp-pillar-ib { width: 46px; height: 46px; border-radius: 13px; background: var(--cnm-trust-50); display: grid; place-items: center; margin-bottom: 14px; }
.cnm-cz .cnm-trust .mp-pillar h3 { font-size: 19px; font-weight: 700; letter-spacing: -.02em; margin: 0 0 7px; }
.cnm-cz .cnm-trust .mp-pillar > p { font-size: 14px; color: var(--cnm-slate-600); line-height: 1.6; margin: 0 0 12px; }
.cnm-cz .cnm-trust .mp-pillar ul { margin: 0; padding: 0; list-style: none; }
.cnm-cz .cnm-trust .mp-pillar li { display: flex; gap: 9px; align-items: flex-start; padding: 5px 0; font-size: 13.5px; color: var(--cnm-slate-700); line-height: 1.5; }
.cnm-cz .cnm-trust .mp-pillar li > svg { flex: none; margin-top: 2px; }
.cnm-cz .cnm-trust .mp-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 22px; }
.cnm-cz .cnm-trust .mp-step .n { width: 34px; height: 34px; border-radius: 10px; background: var(--cnm-brand-100); color: var(--cnm-brand-700); display: grid; place-items: center; font-weight: 800; font-size: 14px; margin-bottom: 13px; }
.cnm-cz .cnm-trust .mp-step h4 { font-size: 15.5px; font-weight: 700; margin: 0 0 6px; }
.cnm-cz .cnm-trust .mp-step p { font-size: 13.5px; color: var(--cnm-slate-600); line-height: 1.55; margin: 0; }
.cnm-cz .cnm-trust .mp-report { background: var(--cnm-slate-900); color: #fff; border-radius: 20px; padding: 34px; display: flex; align-items: center; gap: 22px; margin-top: 40px; }
.cnm-cz .cnm-trust .mp-report > svg { flex: none; }
.cnm-cz .cnm-trust .mp-report h2 { color: #fff; font-size: 24px; font-weight: 800; letter-spacing: -.025em; margin: 0 0 6px; }
.cnm-cz .cnm-trust .mp-report p { color: rgb(255 255 255 / .72); font-size: 14.5px; margin: 0; line-height: 1.55; }
.cnm-cz .cnm-trust .mp-report .cnm-btn { flex: none; }

/* contact: form + channels + success */
.cnm-cz .cnm-contact .ct-layout { display: grid; grid-template-columns: 1fr 360px; gap: 28px; margin-top: 26px; align-items: start; }
.cnm-cz .cnm-contact .ct-form { border: 1px solid var(--cnm-slate-200); border-radius: 18px; padding: 26px; background: #fff; box-shadow: var(--cnm-shadow-card); }
.cnm-cz .cnm-contact .ct-form-h { font-size: 18px; font-weight: 700; letter-spacing: -.01em; margin-bottom: 18px; }
.cnm-cz .cnm-contact .ct-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.cnm-cz .cnm-contact .ct-field { margin-bottom: 15px; }
.cnm-cz .cnm-contact .ct-field label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 6px; }
.cnm-cz .cnm-contact .ct-field input, .cnm-cz .cnm-contact .ct-field select, .cnm-cz .cnm-contact .ct-field textarea { width: 100%; border: 1px solid var(--cnm-slate-300); border-radius: 10px; padding: 0 14px; height: 44px; font: inherit; font-size: 14px; outline: none; background: #fff; color: var(--cnm-slate-900); }
.cnm-cz .cnm-contact .ct-field textarea { height: auto; padding: 12px 14px; min-height: 120px; resize: vertical; line-height: 1.5; }
.cnm-cz .cnm-contact .ct-field input:focus, .cnm-cz .cnm-contact .ct-field select:focus, .cnm-cz .cnm-contact .ct-field textarea:focus { border-color: var(--cnm-brand-500); box-shadow: 0 0 0 3px var(--cnm-brand-100); }
.cnm-cz .cnm-contact .ct-err { font-size: 11.5px; color: var(--cnm-emer-600); margin-top: 4px; }
.cnm-cz .cnm-contact .ct-success { border: 1px solid var(--cnm-trust-200); background: var(--cnm-trust-50); border-radius: 18px; padding: 40px 28px; text-align: center; }
.cnm-cz .cnm-contact .ct-success-ic { width: 64px; height: 64px; border-radius: 50%; background: #fff; border: 1px solid var(--cnm-trust-200); display: grid; place-items: center; margin: 0 auto 16px; }
.cnm-cz .cnm-contact .ct-success-h { font-size: 22px; font-weight: 800; letter-spacing: -.02em; }
.cnm-cz .cnm-contact .ct-success p { font-size: 14.5px; color: var(--cnm-slate-600); max-width: 360px; margin: 8px auto 18px; line-height: 1.55; }
.cnm-cz .cnm-contact .ct-channels { display: flex; flex-direction: column; gap: 13px; }
.cnm-cz .cnm-contact .ct-ch { display: flex; gap: 13px; padding: 16px; border: 1px solid var(--cnm-slate-200); border-radius: 14px; background: #fff; }
.cnm-cz .cnm-contact .ct-ch-ib { width: 42px; height: 42px; border-radius: 11px; display: grid; place-items: center; flex: none; }
.cnm-cz .cnm-contact .ct-ch-ib.brand { background: var(--cnm-brand-50); } .cnm-cz .cnm-contact .ct-ch-ib.emer { background: var(--cnm-emer-50); } .cnm-cz .cnm-contact .ct-ch-ib.trust { background: var(--cnm-trust-50); } .cnm-cz .cnm-contact .ct-ch-ib.slate { background: var(--cnm-slate-100); }
.cnm-cz .cnm-contact .ct-ch h3 { font-size: 15px; font-weight: 700; margin: 0 0 3px; }
.cnm-cz .cnm-contact .ct-ch p { font-size: 13px; color: var(--cnm-slate-600); margin: 0; line-height: 1.5; }
.cnm-cz .cnm-contact .ct-ch a { color: var(--cnm-brand-600); font-weight: 600; }
@media (max-width: 880px) {
    .cnm-cz .cnm-mpage h1 { font-size: 28px; }
    .cnm-cz .cnm-howitworks .mp-compare, .cnm-cz .cnm-about .mp-stats, .cnm-cz .cnm-about .mp-vals, .cnm-cz .cnm-trust .mp-pillars, .cnm-cz .cnm-trust .mp-steps, .cnm-cz .cnm-contact .ct-layout, .cnm-cz .cnm-contact .ct-row2 { grid-template-columns: 1fr; }
    .cnm-cz .cnm-about .mp-stats { grid-template-columns: 1fr 1fr; }
    .cnm-cz .cnm-trust .mp-report { flex-direction: column; text-align: center; }
}

/* ── Results filter rail (real credential/tier filters, search.html parity) ── */
.cnm-cz .cnm-results .results-head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 16px; }
.cnm-cz .cnm-results .results-head h1 { font-size: 24px; font-weight: 800; letter-spacing: -.02em; margin: 0; }
.cnm-cz .cnm-results .results-sub { font-size: 13px; color: var(--cnm-slate-500); margin-top: 2px; }
.cnm-cz .cnm-results-layout { display: grid; grid-template-columns: 240px 1fr; gap: 24px; align-items: start; }
.cnm-cz .cnm-rfilters { background: #fff; border: 1px solid var(--cnm-slate-200); border-radius: 16px; padding: 18px; position: sticky; top: 84px; }
.cnm-cz .cnm-rfilters .rf-head { display: flex; align-items: center; justify-content: space-between; font-size: 13px; font-weight: 700; margin-bottom: 14px; }
.cnm-cz .cnm-rfilters .rf-head a { font-size: 12px; font-weight: 600; color: var(--cnm-brand-600); }
.cnm-cz .cnm-rfilters .rf-group { margin-bottom: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--cnm-slate-100); }
.cnm-cz .cnm-rfilters .rf-group.rf-last { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.cnm-cz .cnm-rfilters .rf-lbl { font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--cnm-slate-500); margin-bottom: 8px; }
.cnm-cz .cnm-rfilters select { width: 100%; height: 38px; padding: 0 11px; border: 1px solid var(--cnm-slate-300); border-radius: 9px; background: #fff; font: inherit; font-size: 13.5px; font-weight: 600; color: var(--cnm-slate-700); cursor: pointer; }
.cnm-cz .cnm-rfilters select:focus { outline: none; border-color: var(--cnm-brand-500); box-shadow: 0 0 0 3px var(--cnm-brand-100); }
.cnm-cz .cnm-rfilters .rf-check { display: flex; align-items: center; gap: 9px; padding: 6px 0; font-size: 13.5px; color: var(--cnm-slate-700); cursor: pointer; }
.cnm-cz .cnm-rfilters .rf-check input { accent-color: var(--cnm-brand-600); width: 16px; height: 16px; flex: none; cursor: pointer; }
@media (max-width: 1000px) {
    .cnm-cz .cnm-results-layout { grid-template-columns: 1fr; gap: 16px; }
    .cnm-cz .cnm-rfilters { position: static; }
}

/* ── Pro profile · 2-column layout (profile.html parity) ────────────────── */
.cnm-cz .cnm-profile .back-link { display: inline-block; font-size: 13px; font-weight: 600; color: var(--cnm-slate-500); text-decoration: none; margin-bottom: 10px; }
.cnm-cz .cnm-profile .back-link:hover { color: var(--cnm-brand-700); }
.cnm-cz .cnm-profile .prof-privacy { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--cnm-trust-700); background: var(--cnm-trust-50); border: 1px solid var(--cnm-trust-200); border-radius: 10px; padding: 9px 13px; margin-bottom: 16px; }
.cnm-cz .cnm-profile .prof-grid { display: grid; grid-template-columns: 1fr 320px; gap: 24px; align-items: start; }
.cnm-cz .cnm-profile .prof-col-main { display: flex; flex-direction: column; gap: 16px; }
.cnm-cz .cnm-profile .prof-card { background: #fff; border: 1px solid var(--cnm-slate-200); border-radius: 18px; padding: 22px; }
.cnm-cz .cnm-profile .prof-card .prof-head { align-items: flex-start; }
.cnm-cz .cnm-profile .prof-name-row { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.cnm-cz .cnm-profile .prof-name-row h1 { font-size: 23px; font-weight: 800; letter-spacing: -.02em; margin: 0; }
.cnm-cz .cnm-profile .prof-tier { font-size: 10px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; padding: 3px 7px; border-radius: 6px; }
.cnm-cz .cnm-profile .prof-tier.elite { color: #fff; background: linear-gradient(135deg, #f59e0b, #d97706); }
.cnm-cz .cnm-profile .prof-tier.pro { color: var(--cnm-brand-700); background: var(--cnm-brand-100); }
.cnm-cz .cnm-profile .prof-meta { font-size: 13px; color: var(--cnm-slate-500); margin-top: 3px; }
.cnm-cz .cnm-profile .prof-substats { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 7px; font-size: 12.5px; color: var(--cnm-slate-600); }
.cnm-cz .cnm-profile .prof-substats .ss { display: inline-flex; align-items: center; gap: 3px; }
.cnm-cz .cnm-profile .prof-substats .sep { color: var(--cnm-slate-300); }
.cnm-cz .cnm-profile .prof-bio { font-size: 14px; line-height: 1.6; color: var(--cnm-slate-700); margin: 16px 0 0; }
.cnm-cz .cnm-profile .prof-verify { background: #fff; border: 1px solid var(--cnm-slate-200); border-radius: 16px; overflow: hidden; border-top: 3px solid var(--cnm-trust-500); }
.cnm-cz .cnm-profile .pv-head { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; padding: 15px 18px 0; }
.cnm-cz .cnm-profile .pv-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; padding: 12px 18px 0; }
.cnm-cz .cnm-profile .pv-item { display: block; padding: 4px 0 14px; text-decoration: none; color: inherit; }
.cnm-cz .cnm-profile .pv-lbl { display: flex; align-items: center; gap: 5px; font-size: 10.5px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; color: var(--cnm-trust-700); }
.cnm-cz .cnm-profile .pv-val { font-size: 14px; font-weight: 700; margin-top: 4px; }
.cnm-cz .cnm-profile .pv-sub { font-size: 11px; color: var(--cnm-slate-500); font-family: var(--cnm-font-mono); margin-top: 2px; }
.cnm-cz .cnm-profile .pv-foot { font-size: 11.5px; color: var(--cnm-slate-400); text-align: center; padding: 10px; border-top: 1px solid var(--cnm-slate-100); background: var(--cnm-slate-50); }
.cnm-cz .cnm-profile .prof-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.cnm-cz .cnm-profile .prof-stat { background: #fff; border: 1px solid var(--cnm-slate-200); border-radius: 14px; padding: 15px; }
.cnm-cz .cnm-profile .ps-lbl { font-size: 11px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; color: var(--cnm-slate-500); }
.cnm-cz .cnm-profile .ps-val { font-size: 22px; font-weight: 800; letter-spacing: -.02em; margin-top: 5px; }
.cnm-cz .cnm-profile .ps-sub { font-size: 11px; color: var(--cnm-slate-400); margin-top: 1px; }
.cnm-cz .cnm-profile .prof-sec { background: #fff; border: 1px solid var(--cnm-slate-200); border-radius: 16px; padding: 20px; }
.cnm-cz .cnm-profile .prof-sec .sec-h { margin-top: 0; }
.cnm-cz .cnm-profile .prof-sec .review-card { margin-bottom: 10px; }
.cnm-cz .cnm-profile .prof-sec .review-card:last-child { margin-bottom: 0; }
.cnm-cz .cnm-profile .prof-col-side { display: flex; flex-direction: column; gap: 16px; position: sticky; top: 84px; }
.cnm-cz .cnm-profile .prof-price-card { background: #fff; border: 1px solid var(--cnm-slate-200); border-radius: 18px; padding: 20px; box-shadow: var(--cnm-shadow-card); }
.cnm-cz .cnm-profile .pp-eyebrow { font-size: 11px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--cnm-slate-500); }
.cnm-cz .cnm-profile .pp-range { font-size: 26px; font-weight: 800; letter-spacing: -.02em; font-family: var(--cnm-font-mono); margin-top: 6px; }
.cnm-cz .cnm-profile .pp-sub { font-size: 12px; color: var(--cnm-slate-500); margin-top: 2px; }
.cnm-cz .cnm-profile .pp-save { width: 100%; display: flex; align-items: center; justify-content: center; gap: 7px; height: 38px; border: 1px solid var(--cnm-slate-300); border-radius: 10px; background: #fff; font: inherit; font-size: 13px; font-weight: 600; color: var(--cnm-slate-700); cursor: pointer; }
.cnm-cz .cnm-profile .pp-save.saved { border-color: var(--cnm-warn-400); background: var(--cnm-warn-50); color: var(--cnm-warn-700); }
.cnm-cz .cnm-profile .pp-escrow { display: flex; gap: 8px; align-items: flex-start; margin-top: 14px; padding: 11px 12px; background: var(--cnm-trust-50); border: 1px solid var(--cnm-trust-200); border-radius: 11px; font-size: 11.5px; line-height: 1.45; color: var(--cnm-slate-700); }
.cnm-cz .cnm-profile .pp-escrow > svg { flex: none; margin-top: 1px; }
.cnm-cz .cnm-profile .prof-trust-card { background: var(--cnm-slate-50); border: 1px solid var(--cnm-slate-200); border-radius: 16px; padding: 18px; }
.cnm-cz .cnm-profile .ptc-h { font-size: 13px; font-weight: 700; margin-bottom: 11px; }
.cnm-cz .cnm-profile .ptc-row { display: flex; gap: 9px; align-items: flex-start; font-size: 12.5px; line-height: 1.45; color: var(--cnm-slate-700); margin-bottom: 9px; }
.cnm-cz .cnm-profile .ptc-row:last-child { margin-bottom: 0; }
.cnm-cz .cnm-profile .ptc-row > svg { flex: none; margin-top: 1px; }
.cnm-cz .cnm-profile .prof-foot-note { font-size: 11.5px; color: var(--cnm-slate-400); text-align: center; margin-top: 16px; }
@media (max-width: 900px) {
    .cnm-cz .cnm-profile .prof-grid { grid-template-columns: 1fr; }
    .cnm-cz .cnm-profile .prof-col-side { position: static; }
    .cnm-cz .cnm-profile .pv-grid { grid-template-columns: 1fr; gap: 0; }
    .cnm-cz .cnm-profile .pv-item { border-bottom: 1px solid var(--cnm-slate-100); padding: 12px 0; }
    .cnm-cz .cnm-profile .prof-stats { grid-template-columns: 1fr 1fr; }
}

/* ── Legal pages (terms, privacy) + account deletion ────────────────────── */
.cnm-cz .cnm-legal { max-width: 880px; }
.cnm-cz .cnm-legal .mp-hero { padding-bottom: 6px; }
.cnm-cz .cnm-legal .lg-meta { font-size: 12.5px; color: var(--cnm-slate-500); margin: 14px 0 0; }

/* Table of contents */
.cnm-cz .cnm-legal .lg-toc { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 28px auto 0; padding: 18px 22px; max-width: 760px; background: var(--cnm-slate-50); border: 1px solid var(--cnm-slate-200); border-radius: 14px; }
.cnm-cz .cnm-legal .lg-toc a { font-size: 13px; font-weight: 600; color: var(--cnm-slate-600); text-decoration: none; }
.cnm-cz .cnm-legal .lg-toc a:hover { color: var(--cnm-brand-700); }

/* Body + sections */
.cnm-cz .cnm-legal .lg-body { max-width: 760px; margin: 8px auto 0; }
.cnm-cz .cnm-legal .lg-sec { padding-top: 26px; scroll-margin-top: 84px; }
.cnm-cz .cnm-legal .lg-sec h2 { font-size: 19px; font-weight: 800; letter-spacing: -.02em; color: var(--cnm-slate-900); margin: 0 0 10px; }
.cnm-cz .cnm-legal .lg-sec h3 { font-size: 15px; font-weight: 700; color: var(--cnm-slate-800); margin: 16px 0 6px; }
.cnm-cz .cnm-legal .lg-sec p { font-size: 14.5px; line-height: 1.7; color: var(--cnm-slate-700); margin: 0 0 12px; }
.cnm-cz .cnm-legal .lg-sec ul { margin: 0 0 12px; padding-left: 20px; }
.cnm-cz .cnm-legal .lg-sec li { font-size: 14.5px; line-height: 1.65; color: var(--cnm-slate-700); margin-bottom: 7px; }
.cnm-cz .cnm-legal .lg-sec a { color: var(--cnm-brand-600); font-weight: 600; text-decoration: none; }
.cnm-cz .cnm-legal .lg-sec a:hover { text-decoration: underline; }
.cnm-cz .cnm-legal .lg-sec strong { font-weight: 700; color: var(--cnm-slate-900); }

/* Legal document components — callouts, definitions, footer.
   Shared by the Terms of Service and the EULA (both use the .cnm-legal shell). */
.cnm-cz :is(.cnm-terms, .cnm-eula) .lg-callout { margin: 4px 0 14px; padding: 15px 18px; background: var(--cnm-warn-50); border: 1px solid var(--cnm-warn-200); border-left: 3px solid var(--cnm-warn-500); border-radius: 12px; }
.cnm-cz :is(.cnm-terms, .cnm-eula) .lg-callout p { font-size: 14px; line-height: 1.65; color: var(--cnm-slate-800); margin: 0 0 10px; }
.cnm-cz :is(.cnm-terms, .cnm-eula) .lg-callout p:last-child { margin-bottom: 0; }
.cnm-cz :is(.cnm-terms, .cnm-eula) .lg-callout ul { margin: 0 0 10px; padding-left: 20px; }
.cnm-cz :is(.cnm-terms, .cnm-eula) .lg-callout li { font-size: 14px; line-height: 1.6; color: var(--cnm-slate-800); margin-bottom: 6px; }
.cnm-cz :is(.cnm-terms, .cnm-eula) .lg-callout .lg-tag { display: inline; font-weight: 800; letter-spacing: .01em; text-transform: uppercase; color: var(--cnm-warn-700); }
.cnm-cz :is(.cnm-terms, .cnm-eula) .lg-callout-top { background: var(--cnm-brand-50); border-color: var(--cnm-brand-100); border-left-color: var(--cnm-brand-500); margin: 26px auto 0; max-width: 760px; }
.cnm-cz :is(.cnm-terms, .cnm-eula) .lg-callout-top p { color: var(--cnm-slate-700); }
.cnm-cz :is(.cnm-terms, .cnm-eula) .lg-callout-top a { color: var(--cnm-brand-700); font-weight: 700; text-decoration: none; }
.cnm-cz :is(.cnm-terms, .cnm-eula) .lg-callout-top a:hover { text-decoration: underline; }
.cnm-cz :is(.cnm-terms, .cnm-eula) .lg-callout-final { margin-top: 22px; background: var(--cnm-slate-50); border-color: var(--cnm-slate-200); border-left-color: var(--cnm-slate-400); }
.cnm-cz :is(.cnm-terms, .cnm-eula) .lg-callout-final p { font-weight: 700; color: var(--cnm-slate-900); }
.cnm-cz :is(.cnm-terms, .cnm-eula) .lg-defs { margin: 6px 0 12px; }
.cnm-cz :is(.cnm-terms, .cnm-eula) .lg-defs dt { font-size: 14.5px; font-weight: 700; color: var(--cnm-slate-900); margin-top: 14px; }
.cnm-cz :is(.cnm-terms, .cnm-eula) .lg-defs dd { margin: 3px 0 0; font-size: 14.5px; line-height: 1.65; color: var(--cnm-slate-700); }
.cnm-cz :is(.cnm-terms, .cnm-eula) .lg-contact { display: grid; grid-template-columns: minmax(160px, 220px) 1fr; gap: 0 20px; }
.cnm-cz :is(.cnm-terms, .cnm-eula) .lg-contact dt { margin-top: 0; padding: 9px 0; border-top: 1px solid var(--cnm-slate-100); }
.cnm-cz :is(.cnm-terms, .cnm-eula) .lg-contact dd { padding: 9px 0; border-top: 1px solid var(--cnm-slate-100); }
.cnm-cz :is(.cnm-terms, .cnm-eula) .lg-contact dt:first-child, .cnm-cz :is(.cnm-terms, .cnm-eula) .lg-contact dd:nth-child(2) { border-top: 0; }
.cnm-cz :is(.cnm-terms, .cnm-eula) .lg-foot { margin-top: 24px; padding-top: 18px; border-top: 1px solid var(--cnm-slate-200); text-align: center; }
.cnm-cz :is(.cnm-terms, .cnm-eula) .lg-foot p { font-size: 12px; color: var(--cnm-slate-500); line-height: 1.6; margin: 0 0 4px; }
@media (max-width: 560px) {
    .cnm-cz :is(.cnm-terms, .cnm-eula) .lg-contact { grid-template-columns: 1fr; gap: 0; }
    .cnm-cz :is(.cnm-terms, .cnm-eula) .lg-contact dt { padding-bottom: 2px; border-top: 1px solid var(--cnm-slate-100); }
    .cnm-cz :is(.cnm-terms, .cnm-eula) .lg-contact dd { padding-top: 2px; border-top: 0; }
    .cnm-cz :is(.cnm-terms, .cnm-eula) .lg-contact dd:nth-child(2) { border-top: 0; }
}

/* Account deletion */
.cnm-cz .cnm-account-deletion { max-width: 760px; }
.cnm-cz .cnm-account-deletion .ad-wrap { max-width: 560px; margin: 8px auto 0; }
.cnm-cz .cnm-account-deletion .ad-card { background: #fff; border: 1px solid var(--cnm-slate-200); border-radius: 18px; padding: 26px; box-shadow: var(--cnm-shadow-card); }
.cnm-cz .cnm-account-deletion .ad-card-h { font-size: 18px; font-weight: 800; letter-spacing: -.01em; margin: 0 0 6px; }
.cnm-cz .cnm-account-deletion .ad-card-sub { font-size: 13.5px; color: var(--cnm-slate-600); line-height: 1.55; margin: 0 0 18px; }
.cnm-cz .cnm-account-deletion .ad-field { display: block; margin-bottom: 16px; }
.cnm-cz .cnm-account-deletion .ad-field span { display: block; font-size: 13px; font-weight: 600; color: var(--cnm-slate-700); margin-bottom: 6px; }
.cnm-cz .cnm-account-deletion .ad-field input { width: 100%; height: 46px; padding: 0 14px; border: 1.5px solid var(--cnm-slate-300); border-radius: 10px; font: inherit; font-size: 15px; outline: none; background: #fff; color: inherit; box-sizing: border-box; }
.cnm-cz .cnm-account-deletion .ad-field input:focus { border-color: var(--cnm-brand-500); box-shadow: 0 0 0 3px var(--cnm-brand-100); }
.cnm-cz .cnm-account-deletion .ad-code { text-align: center; font-family: var(--cnm-font-mono); font-size: 24px; font-weight: 700; letter-spacing: 8px; }
.cnm-cz .cnm-account-deletion .ad-confirm { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 18px; font-size: 13px; line-height: 1.5; color: var(--cnm-slate-700); cursor: pointer; }
.cnm-cz .cnm-account-deletion .ad-confirm input { margin-top: 2px; width: 17px; height: 17px; accent-color: var(--cnm-emer-600); flex-shrink: 0; }
.cnm-cz .cnm-account-deletion .ad-error { display: flex; gap: 9px; align-items: flex-start; padding: 11px 13px; margin-bottom: 16px; border-radius: 10px; background: var(--cnm-emer-50); border: 1px solid var(--cnm-emer-200); color: var(--cnm-emer-700); font-size: 13px; line-height: 1.45; }
.cnm-cz .cnm-account-deletion .ad-error > svg { flex-shrink: 0; margin-top: 1px; }
.cnm-cz .cnm-account-deletion .ad-fineprint { font-size: 12px; color: var(--cnm-slate-500); line-height: 1.5; margin: 12px 0 0; }
.cnm-cz .cnm-account-deletion .ad-restart { display: block; text-align: center; margin-top: 14px; font-size: 13px; font-weight: 600; color: var(--cnm-slate-600); text-decoration: none; }
.cnm-cz .cnm-account-deletion .ad-restart:hover { color: var(--cnm-brand-700); }
.cnm-cz .cnm-account-deletion .cnm-btn.block { margin-top: 4px; }

/* final confirmation modal — scoped so no framework .modal rule can hide it */
.cnm-cz .cnm-account-deletion .ad-modal { position: fixed; inset: 0; z-index: 1200; display: grid; place-items: center; padding: 20px; }
.cnm-cz .cnm-account-deletion .ad-modal[hidden] { display: none; }   /* must beat the display:grid above */
.cnm-cz .cnm-account-deletion .ad-modal-backdrop { position: absolute; inset: 0; background: rgba(15, 23, 42, .55); }
.cnm-cz .cnm-account-deletion .ad-modal-card { position: relative; display: block; height: auto; width: 100%; max-width: 440px; background: #fff; border: 1px solid var(--cnm-slate-200); border-radius: 18px; padding: 26px; box-shadow: 0 24px 60px rgba(15, 23, 42, .28); text-align: center; }
.cnm-cz .cnm-account-deletion .ad-modal-ic { width: 52px; height: 52px; border-radius: 50%; background: var(--cnm-emer-50); border: 1px solid var(--cnm-emer-200); display: grid; place-items: center; margin: 0 auto 14px; }
.cnm-cz .cnm-account-deletion .ad-modal-h { font-size: 19px; font-weight: 800; letter-spacing: -.02em; margin: 0 0 8px; }
.cnm-cz .cnm-account-deletion .ad-modal-d { font-size: 13.5px; color: var(--cnm-slate-600); line-height: 1.55; margin: 0 0 14px; }
.cnm-cz .cnm-account-deletion .ad-modal-list { text-align: left; margin: 0 0 20px; padding-left: 18px; }
.cnm-cz .cnm-account-deletion .ad-modal-list li { font-size: 12.5px; line-height: 1.5; color: var(--cnm-slate-700); margin-bottom: 6px; }
.cnm-cz .cnm-account-deletion .ad-modal-actions { display: flex; gap: 10px; }
.cnm-cz .cnm-account-deletion .ad-modal-actions .cnm-btn { flex: 1; margin-top: 0; }
body.ad-modal-open { overflow: hidden; }

/* deleted / retained panels */
.cnm-cz .cnm-account-deletion .ad-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 18px; }
.cnm-cz .cnm-account-deletion .ad-panel { border: 1px solid var(--cnm-slate-200); border-radius: 14px; padding: 16px 18px; background: #fff; }
.cnm-cz .cnm-account-deletion .ad-panel.del { background: var(--cnm-emer-50); border-color: var(--cnm-emer-200); }
.cnm-cz .cnm-account-deletion .ad-panel.keep { background: var(--cnm-trust-50); border-color: var(--cnm-trust-200); }
.cnm-cz .cnm-account-deletion .ad-panel-h { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 800; letter-spacing: -.01em; margin-bottom: 10px; }
.cnm-cz .cnm-account-deletion .ad-panel.del .ad-panel-h { color: var(--cnm-emer-700); }
.cnm-cz .cnm-account-deletion .ad-panel.keep .ad-panel-h { color: var(--cnm-trust-700); }
.cnm-cz .cnm-account-deletion .ad-panel ul { margin: 0; padding-left: 18px; }
.cnm-cz .cnm-account-deletion .ad-panel li { font-size: 12.5px; line-height: 1.5; color: var(--cnm-slate-700); margin-bottom: 6px; }
.cnm-cz .cnm-account-deletion .ad-panel-note { font-size: 11.5px; color: var(--cnm-slate-500); line-height: 1.5; margin: 10px 0 0; }
.cnm-cz .cnm-account-deletion .ad-contact { text-align: center; font-size: 13px; color: var(--cnm-slate-600); line-height: 1.6; margin: 22px 0 0; }
.cnm-cz .cnm-account-deletion .ad-contact a { color: var(--cnm-brand-600); font-weight: 600; }

/* success panel */
.cnm-cz .cnm-account-deletion .ad-success { text-align: center; background: var(--cnm-trust-50); border: 1px solid var(--cnm-trust-200); border-radius: 18px; padding: 40px 28px; }
.cnm-cz .cnm-account-deletion .ad-success-ic { width: 64px; height: 64px; border-radius: 50%; background: #fff; border: 1px solid var(--cnm-trust-200); display: grid; place-items: center; margin: 0 auto 16px; }
.cnm-cz .cnm-account-deletion .ad-success h2 { font-size: 22px; font-weight: 800; letter-spacing: -.02em; margin: 0 0 8px; }
.cnm-cz .cnm-account-deletion .ad-success p { font-size: 14px; color: var(--cnm-slate-700); line-height: 1.6; max-width: 420px; margin: 0 auto 10px; }
.cnm-cz .cnm-account-deletion .ad-success-note { font-size: 12.5px; color: var(--cnm-slate-500); }
.cnm-cz .cnm-account-deletion .ad-success .cnm-btn { margin-top: 14px; }
.cnm-cz .cnm-account-deletion .ad-success a:not(.cnm-btn) { color: var(--cnm-brand-600); font-weight: 600; }

@media (max-width: 620px) {
    .cnm-cz .cnm-account-deletion .ad-grid { grid-template-columns: 1fr; }
    .cnm-cz .cnm-account-deletion .ad-modal-actions { flex-direction: column-reverse; }
}

/* ── Account section: sub-nav, timeline, escrow, threads, toast, seg ───── */
.cnm-cz .acct-subnav { display:flex; gap:4px; background:#fff; border:1px solid var(--cnm-slate-200); border-radius:12px; padding:5px; margin:0 0 20px; overflow-x:auto; }
.cnm-cz .acct-subnav a { display:inline-flex; align-items:center; gap:7px; padding:8px 13px; border-radius:8px; font-size:13px; font-weight:600; color:var(--cnm-slate-600); text-decoration:none; white-space:nowrap; transition:background .12s, color .12s; }
.cnm-cz .acct-subnav a:hover { background:var(--cnm-slate-100); color:var(--cnm-slate-800); }
.cnm-cz .acct-subnav a.active { background:var(--cnm-brand-600); color:#fff; }
.cnm-cz .acct-subnav a.active svg { stroke:#fff; }
.cnm-cz .acct-subnav .sn-badge { display:inline-flex; align-items:center; justify-content:center; min-width:18px; height:18px; padding:0 5px; border-radius:999px; background:var(--cnm-emer-500); color:#fff; font-size:10.5px; font-weight:800; }
.cnm-cz .acct-subnav a.active .sn-badge { background:rgba(255,255,255,.28); }
.cnm-cz .acct-back { display:inline-flex; align-items:center; gap:5px; font-size:13px; font-weight:600; color:var(--cnm-slate-500); text-decoration:none; margin-bottom:14px; }
.cnm-cz .acct-back:hover { color:var(--cnm-brand-700); }

/* Project timeline */
.cnm-cz .ptl { display:flex; align-items:flex-start; }
.cnm-cz .ptl-step { flex:1; display:flex; flex-direction:column; align-items:center; text-align:center; position:relative; }
.cnm-cz .ptl-step .dot { width:26px; height:26px; border-radius:50%; background:var(--cnm-slate-200); color:var(--cnm-slate-500); display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:800; z-index:2; }
.cnm-cz .ptl-step.done .dot { background:var(--cnm-trust-600); color:#fff; }
.cnm-cz .ptl-step.active .dot { background:var(--cnm-brand-600); color:#fff; box-shadow:0 0 0 4px var(--cnm-brand-50); }
.cnm-cz .ptl-step .lbl { font-size:11px; font-weight:600; color:var(--cnm-slate-500); margin-top:7px; line-height:1.3; max-width:82px; }
.cnm-cz .ptl-step.done .lbl, .cnm-cz .ptl-step.active .lbl { color:var(--cnm-slate-800); }
.cnm-cz .ptl-step::before { content:""; position:absolute; top:12px; left:-50%; width:100%; height:2px; background:var(--cnm-slate-200); z-index:1; }
.cnm-cz .ptl-step:first-child::before { display:none; }
.cnm-cz .ptl-step.done::before, .cnm-cz .ptl-step.active::before { background:var(--cnm-trust-600); }

/* Escrow summary */
.cnm-cz .escrow-sum { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--cnm-slate-200); border-radius:12px; overflow:hidden; border:1px solid var(--cnm-slate-200); }
.cnm-cz .escrow-sum .es { background:#fff; padding:14px 16px; }
.cnm-cz .escrow-sum .es .v { font-size:19px; font-weight:800; font-family:'JetBrains Mono',monospace; }
.cnm-cz .escrow-sum .es .k { font-size:11px; color:var(--cnm-slate-500); margin-top:2px; font-weight:600; text-transform:uppercase; letter-spacing:.04em; }
.cnm-cz .es-bar { height:8px; border-radius:999px; background:var(--cnm-slate-200); overflow:hidden; margin-top:12px; }
.cnm-cz .es-bar > span { display:block; height:100%; background:var(--cnm-trust-500); border-radius:999px; }

/* Quotes controls + compare */
.cnm-cz .q-controls { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:16px; }
.cnm-cz .q-select { border:1px solid var(--cnm-slate-300); border-radius:9px; padding:8px 11px; font-size:13px; font-weight:600; font-family:inherit; color:var(--cnm-slate-700); background:#fff; cursor:pointer; }
.cnm-cz .q-hide { background:none; border:0; font-size:12.5px; font-weight:600; color:var(--cnm-slate-400); cursor:pointer; padding:4px; }
.cnm-cz .q-hide:hover { color:var(--cnm-emer-600); }
.cnm-cz .cmp-table { width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--cnm-slate-200); border-radius:14px; overflow:hidden; }
.cnm-cz .cmp-table th, .cnm-cz .cmp-table td { padding:14px 16px; text-align:left; font-size:13px; border-bottom:1px solid var(--cnm-slate-100); vertical-align:top; }
.cnm-cz .cmp-table th { background:var(--cnm-slate-50); font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:var(--cnm-slate-500); font-weight:700; }
.cnm-cz .cmp-table td:first-child { font-weight:700; color:var(--cnm-slate-600); background:var(--cnm-slate-50); font-size:12px; }

/* Messages thread list */
.cnm-cz .msg-layout { display:grid; grid-template-columns:250px 1fr; gap:16px; height:calc(100vh - 250px); min-height:440px; }
.cnm-cz .thread-rail { border:1px solid var(--cnm-slate-200); border-radius:14px; background:#fff; overflow-y:auto; }
.cnm-cz .thread { display:flex; gap:11px; align-items:center; padding:13px 14px; border:0; border-bottom:1px solid var(--cnm-slate-100); cursor:pointer; text-align:left; width:100%; background:none; font-family:inherit; }
.cnm-cz .thread:hover { background:var(--cnm-slate-50); }
.cnm-cz .thread.active { background:var(--cnm-brand-50); }
.cnm-cz .thread .tn { font-size:13.5px; font-weight:700; color:var(--cnm-slate-800); }
.cnm-cz .thread .tp { font-size:11.5px; color:var(--cnm-slate-500); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:140px; }
.cnm-cz .thread .tdot { width:8px; height:8px; border-radius:50%; background:var(--cnm-emer-500); flex-shrink:0; }
.cnm-cz .msg-pane { display:flex; flex-direction:column; border:1px solid var(--cnm-slate-200); border-radius:14px; background:#fff; overflow:hidden; }
.cnm-cz .chip-row { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:10px; }
.cnm-cz .qchip { padding:6px 12px; border-radius:999px; border:1px solid var(--cnm-slate-200); background:#fff; font-size:12px; font-weight:600; color:var(--cnm-slate-700); cursor:pointer; white-space:nowrap; font-family:inherit; }
.cnm-cz .qchip:hover { border-color:var(--cnm-brand-300); color:var(--cnm-brand-700); }
.cnm-cz .attach-btn { width:40px; height:40px; flex-shrink:0; border:1px solid var(--cnm-slate-300); border-radius:10px; background:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.cnm-cz .attach-btn:hover { border-color:var(--cnm-brand-300); }

/* Toast */
.cnm-cz .cnm-toast { position:fixed; left:50%; bottom:26px; transform:translateX(-50%) translateY(16px); background:var(--cnm-slate-800); color:#fff; padding:11px 18px; border-radius:11px; font-size:13px; font-weight:600; box-shadow:0 10px 30px -8px rgba(0,0,0,.4); opacity:0; pointer-events:none; transition:opacity .2s, transform .2s; z-index:90; display:flex; align-items:center; gap:9px; }
.cnm-cz .cnm-toast.show { opacity:1; transform:translateX(-50%) translateY(0); }

/* Segmented control */
.cnm-cz .seg { display:inline-flex; background:var(--cnm-slate-100); border-radius:9px; padding:3px; gap:2px; }
.cnm-cz .seg button { border:0; background:none; font-size:12px; font-weight:600; color:var(--cnm-slate-600); padding:6px 12px; border-radius:7px; cursor:pointer; font-family:inherit; }
.cnm-cz .seg button.on { background:#fff; color:var(--cnm-brand-700); box-shadow:0 1px 2px rgba(0,0,0,.08); }

@media (max-width:760px) { .cnm-cz .msg-layout { grid-template-columns:1fr; height:auto; } .cnm-cz .thread-rail { max-height:200px; } }
@media (max-width:560px) { .cnm-cz .escrow-sum { grid-template-columns:1fr; } .cnm-cz .ptl-step .lbl { font-size:9.5px; } }

/* ── Escrow flow: shared step header ───────────────────────────────────── */
.cnm-cz .esf-steps { display:flex; align-items:center; gap:0; background:#fff; border:1px solid var(--cnm-slate-200); border-radius:12px; padding:12px 16px; margin-bottom:18px; }
.cnm-cz .esf-step { display:flex; align-items:center; gap:8px; flex:0 0 auto; }
.cnm-cz .esf-step .n { width:22px; height:22px; border-radius:50%; background:var(--cnm-slate-200); color:var(--cnm-slate-500); font-size:11px; font-weight:800; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.cnm-cz .esf-step.done .n { background:var(--cnm-trust-600); color:#fff; }
.cnm-cz .esf-step.active .n { background:var(--cnm-brand-600); color:#fff; box-shadow:0 0 0 3px var(--cnm-brand-50); }
.cnm-cz .esf-step .t { font-size:12.5px; font-weight:600; color:var(--cnm-slate-500); white-space:nowrap; }
.cnm-cz .esf-step.done .t, .cnm-cz .esf-step.active .t { color:var(--cnm-slate-800); }
.cnm-cz .esf-line { flex:1; height:2px; background:var(--cnm-slate-200); margin:0 12px; min-width:16px; }
.cnm-cz .esf-line.done { background:var(--cnm-trust-500); }

/* Milestone schedule list */
.cnm-cz .ms-list { display:flex; flex-direction:column; gap:8px; }
.cnm-cz .ms-item { display:flex; align-items:center; gap:13px; padding:13px 15px; border:1px solid var(--cnm-slate-200); border-radius:12px; background:#fff; }
.cnm-cz .ms-item.current { border-color:var(--cnm-brand-300); background:var(--cnm-brand-50); box-shadow:0 0 0 2px var(--cnm-brand-50); }
.cnm-cz .ms-item.done { background:var(--cnm-slate-50); }
.cnm-cz .ms-badge { width:26px; height:26px; border-radius:50%; flex-shrink:0; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:800; background:var(--cnm-slate-200); color:var(--cnm-slate-500); }
.cnm-cz .ms-item.done .ms-badge { background:var(--cnm-trust-600); color:#fff; }
.cnm-cz .ms-item.current .ms-badge { background:var(--cnm-brand-600); color:#fff; }
.cnm-cz .ms-t { font-size:13.5px; font-weight:700; }
.cnm-cz .ms-d { font-size:11.5px; color:var(--cnm-slate-500); margin-top:1px; }
.cnm-cz .ms-amt { font-family:'JetBrains Mono',monospace; font-weight:800; font-size:14px; margin-left:auto; }
.cnm-cz .ms-when { font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--cnm-slate-400); margin-left:8px; }
.cnm-cz .ms-item.current .ms-when { color:var(--cnm-brand-700); }
.cnm-cz .ms-item.done .ms-when { color:var(--cnm-trust-700); }

/* Photo tiles + lightbox */
.cnm-cz .mph { position:relative; aspect-ratio:4/3; border-radius:10px; overflow:hidden; cursor:pointer; background:repeating-linear-gradient(135deg,var(--cnm-slate-100) 0 10px,var(--cnm-slate-50) 10px 20px); display:flex; align-items:flex-end; border:1px solid var(--cnm-slate-200); }
.cnm-cz .mph:hover { border-color:var(--cnm-brand-300); }
.cnm-cz .mph .cap { position:relative; z-index:2; width:100%; padding:6px 9px; font-size:11px; font-weight:700; color:#fff; background:linear-gradient(transparent,rgba(15,23,42,.72)); }
.cnm-cz .mph .ic { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; }
.cnm-cz .lbox { position:fixed; inset:0; z-index:80; background:rgba(15,17,21,.82); display:none; align-items:center; justify-content:center; padding:28px; }
.cnm-cz .lbox.open { display:flex; }
.cnm-cz .lbox-inner { max-width:640px; width:100%; }
.cnm-cz .lbox-img { aspect-ratio:4/3; border-radius:14px; background:repeating-linear-gradient(135deg,#334155 0 14px,#1e293b 14px 28px); display:flex; align-items:center; justify-content:center; }
.cnm-cz .lbox-cap { color:#fff; font-size:14px; font-weight:600; text-align:center; margin-top:14px; }
.cnm-cz .lbox-nav { display:flex; justify-content:center; gap:8px; margin-top:14px; }
.cnm-cz .lbox-nav button { width:38px; height:38px; border-radius:10px; border:1px solid rgba(255,255,255,.25); background:rgba(255,255,255,.08); color:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.cnm-cz .lbox-nav button:hover { background:rgba(255,255,255,.18); }
.cnm-cz .lbox-x { position:absolute; top:20px; right:22px; width:40px; height:40px; border-radius:10px; border:1px solid rgba(255,255,255,.25); background:rgba(255,255,255,.08); color:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center; }

/* Evidence dropzone */
.cnm-cz .dropz { border:1.5px dashed var(--cnm-slate-300); border-radius:12px; padding:22px; text-align:center; cursor:pointer; background:var(--cnm-slate-50); transition:border-color .12s, background .12s; }
.cnm-cz .dropz:hover, .cnm-cz .dropz.drag { border-color:var(--cnm-brand-400); background:var(--cnm-brand-50); }
.cnm-cz .dropz .dz-t { font-size:13px; font-weight:700; margin-top:8px; }
.cnm-cz .dropz .dz-d { font-size:11.5px; color:var(--cnm-slate-500); margin-top:2px; }
.cnm-cz .dz-files { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.cnm-cz .dz-file { display:flex; align-items:center; gap:7px; padding:7px 11px; background:#fff; border:1px solid var(--cnm-slate-200); border-radius:9px; font-size:12px; font-weight:600; }
.cnm-cz .dz-file button { border:0; background:none; cursor:pointer; color:var(--cnm-slate-400); display:flex; padding:0; }
.cnm-cz .dz-file button:hover { color:var(--cnm-emer-600); }

/* Next-steps timeline (dispute / confirmations) */
.cnm-cz .nstep { display:flex; gap:12px; }
.cnm-cz .nstep .rail { display:flex; flex-direction:column; align-items:center; }
.cnm-cz .nstep .rd { width:24px; height:24px; border-radius:50%; background:var(--cnm-slate-200); color:var(--cnm-slate-500); font-size:11px; font-weight:800; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.cnm-cz .nstep.on .rd { background:var(--cnm-brand-600); color:#fff; }
.cnm-cz .nstep .rl { width:2px; flex:1; background:var(--cnm-slate-200); margin:3px 0; min-height:14px; }
.cnm-cz .nstep .nc { padding-bottom:16px; }
.cnm-cz .nstep .nt { font-size:13px; font-weight:700; }
.cnm-cz .nstep .nd { font-size:12px; color:var(--cnm-slate-500); margin-top:2px; line-height:1.45; }

/* Emergency chips + 911 callout */
.cnm-cz .em-chips { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.cnm-cz .em-chip { padding:8px 14px; border-radius:999px; border:1px solid var(--cnm-emer-200); background:#fff; font-size:12.5px; font-weight:600; color:var(--cnm-emer-700); cursor:pointer; font-family:inherit; }
.cnm-cz .em-chip:hover, .cnm-cz .em-chip.on { background:var(--cnm-emer-600); border-color:var(--cnm-emer-600); color:#fff; }
.cnm-cz .em-911 { display:flex; align-items:center; gap:11px; padding:13px 16px; border-radius:12px; background:var(--cnm-slate-900); color:#fff; margin-top:16px; }
.cnm-cz .em-911 .t { font-size:13px; font-weight:700; flex:1; }
.cnm-cz .em-911 .call { font-family:'JetBrains Mono',monospace; font-weight:800; font-size:16px; letter-spacing:.02em; }

@media (max-width:640px) { .cnm-cz .esf-step .t { display:none; } .cnm-cz .esf-step .n { margin:0 2px; } }

/* ── Account-layout width preference (Tweaks panel → body.acct-wide) ──
   Narrow (default) keeps each page's own focused column; Wide gives the
   account & checkout columns more room. */
.cnm-cz.acct-wide .cnm-quotes,
.cnm-cz.acct-wide .cnm-scope,
.cnm-cz.acct-wide .cnm-milestone,
.cnm-cz.acct-wide .cnm-dispute,
.cnm-cz.acct-wide .cnm-dispute-status { max-width: 900px; }
.cnm-cz.acct-wide .cnm-pay { max-width: 640px; }

/* Tweak panel (floating, pay.html) */
.cnm-cz .cnm-tweaks-fab { position:fixed; right:20px; bottom:20px; z-index:120; height:44px; padding:0 16px; border-radius:999px; background:var(--cnm-slate-900); color:#fff; border:0; cursor:pointer; display:flex; align-items:center; gap:8px; font-family:inherit; font-size:13px; font-weight:700; box-shadow:0 10px 28px -8px rgba(15,23,42,.5); }
.cnm-cz .cnm-tweaks-fab:hover { background:var(--cnm-slate-800); }
.cnm-cz .cnm-tweaks { position:fixed; right:20px; bottom:74px; z-index:121; width:304px; background:#fff; border:1px solid var(--cnm-slate-200); border-radius:16px; box-shadow:0 20px 52px -12px rgba(15,23,42,.4); padding:16px; display:none; }
.cnm-cz .cnm-tweaks.open { display:block; }
.cnm-cz .cnm-tweaks .tw-head { display:flex; align-items:center; gap:8px; }
.cnm-cz .cnm-tweaks .tw-title { font-size:13.5px; font-weight:800; letter-spacing:-.01em; flex:1; }
.cnm-cz .cnm-tweaks .tw-x { border:0; background:none; cursor:pointer; color:var(--cnm-slate-400); padding:2px; display:flex; }
.cnm-cz .cnm-tweaks .tw-x:hover { color:var(--cnm-slate-700); }
.cnm-cz .cnm-tweaks .tw-sec { margin-top:14px; }
.cnm-cz .cnm-tweaks .tw-lbl { font-size:11px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--cnm-slate-500); margin-bottom:9px; }
.cnm-cz .cnm-tweaks .seg { width:100%; }
.cnm-cz .cnm-tweaks .seg button { flex:1; }
.cnm-cz .cnm-tweaks .tw-help { font-size:11.5px; color:var(--cnm-slate-500); line-height:1.5; margin-top:10px; }
.cnm-cz .cnm-tweaks .tw-links { display:flex; flex-wrap:wrap; gap:6px; margin-top:11px; }
.cnm-cz .cnm-tweaks .tw-links a { font-size:11.5px; font-weight:600; color:var(--cnm-brand-700); text-decoration:none; padding:5px 10px; border:1px solid var(--cnm-slate-200); border-radius:999px; }
.cnm-cz .cnm-tweaks .tw-links a:hover { background:var(--cnm-slate-50); }

/* ── Form field helpers (cx-field/cx-input, used across contact, login, settings,
      profile, dispute, emergency, results, trust-safety, account-deletion).
      These classes originate in the contractor portal but those consumer pages
      never load contractor.css, so the fields rendered with browser-default
      inset borders. Ported + scoped here so they match platform styling. ── */
.cnm-cz .cx-field { margin-bottom: 14px; }
.cnm-cz .cx-field > .l { font-size: 13px; font-weight: 600; color: var(--cnm-slate-700); margin-bottom: 6px; }
.cnm-cz .cx-input { display: flex; align-items: center; height: 44px; padding: 0 12px; background: #fff; border: 1px solid var(--cnm-slate-300); border-radius: 10px; transition: border-color .12s, box-shadow .12s; }
.cnm-cz .cx-input:focus-within { border-color: var(--cnm-brand-500); box-shadow: 0 0 0 3px var(--cnm-brand-100); }
.cnm-cz .cx-input input, .cnm-cz .cx-input select { flex: 1; border: 0; outline: none; font: inherit; font-size: 14px; background: transparent; width: 100%; color: inherit; }
.cnm-cz .cx-input.ro { background: var(--cnm-slate-50); }
.cnm-cz .cx-input:has(textarea) { height: auto; align-items: stretch; padding: 10px 12px; }
.cnm-cz .cx-input textarea { flex: 1; width: 100%; border: 0; outline: none; font: inherit; font-size: 14px; line-height: 1.5; background: transparent; color: inherit; resize: vertical; display: block; }
.cnm-cz .cx-field .hint { font-size: 11px; color: var(--cnm-slate-500); margin-top: 4px; }

/* ── Shared header: mobile hamburger nav (all consumer pages) ──────────── */
.cnm-cz .ccx-burger { display:none; align-items:center; justify-content:center; width:38px; height:38px; border-radius:9px; border:1px solid var(--cnm-slate-200); background:#fff; cursor:pointer; }
@media (max-width:860px) {
  .cnm-cz .ccx-nav { display:none; }
  .cnm-cz .ccx-burger { display:inline-flex; }
  .cnm-cz .ccx-header-in { position:relative; flex-wrap:wrap; }
  .cnm-cz .ccx-nav.open { display:flex; flex-direction:column; align-items:flex-start; gap:14px; width:100%; order:3; padding:14px 2px 4px; }
}

/* ── Profile: prominent response pill + sticky contact bar ─────────────── */
.cnm-cz .prof-resp-pill { display:inline-flex; align-items:center; gap:6px; margin-top:12px; padding:6px 12px; border-radius:999px; background:var(--cnm-trust-50); color:var(--cnm-trust-700); font-size:12.5px; font-weight:700; }
.cnm-cz .cnm-profile { padding-bottom:84px; }
.cnm-cz .prof-sticky { position:fixed; left:0; right:0; bottom:0; z-index:70; background:#fff; border-top:1px solid var(--cnm-slate-200); box-shadow:0 -8px 24px -12px rgba(15,23,42,.25); transform:translateY(115%); transition:transform .28s cubic-bezier(.4,0,.2,1); }
.cnm-cz .prof-sticky.show { transform:translateY(0); }
.cnm-cz .prof-sticky-in { max-width:1040px; margin:0 auto; display:flex; align-items:center; gap:14px; padding:11px 20px; }
.cnm-cz .prof-sticky .ps-meta { flex:1; min-width:0; }
.cnm-cz .prof-sticky .ps-name { font-size:14px; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cnm-cz .prof-sticky .ps-sub { font-size:11.5px; color:var(--cnm-slate-500); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cnm-cz .prof-sticky .ps-btns { display:flex; gap:8px; flex-shrink:0; }
@media (max-width:560px) { .cnm-cz .prof-sticky .ps-sub { display:none; } }

/* ── Trust & safety: badge legend + inline report form ─────────────────── */
.cnm-cz .mp-badge-legend { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:26px; }
.cnm-cz .mp-badge-card { display:flex; gap:13px; padding:18px 20px; align-items:flex-start; }
.cnm-cz .mp-badge-card .mp-badge-ic { width:40px; height:40px; border-radius:11px; background:var(--cnm-slate-100); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.cnm-cz .mp-badge-card h3 { font-size:14.5px; font-weight:700; margin:0 0 3px; }
.cnm-cz .mp-badge-card p { font-size:12.5px; color:var(--cnm-slate-600); line-height:1.5; margin:0; }
.cnm-cz .mp-report-form { margin-top:14px; padding:20px 22px; }
.cnm-cz .mp-report-form .rf-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
@media (max-width:640px) { .cnm-cz .mp-badge-legend { grid-template-columns:1fr; } .cnm-cz .mp-report-form .rf-grid { grid-template-columns:1fr; } }

/* ── Results: ★ save control (real for signed-in, sign-up prompt for guests) ─ */
.cnm-cz .pro-save-wrap { display:flex; justify-content:flex-end; margin-bottom:2px; }
.cnm-cz .pro-save { width:34px; height:34px; border-radius:9px; border:1px solid var(--cnm-slate-200); background:#fff; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; padding:0; transition:border-color .12s, background .12s; }
.cnm-cz .pro-save:hover { border-color:var(--cnm-warn-300); }
.cnm-cz .pro-save.saved { background:var(--cnm-warn-50); border-color:var(--cnm-warn-200); }
.cnm-cz .save-modal-ic { width:52px; height:52px; border-radius:14px; background:var(--cnm-warn-50); display:flex; align-items:center; justify-content:center; margin:0 auto 14px; }

/* ── Emergency: find-a-pro search block ────────────────────────────────── */
.cnm-cz .em-find { margin-top:22px; }
.cnm-cz .em-find-h { display:flex; align-items:center; gap:8px; font-size:15px; font-weight:800; margin-bottom:12px; }
.cnm-cz .em-search { display:flex; gap:8px; }
.cnm-cz .em-search input { flex:1; min-width:0; height:46px; padding:0 14px; border:1px solid var(--cnm-slate-300); border-radius:11px; font-size:14px; font-family:inherit; background:#fff; }
.cnm-cz .em-search input.zip { flex:0 0 92px; }
.cnm-cz .em-search input:focus { outline:none; border-color:var(--cnm-emer-400); box-shadow:0 0 0 3px var(--cnm-emer-50); }
.cnm-cz .em-search .cnm-btn { height:46px; flex-shrink:0; background:var(--cnm-emer-600); border-color:var(--cnm-emer-600); }
.cnm-cz .em-search .cnm-btn:hover { background:var(--cnm-emer-700); }
@media (max-width:560px) { .cnm-cz .em-search { flex-wrap:wrap; } .cnm-cz .em-search input, .cnm-cz .em-search input.zip { flex:1 1 100%; } .cnm-cz .em-search .cnm-btn { width:100%; } }

/* ══════════════════════════════════════════════════════════════════════════
   BUTTON SYSTEM — consumer-portal polish layer (scoped .cnm-cz)
   Tiers reuse the shared .cnm-btn classes so every page inherits them:
     • primary   → .cnm-btn                 (solid brand, the main action)
     • secondary → .cnm-btn.secondary       (outlined, the alt action)
     • tertiary  → .cnm-btn.ghost / .tertiary(text-only, low emphasis)
   Metronic-informed depth + hover lift + focus ring + disabled/loading states.
   Kept under .cnm-cz so it never reaches the shared admin console. */
.cnm-cz .cnm-btn { box-shadow: 0 1px 2px rgb(15 23 42 / .08); transition: background-color 150ms ease, box-shadow 150ms ease, transform 90ms ease, border-color 150ms ease, color 150ms ease; }
.cnm-cz .cnm-btn:hover { background: var(--cnm-brand-700); box-shadow: 0 4px 10px -2px rgb(37 99 235 / .35); }
.cnm-cz .cnm-btn:active { transform: translateY(1px); box-shadow: 0 1px 2px rgb(15 23 42 / .12); }
.cnm-cz .cnm-btn:focus-visible { outline: none; box-shadow: 0 0 0 3px var(--cnm-brand-200); }
.cnm-cz .cnm-btn.secondary { box-shadow: 0 1px 2px rgb(15 23 42 / .05); }
.cnm-cz .cnm-btn.secondary:hover { background: var(--cnm-brand-50); border-color: var(--cnm-brand-300); box-shadow: 0 2px 6px -1px rgb(15 23 42 / .10); }
.cnm-cz .cnm-btn.secondary:focus-visible, .cnm-cz .cnm-btn.ghost:focus-visible, .cnm-cz .cnm-btn.tertiary:focus-visible { outline: none; box-shadow: 0 0 0 3px var(--cnm-brand-100); }
.cnm-cz .cnm-btn.ghost, .cnm-cz .cnm-btn.tertiary { background: transparent; color: var(--cnm-slate-700); box-shadow: none; border-color: transparent; }
.cnm-cz .cnm-btn.ghost:hover, .cnm-cz .cnm-btn.tertiary:hover { background: var(--cnm-slate-100); color: var(--cnm-slate-900); box-shadow: none; }
.cnm-cz .cnm-btn.lg { height: 48px; padding: 0 24px; font-size: 15px; border-radius: 12px; }
.cnm-cz .cnm-btn.block { width: 100%; }
.cnm-cz .cnm-btn[disabled], .cnm-cz .cnm-btn:disabled, .cnm-cz .cnm-btn.is-disabled { opacity: .55; cursor: not-allowed; box-shadow: none; pointer-events: none; transform: none; }
.cnm-cz .cnm-btn.is-loading { color: transparent !important; pointer-events: none; position: relative; }
.cnm-cz .cnm-btn.is-loading::after { content: ''; position: absolute; top: calc(50% - 8px); left: calc(50% - 8px); width: 16px; height: 16px; border: 2px solid #fff; border-right-color: transparent; border-radius: 50%; animation: cz-spin .6s linear infinite; }
.cnm-cz .cnm-btn.secondary.is-loading::after, .cnm-cz .cnm-btn.ghost.is-loading::after, .cnm-cz .cnm-btn.tertiary.is-loading::after { border-color: var(--cnm-brand-600); border-right-color: transparent; }
@keyframes cz-spin { to { transform: rotate(360deg); } }

/* ══════════════════════════════════════════════════════════════════════════
   ACCOUNT AVATAR MENU — persistent top-right, opens on hover or tap. */
.cnm-cz .cz-acct { position: relative; }
.cnm-cz .cz-acct-btn { display: inline-flex; align-items: center; gap: 4px; padding: 3px 7px 3px 3px; border: 1px solid var(--cnm-slate-200); border-radius: 999px; background: #fff; cursor: pointer; transition: border-color 150ms ease, box-shadow 150ms ease; }
.cnm-cz .cz-acct-btn:hover, .cnm-cz .cz-acct.open .cz-acct-btn { border-color: var(--cnm-brand-300); box-shadow: 0 1px 3px rgb(15 23 42 / .10); }
.cnm-cz .cz-acct-btn:focus-visible { outline: none; box-shadow: 0 0 0 3px var(--cnm-brand-100); }
.cnm-cz .cz-acct-av { width: 30px; height: 30px; border-radius: 50%; background: linear-gradient(135deg, var(--cnm-brand-500), var(--cnm-brand-700)); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: 12px; letter-spacing: .02em; flex-shrink: 0; }
.cnm-cz .cz-acct-av.lg { width: 40px; height: 40px; font-size: 15px; border-radius: 12px; }
.cnm-cz .cz-acct-live { position: absolute; top: 1px; left: 25px; width: 9px; height: 9px; border-radius: 50%; background: var(--cnm-emer-500); border: 2px solid #fff; }
.cnm-cz .cz-acct-menu { position: absolute; top: calc(100% + 10px); right: 0; width: 252px; max-width: calc(100vw - 32px); background: #fff; border: 1px solid var(--cnm-slate-200); border-radius: 14px; box-shadow: var(--cnm-shadow-modal); padding: 7px; opacity: 0; visibility: hidden; transform: translateY(-6px); transition: opacity 140ms ease, transform 140ms ease, visibility 140ms; z-index: 40; }
.cnm-cz .cz-acct-menu::before { content: ''; position: absolute; top: -10px; left: 0; right: 0; height: 10px; }
.cnm-cz .cz-acct:hover .cz-acct-menu, .cnm-cz .cz-acct.open .cz-acct-menu, .cnm-cz .cz-acct:focus-within .cz-acct-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.cnm-cz .cz-acct-hd { display: flex; align-items: center; gap: 10px; padding: 9px 10px 11px; border-bottom: 1px solid var(--cnm-slate-100); margin-bottom: 6px; }
.cnm-cz .cz-acct-id { min-width: 0; }
.cnm-cz .cz-acct-id .nm { font-size: 13.5px; font-weight: 700; color: var(--cnm-slate-900); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cnm-cz .cz-acct-id .em { font-size: 11.5px; color: var(--cnm-slate-500); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cnm-cz .cz-acct-menu a, .cnm-cz .cz-acct-signout { display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 10px; border-radius: 9px; font-size: 13.5px; font-weight: 600; color: var(--cnm-slate-700); text-decoration: none; border: 0; background: none; cursor: pointer; text-align: left; }
.cnm-cz .cz-acct-menu a:hover, .cnm-cz .cz-acct-signout:hover { background: var(--cnm-slate-100); color: var(--cnm-slate-900); }
.cnm-cz .cz-acct-badge { margin-left: auto; background: var(--cnm-emer-500); color: #fff; font-size: 11px; font-weight: 700; min-width: 18px; height: 18px; border-radius: 9px; display: inline-flex; align-items: center; justify-content: center; padding: 0 5px; }
.cnm-cz .cz-acct-sep { height: 1px; background: var(--cnm-slate-100); margin: 6px 4px; }
.cnm-cz .cz-acct-signout { color: var(--cnm-emer-700); }
.cnm-cz .cz-acct-signout:hover { background: var(--cnm-emer-50); color: var(--cnm-emer-700); }

/* V3 alerting — homeowner header bell + drawer (Today/Earlier) */
.cnm-cz .cz-bell { position: relative; }
.cnm-cz .cz-bell-btn { position: relative; width: 38px; height: 38px; border-radius: 9px; border: 0; background: transparent; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.cnm-cz .cz-bell-btn:hover { background: var(--cnm-slate-100); }
.cnm-cz .cz-bell-btn .ct { position: absolute; top: 3px; right: 3px; min-width: 15px; height: 15px; padding: 0 4px; border-radius: 999px; background: var(--cnm-emer-500); color: #fff; font-size: 9.5px; font-weight: 800; line-height: 15px; text-align: center; border: 2px solid #fff; }
.cnm-cz .cz-bmenu { display: none; position: absolute; top: 46px; right: 0; width: 340px; background: #fff; border: 1px solid var(--cnm-slate-200); border-radius: 14px; box-shadow: 0 16px 44px rgba(2,6,23,.16); z-index: 60; overflow: hidden; }
.cnm-cz .cz-bell.open .cz-bmenu { display: block; }
.cnm-cz .cz-bmenu .bh { display: flex; align-items: center; justify-content: space-between; padding: 13px 16px; border-bottom: 1px solid var(--cnm-slate-100); }
.cnm-cz .cz-bmenu .bh strong { font-size: 14.5px; font-weight: 700; }
.cnm-cz .cz-bmenu .bh button { background: none; border: 0; color: var(--cnm-brand-600); font-size: 12px; font-weight: 600; cursor: pointer; padding: 0; }
.cnm-cz .cz-bmenu .bl { max-height: 400px; overflow-y: auto; }
.cnm-cz .cz-bmenu .grp { font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--cnm-slate-400); padding: 10px 16px 4px; }
.cnm-cz .cz-nrow { display: flex; gap: 11px; align-items: flex-start; padding: 11px 16px; border-bottom: 1px solid var(--cnm-slate-100); text-decoration: none; color: inherit; }
.cnm-cz .cz-nrow:hover { background: var(--cnm-brand-50); }
.cnm-cz .cz-nrow .ic { width: 30px; height: 30px; border-radius: 8px; background: var(--cnm-brand-50); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.cnm-cz .cz-nrow .bd { display: flex; flex-direction: column; min-width: 0; }
.cnm-cz .cz-nrow .bd .t { font-size: 13px; font-weight: 700; color: var(--cnm-slate-900); }
.cnm-cz .cz-nrow .bd .m { font-size: 12px; color: var(--cnm-slate-500); line-height: 1.4; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cnm-cz .cz-nrow .bd .w { font-size: 11px; color: var(--cnm-slate-400); margin-top: 2px; }
.cnm-cz .cz-bmenu .bf { padding: 11px 16px; text-align: center; border-top: 1px solid var(--cnm-slate-100); }
.cnm-cz .cz-bmenu .bf a, .cnm-cz .cz-bmenu .bf a:hover { font-size: 12.5px; font-weight: 600; color: var(--cnm-brand-700); text-decoration: none; }
.cnm-cz .cz-bempty { padding: 26px 20px; text-align: center; color: var(--cnm-slate-400); font-size: 13px; line-height: 1.5; }
.cnm-cz .cz-bempty span { font-size: 11.5px; }
@media (max-width: 440px) { .cnm-cz .cz-bmenu { width: calc(100vw - 24px); right: -6px; } }

/* ══════════════════════════════════════════════════════════════════════════
   FEEDBACK STATES — shared empty / loading / error blocks (Phase 8 reuse). */
.cnm-cz .cz-state { text-align: center; padding: 40px 28px; }
.cnm-cz .cz-state-ic { width: 52px; height: 52px; border-radius: 14px; background: var(--cnm-slate-100); display: flex; align-items: center; justify-content: center; margin: 0 auto 14px; }
.cnm-cz .cz-state-ic.err { background: var(--cnm-emer-50); }
.cnm-cz .cz-state-t { font-size: 17px; font-weight: 800; color: var(--cnm-slate-900); }
.cnm-cz .cz-state-d { font-size: 13.5px; color: var(--cnm-slate-600); line-height: 1.6; max-width: 400px; margin: 7px auto 0; }
.cnm-cz .cz-state .cnm-btn { margin-top: 18px; }
.cnm-cz .cz-skeleton { background: linear-gradient(90deg, var(--cnm-slate-100) 25%, var(--cnm-slate-200) 37%, var(--cnm-slate-100) 63%); background-size: 400% 100%; animation: cz-shimmer 1.4s ease infinite; border-radius: 8px; }
@keyframes cz-shimmer { 0% { background-position: 100% 50%; } 100% { background-position: 0 50%; } }
.cnm-cz .cz-inline-err { display: flex; align-items: center; gap: 8px; background: var(--cnm-emer-50); border: 1px solid var(--cnm-emer-200); color: var(--cnm-emer-800); font-size: 13px; font-weight: 600; padding: 10px 13px; border-radius: 10px; margin-bottom: 14px; }

/* ══════════════════════════════════════════════════════════════════════════
   HOME — featured "pros near you" cards (avatar · rating · response · distance). */
.cnm-cz .cnm-home .home-featured { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.cnm-cz .cnm-home .hf-card { background: #fff; border: 1px solid var(--cnm-slate-200); border-radius: 14px; padding: 16px; text-decoration: none; color: inherit; box-shadow: var(--cnm-shadow-card); transition: border-color 120ms, transform 120ms, box-shadow 120ms; display: flex; flex-direction: column; gap: 12px; }
.cnm-cz .cnm-home .hf-card:hover { border-color: var(--cnm-brand-300); transform: translateY(-2px); box-shadow: var(--cnm-shadow-hover); }
.cnm-cz .cnm-home .hf-top { display: flex; align-items: center; gap: 11px; }
.cnm-cz .cnm-home .hf-id { min-width: 0; }
.cnm-cz .cnm-home .hf-name { font-size: 14.5px; font-weight: 700; display: flex; align-items: center; gap: 7px; line-height: 1.25; }
.cnm-cz .cnm-home .hf-sub { font-size: 12.5px; color: var(--cnm-slate-500); margin-top: 2px; }
.cnm-cz .cnm-home .hf-meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.cnm-cz .cnm-home .hf-rating { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; font-weight: 700; color: var(--cnm-slate-800); }
.cnm-cz .cnm-home .hf-rating .rc { color: var(--cnm-slate-400); font-weight: 500; }
.cnm-cz .cnm-home .hf-chip { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 600; color: var(--cnm-slate-600); background: var(--cnm-slate-100); border-radius: 999px; padding: 3px 9px; }
.cnm-cz .cnm-home .hf-dist { background: var(--cnm-brand-50); color: var(--cnm-brand-700); }
.cnm-cz .cnm-home .hf-creds { display: flex; gap: 10px; flex-wrap: wrap; border-top: 1px solid var(--cnm-slate-100); padding-top: 11px; }
.cnm-cz .cnm-home .hf-cred { display: inline-flex; align-items: center; gap: 4px; font-size: 11.5px; font-weight: 600; color: var(--cnm-slate-600); }
@media (max-width: 860px) { .cnm-cz .cnm-home .home-featured { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .cnm-cz .cnm-home .home-featured { grid-template-columns: 1fr; } }

/* ══════════════════════════════════════════════════════════════════════════
   SEARCH RESULTS — sort label, active-filter chips, distance chip, pagination. */
.cnm-cz .cnm-rfilters select:disabled { opacity: .5; cursor: not-allowed; background: var(--cnm-slate-50); }
.cnm-cz .cnm-rfilters .rf-hint { font-size: 11px; color: var(--cnm-slate-400); margin-top: 6px; }

.cnm-cz .cnm-results .results-sortbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.cnm-cz .cnm-results .rsb-lbl { font-size: 13px; color: var(--cnm-slate-600); }
.cnm-cz .cnm-results .rsb-lbl strong { color: var(--cnm-slate-900); font-weight: 700; }
.cnm-cz .cnm-results .rsb-note { font-size: 11.5px; font-weight: 600; color: var(--cnm-brand-700); background: var(--cnm-brand-50); border-radius: 999px; padding: 3px 10px; }

.cnm-cz .cnm-results .rfilter-chips { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.cnm-cz .cnm-results .rfc-lbl { font-size: 12px; font-weight: 700; color: var(--cnm-slate-500); }
.cnm-cz .cnm-results .rfchip { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 600; color: var(--cnm-slate-700); background: #fff; border: 1px solid var(--cnm-slate-300); border-radius: 999px; padding: 5px 11px; text-decoration: none; transition: border-color 120ms, background 120ms, color 120ms; }
.cnm-cz .cnm-results .rfchip:hover { border-color: var(--cnm-emer-300); background: var(--cnm-emer-50); color: var(--cnm-emer-700); }
.cnm-cz .cnm-results .rfchip .x { font-size: 15px; line-height: 1; color: var(--cnm-slate-400); }
.cnm-cz .cnm-results .rfchip:hover .x { color: var(--cnm-emer-500); }
.cnm-cz .cnm-results .rfc-clear { font-size: 12.5px; font-weight: 700; color: var(--cnm-brand-700); text-decoration: none; margin-left: 2px; }
.cnm-cz .cnm-results .rfc-clear:hover { text-decoration: underline; }

.cnm-cz .cnm-results .pro-chips { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; justify-content: flex-end; }
.cnm-cz .cnm-results .dist-chip { display: inline-flex; align-items: center; gap: 3px; font-size: 11.5px; font-weight: 700; color: var(--cnm-brand-700); background: var(--cnm-brand-50); border-radius: 999px; padding: 2px 9px; }

.cnm-cz .cnm-results .cnm-pager { display: flex; align-items: center; justify-content: center; gap: 6px; margin-top: 20px; flex-wrap: wrap; }
.cnm-cz .cnm-results .cnm-pager .pg { display: inline-flex; align-items: center; gap: 4px; min-width: 38px; height: 38px; padding: 0 12px; justify-content: center; border: 1px solid var(--cnm-slate-200); border-radius: 10px; background: #fff; font-size: 13px; font-weight: 600; color: var(--cnm-slate-700); text-decoration: none; transition: border-color 120ms, background 120ms; }
.cnm-cz .cnm-results .cnm-pager .pg:hover { border-color: var(--cnm-brand-300); background: var(--cnm-brand-50); }
.cnm-cz .cnm-results .cnm-pager .pg.num { padding: 0; }
.cnm-cz .cnm-results .cnm-pager .pg.active { background: var(--cnm-brand-600); border-color: var(--cnm-brand-600); color: #fff; }
.cnm-cz .cnm-results .cnm-pager .pg.disabled { color: var(--cnm-slate-300); background: var(--cnm-slate-50); cursor: default; pointer-events: none; }
.cnm-cz .cnm-results .cnm-pager-sum { text-align: center; font-size: 12px; color: var(--cnm-slate-500); margin-top: 10px; }
@media (max-width: 640px) { .cnm-cz .cnm-results .pro-chips { justify-content: flex-start; } }

/* ══════════════════════════════════════════════════════════════════════════
   PROFILE — portfolio gallery (members) + login gate (guests). */
.cnm-cz .cnm-profile .prof-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.cnm-cz .cnm-profile .pgal-item { position: relative; border-radius: 12px; overflow: hidden; border: 1px solid var(--cnm-slate-200); background: var(--cnm-slate-100); text-decoration: none; display: block; }
.cnm-cz .cnm-profile .pgal-item img { width: 100%; height: 132px; object-fit: cover; display: block; transition: transform 200ms ease; }
.cnm-cz .cnm-profile .pgal-item:hover img { transform: scale(1.04); }
.cnm-cz .cnm-profile .pgal-cap { position: absolute; left: 0; right: 0; bottom: 0; font-size: 11px; font-weight: 600; color: #fff; background: linear-gradient(transparent, rgb(15 23 42 / .78)); padding: 16px 10px 7px; }
.cnm-cz .cnm-profile .prof-gallery-gate { position: relative; border: 1px solid var(--cnm-slate-200); border-radius: 14px; overflow: hidden; }
.cnm-cz .cnm-profile .pgg-tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; padding: 10px; }
.cnm-cz .cnm-profile .pgg-tile { height: 132px; border-radius: 10px; background: var(--cnm-slate-100); display: flex; align-items: center; justify-content: center; }
.cnm-cz .cnm-profile .pgg-lock { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 5px; padding: 24px; background: rgb(248 250 252 / .86); }
.cnm-cz .cnm-profile .pgg-lock-ic { width: 44px; height: 44px; border-radius: 12px; background: var(--cnm-brand-50); display: flex; align-items: center; justify-content: center; margin-bottom: 3px; }
.cnm-cz .cnm-profile .pgg-t { font-size: 15px; font-weight: 800; color: var(--cnm-slate-900); }
.cnm-cz .cnm-profile .pgg-d { font-size: 12.5px; color: var(--cnm-slate-600); line-height: 1.5; max-width: 350px; margin: 0 0 8px; }
.cnm-cz .cnm-profile .pgg-login { font-size: 12.5px; font-weight: 600; color: var(--cnm-brand-700); text-decoration: none; margin-top: 10px; }
.cnm-cz .cnm-profile .pgg-login:hover { text-decoration: underline; }
@media (max-width: 560px) { .cnm-cz .cnm-profile .prof-gallery, .cnm-cz .cnm-profile .pgg-tiles { grid-template-columns: repeat(2, 1fr); } }

/* ══════════════════════════════════════════════════════════════════════════
   MESSAGES — per-project thread selector (shown when >1 hired pro). */
.cnm-cz .cz-threadbar { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; margin-bottom: 12px; }
.cnm-cz .cz-thread { display: flex; align-items: center; gap: 9px; flex-shrink: 0; padding: 8px 12px 8px 8px; border: 1px solid var(--cnm-slate-200); border-radius: 12px; background: #fff; text-decoration: none; color: inherit; transition: border-color 120ms, background 120ms; }
.cnm-cz .cz-thread:hover { border-color: var(--cnm-brand-300); }
.cnm-cz .cz-thread.active { border-color: var(--cnm-brand-500); background: var(--cnm-brand-50); box-shadow: 0 0 0 2px var(--cnm-brand-100); }
.cnm-cz .cz-thread-av { width: 30px; height: 30px; border-radius: 50%; background: linear-gradient(135deg, var(--cnm-brand-500), var(--cnm-brand-700)); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; flex-shrink: 0; }
.cnm-cz .cz-thread-meta { display: flex; flex-direction: column; line-height: 1.2; }
.cnm-cz .cz-thread-meta .nm { font-size: 13px; font-weight: 700; color: var(--cnm-slate-800); }
.cnm-cz .cz-thread-meta .sub { font-size: 11px; color: var(--cnm-slate-500); }
.cnm-cz .cz-thread-dot { background: var(--cnm-emer-500); color: #fff; font-size: 10px; font-weight: 700; min-width: 16px; height: 16px; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; padding: 0 4px; }

/* ══════════════════════════════════════════════════════════════════════════
   EMERGENCY — request intake, confirmation, and portal list. */
.cnm-cz .cnm-emer .em-form { margin-top: 20px; }
.cnm-cz .cnm-emer .em-step-lbl { font-size: 11px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--cnm-slate-500); margin: 20px 0 9px; }
.cnm-cz .cnm-emer .em-form .em-step-lbl:first-child { margin-top: 4px; }
.cnm-cz .cnm-emer .em-trades { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.cnm-cz .cnm-emer .em-trade { position: relative; }
.cnm-cz .cnm-emer .em-trade input { position: absolute; opacity: 0; pointer-events: none; }
.cnm-cz .cnm-emer .em-trade span { display: flex; align-items: center; justify-content: center; height: 44px; border: 1.5px solid var(--cnm-slate-200); border-radius: 12px; background: #fff; font-size: 13.5px; font-weight: 700; color: var(--cnm-slate-700); cursor: pointer; transition: border-color 120ms, background 120ms, color 120ms; }
.cnm-cz .cnm-emer .em-trade input:checked + span { border-color: var(--cnm-emer-500); background: var(--cnm-emer-50); color: var(--cnm-emer-700); box-shadow: 0 0 0 2px var(--cnm-emer-100); }
.cnm-cz .cnm-emer .em-trade input:focus-visible + span { box-shadow: 0 0 0 3px var(--cnm-emer-100); }
.cnm-cz .cnm-emer textarea, .cnm-cz .cnm-emer .em-field input { width: 100%; border: 1px solid var(--cnm-slate-300); border-radius: 11px; padding: 11px 13px; font: inherit; font-size: 14px; background: #fff; resize: vertical; }
.cnm-cz .cnm-emer textarea:focus, .cnm-cz .cnm-emer .em-field input:focus, .cnm-cz .cnm-emer .em-addr-row:focus-within { outline: none; border-color: var(--cnm-emer-400); box-shadow: 0 0 0 3px var(--cnm-emer-50); }
.cnm-cz .cnm-emer .em-addr-row { display: flex; align-items: center; gap: 10px; border: 1px solid var(--cnm-slate-300); border-radius: 11px; padding: 0 13px; background: #fff; }
.cnm-cz .cnm-emer .em-addr-row > svg { flex-shrink: 0; }
.cnm-cz .cnm-emer .em-addr-row input { flex: 1; border: 0; outline: none; padding: 12px 0; font: inherit; font-size: 14px; background: transparent; }
.cnm-cz .cnm-emer .em-addr-hint { font-size: 11.5px; color: var(--cnm-slate-500); margin-top: 6px; }
.cnm-cz .cnm-emer .em-guest { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 18px; }
.cnm-cz .cnm-emer .em-field label { display: block; font-size: 12.5px; font-weight: 600; color: var(--cnm-slate-700); margin-bottom: 6px; }
.cnm-cz .cnm-emer .qerr { font-size: 12px; color: var(--cnm-emer-600); font-weight: 600; margin-top: 6px; }
.cnm-cz .cnm-emer .em-actions { display: flex; gap: 10px; align-items: center; margin-top: 22px; flex-wrap: wrap; }
.cnm-cz .cnm-emer .em-actions .cnm-btn.lg { background: var(--cnm-emer-600); box-shadow: 0 4px 14px -4px rgb(225 29 72 / .5); }
.cnm-cz .cnm-emer .em-actions .cnm-btn.lg:hover { background: var(--cnm-emer-700); }
.cnm-cz .cnm-emer .em-privacy { display: flex; align-items: flex-start; gap: 7px; font-size: 12px; line-height: 1.5; color: var(--cnm-slate-500); margin-top: 16px; }
.cnm-cz .cnm-emer .em-privacy > svg { flex-shrink: 0; margin-top: 1px; }
/* Confirmation */
.cnm-cz .cnm-emer .em-confirm { text-align: center; margin-top: 22px; }
.cnm-cz .cnm-emer .emc-ic { width: 60px; height: 60px; border-radius: 16px; background: var(--cnm-trust-50); display: flex; align-items: center; justify-content: center; margin: 0 auto 16px; }
.cnm-cz .cnm-emer .emc-pro, .cnm-cz .cnm-emer .emc-other { display: flex; align-items: center; gap: 12px; text-align: left; border: 1px solid var(--cnm-slate-200); border-radius: 14px; padding: 13px 15px; background: #fff; text-decoration: none; color: inherit; }
.cnm-cz .cnm-emer .emc-pro { margin: 18px 0 0; box-shadow: var(--cnm-shadow-card); }
.cnm-cz .cnm-emer .emc-pro-name { font-size: 15px; font-weight: 700; }
.cnm-cz .cnm-emer .emc-pro-sub { font-size: 12.5px; color: var(--cnm-slate-500); margin-top: 2px; display: flex; align-items: center; flex-wrap: wrap; }
.cnm-cz .cnm-emer .emc-others { text-align: left; margin-top: 22px; }
.cnm-cz .cnm-emer .emc-others-h { font-size: 12px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--cnm-slate-500); margin-bottom: 9px; }
.cnm-cz .cnm-emer .emc-other { margin-bottom: 8px; transition: border-color 120ms; }
.cnm-cz .cnm-emer .emc-other:hover { border-color: var(--cnm-brand-300); }
.cnm-cz .cnm-emer .emc-other .nm { display: block; font-size: 13.5px; font-weight: 700; }
.cnm-cz .cnm-emer .emc-other .sub { display: block; font-size: 11.5px; color: var(--cnm-slate-500); }
.cnm-cz .cnm-emer .emc-actions { display: flex; gap: 10px; justify-content: center; margin-top: 24px; flex-wrap: wrap; }
/* Portal list */
.cnm-cz .em-req { padding: 18px 20px; margin-bottom: 12px; }
.cnm-cz .em-req-top { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.cnm-cz .em-req-trade { font-size: 14px; font-weight: 700; }
.cnm-cz .em-req-when { font-size: 12px; color: var(--cnm-slate-400); margin-left: auto; }
.cnm-cz .em-req-desc { font-size: 13.5px; color: var(--cnm-slate-700); line-height: 1.5; margin: 10px 0; }
.cnm-cz .em-req-meta { font-size: 12.5px; color: var(--cnm-slate-500); display: flex; align-items: center; gap: 6px; }
.cnm-cz .em-req-pro { display: flex; align-items: center; gap: 11px; margin-top: 13px; padding-top: 13px; border-top: 1px solid var(--cnm-slate-100); text-decoration: none; color: inherit; }
.cnm-cz .em-req-pro .nm { display: block; font-size: 13px; font-weight: 700; }
.cnm-cz .em-req-pro .sub { display: block; font-size: 11.5px; color: var(--cnm-slate-500); }
@media (max-width: 480px) { .cnm-cz .cnm-emer .em-trades { grid-template-columns: repeat(2, 1fr); } .cnm-cz .cnm-emer .em-guest { grid-template-columns: 1fr; } }
