:root{--paper:#f4f3ee;--panel:#f4f3ee;--ink:#14130e;--ink-2:#35322c;--ink-soft:#575249;--line:#d0cbbe;--line-ink:#14130e;--accent:#2b2be6;--ok:#197a3a;--warn:#a05e00;--err:#cf2020;--rec:#cf2020;--mono:"Space Mono", "SFMono-Regular", ui-monospace, "Menlo", monospace;font-family:var(--mono)}*{box-sizing:border-box}html,body,#root{height:100%}body{color:var(--ink);background:var(--paper);font-family:var(--mono);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}button{cursor:pointer;font-family:inherit}::selection{background:var(--accent);color:#fff}.app{max-width:1200px;margin:0 auto;padding:0 22px 90px}.topbar{border-bottom:1px solid var(--line-ink);text-transform:uppercase;letter-spacing:.5px;justify-content:space-between;align-items:center;gap:20px;padding:16px 0;font-size:12px;display:flex}.brand{letter-spacing:1px;align-items:center;gap:9px;font-size:14px;font-weight:700;display:flex}.brand .sq{background:var(--accent);width:10px;height:10px}.brand-med{color:var(--ink-soft);letter-spacing:.3px;text-transform:none;font-weight:400}.statusbar{color:var(--ink-soft);align-items:center;gap:20px;font-size:12px;display:flex}.statusbar .live{color:var(--ink);align-items:center;gap:7px;display:flex}.statusbar .live i{background:var(--accent);width:8px;height:8px;display:block}.layout{grid-template-columns:320px 1fr;align-items:start;display:grid}.side{border-right:1px solid var(--line-ink);padding:22px 22px 22px 0;position:sticky;top:18px}.main{min-height:620px;padding:22px 0 22px 24px}.layout.onboard{grid-template-columns:1fr;max-width:660px;margin:0 auto}.layout.onboard .side{border-right:none;order:2;padding:20px 0 0;position:static}.layout.onboard .main{order:1;min-height:0;padding:0}.onboard-guide{border-bottom:1px dashed var(--line);padding-bottom:20px}.onboard-guide h2{letter-spacing:-.3px;margin:0 0 14px;font-size:22px;font-weight:700;line-height:1.25}.onboard-ex{color:var(--ink);margin:0;font-size:14px;line-height:1.6}.onboard-guide em{color:var(--accent);font-style:normal}.onboard-out{color:var(--ink-soft);margin:16px 0 0;font-size:13px;line-height:1.6}.modes-label{text-transform:uppercase;letter-spacing:1px;color:var(--ink-soft);margin-bottom:9px;font-size:10px}.modes{gap:8px;display:flex}.modes .record{flex:1}.mode-photo{border:1px solid var(--ink);background:var(--paper);color:var(--ink);font-family:var(--mono);text-transform:uppercase;letter-spacing:1px;border-radius:0;flex:1;font-size:12px;font-weight:700;transition:background .1s,color .1s}.mode-photo:hover{background:var(--ink);color:var(--paper)}.photo-preview{border:1px solid var(--line-ink);margin-top:12px;padding:8px}.pp-img{cursor:zoom-in;background:#fff;border:none;width:100%;padding:0;display:block;position:relative}.pp-img img{object-fit:contain;background:#fff;width:100%;max-height:190px;display:block}.pp-zoom{background:var(--ink);color:var(--paper);text-transform:uppercase;letter-spacing:.5px;opacity:0;padding:3px 7px;font-size:9.5px;transition:opacity .12s;position:absolute;bottom:6px;right:6px}.pp-img:hover .pp-zoom{opacity:1}.lightbox{z-index:60;cursor:zoom-out;background:#14130ee0;justify-content:center;align-items:center;padding:48px;display:flex;position:fixed;inset:0}.lightbox img{object-fit:contain;background:#fff;border:6px solid #fff;max-width:92vw;max-height:84vh}.lb-close{color:var(--paper);text-transform:uppercase;letter-spacing:1px;cursor:pointer;font-size:12px;font-family:var(--mono);background:0 0;border:none;position:fixed;top:20px;right:26px}.lb-close:hover{text-decoration:underline}.record:disabled,.mode-photo:disabled,.ex:disabled{opacity:.4;cursor:not-allowed}.pp-meta{justify-content:space-between;align-items:center;gap:8px;margin-top:7px;display:flex}.pp-ok{color:var(--ok);text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:700}.pp-ok.muted{color:var(--ink-soft)}.pp-v2{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.3px;text-align:right;font-size:9px}.ex.ticket{font-weight:700}.ex.ticket:before{content:""}.record{background:var(--ink);width:100%;color:var(--paper);border:1px solid var(--ink);font-family:var(--mono);text-transform:uppercase;letter-spacing:1px;border-radius:0;justify-content:center;align-items:center;gap:10px;padding:14px;font-size:12px;font-weight:700;transition:background .1s,color .1s;display:flex}.record:hover{background:var(--paper);color:var(--ink)}.record.on{background:var(--rec);border-color:var(--rec);color:#fff}.record .rec-icon{background:currentColor;width:8px;height:8px}.record.on .rec-icon{animation:1s step-end infinite blink}@keyframes blink{50%{opacity:.15}}.error{border:1px solid var(--err);color:var(--err);margin-top:12px;padding:9px 11px;font-size:11.5px}.transcript{border:1px solid var(--line-ink);width:100%;font-family:var(--mono);resize:vertical;min-height:118px;color:var(--ink);background:var(--paper);border-radius:0;margin-top:13px;padding:12px;font-size:13px;line-height:1.6}.transcript:focus{box-shadow:inset 0 0 0 1.5px var(--ink);outline:none}.transcript::placeholder{color:var(--ink-soft)}.partial{min-height:16px;color:var(--ink-soft);text-transform:uppercase;opacity:0;margin-top:7px;font-size:11.5px;transition:opacity .12s}.partial.show{opacity:1}.process{border:1px solid var(--ink);background:var(--ink);width:100%;color:var(--paper);font-family:var(--mono);text-transform:uppercase;letter-spacing:1px;border-radius:0;margin-top:11px;padding:13px;font-size:12px;font-weight:700;transition:background .1s,color .1s}.process:hover:not(:disabled){background:var(--paper);color:var(--ink)}.process:disabled{opacity:.35;cursor:not-allowed}.examples{border-top:1px solid var(--line-ink);flex-direction:column;margin-top:26px;display:flex}.examples>span{text-transform:uppercase;letter-spacing:1.5px;color:var(--ink-soft);padding:12px 0 6px;font-size:10.5px}.ex{text-align:left;border:none;border-bottom:1px solid var(--line);color:var(--ink);background:0 0;border-radius:0;padding:10px 0;font-size:11.5px;line-height:1.45;transition:padding-left .1s,color .1s}.ex:before{content:"→ ";color:var(--ink-soft)}.ex:hover{color:var(--ink);padding-left:6px}.ex:hover:before{color:var(--ink)}.empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;height:100%;min-height:560px;display:flex}.empty p{text-transform:uppercase;letter-spacing:1px;margin:0;font-size:12px}.empty .muted{color:var(--ink-soft);text-transform:none;letter-spacing:0}.chain{border:1px solid var(--line-ink);margin-bottom:22px;padding:16px 16px 13px}.chain-row{align-items:stretch;padding-bottom:2px;display:flex;overflow-x:auto}.node-group{align-items:center;display:flex}.conn{color:var(--ink-soft);letter-spacing:-1px;flex-shrink:0;padding:0 8px;font-size:12px}.chain.is-run .conn{animation:.9s step-end infinite connpulse}@keyframes connpulse{50%{color:var(--accent)}}.node{border:1px solid var(--line-ink);background:var(--paper);flex-direction:column;gap:4px;min-width:96px;padding:9px 26px 9px 11px;display:flex;position:relative}.node-n{color:var(--ink-soft);letter-spacing:1px;font-size:9px}.node-l{text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;font-size:11px;font-weight:700}.node-ic{font-size:14px;line-height:1}.node-s{background:var(--line);width:7px;height:7px;position:absolute;top:9px;right:9px}.node.in{border-style:dashed;justify-content:center;min-width:84px}.node.idle,.node.idle .node-l{color:var(--ink-soft)}.node.done .node-s{background:var(--ink)}.node.ok .node-s{background:var(--ok)}.node.warn .node-s{background:var(--warn)}.node.fail .node-s{background:var(--err)}.node.run .node-s{background:var(--accent)}.chain.is-run .node.run{animation:1.1s ease-in-out infinite nodepulse}@keyframes nodepulse{0%,to{box-shadow:inset 0 0 0 0 var(--accent)}50%{box-shadow:inset 0 0 0 2px var(--accent)}}.chain-loop{border-top:1px dashed var(--line);align-items:center;gap:10px;margin-top:12px;padding-top:10px;display:flex}.loop-arc{border:1px solid var(--line);border-top:none;border-right:none;flex-shrink:0;width:54px;height:7px;display:inline-block}.loop-lbl{text-transform:uppercase;letter-spacing:.5px;color:var(--ink-soft);font-size:10px}.running{text-transform:uppercase;letter-spacing:1px;color:var(--accent);padding:8px 0;font-size:11px;animation:.9s step-end infinite connpulse}button.node{font:inherit;color:inherit;text-align:left;cursor:pointer}.node.sel{box-shadow:inset 0 0 0 2px var(--accent)}.chain-hint{text-transform:uppercase;letter-spacing:.5px;color:var(--ink-soft);margin-top:12px;font-size:10.5px}.step-doc{border:1px solid var(--line-ink);margin-top:14px;animation:.28s docin}@keyframes docin{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.step-doc__head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.step-doc__head strong{text-transform:uppercase;letter-spacing:.5px;font-size:12.5px}.step-doc__close{cursor:pointer;color:var(--ink-soft);background:0 0;border:none;font-size:14px}.step-doc__close:hover{color:var(--rec)}.step-doc__use{color:var(--ink-2);margin:0;padding:12px;font-size:13px;line-height:1.6}.step-doc__file{color:var(--accent);padding:0 12px 8px;font-size:10.5px}.step-doc__code{border-top:1px solid var(--line);background:var(--paper);margin:0;padding:12px;font-size:11.5px;line-height:1.55;overflow-x:auto}.step-doc__code code{white-space:pre}.step-data{padding:14px 12px 2px}.step-data .grid2{border-top:none}.step-note{color:var(--ink-2);margin:0;padding:0 2px 6px;font-size:13px;line-height:1.6}.code-toggle{text-align:left;border:none;border-top:1px solid var(--line);cursor:pointer;width:100%;font-family:var(--mono);text-transform:uppercase;letter-spacing:.5px;color:var(--accent);background:0 0;align-items:center;gap:10px;padding:11px 12px;font-size:10.5px;display:flex}.code-toggle:hover{color:var(--ink)}.code-toggle .code-file{color:var(--ink-soft);text-transform:none;letter-spacing:0;margin-left:auto}.result{flex-direction:column;align-items:stretch;display:flex}.processing{text-align:center;text-transform:uppercase;letter-spacing:1px;color:var(--accent);padding:64px 0;font-size:12px;animation:.9s step-end infinite connpulse}.outcome{text-align:center;max-width:380px;margin:26px auto 0}.outcome-verdict{text-transform:uppercase;letter-spacing:1px;align-items:center;gap:9px;margin-bottom:22px;font-size:12px;font-weight:700;display:inline-flex}.outcome-verdict .oc-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.outcome.ok{color:var(--ok)}.outcome.ok .oc-dot{background:var(--ok)}.outcome.warn{color:var(--warn)}.outcome.warn .oc-dot{background:var(--warn)}.outcome.fail{color:var(--err)}.outcome.fail .oc-dot{background:var(--err)}.receipt{color:var(--ink);text-align:left;border:1px solid var(--line-ink);padding:26px 28px}.rc-account{text-align:center;margin-bottom:20px}.rc-num{letter-spacing:-1px;font-size:30px;font-weight:700;line-height:1;display:block}.rc-lib{text-transform:uppercase;letter-spacing:1px;color:var(--ink-soft);margin-top:7px;font-size:11px;display:block}.rc-amounts{border-collapse:collapse;width:100%}.rc-amounts td{border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;padding:9px 0;font-size:14px}.rc-amounts td:first-child{text-transform:uppercase;letter-spacing:.5px;color:var(--ink-soft);font-size:11px}.rc-amounts td:last-child{text-align:right;font-weight:700}.rc-total td{border-bottom:none;border-top:2px solid var(--line-ink);padding-top:13px;font-size:16px}.rc-total td:first-child{color:var(--ink);font-size:13px}.rc-meta{text-align:center;text-transform:uppercase;letter-spacing:.5px;color:var(--ink-soft);margin-top:18px;font-size:11px}.rc-retries{text-align:center;text-transform:uppercase;letter-spacing:.5px;color:var(--warn);margin-top:8px;font-size:10px}.reasoning{width:100%;max-width:640px;margin:30px auto 0}.reasoning-toggle{border:none;border-top:1px solid var(--line);cursor:pointer;width:100%;font-family:var(--mono);color:var(--ink-soft);text-transform:uppercase;letter-spacing:1px;background:0 0;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;padding:16px 0 0;font-size:11px;transition:color .12s;display:flex}.reasoning-toggle:hover{color:var(--ink)}.reasoning-toggle .rt-caret{color:var(--accent)}.reasoning-toggle .rt-sub{text-align:center;letter-spacing:.5px;width:100%;color:var(--ink-soft);text-transform:none;font-size:9.5px}.reasoning-body{margin-top:20px;animation:.3s docin}.grid2{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;display:grid}.field{border-bottom:1px solid var(--line);flex-direction:column;gap:4px;padding:11px 14px 11px 0;display:flex}.field:nth-child(odd){border-right:1px solid var(--line)}.field:nth-child(2n){padding-left:14px}.f-k{text-transform:uppercase;letter-spacing:1.5px;color:var(--ink-soft);font-size:9.5px}.f-v{font-size:14px;font-weight:700}.f-v.null{color:var(--ink-soft);font-weight:400}.chips{text-transform:uppercase;letter-spacing:.5px;flex-wrap:wrap;align-items:center;gap:8px;margin-top:13px;font-size:10.5px;display:flex}.warn-chips>span{color:var(--warn)}.chip{border:1px solid var(--warn);color:var(--warn);padding:2px 7px}.coding-head{align-items:center;gap:16px;display:flex}.compte{color:var(--ink);letter-spacing:-1px;font-size:30px;font-weight:700;line-height:1}.compte-lib{flex:1}.compte-lib strong{text-transform:uppercase;letter-spacing:.5px;font-size:14px;font-weight:700}.tva-line{text-transform:uppercase;letter-spacing:.5px;color:var(--ink-soft);margin-top:5px;font-size:10.5px}.justif{color:var(--ink-2);margin:14px 0 0;font-size:12px;line-height:1.7}.conf{flex-shrink:0;align-items:center;gap:8px;display:flex}.conf-lbl{letter-spacing:1px;color:var(--ink-soft);font-size:9.5px}.conf-track{border:1px solid var(--ink);width:60px;height:9px}.conf-fill{background:var(--ink);height:100%}.conf-txt{color:var(--ink);font-variant-numeric:tabular-nums;font-size:11px;font-weight:700}.trace{border-top:1px solid var(--line);margin-top:15px;padding-top:12px}.trace summary{text-transform:uppercase;letter-spacing:.5px;color:var(--ink-soft);cursor:pointer;font-size:10.5px}.trace ul{margin:11px 0 0;padding:0;list-style:none}.trace li{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:7px 0;font-size:11.5px;display:flex}.trace li.chosen{color:var(--ink);font-weight:700}.trace li:not(.chosen){color:var(--ink-soft)}.trace .c-num{width:46px;font-weight:700}.trace .c-lib{text-transform:uppercase;letter-spacing:.3px;flex:1}.trace .c-score{font-variant-numeric:tabular-nums}.ecriture{border-collapse:collapse;width:100%}.ecriture td{border-bottom:1px solid var(--line);text-transform:uppercase;letter-spacing:.3px;padding:11px 0;font-size:13px}.ecriture .num{text-align:right;font-variant-numeric:tabular-nums;text-transform:none}.ecriture .total td{border-top:2px solid var(--line-ink);border-bottom:2px solid var(--line-ink);font-weight:700}.lib-ecriture{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.5px;margin:12px 0 0;font-size:10.5px}.verif-ok{text-transform:uppercase;letter-spacing:.5px;color:var(--ok);margin:0;font-size:11.5px}.issues{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.issues li{border-left:3px solid var(--line-ink);margin-bottom:8px;padding:11px 13px;font-size:12px}.issues li strong{text-transform:uppercase;letter-spacing:.3px}.issues li.bloquant{border-left-color:var(--err)}.issues li.avertissement{border-left-color:var(--warn)}.issues li.human{border-left-color:var(--ink);text-transform:uppercase;letter-spacing:.5px;color:var(--ink);padding-left:0;font-weight:700}@media (width<=900px){.layout{grid-template-columns:1fr}.side{border-right:none;border-bottom:1px solid var(--line-ink);padding:0 0 22px;position:static}.main{padding:22px 0}.receipt{padding:22px 20px}}
