*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;line-height:1.5;color-scheme:light dark}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}.center-min-h-screen{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--space-6) var(--space-4)}.auth-card{width:100%;max-width:420px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:clamp(var(--space-5),5vw,var(--space-8));box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--space-5)}.auth-header{text-align:center}.auth-header h1{margin:0 0 var(--space-2);font-size:1.75rem;font-weight:var(--font-weight-semibold)}.auth-sub{margin:0;font-size:var(--text-sm);color:var(--color-text-muted)}form.auth-form{display:flex;flex-direction:column;gap:var(--space-4)}form.auth-form .field-group{display:flex;flex-direction:column;gap:var(--space-2)}form.auth-form label{font-size:var(--text-sm);font-weight:var(--font-weight-medium)}form.auth-form input{font:inherit;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-alt);color:var(--color-text);transition:border-color var(--transition-fast),background var(--transition-fast)}form.auth-form input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--color-focus-ring);background:var(--color-bg)}.grid-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-4);width:100%}form.auth-form .field-group input{width:100%}.auth-card input{min-width:0}@media (max-width: 380px){.auth-card{padding:var(--space-6) var(--space-5)}}@media (max-width: 520px){.grid-2{grid-template-columns:1fr}}button.primary-btn{appearance:none;cursor:pointer;border:1px solid var(--color-primary);background:var(--color-primary);color:#fff;font:inherit;font-weight:var(--font-weight-medium);padding:var(--space-3) var(--space-5);border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);transition:background var(--transition-fast),box-shadow var(--transition-fast)}button.primary-btn:hover{background:var(--color-primary-hover)}button.primary-btn:focus{outline:none;box-shadow:var(--color-focus-ring)}button.primary-btn:active{transform:translateY(1px)}button.primary-btn:disabled{opacity:.6;cursor:not-allowed}.auth-alt{text-align:center;font-size:var(--text-sm);color:var(--color-text-muted)}.auth-alt a{font-weight:var(--font-weight-medium)}html{transition:background-color .3s,color .3s}body,.auth-card,input,button{transition:background-color .3s,color .3s,border-color .3s}:root{--color-bg: #ffffff;--color-bg-alt: #f5f7fa;--color-surface: #ffffff;--color-border: #d0d7de;--color-text: #111827;--color-text-muted: #5f6b7a;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-danger: #dc2626;--color-focus-ring: 0 0 0 3px rgba(37, 99, 235, .4);--shadow-xs: 0 1px 2px rgba(0,0,0,.04);--shadow-sm: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04);--font-sans: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--radius-sm: 4px;--radius-md: 8px;--radius-full: 999px;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--transition-fast: .12s cubic-bezier(.4,0,.2,1)}@media (prefers-color-scheme: dark){:root{--color-bg: #0f172a;--color-bg-alt: #1e293b;--color-surface: #1e293b;--color-border: #334155;--color-text: #f1f5f9;--color-text-muted: #94a3b8;--color-primary: #3b82f6;--color-primary-hover: #2563eb;--color-danger: #f87171;--color-focus-ring: 0 0 0 3px rgba(59,130,246,.45);--shadow-xs: 0 1px 2px rgba(0,0,0,.6);--shadow-sm: 0 1px 3px rgba(0,0,0,.7), 0 1px 2px rgba(0,0,0,.5)}}.chat-mobile-bar{position:fixed;top:0;left:0;right:0;min-height:52px;display:flex;align-items:center;gap:var(--space-4);padding:env(safe-area-inset-top,0) var(--space-4) 0 var(--space-4);border-bottom:1px solid var(--color-border);background:#050505e6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:30;box-sizing:border-box}.chat-app-title{margin:0;font-size:1.1rem;font-weight:var(--font-weight-medium);flex:1;text-align:center;pointer-events:none}.chat-icon-btn{background:#0d0d0d;border:1px solid #1e1e1e;padding:8px 14px;border-radius:10px;font:inherit;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;color:#d0d0d0;flex-shrink:0}.chat-icon-btn:hover{background:#181818;color:#fff}@media (max-width:480px){.chat-mobile-bar{gap:8px;padding:env(safe-area-inset-top,0) 10px 0 10px}.chat-icon-btn{padding:8px 10px}.chat-app-title{font-size:1rem}}@media (min-width:960px){.chat-mobile-bar{display:none}}.chat-layout{display:flex;height:100dvh;background:var(--color-bg);font-size:var(--text-base)}.chat-main{flex:1;display:flex;flex-direction:column;align-items:center;height:100dvh;padding-top:calc(52px + env(safe-area-inset-top,0));position:relative}@media (min-width: 960px){.chat-main{padding-top:0}}@media (min-width: 960px){.chat-layout{flex-direction:row}}@media (max-width: 959px){.chat-layout{flex-direction:column}}.chat-layout.minimal{--color-bg: #000;--color-bg-alt: #0d0d0d;--color-surface: #050505;--color-border: #1e1e1e;--color-text: #f5f5f5;--color-text-muted: #7a7a7a;--color-accent: #fff}.chat-layout.minimal{background:linear-gradient(180deg,#000,#050505 60% 100%);color:var(--color-text)}.chat-layout.minimal .chat-main{background:transparent}.chat-layout.minimal .chat-mobile-bar{background:#000;border-color:#1e1e1e}.chat-layout.minimal .chat-icon-btn{background:#0d0d0d;border-color:#1f1f1f;color:var(--color-text)}.chat-layout.minimal .chat-icon-btn:hover{background:#141414}.chat-layout.minimal .chat-sidebar{background:#000;border-color:#1e1e1e}.chat-layout.minimal .sidebar-header{border-color:#1e1e1e}.chat-layout.minimal .small-btn{background:#111;border-color:#2a2a2a}.chat-layout.minimal .small-btn:hover{background:#181818}.chat-layout.minimal .chat-list-item{background:#0d0d0d;border-color:#1a1a1a}.chat-layout.minimal .chat-list-item:hover{background:#141414}.chat-layout.minimal .chat-list-item.active{border-color:#fff;box-shadow:0 0 0 1px #fff}.chat-layout.minimal .msg-bubble{background:#0d0d0d;border-color:#1e1e1e;color:var(--color-text)}.chat-layout.minimal .msg-user .msg-bubble{background:#111;border-color:#2a2a2a;color:#f8f8f8}.chat-layout.minimal .msg-role{color:#5a5a5a}.chat-layout.minimal .msg-error .msg-bubble{border-color:#ff4d4d;color:#ff4d4d}.chat-welcome{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;pointer-events:none;text-align:center}.chat-welcome h1{font-size:2.75rem;font-weight:600;letter-spacing:-.02em;margin:0;background:linear-gradient(90deg,#fafafa,#5a5a5a);-webkit-background-clip:text;background-clip:text;color:transparent}.chat-welcome p{margin:0;font-size:.95rem;color:#6a6a6a;max-width:420px;line-height:1.4}.chat-welcome .chip{background:#111;border:1px solid #1f1f1f;padding:6px 14px;border-radius:999px;font-size:.75rem;font-weight:500;color:#b5b5b5}.chat-layout.minimal .messages::-webkit-scrollbar{width:10px}.chat-layout.minimal .messages::-webkit-scrollbar-track{background:#000}.chat-layout.minimal .messages::-webkit-scrollbar-thumb{background:#1e1e1e;border-radius:6px}.chat-layout.minimal .messages::-webkit-scrollbar-thumb:hover{background:#2a2a2a}.chat-sidebar{width:250px;flex-shrink:0;border-right:1px solid var(--color-border);background:var(--color-surface);display:flex;flex-direction:column;position:fixed;top:0;bottom:0;left:-270px;z-index:40;transition:transform var(--transition-fast);padding-top:52px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.chat-sidebar.open{transform:translate(270px)}@media (min-width:960px){.chat-sidebar{position:static;transform:none;left:0;padding-top:0}}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);border-bottom:1px solid var(--color-border);gap:8px}.sidebar-header h2{margin:0;font-size:1rem;font-weight:var(--font-weight-medium)}.small-btn{font:inherit;background:#111;color:#fafafa;border:1px solid #252525;border-radius:8px;padding:6px 12px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-size:.75rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase}.small-btn:hover{background:#181818}.chat-list{display:flex;flex-direction:column;gap:2px;padding:var(--space-3);overflow-y:auto}.chat-list-item{text-align:left;background:#0d0d0d;border:1px solid #1c1c1c;padding:var(--space-3) var(--space-4);border-radius:12px;cursor:pointer;display:flex;flex-direction:column;gap:2px;font:inherit;position:relative;transition:background var(--transition-fast),border-color var(--transition-fast)}.chat-list-item.active{border-color:#fff;box-shadow:0 0 0 1px #fff}.chat-list-item:hover{background:#151515}.chat-list-item .title-line{font-size:var(--text-sm);font-weight:var(--font-weight-medium);line-height:1.3}.chat-list-item .meta-line{font-size:.65rem;color:var(--color-text-muted)}.empty-hint{margin:var(--space-4);font-size:var(--text-sm);color:var(--color-text-muted)}.sidebar-backdrop{position:fixed;inset:0;background:#00000059;border:none;padding:0;margin:0;cursor:pointer;z-index:35}@media (min-width:960px){.sidebar-backdrop{display:none}}.messages{flex:1;width:100%;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-5);max-width:820px}.messages::-webkit-scrollbar{display:none}.msg{display:flex;flex-direction:column;max-width:780px;position:relative}.msg-user{align-self:flex-end}.msg-role{font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:4px;font-weight:600}.msg-bubble{padding:var(--space-4) var(--space-5);border:1px solid var(--color-border);background:var(--color-bg-alt);border-radius:14px;line-height:1.5;white-space:pre-wrap;word-wrap:break-word;font-size:var(--text-sm)}.msg-user .msg-bubble{background:linear-gradient(180deg,#1f1f1f,#161616);color:#fafafa;border:1px solid #2a2a2a}.minimal .msg-user .msg-bubble{background:#111;border-color:#2a2a2a}.msg-ai .msg-bubble{background:#0d0d0d;border-color:#1e1e1e}.msg-ai.pending .msg-bubble{display:inline-flex;gap:6px}.msg-error .msg-bubble{border-color:var(--color-danger);color:var(--color-danger)}.msg-actions{display:flex;align-items:center;gap:6px;margin-top:8px;opacity:0;pointer-events:none;transition:opacity var(--transition-fast)}.msg:hover .msg-actions,.msg:focus-within .msg-actions{opacity:1;pointer-events:auto}.msg-actions button{width:30px;height:30px;background:#0d0d0d;border:1px solid #1e1e1e;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;cursor:pointer;color:#6a6a6a;padding:0}.msg-actions button:hover{background:#151515;color:#fff}.msg-actions button:focus-visible{outline:2px solid #ffffff;outline-offset:2px}.msg-actions svg{width:16px;height:16px;stroke-width:1.75}.msg-ai .msg-bubble{animation:fadeIn .25s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.typing-dots span{width:6px;height:6px;background:currentColor;opacity:.6;border-radius:50%;animation:blink 1s infinite ease-in-out}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.2}40%{opacity:1}}.composer{position:sticky;bottom:0;width:100%;padding:24px 0 32px;display:flex;justify-content:center;background:linear-gradient(to top,#000000d9,#0000);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.composer-surface{display:flex;align-items:flex-end;gap:8px;max-width:820px;width:100%;margin:0 32px;background:#1f1f20;border:1px solid #3a3a3c;border-radius:24px;padding:12px 14px 14px 18px;position:relative;transition:border-color .15s,background-color .15s,box-shadow .15s}.composer-surface:focus-within{background:#232324;border-color:#565759;box-shadow:0 0 0 1px #565759,0 0 0 4px #56575940}.composer-field{flex:1;position:relative}.composer-input{width:100%;resize:none;border:0;outline:none;background:transparent;color:#f5f5f5;font:inherit;line-height:1.5;max-height:260px;padding:0 0 18px}.composer-input::placeholder{color:#8d8d91}.composer-hint{position:absolute;left:2px;bottom:2px;font-size:11px;color:#5f6165;pointer-events:none;-webkit-user-select:none;user-select:none;line-height:1.1;font-weight:500}.send-btn.icon-btn{--size: 40px;width:var(--size);height:var(--size);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#3a3a3c;border:1px solid #525255;color:#f1f1f2;cursor:pointer;transition:background-color .15s,border-color .15s,transform .15s;flex-shrink:0}.send-btn.icon-btn:hover:not(:disabled){background:#4a4a4d}.send-btn.icon-btn:active:not(:disabled){background:#343436;transform:translateY(1px)}.send-btn.icon-btn:disabled{opacity:.35;cursor:default}.send-btn.icon-btn:focus-visible{outline:none;box-shadow:0 0 0 2px #fff,0 0 0 4px #000}.send-icon{display:inline-flex}.send-btn.icon-btn:hover:not(:disabled) .send-icon{transform:translate(1px)}.send-icon svg{transition:transform .15s}@media (max-width:600px){.composer{padding:16px 0 26px}.composer-surface{margin:0 12px;border-radius:20px;padding:10px 12px 12px 16px}.send-btn.icon-btn{--size:36px}}@media (max-width:420px){.composer-hint{display:none}.composer-input{padding-bottom:0}}@media (prefers-reduced-motion: reduce){.send-btn.icon-btn,.send-icon svg{transition:none}}
