:root{color-scheme:light;--bg:#ffffff;--card:#111827;--text:#111827;--muted:#6b7280;--primary:#2563eb;--border:#e5e7eb;--success:#16a34a;--error:#dc2626}body.setup-mode{background:#0b0f1a}body.setup-mode .app{background:#0b0f1a}body.setup-mode .header .subtitle,body.setup-mode .header h1,body.setup-mode .lang-switch .btn{color:#e5e7eb}body.setup-mode .lang-switch .active{background:#2563eb;color:#fff}*{box-sizing:border-box}body,html{margin:0!important;padding:0!important;width:100%;height:100%;height:100dvh;overflow:hidden;background-color:#fff}body{font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--text)}body.setup-mode .header{color:#e5e7eb}.app{display:flex;flex-direction:column;height:100%;width:100%;margin:0!important;padding:0!important;border:none!important;background:#fff}.chat{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;margin:0!important;padding:0!important;background:#f3f4f6;font-size:16px;display:flex;flex-direction:column;gap:8px}.header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:0;padding:10px 12px 0;margin-bottom:0!important}.title-block{display:flex;gap:12px;align-items:center}.logo{width:44px;height:44px}.subtitle{color:var(--muted);margin:6px 0 0}main{flex:1;min-height:0;display:flex;flex-direction:column;position:relative;overflow:hidden;width:100%;margin:0;padding:0}.page{display:none;height:100%}.page:not(.active){display:none!important}.page.active{display:flex;flex-direction:column;min-height:0;flex:1}#page-setup{max-width:420px;margin:0 auto;overflow-y:auto;background:#0b0f1a;border-radius:16px;padding:12px;height:100%;max-height:100%;font-size:16px}#page-setup .muted{font-size:14px}#page-setup .card{background:linear-gradient(135deg,#0f172a 0,#1e293b 100%);border:1.5px solid #1e3a5f;color:#e5e7eb;box-shadow:0 0 0 1px rgba(30,58,95,.1),0 8px 32px rgba(2,6,23,.8),0 0 24px rgba(30,58,95,.1)}#page-setup .card+.card{margin-top:12px}#page-setup .notify-card{margin-top:10px}@media (max-width:600px){#page-setup .card{padding:10px}}#page-chat{max-width:none;margin:0;padding-top:0!important;width:100%;min-height:0;flex:1}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:12px;margin-bottom:12px;box-shadow:0 6px 18px rgba(15,23,42,.12)}#page-setup .card{background:#0f172a;border-color:#1f2937;color:#e5e7eb}#page-setup .muted,#page-setup h2,#page-setup label span,#page-setup li,#page-setup p,body.setup-mode .header .subtitle,body.setup-mode .header h1{color:#e5e7eb}#page-setup input{background:#0b1220;color:#e5e7eb;border:1.5px solid #1e3a5f;box-shadow:inset 0 0 0 1px rgba(30,58,95,.4),0 0 12px rgba(30,58,95,.15);transition:all .3s ease}#page-setup input:focus{border-color:#2d4a6f;box-shadow:inset 0 0 0 1px rgba(45,74,111,.5),0 0 16px rgba(30,58,95,.25)}#page-setup .btn{background:linear-gradient(135deg,#1e293b 0,#0f172a 100%);color:#e5e7eb;border:1.5px solid #1e3a5f;box-shadow:0 0 0 1px rgba(30,58,95,.2),0 4px 16px rgba(2,6,23,.8),0 0 12px rgba(30,58,95,.1);transition:all .3s ease;position:relative}#page-setup .btn:hover{border-color:#2d4a6f;box-shadow:0 0 0 1px rgba(45,74,111,.3),0 6px 20px rgba(2,6,23,.9),0 0 16px rgba(30,58,95,.15)}#page-setup .btn.primary{background:#2563eb;border-color:#2563eb}#page-setup .subtitle{color:#9ca3af}h1{margin:0;font-size:22px}h2{margin:0 0 8px;font-size:15px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.stack{display:grid;grid-template-columns:1fr;gap:12px}label{display:flex;flex-direction:column;gap:6px;font-size:14px}input[type=password],input[type=text],textarea{-webkit-appearance:none;appearance:none;padding:10px 12px;border-radius:10px;border:1px solid var(--border);font-size:16px;background:#f8f5ed;color:#111827;box-sizing:border-box;width:100%}input:focus,textarea:focus{outline:0;-webkit-box-shadow:none;box-shadow:none}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}.btn{border:1px solid var(--border);background:#fff;border-radius:8px;padding:8px 14px;font-size:14px;cursor:pointer}#page-setup .btn{background:#111827;color:#e5e7eb;border-color:#1f2937}.composer textarea{flex:1;border-radius:18px;resize:none;overflow:hidden;padding:10px 14px;font-size:16px;line-height:1.4;max-height:140px}#page-chat{display:flex;flex-direction:column;flex:1}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff;-webkit-tap-highlight-color:transparent}.btn.small{padding:4px 10px;font-size:12px}.btn.ghost{background:0 0;color:var(--muted)}.btn:disabled{opacity:.5;cursor:not-allowed}.status{font-size:13px;color:var(--muted)}#statusText{margin-top:6px}.status.ok{color:var(--success)}.status.error{color:var(--error)}.bubble{max-width:78%;padding:8px 12px;border-radius:14px;background:#fff;border:1px solid #e5e7eb;line-height:1.4;color:#111827;overflow-wrap:anywhere;word-break:break-word;white-space:pre-wrap}.bubble.mine{align-self:flex-end;background:#dbeafe;border-color:#bfdbfe;color:#1e3a8a}.bubble.theirs{align-self:flex-start}.bubble.thinking{font-style:italic;color:#6b7280}.help{font-size:14px;line-height:1.6}.help ol{margin:6px 0 0 18px;padding:0}.help code{background:#f1f5f9;padding:2px 6px;border-radius:6px}.muted{color:var(--muted);font-size:13px}.checkbox{display:inline-flex;align-items:center;gap:6px}.lang-switch{display:flex;gap:6px}.lang-switch .btn{color:#111827;border-color:#6b7280;font-weight:600;background:#fff}body.setup-mode .lang-switch .btn{color:#fff;border-color:#9ca3af;font-weight:600;background:#111827}.lang-switch .active{background:var(--primary);color:#fff;border-color:var(--primary)}.page{display:none}.page.active{display:block}.chat-header{display:none}.chat-header .btn{background:#fff;color:#111827;border-color:#e5e7eb}.chat-title{font-weight:600}.composer{flex-shrink:0;display:flex;align-items:flex-end;gap:8px;background:#fff;padding:10px 10px calc(10px + env(safe-area-inset-bottom)) 10px;border-top:1px solid #e5e7eb;width:100%}#chatInput{flex:1;font-size:16px!important;line-height:1.5;padding:8px 12px;border:1px solid #e5e7eb;border-radius:20px;background:#f8fafc;outline:0;resize:none;-webkit-appearance:none}.panel-stack{position:relative;display:flex;flex-direction:column;height:0;width:100%}.plus{width:36px;height:36px;border-radius:999px;padding:0}.action-panel{border:1px solid var(--border);border-radius:12px;background:#fff;padding:8px;display:grid;gap:8px;position:absolute;left:10px;right:10px;bottom:10px;z-index:1000}.action-item{padding:8px 10px;border-radius:8px;background:#f8fafc;border:1px solid #e5e7eb;font-size:14px;color:#111827;text-align:left}.equal-buttons{display:grid;grid-template-columns:1fr 1fr}.action-panel.hidden{display:none}#fileInput{display:none}.action-item input[type=file]{display:none}@media (max-width:600px){.app{padding:12px 10px 0}h1{font-size:20px}.card{padding:14px}.composer input{flex:1}}@keyframes voice-ripple{0%{box-shadow:0 0 0 0 rgba(37,99,235,.4)}70%{box-shadow:0 0 0 15px rgba(37,99,235,0)}100%{box-shadow:0 0 0 0 rgba(37,99,235,0)}}@keyframes wave-flow{0%{transform:scaleY(.4)}50%{transform:scaleY(1.2)}100%{transform:scaleY(.4)}}.voice-btn-active{background-color:var(--primary)!important;color:#fff!important;animation:voice-ripple 1.5s infinite}.voice-overlay{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:rgba(0,0,0,.7);padding:30px;border-radius:20px;z-index:10001;display:none;flex-direction:column;align-items:center;gap:15px;color:#fff;pointer-events:none}.voice-overlay.active{display:flex}.wave-container{display:flex;align-items:center;gap:4px;height:40px}.wave-bar{width:4px;height:20px;background:#fff;border-radius:2px;animation:wave-flow .8s infinite ease-in-out}.wave-bar:nth-child(2){animation-delay:.1s}.wave-bar:nth-child(3){animation-delay:.2s}.wave-bar:nth-child(4){animation-delay:.3s}.wave-bar:nth-child(5){animation-delay:.4s}#voiceBtn{width:44px;height:44px;border-radius:50%;padding:0;display:flex;align-items:center;justify-content:center;background-color:transparent;border:1px solid #e5e7eb;transition:all .2s;overflow:hidden}#voiceBtn svg{width:28px;height:28px;color:#60a5fa}#voiceBtn:hover{background-color:#f1f5f9}#voiceBtn.voice-btn-active svg{color:#fff}body.setup-mode .lang-switch .btn.active{background:var(--primary)!important;color:#fff!important;border-color:var(--primary)!important}