/* Labo Trading — blanc, noir, bleu. Vert et rouge réservés aux gains et aux pertes. */
@font-face { font-family:"Inter"; font-style:normal; font-weight:100 900; font-display:swap;
  src:url("/static/vendor/inter/inter-latin-wght-normal.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2190-2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:"Inter"; font-style:normal; font-weight:100 900; font-display:swap;
  src:url("/static/vendor/inter/inter-latin-ext-wght-normal.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }

:root { --ink:#0b1220; --text:#1f2937; --muted:#6b7686; --line:#e9ecf1; --soft:#f5f7fa; --blue:#2563eb; --blue-soft:#eef4ff;
        --gain:#0e9f6e; --gain-soft:#e7f7f0; --loss:#dc2626; --loss-soft:#fdecec; --warn:#b45309; --warn-soft:#fff5e6;
        --radius:14px; --shadow:0 1px 2px rgba(16,24,40,.04), 0 4px 16px rgba(16,24,40,.04); }
* { box-sizing:border-box; }
html { -webkit-font-smoothing:antialiased; }
body { margin:0; font:15px/1.55 "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; background:#fff; color:var(--text);
       font-feature-settings:"cv11","ss01"; }
a { color:var(--blue); text-decoration:none; } a:hover { text-decoration:underline; }
b, strong { font-weight:600; color:var(--ink); }

/* Barre du haut */
.top { position:sticky; top:0; z-index:20; display:flex; flex-wrap:wrap; align-items:center; gap:8px 36px; padding:12px 32px;
       background:rgba(255,255,255,.86); backdrop-filter:saturate(180%) blur(14px); border-bottom:1px solid var(--line); }
.brand { display:flex; align-items:center; gap:10px; font-weight:700; font-size:1.02rem; letter-spacing:-.01em; color:var(--ink); }
.brand:hover { text-decoration:none; }
.logo { display:inline-grid; place-items:center; width:30px; height:30px; border-radius:9px; background:var(--blue); color:#fff; font-size:.85rem; }
nav { display:flex; flex-wrap:wrap; gap:2px; }
nav a { color:var(--muted); padding:7px 13px; border-radius:9px; font-weight:500; font-size:.93rem; transition:background .15s, color .15s; }
nav a i { font-size:.85em; margin-right:4px; opacity:.85; }
nav a:hover { background:var(--soft); color:var(--ink); text-decoration:none; }
nav a.on { background:var(--blue-soft); color:var(--blue); font-weight:600; }
.badge { display:inline-block; min-width:19px; padding:0 6px; margin-left:4px; border-radius:999px; font-size:.72rem; line-height:19px; text-align:center; color:#fff; font-weight:600; }
.badge.crit { background:var(--loss); } .badge.warn { background:var(--warn); }
.banner { display:block; padding:10px 32px; font-weight:500; font-size:.93rem; }
.banner:hover { text-decoration:none; }
.banner.crit { background:var(--loss-soft); color:var(--loss); } .banner.warn { background:var(--warn-soft); color:var(--warn); }
.banner .more { float:right; text-decoration:underline; }

/* Page */
main { max-width:max(1240px, 88vw); margin:0 auto; padding:36px 32px 8px; }
h1 { font-size:1.75rem; line-height:1.2; letter-spacing:-.025em; font-weight:700; color:var(--ink); margin:0 0 8px; }
h3 { font-size:1.08rem; letter-spacing:-.01em; font-weight:650; color:var(--ink); margin:40px 0 6px; }
.lead { font-size:1.02rem; color:var(--muted); margin:0 0 22px; max-width:900px; }
.explain { color:var(--muted); font-size:.92rem; margin:4px 0 14px; max-width:900px; }
.crumb { margin:0 0 10px; font-size:.88rem; }
.muted { color:var(--muted); } .blue { color:var(--blue); }
.gain { color:var(--gain); font-weight:600; } .loss { color:var(--loss); font-weight:600; }

/* Cartes */
.grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(210px, 1fr)); gap:16px; }
.card { background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:18px 20px; box-shadow:var(--shadow); }
.card h2 { font-size:.74rem; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); margin:0 0 8px; font-weight:600; }
.card h2 i { color:var(--blue); margin-right:3px; }
.val { font-size:1.55rem; font-weight:700; letter-spacing:-.02em; color:var(--ink); font-variant-numeric:tabular-nums; }
.val.loss { color:var(--loss); }
.hint { color:var(--muted); font-size:.86rem; margin-top:3px; }
.card > .bar { height:6px; background:var(--soft); border-radius:999px; margin:12px 0 6px; overflow:hidden; }
.card > .bar span { display:block; height:100%; border-radius:999px; background:var(--blue); }
.card > .bar span.warn { background:var(--warn); } .card > .bar span.crit { background:var(--loss); }

/* Encadré de synthèse */
.duel { display:flex; flex-wrap:wrap; align-items:center; gap:16px 44px; background:#fff; border:1px solid var(--line); border-radius:18px;
        padding:22px 26px; margin:0 0 18px; box-shadow:var(--shadow); }
.duel .k { font-size:.74rem; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); font-weight:600; margin-bottom:2px; }
.duel .k i { color:var(--blue); margin-right:3px; }
.duel .v { font-size:2rem; font-weight:700; letter-spacing:-.03em; line-height:1.25; color:var(--ink); font-variant-numeric:tabular-nums; }
.duel .v.sm { font-size:1.15rem; letter-spacing:-.01em; line-height:2.15; }
.duel .vs { color:var(--muted); font-size:.9rem; }
.duel .res { margin-left:auto; text-align:right; }
.note { background:var(--blue-soft); color:var(--text); padding:14px 18px; border-radius:12px; margin:0 0 22px; max-width:980px; font-size:.93rem; }
.note i { color:var(--blue); margin-right:4px; }

/* Onglets */
.tabs { display:flex; flex-wrap:wrap; gap:6px; margin:14px 0 18px; align-items:center; }
.tabs a { padding:6px 15px; border:1px solid var(--line); border-radius:999px; color:var(--text); font-weight:500; font-size:.9rem; background:#fff; transition:all .15s; }
.tabs a:hover { border-color:#c9d0da; text-decoration:none; }
.tabs a.on { background:var(--ink); border-color:var(--ink); color:#fff; }
.tabs .sep { width:14px; }

/* Tableaux */
table { width:100%; border-collapse:collapse; }
th { text-align:left; font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); font-weight:600;
     border-bottom:1px solid var(--line); padding:10px 12px; }
td { padding:11px 12px; border-bottom:1px solid var(--line); }
tbody tr { transition:background .12s; } tbody tr:hover { background:var(--soft); }
.r { text-align:right; font-variant-numeric:tabular-nums; }
.sub { font-size:.8rem; color:var(--muted); font-weight:400; margin-top:1px; }
.sub.warnc { color:var(--warn); margin-top:5px; }
.why { font-size:.82rem; color:var(--muted); min-width:260px; }
.tag { font-size:.72rem; background:var(--blue-soft); color:var(--blue); padding:2px 9px; border-radius:999px; font-weight:600; margin-left:6px; }

/* États et bilans */
.st { display:inline-flex; align-items:center; gap:6px; padding:3px 11px; border-radius:999px; font-weight:600; font-size:.84rem; white-space:nowrap; line-height:1.5; }
.st.ok { color:var(--gain); background:var(--gain-soft); } .st.warn { color:var(--warn); background:var(--warn-soft); }
.st.crit { color:var(--loss); background:var(--loss-soft); } .st.muted { color:var(--muted); background:var(--soft); }
.pill { display:inline-block; padding:2px 10px; border-radius:999px; font-weight:600; font-size:.84rem; }
.pill.up { color:var(--gain); background:var(--gain-soft); } .pill.down { color:var(--loss); background:var(--loss-soft); }

/* Classement en barres */
.legend { color:var(--muted); font-size:.86rem; margin:20px 0 6px; }
.k-mkt, .k-zero { display:inline-block; height:14px; vertical-align:middle; margin-right:5px; }
.k-mkt { border-left:3px solid var(--ink); } .k-zero { border-left:1px solid #9aa3af; }
.rank { table-layout:fixed; }
.rank td { vertical-align:middle; }
.rank td.r, .rank th { white-space:nowrap; }
.rank .c-n { width:38px; } .rank .c-name { width:23%; } .rank .c-res { width:100px; } .rank .c-diff { width:124px; }
.rank .c-bilan { width:268px; } .rank .c-tr { width:84px; } .rank .c-win { width:100px; } .rank .c-pos { width:250px; }
.rank .big { font-size:1.02rem; }
.rank th.barcell { text-align:center; }
.rank a b { color:var(--blue); }
.rank tr.marche td { background:var(--soft); border-top:1px solid #d5dae2; border-bottom:1px solid #d5dae2; }
.rank tr.marche:hover td { background:var(--soft); }
.rank tr.reference td { color:var(--muted); } .rank tr.reference a b { color:var(--muted); }
.barcell { padding-left:0; padding-right:0; }
.track { position:relative; height:22px; }
.track .bar { position:absolute; top:5px; height:12px; border-radius:6px; }
.bar.up { background:var(--gain); } .bar.down { background:var(--loss); } .bar.mk { background:var(--ink); } .bar.ref { background:#a8b0bd; }
.track .zero { position:absolute; top:-11px; bottom:-11px; width:1px; background:#cfd5de; }
.track .mkt { position:absolute; top:-11px; bottom:-11px; width:0; border-left:3px solid var(--ink); }

/* Divers */
.recipe { margin:10px 0 0; padding-left:20px; max-width:980px; } .recipe li { margin:7px 0; }
.chart { height:480px; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); }
.chart.mid { height:340px; } .chart.small { height:260px; }
button { font:inherit; font-weight:600; font-size:.86rem; padding:6px 14px; border:0; background:var(--ink); color:#fff; border-radius:9px; cursor:pointer; }
button:hover { background:var(--blue); }
.empty { color:var(--muted); padding:14px 0; } .empty i { color:var(--gain); }
footer { max-width:max(1240px, 88vw); margin:0 auto; padding:36px 32px 28px; color:#9aa3af; font-size:.8rem; }
@media (max-width:900px) { table { display:block; overflow-x:auto; } .rank { table-layout:auto; } main { padding:22px 16px; } .top { padding:10px 16px; gap:8px 16px; } }
.funnel td { vertical-align:middle; } .funnel .fn-name { width:42%; } .funnel .fn-bar { width:46%; } .funnel .big { width:12%; }
.rank.fin .c-name2, .rank .c-name2 { width:30%; } .rank.fin .c-ver { width:150px; }
.rank.fin th { white-space:normal; line-height:1.3; }
.unit { font-size:1rem; font-weight:600; color:var(--muted); }
.filters { display:flex; flex-wrap:wrap; gap:12px 20px; margin:0 0 20px; }
.filters label { font-size:.86rem; color:var(--muted); font-weight:500; }
.filters select { font:inherit; font-size:.9rem; margin-left:6px; padding:6px 10px; border:1px solid var(--line); border-radius:9px; background:#fff; color:var(--ink); }
/* Arène */
.strip { display:flex; flex-wrap:wrap; gap:10px 36px; margin:0 0 16px; padding:14px 20px; border:1px solid var(--line); border-radius:14px; background:#fff; box-shadow:var(--shadow); }
.strip > div { display:flex; flex-direction:column; }
.strip .k { font-size:.7rem; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); font-weight:600; } .strip .k i { color:var(--blue); }
.strip b { font-size:1.15rem; color:var(--ink); font-variant-numeric:tabular-nums; } .strip .muted { font-size:.82rem; }
.panel { background:#fff; border:1px solid var(--line); border-radius:18px; padding:20px 22px 22px; box-shadow:var(--shadow); margin:8px 0 10px; }
.panel h3 { margin:0 0 2px; }
.arena-grid { display:grid; grid-template-columns:minmax(0, 1fr) 300px; gap:22px; }
.arena-panel .chart { height:520px; box-shadow:none; }
.arena-grid > * { min-width:0; }
.legend { display:flex; flex-direction:column; border-left:1px solid var(--line); padding-left:18px; min-height:0; }
.lg-head { display:flex; flex-direction:column; gap:8px; padding-bottom:10px; border-bottom:1px solid var(--line); }
.lg-head b { font-size:.95rem; }
.lg-btns { display:flex; gap:6px; flex-wrap:wrap; }
.lg-btns button { background:var(--soft); color:var(--ink); border:1px solid var(--line); font-weight:500; font-size:.78rem; padding:4px 10px; border-radius:999px; }
.lg-btns button:hover { background:var(--ink); color:#fff; border-color:var(--ink); }
.lg-list { overflow-y:auto; max-height:520px; padding-right:4px; }
.lg-list ul { list-style:none; margin:0; padding:0; }
.lg-group { font-size:.68rem; text-transform:uppercase; letter-spacing:.07em; color:var(--muted); font-weight:700; margin:12px 0 4px; }
.lg-row { display:flex; align-items:center; border-radius:9px; transition:background .12s; }
.lg-row:hover { background:var(--soft); }
.lg-row label { flex:1; display:flex; align-items:center; gap:9px; padding:6px 6px; cursor:pointer; min-width:0; font-size:.88rem; }
.lg-row input { position:absolute; opacity:0; pointer-events:none; }
.lg-row .sw { flex:none; width:14px; height:14px; border-radius:4px; background:var(--c); border:2px solid var(--c); transition:background .12s; }
.lg-row .sw.ref { background:repeating-linear-gradient(90deg, var(--c) 0 3px, #fff 3px 5px); }
.lg-row .sw.mk { background:repeating-linear-gradient(90deg, #0b1220 0 4px, #fff 4px 7px); border-color:#0b1220; }
.lg-row.off .sw, .lg-row input:not(:checked) + .sw { background:#fff; }
.lg-row.off .nm, .lg-row.off .rt { color:#b4bcc7; }
.lg-row .nm { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--ink); font-weight:500; }
.lg-row .rt { font-size:.82rem; font-variant-numeric:tabular-nums; white-space:nowrap; }
.lg-row .go { flex:none; color:#9aa3af; padding:6px 8px; font-size:.75rem; } .lg-row .go:hover { color:var(--blue); }
h3.sec { margin-top:30px; }
.cards { display:grid; grid-template-columns:repeat(auto-fill, minmax(360px, 1fr)); gap:12px; align-items:start; }
.scard { position:relative; background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow); overflow:hidden; transition:box-shadow .15s; scroll-margin-top:90px; }
.scard::before { content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:var(--c); }
.scard:hover { box-shadow:0 2px 6px rgba(16,24,40,.06), 0 10px 26px rgba(16,24,40,.08); }
.scard summary { list-style:none; display:grid; grid-template-columns:minmax(0, 1fr) auto auto; grid-template-areas:"who ret chev" "st st st"; gap:6px 12px; align-items:center; padding:12px 16px 12px 20px; cursor:pointer; }
.scard summary::-webkit-details-marker { display:none; }
.scard .who { grid-area:who; min-width:0; }
.scard .kind { font-size:.66rem; text-transform:uppercase; letter-spacing:.07em; color:var(--muted); font-weight:600; }
.scard h2 { font-size:1rem; margin:1px 0 0; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.scard .ret { grid-area:ret; font-size:1.25rem; font-weight:700; letter-spacing:-.02em; font-variant-numeric:tabular-nums; }
.scard summary .st { grid-area:st; justify-self:start; font-size:.78rem; padding:2px 10px; }
.scard .chev { grid-area:chev; color:#9aa3af; font-size:.8rem; transition:transform .15s; }
.scard[open] .chev { transform:rotate(180deg); }
.scard .det { padding:2px 18px 16px 20px; border-top:1px solid var(--line); }
.scard .det > .sub { margin:10px 0 4px; }
.scard .row { display:flex; flex-wrap:wrap; gap:6px 14px; align-items:center; margin-top:8px; font-size:.84rem; }
.scard .facts { color:var(--muted); } .scard .facts i { margin-right:3px; }
.det h4 { font-size:.74rem; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); margin:16px 0 6px; }
.det .recipe { font-size:.88rem; } .det .recipe li { margin:4px 0; }
.kv { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:4px 18px; font-size:.88rem; }
.kv li { display:flex; justify-content:space-between; gap:10px; border-bottom:1px dashed var(--line); padding:3px 0; } .kv span { color:var(--muted); }
.tlist { list-style:none; padding:0; margin:0; font-size:.86rem; }
.tlist li { display:flex; flex-wrap:wrap; gap:6px 14px; align-items:center; padding:7px 0; border-bottom:1px solid var(--line); }
.tlist li b:last-child { margin-left:auto; }
button.danger { margin-top:16px; background:#fff; color:var(--loss); border:1px solid #f3c4c4; }
button.danger:hover { background:var(--loss); color:#fff; }
.stopped { margin-top:30px; }
.stopped summary { cursor:pointer; color:var(--blue); font-weight:600; font-size:.88rem; list-style:none; }
.stopped summary::-webkit-details-marker { display:none; }
.stopped summary::before { content:"▸ "; } .stopped[open] > summary::before { content:"▾ "; }
@media (max-width:980px) { .arena-panel .chart { height:360px; } .panel { padding:16px 14px; } .cards { grid-template-columns:1fr; } .arena-grid { grid-template-columns:1fr; } .legend { border-left:0; padding-left:0; border-top:1px solid var(--line); padding-top:12px; } .lg-list { max-height:none; } }
.rob { margin-bottom:18px; } .rob-head { display:flex; flex-wrap:wrap; justify-content:space-between; gap:6px 20px; align-items:baseline; margin-bottom:12px; }
.rob-head h3 { margin:0; } .rob-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(380px, 1fr)); gap:16px; }
.rob-card { border:1px solid var(--line); border-radius:14px; padding:14px 16px; }
.rob-card .kind { font-size:.72rem; text-transform:uppercase; letter-spacing:.07em; color:var(--muted); font-weight:700; }
.rob-card .big { font-size:1.6rem; font-weight:700; letter-spacing:-.02em; margin:2px 0; }
.rob-card .kv { margin-top:10px; grid-template-columns:1fr; }
.years { display:grid; grid-template-columns:repeat(auto-fill, minmax(86px, 1fr)); gap:6px; margin-top:12px; }
.yr { display:flex; flex-direction:column; align-items:center; padding:6px 4px; background:var(--soft); border-radius:9px; font-size:.82rem; }
.yr .muted { font-size:.72rem; }
.rank.det .c-det { width:30%; }
/* Portefeuille (piste 2) */
.pf-funnel { display:grid; grid-template-columns:repeat(5, minmax(0, 1fr)); gap:10px; margin:6px 0 26px; }
.pf-funnel div { border:1px solid var(--line); border-radius:12px; padding:12px 14px; min-width:0; }
.pf-funnel b { display:block; font-size:1.45rem; letter-spacing:-.02em; }
.pf-funnel span { color:var(--muted); font-size:.82rem; }
.pf-funnel div:last-child { border-color:var(--gain); background:#ecfdf5; }
.pf-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:14px; margin-bottom:8px; }
.pf-grid > * { min-width:0; }
.pf-card .hint { color:var(--muted); font-size:.82rem; }
.pf-legend { display:flex; flex-wrap:wrap; gap:6px 18px; font-size:.86rem; margin:4px 0 8px; }
.pf-legend span::before { content:""; display:inline-block; width:14px; height:3px; border-radius:2px; background:var(--c); vertical-align:middle; margin-right:6px; }
.pf-fins { display:flex; flex-direction:column; gap:8px; margin-bottom:10px; }
.pf-fin { border:1px solid var(--line); border-radius:12px; padding:0 16px; }
.pf-fin summary { display:flex; align-items:center; gap:14px; padding:12px 0; cursor:pointer; list-style:none; }
.pf-fin summary::-webkit-details-marker { display:none; }
.pf-fin .rk { font-weight:700; color:var(--muted); width:34px; flex:none; }
.pf-fin .nm { flex:1; min-width:0; font-weight:600; }
.pf-fin .nm .sub { display:block; font-weight:400; }
.pf-fin .verdict { flex:none; font-size:.85rem; font-weight:600; }
.pf-fin.ok { border-color:var(--gain); } .pf-fin.ok .verdict { color:var(--gain); } .pf-fin.ko .verdict { color:var(--muted); }
.pf-cols { display:grid; grid-template-columns:1fr 1fr; gap:6px 24px; }
.pf-cols > div { min-width:0; } .pf-cols .kv { grid-template-columns:1fr; }
.pf-cols .kind { font-size:.72rem; text-transform:uppercase; letter-spacing:.07em; color:var(--muted); font-weight:700; margin-bottom:4px; }
@media (max-width:980px) { .pf-funnel { grid-template-columns:repeat(2, minmax(0, 1fr)); } .pf-cols { grid-template-columns:1fr; } }
/* Repères de lecture communs */
.hyp { display:flex; flex-wrap:wrap; gap:6px 8px; margin:0 0 18px; }
.hyp span { background:var(--soft); border:1px solid var(--line); border-radius:999px; padding:4px 11px; font-size:.8rem; color:var(--text); }
.hyp i { color:var(--blue); margin-right:3px; } .hyp span[title] { cursor:help; }
.statcard { border:1px solid var(--line); border-top:4px solid var(--c); border-radius:14px; padding:14px 16px; min-width:0; }
.statcard .kind { font-size:.72rem; text-transform:uppercase; letter-spacing:.07em; color:var(--muted); font-weight:700; }
.statcard .big { font-size:1.6rem; font-weight:700; letter-spacing:-.02em; margin-top:2px; }
.statcard .per { font-size:.82rem; color:var(--muted); }
.statcard .tot { font-size:.88rem; margin:8px 0 6px; padding:6px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.statcard dl { display:grid; grid-template-columns:1fr auto; gap:3px 12px; margin:0; font-size:.86rem; }
.statcard dt { color:var(--muted); } .statcard dd { margin:0; text-align:right; font-weight:600; white-space:nowrap; }
.statcard .note-s { font-size:.8rem; color:var(--muted); margin-top:8px; }
.pc { color:var(--muted); font-weight:500; font-size:.92em; }
.cmp { display:grid; grid-template-columns:repeat(auto-fit, minmax(230px, 1fr)); gap:14px; margin-bottom:10px; }
.verdict-box { display:flex; gap:12px; align-items:flex-start; border-radius:12px; padding:12px 16px; margin:0 0 18px; max-width:980px; font-size:.93rem; }
.verdict-box.good { background:var(--gain-soft); } .verdict-box.mixed { background:var(--warn-soft); } .verdict-box.bad { background:var(--loss-soft); }
.verdict-box i { font-size:1.2rem; margin-top:2px; } .verdict-box.good i { color:var(--gain); } .verdict-box.mixed i { color:var(--warn); } .verdict-box.bad i { color:var(--loss); }
.verdict-box ul { margin:4px 0 0; padding-left:18px; }
.pf-funnel.f7 { grid-template-columns:repeat(6, minmax(0, 1fr)); }
@media (max-width:980px) { .pf-funnel.f7 { grid-template-columns:repeat(2, minmax(0, 1fr)); } }
table.mini { width:100%; border-collapse:collapse; font-size:.88rem; margin-top:6px; }
table.mini th { font-weight:600; color:var(--muted); text-align:right; padding:4px 6px; font-size:.78rem; }
table.mini td { text-align:right; padding:5px 6px; border-top:1px solid var(--line); white-space:nowrap; }
table.mini td:first-child, table.mini th:first-child { text-align:left; }
.pf-fin .cmp { margin-top:4px; }
.statcard dl { grid-template-columns:auto minmax(0, 1fr); }
.statcard dt { white-space:nowrap; padding:2px 0; }
.statcard dd { padding:2px 0; } .statcard dd .pc { display:block; font-size:.78rem; line-height:1.1; }
.statcard .tot .pc { white-space:nowrap; }
.statcard dd { white-space:normal; }
/* Bilan : capital de départ → capital d'arrivée */
.b-head { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px 16px; margin-top:6px; }
.b-head h3 { margin:0; } .b-head .tabs { margin:0; }
.b-period { color:var(--muted); font-size:.88rem; margin:8px 0 12px; } .b-period b { color:var(--text); }
.bilan { display:flex; flex-direction:column; gap:10px; margin-bottom:14px; }
.brow { display:grid; grid-template-columns:minmax(0, 1.1fr) minmax(0, 1.5fr) minmax(0, 1.6fr); gap:6px 20px; align-items:center;
        border:1px solid var(--line); border-left:6px solid var(--c); border-radius:14px; padding:14px 18px; background:#fff; }
.brow.mk { background:var(--soft); }
.b-who { min-width:0; } .b-who b { display:block; font-size:1rem; } .b-who span { color:var(--muted); font-size:.8rem; }
.b-cap { display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 10px; font-size:1.05rem; }
.b-cap .from { color:var(--muted); } .b-cap i { color:var(--muted); font-size:.9rem; }
.b-cap .to { font-size:1.55rem; font-weight:700; letter-spacing:-.02em; } .b-cap .b-pct { font-weight:600; }
.b-tags { display:flex; flex-wrap:wrap; gap:6px; }
.tg { font-size:.8rem; font-weight:600; padding:3px 10px; border-radius:999px; white-space:nowrap; }
.tg small { font-weight:500; opacity:.85; }
.tg.yes { background:var(--gain-soft); color:var(--gain); } .tg.no { background:var(--loss-soft); color:var(--loss); }
.tg.warn { background:var(--warn-soft); color:var(--warn); } .tg.ref { background:#e9ecf1; color:var(--text); }
.b-risk { grid-column:1 / -1; display:flex; flex-wrap:wrap; gap:4px 22px; font-size:.84rem; color:var(--muted); border-top:1px dashed var(--line); padding-top:8px; }
details.more { border:1px solid var(--line); border-radius:12px; padding:0 16px; margin-bottom:8px; }
details.more > summary { padding:12px 0; cursor:pointer; font-weight:600; list-style:none; }
details.more > summary::-webkit-details-marker { display:none; }
details.more > summary i { color:var(--blue); margin-right:6px; width:18px; }
details.more[open] { padding-bottom:14px; }
.fin-list { display:flex; flex-direction:column; gap:8px; }
.fin { border:1px solid var(--line); border-radius:10px; padding:10px 14px; } .fin.ok { border-color:var(--gain); }
.fin-h { display:flex; gap:10px; align-items:baseline; } .fin-h .rk { color:var(--muted); font-weight:700; } .fin-h b { flex:1; min-width:0; }
.fin-h .verdict { font-size:.82rem; font-weight:600; white-space:nowrap; } .fin.ok .verdict { color:var(--gain); } .fin.ko .verdict { color:var(--muted); }
.fin-b { display:flex; flex-direction:column; gap:2px; font-size:.88rem; margin-top:6px; }
@media (max-width:980px) { .brow { grid-template-columns:1fr; } details.more .pf-funnel { grid-template-columns:repeat(2, minmax(0, 1fr)) !important; } }
/* Base de connaissances */
.kb-build h3 { margin-top:0; } .kb-build h3 i { color:var(--blue); margin-right:6px; }
.kb-two { display:grid; grid-template-columns:repeat(auto-fit, minmax(320px, 1fr)); gap:18px; margin:6px 0 10px; }
.kb-two > div { min-width:0; border:1px solid var(--line); border-radius:14px; padding:14px 16px; }
.kb-h { font-weight:700; margin-bottom:6px; } .kb-h.do { color:var(--gain); } .kb-h.dont { color:var(--loss); }
.kb-two ol { margin:0; padding-left:20px; } .kb-two li { margin:8px 0; line-height:1.45; } .kb-two a { color:var(--text); font-weight:500; }
.kb-two a:hover { color:var(--blue); }
.kb-conf { display:inline-block; font-size:.68rem; font-weight:700; padding:1px 8px; border-radius:999px; margin-left:6px; white-space:nowrap; vertical-align:middle; }
.kb-conf.hi { background:var(--gain-soft); color:var(--gain); } .kb-conf.mid { background:var(--warn-soft); color:var(--warn); } .kb-conf.lo { background:#eef1f5; color:var(--muted); }
.kb-rule { display:inline-block; font-size:.68rem; font-weight:700; padding:1px 8px; border-radius:999px; margin-left:4px; vertical-align:middle; }
.kb-rule.do { border:1px solid var(--gain); color:var(--gain); } .kb-rule.dont { border:1px solid var(--loss); color:var(--loss); }
.kb-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(420px, 1fr)); gap:14px; margin-bottom:8px; }
.kb-card { border:1px solid var(--line); border-radius:14px; padding:12px 14px; min-width:0; }
.kb-card .kind { font-size:.72rem; text-transform:uppercase; letter-spacing:.07em; color:var(--muted); font-weight:700; margin-bottom:4px; }
.kb-t { width:100%; border-collapse:collapse; font-size:.86rem; }
.kb-t th { font-size:.7rem; font-weight:600; color:var(--muted); text-align:right; padding:3px 6px; }
.kb-t td { padding:6px; border-top:1px solid var(--line); text-align:right; white-space:nowrap; }
.kb-t th:first-child, .kb-t td:first-child { text-align:left; white-space:normal; }
.kb-t.wide td, .kb-t.wide th { padding:7px 10px; }
.kb-bar { display:inline-flex; width:90px; height:8px; background:#eef1f5; border-radius:4px; overflow:hidden; vertical-align:middle; }
.kb-bar i { display:block; height:100%; } .kb-bar .g, .kb-key.g { background:var(--gain); } .kb-bar .a, .kb-key.a { background:#f5b041; }
.kb-key { display:inline-block; width:12px; height:8px; border-radius:3px; vertical-align:middle; }
.kb-fams { display:flex; flex-direction:column; gap:8px; }
.kb-fam { border:1px solid var(--line); border-left:5px solid #cbd2dc; border-radius:10px; padding:9px 12px; }
.kb-fam.s3 { border-left-color:var(--gain); } .kb-fam.s2 { border-left-color:#f5b041; } .kb-fam.s1 { border-left-color:#e2a59b; } .kb-fam.s0 { border-left-color:var(--loss); }
.kb-fam-h { display:flex; gap:10px; align-items:baseline; flex-wrap:wrap; } .kb-fam-h .sc { font-weight:700; color:var(--muted); } .kb-fam-h .muted { font-size:.78rem; }
.kb-fam-b { display:flex; flex-wrap:wrap; gap:3px 18px; font-size:.84rem; margin:4px 0; } .kb-fam-b .ok { color:var(--gain); } .kb-fam-b .ko { color:var(--loss); }
.kb-tags { display:flex; flex-wrap:wrap; gap:5px; } .kb-tags span { font-size:.72rem; background:var(--soft); border:1px solid var(--line); border-radius:999px; padding:1px 8px; color:var(--muted); }
.kb-th { margin:22px 0 8px; font-size:1rem; }
.kb-list { display:flex; flex-direction:column; gap:8px; }
.kb-lesson { border:1px solid var(--line); border-radius:12px; padding:0 16px; scroll-margin-top:80px; transition:box-shadow .3s; }
.kb-lesson.hit { box-shadow:0 0 0 3px var(--blue-soft), 0 0 0 4px var(--blue); }
.kb-lesson summary { padding:12px 0; cursor:pointer; list-style:none; } .kb-lesson summary::-webkit-details-marker { display:none; }
.kb-lesson summary b { font-size:.96rem; } .kb-lesson summary .c { display:block; color:var(--muted); font-size:.88rem; margin-top:3px; line-height:1.45; }
.kb-lesson dl { margin:0 0 14px; padding-top:10px; border-top:1px dashed var(--line); display:grid; grid-template-columns:170px minmax(0, 1fr); gap:8px 16px; font-size:.88rem; }
.kb-lesson dt { color:var(--muted); font-weight:600; } .kb-lesson dd { margin:0; line-height:1.5; }
@media (max-width:980px) { .kb-grid { grid-template-columns:1fr; } .kb-lesson dl { grid-template-columns:1fr; gap:2px 0; } .kb-lesson dd { margin-bottom:8px; } .kb-t td { white-space:normal; } .kb-bar { width:60px; } }
/* Page Réel */
.net { font-size:.72rem; vertical-align:middle; padding:3px 10px; border-radius:999px; letter-spacing:.05em; font-weight:700; }
.net.testnet { background:var(--blue-soft); color:var(--blue); } .net.mainnet { background:var(--loss); color:#fff; }
.flash { padding:11px 16px; border-radius:11px; font-weight:500; max-width:980px; } .flash i { margin-right:5px; }
.flash.ok { background:var(--gain-soft); color:#066e4c; } .flash.ko { background:var(--loss-soft); color:var(--loss); }
.panel.narrow { max-width:460px; }
.form { display:flex; flex-direction:column; gap:12px; max-width:420px; } .form.wide { max-width:640px; }
.form label { display:flex; flex-direction:column; gap:4px; font-size:.86rem; color:var(--muted); font-weight:500; }
.form input, .form select { font:inherit; padding:8px 11px; border:1px solid #cfd5de; border-radius:9px; color:var(--ink); background:#fff; }
.form input:focus, .form select:focus { outline:2px solid var(--blue); outline-offset:1px; }
.form button { align-self:flex-start; padding:9px 18px; }
.grid2 { display:grid; grid-template-columns:minmax(300px, 380px) minmax(0, 1fr); gap:16px; margin:16px 0; } .grid2 > * { min-width:0; margin:0; }
.kv.one { grid-template-columns:1fr; margin-top:10px; } .mono { font-family:ui-monospace, Menlo, monospace; font-size:.8rem; word-break:break-all; }
.kv b.crit { color:#fff; background:var(--loss); padding:0 8px; border-radius:6px; }
.btns { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; align-items:center; }
button.ghost { background:#fff; color:var(--ink); border:1px solid #cfd5de; } button.ghost:hover { background:var(--soft); color:var(--ink); }
.fold { background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:0 18px; margin:12px 0; }
.fold > summary { cursor:pointer; font-weight:600; color:var(--ink); padding:13px 0; list-style:none; } .fold > summary::-webkit-details-marker { display:none; }
.fold > summary::before { content:"▸ "; color:var(--muted); } .fold[open] > summary::before { content:"▾ "; }
.fold[open] { padding-bottom:16px; } .fold h4 { margin:18px 0 4px; font-size:.95rem; }
.past { border-top:1px solid var(--line); padding-top:10px; margin-top:10px; } .past .duel { box-shadow:none; }
.journal code { font-size:.74rem; word-break:break-all; } .journal li b:last-child { margin-left:0; }
.killed { display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between; background:var(--loss); color:#fff; padding:14px 18px; border-radius:var(--radius); margin:0 0 16px; }
.killed b { color:#fff; } .killed button { background:#fff; color:var(--loss); }
.killbar { display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-top:26px; padding-top:18px; border-top:1px solid var(--line); }
button.kill { background:var(--loss); font-size:.95rem; padding:10px 20px; } button.kill:hover { background:#991b1b; } button.kill:disabled { opacity:.4; cursor:default; }
dialog { border:0; border-radius:16px; padding:22px 24px; max-width:520px; width:calc(100% - 32px); box-shadow:0 20px 60px rgba(16,24,40,.3); }
dialog::backdrop { background:rgba(11,18,32,.45); } dialog h3 { margin-top:0; }
.choice { display:grid; gap:10px; margin:14px 0; }
.choice button { display:flex; flex-direction:column; align-items:flex-start; gap:2px; text-align:left; padding:12px 16px; background:var(--soft); color:var(--ink); border:1px solid var(--line); }
.choice button b { font-size:.98rem; } .choice button span { font-weight:400; color:var(--muted); }
.choice button:hover { background:var(--blue-soft); border-color:var(--blue); } .choice button.red:hover { background:var(--loss-soft); border-color:var(--loss); }
@media (max-width:900px) { .grid2 { grid-template-columns:1fr; } }

/* Réel : poste de trading, portefeuille */
main:has(#fiche) { max-width:max(1240px, 94vw); }
.rhead { display:flex; flex-wrap:wrap; align-items:center; gap:6px 26px; margin-bottom:14px; } .rhead h1 { margin:0; } .rhead .tabs { margin:0; }
.rnow { margin-left:auto; font-size:.9rem; } .rnow a { color:var(--text); }
.dot { display:inline-block; width:9px; height:9px; border-radius:50%; background:#c3cad5; margin-right:4px; }
.dot.live { background:var(--gain); box-shadow:0 0 0 4px var(--gain-soft); }
a.btn { display:inline-block; font-weight:600; font-size:.86rem; padding:6px 14px; background:var(--ink); color:#fff; border-radius:9px; }
a.btn:hover { background:var(--blue); text-decoration:none; }
a.btn.ghost { background:#fff; color:var(--ink); border:1px solid #cfd5de; } a.btn.ghost:hover { background:var(--soft); }
button:disabled { opacity:.4; cursor:default; } button:disabled:hover { background:var(--ink); }
.mode { font-size:.68rem; letter-spacing:.06em; font-weight:700; padding:3px 9px; border-radius:999px; vertical-align:middle; white-space:nowrap; }
.mode.live { background:var(--ink); color:#fff; } .mode.view { background:var(--soft); color:var(--muted); border:1px solid var(--line); }
.pbar { display:flex; flex-wrap:wrap; align-items:center; gap:14px 38px; padding:14px 20px; border:1px solid var(--line); border-radius:16px; background:#fff;
        box-shadow:var(--shadow); margin-bottom:12px; }
.pbar .k { font-size:.7rem; text-transform:uppercase; letter-spacing:.07em; color:var(--muted); font-weight:600; }
.pbar b { font-size:1.12rem; font-variant-numeric:tabular-nums; } .pbar b.gain { color:var(--gain); } .pbar b.loss { color:var(--loss); } .pbar b.muted { color:var(--muted); }
.pbar .sub { font-size:.8rem; color:var(--muted); max-width:340px; }
.pbar .nm { font-size:1.25rem; font-weight:700; color:var(--ink); letter-spacing:-.01em; }
.pb-act { margin-left:auto; display:flex; flex-wrap:wrap; gap:8px; align-items:center; } .pb-act button.danger { margin-top:0; }
.pgrid { display:grid; grid-template-columns:minmax(0, 1fr) 350px; gap:14px; align-items:start; } .pgrid > * { min-width:0; }
.pchart { margin:0; padding:14px 16px 12px; } .pchart .chart { height:600px; box-shadow:none; }
.pside { display:flex; flex-direction:column; gap:12px; } .pside .panel, .pside .fold { margin:0; } .pside .panel { padding:14px 16px 16px; }
.pside h3 { font-size:.95rem; margin:0 0 6px; } .pside h3 i { color:var(--blue); margin-right:4px; } .pside p { margin:4px 0 6px; font-size:.9rem; }
.ptools { display:flex; flex-wrap:wrap; align-items:center; gap:8px 18px; margin-bottom:10px; font-size:.86rem; }
.ptools label { color:var(--text); cursor:pointer; } .ptools input { vertical-align:-2px; margin-right:3px; }
.seg { display:inline-flex; flex-wrap:wrap; gap:4px; }
.seg button { background:#fff; color:var(--text); border:1px solid var(--line); font-weight:500; padding:5px 13px; border-radius:999px; }
.seg button:hover { background:var(--soft); color:var(--ink); } .seg button.on { background:var(--ink); border-color:var(--ink); color:#fff; }
.seg button span { opacity:.7; font-weight:400; }
.ohlc { margin-left:auto; font-variant-numeric:tabular-nums; color:var(--muted); white-space:pre; font-size:.84rem; }
.plegend { display:flex; flex-wrap:wrap; gap:4px 20px; font-size:.8rem; color:var(--text); margin-top:9px; } .plegend span:last-child { margin-left:auto; }
.pmk { display:inline-block; width:0; height:0; border-left:5px solid transparent; border-right:5px solid transparent; border-bottom:9px solid; margin-right:3px; }
.pmk.real { color:#0b1220; } .pmk.sim { color:#2563eb; } .pmk.hist { color:#94a3b8; }
.ln { display:inline-block; width:18px; height:0; border-top:2px solid; vertical-align:middle; margin:0 3px 0 2px; } .ln.e50 { color:#f59e0b; } .ln.e200 { color:#7c3aed; margin-left:10px; }
.ptabs { margin:16px 0 0; } .ppane { margin-top:10px; } .ppane h4 { margin:14px 0 4px; font-size:.92rem; } .ppane h4:first-child { margin-top:0; }
.ppane .kv { margin-bottom:12px; } .kv b.gain { color:var(--gain); } .kv b.loss { color:var(--loss); } .kv b.muted { color:var(--muted); font-weight:500; }
.pfolio { display:grid; grid-template-columns:repeat(auto-fill, minmax(380px, 1fr)); gap:16px; margin-top:6px; }
.pcard { border:1px solid var(--line); border-radius:18px; padding:18px 20px; background:#fff; box-shadow:var(--shadow); display:flex; flex-direction:column; gap:10px; }
.pcard.running { border-color:var(--ink); box-shadow:0 0 0 2px var(--ink), var(--shadow); }
.pcard header { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; } .pcard h2 { margin:0; font-size:1.2rem; }
.pcard .sub { color:var(--muted); font-size:.86rem; } .pcard .k { font-size:.72rem; color:var(--muted); }
.pcard .v { font-size:1.15rem; font-weight:700; color:var(--ink); font-variant-numeric:tabular-nums; } .pcard .v span { font-size:.9rem; }
.pc-figs { display:flex; justify-content:space-between; align-items:flex-end; gap:12px; } .pc-figs .k, .pc-figs .v { white-space:nowrap; }
.spark { width:96px; height:44px; flex:none; } .spark polyline { fill:none; stroke:var(--blue); stroke-width:1.6; vector-effect:non-scaling-stroke; }
.spark line { stroke:#c3cad5; stroke-dasharray:3 3; vector-effect:non-scaling-stroke; }
.pcard .btns { margin-top:auto; padding-top:6px; } .pcard .btns button.danger { margin-top:0; } .pcard .recipe { font-size:.85rem; }
@media (max-width:1100px) { .pgrid { grid-template-columns:1fr; } .pchart .chart { height:440px; } .ohlc { margin-left:0; } .pb-act { margin-left:0; } }

/* Refonte : menu, pistes simulation / réel, page d'ouverture, laboratoire, « Mon argent » */
.top .tools { margin-left:auto; display:flex; align-items:center; gap:10px; }
.top .tools button { padding:6px 13px; }
.sys { display:inline-flex; align-items:center; gap:4px; color:var(--muted); font-size:.86rem; font-weight:500; padding:6px 10px; border-radius:9px; }
.sys:hover, .sys.on { background:var(--soft); text-decoration:none; color:var(--ink); }
.sys.ok .dot { background:var(--gain); } .sys.warn .dot { background:#f59e0b; } .sys.crit .dot { background:var(--loss); box-shadow:0 0 0 4px var(--loss-soft); }
.subnav { display:flex; flex-wrap:wrap; gap:4px 6px; padding:8px 32px; border-bottom:1px solid var(--line); background:var(--soft); font-size:.88rem; }
.subnav a { padding:4px 12px; border-radius:999px; color:var(--text); font-weight:500; } .subnav a:hover { background:#fff; text-decoration:none; }
.subnav a.on { background:var(--ink); color:#fff; }
.crumb { margin:0 0 8px; font-size:.86rem; } .crumb a { color:var(--muted); }
.trk { display:inline-block; font-size:.66rem; letter-spacing:.07em; font-weight:700; padding:2px 8px; border-radius:5px; vertical-align:middle; white-space:nowrap; }
.trk.sim { background:var(--blue-soft); color:var(--blue); } .trk.real { background:var(--ink); color:#fff; }
h3.sec .trk { margin-right:6px; position:relative; top:-1px; } h3.sec .muted { font-weight:400; font-size:.86rem; }
.none { color:var(--muted); border:1px dashed #cfd5de; border-radius:14px; padding:14px 18px; max-width:980px; }
.elist { display:flex; flex-direction:column; gap:8px; }
.ecard { display:flex; flex-wrap:wrap; align-items:center; gap:10px 34px; padding:14px 20px 14px 22px; border:1px solid var(--line); border-radius:14px; background:#fff;
         box-shadow:var(--shadow); color:var(--text); position:relative; border-left:4px solid var(--c, var(--blue)); }
.ecard:hover { text-decoration:none; border-color:#c3cad5; border-left-color:var(--c, var(--blue)); background:#fcfdff; }
.ecard.real { border:2px solid var(--ink); border-left-width:6px; }
.ecard .who { flex:1 1 260px; min-width:0; } .ecard h2 { margin:0; font-size:1.08rem; color:var(--ink); } .ecard .sub { font-size:.84rem; }
.ecard .fig { flex:0 1 auto; min-width:150px; font-size:.92rem; font-variant-numeric:tabular-nums; }
.ecard .fig .k { font-size:.68rem; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); font-weight:600; }
.ecard .chev { color:#b6bfcc; margin-left:auto; } .ecard.slim { padding:9px 16px 9px 18px; box-shadow:none; } .ecard.slim h2 { font-size:.95rem; } .ecard.slim .fig { min-width:110px; }
.fold .elist { margin-bottom:6px; } .arena-panel { margin-top:26px; }
.trkbox { padding-left:14px; border-left:3px solid var(--blue); } .trkbox.real { border-left-color:var(--ink); }
.trackp { border-top:3px solid var(--blue); } .trackp.real { border-top-color:var(--ink); }
.trackp h3 .trk { margin-right:4px; } .trackp .why { font-size:.84rem; color:var(--muted); }
.trackp .btns button.danger { margin-top:0; } .form.unlock { flex-direction:row; align-items:flex-end; flex-wrap:wrap; gap:8px; } .form.unlock button { align-self:flex-end; }
.ptabs .trk { margin-right:3px; } .seg button.on .trk.sim { background:#fff; } .seg button.on .trk.real { background:#fff; color:var(--ink); }
.endsim { margin-top:18px; }
.path { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; margin:6px 0 20px; font-size:.9rem; color:var(--muted); }
.path span { padding:7px 14px; border:1px solid var(--line); border-radius:999px; background:#fff; } .path span.on { background:var(--blue-soft); border-color:var(--blue); color:var(--ink); }
.path i { color:#b6bfcc; }
.labgrid { display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:12px; }
.labcard { display:block; border:1px solid var(--line); border-radius:14px; padding:14px 18px; background:#fff; color:var(--text); box-shadow:var(--shadow); }
.labcard:hover { text-decoration:none; border-color:var(--blue); } .labcard h2 { margin:0 0 4px; font-size:1rem; color:var(--ink); } .labcard h2 i { color:var(--blue); margin-right:4px; }
.labcard p { margin:2px 0; font-size:.87rem; color:var(--muted); } .labcard p.q { color:var(--ink); font-weight:500; } .labcard.key { border-color:var(--ink); }
.wal { margin:14px 0; } .wal.mainnet { border:2px solid var(--ink); } .wal.testnet { background:var(--soft); }
.wal-h { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end; gap:10px 30px; margin-bottom:4px; } .wal-h h3 { margin:6px 0 0; font-size:1.2rem; }
.wal-total { text-align:right; } .wal-total .k { font-size:.7rem; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); font-weight:700; }
.wal-total b { font-size:1.9rem; letter-spacing:-.02em; font-variant-numeric:tabular-nums; } .wal.testnet .wal-total b { color:var(--muted); }
.wal h4 { margin:18px 0 4px; font-size:.95rem; } .wal p { margin:4px 0; }
.wtab td, .wtab th { font-variant-numeric:tabular-nums; } .wtab td:first-child { font-weight:600; color:var(--ink); } .wtab td.strong { font-weight:600; color:var(--ink); }
.wtab td.gain { color:var(--gain); } .wtab td.loss { color:var(--loss); }
.top .tools a.btn.on { background:var(--blue-soft); border-color:var(--blue); color:var(--blue); }
@media (max-width:900px) { .top .tools { margin-left:0; } .subnav { padding:8px 16px; } }
.duel.hist { box-shadow:none; background:var(--soft); padding:16px 20px; margin:8px 0 6px; gap:12px 38px; } .duel.hist .v { font-size:1.5rem; }

/* Écrans larges : la page occupe la largeur, les stratégies sont des cartes côte à côte, le graphique est grand */
.elist { display:grid; grid-template-columns:repeat(auto-fill, minmax(270px, 1fr)); gap:12px; }
.elist .ecard { flex-direction:column; align-items:stretch; flex-wrap:nowrap; gap:8px; padding:14px 16px 12px 18px; }
.elist .ecard .who { flex:0 0 auto; } .elist .ecard .sub { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:2.5em; }
.elist .ecard .fig { min-width:0; display:flex; justify-content:space-between; align-items:baseline; gap:10px; border-top:1px dashed var(--line); padding-top:6px; }
.elist .ecard .fig .k { flex:none; } .elist .ecard .fig > :not(.k) { text-align:right; } .elist .ecard .chev { display:none; }
.elist .ecard.slim .sub { min-height:0; -webkit-line-clamp:1; } .elist .ecard.slim .fig { border-top:0; padding-top:0; }
.fig .v2 { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:0 8px; }
h3.sec { margin-top:22px; } .none { padding:10px 16px; max-width:none; }
.arena-panel { margin-top:18px; } .arena-panel .chart { height:clamp(480px, 62vh, 900px); } .lg-list { max-height:clamp(480px, 62vh, 900px); }
.arena-grid { grid-template-columns:minmax(0, 1fr) 320px; }
.pchart .chart { height:clamp(520px, 64vh, 980px); }
.labgrid { grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); }
@media (max-width:980px) { .arena-grid { grid-template-columns:1fr; } }
/* Bande de cartes : une seule rangée qui défile horizontalement, pour que le graphique ne bouge jamais */
.ecar { position:relative; }
.egroups { display:flex; flex-wrap:nowrap; gap:0 30px; align-items:flex-start; overflow-x:auto; scroll-behavior:smooth; scroll-snap-type:x proximity;
           padding:0 2px 10px; scrollbar-width:thin; }
.egroup { flex:0 0 auto; min-width:0; } .egroup h3.sec { margin-top:14px; white-space:nowrap; position:sticky; left:0; width:max-content; max-width:100%; }
.egroup .elist { display:flex; flex-direction:row; flex-wrap:nowrap; gap:12px; } .egroup .elist .ecard { width:274px; flex:none; scroll-snap-align:start; } .egroup .elist { align-items:stretch; }
.egroup .ecard h2 { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } .egroup .fig .v2 { flex-wrap:nowrap; white-space:nowrap; }
.egroup .none { width:380px; margin:0; }
.ecar-b { position:absolute; top:calc(50% + 12px); transform:translateY(-50%); z-index:5; width:38px; height:38px; padding:0; border-radius:50%; background:#fff; color:var(--ink);
          border:1px solid #cfd5de; box-shadow:0 4px 14px rgba(16,24,40,.16); }
.ecar-b:hover { background:var(--ink); color:#fff; } .ecar-b.prev { left:-14px; } .ecar-b.next { right:-14px; }
.ecar::after { content:""; position:absolute; top:40px; right:0; bottom:10px; width:46px; pointer-events:none; background:linear-gradient(90deg, rgba(255,255,255,0), #fff); opacity:0; transition:opacity .2s; }
.ecar.more::after { opacity:1; }
.arena-opt { display:inline-block; font-size:.84rem; color:var(--muted); margin:0 0 8px; cursor:pointer; } .arena-opt input { vertical-align:-2px; margin-right:4px; }
#arena-note { min-height:2.9em; max-width:none; } .lg-row.mk.off .nm { color:var(--muted); } .lg-row { user-select:none; }
.lg-row[hidden] { display:none; }

/* Trois niveaux : SIMULATION (calcul) · TESTNET (vrais ordres, argent fictif) · RÉEL (vrais ordres, vrai argent). LIVE = testnet ou réel. */
.trk.live { background:var(--ink); color:#fff; } .trk.test { background:#ede9fe; color:#6d28d9; } .trk.real { background:var(--loss); color:#fff; }
.seg button.on .trk.live { background:#fff; color:var(--ink); } .ecard.real.testnet { border-color:#6d28d9; }
.netpick { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.form label.netopt { flex-direction:row; align-items:flex-start; gap:8px; border:1px solid #cfd5de; border-radius:11px; padding:10px 12px; cursor:pointer; color:var(--text); }
.netopt input { margin-top:3px; } .netopt small { color:var(--muted); font-weight:400; } .netopt.off { opacity:.6; cursor:default; }
.netopt:has(input:checked) { border-color:#6d28d9; background:#f6f3ff; } .netopt.mainnet:has(input:checked) { border-color:var(--loss); background:var(--loss-soft); }
.form label.confirm-real { flex-direction:row; align-items:flex-start; gap:8px; background:var(--loss-soft); color:var(--loss); border-radius:10px; padding:10px 12px; font-weight:500; }
.form label.confirm-real[hidden] { display:none; } .confirm-real b { color:var(--loss); } #dlg-run { max-width:560px; } #lev-note { margin:0; }
.fold.acc.mainnet { border-color:var(--loss); } .fold.acc summary .trk { margin-right:4px; }

/* Carnet de notes des stratégies */
.cn-panel { margin:14px 0 4px; } .cn-panel h3 i { color:var(--blue); margin-right:4px; } .cn-panel h3 .muted { font-weight:400; font-size:.86rem; }
.carnet { display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:12px; margin:10px 0 6px; }
.cn-card { border:1px solid var(--line); border-top:4px solid #94a3b8; border-radius:14px; padding:12px 16px 10px; background:#fff; }
.cn-card.good { border-top-color:var(--gain); } .cn-card.bad { border-top-color:var(--loss); } .cn-card.mid { border-top-color:#f59e0b; }
.cn-h { display:flex; justify-content:space-between; align-items:baseline; gap:10px; } .cn-h b { font-size:1.15rem; } .cn-h .muted { font-size:.8rem; }
.cn-main { margin:6px 0 4px; } .cn-main .k { font-size:.68rem; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); font-weight:700; }
.cn-main .v { font-size:1.7rem; font-weight:700; letter-spacing:-.02em; line-height:1.2; } .cn-main .v span { font-weight:700; } .cn-main .sub { font-size:.84rem; }
.cn-card details.more { margin-top:8px; } .cn-items li { font-size:.82rem; gap:2px 12px; padding:5px 0; } .cn-card .kv b.loss { color:var(--loss); }
.chips { display:flex; flex-wrap:wrap; gap:4px; justify-content:flex-end; } .chip { font-size:.74rem; font-weight:600; padding:1px 7px; border-radius:6px; white-space:nowrap; background:var(--soft); color:var(--muted); }
.chip.good { background:var(--gain-soft); color:#066e4c; } .chip.bad { background:var(--loss-soft); color:var(--loss); } .chip.mid { background:var(--warn-soft); color:var(--warn); }
.elist .ecard .fig.notes { flex-direction:column; align-items:flex-start; gap:4px; } .fig.notes .chips { justify-content:flex-start; flex-wrap:nowrap; }
