:root{--chat-primary:#2563eb;--chat-bg:#ffffff;--chat-text:#1e293b;--chat-header-text:#ffffff;--chat-radius:18px;--chat-font:system-ui,-apple-system,sans-serif;--chat-font-size:15px;--chat-max-width:1200px;--chat-max-height:900px;--viewport-h:100vh}*{box-sizing:border-box}body,html{margin:0;min-height:100%;font-family:var(--chat-font)}body{background:radial-gradient(circle at top right,#dbeafe 0,#eff6ff 28%,#f8fafc 62%,#eef2ff 100%);color:var(--chat-text)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.chat-page{display:flex;justify-content:center;align-items:center;min-height:var(--viewport-h);height:var(--viewport-h);padding:18px;overflow:hidden}.chat-page.embedded{padding:0}.chat-container{width:min(60vw,var(--chat-max-width));height:min(calc(var(--viewport-h) - 36px),var(--chat-max-height));background:var(--chat-bg);border-radius:var(--chat-radius);box-shadow:0 10px 38px rgba(30,58,138,.16);border:1px solid rgba(148,163,184,.18);display:flex;flex-direction:column;overflow:hidden;font-size:var(--chat-font-size)}.chat-header{background:linear-gradient(135deg,color-mix(in srgb,var(--chat-primary) 88%,#0f172a 12%),var(--chat-primary));color:var(--chat-header-text);padding:18px 22px;display:flex;align-items:center;gap:12px}.chat-header .avatar{width:42px;height:42px;background:rgba(255,255,255,.2);border-radius:999px;display:flex;align-items:center;justify-content:center;font-size:21px;flex-shrink:0}.chat-header .info h2{margin:0;font-size:17px;font-weight:650}.chat-header .info p{margin:2px 0 0;font-size:13px;opacity:.9}.status-dot{width:8px;height:8px;background:#4ade80;border-radius:50%;display:inline-block;margin-right:5px}.messages{flex:1 1;overflow-y:auto;scroll-behavior:smooth;padding:18px;display:flex;flex-direction:column;gap:12px;background:linear-gradient(180deg,#f8fafc,#ffffff 30%)}.message{display:flex;max-width:min(90%,760px)}.message.user{align-self:flex-end}.bubble{width:100%;padding:10px 13px 12px;border-radius:16px;line-height:1.48;box-shadow:0 1px 0 rgba(15,23,42,.05);word-break:break-word}.message.bot .bubble{background:#eff6ff;color:#0f172a;border-bottom-left-radius:6px;border:1px solid rgba(96,165,250,.18)}.message.user .bubble{background:var(--chat-primary);color:#ffffff;border-bottom-right-radius:6px;border:1px solid color-mix(in srgb,var(--chat-primary) 72%,#0f172a 28%)}.bubble-head{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:12px;opacity:.9}.inline-avatar{width:24px;height:24px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:14px;background:rgba(255,255,255,.85);box-shadow:inset 0 0 0 1px rgba(15,23,42,.08);flex-shrink:0}.message.user .inline-avatar{background:rgba(255,255,255,.2);box-shadow:inset 0 0 0 1px rgba(255,255,255,.28)}.bubble-body{white-space:pre-wrap}.bubble-body .inline-link,.sources .inline-link{display:inline-flex;align-items:center;margin:2px 0;padding:2px 8px;border-radius:999px;text-decoration:none;font-weight:600;background:rgba(219,234,254,.95);color:#1d4ed8;border:1px solid rgba(37,99,235,.18)}.message.user .bubble-body .inline-link,.message.user .sources .inline-link{background:rgba(255,255,255,.16);color:#ffffff;border-color:rgba(255,255,255,.25)}.sources{margin-top:9px;font-size:12px}.sources .inline-link{margin-right:3px}.typing{display:flex;gap:8px;align-items:center;padding:4px 0;color:#475569;font-size:13px}.typing-dot{width:8px;height:8px;background:#64748b;border-radius:50%;animation:pulse 1s ease-in-out infinite;display:inline-block}.typing-text{animation:fadePulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.45;transform:scale(.9)}50%{opacity:1;transform:scale(1)}}@keyframes fadePulse{0%,to{opacity:.65}50%{opacity:1}}.suggestions{margin-top:10px;display:flex;flex-wrap:wrap;gap:6px}.predef-btn,.suggest-btn{border:1px solid rgba(37,99,235,.32);background:#eff6ff;color:#1d4ed8;border-radius:999px;padding:7px 13px;font-size:13px;font-weight:600;line-height:1.35;cursor:pointer;font-family:inherit}#predef-area{padding:8px 18px 7px;display:flex;flex-wrap:wrap;gap:7px}.chat-input{padding:11px 18px calc(15px + env(safe-area-inset-bottom));border-top:1px solid #e2e8f0;display:flex;gap:9px;align-items:center;background:var(--chat-bg)}.chat-input input{flex:1 1;border:1.5px solid #dbe3ef;border-radius:12px;padding:9px 13px;font-size:15px;outline:none;font-family:inherit;min-height:44px;height:44px;transition:border-color .2s,box-shadow .2s}.chat-input input:focus{border-color:var(--chat-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--chat-primary) 20%,transparent 80%)}.send-btn{width:42px;height:42px;background:var(--chat-primary);color:white;border:none;border-radius:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}.shell{min-height:100vh;padding:32px}.frame{width:min(1120px,100%);margin:0 auto;display:grid;grid-gap:24px;gap:24px}.hero{background:linear-gradient(135deg,rgba(16,74,134,.96),rgba(18,36,51,.96));color:white;border-radius:28px;padding:28px;box-shadow:0 20px 60px rgba(18,36,51,.12)}.grid{display:grid;grid-gap:24px;gap:24px;grid-template-columns:1.2fr .8fr}.card{background:rgba(255,255,255,.92);border:1px solid rgba(18,36,51,.12);border-radius:24px;padding:22px;box-shadow:0 20px 60px rgba(18,36,51,.12)}.label{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#5e6e79;margin-bottom:10px}.composer{display:grid;grid-gap:12px;gap:12px}.admin-form input,.admin-form select,.admin-form textarea,.composer textarea,.login-form input{width:100%;border:1px solid rgba(18,36,51,.18);border-radius:16px;padding:14px 16px;background:rgba(255,255,255,.95)}.button{border:0;border-radius:16px;padding:14px 18px;background:linear-gradient(135deg,#104a86,#1a6bc1);color:white;cursor:pointer}.facts{display:grid;grid-gap:12px;gap:12px}.fact{padding:14px;background:white;border:1px solid rgba(18,36,51,.12);border-radius:18px}.muted{color:#5e6e79}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}@media (max-width:900px){.chat-page{padding:0}.chat-container{width:100vw;height:100vh;border-radius:0}.grid{grid-template-columns:1fr}}.legacy-login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a3a6b,#2563eb)}.legacy-login-card{width:380px;background:#fff;border-radius:20px;box-shadow:0 8px 40px rgba(0,0,0,.2);padding:32px}.legacy-login-logo{font-size:44px;color:#123a76;text-align:center}.legacy-login-card h4,.legacy-login-card p{text-align:center;margin:8px 0}.legacy-login-card p{color:#64748b;font-size:14px}.legacy-login-form{display:grid;grid-gap:10px;gap:10px;margin-top:18px}.legacy-login-form input{border:1px solid #cbd5e1;border-radius:10px;padding:11px 12px}.legacy-logout,.legacy-mini,.legacy-primary,.legacy-secondary{border:0;border-radius:10px;padding:10px 14px;cursor:pointer}.legacy-primary{background:#2563eb;color:#fff}.legacy-logout,.legacy-secondary{background:#f1f5f9;color:#0f172a}.legacy-mini{background:#eff6ff;color:#1d4ed8;margin-right:6px}.legacy-mini.danger{background:#fee2e2;color:#b91c1c}.legacy-admin{background:#f8f9fa;min-height:100vh}.legacy-navbar{background:linear-gradient(135deg,#1a3a6b,#2563eb);color:#fff;padding:14px 18px;display:flex;justify-content:space-between;align-items:center}.legacy-brand{font-weight:700}.legacy-userbox{display:flex;align-items:center;gap:12px}.legacy-usertext{color:rgba(255,255,255,.92);font-size:14px}.legacy-role{margin-left:8px;background:#2563eb;border-radius:999px;padding:4px 8px;font-size:12px}.legacy-role.super{background:#7c3aed}.legacy-layout{display:grid;grid-template-columns:190px 1fr}.legacy-sidebar{min-height:calc(100vh - 56px);background:#fff;border-right:1px solid #dee2e6;padding:12px 8px;display:grid;align-content:start;grid-gap:4px;gap:4px}.legacy-sidebar button{border:0;background:transparent;text-align:left;color:#495057;padding:10px 16px;border-radius:8px;cursor:pointer}.legacy-sidebar button.active,.legacy-sidebar button:hover{background:#eff6ff;color:#2563eb}.legacy-main{padding:24px}.legacy-title{margin:0 0 18px}.legacy-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.legacy-grid,.legacy-grid-single{display:grid;grid-gap:20px;gap:20px}.legacy-card{border:none;box-shadow:0 1px 8px rgba(0,0,0,.07);border-radius:12px;background:#fff;padding:18px}.legacy-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}.legacy-form-grid input,.legacy-form-grid select,.legacy-form-grid textarea,.legacy-toolbar select{border:1px solid #cbd5e1;border-radius:10px;padding:10px 12px;width:100%}.legacy-form-grid{display:grid;grid-gap:14px;gap:14px}.legacy-form-grid label{display:grid;grid-gap:6px;gap:6px;font-weight:600}.legacy-form-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px}.legacy-check{display:flex!important;align-items:center;gap:8px;font-weight:500!important}.legacy-check input{width:auto}.legacy-table{width:100%;border-collapse:collapse}.legacy-table td,.legacy-table th{padding:12px 10px;border-bottom:1px solid #e2e8f0;vertical-align:top;text-align:left}.legacy-table th{font-size:12px;text-transform:uppercase;color:#6c757d}.legacy-muted,.legacy-small,.legacy-status{color:#64748b;font-size:13px}.legacy-detail{display:grid;grid-gap:8px;gap:8px}.legacy-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px}.legacy-stats div{background:#f8fafc;border-radius:12px;padding:14px;display:grid;grid-gap:4px;gap:4px}.legacy-stats strong{font-size:26px;color:#123a76}.legacy-note,.legacy-status-bar{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:12px;color:#475569}.legacy-status-bar{margin-top:18px}.legacy-clickable{cursor:pointer}.legacy-log-modal{position:fixed;inset:0;background:rgba(15,23,42,.48);display:flex;align-items:center;justify-content:center;padding:24px}.legacy-log-box{width:min(920px,100%);background:#fff;border-radius:16px;padding:18px;box-shadow:0 18px 44px rgba(15,23,42,.28)}.legacy-log-section{margin-top:14px;background:#f8fafc;border-radius:12px;padding:14px;white-space:pre-wrap}.legacy-badge{display:inline-block;border-radius:999px;padding:4px 8px;font-size:12px;margin-bottom:8px}.legacy-badge.blue{background:#dbeafe;color:#1d4ed8}.legacy-badge.green{background:#dcfce7;color:#15803d}@media (max-width:1000px){.legacy-layout{grid-template-columns:1fr}.legacy-sidebar{min-height:auto;border-right:0;border-bottom:1px solid #dee2e6;grid-auto-flow:column;overflow-x:auto}.legacy-form-row,.legacy-grid,.legacy-stats{grid-template-columns:1fr}}