/* Tri Âm · refined library companion */
.triam-panel,.triam-panel *,.triam-launch,.triam-launch *{box-sizing:border-box}
.triam-panel{--ta-ink:#513b2c;--ta-muted:#887462;--ta-line:#e9dfd0;--ta-paper:#fffcf6;--ta-gold:#ae8450;position:fixed;right:24px;bottom:166px;z-index:801;width:440px;height:min(700px,calc(100dvh - 190px));display:flex;flex-direction:column;overflow:hidden;background:var(--ta-paper);color:var(--ta-ink);border:1px solid #d8c7af;border-radius:23px;box-shadow:0 22px 80px #4a321e29,0 4px 16px #4a321e12;font-family:"Be Vietnam Pro",Arial,sans-serif;font-size:14px;line-height:1.6;text-align:left;isolation:isolate}
.triam-panel[hidden],.triam-panel [hidden]{display:none!important}
.triam-panel button,.triam-panel input,.triam-panel select,.triam-panel textarea{font-family:inherit}
.triam-panel button{cursor:pointer}.triam-panel a{color:#775639;text-decoration:none}
.triam-panel svg{width:20px;height:20px;display:block;flex-shrink:0}
.triam-head{display:flex;align-items:center;gap:12px;padding:21px 20px 19px;background:linear-gradient(120deg,#fffcf6,#f5edde);border-bottom:1px solid var(--ta-line);flex-shrink:0}
.triam-avatar{width:58px;height:58px;border-radius:50%;padding:3px;background:#fff9ed;border:1px solid #c5a679;box-shadow:0 3px 9px #7551300d;flex-shrink:0}
.triam-avatar img{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover}
.triam-identity{min-width:0;flex:1}
.triam-panel .triam-eyebrow{display:block;letter-spacing:1.35px;font-size:8px;font-weight:600;color:#9b7b56;white-space:nowrap}
.triam-panel .triam-identity strong{display:block;font-family:"Noto Serif",Georgia,serif;font-size:29px;line-height:1.25;font-weight:500;color:#593d29;margin:3px 0}
.triam-panel .triam-identity small{display:block;font-size:10px;line-height:1.45;color:#83705d;opacity:1}
.triam-close{background:none!important;border:0!important;color:#8c7761!important;width:30px;height:30px;padding:5px!important;align-self:flex-start;border-radius:50%!important;box-shadow:none!important}
.triam-close:hover{background:#eee3d3!important}
.triam-tabs{display:grid;grid-template-columns:repeat(4,1fr);padding:12px 14px 0;gap:4px;border-bottom:1px solid var(--ta-line);flex-shrink:0;background:#fffcf7}
.triam-tabs button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:0;border-bottom:2px solid transparent;background:transparent;padding:4px 2px 11px;color:#998571;font-size:11px;white-space:nowrap;border-radius:0;line-height:1.4;box-shadow:none;font-weight:400}
.triam-tabs button svg{width:19px;height:19px}.triam-tabs button[aria-selected=true]{color:#765231;border-bottom-color:#ad8050;font-weight:600}.triam-tabs button:hover{color:#67472c;background:#f8f0e4}
.triam-chat{display:flex;flex-direction:column;min-height:0;flex:1}
.triam-chat-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:0 22px 14px;scrollbar-width:thin;scrollbar-color:#d1bfa4 transparent}
.triam-welcome{padding:28px 0 19px;text-align:center}
.triam-panel .triam-welcome-kicker{display:block;font-size:8px;font-weight:600;letter-spacing:1.8px;color:#a8875b;line-height:1.5}
.triam-panel .triam-welcome h2,.triam-panel .triam-flow h2{font-family:"Noto Serif",Georgia,serif;font-size:25px;line-height:1.35;letter-spacing:-.5px;font-weight:400;text-transform:none;color:#5d422e;margin:11px 0 10px}
.triam-panel .triam-welcome p{font-size:13px;line-height:1.8;color:#8a7764;max-width:320px;margin:0 auto}
.triam-suggest{display:flex;flex-wrap:wrap;gap:7px;justify-content:center;padding:0 0 24px}
.triam-suggest button{padding:7px 12px;border:1px solid #e4d5be;border-radius:20px;background:#fffdf8;color:#876746;font-size:11px;font-weight:400;line-height:1.4;box-shadow:none}
.triam-suggest button:hover{border-color:#b99566;background:#f7eddd}
.triam-messages{display:flex;flex-direction:column;gap:14px}
.triam-message{max-width:94%;padding:13px 15px;border-radius:3px 15px 15px 15px;background:#f2ebdf;border:1px solid #eadfce;color:#59412e;overflow-wrap:anywhere;white-space:pre-wrap;line-height:1.8;font-size:13px;margin:0;align-self:flex-start}
.triam-panel .triam-message-label{display:block;font-size:9px;letter-spacing:.5px;color:#9a7f5b;line-height:1;margin-bottom:8px;font-weight:600}
.triam-message.user{align-self:flex-end;background:#76553b;border-color:#76553b;color:#fffaf0;border-radius:15px 3px 15px 15px}
.triam-message.user .triam-message-label{color:#e2cdae}
.triam-sources{border-top:1px solid #ddcdb7;padding-top:9px;margin-top:12px;white-space:normal;font-size:11px}
.triam-sources summary{cursor:pointer;color:#906e45;font-weight:600}.triam-sources a{display:block;margin-top:6px;text-decoration:underline;text-underline-offset:3px}
.triam-thinking .triam-message-text{color:#927b60;animation:triam-pulse 1.8s ease-in-out infinite}
.triam-has-messages .triam-welcome{padding:16px 0 8px}.triam-has-messages .triam-welcome-kicker,.triam-has-messages .triam-welcome p{display:none}.triam-has-messages .triam-welcome h2{font-size:17px;margin:4px 0 9px}.triam-has-messages .triam-suggest{padding-bottom:16px;gap:5px}.triam-has-messages .triam-suggest button{font-size:10px;padding:5px 8px}
.triam-compose{padding:12px 17px 8px;background:#fffcf6;border-top:1px solid var(--ta-line);flex-shrink:0}
.triam-input-wrap{display:flex;align-items:center;gap:8px;border:1px solid #dcc9af;border-radius:13px;background:#fffefb;padding:8px 9px 8px 13px}
.triam-input-wrap:focus-within{border-color:#a17a4d;box-shadow:0 0 0 2px #ae845012}
.triam-panel .triam-input-wrap textarea{resize:none;min-height:26px;max-height:90px;line-height:1.6;flex:1;min-width:0;width:100%;font-size:13px;background:transparent;border:0;box-shadow:none;padding:0;margin:0;color:#624832;outline:none;border-radius:0}
.triam-panel textarea::placeholder,.triam-panel input::placeholder{color:#af9f8d}
.triam-panel .triam-input-wrap button{border:0;width:33px;height:33px;display:grid;place-items:center;background:#79573b;color:#fff8ea;border-radius:9px;padding:7px;box-shadow:none}
.triam-panel .triam-footnote{text-align:center;font-size:9px;color:#a1907d;margin:7px 0 0;letter-spacing:.1px;line-height:1.4}
.triam-bottom{padding:6px 19px 10px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:8px;letter-spacing:.15px;color:#a3917c;background:#fffcf6;flex-shrink:0;border:0;line-height:1.4}
.triam-bottom a{font-size:8px;color:#99816a;text-decoration:underline;text-underline-offset:2px}
.triam-flow{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:23px 22px 18px;scrollbar-width:thin;scrollbar-color:#d1bfa4 transparent}
.triam-flow-intro{padding:0 0 18px}.triam-panel .triam-flow h2{font-size:23px;margin-top:9px}.triam-flow-intro p{font-size:12px;color:#8a7764;line-height:1.8;margin:0}
.triam-intake{display:flex;flex-direction:column;gap:13px}
.triam-intake label{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:600;color:#785b40;line-height:1.5}
.triam-intake label>span{font-weight:400}.triam-intake input,.triam-intake select,.triam-intake textarea{width:100%;min-width:0;padding:10px 11px;background:#fffef9;border:1px solid #e0d2bd;border-radius:8px;color:#644b35;font-size:13px;font-weight:400;line-height:1.5;box-shadow:none;margin:0;min-height:40px}
.triam-intake textarea{resize:vertical;max-height:200px}
.triam-intake .triam-consent{display:flex;flex-direction:row;align-items:flex-start;gap:8px;font-size:10px;line-height:1.65;color:#8d7961;font-weight:400}
.triam-intake .triam-consent input{width:14px;height:14px;min-height:14px;margin-top:2px;padding:0;flex-shrink:0;accent-color:#86613d}
.triam-panel .triam-primary{border:0;border-radius:9px;background:#79573b;color:#fff9eb;font-size:12px;font-weight:600;padding:12px 15px;display:flex;justify-content:space-between;align-items:center;line-height:1.4;box-shadow:none}
.triam-intake-note{font-size:9px;color:#a18c73;line-height:1.65;margin:-5px 0 0}
.triam-intake-status{font-size:12px;line-height:1.8;color:#9a513e;overflow-wrap:anywhere}.triam-intake-status:empty{display:none}.triam-intake-status.success{padding:12px;background:#edf1e6;border:1px solid #c8d3b8;border-radius:8px;color:#536441}
.triam-flow-links{display:flex;flex-wrap:wrap;gap:15px;padding-top:18px;font-size:10px}.triam-flow-links a{text-decoration:underline;text-underline-offset:3px;color:#947049}
.triam-launch{position:fixed;right:24px;bottom:88px;z-index:800;display:flex;align-items:center;gap:10px;padding:7px 14px 7px 7px;border:1px solid #d5bc98;background:linear-gradient(120deg,#fffcf5,#f5ebda);color:#66482e;border-radius:50px;box-shadow:0 6px 28px #4a321e20;cursor:pointer;text-align:left;font-family:"Be Vietnam Pro",Arial,sans-serif;line-height:1.4}
.triam-launch-avatar{position:relative;display:block;width:44px;height:44px;border-radius:50%;border:1px solid #cab38f;padding:2px;background:#fffcf4;flex-shrink:0}
.triam-launch-avatar img{width:100%;height:100%;border-radius:50%;display:block;object-fit:cover}
.triam-launch-avatar i{position:absolute;bottom:1px;right:0;width:8px;height:8px;border-radius:50%;background:#879073;border:2px solid #fff9ef}
.triam-launch-copy strong{display:block;font-family:"Noto Serif",Georgia,serif;font-size:20px;font-weight:400;line-height:1.25}
.triam-launch-copy small{display:block;font-size:9px;color:#967e61;margin-top:2px;opacity:1;line-height:1.4}
.triam-launch-note{font-size:22px;font-family:Georgia,serif;color:#af8757;margin-left:5px}
.triam-admin-link{position:fixed;right:22px;bottom:85px;background:#76553b;color:#fff8ed!important;border-radius:30px;padding:11px 18px;z-index:800;font:13px "Be Vietnam Pro",Arial,sans-serif}
.triam-panel button:disabled{opacity:.5;cursor:wait}.triam-panel button:focus-visible,.triam-launch:focus-visible,.triam-panel a:focus-visible{outline:2px solid #aa8150;outline-offset:3px}
.triam-intake input:focus,.triam-intake select:focus,.triam-intake textarea:focus{outline:2px solid #c4a17566;outline-offset:1px}
.triam-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@keyframes triam-pulse{50%{opacity:.45}}@media(prefers-reduced-motion:reduce){.triam-thinking .triam-message-text{animation:none}}
@media(max-width:600px){.triam-launch{right:14px;bottom:calc(80px + env(safe-area-inset-bottom));gap:8px;padding:5px 11px 5px 5px}.triam-launch-copy strong{font-size:18px}.triam-launch-copy small,.triam-launch-note{display:none}.triam-launch-avatar{width:38px;height:38px}.triam-panel{right:10px;bottom:calc(142px + env(safe-area-inset-bottom));width:calc(100vw - 20px);height:min(680px,calc(100dvh - 156px - env(safe-area-inset-bottom)));border-radius:20px}.triam-head{padding:15px 16px 14px;gap:10px}.triam-avatar{width:52px;height:52px}.triam-panel .triam-identity strong{font-size:26px}.triam-panel .triam-eyebrow{font-size:7px;letter-spacing:1px}.triam-panel .triam-identity small{font-size:9px}.triam-chat-scroll{padding:0 17px 12px}.triam-welcome{padding-top:22px}.triam-panel .triam-welcome h2{font-size:23px}.triam-flow{padding:20px 18px}.triam-panel .triam-input-wrap textarea,.triam-intake input,.triam-intake select,.triam-intake textarea{font-size:16px}.triam-message{font-size:13px}.triam-tabs{padding-top:10px}.triam-tabs button{font-size:10px;padding-bottom:9px}.triam-compose{padding:10px 12px 6px}}
@media(max-height:620px){.triam-panel{bottom:80px;height:calc(100dvh - 96px)}.triam-head{padding-top:10px;padding-bottom:10px}.triam-welcome{padding-top:15px}.triam-panel .triam-welcome p{font-size:12px}.triam-launch{bottom:14px}}

.triam-reply-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.triam-reply-actions button{border:1px solid #c8af8d;background:#fffaf0;color:#795936;border-radius:16px;padding:6px 11px;font-size:11px;line-height:1.5}

/* Vietnamese typography: use bundled full-language families, sufficient space for stacked accents. */
.triam-panel{font-family:"Be Vietnam Pro",Arial,sans-serif;font-weight:400;line-height:1.7}
.triam-panel :is(button,input,select,textarea,label,summary,.triam-message-text){font-family:"Be Vietnam Pro",Arial,sans-serif}
.triam-panel .triam-identity strong,.triam-panel .triam-welcome h2,.triam-panel .triam-flow h2,.triam-launch-copy strong{font-family:"Noto Serif",Georgia,serif;font-weight:400;letter-spacing:0;line-height:1.5}
.triam-panel .triam-identity strong{font-size:27px;margin:0}
.triam-panel .triam-welcome h2{font-size:23px;line-height:1.55}
.triam-panel .triam-flow h2{font-size:22px;line-height:1.55}
.triam-panel .triam-eyebrow{font-size:8px;letter-spacing:.7px;line-height:1.8}
.triam-panel .triam-welcome-kicker{font-size:9px;letter-spacing:.8px;line-height:1.8}
.triam-panel .triam-identity small{font-size:10px;line-height:1.8}
.triam-tabs button{font-size:11px;line-height:1.7}
.triam-panel .triam-message{line-height:1.85}
.triam-panel .triam-input-wrap textarea{line-height:1.8;padding:2px 0}
.triam-launch-copy strong{font-size:19px}
.triam-launch-copy small{line-height:1.8}
@media(max-width:600px){.triam-panel .triam-identity strong{font-size:25px}.triam-panel .triam-welcome h2{font-size:21px}.triam-panel .triam-flow h2{font-size:21px}.triam-panel .triam-eyebrow{font-size:7px;letter-spacing:.4px}.triam-tabs button{font-size:10px}}
