/* View styles (a): Inbox and Guests. Uses tokens from admin.css; everything is scoped with the va- prefix. */

/* ---------- inbox shell ---------- */
.va-inbox-card{overflow:hidden}
.va-inbox-card>.inbox{height:calc(100svh - var(--topbar-h) - 3rem - 2px - 4.5rem)}
.va-list-pane{background:var(--card)}
.va-list-head{display:flex;flex-direction:column;gap:.5rem;padding:.75rem;border-bottom:1px solid var(--border)}
.va-search-row{display:flex;align-items:center;gap:.5rem}
.va-search{position:relative;flex:1;min-width:0}
.va-search>svg{position:absolute;left:.6rem;top:50%;transform:translateY(-50%);color:var(--muted-foreground);pointer-events:none}
.va-search>input{padding-left:2rem}
.va-list-head .seg{display:flex;flex-wrap:nowrap;width:100%}
.va-list-head .seg button{flex:1;justify-content:center;padding:0 .45rem}
.va-seg-count{display:inline-grid;place-items:center;min-width:1.1rem;height:1.1rem;padding:0 .3rem;border-radius:999px;background:var(--border);color:var(--heading);font-size:.625rem;font-weight:600;font-variant-numeric:tabular-nums}
.seg button[aria-pressed=true] .va-seg-count{background:var(--primary-soft);color:var(--primary)}

/* thread rows */
.va-inbox .thread{align-items:flex-start;transition:background-color .12s}
.va-inbox .thread[aria-current=true]{box-shadow:inset 3px 0 0 var(--primary)}
.va-inbox .thread .grow{display:flex;flex-direction:column}
.va-inbox .thread .nm{align-items:baseline}
.va-nm{display:flex;align-items:center;gap:.3rem;min-width:0}
.va-inbox .thread.unread .va-nm{font-weight:600}
.va-inbox .thread.unread time{color:var(--primary);font-weight:500}
.va-pv{display:flex;align-items:center;gap:.3rem;min-width:0}
.va-pv>svg.i{width:.75rem;height:.75rem;opacity:.75}
.va-pv>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.va-flags{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.4rem}
.va-star{display:inline-flex;flex:none}
.va-star svg.i{fill:currentColor}

/* conversation */
.va-convo-pane{min-width:0}
.va-convo-center{align-items:center;justify-content:center}
.va-convo-center .empty{max-width:24rem}
.va-who{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}
.va-who strong{display:flex;align-items:center;gap:.4rem;min-width:0;font-size:.875rem;font-weight:500;color:var(--heading)}
.va-who small{font-size:.75rem;color:var(--muted-foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.va-head-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.25rem}
.va-stay-chip{margin-right:.25rem}
.va-stay-chip svg.i{width:.8rem;height:.8rem}
.va-back{display:none}
.va-inbox .msg .meta svg.i{opacity:.8}
.msg.out .actions{justify-content:flex-end}
.msg.internal .meta{justify-content:center}
.va-st{font-weight:500}
.va-st.warn{color:var(--warning)}
.va-st.danger{color:var(--destructive)}
.va-auto{display:inline-flex;align-items:center;gap:.2rem;padding:0 .35rem;border-radius:999px;background:var(--muted)}
.va-msg-hint{display:flex;align-items:flex-start;gap:.35rem;max-width:26rem;margin:.1rem 0 .15rem;font-size:.6875rem;line-height:1.45;color:var(--warning)}
.va-msg-hint.danger{color:var(--destructive)}
.va-msg-hint svg.i{margin-top:.12rem}
.va-discarded{align-self:flex-end;display:flex;align-items:center;gap:.35rem;max-width:min(30rem,82%);font-size:.6875rem;color:var(--muted-foreground);overflow:hidden}
.va-discarded s{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}

/* composer */
.va-composer-top{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.va-compose-seg button{padding:0 .6rem}
.va-tpl-slot{flex:1 1 10rem;max-width:15rem;margin-left:auto}
.va-tpl-slot:empty{display:none}
.va-tpl-slot select{height:1.95rem}
.va-warn-slot:empty{display:none}
.va-warn-slot .callout{padding:.5rem .7rem;font-size:.75rem}
.va-composer-foot{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.va-hint{flex:1 1 16rem;min-width:0;display:flex;align-items:flex-start;gap:.4rem;font-size:.75rem;line-height:1.4;color:var(--muted-foreground)}
.va-hint svg.i{width:.875rem;height:.875rem;margin-top:.05rem}
.va-hint.warn{color:var(--warning)}
.va-hint.ok svg.i{color:var(--success)}

/* guest side panel */
.va-side-hero{display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:.5rem 0 .25rem;text-align:center}
.va-side-hero h3{display:flex;align-items:center;gap:.35rem;font-size:1rem;overflow-wrap:anywhere}
.va-side-hero p{font-size:.75rem;color:var(--muted-foreground)}
.va-side-block{display:flex;flex-direction:column;gap:.5rem;min-width:0}
.va-label{margin:0;font-size:.6875rem;font-weight:500;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.06em}
.va-contact{display:flex;flex-direction:column;gap:.1rem;font-size:.8125rem}
.va-contact a,.va-contact .va-c{display:flex;align-items:center;gap:.55rem;min-width:0;margin:0 -.4rem;padding:.3rem .4rem;border-radius:.45rem;color:var(--foreground);text-decoration:none}
.va-contact a:hover{background:var(--accent);color:var(--heading)}
.va-contact svg.i{color:var(--muted-foreground)}
.va-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}
.va-stat{min-width:0;padding:.55rem .65rem;border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);background:var(--surface-subtle)}
.va-stat b{display:block;overflow:hidden;font-size:.9375rem;font-weight:500;color:var(--heading);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis}
.va-stat span{display:block;font-size:.6875rem;color:var(--muted-foreground)}
.va-stay-card{display:flex;flex-direction:column;gap:.45rem;width:100%;padding:.75rem .8rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);font:inherit;color:inherit;text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.va-stay-card:hover{border-color:color-mix(in srgb,var(--primary) 35%,var(--border));box-shadow:var(--shadow)}
.va-stay-card .va-top,.va-stay-card .va-sub{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}
.va-stay-card strong{font-size:.875rem;font-weight:500;color:var(--heading)}
.va-stay-card .va-sub{font-size:.75rem;color:var(--muted-foreground)}
.va-tags{display:flex;flex-wrap:wrap;gap:.25rem}
.va-note{margin:0;padding:.6rem .7rem;border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);background:var(--surface-subtle);font-size:.8125rem;line-height:1.5;color:var(--foreground)}
.va-note.private{background:var(--warning-bg);border-color:transparent;color:var(--heading)}
.va-clamp{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap;overflow-wrap:anywhere}
.va-task-lines{display:flex;flex-direction:column}
.va-task-line{display:flex;align-items:center;gap:.5rem;min-width:0;margin:0 -.4rem;padding:.35rem .4rem;border:0;border-radius:.45rem;background:none;font:inherit;font-size:.8125rem;color:var(--foreground);text-align:left;cursor:pointer}
.va-task-line:hover{background:var(--accent)}
.va-task-line .truncate{flex:1;min-width:0}
.va-due{font-size:.6875rem;color:var(--muted-foreground);white-space:nowrap}
.va-side-actions{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:auto;padding-top:.25rem}

/* new conversation dialog */
.va-pick-list{display:flex;flex-direction:column;max-height:17rem;overflow-y:auto;border:1px solid var(--border);border-radius:calc(var(--radius) - 2px)}
.va-pick{display:flex;align-items:center;gap:.65rem;width:100%;padding:.55rem .75rem;border:0;border-top:1px solid var(--border);background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}
.va-pick:first-child{border-top:0}
.va-pick:hover,button.va-pick:focus-visible{background:var(--accent);outline:none;box-shadow:none}
.va-pick .grow{flex:1;min-width:0}
.va-pick strong{display:flex;align-items:center;gap:.3rem;min-width:0;font-size:.8125rem;font-weight:500;color:var(--heading)}
.va-pick small{display:block;overflow:hidden;font-size:.75rem;color:var(--muted-foreground);white-space:nowrap;text-overflow:ellipsis}
.va-pick-empty{margin:0;padding:1rem;font-size:.8125rem;color:var(--muted-foreground);text-align:center}
.va-or{display:flex;align-items:center;gap:.75rem;font-size:.75rem;color:var(--muted-foreground)}
.va-or::before,.va-or::after{content:"";flex:1;height:1px;background:var(--border)}
.va-create{padding:.875rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-subtle)}

/* ---------- guests ---------- */
.va-guest-tools{display:flex;flex-direction:column;gap:.75rem}
.va-guest-tools .toolbar{margin:0}
.va-guest-card{overflow:hidden}
.va-guests .table td{vertical-align:middle}
.va-guests .who>div{min-width:0;max-width:17rem}
.va-guests .who strong.va-name{display:flex;align-items:center;gap:.35rem;min-width:0}
.va-unread{display:inline-grid;place-items:center;min-width:1.1rem;height:1.1rem;padding:0 .3rem;border-radius:999px;background:var(--primary);color:var(--primary-foreground);font-size:.625rem;font-weight:600}
.va-sort{display:inline-flex;align-items:center;gap:.25rem;padding:0;border:0;background:none;font:inherit;color:inherit;cursor:pointer}
.va-sort:hover{color:var(--heading)}
.va-sort svg.i{width:.75rem;height:.75rem;opacity:0;transition:opacity .12s}
.va-sort:hover svg.i{opacity:.45}
th[aria-sort] .va-sort{color:var(--heading)}
th[aria-sort] .va-sort svg.i{opacity:1}
th.num .va-sort{flex-direction:row-reverse}
.va-stay-cell span,.va-stay-cell small{display:block;white-space:nowrap}
.va-stay-cell small{font-size:.75rem;color:var(--muted-foreground)}
.va-now{color:var(--success);font-weight:500}
.va-guests tbody tr:focus-visible{outline:2px solid var(--ring);outline-offset:-2px}
.va-table-foot{padding:.6rem 1rem;border-top:1px solid var(--border);background:var(--surface-subtle);font-size:.75rem;color:var(--muted-foreground)}

/* guest drawer */
.va-quick{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem}
.va-section{display:flex;flex-direction:column;gap:.75rem;min-width:0}
.va-section-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:1.75rem}
.va-section-title{font-size:.8125rem;font-weight:500;color:var(--heading)}
.va-toggles{display:flex;flex-direction:column;gap:.9rem}
.va-toggle-row .hint{margin:.2rem 0 0 2.6rem}
.va-danger{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;padding:.875rem 1rem;border:1px solid color-mix(in srgb,var(--destructive) 28%,var(--border));border-radius:var(--radius);background:color-mix(in srgb,var(--destructive) 3%,var(--card))}
.va-danger strong{display:block;font-size:.8125rem;font-weight:500;color:var(--heading)}
.va-danger p{max-width:30rem;margin-top:.15rem;font-size:.75rem;line-height:1.45;color:var(--muted-foreground)}
.va-foot-hint{display:flex;align-items:center;gap:.4rem;margin-right:auto;font-size:.75rem;color:var(--muted-foreground)}
.va-foot-hint.dirty{color:var(--warning)}
.va-date-tile{display:grid;place-items:center;align-content:center;flex:none;width:2.5rem;height:2.5rem;border-radius:.6rem;background:var(--muted);line-height:1}
.va-date-tile b{font-size:.9375rem;font-weight:500;color:var(--heading)}
.va-date-tile span{margin-top:.15rem;font-size:.5625rem;font-weight:500;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.05em}
.va-right{display:flex;flex-direction:column;align-items:flex-end;gap:.3rem;flex:none}
.va-meta-row{display:flex;align-items:center;flex-wrap:wrap;gap:.25rem .6rem}
.va-muted-row{opacity:.6}
.va-ev-head{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem;font-size:.75rem}
.va-ev-head strong{font-weight:500;color:var(--heading)}
.timeline .va-ev-head time{display:inline;margin-left:auto}
.va-msg-timeline .ev .grow,.va-activity .ev .grow{flex:1;min-width:0}
.va-ev-subj{margin-top:.2rem;font-weight:500;color:var(--heading)}
.va-msg-timeline p{margin-top:.2rem;color:var(--foreground)}
.va-discarded-ev p{text-decoration:line-through;color:var(--muted-foreground)}
.timeline .ev.va-in .dot,.timeline .ev.va-tone-info .dot{color:var(--primary)}
.timeline .ev.va-out .dot,.timeline .ev.va-tone-success .dot{color:var(--success)}
.timeline .ev.va-internal .dot{color:var(--warning)}
.timeline .ev.va-tone-danger .dot{color:var(--destructive)}
.timeline .ev.va-tone-neutral .dot{color:var(--muted-foreground)}
.va-activity .va-ev-head{font-size:.8125rem}
.va-ev-detail{margin-top:.1rem;font-size:.75rem;color:var(--muted-foreground);overflow-wrap:anywhere}
.va-link{padding:0;border:0;background:none;font:inherit;color:var(--primary);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--primary) 35%,transparent);text-underline-offset:3px;cursor:pointer}
.va-link:hover{text-decoration-color:currentColor}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .va-col-tags,.va-col-source{display:none}
  .va-head-actions .btn:not(.icon) .label{display:none}
}
@media (max-width:860px){
  .va-inbox-card>.inbox{height:auto}
  .va-inbox>section+section{border-top:0}
  .va-inbox:not(.is-open)>.va-convo-pane{display:none}
  .va-inbox.is-open>.va-list-pane{display:none}
  .va-inbox-card>.inbox.is-open{height:calc(100svh - var(--topbar-h) - 2rem - 2px);min-height:26rem}
  .va-inbox .thread-list{max-height:none}
  .va-inbox .convo{min-height:0;padding:1rem .875rem}
  .va-back{display:inline-flex}
  .va-tpl-slot{max-width:none;margin-left:0}
  .va-guests .who>div{max-width:12rem}
}
@media (max-width:640px){
  .va-col-nights,.va-col-stays{display:none}
  .va-toggle-row .hint{margin-left:0}
}
@media (max-width:520px){
  .va-stay-chip{display:none}
  .va-compose-seg button:not([aria-pressed=true]){gap:0;padding:0 .5rem;font-size:0}
  .va-inbox .convo-head{gap:.5rem;padding:.6rem .75rem}
  .va-inbox .msg{max-width:90%}
  .va-hint{flex-basis:100%}
}

/* Conversations: channel connections and filters */
.va-conn-bar{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem;flex-wrap:wrap;min-height:3.75rem}
.va-conn{display:flex;align-items:center;gap:.65rem;padding:.55rem .65rem .55rem .6rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);cursor:pointer;font:inherit;color:inherit;text-align:left;min-width:15rem;flex:0 1 20rem;box-shadow:var(--shadow-sm);transition:border-color .15s,box-shadow .15s}
.va-conn:hover{border-color:color-mix(in srgb,var(--primary) 35%,var(--border));box-shadow:var(--shadow)}
.va-conn-ico{display:grid;place-items:center;width:2.1rem;height:2.1rem;border-radius:.6rem;background:var(--muted);color:var(--muted-foreground);flex:none}
.va-conn.on .va-conn-ico{background:var(--success-bg);color:var(--success)}
.va-conn-text{display:flex;flex-direction:column;min-width:0;flex:1}
.va-conn-text strong{font-size:.8125rem;font-weight:500;color:var(--heading)}
.va-conn-text small{font-size:.75rem;color:var(--muted-foreground);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.va-conn .btn{pointer-events:none}
.va-conn-note{flex:1 1 14rem;font-size:.75rem;color:var(--muted-foreground);margin:0}
.va-channel-chips{margin-top:.6rem}
.va-channel-chips .chip svg.i{width:.75rem;height:.75rem}
.va-convo-filter{display:flex;align-items:center;gap:.6rem;padding:.45rem 1rem;border-bottom:1px solid var(--border);background:var(--card);overflow-x:auto}
.va-convo-filter .seg button svg.i{width:.75rem;height:.75rem}
@media (max-width:860px){.va-inbox-card>.inbox{height:auto}.va-conn{flex:1 1 100%}.va-conn-note{display:none}}
