:root{--bg: #0e0e0f;--surface: #181819;--surface2: #222224;--surface3: #2c2c2f;--border: rgba(255, 255, 255, .07);--accent: #f2f2f2;--accent-on: #111111;--accent-dim: rgba(255, 255, 255, .08);--accent-glow: rgba(255, 255, 255, .14);--text: #f0ede8;--text-muted: #8a8880;--text-faint: #4a4a4d;--danger: #e07070;--radius: 18px;--radius-sm: 10px}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;overflow:hidden;background:var(--bg)}body{font-family:DM Sans,sans-serif;color:var(--text)}#auth-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;padding:32px 24px;background:var(--bg)}.auth-top-row{width:100%;display:flex;justify-content:flex-end;margin-bottom:12px}.auth-telegram-card{width:100%;max-width:420px;display:flex;align-items:center;gap:12px;margin-bottom:18px;padding:12px 14px;border-radius:18px;border:1px solid var(--border);background:linear-gradient(180deg,#ffffff05,#fff0);box-shadow:0 14px 40px #0000001f;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.auth-telegram-copy{min-width:0}.auth-telegram-title{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);margin-bottom:2px}.auth-telegram-name{font-size:15px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.auth-logo{font-family:Playfair Display,serif;font-size:38px;font-weight:500;color:var(--accent);letter-spacing:-.5px;margin-bottom:8px}.auth-tagline{font-size:13px;color:var(--text-muted);margin-bottom:24px;letter-spacing:.3px;text-align:center}.auth-form{width:100%;max-width:420px}.auth-field{width:100%;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-sm);padding:14px 16px;color:var(--text);font-family:DM Sans,sans-serif;font-size:15px;outline:none;margin-bottom:12px;transition:border-color .2s}.auth-field:focus{border-color:var(--accent)}.auth-btn{width:100%;background:var(--accent);color:var(--accent-on);border:none;border-radius:var(--radius-sm);padding:15px;font-family:DM Sans,sans-serif;font-size:15px;font-weight:600;cursor:pointer;margin-top:4px;letter-spacing:.2px;transition:opacity .15s}.auth-btn:active{opacity:.85}.auth-btn:disabled{opacity:.6;cursor:default}.auth-error{color:var(--danger);font-size:13px;margin-top:8px;text-align:center;min-height:18px}#app{display:flex;flex-direction:column;position:relative;height:var(--tg-viewport-height, 100dvh);overflow:hidden}.view{display:flex;flex-direction:column;flex:1;overflow:hidden;width:100%;height:100%}.list-header{padding:calc(20px + var(--tg-content-safe-area-inset-top, var(--tg-safe-area-inset-top, env(safe-area-inset-top, 0px)))) 20px 12px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border)}.list-actions{display:flex;align-items:center;gap:8px}.list-title{font-family:Playfair Display,serif;font-size:26px;font-weight:500;color:var(--text);letter-spacing:-.3px}.new-chat-btn{width:38px;height:38px;background:var(--surface2);border:1px solid var(--border);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s;color:var(--text)}.new-chat-btn:active{background:var(--surface3)}.new-chat-btn svg{width:18px;height:18px}.locale-switcher{display:inline-flex;border:1px solid var(--border);background:var(--surface2);border-radius:999px;overflow:hidden}.locale-btn{border:none;background:transparent;color:var(--text);font-size:12px;padding:7px 11px;cursor:pointer;opacity:.78}.locale-btn.active{color:var(--bg);background:var(--text);opacity:1;font-weight:600}.chat-list-scroll{flex:1;overflow-y:auto;padding:8px 0}.chat-list-scroll::-webkit-scrollbar,.messages-scroll::-webkit-scrollbar{display:none}.chat-item{display:flex;align-items:center;padding:14px 20px;gap:14px;cursor:pointer;transition:background .12s}.chat-item:active{background:var(--surface2)}.chat-item-avatar{width:44px;height:44px;background:var(--surface2);border-radius:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:20px}.chat-item-info{flex:1;min-width:0}.chat-item-name{font-size:15px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:3px}.chat-item-time{font-size:12px;color:var(--text-faint)}.chat-item-delete{width:32px;height:32px;background:none;border:none;cursor:pointer;color:var(--text-faint);display:flex;align-items:center;justify-content:center;border-radius:8px;transition:color .15s,background .15s;flex-shrink:0}.chat-item-delete:active{color:var(--danger);background:#e070701a}.chat-item-delete svg{width:16px;height:16px}.empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px 32px;text-align:center}.empty-icon{font-size:48px;opacity:.4}.empty-title{font-family:Playfair Display,serif;font-size:20px;color:var(--text-muted)}.empty-sub{font-size:13px;color:var(--text-faint);line-height:1.6}.user-footer{border-top:1px solid var(--border);padding:14px 20px;padding-bottom:calc(14px + var(--tg-content-safe-area-inset-bottom, var(--tg-safe-area-inset-bottom, env(safe-area-inset-bottom, 0px))) + 8px);display:flex;align-items:center;gap:12px;background:var(--surface)}.user-avatar{width:36px;height:36px;background:var(--accent-dim);border:1px solid rgba(232,201,126,.25);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--accent);font-weight:600;flex-shrink:0;overflow:hidden}.user-info{flex:1;min-width:0}.user-name{font-size:14px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-id{font-size:11px;color:var(--text-faint)}.user-avatar .avatar-image,.auth-telegram-avatar .avatar-image{width:100%;height:100%;object-fit:cover;display:block}.user-avatar .avatar-fallback,.auth-telegram-avatar .avatar-fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.auth-telegram-avatar{width:44px;height:44px;border-radius:16px;background:var(--surface2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}.auth-telegram-avatar .avatar-fallback{color:var(--accent);font-size:14px;font-weight:700}.chat-header{padding:calc(16px + var(--tg-content-safe-area-inset-top, var(--tg-safe-area-inset-top, env(safe-area-inset-top, 0px)))) 16px 12px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--border);flex-shrink:0}.back-btn{width:36px;height:36px;background:none;border:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:10px;transition:background .12s;flex-shrink:0}.back-btn:active{background:var(--surface2)}.back-btn svg{width:20px;height:20px}.chat-header-info{flex:1;min-width:0}.chat-header-name{font-size:16px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-header-sub{font-size:11px;color:var(--text-faint);margin-top:1px}.messages-scroll{flex:1;overflow-y:auto;padding:14px 16px 10px;display:flex;flex-direction:column;gap:12px;scroll-behavior:smooth;overscroll-behavior:contain}.msg{display:flex;flex-direction:column;max-width:82%;animation:msgIn .22s ease both;transition:transform .18s ease,opacity .18s ease}@keyframes msgIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.msg.user{align-self:flex-end;align-items:flex-end}.msg.agent{align-self:flex-start;align-items:flex-start}.msg-bubble{padding:11px 14px;border-radius:16px;font-size:14px;line-height:1.55;word-break:break-word}.msg.user .msg-bubble{background:var(--surface3);border-bottom-right-radius:4px;color:var(--text)}.msg.agent .msg-bubble{background:var(--surface2);border:1px solid var(--border);border-bottom-left-radius:4px;color:var(--text)}.msg-media{--chat-media-size: clamp(152px, 48vw, 220px);position:relative;width:var(--chat-media-size);height:var(--chat-media-size);border-radius:14px;overflow:hidden;margin-bottom:6px;background:var(--surface2);border:1px solid var(--border)}.msg-media.compact{width:100%;height:100%;border-radius:10px;margin-bottom:0}.msg-media-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;padding:0;width:var(--chat-media-size);height:var(--chat-media-size);margin-bottom:6px;border-radius:14px;cursor:pointer;overflow:hidden;align-self:inherit;text-align:left}.msg-media-button:active{transform:scale(.99)}.msg-media.loaded .msg-media-skeleton{opacity:0}.msg-media-skeleton{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,var(--surface2),var(--surface3),var(--surface2));background-size:200% 100%;animation:skeletonPulse 1.2s ease-in-out infinite;transition:opacity .2s ease}.msg-media-worm{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:inline-flex;align-items:center;gap:4px}.msg-media-worm-seg{width:6px;height:6px;border-radius:999px;background:var(--text);animation:wormPulse .9s ease-in-out infinite}.msg-media-worm-seg:nth-child(2){animation-delay:.12s}.msg-media-worm-seg:nth-child(3){animation-delay:.24s}.msg-image{width:100%;height:100%;object-fit:cover;display:block}.image-viewer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1010;background:#000000eb;display:flex;align-items:center;justify-content:center;padding:20px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.image-viewer-image{max-width:min(92vw,980px);max-height:88vh;width:auto;height:auto;object-fit:contain;border-radius:16px;box-shadow:0 20px 60px #0006}.image-viewer-close{position:fixed;top:calc(18px + var(--tg-content-safe-area-inset-top, var(--tg-safe-area-inset-top, env(safe-area-inset-top, 0px))));right:18px;width:40px;height:40px;border:1px solid var(--border);border-radius:50%;background:#ffffff14;color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:1011;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.image-viewer-close:active{background:#ffffff24}@keyframes skeletonPulse{0%{background-position:0% 50%}to{background-position:200% 50%}}@keyframes wormPulse{0%,to{transform:translateY(0);opacity:.45}50%{transform:translateY(-2px);opacity:1}}.msg-time{font-size:10px;color:var(--text-faint);margin-top:4px;padding:0 4px}.typing-indicator{display:flex;gap:5px;align-items:center;padding:14px 16px;background:var(--surface2);border:1px solid var(--border);border-radius:16px 16px 16px 4px;width:fit-content}.typing-dot{width:6px;height:6px;background:var(--text);border-radius:50%;opacity:.5;animation:typingBounce 1.2s ease-in-out infinite}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(-4px);opacity:1}}.input-bar{border-top:1px solid var(--border);background:var(--surface);padding:10px 12px 28px;padding-bottom:calc(28px + var(--tg-content-safe-area-inset-bottom, var(--tg-safe-area-inset-bottom, env(safe-area-inset-bottom, 0px))));flex-shrink:0;position:relative;z-index:2;box-shadow:0 -8px 24px #0000001f}.input-bar:after{content:"";position:absolute;left:0;right:0;top:100%;height:56px;background:var(--surface);pointer-events:none}.image-preview-row{display:none;position:absolute;left:12px;right:12px;bottom:calc(100% + 8px);margin-bottom:0;pointer-events:auto}.image-preview-row.visible{display:block}.image-preview-shell{position:relative;width:84px;height:84px}.remove-preview{position:absolute;top:-6px;right:-6px;width:20px;height:20px;background:var(--surface3);border:1px solid var(--border);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:12px;line-height:1}.input-row{display:flex;align-items:center;gap:8px}.attach-btn{width:38px;height:38px;background:none;border:1.5px solid var(--border);border-radius:12px;cursor:pointer;color:var(--text-muted);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:border-color .15s,color .15s}.attach-btn:active{border-color:var(--text);color:var(--text)}.attach-btn svg,.send-btn svg{width:18px;height:18px}.msg-input{flex:1;background:var(--surface2);border:1.5px solid var(--border);border-radius:12px;padding:10px 12px;color:var(--text);font-family:DM Sans,sans-serif;font-size:14px;outline:none;resize:none;min-height:40px;max-height:84px;line-height:1.35;transition:border-color .2s,background .2s,transform .2s;overflow-y:hidden;scrollbar-width:none}.msg-input::-webkit-scrollbar{display:none}.msg-input:focus{border-color:var(--text-muted)}.msg-input::placeholder{color:var(--text-faint)}.send-btn{width:38px;height:38px;background:var(--text);border:none;border-radius:12px;cursor:pointer;color:var(--accent-on);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:opacity .15s}.send-btn:active{opacity:.8}.send-btn:disabled{opacity:.35;cursor:default}.spinner-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0e0e0fb3;display:flex;align-items:center;justify-content:center;z-index:999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.spinner{width:32px;height:32px;border:2.5px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast{position:fixed;bottom:90px;left:50%;transform:translate(-50%) translateY(10px);background:var(--surface3);color:var(--text);font-size:13px;padding:10px 18px;border-radius:100px;border:1px solid var(--border);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;white-space:nowrap;z-index:1000}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.startup-error{position:fixed;left:50%;top:calc(24px + var(--tg-content-safe-area-inset-top, var(--tg-safe-area-inset-top, env(safe-area-inset-top, 0px))));transform:translate(-50%);z-index:1001;max-width:calc(100vw - 32px);padding:10px 14px;border-radius:999px;background:var(--surface3);color:var(--text);border:1px solid var(--border);font-size:13px;box-shadow:0 12px 28px #0000001f}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0e0e0fbf;display:flex;align-items:center;justify-content:center;z-index:998;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:24px 16px}.confirm-sheet{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:24px 20px;width:100%;max-width:480px;box-shadow:0 18px 48px #0000003d}.confirm-title{font-size:17px;font-weight:600;margin-bottom:8px}.confirm-sub{font-size:14px;color:var(--text-muted);margin-bottom:24px;line-height:1.5}.confirm-actions{display:flex;gap:10px}.confirm-cancel,.confirm-delete{flex:1;border-radius:var(--radius-sm);padding:14px;font-family:DM Sans,sans-serif;font-size:15px;cursor:pointer}.confirm-cancel{background:var(--surface2);border:1px solid var(--border);color:var(--text)}.confirm-delete{background:#ffffff14;border:1px solid var(--border);color:var(--danger);font-weight:500}#app .view{position:absolute;top:0;left:0;width:100%;height:100%;flex-direction:column;flex:1;overflow:hidden;opacity:0;transition:opacity .28s cubic-bezier(.4,0,.2,1),transform .28s cubic-bezier(.4,0,.2,1);pointer-events:none}#app .view.active{opacity:1;pointer-events:auto}#app .view.exiting{opacity:0}#app #chat-list-view{transform:translate(-100%)}#app #chat-list-view.active{transform:translate(0)}#app #chat-list-view.exiting{transform:translate(-100%)}#app #chat-view{transform:translate(100%)}#app #chat-view.active{transform:translate(0)}#app #chat-view.exiting{transform:translate(100%)}.chat-item{animation:slideInLeft .3s cubic-bezier(.4,0,.2,1) backwards}.chat-item:nth-child(1){animation-delay:.05s}.chat-item:nth-child(2){animation-delay:.1s}.chat-item:nth-child(3){animation-delay:.15s}.chat-item:nth-child(4){animation-delay:.2s}.chat-item:nth-child(5){animation-delay:.25s}.chat-item:nth-child(n+6){animation-delay:.3s}.msg{animation:messageSlideIn .3s cubic-bezier(.34,1.56,.64,1) both}.msg.user{animation:messageSlideInRight .3s cubic-bezier(.34,1.56,.64,1) both}.msg.agent{animation:messageSlideInLeft .3s cubic-bezier(.34,1.56,.64,1) both}button{transition:transform .15s cubic-bezier(.4,0,.2,1),background .15s cubic-bezier(.4,0,.2,1),opacity .15s cubic-bezier(.4,0,.2,1)}button:active:not(:disabled){transform:scale(.96)}.new-chat-btn:hover{transform:scale(1.08)}.back-btn:active,.attach-btn:active{opacity:.6}.send-btn:active:not(:disabled){transform:scale(.92)}.chat-item{transition:background .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1),border-color .2s cubic-bezier(.4,0,.2,1)}.chat-item:active{transform:scale(.98)}.confirm-dialog{animation:fadeIn .2s cubic-bezier(.4,0,.2,1)}.toast{animation:slideInUp .3s cubic-bezier(.4,0,.2,1)}.toast.hide{animation:slideOutDown .3s cubic-bezier(.4,0,.2,1) forwards}.image-preview-row{max-height:0;overflow:hidden;transition:max-height .3s cubic-bezier(.4,0,.2,1),opacity .3s cubic-bezier(.4,0,.2,1);opacity:0}.image-preview-row.visible{max-height:120px;opacity:1}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes slideOutDown{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(16px)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes messageSlideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes messageSlideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@media (max-width: 640px){.list-header{padding:calc(16px + var(--tg-content-safe-area-inset-top, var(--tg-safe-area-inset-top, env(safe-area-inset-top, 0px)))) 14px 10px}.chat-item{padding:12px 14px}.messages-scroll{padding:12px}.input-bar{padding:10px 10px 32px;padding-bottom:calc(32px + var(--tg-content-safe-area-inset-bottom, var(--tg-safe-area-inset-bottom, env(safe-area-inset-bottom, 0px))))}.input-bar:after{height:72px}.msg-input{font-size:13px;max-height:74px}.image-preview-shell{width:72px;height:72px}.image-viewer-image{max-width:94vw;max-height:82vh}}
