@import"https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Space+Grotesk:wght@500;600;700&display=swap";:root{color-scheme:only light;font-family:Manrope,sans-serif;line-height:1.35;font-weight:500;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}html,body{overflow:hidden}button,input,textarea,select{font:inherit}.portal-root{--bg-surface: #fffdf5;--bg-panel: rgba(255, 255, 255, .78);--bg-panel-strong: rgba(255, 255, 255, .92);--bg-chat: rgba(255, 255, 255, .84);--text-main: #1f2738;--text-muted: #5f6879;--brand-blue: #1843a6;--brand-blue-strong: #0f2f78;--brand-gold: #e8bc5f;--border-soft: #eadfbe;--border-strong: #dbcda8;height:100dvh;min-height:100dvh;background:radial-gradient(circle at 8% 9%,rgba(232,188,95,.3),transparent 32%),radial-gradient(circle at 85% 15%,rgba(24,67,166,.2),transparent 30%),radial-gradient(circle at 88% 88%,rgba(232,188,95,.2),transparent 30%),linear-gradient(145deg,#fffef9,#fff9e9 45%,#fff7de);color:var(--text-main);position:relative;overflow:hidden}.portal-root:before,.portal-root:after{content:"";position:absolute;border-radius:999px;pointer-events:none;z-index:0}.portal-root:before{width:220px;height:220px;left:-90px;top:-80px;background:radial-gradient(circle,#1843a633,#1843a600);animation:floaty 8s ease-in-out infinite}.portal-root:after{width:250px;height:250px;right:-100px;bottom:-96px;background:radial-gradient(circle,#e8bc5f40,#e8bc5f00);animation:floaty 7s ease-in-out infinite reverse}.portal-shell{position:relative;z-index:1;height:100%;min-height:0;max-width:1520px;margin:0 auto;padding:1rem;display:flex;flex-direction:column;gap:.75rem}.topbar{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:1.05rem 1.2rem;border-radius:20px;border:1px solid var(--border-soft);background:var(--bg-panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 14px 30px #9880471f;animation:rise .35s ease-out both}.brand-stack{display:flex;align-items:center;gap:1rem;min-width:0}.brand-logo{width:auto;height:72px;flex-shrink:0}.brand-title{margin:0;font-family:Space Grotesk,sans-serif;font-size:1.35rem;font-weight:700;letter-spacing:.01em}.mobile-history-toggle{display:none;border:1px solid var(--border-soft);border-radius:999px;width:40px;height:40px;background:var(--bg-panel-strong);color:var(--brand-blue-strong)}.error-banner{border:1px solid #f2cfcf;border-radius:12px;background:#fff3f3;color:#a02525;font-size:.82rem;font-weight:700;padding:.62rem .8rem}.workspace-grid{min-height:0;flex:1;display:grid;grid-template-columns:290px minmax(0,1fr);gap:.8rem}.panel{min-height:0;border-radius:22px;border:1px solid var(--border-soft);background:var(--bg-panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 14px 30px #9880471f;animation:rise .44s ease-out both}.left-panel{padding:.95rem;display:flex;flex-direction:column;overflow:hidden}.chat-panel{display:flex;flex-direction:column;overflow:hidden}.history-rail{flex:1;min-height:0;display:flex;flex-direction:column;gap:.75rem}.history-rail-head{display:flex;flex-direction:column;gap:.72rem;padding-bottom:.1rem}.rail-header{display:flex;justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.75rem}.rail-header.compact{margin-bottom:.6rem}.rail-title{margin:0;font-family:Space Grotesk,sans-serif;font-size:.95rem;font-weight:700;color:var(--brand-blue-strong)}.rail-subtitle{margin:.2rem 0 0;font-size:.74rem;font-weight:600;color:var(--text-muted)}.history-actions{display:flex;align-items:center;gap:.45rem}.new-chat-button{border:0;display:inline-flex;align-items:center;gap:.25rem;border-radius:999px;padding:.46rem .75rem;background:#1843a6;color:#f8fbff;font-size:.72rem;font-weight:700;cursor:pointer;transition:background .18s ease}.new-chat-button:hover{background:#12357f}.history-tools{display:flex;flex-direction:column;gap:.5rem}.history-search{display:flex;align-items:center;gap:.45rem;border:1px solid var(--border-soft);border-radius:14px;background:#ffffffdb;color:var(--text-muted);padding:.62rem .72rem;box-shadow:inset 0 1px #ffffffa6}.history-search:focus-within{border-color:#1843a652;box-shadow:0 0 0 4px #1843a61a}.history-search-input{flex:1;min-width:0;border:0;background:transparent;color:var(--text-main);font-size:.8rem;font-weight:600;outline:none}.history-search-input::placeholder{color:#7b8292}.history-clear{border:0;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:999px;background:#1843a614;color:var(--brand-blue-strong);cursor:pointer}.history-count{margin:0;font-size:.72rem;font-weight:700;color:var(--text-muted)}.history-list{flex:1;min-height:0;overflow-y:auto;padding-right:.16rem;scrollbar-gutter:stable;overscroll-behavior:contain}.rail-empty{border:1px dashed var(--border-strong);border-radius:13px;background:#fff7df80;padding:1rem .75rem;text-align:center;font-size:.78rem;font-weight:600;color:var(--text-muted);display:flex;flex-direction:column;align-items:center;gap:.4rem}.history-card{width:100%;text-align:left;border:1px solid transparent;border-radius:13px;margin-bottom:.52rem;padding:.78rem;background:#ffffffbd;cursor:pointer;transition:transform .2s ease,border-color .2s ease,background .2s ease}.history-card:hover{transform:translateY(-1px);border-color:#1843a642;background:#fffffff0}.history-card.active{border-color:#1843a657;background:#1843a61a;box-shadow:inset 0 0 0 1px #1843a61f}.history-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:.45rem}.history-name{margin:0;flex:1;display:-webkit-box;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.79rem;font-weight:700;color:var(--text-main)}.history-status{border-radius:999px;background:#e8bc5f47;color:var(--brand-blue-strong);font-size:.64rem;font-weight:700;line-height:1;padding:.17rem .4rem}.history-date{margin:0;font-size:.7rem;color:var(--text-muted);font-weight:600}.history-card-bottom{margin-top:.45rem;display:flex;align-items:center;justify-content:space-between;gap:.45rem}.history-id{margin:0;font-size:.67rem;font-weight:700;color:#1843a6ad}.chat-head{border-bottom:1px solid var(--border-soft);padding:.95rem 1.05rem;display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;background:linear-gradient(90deg,#fff6d966,#fff9)}.chat-title{margin:0;font-family:Space Grotesk,sans-serif;font-size:1rem;font-weight:700;color:var(--brand-blue-strong)}.chat-subtitle{margin:0;font-size:.75rem;font-weight:600;color:var(--text-muted)}.chat-body{flex:1;min-height:0;overflow-y:auto;background:radial-gradient(circle at top right,rgba(24,67,166,.06),transparent 45%),linear-gradient(to bottom,#ffffffb8,#ffffffe6)}.chat-loading{height:100%;display:flex;align-items:center;justify-content:center;gap:.45rem;color:var(--text-muted);font-weight:600}.chat-empty{margin:2.1rem auto;max-width:760px;padding:0 1rem}.welcome-pill{display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--border-strong);border-radius:999px;background:#fff1cbdb;color:var(--brand-blue-strong);font-size:.74rem;font-weight:700;padding:.35rem .65rem}.welcome-title{margin:0;font-family:Space Grotesk,sans-serif;font-weight:700;font-size:clamp(1.35rem,2.1vw,1.95rem);line-height:1.2}.quick-prompt-grid{margin-top:.95rem;display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.prompt-card{border:1px solid var(--border-soft);border-radius:12px;background:#ffffffbd;text-align:left;padding:.72rem;color:var(--text-main);font-size:.79rem;font-weight:600;line-height:1.4;cursor:pointer;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.prompt-card:hover{transform:translateY(-1px);border-color:#1843a654;box-shadow:0 8px 16px #1843a61f}.message-list{display:flex;flex-direction:column;gap:.6rem;padding:1rem}.message-row{display:flex;animation:rise .28s ease-out both}.message-row.user{justify-content:flex-end}.message-row.assistant{justify-content:flex-start}.message-bubble{max-width:min(82%,720px);border-radius:17px;padding:.72rem .85rem;box-shadow:0 9px 20px #39331f17}.message-bubble.user{background:linear-gradient(135deg,#1d4fb6,#163f96);border:1px solid rgba(15,47,120,.2);color:#f6f9ff}.message-bubble.assistant{background:#ffffffe8;border:1px solid var(--border-soft)}.user-text{margin:0;white-space:pre-wrap;font-size:.88rem}.assistant-markdown{font-size:.86rem;line-height:1.52}.assistant-markdown p{margin:0}.assistant-markdown p+p{margin-top:.55rem}.assistant-markdown ul,.assistant-markdown ol{margin:.45rem 0;padding-left:1.15rem}.assistant-markdown li+li{margin-top:.25rem}.message-time{margin:.35rem 0 0;opacity:.62;font-size:.67rem;font-weight:700}.typing-indicator{display:flex;align-items:center;gap:.32rem}.typing-indicator span{width:.42rem;height:.42rem;border-radius:999px;background:#1843a694;animation:dotPulse 1.2s ease-in-out infinite}.typing-indicator span:nth-child(2){animation-delay:.16s}.typing-indicator span:nth-child(3){animation-delay:.32s}.composer-wrap{border-top:1px solid var(--border-soft);padding:.88rem .95rem 1rem;background:linear-gradient(180deg,#fff7df73,#ffffffe6)}.composer-meta{display:flex;align-items:center;justify-content:flex-end;margin-bottom:.55rem}.text-action{border:0;background:transparent;color:var(--brand-blue-strong);font-size:.76rem;font-weight:700;display:inline-flex;align-items:center;gap:.3rem;cursor:pointer}.text-action:hover{color:#2a5ec9}.composer-row{display:flex;align-items:flex-end;gap:.55rem}.composer-input{flex:1;min-height:50px;max-height:180px;resize:vertical;border:1px solid var(--border-strong);border-radius:14px;background:#ffffffeb;color:var(--text-main);padding:.72rem .86rem;font-size:.9rem;font-weight:500;line-height:1.45;outline:none;transition:border-color .2s ease,box-shadow .2s ease}.composer-input::placeholder{color:#7b8292}.composer-input:focus-visible{border-color:#1843a675;box-shadow:0 0 0 4px #1843a624}.send-button{min-width:108px;height:50px;border:0;border-radius:14px;background:linear-gradient(135deg,#1f53be,#14419d);color:#f8fbff;font-size:.82rem;font-weight:700;letter-spacing:.01em;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;box-shadow:0 8px 16px #14419d38;cursor:pointer}.send-button:hover{background:linear-gradient(135deg,#255fcf,#1849ac)}.send-button:disabled{opacity:.56;cursor:not-allowed;box-shadow:none}.mobile-overlay{position:fixed;inset:0;display:flex;background:#141e2d6b;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:70}.mobile-drawer{width:min(85vw,340px);height:100%;min-height:0;display:flex;flex-direction:column;background:linear-gradient(180deg,#fffef8,#fff7e2);border-right:1px solid var(--border-strong);padding:1rem;box-shadow:20px 0 30px #0000002e;animation:drawerIn .25s ease-out both}.drawer-close{border:1px solid var(--border-soft);border-radius:999px;width:34px;height:34px;background:#fff;color:var(--brand-blue-strong)}.desktop-only{display:flex}.spin{animation:spin 1s linear infinite}.custom-scroll{scrollbar-width:thin;scrollbar-color:rgba(24,67,166,.34) transparent}.custom-scroll::-webkit-scrollbar{width:7px;height:7px}.custom-scroll::-webkit-scrollbar-track{background:transparent}.custom-scroll::-webkit-scrollbar-thumb{border-radius:99px;background:#1843a647}.custom-scroll::-webkit-scrollbar-thumb:hover{background:#1843a666}@media(max-width:1270px){.workspace-grid{grid-template-columns:270px minmax(0,1fr)}}@media(max-width:1024px){.workspace-grid{grid-template-columns:1fr}.desktop-history,.desktop-only{display:none}.mobile-history-toggle{display:inline-flex;align-items:center;justify-content:center}.chat-head{padding:.82rem .86rem}.message-bubble{max-width:88%}.mobile-drawer{width:min(92vw,360px)}}@media(max-width:720px){.portal-shell{padding:.7rem}.brand-logo{height:58px}.history-card{padding:.72rem}.quick-prompt-grid{grid-template-columns:1fr}.composer-meta{margin-bottom:.45rem}.composer-input{min-height:46px;font-size:.85rem}.send-button{min-width:94px;height:46px;font-size:.77rem}.history-card-bottom{align-items:flex-start;flex-direction:column}}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes dotPulse{0%,to{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}@keyframes floaty{0%,to{transform:translate(0)}50%{transform:translate(10px,-8px)}}@keyframes drawerIn{0%{opacity:0;transform:translate(-14px)}to{opacity:1;transform:translate(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
