:root{--bg:#f2f4fb;--surface:#fff;--border:#d8ddf0;--text:#0e1b3d;--text-muted:#5a6482;--primary:#2f4bd0;--primary-rgb:47 75 208;--primary-hover:#2a3fb2;--primary-container:#e3e7fd;--radius:14px;--shadow:0 1px 2px #0e1b3d0d, 0 4px 12px #0e1b3d12;--font-brand:"Poppins", "Inter", system-ui, sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:Inter,system-ui,-apple-system,sans-serif}button{font-family:inherit}h1,h2,h3{font-family:var(--font-brand);letter-spacing:-.01em;font-weight:600}.app-shell{height:100dvh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:1rem;width:260px;padding:1rem;display:flex}.sidebar-backdrop{display:none}.menu-btn{border:1px solid var(--border);background:var(--surface);width:2.25rem;height:2.25rem;color:var(--text-muted);cursor:pointer;border-radius:8px;flex-shrink:0;font-size:1.1rem;line-height:1;display:none}.header-left{align-items:center;gap:.75rem;min-width:0;display:flex}.new-chat-btn{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:.6rem;font-size:.85rem;font-weight:600}.new-chat-btn:hover{background:var(--primary-hover)}.session-list{flex-direction:column;flex:1;gap:.25rem;display:flex;overflow-y:auto}.sidebar-account{border-top:1px solid var(--border);align-items:center;gap:.6rem;min-width:0;padding-top:.75rem;display:flex}.sidebar-account .user-name{min-width:0;color:var(--text);flex:1;font-size:.85rem}.sidebar-account .link-btn{flex-shrink:0}.new-chat-icon-btn{border:1px solid var(--border);background:var(--surface);width:2.25rem;height:2.25rem;color:var(--text-muted);cursor:pointer;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:none}.session-item{color:var(--text-muted);border-radius:8px;flex-direction:column;gap:.1rem;padding:.55rem .7rem;font-size:.85rem;text-decoration:none;display:flex}.session-title{text-overflow:ellipsis;white-space:nowrap;color:var(--text);overflow:hidden}.session-item.active .session-title{color:var(--primary)}.session-date{color:var(--text-muted);font-size:.75rem}.session-item:hover{background:var(--bg)}.load-more-btn{color:var(--primary);cursor:pointer;background:0 0;border:none;border-radius:8px;margin-top:.25rem;padding:.5rem;font-size:.8rem;font-weight:600}.load-more-btn:hover:not(:disabled){background:var(--bg)}.load-more-btn:disabled{color:var(--text-muted);cursor:default}.session-item.active{background:rgb(var(--primary-rgb) / .1);color:var(--primary);font-weight:600}.sidebar .empty{color:var(--text-muted);padding:.5rem .7rem;font-size:.8rem}.chat .empty{text-align:center;color:var(--text-muted);margin-top:2rem;font-size:.9rem}.chat{flex-direction:column;flex:1;min-width:0;max-width:720px;height:100dvh;margin:0 auto;padding:0 1.5rem;display:flex}.chat header{flex-shrink:0;justify-content:space-between;align-items:center;gap:.5rem;padding:1.25rem 0;display:flex}.brand{font-family:var(--font-brand);letter-spacing:-.025em;color:var(--text);align-items:center;gap:.5rem;font-size:1.35rem;font-weight:700;display:flex}.brand-lg{gap:.7rem;font-size:2rem}.brand-mark{flex-shrink:0}.chat-welcome{text-align:center;flex-direction:column;align-items:center;max-width:420px;margin:auto;padding:2rem 1rem;display:flex}.chat-welcome h2{margin:1.25rem 0 .5rem;font-size:1.5rem}.chat-welcome p{color:var(--text-muted);margin:0;line-height:1.55}.user-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.avatar{background:var(--border);width:28px;height:28px;color:var(--text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.8rem;font-weight:600;display:flex}.link-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.4rem .6rem;font-size:.85rem}.link-btn:hover{background:var(--border);color:var(--text)}.messages{flex-direction:column;flex:1;gap:1.25rem;padding:.5rem 0 1rem;display:flex;overflow-y:auto}.message{max-width:80%;display:flex}.message.user{align-self:flex-end}.message.assistant{align-self:stretch;max-width:none}.bubble{border-radius:16px;padding:.65rem 1rem;font-size:.95rem;line-height:1.45}.message.user .bubble{background:var(--primary-container);color:var(--text);white-space:pre-wrap;border-radius:18px}.message-image{object-fit:contain;border-radius:10px;max-width:100%;max-height:260px;margin-bottom:.5rem;display:block}.message.assistant .bubble{padding:0;line-height:1.6}.bubble p{margin:0 0 .6em}.bubble p:last-child{margin-bottom:0}.bubble ul,.bubble ol{margin:.4em 0;padding-left:1.3em}.bubble li{margin-bottom:.2em}.bubble a{color:var(--primary)}.bubble hr{border:none;border-top:1px solid var(--border);margin:.8em 0}.bubble strong{font-weight:600}.bubble .sources{border-top:1px solid var(--border);margin-top:.8em;padding-top:.6em}.bubble .sources summary{cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid var(--border);background:var(--bg);color:var(--text-muted);border-radius:999px;align-items:center;gap:.4em;padding:.3rem .7rem;font-size:.85rem;font-weight:500;list-style:none;transition:background .15s,color .15s;display:inline-flex}.bubble .sources summary::-webkit-details-marker{display:none}.bubble .sources summary:before{content:"";border-bottom:2px solid;border-right:2px solid;width:.4em;height:.4em;transition:transform .15s;transform:rotate(-45deg)}.bubble .sources[open] summary:before{transform:rotate(45deg)}.bubble .sources summary:hover{color:var(--text);background:var(--surface)}.bubble .sources summary:focus-visible{box-shadow:0 0 0 3px rgb(var(--primary-rgb) / .15);outline:none}.bubble .sources[open] summary{margin-bottom:.4em}.icon-btn{border:1px solid var(--border);background:var(--surface);width:2.75rem;color:var(--text-muted);cursor:pointer;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.icon-btn:hover:not(:disabled){background:var(--bg);color:var(--primary)}.icon-btn:disabled{opacity:.5;cursor:default}.attached-file-chip{border:1px solid var(--border);background:var(--bg);color:var(--text-muted);border-radius:999px;align-items:center;gap:.5rem;margin-top:.75rem;padding:.35rem .5rem .35rem .75rem;font-size:.82rem;display:inline-flex}.attached-file-chip button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:.1rem .3rem;font-size:1rem;line-height:1}.attached-file-chip button:hover{color:var(--text)}.mode-tabs{flex-shrink:0;gap:.4rem;padding-top:.75rem;display:flex}.mode-tabs button{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;border-radius:999px;padding:.4rem .9rem;font-size:.85rem;transition:background .15s,color .15s}.mode-tabs button:hover{background:var(--bg)}.mode-tabs button.active{background:var(--primary);border-color:var(--primary);color:#fff}.dropzone{border:2px dashed var(--border);border-radius:var(--radius);text-align:center;color:var(--text-muted);cursor:pointer;margin-top:.75rem;padding:1.25rem;font-size:.9rem;transition:background .15s,border-color .15s}.dropzone:hover,.dropzone.drag-over{background:var(--bg);border-color:var(--primary)}.image-check-row{gap:.5rem;padding:.75rem 0 1.5rem;display:flex}.chat form.image-check-form{padding:.75rem 0 0;display:block}.chat form{flex-shrink:0;gap:.5rem;padding:1rem 0 1.5rem;display:flex}.chat input[type=text],.chat input:not([type]){border:1px solid var(--border);background:var(--surface);border-radius:999px;flex:1;min-width:0;padding:.75rem 1rem;font-size:.95rem}.chat input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgb(var(--primary-rgb) / .15);outline:none}.chat button[type=submit]{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:999px;padding:0 1.5rem;font-weight:600;transition:background .15s}.chat button.send-btn[type=submit]{flex-shrink:0;justify-content:center;align-items:center;width:2.75rem;padding:0;display:flex}.chat button[type=submit]:hover:not(:disabled){background:var(--primary-hover)}.chat button[type=submit]:disabled,.chat input:disabled{opacity:.6;cursor:not-allowed}@media (width<=720px){.menu-btn,.new-chat-icon-btn{justify-content:center;align-items:center;display:flex}.sidebar{z-index:20;width:min(80vw,300px);box-shadow:var(--shadow);transition:transform .2s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-backdrop{z-index:10;background:#0006;display:block;position:fixed;inset:0}.chat{max-width:none;padding:0 .75rem}.chat header{padding:.85rem 0}.brand{font-size:1.2rem}.message.user{max-width:92%}.chat form{padding:.75rem 0 1rem}.chat button[type=submit]{padding:0 1.1rem}}.auth-page{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:2rem 1rem;display:flex}.auth-header{text-align:center;flex-direction:column;align-items:center;margin-bottom:1.75rem;display:flex}.auth-header p{color:var(--text-muted);margin:.75rem 0 0;font-size:1.05rem}.auth{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:380px;box-shadow:var(--shadow);padding:2.25rem 2rem 2rem}.auth h1{text-align:center;margin:0 0 1.5rem;font-size:1.3rem}.auth form{flex-direction:column;gap:1rem;display:flex}.auth label{color:var(--text-muted);flex-direction:column;gap:.35rem;font-size:.85rem;font-weight:500;display:flex}.auth input{border:1px solid var(--border);border-radius:10px;padding:.7rem .9rem;font-family:inherit;font-size:.95rem}.auth input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgb(var(--primary-rgb) / .15);outline:none}.auth button[type=submit]{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:.75rem;font-size:.95rem;font-weight:600;transition:background .15s}.auth button[type=submit]:hover:not(:disabled){background:var(--primary-hover)}.auth button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.error{color:#c0392b;margin:0;font-size:.85rem}.auth-info{color:var(--text-muted);text-align:center;margin:0 0 1rem;font-size:.85rem}.auth-btn{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:10px;width:100%;padding:.7rem;font-size:.95rem;font-weight:600;transition:background .15s}.auth-btn:hover:not(:disabled){background:var(--primary-hover)}.auth-btn:disabled{opacity:.6;cursor:not-allowed}.or{text-align:center;color:var(--text-muted);margin:1.25rem 0;font-size:.8rem;position:relative}.or:before,.or:after{content:"";border-top:1px solid var(--border);width:40%;position:absolute;top:50%}.or:before{left:0}.or:after{right:0}.google-btn{border:1px solid var(--border);color:var(--text);background:var(--surface);border-radius:10px;justify-content:center;align-items:center;gap:.5rem;padding:.7rem;font-size:.9rem;font-weight:500;text-decoration:none;transition:background .15s;display:flex}.google-btn:hover{background:var(--bg)}.auth-footer{text-align:center;color:var(--text-muted);margin:1.25rem 0 0;font-size:.85rem}.auth-footer a{color:var(--primary);font-weight:500;text-decoration:none}.auth-footer a:hover{text-decoration:underline}.landing{flex-direction:column;min-height:100vh;display:flex}.landing-nav{justify-content:space-between;align-items:center;width:100%;max-width:1100px;margin:0 auto;padding:1.25rem 2rem;display:flex}.landing-nav-links{align-items:center;gap:1.5rem;display:flex}.landing-nav-links a{color:var(--text-muted);font-size:.9rem;font-weight:500;text-decoration:none}.landing-nav-links a:hover{color:var(--text)}.landing-nav-cta{background:var(--primary);border-radius:10px;padding:.55rem 1.1rem;transition:background .15s;color:#fff!important}.landing-nav-cta:hover{background:var(--primary-hover)}.landing main{flex:1}.landing-hero{text-align:center;max-width:720px;margin:0 auto;padding:4rem 1.5rem 3rem}.landing-hero h1{margin:1.5rem 0 1.2rem;font-size:2.5rem;line-height:1.2}.landing-subtitle{color:var(--text-muted);margin:0 0 2rem;font-size:1.1rem;line-height:1.6}.landing-cta-group{justify-content:center;gap:1rem;display:flex}.landing-cta-primary{background:var(--primary);color:#fff;border-radius:10px;padding:.85rem 1.75rem;font-size:1rem;font-weight:600;text-decoration:none;transition:background .15s}.landing-cta-primary:hover{background:var(--primary-hover)}.landing-cta-secondary{color:var(--text);border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:.85rem 1.75rem;font-size:1rem;font-weight:600;text-decoration:none;transition:background .15s}.landing-cta-secondary:hover{background:var(--bg)}.landing-steps{grid-template-columns:repeat(3,1fr);gap:1.5rem;max-width:1000px;margin:0 auto;padding:2rem 1.5rem 4rem;display:grid}.landing-step{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.75rem}.landing-step-number{background:rgb(var(--primary-rgb) / .1);width:32px;height:32px;color:var(--primary);border-radius:50%;justify-content:center;align-items:center;margin-bottom:1rem;font-weight:700;display:inline-flex}.landing-step h3{margin:0 0 .5rem;font-size:1.05rem}.landing-step p{color:var(--text-muted);margin:0;font-size:.9rem;line-height:1.55}.landing-trust{text-align:center;max-width:720px;margin:0 auto;padding:2rem 1.5rem}.landing-trust h2{margin:0 0 1rem;font-size:1.5rem}.landing-trust p{color:var(--text-muted);margin:0;line-height:1.65}.landing-final-cta{text-align:center;max-width:720px;margin:0 auto;padding:3rem 1.5rem 5rem}.landing-final-cta h2{margin:0 0 1.5rem;font-size:1.6rem}.landing-footer{border-top:1px solid var(--border);flex-direction:column;align-items:center;gap:.5rem;padding:2rem;display:flex}.landing-footer p{color:var(--text-muted);margin:0;font-size:.85rem}@media (width<=720px){.landing-steps{grid-template-columns:1fr}.landing-hero h1{font-size:1.8rem}.landing-cta-group{flex-direction:column}.landing-nav{padding:1rem}.landing-nav-login{display:none}}
