html,body{height:100%}body{display:flex;flex-direction:column;overflow:hidden}[hidden]{display:none!important}.hud-grid{background-image:none}.hud-grid:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:var(--grid-line);-webkit-mask-image:var(--grid-mark);mask-image:var(--grid-mark);-webkit-mask-size:44px 44px;mask-size:44px 44px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);height:var(--header-h);padding:0 var(--space-6);flex:none;border-bottom:1px solid var(--border);background:var(--surface-1);position:relative;z-index:5}.brand{display:flex;align-items:center;gap:var(--space-3)}.brand-mark{width:36px;height:36px;flex:none;border-radius:var(--radius-md);background:var(--surface-sunken);border:1px solid var(--border-strong);display:flex;align-items:center;justify-content:center}.brand-name{font-family:var(--font-display);font-weight:600;font-size:1.45rem;letter-spacing:-.01em;line-height:1}.brand-sub{font-size:var(--text-2xs);color:var(--text-faint);font-family:var(--font-mono);letter-spacing:var(--tracking-wide);text-transform:uppercase;margin-top:3px;white-space:nowrap}.switch-label{white-space:nowrap}.topbar-right{display:flex;align-items:center;gap:var(--space-3)}.reply-notice{display:flex;align-items:center;justify-content:center;gap:6px;flex:1;min-width:0;padding:0 var(--space-4);font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reply-notice .icon{width:13px;height:13px;flex:none;color:var(--sky)}.icon-btn{width:38px;height:38px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-1);color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--dur) var(--ease-out)}.icon-btn:hover{background:var(--surface-2);color:var(--text);border-color:var(--border-strong)}.divider-v{width:1px;height:26px;background:var(--border)}.chat{flex:1;min-height:0;display:flex;flex-direction:column;position:relative}.convo{flex:1;min-height:0;overflow-y:auto}.convo-inner{max-width:var(--container-chat);margin:0 auto;padding:var(--space-8) var(--space-6) var(--space-6);display:flex;flex-direction:column;gap:var(--space-6);width:100%}.messages{display:flex;flex-direction:column;gap:var(--space-6)}.day-sep{display:flex;align-items:center;gap:var(--space-4);margin:var(--space-1) 0}.day-sep:before,.day-sep:after{content:"";height:1px;background:var(--hairline);flex:1}.day-sep span{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--text-faint);letter-spacing:var(--tracking-wide);text-transform:uppercase}.intro{text-align:center;padding:var(--space-4) 0 var(--space-2);display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.intro .avatar{width:72px;height:72px}.intro h1{font-family:var(--font-display);font-weight:500;font-size:var(--text-2xl);line-height:1.1;letter-spacing:-.02em;margin:0;max-width:18ch}.intro h1 em{font-style:italic;color:var(--indigo)}.intro p{margin:0;color:var(--text-muted);max-width:46ch;font-size:var(--text-md)}.suggest-row{display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:center;margin-top:var(--space-2)}.sys-note{text-align:center;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--warn-ink);background:var(--warn-soft);border:1px solid var(--warn-line);border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);margin:0 auto;max-width:60ch}.composer-dock{flex:none;padding:var(--space-4) var(--space-6) var(--space-6);background:linear-gradient(0deg,var(--surface-0) 55%,transparent)}.composer-wrap{max-width:var(--container-chat);margin:0 auto}.composer-hint{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--space-3);font-size:var(--text-xs);color:var(--text-faint);padding:0 var(--space-1)}.composer-hint .sep{width:3px;height:3px;border-radius:50%;background:var(--text-faint);opacity:.5}.hint-spacer{flex:1}.footer-links{display:inline-flex;align-items:center;gap:var(--space-3)}.footer-links a{color:var(--text-faint);text-decoration:none;border-bottom:1px solid var(--hairline)}.footer-links a:hover{color:var(--indigo-ink);border-bottom-color:var(--indigo-line)}.typing{display:inline-flex;align-items:center;gap:7px;color:var(--text-muted);font-size:var(--text-sm);padding:0 var(--space-1) var(--space-2)}.typing .dots span{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--role-avatar);margin-right:3px;animation:blink 1.2s infinite ease-in-out}.typing .dots span:nth-child(2){animation-delay:.2s}.typing .dots span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,60%,to{opacity:.25}30%{opacity:1}}.tour-overlay{position:fixed;inset:0;z-index:50;background:#0a0d188c}[data-theme=light] .tour-overlay{background:#1c213059}.tour-ring{position:fixed;border:2px solid var(--sky-strong);border-radius:var(--radius-md);box-shadow:0 0 0 4px var(--sky-soft),0 0 24px -4px var(--sky-strong);pointer-events:none;transition:all var(--dur-slow) var(--ease-in-out)}.tour-card{position:fixed;width:min(320px,calc(100vw - 32px));padding:var(--space-5);box-shadow:var(--shadow-lg);transition:top var(--dur-slow) var(--ease-in-out),left var(--dur-slow) var(--ease-in-out)}.tour-card h2{font-family:var(--font-display);font-weight:600;font-size:var(--text-lg);margin:var(--space-2) 0 var(--space-2)}.tour-card p{margin:0 0 var(--space-4);color:var(--text-muted);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.tour-actions{display:flex;justify-content:space-between;align-items:center}@media(max-width:720px){.topbar{flex-wrap:wrap;height:auto;min-height:var(--header-h);padding:var(--space-2) var(--space-4);row-gap:var(--space-2)}.topbar-right{flex-wrap:wrap;row-gap:var(--space-2)}.reply-notice{order:3;flex-basis:100%;white-space:normal;text-align:center;padding:2px 0 0}.name-field{max-width:150px}.name-field input{width:100%;min-width:0}.divider-v{display:none}.brand-sub{max-width:48vw;overflow:hidden;text-overflow:ellipsis}.convo-inner{padding:var(--space-5) var(--space-4) var(--space-4)}.composer-dock{padding:var(--space-3) var(--space-4) var(--space-4)}.composer-hint>span:not(.footer-links):not(.hint-spacer){display:none}.intro h1{font-size:var(--text-xl)}}
