:root{--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display:"Lexend", var(--font-sans);--color-bg:#fff;--color-bg-subtle:#f7f7f8;--color-surface:#fff;--color-surface-raised:#fff;--color-border:#e7e7ea;--color-border-strong:#d5d5da;--color-text:#202123;--color-text-secondary:#6e6e80;--color-text-muted:#9a9aa8;--color-primary:#4f46e5;--color-primary-hover:#4338ca;--color-primary-soft:#eef2ff;--color-primary-soft-border:#c7d2fe;--color-danger:#dc2626;--color-danger-hover:#b91c1c;--color-danger-soft:#fef2f2;--color-success:#059669;--color-success-soft:#ecfdf5;--color-success-soft-border:#a7f3d0;--color-info:#0284c7;--color-info-soft:#f0f9ff;--color-info-soft-border:#bae6fd;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--radius-full:999px;--shadow-sm:0 1px 2px #1018280d;--shadow-md:0 4px 16px #10182814;--shadow-lg:0 12px 32px #1018281f}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;margin:0}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.01em;margin:0}hr{border:none;border-top:1px solid var(--color-border);margin:20px 0}label{color:var(--color-text-secondary);font-size:13px;font-weight:600}button{font-family:inherit}.btn{border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:600;transition:background-color .15s,border-color .15s,box-shadow .15s,opacity .15s;display:inline-flex}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:var(--color-text);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background-color:#000}.btn-danger{color:var(--color-danger);border-color:var(--color-border);background-color:#fff}.btn-danger:hover:not(:disabled){background-color:var(--color-danger-soft);border-color:#fecaca}.btn-ghost{color:var(--color-text-secondary);border-color:var(--color-border);background-color:#0000}.btn-ghost:hover:not(:disabled){background-color:var(--color-bg-subtle);color:var(--color-text)}.btn-block{width:100%}input[type=text],input[type=email],input[type=password]{background:var(--color-surface);border:1px solid var(--color-border-strong);width:100%;color:var(--color-text);border-radius:var(--radius-sm);padding:11px 14px;font-family:inherit;font-size:14px;transition:border-color .15s,box-shadow .15s}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus{border-color:var(--color-text);outline:none;box-shadow:0 0 0 3px #20212314}input::placeholder{color:var(--color-text-muted)}.alert{border-radius:var(--radius-sm);border:1px solid #0000;margin-bottom:14px;padding:12px 14px;font-size:13.5px;line-height:1.5}.alert-danger{background-color:var(--color-danger-soft);color:#991b1b;border-color:#fecaca}.alert-success{background-color:var(--color-success-soft);color:#065f46;border-color:var(--color-success-soft-border)}.alert-info{background-color:var(--color-info-soft);color:#075985;border-color:var(--color-info-soft-border)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:var(--radius-full)}::-webkit-scrollbar-track{background:0 0}.app-header{border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-shrink:0;justify-content:space-between;align-items:center;height:56px;padding:0 20px;display:flex}.app-header-brand{font-family:var(--font-display);color:var(--color-text);align-items:center;gap:9px;font-size:15px;font-weight:700;display:flex}.app-header-brand:hover{text-decoration:none}.app-header-brand img{width:24px;height:24px}.app-header-right{color:var(--color-text-secondary);align-items:center;gap:10px;font-size:13.5px;display:flex}.app-footer{text-align:center;color:var(--color-text-muted);border-top:1px solid var(--color-border);flex-shrink:0;padding:16px;font-size:12.5px}.auth-split{min-height:100vh;display:flex}.auth-visual{color:#fff;background:linear-gradient(160deg,#211c4d 0%,#342f7d 55%,#171433 100%);flex-direction:column;flex:50%;padding:40px 48px;display:flex;position:relative;overflow:hidden}.auth-visual:before,.auth-visual:after{content:"";filter:blur(60px);pointer-events:none;border-radius:50%;position:absolute}.auth-visual:before{background:radial-gradient(circle,#818cf873,#0000 70%);width:460px;height:460px;top:-140px;right:-140px}.auth-visual:after{background:radial-gradient(circle,#d9775740,#0000 70%);width:420px;height:420px;bottom:-160px;left:-110px}.auth-visual-brand{z-index:1;font-family:var(--font-display);color:#fff;align-items:center;gap:10px;font-size:16px;font-weight:700;display:flex;position:relative}.auth-visual-brand:hover{text-decoration:none}.auth-visual-brand img{width:34px;height:34px}.auth-visual-body{z-index:1;max-width:460px;margin-top:auto;padding-top:60px;position:relative}.auth-visual-heading{font-family:var(--font-display);letter-spacing:-.01em;margin:0 0 14px;font-size:34px;font-weight:700;line-height:1.18}.auth-visual-subtitle{color:#ffffffb8;margin:0 0 30px;font-size:15px;line-height:1.6}.auth-visual-features{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.auth-visual-features li{color:#ffffffeb;align-items:center;gap:10px;font-size:14px;display:flex}.auth-visual-features .check{color:#c7d2fe;background:#818cf84d;border:1px solid #c7d2fe66;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;display:flex}.auth-form-panel{background:var(--color-bg);flex:50%;justify-content:center;align-items:center;padding:40px 24px;display:flex}.auth-form-inner{width:100%;max-width:380px}.auth-form-inner h1{font-family:var(--font-display);margin-bottom:6px;font-size:27px}.auth-form-subtitle{color:var(--color-text-secondary);margin:0 0 28px;font-size:14px}.btn-brand{background-color:var(--color-primary);color:#fff}.btn-brand:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn-google{background-color:var(--color-surface);color:var(--color-text);border-color:var(--color-border-strong)}.btn-google:hover:not(:disabled){background-color:var(--color-bg-subtle)}.auth-divider{color:var(--color-text-muted);align-items:center;gap:12px;margin:20px 0;font-size:12.5px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--color-border);flex:1;height:1px}.field{margin-bottom:16px}.field label{margin-bottom:6px;display:block}.input-wrap{position:relative}.input-wrap svg{color:var(--color-text-muted);pointer-events:none;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.input-wrap input{padding-left:40px}.auth-form-footer{text-align:center;color:var(--color-text-secondary);margin-top:22px;font-size:13.5px}@media (width<=900px){.auth-visual{display:none}}.app-layout{background:var(--color-bg);height:100vh;display:flex}.sidebar{background:var(--color-bg-subtle);flex-direction:column;flex-shrink:0;width:268px;height:100vh;transition:transform .25s ease-in-out;display:flex}.sidebar-header{padding:16px 12px 10px}.sidebar-brand{font-family:var(--font-display);align-items:center;gap:8px;margin-bottom:14px;padding:0 6px;font-size:14.5px;font-weight:700;display:flex}.sidebar-brand img{width:22px;height:22px}.new-chat-btn{background-color:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:8px;width:100%;padding:9px 12px;font-size:13.5px;font-weight:600;display:flex}.new-chat-btn:hover{background-color:var(--color-bg);border-color:var(--color-border-strong)}.sidebar-section-label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);padding:16px 18px 6px;font-size:11px;font-weight:700}.chat-list{flex:1;margin:0;padding:0 8px;list-style:none;overflow-y:auto}.chat-item{border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-secondary);justify-content:space-between;align-items:center;margin-bottom:1px;padding:8px 10px;font-size:13.5px;display:flex;position:relative}.chat-item:hover{background:#0000000b}.chat-item.active{color:var(--color-text);background:#0001;font-weight:600}.chat-item-title{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.chat-controls{display:flex}.chat-controls button{color:inherit;cursor:pointer;opacity:0;background:0 0;border:none;border-radius:6px;padding:4px;transition:opacity .1s;display:flex}.chat-item:hover .chat-controls button,.chat-item.active .chat-controls button{opacity:1}.chat-controls button:hover{background:#00000014}.chat-menu{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);z-index:20;min-width:150px;box-shadow:var(--shadow-md);padding:6px;position:absolute;top:calc(100% + 4px);right:0}.chat-menu button{text-align:left;width:100%;color:var(--color-text);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:8px 10px;font-size:13.5px;display:flex;opacity:1!important}.chat-menu button:hover{background:var(--color-bg-subtle)}.chat-menu button.danger{color:var(--color-danger)}.sidebar-empty{color:var(--color-text-muted);padding:18px;font-size:13px}.sidebar-footer{border-top:1px solid var(--color-border);align-items:center;gap:10px;padding:12px;display:flex}.avatar{background:var(--color-primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:13px;font-weight:700;display:flex}.sidebar-user-info{flex:1;min-width:0}.sidebar-user-name{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.sidebar-user-role{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11.5px;overflow:hidden}.icon-btn{color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:6px;display:flex}.icon-btn:hover{background:var(--color-bg-subtle);color:var(--color-text)}.main{background:var(--color-bg);flex-direction:column;flex:1;min-width:0;height:100vh;display:flex}.topbar{border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-shrink:0;align-items:center;gap:12px;padding:12px 16px;font-size:14px;display:flex}.topbar strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.topbar .sidebar-toggle{display:none}@media (width<=768px){.topbar .sidebar-toggle{display:flex}}.chat-window{flex:1;padding:32px 24px 8px;overflow-y:auto}.container{max-width:680px;margin:0 auto}.empty-state{text-align:center;padding:24px 0}.empty-state .icon-circle{background:var(--color-bg-subtle);width:44px;height:44px;color:var(--color-text);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 16px;display:flex}.empty-state h1{margin-bottom:8px;font-size:21px}.empty-state p{color:var(--color-text-secondary);margin-bottom:20px;font-size:14.5px}.chat-source-header{background:var(--color-bg-subtle);border-radius:var(--radius-sm);color:var(--color-text-secondary);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:24px;padding:10px 14px;font-size:12.5px;display:flex}.chat-source-header strong{color:var(--color-text);font-weight:600}.status-pill{border-radius:var(--radius-full);align-items:center;gap:6px;margin-bottom:20px;padding:8px 14px;font-size:13px;font-weight:600;display:inline-flex}.status-pill.loading{background:var(--color-info-soft);color:#075985}.status-pill.complete{background:var(--color-success-soft);color:#065f46}.spinner{border:2px solid #0284c740;border-top-color:#0284c7;border-radius:50%;width:13px;height:13px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.qa-block{flex-direction:column;gap:6px;margin-bottom:28px;display:flex}.msg-row{align-items:flex-start;gap:12px;display:flex}.msg-row.user{justify-content:flex-end}.msg-avatar{border-radius:50%;flex-shrink:0;width:26px;height:26px;margin-top:2px}.msg-bubble{white-space:pre-wrap;padding:10px 16px;font-size:15px;line-height:1.65}.msg-bubble.user{background:var(--color-bg-subtle);max-width:80%;color:var(--color-text);border-radius:var(--radius-lg)}.msg-bubble.answer{color:var(--color-text);cursor:pointer;border-radius:0;flex:1;padding:2px 0 0}.chat-input{background:var(--color-bg);padding:12px 24px 22px}.composer{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);max-width:680px;box-shadow:var(--shadow-sm);align-items:center;gap:8px;margin:0 auto;padding:8px;display:flex}.composer-attach{background:var(--color-bg-subtle);width:34px;height:34px;color:var(--color-text-secondary);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.composer-attach:hover{background:var(--color-border);color:var(--color-text)}.attachment-chips{flex-wrap:wrap;gap:8px;max-width:680px;margin:0 auto 10px;display:flex}.attachment-chip{background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text);align-items:center;gap:6px;padding:6px 8px 6px 10px;font-size:12.5px;display:inline-flex}.attachment-chip button{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;padding:2px;display:flex}.attachment-chip button:hover{background:var(--color-border);color:var(--color-text)}.composer:focus-within{border-color:var(--color-text-secondary);box-shadow:var(--shadow-md)}.composer input[type=text]{border:none;flex:1;padding:8px 0;box-shadow:none!important}.composer input[type=text]:focus{box-shadow:none}.composer-send{background:var(--color-text);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.composer-send:hover:not(:disabled){background:#000}.composer-send:disabled{opacity:.35;cursor:not-allowed}.composer-hint{text-align:center;max-width:680px;color:var(--color-text-muted);margin:8px auto 0;font-size:11.5px}.modal-overlay{z-index:100;background:#0f172a66;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-box{background:var(--color-surface);border-radius:var(--radius-lg);width:100%;max-width:380px;box-shadow:var(--shadow-lg);padding:22px}.modal-box h3{margin-bottom:4px;font-size:16.5px}.modal-box p{color:var(--color-text-secondary);margin:0 0 18px;font-size:13.5px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}@media (width<=768px){.sidebar{z-index:1000;height:100%;box-shadow:var(--shadow-lg);position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar.active{transform:translate(0)}}.admin-shell{background:var(--color-bg);min-height:100vh}.admin-topbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:16px 32px;display:flex}.admin-brand{font-family:var(--font-display);align-items:center;gap:10px;font-size:16px;font-weight:700;display:flex}.admin-brand img{border-radius:6px;width:28px;height:28px}.admin-body{max-width:980px;margin:0 auto;padding:40px 24px}.admin-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;display:flex}.admin-header h1{margin-bottom:4px;font-size:24px}.admin-header p{color:var(--color-text-secondary);margin:0;font-size:14px}.stat-row{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:28px;display:grid}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:18px 20px}.stat-card .stat-value{font-family:var(--font-display);font-size:26px;font-weight:700}.stat-card .stat-label{color:var(--color-text-secondary);margin-top:2px;font-size:13px}.admin-search{width:100%;max-width:280px;position:relative}.admin-search svg{color:var(--color-text-muted);position:absolute;top:50%;left:12px;transform:translateY(-50%)}.admin-search input{padding-left:36px}.admin-table-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}table.admin-table{border-collapse:collapse;width:100%}.admin-table thead th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);background:var(--color-bg);border-bottom:1px solid var(--color-border);padding:12px 20px;font-size:12px}.admin-table tbody td{border-bottom:1px solid var(--color-border);padding:14px 20px;font-size:14px}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table tbody tr:hover{background:var(--color-bg)}.admin-user-cell{align-items:center;gap:10px;display:flex}.admin-user-email{color:var(--color-text-secondary);font-size:13px}.admin-empty{text-align:center;color:var(--color-text-muted);padding:48px 20px;font-size:14px}
