:root{--color-bg:#f5f8fc;--color-bg-alt:#eef3f9;--color-surface:#fff;--color-surface-hover:#f0f4fa;--color-border:#dde4ee;--color-border-light:#e8edf4;--color-text:#1a2744;--color-text-secondary:#5a6d8c;--color-text-muted:#8a9bb5;--color-primary:#3b82f6;--color-primary-hover:#2563eb;--color-primary-light:#dbeafe;--color-accent:#06b6d4;--color-accent-light:#cffafe;--shadow-sm:0 1px 2px #1a27440a;--shadow-md:0 4px 12px #1a27440f;--shadow-lg:0 8px 24px #1a274414;--font-sans:"Inter", "Noto Sans TC", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px}#ship{--scene-accent:var(--color-primary);--scene-accent-light:var(--color-primary-light);--scene-accent-hover:var(--color-primary-hover);--scene-accent-text:#fff}.scene-bedroom{--scene-accent:#e11d48;--scene-accent-light:#ffe4e6;--scene-accent-hover:#be123c;--scene-accent-text:#fff}.scene-chartroom{--scene-accent:#0d9488;--scene-accent-light:#ccfbf1;--scene-accent-hover:#0f766e;--scene-accent-text:#fff}.scene-captain{--scene-accent:#4f46e5;--scene-accent-light:#e0e7ff;--scene-accent-hover:#4338ca;--scene-accent-text:#fff}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100dvh;min-height:100dvh;overflow:hidden}body{font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-overflow-scrolling:touch;touch-action:manipulation}#app{height:100dvh}.splash{height:100dvh;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);flex-direction:column;justify-content:center;align-items:center;gap:8px;animation:.6s ease-out fadeIn;display:flex}.splash-title{color:var(--color-primary);letter-spacing:.04em;font-size:2.4rem;font-weight:700}.splash-subtitle{color:var(--color-text-secondary);font-size:1rem}.splash-loading{color:var(--color-text-muted);margin-top:24px;font-size:.85rem;animation:1.6s ease-in-out infinite pulse}.shell{height:100dvh;padding-top:env(safe-area-inset-top,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);flex-direction:column;display:flex}.scene-view{flex:1;overflow:hidden}.tab-bar{height:60px;padding:0 4px;padding-bottom:env(safe-area-inset-bottom,0px);background:var(--color-surface);border-top:1px solid var(--color-border);flex-shrink:0;justify-content:space-around;align-items:center;display:flex;box-shadow:0 -2px 8px #1a274408}.tab{color:var(--color-text-muted);border-radius:var(--radius-md);flex-direction:column;justify-content:center;align-items:center;gap:1px;min-width:52px;padding:4px 8px;font-size:.72rem;text-decoration:none;transition:color .2s,background .2s;display:flex}.tab:hover,.tab--active{color:var(--color-primary);background:var(--color-primary-light)}.tab-icon{font-size:1.25rem;line-height:1.2}.tab-label{font-size:.68rem;line-height:1.2}.scene-view{position:relative}.view{flex-direction:column;max-width:720px;height:100%;min-height:0;margin:0 auto;display:flex;overflow:hidden}.scene-header{border-bottom:1px solid var(--color-border-light);background:var(--color-surface);flex-shrink:0;padding:16px 20px 12px}.scene-header-inner{align-items:center;gap:10px;display:flex}.scene-header-icon{font-size:1.6rem;line-height:1}.scene-header-text h2{color:var(--color-text);font-size:1.15rem;font-weight:650;line-height:1.3}.scene-header-text p{color:var(--color-text-muted);font-size:.78rem;line-height:1.3}.scene-header-badge{color:var(--scene-accent);background:var(--scene-accent-light);border-radius:20px;align-items:center;gap:4px;margin-left:auto;padding:4px 10px;font-size:.7rem;font-weight:550;display:flex}.message-list{scroll-behavior:smooth;flex-direction:column;flex:1;gap:12px;padding:16px 20px;display:flex;overflow-y:auto}.message-list::-webkit-scrollbar{width:5px}.message-list::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:10px}.message{flex-direction:column;max-width:82%;animation:.25s ease-out msgIn;display:flex}.message--user{align-self:flex-end;align-items:flex-end}.message--ai{align-self:flex-start;align-items:flex-start}.message-bubble{border-radius:var(--radius-lg);word-break:break-word;white-space:pre-wrap;padding:10px 15px;font-size:.92rem;line-height:1.55}.message--user .message-bubble{background:var(--scene-accent);color:#fff;border-bottom-right-radius:var(--radius-sm)}.message--ai .message-bubble{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border-light);border-bottom-left-radius:var(--radius-sm);box-shadow:var(--shadow-sm)}.message-time{color:var(--color-text-muted);margin-top:3px;padding:0 4px;font-size:.68rem}.input-bar{background:var(--color-surface);border-top:1px solid var(--color-border);flex-shrink:0;align-items:center;gap:10px;padding:10px 16px;display:flex}.input-bar input{border:1px solid var(--color-border);border-radius:var(--radius-xl);font-size:.9rem;font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg-alt);outline:none;flex:1;padding:10px 14px;transition:border-color .2s,box-shadow .2s}.input-bar input:focus{border-color:var(--scene-accent);box-shadow:0 0 0 3px var(--scene-accent-light)}.input-bar input::placeholder{color:var(--color-text-muted)}.input-send{background:var(--scene-accent);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.1rem;transition:background .2s,transform .15s;display:flex}.input-send:hover{background:var(--scene-accent-hover)}.input-send:active{transform:scale(.93)}.message-empty{color:var(--color-text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:6px;display:flex}.message-empty-icon{opacity:.5;margin-bottom:4px;font-size:2.8rem}.message-empty-text{font-size:.88rem}.message-empty-hint{color:var(--color-text-muted);opacity:.7;font-size:.75rem}.topic-bar{background:var(--scene-accent-light);border-radius:var(--radius-md);color:var(--scene-accent);flex-shrink:0;align-items:center;gap:8px;margin:0 20px 4px;padding:8px 16px;font-size:.8rem;font-weight:550;display:flex}.topic-bar-icon{font-size:1rem}.private-strip{color:var(--scene-accent);opacity:.7;flex-shrink:0;align-items:center;gap:6px;margin:0 20px 4px;padding:6px 16px;font-size:.72rem;display:flex}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}@keyframes msgIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width<=480px){.view{max-width:100%}.scene-header{padding:12px 14px 10px}.message-list{gap:10px;padding:12px 14px}.message{max-width:90%}.input-bar{gap:8px;padding:8px 12px}.input-bar input{padding:9px 12px;font-size:.85rem}.tab-bar{height:50px;padding-bottom:calc(env(safe-area-inset-bottom,0px) + 0px)}.tab{padding:4px 8px;font-size:.66rem}.tab-icon{font-size:1.2rem}}@media (width<=430px) and (height>=800px){.shell{height:100dvh}.tab-bar{height:48px;padding-bottom:calc(env(safe-area-inset-bottom,0px) + 4px)}.tab{gap:1px;padding:3px 6px;font-size:.64rem}.tab-icon{font-size:1.15rem}.scene-header{padding:10px 12px 8px}.scene-header-text h2{font-size:1.05rem}.scene-header-text p{font-size:.72rem}.chat-container{padding:0 12px 4px}.chat-input{margin:0 0 8px;padding:8px 10px}}.chat-container{flex-direction:column;flex:1;gap:10px;min-height:0;padding:0 20px 8px;display:flex;overflow:hidden}.chat-messages{scroll-behavior:smooth;flex-direction:column;flex:1;gap:10px;padding:8px 0 4px;display:flex;overflow-y:auto}.chat-messages::-webkit-scrollbar{width:5px}.chat-messages::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:10px}.chat-empty{color:var(--color-text-muted);text-align:center;flex:1;justify-content:center;align-items:center;padding:40px 20px;font-size:.92rem;display:flex}.chat-input{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-shrink:0;margin:0 0 14px;padding:10px 12px}.chat-input__scene-badge{background:var(--scene-accent-light);color:var(--scene-accent);border-radius:20px;align-items:center;gap:5px;margin-bottom:8px;padding:3px 10px;font-size:.7rem;font-weight:600;display:inline-flex}.scene-badge__icon{font-size:.85rem}.chat-input__row{align-items:flex-end;gap:8px;display:flex}.chat-input__field{resize:none;font-family:var(--font-sans);color:var(--color-text);background:0 0;border:none;outline:none;flex:1;max-height:160px;font-size:.93rem;line-height:1.5}.chat-input__field::placeholder{color:var(--color-text-muted)}.chat-input__field:disabled{opacity:.5;cursor:not-allowed}.chat-input__send{border-radius:var(--radius-md);background:var(--scene-accent);color:#fff;cursor:pointer;border:none;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.1rem;transition:background .2s,transform .15s;display:flex}.chat-input__send:hover:not(:disabled){background:var(--scene-accent-hover);transform:scale(1.05)}.chat-input__send:disabled{background:var(--color-border);cursor:not-allowed}.chat-input__send-spinner{border:2px solid #0000;border-top-color:var(--color-text-muted);border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin}.chat-msg{padding:2px 0;animation:.25s ease-out msgIn}.chat-msg__role{color:var(--color-text-muted);margin-bottom:3px;padding-left:2px;font-size:.7rem;font-weight:600}.chat-msg--user .chat-msg__role{text-align:right;padding-left:0;padding-right:2px}.chat-msg__body{flex-direction:column;display:flex}.chat-msg--user .chat-msg__body{align-items:flex-end}.chat-msg__text{border-radius:var(--radius-lg);white-space:pre-wrap;word-break:break-word;max-width:82%;padding:10px 14px;font-size:.92rem;line-height:1.55}.chat-msg--user .chat-msg__text{background:var(--scene-accent);color:#fff;border-bottom-right-radius:var(--radius-sm)}.chat-msg--assistant .chat-msg__text{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border-light);border-bottom-left-radius:var(--radius-sm);box-shadow:var(--shadow-sm)}.chat-msg__pending{color:var(--color-text-muted);align-items:center;gap:6px;padding:6px 14px;font-size:.8rem;display:flex}.pending-dot{color:var(--scene-accent);animation:1.2s ease-in-out infinite pulse}.typewriter-cursor{color:var(--scene-accent);opacity:1;font-weight:700;display:inline}.typewriter-cursor--blink{animation:.8s step-end infinite cursorBlink}@keyframes cursorBlink{0%,to{opacity:1}50%{opacity:0}}.chat-msg__thinking{margin-bottom:6px}.thinking-toggle{background:var(--color-bg-alt);border:1px solid var(--color-border-light);color:var(--color-text-secondary);cursor:pointer;font-size:.74rem;font-family:var(--font-sans);border-radius:20px;align-items:center;gap:6px;padding:4px 12px;transition:background .2s,color .2s;display:inline-flex}.thinking-toggle:hover{background:var(--scene-accent-light);color:var(--scene-accent)}.thinking-toggle__icon{font-size:.6rem}.thinking-blocks{flex-direction:column;gap:6px;margin-top:8px;display:flex}.thinking-block{background:var(--color-bg-alt);border-left:3px solid var(--color-accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--color-text-secondary);white-space:pre-wrap;padding:10px 14px;font-size:.8rem;font-style:italic;line-height:1.5}.chat-msg__tools{flex-direction:column;gap:6px;margin-bottom:6px;display:flex}.tool-card{background:var(--color-bg-alt);border:1px solid var(--color-border-light);border-radius:var(--radius-md);transition:border-color .2s;overflow:hidden}.tool-card--open{border-color:var(--color-accent)}.tool-card--running{border-color:var(--scene-accent)}.tool-card__header{cursor:pointer;width:100%;font-family:var(--font-sans);color:var(--color-text);background:0 0;border:none;align-items:center;gap:8px;padding:8px 12px;font-size:.8rem;transition:background .15s;display:flex}.tool-card__header:hover{background:var(--color-surface-hover)}.tool-card__icon{font-size:.9rem}.tool-card__name{text-align:left;font-weight:600;font-family:var(--font-mono);color:var(--color-text-secondary);flex:1;font-size:.76rem}.tool-card__spinner{border:2px solid var(--color-border);border-top-color:var(--scene-accent);border-radius:50%;width:12px;height:12px;animation:.8s linear infinite spin}.tool-card__check{color:#22c55e;font-size:.85rem}.tool-card__chevron{color:var(--color-text-muted);font-size:.6rem}.tool-card__body{padding:0 12px 10px}.tool-card__section{margin-top:8px}.tool-card__section-title{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:4px;font-size:.66rem;font-weight:600}.tool-card__json{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-sm);font-family:var(--font-mono);color:var(--color-text-secondary);white-space:pre-wrap;word-break:break-all;max-height:200px;padding:8px 10px;font-size:.7rem;line-height:1.5;overflow:auto}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (width<=480px){.chat-container{padding:0 14px 6px}.chat-msg__text{max-width:90%}.chat-input{margin:0 0 10px;padding:8px 10px}.chat-input__field{font-size:.87rem}}
