@import "https://fonts.googleapis.com/css2?family=Source+Sans+3:wght@400;600;700&display=swap";:root{--brand-blue:#4a6da7;--brand-blue-dark:#3b5a8a;--brand-orange:#f18100;--brand-green:#28b04a;--text-primary:#333;--text-secondary:#666;--bg-white:#fff;--bg-light:#f5f5f5;--shadow:0 1px 3px #0000001a}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden}body{color:var(--text-primary);background:var(--bg-light);-webkit-font-smoothing:antialiased;font-family:"Source Sans 3",Helvetica Neue,Arial,sans-serif}.app{background:var(--bg-white);flex-direction:column;max-width:640px;height:100dvh;margin:0 auto;display:flex;box-shadow:0 0 40px #00000014}.header{background:var(--brand-blue);color:#fff;flex-shrink:0;padding:0}.header-inner{flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}a.logo,.logo{color:var(--brand-blue);letter-spacing:-.5px;background:#fff;border-radius:4px;flex-shrink:0;align-items:baseline;padding:6px 12px;font-weight:700;text-decoration:none;display:flex}.logo-jv{font-size:20px}.logo-dot{opacity:.7;font-size:13px;font-weight:600}.header-subtitle{opacity:.85;flex:1;font-size:14px;font-weight:400}a.btn-new-chat,.btn-new-chat{color:#fff;cursor:pointer;white-space:nowrap;background:#ffffff26;border:1px solid #ffffff4d;border-radius:4px;padding:6px 14px;font-family:inherit;font-size:13px;line-height:1.4;text-decoration:none;transition:background .2s}a.btn-new-chat:hover,.btn-new-chat:hover{background:#ffffff40}.chat-container{background:var(--bg-light);flex:1;padding:20px;overflow-y:auto}.welcome{justify-content:center;align-items:center;min-height:60vh;display:flex}.welcome-card{text-align:center;max-width:480px;box-shadow:var(--shadow);background:#fff;border-radius:8px;padding:0;overflow:hidden}.welcome-image{width:100%}.welcome-image img{width:100%;height:auto;display:block}.welcome-card h2,.welcome-card p,.welcome-card .welcome-hint,.welcome-card .btn-primary{margin-left:32px;margin-right:32px}.welcome-card h2{color:var(--text-primary);margin-top:24px;margin-bottom:12px;font-size:22px;font-weight:700}.welcome-card p{color:var(--text-secondary);margin-bottom:8px;font-size:15px;line-height:1.6}.welcome-hint{font-weight:600;color:var(--text-primary)!important;margin-top:16px!important;margin-bottom:20px!important}.btn-primary{background:var(--brand-blue);color:#fff;cursor:pointer;border:none;border-radius:4px;margin-bottom:32px;padding:12px 32px;font-family:inherit;font-size:15px;font-weight:600;transition:background .15s}.btn-primary:hover{background:var(--brand-blue-dark)}.messages{flex-direction:column;gap:16px;display:flex}.message{display:flex}.message-user{justify-content:flex-end}.message-assistant{justify-content:flex-start}.bubble-user{background:var(--brand-blue);color:#fff;border-radius:16px 16px 4px;max-width:70%;padding:10px 16px;font-size:15px;line-height:1.5}.witness-reply{max-width:100%;box-shadow:var(--shadow);border-left:3px solid var(--brand-blue);background:#fff;border-radius:8px;padding:16px}.witness-lines{flex-direction:column;gap:10px;display:flex}.witness-line{flex-direction:column;gap:2px;display:flex}.speaker-label{text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:700}.speaker-a .speaker-label{color:var(--brand-blue)}.speaker-b .speaker-label{color:var(--brand-orange)}.speaker-text{color:var(--text-primary);font-size:15px;line-height:1.5}.scene-image{background:var(--bg-light);border-radius:8px 8px 0 0;margin:-16px -16px 12px;overflow:hidden}.scene-image img{width:100%;height:auto;animation:.4s ease-in fadeIn;display:block}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.ui-action-card{border-left-color:var(--brand-orange)}.ui-action{color:var(--text-secondary);align-items:center;gap:10px;font-style:italic;display:flex}.ui-action-icon{font-size:20px;animation:1.2s ease-in-out infinite typing}.ui-action-text{font-size:14px}.typing{gap:4px;padding:4px 0;display:flex}.typing span{background:var(--brand-blue);opacity:.4;border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite typing}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{opacity:.4;transform:scale(1)}30%{opacity:1;transform:scale(1.2)}}.input-bar{padding:12px;padding-bottom:max(12px, env(safe-area-inset-bottom));z-index:10;background:#fff;border-top:1px solid #e0e0e0;flex-shrink:0}.input-form{gap:8px;display:flex}.input-form input{border:1px solid #d0d0d0;border-radius:4px;outline:none;flex:1;padding:10px 16px;font-family:inherit;font-size:15px;transition:border-color .15s}.input-form input:focus{border-color:var(--brand-blue)}.input-form input:disabled{background:var(--bg-light);color:var(--text-secondary)}.btn-send{background:var(--brand-blue);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:10px 20px;font-family:inherit;font-size:15px;font-weight:600;transition:background .15s}.btn-send:hover:not(:disabled){background:var(--brand-blue-dark)}.btn-send:disabled{opacity:.5;cursor:not-allowed}.shunned-notice{text-align:center;color:var(--text-secondary);margin-top:8px;font-size:13px;font-style:italic}.header-actions{flex-shrink:0;gap:8px;display:flex}.header-menu{position:relative}.menu-toggle{cursor:pointer;background:#ffffff26;border:1px solid #ffffff4d;border-radius:4px;justify-content:center;align-items:center;padding:6px 8px;transition:background .2s;display:flex}.menu-toggle:hover{background:#ffffff40}.hamburger{flex-direction:column;gap:4px;width:18px;display:flex}.hamburger span{background:#fff;border-radius:1px;height:2px;transition:transform .2s,opacity .2s;display:block}.hamburger-open span:first-child{transform:translateY(6px)rotate(45deg)}.hamburger-open span:nth-child(2){opacity:0}.hamburger-open span:nth-child(3){transform:translateY(-6px)rotate(-45deg)}.menu-dropdown{z-index:100;background:#fff;border-radius:8px;min-width:180px;padding:6px 0;animation:.15s ease-out menuFadeIn;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 4px 20px #00000026}@keyframes menuFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.menu-item{width:100%;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:none;padding:10px 16px;font-family:inherit;font-size:14px;text-decoration:none;transition:background .1s;display:block}.menu-item:hover{background:var(--bg-light)}.menu-divider{background:#e0e0e0;height:1px;margin:6px 0}.menu-lang-group{flex-wrap:wrap;gap:4px;padding:8px 12px;display:flex}.menu-lang{color:var(--text-primary);cursor:pointer;background:#fff;border:1px solid #d0d0d0;border-radius:4px;padding:5px 10px;font-family:inherit;font-size:13px;transition:all .15s}.menu-lang:hover{background:var(--bg-light)}.menu-lang-active{background:var(--brand-blue);color:#fff;border-color:var(--brand-blue)}.menu-lang-active:hover{background:var(--brand-blue-dark)}.lang-select{color:#fff;cursor:pointer;appearance:none;background:#ffffff26 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='white'/%3E%3C/svg%3E") right 8px center no-repeat;border:1px solid #ffffff4d;border-radius:4px;padding:6px 24px 6px 10px;font-family:inherit;font-size:13px;transition:background .2s}.lang-select:hover{background-color:#ffffff40}.lang-select option{color:var(--text-primary);background:#fff}.about{justify-content:center;padding:20px 0;display:flex}.about-card{max-width:540px;box-shadow:var(--shadow);background:#fff;border-radius:8px;padding:32px}.about-card h2{color:var(--text-primary);margin-bottom:20px;font-size:22px;font-weight:700}.about-card h3{color:var(--brand-blue);margin-top:24px;margin-bottom:12px;font-size:17px;font-weight:700}.about-card p{color:var(--text-primary);margin-bottom:12px;font-size:15px;line-height:1.7}.about-card ul{flex-direction:column;gap:14px;margin-bottom:12px;padding:0;list-style:none;display:flex}.about-card li{color:var(--text-primary);padding-left:20px;font-size:15px;line-height:1.6;position:relative}.about-card li:before{content:"";background:var(--brand-blue);border-radius:50%;width:8px;height:8px;position:absolute;top:10px;left:0}.about-card li strong{color:var(--text-primary)}.about-signature{color:var(--text-primary);margin-top:20px;margin-bottom:0;font-size:16px;font-weight:700}.about-footer{text-align:center;border-top:1px solid #e0e0e0;margin-top:28px;padding-top:20px}.about-footer p{color:var(--text-secondary);font-size:14px}.about-footer a{color:var(--brand-blue);font-weight:600;text-decoration:none}.about-footer a:hover{text-decoration:underline}@media (width<=640px){.app{max-width:100%;box-shadow:none}.header-inner{gap:6px;padding:8px 10px}.logo{padding:4px 8px}.logo-jv{font-size:16px}.logo-dot{font-size:11px}.header-actions{gap:4px}a.btn-new-chat,.btn-new-chat{padding:5px 8px;font-size:11px}.lang-select{padding:5px 20px 5px 6px;font-size:11px}.welcome{min-height:50vh}.welcome-card{margin:0 8px}.welcome-card h2,.welcome-card p,.welcome-card .welcome-hint,.welcome-card .btn-primary{margin-left:16px;margin-right:16px}.chat-container{padding:12px}.bubble-user{max-width:85%}.witness-reply{padding:12px}.input-form input{padding:10px 12px;font-size:16px}}
