@import "https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap";@import "https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap";*{box-sizing:border-box;margin:0;padding:0}:root{--primary:#2563eb;--primary-hover:#1d4ed8;--accent:#00d4ff;--accent-dark:#09c;--background:#f5f7fb;--surface:#fff;--surface-secondary:#f9fafb;--surface-hover:#f3f4f6;--text-primary:#111827;--text-secondary:#6b7280;--home-primary:#24364b;--text-muted:#667085;--border:#e5e7eb;--sidebar-background:#182235;--sidebar-text:#d1d5db;--sidebar-text-secondary:#9ca3af;--sidebar-border:#ffffff14;--sidebar-hover:#ffffff14;--icon-background:#eff6ff;--success:#16a34a;--success-background:#dcfce7;--danger:#ef4444;--danger-background:#ef44441f;--overlay:#1118278c;--shadow:0 4px 15px #1118270d;--sidebar-width:270px;--header-height:72px;--radius:12px;--summary-bg:#f8fafc;--bg-light:#f1f5f9;--strength-track:#d6dce5;--font-xs:var(--text-xs);--font-sm:var(--text-sm);--font-base:var(--text-base);--font-md:var(--text-m);--font-lg:var(--text-lg);--font-xl:var(--text-xl);--font-2xl:var(--text-2xl);--text-heading:#0f172a;--text-body:#334155;--text-subtle:#475569;--text-placeholder:#94a3b8;--text-disabled:#94a3b8;--text-on-primary:#fff;--text-on-danger:#fff;--border-subtle:#e2e8f0;--border-default:#cbd5e1;--border-light:#f1f5f9;--border-info:#dbeafe;--border-danger:#fecaca;--surface-muted:#f8fafc;--surface-hover-strong:#f1f5f9;--surface-info:#eff6ff;--surface-danger:#fef2f2;--surface-danger-soft:#fee2e2;--surface-danger-hover:#fff7f7;--surface-success:#ecfdf5;--text-info:#1d4ed8;--text-danger:#dc2626;--text-danger-dark:#b91c1c;--text-danger-heading:#991b1b;--text-success:#047857;--shadow-xs:0 1px 2px #0f172a0a;--shadow-sm:0 4px 12px #0f172a08;--shadow-primary:0 4px 12px #2563eb2e;--shadow-danger:0 4px 12px #dc26262e;--shadow-modal:0 20px 45px #0f172a2e, 0 4px 12px #0f172a14;--focus-ring:0 0 0 3px #2563eb1a;--radius-sm:7px;--radius-md:8px;--radius-lg:10px;--radius-xl:12px;--radius-pill:999px;--transition-fast:.15s ease;--transition-quick:.12s ease;--transition-modal:.18s ease;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI","Inter","Poppins", sans-serif, Roboto, "Helvetica Neue", Arial;--text-x:.75rem;--text-xs:.8125rem;--text-sm:.875rem;--text-m:.9375rem;--text-base:1rem;--text-l:1.125rem;--text-lg:1.25rem;--text-xl:1.375rem;--text-2xl:1.625rem;--text-3xl:1.75rem;--text-4xl:2rem;--font-medium:500;--font-semibold:600;--font-bold:700;--font-extrabold:800}[data-theme=dark]{--primary:#3b82f6;--primary-hover:#60a5fa;--background:#0f172a;--surface:#111827;--surface-secondary:#182235;--surface-hover:#1f2937;--text-primary:#f3f4f6;--text-secondary:#9ca3af;--border:#293548;--text-muted:#aeb8c2;--sidebar-text:#d1d5db;--sidebar-text-secondary:#9ca3af;--sidebar-border:#ffffff14;--sidebar-hover:#ffffff14;--icon-background:#3b82f61f;--success:#4ade80;--success-background:#22c55e26;--danger:#f87171;--danger-background:#ef444426;--overlay:#000000b3;--shadow:0 4px 20px #0003;--summary-bg:#1e293b;--bg-light:#1e293b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--strength-track:#3b4658}html{background:var(--background);transition:background-color .25s}body{font-family:var(--font-sans);background:var(--background);color:var(--text-primary);margin:0;transition:background-color .25s,color .25s}.page-loader{color:#64748b;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:60vh;font-size:14px;display:flex}.page-loader-spinner{border:3px solid #e2e8f0;border-top-color:#2563eb;border-radius:50%;width:28px;height:28px;animation:.7s linear infinite page-loader-spin}@keyframes page-loader-spin{to{transform:rotate(360deg)}}.login-page{background:linear-gradient(135deg, var(--sidebar-background) 0%, var(--primary) 100%);width:100%;min-height:100dvh;color:var(--text-primary);justify-content:center;align-items:center;padding:24px;display:flex;overflow-x:hidden}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);width:100%;max-width:420px;box-shadow:var(--shadow-modal);text-align:center;padding:36px;animation:.25s login-card-enter}@keyframes login-card-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.login-logo{border-radius:var(--radius-pill);background:var(--primary);width:68px;height:68px;color:var(--text-on-primary);font-size:var(--font-lg);letter-spacing:.5px;box-shadow:var(--shadow-primary);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;margin:0 auto 18px;font-weight:700;display:flex}.login-card h1{color:var(--text-heading);font-size:var(--font-xl);letter-spacing:-.2px;margin:0;font-weight:700;line-height:1.25}.login-subtitle{color:var(--text-secondary);font-size:var(--font-sm);margin:8px 0 28px;line-height:1.5}.login-form{flex-direction:column;gap:14px;width:100%;display:flex}.login-field{text-align:left;flex-direction:column;gap:7px;width:100%;display:flex}.login-field label{color:var(--text-primary);font-size:var(--font-sm);font-weight:600;line-height:1.3}.login-form input{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-secondary);width:100%;height:46px;color:var(--text-primary);font-family:var(--font-sans);font-size:var(--font-sm);transition:border-color var(--transition-fast), background-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;padding:0 14px;display:block}.login-form input::placeholder{color:var(--text-muted)}.login-form input:hover{border-color:var(--primary)}.login-form input:focus{background:var(--surface);border-color:var(--primary);box-shadow:var(--focus-ring)}.login-form input:disabled{opacity:.65;cursor:not-allowed}.login-form button{border-radius:var(--radius-md);background:var(--primary);width:100%;min-height:46px;color:var(--text-on-primary);font-family:var(--font-sans);font-size:var(--font-sm);cursor:pointer;transition:background-color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);border:0;justify-content:center;align-items:center;margin-top:4px;padding:0 18px;font-weight:600;display:flex}.login-form button:hover:not(:disabled){background:var(--primary-hover);box-shadow:var(--shadow-primary)}.login-form button:active:not(:disabled){transform:scale(.985)}.login-form button:focus-visible{box-shadow:var(--focus-ring);outline:none}.login-form button:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.login-error{border:1px solid var(--danger);border-radius:var(--radius-md);background:var(--danger-background);width:100%;color:var(--danger);font-size:var(--font-xs);text-align:left;overflow-wrap:anywhere;padding:10px 12px;line-height:1.45}@media (width<=768px){.login-page{padding:20px}.login-card{max-width:400px;padding:32px}}@media (width<=600px){.login-page{min-height:100dvh;padding:16px}.login-card{border-radius:var(--radius-lg);width:100%;box-shadow:var(--shadow-modal);padding:28px 22px}.login-logo{width:60px;height:60px;font-size:var(--font-md);margin-bottom:16px}.login-card h1{font-size:var(--font-lg)}.login-subtitle{font-size:var(--font-xs);margin-bottom:22px}.login-form{gap:12px}.login-form input{height:44px;padding:0 13px}.login-form button{min-height:44px}}@media (width<=380px){.login-page{padding:10px}.login-card{border-radius:var(--radius-md);padding:24px 16px}.login-logo{width:54px;height:54px;margin-bottom:14px}.login-card h1{font-size:var(--font-md)}.login-subtitle{margin-top:6px;margin-bottom:18px}.login-form input{height:42px}.login-form button{min-height:42px}}@media (height<=520px) and (orientation:landscape){.login-page{align-items:flex-start;padding-top:20px;padding-bottom:20px;overflow-y:auto}.login-card{margin:auto 0;padding:22px}.login-logo{width:52px;height:52px;margin-bottom:10px}.login-subtitle{margin-bottom:14px}.login-form{gap:10px}}@media (hover:none){.login-form button:hover:not(:disabled){background:var(--primary);box-shadow:none}.login-form input:hover{border-color:var(--border)}}@media (prefers-reduced-motion:reduce){.login-card,.login-form input,.login-form button{transition:none;animation:none}}.chat-page{background:var(--background);width:100%;height:100dvh;color:var(--text-primary);font-family:var(--font-sans);flex-direction:column;display:flex;overflow:hidden}.chat-header{width:100%;min-height:var(--header-height);height:var(--header-height);background:var(--primary);color:var(--text-on-primary);z-index:10;border-bottom:1px solid #ffffff14;flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:0 20px;display:flex}.group-info{align-items:center;gap:12px;min-width:0;display:flex}.group-avatar{border-radius:var(--radius-pill);background:var(--primary-hover);width:44px;min-width:44px;height:44px;color:var(--text-on-primary);font-size:var(--font-base);font-weight:var(--font-bold);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;display:flex}.group-info>div:last-child{min-width:0}.group-info h2{text-overflow:ellipsis;white-space:nowrap;color:inherit;font-size:var(--font-md);font-weight:var(--font-semibold);margin:0;line-height:1.3;overflow:hidden}.group-info span{color:#ffffffbf;font-size:var(--font-xs);margin-top:2px;line-height:1.2;display:block}.current-user{flex-shrink:0;align-items:center;gap:12px;display:flex}.current-user>span{text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-size:var(--font-sm);font-weight:var(--font-medium);overflow:hidden}.current-user button{border-radius:var(--radius-md);background:var(--surface);min-height:36px;color:var(--primary);font-family:inherit;font-size:var(--font-sm);font-weight:var(--font-semibold);cursor:pointer;transition:background-color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);border:0;padding:0 14px}.current-user button:hover{background:var(--surface-hover)}.current-user button:active{transform:scale(.98)}.current-user button:focus-visible{box-shadow:var(--focus-ring);outline:none}.chat-body{background:linear-gradient(180deg, var(--background) 0%, var(--surface-secondary) 100%);scrollbar-width:thin;scrollbar-color:var(--border-default) transparent;flex:1;min-height:0;padding:24px 20px;overflow:hidden auto}.chat-body::-webkit-scrollbar{width:7px}.chat-body::-webkit-scrollbar-track{background:0 0}.chat-body::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:var(--radius-pill)}.chat-body::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.chat-welcome{text-align:center;width:100%;max-width:900px;color:var(--text-secondary);font-size:var(--font-xs);flex-direction:column;align-items:center;gap:4px;margin:0 auto 20px;display:flex}.chat-welcome strong{color:var(--text-heading);font-size:var(--font-sm);font-weight:var(--font-semibold)}.messages-container{flex-direction:column;gap:6px;width:100%;max-width:900px;margin:0 auto;display:flex}.message-row{width:100%;min-width:0;display:flex}.message-row.own{justify-content:flex-end}.message-row.other{justify-content:flex-start}.message-bubble{border-radius:var(--radius-md);width:fit-content;min-width:0;max-width:min(70%,560px);box-shadow:var(--shadow-xs);word-break:break-word;border:1px solid #0000;padding:8px 10px;overflow:hidden}.message-bubble.own{background:#d9fdd3;border-top-right-radius:3px}.message-bubble.other{background:var(--surface);border-color:var(--border-light);border-top-left-radius:3px}.sender-name{color:var(--primary);font-size:var(--font-xs);font-weight:var(--font-semibold);margin-bottom:4px;line-height:1.3}.message-text{color:var(--text-heading);font-size:var(--font-m);white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.45}.message-time{text-align:right;color:var(--text-muted);-webkit-user-select:none;user-select:none;margin-top:4px;font-size:10px;line-height:1}.message-media{max-width:100%;margin-top:4px}.chat-image-link{border-radius:var(--radius-lg);background:var(--surface-muted);width:fit-content;text-decoration:none;display:block;overflow:hidden}.chat-image{object-fit:contain;border-radius:var(--radius-lg);cursor:pointer;width:auto;max-width:100%;max-height:380px;transition:transform var(--transition-fast);display:block}.chat-image:hover{transform:scale(1.015)}.chat-file{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-secondary);width:min(320px,100%);color:var(--text-primary);transition:background-color var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);align-items:center;gap:12px;padding:10px;text-decoration:none;display:flex}.chat-file:hover{background:var(--surface-hover);border-color:var(--border-default)}.chat-file:active{transform:scale(.99)}.chat-file-icon{border-radius:var(--radius-md);background:var(--icon-background);width:40px;min-width:40px;height:40px;color:var(--primary);font-size:var(--font-lg);justify-content:center;align-items:center;display:flex}.chat-file-info{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.chat-file-info strong{text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary);font-size:var(--font-sm);font-weight:var(--font-semibold);display:block;overflow:hidden}.chat-file-info small{color:var(--text-secondary);font-size:var(--font-xs)}.chat-input{background:var(--surface);border-top:1px solid var(--border);z-index:10;flex-shrink:0;align-items:center;gap:8px;width:100%;padding:10px 15px;display:flex}.chat-attach-button{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface-secondary);width:42px;min-width:42px;height:42px;color:var(--text-secondary);font-size:var(--font-lg);cursor:pointer;transition:background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);justify-content:center;align-items:center;padding:0;display:flex}.chat-attach-button:hover{background:var(--surface-hover);color:var(--primary);border-color:var(--border-default)}.chat-attach-button:active{transform:scale(.96)}.chat-attach-button:disabled{opacity:.5;cursor:not-allowed}.chat-input input[type=text]{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface-secondary);min-width:0;height:42px;color:var(--text-primary);font-family:inherit;font-size:var(--font-sm);transition:border-color var(--transition-fast), background-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;flex:1;padding:0 16px}.chat-input input[type=text]::placeholder{color:var(--text-placeholder)}.chat-input input[type=text]:hover{border-color:var(--border-default)}.chat-input input[type=text]:focus{background:var(--surface);border-color:var(--primary);box-shadow:var(--focus-ring)}.chat-input input[type=text]:disabled{opacity:.65;cursor:not-allowed}.chat-input button[type=submit]{border-radius:var(--radius-pill);background:var(--primary);min-width:92px;height:42px;color:var(--text-on-primary);font-family:inherit;font-size:var(--font-sm);font-weight:var(--font-semibold);cursor:pointer;transition:background-color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);border:0;justify-content:center;align-items:center;gap:8px;padding:0 18px;display:flex}.chat-input button[type=submit]:hover:not(:disabled){background:var(--primary-hover);box-shadow:var(--shadow-primary)}.chat-input button[type=submit]:active:not(:disabled){transform:scale(.98)}.chat-input button[type=submit]:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.chat-input button[type=submit] i{font-size:var(--font-sm)}.chat-loading,.chat-error{background:var(--background);width:100%;min-height:100dvh;color:var(--text-primary);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:24px;display:flex}.chat-error h2{color:var(--text-heading);font-size:var(--font-lg);margin:0}.chat-error p{color:var(--text-secondary);font-size:var(--font-sm);margin:0}.chat-error button{border-radius:var(--radius-md);background:var(--primary);min-height:40px;color:var(--text-on-primary);cursor:pointer;border:0;padding:0 16px;font-family:inherit}@media (width<=900px){.chat-header{padding:0 16px}.chat-body{padding:20px 14px}.chat-input{padding:9px 12px}.message-bubble{max-width:78%}.messages-container,.chat-welcome{max-width:100%}}@media (width<=600px){.chat-header{gap:8px;height:60px;min-height:60px;padding:0 10px}.group-info{gap:8px}.group-avatar{width:38px;min-width:38px;height:38px;font-size:var(--font-sm)}.group-info h2{max-width:145px;font-size:var(--font-sm)}.group-info span{font-size:11px}.current-user{gap:6px}.current-user button{min-height:34px;font-size:var(--font-xs);padding:0 10px}.chat-body{padding:16px 8px}.chat-welcome{margin-bottom:14px}.message-text{font-size:var(--font-sm)}.sender-name{font-size:12px}.chat-image-link{max-width:min(260px,100%)}.chat-image{max-height:300px}.chat-file{gap:9px;width:min(260px,100%);padding:8px}.chat-file-icon{width:36px;min-width:36px;height:36px;font-size:var(--font-base)}.chat-file-info strong{font-size:var(--font-xs)}.chat-input{padding:8px 8px max(8px, env(safe-area-inset-bottom));gap:6px}.chat-attach-button{border-radius:var(--radius-md);width:40px;min-width:40px;height:40px;font-size:var(--font-base)}.chat-input input[type=text]{height:40px;font-size:var(--font-sm);padding:0 13px}.chat-input button[type=submit] i{font-size:var(--font-sm)}}@media (width<=380px){.group-info h2{max-width:110px}.chat-body{padding-left:6px;padding-right:6px}.message-bubble{max-width:92%}.chat-attach-button{width:38px;min-width:38px;height:38px}.chat-input input[type=text]{height:38px;padding:0 11px}.chat-input button[type=submit]{width:38px;min-width:38px;height:38px}}@media (hover:none){.chat-image:hover{transform:none}.chat-file:hover{background:var(--surface-secondary);border-color:var(--border)}.current-user button:hover{background:var(--surface)}}@media (prefers-reduced-motion:reduce){.chat-image,.chat-file,.chat-attach-button,.chat-input button[type=submit],.current-user button{transition:none}}
