/* A quiet digital conversation. Scoped to the docent; portfolio styles stay independent. */
.living-print #chat-dialog{--chat-ink:#191f28;--chat-muted:#6b7684;--chat-accent:#306fff;inset:0;margin:auto;width:min(560px,calc(100vw - 48px));height:min(780px,calc(var(--docent-viewport,100dvh) - 48px));max-width:none;max-height:calc(var(--docent-viewport,100dvh) - 48px);padding:0;border:0;border-radius:24px;background:#fff;color:var(--chat-ink);box-shadow:0 24px 100px #10182726;overflow:hidden;color-scheme:light}
.living-print #chat-dialog::backdrop{background:#131c2b3d;backdrop-filter:blur(8px)}
#chat-dialog[open]{display:flex;flex-direction:column}
#chat-dialog .chat-top{flex:none;min-height:76px;padding:16px 20px 16px 28px;border:0;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:12px}
#chat-dialog .chat-brand{display:flex;align-items:center;gap:7px;min-width:0}
#chat-dialog .chat-top h2{margin:0;font-family:var(--sans);font-size:17px;font-weight:600;line-height:1.4;letter-spacing:-.025em;white-space:nowrap}
#chat-dialog .chat-ai-badge{font:600 10px/1.2 var(--sans);letter-spacing:.015em;background:#eef3ff;color:#5373b8;padding:4px 5px;border-radius:5px}
#chat-dialog .chat-tools{display:flex;align-items:center;gap:5px}
#chat-dialog .chat-reset{padding:10px 11px;min-height:44px;border:0;background:none;border-radius:10px;font:500 12px/1.4 var(--sans);color:var(--chat-muted);cursor:pointer;text-decoration:none;white-space:nowrap}
#chat-dialog #chat-close{display:grid;place-items:center;min-width:44px;width:44px;height:44px;min-height:44px;padding:10px;border:0;border-radius:12px;background:transparent;color:#8b95a1;cursor:pointer}
#chat-dialog #chat-close svg,#chat-dialog .chat-send svg{display:block;width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#chat-dialog #chat-close:hover,#chat-dialog .chat-reset:hover{background:#f2f4f6;color:#333d4b}
#chat-dialog #chat-mount{flex:1;min-height:0;overflow:hidden;padding:0;display:flex;flex-direction:column;background:#fff;color:var(--chat-ink);text-align:left;font-family:var(--sans)}
#chat-dialog .chat-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#dce1e8 transparent;padding:28px 32px 24px;scroll-padding:24px}
#chat-dialog .chat-intro{margin:0 0 30px}
#chat-dialog .chat-title{margin:0 0 16px;font-family:var(--sans);font-size:29px;font-weight:700;line-height:1.35;letter-spacing:-.045em;white-space:pre-line;color:var(--chat-ink)}
#chat-dialog .chat-description{margin:0;max-width:32em;font-size:14px;font-weight:400;line-height:1.75;letter-spacing:-.025em;color:var(--chat-muted);word-break:keep-all;overflow-wrap:break-word}
#chat-dialog .chat-transcript{display:flex;flex-direction:column;gap:26px;max-height:none;overflow:visible;margin:0;padding:0}
#chat-dialog .chat-transcript:empty{display:none}
#chat-dialog .chat-started .chat-intro{display:none}
#chat-dialog .chat-started .chat-scroll{padding-top:20px}
#chat-dialog .chat-message{display:flex;flex-direction:column;gap:9px;max-width:100%;animation:chat-message-in .25s ease-out both}
#chat-dialog .chat-speaker{color:#8b95a1;font-size:11px;font-weight:500;line-height:1.5;letter-spacing:0}
#chat-dialog .chat-message-user{align-self:flex-end;max-width:88%;background:#f2f4f6;color:#333d4b;padding:13px 17px;border-radius:18px 18px 4px 18px}
#chat-dialog .chat-message-user .chat-speaker{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
#chat-dialog .chat-message-text{margin:0;font-size:15px;font-weight:400;line-height:1.75;letter-spacing:-.02em;white-space:pre-wrap;overflow-wrap:anywhere;word-break:keep-all}
#chat-dialog .chat-form{flex:none;z-index:1;position:relative;margin:0;padding:12px 24px 17px;border:0;background:#fff}
#chat-dialog .chat-composer{display:flex;align-items:flex-end;gap:12px;min-height:62px;padding:9px 9px 9px 17px;background:#f2f4f6;border:1px solid transparent;border-radius:19px;transition:border-color .18s,box-shadow .18s}
#chat-dialog .chat-composer:focus-within{border-color:#b1caff;box-shadow:0 0 0 3px #306fff0a}
#chat-dialog .chat-input{flex:1;display:block;width:100%;min-width:0;min-height:24px;max-height:120px;margin:0 0 10px;padding:0;border:0;outline:none;background:transparent;color:#191f28;box-shadow:none;border-radius:0;resize:none;overflow-y:auto;font:400 16px/24px var(--sans);letter-spacing:-.02em;box-sizing:content-box}
#chat-dialog .chat-input:focus-visible{outline:none}
#chat-dialog .chat-input::placeholder{color:#8b95a1;opacity:1}
#chat-dialog .chat-send{flex:none;display:grid;place-items:center;width:44px;min-width:44px;height:44px;min-height:44px;margin:0;padding:10px;border:0;border-radius:13px;background:var(--chat-accent);color:#fff;cursor:pointer;transition:background .18s,transform .2s}
#chat-dialog .chat-send:hover:not(:disabled){background:#225de1}
#chat-dialog .chat-send:active:not(:disabled){transform:scale(.93)}
#chat-dialog .chat-send:disabled{background:#dce1e8;color:#fff;opacity:1;cursor:default}
#chat-dialog .chat-reset:disabled{opacity:.4;cursor:default}
#chat-dialog .chat-status{margin:0 3px 12px;font-size:12px;line-height:1.6;color:var(--chat-muted);word-break:keep-all;overflow-wrap:anywhere}
#chat-dialog .chat-status:empty{display:none}
#chat-dialog .chat-status-error{color:#c43f4b}
#chat-dialog .chat-status.is-thinking::after{content:' ···';display:inline-block;margin-left:6px;font-weight:700;letter-spacing:3px;animation:chat-thinking 1.2s ease-in-out infinite}
#chat-dialog .chat-access{padding:13px 15px;margin:0 0 12px;border:0;border-radius:12px;background:#f1f6ff}
#chat-dialog .chat-access[hidden]{display:none}
#chat-dialog .chat-access-note{font-size:13px;line-height:1.6;margin:0 0 5px;color:#4e5968}
#chat-dialog .chat-sign-in{display:inline-flex;align-items:center;min-height:38px;font-size:13px;font-weight:600;color:#2867de;text-decoration:none}
#chat-dialog .chat-privacy{margin:10px 3px 0;color:#8b95a1;font-size:11px;line-height:1.65;letter-spacing:-.015em}
#chat-dialog .chat-privacy summary{width:fit-content;margin:auto;padding:5px 8px;border-radius:6px;cursor:pointer;list-style:none;min-height:28px}
#chat-dialog .chat-privacy summary::-webkit-details-marker{display:none}
#chat-dialog .chat-privacy summary::after{content:' ⓘ';margin-left:3px}
#chat-dialog .chat-privacy p{margin:7px 3px 0;font-size:11px;line-height:1.7;word-break:keep-all;color:#6b7684}
#chat-dialog button:focus-visible,#chat-dialog a:focus-visible,#chat-dialog summary:focus-visible{outline:2px solid #306fff;outline-offset:2px}
#chat-dialog .chat-welcome{padding:30px;font-size:16px;line-height:1.6;color:#6b7684}
@keyframes chat-message-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes chat-thinking{0%,100%{opacity:.35}50%{opacity:1}}
@media(max-width:600px){
 .living-print #chat-dialog{inset:0;margin:0;width:100%;height:var(--docent-viewport,100dvh);max-height:var(--docent-viewport,100dvh);border-radius:0;box-shadow:none}
 #chat-dialog .chat-top{min-height:68px;padding:calc(12px + env(safe-area-inset-top)) 16px 12px 24px}
 #chat-dialog .chat-top h2{font-size:17px}
 #chat-dialog .chat-scroll{padding:30px 24px 24px}
 #chat-dialog .chat-title{font-size:27px;line-height:1.38}
 #chat-dialog .chat-description{font-size:14px}
 #chat-dialog .chat-intro{margin-bottom:26px}
 #chat-dialog .chat-form{padding:12px 16px calc(10px + env(safe-area-inset-bottom))}
 #chat-dialog .chat-composer{border-radius:18px}
 #chat-dialog .chat-tools{gap:0}
 #chat-dialog .chat-reset{font-size:12px;padding:10px}
}
@media(prefers-reduced-motion:reduce){#chat-dialog *,#chat-dialog *::after{animation:none!important;transition:none!important}}
