:root{--bg:#07090d;--panel:#0e131b;--panel2:#131a24;--line:#252e3b;--text:#f4f0e8;--muted:#929ba9;--gold:#ddb45e;--gold2:#f0d091;--green:#32d68a;--red:#ff6578;--blue:#67a7ff;--radius:22px;--shadow:0 16px 44px rgba(0,0,0,.24)}*{box-sizing:border-box}html{background:var(--bg);color-scheme:dark}body{margin:0;background:radial-gradient(circle at 80% -10%,rgba(221,180,94,.12),transparent 32%),var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}.shell{width:min(100%,960px);margin:auto;padding:18px 16px 80px}.app-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.identity{display:flex;align-items:center;gap:12px}.logo{width:46px;height:46px;border:1px solid rgba(221,180,94,.35);border-radius:15px;display:grid;place-items:center;color:var(--gold);background:rgba(221,180,94,.06)}.logo svg{width:28px}.overline{display:block;color:var(--muted);font-size:.67rem;font-weight:800;letter-spacing:.17em}.identity h1{margin:2px 0 0;font-size:1.16rem;line-height:1}.identity h1 em{font-style:normal;color:var(--gold)}.header-status{text-align:right}.status-pill{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:99px;padding:7px 10px;font-size:.7rem;font-weight:800}.status-pill i{width:7px;height:7px;border-radius:50%;background:var(--red)}.status-pill.live i{background:var(--green);box-shadow:0 0 0 5px rgba(50,214,138,.1)}.version{margin-top:5px;color:var(--muted);font-size:.68rem}.warning{border:1px solid rgba(221,180,94,.24);border-radius:16px;background:rgba(221,180,94,.055);padding:12px 14px;color:#cdd2da;font-size:.8rem;line-height:1.5}.warning strong{color:var(--gold2)}.update-banner{display:none;align-items:center;justify-content:space-between;gap:12px;background:rgba(50,214,138,.1);border:1px solid rgba(50,214,138,.3);border-radius:15px;padding:10px 12px;margin-top:12px}.update-banner.show{display:flex}.tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:18px 0;padding:5px;border:1px solid var(--line);border-radius:16px;background:#0b0f15}.tab{border:0;border-radius:11px;background:transparent;color:var(--muted);padding:10px 5px;font-size:.68rem;font-weight:850;cursor:pointer}.tab.active{background:var(--panel2);color:var(--gold)}.view{display:none}.view.active{display:block}.market-toolbar{display:grid;grid-template-columns:1.2fr .8fr;gap:10px}.market-toolbar label,.field{display:block}.market-toolbar label span,.field span{display:block;margin:0 0 6px 2px;color:var(--muted);font-size:.67rem;font-weight:800;letter-spacing:.1em}select,input{width:100%;border:1px solid var(--line);border-radius:13px;background:var(--panel);color:var(--text);padding:12px;font:inherit;outline:none}select:focus,input:focus{border-color:var(--gold)}.ticker-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0}.ticker-row>div{padding:11px 12px;border:1px solid var(--line);border-radius:14px;background:rgba(14,19,27,.75)}.ticker-row span,.trade-grid span,.metric-card span{display:block;color:var(--muted);font-size:.63rem;font-weight:800;letter-spacing:.08em}.ticker-row strong{display:block;margin-top:4px;font-size:.9rem}.signal-card{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);padding:18px;background:linear-gradient(155deg,#111823,#0b0f15);box-shadow:var(--shadow)}.signal-card:before{content:"";position:absolute;inset:0 auto auto 0;width:100%;height:3px;background:var(--gold)}.signal-card.buy:before{background:var(--green)}.signal-card.sell:before{background:var(--red)}.signal-head{display:flex;justify-content:space-between;gap:10px}.symbol{font-size:1.03rem;font-weight:850}.signal-head p{margin:4px 0;color:var(--muted);font-size:.76rem}.action-badge,.learning-badge{align-self:flex-start;border:1px solid rgba(221,180,94,.3);border-radius:99px;padding:7px 9px;color:var(--gold);background:rgba(221,180,94,.08);font-size:.68rem;font-weight:900}.buy .action-badge{color:var(--green);border-color:rgba(50,214,138,.35);background:rgba(50,214,138,.08)}.sell .action-badge{color:var(--red);border-color:rgba(255,101,120,.35);background:rgba(255,101,120,.08)}.score-row{display:grid;grid-template-columns:88px 1fr;align-items:center;gap:15px;margin:22px 0}.score-ring{width:84px;height:84px;border-radius:50%;display:grid;place-content:center;text-align:center;background:conic-gradient(var(--gold) 0%,#252c37 0);position:relative}.score-ring:after{content:"";position:absolute;inset:7px;border-radius:50%;background:#101620}.score-ring strong,.score-ring small{position:relative;z-index:1}.score-ring strong{font-size:1.45rem}.score-ring small{color:var(--muted);font-size:.62rem}.score-row h2{margin:4px 0 2px;font-size:1.4rem}.score-row p{margin:0;color:#b4bbc5;font-size:.77rem;line-height:1.45}.trade-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.trade-grid>div{border:1px solid var(--line);border-radius:13px;background:#0b1017;padding:11px}.trade-grid strong{display:block;margin-top:5px;font-size:.85rem;word-break:break-word}.positive{color:var(--green)}.negative{color:var(--red)}.actions{display:flex;gap:9px;margin-top:14px}.actions.three{display:grid;grid-template-columns:1.1fr 1fr 1fr}.btn{border:1px solid var(--line);border-radius:13px;padding:11px 13px;font-size:.72rem;font-weight:900;cursor:pointer}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--gold);border-color:var(--gold);color:#16120a}.btn.secondary{background:#121923;color:var(--text)}.signal-card .actions .btn{flex:1}.error{display:none;margin-top:10px;border:1px solid rgba(255,101,120,.35);border-radius:13px;padding:11px;color:#ff9ca9;background:rgba(255,101,120,.07);font-size:.8rem}.panel{margin-top:13px;border:1px solid var(--line);border-radius:18px;background:rgba(14,19,27,.86);padding:15px}.section-title{display:flex;justify-content:space-between;gap:12px;align-items:start;margin-bottom:12px}.section-title h3{margin:0;font-size:.92rem}.section-title p{margin:4px 0 0;color:var(--muted);font-size:.72rem;line-height:1.4}.section-title.split{align-items:center;flex-wrap:wrap}.section-title.split label{min-width:150px}.section-title.split label span{display:block;margin:0 0 5px;color:var(--muted);font-size:.62rem;font-weight:800;letter-spacing:.08em}.reason-list{margin:0;padding:0;list-style:none;display:grid;gap:7px}.reason-list li{position:relative;padding-left:17px;color:#cbd0d7;font-size:.78rem;line-height:1.4}.reason-list li:before{content:"";position:absolute;left:1px;top:.47em;width:7px;height:7px;border-radius:50%;background:var(--gold)}.reason-list li.warn:before{background:var(--red)}.timeframe-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.timeframe{border:1px solid var(--line);border-radius:13px;padding:10px;background:#0a0f16}.timeframe b,.timeframe span{display:block}.timeframe b{font-size:.75rem}.timeframe span{margin-top:4px;font-size:.68rem;color:var(--muted)}.timeframe .bull{color:var(--green)}.timeframe .bear{color:var(--red)}.fine-print{color:var(--muted);font-size:.7rem;line-height:1.55;padding:4px 3px}.hero-status{display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid var(--line);border-radius:var(--radius);padding:20px;background:linear-gradient(145deg,#111824,#0d1219)}.hero-status h2{margin:5px 0 4px;font-size:1.3rem}.hero-status p{margin:0;color:var(--muted);font-size:.78rem}.robot-orb{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,rgba(221,180,94,.18),transparent 65%);border:1px solid rgba(221,180,94,.3)}.robot-orb span{width:15px;height:15px;border-radius:50%;background:var(--red)}.robot-orb.live span{background:var(--green);box-shadow:0 0 0 9px rgba(50,214,138,.08),0 0 24px rgba(50,214,138,.5)}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:11px}.metric-card{border:1px solid var(--line);border-radius:16px;background:var(--panel);padding:13px}.metric-card strong{display:block;margin:6px 0 3px;font-size:1.08rem}.metric-card small{color:var(--muted);font-size:.66rem}.feedback{min-height:18px;color:var(--muted);font-size:.75rem}.rule-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.rule-grid>div{border:1px solid var(--line);border-radius:14px;padding:12px;background:#0b1017}.rule-grid b,.rule-grid span{display:block}.rule-grid b{font-size:.78rem;color:var(--gold2)}.rule-grid span{margin-top:4px;color:var(--muted);font-size:.7rem;line-height:1.4}.config-list{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.config-list div{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid var(--line);padding:8px 2px;font-size:.74rem}.config-list span{color:var(--muted)}.journal{display:grid;gap:8px}.journal-item{display:grid;grid-template-columns:1fr auto;gap:12px;border:1px solid var(--line);border-radius:14px;padding:12px;background:#0b1017}.journal-item h4{margin:0 0 4px;font-size:.8rem}.journal-item p{margin:0;color:var(--muted);font-size:.69rem;line-height:1.45}.journal-side{text-align:right;font-size:.72rem;font-weight:850}.journal-side .buy{color:var(--green)}.journal-side .sell{color:var(--red)}.journal-side small{display:block;margin-top:5px;color:var(--muted)}.empty{text-align:center;color:var(--muted);padding:24px;font-size:.78rem}.learning-badge{color:var(--muted);border-color:var(--line);background:#0b1017}.learning-badge.active{color:var(--green);border-color:rgba(50,214,138,.3)}.learning-badge.frozen{color:var(--red);border-color:rgba(255,101,120,.3)}.weights{display:grid;gap:9px}.weight-row{display:grid;grid-template-columns:105px 1fr 44px;align-items:center;gap:8px;font-size:.72rem}.weight-row .track{height:8px;border-radius:99px;background:#242d39;overflow:hidden}.weight-row .fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--gold),var(--gold2))}.weight-row output{text-align:right;color:var(--gold2)}.toast{position:fixed;left:50%;bottom:22px;z-index:10;transform:translate(-50%,20px);opacity:0;pointer-events:none;max-width:calc(100% - 32px);border:1px solid var(--line);border-radius:13px;background:#151c26;color:var(--text);padding:11px 15px;font-size:.78rem;transition:.22s}.toast.show{opacity:1;transform:translate(-50%,0)}@media(max-width:700px){.shell{padding:14px 12px 70px}.identity .overline{display:none}.identity h1{font-size:1rem}.logo{width:40px;height:40px}.tabs{position:sticky;top:4px;z-index:5;backdrop-filter:blur(12px)}.tab{font-size:.59rem}.trade-grid{grid-template-columns:repeat(2,1fr)}.metric-grid{grid-template-columns:repeat(2,1fr)}.actions.three{grid-template-columns:1fr}.rule-grid{grid-template-columns:1fr}.config-list{grid-template-columns:1fr}.timeframe-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:390px){.header-status .version{display:none}.ticker-row{grid-template-columns:1fr 1fr}.score-row{grid-template-columns:74px 1fr}.score-ring{width:70px;height:70px}.market-toolbar{grid-template-columns:1fr}.journal-item{grid-template-columns:1fr}.journal-side{text-align:left}.actions{flex-direction:column}.trade-grid{grid-template-columns:1fr 1fr}}

.shell.locked{visibility:hidden;pointer-events:none}.login-gate{display:none;position:fixed;inset:0;z-index:50;padding:20px;background:rgba(4,7,11,.94);align-items:center;justify-content:center}.login-gate.show{display:flex}.login-card{width:min(430px,100%);border:1px solid var(--line);border-radius:22px;background:var(--panel);padding:24px}.login-card h2{margin:5px 0 8px}.login-card>p{color:var(--muted);font-size:.82rem;line-height:1.5}.login-card .field{margin:14px 0}.login-card .btn{width:100%;margin-top:4px}.login-error{min-height:20px;color:var(--red)!important}.link-button{border:0;background:transparent;color:var(--gold);font:inherit;font-size:.68rem;cursor:pointer;padding:0}.command-grid{display:grid;grid-template-columns:repeat(2,1fr)}.legal-footer{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px;padding:16px 2px;border-top:1px solid var(--line);font-size:.68rem;color:var(--muted)}.legal-footer a{color:var(--gold2);text-decoration:none}.legal-footer span{margin-left:auto}@media(max-width:500px){.command-grid{grid-template-columns:1fr}.legal-footer span{width:100%;margin-left:0}}
.legal-page{max-width:760px}.legal-page>a{color:var(--gold2);text-decoration:none}.legal-page h1{margin-top:22px}.legal-page h2{margin-top:24px;font-size:1rem;color:var(--gold2)}.legal-page p{color:#c9ced6;line-height:1.65;font-size:.88rem}
.error.show{display:block}.signal-card{--score-color:var(--gold)}.signal-card.buy{--score-color:var(--green)}.signal-card.sell{--score-color:var(--red)}.score-ring.p0{background:conic-gradient(var(--score-color) 0%,#252c37 0)}.score-ring.p1{background:conic-gradient(var(--score-color) 10%,#252c37 0)}.score-ring.p2{background:conic-gradient(var(--score-color) 20%,#252c37 0)}.score-ring.p3{background:conic-gradient(var(--score-color) 30%,#252c37 0)}.score-ring.p4{background:conic-gradient(var(--score-color) 40%,#252c37 0)}.score-ring.p5{background:conic-gradient(var(--score-color) 50%,#252c37 0)}.score-ring.p6{background:conic-gradient(var(--score-color) 60%,#252c37 0)}.score-ring.p7{background:conic-gradient(var(--score-color) 70%,#252c37 0)}.score-ring.p8{background:conic-gradient(var(--score-color) 80%,#252c37 0)}.score-ring.p9{background:conic-gradient(var(--score-color) 90%,#252c37 0)}.score-ring.p10{background:conic-gradient(var(--score-color) 100%,#252c37 0)}.weight-row progress{width:100%;height:8px;appearance:none;border:0;border-radius:99px;overflow:hidden;background:#242d39}.weight-row progress::-webkit-progress-bar{background:#242d39}.weight-row progress::-webkit-progress-value{background:var(--gold)}.weight-row progress::-moz-progress-bar{background:var(--gold)}
.broker-box{margin-top:18px;padding:16px;border:1px solid var(--border);border-radius:16px;background:rgba(255,255,255,.025)}
.broker-box.hidden{display:none}.broker-box p{margin:5px 0 0;color:var(--muted)}
.broker-controls{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end;margin-top:12px}.broker-controls label span{display:block;font-size:.72rem;color:var(--muted);letter-spacing:.08em;margin-bottom:6px}.broker-controls input{width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:12px;padding:12px;background:#0d1118;color:var(--text);font-size:1rem}.broker-box .feedback{color:var(--text);margin-top:12px}
@media(max-width:560px){.broker-controls{grid-template-columns:1fr}.broker-controls .btn{width:100%}}

/* V7.3 — diagnostic NO TRADE détaillé */
.trade-grid strong.locked-level{color:var(--muted);font-size:.72rem;letter-spacing:.04em}
.observation-panel{margin-top:14px;border:1px solid rgba(221,180,94,.22);border-radius:17px;background:rgba(221,180,94,.045);padding:14px}
.observation-panel.signal-ready{border-color:rgba(50,214,138,.35);background:rgba(50,214,138,.055)}
.observation-panel.security-block{border-color:rgba(255,101,120,.34);background:rgba(255,101,120,.055)}
.observation-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.observation-head h3{margin:4px 0 3px;font-size:.94rem}
.observation-head p{margin:0;color:var(--muted);font-size:.72rem;line-height:1.45}
.observation-state{flex:0 0 auto;border:1px solid rgba(221,180,94,.3);border-radius:99px;padding:6px 8px;color:var(--gold);background:rgba(221,180,94,.08);font-size:.62rem;font-weight:900}
.signal-ready .observation-state{color:var(--green);border-color:rgba(50,214,138,.35);background:rgba(50,214,138,.08)}
.security-block .observation-state{color:var(--red);border-color:rgba(255,101,120,.35);background:rgba(255,101,120,.08)}
.observation-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:12px}
.observation-metrics>div{border:1px solid var(--line);border-radius:12px;padding:9px;background:rgba(7,9,13,.38)}
.observation-metrics span{display:block;color:var(--muted);font-size:.58rem;font-weight:800;letter-spacing:.07em}
.observation-metrics strong{display:block;margin-top:4px;font-size:.76rem}
.diagnostic-columns{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.diagnostic-columns>div{border-top:1px solid var(--line);padding-top:10px}
.diagnostic-columns h4{margin:0 0 8px;font-size:.73rem;color:var(--gold2)}
.diagnostic-list{display:grid;gap:7px}
.diagnostic-item{border:1px solid var(--line);border-radius:11px;padding:8px 9px;background:#0a0f16}
.diagnostic-item strong,.diagnostic-item span,.diagnostic-item small{display:block}
.diagnostic-item strong{font-size:.72rem}
.diagnostic-item span{margin-top:3px;color:var(--muted);font-size:.64rem}
.diagnostic-item small{margin-top:4px;color:#aeb6c1;font-size:.62rem;line-height:1.35}
.diagnostic-list:not(.confirmations) .diagnostic-item{border-color:rgba(255,101,120,.22)}
.diagnostic-list:not(.confirmations) .diagnostic-item strong{color:#ff9ca9}
.diagnostic-list.confirmations .diagnostic-item{border-color:rgba(50,214,138,.18)}
.diagnostic-list.confirmations .diagnostic-item strong{color:#85e6b8}
.diagnostic-list p{margin:0;color:var(--muted);font-size:.7rem}
.execution-lock{margin:12px 0 0;border-radius:10px;padding:9px 10px;background:rgba(255,101,120,.065);color:#e2b5bb;font-size:.69rem;line-height:1.4}
.signal-ready .execution-lock{background:rgba(50,214,138,.065);color:#aee8cc}
@media(max-width:700px){.observation-metrics{grid-template-columns:1fr 1fr}.diagnostic-columns{grid-template-columns:1fr}}

/* V7.4 — hiérarchie des confirmations et garde-fous */
.hidden{display:none!important}
.observation-guidance{display:grid;grid-template-columns:.8fr 1.7fr;gap:8px;margin-top:10px}
.observation-guidance>div{border:1px solid var(--line);border-radius:12px;padding:10px;background:rgba(7,9,13,.42)}
.observation-guidance span{display:block;color:var(--muted);font-size:.58rem;font-weight:800;letter-spacing:.08em}
.observation-guidance strong{display:block;margin-top:5px;font-size:.72rem;line-height:1.45}
.security-block .observation-guidance>div:first-child strong{color:#ff9ca9}
.signal-ready .observation-guidance strong{color:#aee8cc}
.count-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:5px;padding:0 6px;border-radius:99px;background:rgba(255,101,120,.12);color:#ff9ca9;font-size:.62rem}
.count-badge.positive-count{background:rgba(50,214,138,.12);color:#85e6b8}
.diagnostic-label{display:flex;align-items:center;justify-content:space-between;gap:8px}
.diagnostic-label em{font-style:normal;border:1px solid var(--line);border-radius:99px;padding:3px 6px;color:var(--muted);font-size:.5rem;font-weight:900;letter-spacing:.05em}
.diagnostic-item.safety{border-color:rgba(255,101,120,.28)!important}
.diagnostic-item.safety .diagnostic-label em{color:#ff9ca9;border-color:rgba(255,101,120,.28);background:rgba(255,101,120,.07)}
.diagnostic-item.condition .diagnostic-label em{color:var(--gold2);border-color:rgba(221,180,94,.25);background:rgba(221,180,94,.06)}
.diagnostic-item.info{border-color:rgba(103,167,255,.22)!important}
.diagnostic-item.info strong,.diagnostic-item.info .diagnostic-label em{color:#9dc5ff}
.diagnostic-item.info .diagnostic-label em{border-color:rgba(103,167,255,.25);background:rgba(103,167,255,.07)}
.information-box{margin-top:10px;border-top:1px solid var(--line);padding-top:10px}
.information-box h4{margin:0 0 8px;color:#9dc5ff;font-size:.72rem}
.insight-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.insight-grid>div{border:1px solid var(--line);border-radius:14px;padding:12px;background:#0a0f16}
.insight-grid h4{margin:0 0 9px;font-size:.73rem}
.insight-grid>div:first-child h4{color:#85e6b8}
.insight-grid>div:last-child h4{color:#ff9ca9}
.positive-list li:before{background:var(--green)}
.safety-list li:before{background:var(--red)}
.timeframe span+span{margin-top:3px}
@media(max-width:700px){.observation-guidance,.insight-grid{grid-template-columns:1fr}}

/* V7.5 — cohérence de version et lisibilité du diagnostic */
.observation-guidance{
  grid-template-columns:minmax(0,1fr) minmax(0,1.45fr);
  align-items:stretch;
}
.observation-guidance>div{min-width:0;display:flex;flex-direction:column;gap:6px}
.observation-guidance span{line-height:1.25}
.observation-guidance strong{
  margin-top:0;
  overflow-wrap:anywhere;
  word-break:normal;
  white-space:normal;
}
.payload-mismatch{
  border-color:rgba(255,168,76,.45)!important;
  background:linear-gradient(180deg,rgba(255,168,76,.05),rgba(255,101,120,.035));
}
.payload-mismatch .execution-lock{
  background:rgba(255,168,76,.10);
  color:#ffd39a;
}
@media(max-width:700px){
  .observation-guidance{grid-template-columns:1fr}
  .observation-guidance>div{padding:11px}
}
