/* Portal.ChatbotHcc bundle — tuyệt đối không sửa file này; chỉ sửa wwwroot/generate rồi pnpm run build hoặc pnpm run watch */
.portal-hcc-chat--float,.portal-hcc-chat--page{--hcc-primary: var( --hcc-theme-primary, var( --tieuhoc-primary, var( --thpt-primary, var( --thcs-primary, var( --gdtx-primary, var( --mamnon-primary, var(--etp-blue-primary, var(--etp-primary, #1a5f9e)) ) ) ) ) ) );--hcc-primary-soft: color-mix(in srgb, var(--hcc-primary) 12%, #fff);--hcc-accent: var( --hcc-theme-accent, var( --tieuhoc-primary-accent, var(--thpt-primary-accent, var(--gdtx-primary-accent, var(--hcc-primary))) ) );--hcc-bg: #ffffff;--hcc-surface: #f0f4f8;--hcc-text: #15202b;--hcc-muted: #667788;--hcc-border: #e3e9ef;--hcc-shadow: 0 8px 28px rgba(21, 48, 91, .16), 0 2px 8px rgba(21, 48, 91, .06);--hcc-radius: 20px;--hcc-radius-sm: 14px;font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:.9375rem;line-height:1.5;color:var(--hcc-text);-webkit-font-smoothing:antialiased}.portal-hcc-chat--float{--hcc-fab-size: 3.6rem;--hcc-fab-edge: 1.25rem;--hcc-fab-gap: .75rem;position:fixed;z-index:1080;right:var(--hcc-fab-edge);bottom:var(--hcc-fab-edge)}html.portal-hcc-chat-float-active .tieuhoc-scroll-top,html.portal-hcc-chat-float-active .etp-scroll-top,html.portal-hcc-chat-float-active .thpt-scroll-top,html.portal-hcc-chat-float-active .thcs-scroll-top,html.portal-hcc-chat-float-active .gdtx-scroll-top,html.portal-hcc-chat-float-active .mamnon-scroll-top,html.portal-hcc-chat-float-active .ga-scroll-top,html.portal-hcc-chat-float-active .ga1-scroll-top,html.portal-hcc-chat-float-active .ga2-scroll-top,html.portal-hcc-chat-float-active .ga3-scroll-top,body:has(#portal-hcc-chat-root.portal-hcc-chat--float:not([hidden])) .tieuhoc-scroll-top,body:has(#portal-hcc-chat-root.portal-hcc-chat--float:not([hidden])) .etp-scroll-top,body:has(#portal-hcc-chat-root.portal-hcc-chat--float:not([hidden])) .thpt-scroll-top,body:has(#portal-hcc-chat-root.portal-hcc-chat--float:not([hidden])) .thcs-scroll-top,body:has(#portal-hcc-chat-root.portal-hcc-chat--float:not([hidden])) .gdtx-scroll-top,body:has(#portal-hcc-chat-root.portal-hcc-chat--float:not([hidden])) .mamnon-scroll-top,body:has(#portal-hcc-chat-root.portal-hcc-chat--float:not([hidden])) .ga-scroll-top,body:has(#portal-hcc-chat-root.portal-hcc-chat--float:not([hidden])) .ga1-scroll-top,body:has(#portal-hcc-chat-root.portal-hcc-chat--float:not([hidden])) .ga2-scroll-top,body:has(#portal-hcc-chat-root.portal-hcc-chat--float:not([hidden])) .ga3-scroll-top{bottom:calc(var(--hcc-fab-edge, 1.25rem) + var(--hcc-fab-size, 3.6rem) + var(--hcc-fab-gap, .75rem))}.portal-hcc-chat__fab{width:3.6rem;height:3.6rem;border:0;border-radius:999px;background:var(--hcc-primary);color:#fff;box-shadow:var(--hcc-shadow);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;position:relative;z-index:2;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}.portal-hcc-chat__fab:hover,.portal-hcc-chat__fab:focus-visible{filter:brightness(1.05);transform:translateY(-2px) scale(1.03);outline:none}.portal-hcc-chat__fab:active{transform:translateY(0) scale(.98)}.portal-hcc-chat__fab-icon{width:1.45rem;height:1.45rem}.portal-hcc-chat__panel{position:absolute;right:0;bottom:4.45rem;width:min(22.5rem,calc(100vw - 1.5rem));height:min(36rem,calc(100vh - 5.5rem));display:none;flex-direction:column;background:var(--hcc-bg);border:1px solid var(--hcc-border);border-radius:var(--hcc-radius);box-shadow:var(--hcc-shadow);overflow:hidden;z-index:1}.portal-hcc-chat__panel.is-open{display:flex;animation:portal-hcc-panel-in .22s ease}.portal-hcc-chat__panel[hidden]{display:none!important;animation:none}@keyframes portal-hcc-panel-in{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.portal-hcc-chat__header{display:flex;align-items:center;justify-content:space-between;gap:.65rem;padding:.95rem 1rem;background:linear-gradient(145deg,var(--hcc-primary) 0%,color-mix(in srgb,var(--hcc-primary) 78%,#000) 100%);color:#fff}.portal-hcc-chat__brand{display:flex;gap:1.5rem;align-items:center;min-width:0}.portal-hcc-chat__avatar{width:2.35rem;height:2.35rem;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.portal-hcc-chat__avatar svg{width:2.35rem;height:2.35rem}.portal-hcc-chat__logo{width:2.35rem;height:2.35rem;border-radius:999px;object-fit:cover;background:#fff;flex-shrink:0}.portal-hcc-chat__title{color:#fff;margin:0;font-size:.98rem;font-weight:700;letter-spacing:-.01em}.portal-hcc-chat__subtitle{margin:.12rem 0 0;font-size:.78rem;opacity:.92;display:flex;align-items:center;gap:.35rem}.portal-hcc-chat__online-dot{width:.45rem;height:.45rem;border-radius:999px;background:#7dffa8;box-shadow:0 0 0 3px #7dffa840;flex-shrink:0}.portal-hcc-chat__header-actions{display:flex;gap:.15rem;flex-shrink:0}.portal-hcc-chat__icon-btn{width:2rem;height:2rem;border:0;border-radius:999px;background:transparent;color:inherit;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;transition:background .15s ease}.portal-hcc-chat__icon-btn:hover,.portal-hcc-chat__icon-btn:focus-visible{background:#ffffff2e;outline:none}.portal-hcc-chat__icon-btn svg{width:1.05rem;height:1.05rem}.portal-hcc-chat__messages{flex:1;overflow-y:auto;padding:1rem .9rem .85rem;background:radial-gradient(120% 80% at 100% 0%,var(--hcc-primary-soft),transparent 55%),var(--hcc-surface);display:flex;flex-direction:column;gap:.7rem;scroll-behavior:smooth}.portal-hcc-chat__bubble{max-width:88%;padding:.7rem .9rem;border-radius:var(--hcc-radius-sm);white-space:pre-wrap;word-break:break-word;box-shadow:0 1px 2px #15305b0d}.portal-hcc-chat__bubble--bot{align-self:flex-start;background:#fff;border:1px solid var(--hcc-border);border-bottom-left-radius:5px;display:flex;flex-direction:column;gap:.45rem}.portal-hcc-chat__bubble-body{min-width:0;white-space:pre-wrap}.portal-hcc-chat__md-h{margin:.55rem 0 .25rem;line-height:1.35;white-space:normal}.portal-hcc-chat__md-h:first-child{margin-top:0}.portal-hcc-chat__md-h--1,.portal-hcc-chat__md-h--2{font-size:1.05em}.portal-hcc-chat__md-h--3,.portal-hcc-chat__md-h--4,.portal-hcc-chat__md-h--5,.portal-hcc-chat__md-h--6{font-size:1em}.portal-hcc-chat__md-hr{border:0;border-top:1px solid var(--hcc-border);margin:.65rem 0}.portal-hcc-chat__md-list{margin:.35rem 0 .45rem;padding-left:1.25rem;white-space:normal}.portal-hcc-chat__md-list li{margin:.15rem 0;padding-left:.15rem}.portal-hcc-chat__md-list li+li{margin-top:.2rem}.portal-hcc-chat__md-table-wrap{display:block;width:100%;max-width:100%;overflow-x:auto;margin:.55rem 0;white-space:normal;-webkit-overflow-scrolling:touch}.portal-hcc-chat__md-table{width:max-content;min-width:100%;border-collapse:collapse;font-size:.9em;line-height:1.4}.portal-hcc-chat__md-table th,.portal-hcc-chat__md-table td{border:1px solid var(--hcc-border);padding:.45rem .6rem;text-align:left;vertical-align:top;white-space:normal;word-break:break-word}.portal-hcc-chat__md-table th{background:var(--hcc-primary-soft);color:var(--hcc-text);font-weight:700}.portal-hcc-chat__md-table tbody tr:nth-child(2n) td{background:color-mix(in srgb,var(--hcc-surface) 70%,#fff)}.portal-hcc-chat__bubble-body code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em;padding:.05rem .3rem;border-radius:4px;background:var(--hcc-surface)}.portal-hcc-chat__bubble-actions{display:flex;justify-content:flex-end;margin-top:.1rem}.portal-hcc-chat__copy-btn{width:1.85rem;height:1.85rem;border:0;border-radius:999px;background:transparent;color:var(--hcc-muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease}.portal-hcc-chat__copy-btn:hover,.portal-hcc-chat__copy-btn:focus-visible{background:var(--hcc-primary-soft);color:var(--hcc-primary);outline:none}.portal-hcc-chat__copy-btn.is-copied{color:var(--hcc-accent);background:color-mix(in srgb,var(--hcc-accent) 12%,#fff)}.portal-hcc-chat__copy-btn svg{width:.95rem;height:.95rem}.portal-hcc-chat__bubble--user{align-self:flex-end;background:var(--hcc-primary);color:#fff;border-bottom-right-radius:5px;box-shadow:0 4px 12px color-mix(in srgb,var(--hcc-primary) 28%,transparent)}.portal-hcc-chat__bubble--error{align-self:stretch;background:#fff5f5;border:1px solid #f0c2c6;color:#8a1f28;border-radius:var(--hcc-radius-sm);box-shadow:none}.portal-hcc-chat__sources{margin:.55rem 0 0;padding:0;list-style:none;display:grid;gap:.35rem}.portal-hcc-chat__sources a{color:var(--hcc-accent);text-decoration:underline;text-underline-offset:2px;font-size:.85rem}.portal-hcc-chat__source-code{color:var(--hcc-muted);font-size:.8rem;margin-left:.35rem}.portal-hcc-chat__status{padding:.55rem 1rem;font-size:var(--text-base, .9375rem);font-weight:600;line-height:1.45;color:color-mix(in srgb,var(--hcc-primary) 68%,var(--hcc-text));background:var(--hcc-bg);border-top:1px solid var(--hcc-border);display:flex;align-items:center;gap:.55rem}.portal-hcc-chat__status [data-hcc-status-text]{font-size:inherit;font-weight:inherit;line-height:inherit}.portal-hcc-chat__status[hidden]{display:none!important}.portal-hcc-chat__status-dot{width:.5rem;height:.5rem;border-radius:999px;background:var(--hcc-accent);flex-shrink:0;animation:portal-hcc-pulse 1s ease infinite}@keyframes portal-hcc-pulse{0%,to{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}.portal-hcc-chat__composer{display:flex;flex-direction:column;gap:.45rem;padding:.75rem .85rem .85rem;border-top:1px solid var(--hcc-border);background:var(--hcc-bg)}.portal-hcc-chat__composer-row{display:flex;gap:.5rem;align-items:flex-end;padding:.35rem .4rem .35rem .65rem;background:var(--hcc-surface);border:1px solid var(--hcc-border);border-radius:25px;transition:border-color .15s ease,box-shadow .15s ease}.portal-hcc-chat__composer-row:focus-within{border-color:color-mix(in srgb,var(--hcc-primary) 55%,var(--hcc-border));box-shadow:0 0 0 3px color-mix(in srgb,var(--hcc-primary) 16%,transparent);background:#fff}.portal-hcc-chat__input{flex:1;resize:none;min-height:2.35rem;max-height:7.5rem;border:0;border-radius:0;padding:.55rem .2rem;font:inherit;font-size:max(1em,16px);color:inherit;background:transparent;line-height:1.4;field-sizing:content}.portal-hcc-chat__input:focus{outline:none}.portal-hcc-chat__input::placeholder{color:#8a97a6}.portal-hcc-chat__send{width:2.35rem;height:2.35rem;border:0;border-radius:999px;background:var(--hcc-accent);color:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .15s ease,filter .15s ease,opacity .15s ease}.portal-hcc-chat__send:hover:not(:disabled),.portal-hcc-chat__send:focus-visible:not(:disabled){filter:brightness(1.06);transform:scale(1.04);outline:none}.portal-hcc-chat__send:disabled{opacity:.45;cursor:not-allowed}.portal-hcc-chat__send svg{width:1.05rem;height:1.05rem}.portal-hcc-chat__hint{margin:0;padding:0;font-size:.72rem;color:var(--hcc-muted)}.portal-hcc-chat__composer-meta{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;padding:0 .35rem;margin:.15rem 0}.portal-hcc-chat__char-count{margin:0;font-size:var(--text-xs, .75rem);color:var(--hcc-muted);white-space:nowrap;font-variant-numeric:tabular-nums}.portal-hcc-chat__char-count.is-near-limit{color:#b45309}.portal-hcc-chat__char-count.is-at-limit{color:#8a1f28;font-weight:600}.portal-hcc-chat__hint kbd{font:inherit;font-size:.68rem;padding:.05rem .28rem;border-radius:4px;border:1px solid var(--hcc-border);background:var(--hcc-surface);color:#456}.portal-hcc-chat .visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.portal-hcc-chat__captcha{margin-bottom:.65rem;padding:.65rem .75rem;border-radius:var(--hcc-radius-sm);border:1px solid var(--hcc-border);background:var(--hcc-surface)}.portal-hcc-chat__captcha[hidden]{display:none!important}.portal-hcc-chat__captcha.is-visible{display:block}.portal-hcc-chat__captcha-label{display:block;font-size:.8rem;font-weight:600;margin-bottom:.45rem;color:var(--hcc-text)}.portal-hcc-chat__captcha-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.portal-hcc-chat__captcha-img{display:block;border-radius:6px;border:1px solid var(--hcc-border);background:#fff;flex-shrink:0}.portal-hcc-chat__captcha-input{flex:1 1 7rem;min-width:6rem;border:1px solid var(--hcc-border);border-radius:10px;padding:.45rem .6rem;font:inherit;font-size:max(1em,16px);text-transform:uppercase}.portal-hcc-chat__captcha-confirm{margin-top:.55rem;width:100%;border:0;border-radius:10px;padding:.55rem .85rem;font:inherit;font-size:var(--text-sm, .875rem);font-weight:600;color:#fff;background:var(--hcc-primary);cursor:pointer;transition:filter .15s ease,opacity .15s ease}.portal-hcc-chat__captcha-confirm:hover:not(:disabled),.portal-hcc-chat__captcha-confirm:focus-visible:not(:disabled){filter:brightness(1.06);outline:none}.portal-hcc-chat__captcha-confirm:disabled{opacity:.55;cursor:not-allowed}.portal-hcc-chat__composer.is-captcha-gated .portal-hcc-chat__send,.portal-hcc-chat__composer.is-send-blocked .portal-hcc-chat__send{opacity:.45;cursor:not-allowed;pointer-events:none}@media(max-width:480px){.portal-hcc-chat--float{--hcc-fab-edge: .75rem;--hcc-keyboard-inset: 0px;right:var(--hcc-fab-edge);bottom:var(--hcc-fab-edge)}.portal-hcc-chat--float .portal-hcc-chat__panel{position:fixed;top:max(.35rem,env(safe-area-inset-top,0px));right:.5rem;left:.5rem;bottom:calc(var(--hcc-fab-size, 3.6rem) + var(--hcc-fab-edge, .75rem) + .75rem + var(--hcc-keyboard-inset, 0px));width:auto;height:auto;max-height:none;border-radius:16px}.portal-hcc-chat--float.is-keyboard-open .portal-hcc-chat__panel{bottom:max(.25rem,var(--hcc-keyboard-inset, 0px))}.portal-hcc-chat--float.is-keyboard-open .portal-hcc-chat__fab{opacity:0;pointer-events:none}.portal-hcc-chat--float.is-keyboard-open .portal-hcc-chat__hint{display:none}.portal-hcc-chat--page{--hcc-keyboard-inset: 0px}.portal-hcc-chat--page.is-keyboard-open .portal-hcc-chat__panel--page{max-height:calc(100dvh - var(--hcc-keyboard-inset, 0px) - 1rem)}.portal-hcc-chat__composer-row{border-radius:16px}}@media(prefers-reduced-motion:reduce){.portal-hcc-chat__panel,.portal-hcc-chat__fab,.portal-hcc-chat__send,.portal-hcc-chat__status-dot{animation:none;transition:none}}.portal-hcc-page{max-width:52rem;margin:0 auto;padding:1.25rem 1rem 2.5rem}.portal-hcc-page__header{margin-bottom:1rem}.portal-hcc-page__brand{display:flex;align-items:center;gap:.85rem}.portal-hcc-page__logo{border-radius:12px;object-fit:cover}.portal-hcc-page__title{margin:0;font-size:1.5rem;font-weight:700;color:var(--hcc-primary);letter-spacing:-.02em}.portal-hcc-page__lead{margin:.25rem 0 0;color:#5b6b7c}.portal-hcc-chat--page{position:static;right:auto;bottom:auto;width:100%}.portal-hcc-chat--page .portal-hcc-chat__panel--page{position:static;width:100%;height:min(38rem,calc(100vh - 12rem));min-height:24rem;display:flex;flex-direction:column;background:var(--hcc-bg, #fff);border:1px solid var(--hcc-border, #e3e9ef);border-radius:var(--hcc-radius, 20px);box-shadow:var(--hcc-shadow, 0 8px 28px rgba(21, 48, 91, .12));overflow:hidden;animation:none}.portal-hcc-chat--page .portal-hcc-chat__panel--page[hidden]{display:flex!important}
