*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #ffffff;--sidebar-bg: #f7f7f8;--border: #e5e5e5;--text: #1a1a1a;--text-sub: #6b6b6b;--user-bubble: #f0f0f0;--accent: #1a1a1a}html,body,#root{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Hiragino Kaku Gothic ProN,Noto Sans JP,Meiryo,sans-serif;color:var(--text);background:var(--bg);font-size:15px;line-height:1.7}.splash{height:100dvh;display:flex;align-items:center;justify-content:center;color:var(--text-sub)}.login-view{height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--sidebar-bg)}.login-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:40px 36px;width:min(360px,90vw);display:flex;flex-direction:column;gap:12px;text-align:center}.login-card h1{font-size:20px}.login-card p{color:var(--text-sub);font-size:13px}.login-card input{border:1px solid var(--border);border-radius:10px;padding:10px 12px;font-size:15px}.login-card button{background:var(--accent);color:#fff;border:none;border-radius:10px;padding:10px;font-size:15px;cursor:pointer}.login-card button:disabled{opacity:.6}.login-error{color:#d33}.login-version{color:var(--text-sub);font-size:11px;line-height:1;opacity:.7}.lang-switch{display:flex;align-items:center;justify-content:center;gap:6px;color:var(--text-sub);font-size:12.5px}.lang-switch button{border:none;background:none;color:var(--text-sub);cursor:pointer;font-size:12.5px;padding:2px 4px}.lang-switch button.active{color:var(--text);font-weight:600}.app{display:flex;height:100dvh}.sidebar{width:260px;background:var(--sidebar-bg);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:12px;gap:12px;flex-shrink:0}.new-chat{border:1px solid var(--border);background:#fff;border-radius:10px;padding:10px;font-size:14px;cursor:pointer;text-align:left}.new-chat:hover{background:#efefef}.conv-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.conv-item{display:flex;align-items:center;border-radius:8px;font-size:13.5px}.conv-item:hover{background:#ececec}.conv-item.active{background:#e6e6e6}.conv-item .conv-name{flex:1;padding:8px 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.conv-item .conv-mode{margin-right:6px;font-size:12px}.conv-item .conv-del{border:none;background:none;color:var(--text-sub);cursor:pointer;padding:8px;visibility:hidden}.conv-item:hover .conv-del{visibility:visible}.sidebar-footer{border-top:1px solid var(--border);padding-top:10px;display:flex;flex-direction:column;gap:8px;font-size:13px}.sidebar-footer-row{display:flex;align-items:center;justify-content:space-between}.sidebar-footer .user-name{font-weight:600}.sidebar-footer .logout{border:none;background:none;color:var(--text-sub);cursor:pointer;font-size:12.5px}.sidebar-footer .logout:hover{color:var(--text)}.scrim{display:none}.main{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--border)}.conv-title{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon-btn{border:none;background:none;font-size:18px;cursor:pointer;display:none}.mode-badge{margin-left:auto;font-size:11.5px;border:1px solid var(--border);border-radius:999px;padding:2px 10px;color:var(--text-sub);white-space:nowrap;flex-shrink:0}.mode-picker{display:flex;gap:12px;margin-top:10px;flex-wrap:wrap;justify-content:center}.mode-card{border:1px solid var(--border);border-radius:14px;padding:14px 18px;cursor:pointer;background:#fff;text-align:left;width:210px;display:flex;flex-direction:column;gap:4px;font:inherit}.mode-card:hover{background:#fafafa}.mode-card.active{border-color:var(--text);box-shadow:0 0 0 1px var(--text)}.mode-card .mode-name{font-weight:600;font-size:14px;color:var(--text)}.mode-card .mode-desc{font-size:12px;color:var(--text-sub)}.messages{flex:1;overflow-y:auto;padding:24px 0}.empty-state{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;color:var(--text-sub);padding:0 24px}.empty-state h2{color:var(--text);font-size:22px}.msg{max-width:760px;margin:0 auto 20px;padding:0 20px;display:flex}.msg.user{justify-content:flex-end}.msg .bubble{word-break:break-word}.msg.user .bubble{background:var(--user-bubble);border-radius:18px;padding:9px 16px;max-width:80%;white-space:pre-wrap}.msg.assistant .bubble{background:var(--sidebar-bg);border:1px solid var(--border);border-radius:18px;padding:10px 16px;max-width:88%}.markdown pre{background:#f6f6f6;border:1px solid var(--border);border-radius:10px;padding:12px;overflow-x:auto;font-size:13px;margin:8px 0}.markdown code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.markdown p{margin:6px 0}.markdown ul,.markdown ol{margin:6px 0;padding-left:22px}.markdown table{border-collapse:collapse;margin:8px 0;display:block;overflow-x:auto}.markdown th,.markdown td{border:1px solid var(--border);padding:6px 10px;font-size:13.5px}.markdown blockquote{border-left:3px solid var(--border);padding-left:12px;color:var(--text-sub);margin:8px 0}.markdown h1,.markdown h2,.markdown h3{font-size:15.5px;margin:12px 0 4px}.typing:after{content:"…";animation:blink 1s infinite}@keyframes blink{50%{opacity:.3}}.composer-wrap{padding:4px 20px 14px}.composer{max-width:760px;margin:0 auto;display:flex;align-items:flex-end;gap:8px;border:1px solid var(--border);border-radius:24px;padding:8px 8px 8px 18px;box-shadow:0 2px 12px #0000000a;background:#fff}.composer textarea{flex:1;border:none;outline:none;resize:none;font:inherit;line-height:26px;padding:5px 0;max-height:180px;background:transparent}.composer button{width:36px;height:36px;border-radius:50%;border:none;background:var(--accent);color:#fff;font-size:17px;cursor:pointer;flex-shrink:0}.composer button:disabled{background:#ccc;cursor:default}.composer-note{text-align:center;color:var(--text-sub);font-size:11.5px;margin-top:8px}@media (max-width: 720px){.sidebar{position:fixed;inset:0 auto 0 0;z-index:20;transform:translate(-100%);transition:transform .2s;width:280px}.sidebar.open{transform:translate(0)}.scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;background:#0000004d}.icon-btn{display:block}}
