:root{--bg:#f4f4f2;--surface:#fff;--text:#1d1d1f;--sub:#6b6b70;--line:#e2e2df;--accent:#2f6fdf;--accent-text:#fff;--user:#2f6fdf;--user-text:#fff;--bot:#fff;--rec:#d93a3a;--danger:#c0392b;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#141416;--surface:#1e1e21;--text:#f2f2f4;--sub:#a0a0a8;--line:#333338;--accent:#5b8ef0;--accent-text:#fff;--user:#3d6fd6;--user-text:#fff;--bot:#26262a;--rec:#f05a5a;--danger:#ef6b5b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;font-family:-apple-system,Hiragino Sans,Noto Sans JP,sans-serif}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.5}.app{flex-direction:column;max-width:720px;height:100dvh;margin:0 auto;display:flex}.top{padding:calc(env(safe-area-inset-top) + 8px) 16px 8px;border-bottom:1px solid var(--line);background:var(--bg);justify-content:space-between;align-items:center;display:flex}.title{align-items:center;gap:8px;display:flex}.title h1{margin:0;font-size:20px}.badge{color:var(--sub);border:1px solid var(--line);border-radius:999px;padding:2px 8px;font-size:11px}.icon-btn{background:0 0;border:0;padding:6px;font-size:22px}.chat{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:10px;padding:12px 16px;display:flex;overflow-y:auto}.empty{text-align:center;color:var(--sub);margin:auto;line-height:1.7}.empty .sub{font-size:13px}.date{color:var(--sub);align-self:center;margin:6px 0 2px;font-size:12px}.row{flex-direction:column;max-width:85%;display:flex}.row.user{align-self:flex-end;align-items:flex-end}.row.assistant{align-self:flex-start;align-items:flex-start}.bubble{white-space:pre-wrap;word-break:break-word;border-radius:18px;padding:10px 14px;font-size:17px;line-height:1.55}.user .bubble{background:var(--user);color:var(--user-text);border-bottom-right-radius:6px}.assistant .bubble{background:var(--bot);border:1px solid var(--line);border-bottom-left-radius:6px}.bubble.interim{opacity:.6}.meta{color:var(--sub);align-items:center;gap:6px;margin-top:3px;padding:0 4px;font-size:11px;display:flex}.replay{background:0 0;border:0;padding:2px 4px;font-size:15px}.bottom{border-top:1px solid var(--line);background:var(--bg);padding:8px 16px calc(env(safe-area-inset-bottom) + 10px);gap:8px;display:grid}.status{text-align:center;color:var(--sub);min-height:1.4em;margin:0;font-size:13px}.mic{background:var(--accent);width:100%;color:var(--accent-text);touch-action:manipulation;border:0;border-radius:999px;padding:18px;font-size:19px;font-weight:700}.mic.listening{background:var(--rec);animation:1.2s infinite pulse}.mic.speaking{background:var(--surface);color:var(--text);border:1px solid var(--line)}@keyframes pulse{50%{opacity:.75}}.type{gap:8px;display:flex}.type input{border:1px solid var(--line);background:var(--surface);min-width:0;color:var(--text);border-radius:12px;flex:1;padding:10px 12px;font-size:16px}.type button{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:0 16px;font-size:15px}.sheet-bg{z-index:10;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:720px;padding:18px 16px calc(env(safe-area-inset-bottom) + 16px);border-radius:18px 18px 0 0;gap:14px;max-height:85dvh;display:grid;overflow-y:auto}.sheet h2{margin:0;font-size:18px}.switch-row{justify-content:space-between;align-items:center;gap:12px;font-size:16px;display:flex}.switch-row small{color:var(--sub);display:block}.switch-row input{width:22px;height:22px}.info h3{margin:0 0 4px;font-size:14px}.info p{color:var(--sub);margin:0;font-size:13px;line-height:1.6}.danger,.close{border:1px solid var(--line);background:var(--bg);border-radius:12px;padding:12px;font-size:15px}.danger{color:var(--danger)}.link{text-align:center;color:var(--accent);font-size:14px}.log pre{color:var(--sub);white-space:pre-wrap;background:var(--bg);border-radius:10px;max-height:40dvh;margin:0 0 8px;padding:10px;font-size:12px;line-height:1.5;overflow-y:auto}.wait{gap:8px;font-size:16px;display:grid}.wait small{color:var(--sub);font-size:12px;line-height:1.5}.choices{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.choices button{border:1px solid var(--line);background:var(--bg);border-radius:10px;padding:10px 0;font-size:15px}.choices button.on{border-color:var(--accent);color:var(--accent);font-weight:700}
