:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff6ea;--bg-end:#fff1e2;--surface:#fffbf4eb;--surface-strong:#fffdf8;--surface-muted:#fff1dd;--text:#4b2a1e;--text-soft:#805648;--heading:#26110b;--accent:#e66a3f;--accent-strong:#bd4525;--gold:#ffb55e;--berry:#ff8569;--border:#f3bf98bd;--shadow:0 18px 44px #9e4e2529;--focus:#542516;--on-accent:#fffaf2;--radius-sm:12px;--radius-md:20px;--radius-lg:28px;font-family:PingFang SC,Microsoft YaHei,Noto Sans CJK SC,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#21130f;--bg-end:#19100e;--surface:#2f1c17f0;--surface-strong:#30201b;--surface-muted:#3c241d;--text:#f6e7dc;--text-soft:#d9b8a6;--heading:#fff6ef;--accent:#f27a50;--accent-strong:#ffb18c;--border:#a06345b3;--shadow:0 18px 44px #00000061;--focus:#ffe0a3;--on-accent:#2b1711}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{min-height:100vh;color:var(--text);background:var(--bg);background:radial-gradient(circle at 13% 10%, color-mix(in srgb, var(--gold) 36%, transparent), transparent 32%), radial-gradient(circle at 86% 18%, color-mix(in srgb, var(--berry) 25%, transparent), transparent 38%), linear-gradient(180deg, color-mix(in srgb, var(--bg) 88%, white), var(--bg-end));text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;margin:0;line-height:1.65;overflow:hidden}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.app-frame{width:min(1160px,100% - 2rem);height:100vh;height:100dvh;height:var(--tg-viewport-stable-height,var(--visual-viewport-height,100dvh));padding:max(1rem, env(safe-area-inset-top)) max(0px, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(0px, env(safe-area-inset-left));grid-template-rows:auto minmax(0,1fr);gap:1rem;margin:0 auto;display:grid}.skip-link{z-index:100;border-radius:0 0 var(--radius-sm) var(--radius-sm);background:var(--accent-strong);color:var(--on-accent);padding:.65rem 1rem;position:fixed;top:0;left:50%;transform:translate(-50%,-120%)}.skip-link:focus{transform:translate(-50%)}.app-header{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);min-height:4.5rem;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);justify-content:space-between;align-items:center;padding:.7rem .9rem;display:flex}.brand{min-width:0;color:inherit;align-items:center;gap:.75rem;text-decoration:none;display:flex}.brand-symbol,.brand-mark{aspect-ratio:1;background:linear-gradient(145deg, var(--berry), var(--accent-strong));width:2.8rem;box-shadow:inset 0 0 0 1px #ffffff3d, 0 8px 20px color-mix(in srgb, var(--accent) 28%, transparent);color:#fffaf2;border-radius:.85rem;flex:none;place-items:center;font-size:1.25rem;font-weight:700;display:grid}.brand strong{color:var(--heading);letter-spacing:.04em;display:block}.brand small{color:var(--text-soft);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.app-header nav{align-items:center;gap:.45rem;display:flex}.app-header nav button,.user-chip{min-height:2.5rem;color:var(--text-soft);background:0 0;border:1px solid #0000;border-radius:999px;padding:.45rem .7rem}.app-header nav button{cursor:pointer}.app-header nav button:hover{border-color:var(--border);background:var(--surface-muted);color:var(--heading)}.user-chip{border-color:var(--border);background:var(--surface-muted);align-items:center;display:inline-flex}.login-shell,.chat-shell{min-height:0}.chat-shell{height:100%}.login-shell{place-items:center;padding:1rem 0;display:grid}.login-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);width:min(100%,31rem);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);padding:clamp(1.5rem,5vw,2.5rem)}.login-card .brand-mark{width:3.5rem;margin-bottom:1.25rem;font-size:1.55rem}.eyebrow{color:var(--accent-strong);letter-spacing:.13em;margin:0 0 .25rem;font-size:.75rem;font-weight:600}h1,h2{color:var(--heading);line-height:1.25}.login-card h1{margin:.25rem 0 .5rem;font-size:clamp(1.8rem,5vw,2.4rem)}.login-hint{color:var(--text-soft);margin:0 0 1.5rem}.login-card form{gap:1rem;display:grid}.login-card label{color:var(--heading);gap:.42rem;font-weight:600;display:grid}.login-card input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-strong);width:100%;min-height:3rem;color:var(--text);padding:.65rem .8rem}.primary-button{border-radius:var(--radius-sm);background:linear-gradient(110deg, var(--accent), var(--accent-strong));min-height:3.1rem;color:var(--on-accent);cursor:pointer;border:0;font-weight:600}button:disabled{cursor:not-allowed;opacity:.55}.conversation-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);height:100%;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);grid-template-rows:auto minmax(0,1fr) auto auto;display:grid;overflow:hidden}.message-viewport{min-height:0;position:relative;overflow:hidden}.conversation-title-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1rem 1.25rem .75rem;display:flex}.conversation-title-row h1{margin:0;font-size:1.35rem}.sync-dot{background:#4daf76;border-radius:50%;width:.65rem;height:.65rem;transition:background-color .2s,box-shadow .2s;box-shadow:0 0 0 .3rem #4daf7629}.sync-syncing{animation:1.35s ease-in-out infinite sync-pulse}.sync-offline{background:#9c8d86;box-shadow:0 0 0 .3rem #9c8d8626}.sync-error{background:#d65345;box-shadow:0 0 0 .3rem #d6534526}.message-list{overscroll-behavior:contain;scrollbar-color:var(--border) transparent;-webkit-overflow-scrolling:touch;overflow-anchor:none;touch-action:pan-y;height:100%;min-height:0;padding:clamp(1rem,3vw,1.7rem);overflow:auto}.virtual-message-stack{width:100%;position:relative}.virtual-message-row{width:100%;padding-bottom:1rem;position:absolute;top:0;left:0}.virtual-message-row .message{margin-bottom:0}.message{contain:layout style;width:-moz-fit-content;width:fit-content;max-width:min(80%,50rem);margin-bottom:1rem}.message.is-new{animation:.28s cubic-bezier(.2,.75,.25,1) both message-arrive}.message>header{color:var(--text-soft);margin:0 0 .25rem .5rem;font-size:.78rem}.message-content{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-strong);overflow-wrap:anywhere;padding:.7rem 1rem;box-shadow:0 5px 15px #e66a3f14}.message-user{margin-left:auto}.message-user>header{text-align:right;margin-right:.5rem}.message-user .message-content{background:linear-gradient(135deg, var(--accent), var(--accent-strong));color:var(--on-accent);border-bottom-right-radius:.35rem}.message-assistant .message-content{border-bottom-left-radius:.35rem}.message-content>:first-child{margin-top:0}.message-content>:last-child{margin-bottom:0}.message-content pre{border-radius:var(--radius-sm);background:var(--surface-muted);padding:.8rem;overflow-x:auto}.message-content code{font-family:Cascadia Mono,IBM Plex Mono,monospace}.message-content :not(pre)>code{background:var(--surface-muted);border-radius:.35em;padding:.1em .3em}.message-user .message-content :not(pre)>code{background:#ffffff2e}.message-content table{border-collapse:collapse;max-width:100%;display:block;overflow-x:auto}.message-content th,.message-content td{border:1px solid var(--border);padding:.35rem .6rem}.message-content img{max-width:100%;height:auto}.streaming-plain-text{white-space:pre-wrap}.streaming-label{color:var(--accent-strong);align-items:center;gap:.3rem;margin-left:.5rem;display:inline-flex}.streaming-label:before{content:"";background:currentColor;border-radius:50%;width:.36rem;height:.36rem;animation:1.35s ease-in-out infinite streaming-pulse}.message-activities{gap:.65rem;margin-top:.7rem;display:grid}.activity-details{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-muted);overflow:hidden}.activity-details summary{min-height:2.5rem;color:var(--heading);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;padding:.45rem .65rem;list-style:none;transition:background-color .18s,transform .18s;display:flex}.activity-details summary::-webkit-details-marker{display:none}.activity-details summary:hover{background:var(--surface-strong)}.activity-details summary:active{transform:scale(.985)}.activity-details summary:after{content:"⌄";margin-left:auto;transition:transform .2s}.activity-details[open] summary:after{transform:rotate(180deg)}.activity-details summary small{color:var(--text-soft)}.activity-summary-icon{width:1.55rem;height:1.55rem;color:var(--accent-strong);border-radius:50%;flex:none;place-items:center;display:grid;background:#e66a3f1f!important;border:0!important;padding:0!important}.activity-timeline{margin:0;padding:.2rem .8rem .7rem 2.25rem;list-style:none;animation:.22s ease-out both activity-reveal}.activity-item{border-left:1px solid var(--border);min-width:0;padding:.35rem 0 .55rem .75rem;position:relative}.activity-item:last-child{border-left-color:#0000}.activity-marker{border-radius:50%;height:.52rem;position:absolute;top:.72rem;left:-.29rem;border:2px solid var(--surface-muted)!important;background:var(--accent)!important;width:.52rem!important;padding:0!important}.activity-item>div{gap:.1rem;min-width:0;display:grid}.activity-kind{color:var(--text-soft);letter-spacing:.06em;text-transform:uppercase;font-size:.7rem;font-weight:650;background:0 0!important;border:0!important;width:auto!important;padding:0!important}.activity-item a,.activity-item div>span:not(.activity-kind){background:0 0;border:0;width:-moz-fit-content;width:fit-content;max-width:100%;padding:0}.activity-item small{color:var(--text-soft);overflow-wrap:anywhere}.activity-status{font-size:.72rem}.activity-active .activity-marker{animation:1.35s ease-in-out infinite streaming-pulse}.activity-completed .activity-marker{background:#4daf76!important}.activity-failed .activity-marker{background:#d65345!important}.activity-image{border:1px solid var(--border);border-radius:var(--radius-sm);width:min(100%,32rem);height:auto;animation:.35s ease-out both image-reveal;display:block}.message-content a{color:var(--accent-strong)}.message-user .message-content a{color:inherit}.katex-display{max-width:100%;overflow:auto hidden}.center-state,.empty-state{color:var(--text-soft);text-align:center;margin:10vh auto}.empty-state{max-width:32rem}.empty-state>span{color:var(--gold);font-size:2rem}.empty-state h2{margin:.5rem 0}.empty-state p{margin:0}.typing-dots{justify-content:center;align-items:center;gap:.3rem;min-width:2.8rem;display:inline-flex}.typing-dots i{background:var(--accent);border-radius:50%;width:.38rem;height:.38rem;animation:1.1s ease-in-out infinite bounce}.typing-dots i:nth-child(2){animation-delay:.14s}.typing-dots i:nth-child(3){animation-delay:.28s}@keyframes bounce{0%,60%,to{opacity:.45;transform:translateY(0)}30%{opacity:1;transform:translateY(-.3rem)}}@keyframes message-arrive{0%{opacity:0;transform:translateY(.45rem)scale(.99)}to{opacity:1;transform:none}}@keyframes activity-reveal{0%{opacity:0;transform:translateY(-.25rem)}to{opacity:1;transform:none}}@keyframes image-reveal{0%{opacity:0;transform:scale(.985)}to{opacity:1;transform:none}}@keyframes streaming-pulse{0%,to{opacity:.35;transform:scale(.75)}50%{opacity:1;transform:scale(1)}}@keyframes sync-pulse{0%,to{opacity:.5;transform:scale(.82)}50%{opacity:1;transform:scale(1)}}.notice{border-radius:var(--radius-sm);margin:0;padding:.65rem .8rem}.notice-error{border:1px solid color-mix(in srgb, #c43828 48%, var(--border));background:color-mix(in srgb, #c43828 10%, var(--surface));color:var(--heading)}.notice-row{border-top:1px solid var(--border);background:var(--surface-muted);color:var(--text-soft);justify-content:center;align-items:center;gap:.7rem;padding:.45rem 1rem;font-size:.88rem;display:flex}.notice-row button{border:1px solid var(--border);background:var(--surface-strong);cursor:pointer;border-radius:999px;padding:.2rem .6rem}.composer{padding:.8rem;padding-right:max(.8rem, env(safe-area-inset-right));padding-bottom:max(.8rem, env(safe-area-inset-bottom));padding-left:max(.8rem, env(safe-area-inset-left));border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.65rem;display:grid}.composer textarea{resize:none;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-strong);width:100%;min-height:3rem;max-height:9rem;color:var(--text);padding:.7rem .9rem;line-height:1.55;overflow-y:auto}.send-button{background:linear-gradient(145deg, var(--accent), var(--accent-strong));width:3rem;height:3rem;color:var(--on-accent);cursor:pointer;border:0;border-radius:50%;place-items:center;font-size:1.35rem;font-weight:700;transition:transform .16s,box-shadow .16s;display:grid}.send-button:not(:disabled):hover{transform:translateY(-2px);box-shadow:0 .35rem .9rem #bd452540}.send-button:not(:disabled):active{transform:scale(.91)}.load-older-button{z-index:1;border:1px solid var(--border);background:var(--surface-muted);min-height:2.35rem;color:var(--text-soft);cursor:pointer;border-radius:999px;padding:.35rem .8rem;transition:background-color .16s;display:block;position:absolute;top:0;left:50%;transform:translate(-50%)}.load-older-button:not(:disabled):hover{background:var(--surface-strong);transform:translate(-50%,-1px)}.jump-latest-button{right:max(1rem, env(safe-area-inset-right));z-index:2;border:1px solid var(--border);background:var(--surface-strong);min-height:2.55rem;color:var(--accent-strong);cursor:pointer;border-radius:999px;align-items:center;gap:.4rem;padding:.4rem .8rem;animation:.2s ease-out both jump-button-in;display:flex;position:absolute;bottom:1rem;box-shadow:0 .4rem 1.4rem #4b2a1e2e}.jump-latest-button span{font-size:1.1rem}@keyframes jump-button-in{0%{opacity:0;transform:translateY(.5rem)scale(.96)}to{opacity:1;transform:none}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}@media (max-width:720px){.app-frame{width:100%;padding:env(safe-area-inset-top) 0 0;gap:0}.app-header{min-height:3.8rem;padding-right:max(.9rem, env(safe-area-inset-right));padding-left:max(.9rem, env(safe-area-inset-left));box-shadow:none;border-width:0 0 1px;border-radius:0}.brand small,.user-chip{display:none}.brand-symbol{width:2.45rem}.app-header nav{gap:.1rem}.app-header nav button{min-height:2.3rem;padding:.35rem .5rem;font-size:.82rem}.login-shell{padding:1rem}.conversation-card{box-shadow:none;border:0;border-radius:0}.message{max-width:90%}.conversation-title-row{padding-top:.7rem;padding-right:max(1.25rem, env(safe-area-inset-right));padding-left:max(1.25rem, env(safe-area-inset-left))}.message-list{padding-right:max(1rem, env(safe-area-inset-right));padding-left:max(1rem, env(safe-area-inset-left))}.composer textarea{font-size:16px}}@supports not (height:100dvh){.app-frame{height:100vh}}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.app-header,.conversation-card,.login-card{background:var(--surface-strong)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
