/* === style-1 === */
/* AUDIT 23/08/2026 · C6 — un onglet PC MEUTE laissé ouvert animait six canvas et
   plusieurs boucles CSS en permanence, sur la batterie de tout le monde.
   Les callbacks requestAnimationFrame sont déjà suspendus par le navigateur en
   arrière-plan ; les animations CSS, elles, continuaient. */
html.ldy-endormi *,html.ldy-endormi *::before,html.ldy-endormi *::after{
  animation-play-state:paused!important;transition:none!important}
/* référence de version — ne pas retirer */
.ldy-mark-a7f3c1{content:none}
/* ligne de propriété, pied du menu */
.ldy-copyright{font-family:var(--mono);font-size:10px;letter-spacing:.06em;
  color:var(--txt3);padding-top:8px;margin-top:8px;border-top:1px solid var(--line)}
 :root{ --bg:#050505; --bg2:#0a0a0b; --panel:#0d0e10; --panel2:#111214; --line:#1d1f22; --line2:#26282c; --txt:#d6d8db; --txt2:#8b8f96; --txt3:#787c83; --red:#e33; --red-dim:#a32; --red-glow:rgba(238,51,51,.14); --amber:#d9a441; --amber-dim:rgba(217,164,65,.12); --green:#3fbf7f; --green-dim:rgba(63,191,127,.1); --blue:#4a90d9; --blue-dim:rgba(74,144,217,.12); --hull:#6fb3e8; --mono:'JetBrains Mono',monospace; --sans:'Exo 2',sans-serif; --display:'Orbitron',monospace; --serif:'IBM Plex Serif',Georgia,serif; } *{margin:0;padding:0;box-sizing:border-box} html,body{height:100%} body{ background:var(--bg);color:var(--txt);font-family:var(--sans); font-size:14px;overflow:hidden; } body::after{ content:"";position:fixed;inset:0;pointer-events:none;z-index:9990; background:repeating-linear-gradient(0deg,transparent 0 2px,rgba(255,255,255,.012) 2px 3px); } body::before{ content:"";position:fixed;inset:0;pointer-events:none;z-index:9991; background:radial-gradient(ellipse at 50% -10%,rgba(238,51,51,.05),transparent 55%); } ::-webkit-scrollbar{width:9px;height:9px} ::-webkit-scrollbar-track{background:var(--bg2)} ::-webkit-scrollbar-thumb{background:var(--line2);border-radius:4px} ::-webkit-scrollbar-thumb:hover{background:#34373c} ::selection{background:var(--red-dim);color:#fff} .mono{font-family:var(--mono)} .hidden{display:none!important} #login{ position:fixed;inset:0;z-index:8000;display:flex;align-items:center;justify-content:center; background: radial-gradient(ellipse at 50% 120%,rgba(238,51,51,.09),transparent 60%), radial-gradient(ellipse at 50% -20%,rgba(217,164,65,.04),transparent 50%), var(--bg); } .login-box{width:440px;max-width:92vw;text-align:center;animation:fadeUp .8s ease both} .login-eye{ width:74px;height:74px;margin:0 auto 22px;border-radius:50%; border:1px solid var(--red-dim);position:relative; box-shadow:0 0 40px var(--red-glow),inset 0 0 24px rgba(238,51,51,.12); animation:eyePulse 3.4s ease-in-out infinite; } .login-eye::before{ content:"";position:absolute;inset:26px;border-radius:50%; background:var(--red);box-shadow:0 0 22px var(--red),0 0 60px rgba(238,51,51,.5); } @keyframes eyePulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}} .login-title{font-family:var(--display);font-size:31px;font-weight:700;letter-spacing:.14em;color:#fff} .login-title span{color:var(--red)} .login-sub{font-family:var(--mono);font-size:11px;color:var(--txt2);margin-top:8px;letter-spacing:.06em} .login-motto{font-family:var(--mono);font-size:11px;color:var(--txt3);margin:20px 0 30px;letter-spacing:.1em} .btn-discord{ display:inline-flex;align-items:center;gap:11px;padding:13px 26px;cursor:pointer; background:#5865F2;border:none;border-radius:6px;color:#fff;font-family:var(--sans); font-size:14px;font-weight:600;letter-spacing:.03em;transition:all .18s; } .btn-discord:hover{background:#6a76f4;transform:translateY(-1px);box-shadow:0 8px 28px rgba(88,101,242,.35)} .btn-discord svg{width:20px;height:20px;fill:#fff} .login-foot{margin-top:34px;font-family:var(--mono);font-size:10px;color:var(--txt3);line-height:1.9} .login-foot .ok{color:var(--green)} .login-foot .warn{color:var(--red)} #boot{ position:fixed;inset:0;z-index:8500;background:var(--bg);display:none; align-items:center;justify-content:center; } .boot-inner{width:560px;max-width:92vw;font-family:var(--mono);font-size:12px;line-height:2.05;color:var(--txt2)} .boot-line{opacity:0;transform:translateX(-4px)} .boot-line.on{animation:bootIn .18s ease forwards} @keyframes bootIn{to{opacity:1;transform:none}} .boot-line .ok{color:var(--green)} .boot-line .red{color:var(--red)} .boot-line .amber{color:var(--amber)} @keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}} #app{display:none;height:100vh;flex-direction:column} #app.on{display:flex} .topbar{ height:54px;flex:0 0 54px;display:flex;align-items:center;gap:18px;padding:0 18px; background:linear-gradient(180deg,#0c0d0f,#0a0a0b);border-bottom:1px solid var(--line); position:relative;z-index:100; } .brand{display:flex;align-items:center;gap:12px;min-width:240px} .brand-eye{ width:26px;height:26px;border-radius:50%;border:1px solid var(--red-dim);position:relative;flex:0 0 26px; box-shadow:0 0 12px var(--red-glow); } .brand-eye::before{content:"";position:absolute;inset:9px;border-radius:50%;background:var(--red);box-shadow:0 0 8px var(--red);animation:eyePulse 3s infinite} .brand-name{font-family:var(--display);font-weight:700;font-size:14px;letter-spacing:.16em;color:#fff} .brand-name b{color:var(--red);font-weight:700} .brand-sub{font-family:var(--mono);font-size:9px;color:var(--txt3);letter-spacing:.05em;margin-top:1px} .top-lu6{ flex:1;font-family:var(--mono);font-size:11px;color:var(--txt2); display:flex;align-items:center;gap:8px;overflow:hidden;white-space:nowrap; } .top-lu6 .tag{color:var(--red);font-weight:700} .cursor{display:inline-block;width:7px;height:13px;background:var(--red);vertical-align:-2px;animation:blink 1.05s steps(1) infinite} @keyframes blink{50%{opacity:0}} .top-right{display:flex;align-items:center;gap:14px} .role-pick{display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:10px;color:var(--txt3)} .role-pick select{ background:var(--panel2);color:var(--txt);border:1px solid var(--line2);border-radius:5px; font-family:var(--mono);font-size:11px;padding:5px 8px;cursor:pointer;outline:none; } .role-pick select:hover{border-color:#3a3d42} .bell{position:relative;cursor:pointer;padding:6px;border-radius:6px;transition:background .15s} .bell:hover{background:var(--panel2)} .bell svg{width:17px;height:17px;stroke:var(--txt2);fill:none;stroke-width:1.6;display:block} .bell-badge{ position:absolute;top:0;right:0;min-width:15px;height:15px;border-radius:8px;background:var(--red); color:#fff;font-family:var(--mono);font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center; padding:0 3px;box-shadow:0 0 8px rgba(238,51,51,.55); } .top-solde{ display:flex;align-items:center;gap:7px;background:var(--amber-dim);border:1px solid rgba(217,164,65,.28); border-radius:6px;padding:6px 12px;font-family:var(--mono);font-size:13px;font-weight:700;color:var(--amber); cursor:pointer; } .top-solde .blocked{font-size:9px;color:var(--txt3);font-weight:400} .top-user{display:flex;align-items:center;gap:9px} .avatar{ width:30px;height:30px;border-radius:6px;display:flex;align-items:center;justify-content:center; font-family:var(--mono);font-size:11px;font-weight:700;color:#fff;flex:0 0 30px; background:linear-gradient(135deg,#2a2c30,#17181b);border:1px solid var(--line2); } .top-user .nm{font-size:12px;font-weight:600;color:var(--txt)} .top-user .rl{font-family:var(--mono);font-size:9px;color:var(--txt3)} .notif-drop{ position:absolute;top:50px;right:150px;width:350px;background:var(--panel);border:1px solid var(--line2); border-radius:8px;z-index:500;box-shadow:0 18px 50px rgba(0,0,0,.7);display:none;overflow:hidden; animation:fadeUp .2s ease;max-height:70vh;overflow-y:auto; } .notif-drop.on{display:block} .notif-head{padding:11px 14px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:10px;color:var(--txt3);letter-spacing:.08em} .notif-item{padding:11px 14px;border-bottom:1px solid var(--line);font-size:12px;color:var(--txt2);display:flex;gap:10px;align-items:flex-start} .notif-item:last-child{border-bottom:none} .notif-item .dot{width:6px;height:6px;border-radius:50%;background:var(--red);margin-top:5px;flex:0 0 6px} .notif-item .t{font-family:var(--mono);font-size:9px;color:var(--txt3);margin-top:3px} .notif-item b{color:var(--txt)} .main{flex:1;display:flex;overflow:hidden} .sidebar{ width:226px;flex:0 0 226px;background:var(--bg2);border-right:1px solid var(--line); overflow-y:auto;padding:14px 0 20px; } .nav-sec{font-family:var(--mono);font-size:9px;letter-spacing:.14em;color:var(--txt3);padding:16px 18px 7px} .nav-sec:first-child{padding-top:4px} .nav-item{ display:flex;align-items:center;gap:10px;padding:8px 18px;cursor:pointer;color:var(--txt2); font-size:13px;border-left:2px solid transparent;transition:all .14s;user-select:none; } .nav-item:hover{color:var(--txt);background:rgba(255,255,255,.02)} .nav-item.on{color:#fff;border-left-color:var(--red);background:linear-gradient(90deg,var(--red-glow),transparent 70%)} .nav-item .ic{font-family:var(--mono);font-size:11px;color:var(--txt3);width:16px;text-align:center} .nav-item.on .ic{color:var(--red)} .nav-item .cnt{ margin-left:auto;font-family:var(--mono);font-size:9px;background:var(--red);color:#fff; border-radius:8px;padding:1px 6px;font-weight:700; } .sidebar-foot{margin-top:22px;padding:0 18px;font-family:var(--mono);font-size:9px;color:var(--txt3);line-height:2} .sidebar-foot .ok{color:var(--green)} .content{flex:1;overflow-y:auto;padding:26px 30px 70px;scroll-behavior:smooth} .view{animation:fadeUp .3s ease;max-width:1560px;width:100%;margin:0 auto} .sec-h{display:flex;align-items:baseline;gap:14px;margin-bottom:4px} .sec-h h1{font-family:var(--display);font-size:20px;font-weight:700;letter-spacing:.06em;color:#fff;text-transform:uppercase} .sec-h h1 .rw{color:var(--red)} .sec-h .slash{font-family:var(--mono);font-size:12px;color:var(--red)} .sec-sub{font-family:var(--mono);font-size:11px;color:var(--txt3);margin-bottom:20px;letter-spacing:.04em} .blk-h{ font-family:var(--mono);font-size:10px;letter-spacing:.16em;color:var(--txt3); margin:26px 0 10px;display:flex;align-items:center;gap:10px; } .blk-h::after{content:"";flex:1;height:1px;background:var(--line)} .blk-h .r{color:var(--red)} .blk-h .a{color:var(--amber)} .grid{display:grid;gap:14px} .g2{grid-template-columns:1fr 1fr} .g3{grid-template-columns:1fr 1fr 1fr} .g4{grid-template-columns:repeat(4,1fr)} .panel{ background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:16px; position:relative;transition:border-color .18s; } .panel:hover{border-color:var(--line2)} .panel.red-t{border-top:2px solid var(--red)} .panel.amber-t{border-top:2px solid var(--amber)} .panel.green-t{border-top:2px solid var(--green)} .p-label{font-family:var(--mono);font-size:9px;letter-spacing:.14em;color:var(--txt3);margin-bottom:8px} .p-big{font-family:var(--mono);font-size:26px;font-weight:700;color:#fff} .p-big.amber{color:var(--amber)} .p-big.green{color:var(--green)} .p-big.red{color:var(--red)} .p-note{font-family:var(--mono);font-size:10px;color:var(--txt3);margin-top:6px;line-height:1.7} .lu6-msg{ background:linear-gradient(90deg,rgba(238,51,51,.06),transparent 65%),var(--panel); border:1px solid rgba(238,51,51,.22);border-left:3px solid var(--red); border-radius:8px;padding:15px 18px;margin-bottom:20px;display:flex;gap:14px;align-items:flex-start; } .lu6-msg .eye{width:34px;height:34px;flex:0 0 34px;border-radius:50%;border:1px solid var(--red-dim);position:relative;box-shadow:0 0 14px var(--red-glow)} .lu6-msg .eye::before{content:"";position:absolute;inset:12px;border-radius:50%;background:var(--red);box-shadow:0 0 10px var(--red);animation:eyePulse 3s infinite} .lu6-msg .who{font-family:var(--mono);font-size:10px;color:var(--red);letter-spacing:.12em;margin-bottom:5px;font-weight:700} .lu6-msg .txt{font-size:13.5px;color:var(--txt);line-height:1.55} .lu6-msg .txt em{color:var(--amber);font-style:normal;font-family:var(--mono);font-size:12.5px} .help{ border:1px solid rgba(238,51,51,.25);border-left:3px solid var(--red);border-radius:8px; background:linear-gradient(90deg,rgba(238,51,51,.05),transparent 60%),var(--panel); margin-bottom:18px;overflow:hidden; } .help-head{ display:flex;align-items:center;gap:10px;padding:11px 15px;cursor:pointer;user-select:none; font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--red);font-weight:700; } .help-head:hover{background:rgba(238,51,51,.04)} .help-head .mini-eye{width:16px;height:16px;border-radius:50%;border:1px solid var(--red-dim);position:relative;flex:0 0 16px} .help-head .mini-eye::before{content:"";position:absolute;inset:5px;border-radius:50%;background:var(--red);box-shadow:0 0 6px var(--red);animation:eyePulse 3s infinite} .help-head .chev{margin-left:auto;color:var(--txt3);font-size:11px;transition:transform .2s} .help.off .chev{transform:rotate(-90deg)} .help-body{padding:2px 18px 14px 41px;font-size:12.5px;color:var(--txt2);line-height:1.8} .help.off .help-body{display:none} .help-body b{color:var(--txt)} .help-body em{color:var(--amber);font-style:normal;font-family:var(--mono);font-size:11.5px} .help-body .hl{color:var(--red)} .pbar{height:7px;background:#151619;border-radius:4px;overflow:hidden;margin-top:10px;position:relative} .pbar>div{height:100%;border-radius:4px;background:linear-gradient(90deg,#8a6420,var(--amber));transition:width .8s cubic-bezier(.2,.8,.2,1);box-shadow:0 0 10px rgba(217,164,65,.4)} .pbar.red>div{background:linear-gradient(90deg,#7a2222,var(--red));box-shadow:0 0 10px rgba(238,51,51,.4)} .pbar.green>div{background:linear-gradient(90deg,#1d5c40,var(--green));box-shadow:0 0 10px rgba(63,191,127,.35)} .pbar.blue>div{background:linear-gradient(90deg,#274b6e,var(--hull));box-shadow:0 0 10px rgba(111,179,232,.35)} table.tbl{width:100%;border-collapse:collapse;font-size:12.5px} .tbl th{ text-align:left;font-family:var(--mono);font-size:9px;letter-spacing:.12em;color:var(--txt3); padding:8px 10px;border-bottom:1px solid var(--line2);font-weight:500; } .tbl td{padding:9px 10px;border-bottom:1px solid var(--line);color:var(--txt2);vertical-align:middle} .tbl tr:last-child td{border-bottom:none} .tbl tr:hover td{background:rgba(255,255,255,.015)} .tbl td.mono,.tbl th.num{font-family:var(--mono)} .tbl .num{text-align:right} .tbl td .nm{color:var(--txt);font-weight:600} .chip{ display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:10px; border-radius:4px;padding:2px 7px;border:1px solid var(--line2);color:var(--txt2);white-space:nowrap; } .chip.t0{color:#8a6060;border-color:rgba(238,51,51,.28)} .chip.t1{color:#9aa0a8;border-color:#33363b} .chip.t2{color:#7fc9a2;border-color:rgba(63,191,127,.35)} .chip.t3{color:#6fb3e8;border-color:rgba(74,144,217,.4)} .chip.t4{color:var(--amber);border-color:rgba(217,164,65,.45)} .chip.t5{color:#e88ae0;border-color:rgba(217,100,210,.4)} .chip.prime{ color:#fff;border-color:rgba(238,51,51,.7);font-weight:700;letter-spacing:.08em; background:linear-gradient(90deg,rgba(238,51,51,.28),rgba(217,164,65,.28)); box-shadow:0 0 10px rgba(238,51,51,.35); } .chip.ok{color:var(--green);border-color:rgba(63,191,127,.4);background:var(--green-dim)} .chip.warn{color:var(--red);border-color:rgba(238,51,51,.4);background:var(--red-glow)} .chip.info{color:var(--blue);border-color:rgba(74,144,217,.4)} .chip.amber{color:var(--amber);border-color:rgba(217,164,65,.45);background:var(--amber-dim)} .chip.role.hcm{color:var(--red);border-color:rgba(238,51,51,.45)} .chip.role.col{color:var(--amber);border-color:rgba(217,164,65,.45)} .chip.role.lvt{color:var(--blue);border-color:rgba(74,144,217,.45)} .tier-explain{font-family:var(--mono);font-size:9.5px;color:var(--txt3);margin-top:3px} .btn{ display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border-radius:6px;cursor:pointer; background:var(--panel2);border:1px solid var(--line2);color:var(--txt);font-family:var(--sans); font-size:12.5px;font-weight:600;transition:all .15s;user-select:none; } .btn:hover{border-color:#3c4046;background:#17181c;transform:translateY(-1px)} .btn:active{transform:translateY(0)} .btn.amber{background:var(--amber-dim);border-color:rgba(217,164,65,.4);color:var(--amber)} .btn.amber:hover{background:rgba(217,164,65,.2);box-shadow:0 4px 16px rgba(217,164,65,.15)} .btn.red{background:var(--red-glow);border-color:rgba(238,51,51,.4);color:var(--red)} .btn.red:hover{background:rgba(238,51,51,.22);box-shadow:0 4px 16px rgba(238,51,51,.18)} .btn.green{background:var(--green-dim);border-color:rgba(63,191,127,.4);color:var(--green)} .btn.green:hover{background:rgba(63,191,127,.18)} .btn.blue{background:var(--blue-dim);border-color:rgba(74,144,217,.4);color:var(--hull)} .btn.sm{padding:4px 10px;font-size:11px;border-radius:5px} .btn.ghost{background:transparent} .btn[disabled]{opacity:.4;pointer-events:none} .btn.full{width:100%;justify-content:center} .inp,select.inp,textarea.inp{ background:var(--panel2);border:1px solid var(--line2);border-radius:6px;color:var(--txt); font-family:var(--mono);font-size:12px;padding:8px 11px;outline:none;transition:border-color .15s; } .inp:focus{border-color:var(--red-dim)} .inp::placeholder{color:var(--txt3)} textarea.inp{width:100%;resize:vertical;min-height:64px;line-height:1.6} .filters{display:flex;gap:10px;margin-bottom:14px;flex-wrap:wrap;align-items:center} .fchip{ font-family:var(--mono);font-size:10.5px;padding:5px 11px;border-radius:14px;cursor:pointer; background:var(--panel);border:1px solid var(--line2);color:var(--txt2);transition:all .14s;user-select:none; } .fchip:hover{color:var(--txt);border-color:#3a3d42} .fchip.on{color:var(--amber);border-color:rgba(217,164,65,.5);background:var(--amber-dim)} .tgl{width:36px;height:19px;border-radius:10px;background:var(--line2);position:relative;cursor:pointer;transition:background .2s;flex:0 0 36px;display:inline-block;vertical-align:middle} .tgl.on{background:var(--green)} .tgl::after{content:"";position:absolute;top:2px;left:2px;width:15px;height:15px;border-radius:50%;background:#e8e9ea;transition:left .2s} .tgl.on::after{left:19px} .tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:18px} .tab{ padding:9px 18px;cursor:pointer;font-size:13px;color:var(--txt2);font-weight:600; border-bottom:2px solid transparent;transition:all .15s;user-select:none;display:flex;align-items:center;gap:8px; } .tab:hover{color:var(--txt)} .tab.on{color:#fff;border-bottom-color:var(--red)} .tab .cnt{font-family:var(--mono);font-size:9px;background:var(--red);color:#fff;border-radius:8px;padding:1px 6px;font-weight:700} .mkt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(262px,1fr));gap:13px} .mkt-card{ background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:14px; display:flex;flex-direction:column;gap:8px;transition:all .16s;position:relative;overflow:hidden; } .mkt-card:hover{border-color:var(--line2);transform:translateY(-2px);box-shadow:0 10px 26px rgba(0,0,0,.45)} .mkt-card .cat{font-family:var(--mono);font-size:9px;color:var(--txt3);letter-spacing:.12em} .mkt-card .name{font-size:14px;font-weight:600;color:#fff;line-height:1.3} .mkt-card .row{display:flex;align-items:center;gap:6px;flex-wrap:wrap} .mkt-card .price{font-family:var(--mono);font-size:16px;font-weight:700;color:var(--amber);margin-top:auto} .mkt-card .price small{font-size:10px;color:var(--txt3);font-weight:400} .mkt-card .stock{font-family:var(--mono);font-size:10px;color:var(--txt3)} .mkt-card.prime-card::after{ content:"PRIME";position:absolute;top:11px;right:-28px;transform:rotate(38deg); background:linear-gradient(90deg,var(--red),var(--amber));color:#0a0a0b;font-family:var(--mono); font-size:8px;font-weight:700;padding:2px 32px;letter-spacing:.14em; } .ev-card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:16px;margin-bottom:13px} .ev-card.past{opacity:.82} .ev-top{display:flex;align-items:flex-start;gap:14px} .ev-date{flex:0 0 58px;text-align:center;background:var(--panel2);border:1px solid var(--line2);border-radius:7px;padding:8px 4px} .ev-date .d{font-family:var(--mono);font-size:19px;font-weight:700;color:#fff} .ev-date .m{font-family:var(--mono);font-size:9px;color:var(--red);letter-spacing:.1em} .ev-body{flex:1} .ev-name{font-size:15px;font-weight:700;color:#fff} .ev-meta{font-family:var(--mono);font-size:10.5px;color:var(--txt3);margin-top:4px;display:flex;gap:14px;flex-wrap:wrap} .rsvp-row{display:flex;gap:8px;margin-top:12px;align-items:center;flex-wrap:wrap} .rsvp-btn{ font-family:var(--mono);font-size:10.5px;padding:5px 12px;border-radius:5px;cursor:pointer; border:1px solid var(--line2);color:var(--txt2);background:transparent;transition:all .14s; } .rsvp-btn:hover{border-color:#3c4046;color:var(--txt)} .rsvp-btn.on.p{color:var(--green);border-color:rgba(63,191,127,.5);background:var(--green-dim)} .rsvp-btn.on.m{color:var(--amber);border-color:rgba(217,164,65,.5);background:var(--amber-dim)} .rsvp-btn.on.a{color:var(--red);border-color:rgba(238,51,51,.5);background:var(--red-glow)} .ev-counts{margin-left:auto;font-family:var(--mono);font-size:10px;color:var(--txt3)} .ev-participants{margin-top:10px;display:flex;gap:5px;flex-wrap:wrap} .mini-av{ width:22px;height:22px;border-radius:5px;background:var(--panel2);border:1px solid var(--line2); font-family:var(--mono);font-size:8px;color:var(--txt2);display:flex;align-items:center;justify-content:center;font-weight:700; } .bp-tabs{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap} .bp-recap{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:8px} .timeline{display:flex;margin:14px 0 24px;overflow-x:auto;padding:6px 0 2px} .tl-item{flex:1;min-width:130px;position:relative;text-align:center;padding-top:22px} .tl-item::before{content:"";position:absolute;top:8px;left:0;width:100%;height:2px;background:var(--line2)} .tl-item:first-child::before{left:50%;width:50%} .tl-item:last-child::before{width:50%} .tl-item::after{ content:"";position:absolute;top:3px;left:calc(50% - 6px);width:12px;height:12px;border-radius:50%; background:var(--panel2);border:2px solid var(--line2); } .tl-item.done::after{background:var(--green);border-color:var(--green);box-shadow:0 0 8px rgba(63,191,127,.5)} .tl-item.cur::after{background:var(--red);border-color:var(--red);box-shadow:0 0 10px rgba(238,51,51,.6);animation:eyePulse 2s infinite} .tl-item .h{font-family:var(--mono);font-size:11px;font-weight:700;color:var(--amber)} .tl-item .n{font-size:12px;font-weight:600;color:var(--txt);margin-top:2px} .tl-item .d{font-family:var(--mono);font-size:9px;color:var(--txt3);margin-top:2px;padding:0 8px} .wing{margin-bottom:28px} .wing-h{ font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;margin-bottom:12px; display:flex;align-items:center;gap:10px;font-weight:700; } .wing-h::after{content:"";flex:1;height:1px;background:var(--line)} .wing-h.cmd{color:var(--red)} .wing-h.asl{color:var(--amber)} .wing-h.esc{color:var(--hull)} .wing-h.log{color:var(--green)} .wing-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px} .wing-grid.solo{grid-template-columns:1fr} .ship-card{ background:linear-gradient(135deg,rgba(111,179,232,.045),transparent 55%),var(--panel); border:1px solid var(--line);border-radius:10px;padding:16px;position:relative;transition:border-color .2s; } .ship-card:hover{border-color:rgba(111,179,232,.35)} .ship-card.mothership{border-color:rgba(238,51,51,.35);background:linear-gradient(135deg,rgba(238,51,51,.05),transparent 50%),var(--panel)} .ship-top{display:flex;gap:16px;align-items:center;flex-wrap:wrap} .ship-svg{width:150px;flex:0 0 150px;color:var(--hull);filter:drop-shadow(0 0 7px rgba(111,179,232,.4))} .ship-svg svg{width:100%;height:auto;display:block} .mothership>.ship-top>.ship-svg{color:var(--red);filter:drop-shadow(0 0 8px rgba(238,51,51,.45))} .ship-id .snm{font-size:15px;font-weight:700;color:#fff} .ship-id .scl{font-family:var(--mono);font-size:10px;color:var(--txt3);margin-top:2px;letter-spacing:.06em} .ship-id .srl{margin-top:6px;display:flex;gap:6px;flex-wrap:wrap;align-items:center} .leds{display:flex;gap:5px;margin-left:auto;align-self:flex-start} .led{width:7px;height:7px;border-radius:50%} .led.g{background:var(--green);box-shadow:0 0 6px var(--green);animation:ledBlink 2.6s infinite} .led.a{background:var(--amber);box-shadow:0 0 6px var(--amber);animation:ledBlink 1.9s infinite .4s} .led.r{background:var(--red);box-shadow:0 0 6px var(--red);animation:ledBlink 3.1s infinite .8s} @keyframes ledBlink{0%,100%{opacity:1}50%{opacity:.35}} .crew-gauge{margin-top:12px;display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:10px;color:var(--txt3)} .crew-gauge .pbar{flex:1;margin-top:0} .crew{display:grid;grid-template-columns:repeat(auto-fill,minmax(178px,1fr));gap:7px;margin-top:10px} .crew-slot{ display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:6px; padding:6px 9px;background:var(--panel2);font-size:11.5px;min-height:38px;transition:border-color .15s; } .crew-slot .rr{font-family:var(--mono);font-size:9px;color:var(--txt3);letter-spacing:.05em;flex:1;line-height:1.4} .crew-slot .rr b{display:block;font-size:11px;color:var(--txt);font-family:var(--sans);letter-spacing:0} .crew-slot.taken{border-color:rgba(63,191,127,.3)} .crew-slot.mine{border-color:rgba(63,191,127,.55);background:var(--green-dim)} .crew-slot.free{border-style:dashed} .crew-slot .take{ font-family:var(--mono);font-size:9px;color:var(--amber);cursor:pointer;border:1px solid rgba(217,164,65,.4); border-radius:4px;padding:3px 7px;white-space:nowrap;transition:all .14s;background:transparent; } .crew-slot .take:hover{background:var(--amber-dim)} .crew-slot .take.rel{color:var(--txt3);border-color:var(--line2)} .crew-slot .take.rel:hover{color:var(--red);border-color:rgba(238,51,51,.4)} .hangar-h,.cale-h{ font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;color:var(--red);margin:16px 0 8px; display:flex;align-items:center;gap:8px; } .cale-h{color:var(--amber)} .hangar{padding-left:28px;position:relative} .hangar::before{ content:"";position:absolute;left:11px;top:-4px;bottom:22px;width:2px; background:linear-gradient(180deg,var(--red),rgba(238,51,51,.12));box-shadow:0 0 6px rgba(238,51,51,.3); } .hangar .ship-card{margin-bottom:10px;padding:12px 14px} .hangar .ship-card::before{ content:"";position:absolute;left:-17px;top:30px;width:17px;height:2px; background:var(--red);box-shadow:0 0 6px rgba(238,51,51,.4); } .hangar .ship-card::after{ content:"";position:absolute;left:-4px;top:27px;width:7px;height:7px;border-radius:50%; background:var(--red);box-shadow:0 0 7px var(--red); } .hangar .ship-svg{width:96px;flex:0 0 96px} .cale{padding-left:28px;position:relative} .cale::before{ content:"";position:absolute;left:11px;top:-4px;bottom:16px;width:2px; background:linear-gradient(180deg,var(--amber),rgba(217,164,65,.1)); } .cargo-box{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:13px 15px;position:relative} .cargo-box::before{content:"";position:absolute;left:-17px;top:22px;width:17px;height:2px;background:var(--amber)} .cargo-line{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;color:var(--txt2);padding:5px 0;border-bottom:1px dashed var(--line)} .cargo-line:last-of-type{border-bottom:none} .cargo-line .q{color:var(--amber)} .colis-card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:16px;margin-bottom:13px;transition:border-color .18s} .colis-card.late{border-color:rgba(238,51,51,.5);background:linear-gradient(90deg,rgba(238,51,51,.06),transparent 50%),var(--panel)} .chain{display:flex;margin:14px 0 4px} .chain .st{flex:1;position:relative;text-align:center;font-family:var(--mono);font-size:8.5px;color:var(--txt3);letter-spacing:.05em;padding-top:20px} .chain .st::before{content:"";position:absolute;top:7px;left:-50%;width:100%;height:2px;background:var(--line2)} .chain .st:first-child::before{display:none} .chain .st::after{ content:"";position:absolute;top:2px;left:calc(50% - 6px);width:12px;height:12px;border-radius:50%; background:var(--panel2);border:2px solid var(--line2); } .chain .st.done{color:var(--green)} .chain .st.done::before{background:var(--green)} .chain .st.done::after{background:var(--green);border-color:var(--green);box-shadow:0 0 7px rgba(63,191,127,.5)} .chain .st.cur{color:var(--amber)} .chain .st.cur::before{background:var(--amber)} .chain .st.cur::after{background:var(--amber-dim);border-color:var(--amber);box-shadow:0 0 8px rgba(217,164,65,.5);animation:eyePulse 2.2s infinite} .colis-msgs{margin-top:12px;border-top:1px dashed var(--line);padding-top:10px} .cmsg{display:flex;gap:9px;font-size:11.5px;color:var(--txt2);padding:4px 0;align-items:baseline} .cmsg .w{font-family:var(--mono);font-size:10px;color:var(--hull);font-weight:700;white-space:nowrap} .cmsg .tm{margin-left:auto;font-family:var(--mono);font-size:9px;color:var(--txt3)} .auction{ background:linear-gradient(135deg,rgba(217,164,65,.07),transparent 55%),var(--panel); border:1px solid rgba(217,164,65,.35);border-radius:10px;padding:22px;position:relative;overflow:hidden; } .auction::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--amber),transparent)} .auc-count{font-family:var(--mono);font-size:24px;font-weight:700;color:var(--red);letter-spacing:.06em} .auc-bid{font-family:var(--mono);font-size:32px;font-weight:700;color:var(--amber)} .auc-hist{font-family:var(--mono);font-size:11px;color:var(--txt3);line-height:1.6} .auc-hist-row{display:flex;gap:10px;padding:6px 0;border-bottom:1px dashed var(--line);align-items:baseline} .auc-hist-row:last-child{border-bottom:none} .auc-hist-row b{color:var(--txt2)} .auc-hist-row .amt{color:var(--amber);font-weight:700;margin-left:auto} .auc-locked{ border:1px dashed var(--line2);border-radius:10px;padding:22px;text-align:center; font-family:var(--mono);font-size:11px;color:var(--txt3);line-height:2;position:relative; } .auc-locked .lock{font-size:22px;display:block;margin-bottom:6px} .feed{list-style:none} .feed li{display:flex;gap:11px;padding:9px 0;border-bottom:1px solid var(--line);font-size:12.5px;color:var(--txt2);align-items:flex-start} .feed li:last-child{border-bottom:none} .feed .fdot{width:7px;height:7px;border-radius:50%;margin-top:5px;flex:0 0 7px} .feed .fdot.a{background:var(--amber);box-shadow:0 0 6px rgba(217,164,65,.6)} .feed .fdot.g{background:var(--green);box-shadow:0 0 6px rgba(63,191,127,.5)} .feed .fdot.r{background:var(--red);box-shadow:0 0 6px rgba(238,51,51,.6)} .feed .fdot.b{background:var(--blue)} .feed b{color:var(--txt);font-weight:600} .feed .amt{font-family:var(--mono);color:var(--amber)} .feed .tm{margin-left:auto;font-family:var(--mono);font-size:9.5px;color:var(--txt3);white-space:nowrap;padding-left:10px} .grade-row{ display:flex;align-items:center;gap:16px;padding:13px 16px;border:1px solid var(--line);border-radius:8px; margin-bottom:9px;background:var(--panel);transition:all .16s; } .grade-row.cur{border-color:rgba(238,51,51,.45);background:linear-gradient(90deg,var(--red-glow),transparent 60%)} .grade-row.done{opacity:.75} .grade-num{ font-family:var(--mono);font-size:15px;font-weight:700;width:38px;height:38px;flex:0 0 38px;border-radius:7px; display:flex;align-items:center;justify-content:center;border:1px solid var(--line2);color:var(--txt3);background:var(--panel2); } .grade-row.done .grade-num{color:var(--green);border-color:rgba(63,191,127,.4)} .grade-row.cur .grade-num{color:var(--red);border-color:rgba(238,51,51,.5);box-shadow:0 0 12px var(--red-glow)} .grade-name{font-size:14px;font-weight:700;color:var(--txt)} .grade-row.cur .grade-name{color:#fff} .grade-req{font-family:var(--mono);font-size:10.5px;color:var(--txt3);margin-top:3px} .grade-tag{margin-left:auto;display:flex;gap:8px;align-items:center} .q-item{ display:flex;gap:13px;align-items:center;padding:13px 15px;border:1px solid var(--line);border-radius:8px; margin-bottom:9px;background:var(--panel);flex-wrap:wrap;transition:all .3s; } .q-item.leaving{opacity:0;transform:translateX(28px)} .q-type{ font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.1em;border-radius:4px; padding:3px 8px;flex:0 0 auto; } .q-type.cap{color:var(--green);border:1px solid rgba(63,191,127,.4);background:var(--green-dim)} .q-type.mis{color:var(--amber);border:1px solid rgba(217,164,65,.4);background:var(--amber-dim)} .q-type.rec{color:var(--red);border:1px solid rgba(238,51,51,.4);background:var(--red-glow)} .q-type.cpt{color:var(--hull);border:1px solid rgba(74,144,217,.4);background:var(--blue-dim)} .q-body{flex:1;min-width:240px} .q-body .qt{font-weight:600;color:var(--txt);font-size:13px} .q-body .qs{font-family:var(--mono);font-size:10px;color:var(--txt3);margin-top:3px} .q-acts{display:flex;gap:7px;align-items:center;flex-wrap:wrap} .paycd{font-family:var(--mono);font-size:36px;font-weight:700;color:#fff;letter-spacing:.06em;text-shadow:0 0 24px rgba(217,164,65,.35)} .pay-line{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11.5px;padding:7px 0;border-bottom:1px dashed var(--line);align-items:baseline} .pay-line:last-child{border-bottom:none} .pay-line .k{color:var(--txt2)} .pay-line .k small{color:var(--txt3);display:block;font-size:9.5px;margin-top:2px} .pay-line .v{color:var(--amber);font-weight:700} .pay-hist{border:1px solid var(--line);border-radius:8px;margin-bottom:10px;overflow:hidden} details.arch{border:1px solid var(--line);border-radius:8px;margin-bottom:10px;background:var(--panel,rgba(255,255,255,.02))} details.arch>summary{cursor:pointer;padding:11px 14px;display:flex;gap:9px;align-items:center;flex-wrap:wrap;list-style:none;user-select:none} details.arch>summary::-webkit-details-marker{display:none} details.arch[open]>summary{border-bottom:1px solid var(--line)} details.arch .arch-body{padding:8px 14px 12px} details.arch .arch-body .pay-line .k{display:flex;gap:8px;align-items:flex-start;flex-direction:row;flex-wrap:wrap} .pay-hist-head{display:flex;justify-content:space-between;align-items:center;padding:11px 15px;cursor:pointer;background:var(--panel);transition:background .15s} .pay-hist-head:hover{background:var(--panel2)} .pay-hist-body{padding:4px 15px 12px;background:var(--panel2);display:none} .pay-hist.open .pay-hist-body{display:block} .cra-row{display:flex;align-items:center;gap:10px;padding:7px 10px;border:1px solid var(--line);border-radius:6px;margin-bottom:6px;background:var(--panel2);font-size:12.5px} .ckb{ width:18px;height:18px;flex:0 0 18px;border-radius:4px;border:1px solid var(--line2);cursor:pointer; display:inline-flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:12px; color:transparent;transition:all .15s;background:var(--panel);user-select:none; } .ckb.on{border-color:var(--green);color:var(--green);background:var(--green-dim)} .scan-box{border:1px dashed rgba(238,51,51,.35);border-radius:8px;padding:18px;text-align:center;font-family:var(--mono);font-size:11px;color:var(--txt2)} .scan-anim{height:3px;background:linear-gradient(90deg,transparent,var(--red),transparent);border-radius:2px;margin-top:12px;animation:scanMove 1s linear infinite;background-size:200% 100%} @keyframes scanMove{from{background-position:200% 0}to{background-position:-200% 0}} .cap-line{border:1px solid var(--line);border-radius:8px;padding:12px 14px;margin-bottom:10px;background:var(--panel2)} .cap-grid{display:grid;grid-template-columns:2fr 1.4fr .7fr .8fr .7fr;gap:8px;margin-top:8px} .cap-grid .inp{width:100%;font-size:11px;padding:6px 8px} .cap-lab{font-family:var(--mono);font-size:8.5px;color:var(--txt3);letter-spacing:.1em;margin-bottom:3px} .uex{font-family:var(--mono);font-size:10px;color:var(--hull);margin-top:8px} .dest-pick{display:flex;gap:8px;margin-top:9px;align-items:center;flex-wrap:wrap} .modal-bg{ position:fixed;inset:0;background:rgba(3,3,4,.78);backdrop-filter:blur(3px);z-index:6000; display:none;align-items:center;justify-content:center; } .modal-bg.on{display:flex} .modal{ width:560px;max-width:94vw;max-height:88vh;overflow-y:auto;background:var(--panel); border:1px solid var(--line2);border-radius:10px;padding:24px;animation:fadeUp .25s ease; box-shadow:0 30px 80px rgba(0,0,0,.8); } .modal.wide{width:760px} .modal h3{font-size:17px;color:#fff;margin-bottom:4px} .modal .msub{font-family:var(--mono);font-size:10px;color:var(--txt3);margin-bottom:18px;letter-spacing:.06em} .form-row{margin-bottom:14px} .form-row label{display:block;font-family:var(--mono);font-size:10px;color:var(--txt3);letter-spacing:.1em;margin-bottom:6px} .form-row .inp{width:100%} .modal-acts{display:flex;gap:10px;justify-content:flex-end;margin-top:20px;flex-wrap:wrap} .ob-steps{display:flex;gap:6px;margin-bottom:20px} .ob-steps>div{flex:1;height:3px;border-radius:2px;background:var(--line2);transition:background .3s} .ob-steps>div.on{background:var(--red);box-shadow:0 0 8px var(--red-glow)} .ob-check{display:flex;align-items:center;gap:11px;padding:9px 12px;border:1px solid var(--line);border-radius:7px;margin-bottom:8px;font-size:12.5px;color:var(--txt2)} .ob-check.done{border-color:rgba(63,191,127,.35);color:var(--txt)} .ob-check .bx{ width:18px;height:18px;flex:0 0 18px;border-radius:4px;border:1px solid var(--line2); display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:11px;color:transparent; } .ob-check.done .bx{border-color:var(--green);color:var(--green);background:var(--green-dim)} #toasts{position:fixed;bottom:22px;right:22px;z-index:9000;display:flex;flex-direction:column;gap:9px;align-items:flex-end} .toast{ background:var(--panel);border:1px solid var(--line2);border-left:3px solid var(--green);border-radius:7px; padding:11px 16px;font-size:12.5px;color:var(--txt);max-width:380px;box-shadow:0 14px 40px rgba(0,0,0,.6); animation:toastIn .3s cubic-bezier(.2,.9,.3,1.2);display:flex;gap:10px;align-items:center; } .toast.err{border-left-color:var(--red)} .toast.amber{border-left-color:var(--amber)} .toast.blue{border-left-color:var(--hull)} .toast .tt{font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:var(--txt3);display:block;margin-bottom:2px} .toast.out{animation:toastOut .3s ease forwards} @keyframes toastIn{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:none}} @keyframes toastOut{to{opacity:0;transform:translateX(30px)}} @keyframes flashAmber{0%{color:#fff;text-shadow:0 0 14px rgba(217,164,65,.9)}100%{}} .flash{animation:flashAmber .8s ease} .graph-wrap{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:14px} .graph-legend{display:flex;gap:18px;font-family:var(--mono);font-size:10px;color:var(--txt3);margin-top:8px;flex-wrap:wrap} .graph-legend i{display:inline-block;width:10px;height:3px;border-radius:2px;margin-right:6px;vertical-align:middle} .kv{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11.5px;padding:6px 0;border-bottom:1px dashed var(--line);gap:10px} .kv:last-child{border-bottom:none} .kv .k{color:var(--txt3)} .kv .v{color:var(--txt);text-align:right} .kv .v.amber{color:var(--amber)} .kv .v.green{color:var(--green)} .kv .v.red{color:var(--red)} .tier-strip{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 4px} .badge-pill{ display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(217,164,65,.4);border-radius:14px; padding:4px 12px;font-family:var(--mono);font-size:10.5px;color:var(--amber);background:var(--amber-dim); } .empty{ padding:26px;text-align:center;font-family:var(--mono);font-size:11px;color:var(--txt3); border:1px dashed var(--line2);border-radius:8px;line-height:2; } .shortcut{ display:flex;flex-direction:column;gap:6px;align-items:flex-start;padding:16px;cursor:pointer; background:var(--panel);border:1px solid var(--line);border-radius:8px;transition:all .16s; } .shortcut:hover{border-color:rgba(238,51,51,.4);transform:translateY(-2px);box-shadow:0 10px 26px rgba(0,0,0,.4)} .shortcut .ic{font-size:19px} .shortcut .t{font-weight:700;color:#fff;font-size:13.5px} .shortcut .s{font-family:var(--mono);font-size:10px;color:var(--txt3)} .philo{ text-align:center;font-size:15px;color:#fff;font-weight:600;padding:18px 20px;border:1px solid rgba(217,164,65,.3); border-radius:10px;background:linear-gradient(90deg,var(--amber-dim),transparent,var(--amber-dim)); margin-bottom:20px;line-height:1.6; } .philo small{display:block;font-family:var(--mono);font-size:10px;color:var(--txt3);font-weight:400;margin-top:6px;letter-spacing:.08em} .rsvp-cols{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:12px} .rsvp-col{border:1px solid var(--line);border-radius:7px;padding:9px 11px;background:var(--panel2)} .rsvp-col .rc-h{font-family:var(--mono);font-size:9px;letter-spacing:.12em;margin-bottom:7px;font-weight:700} .rsvp-col.p .rc-h{color:var(--green)} .rsvp-col.m .rc-h{color:var(--amber)} .rsvp-col.a .rc-h{color:var(--red)} .rsvp-name{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--txt);padding:2.5px 0} .rdot{width:7px;height:7px;border-radius:50%;flex:0 0 7px;background:var(--txt3)} .rdot.hcm{background:var(--red);box-shadow:0 0 5px rgba(238,51,51,.6)} .rdot.col{background:var(--amber);box-shadow:0 0 5px rgba(217,164,65,.6)} .rdot.lvt{background:var(--blue);box-shadow:0 0 5px rgba(74,144,217,.6)} .rdot.loup{background:#9aa0a8} .rsvp-col .none{font-family:var(--mono);font-size:10px;color:var(--txt3)} .seller{display:inline-flex;align-items:center;gap:7px;cursor:pointer;font-size:12px;color:var(--txt2);border:1px solid var(--line);border-radius:6px;padding:3px 9px 3px 4px;transition:border-color .15s} .seller:hover{border-color:rgba(217,164,65,.45);color:var(--txt)} .seller b{color:var(--txt);font-weight:600} .ph-edit{display:grid;grid-template-columns:76px 1.1fr 1.8fr auto;gap:7px;margin-bottom:7px;align-items:center} .ph-edit .inp{width:100%;padding:6px 8px;font-size:11px} .rec-item{display:flex;align-items:center;gap:10px;padding:8px 11px;border:1px solid var(--line);border-radius:7px;margin-bottom:7px;background:var(--panel2);flex-wrap:wrap} .rec-item .obj{flex:1;min-width:170px;color:var(--txt);font-size:12.5px} .rec-btn{font-family:var(--mono);font-size:10px;padding:4px 10px;border-radius:5px;cursor:pointer;border:1px solid var(--line2);color:var(--txt2);background:transparent;transition:all .14s} .rec-btn:hover{color:var(--txt);border-color:#3c4046} .rec-btn.on.ok{color:var(--green);border-color:rgba(63,191,127,.5);background:var(--green-dim)} .rec-btn.on.bug{color:var(--amber);border-color:rgba(217,164,65,.5);background:var(--amber-dim)} .rec-btn.on.wipe{color:var(--red);border-color:rgba(238,51,51,.5);background:var(--red-glow)} .fleet-live{ border:1px dashed rgba(217,164,65,.5);border-radius:7px;background:var(--amber-dim); font-family:var(--mono);font-size:10.5px;color:var(--amber);padding:8px 13px;margin-bottom:14px; display:flex;align-items:center;gap:9px;letter-spacing:.05em;line-height:1.6; } .fleet-tools{ display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:10px; border:1px dashed rgba(238,51,51,.3);border-radius:7px;padding:7px 9px;background:rgba(238,51,51,.03); } .fleet-tools .lbl{font-family:var(--mono);font-size:8.5px;color:var(--red);letter-spacing:.12em} .fleet-tools select.inp{padding:4px 7px;font-size:10.5px;max-width:210px} .gab-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;max-height:42vh;overflow-y:auto;padding-right:4px} .gab-card{ display:flex;gap:11px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:9px 11px; cursor:pointer;background:var(--panel2);transition:all .14s; } .gab-card:hover{border-color:rgba(111,179,232,.4)} .gab-card.sel{border-color:var(--red);background:linear-gradient(90deg,var(--red-glow),transparent 70%);box-shadow:0 0 12px var(--red-glow)} .gab-card .ship-svg{width:92px;flex:0 0 92px;color:var(--hull)} .gab-card .gn{font-weight:700;color:#fff;font-size:12.5px} .gab-card .gc{font-family:var(--mono);font-size:9px;color:var(--txt3);margin-top:2px} .gab-card .gs{font-family:var(--mono);font-size:9px;color:var(--txt2);margin-top:3px} .cargo-edit{display:grid;grid-template-columns:1.6fr .6fr .7fr auto;gap:6px;margin-bottom:6px;align-items:center} .cargo-edit .inp{width:100%;padding:5px 8px;font-size:11px} .cale-warn{ margin-top:8px;font-family:var(--mono);font-size:10px;color:var(--red);border:1px dashed rgba(238,51,51,.5); border-radius:6px;padding:6px 9px;background:var(--red-glow);letter-spacing:.04em;line-height:1.6; } @media (max-width:760px){.gab-grid{grid-template-columns:1fr}} @media (max-width:900px){.rsvp-cols{grid-template-columns:1fr}} @media (max-width:1100px){.bp-recap{grid-template-columns:repeat(2,1fr)}.wing-grid{grid-template-columns:1fr}} @media (max-width:1000px){.g2,.g3,.g4{grid-template-columns:1fr 1fr}.cap-grid{grid-template-columns:1fr 1fr}} @media (max-width:760px){.g2,.g3,.g4,.bp-recap{grid-template-columns:1fr}.sidebar{display:none}.notif-drop{right:10px;width:min(350px,94vw)}} .help-body,.lu6-msg .txt{font-family:var(--serif);font-size:13.5px;line-height:1.75} .blk-h{font-family:var(--display);font-size:9.5px} @media (min-width:2200px){ .view{max-width:1700px} } @media (min-width:3000px){ .view{max-width:1800px} }
/* === ldyx-wahou-css === */
.ldyx-scene{position:relative;height:calc(100vh - 150px);min-height:540px;border:1px solid var(--line,#1d1f22);
  border-radius:10px;overflow:hidden;background:#050505}
.ldyx-scene canvas{position:absolute;inset:0;touch-action:none}
.ldyx-lab{font-family:var(--mono,'JetBrains Mono',monospace);font-size:10px;letter-spacing:.14em;color:var(--txt3,#787c83);text-transform:uppercase}
.ldyx-hud{position:absolute;z-index:5}
.ldyx-chip{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono,monospace);font-size:10px;
  border-radius:4px;padding:2px 7px;border:1px solid var(--line2,#26282c);color:var(--txt2,#8b8f96);white-space:nowrap}
/* en-tête d'op */
.ldyx-ophead{top:12px;left:14px;right:14px;display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}
.ldyx-ophead h2{font-family:var(--display,Orbitron,monospace);font-size:15px;font-weight:700;letter-spacing:.07em;color:#fff;margin:0;text-transform:uppercase}
.ldyx-ophead h2 em{color:var(--red,#ee3333);font-style:normal}
.ldyx-opmeta{display:flex;gap:16px;flex-wrap:wrap;font-family:var(--mono,monospace);font-size:9.5px;letter-spacing:.09em;color:var(--txt3,#787c83);padding-top:4px}
.ldyx-opmeta b{color:var(--txt2,#8b8f96);font-weight:500}
.ldyx-h0{margin-left:auto;text-align:right}
.ldyx-h0 .n{font-family:var(--mono,monospace);font-size:20px;font-weight:700;color:var(--amber,#d9a441);font-variant-numeric:tabular-nums;text-shadow:0 0 16px rgba(217,164,65,.3)}
.ldyx-h0 .n.ldyx-close{color:var(--red,#ee3333)}
.ldyx-h0 small{display:block;font-family:var(--mono,monospace);font-size:8.5px;letter-spacing:.14em;color:var(--txt3,#787c83)}
/* sélecteur gauche */
.ldyx-list{top:64px;left:14px;width:196px;display:flex;flex-direction:column;gap:7px;max-height:calc(100% - 140px);overflow-y:auto}
.ldyx-item{position:relative;text-align:left;border:1px solid var(--line,#1d1f22);border-left:3px solid var(--line3,#34373c);border-radius:7px;
  padding:9px 11px;background:rgba(13,14,16,.82);cursor:pointer;transition:all .15s;font:inherit;color:inherit}
.ldyx-item:hover{border-color:var(--line3,#34373c)}
.ldyx-item.ldyx-on{background:linear-gradient(90deg,rgba(238,51,51,.10),rgba(13,14,16,.85));border-color:var(--red-line,rgba(238,51,51,.28))}
.ldyx-item .n{font-family:var(--mono,monospace);font-size:10.5px;font-weight:700;letter-spacing:.05em;color:var(--txt,#d6d8db);padding-right:30px;display:block}
.ldyx-item.ldyx-on .n{color:#fff}
.ldyx-item .d{font-family:var(--mono,monospace);font-size:9px;color:var(--txt3,#787c83);margin-top:3px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.ldyx-item .pct{position:absolute;top:9px;right:10px;font-family:var(--mono,monospace);font-size:10px;color:var(--amber,#d9a441)}
.ldyx-item.r1{border-left-color:var(--green,#3fbf7f)} .ldyx-item.r2{border-left-color:var(--amber,#d9a441)} .ldyx-item.r3{border-left-color:var(--red,#ee3333)}
.ldyx-risk{font-size:8.5px;padding:1px 6px;border-radius:3px;letter-spacing:.08em;font-family:var(--mono,monospace)}
.ldyx-risk.r1{color:var(--green,#3fbf7f);background:rgba(63,191,127,.1);border:1px solid rgba(63,191,127,.4)}
.ldyx-risk.r2{color:var(--amber,#d9a441);background:rgba(217,164,65,.12);border:1px solid rgba(217,164,65,.4)}
.ldyx-risk.r3{color:var(--red,#ee3333);background:rgba(238,51,51,.14);border:1px solid rgba(238,51,51,.28)}
/* dossier / panneau droit */
.ldyx-pane{top:64px;right:14px;bottom:14px;width:min(320px,42%);border:1px solid var(--line,#1d1f22);border-radius:8px;
  background:rgba(10,10,11,.88);backdrop-filter:blur(5px);padding:15px 16px;overflow-y:auto}
.ldyx-pane .eyebrow{font-family:var(--mono,monospace);font-size:9px;letter-spacing:.13em;color:var(--red,#ee3333);margin-bottom:6px}
.ldyx-pane h3{font-family:var(--display,Orbitron,monospace);font-size:14px;font-weight:700;letter-spacing:.05em;color:#fff;margin:0 0 8px;text-transform:uppercase}
.ldyx-brief{font-family:var(--serif,'IBM Plex Serif',serif);font-size:12.5px;font-style:italic;color:var(--txt2,#8b8f96);
  line-height:1.7;border-left:2px solid var(--line2,#26282c);padding-left:11px;margin-bottom:11px}
.ldyx-row{display:flex;justify-content:space-between;gap:10px;padding:5px 0;border-bottom:1px solid var(--line,#1d1f22);font-family:var(--mono,monospace);font-size:10px}
.ldyx-row .k{color:var(--txt3,#787c83);letter-spacing:.1em}
.ldyx-row .v{color:var(--txt,#d6d8db);text-align:right}
.ldyx-row .v.ok{color:var(--green,#3fbf7f)} .ldyx-row .v.am{color:var(--amber,#d9a441)}
.ldyx-qbar{height:5px;background:#151619;border-radius:3px;overflow:hidden;margin-top:6px}
.ldyx-qbar>div{height:100%;background:linear-gradient(90deg,#1d5c40,var(--green,#3fbf7f));transition:width .5s}
.ldyx-acts{display:flex;gap:8px;margin-top:13px;flex-wrap:wrap}
.ldyx-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 15px;border-radius:6px;border:none;cursor:pointer;
  font-family:var(--sans,'Exo 2',sans-serif);font-size:12px;font-weight:700;letter-spacing:.03em;transition:all .15s}
.ldyx-btn.solid{background:var(--red,#ee3333);color:#fff}
.ldyx-btn.solid:hover{background:#ff4444;box-shadow:0 6px 22px rgba(238,51,51,.4);transform:translateY(-1px)}
.ldyx-btn.ghost{background:transparent;border:1px solid var(--line2,#26282c);color:var(--txt2,#8b8f96);font-family:var(--mono,monospace);font-size:10px}
.ldyx-btn.ghost:hover{border-color:#5865F2;color:#8b95f6}
/* flotte + postes (salle de guerre) */
.ldyx-sh{display:flex;align-items:center;gap:9px;width:100%;text-align:left;border:1px solid var(--line,#1d1f22);border-radius:7px;
  padding:7px 9px;margin-bottom:6px;background:var(--panel,#0d0e10);cursor:pointer;transition:all .14s;font:inherit;color:inherit}
.ldyx-sh:hover{border-color:var(--line3,#34373c)}
.ldyx-sh.ldyx-on{border-color:rgba(111,179,232,.4);background:linear-gradient(90deg,rgba(111,179,232,.10),var(--panel,#0d0e10))}
.ldyx-sh .sil{width:40px;height:26px;flex:0 0 40px;color:var(--hull,#6fb3e8)}
.ldyx-sh .sil svg{width:100%;height:100%}
.ldyx-sh .sil.msk{background:var(--hull,#6fb3e8);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;opacity:.9}
.ldyx-sh .nm{font-family:var(--mono,monospace);font-size:10.5px;font-weight:700;color:var(--txt,#d6d8db);letter-spacing:.04em}
.ldyx-sh .cl{font-family:var(--mono,monospace);font-size:8.5px;color:var(--txt3,#787c83);letter-spacing:.06em;margin-top:1px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px;display:inline-block;vertical-align:bottom}
.ldyx-sh .st{margin-left:auto;font-family:var(--mono,monospace);font-size:9px;color:var(--txt3,#787c83);white-space:nowrap}
.ldyx-sh .st b{color:var(--hull,#6fb3e8);font-weight:500}
.ldyx-seat{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--line,#1d1f22);
  border-radius:6px;padding:6px 9px;margin-top:6px;background:var(--panel,#0d0e10)}
.ldyx-seat .r{font-family:var(--mono,monospace);font-size:10px;color:var(--txt2,#8b8f96)}
.ldyx-seat .who{font-family:var(--mono,monospace);font-size:10px;color:var(--txt,#d6d8db)}
.ldyx-seat .who.ldyx-me{color:var(--amber,#d9a441)}
.ldyx-seat .who.fixe{color:var(--txt2,#8b8f96)}
.ldyx-take{font-family:var(--mono,monospace);font-size:9px;letter-spacing:.08em;color:var(--green,#3fbf7f);
  border:1px solid rgba(63,191,127,.4);border-radius:4px;padding:2px 7px;background:rgba(63,191,127,.1);cursor:pointer}
.ldyx-take:hover{background:rgba(63,191,127,.2)}
.ldyx-drop{font-family:var(--mono,monospace);font-size:9px;color:var(--txt3,#787c83);border:1px solid var(--line2,#26282c);border-radius:4px;padding:2px 7px;background:transparent;cursor:pointer}
.ldyx-note{font-family:var(--mono,monospace);font-size:9px;color:var(--txt3,#787c83);line-height:1.7;margin-top:9px}
.ldyx-note em{color:var(--hull,#6fb3e8);font-style:normal}
/* phases */
.ldyx-phases{position:absolute;left:50%;bottom:34px;transform:translateX(-50%);display:flex;gap:8px;flex-wrap:wrap;justify-content:center;z-index:5;max-width:calc(100% - 28px)}
.ldyx-ph{border:1px solid var(--line2,#26282c);border-radius:6px;padding:6px 12px;text-align:left;background:rgba(13,14,16,.85);cursor:pointer;transition:all .15s;font:inherit;color:inherit}
.ldyx-ph.ldyx-on{border-color:rgba(111,179,232,.4);background:linear-gradient(180deg,rgba(111,179,232,.12),rgba(13,14,16,.9))}
.ldyx-ph .t{font-family:var(--mono,monospace);font-size:10px;font-weight:700;letter-spacing:.08em;color:var(--txt,#d6d8db)}
.ldyx-ph.ldyx-on .t{color:var(--hull,#6fb3e8)}
.ldyx-ph .s{font-family:var(--mono,monospace);font-size:8.5px;color:var(--txt3,#787c83);margin-top:2px;max-width:200px}
.ldyx-hint{position:absolute;left:0;right:0;bottom:12px;text-align:center;font-family:var(--mono,monospace);font-size:9px;letter-spacing:.12em;color:var(--txt3,#787c83);z-index:4;pointer-events:none}
.ldyx-ph .s{display:block;max-width:190px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ldyx-hint em{color:var(--txt2,#8b8f96);font-style:normal}
#ldyx-readout{position:absolute;left:14px;bottom:14px;font-family:var(--mono,monospace);font-size:9.5px;color:var(--txt3,#787c83);letter-spacing:.08em;line-height:1.8;z-index:4;pointer-events:none}
#ldyx-readout b{color:var(--txt2,#8b8f96);font-weight:500;font-variant-numeric:tabular-nums}
#ldyx-tip{position:fixed;z-index:99000;pointer-events:none;opacity:0;transition:opacity .12s;background:rgba(10,10,11,.94);
  border:1px solid rgba(111,179,232,.4);border-radius:6px;padding:7px 10px;font-family:var(--mono,monospace);font-size:10px;line-height:1.6;color:var(--txt,#d6d8db);max-width:240px}
#ldyx-tip .h{color:var(--hull,#6fb3e8);font-weight:700;letter-spacing:.06em}
#ldyx-tip .d{color:var(--txt3,#787c83);font-size:9px}
/* vide / erreurs */
.ldyx-vide{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;z-index:3;text-align:center;padding:20px}
.ldyx-vide .t{font-family:var(--display,Orbitron,monospace);font-size:14px;letter-spacing:.08em;color:var(--txt2,#8b8f96);text-transform:uppercase}
.ldyx-vide .s{font-family:var(--mono,monospace);font-size:10px;color:var(--txt3,#787c83);max-width:420px;line-height:1.8}
/* présence en ligne — badge + panneau, officiers seuls */
/* « Ma flotte » dans Mon profil */
.ldyx-blk{font-family:var(--mono,monospace);font-size:10px;letter-spacing:.14em;color:var(--txt3,#787c83);
  margin:26px 0 10px;display:flex;align-items:center;gap:10px;text-transform:uppercase}
.ldyx-blk::after{content:"";flex:1;height:1px;background:var(--line,#1d1f22)}
.ldyx-profil-flotte{border:1px solid var(--line,#1d1f22);border-radius:8px;padding:15px 17px;background:var(--panel,#0d0e10)}
.ldyx-fl-liste{display:flex;flex-wrap:wrap;gap:7px}
.ldyx-fl-i{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line2,#26282c);
  border-radius:6px;padding:5px 8px 5px 11px;background:var(--panel2,#111214)}
.ldyx-fl-i .mo{font-family:var(--mono,monospace);font-size:11px;font-weight:700;color:var(--hull,#6fb3e8)}
.ldyx-fl-i .su{font-family:var(--serif,'IBM Plex Serif',serif);font-style:italic;font-size:12px;color:var(--txt2,#8b8f96)}
.ldyx-fl-x{background:none;border:none;color:var(--txt3,#787c83);cursor:pointer;font-size:11px;line-height:1;padding:2px 3px}
.ldyx-fl-x:hover{color:var(--red,#ee3333)}
/* panneau « qui a quoi » de l'organisateur */
.ldyx-flotte-l{padding:4px 12px 8px;display:flex;flex-direction:column;gap:6px;max-height:40vh;overflow-y:auto}
.ldyx-flotte-i{display:flex;align-items:baseline;gap:9px;padding:5px 8px;border:1px solid var(--line,#1d1f22);
  border-radius:5px;background:var(--panel,#0d0e10)}
.ldyx-flotte-i{align-items:center !important}
.ldyx-flotte-i .si{width:30px;height:19px;flex:0 0 30px;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;
  background:var(--hull,#6fb3e8);opacity:.8}
.ldyx-flotte-i .mo{font-family:var(--mono,monospace);font-size:10.5px;font-weight:700;color:var(--hull,#6fb3e8);flex:0 0 auto}
.ldyx-flotte-i .qui{font-family:var(--mono,monospace);font-size:9px;color:var(--txt3,#787c83);flex:1;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ldyx-flotte-i .n{font-family:var(--mono,monospace);font-size:9.5px;color:var(--amber,#d9a441)}
/* journal des notifications */
.ldyx-nj-bar{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-bottom:11px;
  padding-bottom:9px;border-bottom:1px solid var(--line,#1d1f22)}
.ldyx-nj-bar .f{font-family:var(--mono,monospace);font-size:9.5px;letter-spacing:.07em;color:var(--txt3,#787c83);
  border:1px solid var(--line2,#26282c);border-radius:4px;padding:3px 8px;background:transparent;cursor:pointer;transition:all .14s}
.ldyx-nj-bar .f:hover{color:var(--txt2,#8b8f96);border-color:var(--line3,#34373c)}
.ldyx-nj-bar .f.on{color:#fff;border-color:var(--red-line,rgba(238,51,51,.28));background:var(--red-soft,rgba(238,51,51,.14))}
.ldyx-nj-l{display:flex;flex-direction:column;gap:7px}
.ldyx-nj-i{border:1px solid var(--line,#1d1f22);border-left:3px solid var(--line3,#34373c);border-radius:6px;
  padding:8px 11px;background:var(--panel,#0d0e10)}
.ldyx-nj-i>summary{cursor:pointer;list-style:none;outline:none}
.ldyx-nj-i>summary::-webkit-details-marker{display:none}
.ldyx-nj-i>summary::before{content:"▸";color:var(--txt3,#787c83);font-size:9px;margin-right:7px;
  display:inline-block;transition:transform .14s;vertical-align:1px}
.ldyx-nj-i[open]>summary::before{transform:rotate(90deg)}
.ldyx-nj-i>summary:hover::before{color:var(--txt,#d6d8db)}
.ldyx-nj-i>summary .h{display:inline-flex;gap:12px;flex-wrap:wrap;align-items:baseline;width:calc(100% - 20px)}
.ldyx-nj-i.ok{border-left-color:var(--green,#3fbf7f)}
.ldyx-nj-i.ko{border-left-color:var(--red,#ee3333);background:linear-gradient(90deg,var(--red-soft,rgba(238,51,51,.14)),var(--panel,#0d0e10))}
.ldyx-nj-i.ign{border-left-color:var(--amber,#d9a441);opacity:.85}
.ldyx-nj-i .h{display:flex;gap:12px;flex-wrap:wrap;align-items:baseline;
  font-family:var(--mono,monospace);font-size:9.5px;color:var(--txt3,#787c83);letter-spacing:.04em}
.ldyx-nj-i .h .t{color:var(--txt2,#8b8f96);font-variant-numeric:tabular-nums}
.ldyx-nj-i .h .s{color:var(--hull,#6fb3e8)}
.ldyx-nj-i .h .d b{color:var(--txt,#d6d8db);font-weight:700}
.ldyx-nj-i .h .st{margin-left:auto;white-space:nowrap}
.ldyx-nj-i.ok .h .st{color:var(--green,#3fbf7f)}
.ldyx-nj-i.ko .h .st{color:var(--red,#ee3333);font-weight:700}
.ldyx-nj-i.ign .h .st{color:var(--amber,#d9a441)}
.ldyx-nj-i .m{font-family:var(--mono,monospace);font-size:9.5px;color:var(--amber,#d9a441);margin-top:5px}
.ldyx-nj-i .msg{font-family:var(--mono,monospace);font-size:10.5px;color:var(--txt2,#8b8f96);line-height:1.65;
  margin-top:6px;padding:7px 9px;background:var(--bg2,#0a0a0b);border-radius:4px;
  white-space:pre-wrap;word-break:break-word;max-height:150px;overflow-y:auto}
/* barre d'édition de la flotte */
.ldyx-edit-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:9px;padding:8px 9px;
  border:1px dashed var(--line2,#26282c);border-radius:6px}
.ldyx-edit-bar.ldyx-on{border-style:solid;border-color:var(--hull-line,rgba(111,179,232,.4));
  background:var(--hull-soft,rgba(111,179,232,.10))}
.ldyx-edit-bar .ldyx-btn{padding:6px 11px;font-size:11px}
/* opération annoncée sans plan : présente mais visiblement en attente */
.ldyx-item.ldyx-sansplan{border-style:dashed;opacity:.72}
.ldyx-item.ldyx-sansplan .n{color:var(--txt2,#8b8f96)}
.ldyx-item.ldyx-sansplan.ldyx-on{opacity:1;border-style:solid}
/* éditeur du dossier de mission */
.ldyx-form{margin-top:12px;border-top:1px solid var(--line,#1d1f22);padding-top:11px;
  display:flex;flex-direction:column;gap:9px}
.ldyx-frow{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ldyx-frow.col{flex-direction:column;align-items:stretch;gap:5px}
.ldyx-frow .k{font-family:var(--mono,monospace);font-size:9px;letter-spacing:.11em;color:var(--txt3,#787c83);
  flex:0 0 82px}
.ldyx-frow.col .k{flex:none}
.ldyx-seg{display:flex;gap:4px;flex-wrap:wrap}
.ldyx-seg button{font-family:var(--mono,monospace);font-size:9px;letter-spacing:.07em;color:var(--txt3,#787c83);
  border:1px solid var(--line2,#26282c);border-radius:4px;padding:3px 8px;background:transparent;cursor:pointer;
  transition:all .14s}
.ldyx-seg button:hover{color:var(--txt2,#8b8f96);border-color:var(--line3,#34373c)}
.ldyx-seg button.ldyx-on{color:#fff;border-color:var(--red-line,rgba(238,51,51,.28));
  background:var(--red-soft,rgba(238,51,51,.14))}
.ldyx-form input,.ldyx-form textarea{flex:1;min-width:0;background:var(--panel,#0d0e10);color:var(--txt,#d6d8db);
  border:1px solid var(--line2,#26282c);border-radius:5px;padding:6px 9px;
  font-family:var(--sans,'Exo 2',sans-serif);font-size:12.5px;outline:none;transition:border-color .14s;resize:vertical}
.ldyx-form input:focus,.ldyx-form textarea:focus{border-color:var(--red-line,rgba(238,51,51,.28))}
.ldyx-form input::placeholder,.ldyx-form textarea::placeholder{color:var(--txt3,#787c83)}
.ldyx-facts{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
/* badge intégré à la barre du haut, calé sur le style des autres contrôles */
.ldyx-pres-badge{display:inline-flex;align-items:center;gap:6px;
  font-family:var(--mono,'JetBrains Mono',monospace);font-size:11px;font-weight:700;color:var(--txt2,#8b8f96);
  background:var(--panel-2,var(--panel2,#111214));border:1px solid var(--line2,#26282c);border-radius:6px;
  padding:5px 9px;cursor:pointer;transition:all .15s;line-height:1;vertical-align:middle;
  -webkit-appearance:none;appearance:none;margin:0;font-variant-numeric:tabular-nums}
.ldyx-pres-badge:hover{border-color:var(--green-line,rgba(63,191,127,.4));color:var(--txt,#d6d8db)}
.ldyx-pres-badge.ldyx-flottant{position:fixed;top:9px;right:186px;z-index:9500;background:rgba(13,14,16,.9)}
.ldyx-pres-badge.ldyx-vide{opacity:.5}
.ldyx-pres-badge.ldyx-vide .ldyx-pdot{background:var(--txt3,#787c83);box-shadow:none;animation:none}
.ldyx-pdot{width:7px;height:7px;border-radius:50%;background:var(--green,#3fbf7f);
  box-shadow:0 0 8px var(--green,#3fbf7f);animation:ldyx-pulse 2.4s ease-in-out infinite;flex:0 0 7px}
@keyframes ldyx-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.82)}}
.ldyx-pres-pan{position:fixed;top:52px;right:16px;z-index:9501;width:min(304px,88vw);max-height:min(70vh,560px);
  overflow-y:auto;background:rgba(10,10,11,.96);border:1px solid var(--line2,#26282c);border-radius:8px;
  box-shadow:0 18px 50px rgba(0,0,0,.7);opacity:0;transform:translateY(-6px);pointer-events:none;transition:all .18s}
.ldyx-pres-pan.ldyx-on{opacity:1;transform:none;pointer-events:auto}
.ldyx-pres-h{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 12px 8px;
  border-bottom:1px solid var(--line,#1d1f22)}
.ldyx-pres-x{background:none;border:none;color:var(--txt3,#787c83);cursor:pointer;font-size:12px;line-height:1;padding:2px 4px}
.ldyx-pres-x:hover{color:var(--txt,#d6d8db)}
.ldyx-pres-l{padding:8px}
.ldyx-pres-i{display:flex;align-items:center;gap:9px;padding:6px 6px;border-radius:6px}
.ldyx-pres-i:hover{background:rgba(255,255,255,.02)}
.ldyx-pa{width:26px;height:26px;flex:0 0 26px;border-radius:50%;object-fit:cover;border:1px solid var(--line2,#26282c);background:var(--panel,#0d0e10)}
.ldyx-pa-txt{display:flex;align-items:center;justify-content:center;font-family:var(--mono,monospace);font-size:9px;color:var(--txt3,#787c83)}
.ldyx-pn{display:flex;flex-direction:column;min-width:0;flex:1}
.ldyx-pn b{font-family:var(--mono,monospace);font-size:11px;color:var(--txt,#d6d8db);font-weight:700;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ldyx-pv{font-family:var(--mono,monospace);font-size:8.5px;color:var(--txt3,#787c83);letter-spacing:.06em}
.ldyx-pt{font-family:var(--mono,monospace);font-size:8.5px;color:var(--txt3,#787c83);white-space:nowrap}
.ldyx-pt.ldyx-frais{color:var(--green,#3fbf7f)}
@media(max-width:900px){.ldyx-pres-badge{right:12px;top:auto;bottom:12px}.ldyx-pres-pan{top:auto;bottom:52px}}
/* réglages intro (sur l'overlay d'entrée) */
#ldyx-regl{position:absolute;bottom:20px;right:18px;z-index:43;font-family:var(--mono,monospace);font-size:9px;letter-spacing:.1em;color:var(--txt3,#787c83)}
#ldyx-regl span{cursor:pointer;padding:2px 5px;border:1px solid transparent;border-radius:4px}
#ldyx-regl span:hover{color:var(--txt2,#8b8f96)}
#ldyx-regl span.ldyx-on{color:var(--amber,#d9a441);border-color:rgba(217,164,65,.4)}
/* ═══════════ VITRINE DE FLOTTE ═══════════ */
.ldyx-vt-ov{position:fixed;inset:0;z-index:9600;background:rgba(3,3,4,.88);backdrop-filter:blur(7px);
  display:flex;align-items:center;justify-content:center;padding:22px;animation:ldyxVtIn .22s ease}
@keyframes ldyxVtIn{from{opacity:0}to{opacity:1}}
.ldyx-vt-box{width:min(1080px,100%);height:min(760px,100%);display:flex;flex-direction:column;
  border:1px solid var(--line2,#26282c);border-radius:12px;background:#060607;overflow:hidden;
  box-shadow:0 30px 90px rgba(0,0,0,.7),0 0 0 1px rgba(111,179,232,.07)}
.ldyx-vt-h{display:flex;align-items:flex-start;gap:14px;padding:14px 16px 12px;border-bottom:1px solid var(--line,#1d1f22)}
.ldyx-vt-t{font-family:var(--disp,'Orbitron',sans-serif);font-size:14px;letter-spacing:.16em;color:var(--txt,#d6d8db)}
.ldyx-vt-s{font-family:var(--mono,monospace);font-size:9.5px;letter-spacing:.13em;color:var(--txt3,#787c83);
  margin-top:4px;text-transform:uppercase}
.ldyx-vt-x{margin-left:auto;background:transparent;border:1px solid var(--line2,#26282c);color:var(--txt2,#8b8f96);
  border-radius:6px;width:28px;height:28px;cursor:pointer;font-size:12px;line-height:1;flex:0 0 28px}
.ldyx-vt-x:hover{border-color:var(--red,#ee3333);color:var(--red,#ee3333)}
.ldyx-vt-scene{position:relative;flex:1;min-height:0;overflow:hidden;background:
  radial-gradient(ellipse at 50% 55%,#0a0c10 0%,#050505 70%)}
.ldyx-vt-scene canvas{position:absolute;inset:0;pointer-events:none}
.ldyx-vt-plan{position:absolute;inset:0}
.ldyx-vt-leg{position:absolute;top:12px;right:14px;display:flex;flex-direction:column;gap:5px;align-items:flex-end;pointer-events:none}
.ldyx-vt-leg span{display:flex;align-items:center;gap:6px;font-family:var(--mono,monospace);font-size:8.5px;
  letter-spacing:.1em;color:var(--txt3,#787c83);text-transform:uppercase}
.ldyx-vt-leg i{width:7px;height:7px;border-radius:2px;display:block}
.ldyx-vt-load{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--mono,monospace);font-size:10px;letter-spacing:.16em;color:var(--txt3,#787c83)}
.ldyx-vt-vide{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:9px;text-align:center;font-family:var(--mono,monospace);font-size:11px;color:var(--txt2,#8b8f96);padding:0 40px}
.ldyx-vt-vide span{font-size:10px;color:var(--txt3,#787c83);line-height:1.65;max-width:420px}
.ldyx-vt-sh{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;
  cursor:default;transition:filter .18s;outline:none;will-change:transform}
.ldyx-vt-sh .sh-sil{width:100%;height:100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;
  opacity:.88;filter:drop-shadow(0 0 9px rgba(111,179,232,.45))}
.ldyx-vt-sh .sh-nm{position:absolute;bottom:-15px;font-family:var(--mono,monospace);font-size:8.5px;
  letter-spacing:.08em;color:var(--txt3,#787c83);white-space:nowrap;opacity:0;transition:opacity .18s;pointer-events:none}
.ldyx-vt-sh:hover,.ldyx-vt-sh.ldyx-on{filter:brightness(1.45)}
.ldyx-vt-sh:hover .sh-nm,.ldyx-vt-sh.ldyx-on .sh-nm,.ldyx-vt-sh:focus-visible .sh-nm{opacity:1}
.ldyx-vt-sh:focus-visible .sh-sil{outline:1px solid var(--amber,#d9a441);outline-offset:4px}
.ldyx-vt-fiche{position:absolute;left:14px;bottom:14px;width:236px;border:1px solid var(--line2,#26282c);
  border-radius:9px;background:rgba(8,9,11,.93);padding:11px 12px;opacity:0;transform:translateY(6px);
  transition:opacity .16s,transform .16s;pointer-events:none}
.ldyx-vt-fiche.ldyx-on{opacity:1;transform:none}
.ldyx-vt-fh{display:flex;flex-direction:column;gap:2px;margin-bottom:8px;padding-bottom:7px;
  border-bottom:1px solid var(--line,#1d1f22)}
.ldyx-vt-fh .nm{font-family:var(--mono,monospace);font-size:11.5px;font-weight:700;color:var(--txt,#d6d8db);letter-spacing:.05em}
.ldyx-vt-fh .su{font-family:var(--serif,'IBM Plex Serif',serif);font-size:10.5px;font-style:italic;color:var(--amber,#d9a441)}
.ldyx-vt-fg{display:flex;flex-direction:column;gap:4px}
.ldyx-vt-fg>div{display:flex;justify-content:space-between;gap:10px}
.ldyx-vt-fg .k{font-family:var(--mono,monospace);font-size:8.5px;letter-spacing:.1em;color:var(--txt3,#787c83)}
.ldyx-vt-fg .v{font-family:var(--mono,monospace);font-size:9.5px;color:var(--txt2,#8b8f96);text-align:right}
.ldyx-vt-fn{margin-top:8px;padding-top:7px;border-top:1px solid var(--line,#1d1f22);
  font-family:var(--serif,serif);font-size:10.5px;color:var(--txt2,#8b8f96);line-height:1.55}
.ldyx-vt-f{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:11px 16px;
  border-top:1px solid var(--line,#1d1f22);background:#08090a}
.ldyx-vt-k{font-family:var(--mono,monospace);font-size:9.5px;letter-spacing:.06em;color:var(--txt3,#787c83)}
.ldyx-vt-k b{color:var(--hull,#6fb3e8);font-weight:600}
.ldyx-vt-note{margin-left:auto;font-family:var(--mono,monospace);font-size:8.5px;letter-spacing:.08em;color:var(--txt3,#787c83)}
/* ── sélecteur FleetYards (Mon profil) ── */
.ldyx-fy-q{width:100%;background:var(--bg,#050505);border:1px solid var(--line2,#26282c);border-radius:7px;
  padding:8px 11px;color:var(--txt,#d6d8db);font-family:var(--mono,monospace);font-size:11px}
.ldyx-fy-q:focus{outline:none;border-color:rgba(111,179,232,.5)}
.ldyx-fy-r{display:grid;grid-template-columns:repeat(auto-fill,minmax(176px,1fr));gap:7px;margin-top:9px;
  max-height:264px;overflow-y:auto;padding-right:3px}
.ldyx-fy-c{display:flex;align-items:center;gap:9px;border:1px solid var(--line,#1d1f22);border-radius:7px;
  padding:7px 9px;background:var(--panel,#0d0e10);cursor:pointer;transition:all .13s;text-align:left;font:inherit;color:inherit}
.ldyx-fy-c:hover{border-color:rgba(111,179,232,.45);background:linear-gradient(90deg,rgba(111,179,232,.09),var(--panel,#0d0e10))}
.ldyx-fy-c .si{width:34px;height:22px;flex:0 0 34px;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;
  background:var(--hull,#6fb3e8);opacity:.85}
.ldyx-fy-c .tx{min-width:0}
.ldyx-fy-c .n{display:block;font-family:var(--mono,monospace);font-size:10.5px;font-weight:700;color:var(--txt,#d6d8db);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ldyx-fy-c .m{display:block;font-family:var(--mono,monospace);font-size:8.5px;color:var(--txt3,#787c83);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.ldyx-fl-liste{display:flex;flex-direction:column;gap:6px;margin-bottom:4px}
.ldyx-fl-i{display:flex;align-items:center;gap:10px;border:1px solid var(--line,#1d1f22);border-radius:7px;
  padding:7px 10px;background:var(--panel,#0d0e10)}
.ldyx-fl-i .si{width:36px;height:23px;flex:0 0 36px;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;
  background:var(--hull,#6fb3e8);opacity:.85}
.ldyx-fl-i .mo{font-family:var(--mono,monospace);font-size:11px;font-weight:700;color:var(--txt,#d6d8db)}
.ldyx-fl-i .fa{font-family:var(--mono,monospace);font-size:8.5px;color:var(--txt3,#787c83);margin-top:1px;display:block}
.ldyx-fl-i .su{font-family:var(--serif,serif);font-size:10.5px;font-style:italic;color:var(--amber,#d9a441)}
.ldyx-fl-x{margin-left:auto;background:transparent;border:1px solid var(--line2,#26282c);color:var(--txt3,#787c83);
  border-radius:5px;width:24px;height:24px;cursor:pointer;font-size:10px;line-height:1;flex:0 0 24px}
.ldyx-fl-x:hover{border-color:var(--red,#ee3333);color:var(--red,#ee3333)}
@media(max-width:900px){
  .ldyx-scene{height:auto;min-height:0}
  .ldyx-scene canvas,.ldyx-hint,#ldyx-readout,.ldyx-phases{display:none}
  .ldyx-hud{position:static;width:auto !important;max-height:none;padding:10px}
  .ldyx-pane{width:auto}
  .ldyx-vt-ov{padding:0}
  .ldyx-vt-box{height:100%;border-radius:0}
  .ldyx-vt-fiche{left:8px;right:8px;width:auto;bottom:8px}
}
@media(prefers-reduced-motion:reduce){
  .ldyx-vt-ov{animation:none}
  .ldyx-vt-sh{transform:none !important}
}
/* ══════════════════════════════════════════════════════════════════
   WAHOU v5 — 21/08 (soir) · habillage HUD, profondeur, interactions
   Purement additif : ne redéfinit que des propriétés de finition sur
   les classes ldyx- déjà en place. Retrait = supprimer ce bloc.
   ══════════════════════════════════════════════════════════════════ */

/* — CORRECTIF ÉCRANS HAUTE DENSITÉ (retina, Windows à 125/150 %) —
   Un <canvas> absolu avec inset:0 mais sans width/height gardait sa taille
   INTRINSÈQUE (rect × devicePixelRatio) : sur un écran DPR 1,5 ou 2 la table
   débordait de son cadre et Yela partait en bas à droite. Invisible en DPR 1,
   d où le passage inaperçu. Deux déclarations et tout rentre dans le cadre. */
.ldyx-scene canvas,.ldyx-vt-scene canvas{width:100%;height:100%}

/* — le cadre de la table : brackets d'angle, trame de balayage, vignette — */
.ldyx-scene{box-shadow:inset 0 0 130px rgba(0,0,0,.92),0 18px 60px rgba(0,0,0,.5)}
.ldyx-scene::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:radial-gradient(125% 95% at 50% 46%,rgba(0,0,0,0) 40%,rgba(0,0,0,.6) 100%),
    repeating-linear-gradient(to bottom,rgba(140,170,200,.026) 0 1px,rgba(0,0,0,0) 1px 3px)}
.ldyx-scene::after{content:"";position:absolute;inset:10px;z-index:3;pointer-events:none;opacity:.45;
  animation:ldyx-brk 5.5s ease-in-out infinite;
  background:
    linear-gradient(var(--hull,#6fb3e8),var(--hull,#6fb3e8)) 0 0/18px 1px no-repeat,
    linear-gradient(var(--hull,#6fb3e8),var(--hull,#6fb3e8)) 0 0/1px 18px no-repeat,
    linear-gradient(var(--hull,#6fb3e8),var(--hull,#6fb3e8)) 100% 0/18px 1px no-repeat,
    linear-gradient(var(--hull,#6fb3e8),var(--hull,#6fb3e8)) 100% 0/1px 18px no-repeat,
    linear-gradient(var(--hull,#6fb3e8),var(--hull,#6fb3e8)) 0 100%/18px 1px no-repeat,
    linear-gradient(var(--hull,#6fb3e8),var(--hull,#6fb3e8)) 0 100%/1px 18px no-repeat,
    linear-gradient(var(--hull,#6fb3e8),var(--hull,#6fb3e8)) 100% 100%/18px 1px no-repeat,
    linear-gradient(var(--hull,#6fb3e8),var(--hull,#6fb3e8)) 100% 100%/1px 18px no-repeat}
@keyframes ldyx-brk{0%,100%{opacity:.3}50%{opacity:.62}}

/* — bandeau d'état de la table (posé par le JS) — */
.ldyx-live{position:absolute;bottom:14px;left:16px;z-index:6;display:flex;align-items:center;gap:7px;
  font-family:var(--mono,monospace);font-size:8.5px;letter-spacing:.18em;color:var(--txt3,#787c83);
  pointer-events:none;text-transform:uppercase}
.ldyx-live i{width:6px;height:6px;border-radius:50%;background:var(--green,#3fbf7f);
  box-shadow:0 0 9px var(--green,#3fbf7f);animation:ldyx-pulse 2.4s ease-in-out infinite;display:block}

/* — panneaux : verre, liseré d'accent, ascenseur discret — */
.ldyx-pane{background:linear-gradient(180deg,rgba(16,17,20,.93),rgba(7,8,9,.9));
  backdrop-filter:blur(9px);border-color:var(--line2,#26282c);
  box-shadow:inset 0 2px 0 rgba(238,51,51,.42),0 22px 55px rgba(0,0,0,.6)}
.ldyx-pane::-webkit-scrollbar,.ldyx-list::-webkit-scrollbar{width:6px}
.ldyx-pane::-webkit-scrollbar-thumb,.ldyx-list::-webkit-scrollbar-thumb{background:var(--line3,#34373c);border-radius:3px}
.ldyx-pane h3{text-shadow:0 0 26px rgba(255,255,255,.16)}
.ldyx-pane .eyebrow{display:flex;align-items:center;gap:8px}
.ldyx-pane .eyebrow::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,rgba(238,51,51,.45),transparent)}

/* — cartes de contrat / de plan : relief, entrée en fondu, rail de risque — */
.ldyx-item{backdrop-filter:blur(4px);box-shadow:0 6px 18px rgba(0,0,0,.4);
  animation:ldyx-in .34s cubic-bezier(.2,.7,.3,1) both}
.ldyx-list .ldyx-item:nth-of-type(1){animation-delay:.02s}
.ldyx-list .ldyx-item:nth-of-type(2){animation-delay:.07s}
.ldyx-list .ldyx-item:nth-of-type(3){animation-delay:.12s}
.ldyx-list .ldyx-item:nth-of-type(4){animation-delay:.17s}
.ldyx-list .ldyx-item:nth-of-type(5){animation-delay:.22s}
.ldyx-list .ldyx-item:nth-of-type(n+6){animation-delay:.27s}
@keyframes ldyx-in{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:none}}
.ldyx-item:hover{transform:translateX(3px);box-shadow:0 10px 26px rgba(0,0,0,.55)}
.ldyx-item.ldyx-on{box-shadow:0 0 0 1px rgba(238,51,51,.16),0 12px 30px rgba(0,0,0,.6)}
.ldyx-item.r1{box-shadow:inset 5px 0 14px -8px var(--green,#3fbf7f),0 6px 18px rgba(0,0,0,.4)}
.ldyx-item.r2{box-shadow:inset 5px 0 14px -8px var(--amber,#d9a441),0 6px 18px rgba(0,0,0,.4)}
.ldyx-item.r3{box-shadow:inset 5px 0 14px -8px var(--red,#ee3333),0 6px 18px rgba(0,0,0,.4)}
.ldyx-item .pct{font-variant-numeric:tabular-nums}
/* jauge de quorum miniature dans la carte */
.ldyx-mini{display:block;height:3px;margin-top:7px;border-radius:2px;background:#151619;overflow:hidden}
.ldyx-mini i{display:block;height:100%;border-radius:2px;background:linear-gradient(90deg,#1d5c40,var(--green,#3fbf7f));
  box-shadow:0 0 10px rgba(63,191,127,.5)}
.ldyx-mini.am i{background:linear-gradient(90deg,#5b4415,var(--amber,#d9a441));box-shadow:0 0 10px rgba(217,164,65,.45)}

/* — compte à rebours — */
.ldyx-h0 .n{font-size:23px;text-shadow:0 0 24px rgba(217,164,65,.35)}
.ldyx-h0 .n.ldyx-close{animation:ldyx-alarm 1.7s ease-in-out infinite}
@keyframes ldyx-alarm{0%,100%{text-shadow:0 0 20px rgba(238,51,51,.35)}50%{text-shadow:0 0 34px rgba(238,51,51,.85)}}

/* — jauge de quorum du dossier : graduée et vivante — */
.ldyx-qbar{height:7px;position:relative;box-shadow:inset 0 0 0 1px rgba(255,255,255,.045)}
.ldyx-qbar>div{box-shadow:0 0 16px rgba(63,191,127,.45)}
.ldyx-qbar::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(90deg,rgba(0,0,0,.6) 0 1px,rgba(0,0,0,0) 1px 10%)}

/* — boutons : reflet au survol — */
.ldyx-btn.solid{position:relative;overflow:hidden}
.ldyx-btn.solid::after{content:"";position:absolute;top:0;left:-70%;width:45%;height:100%;opacity:0;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transform:skewX(-18deg)}
.ldyx-btn.solid:hover::after{opacity:1;animation:ldyx-sheen .7s ease}
@keyframes ldyx-sheen{from{left:-70%}to{left:130%}}
.ldyx-btn.ghost:hover{box-shadow:0 0 16px rgba(88,101,242,.18)}

/* — chronologie des phases — */
.ldyx-phases{gap:0;padding-top:9px}
.ldyx-ph{position:relative;padding-top:13px;border-radius:0;border-left-width:0;min-width:112px}
.ldyx-ph:first-child{border-radius:7px 0 0 7px;border-left-width:1px}
.ldyx-ph:last-child{border-radius:0 7px 7px 0}
.ldyx-ph::before{content:"";position:absolute;left:0;right:0;top:5px;height:1px;background:var(--line2,#26282c)}
.ldyx-ph::after{content:"";position:absolute;left:50%;top:2px;width:7px;height:7px;margin-left:-3.5px;
  border-radius:50%;background:var(--panel,#0d0e10);border:1px solid var(--line3,#34373c);transition:all .18s}
.ldyx-ph:hover::after{border-color:var(--txt2,#8b8f96)}
.ldyx-ph.ldyx-on::after{background:var(--hull,#6fb3e8);border-color:var(--hull,#6fb3e8);box-shadow:0 0 12px var(--hull,#6fb3e8)}
.ldyx-ph.ldyx-on{box-shadow:0 -1px 22px -6px var(--hull,#6fb3e8)}

/* — flotte engagée : silhouettes teintées par aile, jauge de postes — */
.ldyx-sh{position:relative}
.ldyx-sh:hover{transform:translateX(2px)}
.ldyx-sh:hover .sil{filter:drop-shadow(0 0 9px var(--hull,#6fb3e8))}
.ldyx-sh.ldyx-on{box-shadow:0 0 0 1px rgba(111,179,232,.18),0 8px 22px rgba(0,0,0,.5)}
.ldyx-sh .st b{font-variant-numeric:tabular-nums}
.ldyx-shbar{position:absolute;left:0;right:0;bottom:0;height:2px;background:rgba(255,255,255,.04);
  border-radius:0 0 6px 6px;overflow:hidden}
.ldyx-shbar i{display:block;height:100%;background:var(--hull,#6fb3e8);opacity:.75;transition:width .4s}
.ldyx-aile{display:inline-block;width:6px;height:6px;border-radius:2px;background:var(--hull,#6fb3e8);
  margin-right:6px;vertical-align:1px;box-shadow:0 0 7px var(--hull,#6fb3e8)}

/* — postes & sièges — */
.ldyx-seat{transition:border-color .14s,background .14s}
.ldyx-seat:hover{border-color:var(--line3,#34373c)}
.ldyx-seat .who.ldyx-me{text-shadow:0 0 12px rgba(217,164,65,.55)}
.ldyx-take:hover{box-shadow:0 0 14px rgba(63,191,127,.32)}

/* — infobulle — */
#ldyx-tip{box-shadow:0 14px 34px rgba(0,0,0,.6);backdrop-filter:blur(5px)}

/* — état vide : plus habité — */
.ldyx-vide .t{text-shadow:0 0 30px rgba(255,255,255,.14)}
.ldyx-vide::before{content:"◈";font-size:26px;color:var(--line3,#34373c);margin-bottom:2px}

/* — vitrine de flotte — */
.ldyx-vt-box{box-shadow:0 34px 100px rgba(0,0,0,.78),0 0 0 1px rgba(111,179,232,.09)}
.ldyx-vt-scene::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;
  background:radial-gradient(120% 95% at 50% 55%,rgba(0,0,0,0) 42%,rgba(0,0,0,.55) 100%),
    repeating-linear-gradient(to bottom,rgba(140,170,200,.022) 0 1px,rgba(0,0,0,0) 1px 3px)}
.ldyx-vt-plan{z-index:2}
.ldyx-vt-fiche{z-index:3;box-shadow:0 20px 46px rgba(0,0,0,.6);backdrop-filter:blur(7px)}
.ldyx-vt-leg{z-index:3}
.ldyx-vt-sh .sh-sil{transition:filter .18s}
.ldyx-vt-sh:hover .sh-sil,.ldyx-vt-sh.ldyx-on .sh-sil{filter:drop-shadow(0 0 18px rgba(111,179,232,.75))}
.ldyx-vt-f{background:linear-gradient(180deg,#0a0b0c,#08090a)}
.ldyx-vt-k b{font-variant-numeric:tabular-nums;text-shadow:0 0 14px rgba(111,179,232,.35)}
.ldyx-fy-c:hover .si{filter:drop-shadow(0 0 8px var(--hull,#6fb3e8))}
.ldyx-fl-i{transition:border-color .14s}
.ldyx-fl-i:hover{border-color:var(--line3,#34373c)}

.ldyx-vt-av{width:44px;height:44px;flex:0 0 44px;border-radius:50%;object-fit:cover;
  border:1px solid var(--line2,#26282c);background:var(--panel,#0d0e10);
  box-shadow:0 0 0 3px rgba(111,179,232,.09),0 8px 20px rgba(0,0,0,.5)}
.ldyx-vt-avt{display:flex;align-items:center;justify-content:center;
  font-family:var(--mono,monospace);font-size:13px;font-weight:700;color:var(--txt2,#8b8f96);letter-spacing:.06em}

@media(max-width:900px){
  .ldyx-scene::before,.ldyx-scene::after,.ldyx-live{display:none}
  .ldyx-ph{border-left-width:1px;border-radius:7px;padding-top:8px}
  .ldyx-ph::before,.ldyx-ph::after{display:none}
}
@media(prefers-reduced-motion:reduce){
  .ldyx-scene::after{animation:none;opacity:.42}
  .ldyx-item{animation:none}
  .ldyx-h0 .n.ldyx-close{animation:none}
  .ldyx-btn.solid:hover::after{animation:none;opacity:0}
  .ldyx-live i{animation:none}
}

/* ══════════════════════════════════════════════════════════════════
   HANGAR DE LA MEUTE — toutes les coques déclarées, vaisseau par vaisseau
   ══════════════════════════════════════════════════════════════════ */
.ldyx-hg-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(146px,1fr));gap:9px;margin:10px 0 12px}
.ldyx-hg-st{border:1px solid var(--line,#1d1f22);border-radius:8px;padding:10px 12px;
  background:linear-gradient(180deg,var(--panel2,#111214),var(--panel,#0d0e10));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03)}
.ldyx-hg-st .k{font-family:var(--mono,monospace);font-size:8.5px;letter-spacing:.15em;color:var(--txt3,#787c83);text-transform:uppercase}
.ldyx-hg-st .v{font-family:var(--mono,monospace);font-size:21px;font-weight:700;color:var(--txt,#d6d8db);
  margin-top:3px;font-variant-numeric:tabular-nums}
.ldyx-hg-st .v small{font-size:11px;color:var(--txt3,#787c83);font-weight:400}
.ldyx-hg-st.am .v{color:var(--amber,#d9a441);text-shadow:0 0 18px rgba(217,164,65,.3)}
.ldyx-hg-st.hu .v{color:var(--hull,#6fb3e8);text-shadow:0 0 18px rgba(111,179,232,.3)}
.ldyx-hg-st.rd .v{color:var(--red,#ee3333)}
.ldyx-hg-bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.ldyx-hg-seg{display:flex;border:1px solid var(--line2,#26282c);border-radius:7px;overflow:hidden}
.ldyx-hg-seg button{font-family:var(--mono,monospace);font-size:10px;letter-spacing:.1em;color:var(--txt3,#787c83);
  background:transparent;border:none;padding:7px 13px;cursor:pointer;transition:all .14s}
.ldyx-hg-seg button:hover{color:var(--txt2,#8b8f96);background:rgba(255,255,255,.02)}
.ldyx-hg-seg button.ldyx-on{color:#fff;background:linear-gradient(180deg,rgba(238,51,51,.2),rgba(238,51,51,.08));
  box-shadow:inset 0 -2px 0 var(--red,#ee3333)}
.ldyx-hg-cl{display:flex;gap:6px;flex-wrap:wrap}
.ldyx-hg-chip{font-family:var(--mono,monospace);font-size:9px;letter-spacing:.08em;color:var(--txt3,#787c83);
  border:1px solid var(--line2,#26282c);border-radius:20px;padding:4px 10px;background:transparent;cursor:pointer;
  transition:all .14s;display:inline-flex;align-items:center;gap:6px}
.ldyx-hg-chip i{width:7px;height:7px;border-radius:2px;display:block}
.ldyx-hg-chip:hover{border-color:var(--line3,#34373c)}
.ldyx-hg-chip.ldyx-on{border-color:currentColor;background:rgba(255,255,255,.05)}
.ldyx-hg-q{flex:1;min-width:150px;max-width:280px;background:var(--panel,#0d0e10);border:1px solid var(--line2,#26282c);
  border-radius:7px;padding:7px 11px;color:var(--txt,#d6d8db);font-family:var(--mono,monospace);font-size:11px}
.ldyx-hg-q:focus{outline:none;border-color:rgba(111,179,232,.5)}
.ldyx-hg-wrap{display:grid;grid-template-columns:1fr 292px;gap:12px;align-items:start}
.ldyx-hg-deck{height:auto !important;min-height:520px !important}
.ldyx-hg-fiche{position:sticky !important;top:12px;width:auto !important;inset:auto !important;
  max-height:calc(100vh - 120px)}
/* une coque posée sur le pont */
.ldyx-hg-plan{position:relative;z-index:4;padding:22px 18px 26px;display:flex;flex-wrap:wrap;gap:20px 26px;align-items:flex-end}
.ldyx-hg-h{position:relative;background:none;border:none;padding:0;cursor:pointer;display:flex;flex-direction:column;
  align-items:center;gap:6px;font:inherit;color:inherit;transition:transform .16s}
.ldyx-hg-h:hover{transform:translateY(-4px)}
.ldyx-hg-h .sil{-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center bottom;
  mask-position:center bottom;-webkit-mask-size:contain;mask-size:contain;opacity:.9;transition:filter .16s,opacity .16s}
.ldyx-hg-h:hover .sil,.ldyx-hg-h.ldyx-on .sil{opacity:1;filter:drop-shadow(0 0 16px currentColor)}
.ldyx-hg-h .nm{font-family:var(--mono,monospace);font-size:9px;letter-spacing:.05em;color:var(--txt2,#8b8f96);
  white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis}
.ldyx-hg-h .ow{font-family:var(--mono,monospace);font-size:8px;letter-spacing:.08em;color:var(--txt3,#787c83)}
.ldyx-hg-h.ldyx-on .nm{color:#fff}
.ldyx-hg-h::after{content:"";position:absolute;left:50%;bottom:26px;transform:translateX(-50%);width:70%;height:8px;
  background:radial-gradient(ellipse,currentColor,transparent 70%);opacity:.16;pointer-events:none}
/* listes */
.ldyx-hg-list{position:relative;z-index:4;padding:14px;display:flex;flex-direction:column;gap:7px}
.ldyx-hg-li{display:flex;align-items:center;gap:11px;border:1px solid var(--line,#1d1f22);border-radius:8px;
  padding:8px 11px;background:var(--panel,#0d0e10);cursor:pointer;transition:all .14s;text-align:left;font:inherit;color:inherit;width:100%}
.ldyx-hg-li:hover{border-color:var(--line3,#34373c);transform:translateX(3px)}
.ldyx-hg-li .si{width:52px;height:30px;flex:0 0 52px;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;opacity:.85}
.ldyx-hg-li .mo{font-family:var(--mono,monospace);font-size:11px;font-weight:700;color:var(--txt,#d6d8db)}
.ldyx-hg-li .su{font-family:var(--mono,monospace);font-size:8.5px;color:var(--txt3,#787c83);margin-top:2px;display:block}
.ldyx-hg-li .n{margin-left:auto;font-family:var(--mono,monospace);font-size:11px;color:var(--hull,#6fb3e8);white-space:nowrap}
.ldyx-hg-li .props{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end;max-width:220px}
.ldyx-hg-li .props span{font-family:var(--mono,monospace);font-size:8.5px;color:var(--amber,#d9a441);
  border:1px solid rgba(217,164,65,.3);border-radius:3px;padding:1px 6px}
.ldyx-hg-loup{border:1px solid var(--line,#1d1f22);border-radius:9px;background:var(--panel,#0d0e10);padding:11px 13px}
.ldyx-hg-loup .lh{display:flex;align-items:center;gap:10px;margin-bottom:9px}
.ldyx-hg-loup .av{width:32px;height:32px;flex:0 0 32px;border-radius:50%;border:1px solid var(--line2,#26282c);
  background:var(--panel2,#111214);object-fit:cover;display:flex;align-items:center;justify-content:center;
  font-family:var(--mono,monospace);font-size:11px;color:var(--txt2,#8b8f96)}
.ldyx-hg-loup .ln{font-family:var(--mono,monospace);font-size:12px;font-weight:700;color:#fff;letter-spacing:.04em;
  background:none;border:none;padding:0;cursor:pointer}
.ldyx-hg-loup .ln:hover{color:var(--amber,#d9a441)}
.ldyx-hg-loup .lm{font-family:var(--mono,monospace);font-size:8.5px;color:var(--txt3,#787c83);letter-spacing:.08em}
.ldyx-hg-loup .lf{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end}
/* fiche */
.ldyx-hg-big{height:96px;margin:4px 0 12px;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;
  filter:drop-shadow(0 0 22px currentColor)}
.ldyx-hg-who{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}
.ldyx-hg-who button{font-family:var(--mono,monospace);font-size:9.5px;color:var(--amber,#d9a441);
  border:1px solid rgba(217,164,65,.35);background:rgba(217,164,65,.1);border-radius:4px;padding:3px 8px;cursor:pointer}
.ldyx-hg-who button:hover{background:rgba(217,164,65,.2)}
/* manque à l'appel */
.ldyx-hg-appel{margin-top:12px;border:1px dashed var(--line2,#26282c);border-radius:9px;padding:11px 14px;
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:linear-gradient(90deg,rgba(238,51,51,.06),transparent)}
.ldyx-hg-appel .t{font-family:var(--mono,monospace);font-size:10px;letter-spacing:.1em;color:var(--txt2,#8b8f96)}
.ldyx-hg-appel .t b{color:var(--red,#ee3333)}
.ldyx-hg-appel .s{font-family:var(--mono,monospace);font-size:9px;color:var(--txt3,#787c83);margin-top:3px}
.ldyx-hg-appel .ldyx-btn{margin-left:auto}
/* ── rangées par gabarit ── */
.ldyx-hg-rang{margin:0 0 4px}
.ldyx-hg-rl{font-family:var(--mono,monospace);font-size:8.5px;letter-spacing:.18em;color:var(--txt3,#787c83);
  display:flex;align-items:center;gap:9px;margin:0 0 6px;text-transform:uppercase}
.ldyx-hg-rl b{color:var(--hull,#6fb3e8);font-weight:700;font-variant-numeric:tabular-nums}
.ldyx-hg-rl::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--line,#1d1f22),transparent)}
.ldyx-hg-rc{display:flex;flex-wrap:wrap;gap:16px 22px;align-items:flex-end;
  padding:0 0 12px;border-bottom:1px solid rgba(111,179,232,.07);margin-bottom:14px}
.ldyx-hg-rang:last-child .ldyx-hg-rc{border-bottom:none;margin-bottom:0}
.ldyx-hg-plan{display:block;padding:20px 18px 24px}
.ldyx-hg-loup .lf{display:block}
/* ── repli d une grosse flotte ── */
.ldyx-hg-plus{margin-top:9px;font-family:var(--mono,monospace);font-size:9.5px;letter-spacing:.1em;
  color:var(--hull,#6fb3e8);background:transparent;border:1px solid var(--line2,#26282c);border-radius:6px;
  padding:5px 12px;cursor:pointer;transition:all .14s}
.ldyx-hg-plus:hover{border-color:rgba(111,179,232,.45);background:rgba(111,179,232,.07)}
/* ── densité compacte : la meute entière d un coup d oeil ── */
.ldyx-hg-compact .ldyx-hg-rc{gap:10px 13px;padding-bottom:8px;margin-bottom:10px}
.ldyx-hg-compact .ldyx-hg-h .nm,.ldyx-hg-compact .ldyx-hg-h .ow{display:none}
.ldyx-hg-compact .ldyx-hg-h:hover .nm{display:block;position:absolute;bottom:-13px;left:50%;
  transform:translateX(-50%);background:rgba(8,9,11,.95);border:1px solid var(--line2,#26282c);
  border-radius:4px;padding:2px 7px;z-index:6;color:var(--txt,#d6d8db)}
.ldyx-hg-compact .ldyx-hg-h::after{bottom:2px}
.ldyx-hg-sansimg .sil,.ldyx-hg-sansimg .si,.ldyx-hg-sansimg .ldyx-hg-big{
  -webkit-mask-image:none !important;mask-image:none !important;opacity:.3;border-radius:6px;filter:none}
@media(max-width:900px){
  .ldyx-hg-wrap{grid-template-columns:1fr}
  .ldyx-hg-fiche{position:static !important;max-height:none}
  .ldyx-hg-deck{min-height:0 !important}
}

/* ── entrées de la meute (Centre de validation) ── */
.ldyx-nl-l{display:flex;flex-direction:column;gap:9px}
.ldyx-nl-i{border:1px solid var(--line,#1d1f22);border-left:3px solid var(--amber,#d9a441);border-radius:8px;
  padding:11px 13px;background:linear-gradient(90deg,rgba(217,164,65,.05),var(--panel,#0d0e10))}
.ldyx-nl-h{display:flex;align-items:center;gap:11px;flex-wrap:wrap}
.ldyx-nl-h .av{width:34px;height:34px;flex:0 0 34px;border-radius:50%;border:1px solid var(--line2,#26282c);
  background:var(--panel2,#111214);display:flex;align-items:center;justify-content:center;
  font-family:var(--mono,monospace);font-size:11px;color:var(--txt2,#8b8f96)}
.ldyx-nl-h .id b{font-family:var(--mono,monospace);font-size:12.5px;color:#fff;letter-spacing:.04em}
.ldyx-nl-h .id .s{display:block;font-family:var(--mono,monospace);font-size:9px;color:var(--txt3,#787c83);margin-top:2px}
.ldyx-nl-h .tag{margin-left:auto;font-family:var(--mono,monospace);font-size:9px;letter-spacing:.09em;
  color:var(--amber,#d9a441);border:1px solid rgba(217,164,65,.35);background:rgba(217,164,65,.1);
  border-radius:4px;padding:2px 8px;white-space:nowrap}
.ldyx-nl-m{font-family:var(--mono,monospace);font-size:9.5px;color:var(--txt3,#787c83);margin-top:8px}
.ldyx-nl-m b{color:var(--txt2,#8b8f96);font-weight:500}
.ldyx-nl-f{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px}
.ldyx-nl-f .ldyx-btn{padding:7px 12px;font-size:11.5px}
.ldyx-nl-nom,.ldyx-nl-motif{background:var(--bg,#050505);border:1px solid var(--line2,#26282c);border-radius:6px;
  padding:6px 10px;color:var(--txt,#d6d8db);font-family:var(--mono,monospace);font-size:11px;min-width:0}
.ldyx-nl-nom{flex:1 1 170px;max-width:240px}
.ldyx-nl-motif{width:100%;margin-top:7px}
.ldyx-nl-nom:focus,.ldyx-nl-motif:focus{outline:none;border-color:rgba(217,164,65,.5)}
.ldyx-nl-r{display:block}

/* ── babillard des missions ── */
.ldyx-mi-aide{border:1px solid var(--line,#1d1f22);border-radius:8px;background:var(--panel,#0d0e10);
  padding:9px 12px;margin:14px 0 4px}
.ldyx-mi-aide>summary{cursor:pointer;list-style:none;outline:none;font-family:var(--mono,monospace);
  font-size:9.5px;letter-spacing:.14em;color:var(--txt3,#787c83)}
.ldyx-mi-aide>summary::-webkit-details-marker{display:none}
.ldyx-mi-aide>summary::before{content:"▸";margin-right:7px;display:inline-block;transition:transform .14s}
.ldyx-mi-aide[open]>summary::before{transform:rotate(90deg)}
.ldyx-mi-aide>div{font-family:var(--mono,monospace);font-size:10px;line-height:1.85;color:var(--txt2,#8b8f96);margin-top:8px}
.ldyx-mi-t.rd::before{color:var(--red,#ee3333)}
.ldyx-mi-l{display:flex;flex-direction:column;gap:9px;margin-bottom:6px}
.ldyx-mi-c{border:1px solid var(--line,#1d1f22);border-left:3px solid var(--line3,#34373c);border-radius:8px;
  padding:11px 13px;background:var(--panel,#0d0e10);transition:border-color .14s}
.ldyx-mi-c:hover{border-color:var(--line3,#34373c)}
.ldyx-mi-c.ldyx-urgent{border-left-color:var(--red,#ee3333);
  background:linear-gradient(90deg,rgba(238,51,51,.07),var(--panel,#0d0e10))}
.ldyx-mi-c.ldyx-echue{opacity:.62;border-left-color:var(--txt3,#787c83)}
.ldyx-mi-c.ldyx-vise{border-color:var(--hull,#6fb3e8);
  box-shadow:0 0 0 1px rgba(111,179,232,.35),0 0 34px rgba(111,179,232,.22);
  animation:ldyx-vise 1.1s ease-in-out 3}
@keyframes ldyx-vise{0%,100%{box-shadow:0 0 0 1px rgba(111,179,232,.35),0 0 34px rgba(111,179,232,.22)}
  50%{box-shadow:0 0 0 1px rgba(111,179,232,.6),0 0 54px rgba(111,179,232,.42)}}
@media(prefers-reduced-motion:reduce){.ldyx-mi-c.ldyx-vise{animation:none}}
.ldyx-mi-h{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.ldyx-mi-h b{font-family:var(--mono,monospace);font-size:12.5px;color:#fff;letter-spacing:.03em}
.ldyx-mi-h .src{font-family:var(--mono,monospace);font-size:8.5px;letter-spacing:.1em;color:var(--amber,#d9a441);
  border:1px solid rgba(217,164,65,.35);border-radius:3px;padding:1px 6px}
.ldyx-mi-h .src.meute{color:var(--red,#ee3333);border-color:var(--red-line,rgba(238,51,51,.28))}
.ldyx-mi-h .par{font-family:var(--mono,monospace);font-size:9px;color:var(--txt3,#787c83)}
.ldyx-mi-h .t{font-family:var(--mono,monospace);font-size:9.5px;color:var(--hull,#6fb3e8)}
.ldyx-mi-h .t.v1{color:var(--txt3,#787c83)}
.ldyx-mi-h .t.att{color:var(--amber,#d9a441)}
.ldyx-mi-h .r{font-family:var(--mono,monospace);font-size:9.5px;color:var(--amber,#d9a441)}
.ldyx-mi-h .h0{margin-left:auto;font-family:var(--mono,monospace);font-size:12px;font-weight:700;
  color:var(--txt2,#8b8f96);font-variant-numeric:tabular-nums;white-space:nowrap}
.ldyx-mi-h .h0.chaud{color:var(--red,#ee3333);text-shadow:0 0 16px rgba(238,51,51,.45)}
.ldyx-mi-d{font-family:var(--serif,'IBM Plex Serif',serif);font-style:italic;font-size:12px;
  color:var(--txt2,#8b8f96);line-height:1.6;margin-top:7px;border-left:2px solid var(--line2,#26282c);padding-left:10px}
.ldyx-mi-m{font-family:var(--mono,monospace);font-size:9.5px;color:var(--txt3,#787c83);margin-top:8px}
.ldyx-mi-m b{color:var(--txt,#d6d8db)}
.ldyx-mi-j{height:3px;border-radius:2px;background:#151619;overflow:hidden;margin-top:7px}
.ldyx-mi-j i{display:block;height:100%;background:linear-gradient(90deg,#1d5c40,var(--green,#3fbf7f));
  box-shadow:0 0 10px rgba(63,191,127,.45)}
.ldyx-mi-a{margin-top:8px;font-family:var(--mono,monospace);font-size:9px}
.ldyx-mi-ok{color:var(--green,#3fbf7f)}
.ldyx-mi-ko{color:var(--red,#ee3333)}
.ldyx-mi-b{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}
.ldyx-mi-b .ldyx-btn{padding:6px 11px;font-size:11px}
.ldyx-mi-ann{border-color:rgba(111,179,232,.4) !important;color:var(--hull,#6fb3e8) !important}
.ldyx-mi-tier{display:inline-flex;gap:3px;margin-right:4px}
.ldyx-mi-tier button{font-family:var(--mono,monospace);font-size:9.5px;color:var(--txt3,#787c83);
  border:1px solid var(--line2,#26282c);border-radius:4px;padding:5px 8px;background:transparent;cursor:pointer}
.ldyx-mi-tier button.ldyx-on{color:#fff;border-color:var(--amber,#d9a441);background:rgba(217,164,65,.14)}
.ldyx-mi-att{font-family:var(--mono,monospace);font-size:9.5px;color:var(--amber,#d9a441);align-self:center;
  border:1px dashed rgba(217,164,65,.35);border-radius:6px;padding:5px 10px;line-height:1.6}
.ldyx-mi-att b{color:var(--txt,#d6d8db);font-weight:700}
.ldyx-mi-att.ldyx-auto{flex:1 1 100%;color:var(--txt3,#787c83);border-color:var(--line2,#26282c)}
.ldyx-mi-ann:hover{background:rgba(111,179,232,.1) !important;box-shadow:0 0 16px rgba(111,179,232,.2) !important}
.ldyx-mi-vide{font-family:var(--mono,monospace);font-size:10px;color:var(--txt3,#787c83);
  border:1px dashed var(--line2,#26282c);border-radius:8px;padding:14px;text-align:center}
/* archive */
.ldyx-mi-arh{cursor:pointer}
.ldyx-mi-arh span{color:var(--hull,#6fb3e8);margin-left:8px;letter-spacing:.08em}
.ldyx-mi-arl{display:flex;flex-direction:column;gap:4px}
.ldyx-mi-ar{display:flex;align-items:baseline;gap:11px;flex-wrap:wrap;border:1px solid var(--line,#1d1f22);
  border-left:3px solid var(--line3,#34373c);border-radius:6px;padding:6px 10px;background:var(--bg2,#0a0a0b);
  font-family:var(--mono,monospace);font-size:9.5px;color:var(--txt3,#787c83)}
.ldyx-mi-ar.ok{border-left-color:var(--green,#3fbf7f)}
.ldyx-mi-ar.ko{border-left-color:var(--red,#ee3333)}
.ldyx-mi-ar.ign{border-left-color:var(--amber,#d9a441);opacity:.8}
.ldyx-mi-ar .n{color:var(--txt,#d6d8db);font-weight:700}
.ldyx-mi-ar .q{color:var(--txt3,#787c83)}
.ldyx-mi-ar .s{margin-left:auto;letter-spacing:.09em}
.ldyx-mi-ar.ok .s{color:var(--green,#3fbf7f)}
.ldyx-mi-ar.ko .s{color:var(--red,#ee3333)}
.ldyx-mi-ar.ign .s{color:var(--amber,#d9a441)}
.ldyx-mi-ar .r{flex:1 1 100%;color:var(--txt2,#8b8f96);font-style:italic}

/* ── arborescence des liens ── */
.ldyx-ar-base{display:flex;align-items:center;gap:11px;flex-wrap:wrap;margin:12px 0 4px;
  border:1px solid var(--line,#1d1f22);border-radius:8px;padding:10px 12px;background:var(--panel,#0d0e10);
  font-family:var(--mono,monospace);font-size:10px;color:var(--txt3,#787c83);letter-spacing:.08em}
.ldyx-ar-b{display:flex;flex-direction:column;gap:4px}
.ldyx-ar-l{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid var(--line,#1d1f22);
  border-left:3px solid var(--line3,#34373c);border-radius:6px;padding:6px 10px;background:var(--bg2,#0a0a0b)}
.ldyx-ar-l:hover{border-left-color:var(--hull,#6fb3e8)}
.ldyx-ar-l .n{font-family:var(--mono,monospace);font-size:10.5px;color:var(--txt,#d6d8db);font-weight:700;
  min-width:170px}
.ldyx-ar-l .no{font-family:var(--mono,monospace);font-size:9px;color:var(--txt3,#787c83)}
.ldyx-ar-l code,.ldyx-ar-base code{font-family:var(--mono,monospace);font-size:9.5px;color:var(--hull,#6fb3e8);
  background:rgba(111,179,232,.08);border:1px solid rgba(111,179,232,.18);border-radius:4px;padding:2px 7px}
.ldyx-ar-c{margin-left:auto;font-family:var(--mono,monospace);font-size:9px;letter-spacing:.1em;
  color:var(--txt3,#787c83);background:transparent;border:1px solid var(--line2,#26282c);border-radius:4px;
  padding:4px 9px;cursor:pointer;transition:all .14s;white-space:nowrap}
.ldyx-ar-c:hover{color:var(--txt,#d6d8db);border-color:var(--line3,#34373c)}
.ldyx-ar-c.ldyx-on{color:var(--green,#3fbf7f);border-color:rgba(63,191,127,.45)}
.ldyx-ar-o{font-family:var(--mono,monospace);font-size:9px;letter-spacing:.1em;color:var(--hull,#6fb3e8);
  border:1px solid rgba(111,179,232,.3);border-radius:4px;padding:4px 9px;text-decoration:none;white-space:nowrap}
.ldyx-ar-o:hover{background:rgba(111,179,232,.1)}
.ldyx-ar-vide{font-family:var(--mono,monospace);font-size:9.5px;color:var(--txt3,#787c83);padding:8px 2px}
@media(max-width:900px){.ldyx-ar-l .n{min-width:0;flex:1 1 100%}.ldyx-ar-c{margin-left:0}}

/* ── coffre : stock personnel + gestion HCM ── */
.ldyx-cf-g{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:10px 0 4px}
.ldyx-cf-k{border:1px solid var(--line,#1d1f22);border-radius:8px;padding:10px 12px;background:var(--panel,#0d0e10)}
.ldyx-cf-k .l{font-family:var(--mono,monospace);font-size:9px;letter-spacing:.13em;color:var(--txt3,#787c83)}
.ldyx-cf-k .b{font-family:var(--mono,monospace);font-size:19px;color:#fff;margin-top:5px;font-variant-numeric:tabular-nums}
.ldyx-cf-k .b.am{color:var(--amber,#d9a441)}
.ldyx-cf-k .n{font-family:var(--mono,monospace);font-size:9px;color:var(--txt3,#787c83);margin-top:3px}
.ldyx-cf-l{display:flex;flex-direction:column;gap:5px}
.ldyx-cf-r{display:flex;align-items:center;gap:11px;flex-wrap:wrap;border:1px solid var(--line,#1d1f22);
  border-left:3px solid var(--line3,#34373c);border-radius:6px;padding:7px 11px;background:var(--bg2,#0a0a0b)}
.ldyx-cf-r.vte{border-left-color:var(--amber,#d9a441)}
.ldyx-cf-r.mien{border-left-color:var(--hull,#6fb3e8)}
.ldyx-cf-r .n{font-family:var(--mono,monospace);font-size:11px;color:var(--txt,#d6d8db);font-weight:700;min-width:180px}
.ldyx-cf-r .m{font-family:var(--mono,monospace);font-size:9px;color:var(--txt3,#787c83)}
.ldyx-cf-r .v{font-family:var(--mono,monospace);font-size:9.5px;color:var(--txt2,#8b8f96)}
.ldyx-cf-r .p{font-family:var(--mono,monospace);font-size:10.5px;color:var(--amber,#d9a441);
  font-variant-numeric:tabular-nums;white-space:nowrap}
.ldyx-cf-r .sp{margin-left:auto}
.ldyx-cf-r .ldyx-btn{padding:5px 10px;font-size:10px}
.ldyx-cf-px{background:var(--bg,#050505);border:1px solid var(--line2,#26282c);border-radius:6px;
  padding:5px 8px;color:var(--txt,#d6d8db);font-family:var(--mono,monospace);font-size:10.5px;width:96px}
.ldyx-cf-px:focus{outline:none;border-color:rgba(217,164,65,.5)}
.ldyx-cf-ret.armed{color:var(--red,#ee3333) !important;border-color:var(--red-line,rgba(238,51,51,.45)) !important}
.ldyx-cf-vide{font-family:var(--mono,monospace);font-size:9.5px;color:var(--txt3,#787c83);
  border:1px dashed var(--line2,#26282c);border-radius:8px;padding:11px;text-align:center}
.ldyx-cf-sub{font-family:var(--mono,monospace);font-size:9px;letter-spacing:.12em;color:var(--txt3,#787c83);
  margin:13px 0 6px}
.ldyx-cf-sub b{color:var(--amber,#d9a441);font-weight:400}
.ldyx-mk-ret{margin-top:6px}
@media(max-width:900px){.ldyx-cf-g{grid-template-columns:1fr}
  .ldyx-cf-r .n{min-width:0;flex:1 1 100%}.ldyx-cf-r .sp{margin-left:0}}
/* === style-3 === */
.ldyxm-tabs{margin-bottom:18px;flex-wrap:wrap}
.ldyxm-tabs .cnt{margin-left:2px;font-family:var(--mono);font-size:9px;background:var(--red);
  color:#fff;border-radius:8px;padding:1px 6px;font-weight:700;line-height:1.5}
.ldyxm-tabs .tab{white-space:nowrap}
/* === ldyf-css === */
.ldyn-cont{border-left:3px solid var(--red);background:#0b0b0d;border-radius:5px;padding:12px 14px;margin-top:8px}
.ldyn-txt{font-size:13px;line-height:1.65;color:var(--txt2);word-break:break-word}
.ldyn-sub{font-size:11px;color:var(--txt3);line-height:1.5}
.ldyn-sep{border:0;border-top:1px solid var(--line);margin:9px 0}
.ldyn-sep.grand{margin:16px 0}
.ldyn-gal{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.ldyn-gal img{max-width:240px;max-height:150px;border-radius:4px;border:1px solid var(--line)}
.ldyn-sec{display:flex;gap:10px;align-items:flex-start;justify-content:space-between}
.ldyn-vig{width:74px;height:74px;object-fit:cover;border-radius:4px;border:1px solid var(--line)}
.ldyn-btns{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}
.ldyn-btn{display:inline-block;font-size:12px;padding:5px 12px;border-radius:4px;background:#3b3d44;color:#dfe1e5;border:1px solid #4a4d55}
.ldyn-var{display:inline-block;font-family:var(--mono);font-size:10px;padding:2px 7px;border:1px solid var(--line);border-radius:9px;color:var(--amber);cursor:pointer;margin:0 5px 5px 0}
.ldyn-var:hover{border-color:var(--amber)}
.ldyf-md-h1{font-family:var(--sans);font-weight:800;font-size:16px;color:var(--txt);margin:14px 0 6px}
.ldyf-md-h2{font-family:var(--sans);font-weight:700;font-size:14px;color:var(--txt);margin:12px 0 5px}
.ldyf-md-h3{font-family:var(--mono);font-size:10.5px;letter-spacing:1.6px;text-transform:uppercase;color:var(--amber);margin:11px 0 4px}
.ldyf-md-h4,.ldyf-md-h5,.ldyf-md-h6{font-weight:700;color:var(--txt2);margin:9px 0 3px}
.ldyf-md-li{padding-left:15px;position:relative}
.ldyf-md-li:before{content:"\25B8";position:absolute;left:0;color:var(--red)}
.ldyf-md-q{border-left:2px solid var(--line);padding-left:9px;color:var(--txt3);font-style:italic}
.ldyf-md-hr{border:0;border-top:1px solid var(--line);margin:10px 0}

/* Tout puise dans les variables de la charte : --panel --line --line2 --txt2
   --txt3 --red --amber --green --blue --hull --mono --sans --display */
.ldyf-grid{display:grid;grid-template-columns:340px 1fr;gap:16px;align-items:start}
@media(max-width:860px){.ldyf-grid{grid-template-columns:1fr}}
.ldyf-item{cursor:pointer;border:1px solid var(--line);border-left:3px solid var(--line);
  background:var(--panel2);padding:9px 11px;border-radius:6px;margin-bottom:7px;transition:border-color .15s}
.ldyf-item:hover{border-color:var(--line2)}
.ldyf-item.on{border-left-color:var(--red);background:var(--panel)}
.ldyf-item .t{font-weight:700;color:var(--txt);font-size:13.5px;font-family:var(--sans)}
.ldyf-item .d{font-size:10px;color:var(--txt3);font-family:var(--mono);margin-top:2px}
.ldyf-f{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.ldyf-f label{display:block}
.ldyf-f .l,.ldyf-l{font-family:var(--mono);font-size:9.5px;color:var(--txt3);letter-spacing:1.5px;
  text-transform:uppercase}
.ldyf-msg{font-family:var(--mono);font-size:11px;margin-top:9px;min-height:14px}
.ldyf-msg.ok{color:var(--green)}.ldyf-msg.ko{color:var(--red)}
.ldyf-check{border:1px dashed var(--line2);border-radius:6px;padding:9px 12px;margin:10px 0;
  font-family:var(--mono);font-size:11px;color:var(--txt2)}
.ldyf-check.pret{border-color:var(--green);color:var(--green)}
.ldyf-evid{display:flex;gap:9px;flex-wrap:wrap;margin:10px 0}
.ldyf-evid .c{border:1px solid var(--line);background:var(--panel2);border-radius:6px;padding:7px 12px;min-width:96px}
.ldyf-evid .k{font-family:var(--mono);font-size:8.5px;color:var(--txt3);letter-spacing:1.5px;text-transform:uppercase}
.ldyf-evid .v{font-size:14px;font-weight:700;color:var(--txt);margin-top:2px;font-family:var(--sans)}
.ldyf-strip{margin-top:8px;display:flex;gap:7px;flex-wrap:wrap;font-family:var(--mono);font-size:10px}
.ldyf-strip span{border:1px solid var(--line2);border-radius:4px;padding:2px 8px;color:var(--txt2);background:var(--panel)}
.ldyf-strip .diff{color:var(--amber);border-color:var(--amber)}
/* champs autonomes (la classe .in du site vient d'un bloc masqué : on n'en dépend plus) */
.ldyf-in{display:block;background:#111214;border:1px solid #26282c;border-radius:6px;color:#dfe1e5;
  font-family:var(--mono);font-size:13px;padding:8px 10px;width:100%;outline:none;margin-top:6px}
.ldyf-in:focus{border-color:#3c4046}
textarea.ldyf-in{resize:vertical;min-height:150px;line-height:1.6;font-family:var(--sans);font-size:13.5px}
select.ldyf-in{appearance:auto}
/* RSVP : vert · jaune · bleu */
.ldyf-rvP{border-color:rgba(63,191,127,.55) !important;color:var(--green) !important}
.ldyf-rvP.on{background:var(--green-dim) !important;border-color:var(--green) !important}
.ldyf-rvM{border-color:rgba(217,164,65,.55) !important;color:var(--amber) !important}
.ldyf-rvM.on{background:var(--amber-dim) !important;border-color:var(--amber) !important}
.ldyf-rvA{border-color:rgba(74,144,217,.55) !important;color:var(--blue) !important}
.ldyf-rvA.on{background:var(--blue-dim) !important;border-color:var(--blue) !important}
/* colonnes présents / peut-être / absents (DA de la vue Événements) */
.ldyo-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-top:11px}
.ldyo-cols .col{border:1px solid var(--line);border-radius:6px;background:var(--panel2);padding:9px 12px}
.ldyo-cols .col .h{font-family:var(--mono);font-size:9.5px;letter-spacing:1.5px;margin-bottom:7px}
.ldyo-cols .col.p .h{color:var(--green)} .ldyo-cols .col.m .h{color:var(--amber)} .ldyo-cols .col.a .h{color:var(--blue)}
.ldyo-cols .col div{font-size:12.5px;color:var(--txt);font-family:var(--sans);line-height:1.9}
.ldyo-cols .col div:before{content:'● ';font-size:8px;vertical-align:1px;color:var(--txt3)}
/* la liste des opérations, cartes datées (DA d'avant) */
.ldyo-ev{display:flex;gap:11px;align-items:flex-start;cursor:pointer;border:1px solid var(--line);
  border-left:3px solid var(--line);background:var(--panel2);padding:10px 12px;border-radius:6px;margin-bottom:8px}
.ldyo-ev:hover{border-color:var(--line2)}
.ldyo-ev.on{border-left-color:var(--red);background:var(--panel)}
.ldyo-date{min-width:46px;text-align:center;border:1px solid var(--line2);border-radius:6px;padding:5px 2px;font-family:var(--mono)}
.ldyo-date .j{font-size:17px;font-weight:700;color:var(--txt);line-height:1}
.ldyo-date .m{font-size:8px;color:var(--red);text-transform:uppercase;letter-spacing:1px;margin-top:3px}
.ldyo-ev .t{font-weight:700;color:var(--txt);font-size:13.5px;font-family:var(--sans)}
.ldyo-ev .d{font-size:10px;color:var(--txt3);font-family:var(--mono);margin-top:2px}
/* la carte orbitale — Yela et les opérations en balises */
.ldyo-orb{border:1px solid var(--line);border-radius:8px;background:#050505;overflow:hidden;margin-bottom:14px}
.ldyo-orb svg{display:block;width:100%;height:auto;max-height:250px}
.ldyo-orb [data-orb]{cursor:pointer}
.ldyo-orb .halo{animation:ldyfEcho 2s ease-out infinite}
/* le workflow en 5 temps */
.ldyf-steps{display:flex;align-items:flex-start;margin:4px 0 14px;overflow-x:auto;padding-bottom:2px}
.ldyf-steps .st{flex:1;min-width:86px;text-align:center;position:relative;
  font-family:var(--mono);font-size:8.5px;letter-spacing:1px;color:var(--txt3);text-transform:uppercase}
.ldyf-steps .st:before{content:'';display:block;width:11px;height:11px;border-radius:50%;
  margin:0 auto 5px;border:2px solid var(--line2);background:var(--panel);position:relative;z-index:1}
.ldyf-steps .st:after{content:'';position:absolute;top:5px;left:calc(50% + 9px);right:calc(-50% + 9px);
  height:2px;background:var(--line)}
.ldyf-steps .st:last-child:after{display:none}
.ldyf-steps .st.fait{color:var(--green)}
.ldyf-steps .st.fait:before{border-color:var(--green);background:var(--green)}
.ldyf-steps .st.fait:after{background:var(--green)}
.ldyf-steps .st.ici{color:var(--red)}
.ldyf-steps .st.ici:before{border-color:var(--red);background:var(--panel);animation:ldyfPuls 1.6s ease-in-out infinite}
@keyframes ldyfPuls{0%,100%{box-shadow:0 0 0 0 var(--red-glow)}50%{box-shadow:0 0 0 7px transparent}}
/* la table tactique en aperçu */
.ldyf-radar{position:relative;border:1px solid var(--line);border-radius:8px;overflow:hidden;
  background:radial-gradient(circle at 50% 50%, var(--panel2) 0%, var(--bg2) 70%)}
.ldyf-radar svg{display:block;width:100%;height:auto}
.ldyf-radar .balaye{transform-origin:150px 110px;animation:ldyfBal 5s linear infinite}
@keyframes ldyfBal{to{transform:rotate(360deg)}}
.ldyf-radar .echo{animation:ldyfEcho 2.4s ease-out infinite}
@keyframes ldyfEcho{0%{opacity:.85}55%{opacity:.35}100%{opacity:.85}}
.ldyf-radar .pose{opacity:0;animation:ldyfPose .5s ease-out forwards}
/* v9 · même raison : les pastilles du radar restaient invisibles en veille. */
@keyframes ldyfPose{from{transform:scale(.2)}to{transform:scale(1)}}
/* la frappe de forge (effet transitoire, seule chose en superposition) */
#ldyfFrappe{position:fixed;inset:0;z-index:9600;display:none;align-items:center;justify-content:center;
  background:rgba(5,5,5,.72);pointer-events:none}
#ldyfFrappe.on{display:flex}
#ldyfFrappe .sceau{border:3px solid var(--red);border-radius:8px;padding:22px 40px;background:var(--bg2);
  font-family:var(--display);font-size:24px;letter-spacing:5px;color:var(--red);
  text-align:center;animation:ldyfSceau .55s cubic-bezier(.2,1.6,.35,1) forwards;position:relative}
@keyframes ldyfSceau{0%{opacity:0;transform:scale(2.4) rotate(-7deg)}60%{opacity:1;transform:scale(.94) rotate(1deg)}
  100%{opacity:1;transform:scale(1) rotate(0)}}
#ldyfFrappe .etin{position:absolute;width:4px;height:4px;border-radius:50%;background:var(--amber);
  top:50%;left:50%;animation:ldyfEtin .8s ease-out forwards}
@keyframes ldyfEtin{from{opacity:1;transform:translate(0,0)}to{opacity:0;transform:translate(var(--dx),var(--dy))}}
/* l'annonce en machine à écrire */
.ldyf-tw{font-family:var(--mono);font-size:11px;line-height:1.6;color:var(--txt2);
  white-space:pre-wrap;border-left:3px solid var(--hull);padding-left:11px;min-height:60px}
.ldyf-tw.frappe:after{content:'▌';color:var(--hull);animation:ldyfCaret 1s steps(1) infinite}
@keyframes ldyfCaret{50%{opacity:0}}
/* la page unique de l'opération */
.ldyo-hero{position:relative;overflow:hidden;border-left:3px solid var(--red)}
.ldyf-anim{animation:ldyfIn .3s ease-out;opacity:1}
/* v9 · l'opacité ne dépend plus de l'animation : en veille (html.ldy-endormi
   met animation-play-state:paused sur tout), l'écran restait figé sur la
   première image, donc invisible. C'était la « page noire ». */
@keyframes ldyfIn{from{transform:translateY(8px)}to{transform:none}}
.ldyo-tact{background-image:
  repeating-linear-gradient(0deg, rgba(111,179,232,.035) 0 1px, transparent 1px 34px),
  repeating-linear-gradient(90deg, rgba(111,179,232,.035) 0 1px, transparent 1px 34px)}
.ldyf-glow{animation:ldyfGlow 2.6s ease-in-out infinite}
@keyframes ldyfGlow{0%,100%{box-shadow:0 0 0 0 rgba(238,51,51,.0)}50%{box-shadow:0 0 14px 1px rgba(238,51,51,.35)}}
.ldyo-cpt .lbl{font-size:8.5px;color:var(--txt3);letter-spacing:2px;display:block;margin-bottom:2px}
.ldyo-cpt .val{font-size:17px;letter-spacing:2.5px;color:var(--hull);text-shadow:0 0 12px rgba(111,179,232,.35)}
.ldyo-orb{position:relative}
.ldyo-orb:after{content:'';position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(0deg, rgba(255,255,255,.014) 0 1px, transparent 1px 3px)}
.ldyo-titre{text-shadow:0 0 18px rgba(238,51,51,.25)}
.ldyo-hero .fond{position:absolute;inset:-40%;opacity:.10;pointer-events:none;
  background:conic-gradient(from 0deg, transparent 0 84%, var(--hull) 97%, transparent 100%);
  animation:ldyfBal 9s linear infinite;transform-origin:center}
.ldyo-titre{margin:0;font-family:var(--display);font-size:20px;letter-spacing:2.5px;color:var(--txt);position:relative}
.ldyo-cpt{font-family:var(--mono);font-size:12.5px;color:var(--hull);letter-spacing:2px;position:relative;margin-top:6px}
.ldyo-ship{border:1px solid var(--line);border-radius:8px;background:var(--panel2);padding:11px 13px;margin-bottom:10px}
.ldyo-ship .nom{font-weight:700;color:var(--txt);font-size:14px;font-family:var(--sans)}
.ldyo-ship .cls{font-family:var(--mono);font-size:9.5px;color:var(--txt3);letter-spacing:1px}
.ldyo-ship img{float:right;max-height:46px;max-width:120px;opacity:.85;margin-left:8px}
.ldyo-postes{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}
.ldyo-poste{border:1px solid var(--line2);border-radius:5px;padding:5px 10px;font-family:var(--mono);
  font-size:10px;color:var(--txt2);background:var(--panel)}
.ldyo-poste.pris{border-color:var(--green);color:var(--green)}
.ldyo-poste.mien{border-color:var(--red);color:var(--red)}
.ldyo-poste .qui{color:var(--txt)}
.ldyo-poste button{margin-left:8px;cursor:pointer;border:1px solid var(--red-dim);background:transparent;color:var(--red);
  font-family:inherit;font-size:9px;letter-spacing:1px;padding:2px 8px;border-radius:4px}
.ldyo-poste button:hover{border-color:var(--red);color:var(--txt)}
.ldyo-poste button:disabled{opacity:.4;cursor:default}
.ldyo-ph{display:flex;gap:8px;flex-wrap:wrap}
.ldyo-ph .p{border:1px solid var(--line);border-radius:6px;padding:7px 12px;background:var(--panel2);min-width:110px}
.ldyo-ph .p .h{font-family:var(--mono);font-size:9px;color:var(--hull);letter-spacing:1px}
.ldyo-ph .p .n{font-weight:700;color:var(--txt);font-size:12.5px;margin-top:2px;font-family:var(--sans)}
/* le fil de retour depuis l'éditeur de plan */
#ldyfRetour{position:fixed;right:18px;bottom:18px;z-index:9500;display:flex;gap:6px;align-items:center;
  background:var(--panel);border:1px solid var(--red-dim);border-radius:8px;padding:8px 12px;
  font-family:var(--mono);font-size:10.5px;color:var(--txt2);box-shadow:0 4px 18px rgba(0,0,0,.5)}
#ldyfRetour .go{cursor:pointer;color:var(--red)}
#ldyfRetour .go:hover{color:var(--txt)}
#ldyfRetour .x{cursor:pointer;color:var(--txt3);margin-left:4px}
/* l'éditeur de composition (plan par défaut de la fiche) */
.ldyf-comprow{display:grid;grid-template-columns:72px 1fr 1fr 1.4fr 30px;gap:7px;margin-bottom:7px;align-items:center}
.ldyf-comprow .vig{width:72px;height:34px;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--line);border-radius:5px;background:var(--panel2);overflow:hidden}
.ldyf-comprow .vig img{max-width:68px;max-height:30px;opacity:.9}
.ldyf-cata{border:1px solid var(--line2);border-radius:8px;background:var(--panel2);padding:12px;margin:10px 0}
.ldyf-cata .grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;
  max-height:300px;overflow-y:auto;margin-top:10px}
.ldyf-vso{cursor:pointer;border:1px solid var(--line);border-radius:6px;background:var(--panel);
  padding:8px;text-align:center;transition:border-color .13s}
.ldyf-vso:hover{border-color:var(--red)}
.ldyf-vso img{max-width:100%;max-height:44px;opacity:.9}
.ldyf-vso .n{font-family:var(--sans);font-weight:700;font-size:11.5px;color:var(--txt);margin-top:5px}
.ldyf-vso .c{font-family:var(--mono);font-size:8.5px;color:var(--txt3);letter-spacing:.5px}
@media (prefers-reduced-motion: reduce){
  .ldyf-radar .balaye,.ldyf-radar .echo,.ldyf-radar .pose,.ldyo-hero .fond,
  .ldyf-steps .st.ici:before,#ldyfFrappe .sceau,#ldyfFrappe .etin,.ldyo-orb .halo,
  .ldyf-anim,.ldyf-glow{animation:none !important;opacity:1}
}

/* ═══════════ v9 ═══════════ */
/* témoin de liaison temps réel */
/* v9 · FILET ANTI-PAGE-NOIRE, POUR TOUTE L'APP
   `html.ldy-endormi` met animation-play-state:paused sur tout. Les conteneurs
   qui s'affichent par une animation partant d'opacity:0 restent donc invisibles :
   l'écran est rendu, complet, à opacité nulle. On ne touche pas aux animations —
   on garantit seulement que rien ne peut rester invisible pendant la veille. */
html.ldy-endormi .view,
html.ldy-endormi .ldyf-anim,
html.ldy-endormi #content > *{opacity:1 !important}

.ldyf-rt{font-family:var(--mono);font-size:10px;letter-spacing:.5px;color:var(--txt3);white-space:nowrap}
.ldyf-rt.on{color:var(--green)}
.ldyf-rt.wk{color:var(--amber)}

/* la fiche du loup : des blocs numérotés, rien de replié */
.ldyo-b .p-label{display:flex;align-items:center;gap:9px}
.ldyo-b.attend{border-color:rgba(230,168,58,.45)}
.ldyo-n{font-family:var(--mono);font-size:9px;color:var(--amber);border:1px solid rgba(230,168,58,.4);
  border-radius:4px;padding:1px 5px;flex:none}
.ldyo-rdv{margin-top:10px;display:grid;grid-template-columns:auto 1fr;gap:2px 16px;align-items:baseline}
.ldyo-rdv .q{font-family:var(--sans);font-size:21px;font-weight:700;color:var(--txt);line-height:1.15}
.ldyo-rdv .cd{font-family:var(--mono);font-size:13px;color:var(--hull);letter-spacing:1.5px;white-space:nowrap}
.ldyo-rdv .ou{grid-column:1/-1;font-size:13px;color:var(--txt2);margin-top:3px}
.ldyo-rep{display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px;margin-top:10px}
.ldyo-rep .rsvp-btn{padding:13px 6px;font-size:12px;letter-spacing:.5px;text-align:center}
.ldyo-rep .rsvp-btn span{display:block;font-size:10px;color:var(--txt3);margin-top:3px}
.ldyo-rep .rsvp-btn.on span{color:inherit;opacity:.75}
.ldyo-prep{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
.ldyo-prep .it{display:flex;gap:9px;align-items:flex-start;border:1px solid var(--line);border-radius:8px;
  padding:9px 12px;background:var(--panel2);flex:1 1 190px}
.ldyo-prep .ic{font-size:15px;line-height:1.2;flex:none}
.ldyo-prep .k{display:block;font-family:var(--mono);font-size:8.5px;letter-spacing:1px;color:var(--txt3);text-transform:uppercase}
.ldyo-prep .v{display:block;font-size:12.5px;color:var(--txt);margin-top:2px}
.ldyo-mon{display:flex;gap:13px;align-items:center;flex-wrap:wrap;margin-top:10px}
.ldyo-mon .lb{font-family:var(--sans);font-size:16px;font-weight:700;color:var(--txt)}
.ldyo-mon .sb{font-size:12px;color:var(--txt2);margin-top:2px}
.ldyo-mon img,.ldyo-mon svg{float:none;max-height:44px}
.ldyo-sep{font-family:var(--mono);font-size:10px;letter-spacing:2.4px;color:var(--txt3);
  margin:20px 0 11px;display:flex;align-items:center;gap:10px}
.ldyo-sep:after{content:"";flex:1;height:1px;background:var(--line)}
.ldyo-ship.emb{margin-left:18px;border-left:2px solid var(--hull)}
.ldyo-porte{font-family:var(--mono);font-size:9.5px;color:var(--hull);margin-top:4px}

/* râtelier : l'état de veille et le geste d'officier */
.ldyf-item .veille{font-family:var(--mono);font-size:8.5px;color:var(--amber);
  border:1px solid rgba(230,168,58,.4);border-radius:4px;padding:0 4px;margin-left:6px}
.ldyf-rk{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:9px 0 4px}
.ldyf-rk .btn{padding:3px 9px;font-size:10px}
.ldyf-vign{display:block;width:100%;max-height:120px;object-fit:cover;border-radius:6px;margin-top:7px}
/* === ldyp-css === */
.ldyp-in{display:block;background:#111214;border:1px solid #26282c;border-radius:6px;color:#dfe1e5;
  font-family:var(--mono);font-size:13px;padding:8px 10px;width:100%;outline:none;margin-top:6px}
.ldyp-in:focus{border-color:#3c4046}
.ldyp-msg{font-family:var(--mono);font-size:11px;margin-top:9px;min-height:14px}
.ldyp-msg.ok{color:var(--green)}.ldyp-msg.ko{color:var(--red)}
.ldyp-lot{display:flex;gap:9px;align-items:center;flex-wrap:wrap;border:1px solid var(--line);
  border-radius:6px;background:var(--panel2);padding:8px 12px;margin-bottom:7px}
.ldyp-lot .o{font-family:var(--sans);font-weight:700;color:var(--txt)}
.ldyp-lot .b{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}
.ldyp-lot button{cursor:pointer;font-family:var(--mono);font-size:9.5px;letter-spacing:.5px;
  padding:4px 9px;border-radius:5px;background:transparent;border:1px solid var(--line2);color:var(--txt2)}
.ldyp-lot button:hover{color:var(--txt)}
.ldyp-lot button.r{border-color:rgba(63,191,127,.55);color:var(--green)}
.ldyp-lot button.w{border-color:rgba(217,164,65,.55);color:var(--amber)}
.ldyp-lot button.g{border-color:rgba(238,51,51,.55);color:var(--red)}
.ldyp-lot button:disabled{opacity:.4;cursor:default}
.ldyp-gard{font-family:var(--mono);font-size:9.5px;letter-spacing:1.5px;color:var(--hull);
  text-transform:uppercase;margin:10px 0 6px}
.ldyp-histo{font-family:var(--mono);font-size:10.5px;color:var(--txt2);line-height:2}
.ldyp-histo b{color:var(--txt)}
/* === style-6 === */
.eco-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 16px}
.eco-tab{font-family:var(--mono);font-size:10.5px;letter-spacing:.09em;padding:8px 13px;border:1px solid var(--line2);border-radius:6px;background:var(--panel);color:var(--txt2);cursor:pointer;transition:all .15s}
.eco-tab:hover{border-color:var(--txt3);color:var(--txt)}
.eco-tab.on{border-color:var(--red);color:#fff;background:var(--red-glow)}
.eco-grp{border:1px solid var(--line);border-radius:8px;background:var(--panel);margin-bottom:10px;overflow:hidden}
.eco-gh{display:flex;align-items:center;gap:12px;padding:12px 14px;cursor:pointer;user-select:none;flex-wrap:wrap}
.eco-gh:hover{background:var(--panel2)}
.eco-car{font-family:var(--mono);color:var(--txt3);font-size:10px;width:12px;transition:transform .15s}
.eco-grp.open .eco-car{transform:rotate(90deg)}
.eco-gn{font-weight:700;color:var(--txt);font-size:13.5px}
.eco-gf{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;color:var(--txt3)}
.eco-gm{margin-left:auto;display:flex;gap:16px;align-items:center;font-family:var(--mono);font-size:11px;color:var(--txt2);flex-wrap:wrap}
.eco-lots{display:none;border-top:1px solid var(--line)}
.eco-grp.open .eco-lots{display:block}
.eco-act{font-family:var(--mono);font-size:10px;padding:4px 8px;border-radius:5px;border:1px solid var(--line2);background:var(--panel2);color:var(--txt2);cursor:pointer;margin-left:4px;white-space:nowrap}
.eco-act:hover{color:var(--txt);border-color:var(--txt3)}
.eco-act.w:hover{color:var(--red);border-color:var(--red)}
.eco-act.g:hover{color:var(--green);border-color:var(--green)}
.eco-act.a:hover{color:var(--amber);border-color:var(--amber)}
/* le sélecteur de quantité — on prend ce qu'on veut, le reste retourne en vitrine */
.qx-fond{position:fixed;inset:0;background:rgba(4,6,9,.72);backdrop-filter:blur(3px);z-index:9000;
  display:flex;align-items:center;justify-content:center;padding:20px}
.qx-boite{width:min(430px,94vw);background:var(--panel,#12161c);border:1px solid var(--line2,#2a3038);
  border-radius:12px;padding:20px;box-shadow:0 24px 70px rgba(0,0,0,.6)}
.qx-t{font-family:var(--mono);font-size:11px;letter-spacing:.10em;color:var(--txt3);margin-bottom:3px}
.qx-n{font-size:19px;font-weight:600;color:var(--txt);margin-bottom:14px;line-height:1.25}
.qx-in{width:100%;background:var(--panel2,#0d1116);border:1px solid var(--line2,#2a3038);border-radius:8px;
  padding:11px 12px;color:var(--txt);font-family:var(--mono);font-size:20px;text-align:center}
.qx-in:focus{outline:none;border-color:var(--amber,#d9a441)}
.qx-sl{width:100%;margin:12px 0 4px;accent-color:var(--amber,#d9a441)}
.qx-rap{display:flex;gap:6px;margin-bottom:12px}
.qx-rap button{flex:1;font-family:var(--mono);font-size:10px;padding:5px 0;border-radius:6px;
  border:1px solid var(--line2,#2a3038);background:var(--panel2,#0d1116);color:var(--txt2);cursor:pointer}
.qx-rap button:hover{color:var(--amber,#d9a441);border-color:var(--amber,#d9a441)}
.qx-kv{display:flex;justify-content:space-between;padding:6px 0;border-top:1px solid var(--line,#1c2128);
  font-family:var(--mono);font-size:11px;color:var(--txt2)}
.qx-kv b{color:var(--txt);font-weight:600}
.qx-tot{font-size:16px;color:var(--amber,#d9a441)}
.qx-err{color:var(--red,#c9524a);font-size:11px;font-family:var(--mono);min-height:14px;margin-top:6px}
.qx-btn{display:flex;gap:8px;margin-top:14px}
.qx-btn button{flex:1;padding:11px 0;border-radius:8px;font-family:var(--mono);font-size:11px;
  letter-spacing:.08em;cursor:pointer;border:1px solid var(--line2,#2a3038);background:var(--panel2,#0d1116);color:var(--txt2)}
.qx-btn button.ok{background:var(--amber,#d9a441);border-color:var(--amber,#d9a441);color:#12100a;font-weight:700}
.qx-btn button.ok:disabled{opacity:.4;cursor:not-allowed}
.eco-in{background:var(--panel2);border:1px solid var(--line2);border-radius:6px;color:var(--txt);font-family:var(--mono);font-size:12px;padding:7px 10px}
.eco-alert{border:1px solid var(--line);border-left:3px solid var(--amber);border-radius:0 8px 8px 0;background:var(--panel);padding:13px 15px;margin-bottom:10px}
.eco-alert.h{border-left-color:var(--red)}
.eco-alert h4{font-size:13px;color:var(--txt);margin:0 0 4px}
.eco-alert p{font-size:12px;color:var(--txt2);margin:0 0 6px}
.eco-why{font-family:var(--mono);font-size:10px;color:var(--txt3);margin-bottom:9px}
.eco-j{height:24px;border-radius:6px;background:var(--panel2);border:1px solid var(--line2);overflow:hidden;position:relative;margin:10px 0 6px}
.eco-j i{display:block;height:100%;background:linear-gradient(90deg,rgba(238,51,51,.5),rgba(217,164,65,.6))}
.eco-j span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:10.5px;color:#fff;letter-spacing:.06em}
.eco-warn{display:flex;gap:12px;align-items:center;border:1px solid rgba(238,51,51,.35);background:var(--red-glow);border-radius:8px;padding:11px 14px;margin-bottom:14px;flex-wrap:wrap}
/* === style-7 === */
/* Dernier rempart : même sans JS, une boîte de login figée à 0 redevient visible. */
@keyframes ldyxLoginSecours { to { opacity:1; transform:none } }
.ldyx-login-vu{ opacity:1 !important; transform:none !important; animation:none !important }
/* === style-8 === */
.v3d{position:relative;width:100%;aspect-ratio:4/3;border-radius:12px;overflow:hidden;
  background:radial-gradient(ellipse at 50% 35%,rgba(255,255,255,.035),transparent 62%),#07080a;
  cursor:grab;touch-action:none}
.v3d:active{cursor:grabbing}
.v3d canvas{display:block;width:100%;height:100%}
.v3d-att{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);text-align:center;
  font-family:var(--mono);font-size:11px;color:var(--txt3);letter-spacing:.1em}
.v3d-nom{position:absolute;left:12px;bottom:10px;font-family:var(--mono);font-size:9.5px;
  letter-spacing:.14em;color:var(--txt3);pointer-events:none;text-shadow:0 1px 6px #000}
.v3d-aide{position:absolute;right:12px;bottom:10px;font-family:var(--mono);font-size:8.5px;
  letter-spacing:.12em;color:var(--txt3);opacity:.5;pointer-events:none}
/* === style-9 === */
.bt-wrap{display:grid;grid-template-columns:1fr 340px;gap:14px;align-items:start;margin:0 0 18px}
@media (max-width:900px){.bt-wrap{grid-template-columns:1fr}}
.bt-card{background:var(--bg2,#141619);border:1px solid var(--line2,#252a30);padding:16px}
.bt-step{display:flex;flex-direction:column;gap:8px;padding:12px 0;border-bottom:1px solid var(--line2,#252a30)}
.bt-step:last-of-type{border-bottom:0;padding-bottom:0}
.bt-lab{font-family:var(--mono,monospace);font-size:10px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--txt3,#74736e);display:flex;gap:7px;align-items:baseline}
.bt-lab i{font-style:normal;color:var(--amber,#d9a441);font-weight:700}
.bt-in{font-size:14px;color:var(--txt,#e7e4dd);background:var(--bg3,#191c20);
  border:1px solid var(--line2,#31383f);padding:8px 10px;width:100%}
.bt-in:focus{outline:2px solid var(--amber,#d9a441);outline-offset:-2px}
.bt-row{display:flex;gap:8px}.bt-row>*{flex:1}.bt-row .bt-q{flex:0 0 110px}
.bt-res{max-height:200px;overflow:auto;border:1px solid var(--line2,#252a30);display:none}
.bt-res.on{display:block}
.bt-opt{display:grid;grid-template-columns:1fr auto;gap:9px;padding:7px 10px;cursor:pointer;
  border-bottom:1px solid var(--line2,#252a30);align-items:baseline;background:var(--bg3,#191c20)}
.bt-opt:last-child{border-bottom:0}
.bt-opt:hover{background:rgba(217,164,65,.14)}
.bt-fa{font-family:var(--mono,monospace);font-size:9.5px;letter-spacing:.06em;color:var(--txt3,#74736e);text-transform:uppercase}
.bt-vx{font-family:var(--mono,monospace);font-size:10.5px;color:var(--txt2,#a8a69f);white-space:nowrap}
.bt-note{font-size:12px;color:var(--txt3,#74736e);border-left:2px solid var(--line2,#31383f);padding-left:10px}
.bt-sl{display:flex;align-items:center;gap:11px}
.bt-sl input[type=range]{padding:0;background:transparent;border:0;accent-color:var(--amber,#d9a441);flex:1}
.bt-qv{font-family:var(--mono,monospace);font-size:14px;min-width:48px;text-align:right;color:var(--amber,#d9a441)}
.bt-seg{display:flex;border:1px solid var(--line2,#31383f)}
.bt-seg button{flex:1;font-size:12.5px;font-weight:600;padding:8px 6px;background:var(--bg3,#191c20);
  color:var(--txt2,#a8a69f);border:0;border-right:1px solid var(--line2,#31383f);cursor:pointer}
.bt-seg button:last-child{border-right:0}
.bt-seg button.on{background:rgba(217,164,65,.2);color:var(--txt,#e7e4dd)}
.bt-viz{background:var(--bg2,#141619);border:1px solid var(--line2,#252a30);overflow:hidden;position:sticky;top:12px}
#btGem{display:block;width:100%;height:250px}
.bt-lect{padding:13px 15px;border-top:1px solid var(--line2,#252a30);display:flex;flex-direction:column;gap:8px}
.bt-gros{font-size:30px;font-weight:700;color:var(--amber,#d9a441);line-height:1;font-variant-numeric:tabular-nums}
.bt-det{display:grid;grid-template-columns:1fr auto;gap:3px 10px;font-size:12.5px}
.bt-det span:nth-child(odd){color:var(--txt3,#74736e);font-family:var(--mono,monospace);font-size:10px;
  letter-spacing:.07em;text-transform:uppercase}
.bt-det span:nth-child(even){text-align:right;font-variant-numeric:tabular-nums}
.bt-plaf{font-family:var(--mono,monospace);font-size:10px;color:var(--red,#c4685f);letter-spacing:.06em}
.bt-lot{display:grid;grid-template-columns:10px 1fr auto auto 22px;gap:9px;align-items:baseline;
  padding:9px 0;border-bottom:1px solid var(--line2,#252a30);font-size:13.5px}
.bt-lot:last-child{border-bottom:0}
.bt-pip{width:8px;height:8px;border-radius:50%;align-self:center}
.bt-qt{font-family:var(--mono,monospace);font-size:11.5px;color:var(--txt2,#a8a69f)}
.bt-cr{font-family:var(--mono,monospace);color:var(--amber,#d9a441);font-variant-numeric:tabular-nums}
.bt-x{background:none;border:0;color:var(--txt3,#74736e);cursor:pointer;font-size:15px;line-height:1}
.bt-x:hover{color:var(--red,#c4685f)}
.bt-modes{display:flex;gap:0;border:1px solid var(--line2,#31383f);margin-bottom:12px}
.bt-modes button{flex:1;font-size:12.5px;font-weight:600;padding:9px 6px;background:var(--bg3,#191c20);
  color:var(--txt2,#a8a69f);border:0;border-right:1px solid var(--line2,#31383f);cursor:pointer}
.bt-modes button:last-child{border-right:0}
.bt-modes button.on{background:rgba(217,164,65,.2);color:var(--txt,#e7e4dd)}
#btBulk textarea{width:100%;min-height:150px;font-family:var(--mono,monospace);font-size:13px;line-height:1.7;
  color:var(--txt,#e7e4dd);background:var(--bg3,#191c20);border:1px solid var(--line2,#31383f);padding:10px;resize:vertical}
#btBulk textarea:focus{outline:2px solid var(--amber,#d9a441);outline-offset:-2px}
.bt-prev{margin-top:10px;max-height:280px;overflow:auto;border:1px solid var(--line2,#252a30)}
.bt-pl{display:grid;grid-template-columns:16px 1fr auto auto;gap:8px;align-items:baseline;padding:6px 10px;
  border-bottom:1px solid var(--line2,#252a30);font-size:13px;background:var(--bg3,#191c20)}
.bt-pl:last-child{border-bottom:0}
.bt-pl.ko{background:rgba(196,104,95,.10)}
.bt-pl .st{font-family:var(--mono,monospace);font-size:12px}
.bt-pl .st.ok{color:var(--green,#7fae86)} .bt-pl .st.warn{color:var(--red,#c4685f)}
.bt-ed{width:58px;font-family:var(--mono,monospace);font-size:12px;color:var(--txt,#e7e4dd);
  background:var(--bg3,#191c20);border:1px solid var(--line2,#31383f);padding:2px 5px;text-align:right}
.bt-tot{display:flex;justify-content:space-between;align-items:baseline;padding-top:11px;margin-top:4px;
  border-top:1px solid var(--line2,#31383f);font-weight:700;font-size:16px}
#btAncien{margin-top:22px;border-top:1px solid var(--line2,#252a30);padding-top:12px}
#btAncien > summary{cursor:pointer;font-family:var(--mono,monospace);font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--txt3,#74736e);padding:6px 0}
#btAncien > summary:hover{color:var(--amber,#d9a441)}
/* === style-10 === */
.hgx-holo{position:relative;margin:6px 0 14px;height:190px;overflow:hidden;
  border:1px solid rgba(120,170,210,.22);
  background:
    linear-gradient(180deg, rgba(10,22,34,.92) 0%, rgba(8,16,26,.96) 100%);
}
.hgx-holo::before{content:"";position:absolute;inset:0;
  background-image:
    linear-gradient(to right, rgba(120,180,220,.10) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(120,180,220,.10) 1px, transparent 1px);
  background-size:26px 26px;
  -webkit-mask-image:radial-gradient(120% 90% at 50% 45%, #000 0%, transparent 78%);
  mask-image:radial-gradient(120% 90% at 50% 45%, #000 0%, transparent 78%);
}
.hgx-holo::after{content:"";position:absolute;left:0;right:0;height:34%;top:-34%;
  background:linear-gradient(180deg, transparent, rgba(150,210,245,.07), transparent);
  animation:hgxScan 6.5s linear infinite}
@keyframes hgxScan{0%{top:-34%}100%{top:104%}}
.hgx-holo img{position:absolute;left:50%;top:50%;max-width:86%;max-height:78%;
  transform:translate(-50%,-50%);object-fit:contain;
  filter:drop-shadow(0 0 26px var(--hgxGlow,rgba(120,180,220,.55))) saturate(1.05) contrast(1.04);
  animation:hgxFloat 7s ease-in-out infinite}
@keyframes hgxFloat{0%,100%{transform:translate(-50%,-50%)}50%{transform:translate(-50%,calc(-50% - 7px))}}
.hgx-holo .hgxTag{position:absolute;left:9px;bottom:7px;font-family:var(--mono,monospace);
  font-size:8.5px;letter-spacing:.14em;color:rgba(150,200,235,.55);text-transform:uppercase}
.hgx-holo .hgxAxe{position:absolute;right:9px;bottom:7px;font-family:var(--mono,monospace);
  font-size:8.5px;letter-spacing:.1em;color:rgba(150,200,235,.35)}
.hgx-holo canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.hgx-holo.plat canvas{display:none}
.hgx-holo:not(.plat) img{opacity:0;pointer-events:none}
.hgxBasc{position:absolute;top:7px;right:7px;display:flex;border:1px solid rgba(120,170,210,.28);
  background:rgba(8,16,26,.7);z-index:2}
.hgxBasc button{font-family:var(--mono,monospace);font-size:8.5px;letter-spacing:.1em;padding:3px 7px;
  background:none;border:0;border-right:1px solid rgba(120,170,210,.28);color:rgba(150,200,235,.55);cursor:pointer}
.hgxBasc button:last-child{border-right:0}
.hgxBasc button.on{background:rgba(120,180,220,.18);color:#cfe8f8}
@media (prefers-reduced-motion: reduce){
  .hgx-holo::after{animation:none;display:none}
  .hgx-holo img{animation:none}
}
.hgx-specs{font-family:var(--mono,monospace);font-size:8.5px;letter-spacing:.18em;
  text-transform:uppercase;color:rgba(150,200,235,.7);margin:14px 0 8px;
  padding-bottom:6px;border-bottom:1px solid rgba(120,170,210,.18)}
.ldyx-hg-fiche .ldyx-row{display:block !important;padding:7px 0 !important;
  border-bottom:1px solid rgba(120,170,210,.10)}
.ldyx-hg-fiche .ldyx-row .k{display:block;font-family:var(--mono,monospace);font-size:8.5px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--txt3,#74736e);margin-bottom:2px}
.ldyx-hg-fiche .ldyx-row .v{display:block;font-size:15px;font-weight:600;color:var(--txt,#e7e4dd);
  font-variant-numeric:tabular-nums}
/* === style-11 === */
.rh-barre{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin:0 0 14px}
.rh-q{flex:1;min-width:190px;background:var(--panel2);border:1px solid var(--line2);
  border-radius:9px;padding:9px 12px;color:var(--txt);font-family:var(--sans);font-size:13px;outline:none}
.rh-q:focus{border-color:var(--amber)}
.rh-f{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;padding:7px 12px;border-radius:99px;
  border:1px solid var(--line2);background:var(--panel2);color:var(--txt2);cursor:pointer;white-space:nowrap;
  display:inline-flex;align-items:center;gap:7px}
.rh-f .e{font-size:15px;line-height:1}
.rh-f.on{color:#fff;border-color:var(--amber);background:linear-gradient(180deg,rgba(217,164,65,.20),rgba(217,164,65,.04))}
.rh-tab{width:100%;border-collapse:separate;border-spacing:0;font-size:12.5px}
.rh-tab thead th{font-family:var(--mono);font-size:8.5px;letter-spacing:.12em;color:var(--txt3);
  text-align:left;padding:11px 9px;white-space:nowrap;font-weight:500;
  position:sticky;top:0;z-index:20;background:#101216;
  box-shadow:inset 0 -1px 0 var(--line2), 0 6px 14px -8px rgba(0,0,0,.9)}
.rh-tab tbody tr{position:relative;z-index:0}
.rh-tab tbody td{background:var(--panel)}
.rh-tab thead th[data-rh-t]{cursor:pointer;user-select:none;transition:color .18s}
.rh-tab thead th[data-rh-t]:hover{color:var(--txt2)}
.rh-tab thead th .fl{opacity:0;margin-left:5px;font-size:9px}
.rh-tab thead th[data-rh-t]:hover .fl{opacity:.45}
.rh-tab thead th.tri{color:var(--amber)}
.rh-tab thead th.tri .fl{opacity:1}
.rh-det-src{display:block;font-family:var(--mono);font-size:8px;color:var(--txt3);
  letter-spacing:.06em;margin-top:3px}
.rh-tab td{padding:7px 9px;border-bottom:1px solid var(--line);vertical-align:middle}
.rh-tab tr:hover td{background:rgba(255,255,255,.026)}
.rh-loup{display:flex;align-items:center;gap:10px;min-width:200px}
.rh-av{width:28px;height:28px;border-radius:50%;background:var(--panel2) center/cover;
  border:1px solid var(--line2);flex:none}
.rh-nm{font-weight:600;color:var(--txt);line-height:1.25;font-size:13px}
.rh-sub{font-family:var(--mono);font-size:9px;color:var(--txt3);letter-spacing:.04em}

/* le détachement : l'icône que le loup porte sur le Discord, en grand */
.rh-det{display:inline-flex;align-items:center;gap:8px;padding:5px 11px 5px 7px;border-radius:99px;
  border:1px solid var(--line2);background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.01));
  cursor:pointer;transition:all .2s cubic-bezier(.32,.72,0,1);white-space:nowrap;max-width:230px}
.rh-det:hover{border-color:var(--amber);transform:translateY(-1px)}
.rh-det .e{font-size:19px;line-height:1;flex:none}
.rh-det .t{font-size:11px;color:var(--txt2);overflow:hidden;text-overflow:ellipsis}
.rh-det.rien{opacity:.5}
.rh-det.rien .e{font-size:16px;color:var(--txt3)}

/* le grade, comme dans l'Annuaire */
.rh-gr{min-width:176px}
.rh-grade{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:10.5px;line-height:1.7}
.rh-grade .chip{flex:none}
.rh-gnom{color:var(--txt2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rh-fonc{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.06em;
  color:var(--amber);margin-top:2px;line-height:1.5;white-space:nowrap}
.rh-rite{font-family:var(--mono);font-size:9px;color:var(--txt3);margin-top:3px;display:block}
.rh-rite b{color:var(--green);font-weight:600}

.rh-boite{position:relative;display:inline-block;line-height:0}
.rh-case{width:36px;height:36px;border-radius:10px;border:1px solid var(--line2);background:var(--panel2);
  cursor:pointer;font-size:18px;line-height:1;display:inline-flex;align-items:center;justify-content:center;
  transition:all .2s cubic-bezier(.32,.72,0,1)}
.rh-case:hover{transform:translateY(-1px);border-color:var(--txt3)}
.rh-case.oui{border-color:rgba(63,191,127,.55);background:rgba(63,191,127,.12)}
.rh-case.non{border-color:rgba(238,51,51,.55);background:rgba(238,51,51,.12)}
.rh-case.raison{border-color:rgba(217,164,65,.6);background:rgba(217,164,65,.14)}
/* rien de posé : on montre en filigrane ce que la machine a lu, en pointillé */
.rh-case.vide{border-style:dashed;border-color:var(--line2);opacity:.62;font-size:16px}
.rh-case.vide.rien{opacity:.35;font-size:13px;color:var(--txt3)}
/* la référence, toujours là : une pastille dans le coin, verte, rouge ou ambre */
.rh-pt{position:absolute;right:-3px;top:-3px;width:11px;height:11px;border-radius:50%;
  border:2px solid var(--panel);pointer-events:none}
.rh-pt.oui{background:var(--green)}
.rh-pt.non{background:var(--red)}
.rh-pt.ecart{background:var(--amber);box-shadow:0 0 0 2px rgba(217,164,65,.28)}
.rh-date{font-family:var(--mono);font-size:11px;color:var(--txt2);white-space:nowrap}
.rh-src{font-family:var(--mono);font-size:8px;color:var(--txt3);letter-spacing:.06em;display:block;margin-top:2px}
.rh-msg{font-family:var(--mono);font-size:10px;color:var(--txt3);letter-spacing:.06em}
.rh-parc{font-family:var(--mono);font-size:9px;color:var(--txt3);cursor:help}
@media (max-width:1250px){ .rh-opt{display:none} }
/* === style-12 === */
/* le ciel, tout au fond */
#ldyxCiel{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.85}
#app{position:relative;z-index:1}

/* les panneaux flottent : un liseré de lumière en haut, une ombre dessous */
.rl .panel{
  background:linear-gradient(180deg,rgba(255,255,255,.022),rgba(255,255,255,0) 46%),var(--panel);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05), 0 14px 30px -18px rgba(0,0,0,.95);
}
.rl .panel::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(340px circle at var(--mx,50%) var(--my,0%),
             rgba(255,255,255,.055),transparent 62%);
  opacity:0;transition:opacity .25s;
}
.rl .panel:hover::after{opacity:1}

/* les cartes de chiffres, elles, s'inclinent sous le curseur */
.rl .rl-carte{
  transform-style:preserve-3d;will-change:transform;
  transition:transform .12s cubic-bezier(.2,.7,.3,1), border-color .18s, box-shadow .25s;
}
.rl .rl-carte:hover{
  box-shadow:inset 0 1px 0 rgba(255,255,255,.09), 0 26px 46px -20px rgba(0,0,0,1);
  border-color:var(--line2);
}
.rl .rl-carte > *{transform:translateZ(18px)}

/* on entre par le bas, en cascade — une animation, jamais un état figé :
   même si plus aucun script ne tourne, l'élément finit visible. */
@keyframes rlEntre{ from{opacity:0;transform:translateY(14px)} to{opacity:1;transform:none} }
.rl .rl-entre{animation:rlEntre .52s cubic-bezier(.32,.72,0,1) both}
/* Un onglet en arrière-plan gèle la ligne du temps : une animation qui commence
   là ne bouge plus, et l'élément resterait à zéro. L'app se sait endormie —
   on lui emboîte le pas : pas d'animation, donc rien d'invisible. */
html.ldy-endormi .rl .rl-entre,
html.ldy-endormi .rl-entre{animation:none !important}


/* ─── les titres prennent du corps et de la lumière ─── */
.rl .sec-h h1{
  background:linear-gradient(96deg,#fff 12%,#cfd4da 52%,#8d939b 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  letter-spacing:.045em;
}
.rl .sec-h .slash{filter:drop-shadow(0 0 8px var(--red-glow))}
.rl .blk-h::after{
  content:"";flex:1;height:1px;
  background:linear-gradient(90deg,var(--line2),transparent);
}


/* ─── les boutons répondent : ils se soulèvent et un éclat les traverse ─── */
.rl .btn{
  position:relative;overflow:hidden;
  background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,0)),var(--panel2);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06), 0 2px 8px -4px rgba(0,0,0,.9);
}
.rl .btn::after{
  content:"";position:absolute;top:0;left:-120%;width:60%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.13),transparent);
  transition:left .55s cubic-bezier(.3,.7,.3,1);pointer-events:none;
}
.rl .btn:hover::after{left:130%}
.rl .btn:hover{transform:translateY(-1px);box-shadow:inset 0 1px 0 rgba(255,255,255,.10), 0 8px 18px -8px rgba(0,0,0,1)}
.rl .btn:active{transform:translateY(0)}

/* ─── les tableaux respirent : la ligne survolée s'éclaire ─── */
.rl .tbl tr{transition:background .14s}
.rl .tbl tbody tr:hover,.rl .tbl tr:hover{background:rgba(255,255,255,.022)}
.rl .tbl th{
  position:sticky;top:0;z-index:2;
  background:linear-gradient(180deg,var(--panel),rgba(13,14,16,.86));
  backdrop-filter:blur(6px);
}

/* ─── le menu : un rail qui s'allume sur l'écran ouvert ─── */
.rl .nav-item{position:relative}
.rl .nav-item.on{box-shadow:inset 3px 0 0 -1px var(--red), inset 0 0 34px -22px var(--red)}
.rl .nav-item.on::after{
  content:"";position:absolute;left:0;top:6px;bottom:6px;width:2px;
  background:var(--red);box-shadow:0 0 10px var(--red);border-radius:2px;
}
.rl .nav-item:not(.on):hover{background:rgba(255,255,255,.026);color:var(--txt)}

/* ─── les segments et onglets ─── */
.rl .eco-tab,.rl .bt-modes button{transition:all .16s}
.rl .eco-tab.on{box-shadow:inset 0 -2px 0 var(--amber)}


/* ═══ LE CRAN D'APRÈS ════════════════════════════════════════════════════
   Une seule courbe de mouvement, des filets dégradés, du verre sur les
   éléments qui flottent, du grain sur tout. C'est la grammaire des sites
   qui coûtent cher — chaque détail est petit, l'ensemble se voit.        */
.rl{ --ressort:cubic-bezier(.32,.72,0,1); }

/* toutes les transitions parlent la même langue */
.rl .btn,.rl .panel,.rl .nav-item,.rl .eco-act,.rl .eco-tab,.rl .tbl tr,
.rl .bt-modes button,.rl .qx-btn button,.rl .qx-rap button{
  transition-timing-function:var(--ressort)!important;
  transition-duration:.22s!important;
}

/* les chiffres s'alignent en colonnes — détail minuscule, effet immédiat */
.rl .p-big,.rl .mono,.rl .num,.rl .tbl td,.rl .tbl th{font-variant-numeric:tabular-nums}

/* le filet dégradé : plus clair là où la lumière tombe, éteint en bas.
   C'est LE trait des cartes des sites soignés. */
.rl .panel{border-color:transparent;background-clip:padding-box}
.rl .panel::before{
  content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;
  background:linear-gradient(150deg,rgba(255,255,255,.14),rgba(255,255,255,.045) 34%,rgba(255,255,255,.012) 62%,transparent);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  mask-composite:exclude;pointer-events:none;
  border-top:0;border-left:0;width:auto;height:auto;opacity:1;
}
.rl .panel.amber-t{border-top:2px solid var(--amber)}
.rl .panel.green-t{border-top:2px solid var(--green)}
.rl .panel.blue-t {border-top:2px solid var(--blue)}
.rl .panel.red-t  {border-top:2px solid var(--red)}

/* du verre sur ce qui flotte au-dessus du reste */
.rl .topbar{
  background:linear-gradient(180deg,rgba(14,15,18,.82),rgba(10,10,11,.72));
  backdrop-filter:blur(14px) saturate(1.25);-webkit-backdrop-filter:blur(14px) saturate(1.25);
  border-bottom:1px solid rgba(255,255,255,.055);
}
.rl .sidebar{
  background:linear-gradient(180deg,rgba(11,12,14,.88),rgba(9,9,10,.94));
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-right:1px solid rgba(255,255,255,.045);
}
.rl .toast,.rl .qx-boite{
  background:linear-gradient(180deg,rgba(20,22,26,.94),rgba(13,14,16,.96));
  backdrop-filter:blur(20px) saturate(1.3);-webkit-backdrop-filter:blur(20px) saturate(1.3);
  border:1px solid rgba(255,255,255,.09);
  box-shadow:0 32px 80px -28px rgba(0,0,0,1), inset 0 1px 0 rgba(255,255,255,.08);
}

/* le grain : une pellicule sur toute la page, à peine perceptible, jamais absente */
.rl::after{
  content:"";position:fixed;inset:-50%;z-index:9992;pointer-events:none;opacity:.032;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:rlGrain 1.1s steps(3) infinite;
}
@keyframes rlGrain{
  0%,100%{transform:translate(0,0)} 33%{transform:translate(-2%,1%)} 66%{transform:translate(1%,-2%)}
}

/* la lumière suit la main sur toute la page */
#ldyxHalo{
  position:fixed;inset:0;z-index:1;pointer-events:none;opacity:0;
  transition:opacity .5s ease;
  background:radial-gradient(560px circle at var(--hx,50%) var(--hy,50%),
             rgba(120,150,200,.055),transparent 70%);
}
.rl #ldyxHalo{opacity:1}

/* les titres, plus serrés, plus assurés */
.rl .sec-h h1{letter-spacing:.02em}
.rl .sec-sub{letter-spacing:.09em;opacity:.9}


/* ═══ LA FORGE DES OPÉRATIONS ════════════════════════════════════════════
   Elle marchait bien mais elle datait : boutons gris pleins, coins carrés,
   titres à halo rouge, tout serré. On la remet au goût du jour sans
   toucher à une seule ligne de sa mécanique.                             */

/* les cartes de la Forge reçoivent le même filet dégradé que le reste */
.rl .ldyo-orb,.rl .ldyo-ship,.rl .ldyf-cata,.rl .ldyn-cont{
  position:relative;border-radius:12px;border-color:transparent;
  background:linear-gradient(180deg,rgba(255,255,255,.022),rgba(255,255,255,0) 46%),var(--panel2);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05), 0 14px 30px -18px rgba(0,0,0,.95);
}
.rl .ldyo-orb{background:linear-gradient(180deg,rgba(255,255,255,.02),transparent 40%),#07080a}
.rl .ldyo-orb::before,.rl .ldyo-ship::before,.rl .ldyf-cata::before,.rl .ldyn-cont::before{
  content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;
  background:linear-gradient(150deg,rgba(255,255,255,.14),rgba(255,255,255,.04) 34%,transparent 68%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  mask-composite:exclude;pointer-events:none;
}
.rl .ldyo-hero,.rl .ldyn-cont{border-left:2px solid var(--red)}
.rl .ldyo-ship,.rl .ldyf-cata{padding:14px 16px}

/* le titre d'opération : plus de halo rouge de 2005, un dégradé net */
.rl .ldyo-titre{
  letter-spacing:.04em;text-shadow:none;
  background:linear-gradient(96deg,#fff 10%,#d2d7dd 48%,#8f959d 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.rl .ldyo-cpt{letter-spacing:.14em;font-variant-numeric:tabular-nums}

/* les boutons pleins gris deviennent des boutons de 2026 */
.rl .ldyn-btn{
  position:relative;overflow:hidden;border-radius:8px;padding:7px 14px;font-weight:600;
  background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,0)),var(--panel2);
  border:1px solid var(--line2);color:var(--txt);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06), 0 2px 8px -4px rgba(0,0,0,.9);
  transition:transform .22s var(--ressort),box-shadow .22s var(--ressort),border-color .22s;
}
.rl .ldyn-btn:hover{transform:translateY(-1px);border-color:var(--txt3);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1), 0 8px 18px -8px rgba(0,0,0,1)}

/* les champs : plus d'air, un anneau de mise au point visible */
.rl .ldyf-in{
  border-radius:9px;padding:10px 12px;background:rgba(255,255,255,.028);
  border:1px solid rgba(255,255,255,.08);
  transition:border-color .2s var(--ressort),box-shadow .2s var(--ressort),background .2s;
}
.rl .ldyf-in:focus{
  border-color:rgba(217,164,65,.6);background:rgba(255,255,255,.045);
  box-shadow:0 0 0 3px rgba(217,164,65,.12);
}
.rl .ldyf-in::placeholder{color:var(--txt3)}

/* le chemin par étapes : un vrai fil, des jalons qui respirent */
.rl .ldyf-steps{gap:2px;margin:10px 0 20px}
.rl .ldyf-steps .st:before{
  width:13px;height:13px;border-width:2px;margin-bottom:8px;
  transition:all .3s var(--ressort);
}
.rl .ldyf-steps .st.fait:before{box-shadow:0 0 12px -2px var(--green)}
.rl .ldyf-steps .st.ici:before{box-shadow:0 0 0 4px rgba(238,51,51,.14),0 0 16px -2px var(--red)}
.rl .ldyf-steps .st:after{top:6px;height:1.5px;border-radius:2px}

/* les pastilles d'information */
.rl .ldyf-strip span,.rl .ldyo-postes > *,.rl .ldyo-ph > *{
  border-radius:99px;padding:3px 11px;
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.012));
  border:1px solid rgba(255,255,255,.09);
}
.rl .ldyo-date{
  border-radius:10px;padding:7px 6px;min-width:52px;
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.01));
  border:1px solid rgba(255,255,255,.09);font-variant-numeric:tabular-nums;
}
.rl .ldyn-vig,.rl .ldyf-vign{border-radius:9px;border:1px solid rgba(255,255,255,.08)}
.rl .ldyf-md-h3{letter-spacing:.15em}
.rl .ldyf-md-q{border-left:2px solid var(--amber);opacity:.9}
.rl .ldyf-cata,.rl .ldyo-ship{margin-bottom:12px}
.rl .ldyo-cols,.rl .ldyf-f{gap:12px}


/* ── vu sur l'écran réel : ce qui datait vraiment ── */

/* l'action principale se noyait dans le formulaire : elle prend sa place */
.rl .btn.red{
  background:linear-gradient(180deg,#f04a4a,#cf2f2f);border-color:#f26a6a;color:#fff;
  font-weight:700;letter-spacing:.04em;min-height:44px;width:100%;justify-content:center;margin-top:8px;
  box-shadow:0 10px 26px -12px rgba(238,51,51,.85),inset 0 1px 0 rgba(255,255,255,.22);
}
.rl .btn.red:hover{filter:brightness(1.07);transform:translateY(-1px)}
.rl .btn.red.sm{width:auto;min-height:34px;margin-top:0}

/* le champ de date était le seul à ressembler à un formulaire de 1998 */
.rl input[type=datetime-local].ldyf-in,.rl input[type=date].ldyf-in,
.rl input[type=datetime-local],.rl input[type=date]{color-scheme:dark;font-family:var(--mono)}
.rl input[type=datetime-local]::-webkit-calendar-picker-indicator,
.rl input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.75);opacity:.55;cursor:pointer}

/* les onglets numérotés deviennent un vrai segment */
.rl .fchip{
  border-radius:99px;padding:6px 14px;border:1px solid rgba(255,255,255,.09);
  background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.008));
  transition:all .22s var(--ressort);
}
.rl .fchip:hover{border-color:var(--txt3);transform:translateY(-1px)}
.rl .fchip.on{
  background:linear-gradient(180deg,rgba(217,164,65,.22),rgba(217,164,65,.06));
  border-color:rgba(217,164,65,.55);color:#fff;box-shadow:0 6px 18px -10px rgba(217,164,65,.8);
}

/* le râtelier : des fiches qui répondent, et deux lignes de résumé, pas quatre */
.rl .ldyf-item{
  border-radius:10px;padding:11px 13px;border:1px solid rgba(255,255,255,.07);
  background:linear-gradient(180deg,rgba(255,255,255,.028),rgba(255,255,255,0));
  transition:all .22s var(--ressort);cursor:pointer;
}
.rl .ldyf-item:hover{
  border-color:rgba(217,164,65,.45);transform:translateY(-1px);
  background:linear-gradient(180deg,rgba(217,164,65,.09),rgba(255,255,255,.01));
  box-shadow:0 10px 24px -14px rgba(0,0,0,1);
}
.rl .ldyf-item .t{letter-spacing:.02em}
.rl .ldyf-item .d{opacity:.72;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;
  -webkit-box-orient:vertical;overflow:hidden}
.rl .ldyf-f{gap:8px}
.rl .ldyf-radar,.rl .ldyf-tw{border-radius:12px;overflow:hidden}


/* ── l'en-tête de la Forge : trois étages ramenés à un ── */
.rl .sec-h.rl-entete{flex-wrap:wrap;row-gap:8px}
.rl .rl-etat{margin-left:auto;display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.rl .rl-pas{
  font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;color:var(--txt2);
  border:1px solid rgba(255,255,255,.09);border-radius:99px;padding:4px 11px;white-space:nowrap;
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.01));
}
.rl .rl-pas.prive{color:var(--amber);border-color:rgba(217,164,65,.35);
  background:linear-gradient(180deg,rgba(217,164,65,.14),rgba(217,164,65,.03))}
.rl .rl-pas .ldyf-rt{font-size:9.5px;letter-spacing:.1em}
.rl .rl-info{
  font-size:12px;color:var(--txt3);cursor:help;position:relative;line-height:1;
  border:1px solid var(--line2);border-radius:50%;width:17px;height:17px;
  display:inline-flex;align-items:center;justify-content:center;align-self:center;
  transition:all .22s var(--ressort);
}
.rl .rl-info:hover{color:var(--amber);border-color:var(--amber)}
.rl .rl-info::after{
  content:attr(data-fil);position:absolute;top:calc(100% + 9px);left:-6px;z-index:60;
  font-family:var(--mono);font-size:10px;letter-spacing:.09em;color:var(--txt2);
  background:linear-gradient(180deg,rgba(21,23,27,.97),rgba(13,14,16,.99));
  border:1px solid rgba(255,255,255,.10);border-radius:9px;padding:9px 13px;white-space:nowrap;
  box-shadow:0 20px 46px -18px rgba(0,0,0,1);
  opacity:0;transform:translateY(-4px);pointer-events:none;transition:all .22s var(--ressort);
}
.rl .rl-info:hover::after{opacity:1;transform:none}

/* ═══ ⌘K — LA PASSERELLE ═══ */
.ck-fond{position:fixed;inset:0;z-index:9500;background:rgba(3,4,6,.62);
  backdrop-filter:blur(6px);display:flex;align-items:flex-start;justify-content:center;padding:12vh 20px}
.ck-boite{width:min(620px,94vw);border-radius:14px;overflow:hidden;
  background:linear-gradient(180deg,rgba(21,23,27,.96),rgba(13,14,16,.98));
  backdrop-filter:blur(24px) saturate(1.3);border:1px solid rgba(255,255,255,.10);
  box-shadow:0 40px 100px -30px rgba(0,0,0,1),inset 0 1px 0 rgba(255,255,255,.09);
  animation:ckIn .26s cubic-bezier(.32,.72,0,1) both}
@keyframes ckIn{from{opacity:0;transform:translateY(-10px) scale(.98)}to{opacity:1;transform:none}}
.ck-in{width:100%;background:none;border:0;border-bottom:1px solid rgba(255,255,255,.07);
  padding:17px 20px;color:var(--txt);font-family:var(--sans);font-size:16px;outline:none}
.ck-in::placeholder{color:var(--txt3)}
.ck-liste{max-height:52vh;overflow:auto;padding:7px}
.ck-sec{font-family:var(--mono);font-size:8.5px;letter-spacing:.16em;color:var(--txt3);padding:10px 13px 5px}
.ck-l{display:flex;align-items:center;gap:11px;padding:9px 13px;border-radius:8px;cursor:pointer;
  color:var(--txt2);font-size:13.5px}
.ck-l .i{width:19px;text-align:center;opacity:.8}
.ck-l .d{margin-left:auto;font-family:var(--mono);font-size:9px;color:var(--txt3);letter-spacing:.1em}
.ck-l.on{background:linear-gradient(90deg,rgba(217,164,65,.14),rgba(217,164,65,.03));color:#fff;
  box-shadow:inset 2px 0 0 var(--amber)}
.ck-vide{padding:26px 20px;color:var(--txt3);font-size:13px;text-align:center}
.ck-pied{display:flex;gap:14px;padding:9px 16px;border-top:1px solid rgba(255,255,255,.06);
  font-family:var(--mono);font-size:9px;color:var(--txt3);letter-spacing:.09em}
.ck-k{border:1px solid var(--line2);border-radius:4px;padding:1px 5px;color:var(--txt2)}

@media (prefers-reduced-motion:reduce){
  .rl .rl-carte{transition:none!important;transform:none!important}
  .rl::after{animation:none}
  #ldyxHalo{display:none}
  .rl .rl-entre{animation:none}
  #ldyxCiel{display:none}
}
/* === ldy-socle-css === */
:root{
  /* --- 1 · les jetons appeles sans avoir jamais ete definis ----------------
         Valeurs identiques a leurs replis actuels : rien ne change a l'ecran,
         ils entrent simplement dans le catalogue et deviennent pilotables. -- */
  --line3:#34373c;
  --bg3:#191c20;
  --red-line:rgba(238,51,51,.28);
  --red-soft:rgba(238,51,51,.14);
  --hull-line:rgba(111,179,232,.4);
  --hull-soft:rgba(111,179,232,.10);
  --green-line:rgba(63,191,127,.4);
  --panel-2:#111214;
  --txt1:#d6d8db;
  --disp:'Orbitron',monospace;
  --ldy-mono:'JetBrains Mono',monospace;
  --ldy-txt-2:#8b8f96;
  --ldy-txt-3:#787c83;
  --ldy-red:#ee3333;
  --ldy-green:#3fbf7f;
  --ldy-amber:#d9a441;

  /* --- 2 · l'echelle unique : 2 arrondis, 3 ombres, 1 courbe ------------- */
  --r1:4px; --r2:8px; --r3:99px;
  --sh1:0 1px 2px rgba(0,0,0,.5);
  --sh2:0 6px 18px -10px rgba(0,0,0,.85);
  --sh3:0 18px 44px -22px rgba(0,0,0,.95);
  --ease:cubic-bezier(.32,.72,0,1);

  /* --- 3 · l'echelle de texte, posee pour le lot 1 ----------------------- */
  --fs1:12.5px; --fs2:13.5px; --fs3:14.5px; --fs4:17px; --fs5:22px;

  /* --- 4 · les gris releves, le noir refroidi ----------------------------
         Rouge, ambre, vert et coque : pas un octet de change. ------------- */
  --bg:#0A0B0D;
  --bg2:#0E1013;
  --panel:#101318;
  --panel2:#161A20;
  --line:#20252C;
  --line2:#2C333C;
  --txt:#E7E9EC;
  --txt2:#C3C9D1;
  --txt3:#A6ADB8;
}

/* --- 5 · l'acces clavier et la cible du pouce --------------------------- */
.btn,.ldyx-btn,button{min-height:36px}
@media(max-width:760px){.btn,.ldyx-btn,button{min-height:44px}}
.btn:focus-visible,.ldyx-btn:focus-visible,button:focus-visible,
a:focus-visible,input:focus-visible,select:focus-visible,
textarea:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--hull);
  outline-offset:2px;
  border-radius:var(--r1);
}
@media(prefers-reduced-motion:reduce){
  .btn,.ldyx-btn,button{transition:none!important}
}

/* --- 6 · une valeur ne se coupe jamais en deux ---------------------------
       Avec un texte plus grand, « present · paye dimanche » passait a la
       ligne au milieu. La valeur reste d'un bloc, c'est l'intitule qui cede. */
.kv{gap:10px}
.kv>.v{white-space:nowrap;flex:0 0 auto}
.kv>:first-child{min-width:0}

/* --- 7 · lot 1 : trois defauts vus a l'ecran ---------------------------- */

/* le ✕ et le ☰ appartiennent au tiroir mobile : hors du tiroir, ils n'ont
   aucun sens. Le ✕ chevauchait « // NAVIGATION » depuis le 22 aout. */
@media(min-width:901px){
  #ldymFermer button,
  #ldymBurger { display:none }
}

/* un titre d'ecran est un nom, pas un cri. Les capitales restent sur les
   etiquettes courtes, ou elles servent encore a quelque chose. */
#app .main h1 { text-transform:none; letter-spacing:-.005em }

/* une seule barre d'onglets par ecran : celle du menu, qui existe partout.
   Les trois destinations de .eco-tabs restent atteignables par le menu :
   Le Coffre, Le Marche > Demandes & entraide, Le Coffre > Recuperation. */
.eco-tabs { display:none }

/* --- 8 · lot 1 : le confort de lecture des explications ------------------
   Les pavés « comment ça marche » sont la seule prose du site. Ils gardent
   leur serif — c'est la voix de LU-6, un choix, pas un accident — mais
   passent de 13,5 à 14,5 px, avec de l'air entre les lignes et une largeur
   de ligne qui reste lisible. */
.help-body { font-size:14.5px; line-height:1.7; max-width:82ch }
.help-body p, .help-body li { margin-bottom:.35em }

/* Ce qui se clique et n'est pas un bouton doit au moins se voir au clavier. */
[data-clav]:focus-visible { outline:2px solid var(--hull); outline-offset:2px; border-radius:var(--r1) }

/* --- 9 · lot 3 : l'ecran des Operations remis a l'endroit ----------------
   Avant : 8 boutons rouges « annuler » puis un pave d'explications, et les
   operations a 1 034 px de haut. Apres : les operations en premier,
   l'administration en bas derriere un bouton. Rien n'est retire —
   c'est l'ordre d'affichage qui change, par la seule propriete « order ». */
[data-ldy-ecran="events"]            { display:flex; flex-direction:column }
[data-ldy-ecran="events"] > *        { order:2 }
[data-ldy-ecran="events"] > .sec-h   { order:0 }
[data-ldy-ecran="events"] > .sec-sub { order:1 }
[data-ldy-ecran="events"] > .ldy-gerer          { order:8; margin-top:22px }
[data-ldy-ecran="events"] > .panel.ldy-admin    { order:9 }
[data-ldy-ecran="events"] > .help               { order:10 }

.ldy-gerer{
  background:none; border:1px solid var(--line2); color:var(--txt2);
  font:inherit; font-size:13.5px; padding:9px 14px; border-radius:var(--r1);
  cursor:pointer; align-self:flex-start; min-height:36px;
  transition:border-color .18s var(--ease), color .18s var(--ease);
}
.ldy-gerer:hover        { border-color:var(--line3); color:var(--txt) }
.panel.ldy-admin.ldy-replie { display:none }

/* --- 10 · lot 4 : la vitrine du Coffre ----------------------------------
   Un seul canevas pour toute la page, reutilise a chaque survol. Une
   vignette par ligne aurait tue la performance. Rien sous 900 px : sur
   telephone, un panneau flottant mange l'ecran et le survol n'existe pas. */
#ldyVitrine{
  position:fixed; right:22px; bottom:22px; width:252px; z-index:600;
  border:1px solid var(--line2); background:rgba(13,14,16,.94);
  -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  box-shadow:var(--sh3); display:flex; flex-direction:column;
  opacity:0; transform:translateY(10px); pointer-events:none;
  transition:opacity .22s var(--ease), transform .22s var(--ease);
}
#ldyVitrine.on{ opacity:1; transform:none; pointer-events:auto }
#ldyVitrine .vt-tete{ display:flex; align-items:baseline; gap:8px; padding:9px 12px; border-bottom:1px solid var(--line) }
#ldyVitrine .vt-nom{ font-size:14px; font-weight:600; color:var(--txt); white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
#ldyVitrine .vt-fam{ font-family:var(--mono); font-size:9.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--txt3) }
#ldyVitrine .vt-x{ margin-left:auto; background:none; border:0; color:var(--txt3); cursor:pointer;
  font-size:13px; line-height:1; padding:2px 4px; min-height:0 }
#ldyVitrine .vt-x:hover{ color:var(--txt) }
#ldyVitrine .vt-boite{ height:206px; position:relative }
.eco-gh{ cursor:pointer }
.eco-gh.ldy-vitrine{ box-shadow:inset 2px 0 0 var(--hull) }
td.nm[data-vitrine]{ cursor:pointer }
tr.ldy-vitrine > td:first-child{ box-shadow:inset 2px 0 0 var(--hull) }
@media(max-width:900px){ #ldyVitrine{ display:none } }

/* --- 11 · le brouillon de la Forge ---------------------------------------
   La Forge dessine son formulaire avant que ses donnees arrivent, puis
   redessine tout quand elles sont la : ce qui a ete tape entre les deux est
   perdu. Constate le 3 septembre — le formulaire est detruit 7 ms apres la
   derniere requete. On garde le brouillon et on le remet. */
#ldyBrouillon{
  display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  border:1px solid rgba(111,179,232,.35); border-left:2px solid var(--hull);
  background:rgba(111,179,232,.07); padding:10px 14px; margin-bottom:14px;
  font-size:13.5px; color:var(--txt2); border-radius:var(--r1);
}
#ldyBrouillon b{ color:var(--txt); font-weight:600 }
#ldyBrouillon button{
  background:none; border:1px solid var(--line2); color:var(--txt2);
  font:inherit; font-size:12.5px; padding:5px 11px; border-radius:var(--r1);
  cursor:pointer; min-height:30px;
}
#ldyBrouillon button:hover{ border-color:var(--hull); color:var(--txt) }
#ldyBrouillon .pousse{ margin-left:auto; display:flex; gap:8px }

/* la note sous le champ « image de l'annonce » */
.ldy-imgnote{
  margin:5px 0 0; padding:6px 9px; border-radius:var(--r1,6px);
  font-size:12.5px; line-height:1.55; color:var(--txt3,#A6ADB8);
  border:1px solid rgba(255,255,255,.07); background:rgba(255,255,255,.025);
}
.ldy-imgnote b{ color:var(--txt2,#C3C9D1); font-weight:600 }
.ldy-imgnote[data-ton="bon"]{ border-color:rgba(90,190,130,.35); color:#BFE3CD }
.ldy-imgnote[data-ton="alerte"]{ border-color:rgba(220,150,70,.40); color:#EBCB9E }

/* l'affiche de l'annonce : elle etait recadree de force (object-fit:cover +
   hauteur bloquee a 220/300 px), ce qui coupait jusqu'a 55 % du visuel — titre
   et bandeaux compris. On la montre entiere, a son format, sans jamais depasser
   les deux tiers de l'ecran. */
#app img[style*="object-fit:cover"]{
  object-fit:contain !important;
  width:auto !important; height:auto !important;
  max-width:100% !important; max-height:min(66vh, 560px) !important;
  margin-left:auto !important; margin-right:auto !important;
  background:#07080A;
}
@media(prefers-reduced-motion:reduce){ #ldyVitrine{ transition:none } }
/* 04/10 · menus déroulants lisibles : le site est en thème sombre, on le dit au navigateur
   (sans color-scheme, Chrome et Edge ouvraient les listes natives en blanc, texte clair dessus). */
html{color-scheme:dark}
select{color-scheme:dark}
select option,select optgroup{background-color:#0E1013;color:#e6e8eb}
select option:checked,select option:hover{background-color:#3a1517;color:#fff}
select option:disabled{color:#7d828a}
