/* ScotNet Main v6.7.3 — Contact Centre */
.sn-contact-form { display:grid; gap:12px; }
.sn-contact-form .sn-textarea { min-height:150px; resize:vertical; }
.sn-contact-form .sn-contact-footer { align-items:flex-end; gap:14px; }
.sn-contact-progress { margin-top:14px; padding:16px; border:1px solid color-mix(in srgb, var(--sn-border, #cbd5e1) 80%, transparent); border-radius:18px; background:color-mix(in srgb, var(--sn-card, #fff) 92%, #dbeafe 8%); }
.sn-contact-progress[hidden] { display:none !important; }
.sn-contact-progress-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; font-size:.93rem; }
.sn-contact-progress-head strong { color:var(--sn-text, #0f172a); }
.sn-contact-progress progress { width:100%; height:12px; accent-color:#16a36a; }
.sn-contact-stages { margin:12px 0 0; padding:0; list-style:none; display:grid; gap:7px; }
.sn-contact-stage { display:grid; grid-template-columns:18px 1fr; align-items:start; gap:8px; color:var(--sn-muted, #64748b); font-size:.88rem; }
.sn-contact-stage::before { content:'•'; display:grid; place-items:center; width:18px; height:18px; border-radius:50%; background:#e2e8f0; color:#64748b; font-size:.78rem; line-height:1; }
.sn-contact-stage.is-running { color:var(--sn-text, #0f172a); }
.sn-contact-stage.is-running::before { content:'…'; background:#dbeafe; color:#1d4ed8; }
.sn-contact-stage.is-ok::before { content:'✓'; background:#d1fae5; color:#047857; }
.sn-contact-stage.is-warn::before { content:'!'; background:#fef3c7; color:#b45309; }
.sn-contact-stage.is-blocked::before { content:'×'; background:#fee2e2; color:#b91c1c; }
.sn-contact-stage.is-off::before { content:'–'; background:#e5e7eb; color:#6b7280; }
.sn-contact-result-text { margin:12px 0 0; font-weight:700; }
.sn-contact-result-text.is-ok { color:#047857; }
.sn-contact-result-text.is-error { color:#b91c1c; }
.sn-contact-retry-note { margin-top:6px; color:var(--sn-muted, #64748b); font-size:.85rem; }

.sn-contact-operator { max-width:1500px; }
.sn-contact-operator-hero { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; }
.sn-eyebrow { margin:0 0 5px; font-size:.74rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; color:#64748b; }
.sn-contact-health { display:flex; align-items:center; gap:9px; padding:10px 14px; border-radius:999px; background:color-mix(in srgb, var(--sn-card, #fff) 90%, #e2e8f0 10%); border:1px solid var(--sn-border, #d7dee8); white-space:nowrap; }
.sn-contact-health-dot { width:10px; height:10px; border-radius:50%; background:#94a3b8; box-shadow:0 0 0 4px rgba(148,163,184,.14); }
.sn-contact-health-dot.is-on { background:#22c55e; box-shadow:0 0 0 4px rgba(34,197,94,.14); }
.sn-contact-health-dot.is-off { background:#f59e0b; box-shadow:0 0 0 4px rgba(245,158,11,.14); }
.sn-contact-notice { margin:0 0 18px; padding:13px 16px; border-radius:14px; border:1px solid; font-weight:650; }
.sn-contact-notice.is-ok { background:#ecfdf5; border-color:#a7f3d0; color:#065f46; }
.sn-contact-notice.is-error { background:#fff1f2; border-color:#fecdd3; color:#9f1239; }
.sn-contact-admin-grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr); gap:18px; align-items:start; }
.sn-contact-section-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; margin-bottom:16px; }
.sn-contact-section-heading h2 { margin:0; }
.sn-contact-chip { display:inline-flex; align-items:center; width:max-content; max-width:100%; padding:5px 9px; border-radius:999px; background:#eef2ff; color:#4338ca; font-size:.75rem; font-weight:800; }
.sn-contact-chip.is-warn { background:#fff7ed; color:#c2410c; }
.sn-contact-settings-form { display:grid; gap:13px; }
.sn-contact-toggle-row { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 0; }
.sn-contact-toggle-row span { display:grid; gap:3px; }
.sn-contact-toggle-row small { color:var(--sn-muted, #64748b); font-size:.8rem; }
.sn-contact-toggle-row input[type="checkbox"], .sn-contact-inline-check input, .sn-dnsbl-controls input { width:20px; height:20px; accent-color:#2563eb; flex:0 0 auto; }
.sn-contact-setting-card { padding:14px; border:1px solid var(--sn-border, #d7dee8); border-radius:16px; background:color-mix(in srgb, var(--sn-card, #fff) 94%, #f1f5f9 6%); }
.sn-contact-setting-card h3 { margin:0 0 10px; }
.sn-contact-field-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.sn-contact-field-grid--compact { grid-template-columns:repeat(3,minmax(0,1fr)); }
.sn-contact-field-grid label, .sn-contact-add-dnsbl label { display:grid; gap:6px; font-size:.78rem; font-weight:750; color:var(--sn-muted, #64748b); }
.sn-contact-test-actions, .sn-contact-inbox-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; margin-top:13px; }
.sn-contact-test-actions form, .sn-contact-message-actions form, .sn-contact-inbox-actions form, .sn-contact-danger-form { margin:0; }
.sn-secondary-btn, .sn-danger-btn { display:inline-flex; justify-content:center; align-items:center; min-height:42px; padding:9px 14px; border-radius:999px; border:1px solid var(--sn-border, #cbd5e1); background:var(--sn-card, #fff); color:var(--sn-text, #0f172a); text-decoration:none; font:inherit; font-weight:750; cursor:pointer; }
.sn-secondary-btn:hover { background:#f8fafc; }
.sn-danger-btn { border-color:#fecaca; color:#b91c1c; background:#fff7f7; }
.sn-danger-btn:hover { background:#fee2e2; }
.sn-small-btn { min-height:36px; padding:6px 11px; font-size:.8rem; }
.sn-dnsbl-list { display:grid; gap:10px; margin:15px 0; }
.sn-dnsbl-row { display:grid; gap:10px; padding:13px; border:1px solid var(--sn-border, #d7dee8); border-radius:15px; }
.sn-dnsbl-row > div:first-child { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; }
.sn-dnsbl-row code { font-size:.78rem; color:var(--sn-muted, #64748b); overflow-wrap:anywhere; }
.sn-dnsbl-controls { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.sn-dnsbl-controls label, .sn-contact-inline-check { display:inline-flex; align-items:center; gap:7px; font-size:.82rem; font-weight:700; }
.sn-contact-add-dnsbl { display:grid; grid-template-columns:1fr 1fr; gap:10px; padding-top:15px; border-top:1px solid var(--sn-border, #d7dee8); }
.sn-contact-add-dnsbl .sn-contact-inline-check { align-self:end; min-height:44px; }
.sn-contact-add-dnsbl .sn-primary-btn { align-self:end; }
.sn-contact-message-list { display:grid; gap:9px; margin-top:14px; }
.sn-contact-message-row { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:15px; align-items:center; padding:13px 0; border-bottom:1px solid var(--sn-border, #e2e8f0); }
.sn-contact-message-row:last-child { border-bottom:0; }
.sn-contact-message-main { min-width:0; display:grid; gap:3px; }
.sn-contact-message-main strong, .sn-contact-message-main span, .sn-contact-message-main small { overflow-wrap:anywhere; }
.sn-contact-message-main span { color:var(--sn-muted, #64748b); font-size:.86rem; }
.sn-contact-message-main small { color:var(--sn-muted, #64748b); font-size:.75rem; }
.sn-contact-message-flags, .sn-contact-message-actions { display:flex; flex-wrap:wrap; align-items:center; gap:7px; }
.sn-contact-message-meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:0 0 18px; }
.sn-contact-message-meta > div { padding:11px; border-radius:13px; background:color-mix(in srgb, var(--sn-card, #fff) 90%, #f1f5f9 10%); border:1px solid var(--sn-border, #e2e8f0); }
.sn-contact-message-meta dt { font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:var(--sn-muted, #64748b); font-weight:800; }
.sn-contact-message-meta dd { margin:4px 0 0; overflow-wrap:anywhere; }
.sn-contact-message-body { white-space:normal; padding:16px; border-radius:15px; background:#f8fafc; color:#0f172a; line-height:1.65; border:1px solid #e2e8f0; }
.sn-contact-warning { margin-top:12px; padding:11px; border-radius:12px; background:#fff7ed; color:#9a3412; }
.sn-contact-empty { padding:22px; text-align:center; border:1px dashed var(--sn-border, #cbd5e1); border-radius:15px; color:var(--sn-muted, #64748b); }
.sn-contact-security-note { margin-bottom:28px; }
.sn-contact-denied { max-width:760px; margin:8vh auto; }

@media (max-width: 900px) {
  .sn-contact-admin-grid { grid-template-columns:1fr; }
  .sn-contact-field-grid--compact { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 640px) {
  .sn-contact-form .sn-contact-footer { align-items:stretch; }
  .sn-contact-form .sn-primary-btn { width:100%; }
  .sn-contact-progress { padding:13px; border-radius:15px; }
  .sn-contact-operator-hero, .sn-contact-section-heading, .sn-contact-inbox-actions { align-items:flex-start; flex-direction:column; }
  .sn-contact-health { white-space:normal; }
  .sn-contact-field-grid, .sn-contact-field-grid--compact, .sn-contact-add-dnsbl, .sn-contact-message-meta { grid-template-columns:1fr; }
  .sn-contact-message-row { grid-template-columns:1fr; gap:9px; }
  .sn-contact-message-actions { justify-content:flex-start; }
  .sn-contact-message-actions .sn-secondary-btn, .sn-contact-message-actions .sn-danger-btn { min-width:92px; }
  .sn-contact-add-dnsbl .sn-primary-btn { width:100%; }
}

/* v6.7.3 live chat */
.sn-live-chat { margin-top:14px; padding:16px; border:1px solid var(--sn-border,#d7dee8); border-radius:18px; background:color-mix(in srgb,var(--sn-card,#fff) 95%,#eef6ff 5%); }
.sn-live-chat[hidden] { display:none !important; }
.sn-live-chat-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.sn-live-chat-head > div { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.sn-live-chat-head small { color:var(--sn-muted,#64748b); font-weight:800; }
.sn-live-dot { width:10px; height:10px; border-radius:50%; background:#22c55e; box-shadow:0 0 0 4px rgba(34,197,94,.14); }
.sn-live-transcript { min-height:160px; max-height:360px; overflow:auto; display:grid; gap:10px; padding:12px; border-radius:14px; background:color-mix(in srgb,var(--sn-card,#fff) 94%,#f8fafc 6%); border:1px solid var(--sn-border,#e2e8f0); }
.sn-live-message { display:grid; gap:4px; max-width:min(88%,760px); }
.sn-live-message.is-visitor { justify-self:end; }
.sn-live-message.is-operator { justify-self:start; }
.sn-live-message-meta { font-size:.72rem; color:var(--sn-muted,#64748b); font-weight:750; }
.sn-live-message.is-visitor .sn-live-message-meta { text-align:right; }
.sn-live-message-body { padding:10px 12px; border-radius:14px; background:#eef2ff; color:#1e293b; line-height:1.45; overflow-wrap:anywhere; white-space:pre-wrap; }
.sn-live-message.is-visitor .sn-live-message-body { background:#dbeafe; }
.sn-live-compose { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:end; margin-top:10px; }
.sn-live-compose .sn-textarea { min-height:70px; max-height:180px; }
.sn-live-status { margin:8px 2px 0; font-size:.82rem; }
.sn-contact-live-ready { display:grid; gap:2px; margin:0 0 12px; padding:10px 12px; border-radius:12px; font-size:.8rem; }
.sn-contact-live-ready.is-ready { background:#ecfdf5; color:#065f46; }
.sn-contact-live-ready.is-warn { background:#fff7ed; color:#9a3412; }
.sn-live-help { margin:12px 0 0; line-height:1.55; }
.sn-live-help code { overflow-wrap:anywhere; }
.sn-live-session-list { display:grid; gap:8px; }
.sn-live-session-row { display:flex; justify-content:space-between; gap:14px; align-items:center; padding:12px 0; border-bottom:1px solid var(--sn-border,#e2e8f0); }
.sn-live-session-row > div:first-child { display:grid; gap:3px; }
.sn-live-session-row small { color:var(--sn-muted,#64748b); }
.sn-live-operator-view { padding:14px; margin-bottom:16px; border:1px solid var(--sn-border,#d7dee8); border-radius:16px; }
.sn-live-transcript--operator { max-height:520px; }
.sn-live-operator-reply { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:end; margin-top:12px; }
.sn-live-operator-reply .sn-textarea { min-height:90px; }
@media (max-width:640px) {
  .sn-live-compose,.sn-live-operator-reply { grid-template-columns:1fr; }
  .sn-live-compose .sn-primary-btn,.sn-live-operator-reply .sn-primary-btn { width:100%; }
  .sn-live-message { max-width:95%; }
  .sn-live-session-row { align-items:flex-start; flex-direction:column; }
}
