:root{--bg:#0a0e17;--surface:#111726;--surface-2:#171f33;--border:#232d44;--border-strong:#31405f;--ink:#eaf0f9;--muted:#9aa8bf;--faint:#64718a;--accent:#6fa5ff;--accent-strong:#3d7bfd;--accent-ink:#071120;--accent-soft:rgba(111,165,255,0.12);--accent-glow:rgba(61,123,253,0.35);--good:#58c28e;--bad:#e07070;--sidebar-bg:rgba(8,11,19,0.6);--header-bg:rgba(10,14,23,0.8);--overlay:rgba(4,6,12,0.6);--cta-ink:#ffffff;--radius:12px;--radius-lg:18px;--font-display:"Shippori Mincho","Hiragino Mincho ProN",serif;--font-ui:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;--ease:cubic-bezier(0.22,1,0.36,1)}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--bg:#f4f6fa;--surface:#ffffff;--surface-2:#edf1f8;--border:#dce3ee;--border-strong:#c3cedf;--ink:#18202f;--muted:#5b6a82;--faint:#8a97ac;--accent:#2e5fd9;--accent-strong:#2450c2;--accent-ink:#ffffff;--accent-soft:rgba(46,95,217,0.1);--accent-glow:rgba(46,95,217,0.22);--good:#1f8a57;--bad:#c64b4b;--sidebar-bg:rgba(255,255,255,0.72);--header-bg:rgba(244,246,250,0.85);--overlay:rgba(23,32,48,0.35)}}:root[data-theme=light]{--bg:#f4f6fa;--surface:#ffffff;--surface-2:#edf1f8;--border:#dce3ee;--border-strong:#c3cedf;--ink:#18202f;--muted:#5b6a82;--faint:#8a97ac;--accent:#2e5fd9;--accent-strong:#2450c2;--accent-ink:#ffffff;--accent-soft:rgba(46,95,217,0.1);--accent-glow:rgba(46,95,217,0.22);--good:#1f8a57;--bad:#c64b4b;--sidebar-bg:rgba(255,255,255,0.72);--header-bg:rgba(244,246,250,0.85);--overlay:rgba(23,32,48,0.35)}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:var(--font-ui);font-size:15px;line-height:1.9;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}button{font-family:inherit}::selection{background:var(--accent-soft)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:8px;border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}::-webkit-scrollbar-track{background:transparent}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important}}.landing{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 24px;text-align:center;position:relative;overflow:hidden}.landing:before{content:"";position:absolute;top:22%;left:50%;transform:translateX(-50%);width:min(720px,90vw);height:420px;background:radial-gradient(ellipse at center,var(--accent-glow) 0,transparent 62%);opacity:.5;pointer-events:none}.landing>*{position:relative}.landing .brand{color:var(--ink);margin-bottom:56px}.landing h1{font-family:var(--font-display);font-weight:700;font-size:clamp(38px,8vw,68px);letter-spacing:.1em;line-height:1.3;margin:0 0 14px;text-wrap:balance}.landing .subtitle{color:var(--muted);font-size:14px;letter-spacing:.3em;text-indent:.3em;margin-bottom:48px}.landing .tagline{font-family:var(--font-display);color:var(--ink);font-size:16.5px;letter-spacing:.06em;line-height:2.4;margin:0 0 52px}.landing .cta{background:linear-gradient(180deg,var(--accent),var(--accent-strong));color:var(--cta-ink);border:none;border-radius:999px;padding:16px 64px;font-size:16px;font-weight:700;letter-spacing:.1em;cursor:pointer;box-shadow:0 0 0 1px rgba(255,255,255,.08) inset,0 8px 32px var(--accent-glow);transition:transform .15s var(--ease),box-shadow .2s var(--ease)}.landing .cta:hover{transform:translateY(-1px);box-shadow:0 0 0 1px rgba(255,255,255,.12) inset,0 12px 40px var(--accent-glow)}.landing .cta:active{transform:translateY(0)}.landing .cta:disabled{opacity:.6;cursor:wait;transform:none}.landing .disclaimer{margin-top:56px;max-width:520px;color:var(--faint);font-size:11.5px;line-height:2}.chat-root{display:flex;height:100vh;height:100dvh}.sidebar{width:264px;background:var(--sidebar-bg);border-right:1px solid var(--border);padding:18px 14px;overflow-y:auto;flex-shrink:0;display:flex;flex-direction:column;gap:4px;z-index:40}.sidebar .home-link{color:var(--ink);padding:8px 10px 18px;display:block}.sidebar .new-chat{background:var(--accent-soft);color:var(--accent);border:1px solid transparent;border-radius:var(--radius);padding:10px 14px;font-size:13px;font-weight:700;cursor:pointer;margin-bottom:14px;text-align:left;transition:border-color .15s var(--ease),background .15s var(--ease)}.sidebar .new-chat:hover{border-color:var(--accent)}.sidebar .section-label{font-size:10.5px;letter-spacing:.14em;color:var(--faint);padding:4px 10px 6px}.sidebar .conv{display:block;padding:9px 10px;border-radius:9px;color:var(--muted);font-size:12.5px;line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .12s var(--ease),color .12s var(--ease)}.sidebar .conv:hover{background:var(--surface);color:var(--ink)}.sidebar .conv.active{background:var(--surface-2);color:var(--ink)}.sidebar-backdrop{display:none}.chat-main{flex:1 1;display:flex;flex-direction:column;min-width:0}.chat-header{padding:14px 24px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;background:var(--header-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:relative;z-index:30}.chat-header .menu-btn{display:none;background:none;border:1px solid var(--border);color:var(--muted);border-radius:9px;width:34px;height:34px;font-size:16px;cursor:pointer;flex-shrink:0}.chat-header .name{font-family:var(--font-display);font-weight:700;font-size:16.5px;letter-spacing:.06em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-header .sim-badge{font-size:10.5px;color:var(--faint);border:1px solid var(--border);border-radius:999px;padding:3px 12px;white-space:nowrap;flex-shrink:0}.messages{flex:1 1;overflow-y:auto;padding:32px 24px 16px}.messages-inner{max-width:720px;margin:0 auto}.msg{margin-bottom:32px}.msg .role{font-size:11px;letter-spacing:.14em;font-weight:700;margin-bottom:8px;color:var(--faint);display:flex;align-items:center;gap:7px}.msg.assistant .role{color:var(--accent)}.msg.assistant .role:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent-glow)}.msg .body{white-space:pre-wrap;word-break:break-word;font-size:15px}.msg.user{display:flex;flex-direction:column;align-items:flex-end}.msg.user .role{margin-right:2px}.msg.user .body{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);border-top-right-radius:6px;padding:12px 18px;max-width:85%}.msg.assistant .body{color:var(--ink)}.md-h{display:inline-block;font-weight:700;font-size:15.5px;color:var(--accent);margin-top:8px}.msg .actions{margin-top:12px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.msg .actions button{background:none;border:1px solid var(--border);border-radius:999px;color:var(--muted);font-size:11.5px;padding:4px 14px;cursor:pointer;transition:color .12s var(--ease),border-color .12s var(--ease)}.msg .actions button:hover{color:var(--ink);border-color:var(--border-strong)}.msg .actions button.done{color:var(--good);border-color:var(--good);cursor:default}.web-sources{margin-top:12px;padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;align-items:baseline}.web-sources .ws-label{color:var(--faint);font-size:11px}.web-sources a{color:var(--muted);transition:color .12s var(--ease)}.web-sources a:hover{color:var(--accent)}.thinking{color:var(--faint);font-size:13px;display:flex;align-items:center;gap:10px;padding:4px 0 12px}.thinking .dots{display:flex;gap:4px}.thinking .dots span{width:5px;height:5px;border-radius:50%;background:var(--accent);animation:pulse 1.2s ease-in-out infinite}.thinking .dots span:nth-child(2){animation-delay:.18s}.thinking .dots span:nth-child(3){animation-delay:.36s}@keyframes pulse{0%,to{opacity:.2}50%{opacity:1}}.empty-state{padding:8vh 0 24px;text-align:center}.empty-state .es-name{font-family:var(--font-display);font-size:26px;font-weight:700;letter-spacing:.08em;margin-bottom:6px}.empty-state .es-sub{color:var(--faint);font-size:12.5px;letter-spacing:.1em;margin-bottom:40px}.empty-state .es-hint{color:var(--muted);font-size:13px;margin-bottom:14px}.suggestions{display:flex;flex-direction:column;gap:10px;max-width:480px;margin:0 auto}.suggestions button{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--muted);font-size:13.5px;line-height:1.7;padding:13px 18px;cursor:pointer;text-align:left;transition:border-color .15s var(--ease),color .15s var(--ease),transform .15s var(--ease)}.suggestions button:hover{border-color:var(--accent);color:var(--ink);transform:translateY(-1px)}.composer{padding:8px 24px 10px}.composer-inner{max-width:720px;margin:0 auto}.composer form{display:flex;gap:10px;align-items:flex-end;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:10px 10px 10px 18px;transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}.composer form:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.composer textarea{flex:1 1;resize:none;background:none;border:none;color:var(--ink);font-family:inherit;font-size:14.5px;line-height:1.75;padding:6px 0;max-height:200px;min-height:32px}.composer textarea:focus{outline:none}.composer textarea::placeholder{color:var(--faint)}.composer button.send{background:linear-gradient(180deg,var(--accent),var(--accent-strong));color:var(--cta-ink);border:none;border-radius:11px;font-weight:700;font-size:13.5px;padding:9px 22px;cursor:pointer;flex-shrink:0;transition:opacity .15s var(--ease),transform .1s var(--ease)}.composer button.send:hover{opacity:.92}.composer button.send:active{transform:scale(.98)}.composer button.send:disabled{opacity:.35;cursor:not-allowed;transform:none}.composer .foot{text-align:center;color:var(--faint);font-size:10px;padding:8px 0 2px;line-height:1.7}.why-overlay{position:fixed;inset:0;background:var(--overlay);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;justify-content:flex-end;z-index:50}.why-panel{width:min(500px,94vw);background:var(--surface);border-left:1px solid var(--border);height:100%;overflow-y:auto;padding:24px 26px 32px;animation:slide-in .28s var(--ease)}@keyframes slide-in{0%{transform:translateX(24px);opacity:0}to{transform:translateX(0);opacity:1}}.why-panel .panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:4px}.why-panel h2{font-family:var(--font-display);font-size:18px;font-weight:700;letter-spacing:.04em;margin:0}.why-panel .close-x{background:none;border:1px solid var(--border);color:var(--muted);border-radius:9px;width:32px;height:32px;font-size:14px;cursor:pointer;flex-shrink:0;transition:color .12s var(--ease),border-color .12s var(--ease)}.why-panel .close-x:hover{color:var(--ink);border-color:var(--border-strong)}.why-panel .sub{color:var(--faint);font-size:12px;margin-bottom:22px}.why-panel h3{font-size:11.5px;letter-spacing:.14em;color:var(--accent);margin:26px 0 10px;text-transform:uppercase}.why-panel .field{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:11px 15px;font-size:13px;margin-bottom:8px;line-height:1.8}.why-panel .field .k{color:var(--faint);font-size:11px;margin-bottom:3px}.why-panel .case-card{border:1px solid var(--border);border-radius:10px;padding:13px 15px;margin-bottom:10px;font-size:13px;line-height:1.8}.why-panel .case-card .cid{color:var(--faint);font-size:11px}.why-panel .case-card .lesson{color:var(--muted);margin-top:4px}.why-panel .case-card .src{margin-top:6px;font-size:12px}.error-note{color:var(--bad);font-size:13px}@media (max-width:840px){.sidebar{position:fixed;inset:0 auto 0 0;transform:translateX(-100%);transition:transform .25s var(--ease);background:var(--bg);width:280px;box-shadow:8px 0 40px rgba(0,0,0,.5)}.sidebar.open{transform:translateX(0)}.sidebar-backdrop.open{display:block;position:fixed;inset:0;background:var(--overlay);z-index:35}.chat-header{padding:12px 16px}.chat-header .menu-btn{display:block}.chat-header .sim-badge{display:none}.messages{padding:24px 16px 12px}.composer{padding:6px 12px 8px}.msg.user .body{max-width:92%}}.theme-toggle{background:none;border:1px solid var(--border);color:var(--muted);border-radius:999px;width:34px;height:34px;font-size:15px;line-height:1;cursor:pointer;flex-shrink:0;transition:color .12s var(--ease),border-color .12s var(--ease)}.theme-toggle:hover{color:var(--ink);border-color:var(--border-strong)}.header-spacer{flex:1 1}.landing-toggle{position:absolute;top:20px;right:20px;z-index:10}.logo-lockup{display:inline-flex;align-items:center;gap:12px;line-height:1}.logo-text{font-family:var(--font-display);font-weight:700;font-size:.95em;letter-spacing:.32em;color:var(--ink);transform:translateY(.05em)}.sidebar .home-link .logo-text{font-size:13px}.landing .brand .logo-text{font-size:15px}.app-version{margin-top:auto;padding:14px 10px 4px;color:var(--faint);font-size:10.5px;font-family:var(--font-ui);letter-spacing:.08em}.landing .app-version{margin-top:18px;padding:0}.update-toast{position:fixed;right:20px;bottom:20px;z-index:100;display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);padding:12px 16px;font-size:13px;color:var(--ink);box-shadow:0 12px 40px rgba(0,0,0,.35);animation:toast-in .3s var(--ease)}@keyframes toast-in{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.update-toast button{background:linear-gradient(180deg,var(--accent),var(--accent-strong));color:var(--cta-ink);border:none;border-radius:9px;font-weight:700;font-size:12.5px;padding:7px 18px;cursor:pointer}.update-toast button:hover{opacity:.92}