*{box-sizing:border-box}:root{--bg:#f6f8fb;--surface:#ffffff;--text:#0f172a;--muted:#5b6476;--border:#e2e8f0;--primary:#2563eb;--primary-strong:#1d4ed8;--chip-bg:#e0f2fe;--chip-text:#0369a1;--shadow:0 20px 60px rgba(15,23,42,0.08);--bubble-self:#e8f1ff;--bubble-other:#ffffff;--panel-grad:radial-gradient(120% 120% at 12% 22%, #dbeafe 0, #eff6ff 35%, #f8fafc 60%)}:root[data-theme=dark],body[data-theme=dark]{--bg:#0b1220;--surface:#0f172a;--text:#e2e8f0;--muted:#94a3b8;--border:#1f2937;--primary:#60a5fa;--primary-strong:#3b82f6;--chip-bg:#3b82f6;--chip-text:#ffffff;--shadow:0 16px 50px rgba(0,0,0,0.45);--bubble-self:#132a4a;--bubble-other:#0f172a;--panel-grad:radial-gradient(120% 120% at 12% 22%, #0f172a 0, #0b1220 42%, #0b1220 70%)}body,html{height:100%;margin:0;padding:0;overflow:hidden}body{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);transition:background .2s ease,color .2s ease}a{color:var(--primary);text-decoration:none}.landing-bg{min-height:100vh;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 18px 40px;background:linear-gradient(rgba(99,102,241,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(99,102,241,.03) 1px,transparent 1px),radial-gradient(circle at 15% 30%,rgba(99,102,241,.12) 0,transparent 45%),radial-gradient(circle at 85% 70%,rgba(236,72,153,.1) 0,transparent 45%),radial-gradient(circle at 50% 10%,rgba(59,130,246,.08) 0,transparent 40%),radial-gradient(circle at 30% 80%,rgba(139,92,246,.08) 0,transparent 40%),radial-gradient(circle at 70% 50%,rgba(14,165,233,.06) 0,transparent 35%),linear-gradient(135deg,#f6f8fb 0,#eef2ff 25%,#f0f9ff 50%,#faf5ff 75%,#f6f8fb 100%);background-size:40px 40px,40px 40px,100% 100%,100% 100%,100% 100%,100% 100%,100% 100%,100% 100%;background-attachment:fixed}.landing-bg::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 50%,rgba(99,102,241,.04) 0,transparent 60%),radial-gradient(circle at 80% 80%,rgba(236,72,153,.04) 0,transparent 60%);pointer-events:none;z-index:0}:root[data-theme=dark] .landing-bg,body[data-theme=dark] .landing-bg{background:linear-gradient(rgba(99,102,241,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(99,102,241,.08) 1px,transparent 1px),radial-gradient(circle at 15% 30%,rgba(99,102,241,.15) 0,transparent 45%),radial-gradient(circle at 85% 70%,rgba(236,72,153,.12) 0,transparent 45%),radial-gradient(circle at 50% 10%,rgba(59,130,246,.12) 0,transparent 40%),radial-gradient(circle at 30% 80%,rgba(139,92,246,.1) 0,transparent 40%),radial-gradient(circle at 70% 50%,rgba(14,165,233,.08) 0,transparent 35%),linear-gradient(135deg,#0b1220 0,#0f172a 25%,#1e293b 50%,#1e1b4b 75%,#0b1220 100%);background-size:40px 40px,40px 40px,100% 100%,100% 100%,100% 100%,100% 100%,100% 100%,100% 100%;background-attachment:fixed}:root[data-theme=dark] .landing-bg::before,body[data-theme=dark] .landing-bg::before{background:radial-gradient(circle at 20% 50%,rgba(99,102,241,.06) 0,transparent 60%),radial-gradient(circle at 80% 80%,rgba(236,72,153,.06) 0,transparent 60%)}.landing-container{width:100%;max-width:600px;display:flex;flex-direction:column;align-items:center;gap:32px;position:relative;z-index:1}.landing-footer{width:100%;max-width:600px;margin:80px auto 20px;text-align:center;position:relative;z-index:0}.landing-footer p{color:#94a3b8;font-size:12px;margin:0;opacity:.6}:root[data-theme=dark] .landing-footer p,body[data-theme=dark] .landing-footer p{color:#64748b;opacity:.5}.landing-theme-toggle{position:fixed;top:10px;right:10px;z-index:0}.landing-theme-toggle svg{stroke:currentColor}.landing-hero{text-align:center}.landing-hero h1{font-size:48px;font-weight:800;margin:0 0 12px;background:linear-gradient(135deg,var(--primary),#8b5cf6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.landing-subtitle{font-size:18px;color:var(--muted);margin:0 0 32px}.large-btn{padding:16px 32px;font-size:18px;border-radius:16px}.create-form-container{width:100%;animation:fadeIn .3s ease}@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.chat-bg{height:100vh;height:100dvh;height:var(--viewport-height,100dvh);overflow:hidden;position:relative;background:linear-gradient(rgba(99,102,241,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(99,102,241,.1) 1px,transparent 1px),radial-gradient(circle at 15% 30%,rgba(99,102,241,.12) 0,transparent 45%),radial-gradient(circle at 85% 70%,rgba(236,72,153,.1) 0,transparent 45%),radial-gradient(circle at 50% 10%,rgba(59,130,246,.08) 0,transparent 40%),radial-gradient(circle at 30% 80%,rgba(139,92,246,.08) 0,transparent 40%),radial-gradient(circle at 70% 50%,rgba(14,165,233,.06) 0,transparent 35%),linear-gradient(135deg,#f6f8fb 0,#eef2ff 25%,#f0f9ff 50%,#faf5ff 75%,#f6f8fb 100%);background-size:40px 40px,40px 40px,100% 100%,100% 100%,100% 100%,100% 100%,100% 100%,100% 100%;background-attachment:fixed}.chat-bg::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 50%,rgba(99,102,241,.04) 0,transparent 60%),radial-gradient(circle at 80% 80%,rgba(236,72,153,.04) 0,transparent 60%);pointer-events:none;z-index:0}:root[data-theme=dark] .chat-bg,body[data-theme=dark] .chat-bg{background:linear-gradient(rgba(99,102,241,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(99,102,241,.1) 1px,transparent 1px),radial-gradient(circle at 15% 30%,rgba(99,102,241,.15) 0,transparent 45%),radial-gradient(circle at 85% 70%,rgba(236,72,153,.12) 0,transparent 45%),radial-gradient(circle at 50% 10%,rgba(59,130,246,.12) 0,transparent 40%),radial-gradient(circle at 30% 80%,rgba(139,92,246,.1) 0,transparent 40%),radial-gradient(circle at 70% 50%,rgba(14,165,233,.08) 0,transparent 35%),linear-gradient(135deg,#0b1220 0,#0f172a 25%,#1e293b 50%,#1e1b4b 75%,#0b1220 100%);background-size:40px 40px,40px 40px,100% 100%,100% 100%,100% 100%,100% 100%,100% 100%,100% 100%;background-attachment:fixed}:root[data-theme=dark] .chat-bg::before,body[data-theme=dark] .chat-bg::before{background:radial-gradient(circle at 20% 50%,rgba(99,102,241,.06) 0,transparent 60%),radial-gradient(circle at 80% 80%,rgba(236,72,153,.06) 0,transparent 60%)}.glass{background:rgba(255,255,255,.9);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow);padding:20px}:root[data-theme=dark] .glass,body[data-theme=dark] .glass{background:rgba(15,23,42,.72)}.badge{display:inline-block;padding:6px 12px;background:var(--chip-bg);color:var(--chip-text);border-radius:12px;font-weight:700;font-size:13px;letter-spacing:.4px}.label{display:block;margin:12px 0 12px;font-weight:600}.required{color:var(--primary)}button,input,textarea{font-family:inherit}input,textarea{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:16px;transition:border .2s,box-shadow .2s}input:focus,textarea:focus{outline:0;border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.15)}button{border:none;border-radius:12px;padding:12px 14px;font-weight:700;cursor:pointer;transition:transform .1s ease,box-shadow .2s ease}button:active{transform:translateY(1px)}.primary{background:linear-gradient(135deg,var(--primary),var(--primary-strong));color:#fff;border:1px solid #4338ca;box-shadow:0 8px 20px rgba(37,99,235,.3)}.primary:disabled{opacity:.5;cursor:not-allowed}.secondary{background:#e0e7ff;color:#4338ca;border:1px solid #4338ca;box-shadow:0 4px 12px rgba(67,56,202,.15)}:root[data-theme=dark] .secondary,body[data-theme=dark] .secondary{background:#1e293b;color:#cbd5f5;border:1px solid #4338ca;box-shadow:0 4px 12px rgba(0,0,0,.15)}.ghost-btn{background:0 0;color:var(--text);border:1px solid var(--border)}.mini-btn{padding:8px 10px;font-size:13px;border-radius:10px}.full-width{width:100%}.muted{color:var(--muted)}.small{font-size:13px}.mini{font-size:12px}.inline-input{display:flex;gap:8px;align-items:center}.pill-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.pill-grid.compact{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.pill{display:inline-flex;align-items:center;gap:8px;padding:10px 12px;background:rgba(248,250,252,.7);border:1px solid var(--border);border-radius:12px;cursor:pointer;font-weight:600}.pill input{width:auto;margin:0}:root[data-theme=dark] .pill,body[data-theme=dark] .pill{background:rgba(30,41,59,.85);border-color:var(--border);color:var(--text)}:root[data-theme=dark] .pill input[type=checkbox],body[data-theme=dark] .pill input[type=checkbox]{accent-color:var(--primary)}.avatar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(70px,1fr));gap:10px;margin:8px 0 4px}.avatar-grid.small{grid-template-columns:repeat(auto-fill,minmax(52px,1fr))}.avatar-pill{display:flex;justify-content:center;align-items:center;gap:6px;padding:8px;border:1px solid var(--border);border-radius:12px;background:var(--surface);cursor:pointer}.avatar-pill input{width:auto;margin:0}.avatar-pill img{width:42px;height:42px;border-radius:12px;background:#f1f5f9}.emoji-avatar{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;font-size:24px;background:#f1f5f9}.single-avatar-container{display:flex;align-items:center;gap:12px}.avatar-display-btn{width:64px;height:64px;border-radius:16px;border:2px solid var(--border);background:var(--surface);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s,box-shadow .2s}.avatar-display-btn:hover{transform:scale(1.05);box-shadow:0 4px 12px rgba(0,0,0,.1)}.avatar-display-btn:active{transform:scale(.98)}.emoji-avatar-large{font-size:36px;width:100%;height:100%;border-radius:14px;display:flex;align-items:center;justify-content:center}.emoji-avatar-bubble{display:flex;align-items:center;justify-content:center;font-size:20px;border-radius:12px}.avatar-options-hidden{display:none}.avatar-actions{display:flex;justify-content:flex-start;gap:8px;align-items:center}.tip-card{background:var(--surface);border-radius:16px;padding:16px;border:1px solid var(--border);box-shadow:0 10px 30px rgba(15,23,42,.05)}.mini-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;margin:0 auto;width:min(1100px,100%);padding:0 4px 10px}.landing-shell{width:min(980px,100%);margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:22px;align-items:center}.intro h1{margin:10px 0 12px;font-size:32px}.mini-points{display:flex;gap:10px;flex-wrap:wrap}.hero-card{width:100%}.card-title{margin:0 0 8px}.chat-shell{max-width:1100px;margin:0 auto;padding:0;display:flex;flex-direction:column;gap:0;height:100vh;height:100dvh;height:var(--viewport-height,100dvh);box-sizing:border-box;overflow:hidden;position:relative;z-index:1;overscroll-behavior:contain;touch-action:pan-y}.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-shrink:0;padding:12px 18px;margin:12px 12px 0 12px;border-radius:18px}.room-id-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-weight:700}.room-id-link{text-decoration:none;color:var(--primary);cursor:pointer;transition:opacity .2s}.room-id-link:hover{opacity:.7}.room-id{cursor:pointer;transition:opacity .2s;position:relative;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.room-id:hover{opacity:.7}.room-users-btn{width:24px!important;height:24px!important;border-radius:8px!important;padding:0;margin-left:4px;border-color:var(--border)!important}.room-users-btn svg{width:18px;height:18px}.topbar-actions{display:flex;gap:8px;align-items:center}.icon-btn{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;border:1px solid var(--border);background:var(--surface);font-size:18px;padding:0;color:var(--text)}:root[data-theme=dark] .icon-btn,body[data-theme=dark] .icon-btn{color:#e2e8f0;border-color:#334155}.settings-dropdown-container{position:relative}.settings-panel{position:absolute;top:100%;right:0;margin-top:8px;min-width:220px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);z-index:1000;overflow:hidden;padding:4px}.settings-panel-header{padding:12px 16px;border-bottom:1px solid var(--border);font-weight:600;font-size:.9em}.settings-panel-body{padding:8px 0}.settings-item{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;cursor:pointer;transition:background .15s ease;gap:12px}.settings-item:hover{background:var(--bg)}.settings-item-label{font-size:.9em;color:var(--text);flex:1}.settings-item-group{padding:10px 16px}.settings-item-label-main{display:block;font-size:.9em;color:var(--text);margin-bottom:8px;font-weight:500}.settings-select{width:100%;padding:8px 12px;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:.9em;font-family:inherit;cursor:pointer;transition:all .2s ease}.settings-select:hover{border-color:var(--accent-color)}.settings-select:focus{outline:0;border-color:var(--accent-color);box-shadow:0 0 0 2px rgba(var(--accent-rgb,74,144,226),.1)}.settings-select option{background:var(--bg);color:var(--text)}.settings-btn-item{display:flex;align-items:center;width:100%;padding:10px 16px;border:none;background:0 0;cursor:pointer;transition:background .15s ease;gap:12px;text-align:left;font-family:inherit;font-size:.9em;color:var(--text);border-radius:8px}.settings-btn-item:hover{background:var(--bg)}.settings-btn-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:var(--muted)}.settings-btn-label{flex:1}.settings-btn-status{font-size:.8em;padding:2px 8px;border-radius:10px;font-weight:500}.settings-btn-item.enabled{cursor:default}.settings-btn-item.enabled .settings-btn-status{background:rgba(34,197,94,.15);color:#16a34a}:root[data-theme=dark] .settings-btn-item.enabled .settings-btn-status,body[data-theme=dark] .settings-btn-item.enabled .settings-btn-status{background:rgba(34,197,94,.2);color:#4ade80}.settings-btn-item.denied{cursor:default}.settings-btn-item.denied .settings-btn-status{background:rgba(239,68,68,.15);color:#dc2626}:root[data-theme=dark] .settings-btn-item.denied .settings-btn-status,body[data-theme=dark] .settings-btn-item.denied .settings-btn-status{background:rgba(239,68,68,.2);color:#f87171}.settings-btn-item.disabled{cursor:not-allowed;opacity:.5}.settings-btn-item.disabled .settings-btn-status{background:rgba(107,114,128,.15);color:var(--muted)}.settings-btn-item:disabled{pointer-events:none}.settings-btn-item:disabled:hover{background:0 0}.settings-divider{height:1px;background:var(--border);margin:8px 0}.settings-toggle{position:absolute;opacity:0;width:0;height:0}.settings-toggle-slider{position:relative;display:inline-block;width:40px;height:22px;background:var(--border);border-radius:11px;transition:background .2s ease;flex-shrink:0}.settings-toggle-slider::before{content:'';position:absolute;width:18px;height:18px;left:2px;top:2px;background:#fff;border-radius:50%;transition:transform .2s ease;box-shadow:0 1px 3px rgba(0,0,0,.2)}.settings-toggle:checked+.settings-toggle-slider{background:var(--primary)}.settings-toggle:checked+.settings-toggle-slider::before{transform:translateX(18px)}.theme-icon{width:20px;height:20px;stroke:currentColor}.theme-icon-path{transition:d .3s ease}.lang-chips{display:flex;gap:8px;flex-wrap:nowrap;padding-top:8px}.chip{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:6px;background:var(--chip-bg);color:var(--chip-text);font-weight:700;font-size:12px;min-width:3.5em;text-align:center;white-space:nowrap}.chip-muted{background:rgba(241,245,249,.7);color:var(--muted);font-weight:600;border:1px solid rgba(148,163,184,.2)}:root[data-theme=dark] .chip-muted,body[data-theme=dark] .chip-muted{background:rgba(59,130,246,.2);color:#93c5fd;border:1px solid rgba(59,130,246,.3)}.profile-card{padding:14px 16px}.profile-box{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;align-items:start}.profile-block{display:flex;flex-direction:column;gap:6px}.profile-block.helper{justify-content:center}.profile-actions{display:flex;gap:8px}.name-row{display:flex;gap:8px;align-items:center}.chat-panel{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;position:relative;border-radius:18px;border:1px solid var(--border);padding:14px;margin:12px;box-shadow:inset 0 1px 0 var(--border);scrollbar-width:thin;scrollbar-gutter:auto;overscroll-behavior-y:none;overscroll-behavior-x:none;-webkit-overflow-scrolling:touch;touch-action:pan-y;transform:translateZ(0);contain:paint;background:linear-gradient(rgba(99,102,241,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(99,102,241,.06) 1px,transparent 1px),radial-gradient(circle at 30% 20%,rgba(99,102,241,.03) 0,transparent 50%),radial-gradient(circle at 70% 80%,rgba(236,72,153,.025) 0,transparent 50%),var(--surface);background-size:50px 50px,50px 50px,100% 100%,100% 100%,100% 100%;background-attachment:scroll}:root[data-theme=dark] .chat-panel,body[data-theme=dark] .chat-panel{background:linear-gradient(rgba(99,102,241,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(99,102,241,.06) 1px,transparent 1px),radial-gradient(circle at 30% 20%,rgba(99,102,241,.05) 0,transparent 50%),radial-gradient(circle at 70% 80%,rgba(236,72,153,.04) 0,transparent 50%),var(--surface);background-size:50px 50px,50px 50px,100% 100%,100% 100%,100% 100%;background-attachment:scroll}#messages{display:flex;flex-direction:column;gap:12px}.date-separator{display:flex;align-items:center;gap:12px;padding:8px 0;flex-shrink:0}.date-separator::after,.date-separator::before{content:'';flex:1;height:0;border-bottom:1px solid var(--border)}.date-separator-label{font-size:12px;color:var(--muted);white-space:nowrap}.typing-indicator{position:fixed;padding:6px 12px;font-size:13px;color:var(--muted);background:rgba(255,255,255,.75);border:1px solid var(--border);border-radius:16px;box-shadow:0 2px 8px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.05);opacity:0;transform:translateY(10px);transition:opacity .25s ease-out,transform .25s ease-out,visibility 0s linear .25s;z-index:100;pointer-events:none;white-space:nowrap;max-width:calc(100vw - 56px);overflow:hidden;text-overflow:ellipsis;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.typing-indicator.show{opacity:.9;transform:translateY(0);visibility:visible;transition:opacity .2s ease-out,transform .2s ease-out,visibility 0s linear 0s}:root[data-theme=dark] .typing-indicator,body[data-theme=dark] .typing-indicator{background:rgba(15,23,42,.75);box-shadow:0 2px 8px rgba(0,0,0,.3),0 1px 2px rgba(0,0,0,.2)}.new-message-previews{position:fixed;z-index:99;display:flex;flex-direction:column;gap:6px;padding:8px 10px 12px 10px;pointer-events:none;max-width:min(280px,calc(100vw - 56px))}.new-message-preview-item{padding:6px 10px;font-size:12px;line-height:1.4;background:rgba(255,255,255,.82);border:1px solid var(--border);border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.04);opacity:0;transform:translateY(6px);transition:opacity .25s ease-out,transform .25s ease-out,visibility 0s linear .25s;visibility:hidden;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);pointer-events:auto;cursor:pointer}.new-message-preview-item.show{opacity:.88;transform:translateY(0);visibility:visible;transition:opacity .25s ease-out,transform .25s ease-out,visibility 0s linear 0s}.new-message-preview-item.leaving{opacity:0;transform:translateY(4px);transition:opacity .2s ease-in,transform .2s ease-in,visibility 0s linear .2s}.new-message-preview-sender{font-weight:600;color:var(--primary)}.new-message-preview-text{color:var(--text)}:root[data-theme=dark] .new-message-preview-item,body[data-theme=dark] .new-message-preview-item{background:rgba(15,23,42,.78);box-shadow:0 2px 8px rgba(0,0,0,.3),0 1px 2px rgba(0,0,0,.2)}.date-indicator{position:fixed;padding:6px 12px;font-size:13px;color:var(--muted);background:rgba(255,255,255,.75);border:1px solid var(--border);border-radius:16px;box-shadow:0 2px 8px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.05);opacity:0;transform:translateX(-50%) translateY(-10px);transition:opacity .3s ease-in-out,transform .3s ease-in-out,visibility 0s linear .3s;z-index:100;pointer-events:none;white-space:nowrap;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);visibility:hidden}.date-indicator.show{opacity:1;transform:translateX(-50%) translateY(0);visibility:visible;transition:opacity .3s ease-in-out,transform .3s ease-in-out;pointer-events:auto;cursor:pointer}.date-indicator.show:hover{color:var(--text);background:rgba(255,255,255,.9)}:root[data-theme=dark] .date-indicator.show:hover,body[data-theme=dark] .date-indicator.show:hover{background:rgba(15,23,42,.9)}:root[data-theme=dark] .date-indicator,body[data-theme=dark] .date-indicator{background:rgba(15,23,42,.75);box-shadow:0 2px 8px rgba(0,0,0,.3),0 1px 2px rgba(0,0,0,.2)}.sync-indicator{position:fixed;top:32px;left:50%;transform:translateX(-50%) translateY(-100%);display:flex;align-items:center;gap:8px;padding:8px 16px;font-size:13px;color:var(--muted);background:rgba(255,255,255,.9);border:1px solid var(--border);border-radius:20px;box-shadow:0 2px 12px rgba(0,0,0,.1);z-index:200;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .25s ease,transform .25s ease,visibility 0s linear .25s;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.sync-indicator.show{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);transition:opacity .25s ease,transform .25s ease,visibility 0s linear 0s}.sync-indicator-spinner{width:16px;height:16px;border:2px solid rgba(37,99,235,.2);border-top-color:var(--primary);border-radius:50%;animation:sync-spin .7s linear infinite}@keyframes sync-spin{to{transform:rotate(360deg)}}:root[data-theme=dark] .sync-indicator,body[data-theme=dark] .sync-indicator{background:rgba(15,23,42,.9);box-shadow:0 2px 12px rgba(0,0,0,.3)}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.side-panel{border-radius:16px;border:1px solid var(--border);background:var(--surface);padding:14px 16px;box-shadow:var(--shadow)}.side-title{font-weight:700;margin-bottom:6px}.side-item{margin-bottom:10px}.side-value{font-weight:700;letter-spacing:.5px}.side-tips{margin:6px 0 0;padding-left:18px;color:var(--muted)}.bubble-row{display:flex;gap:10px;align-items:flex-end;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.bubble-row.left{flex-direction:row}.bubble-row.right{flex-direction:row;justify-content:flex-end}.bubble-avatar{width:42px;height:42px;border-radius:12px;object-fit:cover}.bubble-row.avatars-hidden .bubble-avatar{display:none}.avatar.placeholder{display:grid;place-items:center;background:#e2e8f0;color:var(--primary);font-weight:800}:root[data-theme=dark] .avatar.placeholder,body[data-theme=dark] .avatar.placeholder{background:#1e293b;color:var(--primary)}.bubble{max-width:75%;background:var(--bubble-other);border-radius:14px;padding:10px 12px;border:1px solid var(--border);box-shadow:0 6px 20px rgba(15,23,42,.12);overflow-wrap:break-word;word-break:break-word;min-width:0;transition:transform .3s cubic-bezier(.25, .46, .45, .94),box-shadow .3s ease,border-color .3s ease,opacity .3s ease}.bubble-row.message-pending .bubble{opacity:.7;border-color:rgba(191,219,254,.5)}.bubble-row.message-pending .bubble-meta .name,.bubble-row.message-pending .bubble-time{opacity:.7}.bubble-row.message-confirmed .bubble{opacity:1;border-color:#bfdbfe}.bubble-row.message-confirmed .bubble-meta .name,.bubble-row.message-confirmed .bubble-time{opacity:1}.bubble:hover{box-shadow:0 12px 40px rgba(15,23,42,.2)}:root[data-theme=dark] .bubble:hover,body[data-theme=dark] .bubble:hover{box-shadow:0 12px 40px rgba(0,0,0,.5)}.bubble-row.right .bubble{background:var(--bubble-self);border-color:#bfdbfe}.bubble-meta{display:flex;gap:2px;align-items:baseline;justify-content:flex-start}.bubble-meta .name{color:var(--primary);font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bubble-time{margin-left:16px;position:relative;flex-shrink:0}@media (hover:hover){.bubble-time[data-full-time]::after{content:attr(data-full-time);position:absolute;bottom:100%;left:50%;transform:translateX(-50%);margin-bottom:8px;padding:6px 10px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:6px;font-size:12px;white-space:nowrap;z-index:1000;box-shadow:0 4px 12px rgba(0,0,0,.15);pointer-events:none;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}.bubble-time[data-full-time]:hover::after{opacity:1;visibility:visible}.bubble-time[data-full-time]::before{content:'';position:absolute;bottom:100%;left:50%;transform:translateX(-50%);margin-bottom:2px;border:5px solid transparent;border-top-color:var(--border);z-index:1001;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}.bubble-time[data-full-time]:hover::before{opacity:1;visibility:visible}}.bubble-text{margin-top:6px;white-space:pre-wrap;user-select:text;cursor:text;overflow-wrap:break-word;word-break:break-word;max-width:100%}.bubble-text,.composer input[type=text],.composer textarea{font-family:Inter,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",SimHei,STHeiti,"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",YuGothic,Meiryo,"Apple SD Gothic Neo","Nanum Gothic","Malgun Gothic","Noto Sans CJK SC","Noto Sans CJK JP","Noto Sans CJK KR",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}body[data-lang-priority=ja] .bubble-text,body[data-lang-priority=ja] .composer input[type=text],body[data-lang-priority=ja] .composer textarea,html[lang=ja] .bubble-text,html[lang=ja] .composer input[type=text],html[lang=ja] .composer textarea{font-family:Inter,"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",YuGothic,Meiryo,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",SimHei,STHeiti,"Apple SD Gothic Neo","Nanum Gothic","Malgun Gothic","Noto Sans CJK JP","Noto Sans CJK SC","Noto Sans CJK KR",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.translation-text.lang-ja,.translation-text[data-lang=ja]{font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",YuGothic,Meiryo,"Noto Sans CJK JP",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.translation-text.lang-zh-cn,.translation-text.lang-zh-tw,.translation-text[data-lang=zh-cn],.translation-text[data-lang=zh-tw]{font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",SimHei,STHeiti,"Noto Sans CJK SC","Noto Sans CJK TC",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.translation-text.lang-ko,.translation-text[data-lang=ko]{font-family:"Apple SD Gothic Neo","Nanum Gothic","Malgun Gothic","Noto Sans CJK KR",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.translation-text.lang-en,.translation-text[data-lang=en]{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.bubble-text.emoji-only{font-size:3em;line-height:1.2;text-align:center}.bubble-text.emoji-only .emoji-char{display:inline-block;margin:0 2px}.translation-block{border-top:2px solid var(--border);padding-top:8px;margin-top:8px;overflow:visible}:root[data-theme=dark] .translation-block,body[data-theme=dark] .translation-block{border-top:2px solid rgba(148,163,184,.25)}.translation-line{display:flex;gap:8px;align-items:baseline;margin-top:4px;flex-wrap:nowrap}.translation-block.translation-lang-align-center .translation-line{align-items:center}.translation-lang{flex-shrink:0;min-width:5em;max-width:5em;text-align:center;display:inline-block}.translation-text{color:var(--muted);font-size:.9em;line-height:1.4;flex:1;opacity:.85;user-select:text;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;cursor:text}.translation-text-wrap{position:relative;flex:1;min-width:0;padding-right:28px}.translation-text-wrap .translation-improve-btn{position:absolute;right:0;bottom:0;align-self:auto}.bubble-text.has-swipe-indicator{position:relative;padding-right:22px}.bubble-text-swipe-indicator{position:absolute;right:0;bottom:2px;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;opacity:.5;cursor:pointer;transition:opacity .2s ease}.bubble-text-swipe-indicator:hover{opacity:.9}.translation-toggle{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:8px;color:var(--muted);transition:color .2s ease,opacity .2s ease;margin-left:0;margin-right:-8px;margin-top:-4px;margin-bottom:-4px;flex-shrink:0}.translation-toggle:hover:not(.disabled){color:var(--text)}.translation-toggle.disabled{opacity:.3;cursor:default}.translation-toggle .toggle-icon{transition:transform .2s ease;transform:rotate(0)}.translation-toggle.expanded .toggle-icon{transform:rotate(180deg)}.translation-content{overflow:visible}.translation-block.collapsed{display:none}.translation-improve-btn{flex-shrink:0;align-self:flex-end;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;margin-left:4px;border:none;background:0 0;color:inherit;opacity:.5;cursor:pointer;border-radius:4px;transition:opacity .2s ease}.translation-text-wrap .translation-improve-btn{position:absolute;right:0;bottom:0;margin-left:0}.translation-improve-btn:hover:not(:disabled):not(.loading){opacity:.9}.translation-improve-btn.loading,.translation-improve-btn:disabled{cursor:default}.translation-improve-btn .translation-improve-loading{display:none}.translation-improve-btn.loading .translation-improve-icon{display:none}.translation-improve-btn.loading .translation-improve-loading{display:block;animation:translation-improve-spin .8s linear infinite}@keyframes translation-improve-spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}.composer{display:flex;align-items:flex-end;gap:12px;padding:12px 18px;padding-bottom:calc(12px + env(safe-area-inset-bottom));margin:0 12px 12px;margin-bottom:calc(12px + env(safe-area-inset-bottom));background:var(--surface);border:1px solid var(--border);border-radius:18px;flex-shrink:0;position:relative;z-index:10;box-shadow:var(--shadow);touch-action:pan-x pan-y;overscroll-behavior:contain}.is-ios .composer{padding-bottom:12px;margin-bottom:12px}.textarea-wrapper{flex:1;position:relative;display:flex;align-items:center}.composer textarea{flex:1;resize:none;background:var(--surface);border:1px solid var(--border);border-radius:4px;padding-left:36px;min-height:48px;height:48px;max-height:120px;font-size:16px;line-height:1.5;box-sizing:border-box;overflow:hidden;display:flex;align-items:center}.composer textarea:focus{outline:0;border-color:var(--primary)}.send-btn{width:48px;height:48px;display:flex;align-items:center;justify-content:center;padding:0;background:linear-gradient(135deg,var(--primary),var(--primary-strong));color:#fff;border:1px solid var(--border);border-radius:50%;cursor:pointer;transition:transform .2s,box-shadow .2s;box-shadow:0 2px 8px rgba(37,99,235,.3);flex-shrink:0;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.send-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(37,99,235,.4)}.send-btn:active{transform:translateY(0)}.send-btn:focus{outline:0}.send-btn:not(.send-btn-active){background:var(--bg);color:var(--muted);box-shadow:0 2px 8px transparent;opacity:.5}.send-btn:not(.send-btn-active):hover{opacity:.7;transform:none;box-shadow:0 2px 8px transparent}.send-btn.send-btn-active{background:linear-gradient(135deg,var(--primary),var(--primary-strong));color:#fff;opacity:1;box-shadow:0 2px 8px rgba(37,99,235,.3)}.send-btn.send-btn-active:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(37,99,235,.4)}.file-btn,.image-btn,.voice-btn{width:48px;height:48px;display:flex;align-items:center;justify-content:center;padding:0;background:0 0;color:var(--muted);border:1px solid var(--border);border-radius:50%;cursor:pointer;transition:all .2s;flex-shrink:0;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.file-btn:hover,.image-btn:hover,.voice-btn:hover{background:var(--bg);color:var(--primary);border-color:var(--primary)}.file-btn:active,.image-btn:active,.voice-btn:active{transform:scale(.95)}.file-btn:focus,.image-btn:focus,.voice-btn:focus{outline:0}.emoji-btn{position:absolute;left:8px;top:50%;transform:translateY(-50%);width:24px;height:24px;display:flex;align-items:center;justify-content:center;padding:0;background:0 0;color:var(--muted);border:none;border-radius:0;cursor:pointer;transition:all .2s;z-index:1;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.emoji-btn:hover{background:0 0;color:var(--primary);transform:translateY(-50%) scale(1.1)}.emoji-btn:active{transform:translateY(-50%) scale(.95)}.emoji-btn:focus{outline:0}.image-preview{position:absolute;left:0;right:0;bottom:calc(100% + 8px);padding:12px;background:rgba(255,255,255,.75);border:1px solid var(--border);border-radius:12px;box-shadow:0 -2px 8px rgba(0,0,0,.1),0 -1px 2px rgba(0,0,0,.05);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:20;max-height:200px;overflow-y:auto}.image-preview-list{display:flex;flex-direction:column;gap:8px}.image-preview-item{display:flex;align-items:center;gap:12px;position:relative}.image-preview-item img{width:60px;height:60px;object-fit:cover;border-radius:8px;flex-shrink:0}.image-preview-info{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.image-preview-name{font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.image-preview-size{font-size:12px}.image-preview-cancel{width:32px;height:32px;display:flex;align-items:center;justify-content:center;padding:0;background:0 0;color:var(--muted);border:none;border-radius:50%;cursor:pointer;transition:all .2s;flex-shrink:0}.image-preview-cancel:hover{background:var(--bg);color:var(--text)}.bubble-image-container{margin:6px 0;border-radius:12px;overflow:hidden;background:var(--bg);display:flex;justify-content:center}.bubble-image{width:100%;max-width:400px;height:auto;display:block;border-radius:12px;transition:opacity .2s}.bubble-image:hover{opacity:.9}.bubble-image.bubble-image-failed{display:none}.bubble-image-fallback{display:none;min-height:80px;max-width:400px;align-items:center;justify-content:center;padding:16px;font-size:13px;color:var(--text-muted,#888);background:var(--bg-muted,#f0f0f0);border-radius:12px}.bubble-image-fallback.show{display:flex}.file-preview{position:absolute;left:0;right:0;bottom:calc(100% + 8px);padding:12px;background:rgba(255,255,255,.75);border:1px solid var(--border);border-radius:12px;box-shadow:0 -2px 8px rgba(0,0,0,.1),0 -1px 2px rgba(0,0,0,.05);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:20;max-height:200px;overflow-y:auto}.file-preview-list{display:flex;flex-direction:column;gap:8px}.file-preview-item{display:flex;align-items:center;gap:12px;position:relative}.file-preview-icon{width:60px;height:60px;display:flex;align-items:center;justify-content:center;font-size:32px;background:var(--bg);border-radius:8px;flex-shrink:0}.file-preview-info{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.file-preview-name{font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-preview-size{font-size:12px}.file-preview-cancel{width:32px;height:32px;display:flex;align-items:center;justify-content:center;padding:0;background:0 0;color:var(--muted);border:none;border-radius:50%;cursor:pointer;transition:all .2s;flex-shrink:0}.file-preview-cancel:hover{background:var(--bg);color:var(--text)}.bubble-file-container{margin:6px 0}.bubble-file{display:flex;align-items:center;gap:12px;padding:12px;background:var(--bg);border:1px solid var(--border);border-radius:12px;transition:all .2s;max-width:400px}.bubble-file:hover{background:var(--surface);border-color:var(--accent)}.bubble-file-icon{font-size:32px;flex-shrink:0;line-height:1}.bubble-file-info{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.bubble-file-name{font-size:14px;font-weight:500;color:var(--accent);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color .2s}.bubble-file-name:hover{color:var(--accent-hover);text-decoration:underline}.file-size-info{font-size:11px;color:var(--muted)}.file-uploading-label{font-size:11px;color:var(--muted);margin-top:2px}.message-link{color:var(--primary);text-decoration:underline;word-break:break-all;transition:color .2s}.message-link:hover{color:var(--primary-hover);text-decoration:underline}.news-link{color:var(--primary);text-decoration:underline;word-break:break-all;transition:color .2s}.news-link:hover{color:var(--primary-hover)}.bubble-link-preview{margin:6px 0}.bubble-link-preview:first-child{margin-top:6px}.bubble-link-preview:last-child{margin-bottom:6px}.bubble-link-preview-link{display:block;text-decoration:none;color:inherit}.bubble-link-preview-content{padding:12px;background:var(--bg);border:1px solid var(--border);border-radius:12px;transition:all .2s}.bubble-link-preview-link:hover .bubble-link-preview-content{background:var(--surface);border-color:var(--primary)}.bubble-link-preview-title{font-size:14px;font-weight:500;color:var(--text);margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;line-height:1.4}.bubble-link-preview-url{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;padding:0;background:0 0;color:var(--muted);border:none;border-radius:8px;cursor:pointer;transition:all .2s;flex-shrink:0}.file-btn:hover{background:var(--bg);color:var(--text)}.file-btn:active{transform:scale(.95)}.image-modal{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.9);backdrop-filter:blur(4px);overflow:hidden}.image-modal-overlay{position:absolute;top:0;left:0;right:0;bottom:0;cursor:pointer}.image-modal-content{position:relative;max-width:90vw;max-height:90vh;display:flex;align-items:center;justify-content:center;touch-action:none;overflow:hidden}.image-modal-content img{max-width:100%;max-height:90vh;object-fit:contain;border-radius:8px;user-select:none;-webkit-user-drag:none;transform-origin:center center;will-change:transform}.image-modal-close{position:fixed;top:20px;right:20px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;padding:0;background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:50%;cursor:pointer;transition:all .2s;z-index:1001;backdrop-filter:blur(8px)}.image-modal-close:hover{background:rgba(255,255,255,.2);transform:scale(1.1)}.image-modal-download{position:fixed;top:20px;right:74px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;padding:0;background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:50%;cursor:pointer;transition:all .2s;z-index:1001;backdrop-filter:blur(8px)}.image-modal-download:hover{background:rgba(255,255,255,.2);transform:scale(1.1)}.image-modal-nav{position:fixed;top:50%;transform:translateY(-50%);width:48px;height:48px;display:flex;align-items:center;justify-content:center;padding:0;background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:50%;cursor:pointer;transition:all .2s;z-index:1001;backdrop-filter:blur(8px);opacity:.7}.image-modal-nav:hover{background:rgba(255,255,255,.2);opacity:1;transform:translateY(-50%) scale(1.1)}.image-modal-prev{left:20px}.image-modal-next{right:20px}.image-modal-nav:disabled{opacity:.3;cursor:not-allowed}.image-modal-nav:disabled:hover{transform:translateY(-50%);background:rgba(255,255,255,.1)}.image-modal-info{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);padding:8px 16px;background:rgba(0,0,0,.6);color:#fff;border-radius:20px;font-size:14px;z-index:1001;backdrop-filter:blur(8px)}@media (max-width:768px){.image-modal-close{top:10px;right:10px;width:40px;height:40px}.image-modal-download{top:10px;right:60px;width:40px;height:40px}.image-modal-nav{width:44px;height:44px}.image-modal-prev{left:10px}.image-modal-next{right:10px}.image-modal-info{bottom:10px;font-size:12px;padding:6px 12px}.image-modal-content{max-width:95vw;max-height:95vh}.image-modal-content img{max-height:95vh}}.send-icon{width:20px;height:20px;stroke:currentColor;transition:transform .2s}.send-btn:hover .send-icon{transform:translateX(1px)}.voice-btn{width:48px;height:48px;display:flex;align-items:center;justify-content:center;padding:0;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:50%;cursor:pointer;transition:all .2s ease;flex-shrink:0;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.voice-btn:hover{background:var(--primary);color:#fff;border-color:var(--primary);transform:translateY(-1px)}.voice-btn:active{transform:translateY(0)}.voice-btn:focus{outline:0}.voice-btn.recording{background:#ef4444;color:#fff;border-color:#ef4444;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.7}}.voice-icon{width:20px;height:20px;stroke:currentColor;transition:transform .2s}.chat-panel::-webkit-scrollbar,.messages::-webkit-scrollbar{width:6px}.chat-panel::-webkit-scrollbar-track,.messages::-webkit-scrollbar-track{background:0 0}.chat-panel::-webkit-scrollbar-thumb,.messages::-webkit-scrollbar-thumb{background:0 0;border-radius:999px;transition:background .2s}.chat-panel:hover::-webkit-scrollbar-thumb,.messages:hover::-webkit-scrollbar-thumb{background:rgba(203,213,225,.5)}.chat-panel.scrolling::-webkit-scrollbar-thumb,.chat-panel:active::-webkit-scrollbar-thumb,.messages.scrolling::-webkit-scrollbar-thumb,.messages:active::-webkit-scrollbar-thumb{background:rgba(203,213,225,.8)}:root[data-theme=dark] .chat-panel::-webkit-scrollbar-thumb,:root[data-theme=dark] .messages::-webkit-scrollbar-thumb,body[data-theme=dark] .chat-panel::-webkit-scrollbar-thumb,body[data-theme=dark] .messages::-webkit-scrollbar-thumb{background:0 0}:root[data-theme=dark] .chat-panel:hover::-webkit-scrollbar-thumb,:root[data-theme=dark] .messages:hover::-webkit-scrollbar-thumb,body[data-theme=dark] .chat-panel:hover::-webkit-scrollbar-thumb,body[data-theme=dark] .messages:hover::-webkit-scrollbar-thumb{background:rgba(148,163,184,.5)}:root[data-theme=dark] .chat-panel.scrolling::-webkit-scrollbar-thumb,:root[data-theme=dark] .chat-panel:active::-webkit-scrollbar-thumb,:root[data-theme=dark] .messages.scrolling::-webkit-scrollbar-thumb,:root[data-theme=dark] .messages:active::-webkit-scrollbar-thumb,body[data-theme=dark] .chat-panel.scrolling::-webkit-scrollbar-thumb,body[data-theme=dark] .chat-panel:active::-webkit-scrollbar-thumb,body[data-theme=dark] .messages.scrolling::-webkit-scrollbar-thumb,body[data-theme=dark] .messages:active::-webkit-scrollbar-thumb{background:rgba(148,163,184,.8)}.scroll-to-bottom-btn{position:fixed;bottom:100px;right:24px;width:48px;height:48px;display:flex;align-items:center;justify-content:center;padding:0;background:var(--surface);border:1px solid var(--border);border-radius:50%;color:var(--primary);cursor:pointer;transition:all .3s ease;box-shadow:var(--shadow);z-index:100;-webkit-tap-highlight-color:transparent;opacity:0;transform:translateY(10px) scale(.9);pointer-events:none}.scroll-to-bottom-btn.show{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.scroll-to-bottom-btn-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#ef4444;color:#fff;font-size:11px;font-weight:600;line-height:18px;text-align:center;box-shadow:0 1px 4px rgba(0,0,0,.25);pointer-events:none;z-index:1}.scroll-to-bottom-btn.has-new{background:var(--surface);border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 30%,transparent),var(--shadow)}.scroll-to-bottom-btn.has-new:hover{background:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 45%,transparent),0 6px 16px color-mix(in srgb,var(--primary) 35%,transparent)}@keyframes scroll-to-bottom-pulse{0%,100%{box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 30%,transparent),var(--shadow)}50%{box-shadow:0 0 0 5px color-mix(in srgb,var(--primary) 45%,transparent),0 4px 14px color-mix(in srgb,var(--primary) 25%,transparent)}}@media (prefers-reduced-motion:reduce){.scroll-to-bottom-btn.has-new{animation:none}}.scroll-to-bottom-btn:hover{transform:translateY(-2px) scale(1.05);box-shadow:0 4px 12px rgba(37,99,235,.3);background:var(--primary);color:#fff}.scroll-to-bottom-btn:active{transform:translateY(0) scale(.95)}@media (max-width:768px){.scroll-to-bottom-btn{bottom:94px;right:16px;width:44px;height:44px}}.hero-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}.my-rooms-container{width:100%;max-width:600px;animation:fadeIn .3s ease}.my-rooms-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.my-rooms-header .card-title{margin:0}.icon-btn-settings{width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text);cursor:pointer;transition:all .2s;flex-shrink:0}.icon-btn-settings:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.icon-btn-settings:active{transform:translateY(1px)}.icon-btn-settings svg{stroke:currentColor}.my-rooms-list{max-height:400px;overflow-y:auto;padding:2px 0}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.modal-header h3{margin:0}.modal-header-spacer{width:36px;height:36px;flex-shrink:0}.icon-btn-close{width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text);cursor:pointer;transition:all .2s;flex-shrink:0}.icon-btn-close:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.icon-btn-close:active{transform:translateY(1px)}.account-section{margin:0;padding:0}.account-actions-row{display:flex;gap:8px;margin-top:8px;align-items:center;flex-wrap:nowrap}.account-name-input{flex:1;padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);font-family:inherit;font-size:16px;min-width:0;transition:all .2s}.account-name-input:hover{border-color:var(--primary);background:var(--surface)}.account-name-input:focus{outline:0;border-color:var(--primary);background:var(--surface)}.account-id-input{flex:1;padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);font-family:Monaco,Menlo,'Courier New',monospace;font-size:13px;cursor:pointer;transition:all .2s;min-width:0}.account-id-input:hover{border-color:var(--primary);background:var(--surface)}.account-id-input:focus{outline:0;border-color:var(--primary);background:var(--surface)}.icon-btn-copy{width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text);cursor:pointer;transition:all .2s;flex-shrink:0}.icon-btn-copy:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.icon-btn-copy:active{transform:translateY(1px)}.icon-btn-copy svg{stroke:currentColor}.icon-btn-edit{width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text);cursor:pointer;transition:all .2s;flex-shrink:0}.icon-btn-edit:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.icon-btn-edit:active{transform:translateY(1px)}.icon-btn-edit svg{stroke:currentColor}.icon-btn-save{width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text);cursor:pointer;transition:all .2s;flex-shrink:0}.icon-btn-save:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.icon-btn-save:active{transform:translateY(1px)}.icon-btn-save svg{stroke:currentColor}.account-id-input:not([readonly]){cursor:text;background:var(--surface)}.account-id-input.editing{cursor:text;background:var(--surface);border-color:var(--primary)}.account-id-input,.account-name-input{height:36px;box-sizing:border-box}.room-item{padding:12px;border:1px solid var(--border);border-radius:12px;margin-bottom:8px;background:var(--surface);cursor:pointer;transition:all .2s ease;position:relative}.room-item:hover{background:rgba(37,99,235,.05);border-color:var(--primary);transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.1)}:root[data-theme=dark] .room-item:hover,body[data-theme=dark] .room-item:hover{background:rgba(59,130,246,.1);border-color:var(--primary)}.room-item:active{transform:translateY(0)}.room-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.room-item-id{font-weight:700}.room-item-meta{font-size:12px}.delete-room-btn{padding:6px 12px;background:0 0;color:#ef4444;border:1px solid #ef4444;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;z-index:1;position:relative}.delete-room-btn:hover{background:#ef4444;color:#fff}.delete-room-btn:active{transform:translateY(1px)}.leave-room-btn{padding:6px 12px;background:0 0;color:#ef4444;border:1px solid #ef4444;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;z-index:1;position:relative}.leave-room-btn:hover{background:#ef4444;color:#fff}.leave-room-btn:active{transform:translateY(1px)}#delete-room-confirm-btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.create-btn{margin-top:24px;font-size:16px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000;backdrop-filter:blur(4px)}.modal-content{max-width:600px;width:90%;animation:slideUp .3s ease}@keyframes slideUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-form{display:flex;flex-direction:column;gap:12px;margin-top:16px}.date-picker-modal-content{max-width:360px}.room-users-modal-content{max-width:420px}.room-users-body{margin-top:12px;max-height:60vh;overflow-y:auto}.room-users-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.room-users-item{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:10px;background:var(--surface);border:1px solid var(--border);box-shadow:0 1px 0 rgba(15,23,42,.04)}.room-users-status-dot{width:10px;height:10px;border-radius:999px;margin-top:6px}.room-users-status-dot.online{background-color:#22c55e}.room-users-status-dot.offline{background-color:#9ca3af}.room-users-main{flex:1;min-width:0}.room-users-name-row{display:flex;align-items:center;gap:6px;margin-bottom:2px}.room-users-name{font-weight:600;color:var(--text);word-break:break-all}.room-users-owner-badge{font-size:11px;padding:2px 6px;border-radius:999px;background:rgba(37,99,235,.1);color:#1d4ed8}.room-users-meta{font-size:12px;color:var(--muted)}.date-picker-body{display:flex;flex-direction:column;margin-top:16px}.date-picker-input-wrapper{position:relative;display:flex;align-items:center;min-height:44px;padding:0 40px 0 14px;font-size:16px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);cursor:pointer;overflow:hidden}.date-picker-input{position:absolute;inset:0;cursor:pointer;font-size:16px;background:0 0;color:transparent;caret-color:transparent;border:none;outline:0;box-shadow:none}.date-picker-input::-webkit-datetime-edit{opacity:0}.date-picker-input::-webkit-datetime-edit-fields-wrapper{opacity:0}.date-picker-input::-moz-datetime-edit-text,.date-picker-input::-webkit-datetime-edit-text{color:transparent}.date-picker-input::-webkit-calendar-picker-indicator{position:absolute;right:10px;width:20px;height:20px;cursor:pointer;opacity:.7}@media (hover:none) and (pointer:coarse){.date-picker-input{-webkit-appearance:none;appearance:none}}:root[data-theme=dark] .date-picker-input::-webkit-calendar-picker-indicator,body[data-theme=dark] .date-picker-input::-webkit-calendar-picker-indicator{filter:invert(1);opacity:.9}.date-picker-display{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-variant-numeric:tabular-nums;pointer-events:none;z-index:1}.date-picker-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.date-picker-actions .primary,.date-picker-actions .secondary{min-width:80px}@media (max-width:768px){.modal-content .primary,.modal-content .secondary{font-size:1rem}}.custom-link-hint{display:flex;flex-direction:column;gap:4px}@media (max-width:960px){.landing-hero h1{font-size:36px}.landing-subtitle{font-size:16px}.hero-actions{flex-direction:column}.hero-actions .large-btn{width:100%}.chat-shell{padding:0;height:100vh;height:100dvh;height:var(--viewport-height,100dvh)}.topbar{padding:10px 14px;margin:8px 8px 0 8px;border-radius:12px}.chat-panel{margin:8px;border-radius:12px}.composer{padding:10px 14px;padding-bottom:calc(10px + env(safe-area-inset-bottom));margin:0 8px 8px;margin-bottom:calc(8px + env(safe-area-inset-bottom));border-radius:12px}.is-ios .composer{padding-bottom:10px;margin-bottom:8px}.inline-input{flex-direction:column;align-items:stretch}}.media-btn{width:48px;height:48px;display:flex;align-items:center;justify-content:center;padding:0;background:0 0;color:var(--muted);border:1px solid var(--border);border-radius:50%;cursor:pointer;transition:all .2s;flex-shrink:0;-webkit-tap-highlight-color:transparent;touch-action:manipulation;position:relative}.media-btn:hover{background:var(--bg);color:var(--primary);border-color:var(--primary)}.media-btn:active{transform:scale(.95)}.media-btn:focus{outline:0}.media-menu{position:absolute;bottom:calc(100% + 8px);right:0;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.15);padding:8px;display:flex;flex-direction:column;gap:4px;z-index:1000;min-width:120px}:root[data-theme=dark] .media-menu,body[data-theme=dark] .media-menu{box-shadow:0 8px 24px rgba(0,0,0,.4)}.media-menu-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:0 0;border:none;border-radius:8px;color:var(--text);cursor:pointer;transition:background .2s;text-align:left;font-size:14px;font-weight:500;white-space:nowrap}.media-menu-item:hover{background:var(--bg)}.media-menu-item:active{background:var(--bg);transform:scale(.98)}.media-menu-item svg{flex-shrink:0;color:var(--muted)}.media-menu-item:hover svg{color:var(--primary)}.media-btn{display:flex}.file-btn,.image-btn,.voice-btn{display:none}.composer{position:relative}.emoji-picker{position:absolute;bottom:calc(100% + 8px);left:0;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.15);z-index:1001;max-width:360px;min-width:280px}:root[data-theme=dark] .emoji-picker,body[data-theme=dark] .emoji-picker{box-shadow:0 8px 24px rgba(0,0,0,.4)}.emoji-picker-content{padding:12px}.emoji-tabs{display:flex;gap:4px;padding:8px;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.emoji-tabs::-webkit-scrollbar{display:none}.emoji-tab{padding:6px 12px;border:none;background:0 0;color:var(--muted);font-size:13px;font-weight:500;cursor:pointer;border-radius:6px;white-space:nowrap;transition:all .2s;flex-shrink:0}.emoji-tab:hover{background:var(--bg);color:var(--text)}.emoji-tab.active{background:var(--primary);color:#fff}.emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;height:200px;overflow-y:auto}.emoji-item{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:24px;border-radius:8px;cursor:pointer;transition:background .2s;user-select:none;-webkit-tap-highlight-color:transparent}.emoji-item:hover{background:var(--bg)}.emoji-item:active{background:var(--bg);transform:scale(.95)}@media (max-width:768px){.emoji-picker{max-width:calc(100vw - 24px);min-width:auto;left:0;right:0;width:calc(100vw - 24px)}.emoji-grid{grid-template-columns:repeat(7,1fr);max-height:180px}.emoji-item{width:40px;height:40px;font-size:28px}}.message-context-menu{position:fixed;min-width:150px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.15);z-index:2000;padding:4px;display:flex;flex-direction:column;gap:0;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}:root[data-theme=dark] .message-context-menu,body[data-theme=dark] .message-context-menu{box-shadow:0 8px 24px rgba(0,0,0,.4)}.context-menu-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border:none;background:0 0;color:var(--text);font-size:14px;cursor:pointer;border-radius:8px;transition:background .2s;text-align:left;width:100%;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;position:relative}.context-menu-item:not(:last-child)::after{content:'';position:absolute;left:8px;right:8px;bottom:0;border-top:1px dashed var(--border)}.context-menu-item:last-child::after{display:none}.message-context-menu>.context-menu-item.context-menu-last-visible::after,.message-context-menu>.context-menu-quick-row.context-menu-last-visible::after{display:none}.context-menu-quick-row{display:flex;position:relative;padding:2px 0}.context-menu-quick-row::after{content:'';position:absolute;left:8px;right:8px;bottom:0;border-top:1px dashed var(--border)}.context-menu-quick-row .context-menu-item{flex:1;justify-content:center;width:auto;min-width:0;padding:8px 6px}.context-menu-quick-row .context-menu-item::after{display:none}.context-menu-quick-row .context-menu-item:not(:last-child){border-right:1px dashed var(--border);border-radius:0}.context-menu-quick-row .context-menu-item:first-child{border-radius:8px 8px 0 0}.context-menu-quick-row .context-menu-item:last-child{border-radius:0 0 8px 8px}.context-menu-quick-row .context-menu-item:only-child{border-radius:8px}.context-menu-item:hover{background:var(--bg)}.context-menu-item-danger{color:#e11d48}.context-menu-item-danger:hover{background:rgba(225,29,72,.1)}.context-menu-item svg{flex-shrink:0;display:block;transform:translateY(1px)}.context-menu-item span{padding-top:2px}.reaction-picker{position:fixed;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.15);z-index:2001;padding:8px}:root[data-theme=dark] .reaction-picker,body[data-theme=dark] .reaction-picker{box-shadow:0 8px 24px rgba(0,0,0,.4)}.reaction-picker-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.reaction-picker-item{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:20px;border-radius:8px;cursor:pointer;transition:background .2s,transform .1s;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.reaction-picker-item:hover{background:var(--bg);transform:scale(1.1)}.reaction-picker-item:active{transform:scale(.95)}.reply-preview{position:absolute;left:0;right:0;bottom:calc(100% + 8px);padding:12px;background:rgba(255,255,255,.75);border:1px solid var(--border);border-radius:12px;box-shadow:0 -2px 8px rgba(0,0,0,.1),0 -1px 2px rgba(0,0,0,.05);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:20}.reply-preview-content{display:flex;flex-direction:column;gap:6px}.reply-preview-header{display:flex;align-items:center;justify-content:space-between}.reply-preview-label{font-size:12px;font-weight:600;color:var(--primary)}.reply-preview-close{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:none;background:0 0;color:var(--muted);cursor:pointer;border-radius:4px;padding:0;transition:background .2s}.reply-preview-close:hover{background:var(--surface)}.reply-preview-body{background:var(--surface);border-left:3px solid var(--primary);border-radius:6px;padding:8px 10px;font-size:13px;color:var(--muted);max-height:60px;overflow:hidden}.reply-preview-body .reply-preview-sender{font-weight:600;color:var(--primary);margin-bottom:4px}.reply-preview-body .reply-preview-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:root[data-theme=dark] .reply-preview,body[data-theme=dark] .reply-preview{background:rgba(15,23,42,.75);box-shadow:0 -2px 8px rgba(0,0,0,.3),0 -1px 2px rgba(0,0,0,.2)}:root[data-theme=dark] .image-preview,body[data-theme=dark] .image-preview{background:rgba(15,23,42,.75);box-shadow:0 -2px 8px rgba(0,0,0,.3),0 -1px 2px rgba(0,0,0,.2)}:root[data-theme=dark] .file-preview,body[data-theme=dark] .file-preview{background:rgba(15,23,42,.75);box-shadow:0 -2px 8px rgba(0,0,0,.3),0 -1px 2px rgba(0,0,0,.2)}.bubble-reply{background:var(--bg);border-left:3px solid var(--primary);border-radius:6px;padding:8px 10px;margin-top:8px;margin-bottom:8px;cursor:pointer;transition:background .2s}.bubble-reply:hover{background:var(--surface)}.bubble-reply-sender{font-weight:600;font-size:12px;color:var(--primary);margin-bottom:4px}.bubble-reply-content{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bubble-reply-deleted{font-style:italic;opacity:.6}.bubble-reactions{display:flex;flex-wrap:wrap;gap:4px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}:root[data-theme=dark] .bubble-row.right .bubble-reactions,body[data-theme=dark] .bubble-row.right .bubble-reactions{border-top-color:#374151}.reaction-item{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:var(--bg);border:1px solid var(--border);border-radius:12px;font-size:13px;cursor:pointer;transition:background .2s;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.reaction-item:hover{background:var(--surface)}.reaction-item-emoji{font-size:14px}.reaction-item-count{font-weight:600;color:var(--text)}.reaction-item-active{background:rgba(37,99,235,.1);border-color:var(--primary)}.bubble-edited{font-size:11px;color:var(--muted);font-style:italic;margin-left:6px}.bubble-deleted{opacity:.6;font-style:italic;color:var(--muted)}.bubble-deleted-content{font-size:12px;padding-top:4px;color:var(--muted)}.bubble-row.swiping{transition:transform .2s}@media (max-width:768px){.message-context-menu{min-width:180px}.reaction-picker-grid{grid-template-columns:repeat(3,1fr)}.reaction-picker-item{width:40px;height:40px;font-size:24px}}.learn-panel{margin-top:10px;padding:0;background:rgba(255,255,255,.05);border-radius:10px;border:1px solid rgba(var(--accent-rgb,74,144,226),.3);font-size:.9em;animation:slideDown .3s ease;backdrop-filter:blur(10px);overflow:hidden;box-shadow:0 4px 12px rgba(0,0,0,.1);user-select:text;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text}.learn-panel-header{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:rgba(var(--accent-rgb,74,144,226),.15);border-bottom:1px solid rgba(var(--accent-rgb,74,144,226),.2)}.learn-panel-title{font-weight:600;color:var(--accent-color);font-size:.95em}.learn-panel-close{background:0 0;border:none;color:var(--text);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s;opacity:.7}.learn-panel-close:hover{background:rgba(255,255,255,.1);opacity:1}.learn-panel-close:active{transform:scale(.95)}.learn-section{margin:0;padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.05)}.learn-section:last-child{border-bottom:none}.learn-label{font-weight:600;margin-bottom:6px;opacity:.9;font-size:.85em;color:var(--accent-color);display:flex;align-items:center;gap:4px}.learn-phonetic{font-family:'Courier New',Monaco,monospace;color:var(--accent-color);font-size:1.05em;padding:6px 10px;background:rgba(255,255,255,.05);border-radius:6px;display:inline-block;border:1px solid rgba(var(--accent-rgb,74,144,226),.2)}.learn-phonetic[data-pronounce=true]{cursor:pointer;transition:all .2s ease}.learn-phonetic[data-pronounce=true]:hover{background:rgba(var(--accent-rgb,74,144,226),.15);transform:translateY(-1px);box-shadow:0 2px 4px rgba(0,0,0,.1)}.learn-phonetic[data-pronounce=true]:active{transform:translateY(0)}.learn-pronunciation-block .learn-pronunciation-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.learn-pronunciation-block .learn-pronunciation-header .learn-label{margin-bottom:0}.learn-pronunciation-slow{display:inline-flex;align-items:center;justify-content:center;padding:4px 8px;min-width:28px;border-radius:6px;border:1px solid rgba(var(--accent-rgb,74,144,226),.4);background:rgba(255,255,255,.05);color:var(--accent-color);cursor:pointer;transition:all .2s}.learn-pronunciation-slow svg{display:block}.learn-pronunciation-slow:hover{background:rgba(var(--accent-rgb,74,144,226),.15)}.learn-pronunciation-slow.active{background:rgba(var(--accent-rgb,74,144,226),.25);border-color:rgba(var(--accent-rgb,74,144,226),.6)}.learn-pronunciation-content{cursor:pointer;padding:8px 10px;background:rgba(255,255,255,.03);border-radius:6px;border:1px solid rgba(255,255,255,.06);transition:background .2s}.learn-pronunciation-content:hover{background:rgba(255,255,255,.06)}.learn-pronunciation-pairs{display:flex;flex-wrap:wrap;align-items:flex-end;gap:4px 10px;line-height:1.5}.learn-pronunciation-pair{display:flex;flex-direction:column;align-items:center;gap:2px;padding:3px 6px;border-radius:6px;background:rgba(255,255,255,.05);transition:background .2s ease,box-shadow .2s ease}.learn-pronunciation-pair:has(.learn-pronunciation-phonetic-segment.active),.learn-pronunciation-pair:has(.learn-pronunciation-word.active){background:rgba(var(--accent-rgb,74,144,226),.28);box-shadow:0 0 0 1px rgba(var(--accent-rgb,74,144,226),.5)}.learn-pronunciation-pair .learn-pronunciation-phonetic-segment{font-family:'Courier New',Monaco,monospace;color:var(--accent-color);font-size:1.05em}.learn-pronunciation-block .learn-pronunciation-line{line-height:1.6;padding:2px 0;font-size:1em}.learn-pronunciation-block .learn-pronunciation-phonetic{font-family:'Courier New',Monaco,monospace;color:var(--accent-color);font-size:1.05em}.learn-pronunciation-phonetic-line{font-family:'Courier New',Monaco,monospace;color:var(--accent-color);font-size:1.05em;word-spacing:0.05em}.learn-pronunciation-phonetic-segment{padding:2px 2px;border-radius:3px;transition:background .15s ease}.learn-sentence-pronunciation-words{margin-top:6px;word-spacing:0.05em}.learn-pronunciation-word{padding:2px 2px;border-radius:3px;transition:background .15s ease}.learn-pronunciation-phonetic-segment.active,.learn-pronunciation-word.active{background:rgba(var(--accent-rgb,74,144,226),.5);color:#fff;font-weight:600}.learn-pronunciation-phonetic-segment.pronunciation-hover,.learn-pronunciation-word.pronunciation-hover{background:rgba(var(--accent-rgb,74,144,226),.22);color:var(--text)}.learn-translation{color:rgba(255,255,255,.9);line-height:1.5;padding:8px 10px;background:rgba(255,255,255,.04);border-radius:6px;border:1px solid rgba(255,255,255,.06)}.learn-text{line-height:1.6;padding:4px 0}.learn-word{padding:2px 6px;background:rgba(var(--accent-rgb,74,144,226),.25);border-radius:4px;cursor:pointer;transition:all .2s;display:inline-block;font-weight:500;border:1px solid rgba(var(--accent-rgb,74,144,226),.3)}.learn-word:hover{background:rgba(var(--accent-rgb,74,144,226),.4);transform:translateY(-1px);box-shadow:0 2px 4px rgba(0,0,0,.1)}.learn-vocab-list{display:flex;flex-direction:column;gap:8px}.learn-vocab-item{padding:10px 12px;background:rgba(255,255,255,.04);border-radius:8px;border-left:3px solid rgba(var(--accent-rgb,74,144,226),.6);transition:all .2s}.learn-vocab-item:hover{background:rgba(255,255,255,.06);transform:translateX(2px)}.learn-vocab-item strong{color:var(--accent-color);font-size:1.05em}.learn-vocab-phonetic{color:rgba(255,255,255,.65);font-family:'Courier New',Monaco,monospace;font-size:.9em;margin-left:8px}.learn-vocab-meaning{color:rgba(255,255,255,.8);font-size:.9em;margin-top:5px;line-height:1.4}.learn-vocab-usage{color:rgba(255,255,255,.65);font-size:.85em;font-style:italic;margin-top:4px;padding-left:10px;border-left:2px solid rgba(255,255,255,.15);line-height:1.4}.learn-usage{color:rgba(255,255,255,.8);line-height:1.5;padding:8px 10px;background:rgba(255,255,255,.03);border-radius:6px;border:1px solid rgba(255,255,255,.05)}.learn-loading{text-align:center;padding:24px;color:rgba(255,255,255,.6);font-size:.95em}.learn-error{color:#ff6b6b;padding:12px;text-align:center;background:rgba(255,107,107,.1);border-radius:6px;margin:8px}:root:not([data-theme]) .learn-panel,:root[data-theme=light] .learn-panel,body:not([data-theme]) .learn-panel,body[data-theme=light] .learn-panel{background:rgba(255,255,255,.95);border-color:rgba(var(--accent-rgb,74,144,226),.4);color:#1f2937}:root:not([data-theme]) .learn-panel-header,:root[data-theme=light] .learn-panel-header,body:not([data-theme]) .learn-panel-header,body[data-theme=light] .learn-panel-header{background:rgba(var(--accent-rgb,74,144,226),.12)}:root:not([data-theme]) .learn-label,:root[data-theme=light] .learn-label,body:not([data-theme]) .learn-label,body[data-theme=light] .learn-label{color:var(--accent-color);opacity:1}:root:not([data-theme]) .learn-phonetic,:root[data-theme=light] .learn-phonetic,body:not([data-theme]) .learn-phonetic,body[data-theme=light] .learn-phonetic{background:rgba(var(--accent-rgb,74,144,226),.08);color:var(--accent-color);border-color:rgba(var(--accent-rgb,74,144,226),.3)}:root:not([data-theme]) .learn-text,:root[data-theme=light] .learn-text,body:not([data-theme]) .learn-text,body[data-theme=light] .learn-text{color:#374151}:root:not([data-theme]) .learn-word,:root[data-theme=light] .learn-word,body:not([data-theme]) .learn-word,body[data-theme=light] .learn-word{background:rgba(var(--accent-rgb,74,144,226),.15);border-color:rgba(var(--accent-rgb,74,144,226),.4)}:root:not([data-theme]) .learn-vocab-item,:root[data-theme=light] .learn-vocab-item,body:not([data-theme]) .learn-vocab-item,body[data-theme=light] .learn-vocab-item{background:rgba(var(--accent-rgb,74,144,226),.05);color:#1f2937}:root:not([data-theme]) .learn-vocab-item:hover,:root[data-theme=light] .learn-vocab-item:hover,body:not([data-theme]) .learn-vocab-item:hover,body[data-theme=light] .learn-vocab-item:hover{background:rgba(var(--accent-rgb,74,144,226),.1)}:root:not([data-theme]) .learn-vocab-item strong,:root[data-theme=light] .learn-vocab-item strong,body:not([data-theme]) .learn-vocab-item strong,body[data-theme=light] .learn-vocab-item strong{color:var(--accent-color)}:root:not([data-theme]) .learn-vocab-phonetic,:root[data-theme=light] .learn-vocab-phonetic,body:not([data-theme]) .learn-vocab-phonetic,body[data-theme=light] .learn-vocab-phonetic{color:#6b7280}:root:not([data-theme]) .learn-vocab-meaning,:root[data-theme=light] .learn-vocab-meaning,body:not([data-theme]) .learn-vocab-meaning,body[data-theme=light] .learn-vocab-meaning{color:#374151}:root:not([data-theme]) .learn-vocab-usage,:root[data-theme=light] .learn-vocab-usage,body:not([data-theme]) .learn-vocab-usage,body[data-theme=light] .learn-vocab-usage{color:#6b7280}:root:not([data-theme]) .learn-usage,:root[data-theme=light] .learn-usage,body:not([data-theme]) .learn-usage,body[data-theme=light] .learn-usage{color:#374151;background:rgba(var(--accent-rgb,74,144,226),.05);border-color:rgba(var(--accent-rgb,74,144,226),.15)}:root:not([data-theme]) .learn-translation,:root[data-theme=light] .learn-translation,body:not([data-theme]) .learn-translation,body[data-theme=light] .learn-translation{color:#374151;background:rgba(var(--accent-rgb,74,144,226),.05);border-color:rgba(var(--accent-rgb,74,144,226),.15)}:root:not([data-theme]) .learn-section,:root[data-theme=light] .learn-section,body:not([data-theme]) .learn-section,body[data-theme=light] .learn-section{border-bottom-color:rgba(0,0,0,.08)}:root:not([data-theme]) .learn-pronunciation-pair,:root[data-theme=light] .learn-pronunciation-pair,body:not([data-theme]) .learn-pronunciation-pair,body[data-theme=light] .learn-pronunciation-pair{background:rgba(0,0,0,.07)}:root:not([data-theme]) .learn-pronunciation-pair:has(.learn-pronunciation-phonetic-segment.active),:root:not([data-theme]) .learn-pronunciation-pair:has(.learn-pronunciation-word.active),:root[data-theme=light] .learn-pronunciation-pair:has(.learn-pronunciation-phonetic-segment.active),:root[data-theme=light] .learn-pronunciation-pair:has(.learn-pronunciation-word.active),body:not([data-theme]) .learn-pronunciation-pair:has(.learn-pronunciation-phonetic-segment.active),body:not([data-theme]) .learn-pronunciation-pair:has(.learn-pronunciation-word.active),body[data-theme=light] .learn-pronunciation-pair:has(.learn-pronunciation-phonetic-segment.active),body[data-theme=light] .learn-pronunciation-pair:has(.learn-pronunciation-word.active){background:rgba(var(--accent-rgb,74,144,226),.2);box-shadow:0 0 0 1px rgba(var(--accent-rgb,74,144,226),.4)}:root[data-theme=dark] .learn-panel,body[data-theme=dark] .learn-panel{background:rgba(0,0,0,.3);border-color:rgba(var(--accent-rgb,74,144,226),.4)}:root[data-theme=dark] .learn-panel-header,body[data-theme=dark] .learn-panel-header{background:rgba(var(--accent-rgb,74,144,226),.2)}:root[data-theme=dark] .learn-vocab-item,body[data-theme=dark] .learn-vocab-item{background:rgba(255,255,255,.02)}:root[data-theme=dark] .learn-vocab-item:hover,body[data-theme=dark] .learn-vocab-item:hover{background:rgba(255,255,255,.05)}@keyframes slideDown{from{opacity:0;transform:translateY(-10px);max-height:0}to{opacity:1;transform:translateY(0);max-height:1000px}}.command-autocomplete{position:absolute;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.2);max-height:300px;overflow-y:auto;z-index:10000;animation:slideUp .2s ease-out;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);pointer-events:auto;bottom:100%;margin-bottom:8px}@keyframes slideUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.command-item{padding:8px 12px;cursor:pointer;border-bottom:1px solid var(--border);transition:background-color .15s ease}.command-item:last-child{border-bottom:none}.command-item:hover{background:var(--hover)}.command-item.selected{background:var(--primary);background:rgba(59,130,246,.1)}.command-item.selected .command-name{font-weight:700}[data-theme=dark] .command-item.selected{background:rgba(59,130,246,.15)}.command-name{font-size:13px;font-weight:600;color:var(--primary);margin-bottom:2px;font-family:'SF Mono',Consolas,Monaco,monospace}.command-description{font-size:12px;color:var(--text-secondary);margin-bottom:2px;line-height:1.3}.command-usage{font-size:11px;color:var(--text-tertiary);font-family:'SF Mono',Consolas,Monaco,monospace;font-style:italic}.share-feedback-toast{position:fixed;bottom:100px;left:50%;transform:translateX(-50%);padding:10px 20px;background:var(--surface);border:1px solid var(--border);border-radius:12px;font-size:14px;color:var(--text);box-shadow:var(--shadow);z-index:10000;animation:shareToastFade 2.5s ease-out forwards}@keyframes shareToastFade{0%,70%{opacity:1}100%{opacity:0;pointer-events:none}}[data-theme=dark] .command-autocomplete{box-shadow:0 8px 24px rgba(0,0,0,.6);background:rgba(30,30,30,.5)}[data-theme=light] .command-autocomplete{background:rgba(255,255,255,.5)}@media (prefers-color-scheme:dark){[data-theme=auto] .command-autocomplete{box-shadow:0 8px 24px rgba(0,0,0,.6);background:rgba(30,30,30,.5)}}@media (prefers-color-scheme:light){[data-theme=auto] .command-autocomplete{background:rgba(255,255,255,.5)}}@media (max-width:768px){.command-autocomplete{max-width:calc(100vw - 48px)}.command-item{padding:10px 12px}.command-name{font-size:13px}.command-description{font-size:12px}.command-usage{font-size:11px}}