.splash-container{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg);padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.splash-content{text-align:center;color:var(--text-primary)}.splash-logo{margin-bottom:60px}.logo-icon{font-size:72px;margin-bottom:20px;animation:pulse 2s infinite}.splash-logo h1{font-size:32px;font-weight:600;margin:0;opacity:.9}.splash-loader{display:flex;flex-direction:column;align-items:center;gap:16px}.loader-spinner{width:32px;height:32px;border:3px solid var(--surface-2);border-top:3px solid var(--accent);border-radius:50%;animation:spin 1s linear infinite}.splash-loader p{color:var(--text-secondary);font-size:16px;margin:0}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}@media (max-width: 480px){.logo-icon{font-size:60px}.splash-logo h1{font-size:28px}}.btn{border:none;border-radius:12px;font-family:inherit;font-weight:500;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:12px 20px;font-size:16px;line-height:1.2}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-solid{background:var(--accent);color:#fff}.btn-solid:hover:not(:disabled){background:#60a5fa}.btn-solid:active:not(:disabled){background:#2563eb;transform:scale(.98)}.btn-ghost{background:transparent;color:var(--text-primary);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){background:var(--surface-2);border-color:var(--accent)}.btn-ghost:active:not(:disabled){background:var(--surface);transform:scale(.98)}.btn:focus-visible{outline:2px solid rgba(59,130,246,.5);outline-offset:2px}.text-field{width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:14px 16px;color:var(--text-primary);font-size:16px;font-family:inherit;transition:all .2s ease;min-height:44px}.text-field::placeholder{color:var(--text-secondary)}.text-field:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #3b82f61a}.text-area{resize:vertical;line-height:1.5;max-height:120px;overflow-y:auto}@media screen and (max-width: 768px){.text-field{font-size:16px}}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px;background:var(--bg)}.login-card{width:100%;max-width:400px;background:var(--surface);border-radius:16px;padding:40px 32px;box-shadow:0 4px 20px #0000004d}.login-logo{text-align:center;margin-bottom:40px}.logo-image{width:72px;height:72px;margin-bottom:16px;filter:brightness(1.1)}.login-logo h1{color:var(--text-primary);font-size:28px;font-weight:600;margin:0}.login-form{display:flex;flex-direction:column;gap:20px;margin-bottom:24px}.login-button{padding:16px;font-size:16px;font-weight:600}.error-message{background:#ef44441a;color:var(--danger);padding:12px 16px;border-radius:8px;border-left:4px solid var(--danger);font-size:14px;margin-bottom:20px}@media (max-width: 480px){.login-container{padding:16px}.login-card{padding:32px 24px}.logo-image{width:60px;height:60px}.login-logo h1{font-size:24px}}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:none;border-radius:12px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;font-size:20px}.icon-btn:hover:not(:disabled){background:var(--surface-2);color:var(--text-primary)}.icon-btn:active:not(:disabled){background:var(--surface);transform:scale(.95)}.icon-btn:disabled{opacity:.5;cursor:not-allowed}.icon-btn:focus-visible{outline:2px solid rgba(59,130,246,.5);outline-offset:2px}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;padding-top:calc(16px + env(safe-area-inset-top));background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.chat-title{font-size:20px;font-weight:600;color:var(--text-primary);margin:0}.chat-actions{display:flex;gap:8px}.message-item{display:flex;margin-bottom:4px;padding:0 16px}.message-item.user{justify-content:flex-end}.message-item.assistant{justify-content:flex-start}.message-bubble{max-width:80%;border-radius:14px;padding:10px 12px;position:relative;word-wrap:break-word}.message-item.user .message-bubble{background:var(--surface-2);color:var(--text-primary)}.message-item.assistant .message-bubble{background:var(--surface);color:var(--text-primary)}.message-image{max-width:100%;border-radius:8px;margin-bottom:8px;display:block}.message-file{display:flex;align-items:center;gap:8px;padding:8px 0;font-size:14px;color:var(--text-secondary)}.message-content{line-height:1.4;white-space:pre-wrap}.message-time{font-size:11px;color:var(--text-secondary);margin-top:4px;text-align:right;opacity:.7}.message-item.assistant .message-time{text-align:left}.message-list{flex:1;overflow-y:auto;padding:0;display:flex;flex-direction:column;gap:8px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-secondary);text-align:center;padding:40px 20px}.empty-icon{font-size:48px;margin-bottom:16px;opacity:.5}.empty-state p{margin:0;font-size:16px}.composer{background:var(--bg);border-top:1px solid var(--border);padding:12px 16px;padding-bottom:calc(12px + env(safe-area-inset-bottom))}.pending-file{background:var(--surface-2);border-radius:12px;padding:12px;margin-bottom:12px;display:flex;align-items:center;gap:12px}.file-preview{display:flex;align-items:center;gap:8px;flex:1}.file-icon{color:var(--accent);font-size:18px}.file-info{display:flex;flex-direction:column}.file-name{color:var(--text-primary);font-size:14px;font-weight:500}.file-size{color:var(--text-secondary);font-size:12px}.upload-progress{position:relative;width:60px;height:4px;background:var(--border);border-radius:2px;overflow:hidden}.progress-bar{height:100%;background:var(--accent);border-radius:2px;transition:width .3s ease}.progress-text{position:absolute;top:-20px;right:0;font-size:10px;color:var(--text-secondary)}.remove-file{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;border-radius:50%;display:flex;align-items:center;justify-content:center;width:24px;height:24px}.remove-file:hover{background:var(--surface);color:var(--danger)}.composer-input{display:flex;align-items:flex-end;gap:12px}.input-container{flex:1;display:flex;align-items:flex-end;gap:12px;position:relative}.attach-button-container{position:relative}.attach-button{width:44px;height:44px;border-radius:50%;background:var(--surface-2);border:none;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.attach-button:hover{background:var(--surface);color:var(--text-primary)}.attach-button.active{background:var(--accent);color:#fff}.attach-button svg{transition:transform .2s ease}.attach-button svg.rotated{transform:rotate(45deg)}.attach-menu{position:absolute;bottom:52px;left:0;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:8px;box-shadow:0 8px 32px #0000004d;z-index:100;min-width:280px}.attach-options{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.attach-option{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 8px;background:none;border:none;border-radius:12px;color:var(--text-primary);cursor:pointer;transition:all .2s ease;min-height:80px}.attach-option:hover{background:var(--surface-2);color:var(--accent)}.attach-option svg{font-size:24px}.attach-option span{font-size:12px;font-weight:500;text-align:center}.send-button{width:44px;height:44px;border-radius:50%;border:none;background:var(--surface-2);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.send-button.active{background:var(--accent);color:#fff}.send-button:disabled{opacity:.5;cursor:not-allowed}.send-button:not(:disabled):hover{transform:scale(1.05)}@media (max-width: 480px){.attach-menu{min-width:260px}.attach-options{grid-template-columns:repeat(4,1fr)}.attach-option{padding:12px 4px;min-height:70px}.attach-option svg{font-size:20px}}.chat-container{display:flex;flex-direction:column;height:100vh;background:var(--bg);overflow:hidden}.chat-messages{flex:1;overflow-y:auto;padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom))}.chat-messages::-webkit-scrollbar{width:4px}.chat-messages::-webkit-scrollbar-track{background:var(--surface)}.chat-messages::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.chat-messages::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}@supports (padding: max(0px)){.chat-container{padding-top:env(safe-area-inset-top)}}.error-banner{background:#ef44441a;color:var(--danger);padding:12px 16px;border-bottom:1px solid var(--danger);display:flex;justify-content:space-between;align-items:center;font-size:14px}.error-banner button{background:none;border:none;color:var(--danger);font-size:16px;cursor:pointer;padding:4px}.settings-container{min-height:100vh;background:var(--bg);color:var(--text-primary)}.settings-header{display:flex;align-items:center;padding:16px 20px;padding-top:calc(16px + env(safe-area-inset-top));background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.back-button{background:none;border:none;color:var(--accent);font-size:24px;cursor:pointer;margin-right:16px;padding:8px;border-radius:8px;line-height:1}.back-button:hover{background:var(--surface-2)}.settings-header h1{font-size:20px;font-weight:600;margin:0}.settings-content{padding:24px 20px;padding-bottom:calc(24px + env(safe-area-inset-bottom))}.settings-section{max-width:500px;margin-bottom:32px}.settings-section:last-child{margin-bottom:0}.settings-section h2{font-size:18px;font-weight:600;margin-bottom:24px;color:var(--text-primary)}.form-group{margin-bottom:24px}.form-group label{display:block;font-size:14px;font-weight:500;color:var(--text-primary);margin-bottom:8px}.helper-text{display:block;font-size:12px;color:var(--text-secondary);margin-top:6px;line-height:1.4}.button-group{display:flex;gap:12px;margin-top:32px}.button-group button{flex:1;padding:14px 20px;font-size:16px;font-weight:500}.test-result{margin-top:16px;padding:12px 16px;border-radius:8px;font-size:14px;font-weight:500}.test-result.success{background:#22c55e1a;color:var(--success);border-left:4px solid var(--success)}.test-result.error{background:#ef44441a;color:var(--danger);border-left:4px solid var(--danger)}.security-info,.app-info{display:flex;flex-direction:column;gap:16px}.info-card{background:var(--surface-2);border-radius:12px;padding:20px;border-left:4px solid var(--accent)}.info-card h3{color:var(--text-primary);font-size:16px;margin-bottom:12px;font-weight:600}.mfa-status{margin-bottom:12px}.status-badge{background:var(--surface);color:var(--text-primary);padding:6px 12px;border-radius:20px;font-size:14px;font-weight:500}.info-description{color:var(--text-secondary);font-size:14px;line-height:1.5;margin:0}.app-info{background:var(--surface-2);border-radius:12px;padding:20px}.info-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border)}.info-row:last-child{border-bottom:none}.info-row span:first-child{color:var(--text-secondary);font-size:14px}.info-row span:last-child{color:var(--text-primary);font-size:14px;font-weight:500}@media (max-width: 480px){.button-group{flex-direction:column}.settings-content,.info-card,.app-info{padding:16px}.settings-header{padding:12px 16px;padding-top:calc(12px + env(safe-area-inset-top))}.settings-section h2{font-size:16px}.button-group button{padding:12px 16px;font-size:14px}}.back-button:focus-visible{outline:2px solid rgba(59,130,246,.5);outline-offset:2px}.test-result{transition:all .3s ease}.info-card{transition:all .2s ease}.info-card:hover{background:var(--surface)}@supports (padding: max(0px)){.settings-header{padding-top:max(16px,env(safe-area-inset-top))}.settings-content{padding-bottom:max(24px,env(safe-area-inset-bottom))}}:root{--bg: #121212;--surface: #1A1A1A;--surface-2: #1F1F1F;--text-primary: #E6E6E6;--text-secondary: #A1A1A1;--border: #2A2A2A;--accent: #3B82F6;--danger: #EF4444;--success: #22C55E}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text-primary);font:16px/1.5 system-ui,-apple-system,SF Pro Text,sans-serif;-webkit-font-smoothing:antialiased;margin:0;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}#root{min-height:100vh}@media (max-width: 768px){.message-item{max-width:85%}.composer{padding-bottom:env(safe-area-inset-bottom,8px)}}.app{height:100vh;overflow:hidden}body{overscroll-behavior:none}@media (display-mode: standalone){body{-webkit-user-select:none;-webkit-touch-callout:none}}.app *{-webkit-tap-highlight-color:transparent}*{-webkit-overflow-scrolling:touch}
