:root{--bg:#091018;--panel:#101923;--card:#131f2b;--line:#243443;--text:#edf5fb;--muted:#91a3b2;
--mint:#6ee7b7;--blue:#60a5fa;--danger:#fb7185;
--bg-grad:radial-gradient(circle at 80% 0,#15283c 0,#091018 42%);--aside-bg:#0b131cdd;--list-hover:#182532;--input-bg:#0c151e;
--bubble-user:#204a51;
--btn:#243647;--btn-soft:#13212d;--btn-soft-hover:#192b39;--btn-mid:#182633;--btn-mid-hover:#203241;
--btn-link:#203548;--btn-link-hover:#29465e;--btn-teal:#173831;--teal-line:#3d6d67;--btn-icon:#142532;--btn-icon-hover:#1d3545;
--chip:#183343;--tag:#20313f;--surface:#0d1922;--toast:#182a37;
--line-strong:#426278;--line-hover:#4d718a;--scrim:#071018ee;
--badge-ok:#17382f;--badge-warn:#3a2c18;--amber:#fbbf24;--amber-soft:#f7c46c;
--link:#7dd3fc;--quote:#bdcbd6;--strong:#fff;
--code-bg:#081119;--code-text:#d7e8f3;--code-border:#314657;--code-inline-bg:#09131c;--code-inline-text:#a7f3d0;
--code-head:#101e29;--code-line:#293c4a;--table-bg:#0d1821;--table-head:#182936;
--stat-a:#12212c;--stat-b:#0c171f;--hover-danger:#351d25;--border:#243443}
html[data-theme="light"]{--bg:#eef4f7;--panel:#fff;--card:#f7fafc;--line:#c9d7df;--text:#152530;--muted:#617683;
--mint:#168a69;--blue:#2679bf;--danger:#c43e55;
--bg-grad:radial-gradient(circle at 80% 0,#dbeaf3 0,#eef4f7 44%);--aside-bg:#f8fbfddd;--list-hover:#e1edf3;--input-bg:#fff;
--bubble-user:#d5eee9;
--btn:#d9e6ee;--btn-soft:#d5e2ea;--btn-soft-hover:#c8d9e4;--btn-mid:#edf3f6;--btn-mid-hover:#e1edf3;
--btn-link:#d7e5ed;--btn-link-hover:#c9dbe6;--btn-teal:#dcefe6;--teal-line:#8fc0b0;--btn-icon:#dbe8ef;--btn-icon-hover:#cfe0ea;
--chip:#dceaf1;--tag:#dbe7ee;--surface:#fff;--toast:#fff;
--line-strong:#9db8c6;--line-hover:#7fa3b8;--scrim:rgba(23,42,56,.5);
--badge-ok:#d9efe6;--badge-warn:#f6ead2;--amber:#92610e;--amber-soft:#9a6b15;
--link:#1d6fa8;--quote:#5c7180;--strong:#10222d;
--code-bg:#e6eef2;--code-text:#183441;--code-border:#c9d7df;--code-inline-bg:#e6eef2;--code-inline-text:#183441;
--code-head:#dce8ee;--code-line:#d5e0e7;--table-bg:#fff;--table-head:#e2ecf1;
--stat-a:#ffffff;--stat-b:#eef4f7;--hover-danger:#f7e0e4;--border:#c9d7df}
*{box-sizing:border-box}
body{margin:0;background:var(--bg-grad);color:var(--text);font:14px Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}
.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}
aside{border-right:1px solid var(--line);padding:22px 14px;display:flex;flex-direction:column;background:var(--aside-bg)}
.brand{display:flex;gap:12px;align-items:center;padding:0 8px 30px}
.brand div:last-child{display:flex;flex-direction:column}
.brand small{color:var(--muted);margin-top:2px}
.brandIcon{width:40px;height:40px;flex:0 0 40px;border-radius:12px;object-fit:cover;box-shadow:0 7px 20px #0007,0 0 0 1px #4fc9db44}
.nav{display:flex;width:100%;gap:12px;padding:12px;border:0;border-radius:10px;background:transparent;color:var(--muted);font-weight:650;text-align:left;margin:3px 0}
.nav:hover,.nav.active{background:var(--list-hover);color:var(--text)}
.reportButton{margin-top:auto;width:100%;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);background:var(--btn-soft);color:var(--muted)}
.reportButton:hover{border-color:var(--line-hover);color:var(--text);background:var(--btn-soft-hover)}
.status{margin-top:10px;border-top:1px solid var(--line);padding:18px 8px 0;color:var(--muted);display:flex;gap:9px;align-items:center}
.status i{width:8px;height:8px;border-radius:50%;background:var(--amber)}
.status i.ok{background:var(--mint)}
main{min-width:0;padding:26px 30px}
header{height:72px;display:flex;justify-content:space-between;align-items:flex-start}
.headerActions{display:flex;align-items:center;gap:9px}.themeToggle{width:38px;height:38px;padding:0;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--panel);color:var(--text);font-size:18px}.themeToggle:hover{border-color:var(--blue)}
h1{margin:0;font-size:24px}
header p{color:var(--muted);margin:7px 0}
.pill{border:1px solid var(--line);border-radius:99px;padding:8px 12px;color:var(--mint)}
.modelpill{display:flex;align-items:center;gap:8px}
.modelpill i{width:8px;height:8px;border-radius:50%;background:var(--danger)}
.modelpill i.loaded{background:var(--mint);box-shadow:0 0 10px #6ee7b788}
.chatOptions{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.chatModelPicker{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}
.chatModelPicker select{max-width:260px;padding:7px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text)}
.panel{display:none;height:calc(100vh - 124px)}
.panel.active{display:block}
.split{display:grid;grid-template-columns:260px 1fr;height:100%;min-height:0;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--panel)}
.rail{padding:14px;border-right:1px solid var(--line);overflow-y:auto;min-height:0;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
#conversations{min-height:0}
.primary,button{border:0;border-radius:9px;background:var(--btn);color:var(--text);padding:10px 13px;cursor:pointer}
.primary,.composer button,.raggrid form button{background:linear-gradient(135deg,#3fbf96,#3983d5);color:#051017;font-weight:750;width:100%}
.conv,.file,.doc{padding:10px;border-radius:8px;margin-top:7px;color:var(--muted);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.conv:hover,.conv.active,.file:hover{background:var(--list-hover);color:var(--text)}
.workspace{min-width:0;min-height:0}
.chatbox{display:flex;flex-direction:column;overflow:hidden}
.messages{flex:1;min-height:0;overflow-y:auto;padding:24px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.empty{height:100%;display:grid;place-content:center;text-align:center;color:var(--muted);gap:8px}
.bubble{max-width:78%;padding:13px 15px;border-radius:14px;margin:10px 0;white-space:pre-wrap;line-height:1.55;background:var(--btn-mid)}
.bubble.user{margin-left:auto;background:var(--bubble-user)}
.bubble.error{border:1px solid var(--danger)}
.composer{display:flex;gap:10px;padding:15px;border-top:1px solid var(--line)}
textarea,input,select{background:var(--input-bg);border:1px solid var(--line);border-radius:9px;color:var(--text);padding:11px;outline:none}
.composer textarea{flex:1;resize:none}
.composer button{width:110px}
.attachButton{width:44px;height:44px;align-self:center;display:grid;place-items:center;flex:0 0 44px;border:1px solid var(--line);border-radius:10px;background:var(--btn-mid);color:var(--text);font-size:25px;cursor:pointer}
.attachButton:hover{border-color:var(--line-hover);background:var(--btn-mid-hover)}.attachButton input{display:none}
.chatAttachments{display:none;gap:7px;flex-wrap:wrap;padding:9px 15px 0;border-top:1px solid var(--line)}
.chatAttachments.active{display:flex}
.attachmentChip{display:inline-flex;align-items:center;gap:6px;max-width:260px;padding:6px 9px;border-radius:99px;background:var(--chip);color:var(--mint);font-size:12px}
.attachmentChip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachmentChip button{padding:0;background:transparent;color:var(--muted);font-size:15px}
.toolbar{display:flex;gap:10px;margin-bottom:12px}
.toolbar select{min-width:260px}
.muted{color:var(--muted);padding:10px}
.coding{height:calc(100% - 50px)}
.editor{display:flex;flex-direction:column}
.editorTitle{padding:13px;border-bottom:1px solid var(--line);color:var(--muted)}
#editor{flex:1;border:0;border-radius:0;resize:none;font:13px ui-monospace,SFMono-Regular,Menlo,monospace;line-height:1.55}
.actions{padding:10px;border-top:1px solid var(--line);text-align:right}
.raggrid{display:grid;grid-template-columns:360px 1fr;gap:16px;height:100%}
.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px;overflow:auto}
.card h2{margin-top:0}
.drop{display:block;border:1px dashed var(--line-strong);border-radius:12px;padding:18px;text-align:center;color:var(--muted);cursor:pointer}
.drop input{display:none}
.corpusStatus{display:flex;flex-direction:column;gap:4px;padding:12px;margin-bottom:12px;border:1px solid var(--line);border-radius:10px;color:var(--muted)}
.corpusStatus b{color:var(--text)}
.corpusStatus b.error{color:var(--danger)}
.corpusStatus i{display:inline-block;width:8px;height:8px;margin-right:7px;border-radius:50%;background:var(--mint);box-shadow:0 0 9px #6ee7b766}
.ragchat .rail{display:flex;flex-direction:column}
#ragConversations{max-height:32%;overflow-y:auto;min-height:42px}
#exportRag{width:100%;margin:10px 0}
#exportRag:disabled{opacity:.45;cursor:not-allowed}
.drop.compact{padding:11px}
.ragCitations{margin:8px 0 18px;max-width:88%}
.citationItem{display:flex;align-items:flex-start;gap:7px;margin:5px 0}.citationItem details{flex:1;border-left:2px solid var(--blue);padding:5px 10px;color:var(--muted)}
.ragCitations summary{cursor:pointer}
.citationDownload{display:grid;place-items:center;width:30px;height:30px;flex:0 0 30px;border:1px solid var(--line-strong);border-radius:7px;color:var(--mint);text-decoration:none;font-size:19px;background:var(--btn-icon)}
.citationDownload:hover{background:var(--btn-icon-hover);border-color:var(--mint)}
.thinking{color:var(--muted);font-style:italic}
.ragComposer select{max-width:190px}
.ragMeta{max-width:88%;margin:-3px 0 8px;color:var(--muted);font-size:12px}
.verification{display:inline-block;margin-right:8px;padding:3px 7px;border-radius:99px;background:var(--badge-ok);color:var(--mint)}
.verification.warn{background:var(--badge-warn);color:var(--amber)}
.conv{display:flex;align-items:center;gap:6px}
.conv .convTitle{overflow:hidden;text-overflow:ellipsis;flex:1}
.deleteConv{padding:2px 7px;background:transparent;color:var(--muted);font-size:16px}
.deleteConv:hover{color:var(--danger);background:var(--hover-danger)}
.metricsGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;overflow:auto;height:100%}
.metricCard{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px}
.metricCard span{display:block;color:var(--muted);margin-bottom:8px}
.metricCard strong{font-size:25px}.metricCard small{display:block;color:var(--muted);margin-top:7px;overflow-wrap:anywhere}
.authOverlay{position:fixed;inset:0;z-index:100;background:var(--scrim);display:grid;place-items:center;padding:20px}
.authOverlay.hidden{display:none}
.reportOverlay{position:fixed;inset:0;z-index:90;background:var(--scrim);display:grid;place-items:center;padding:20px}
.reportOverlay.hidden{display:none}
.reportCard{width:min(540px,100%);padding:24px;background:var(--panel);border:1px solid var(--line-strong);border-radius:18px;box-shadow:0 24px 80px #0009}
.reportHead{display:flex;align-items:center;justify-content:space-between;gap:12px}.reportHead h2{margin:0}.reportHead button{padding:5px 9px;background:transparent;color:var(--muted);font-size:20px}
.reportContext{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0;padding:12px;border:1px solid var(--line);border-radius:10px;color:var(--muted)}.reportContext strong{display:block;margin-top:3px;color:var(--text)}
.reportCheck{display:flex;gap:8px;align-items:flex-start;margin-bottom:12px;color:var(--muted)}.reportCheck input{margin-top:3px}.reportCheck strong{color:var(--text)}
.reportComment{width:100%;min-height:130px;resize:vertical;line-height:1.45}
.reportCount{display:flex;justify-content:space-between;align-items:center;gap:16px;color:var(--muted);font-size:12px;margin-top:7px}.reportCount span:last-child{margin-left:auto;white-space:nowrap}.reportActions{display:flex;justify-content:flex-end;gap:9px;margin-top:15px}.reportActions .primary{width:auto}
.feedbackRow{padding:11px 0;border-bottom:1px solid var(--line)}.feedbackRow header{height:auto;align-items:center}.feedbackRow small{color:var(--muted)}.feedbackRow p{margin:7px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
.feedbackRow.resolved{opacity:.62}
.rejectedDocuments{margin-top:18px;border:1px solid var(--line);border-radius:14px;padding:12px}.rejectedDocuments>summary{cursor:pointer;font-weight:700}.rejectedToolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:12px 0}.rejectedToolbar p{margin:0;color:var(--muted)}button.danger{background:#7c2830;color:#fff;border-color:#a3444d}.rejectedDocuments .adminIngestion{padding:12px 0}
.authCard{width:min(390px,100%);display:flex;flex-direction:column;gap:12px;padding:28px;background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 80px #0008}
.authLogo{width:142px;height:142px;margin:-8px auto 0;border-radius:24px;object-fit:cover;box-shadow:0 18px 42px #0009,0 0 0 1px #4fc9db33}
.authCard h2,.authCard p{text-align:center;margin:0}.authCard p{color:var(--muted)}
.errorText{color:var(--danger);min-height:20px}
.systemScroll{height:100%;overflow:auto;padding-bottom:30px}
.adminPanel{margin-top:18px;padding:20px;background:var(--panel);border:1px solid var(--line);border-radius:14px}
.inviteForm{display:flex;gap:9px;flex-wrap:wrap}.inviteForm input{flex:1;min-width:170px}
.adminRow{display:grid;grid-template-columns:1fr auto;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}
.adminRow small{color:var(--muted)}.adminActions{display:flex;gap:6px;align-items:center}
.inviteLink{margin:12px 0;padding:12px;background:var(--surface);border-radius:9px;overflow-wrap:anywhere}
.query textarea{width:100%;height:100px;resize:vertical}
.answer{margin:18px 0;padding:16px;background:var(--surface);border-radius:11px;white-space:pre-wrap;line-height:1.55}
.citation,.result{border-left:2px solid var(--blue);padding:9px 12px;margin:8px 0;color:var(--muted)}
.search{display:flex;gap:8px}
.search input{flex:1}
#toast{position:fixed;right:24px;bottom:24px;background:var(--toast);border:1px solid var(--line);padding:12px 16px;border-radius:10px;display:none}
[hidden]{display:none!important}
.messageBlock{display:flow-root;margin:10px 0}.messageBlock .bubble{margin-top:0;margin-bottom:5px}
.messageUsage{max-width:78%;color:var(--muted);font-size:11px;margin:3px 5px 10px;letter-spacing:.01em}
.markdown{white-space:normal;overflow-wrap:anywhere}.markdown p{margin:.35em 0 .7em}.markdown p:last-child{margin-bottom:0}
.mathDisplay{max-width:100%;overflow-x:auto;margin:.9em 0;padding:.35em .15em;text-align:center}.mathDisplay .katex-display{margin:0}.markdown .katex{font-size:1.08em}.mathFallback{color:var(--amber-soft);white-space:pre-wrap}
.markdown h1,.markdown h2,.markdown h3,.markdown h4{margin:.8em 0 .35em;line-height:1.25}.markdown h1{font-size:1.35em}.markdown h2{font-size:1.22em}.markdown h3{font-size:1.1em}
.markdown ul,.markdown ol{margin:.45em 0 .8em;padding-left:1.6em}.markdown li{margin:.25em 0}.markdown a{color:var(--link)}.markdown strong{color:var(--strong)}.markdown blockquote{margin:.7em 0;padding:.25em .8em;border-left:3px solid var(--blue);color:var(--quote)}
.inlineCode{padding:2px 5px;border-radius:5px;background:var(--code-inline-bg);color:var(--code-inline-text);font:12px ui-monospace,SFMono-Regular,Menlo,monospace}
.markdown pre{position:relative;margin:.75em 0;border:1px solid var(--code-border);border-radius:10px;background:var(--code-bg);overflow:hidden;white-space:pre}
.markdown pre code{display:block;padding:14px;overflow:auto;color:var(--code-text);font:12px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace}
.codeHead{display:flex;justify-content:space-between;align-items:center;padding:6px 8px 6px 12px;background:var(--code-head);border-bottom:1px solid var(--code-line);color:var(--muted);font-size:11px}.copyCode{padding:5px 9px;font-size:11px;background:var(--btn)}
.tableWrap{max-width:100%;overflow-x:auto;margin:.8em 0;border:1px solid var(--code-border);border-radius:9px}.markdown table{width:100%;border-collapse:collapse;min-width:420px;background:var(--table-bg)}.markdown th,.markdown td{padding:8px 10px;border-right:1px solid var(--code-line);border-bottom:1px solid var(--code-line);text-align:left;vertical-align:top}.markdown th{background:var(--table-head);color:var(--text)}.markdown tr:last-child td{border-bottom:0}
.stopButton{width:110px!important;background:#44222b!important;color:#fecdd3!important;border:1px solid #8a3e50!important}.stopButton:hover{background:#5b2935!important}
.continueButton{display:block;margin:7px 0 14px;padding:7px 11px;border:1px solid var(--teal-line);background:var(--btn-teal);color:var(--mint);font-size:12px}
.generationProgress{display:flex;align-items:center;gap:10px;color:var(--muted);font-style:normal}.generationProgress i{width:14px;height:14px;flex:0 0 14px;border:2px solid var(--line);border-top-color:var(--mint);border-radius:50%;animation:spin .8s linear infinite}
.liveReasoning,.reasoningDetails{margin:9px 0;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--muted);font-size:12px}.liveReasoning summary,.reasoningDetails summary{cursor:pointer;color:var(--text);font-weight:600}.reasoningText{margin-top:7px;max-height:240px;overflow:auto;white-space:pre-wrap;line-height:1.45}
.fileProgress{margin:-5px 0 10px;padding:10px;border:1px solid var(--line-strong);border-radius:9px;background:var(--surface);color:var(--muted);font-size:12px}.fileProgress div{display:flex;justify-content:space-between;gap:8px}.fileProgress i{display:block;height:3px;margin-top:8px;border-radius:9px;background:linear-gradient(90deg,var(--mint),var(--blue),var(--mint));background-size:200% 100%;animation:progress 1.2s linear infinite}.fileProgress.complete strong{color:var(--mint)}.fileProgress.failed{border-color:#753646}.fileProgress.failed strong{color:var(--danger)}
.ingestionFiles{margin-top:10px;max-height:260px;overflow:auto}.ingestionItem{padding:9px;margin:7px 0;border:1px solid var(--line);border-radius:9px;background:var(--surface)}.ingestionItem header{height:auto;align-items:center;gap:8px}.ingestionItem b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ingestionItem small{display:block;color:var(--muted);margin-top:5px}.ingestionBar{height:5px;margin-top:7px;border-radius:9px;background:var(--btn);overflow:hidden}.ingestionBar i{display:block;height:100%;background:linear-gradient(90deg,var(--mint),var(--blue));transition:width .35s}.ingestionItem.review{border-color:#8a6b2e}.ingestionItem.failed{border-color:#753646}.ingestionItem.success{border-color:#286a57}.statusTag{padding:3px 7px;border-radius:99px;background:var(--tag);color:var(--muted);font-size:11px;white-space:nowrap}.adminSection{margin-top:22px;padding-top:14px;border-top:1px solid var(--line)}.reportFilters{display:flex;gap:9px;align-items:end;flex-wrap:wrap}.reportFilters label{display:flex;flex-direction:column;gap:5px;color:var(--muted)}.ingestionAdminActions{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}.ingestionAdminActions button{padding:6px 8px;font-size:12px}.adminIngestion{grid-template-columns:1fr}.adminIngestion p{margin:5px 0;color:var(--muted);overflow-wrap:anywhere}
.ingestionAdminActions .buttonLink{display:inline-flex;align-items:center;padding:6px 8px;border:1px solid var(--line);border-radius:7px;background:var(--btn-link);color:var(--text);font-size:12px;text-decoration:none}.ingestionAdminActions .buttonLink:hover{border-color:var(--blue);background:var(--btn-link-hover)}
.correctionCard{display:grid;gap:14px;max-width:620px}.correctionCard label{display:grid;gap:6px;color:var(--muted)}.correctionCard input{width:100%}
.reasoningToggle{display:flex;align-items:center;justify-content:flex-end;gap:7px;padding:5px 13px;color:var(--muted);font-size:12px}.reasoningToggle input{accent-color:var(--mint)}.reasoningToggle select{padding:5px 8px;width:auto}
.ingestionSummary{display:grid;grid-template-columns:repeat(5,minmax(145px,1fr));gap:10px;margin:12px 0 18px}.ingestionStat{position:relative;overflow:hidden;padding:14px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(145deg,var(--stat-a),var(--stat-b))}.ingestionStat:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--blue)}.ingestionStat span,.ingestionStat small{display:block;color:var(--muted)}.ingestionStat strong{display:block;margin:5px 0;font-size:25px}.ingestionStat.corrections:before{background:#f1b84b}.ingestionStat.validated:before{background:var(--mint)}.ingestionStat.duplicates:before{background:#9b83ef}.ingestionStat.failed:before{background:var(--danger)}
@media(max-width:900px){.ingestionSummary{grid-template-columns:repeat(2,minmax(135px,1fr))}}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes progress{to{background-position:-200% 0}}
@media(max-width:800px){.shell{grid-template-columns:60px 1fr}
aside{padding:15px 8px}
.brand div:last-child,.nav span{display:none}
.brand{padding-left:2px}.brandIcon{width:42px;height:42px;flex-basis:42px}
.nav{justify-content:center;font-size:18px}
.reportButton span{display:none}.reportButton{padding:10px 5px;font-size:17px}
main{padding:18px 12px}
.split{grid-template-columns:1fr;grid-template-rows:auto 1fr}
.rail{display:block;border-right:0;border-bottom:1px solid var(--line);max-height:145px}
.raggrid{grid-template-columns:1fr}
.raggrid .card:first-child{max-height:260px}
header{height:82px}
.pill{padding:7px}
.pill span{display:none}
.coding .rail{max-height:180px}
.ragchat .rail{max-height:280px}
.ragchat #ragConversations{max-height:110px}
.ragComposer{flex-wrap:wrap}
.ragComposer select{max-width:none;width:100%}
.bubble,.messageUsage{max-width:94%}.composer button{width:92px}.stopButton{width:92px!important}
.panel{height:calc(100vh - 112px)}
.reportOverlay{padding:10px}.reportCard{padding:18px}.reportContext{grid-template-columns:1fr}
}

.shareWorkspace{height:100%;overflow:auto;padding:clamp(18px,3vw,42px);max-width:1180px;margin:auto}
.shareHero{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:30px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(135deg,rgba(24,180,155,.12),rgba(51,115,215,.10))}
.shareHero h2{font-size:clamp(26px,4vw,42px);margin:4px 0 8px}.shareHero p{max-width:720px;color:var(--muted);line-height:1.55;margin:0}
.shareDrop{min-width:230px;text-align:center;padding:18px 22px;border-style:solid;border-color:var(--line-strong);background:transparent;color:var(--text);font-weight:750}
.shareNotice{margin:16px 0;padding:12px 16px;border:1px solid var(--line);border-radius:13px;color:var(--muted);font-size:13px}
.shareFiles{display:grid;gap:12px}.shareFiles>h4{margin:12px 0 0}.shareFiles .ingestionItem{padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
@media(max-width:760px){.shareHero{align-items:stretch;flex-direction:column}.shareDrop{min-width:0}}
.artifactList{display:grid;gap:8px;margin-top:9px}.artifactCard{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--panel)}.artifactCard>span{font-size:1.3rem;color:var(--text)}.artifactCard>div{display:flex;flex:1;min-width:0;flex-direction:column}.artifactCard b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.artifactCard small{color:var(--muted)}.artifactCard button{flex:none}
.codingModelPicker{display:flex;align-items:center;gap:7px;margin-left:auto;color:var(--muted);font-size:12px}.codingModelPicker select{width:auto;min-width:190px}.codingWorkspace{display:grid!important;grid-template-rows:minmax(260px,1fr) minmax(260px,1fr);min-height:0}.codingWorkspace>.editor{min-height:0;border-bottom:1px solid var(--line)}.codingAssistant{display:grid;grid-template-rows:1fr auto auto;min-height:0;padding:10px}.codingAnswer{min-height:0;overflow:auto;padding:4px 8px}.codingAnswer .markdown{padding:8px 4px}.codingAssistant .composer{padding:8px 0 0}
@media(max-width:800px){.codingModelPicker{width:100%;margin-left:0}.codingModelPicker select{flex:1;min-width:0}.codingWorkspace{grid-template-rows:minmax(240px,1fr) minmax(280px,1fr)}}

/* ── Atelier « Essais laser » ─────────────────────────────────────────────
   Aucune couleur en dur : tout passe par les jetons, donc le mode clair
   suit sans retouche. */
.essaisWorkspace{display:flex;flex-direction:column;gap:16px;overflow-y:auto;padding-right:4px}
.essaisAtelier{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 20px;display:flex;flex-direction:column;gap:12px}
.essaisHead{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.essaisHead small{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:11px}
.essaisHead h2{margin:2px 0 0;font-size:19px}
.essaisIntro{margin:0;color:var(--muted)}
.essaisChamps{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.essaisChamps label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:12px}
.essaisChamps input,.essaisChamps select{background:var(--input-bg);border:1px solid var(--line);color:var(--text);border-radius:9px;padding:8px 10px;font:inherit}
.essaisChamps input:focus,.essaisChamps select:focus{outline:none;border-color:var(--blue)}
.essaisDepot{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.essaisDrop{flex:0 0 auto}
.essaisNotice{color:var(--muted);font-size:12px;border-top:1px solid var(--line);padding-top:10px}

.essaisResultats{display:flex;flex-direction:column;gap:14px}
.essaisBandeau{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.essaisBandeau>div{background:var(--card);padding:14px 16px;display:flex;flex-direction:column;gap:3px}
.essaisBandeau small{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:10px}
.essaisBandeau b{font-size:19px}
.essaisBandeau span{color:var(--muted);font-size:12px}
.essaisBandeau.ton-bon>div:first-child{box-shadow:inset 3px 0 0 var(--mint)}
.essaisBandeau.ton-moyen>div:first-child{box-shadow:inset 3px 0 0 var(--amber)}
.essaisBandeau.ton-aucun>div:first-child{box-shadow:inset 3px 0 0 var(--danger)}
.essaisMotif{background:var(--badge-warn);border:1px solid var(--line);border-radius:12px;padding:12px 14px;color:var(--text);line-height:1.5}
.essaisAvertissements{display:flex;flex-direction:column;gap:6px;color:var(--amber);font-size:13px}

.essaisSection{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:4px 18px}
.essaisSection>summary{cursor:pointer;padding:12px 0;font-weight:650;color:var(--text)}
.essaisSection>summary::marker{color:var(--muted)}
.essaisSection p.muted{color:var(--muted);line-height:1.5;margin:8px 0 14px}

.essaisTable{width:100%;border-collapse:collapse;margin:6px 0 12px;background:var(--table-bg);font-size:13px}
.essaisTable th,.essaisTable td{border-bottom:1px solid var(--line);padding:7px 10px;text-align:left}
.essaisTable thead th{background:var(--table-head);color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.05em}
.essaisTable td.num,.essaisTable th.num{text-align:right;font-variant-numeric:tabular-nums}
.essaisTable tr.fiable td:first-child{box-shadow:inset 3px 0 0 var(--mint)}
.essaisTable .bon{color:var(--mint);font-weight:700}
.essaisTable .mauvais{color:var(--danger);font-weight:700}
.essaisTable .barreCell{width:34%}
.essaisTable .barre{display:block;height:8px;border-radius:5px;background:var(--blue);min-width:1px}
.essaisTable.matrice th{color:var(--muted);font-weight:600}

.courbeBarre{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:4px 0 10px}
.courbeBarre label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}
.courbeBarre select{background:var(--input-bg);border:1px solid var(--line);color:var(--text);border-radius:9px;padding:6px 9px;font:inherit}
.courbeHote{display:grid;gap:16px;align-items:start}
.courbeHote.vue-les-deux{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}
.courbeTableau,.courbeGraphique{min-width:0;overflow-x:auto}
.courbeTableau .essaisTable{min-width:480px}
#essaisInversion{overflow-x:auto}
.courbeHote.vue-tableau{grid-template-columns:1fr}
.courbeHote.vue-tableau .courbeGraphique{display:none}
.courbeHote.vue-graphique{grid-template-columns:1fr}
.courbeHote.vue-graphique .courbeTableau{display:none}
@media(max-width:1100px){.courbeHote.vue-les-deux{grid-template-columns:1fr}}
.courbe{width:100%;height:auto;background:var(--surface);border:1px solid var(--line);border-radius:12px}
.courbe .grille{stroke:var(--line);stroke-width:1}
.courbe .axe{fill:var(--muted);font-size:10px}
.courbe .axeTitre{fill:var(--muted);font-size:10px}
.courbe polyline{fill:none;stroke-width:2}
.courbe .serieCv{stroke:var(--amber)}
.courbe circle.serieCv{fill:var(--amber)}
.courbe .serieReel{stroke:var(--mint)}
.courbe circle.serieReel{fill:var(--mint)}
.legende{display:flex;gap:16px;flex-wrap:wrap;margin-top:8px;font-size:12px;color:var(--muted)}
.legende span::before{content:'';display:inline-block;width:14px;height:3px;border-radius:2px;margin-right:7px;vertical-align:middle}
.legende .clefCv::before{background:var(--amber)}
.legende .clefReel::before{background:var(--mint)}

.essaisActions{display:flex;gap:10px;flex-wrap:wrap}
.essaisActions .primary,.essaisDepot .primary{width:auto}
.statusTag.etat-publiee,.statusTag.bon{background:var(--badge-ok);color:var(--text);box-shadow:inset 2px 0 0 var(--mint)}
.statusTag.etat-brouillon{background:var(--tag);color:var(--text)}
.statusTag.mauvais{background:var(--hover-danger);color:var(--text);box-shadow:inset 2px 0 0 var(--danger)}
/* Titre sur deux lignes, croix alignée à droite : le .conv du chat est en
   ligne, l'entrée d'une campagne porte en plus son décompte et son état. */
#campagnes .convTitle{display:flex;flex-direction:column;gap:3px;min-width:0;overflow:visible;flex:1}
#campagnes .convTitle b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#campagnes .convTitle small{color:var(--muted);white-space:normal;line-height:1.45}
#campagnes .conv .statusTag{margin-left:4px}
#campagnes .deleteConv{align-self:flex-start;flex:0 0 auto}
#essaisV2Nav{display:none!important}.matriceScroll{overflow:auto}.matriceCorrelation{font-size:.78rem}.matriceCorrelation th{white-space:nowrap}.matriceCorrelation td{text-align:center}.matriceCorrelation .corrFortPos{background:color-mix(in srgb,var(--mint) 32%,transparent)}.matriceCorrelation .corrFortNeg{background:color-mix(in srgb,var(--danger) 28%,transparent)}.matriceCorrelation .corrPos{background:color-mix(in srgb,var(--mint) 14%,transparent)}.matriceCorrelation .corrNeg{background:color-mix(in srgb,var(--danger) 12%,transparent)}.matriceCorrelation .corrNA{color:var(--muted)}

/* ── Essais laser V2 : lecture progressive d'une même campagne ───────── */
.essaisV2Workspace{max-width:1440px;margin:0 auto;padding:24px;display:grid;gap:18px}
.essaisV2Head{display:flex;gap:22px;justify-content:space-between;align-items:flex-start;padding:22px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(135deg,var(--surface),var(--panel))}
.essaisV2Head small{color:var(--mint);font-weight:700;letter-spacing:.03em}.essaisV2Head h2{margin:5px 0}.essaisV2Head p{max-width:760px;margin:0;color:var(--muted)}
.essaisV2Controls{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.essaisV2Controls label{display:grid;gap:5px;color:var(--muted);font-size:12px}.essaisV2Controls select{max-width:340px}
.essaisV2Content{display:grid;gap:16px}.essaisV2Stats{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px}.essaisV2Stat,.essaisV2Card{border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:16px}.essaisV2Stat small,.essaisV2Card small{display:block;color:var(--muted)}.essaisV2Stat b{display:block;font-size:27px;margin:5px 0}.essaisV2Grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.essaisV2Card h3{margin:0 0 10px}.essaisV2Card p{margin:7px 0;color:var(--muted)}.essaisV2Card ul{margin:8px 0;padding-left:20px}.essaisV2Decision{border-left:4px solid var(--mint)}.essaisV2Warning{border-left:4px solid var(--amber)}.essaisV2Danger{border-left-color:var(--danger)}
@media(max-width:900px){.essaisV2Head{display:grid}.essaisV2Stats,.essaisV2Grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.essaisV2Workspace{padding:14px}.essaisV2Stats,.essaisV2Grid{grid-template-columns:1fr}}
.essaisV2Actions{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.essaisV2Actions button{font-size:.85rem}.essaisV2DoeResult{padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.essaisV2DoeResult summary{font-weight:700;cursor:pointer;margin-bottom:12px}
