:root{color-scheme:dark;--bg:#0c1117;--panel:#131c26;--line:#273442;--text:#e9f0f6;--muted:#8c9ead;--accent:#65e0c4;--blue:#7fb4fb;--warning:#edc47a}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.55 system-ui,-apple-system,sans-serif}button,input,textarea,select{font:inherit}button,a,input,textarea,select{outline-offset:3px}button:focus-visible,a:focus-visible{outline:2px solid var(--accent)}button{cursor:pointer;border:1px solid var(--line);border-radius:9px;background:#1b2835;color:var(--text);padding:9px 15px;transition:background .15s}button:hover{background:#293c4b}button:disabled{opacity:.55;cursor:wait}input,textarea,select{background:#101923;border:1px solid var(--line);color:var(--text);border-radius:9px;padding:10px 12px;min-width:0;width:100%}input:focus,textarea:focus,select:focus{outline:none;border-color:#529d90;box-shadow:0 0 0 2px #65e0c416}textarea{resize:vertical}label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}aside{width:238px;height:100vh;position:fixed;display:flex;flex-direction:column;padding:34px 22px;border-right:1px solid var(--line);background:#0f1720}.brand{font-weight:760;letter-spacing:-1.4px;font-size:28px;color:var(--text);text-decoration:none}.brand span{color:var(--accent);margin-left:6px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:var(--muted);margin:5px 0 18px}nav{display:grid;gap:6px;margin-top:35px}nav button{text-align:left;background:transparent;border-color:transparent;color:var(--muted)}nav button.active{background:#65e0c412;color:var(--accent);border-color:#65e0c430}.sidefoot{margin-top:auto;display:grid;gap:15px;font-size:12px;color:var(--muted)}small{color:var(--muted)}main{margin-left:238px;padding:38px 42px;max-width:1800px}header{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:28px}h1{font-size:30px;font-weight:650;letter-spacing:-.8px;margin:0}h2{font-size:21px;font-weight:620;letter-spacing:-.3px;margin:0 0 16px}h3{font-size:15px;margin:0 0 12px}.tools{display:flex;align-items:end;gap:12px}.tools label{width:200px}.primary{background:var(--accent);color:#0b2922;border-color:var(--accent);font-weight:700}.primary:hover{background:#8aead4}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:24px;margin-bottom:20px}.metric{font-size:35px;letter-spacing:-1px;margin:12px 0}.label{color:var(--muted);font-size:13px}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.badges{display:flex;gap:8px;flex-wrap:wrap}.badge{display:inline-flex;align-items:center;font-size:11px;padding:4px 9px;border-radius:20px;background:#263443;color:#c1cfda;white-space:nowrap}.badge.ok{background:#214638;color:#88e0af}.badge.warn{background:#493e25;color:var(--warning)}.badge.error{background:#502f39;color:#ffabb5}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;color:var(--muted);font-size:11px;font-weight:550;letter-spacing:.6px;text-transform:uppercase;padding:14px 12px;border-bottom:1px solid var(--line)}td{padding:15px 12px;border-bottom:1px solid #25344377;vertical-align:top}tbody tr:hover{background:#20314255}td button{padding:4px 9px;font-size:12px}code,pre{font-family:ui-monospace,SFMono-Regular,monospace;font-size:12px}pre{overflow:auto;background:#0c141d;padding:20px;border-radius:10px;max-height:500px;white-space:pre-wrap;overflow-wrap:anywhere;color:#c7d9e7}.muted{color:var(--muted)}.empty{padding:55px 20px;text-align:center;color:var(--muted)}.tablewrap{overflow:auto}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.wide{grid-column:1/-1}.actions{display:flex;justify-content:flex-end;margin-top:22px;gap:10px}.check{flex-direction:row;align-items:center}.check input{width:auto}.message{border:1px solid var(--line);border-radius:10px;padding:15px;margin:12px 0;white-space:pre-wrap}.message.user{margin-left:35px;background:#22334a}.message.assistant{margin-right:35px;background:#192d2b}#notice{border:1px solid #685630;background:#302a1b;color:var(--warning);padding:12px 18px;border-radius:10px;margin-bottom:22px;font-size:13px}footer{font-size:11px;color:var(--muted);margin-top:25px}dialog{color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:17px;padding:30px;width:min(850px,94vw);max-height:90vh}dialog::backdrop{background:#03080cbf;backdrop-filter:blur(5px)}#login{width:450px}#login form{display:grid;gap:20px}#login p{margin:0;color:var(--muted);font-size:13px}.close{float:right}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#24463e;border:1px solid #529d90;padding:12px 22px;border-radius:10px;display:none;z-index:5}.timeline{border-left:2px solid var(--line);padding-left:18px}.timeline p{margin:10px 0}*{scrollbar-width:thin;scrollbar-color:#3e5265 transparent}@media(max-width:1050px){aside{width:190px;padding:25px 15px}main{margin-left:190px;padding:28px 20px}.grid{grid-template-columns:1fr}.metric{font-size:28px}}@media(max-width:720px){aside{position:static;width:auto;height:auto;padding:15px}.brand{font-size:22px}aside .eyebrow,.sidefoot{display:none}nav{margin-top:12px;display:flex;overflow:auto}nav button{white-space:nowrap;font-size:12px}main{margin:0;padding:22px 14px}header{align-items:start;flex-direction:column}.tools{width:100%}.tools label{flex:1}.formgrid{grid-template-columns:1fr}h1{font-size:25px}.card{padding:18px}}
td:first-child{white-space:nowrap}td button+button{margin-top:5px}
[hidden]{display:none!important}.service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:18px}.service-binding,.provider-config{padding:18px;border:1px solid var(--line);border-radius:12px;margin:12px 0}.service-binding summary{cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:15px}.service-binding summary label{color:var(--text);font-size:15px}.service-config{margin-top:14px}.product-active{margin:18px 0}.provider-config h3{margin-bottom:12px}.provider-config>.check{margin-bottom:18px}.key-row{display:flex;justify-content:space-between;gap:15px;align-items:center;margin:12px 0}.key-create{display:flex;gap:10px;margin-top:20px}.one-time-key{background:#214638;border:1px solid #529d90;border-radius:10px;padding:15px;margin-top:15px;display:grid;gap:12px}.one-time-key input{font-family:monospace}.error-text{color:#ffabb5}hr{border:0;border-top:1px solid var(--line);margin:28px 0}#product-form>h3{margin-top:25px}
.lab-live-note{border:1px solid #786236;background:#302a1b;color:var(--warning);padding:12px 15px;border-radius:9px}.lab-answer{display:grid;gap:15px}.answer-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:16px;line-height:1.65}.lab-details{margin-top:24px;border-top:1px solid var(--line);padding-top:15px}.lab-details summary{cursor:pointer;color:var(--muted)}.service-model{padding:12px;background:#0c141d;border-radius:8px}
.service-card{cursor:pointer;transition:border-color .15s}.service-card:hover{border-color:#529d90}.service-card .actions{margin-top:20px}#service-credentials-form{margin-top:24px}

.model-picker{display:grid;gap:10px}.duration-cell{white-space:nowrap;font-variant-numeric:tabular-nums}
.audiorow{display:flex;align-items:center;gap:10px}.audiorow input{flex:1}.audiorow button{white-space:nowrap}button.recording{background:#502f39;border-color:#7d4a56;color:#ffabb5}button.recording:hover{background:#623744}
.relay-once{display:grid;gap:8px;margin-top:12px}.relay-once input{font-family:ui-monospace,SFMono-Regular,monospace}
.service-list{display:grid;gap:10px;margin:12px 0}
.service-row{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid var(--line);border-radius:11px;padding:14px 16px;background:#101923}
.service-row p{margin:4px 0 0;font-size:12px}
.service-row-actions{display:flex;gap:8px;flex-shrink:0}
.service-add{display:flex;gap:10px;align-items:center}
.service-add select{flex:1}
.empty-services{border:1px dashed var(--line);border-radius:11px;padding:22px;text-align:center;margin:0}
#service-detail{width:min(720px,94vw)}
@media(max-width:620px){.service-row{flex-direction:column;align-items:stretch}.service-row-actions{justify-content:flex-end}}
.service-row{cursor:pointer;transition:background .15s,border-color .15s}
.service-row:hover{background:#16222e;border-color:#3a4c5e}
.service-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.service-go{color:var(--muted);font-size:22px;line-height:1}
.service-row:hover .service-go{color:var(--accent)}
.key-create input{flex:1}
.key-history{margin:10px 0 4px;border:1px solid var(--line);border-radius:11px;padding:10px 14px;background:#0f1720}
.key-history summary{cursor:pointer;color:var(--muted);font-size:13px}
.key-history[open] summary{margin-bottom:8px}
.key-history .key-row{opacity:.72}
.service-cost{background:#0f1720;border:1px solid var(--line);border-radius:11px;padding:16px 18px}
.service-cost h3{margin:0 0 12px}
.service-cost p{margin:0 0 10px}
.service-cost strong{font-size:19px;letter-spacing:-.4px}

.bench-row{display:grid;grid-template-columns:1fr 2fr 1fr auto;gap:12px;align-items:end;padding:14px;border:1px solid var(--line);border-radius:11px;margin:10px 0}.bench-list{margin:14px 0}.bench-chart{width:100%;height:auto;margin:10px 0 22px}@media(max-width:720px){.bench-row{grid-template-columns:1fr}}

.bench-plot{fill:#0c141d}.bench-grid{stroke:#25344377;stroke-width:1}.bench-axis{fill:var(--muted);font-size:11px}.bench-legend{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;font-size:12px;color:var(--muted);margin:-8px 0 22px}.bench-legend span{display:inline-flex;align-items:center;gap:7px}.bench-legend i{width:11px;height:11px;border-radius:3px;display:inline-block}

.bench-axis.echec{fill:#e08b96}.bench-legend i.anneau{background:transparent;border:1.5px solid var(--muted);border-radius:50%}

.bench-wrap{position:relative}.bench-hit{cursor:crosshair}.bench-hit:hover,.bench-hit:focus{fill:#ffffff09;outline:none}.bench-tip{position:absolute;top:8px;transform:translateX(-50%);background:#0c141d;border:1px solid var(--line);border-radius:9px;padding:10px 13px;font-size:12px;display:grid;gap:5px;pointer-events:none;white-space:nowrap;z-index:2;box-shadow:0 6px 18px #0009}.bench-tip strong{color:var(--text)}.bench-tip span{display:inline-flex;align-items:center;gap:7px;color:var(--muted)}.bench-tip i{width:9px;height:9px;border-radius:2px;display:inline-block}

.answer-images{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}.answer-images img{max-height:170px;max-width:260px;border-radius:10px;border:1px solid var(--line);background:#101923;display:block;object-fit:contain}

/* Documentation. Les blocs de code sont faits pour etre copies : on garde les espaces, on ne
   coupe pas les lignes d'une commande, et on borne la hauteur pour que la consigne entiere ne
   pousse pas le reste de la page hors de l'ecran. */
.codeblock{flex:1;margin:0;padding:15px;background:#0c141d;border:1px solid var(--line);border-radius:9px;
  font-family:monospace;font-size:13px;line-height:1.6;white-space:pre;overflow-x:auto}
.codeblock.scroll{max-height:460px;overflow-y:auto;white-space:pre-wrap;overflow-wrap:anywhere}
.docs-item{padding:15px;border:1px solid var(--line);border-radius:10px;margin:12px 0}
.docs-item summary{cursor:pointer;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.docs-item[open] summary{margin-bottom:14px}
.docs-item h4{margin:18px 0 8px}
ol.steps,ul.steps{margin:0;padding-left:22px;display:grid;gap:14px}
ol.steps p{margin:4px 0 0;color:var(--muted)}
