:root{--font: "Vazirmatn", "Segoe UI", -apple-system, sans-serif;--radius: 10px;--radius-lg: 14px;--transition: .2s ease;--bg-primary: #212121;--bg-secondary: #171717;--bg-tertiary: #2d2d2d;--bg-hover: #3d3d3d;--border: #2d2d2d;--border-focus: #555;--text: #ececec;--text-secondary: #888;--text-muted: #666;--accent: #10a37f;--accent-hover: #0d8c6d;--danger: #ef4444;--danger-bg: #3d1f1f;--input-bg: #2d2d2d;--input-border: #3d3d3d;--scrollbar: #3d3d3d;--scrollbar-hover: #555;--code-bg: #1a1a1a;--bg-card: #2a2a2a;--msg-assistant: #2d2d2d}[data-theme=dark]{--bg-primary: #212121;--bg-secondary: #171717;--bg-tertiary: #2d2d2d;--bg-hover: #3d3d3d;--border: #2d2d2d;--border-focus: #555;--text: #ececec;--text-secondary: #888;--text-muted: #666;--accent: #10a37f;--accent-hover: #0d8c6d;--danger: #ef4444;--danger-bg: #3d1f1f;--input-bg: #2d2d2d;--input-border: #3d3d3d;--scrollbar: #3d3d3d;--scrollbar-hover: #555;--code-bg: #1a1a1a;--bg-card: #2a2a2a;--msg-assistant: #2d2d2d}[data-theme=light]{--bg-primary: #ffffff;--bg-secondary: #f7f7f8;--bg-tertiary: #ececec;--bg-hover: #e0e0e0;--border: #e5e5e5;--border-focus: #bbb;--text: #1a1a1a;--text-secondary: #666;--text-muted: #999;--accent: #10a37f;--accent-hover: #0d8c6d;--danger: #ef4444;--danger-bg: #fef2f2;--input-bg: #ffffff;--input-border: #e5e5e5;--scrollbar: #d4d4d4;--scrollbar-hover: #aaa;--code-bg: #f5f5f5;--bg-card: #f0f0f0;--msg-assistant: #f7f7f8}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);background:var(--bg-primary);color:var(--text)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--scrollbar);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-hover)}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);position:relative}.auth-topbar{position:fixed;top:16px;left:16px;right:16px;display:flex;gap:8px;z-index:10;justify-content:flex-end}.icon-btn{padding:8px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition)}.icon-btn:hover{color:var(--text);background:var(--bg-hover)}.lang-btn{font-size:13px;font-weight:600;font-family:var(--font);padding:6px 12px}.auth-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;padding:40px;width:400px;box-shadow:0 8px 32px #00000026}.auth-logo{text-align:center;margin-bottom:32px}.auth-logo h1{margin:12px 0 4px;font-size:28px;font-weight:600}.auth-logo p{color:var(--text-secondary);font-size:14px}.input-group{margin-bottom:20px}.input-group label{display:block;color:var(--text-secondary);font-size:13px;margin-bottom:6px;font-weight:500}.input-group input{width:100%;padding:12px 16px;background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--radius);color:var(--text);font-size:15px;font-family:var(--font);outline:none;transition:border-color var(--transition);box-sizing:border-box}.input-group input:focus{border-color:var(--accent)}.auth-btn{width:100%;padding:12px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius);font-size:15px;font-weight:600;font-family:var(--font);cursor:pointer;transition:background var(--transition)}.auth-btn:hover{background:var(--accent-hover)}.auth-btn:disabled{opacity:.6;cursor:not-allowed}.auth-error{background:var(--danger-bg);color:var(--danger);padding:10px 14px;border-radius:8px;font-size:13px;margin-bottom:16px}.auth-toggle{text-align:center;margin-top:20px;color:var(--text-secondary);font-size:14px}.auth-toggle button{background:none;border:none;color:var(--accent);cursor:pointer;font-size:14px;font-family:var(--font);margin-inline-start:4px}.auth-toggle button:hover{text-decoration:underline}.ms-wrapper{position:relative;font-family:var(--font)}.ms-trigger{display:flex;align-items:center;gap:8px;padding:8px 14px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:13px;font-family:var(--font);cursor:pointer;transition:border-color var(--transition);min-width:200px;text-align:start}.ms-trigger:hover{border-color:var(--border-focus)}.ms-provider-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.ms-selected-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.ms-tier-badge{font-size:12px;padding:1px 6px;border-radius:4px;flex-shrink:0}.ms-chevron{transition:transform .2s;flex-shrink:0;color:var(--text-secondary)}.ms-chevron.open{transform:rotate(180deg)}.ms-dropdown{position:absolute;top:calc(100% + 6px);left:0;right:0;min-width:380px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 40px #00000040;z-index:1000;overflow:hidden;animation:msSlideDown .15s ease}@keyframes msSlideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.ms-search-wrap{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--border);color:var(--text-secondary)}.ms-search{flex:1;background:transparent;border:none;color:var(--text);font-size:14px;font-family:var(--font);outline:none}.ms-search::placeholder{color:var(--text-muted)}.ms-cap-filter{display:flex;gap:4px;padding:8px 14px;border-bottom:1px solid var(--border)}.ms-cap-btn{display:flex;align-items:center;gap:4px;padding:4px 10px;background:transparent;border:1px solid var(--border);border-radius:16px;color:var(--text-secondary);font-size:12px;font-family:var(--font);cursor:pointer;transition:all .15s}.ms-cap-btn:hover{border-color:var(--accent);color:var(--text)}.ms-cap-btn.active{background:#10a37f1f;border-color:var(--accent);color:var(--accent);font-weight:600}.ms-cap-mini{font-size:12px;flex-shrink:0}.ms-list{max-height:400px;overflow-y:auto;padding:6px}.ms-group{margin-bottom:4px}.ms-group-header{display:flex;align-items:center;gap:8px;padding:6px 10px;font-size:11px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.ms-group-dot{width:6px;height:6px;border-radius:50%}.ms-group-name{flex:1}.ms-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:9px 10px;background:transparent;border:none;border-radius:8px;color:var(--text);font-family:var(--font);cursor:pointer;transition:background .12s;text-align:start;gap:8px}.ms-item:hover{background:var(--bg-tertiary)}.ms-item.active{background:var(--accent)!important;color:#fff}.ms-item.active .ms-item-id{color:#ffffffb3}.ms-item.active .ms-tier-mini{background:#fff3!important;color:#fff!important}.ms-item.active .ms-price{color:#ffffffd9}.ms-item-info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.ms-item-name{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ms-item-id{font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ms-item-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.ms-tier-mini{font-size:10px;padding:2px 6px;border-radius:4px;white-space:nowrap;font-weight:500}.ms-price{font-size:11px;color:var(--text-secondary);white-space:nowrap;font-weight:500;font-variant-numeric:tabular-nums}.ms-price-in{color:var(--accent)}.ms-price-sep{margin:0 1px;color:var(--text-muted)}.ms-price-out{color:#f59e0b}.ms-empty{text-align:center;padding:20px;color:var(--text-muted);font-size:14px}.ms-list::-webkit-scrollbar{width:4px}.ms-list::-webkit-scrollbar-track{background:transparent}.ms-list::-webkit-scrollbar-thumb{background:var(--scrollbar);border-radius:2px}.code-block{margin:12px 0;border-radius:10px;overflow:hidden;border:1px solid var(--border)}.code-block-header{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:var(--bg-tertiary);border-bottom:1px solid var(--border);gap:8px}.code-block-lang{font-size:12px;font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:.5px}.code-block-actions{display:flex;gap:4px}.code-block-btn{display:flex;align-items:center;gap:4px;padding:4px 8px;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--text-secondary);font-size:11px;font-family:var(--font);cursor:pointer;transition:all .15s}.code-block-btn:hover{background:var(--bg-hover);color:var(--text);border-color:var(--border)}.code-block pre{font-family:Fira Code,Cascadia Code,JetBrains Mono,Consolas,monospace!important}[data-theme=light] .code-block pre{background:#f8f9fa!important;color:#24292e!important}[data-theme=dark] .code-block pre{background:#1a1a2e!important}.expand-btn{color:var(--accent)!important;font-weight:500}.expand-btn:hover{background:#10a37f1a!important;border-color:var(--accent)!important}.chat-layout{display:flex;height:100vh}.sidebar{width:260px;background:var(--bg-secondary);display:flex;flex-direction:column;border-inline-end:1px solid var(--border);transition:width .25s cubic-bezier(.4,0,.2,1);flex-shrink:0}.sidebar.closed{width:0;overflow:hidden;border:none}.sidebar-header{padding:12px}.new-chat-btn{width:100%;padding:11px 14px;background:transparent;border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:14px;font-family:var(--font);cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .2s}.new-chat-btn:hover{background:var(--bg-tertiary);border-color:var(--accent);color:var(--accent)}.sidebar-projects{padding:0 12px}.section-header{display:flex;align-items:center;gap:8px;padding:8px 0;color:var(--text-secondary);font-size:13px;cursor:pointer;-webkit-user-select:none;user-select:none}.section-header span{flex:1}.chevron{transition:transform .2s}.chevron.rotated{transform:rotate(180deg)}.projects-list{padding:4px 0}.project-item-wrapper{display:flex;align-items:center}.project-item{flex:1;padding:7px 12px;background:transparent;border:none;color:var(--text-secondary);font-size:13px;font-family:var(--font);text-align:start;cursor:pointer;border-radius:6px;transition:all .15s}.project-item:hover{background:var(--bg-tertiary)}.project-item.active{background:var(--bg-tertiary);color:var(--accent);font-weight:500}.project-delete{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:16px;padding:0 6px;opacity:0;transition:opacity .15s}.project-item-wrapper:hover .project-delete{opacity:1}.project-delete:hover{color:var(--danger)}.new-project-input{display:flex;gap:4px;margin-top:4px}.new-project-input input{flex:1;padding:6px 10px;background:var(--input-bg);border:1px solid var(--input-border);border-radius:6px;color:var(--text);font-size:12px;font-family:var(--font);outline:none}.new-project-input input:focus{border-color:var(--accent)}.new-project-input button{padding:6px 10px;background:var(--accent);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px}.sidebar-conversations{flex:1;overflow-y:auto;padding:8px 12px}.conv-item{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:10px;cursor:pointer;color:var(--text-secondary);font-size:13px;transition:all .2s;margin-bottom:2px}.conv-item:hover{background:var(--bg-tertiary)}.conv-item.active{background:var(--bg-tertiary);color:var(--text);box-shadow:inset 3px 0 0 var(--accent)}.conv-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conv-model-badge{font-size:9px;font-weight:600;padding:2px 6px;border-radius:6px;border:1px solid;white-space:nowrap;flex-shrink:0;letter-spacing:.02em}.conv-model-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;height:28px;border-radius:8px;background:var(--bg-tertiary)}} .conv-delete{display:flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;background:none;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer;opacity:0;transition:all .15s ease;flex-shrink:0}.conv-item:hover .conv-delete{opacity:.5}.conv-delete:hover{opacity:1;color:#ef4444}.conv-menu-wrapper{position:relative;flex-shrink:0}.conv-menu-btn{display:flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;background:none;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer;opacity:0;transition:all .15s ease}.conv-item:hover .conv-menu-btn{opacity:.6}.conv-menu-btn:hover{opacity:1;color:var(--text-primary);background:var(--bg-tertiary)}.conv-dropdown{min-width:140px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:4px;z-index:9999;box-shadow:0 4px 20px #0003;font-family:Vazir,sans-serif}.conv-dropdown-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;background:none;border:none;border-radius:6px;color:var(--text-primary);font-size:13px;font-family:Vazir,sans-serif;cursor:pointer;transition:background .15s;white-space:nowrap}.conv-dropdown-item:hover{background:var(--bg-tertiary)}.conv-dropdown-item.danger{color:#ef4444}.conv-dropdown-item.danger:hover{background:#ef444414}.conv-rename-input{flex:1;min-width:0;padding:3px 6px;background:var(--bg-input, var(--bg-secondary));border:1px solid var(--accent);border-radius:6px;color:var(--text-primary);font-size:13px;outline:none}.conv-rename-wrap{display:flex;align-items:center;gap:4px;flex:1;min-width:0}.conv-rename-save{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:var(--accent);border:none;border-radius:6px;color:#fff;cursor:pointer;flex-shrink:0;transition:opacity .15s}.conv-rename-save:hover{opacity:.85}.sidebar-footer{padding:12px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.sidebar-link{display:flex;align-items:center;gap:8px;padding:8px 12px;margin:0 12px 8px;border-radius:8px;color:var(--text-secondary);text-decoration:none;font-size:13px;font-family:var(--font);transition:all .2s}.sidebar-link:hover{background:var(--bg-tertiary);color:var(--accent)}.user-info{display:flex;align-items:center;gap:8px;font-size:13px}.avatar{width:32px;height:32px;background:linear-gradient(135deg,var(--accent),var(--accent-hover, #0bbf8a));border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;color:#fff;box-shadow:0 2px 8px #10a37f4d}.footer-actions{display:flex;align-items:center;gap:4px}.icon-btn-sm{padding:6px;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all var(--transition)}.icon-btn-sm:hover{color:var(--text);background:var(--bg-tertiary)}.lang-btn-sm{font-size:11px;font-weight:700;font-family:var(--font);padding:4px 6px}.logout-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;border-radius:6px;display:flex;align-items:center;transition:color .15s}.logout-btn:hover{color:var(--danger)}.chat-main{flex:1;display:flex;flex-direction:column;min-width:0;background:var(--bg-primary)}.chat-topbar{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--bg-primary);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:relative;z-index:100}.sidebar-toggle{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:6px;border-radius:8px;transition:all .2s}.sidebar-toggle:hover{color:var(--text);background:var(--bg-tertiary)}.model-label-locked{display:flex;align-items:center;gap:8px;padding:8px 14px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);font-size:13px;font-family:var(--font);font-weight:500;opacity:.7;cursor:not-allowed}.messages-container{flex:1;overflow-y:auto;padding:20px 0;scroll-behavior:smooth}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:20px;color:var(--text-muted);animation:fadeIn .6s ease}.empty-state svg{opacity:.3}.empty-state h2{color:var(--text-secondary);font-size:24px;font-weight:500;background:linear-gradient(135deg,var(--text),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.empty-state p{font-size:14px;opacity:.7}.message{display:flex;gap:14px;padding:20px 32px;max-width:100%;margin:0 auto;width:100%}.message.user{background:transparent}.message.assistant{background:var(--msg-assistant)}.message-avatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;flex-shrink:0;margin-top:2px}.message.user .message-avatar{background:var(--bg-tertiary);color:var(--text);border:1px solid var(--border)}.message.assistant .message-avatar{background:linear-gradient(135deg,var(--accent),var(--accent-hover, #0bbf8a));color:#fff;box-shadow:0 2px 8px #10a37f40}.message-content{flex:1;min-width:0}.message-text{font-size:15px;line-height:1.8;word-wrap:break-word}.message-text .inline-code{background:var(--code-bg);padding:2px 7px;border-radius:5px;font-size:13px;font-family:Fira Code,Cascadia Code,JetBrains Mono,monospace;border:1px solid var(--border)}.file-attachment{margin-bottom:8px}.file-attachment a{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:10px;color:var(--accent);text-decoration:none;font-size:13px;transition:all .2s}.file-attachment a:hover{background:var(--bg-hover);transform:translateY(-1px)}.image-message{margin-bottom:8px}.img-frame{position:relative;width:min(400px,100%);aspect-ratio:1 / 1;max-height:400px;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg-tertiary)}.img-frame img{width:100%;height:100%;object-fit:contain;display:block;transition:opacity .35s ease}.img-frame.img-loading{display:flex;align-items:center;justify-content:center;background:linear-gradient(110deg,var(--bg-tertiary) 30%,var(--bg-secondary, #2a2a3e) 50%,var(--bg-tertiary) 70%);background-size:200% 100%;animation:img-shimmer 1.6s linear infinite}@keyframes img-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.img-spinner-wrap{display:flex;flex-direction:column;align-items:center;gap:12px;z-index:1}.img-spinner{width:36px;height:36px;border:3px solid rgba(128,128,160,.25);border-top-color:var(--accent);border-radius:50%;animation:img-spin .9s linear infinite}@keyframes img-spin{to{transform:rotate(360deg)}}.img-loading-text{font-size:12px;color:var(--text-muted)}.img-failed{display:flex;align-items:center;justify-content:center;font-size:13px;color:#ef4444}.image-message>img:not(.img-frame img){max-width:400px;border-radius:12px;border:1px solid var(--border);box-shadow:0 4px 16px #00000026}.message-meta{display:flex;gap:12px;margin-top:6px;font-size:.7rem;color:var(--text-muted);opacity:.6}.meta-model,.meta-time{display:inline-flex;align-items:center;gap:4px}.message-actions{display:flex;gap:4px;margin-top:8px}.retry-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-muted);cursor:pointer;transition:all .2s}.retry-btn:hover{color:var(--accent);border-color:var(--accent);background:#10a37f1a;transform:rotate(180deg)}.copy-msg-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-muted);cursor:pointer;transition:all .2s}.copy-msg-btn:hover{color:var(--accent);border-color:var(--accent);background:#10a37f1a}} .input-area{padding:0 100px 40px;max-width:1000px;margin-left:auto;margin-right:auto;width:100%;align-self:center}.input-options{display:flex;gap:6px;margin-bottom:10px}.option-btn{padding:7px 12px;background:transparent;border:1px solid var(--border);border-radius:10px;color:var(--text-secondary);cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:4px}.option-btn:hover{color:var(--text);border-color:var(--border-focus);transform:translateY(-1px)}.option-btn.active{color:var(--accent);border-color:var(--accent);background:#10a37f1a}.input-box{display:flex;align-items:flex-end;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:22px;padding:14px 18px;gap:10px;transition:all .25s;box-shadow:0 4px 20px #0000000f}.input-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px #10a37f1f,0 4px 24px #0000000f}.input-box textarea{flex:1;background:transparent;border:none;color:var(--text);font-size:15px;line-height:1.6;resize:none;outline:none;max-height:160px;min-height:24px;font-family:var(--font);padding:2px 0}.input-box textarea::placeholder{color:var(--text-muted)}.send-btn{width:42px;height:42px;padding:0;background:linear-gradient(135deg,var(--accent),var(--accent-hover, #0bbf8a));border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0;box-shadow:0 2px 10px #10a37f59}.send-btn:hover{transform:scale(1.08);box-shadow:0 4px 18px #10a37f73}.send-btn:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}.spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.typing-indicator-inline{padding:4px 0}.streaming-footer{opacity:.7;font-size:.8em;padding:2px 0}.typing-indicator{background:var(--msg-assistant)!important;padding-bottom:20px!important}.typing-dots{display:flex;gap:6px;padding:8px 0}.typing-dots span{width:8px;height:8px;background:var(--accent);border-radius:50%;animation:typingBounce 1.4s ease-in-out infinite;box-shadow:0 0 6px #10a37f66}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}.send-dots{padding:0;gap:4px;justify-content:center}.send-dots span{width:5px;height:5px;background:#fff;box-shadow:none}@keyframes typingBounce{0%,60%,to{transform:translateY(0);opacity:.3}30%{transform:translateY(-10px);opacity:1}}.typing-status{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary);font-family:var(--font)}.typing-spinner{width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.collapsible-msg{position:relative}.collapsible-fade{max-height:400px;overflow:hidden;position:relative;mask-image:linear-gradient(to bottom,black 70%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,black 70%,transparent 100%)}.collapsible-toggle{display:block;width:100%;padding:8px 0;margin-top:6px;background:transparent;border:none;border-top:1px solid var(--border);color:var(--accent);font-size:13px;font-family:var(--font);cursor:pointer;transition:all .2s}.collapsible-toggle:hover{color:var(--accent-hover)}.virtual-row{width:100%}.message-inner{max-width:100%;margin:0 auto;padding:0 32px}.sidebar-overlay{display:none}@media (max-width: 768px){.chat-layout{position:relative}.sidebar{position:fixed;top:0;right:0;bottom:0;width:280px;z-index:1000;transform:translate(100%);transition:transform .3s ease;box-shadow:-4px 0 24px #0000004d}[dir=ltr] .sidebar{right:auto;left:0;transform:translate(-100%);box-shadow:4px 0 24px #0000004d}.sidebar.closed{width:280px;transform:translate(100%);border:none;overflow:visible}[dir=ltr] .sidebar.closed{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:999;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.sidebar-overlay.visible{display:block}.sidebar-toggle{display:flex}.message{padding:12px 16px}.message-inner{padding:0 16px}.input-area{padding:0 20px 24px}.input-box textarea{font-size:16px}.chat-topbar{padding:10px 12px}.message-avatar{width:28px;height:28px;font-size:11px}}.buy-plan-btn{margin:8px 12px;padding:10px 16px;background:linear-gradient(135deg,var(--accent),#a855f7);border:none;border-radius:12px;color:#fff;font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;box-shadow:0 4px 14px #6366f14d}.buy-plan-btn:hover{transform:translateY(-1px);box-shadow:0 6px 20px #6366f166}.admin-page{min-height:100vh;background:var(--bg-primary);color:var(--text);font-family:var(--font);padding:24px;direction:rtl}.admin-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.admin-header h1{font-size:24px;font-weight:600;color:var(--text)}.admin-back-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:transparent;border:1px solid var(--border);border-radius:10px;color:var(--text-secondary);font-family:var(--font);font-size:13px;cursor:pointer;transition:all .2s;text-decoration:none}.admin-back-btn:hover{color:var(--accent);border-color:var(--accent)}.stats-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-bottom:28px}.stat-card{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:8px;transition:all .2s}.stat-card:hover{border-color:var(--accent);transform:translateY(-2px)}.stat-label{font-size:13px;color:var(--text-muted);font-weight:500}.stat-value{font-size:28px;font-weight:700;color:var(--text);line-height:1}.stat-value.accent{color:var(--accent)}.stat-value.danger{color:var(--danger)}.stat-sub{font-size:12px;color:var(--text-muted)}.stat-sub span.success{color:var(--accent)}.stat-sub span.failed{color:var(--danger)}.admin-tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:20px}.admin-tab{padding:12px 20px;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-muted);font-family:var(--font);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.admin-tab:hover{color:var(--text-secondary)}.admin-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.filter-bar{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap;align-items:center}.filter-bar input,.filter-bar select{padding:8px 12px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:var(--font);font-size:13px;outline:none;transition:border-color .2s}.filter-bar input:focus,.filter-bar select:focus{border-color:var(--accent)}.filter-bar input::placeholder{color:var(--text-muted)}.filter-bar input[type=date]{min-width:130px}.filter-bar select{min-width:120px;cursor:pointer}.admin-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:12px;background:var(--bg-tertiary)}.admin-table{width:100%;border-collapse:collapse;font-size:13px;direction:rtl}.admin-table thead{background:var(--bg-secondary)}.admin-table th{padding:12px 16px;text-align:right;color:var(--text-muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--border);white-space:nowrap}.admin-table td{padding:10px 16px;border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle}.admin-table tbody tr{transition:background .15s}.admin-table tbody tr:hover{background:var(--bg-hover)}.admin-table tbody tr:nth-child(2n){background:#ffffff04}.admin-table tbody tr:nth-child(2n):hover{background:var(--bg-hover)}.admin-table tbody tr:last-child td{border-bottom:none}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:500;white-space:nowrap}.status-badge .status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-badge.success{background:#10a37f1f;color:var(--accent)}.status-badge.success .status-dot{background:var(--accent)}.status-badge.failed{background:#ef44441f;color:var(--danger)}.status-badge.failed .status-dot{background:var(--danger)}.status-badge.pending{background:#f59e0b1f;color:#f59e0b}.status-badge.pending .status-dot{background:#f59e0b}.status-badge.empty{background:#8b5cf61f;color:#8b5cf6}.status-badge.empty .status-dot{background:#8b5cf6}.role-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:6px;font-size:12px;font-weight:600}.role-badge.admin{background:#8b5cf626;color:#a78bfa}.role-badge.user{background:#10a37f1f;color:var(--accent)}.role-change-btn{padding:5px 12px;background:transparent;border:1px solid var(--border);border-radius:8px;color:var(--text-secondary);font-family:var(--font);font-size:12px;cursor:pointer;transition:all .2s}.role-change-btn:hover{color:var(--accent);border-color:var(--accent)}.pagination{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:20px}.pagination button{padding:8px 16px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:var(--font);font-size:13px;cursor:pointer;transition:all .2s}.pagination button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.pagination button:disabled{opacity:.4;cursor:not-allowed}.pagination span{font-size:13px;color:var(--text-muted);padding:0 8px}.admin-loading{display:flex;align-items:center;justify-content:center;min-height:400px;color:var(--text-muted);font-size:14px;gap:10px}.admin-loading .spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.admin-empty{text-align:center;padding:40px;color:var(--text-muted);font-size:14px}.latency-cell{font-variant-numeric:tabular-nums;color:var(--text-secondary)}.latency-cell.fast{color:var(--accent)}.latency-cell.medium{color:#f59e0b}.latency-cell.slow{color:var(--danger)}@media (max-width: 1024px){.stats-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 768px){.admin-page{padding:16px}.stats-grid{grid-template-columns:repeat(2,1fr)}.filter-bar{flex-direction:column}.filter-bar input,.filter-bar select{width:100%}.admin-tabs{overflow-x:auto}.admin-header{flex-direction:column;gap:12px;align-items:flex-start}.admin-table th,.admin-table td{padding:8px 10px;font-size:12px}}@media (max-width: 480px){.stats-grid{grid-template-columns:1fr}}.error-detail{max-width:300px;font-size:12px;color:var(--danger);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;direction:ltr;text-align:left}.error-detail.expanded{white-space:normal;word-break:break-word}.models-section{margin-bottom:20px}.models-section h3{border-bottom:1px solid var(--border);padding-bottom:8px}.model-form{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:12px;padding:16px}.admin-btn{padding:7px 14px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:var(--font);font-size:13px;cursor:pointer;transition:all .2s}.admin-btn:hover{border-color:var(--accent);color:var(--accent)}.admin-btn:disabled{opacity:.5;cursor:not-allowed}.admin-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.admin-btn.primary:hover{opacity:.9;color:#fff}.admin-btn.danger{background:transparent;border-color:var(--danger, #ef4444);color:var(--danger, #ef4444)}.admin-input{padding:8px 12px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:var(--font);font-size:13px;outline:none}.admin-input:focus{border-color:var(--accent)}.admin-card{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:12px;padding:16px}.stat-card.inactive{filter:grayscale(.4)}.report-row{cursor:default}.report-row td{transition:background .15s}.report-row:hover td,.report-row.hovered td{background:var(--bg-tertiary)}.report-detail-panel{position:sticky;top:16px;flex:0 0 340px;max-height:calc(100vh - 140px);overflow-y:auto;background:var(--bg-secondary, #1a1a2e);border:1px solid var(--accent, #6366f1);border-radius:12px;box-shadow:0 12px 40px #00000059;padding:14px;font-family:var(--font);font-size:12.5px;color:var(--text);line-height:1.7}.report-detail-empty{display:flex;align-items:center;justify-content:center;min-height:120px;color:var(--text-muted);text-align:center;padding:16px}.report-tooltip-grid{display:grid;grid-template-columns:auto 1fr;gap:3px 10px}.report-tooltip-key{color:var(--text-muted);white-space:nowrap}.report-tooltip-val{direction:ltr;text-align:left;word-break:break-word;font-family:ui-monospace,monospace;font-size:12px}.report-tooltip-section{margin-top:10px;padding-top:8px;border-top:1px dashed var(--border)}.report-tooltip-text{margin-top:4px;max-height:160px;overflow-y:auto;background:var(--bg-tertiary);border-radius:8px;padding:8px;font-size:11.5px;line-height:1.6;word-break:break-word;white-space:pre-wrap;direction:auto}
