@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(/assets/fonts/pjs-vietnamese.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(/assets/fonts/pjs-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(/assets/fonts/pjs-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--navy:#1c2c5b;--navy-soft:#2a3f7e;--ink:#0e1015;--body:#3d444f;--muted:#8a8f98;--bg:#fff;--sidebar:#f7f7f8;--bubble:#f2f2f4;--hover:#ebebee;--line:#e6e7ea;--accent:#5b8def;--tint:#f0f4fd;--green:#2f9e6e;--red:#d64545;--radius:14px;--radius-sm:10px;--ring:0 0 0 3px #1c2c5b21;--shadow-sm:0 1px 2px #1018280d;--shadow-md:0 2px 6px -1px #1018280f, 0 8px 24px -6px #10182812;--shadow-lg:0 4px 12px -2px #10182814, 0 16px 44px -8px #10182821;--ease:cubic-bezier(.22, .72, .28, 1)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--body);-webkit-font-smoothing:antialiased;font-family:Plus Jakarta Sans,-apple-system,sans-serif;font-size:14px;line-height:1.65}::selection{background:#1c2c5b29}a{color:var(--navy);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{color:var(--ink);letter-spacing:-.015em}h1{color:var(--navy);letter-spacing:-.02em;font-weight:700}button{cursor:pointer;font-family:inherit}input,textarea,select{color:var(--ink);font-family:inherit;font-size:14px}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:#d9d9d9 padding-box padding-box;border:2px solid #0000;border-radius:99px}::-webkit-scrollbar-thumb:hover{background:#c4c4c4 padding-box padding-box;border:2px solid #0000}::-webkit-scrollbar-track{background:0 0}@keyframes pageIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.page-in{animation:.3s cubic-bezier(.21,.8,.3,1) both pageIn}.btn-primary{background:linear-gradient(180deg, #23262e, var(--ink));color:#fff;box-shadow:var(--shadow-sm), inset 0 1px 0 #ffffff12;transition:filter .16s var(--ease), transform .14s var(--ease), box-shadow .16s var(--ease);border:none;border-radius:999px;padding:10px 20px;font-size:13.5px;font-weight:600}.btn-primary:hover{filter:brightness(1.28);box-shadow:var(--shadow-md)}.btn-primary:active{transform:scale(.97)}.btn-primary:disabled{opacity:.35;pointer-events:none}.btn-primary:focus-visible{box-shadow:var(--ring);outline:none}.btn-ghost{background:var(--bg);border:1px solid var(--line);color:var(--ink);transition:background .16s var(--ease), border-color .16s var(--ease), box-shadow .16s var(--ease);border-radius:999px;padding:9px 16px;font-size:13px;font-weight:550}.btn-ghost:hover{background:var(--bubble);box-shadow:var(--shadow-sm);border-color:#d8d9de}.btn-ghost:focus-visible{box-shadow:var(--ring);outline:none}.field{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);width:100%;box-shadow:var(--shadow-sm);transition:border-color .16s var(--ease), box-shadow .16s var(--ease);outline:none;padding:10px 14px}.field::placeholder{color:#a6aab2}.field:hover{border-color:#d4d6db}.field:focus{box-shadow:var(--ring);border-color:#b7bcc6}.card{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card.hoverable{transition:border-color .16s var(--ease), box-shadow .18s var(--ease), transform .18s var(--ease)}.card.hoverable:hover{box-shadow:var(--shadow-md);border-color:#d8d9de;transform:translateY(-1px)}.choice{border:1px solid var(--line);background:var(--bg);color:var(--body);transition:background .16s var(--ease), border-color .16s var(--ease), color .16s var(--ease), box-shadow .16s var(--ease);border-radius:999px;padding:7px 14px;font-size:12.5px;font-weight:520}.choice:hover{background:var(--bubble);border-color:#d8d9de}.choice.on{border-color:var(--ink);background:linear-gradient(180deg, #23262e, var(--ink));color:#fff;box-shadow:var(--shadow-sm), inset 0 1px 0 #ffffff14;font-weight:600}.choice:focus-visible{box-shadow:var(--ring);outline:none}.chip-label{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0;margin-right:2px;font-size:11px;font-weight:700}.composer{background:var(--bg);box-shadow:var(--shadow-md);transition:box-shadow .2s var(--ease), border-color .2s var(--ease);border:1px solid #e2e3e7;border-radius:26px;padding:6px 8px 10px}.composer:focus-within{border-color:#cdd0d7;box-shadow:0 4px 14px -2px #10182814,0 18px 46px -10px #10182821}.composer textarea{resize:none;width:100%;color:var(--ink);background:0 0;border:none;outline:none;padding:12px 12px 6px;font-size:15px;line-height:1.6}.composer textarea::placeholder{color:#a6aab2}.composer-row{flex-wrap:wrap;align-items:center;gap:7px;padding:5px 8px 0;display:flex}.icon-btn{border:1px solid var(--line);background:var(--bg);width:34px;height:34px;color:var(--ink);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s;display:inline-flex}.icon-btn:hover{background:var(--bubble)}.send-btn{background:linear-gradient(180deg, #23262e, var(--ink));color:#fff;width:38px;height:38px;box-shadow:var(--shadow-sm), inset 0 1px 0 #ffffff17;transition:filter .16s var(--ease), transform .14s var(--ease), box-shadow .16s var(--ease);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;display:inline-flex}.send-btn:hover{filter:brightness(1.35);box-shadow:var(--shadow-md);transform:translateY(-1px)}.send-btn:active{transform:scale(.94)}.send-btn:disabled{color:#9ca0a8;box-shadow:none;pointer-events:none;background:#e4e5e8}@keyframes spin{to{transform:rotate(360deg)}}.send-btn .spinner{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:15px;height:15px;animation:.8s linear infinite spin}.bubble-user{background:var(--bubble);max-width:82%;color:var(--ink);white-space:pre-wrap;word-break:break-word;box-shadow:var(--shadow-sm);border:1px solid #10182808;border-radius:20px;margin-left:auto;padding:11px 17px;font-size:14.5px}.badge{letter-spacing:.01em;border-radius:999px;align-items:center;gap:6px;padding:4px 11px;font-size:11px;font-weight:650;display:inline-flex;box-shadow:inset 0 0 0 1px #1018280a}.badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.badge.green{color:#237a55;background:#2f9e6e1a}.badge.blue{color:#3d6fd6;background:#5b8def1f}.badge.red{color:#be3a3a;background:#d6454517}.badge.gray{color:var(--muted);background:#8f8f8f1f}@keyframes badgePulse{0%,to{opacity:1}50%{opacity:.35}}.badge.blue:before{animation:1.4s ease-in-out infinite badgePulse}.pin-btn{border:1px solid var(--line);background:var(--bg);width:30px;height:30px;color:var(--muted);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:color .15s,border-color .15s,background .15s;display:flex}.pin-btn:hover{color:var(--ink);background:var(--bubble)}.pin-btn.on{color:#b8860b;background:#fbf6e7;border-color:#e4d3a1}.side{border-right:1px solid var(--line);background:linear-gradient(#f8f8f9,#f5f5f7);flex-direction:column;flex-shrink:0;width:260px;height:100vh;padding:14px 10px;display:flex;position:sticky;top:0}.side-logo{justify-content:center;align-items:center;margin:0 0 10px;padding:6px 0;display:flex}.side-nav{flex-direction:column;gap:2px;display:flex}.nav-item{color:var(--ink);transition:background .14s var(--ease), box-shadow .14s var(--ease);border-radius:10px;align-items:center;gap:10px;padding:8px 12px;font-size:13.5px;font-weight:520;display:flex}.nav-item:hover{background:var(--hover);text-decoration:none}.nav-item:active{background:#e2e2e4}.nav-item.active{box-shadow:var(--shadow-sm), inset 0 0 0 1px #1018280d;background:#fff;font-weight:650}.nav-item.active svg{color:var(--navy)}.nav-item svg{color:#5d6067;transition:color .14s var(--ease);flex-shrink:0}.side-recents{flex:1;min-height:0;margin-top:14px;overflow-y:auto}.side-heading{color:#9da1a9;letter-spacing:.07em;text-transform:uppercase;margin:12px 0 4px;padding:0 12px;font-size:10.5px;font-weight:700}.recent-item{border-radius:10px;align-items:center;transition:background .13s;display:flex}.recent-item:hover{background:var(--hover)}.recent-item:active{background:#e2e2e2}.recent-item.active{background:var(--hover)}.recent-link{min-width:0;color:var(--ink);flex:1;align-items:center;padding:6px 4px 6px 12px;font-size:13px;display:flex}.recent-link:hover{text-decoration:none}.recent-link span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.recent-item.active .recent-link{font-weight:600}.recent-pin{width:26px;height:26px;color:var(--muted);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;margin-right:4px;transition:opacity .12s,background .12s,color .12s;display:flex}.recent-item:hover .recent-pin,.recent-pin:focus-visible{opacity:1}.recent-pin:hover{color:var(--ink);background:#dedede}.recent-pin.on{opacity:1;color:#b8860b}.recent-pin.danger:hover{color:var(--red);background:#f6e2e2}.pin-btn.danger:hover{color:var(--red);background:#fbf0f0;border-color:#ebc7c7}.side-user{border-top:1px solid var(--line);margin-top:10px;padding:12px 12px 0}.side-user .name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;margin:0 0 1px;font-size:13px;font-weight:650;overflow:hidden}.side-user .role{color:var(--muted);margin:0 0 10px;font-size:11.5px}.btn-side{background:var(--bg);border:1px solid var(--line);width:100%;color:var(--ink);border-radius:999px;padding:8px 0;font-size:12.5px;font-weight:550;transition:background .15s}.btn-side:hover{background:var(--hover)}.demo-banner{color:#5a6b96;text-align:center;background:linear-gradient(90deg,#f5f8fe,#f9fafe,#f5f8fe);border-bottom:1px solid #e4e9f4;justify-content:center;align-items:center;gap:8px;padding:6px 16px;font-size:12px;font-weight:550;display:flex}.demo-banner:before{content:"";background:var(--accent);border-radius:50%;flex-shrink:0;width:7px;height:7px;animation:1.6s ease-in-out infinite badgePulse}.prose{color:var(--ink);font-size:14.5px;line-height:1.8}.prose h1,.prose h2{color:var(--navy);letter-spacing:-.01em;margin:22px 0 8px;font-size:17px}.prose h3{color:var(--navy);margin:16px 0 6px;font-size:15px}.prose h1:first-child,.prose h2:first-child,.prose h3:first-child{margin-top:0}.prose h2{border-bottom:1px solid var(--line);padding-bottom:5px}.prose p{margin:0 0 10px}.prose ul,.prose ol{margin:0 0 10px;padding-left:22px}.prose li{margin-bottom:4px}.prose li::marker{color:var(--muted)}.prose strong{color:var(--ink);font-weight:700}.prose blockquote{border-left:3px solid var(--navy);background:var(--sidebar);color:var(--body);border-radius:0 10px 10px 0;margin:0 0 10px;padding:9px 15px}.prose code{background:var(--bubble);border-radius:5px;padding:1px 6px;font-size:12.5px}.prose hr{border:none;border-top:1px solid var(--line);margin:18px 0}.prose table{border-collapse:collapse;width:100%;margin:4px 0 14px;font-size:13.5px;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:7px 12px}.prose th{background:var(--sidebar);color:var(--navy);white-space:nowrap;font-weight:650}.prose tr:nth-child(2n) td{background:#fbfbfc}.cite-item{background:var(--sidebar);border:1px solid var(--line);transition:border-color .16s var(--ease), background .16s var(--ease), transform .16s var(--ease);border-left:3px solid #c6c9cf;border-radius:10px;padding:10px 13px}.cite-item:hover{border-left-color:var(--navy);background:#f4f5f7;transform:translate(2px)}.error-text{color:var(--red);font-size:12.5px}.muted{color:var(--muted)}.route-spinner{border:2px solid var(--line);border-top-color:var(--ink);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin;display:inline-block}.app-col{flex-direction:column;flex:1;min-width:0;display:flex}.main-col{flex:1;width:100%;max-width:820px;margin:0 auto;padding:28px 32px 44px}.mobile-topbar,.side-overlay{display:none}@media (max-width:820px){.mobile-topbar{background:var(--bg);border-bottom:1px solid var(--line);z-index:40;align-items:center;gap:12px;height:54px;padding:0 12px;display:flex;position:fixed;top:0;left:0;right:0}.app-col{padding-top:54px}.main-col{padding:18px 14px 40px}.side{z-index:60;width:min(300px,85vw);height:100dvh;transition:transform .22s cubic-bezier(.3,.8,.4,1);position:fixed;top:0;bottom:0;left:0;transform:translate(-105%);box-shadow:0 0 40px #0000002e}.side.open{transform:none}.side-overlay{z-index:50;background:#00000057;display:block;position:fixed;inset:0}.recent-pin{opacity:1}.composer textarea,.field{font-size:16px}.bubble-user{max-width:92%}}.login-bg{background:radial-gradient(900px 500px at 12% -8%, #1c2c5b12, transparent 60%), radial-gradient(800px 460px at 105% 108%, #5b8def14, transparent 55%), var(--sidebar)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
