:root{--bg: #f5f7fa;--surface: #fff;--line: #e3e8ef;--ink: #1a2230;--muted: #6b7686;--accent: #2f5bff;--ok: #0f9d58;--danger: #c0392b;--radius: 10px;--mono: ui-monospace, "SF Mono", Consolas, monospace;--sans: "Segoe UI", system-ui, -apple-system, Arial, sans-serif}*{box-sizing:border-box}body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--bg)}button,textarea,input{font-family:inherit;font-size:14px}.muted{color:var(--muted)}.small{font-size:12px}.pad{padding:16px}.center{min-height:100vh;display:grid;place-items:center}.error{color:var(--danger);font-size:13px}.btn{border:1px solid var(--line);background:#fff;color:var(--ink);padding:8px 14px;border-radius:8px;cursor:pointer}.btn:hover:not(:disabled){border-color:#c3ccda}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.success{background:var(--ok);color:#fff;border-color:var(--ok)}.link{background:none;border:none;color:var(--accent);cursor:pointer;padding:4px 8px}.link.danger{color:var(--danger)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px}.login{width:320px;display:flex;flex-direction:column;gap:12px}.login h1{margin:0;font-size:20px}.login p{margin:0}.login label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}.login input{padding:9px 10px;border:1px solid var(--line);border-radius:8px}.app{height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--line)}.brand{font-weight:600}.spacer{flex:1}.pill{font-size:12px;padding:3px 10px;border-radius:999px;border:1px solid var(--line)}.pill.ok{color:var(--ok);border-color:#bfe6cd;background:#eafaf0}.pill.off{color:var(--muted);background:#f0f2f6}.split{flex:1;display:grid;grid-template-columns:320px 1fr;overflow:hidden}.inbox{border-right:1px solid var(--line);overflow-y:auto;background:var(--surface)}.inbox-head{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line)}.inbox-head h2{margin:0;font-size:15px}.inbox ul{list-style:none;margin:0;padding:0}.inbox li{padding:12px 16px;border-bottom:1px solid var(--line);cursor:pointer}.inbox li:hover{background:#f7f9fc}.inbox li.active{background:#eef3ff}.inbox .row{display:flex;justify-content:space-between}.inbox .who{font-weight:600}.inbox .chan{font-size:11px;color:var(--muted)}.inbox .preview{margin:3px 0 2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inbox li.unread .who,.inbox li.unread .preview{font-weight:700;color:var(--text, #111)}.unread-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--accent);margin-right:6px;vertical-align:middle}.unread-count{display:inline-block;min-width:18px;padding:0 6px;margin-left:8px;border-radius:9px;background:var(--accent);color:#fff;font-size:12px;line-height:18px;text-align:center;vertical-align:middle}.inbox-tools{display:flex;align-items:center;gap:4px;flex-wrap:wrap;justify-content:flex-end}.notify-on{color:var(--ok, #1a7f4b)}.notify-blocked{max-width:12em;text-align:right}.conversation{display:flex;flex-direction:column;overflow:hidden}.conversation.empty{align-items:center;justify-content:center}.conv-head{padding:12px 18px;border-bottom:1px solid var(--line);background:var(--surface)}.messages{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:10px}.msg{max-width:68%}.msg.in{align-self:flex-start}.msg.out{align-self:flex-end;text-align:right}.msg .bubble{padding:9px 13px;border-radius:12px;display:inline-block;text-align:left}.msg.in .bubble{background:#eef1f6}.msg.out .bubble{background:#dfe8ff}.msg .bubble .placeholder{color:#5b6472;font-style:italic}.msg-media{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.msg-media-thumb{display:block;max-width:min(240px,100%);max-height:240px;border-radius:8px;object-fit:cover;background:#dde2ea}.msg-media-file{font-size:13px}.shared-link a{text-decoration:underline;word-break:break-all}.drafts{padding:0 18px;display:flex;flex-direction:column;gap:10px}.draft.card{padding:12px 14px}.draft-body{white-space:pre-wrap}.draft-actions{display:flex;align-items:center;gap:8px;margin-top:10px}.contact-head{border-bottom:1px solid var(--line);background:var(--surface);padding:10px 16px}.contact-row{display:flex;align-items:center;gap:10px}.contact-id{min-width:0;flex:1}.contact-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contact-sub{font-variant-numeric:tabular-nums}.contact-origin{margin-top:4px}.contact-toggle{flex:none}.contact-flag{margin-top:6px}.contact-flag.danger{color:var(--danger);font-weight:600}.avatar{flex:none;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:600;font-size:15px;background:var(--accent);color:#fff}.avatar-unknown{background:#e3e8f0;color:#6b7480}.contact-details{margin-top:10px}.cd-block{padding:8px 0;border-top:1px solid var(--line)}.cd-block:first-child{border-top:0}.cd-title{color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.cd-listing{margin:2px 0;overflow-wrap:anywhere}.cd-link{display:inline-block;padding-left:0;margin-top:4px}.prov{font-size:11px;padding:1px 6px;border-radius:999px;white-space:nowrap;background:#eef1f6;color:#5b6472;margin-left:6px}.prov-provider-verified,.prov-landlord-confirmed{background:#e4f2e8;color:#2f6b45}.prov-crm-derived{background:#fdf1dd;color:#855a1b}.prov-unknown{background:#f0f0f2;color:#74767d}.tmpl-badge{margin-top:8px;padding:6px 10px;border-radius:8px;background:#eef3ff;border:1px solid #ccd9f5;overflow-wrap:anywhere}.tmpl-badge.tmpl-bad{background:#fdecea;border-color:#f2c3bd}.tmpl-name{font-size:13px}.tmpl-problem{color:var(--danger);margin-top:4px}.approval-details,.audit-fold{margin-top:6px}.approval-details>summary,.audit-fold>summary{cursor:pointer;list-style:none;color:var(--muted);padding:4px 0;display:block;text-align:left}.approval-details>summary::-webkit-details-marker,.audit-fold>summary::-webkit-details-marker{display:none}.approval-details>summary:before,.audit-fold>summary:before{content:"▸ "}.approval-details[open]>summary:before,.audit-fold[open]>summary:before{content:"▾ "}.msg.out .approval-details,.msg.out .approval-details *{text-align:left}.approval-facts{margin-top:4px;text-align:left}.approval-facts code,.audit-row code{overflow-wrap:anywhere}.audit-fold{border-top:1px solid var(--line);padding-top:8px;margin-top:12px}.audit-row{border-top:1px solid var(--line);padding:10px 0}.audit-quote{white-space:pre-wrap;color:var(--muted);border-left:2px solid var(--line);padding-left:10px;margin:6px 0}.bound{margin-top:10px;border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:#f7f9fc}.bound-title{color:var(--muted);margin-bottom:4px}.bound-body{white-space:pre-wrap;font-family:var(--mono);font-size:13px;background:#fff;border:1px solid var(--line);border-radius:6px;padding:8px 10px}.bound code,.confirm code{font-size:11.5px;word-break:break-all}.policy-banner{margin-top:10px;padding:9px 12px;border-radius:8px;background:#fff8e6;border:1px solid #f0dca0;color:#7a5b00}.confirm.card{margin-top:10px;border-color:var(--ok);background:#f2fbf5;display:flex;flex-direction:column;gap:6px}.confirm-body{white-space:pre-wrap;font-family:var(--mono);font-size:13px;background:#fff;border:1px solid var(--line);border-radius:6px;padding:8px 10px}.composer{display:flex;gap:10px;padding:14px 18px;border-top:1px solid var(--line);background:var(--surface)}.composer textarea{flex:1;resize:vertical;padding:10px;border:1px solid var(--line);border-radius:8px}.timeline{padding:14px 18px;border-top:1px solid var(--line);background:#fafbfd;max-height:26vh;overflow-y:auto}.timeline h3{margin:0 0 8px;font-size:13px}.timeline ol{margin:0;padding-left:18px}.timeline li{margin:3px 0}.tl-type{font-family:var(--mono);font-size:12px}.settings .card{margin-bottom:16px;display:flex;flex-direction:column;gap:6px;max-width:560px}.tbl{border-collapse:collapse;width:100%;max-width:560px}.tbl th,.tbl td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);font-size:13px}.views{display:flex;gap:2px}.link.current{font-weight:600;text-decoration:underline}.assets{flex:1;overflow-y:auto;padding:16px}.assets-head{display:flex;justify-content:space-between;align-items:center}.assets-head h2{margin:0;font-size:15px}.assets-grid{display:grid;grid-template-columns:360px 1fr;gap:16px;margin-top:12px;align-items:start}.asset-list{list-style:none;margin:0 0 12px;padding:0}.asset-list li{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;margin-bottom:8px;cursor:pointer}.asset-list li.active{border-color:var(--accent)}.asset-list .row{display:flex;justify-content:space-between;align-items:center}.asset-list .who{font-weight:600}code.ext{font-family:var(--mono);font-size:11px;color:var(--muted)}.discover .row{display:flex;justify-content:space-between;align-items:center;gap:8px}.discover p{margin:4px 0 8px}.discovered{border-top:1px solid var(--line);padding-top:8px;margin-top:8px}.detail h3{margin:0;font-size:16px}.detail h4{margin:16px 0 6px;font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.detail .row{display:flex;justify-content:space-between;align-items:center;gap:8px}table.subs{width:100%;border-collapse:collapse;font-size:13px}table.subs th{text-align:left;font-weight:600;color:var(--muted);font-size:12px;border-bottom:1px solid var(--line);padding:4px 6px}table.subs td{padding:5px 6px;border-bottom:1px solid var(--line);vertical-align:top}.change label{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.change label.inline{flex-direction:row;align-items:center;gap:6px}.change input[type=text],.change input:not([type]){padding:7px 9px;border:1px solid var(--line);border-radius:8px;font-family:var(--mono);font-size:12px}.approve-box{border:1px solid var(--line);border-radius:var(--radius);padding:10px;display:flex;flex-direction:column;gap:8px}code.digest{font-family:var(--mono);font-size:11px;word-break:break-all;color:var(--ink)}.notice{background:#fff7e6;border:1px solid #ffe0a3;border-radius:8px;padding:8px 10px;font-size:13px;margin-bottom:8px}.outcome{border-radius:8px;padding:10px;font-size:13px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}.outcome.applied{background:#eafaf0;border:1px solid #bfe6cd}.outcome.failed{background:#fdecea;border:1px solid #f5c2bd}.outcome.uncertain{background:#fff7e6;border:1px solid #ffe0a3}.whatsapp{display:flex;flex-direction:column;gap:12px;margin-top:12px}.waba h3{margin:0;font-size:16px;display:flex;align-items:center;gap:8px}.pill.warn{color:#92610a;border-color:#ffe0a3;background:#fff7e6}.pill.bad{color:var(--danger);border-color:#f5c2bd;background:#fdecea}.empty-truth{border:1px dashed var(--line);border-radius:var(--radius);padding:14px;background:#fbfcfe}.empty-truth p{margin:6px 0 0}.phone{border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin-bottom:8px}.facts{margin:6px 0 0;padding-left:18px;font-size:13px}.facts li{margin:2px 0}.template-controls{gap:8px;align-items:center;margin-bottom:8px}.template-controls input,.template-controls select{padding:6px 8px;border:1px solid var(--line);border-radius:8px}.template-controls input{flex:1}.notice.small{font-size:12px}table.templates td{vertical-align:top}.published-content .page-block{border-top:1px solid #e6e8eb;padding:10px 12px}.published-content .page-block:first-of-type{border-top:0}.post-list{list-style:none;margin:8px 0 0;padding:0}.post-list li{padding:8px 0;border-top:1px dashed #e6e8eb}.post-list li:first-child{border-top:0}.post-list .excerpt{margin:4px 0;white-space:pre-wrap;word-break:break-word}.comments{margin-top:6px}.comment-body{margin:6px 0 2px 12px;padding-left:10px;border-left:2px solid #e6e8eb}.comment-list{list-style:none;margin:6px 0;padding:0}.comment-list li{padding:6px 0;border-top:1px dotted #e6e8eb}.comment-list li:first-child{border-top:0}.link.small{font-size:12px}.public-reply{margin:6px 0 2px 12px}.reply-body{margin-top:6px;padding-left:10px;border-left:2px solid #ffe0a3}.reply-compose textarea{width:100%;box-sizing:border-box;padding:6px 8px;border:1px solid var(--line);border-radius:8px;font:inherit;resize:vertical}.reply-compose .btn,.reply-preview,.reply-approved{margin-top:6px}.preview-facts{margin:6px 0;display:grid;grid-template-columns:max-content 1fr;gap:2px 10px;font-size:13px}.preview-facts dt{color:#6b7280}.preview-facts dd{margin:0;white-space:pre-wrap;word-break:break-word}.warn{background:#fff7e6;border:1px solid #ffe0a3;border-radius:8px;color:#92610a;font-size:13px}.reply-list{list-style:none;margin:6px 0;padding:0}.reply-list li{padding:6px 0;border-top:1px dotted #e6e8eb}.reply-list li:first-child{border-top:0}.automatic-events{border:1px solid var(--line);border-radius:12px;background:#fff;margin:12px 0;padding:0 0 10px}.event-list{list-style:none;margin:0;padding:0}.event-row{border-top:1px solid #e6e8eb;padding:10px 12px}.event-row:first-child{border-top:0}.event-actions{margin-top:8px}.digest{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;word-break:break-all}.how-it-works{margin:10px 12px 0;border-top:1px solid #e6e8eb;padding-top:8px}.how-it-works summary{cursor:pointer;font-size:13px;color:#6b7280}.how-it-works ul{margin:8px 0 0;padding-left:18px;font-size:13px}.how-it-works li{margin:6px 0}.how-it-works code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;background:#f4f5f7;padding:0 3px;border-radius:3px}.send-outcome{border-radius:6px;padding:.6rem .7rem;margin:.5rem 0;border:1px solid transparent}.send-outcome .send-outcome-title{margin-bottom:.2rem}.send-outcome.ok{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}.send-outcome.error{background:#fef2f2;border-color:#fecaca;color:#991b1b}.send-outcome.warn{background:#fffbeb;border-color:#fcd34d;color:#92400e;box-shadow:0 0 0 2px #fcd34d59}.lifecycle{display:inline-block;padding:1px 6px;border-radius:3px;font-size:10px;font-weight:700;letter-spacing:.06em;vertical-align:1px}.lifecycle-awaiting_approval{background:#fff3d6;color:#8a5a08}.lifecycle-approved{background:#e4edf7;color:#234e70}.lifecycle-sent{background:#e4f0ea;color:#2a6650}.lifecycle-expired,.lifecycle-authorization_expired,.lifecycle-superseded{background:#eceef1;color:#6b7280}.lifecycle-revoked{background:#f7e9e9;color:#a32b2b}.msg-delivery{font-size:11px;font-weight:600;letter-spacing:.05em;color:#2a6650}.msg-delivery.msg-failed{color:#a32b2b}@media (prefers-color-scheme: dark){.lifecycle-awaiting_approval{background:#2c2415;color:#e0b45e}.lifecycle-approved{background:#1a2a38;color:#7fb0d8}.lifecycle-sent{background:#16281f;color:#7fc7a6}.lifecycle-expired,.lifecycle-authorization_expired,.lifecycle-superseded{background:#23272e;color:#9aa3af}.lifecycle-revoked{background:#2e1d1e;color:#e98a8a}.msg-delivery{color:#7fc7a6}.msg-delivery.msg-failed{color:#e98a8a}}.back-btn{display:none;background:none;border:0;padding:6px 4px;font-size:15px;color:var(--accent);cursor:pointer;min-height:44px}@media (max-width: 720px){.split{grid-template-columns:1fr}.split>.inbox{display:none}.split>.conversation{display:none}.split[data-view=list]>.inbox{display:flex;flex-direction:column;min-width:0}.split[data-view=detail]>.conversation{display:flex;flex-direction:column}.inbox ul{width:100%;min-width:0}.inbox li{min-width:0}.inbox .row{gap:8px;min-width:0}.inbox .who{min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inbox .chan{flex:none}.inbox .preview{min-width:0}.inbox-head{flex-wrap:wrap;gap:4px 10px;padding:10px 12px}.inbox-tools{flex:1 1 100%;justify-content:flex-start;gap:2px 8px}.back-btn{display:inline-block}.login,.settings .card,.tbl{width:auto;max-width:100%}.assets-grid,.preview-facts{grid-template-columns:1fr}.msg{max-width:88%}.msg .bubble{overflow-wrap:anywhere;word-break:break-word}.bound-body,.draft-body,.msg .bubble,code{overflow-wrap:anywhere}.tbl-wrap,.assets,.settings{overflow-x:auto}.btn{min-height:44px;padding:10px 14px}.draft-actions{display:flex;flex-wrap:wrap;gap:10px}.draft-actions .btn.primary{flex:1 1 100%;order:-1}.link{min-height:44px;display:inline-flex;align-items:center;padding:8px 10px}.link.small{min-height:0;padding:2px 4px}.draft-actions .link.danger{flex:1 1 100%;order:99}.topbar{flex-wrap:wrap;row-gap:8px;column-gap:8px;padding:8px 12px}.topbar .brand span.muted{display:none}.topbar>.muted{display:none}.spacer{display:none}.views{flex:1 1 auto;order:2;flex-wrap:wrap;gap:0 2px}.views .link{padding:8px 6px;font-size:14px}.topbar>.link{order:3;flex:none;margin-left:auto}.conversation{overflow:visible}.messages{flex:0 0 auto;overflow:visible}.split{overflow-y:auto;-webkit-overflow-scrolling:touch}.contact-head{padding:8px 12px}.contact-head .back-btn{display:inline-flex;padding:0 4px;min-width:28px}.contact-toggle{min-height:44px}.prov{display:inline-block;margin-left:0;margin-top:2px}.approval-details>summary,.audit-fold>summary{min-height:44px}.timeline{max-height:none;overflow:visible}.pad,.conversation,.inbox{padding-left:12px;padding-right:12px}.conv-head{position:sticky;top:0;z-index:2;background:var(--surface);display:flex;align-items:center;gap:10px}}@media (max-width: 380px){.msg{max-width:94%}.views{gap:0}.views .link{padding:8px 2px;font-size:13px}.topbar>.link{padding:8px 4px}.pad,.conversation,.inbox{padding-left:8px;padding-right:8px}}.call-pilot{padding:12px;max-width:720px;margin:0 auto}.call-pilot-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px}.call-pilot-head h2{margin:0;font-size:1.1rem}.call-list{list-style:none;margin:0;padding:0}.call-card{display:flex;align-items:center;gap:12px;padding:12px 8px;border-bottom:1px solid rgba(0,0,0,.08)}.call-card.spent{opacity:.55}.call-card-main{flex:1 1 auto;min-width:0}.call-card-title{font-weight:600;overflow-wrap:anywhere}.call-card-action{flex:0 0 auto}.call-btn{min-height:44px;min-width:104px;font-size:1rem}.outcome-card{border:1px solid rgba(0,0,0,.14);border-radius:10px;padding:14px;margin:12px 0;background:#00000005}.outcome-title{font-weight:700;font-size:1.05rem;margin-bottom:2px}.outcome-buttons{display:grid;gap:8px;margin-top:12px;grid-template-columns:1fr}.outcome-btn{min-height:48px;font-size:1rem;text-align:center}.outcome-btn.current{outline:2px solid currentColor}.consent-block{margin-top:14px;display:grid;gap:8px}.consent-script{border-left:3px solid currentColor;padding:6px 10px;background:#00000008}.consent-block textarea{width:100%;min-height:72px;font:inherit;padding:8px;box-sizing:border-box}.instruction{font-weight:600}.footnote{margin-top:18px}@media (min-width: 560px){.outcome-buttons{grid-template-columns:repeat(2,1fr)}}.ob-badge{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;font-size:12px;line-height:1.35}.ob-badge .ob-dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto;background:currentColor}.ob-badge .ob-text{font-weight:600}.ob-badge .ob-partner,.ob-badge .ob-obj,.ob-panel .ob-partner,.ob-panel .ob-pb{padding:1px 6px;border-radius:999px;font-size:11px;background:#7f7f7f29;color:inherit;opacity:.85}.ob-badge.ob-ready{color:#1a7f4b}.ob-badge.ob-attention{color:#a4560c}.ob-badge.ob-waiting,.ob-badge.ob-done{color:#6b7280}.ob-badge.ob-waiting .ob-text,.ob-badge.ob-done .ob-text{font-weight:500}.ob-panel{margin:10px 12px 0;padding:10px 12px;border-radius:10px;border:1px solid rgba(127,127,127,.28);display:flex;flex-direction:column;gap:6px}.ob-panel.ob-ready{border-color:#1a7f4b73;background:#1a7f4b12}.ob-panel.ob-attention{border-color:#a4560c73;background:#a4560c12}.ob-panel-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.ob-panel .ob-reply{margin:0;padding:8px 10px;border-radius:8px;white-space:pre-wrap;word-break:break-word;font:inherit;font-size:13px;background:#7f7f7f1f}
