@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap";:root{color-scheme:dark;--app-padding: 12px;--bg: #1a1a1a;--bg-soft: #202123;--surface: #2f2f2f;--surface-elevated: #343541;--surface-sidebar: #171717;--border: #3a3a3a;--text: #ececec;--muted: #a8a8a8;--accent: #10a37f;--accent-strong: #0e8d6f;--danger: #f87171;--danger-soft: rgba(248, 113, 113, .12);--focus: 0 0 0 2px rgba(16, 163, 127, .28), 0 0 0 4px rgba(16, 163, 127, .48);--radius-sm: 10px;--radius-md: 14px;--radius-lg: 18px;--radius-xl: 22px;--shadow: 0 20px 56px rgba(0, 0, 0, .35);--transition: .18s ease}[data-theme=light]{color-scheme:light;--bg: #f4f7fb;--bg-soft: #eef2f8;--surface: #ffffff;--surface-elevated: #f8fafc;--surface-sidebar: #e9eef6;--border: #d7e0ea;--text: #0f172a;--muted: #4b5563;--accent: #0f766e;--accent-strong: #0a5f58;--danger: #dc2626;--danger-soft: rgba(220, 38, 38, .09);--focus: 0 0 0 2px rgba(15, 118, 110, .25), 0 0 0 4px rgba(15, 118, 110, .45);--shadow: 0 18px 48px rgba(15, 23, 42, .12)}*{box-sizing:border-box}html,body,#root{height:100%;min-height:100%}html{overflow:hidden;-webkit-text-size-adjust:100%}body{margin:0;font-family:Plus Jakarta Sans,sans-serif;color:var(--text);background:radial-gradient(circle at 100% 0%,rgba(16,163,127,.08),transparent 35%),var(--bg);transition:background-color var(--transition),color var(--transition);overflow:hidden}.app-shell{min-height:100dvh;padding:calc(var(--app-padding) + env(safe-area-inset-top)) calc(var(--app-padding) + env(safe-area-inset-right)) calc(var(--app-padding) + env(safe-area-inset-bottom)) calc(var(--app-padding) + env(safe-area-inset-left))}.app-card{width:min(1440px,100%);height:calc(100dvh - (var(--app-padding) * 2) - env(safe-area-inset-top) - env(safe-area-inset-bottom));min-height:0;margin:0 auto;background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 96%,white 4%),var(--surface));border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden}.app-header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 18px;border-bottom:1px solid var(--border);background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 8%,transparent),transparent 42%),color-mix(in srgb,var(--surface) 86%,var(--bg-soft));flex-shrink:0}.app-header h1{margin:0;font-size:clamp(1.2rem,2vw,1.45rem);line-height:1.15}.brand-title{display:flex;align-items:center;gap:12px}.brand-title.compact{gap:10px}.brand-icon{width:48px;height:48px;border-radius:16px;object-fit:cover;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--border));box-shadow:0 10px 26px #0000002e;flex:0 0 auto}.brand-title.compact .brand-icon{width:42px;height:42px;border-radius:14px}.eyebrow{margin:0 0 4px;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700}.subtext{margin:2px 0 0;color:var(--muted);font-size:.88rem}.header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end;min-width:0}.header-actions>*{min-width:0}.new-chat-button,.composer-button,.auth-toggle-button,.theme-button,.session-delete-button{font:inherit;border-radius:999px;border:1px solid var(--border);background:var(--surface-elevated);color:var(--text);min-height:40px;padding:0 14px;cursor:pointer;transition:transform var(--transition),background-color var(--transition),border-color var(--transition),box-shadow var(--transition)}.new-chat-button:hover:not(:disabled),.composer-button:hover:not(:disabled),.auth-toggle-button:hover,.theme-button:hover,.session-delete-button:hover:not(:disabled){transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}.new-chat-button:focus-visible,.composer-button:focus-visible,.auth-toggle-button:focus-visible,.theme-button:focus-visible,.session-delete-button:focus-visible,.composer-input:focus-visible,.session-item-main:focus-visible{outline:none;box-shadow:var(--focus)}.new-chat-button{background:color-mix(in srgb,var(--surface-elevated) 70%,var(--bg))}.new-chat-button.secondary{border-color:color-mix(in srgb,var(--danger) 26%,var(--border));color:var(--danger)}.theme-switch{display:inline-flex;gap:6px;padding:4px;border-radius:999px;border:1px solid var(--border);background:color-mix(in srgb,var(--surface-elevated) 70%,var(--bg-soft))}.theme-button{min-height:32px;padding:0 12px;border:1px solid transparent;background:transparent;color:var(--muted);font-weight:700}.theme-button.active{background:var(--surface);color:var(--text);border-color:var(--border)}.status-pill{display:inline-flex;align-items:center;min-height:36px;padding:0 12px;border-radius:999px;background:color-mix(in srgb,var(--accent) 18%,transparent);color:color-mix(in srgb,var(--accent) 85%,white 15%);border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));font-size:.82rem;font-weight:700;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-layout{flex:1;min-height:0;display:grid;grid-template-columns:clamp(240px,22vw,310px) minmax(0,1fr)}.session-sidebar{background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 6%,transparent),transparent 34%),var(--surface-sidebar);border-right:1px solid var(--border);padding:12px;overflow:auto;overscroll-behavior:contain}.profile-card{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface-sidebar) 75%,var(--surface) 25%);margin-bottom:14px}.profile-card-button{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:transform var(--transition),border-color var(--transition),background-color var(--transition),box-shadow var(--transition)}.profile-card-button:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 42%,var(--border));background:color-mix(in srgb,var(--accent) 10%,var(--surface-sidebar));box-shadow:0 12px 28px #00000029}.profile-card-button:focus-visible{outline:none;box-shadow:var(--focus)}.profile-avatar{width:42px;height:42px;border-radius:12px;color:#fff;display:grid;place-items:center;font-weight:800;font-size:1rem}.profile-meta{min-width:0}.profile-name{font-weight:700;font-size:.92rem}.profile-username{margin-top:2px;color:var(--muted);font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-sidebar-header{margin-bottom:8px;color:var(--muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700}.session-list{display:flex;flex-direction:column;gap:8px}.session-empty{color:var(--muted);padding:12px;border:1px dashed var(--border);border-radius:var(--radius-sm);font-size:.86rem}.session-item{border:1px solid transparent;border-radius:12px;padding:8px;background:transparent;transition:background-color var(--transition),border-color var(--transition)}.session-item:hover{background:color-mix(in srgb,var(--surface-sidebar) 45%,var(--surface));border-color:var(--border)}.session-item.active{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 22%,var(--surface-sidebar)),color-mix(in srgb,var(--surface-sidebar) 80%,var(--surface)));border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}.session-item-main{width:100%;border:none;padding:2px;text-align:left;background:transparent;color:inherit;cursor:pointer;display:flex;flex-direction:column;gap:2px;border-radius:8px}.session-title{font-size:.9rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-meta{color:var(--muted);font-size:.74rem}.session-delete-button{margin-top:7px;min-height:30px;padding:0 10px;border-color:color-mix(in srgb,var(--danger) 45%,var(--border));color:var(--danger);background:var(--danger-soft);font-size:.75rem;font-weight:700}.chat-panel{min-height:0;overflow:auto;padding:20px clamp(14px,4vw,48px);background:color-mix(in srgb,var(--surface) 88%,var(--bg-soft));overscroll-behavior:contain}.empty-state{width:min(760px,100%);margin:20px auto;padding:24px;border-radius:var(--radius-lg);border:1px dashed var(--border);background:color-mix(in srgb,var(--surface-elevated) 65%,var(--surface))}.empty-state-icon{width:58px;height:58px;border-radius:18px;object-fit:cover;margin-bottom:14px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border))}.empty-state h2{margin:0 0 8px}.empty-state p{margin:0;color:var(--muted)}.message-row{width:min(760px,100%);margin:0 auto 16px;display:flex}.message-row.user{justify-content:flex-end}.message-row.assistant{justify-content:flex-start}.message-bubble{max-width:min(88%,74ch);border-radius:var(--radius-lg);border:1px solid var(--border);padding:12px 14px;min-width:0}.message-bubble.assistant{background:linear-gradient(180deg,color-mix(in srgb,var(--surface-elevated) 86%,var(--surface)),color-mix(in srgb,var(--surface-elevated) 68%,var(--surface)))}.message-bubble.user{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 32%,var(--surface-elevated)),color-mix(in srgb,var(--accent) 18%,var(--surface-elevated)));border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}.message-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}.message-role{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.68rem;font-weight:800}.message-edit-button,.message-action-button{font:inherit;min-height:30px;border-radius:999px;border:1px solid var(--border);background:color-mix(in srgb,var(--surface-elevated) 75%,var(--surface));color:var(--text);padding:0 10px;cursor:pointer;font-size:.75rem;font-weight:800;transition:background-color var(--transition),border-color var(--transition),transform var(--transition)}.message-edit-button{width:32px;min-width:32px;padding:0;display:inline-grid;place-items:center;line-height:1;font-size:0}.message-edit-button:before{content:"✎";font-size:1rem}.profile-avatar-button{border:none;cursor:pointer;transition:transform var(--transition),box-shadow var(--transition)}.profile-avatar-button:hover{transform:translateY(-1px);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 24%,transparent)}.profile-avatar-button:focus-visible{outline:none;box-shadow:var(--focus)}.message-edit-button:hover:not(:disabled),.message-action-button:hover:not(:disabled){transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}.message-edit-button:disabled,.message-action-button:disabled{opacity:.6;cursor:not-allowed}.message-edit-form{display:flex;flex-direction:column;gap:10px}.message-edit-input{width:100%;min-height:112px;resize:vertical;border-radius:12px;border:1px solid var(--border);background:color-mix(in srgb,var(--surface-elevated) 84%,var(--surface));color:var(--text);font:inherit;line-height:1.55;padding:10px 12px}.message-edit-input:focus-visible,.message-edit-button:focus-visible,.message-action-button:focus-visible{outline:none;box-shadow:var(--focus)}.message-edit-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.message-action-button.primary{border-color:color-mix(in srgb,var(--accent) 50%,var(--border));background:var(--accent);color:#fff}.message-text{white-space:pre-wrap;word-break:break-word;line-height:1.7;font-size:.95rem}.composer{border-top:1px solid var(--border);padding:14px 18px calc(14px + env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr auto;gap:10px;background:color-mix(in srgb,var(--surface) 82%,var(--bg-soft));flex-shrink:0}.composer-input{width:100%;min-height:44px;border-radius:14px;border:1px solid var(--border);background:color-mix(in srgb,var(--surface-elevated) 84%,var(--surface));color:var(--text);font:inherit;font-size:16px;padding:0 14px}.composer-input::placeholder{color:color-mix(in srgb,var(--muted) 86%,transparent)}.composer-input.input-error{border-color:color-mix(in srgb,var(--danger) 70%,var(--border));background:color-mix(in srgb,var(--danger-soft) 70%,var(--surface-elevated))}.field-error{color:var(--danger);font-size:.76rem;line-height:1.35}.password-field{position:relative}.password-input{padding-right:48px}.password-toggle{position:absolute;top:50%;right:10px;width:34px;height:34px;transform:translateY(-50%);border:none;border-radius:999px;background:transparent;color:var(--muted);cursor:pointer;display:grid;place-items:center}.password-toggle:before{content:"";width:18px;height:12px;border:2px solid currentColor;border-radius:999px/760px}.password-toggle:after{content:"";position:absolute;width:6px;height:6px;border-radius:999px;background:currentColor}.password-toggle:hover{color:var(--text);background:color-mix(in srgb,var(--surface-elevated) 70%,transparent)}.password-toggle:focus-visible{outline:none;box-shadow:var(--focus)}.composer-button{min-width:104px;border-color:color-mix(in srgb,var(--accent) 50%,var(--border));background:var(--accent);color:#fff;font-weight:800}.composer-button:hover:not(:disabled){background:var(--accent-strong)}.composer-button:disabled,.new-chat-button:disabled{opacity:.6;cursor:not-allowed}.status-message{margin:10px 16px 0;border-radius:12px;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--text);padding:10px 12px;font-size:.88rem}.status-message.error{border-color:color-mix(in srgb,var(--danger) 45%,var(--border));background:var(--danger-soft)}.auth-shell{display:grid;place-items:center}.auth-panel{width:min(560px,100%);border-radius:var(--radius-xl);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);padding:22px;display:flex;flex-direction:column;gap:14px}.auth-brand h1{margin:0;font-size:clamp(1.6rem,3.3vw,2.3rem)}.auth-form{display:flex;flex-direction:column;gap:10px}.auth-form label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:.86rem;font-weight:600}.auth-toggle{display:inline-flex;align-self:flex-start;padding:4px;gap:6px;border-radius:999px;border:1px solid var(--border);background:color-mix(in srgb,var(--surface-elevated) 75%,var(--bg-soft))}.auth-toggle-button{min-height:34px;border:1px solid transparent;background:transparent;color:var(--muted);font-weight:700}.auth-toggle-button.active{border-color:var(--border);background:var(--surface);color:var(--text)}.auth-textarea{min-height:90px;padding:10px 12px;resize:vertical}.auth-submit{margin-top:6px}.auth-link-button{align-self:center;border:none;background:transparent;color:var(--accent);font:inherit;font-weight:800;cursor:pointer;padding:4px 8px}.auth-link-button:hover{color:var(--accent-strong);text-decoration:underline}.auth-link-button:focus-visible{outline:none;box-shadow:var(--focus);border-radius:999px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:18px;background:color-mix(in srgb,var(--bg) 54%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.modal-dialog{width:min(460px,100%);border-radius:var(--radius-lg);border:1px solid color-mix(in srgb,var(--border) 80%,transparent);background:color-mix(in srgb,var(--surface) 88%,transparent);box-shadow:var(--shadow);padding:22px;display:flex;flex-direction:column;gap:16px}.modal-dialog h2{margin:0 0 6px;font-size:1.25rem}.modal-dialog p{margin:0;color:var(--muted);line-height:1.55}.modal-icon{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;font-weight:900}.modal-icon.danger{color:var(--danger);background:var(--danger-soft);border:1px solid color-mix(in srgb,var(--danger) 35%,var(--border))}.modal-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.modal-button{min-height:40px;border-radius:999px;border:1px solid var(--border);padding:0 16px;color:var(--text);background:var(--surface-elevated);font:inherit;font-weight:800;cursor:pointer}.modal-button.primary{background:var(--accent);color:#fff;border-color:color-mix(in srgb,var(--accent) 60%,var(--border))}.modal-button.danger{background:var(--danger);color:#fff;border-color:color-mix(in srgb,var(--danger) 70%,var(--border))}.modal-button.secondary{background:transparent}.modal-button:hover:not(:disabled){transform:translateY(-1px)}.modal-button:disabled{opacity:.65;cursor:not-allowed}.modal-button:focus-visible{outline:none;box-shadow:var(--focus)}.profile-dialog{width:min(520px,100%)}.profile-modal-head{display:flex;align-items:center;gap:14px}.profile-modal-avatar{width:58px;height:58px;border-radius:18px;flex:0 0 auto;font-size:1.2rem}.profile-modal-head h2{margin:0}.profile-modal-head p{margin-top:4px}.profile-detail-list{display:grid;gap:10px}.profile-detail-list div{border:1px solid var(--border);border-radius:12px;padding:12px;background:color-mix(in srgb,var(--surface-elevated) 58%,transparent)}.profile-detail-list span{display:block;margin-bottom:4px;color:var(--muted);font-size:.74rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.profile-detail-list strong{display:block;color:var(--text);font-size:.95rem;line-height:1.45;word-break:break-word}.loading{opacity:.7;animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.7}50%{opacity:1}}@media (min-width: 1280px){.message-row{width:min(860px,100%)}.message-bubble{max-width:min(84%,82ch)}}@media (max-width: 1100px){:root{--app-padding: 8px}.app-header{align-items:flex-start;flex-direction:column}.header-actions{width:100%;justify-content:flex-start}.chat-layout{grid-template-columns:clamp(220px,28vw,270px) minmax(0,1fr)}.status-pill{max-width:100%;justify-content:center}}@media (max-width: 900px){.app-header{padding:12px 14px;gap:10px}.app-header h1{font-size:1.2rem}.subtext{font-size:.8rem}.header-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.header-actions .theme-switch{grid-column:span 2;justify-content:center}.status-pill{grid-column:span 2}.chat-layout{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.session-sidebar{border-right:none;border-bottom:1px solid var(--border);max-height:138px;padding:10px 14px}.profile-card{display:none}.session-list{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(176px,28%);overflow-x:auto;overflow-y:hidden;padding-bottom:4px;gap:8px;scrollbar-width:thin}.session-item{min-width:0;padding:8px 10px}.session-delete-button{min-height:28px;margin-top:6px}}@media (max-width: 700px){:root{--app-padding: 0px}body{background:var(--surface)}.app-card{width:100%;height:100dvh;border-radius:0;border:none;box-shadow:none}.app-header{padding:calc(9px + env(safe-area-inset-top)) 12px 9px}.app-header h1{font-size:1.15rem}.eyebrow{margin-bottom:2px;font-size:.66rem}.subtext{display:none}.header-actions{grid-template-columns:1fr 1fr}.header-actions .theme-switch,.status-pill{grid-column:1 / -1;width:100%}.new-chat-button,.composer-button,.auth-toggle-button,.theme-button,.session-delete-button{min-height:38px}.session-sidebar{max-height:110px;padding:8px 12px}.session-sidebar-header{margin-bottom:6px;font-size:.68rem}.session-list{grid-auto-columns:minmax(148px,62%)}.session-title{font-size:.84rem}.session-meta{font-size:.7rem}.chat-panel{padding:12px 10px}.empty-state{margin:8px auto;padding:18px}.message-row{margin-bottom:12px}.message-bubble{max-width:94%;padding:10px 11px;border-radius:16px}.message-text{line-height:1.58;font-size:.92rem}.composer{grid-template-columns:1fr;padding:10px 12px calc(10px + env(safe-area-inset-bottom));gap:8px}.composer-button,.new-chat-button{width:100%}.auth-shell{place-items:stretch}.auth-panel{width:100%;min-height:100dvh;justify-content:center;border-radius:0;border:none;box-shadow:none;padding:calc(18px + env(safe-area-inset-top)) 18px calc(18px + env(safe-area-inset-bottom))}.modal-backdrop{padding:14px;align-items:end}.modal-dialog{padding:18px;border-radius:18px}.modal-actions{display:grid;grid-template-columns:1fr 1fr}.modal-button{width:100%}}@media (max-width: 420px){.app-header{padding-left:10px;padding-right:10px}.header-actions{gap:7px}.new-chat-button,.composer-button,.auth-toggle-button,.theme-button,.session-delete-button{min-height:36px;padding-left:10px;padding-right:10px;font-size:.9rem}.status-pill{min-height:34px;font-size:.76rem}.session-sidebar{max-height:104px;padding:7px 10px}.session-list{grid-auto-columns:minmax(136px,72%)}.session-item{padding:7px 9px}.session-delete-button{min-height:26px;font-size:.7rem}.message-bubble{max-width:100%}.message-edit-actions{display:grid;grid-template-columns:1fr 1fr}}@media (max-width: 360px){.app-header h1{font-size:1.05rem}.header-actions{grid-template-columns:1fr}.header-actions .theme-switch,.status-pill{grid-column:auto}.session-sidebar{max-height:98px}.session-list{grid-auto-columns:minmax(128px,82%)}.composer-input{min-height:42px}}@media (max-height: 620px) and (orientation: landscape){.app-header{flex-direction:row;align-items:center;padding:8px 12px}.app-header h1{font-size:1rem}.eyebrow,.subtext,.status-pill{display:none}.header-actions{width:auto;display:flex;justify-content:flex-end}.theme-switch{display:none}.chat-layout{grid-template-columns:minmax(170px,28vw) minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.session-sidebar{max-height:none;border-right:1px solid var(--border);border-bottom:none;padding:8px}.session-list{display:flex;flex-direction:column;overflow:auto}.chat-panel{padding:10px 12px}.composer{grid-template-columns:1fr auto;padding:8px 12px}.composer-button{width:auto}}
