:root{--bg-page: #f3f0ea;--bg-card: #f7f5ef;--bg-input: #ffffff;--border: #ddd8d1;--text: #3a3835;--text-muted: #827d77;--accent: #2d8a9e;--accent-hover: #236b78;--radius: 12px;--radius-sm: 8px;--shadow: 0 1px 3px rgba(58, 56, 53, .08);--font: "Inter", "Segoe UI", -apple-system, BlinkMacSystemFont, sans-serif}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font);background:var(--bg-page);color:var(--text);min-height:100vh;line-height:1.5}#root{min-height:100vh}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;cursor:pointer}input,textarea{font-family:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 18px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;border:1px solid var(--border);background:var(--bg-input);color:var(--text);box-shadow:var(--shadow);transition:background .2s,border-color .2s}.btn:hover{background:#ebe6df;border-color:#cfc9c0}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.btn-secondary{background:var(--bg-card);color:var(--text)}.btn-outline{background:transparent}.btn-block{width:100%}.btn-icon{padding:3px 9px;font-size:13px;line-height:1;border-radius:999px;border-color:#b8ddd8cc;box-shadow:none}.btn-danger{background:#dc3545;color:#fff;border-color:#dc3545}.btn-danger:hover{background:#c82333;border-color:#c82333;color:#fff}.btn-chip{padding:8px 14px;font-size:13px}.page{min-height:100vh;display:flex;flex-direction:column}.home{background-color:var(--bg-page);background-image:linear-gradient(135deg,#f3f0eaf5,#f7f5eff5),url(https://images.unsplash.com/photo-1581579188871-45ea61f2a0c8?auto=format&fit=crop&w=1600&q=80);background-size:cover;background-position:center;background-repeat:no-repeat;background-attachment:fixed}.home-header{padding:20px 24px;display:flex;justify-content:flex-end;align-items:center}.home-partner-logos{display:flex;align-items:center;gap:14px}.home-partner-logo{width:auto;object-fit:contain;background:transparent;border:0;padding:0}.home-partner-logo.jcil{height:48px}.home-partner-logo.uga{height:40px}.home-partner-logo.colby{height:44px}.home-nav{display:flex;gap:12px}.home-main{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:center;justify-items:center;padding:24px 32px 40px;position:relative;overflow-x:hidden;overflow-y:auto;min-height:0}.hero-left{width:100%;max-width:560px;display:flex;flex-direction:column;gap:24px;justify-self:end}.hero-right{width:100%;max-width:480px;display:flex;flex-direction:column;align-items:flex-start;text-align:left;justify-self:start}.hero-brand{font-size:clamp(1.75rem,4vw,2.75rem);font-weight:700;letter-spacing:.02em;margin-bottom:20px;background:linear-gradient(135deg,#2d8a9e,#4ba8b8 45%,#1f6f7f);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-title{font-size:clamp(1rem,2.5vw,1.2rem);font-weight:500;color:var(--text-muted);line-height:1.5;margin-bottom:16px}.hero-query-bar{width:100%;padding:16px 20px;border:2px solid var(--border);border-radius:var(--radius);background:var(--bg-card);box-shadow:var(--shadow);min-height:56px;display:flex;align-items:center;justify-content:flex-start}.hero-query-bar .query-text{color:var(--text);font-size:1rem}.hero-query-bar .query-cursor{display:inline-block;width:2px;height:1.1em;background:var(--accent);margin-left:2px;vertical-align:text-bottom;animation:blink .8s step-end infinite}.hero-sub{font-size:.95rem;color:var(--text-muted);line-height:1.5}.hero-partner-logos{margin-top:18px;gap:16px}.hero-noun{color:var(--accent);font-weight:500}@media (max-width: 900px){.home-main{grid-template-columns:1fr;justify-items:center;padding:24px 20px 40px}.hero-left{justify-self:center;order:1}.hero-right{text-align:center;align-items:center;justify-self:center;order:0}}.home-chart-section{width:100%}.cap-chart-card{background:var(--bg-input);border:1px solid var(--border);border-radius:16px;padding:20px 20px 12px;box-shadow:var(--shadow)}.cap-chart-title{font-size:1rem;font-weight:600;color:var(--text);margin-bottom:14px;line-height:1.35}.cap-chart-caption{font-size:.8rem;color:var(--text-muted);margin-bottom:16px}.chart-carousel{display:flex;flex-direction:column;gap:12px}.chart-carousel-card{padding:22px 22px 18px}.chart-carousel-viewport{min-height:300px}.chart-slide-subtitle{font-size:.78rem;color:var(--text-muted);margin-bottom:8px}.chart-carousel-nav{display:flex;align-items:center;justify-content:center;gap:14px}.chart-carousel-btn{width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:var(--bg-card);color:var(--accent);font-size:22px;line-height:1;display:inline-flex;align-items:center;justify-content:center;padding:0 0 2px;box-shadow:var(--shadow);transition:background .15s,border-color .15s,color .15s}.chart-carousel-btn:hover{background:var(--accent);border-color:var(--accent);color:#fff}.chart-carousel-dots{display:flex;gap:8px;align-items:center}.chart-carousel-dot{width:8px;height:8px;border-radius:50%;border:none;padding:0;background:var(--border);cursor:pointer;transition:background .15s,transform .15s}.chart-carousel-dot.active{background:var(--accent);transform:scale(1.2)}.bar-chart-slide,.miami-cost-slide{width:100%;overflow-x:auto}.cap-chart-tooltip-meta{font-size:12px;color:var(--text-muted);margin-top:2px}.cap-chart-wrap{width:100%;border-radius:var(--radius-sm);overflow:hidden}.cap-chart-tooltip{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px;box-shadow:var(--shadow);font-size:13px}.cap-chart-tooltip-label{font-weight:600;color:var(--text)}.cap-chart-tooltip-value{color:var(--accent);font-weight:500}.pie-chart-card{padding:22px 22px 18px}.pie-chart-layout{display:flex;gap:12px 16px;align-items:center}.pie-chart-wrap{width:280px;height:300px;flex-shrink:0}.pie-chart-legend{list-style:none;display:flex;flex-direction:column;gap:6px;flex:1;min-width:0;max-height:300px;overflow-y:auto;padding-right:4px}.pie-chart-legend li{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:8px;font-size:12px;color:var(--text-muted);padding:4px 6px;border-radius:6px;cursor:default;transition:background .15s}.pie-chart-legend li.active{background:#2d8a9e14;color:var(--text)}.pie-legend-swatch{width:12px;height:12px;border-radius:2px;flex-shrink:0}.pie-legend-label{line-height:1.3}.pie-legend-value{font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}@media (max-width: 900px){.pie-chart-layout{flex-direction:column;align-items:stretch}.pie-chart-wrap{margin:0 auto}.pie-chart-legend{max-height:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px}}@media (max-width: 520px){.pie-chart-legend{grid-template-columns:1fr}}.auth-page{background:var(--bg-page)}.auth-header{padding:20px 24px;display:flex;align-items:center;justify-content:space-between}.auth-header .logo{font-weight:600;font-size:1.25rem;color:var(--text);text-decoration:none}.auth-header .logo:hover{text-decoration:none}.logo-gradient{background:linear-gradient(135deg,#2d8a9e,#4ba8b8 45%,#1f6f7f);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.logo-gradient:hover{text-decoration:none}.auth-main{flex:1;display:flex;align-items:center;justify-content:center;padding:24px}.auth-card{width:100%;max-width:400px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:32px;box-shadow:var(--shadow)}.auth-card h1{font-size:1.5rem;margin-bottom:24px;font-weight:600}.auth-card label{display:block;font-size:14px;font-weight:500;color:var(--text);margin-bottom:8px}.auth-card input{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:14px;margin-bottom:16px;background:var(--bg-input)}.auth-card input:focus{outline:none;border-color:var(--accent)}.form-error{color:#dc3545;font-size:13px;margin-bottom:12px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.auth-card .btn-block{margin-top:8px}.auth-divider{text-align:center;margin:20px 0;color:var(--text-muted);font-size:13px}.auth-card .btn-outline{margin-bottom:0}.auth-footer{margin-top:20px;font-size:14px;color:var(--text-muted);text-align:center}.google-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px}.google-icon{width:18px;height:18px;display:inline-block}.chat-page{flex-direction:row;height:100vh;overflow:hidden}.chat-loading{display:flex;align-items:center;justify-content:center;height:100vh;font-size:16px;color:var(--text-muted)}.chat-sidebar{width:280px;min-width:280px;background:#fff;border:1px solid var(--border);border-right:none;border-radius:16px;box-shadow:0 8px 20px #3c373212;margin:12px 0 12px 16px;display:flex;flex-direction:column;overflow:hidden}.sidebar-header{padding:10px 18px 6px;border-bottom:1px solid rgba(224,211,194,.7);display:flex;align-items:center;justify-content:space-between}.sidebar-title{font-weight:600;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted)}.conversations-list{flex:1;overflow-y:auto;list-style:none;padding:12px}.conversations-list li{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:var(--radius-sm);cursor:pointer;margin-bottom:4px}.conversations-list li:hover{background:#ebe6df}.conversations-list li.active{background:#d5cfc7;font-weight:500}.conv-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.conv-title-input{flex:1;padding:4px 6px;font-size:13px;border-radius:var(--radius-sm);border:1px solid rgba(224,211,194,.9)}.conv-delete{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px 8px;font-size:18px;line-height:1}.conv-delete:hover{color:#dc3545}.sidebar-footer{padding:16px;border-top:1px solid var(--border)}.sidebar-user{display:flex;align-items:center;gap:12px;margin-bottom:12px}.user-avatar,.user-avatar-fallback{width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:var(--bg-page);object-fit:cover}.user-info{display:flex;flex-direction:column;min-width:0}.user-name{font-size:13px;font-weight:600}.user-email{font-size:12px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logout-btn{text-align:center}.chat-main{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--bg-page)}.chat-shell{margin:12px 16px;background:var(--bg-card);border-radius:16px;box-shadow:0 8px 20px #3c37320f;border:1px solid rgba(224,211,194,.9);display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.chat-top-bar{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:12px 20px 0;background:transparent;border-bottom:none;position:relative;z-index:30}.chat-top-bar .logo{font-weight:700;font-size:1.05rem;text-decoration:none;letter-spacing:.02em;background:linear-gradient(135deg,#2d8a9e,#4ba8b8 45%,#1f6f7f);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.chat-top-bar .logo:hover{text-decoration:none}.topbar-actions{position:relative;display:flex;align-items:center;gap:8px}.debug-toggle{font-size:12px;padding:6px 10px;border-color:#cdc7bf;color:#4a5558;background:#f3f0ea}.debug-toggle.active{background:#e0dbd3}.debug-dropdown{position:absolute;top:36px;right:0;width:min(680px,calc(100vw - 80px));max-height:360px;background:#faf8f4;border:1px solid #d0cac2;border-radius:10px;box-shadow:0 12px 28px #40352a29;overflow:hidden}.debug-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid #dbd6cf;font-size:12px;color:#4a5558;font-weight:600}.debug-clear{border:1px solid #cdc7bf;background:#f3f0ea;color:#4a5558;border-radius:6px;font-size:11px;padding:3px 8px;cursor:pointer}.debug-body{max-height:315px;overflow-y:auto;padding:8px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-size:11px;line-height:1.4}.debug-empty{color:#6a7578;padding:10px}.debug-entry{padding:8px;margin-bottom:6px;border:1px solid #ddd8d1;background:#fff;border-radius:8px}.debug-meta{color:#5c676a;font-weight:600;margin-bottom:4px}.debug-entry pre{margin:0;white-space:pre-wrap;word-break:break-word;color:#3a4244}.study-page{background:var(--bg-page)}.study-topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--border);background:#ebe6df}.study-topbar .logo{font-weight:700}.study-main{display:grid;grid-template-columns:1fr 1.4fr;gap:16px;padding:16px;min-height:0}.study-manual{background:var(--bg-card);border:1px solid #c5e4e8;border-radius:14px;padding:16px;box-shadow:0 8px 18px #2f8fa014}.study-manual h1{font-size:1.35rem;margin-bottom:8px;color:#2a7a88}.study-manual h2{font-size:1rem;margin:14px 0 8px;color:#348a98}.study-subtitle{color:#5a7a80;margin-bottom:10px}.study-progress{margin-top:12px;font-size:13px;color:#4d656a}.study-manual ol{margin-left:18px;display:grid;gap:8px;font-size:14px}.study-note{margin-top:12px;background:linear-gradient(135deg,#eef9fa,#f4f1eb);border:1px solid #c5e4e8;border-radius:8px;padding:10px;font-size:13px;color:#67584b}.study-scenarios{display:grid;grid-template-columns:280px 1fr;gap:12px;min-height:0}.scenario-list,.scenario-detail{background:var(--bg-card);border:1px solid #c5e4e8;border-radius:14px;padding:14px;box-shadow:0 8px 18px #2f8fa014}.scenario-list h2{font-size:1rem;margin-bottom:10px;color:#348a98}.scenario-list{display:flex;flex-direction:column;gap:8px}.scenario-item{display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;border:1px solid #c8e0e3;background:linear-gradient(180deg,#f4fbfc,#fff);border-radius:8px;padding:10px;font-size:13px;color:#4f4338}.scenario-done{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;border-radius:999px;font-size:11px;border:1px solid #7bb8c0;color:#246870;background:#e6f6f8}.scenario-item.active{background:linear-gradient(135deg,#d5f0f4,#e6e1d9);border-color:#7ab4bd;font-weight:600}.scenario-detail h3{margin-bottom:8px}.scenario-context{color:#4f6d72;margin-bottom:10px}.scenario-detail h4{margin:12px 0 6px;font-size:.95rem;color:#348a98}.scenario-detail ul{margin-left:18px;display:grid;gap:6px}.scenario-purpose{margin-top:10px;font-size:14px;color:#5a4d41}.scenario-hint{margin:0 0 8px;font-size:12px;color:#556e72}.scenario-prompt{width:100%;min-height:130px;border:1px solid #c5e4e8;border-radius:8px;padding:10px;background:linear-gradient(180deg,#f7fcfd,#faf8f4);color:#463a30;font-size:13px;resize:vertical}.scenario-actions{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap}@media (max-width: 1100px){.study-main,.study-scenarios{grid-template-columns:1fr}}.llm-pair{border-left:3px solid #cfb79a}.study-session-banner{margin:10px 16px 0;background:linear-gradient(90deg,#2d8a9e29,#eef9fad9);border:1px solid #8ec4cd;color:#2a6f7a;border-radius:10px;padding:8px 12px;font-size:12px;font-weight:600}.study-chat-shell{border:1px solid rgba(45,138,158,.45);box-shadow:0 10px 24px #2f8fa01a}.study-complete-page{align-items:center;justify-content:center;padding:24px;background:var(--bg-page)}.study-complete-card{width:min(720px,100%);background:var(--bg-card);border:1px solid #c5e4e8;border-radius:14px;padding:24px;box-shadow:0 10px 22px #2f8fa01a}.study-complete-card h1{margin:0 0 10px;color:#2a7a88}.study-complete-card p{margin:0 0 10px;color:#4a656a}.study-complete-card h2{margin:0 0 8px;color:#2a7180;font-size:1.05rem}.study-complete-actions{margin-top:14px;display:flex;gap:10px;flex-wrap:wrap}.study-survey-success{margin:10px 0 14px;border:1px solid #a8d4da;border-radius:10px;background:#eef9fa;padding:10px 12px}.study-survey-required-note{color:#5a6e72;font-size:13px;margin-bottom:12px!important}.study-survey-section{margin-top:14px;border:1px solid #cce2e5;border-radius:10px;background:#fffefb;padding:12px}.study-survey-grid{display:grid;gap:10px}.study-survey-item{border:1px solid #dce8ea;border-radius:8px;padding:10px;background:#fff}.study-survey-item-label{margin:0 0 8px!important;color:#454d4f!important;font-size:14px}.study-survey-options{display:flex;flex-wrap:wrap;gap:8px 12px}.study-survey-option{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#4a5558}.study-survey-open-label{display:block;margin-bottom:8px;color:#485458;font-size:14px}.study-survey-open{width:100%;min-height:140px;border:1px solid #c5e4e8;border-radius:8px;padding:10px;font-size:13px;background:#fff;color:#3f3d35;resize:vertical}.study-survey-error{margin-top:10px;color:#b24747!important;font-size:13px}.study-dashboard-main{grid-template-columns:1fr}.study-dashboard-summary{margin-top:12px;display:flex;flex-wrap:wrap;gap:12px;font-size:13px;color:#4f5f55}.study-dashboard-panel{max-height:calc(100vh - 210px);overflow-y:auto}.study-dashboard-panel h2{margin:0 0 10px;font-size:1rem;color:#348a98}.study-dashboard-list{display:grid;gap:10px}.study-dashboard-item{border:1px solid #c8e0e3;border-radius:10px;background:#fff}.study-dashboard-item-header{width:100%;border:0;background:transparent;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;cursor:pointer;text-align:left;color:#4f4338}.study-dashboard-item-header:hover{background:#f4fbfc}.study-dashboard-transcript{border-top:1px solid #dce8ea;padding:8px 10px 10px;display:grid;gap:8px}.study-dashboard-msg{border:1px solid #dce6e8;border-radius:8px;padding:8px 10px;background:#fff}.study-dashboard-msg.user{border-left:3px solid #8b7a6a}.study-dashboard-msg.assistant{border-left:3px solid #4ba8b5}.study-dashboard-msg-meta{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#667479;margin-bottom:4px}.study-dashboard-msg pre{margin:0;white-space:pre-wrap;font-family:inherit;font-size:13px;line-height:1.55;color:#453a31}.study-dashboard-error{color:#b24747}.study-sidebar-panel{display:flex;flex-direction:column;min-height:0;flex:1}.study-sidebar-nav{display:flex;align-items:center;gap:6px}.study-sidebar-content{margin:10px 12px;padding:12px;border:1px solid #c5e4e8;border-radius:10px;background:linear-gradient(180deg,#f0fafb,#f3f0ea);overflow-y:auto}.study-scenario-chip{display:inline-block;background:#d5eef2;color:#2f7a88;border:1px solid #8fc4cd;border-radius:999px;font-size:11px;padding:3px 8px;margin-bottom:8px;font-weight:700}.study-scenario-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.study-scenario-new-btn{flex:0 0 auto}.study-sidebar-content h3{font-size:14px;color:#2a7180;margin-bottom:8px}.study-sidebar-content h4{font-size:12px;color:#348a98;margin:10px 0 6px}.study-sidebar-content p{font-size:12px;color:#5a6568;margin:0 0 8px}.study-sidebar-content ul{margin-left:16px;display:grid;gap:5px;font-size:12px;color:#4f4b43}.study-sidebar-purpose{margin-top:10px!important}.study-sidebar-progress{margin-top:10px}.study-sidebar-progress-top{margin:8px 12px 0}.study-sidebar-progress-meta{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#4a6368;margin-bottom:6px;font-weight:600;letter-spacing:.02em}.study-sidebar-progress-track{width:100%;height:8px;border-radius:999px;background:#cce4e8;overflow:hidden}.study-sidebar-progress-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#1f6f7f,#4ba8b8);transition:width .2s ease}.study-scenario-controls{margin-top:12px;display:flex;gap:8px}.study-scenario-controls .btn{flex:1;font-size:12px;padding:8px 10px;background:#1f6f7f;border-color:#1f6f7f;color:#fff;font-weight:700}.study-scenario-controls .btn:hover{background:#246870;border-color:#246870;color:#fff}.study-scenario-back-link{margin-top:10px;font-size:12px}.study-scenario-back-link a{color:#348a98;text-decoration:underline}.data-explorer-page{background:var(--bg-page)}.data-explorer-main{flex:1;min-height:0;padding:0}.data-explorer-shell{height:100%;min-height:100vh;display:grid;grid-template-columns:minmax(0,3fr) minmax(280px,1fr);gap:0}.data-explorer-left,.data-explorer-right{background:var(--bg-page);border:0;border-radius:0;box-shadow:none}.data-explorer-left{padding:18px 22px;overflow:hidden;display:flex;flex-direction:column;min-height:0;border-right:1px solid #cce2e5}.data-explorer-top-actions{margin-bottom:10px;display:flex;justify-content:flex-start}.data-explorer-panel-header h1{font-size:1.2rem;margin-bottom:4px;color:#2a7a88}.data-explorer-panel-header p{margin-bottom:10px;color:#5a6e72;font-size:13px}.data-explorer-results{display:flex;flex-direction:column;gap:10px;min-height:0}.data-explorer-meta{display:flex;gap:8px;flex-wrap:wrap;font-size:12px;color:#556a6e}.data-explorer-meta span{border:1px solid #cce4e8;border-radius:2px;background:#f4fbfc;padding:3px 8px}.data-explorer-warnings{border:1px solid #dccf9d;background:#fff8df;color:#6f5f2f;border-radius:0;padding:8px 10px;font-size:12px;display:grid;gap:4px}.data-explorer-sql{border:1px solid #cce4e8;border-radius:0;background:#f4fbfc;overflow:hidden}.data-explorer-sql summary{cursor:pointer;padding:8px 10px;font-size:12px;color:#4d656a;font-weight:600}.data-explorer-sql pre{margin:0;padding:10px;border-top:1px solid #dce8ea;overflow-x:auto;font-size:12px;color:#3f3f3b;background:#fff}.data-explorer-table-wrap{border:1px solid #cce4e8;border-radius:0;overflow:auto;background:#fff;min-height:0;flex:1}.data-explorer-table th{position:sticky;top:0;z-index:1}.data-explorer-table th small{display:block;margin-top:2px;color:#656e72;font-size:10px;font-weight:500;text-transform:lowercase}.data-explorer-empty{border:1px dashed #c2dce0;border-radius:0;background:#f4fbfc;color:#556a6e;padding:16px;font-size:13px}.data-explorer-empty h2{font-size:1rem;color:#2f7a88;margin-bottom:4px}.data-explorer-empty p{margin:0}.data-explorer-right{padding:18px 16px 16px;display:flex;flex-direction:column;gap:10px;min-height:100vh;background:#ede9e3;border-left:1px solid #d4cfc2}.data-explorer-right h2{font-size:.95rem;color:#4e4a44;text-transform:uppercase;letter-spacing:.08em}.data-explorer-right p{font-size:12px;color:#6a645b}.data-explorer-prompt{width:100%;min-height:220px;border:1px solid #d5cfc2;border-radius:0;padding:10px;font-size:13px;color:#43392f;background:#f3f0ea;resize:vertical}.data-explorer-actions{display:flex;gap:8px}.data-explorer-actions .btn{width:100%}.data-explorer-hints{margin-top:auto;border-top:1px solid #d8d1c4;padding-top:10px}.data-explorer-hints strong{display:block;margin-bottom:6px;font-size:12px;color:#5f5a52;letter-spacing:.02em}.data-explorer-hints ul{margin:0;list-style:none;display:grid;gap:5px}.data-explorer-example{width:100%;text-align:left;border:1px solid #d8d1c4;background:#f0ece6;border-radius:0;padding:7px 8px;font-size:12px;color:#555047}.data-explorer-example:hover{background:#e6e1da}.data-explorer-loading{font-size:14px;color:#5a6e72;padding:12px}@media (max-width: 1024px){.data-explorer-shell{grid-template-columns:1fr;min-height:auto}.data-explorer-right{min-height:auto;border-left:0;border-top:1px solid #d4cfc2}}.quant-page{background:var(--bg-page)}.quant-main{padding:16px;display:grid;gap:12px}.quant-input-card,.quant-summary-card,.quant-results-card{background:var(--bg-card);border:1px solid #c5e4e8;border-radius:12px;padding:14px;box-shadow:0 8px 18px #2f8fa014}.quant-input-card h1{font-size:1.35rem;color:#2a7a88;margin-bottom:8px}.quant-input-card label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:#4d656a}.quant-textarea{width:100%;min-height:190px;padding:10px;border:1px solid #c5e0e4;border-radius:8px;background:#fff;font-size:13px;resize:vertical}.quant-actions{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap}.quant-progress{margin-top:10px;border:1px solid #c8e2e6;border-radius:8px;padding:10px;background:#f4fbfc}.quant-progress-row{display:flex;gap:10px;align-items:baseline;font-size:13px;color:#4a6e74}.quant-progress-bar{margin-top:8px;width:100%;height:10px;border-radius:999px;background:#dceef1;overflow:hidden}.quant-progress-fill{height:100%;background:linear-gradient(90deg,#2d8a9e,#6bb8c8);transition:width .25s ease}.quant-status-log{margin-top:8px;max-height:120px;overflow-y:auto;font-size:12px;color:#5a6e72;display:grid;gap:4px}.quant-summary-grid{margin-top:10px;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.quant-stat{background:#f4fbfc;border:1px solid #c8e2e6;border-radius:8px;padding:10px}.quant-stat span{display:block;font-size:12px;color:#5f757a}.quant-stat strong{font-size:18px;color:#2a7a88}.quant-table-wrap{overflow-x:auto;margin-top:8px}.quant-response-cell{min-width:420px;white-space:pre-wrap}.response-meta{margin-top:8px}.debug-raw{margin-top:8px;border-top:1px dashed #d6c5b0;padding-top:8px}.debug-raw summary{cursor:pointer;font-size:12px;color:#6b5c4f;font-weight:600;margin-bottom:8px}.debug-raw-list{max-height:220px;overflow-y:auto}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2b221a73;display:flex;align-items:center;justify-content:center;z-index:1200;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-content{width:min(460px,calc(100vw - 32px));background:#faf8f4;border:1px solid #dccab6;border-radius:14px;box-shadow:0 14px 36px #372a2033;padding:18px 18px 16px}.modal-content h3{margin:0 0 8px;font-size:18px;color:#3a4244}.modal-content p{margin:0;color:#6e6155;font-size:14px;line-height:1.5}.modal-actions{margin-top:16px;display:flex;justify-content:flex-end;gap:10px}.chat-messages{flex:1;overflow-y:auto;padding:24px;display:flex;flex-direction:column;gap:16px;min-height:0}.chat-empty{margin:auto;max-width:520px;text-align:center}.chat-empty-title{font-size:1.4rem;font-weight:600;color:var(--text);margin-bottom:12px}.chat-empty-sub{font-size:.95rem;color:var(--text-muted);margin-bottom:24px}.chat-empty-query{padding:14px 18px;border-radius:var(--radius);background:var(--bg-card);box-shadow:var(--shadow)}.chat-empty-placeholder{font-size:.95rem;color:var(--text-muted)}.citation{color:var(--accent);cursor:pointer;text-decoration:underline dotted}.citation-panel{margin:0 24px 16px;padding:12px 16px;border-radius:var(--radius-sm);background:#fff;border:1px solid var(--border);box-shadow:var(--shadow);font-size:.9rem}.citation-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.citation-panel-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted)}.citation-panel-source{font-size:.8rem;color:var(--text-muted)}.citation-panel-disclaimer{margin-top:4px;font-size:11px;color:var(--text-muted);max-width:620px}.citation-panel-body{font-size:.9rem;color:var(--text);line-height:1.5;white-space:pre-line}.citation-close-btn{border:none;background:transparent;font-size:.85rem;cursor:pointer;color:var(--text-muted)}.message{display:flex;gap:12px;max-width:800px;padding:14px 18px;border-radius:var(--radius);background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow)}.user-message{align-self:flex-end}.bot-message{align-self:flex-start;background:transparent;border:none;box-shadow:none}.message-icon{flex-shrink:0;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:#fff}.message-icon.icon-user{background:var(--accent)}.message-icon.icon-bot{background:var(--text-muted)}.message-avatar-img{width:32px;height:32px;border-radius:50%;object-fit:cover;flex-shrink:0}.message-content{flex:1;min-width:0;font-size:14px;line-height:1.6}.message-content p{margin:0 0 .5em}.message-content p:last-child{margin-bottom:0}.table-wrap{margin:10px 0;overflow-x:auto;border:1px solid #ddd8d1;border-radius:8px;background:#faf8f4}.chat-table{width:100%;border-collapse:collapse;font-size:13px}.chat-table th,.chat-table td{border:1px solid #d8e4e2;padding:8px 10px;text-align:left;vertical-align:top}.chat-table th{background:#ebe7e1;color:#4f4134;font-weight:700}.chat-chart-wrap{margin:12px 0;padding:12px;border:1px solid #ddd8d1;border-radius:10px;background:#faf8f4;overflow-x:auto}.chat-chart-title{font-size:13px;font-weight:600;color:var(--text);margin-bottom:8px}.chart-block-pending{margin:10px 0;padding:10px;border-radius:8px;background:#f3f0ea;font-size:12px;overflow-x:auto;white-space:pre-wrap}.message-content ol,.message-content ul{margin:8px 0 10px 22px;display:grid;gap:8px}.message-content li{line-height:1.6}.message-user-label{font-weight:600;margin-bottom:4px;font-size:13px}.message-meta{font-size:12px;color:var(--text-muted);margin-top:8px}.streaming-status .message-content{color:var(--text-muted);white-space:pre-wrap}.workflow-row+.bot-message{margin-top:-14px}.thinking-shell{position:relative;overflow:hidden;border-radius:10px;padding:10px 12px;background:linear-gradient(120deg,#bca8913d,#f3e8d95c,#bca8913d);background-size:240% 240%;animation:thinkingBgShift 3.4s ease-in-out infinite}.thinking-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:#6c5c4f;margin-bottom:6px}.thinking-workflow-toggle{width:100%;border:0;background:transparent;display:flex;align-items:center;justify-content:space-between;padding:0;margin:0 0 6px;cursor:pointer}.thinking-workflow-toggle .thinking-label{margin-bottom:0}.thinking-label-wrap{display:grid;gap:2px;text-align:left}.thinking-active-step{font-size:12px;font-weight:500;color:#5f5246;letter-spacing:normal;text-transform:none}.thinking-narrative{position:relative;display:grid;gap:0;margin-bottom:10px;padding-left:20px}.thinking-narrative:before{content:"";position:absolute;left:5px;top:12px;bottom:12px;width:2px;background:linear-gradient(to bottom,#6e5e4e47,#6e5e4e0f)}.thinking-line{position:relative;margin:0;padding:5px 0;font-size:13px;line-height:1.5;color:#6b6055}.thinking-line:before{content:"";position:absolute;left:-18px;top:11px;width:7px;height:7px;border-radius:50%;background:#b9ac9a;border:2px solid var(--bg-card);box-sizing:content-box}.thinking-line-live{color:#3e352e;font-weight:500}.thinking-line-live:before{background:var(--accent);animation:thinkingDotPulse 1.3s ease-in-out infinite}@keyframes thinkingDotPulse{0%,to{box-shadow:0 0 #2d8a9e73}50%{box-shadow:0 0 0 5px #2d8a9e00}}.thinking-text{line-height:1.65}.thinking-text.thinking-animated{background:linear-gradient(90deg,#6f5f50,#9a866f 45%,#6f5f50);background-size:220% 100%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:thinkingTextShift 2.2s linear infinite}.thinking-accordion{display:grid;gap:8px}.thinking-accordion[hidden]{display:none!important}.thinking-card{border:1px solid rgba(110,94,78,.25);border-radius:10px;background:#ffffff94;overflow:hidden}.thinking-card-header{width:100%;border:0;background:transparent;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;cursor:pointer;text-align:left}.thinking-card-header:hover{background:#ffffff7a}.thinking-card-title-wrap{display:grid;gap:2px;min-width:0}.thinking-card-title{font-size:13px;font-weight:700;color:#3e352e}.thinking-card-subtitle{font-size:12px;color:#5f5246;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.thinking-caret{color:#6a5c4f;transition:transform .2s ease}.thinking-caret.open{transform:rotate(180deg)}.thinking-card-body{padding:2px 12px 12px}.thinking-card-notes{display:grid;gap:6px}.thinking-card-notes p{margin:0;font-size:12px;line-height:1.55;color:#4e443b}.thinking-card-bullets{margin:8px 0 0 18px;display:grid;gap:6px}.thinking-card-bullets li{font-size:12px;color:#4b4037;line-height:1.5}.thinking-card.tone-info{border-color:#8b745c52;background:linear-gradient(140deg,#fcf5ead1,#f4e8d8bf)}.thinking-card.tone-rewrite{border-color:#5873ac57;background:linear-gradient(140deg,#e9f1ffd1,#dae7ffb8)}.thinking-card.tone-plan{border-color:#825dad57;background:linear-gradient(140deg,#f1e8ffd9,#e6d7fac2)}.thinking-card.tone-sources{border-color:#39858157;background:linear-gradient(140deg,#e4f7f3e0,#d2f0ebc7)}.thinking-card.tone-retrieve{border-color:#c5793e61;background:linear-gradient(140deg,#ffefdce6,#fae2c6c7)}.thinking-card.tone-subquery{border-color:#528c9957;background:linear-gradient(140deg,#e9faffe6,#daf3fac7)}.thinking-card-status{display:inline-flex;align-items:center;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:999px;width:fit-content}.thinking-card-status.status-pending{color:#7a6f63;background:#7a6f631f}.thinking-card-status.status-active{color:#1f6f82;background:#2d8a9e24;animation:workflowStatusPulse 1.6s ease-in-out infinite}.thinking-card-status.status-done{color:#3f6b45;background:#3f6b4524}.thinking-card.status-active-card{border-color:#2d8a9e73;box-shadow:0 0 0 1px #2d8a9e14}@keyframes workflowStatusPulse{0%,to{opacity:1}50%{opacity:.55}}.thinking-card.tone-synthesis{border-color:#2d8a9e61;background:linear-gradient(140deg,#e6f8fae6,#cdecf0c7)}.answer-pending-shimmer{font-size:13px;font-style:italic;padding:2px;color:#666;font-weight:400}.answer-pending-shimmer:before{content:"Answering your query...";background:linear-gradient(90deg,#3f2f22,#9f7a5c 40%,#ead3bb,#9f7a5c 60%,#3f2f22);background-size:260% 100%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:answerPendingTextShimmer 2.2s linear infinite}.answer-pending-shimmer{color:transparent}.answer-pending-row .message-content.answer-pending-shell{background:transparent;box-shadow:none;border:0;padding-top:0;padding-left:2px}.icon-bot-spacer{visibility:hidden}.stream-cursor{animation:blink .8s step-end infinite}@keyframes blink{50%{opacity:0}}@keyframes thinkingBgShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes thinkingTextShift{0%{background-position:100% 0}to{background-position:-100% 0}}@keyframes answerPendingTextShimmer{0%{background-position:130% 0}to{background-position:-130% 0}}.template-questions{display:flex;flex-wrap:wrap;gap:12px;padding:12px 24px;border-top:1px solid var(--border);background:var(--bg-card)}.template-wrap{position:relative}.template-dropdown{position:absolute;bottom:100%;left:0;margin-bottom:8px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);min-width:260px;z-index:10;overflow:hidden}.template-dropdown button{display:block;width:100%;padding:10px 14px;text-align:left;background:none;border:none;font-size:13px;cursor:pointer;color:var(--text)}.template-dropdown button:hover{background:#d9f0ec}.template-dropdown button:hover{background:#ebe6df}.chat-input-wrap{display:flex;gap:12px;padding:16px 24px;align-items:flex-end;border-top:1px solid var(--border);background:var(--bg-card)}.chat-input{flex:1;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px;resize:none;min-height:32px;max-height:120px;background:var(--bg-input)}.chat-input:focus{outline:none;border-color:var(--accent)}.chat-disclaimer{padding:8px 24px 16px;font-size:12px;color:var(--text-muted)}.pipeline-toggle-row{display:flex;align-items:center;gap:10px;padding:6px 24px 0}.pipeline-toggle-label{font-size:12px;color:var(--text-muted);white-space:nowrap}.pipeline-toggle{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-card)}.pipeline-btn{padding:5px 14px;font-size:12px;font-weight:500;border:none;background:transparent;color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s;border-right:1px solid var(--border)}.pipeline-btn:last-child{border-right:none}.pipeline-btn:hover:not(:disabled){background:#e8e3dc;color:var(--text)}.pipeline-btn.active{background:var(--accent);color:#fff}.pipeline-btn:disabled{opacity:.5;cursor:not-allowed}.message-footer-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;flex-wrap:wrap}.message-footer-row .copy-answer-btn{margin-left:auto}.message-pipeline-badge{display:inline-block;padding:2px 8px;font-size:11px;font-weight:500;border-radius:999px;border:1px solid var(--border);color:var(--text-muted);background:var(--bg-card)}.copy-answer-btn{border:none;background:transparent;color:var(--text-muted);width:28px;height:28px;padding:0;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.copy-answer-btn svg{width:16px;height:16px}.copy-answer-btn:hover{background:#3a383514;color:var(--text)}.copy-answer-btn.copied{color:var(--accent)}.chat-send-btn{height:32px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center}.send-icon{font-size:14px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
