:root{--bg:#f6f7f9;--surface:#fff;--text:#1c1f24;--muted:#5f6672;--border:#dde1e7;--accent:#2f6fde;--accent-text:#fff;--user-bubble:#2f6fde;--user-text:#fff;--bot-bubble:#fff;--danger:#c0352b;--danger-bg:#fdecea;--radius:12px;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Hiragino Sans,Noto Sans JP,Meiryo,sans-serif;line-height:1.6}@media (prefers-color-scheme:dark){:root{--bg:#14161a;--surface:#1d2026;--text:#e7e9ee;--muted:#9aa1ad;--border:#2e333c;--accent:#6b9cff;--accent-text:#0d1220;--user-bubble:#3a6fd8;--user-text:#fff;--bot-bubble:#1d2026;--danger:#ff8a80;--danger-bg:#3a1f1d}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg)}button,input,textarea{font:inherit;color:inherit}.muted{color:var(--muted)}.small{font-size:.85rem}.center{place-content:center;justify-items:center;gap:12px;min-height:100%;padding:16px;display:grid}.brand{margin:0;font-size:1.1rem;font-weight:700}button{cursor:pointer;border:1px solid #0000;border-radius:10px;padding:10px 16px}button:disabled{opacity:.55;cursor:not-allowed}button.primary{background:var(--accent);color:var(--accent-text);font-weight:600}button.secondary{background:var(--surface);border-color:var(--border)}button.link{color:var(--accent);background:0 0;border:none;padding:4px 6px;text-decoration:underline}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.auth{place-content:center;gap:12px;min-height:100%;padding:24px 16px;display:grid}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);gap:14px;width:min(420px,100vw - 32px);padding:28px 24px;display:grid}.auth-card .brand{font-size:1.4rem}.stack{gap:14px;display:grid}.field{gap:6px;font-size:.9rem;display:grid}.field input{border:1px solid var(--border);background:var(--bg);border-radius:10px;padding:10px 12px;font-size:1rem}.code-input{letter-spacing:.4em;text-align:center;font-size:1.4rem!important}.alert{background:var(--danger-bg);color:var(--danger);border-radius:10px;margin:0;padding:10px 12px;font-size:.9rem}.divider{color:var(--muted);align-items:center;gap:10px;font-size:.85rem;display:flex}.divider:before,.divider:after{content:"";border-top:1px solid var(--border);flex:1}.turnstile{min-height:65px}.footnote{text-align:center;font-size:.8rem}.app{grid-template-columns:260px 1fr;height:100%;display:grid}.sidebar{border-right:1px solid var(--border);background:var(--surface);grid-template-rows:auto 1fr auto;min-height:0;display:grid}.sidebar-top,.sidebar-bottom{padding:12px}.sidebar-bottom{border-top:1px solid var(--border)}.new-chat{width:100%}.conversation-list{padding:0 8px;overflow-y:auto}.pad{padding:8px}.conversation{border-radius:8px;align-items:center;display:flex}.conversation.active,.conversation:hover{background:var(--bg)}.conversation-open{text-align:left;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;flex:1;min-width:0;padding:8px 10px;font-size:.9rem;overflow:hidden}.conversation.active .conversation-open{font-weight:600}.conversation-delete{color:var(--muted);visibility:hidden;background:0 0;border:none;padding:4px 10px}.conversation:hover .conversation-delete,.conversation.active .conversation-delete,.conversation-delete:focus-visible{visibility:visible}.menu-button{padding:6px 10px;display:none}.backdrop{display:none}@media (max-width:760px){.app{grid-template-columns:1fr}.sidebar{z-index:20;width:min(300px,85vw);transition:transform .2s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.sidebar-open .sidebar{transform:none}.sidebar-open .backdrop{z-index:10;background:#00000059;display:block;position:fixed;inset:0}.menu-button{display:inline-block}.conversation-delete{visibility:visible}}@media (prefers-reduced-motion:reduce){.sidebar{transition:none}}.chat{grid-template-rows:auto 1fr auto;width:100%;max-width:900px;height:100%;min-height:0;margin:0 auto;display:grid}.center-text{text-align:center}.bubble-note{color:var(--muted);margin-top:6px;font-size:.85rem}.chat-header{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:12px 16px;display:flex}.spacer{flex:1}.user-email{text-overflow:ellipsis;white-space:nowrap;max-width:40vw;font-size:.85rem;overflow:hidden}.chat-log{flex-direction:column;gap:12px;padding:16px;display:flex;overflow-y:auto}.empty{text-align:center;margin:auto}.bubble{border-radius:var(--radius);white-space:pre-wrap;overflow-wrap:anywhere;max-width:85%;padding:10px 14px}.bubble.user{background:var(--user-bubble);color:var(--user-text);align-self:flex-end}.bubble.assistant{background:var(--bot-bubble);border:1px solid var(--border);align-self:flex-start}.bubble-error{color:var(--danger);margin-top:6px;font-size:.85rem}.cursor{vertical-align:text-bottom;opacity:.6;background:currentColor;width:.5em;height:1em;margin-left:2px;animation:1s steps(2,end) infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.cursor{animation:none}}.composer{border-top:1px solid var(--border);gap:8px;padding:12px 16px 16px;display:grid}.composer textarea{resize:vertical;border:1px solid var(--border);background:var(--surface);border-radius:10px;width:100%;min-height:52px;max-height:40vh;padding:10px 12px}.composer-actions{justify-content:flex-end;align-items:center;gap:12px;display:flex}.over{color:var(--danger)}.waiting{margin-top:4px;display:block}.retry{margin-left:8px;font-size:.85rem}
