@import url(base.css);
body{padding:0;min-height:100vh;display:flex;flex-direction:column}
.obar{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 28px;background:var(--navy);color:#fff;font:500 12px var(--mono);letter-spacing:.03em}
.obar b{font:700 14px var(--sans)}
.wrap{flex:1;display:grid;grid-template-columns:1fr 420px;gap:24px;max-width:1180px;width:100%;margin:0 auto;padding:24px}
.chat{background:var(--paper);box-shadow:0 12px 30px -12px rgba(20,35,70,.22);padding:28px 32px;display:flex;flex-direction:column;min-height:70vh}
#log{flex:1;display:flex;flex-direction:column;gap:12px}
.msg{max-width:82%;padding:11px 15px;border:1px solid #dde2ec;border-radius:12px 12px 12px 2px;background:#f7f8fb;animation:up .3s ease}
.msg.me{align-self:flex-end;background:var(--navy);color:#fff;border-color:var(--navy);border-radius:12px 12px 2px 12px;font-family:var(--mono);font-size:14px}
.msg.big{font:700 30px/1.2 var(--sans);color:var(--navy);background:none;border:0;padding:0}
.msg.warn{border-color:var(--gold);background:#fbf6e8}
.msg.err{border-color:var(--red);background:#fbeceb;color:var(--red)}
.typing{display:inline-flex;gap:4px;padding:14px 16px;border:1px solid #dde2ec;border-radius:12px;align-self:flex-start;background:#f7f8fb}
.typing i{width:7px;height:7px;border-radius:50%;background:var(--soft);animation:blink 1s infinite}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
@keyframes blink{0%,80%,100%{opacity:.25}40%{opacity:1}}
@keyframes up{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
#act{margin-top:18px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
#act input{flex:1;min-width:180px;font:16px var(--mono);padding:10px 12px;border:1.5px solid var(--navy);border-radius:0;background:#fff}
.btn{font:600 14px var(--sans);padding:10px 16px;border:1.5px solid var(--navy);background:#fff;color:var(--navy);cursor:pointer}
.btn.primary{background:var(--navy);color:#fff}.btn:hover{background:var(--gold);color:var(--navy)}
.fiche{background:var(--paper);box-shadow:0 12px 30px -12px rgba(20,35,70,.22);padding:22px 24px;align-self:start;position:sticky;top:24px;max-height:calc(100vh - 48px);overflow:auto}
.ftoggle{display:none}
.fhead h2{font:700 18px var(--sans);color:var(--navy);margin:0 0 10px}
.fhead{border-bottom:3px double var(--navy);padding-bottom:14px;margin-bottom:10px}
.sec{font:600 11px var(--mono);text-transform:uppercase;letter-spacing:.07em;color:var(--gold-ink);margin:14px 0 4px}
.ln{display:flex;justify-content:space-between;gap:10px;font:13px/1.45 var(--mono);border-bottom:1px dotted #b6bbc8;padding:5px 0;animation:up .35s ease}
.ln span{color:var(--soft)}.ln b{text-align:right;font-weight:500}
.ln.hl{background:#fbf6e8}.ln.hl b{font-weight:700;color:var(--navy)}
.ok{margin-top:14px;padding:14px;background:#e5f4ea;border:1.5px solid #2f7d4a;color:#1d5a33;font:700 18px var(--sans)}
.note{font:12px/1.5 var(--mono);color:var(--soft);margin-top:6px}
@media(max-width:900px){
 .wrap{grid-template-columns:1fr;padding:0;gap:0}
 .fiche{order:-1;position:sticky;top:0;z-index:5;max-height:none;padding:0;box-shadow:0 4px 12px rgba(20,35,70,.15)}
 .ftoggle{display:flex;justify-content:space-between;width:100%;padding:12px 16px;border:0;background:var(--gold);font:700 14px var(--sans);color:var(--navy);cursor:pointer}
 .fbody{display:none;padding:12px 16px;max-height:60vh;overflow:auto}.fiche.open .fbody{display:block}
 .chat{padding:18px 16px;min-height:auto}.msg{max-width:92%}.msg.big{font-size:24px}
}
.prog{background:#fff;border-bottom:1px solid #dde2ec;padding:10px 28px 0;position:sticky;top:0;z-index:6}
.ptxt{display:flex;justify-content:space-between;align-items:center;gap:12px;max-width:1132px;margin:0 auto;font:13px var(--mono);color:var(--navy)}
.prog ol{display:flex;gap:16px;list-style:none;margin:0;padding:0;font-size:12px;color:var(--soft)}
.prog li.done{color:#2f7d4a}.prog li.done::before{content:"✓ "}.prog li.cur{color:var(--navy);font-weight:700}
.pbar{height:5px;background:#e3e7ef;margin:8px -28px 0}.pbar i{display:block;height:100%;width:20%;background:var(--gold);transition:width .5s}
.drop{flex:1 1 100%;display:flex;flex-direction:column;align-items:center;gap:4px;padding:26px 14px;border:2px dashed var(--navy);background:#f7f8fb;cursor:pointer;text-align:center}
.drop.on{background:#fbf6e8;border-color:var(--gold-ink)}.drop span{font:12px var(--mono);color:var(--soft)}
.tab{border-collapse:collapse;margin:8px 0;font:13px var(--mono);width:100%}.tab td{border-bottom:1px dotted #b6bbc8;padding:3px 6px}.tab td+td{text-align:right}.tab tr.miss td{color:var(--red)}
.expl{margin:6px 0 0;padding-left:18px;font-size:14px}
.compte{display:flex;flex-wrap:wrap;gap:8px;flex:1}.compte input{flex:1 1 200px}
@media(max-width:900px){.prog{padding:8px 16px 0}.prog ol{display:none}.pbar{margin:6px -16px 0}.fiche{top:41px}}

.obback{color:inherit;opacity:.85;text-decoration:none;font-size:13px;white-space:nowrap;margin-right:16px}.obback:hover{opacity:1;text-decoration:underline}
