/* The messages sidebar. Scoped under .ib so it cannot reach the rest of the portal.
   Colours and sizes are the shared design tokens (ds/tokens.css). */
.ib{position:fixed;top:0;right:0;height:100%;z-index:60;display:flex;align-items:flex-start;
    font-size:.86rem;color:var(--fg-default);pointer-events:none}
.ib *{pointer-events:auto}
/* Aligned with the portal's top bar: same height, same row as the bell. The bar
   reserves this button's width, so the two never overlap. */
.ib-toggle{margin:12px var(--page-pad-x,32px) 0 0;border:1px solid var(--border-control);background:var(--bg-raised);
           border-radius:var(--radius-md);min-height:var(--control-h-md,36px);padding:0 var(--space-3,12px);
           font:inherit;font-size:var(--text-sm,13px);font-weight:500;color:var(--fg-default);cursor:pointer;display:flex;
           gap:6px;align-items:center;transition:background-color .12s,border-color .12s}
.ib-toggle:hover{background:var(--bg-surface)}
.ib-toggle:focus-visible,.ib-close:focus-visible,.ib-btn:focus-visible,.ib-back:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.ib-unread{min-width:18px;height:18px;border-radius:9px;background:var(--tone-blue-bg);color:var(--tone-blue-ink);
           font-size:.68rem;font-weight:500;display:inline-flex;align-items:center;
           justify-content:center;padding:0 5px}
.ib-panel{width:0;overflow:hidden;height:100%;background:var(--background);box-shadow:var(--shadow-lg);border-left:1px solid var(--border-default);
          transition:width .18s ease;display:flex;flex-direction:column}
.ib-panel-open{width:min(380px,92vw)}
.ib-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;
         border-bottom:1px solid var(--border-default)}
.ib-title{font-weight:500}
.ib-close{border:none;background:none;font-size:1.3rem;line-height:1;cursor:pointer;
          color:var(--fg-muted);width:32px;height:32px;border-radius:var(--radius-md)}
.ib-close:hover{background:var(--bg-hover);color:var(--fg-default)}
.ib-body{flex:1;overflow-y:auto;padding:10px 12px;display:flex;flex-direction:column;gap:10px}
.ib-empty,.ib-tiny{color:var(--fg-muted);font-size:.8rem;margin:0}
.ib-error{color:var(--danger-solid);font-size:.8rem;margin:0}
.ib-back{align-self:flex-start;border:none;background:none;font:inherit;font-size:.8rem;
         color:var(--fg-muted);cursor:pointer;padding:0}

.ib-threads,.ib-messages{list-style:none;margin:0;padding:0;display:flex;
                         flex-direction:column;gap:8px}
.ib-thread{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-md);padding:8px 10px;cursor:pointer}
.ib-thread:hover{background:var(--surface-muted)}
.ib-thread-on{border-color:var(--ring);background:var(--surface-muted)}
.ib-thread-unread .ib-preview{font-weight:500;color:var(--fg-default)}
.ib-thread-top{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:.72rem}
.ib-state{padding:1px 7px;border-radius:20px;background:var(--neutral-bg);color:var(--fg-muted);font-weight:500}
.ib-state-waiting{background:var(--warning-bg);color:var(--warning-fg)}
.ib-state-answered{background:var(--success-bg);color:var(--success-fg)}
.ib-state-chat{background:var(--accent-subtle);color:var(--fg-accent)}
.ib-domain{color:var(--fg-muted);text-transform:capitalize}
.ib-when{margin-left:auto;color:var(--fg-muted)}
.ib-preview{margin-top:4px;color:var(--fg-secondary);font-size:.8rem;overflow:hidden;
            display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}

/* Not bubbles: an author line (eyebrow), then the text. */
.ib-msg{padding:0;background:none}
.ib-messages{gap:var(--space-6,24px)}
.ib-msg-expert .ib-who{color:var(--tone-blue-ink)}
.ib-msg-top{display:flex;gap:6px;align-items:center;font-size:11px;color:var(--fg-subtle)}
.ib-who{font-weight:500;text-transform:uppercase;letter-spacing:.08em}
.ib-msg-body{margin-top:4px;color:var(--fg-default);white-space:pre-wrap;font-size:15px;line-height:1.7;max-width:62ch}

@media (max-width:520px){ .ib-panel-open{width:100vw} }

/* the conversation's composer (carrier 077) */
.ib-composer{border-top:1px solid var(--border-default);padding-top:10px;display:flex;flex-direction:column;gap:6px}
.ib-input{font:inherit;font-size:var(--text-md);padding:7px var(--space-3);border:1px solid var(--border-control);border-radius:var(--radius-md);width:100%;background:var(--bg-raised);color:var(--fg-default)}
.ib-input:focus{outline:none;border-color:var(--accent-emphasis);box-shadow:0 0 0 3px var(--ring-soft)}
.ib-row{display:flex;gap:6px;justify-content:flex-end}
.ib-btn{font:inherit;font-size:var(--text-sm);font-weight:500;border-radius:var(--radius-md);min-height:var(--control-h-sm);padding:0 var(--space-3);cursor:pointer}
.ib-btn-primary{border:none;background:var(--accent-emphasis);color:var(--fg-on-accent)}
.ib-btn-primary:hover:not([disabled]){background:var(--accent-hover)}
.ib-btn-primary[disabled]{opacity:.45;cursor:not-allowed}
.ib-btn-quiet{border:1px solid var(--border-control);background:var(--bg-raised);color:var(--fg-secondary)}
.ib-ended{padding-top:8px}

/* the Archive (carrier 077 §8) */
.ib-archive{margin-top:12px;border-top:1px solid var(--border-default);padding-top:8px}
.ib-archive-h{font-size:.72rem;font-weight:500;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.4px}
.ib-state-archive{background:var(--neutral-bg);color:var(--fg-muted)}

/* the name the user shared at signing (carrier 077 §7) */
.ib-thread-name{font-weight:500;font-size:.95rem;margin:4px 0 8px}
