/* Chat panel: slides in from the right over any page. Tokens follow the active accent (--pv-accent) so it fits either palette. */
.chat-backdrop{position:fixed;inset:0;z-index:400;border:0;padding:0;margin:0;background:rgba(28,36,32,.28);opacity:0;transition:opacity .3s ease;cursor:default}
.chat-backdrop.is-open{opacity:1}
.chat-backdrop[hidden],.chat-panel[hidden]{display:none}
.chat-panel{position:fixed;top:0;right:0;bottom:0;z-index:401;display:flex;flex-direction:column;width:min(440px,100vw);background:var(--pv-surface);color:var(--pv-ink);border-left:1px solid var(--pv-line-2);box-shadow:-24px 0 60px rgba(28,36,32,.14);transform:translateX(104%);transition:transform .38s cubic-bezier(.32,.72,0,1);font-family:var(--sans-app)}
.chat-panel.is-open{transform:none}
.chat-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:20px 20px 12px}
.chat-title{display:flex;align-items:center;gap:12px}
.chat-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--pv-accent-tint);color:var(--pv-accent-ink)}
.chat-title h2{margin:0;font:600 20px/1.2 var(--serif-display,var(--sans-app));letter-spacing:-.02em}
.chat-title p{margin:2px 0 0;font:400 12.5px/1.4 var(--sans-app);color:var(--pv-muted)}
.chat-close{display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:50%;background:transparent;color:var(--pv-muted);cursor:pointer}
.chat-close:hover{background:var(--pv-surface-2);color:var(--pv-ink)}
.chat-channels{display:flex;gap:6px;padding:0 20px 10px;overflow-x:auto;scrollbar-width:none}
.chat-chip{flex:none;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border:1px solid var(--pv-line);border-radius:999px;background:var(--pv-surface);color:var(--pv-ink-2);font:500 13px/1 var(--sans-app);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}
.chat-chip:hover{border-color:var(--pv-accent);color:var(--pv-ink)}
.chat-chip[aria-pressed=true]{background:var(--pv-accent);border-color:var(--pv-accent);color:var(--pv-on-accent,#fff);font-weight:600}
.chat-chip--new{border-style:dashed;color:var(--pv-muted)}
.chat-create{display:grid;gap:10px;margin:0 20px 10px;padding:14px;border:1px solid var(--pv-line-2);border-radius:14px;background:var(--pv-surface-2)}
.chat-create label,.chat-create legend{font:600 12px/1.3 var(--sans-app);color:var(--pv-muted)}
.chat-create label{display:grid;gap:4px}
.chat-create input[type=text],.chat-create input:not([type]){height:36px;padding:0 10px;border:1px solid var(--pv-line);border-radius:9px;background:var(--pv-surface);color:var(--pv-ink);font:400 14px var(--sans-app)}
.chat-create fieldset{margin:0;padding:0;border:0;min-width:0}
.chat-create-actions{display:flex;justify-content:flex-end;gap:8px}
.chat-btn{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border:1px solid var(--pv-line);border-radius:999px;background:var(--pv-surface);color:var(--pv-ink);font:600 13px/1 var(--sans-app);cursor:pointer;transition:background .15s ease,border-color .15s ease}
.chat-btn:hover{border-color:var(--pv-accent)}
.chat-btn--primary{background:var(--pv-accent);border-color:var(--pv-accent);color:var(--pv-on-accent,#fff)}
.chat-btn--quiet{border-color:transparent;background:transparent;color:var(--pv-accent-ink);padding:0 8px}
.chat-btn--quiet:hover{background:var(--pv-surface-2)}
.chat-members{position:relative;display:flex;align-items:center;gap:10px;padding:8px 20px 12px;border-bottom:1px solid var(--pv-line-2)}
.chat-avatars{display:inline-flex;padding-left:6px}
.chat-avatar{display:inline-grid;place-items:center;flex:none;width:28px;height:28px;border-radius:50%;background:var(--pv-accent-tint);color:var(--pv-accent-ink);font:600 10.5px/1 var(--sans-app);letter-spacing:.02em}
.chat-avatars .chat-avatar{margin-left:-6px;border:2px solid var(--pv-surface)}
.chat-avatar--more{background:var(--pv-surface-2);color:var(--pv-muted)}
.chat-members-count{font:400 12.5px/1 var(--sans-app);color:var(--pv-muted)}
.chat-members-wrap{position:relative;margin-left:auto}
.chat-people{position:absolute;right:0;top:calc(100% + 6px);z-index:2;width:280px;padding:8px;border:1px solid var(--pv-line-2);border-radius:14px;background:var(--pv-surface);box-shadow:0 10px 30px rgba(28,36,32,.14);animation:chat-pop .16s ease}
@keyframes chat-pop{from{opacity:0;transform:translateY(-4px)}}
.chat-people-list{list-style:none;margin:0;padding:0;display:grid;gap:2px;max-height:240px;overflow:auto}
.chat-person{display:flex;align-items:center;gap:10px;width:100%;padding:6px 8px;border:0;border-radius:9px;background:transparent;color:var(--pv-ink);font:500 13.5px/1.3 var(--sans-app);text-align:left;cursor:pointer}
.chat-person:hover{background:var(--pv-surface-2)}
.chat-person em{margin-left:auto;font:600 12px/1 var(--sans-app);font-style:normal;color:var(--pv-accent-ink)}
.chat-person input{accent-color:var(--pv-accent)}
.chat-people-note,.chat-people-empty{margin:6px 4px 2px;font:400 12px/1.45 var(--sans-app);color:var(--pv-muted);display:flex;gap:6px;align-items:flex-start}
.chat-people-note svg{flex:none;margin-top:2px}
.chat-log{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:12px 20px 8px;display:flex;flex-direction:column;gap:10px;scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){.chat-log{scroll-behavior:auto}}
.chat-day{display:flex;align-items:center;gap:10px;margin:8px 0 2px;font:600 11px/1 var(--sans-app);letter-spacing:.06em;text-transform:uppercase;color:var(--pv-muted)}
.chat-day::before,.chat-day::after{content:"";flex:1;height:1px;background:var(--pv-line-2)}
.chat-empty,.chat-system{margin:6px 0;text-align:center;font:400 12.5px/1.5 var(--sans-app);color:var(--pv-muted)}
.chat-msg{display:flex;align-items:flex-start;gap:10px;animation:chat-in .22s cubic-bezier(.2,.7,.2,1) both}
@keyframes chat-in{from{opacity:0;transform:translateY(6px)}}
@media(prefers-reduced-motion:reduce){.chat-msg,.chat-people{animation:none}}
.chat-msg .chat-avatar{margin-top:2px}
.chat-bubble{min-width:0;max-width:100%;padding:8px 12px 9px;border-radius:14px;border-top-left-radius:4px;background:var(--pv-surface-2)}
.chat-msg.is-mine .chat-bubble{background:var(--pv-accent-tint);border-top-left-radius:14px;border-top-right-radius:4px}
.chat-msg.is-mine{flex-direction:row-reverse}
.chat-msg.is-pending{opacity:.6}
.chat-msg.is-agent .chat-avatar{background:var(--pv-ink);color:var(--pv-surface)}
.chat-bubble header{display:flex;align-items:baseline;gap:8px;margin-bottom:2px}
.chat-bubble strong{font:600 13px/1.3 var(--sans-app);color:var(--pv-ink)}
.chat-bubble time{font:400 11.5px/1 var(--sans-app);color:var(--pv-muted)}
.chat-bubble p{margin:0;font:400 14px/1.5 var(--sans-app);color:var(--pv-ink);overflow-wrap:anywhere;white-space:normal}
.chat-error{margin:0 20px 6px;padding:8px 12px;border-radius:10px;background:var(--pv-warn-tint,#F6EFDC);color:var(--pv-warn,#8A6412);font:400 12.5px/1.4 var(--sans-app)}
.chat-composer{display:flex;align-items:flex-end;gap:8px;padding:12px 16px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--pv-line-2);background:var(--pv-surface)}
.chat-composer textarea{flex:1;min-height:42px;max-height:160px;padding:11px 14px;border:1px solid var(--pv-line);border-radius:21px;background:var(--pv-surface-2);color:var(--pv-ink);font:400 14px/1.4 var(--sans-app);resize:none;outline:0;transition:border-color .15s ease,box-shadow .15s ease}
.chat-composer textarea:focus{border-color:var(--pv-accent);box-shadow:0 0 0 3px var(--pv-accent-tint);background:var(--pv-surface)}
.chat-send{display:grid;place-items:center;flex:none;width:42px;height:42px;border:0;border-radius:50%;background:var(--pv-accent);color:var(--pv-on-accent,#fff);cursor:pointer;transition:transform .12s ease,filter .12s ease}
.chat-send:hover{filter:brightness(1.06)}.chat-send:active{transform:scale(.94)}
body.chat-open{overflow:hidden}
@media(max-width:520px){.chat-panel{width:100vw;border-left:0}.chat-head{padding:16px 16px 10px}.chat-channels,.chat-members{padding-left:16px;padding-right:16px}.chat-log{padding:10px 14px}}
:root[data-theme=dark] .chat-backdrop{background:rgba(0,0,0,.5)}
/* People rows inside the new-chat form are flex rows, not the form's grid labels. */
.chat-create label.chat-person{display:flex;flex-direction:row;align-items:center;gap:10px;font:500 13.5px/1.3 var(--sans-app);color:var(--pv-ink)}
.chat-create .chat-people-list{max-height:180px}
/* Demo agents: a dark sparkle avatar and an honest "demo" mark; nothing here is connected to a backend. Add agents sits under Add people. */
.chat-avatar--agent{background:var(--pv-ink);color:var(--pv-surface)}
.chat-members-count{white-space:nowrap}
.chat-members-count em{font-style:normal;font-weight:600;padding:2px 6px;margin-left:2px;border-radius:999px;background:var(--pv-warn-tint,#F6EFDC);color:var(--pv-warn,#8A6412);font-size:10.5px;letter-spacing:.04em;text-transform:uppercase}
.chat-members-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.chat-members{align-items:flex-start}
.chat-person>span:nth-child(2){min-width:0}
.chat-person b{display:block;font-weight:600}
.chat-person small{display:block;font:400 12px/1.3 var(--sans-app);color:var(--pv-muted)}
.chat-person[aria-pressed=true] em{color:var(--pv-muted)}
.chat-agents{width:300px}
.chat-system--demo{color:var(--pv-warn,#8A6412)}
@media(max-width:520px){.chat-members{flex-wrap:wrap}.chat-members-wrap{margin-left:0;width:100%}}
/* Shared actions row (preview) */
.chat-quick{display:flex;align-items:center;gap:2px;flex-wrap:nowrap;padding:0 16px 8px}
.chat-quick .chat-btn{padding:0 8px;white-space:nowrap}
.chat-quick .chat-btn{height:30px;font-size:12.5px}
.chat-quick-tag{margin-left:auto;padding:3px 7px;border-radius:999px;background:var(--pv-warn-tint,#F6EFDC);color:var(--pv-warn,#8A6412);font:600 10px/1 var(--sans-app);letter-spacing:.06em;text-transform:uppercase;font-style:normal}
.chat-quick-note{margin:0 20px 10px;padding:8px 12px;border-radius:10px;background:var(--pv-surface-2);font:400 12.5px/1.45 var(--sans-app);color:var(--pv-ink-2)}
.chat-link{border:0;background:transparent;padding:0;color:var(--pv-accent-ink);font:600 12.5px var(--sans-app);cursor:pointer}

/* Chat dock: the active chat as a small tab at the bottom right of every page while the panel is closed */
.chat-dock{position:fixed;right:18px;bottom:18px;z-index:390;display:flex;align-items:center;gap:2px;max-width:min(320px,calc(100vw - 36px));border:1px solid var(--pv-line-2,var(--pv-line));border-radius:999px;background:var(--pv-surface);box-shadow:0 10px 30px rgba(20,30,26,.18);animation:chat-dock-in .35s cubic-bezier(.2,.7,.2,1)}
.chat-dock[hidden]{display:none}@keyframes chat-dock-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.chat-dock-open{display:flex;align-items:center;gap:10px;min-width:0;padding:8px 8px 8px 8px;border:0;border-radius:999px;background:transparent;color:var(--pv-ink);text-align:left;cursor:pointer}.chat-dock-open:hover{background:var(--pv-surface-2)}
.chat-dock-open .chat-avatar{width:34px;height:34px;flex:none}.chat-dock-copy{display:flex;flex-direction:column;gap:2px;min-width:0}.chat-dock-copy strong{font:600 13.5px/1.2 var(--sans-app);color:var(--pv-ink)}.chat-dock-copy small{font:400 12px/1.3 var(--sans-app);color:var(--pv-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}
.chat-dock-badge{flex:none;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--pv-accent);color:var(--pv-on-accent);font:600 11px/20px var(--sans-app);text-align:center}.chat-dock-badge[hidden]{display:none}.chat-dock.has-unread{border-color:var(--pv-accent,#1f6b4a)}
.chat-dock-dismiss{flex:none;width:30px;height:30px;margin-right:4px;border:0;border-radius:50%;background:transparent;color:var(--pv-muted);font-size:18px;line-height:1;cursor:pointer}.chat-dock-dismiss:hover{background:var(--pv-surface-2);color:var(--pv-ink)}
@media(max-width:520px){.chat-dock{right:12px;bottom:12px}.chat-dock-copy small{max-width:140px}}
@media(prefers-reduced-motion:reduce){.chat-dock{animation:none}}
