:root{--bg:#090c12;--panel:#101722;--panel2:#151f2e;--line:#283548;--text:#f4f7fb;--muted:#93a4b8;--red:#ef2b2d;--red2:#b9181c;--green:#25c77a;--amber:#f3b53f;--blue:#4c8dff;--radius:18px;--shadow:0 20px 50px rgba(0,0,0,.35)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(circle at top,#172234 0,#090c12 48%);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.screen{min-height:100vh;padding:24px}.login-wrap{display:grid;place-items:center}.login-card{width:min(470px,100%);background:rgba(16,23,34,.96);border:1px solid var(--line);border-radius:26px;padding:34px;box-shadow:var(--shadow)}.eyebrow{color:#ff4c4f;text-transform:uppercase;letter-spacing:.16em;font-weight:800;font-size:.76rem}.login-card h1{font-size:2.35rem;line-height:1.05;margin:.7rem 0 1rem}.muted{color:var(--muted)}.small{font-size:.84rem}.field{display:grid;gap:8px;margin:16px 0}.field label{font-weight:700}.input,.select,.textarea{width:100%;border:1px solid var(--line);background:#0b111b;color:var(--text);border-radius:14px;padding:14px 15px;outline:none}.input:focus,.select:focus,.textarea:focus{border-color:#ff4c4f;box-shadow:0 0 0 3px rgba(239,43,45,.15)}.btn{border:0;border-radius:14px;padding:12px 15px;font-weight:800;color:white;background:#253247}.btn-primary{background:linear-gradient(135deg,var(--red),var(--red2))}.btn-success{background:#138a57}.btn-ghost{background:transparent;border:1px solid var(--line)}.btn-danger{background:#8e1d23}.btn:disabled{opacity:.5;cursor:not-allowed}.error{color:#ff6d70;margin-top:12px}.shell{display:grid;grid-template-columns:270px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;border-right:1px solid var(--line);background:#0b111b;padding:20px;display:flex;flex-direction:column;gap:20px}.brand{display:flex;gap:12px;align-items:center}.brand-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:13px;background:linear-gradient(135deg,var(--red),#751317);font-size:1.3rem}.brand strong{display:block}.brand small{color:var(--muted)}.nav{display:grid;gap:7px;overflow:auto}.nav button{display:flex;align-items:center;gap:10px;text-align:left;border:0;color:var(--muted);background:transparent;border-radius:12px;padding:11px}.nav button.active,.nav button:hover{background:#182334;color:white}.profile{margin-top:auto;border-top:1px solid var(--line);padding-top:16px}.profile-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.role{font-size:.75rem;padding:4px 8px;border-radius:999px;background:#26344a;color:#c7d4e4}.main{padding:28px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px}.topbar h1{margin:0;font-size:2rem}.grid-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.metric,.panel{border:1px solid var(--line);background:rgba(16,23,34,.94);border-radius:var(--radius)}.metric{padding:18px}.metric span{display:block;color:var(--muted);font-size:.85rem}.metric strong{display:block;font-size:1.65rem;margin-top:7px}.metric small{color:var(--muted)}.panel{padding:20px;margin-bottom:18px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.panel h2,.panel h3{margin:0}.two-col,.order-layout{display:grid;grid-template-columns:1.05fr .95fr;gap:18px}.stock-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.stock-card{border:1px solid var(--line);background:#0d141e;border-radius:16px;padding:16px;display:grid;gap:12px}.stock-top{display:flex;justify-content:space-between;gap:10px}.stock-name{font-weight:800}.badge{font-size:.72rem;padding:5px 8px;border-radius:999px;background:#223049;color:#d2deec}.badge.low{background:rgba(243,181,63,.15);color:#ffd176}.badge.out{background:rgba(239,43,45,.16);color:#ff7b7e}.stock-number{font-size:2rem;font-weight:900}.stock-value{color:var(--muted)}.progress{height:8px;border-radius:99px;background:#253247;overflow:hidden}.progress>div{height:100%;background:linear-gradient(90deg,var(--red),#ff7779)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.span-2{grid-column:span 2}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:8px}.segmented button{border:1px solid var(--line);background:#0b111b;color:var(--muted);padding:12px;border-radius:12px}.segmented button.active{background:#2a394e;color:white}.preview,.notice-note{border:1px dashed var(--line);border-radius:14px;padding:14px;color:var(--muted)}.notice-note{background:rgba(76,141,255,.08);margin-top:16px}.price-box{border:1px solid var(--line);background:#0b111b;border-radius:14px;padding:14px 15px;font-weight:900}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;min-width:760px}.table th,.table td{padding:12px 10px;border-bottom:1px solid #202c3c;text-align:left}.table th{color:var(--muted);font-size:.8rem;text-transform:uppercase}.movement-in{color:#42d88d}.movement-out{color:#ff6d70}.toolbar{display:flex;gap:10px;flex-wrap:wrap}.toolbar>*{flex:1;min-width:150px}.chart{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;align-items:end;height:190px;padding-top:16px}.bar-wrap{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:7px}.bar{width:70%;min-height:4px;border-radius:8px 8px 3px 3px;background:linear-gradient(180deg,#ff5d60,var(--red2))}.bar-label{font-size:.75rem;color:var(--muted)}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.list{display:grid;gap:10px}.list-row{border:1px solid var(--line);background:#0d141e;border-radius:14px;padding:12px;display:flex;justify-content:space-between;gap:12px;align-items:center}.toast{position:fixed;right:22px;bottom:22px;max-width:380px;background:#101722;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;padding:14px 16px;z-index:50}.mobile-top{display:none}.empty{padding:24px;text-align:center;color:var(--muted)}.separator{border:0;border-top:1px solid var(--line);margin:24px 0}
.invoice-wrap{position:sticky;top:24px;height:max-content}.invoice{position:relative;background:#f5f0df;color:#151515;border-radius:8px;padding:26px;box-shadow:0 25px 65px rgba(0,0,0,.45);overflow:hidden;font-family:Georgia,'Times New Roman',serif}.invoice:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 5px,rgba(0,0,0,.018) 6px);pointer-events:none}.invoice.draft{transform:rotate(-.4deg)}.invoice-head,.invoice-meta,.invoice-line,.invoice-total,.request-summary{display:flex;justify-content:space-between;gap:16px}.invoice-head{border-bottom:3px double #222;padding-bottom:14px}.invoice-brand{font-size:1.8rem;font-weight:900;letter-spacing:.13em}.invoice-sub,.invoice-number,.invoice-meta span,.invoice-line small{color:#585858}.invoice-number{font-family:ui-monospace,monospace;font-weight:800}.invoice-meta{padding:16px 0;border-bottom:1px solid #999}.invoice-meta div{display:grid;gap:4px}.invoice-lines{padding:10px 0}.invoice-line{align-items:center;padding:12px 0;border-bottom:1px dashed #aaa}.invoice-line div:first-child{display:grid;gap:4px}.invoice-line div:last-child{display:flex;align-items:center;gap:9px}.remove-cart{border:0;background:#b9181c;color:white;border-radius:50%;width:24px;height:24px;font-weight:900}.invoice-total{align-items:center;border-top:3px double #222;padding-top:15px;font-family:ui-sans-serif,system-ui}.invoice-total strong{font-size:1.6rem}.invoice-foot{margin-top:18px;padding-top:14px;border-top:1px solid #aaa}.invoice-foot p{font-size:.87rem;line-height:1.45;color:#555}.status-pill{display:inline-flex;padding:6px 10px;border-radius:999px;font:800 .75rem ui-sans-serif,system-ui;color:white;background:#8a6d1d}.status-pill.pre{background:#6e4db8}.status-pill.hold{background:#a56a19}.status-pill.approved{background:#137a51}.status-pill.delivered{background:#155fb4}.status-pill.refused{background:#a5292f}.qr-stamp{position:absolute;right:24px;bottom:18px;display:grid;justify-items:center;gap:4px;opacity:.72}.fake-qr{display:grid;grid-template-columns:repeat(6,5px);gap:1px;padding:5px;background:white;border:2px solid #111}.fake-qr i{width:5px;height:5px;background:white}.fake-qr i.on{background:#111}.qr-stamp small{font:600 .55rem ui-monospace,monospace}.request-card{border:1px solid var(--line);background:#0d141e;border-radius:16px;padding:16px;margin-bottom:12px}.request-summary{align-items:center}.request-summary h3{margin:5px 0}.request-right{display:grid;justify-items:end;gap:8px}.request-right>strong{font-size:1.25rem}.request-card details{margin-top:14px}.request-card summary{cursor:pointer;color:#dce7f6;font-weight:800;margin-bottom:14px}.request-card .invoice{max-width:700px;margin:auto}.request-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.request-note{max-width:700px;margin:12px auto 0;border:1px solid var(--line);border-radius:12px;padding:12px;color:var(--muted)}.request-note.admin{border-color:#3c654f;background:rgba(37,199,122,.06)}
.mail-layer{position:fixed;inset:0;background:rgba(3,6,10,.86);display:grid;place-items:center;z-index:100;backdrop-filter:blur(6px)}.mail-scene{position:relative;width:330px;height:310px}.paper-mini{position:absolute;left:65px;top:5px;width:200px;height:175px;background:#f5f0df;color:#111;border-radius:5px;display:grid;place-content:center;text-align:center;gap:8px;box-shadow:0 12px 30px rgba(0,0,0,.35);transition:transform 1.1s ease,opacity .8s}.paper-mini strong{font:900 1.4rem Georgia}.paper-mini span{font:700 .75rem ui-monospace}.paper-mini small{letter-spacing:.2em}.envelope{position:absolute;left:30px;bottom:55px;width:270px;height:145px}.env-body{position:absolute;inset:0;background:#b89a67;border-radius:5px;clip-path:polygon(0 0,50% 55%,100% 0,100% 100%,0 100%)}.env-flap{position:absolute;inset:0;background:#d1b27c;clip-path:polygon(0 0,100% 0,50% 65%);transform-origin:top;transition:transform .5s 1.15s}.seal{position:absolute;left:116px;top:62px;width:40px;height:40px;border-radius:50%;background:#8f171b;color:white;display:grid;place-items:center;font:900 1.2rem Georgia;opacity:0;transition:opacity .4s 1.55s}.mail-message{position:absolute;bottom:0;width:100%;text-align:center;font-weight:800;opacity:0;transition:opacity .4s 1.7s}.mail-layer.send .paper-mini{transform:translateY(130px) scale(.55);opacity:.4}.mail-layer.send .env-flap{transform:rotateX(180deg)}.mail-layer.send .seal,.mail-layer.send .mail-message{opacity:1}
@media(max-width:1100px){.grid-metrics{grid-template-columns:repeat(2,1fr)}.stock-grid{grid-template-columns:repeat(2,1fr)}.two-col,.order-layout,.admin-grid{grid-template-columns:1fr}.invoice-wrap{position:static}}
@media(max-width:760px){.screen{padding:14px}.login-card{padding:24px}.shell{display:block}.sidebar{display:none;position:fixed;inset:0 auto 0 0;width:290px;z-index:20}.sidebar.open{display:flex}.mobile-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.main{padding:16px}.topbar{display:none}.grid-metrics{grid-template-columns:1fr 1fr}.stock-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.metric strong{font-size:1.3rem}.toast{left:14px;right:14px;bottom:14px}.invoice{padding:18px}.invoice-head,.invoice-meta,.request-summary{flex-direction:column}.request-right{justify-items:start}.qr-stamp{position:static;margin-top:14px}.request-actions .btn{width:100%}}
.form-actions{display:flex;gap:10px}.form-actions .btn{flex:1}.hidden{display:none!important}

.hidden{display:none!important}.form-actions{display:flex;gap:10px;flex-wrap:wrap}.admin-tabs-panel{padding:10px}.admin-tabs{display:flex;gap:8px;flex-wrap:wrap}.admin-tab{border:1px solid var(--line);background:#0b111b;color:var(--muted);border-radius:12px;padding:12px 16px;font-weight:800}.admin-tab.active{background:#26364d;color:#fff;border-color:#415878}.suggestion-title{font-weight:800;margin:16px 0 10px}.suggestion-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.suggestion-card{display:flex;align-items:center;gap:12px;text-align:left;border:1px solid var(--line);background:#0d141e;color:var(--text);border-radius:14px;padding:11px}.suggestion-card:hover{border-color:#536b8d;background:#111c2a}.suggestion-card span{display:grid;gap:3px}.suggestion-card small,.category-info small,.product-admin-body small,.member-info small,.article-preview small{color:var(--muted)}.catalog-visual{width:52px;height:52px;border-radius:12px;object-fit:cover;background:#182334;border:1px solid var(--line);flex:none}.catalog-visual.large{width:96px;height:96px}.category-admin-card{display:flex;align-items:center;gap:12px;border:1px solid var(--line);background:#0d141e;border-radius:14px;padding:12px}.category-info{display:grid;gap:4px;flex:1}.status-mini{width:max-content;font-size:.7rem;border-radius:999px;padding:4px 8px;background:#203148;color:#cfe1f7}.status-mini.active{background:rgba(37,199,122,.14);color:#57e3a0}.status-mini.inactive{background:rgba(239,43,45,.14);color:#ff7779}.product-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}.product-admin-card{border:1px solid var(--line);background:#0d141e;border-radius:16px;overflow:hidden}.product-admin-card>.catalog-visual{width:100%;height:150px;border:0;border-radius:0}.product-admin-body{display:grid;gap:7px;padding:14px}.product-admin-body p{margin:0;color:var(--muted);font-size:.85rem;min-height:34px}.product-price{font-weight:900;color:#ffd176}.article-preview,.order-product-preview{display:flex;align-items:center;gap:14px;border:1px dashed var(--line);border-radius:14px;padding:12px;margin:12px 0;background:#0c131d}.article-preview>div,.order-product-preview>div{display:grid;gap:4px}.member-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.member-card{display:flex;align-items:center;gap:12px;border:1px solid var(--line);background:#0d141e;border-radius:14px;padding:12px}.member-avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--red),#6f1216);font-weight:900}.member-info{display:grid;gap:4px;flex:1}
@media(max-width:900px){.suggestion-grid,.product-admin-grid,.member-grid{grid-template-columns:1fr}.category-admin-card,.member-card{align-items:flex-start;flex-wrap:wrap}.category-admin-card .list-actions,.member-card .list-actions{width:100%}}


/* Fabrication rapide */
.craft-panel{border-color:#315b4a}.craft-result{display:grid;gap:12px}.craft-output{display:flex;justify-content:space-between;align-items:center;border:1px solid #365b4c;background:rgba(37,199,122,.07);border-radius:14px;padding:14px}.craft-output span{color:var(--muted)}.craft-output strong{font-size:1.15rem}.craft-lines{display:grid;gap:8px}.craft-line{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:11px;background:#0b111b}.craft-line>div:first-child{display:grid;gap:3px}.craft-line small{color:var(--muted)}.craft-line>div:last-child{display:grid;justify-items:end;gap:3px}.craft-line.ok b{color:#42d88d}.craft-line.missing{border-color:#713035;background:rgba(239,43,45,.06)}.craft-line.missing b{color:#ff7779}.craft-status{border-radius:12px;padding:12px;font-weight:800}.craft-status.ready{background:rgba(37,199,122,.12);color:#5be5a4}.craft-status.blocked{background:rgba(239,43,45,.12);color:#ff8587}@media(max-width:760px){.craft-output,.craft-line{align-items:flex-start;flex-direction:column}.craft-line>div:last-child{justify-items:start}}

/* V2 fabrication guidée : choix à gauche, matières nécessaires à droite */
.craft-workspace{display:grid;grid-template-columns:minmax(240px,.72fr) minmax(360px,1.28fr);gap:18px;align-items:start}
.craft-controls{border:1px solid var(--line);background:#0b111b;border-radius:16px;padding:16px}
.craft-help{display:grid;gap:5px;margin:8px 0 16px;padding:13px;border-radius:12px;background:rgba(76,141,255,.08);border:1px solid rgba(76,141,255,.24)}
.craft-help span{color:var(--muted);font-size:.84rem;line-height:1.4}
.craft-required{border:1px solid #365b4c;background:rgba(37,199,122,.045);border-radius:16px;padding:16px;min-height:100%}
.craft-required-title{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.craft-required-title>div{display:grid;gap:4px}.craft-required-title span{color:var(--muted);font-size:.82rem}.craft-required-title strong{font-size:1.08rem}
.craft-arrow{font-size:1.7rem!important;color:#42d88d!important;font-weight:900}
@media(max-width:980px){.craft-workspace{grid-template-columns:1fr}.craft-arrow{transform:rotate(90deg)}}

/* ===== Accueil prison + animation cellule/coffre ===== */
.prison-login{position:relative;min-height:100vh;display:grid;place-items:center;overflow:hidden;padding:28px;background:radial-gradient(circle at 50% 18%,#243146 0,#111925 34%,#070b11 76%)}
.login-atmosphere{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.login-atmosphere:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 76px,rgba(255,255,255,.018) 77px 78px),linear-gradient(180deg,rgba(255,255,255,.025),transparent 35%);opacity:.65}
.searchlight{position:absolute;top:-30%;width:34%;height:120%;background:linear-gradient(180deg,rgba(220,235,255,.13),transparent 67%);filter:blur(12px);transform-origin:top;animation:loginSweep 8s ease-in-out infinite alternate}
.searchlight-one{left:4%;transform:rotate(18deg)}.searchlight-two{right:4%;transform:rotate(-18deg);animation-delay:-4s}
.login-bars{position:absolute;top:0;bottom:0;width:105px;background:repeating-linear-gradient(90deg,#06090e 0 12px,#252f3c 13px 16px,#06090e 17px 31px);box-shadow:0 0 28px #000;opacity:.72}.login-bars-left{left:-24px}.login-bars-right{right:-24px}
.prison-card{position:relative;z-index:2;width:min(500px,100%);padding:34px 36px 30px;border:1px solid #34445a;background:linear-gradient(160deg,rgba(20,29,42,.98),rgba(8,13,21,.98));box-shadow:0 34px 90px rgba(0,0,0,.68),inset 0 1px rgba(255,255,255,.035);overflow:hidden}
.prison-card:before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,transparent,#ef2b2d 22%,#ff7577 50%,#ef2b2d 78%,transparent)}
.prison-emblem{width:72px;height:72px;margin:0 auto 16px;display:grid;place-items:center;border-radius:18px;background:linear-gradient(145deg,#e52b2f,#741317);border:1px solid #ff6063;box-shadow:0 12px 30px rgba(239,43,45,.26),inset 0 0 0 6px rgba(0,0,0,.18);transform:rotate(45deg)}
.prison-emblem span{transform:rotate(-45deg);font-weight:1000;font-size:1.2rem;letter-spacing:.08em;color:white}
.prison-card .eyebrow{text-align:center}.prison-card h1{text-align:center;margin:.7rem 0 .8rem;font-size:clamp(2rem,5vw,2.7rem)}.login-intro{text-align:center;line-height:1.5;margin-bottom:22px}
.login-separator{display:flex;align-items:center;gap:12px;margin:20px 0 8px;color:#6f8197;font-size:.68rem;letter-spacing:.17em}.login-separator span{height:1px;flex:1;background:#2c394b}
.login-control{background:#080e17;border-color:#334358}.login-control::placeholder{color:#718198}.prison-enter{width:100%;display:flex;justify-content:center;align-items:center;gap:10px;margin-top:20px;padding:15px 18px;letter-spacing:.02em;box-shadow:0 14px 35px rgba(185,24,28,.25)}.enter-icon{font-size:1.15rem}
.login-warning{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:19px;color:#7f91a7;font-size:.76rem;text-align:center}
@keyframes loginSweep{from{transform:rotate(14deg) translateX(-16%)}to{transform:rotate(28deg) translateX(18%)}}

.access-cinematic{position:fixed;inset:0;z-index:1000;background:#030509;display:grid;place-items:center;opacity:0;transition:opacity .35s ease;overflow:hidden}.access-cinematic.start{opacity:1}.access-cinematic.finish{opacity:0}
.cell-scene{position:absolute;inset:0;perspective:1200px;background:radial-gradient(circle at center,#182233 0,#070b12 48%,#010203 100%);overflow:hidden}
.cell-title{position:absolute;top:7%;left:0;right:0;text-align:center;color:#cad8e9;font-size:.8rem;font-weight:900;letter-spacing:.24em;z-index:12;opacity:0;transform:translateY(-10px);transition:.5s .15s}.start .cell-title{opacity:1;transform:none}
.cell-door{position:absolute;top:0;bottom:0;width:51%;z-index:10;background:linear-gradient(90deg,#05080c,#19222e 45%,#090d13);transition:transform 1.15s cubic-bezier(.65,.02,.25,1);box-shadow:0 0 50px #000}.cell-door-left{left:0;border-right:8px solid #303b49}.cell-door-right{right:0;border-left:8px solid #303b49}.cell-open .cell-door-left{transform:translateX(-103%)}.cell-open .cell-door-right{transform:translateX(103%)}
.door-bars{position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 42px,#3c4856 43px 51px,transparent 52px 88px),linear-gradient(180deg,transparent 0 18%,#384452 18.5% 20%,transparent 20.5% 78%,#384452 78.5% 80%,transparent 80.5%);filter:drop-shadow(4px 8px 4px #000)}
.cell-depth{position:absolute;inset:0;display:grid;place-items:center;background:repeating-linear-gradient(90deg,rgba(255,255,255,.018) 0 2px,transparent 3px 90px);transform:scale(.88);opacity:.2;transition:1s .6s}.cell-open .cell-depth{transform:scale(1);opacity:1}.corridor-light{position:absolute;width:32%;height:100%;background:linear-gradient(180deg,rgba(180,210,250,.14),transparent 76%);filter:blur(20px)}
.vault-scene{position:relative;width:min(430px,72vw);height:min(430px,72vw);display:grid;place-items:center;opacity:0;transform:scale(.62) translateY(50px);transition:1s cubic-bezier(.2,.8,.2,1)}.vault-show .vault-scene{opacity:1;transform:scale(1) translateY(0)}
.vault-body{position:relative;width:78%;height:78%;border-radius:18px;background:linear-gradient(145deg,#384557,#111822 52%,#303c4c);border:8px solid #566477;box-shadow:0 35px 90px #000,inset 0 0 0 8px #0c1119;transform-style:preserve-3d}.vault-interior{position:absolute;inset:12%;border-radius:8px;background:#030609;overflow:hidden}.vault-glow{position:absolute;inset:0;background:radial-gradient(circle,#ef2b2d55 0,transparent 70%);opacity:0;transition:.8s}.vault-open .vault-glow{opacity:1}.vault-shelves{position:absolute;inset:18%;display:grid;gap:18%}.vault-shelves i{display:block;border-bottom:5px solid #3d4654;box-shadow:0 10px 12px #000}
.vault-door{position:absolute;inset:3%;border-radius:14px;background:radial-gradient(circle at 48% 45%,#465467,#1b2532 55%,#070b10);border:6px solid #687689;box-shadow:inset 0 0 0 7px #101720;transform-origin:left center;transition:1.1s cubic-bezier(.2,.8,.25,1);transform-style:preserve-3d}.vault-open .vault-door{transform:rotateY(-112deg)}
.vault-ring{position:absolute;left:50%;top:50%;width:42%;height:42%;transform:translate(-50%,-50%);border:9px solid #95a1ad;border-radius:50%;box-shadow:inset 0 0 0 7px #1a2330,0 8px 22px #000}.vault-ring span{position:absolute;left:50%;top:50%;width:23%;height:23%;transform:translate(-50%,-50%);background:#929da9;border-radius:50%}.vault-ring i{position:absolute;left:48%;top:46%;width:54%;height:8px;background:#818d9a;transform-origin:4% 50%;border-radius:5px}.vault-ring i:nth-of-type(1){transform:rotate(0)}.vault-ring i:nth-of-type(2){transform:rotate(90deg)}.vault-ring i:nth-of-type(3){transform:rotate(180deg)}.vault-ring i:nth-of-type(4){transform:rotate(270deg)}
.vault-handle{position:absolute;right:8%;top:42%;width:8%;height:26%;border-radius:8px;background:linear-gradient(90deg,#6e7986,#c0c8cf,#626d79);box-shadow:0 5px 12px #000}.vault-caption{margin-top:24px;text-align:center;font-weight:1000;letter-spacing:.22em;color:#dce7f5;text-shadow:0 3px 12px #000}
.access-status{position:absolute;bottom:7%;left:0;right:0;display:flex;justify-content:center;align-items:center;gap:10px;color:#c6d4e5;font-size:.9rem;letter-spacing:.05em;z-index:20}.status-dot{width:10px;height:10px;border-radius:50%;background:#ef2b2d;box-shadow:0 0 15px #ef2b2d;animation:statusPulse .8s ease-in-out infinite alternate}.vault-open .status-dot{background:#25c77a;box-shadow:0 0 15px #25c77a}@keyframes statusPulse{to{transform:scale(1.45);opacity:.55}}
@media(max-width:600px){.prison-login{padding:15px}.prison-card{padding:28px 22px 24px}.login-bars{width:50px;opacity:.45}.cell-title{font-size:.6rem;letter-spacing:.15em}.access-status{font-size:.75rem}.vault-scene{width:82vw;height:82vw}}
@media(prefers-reduced-motion:reduce){.searchlight,.status-dot{animation:none}}


/* ===== MAJ accueil réaliste Bloc B ===== */
.prison-login{
  isolation:isolate;
  background:
    linear-gradient(90deg,rgba(0,0,0,.84),rgba(0,0,0,.28) 31%,rgba(0,0,0,.2) 69%,rgba(0,0,0,.86)),
    radial-gradient(ellipse at 50% 12%,rgba(210,225,235,.16),transparent 37%),
    linear-gradient(180deg,#0b0d0f 0,#080a0c 50%,#030405 100%);
}
.prison-login:before{content:"";position:absolute;inset:0;z-index:-3;background:
  repeating-linear-gradient(90deg,transparent 0 92px,rgba(39,42,44,.72) 93px 103px,transparent 104px 184px),
  repeating-linear-gradient(0deg,rgba(255,255,255,.025) 0 2px,transparent 3px 42px);
  opacity:.72;filter:contrast(1.15)}
.prison-login:after{content:"BLOC B\A LOYAUTÉ · RESPECT · SILENCE";white-space:pre;position:absolute;right:5vw;top:20vh;z-index:-1;color:rgba(235,231,218,.2);font-family:Impact,Haettenschweiler,'Arial Narrow Bold',sans-serif;font-size:clamp(2rem,5vw,5.2rem);line-height:.92;text-align:center;letter-spacing:.06em;transform:rotate(-1deg);text-shadow:0 3px 0 #000}
.login-atmosphere:after{content:"";position:absolute;left:0;right:0;bottom:0;height:33%;background:linear-gradient(170deg,transparent 0 42%,rgba(117,14,18,.36) 43% 44.2%,transparent 45%),radial-gradient(ellipse at center bottom,rgba(255,255,255,.055),transparent 58%);filter:blur(.2px)}
.login-bars{width:165px;opacity:.92;background:repeating-linear-gradient(90deg,#020304 0 18px,#303236 19px 23px,#050607 24px 52px);box-shadow:0 0 65px #000,inset 0 0 18px rgba(255,255,255,.035)}
.login-bars:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 165px,#2e3033 166px 174px,transparent 175px 330px)}
.searchlight{opacity:.52;filter:blur(18px)}
.prison-card{width:min(620px,100%);padding:46px 44px 0;border-radius:13px;border:1px solid rgba(145,150,154,.48);background:
  linear-gradient(145deg,rgba(26,27,28,.96),rgba(5,6,7,.985)),
  repeating-linear-gradient(115deg,transparent 0 8px,rgba(255,255,255,.012) 9px 10px);
  box-shadow:0 44px 120px rgba(0,0,0,.9),inset 0 1px rgba(255,255,255,.06),inset 0 0 80px rgba(0,0,0,.38)}
.prison-card:before{height:2px;background:linear-gradient(90deg,transparent,#8e1116 18%,#e23336 50%,#8e1116 82%,transparent)}
.prison-card:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.24;background-image:repeating-radial-gradient(circle at 20% 40%,transparent 0 2px,rgba(255,255,255,.06) 3px,transparent 4px 11px)}
.prison-card .eyebrow{color:#d62d31;font-size:.8rem;letter-spacing:.24em}
.prison-card h1{font-family:Impact,Haettenschweiler,'Arial Narrow Bold',sans-serif;text-transform:uppercase;letter-spacing:.035em;font-size:clamp(2.8rem,6vw,4.5rem);line-height:.9;margin:1rem 0 1.15rem;text-shadow:0 4px 0 #000,0 0 22px rgba(255,255,255,.07)}
.prison-card h1 span,.prison-card h1 strong{display:block}.prison-card h1 span{color:#d5d5d0}.prison-card h1 strong{color:#a91d22;font-weight:400}
.login-intro{font-size:1rem;color:#aaa;line-height:1.55}
.login-separator{margin:24px 0 15px}.login-separator b{color:#85898d}.login-separator span{background:#55585b}
.prison-card .field label{text-transform:uppercase;letter-spacing:.07em;font-size:.78rem;color:#c3c3c0}
.login-control{border-radius:7px;background:rgba(2,3,4,.76);border-color:#45484b;padding:16px 17px;box-shadow:inset 0 0 18px rgba(0,0,0,.65)}
.login-control:focus{border-color:#a61d22;box-shadow:0 0 0 3px rgba(166,29,34,.18),inset 0 0 18px #000}
.prison-enter{border-radius:7px;background:linear-gradient(180deg,#831418,#4e090c);border:1px solid #b7262b;box-shadow:0 13px 32px rgba(98,5,8,.42),inset 0 1px rgba(255,255,255,.12);text-transform:uppercase;letter-spacing:.07em;padding:17px}
.prison-enter:hover{filter:brightness(1.15)}
.login-warning{padding-bottom:22px;color:#87898b}
.login-security{margin:0 -44px;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #323436;background:rgba(0,0,0,.38)}
.login-security>div{display:flex;align-items:center;gap:11px;padding:15px 16px;border-right:1px solid #292b2d}.login-security>div:last-child{border-right:0}
.login-security b{color:#aeb2b5;font-size:1.25rem}.login-security span{display:grid;gap:2px}.login-security strong{font-size:.67rem;letter-spacing:.07em;color:#b8b9b7}.login-security small{font-size:.62rem;color:#74777a}
@media(max-width:700px){.prison-login:after{display:none}.login-bars{width:72px;opacity:.68}.prison-card{padding:34px 22px 0}.login-security{margin:0 -22px;grid-template-columns:1fr}.login-security>div{border-right:0;border-bottom:1px solid #292b2d}.login-security>div:last-child{border-bottom:0}.prison-card h1{font-size:3rem}}

/* Catalogue visuel V2 */
.catalogue-shop{min-width:0}
.catalog-category-tabs{display:flex;gap:10px;overflow:auto;padding:2px 0 14px;scrollbar-width:thin}
.catalog-category-btn{flex:0 0 auto;border:1px solid var(--line);background:#0b111b;color:var(--muted);padding:11px 14px;border-radius:13px;font-weight:800;display:flex;gap:9px;align-items:center}
.catalog-category-btn small{display:grid;place-items:center;min-width:23px;height:23px;border-radius:999px;background:#223049;color:white}
.catalog-category-btn.active{color:white;border-color:#b92a2d;background:linear-gradient(135deg,rgba(239,43,45,.22),#151f2e)}
.catalog-products-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.catalog-product-card{position:relative;text-align:left;border:1px solid var(--line);background:#0b111b;color:white;border-radius:16px;padding:0;overflow:hidden;transition:.18s ease;min-width:0}
.catalog-product-card:hover{transform:translateY(-2px);border-color:#586b84}
.catalog-product-card.selected{border-color:var(--red);box-shadow:0 0 0 2px rgba(239,43,45,.18)}
.catalog-product-card .catalog-visual{display:block;width:100%;height:112px;object-fit:cover;border-radius:0;background:#070a0f}
.catalog-product-info{display:grid;gap:4px;padding:12px}
.catalog-product-info strong{font-size:.98rem}
.catalog-product-info small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.catalog-product-info b{color:#ffcc68}
.catalog-check{display:none;position:absolute;right:9px;top:9px;width:26px;height:26px;border-radius:50%;background:var(--red);place-items:center;font-weight:900}
.catalog-product-card.selected .catalog-check{display:grid}
.catalog-selection{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:end;margin-top:16px;border:1px solid var(--line);background:#0d141e;border-radius:16px;padding:14px}
.selected-product-preview{display:flex;gap:13px;align-items:center;min-width:0}
.selected-product-preview .catalog-visual{width:90px;height:68px;object-fit:cover;border-radius:11px}
.selected-product-preview>div{display:grid;gap:3px}
.selected-product-preview span{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}
.selected-product-preview b{color:#ffcc68}
.catalog-add-controls{display:flex;align-items:end;gap:10px}
.catalog-add-controls .field{margin:0;width:105px}
.catalog-add-controls .btn{height:49px;white-space:nowrap}
@media(max-width:1200px){.catalog-products-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.catalog-products-grid{grid-template-columns:1fr 1fr}.catalog-product-card .catalog-visual{height:90px}.catalog-selection{grid-template-columns:1fr}.catalog-add-controls{display:grid;grid-template-columns:110px 1fr}.catalog-add-controls .field{width:auto}}
@media(max-width:480px){.catalog-products-grid{grid-template-columns:1fr}.catalog-add-controls{grid-template-columns:1fr}.catalog-add-controls .btn{width:100%}}

/* Catalogue V3 — interface repartie de zéro */
.order-v3-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(350px,.72fr);gap:20px;align-items:start}.catalogue-v3{padding:22px}.catalogue-v3-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px}.catalogue-v3-head h2{font-size:1.8rem;margin:5px 0}.catalogue-v3-head p{margin:0}.catalogue-count{min-width:135px;border:1px solid var(--line);background:#0b111b;border-radius:16px;padding:12px 15px;text-align:right}.catalogue-count strong{font-size:1.55rem;display:block}.catalogue-count span{font-size:.76rem;color:var(--muted)}.catalogue-toolbar{display:flex;gap:10px;margin-bottom:16px}.catalogue-search{position:relative;display:block;flex:1}.catalogue-search>span{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:1.25rem;color:var(--muted);z-index:1}.catalogue-search .input{padding-left:43px}.catalogue-v3-body{display:grid;grid-template-columns:215px minmax(0,1fr);gap:16px;align-items:start}.catalogue-categories{display:grid;gap:8px;position:sticky;top:18px}.catalogue-category-v3{width:100%;border:1px solid var(--line);background:#0b111b;color:var(--text);border-radius:14px;padding:11px;display:flex;gap:11px;text-align:left;align-items:center}.catalogue-category-v3:hover{background:#121c29;border-color:#50627d}.catalogue-category-v3.active{background:linear-gradient(135deg,rgba(239,43,45,.22),#151f2e);border-color:#b92a2d}.cat-icon{width:36px;height:36px;border-radius:11px;background:#1c293b;display:grid;place-items:center;font-size:1.1rem;flex:none}.catalogue-category-v3.active .cat-icon{background:#8f1f23}.catalogue-category-v3>span:last-child{display:grid;gap:2px}.catalogue-category-v3 strong{font-size:.87rem}.catalogue-category-v3 small{color:var(--muted);font-size:.72rem}.catalogue-main{min-width:0}.catalogue-section-title{display:flex;justify-content:space-between;align-items:center;margin:3px 0 12px}.catalogue-section-title>div{display:flex;align-items:baseline;gap:10px}.catalogue-section-title strong{font-size:1.1rem}.catalogue-section-title span{color:var(--muted);font-size:.8rem}.catalogue-products-v3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.catalogue-product-v3{position:relative;min-width:0;text-align:left;border:1px solid var(--line);background:#090f17;color:white;border-radius:16px;overflow:hidden;transition:transform .16s,border-color .16s}.catalogue-product-v3:hover{transform:translateY(-2px);border-color:#60738d}.catalogue-product-v3.selected{border-color:var(--red);box-shadow:0 0 0 2px rgba(239,43,45,.2)}.catalogue-product-v3>.catalog-visual{width:100%;height:120px;object-fit:cover;border:0;border-radius:0;background:#070a0e}.product-v3-body{display:grid;gap:4px;padding:11px}.product-v3-body small{text-transform:uppercase;letter-spacing:.08em;font-size:.64rem;color:#8ba1bb}.product-v3-body strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-v3-body b{color:#ffd16a}.product-v3-body em{font-style:normal;font-weight:500;color:var(--muted);font-size:.72rem}.product-v3-check{display:none;position:absolute;right:9px;top:9px;width:27px;height:27px;border-radius:50%;background:var(--red);place-items:center;font-weight:900}.catalogue-product-v3.selected .product-v3-check{display:grid}.catalogue-dock{position:sticky;bottom:10px;z-index:4;margin-top:16px;border:1px solid #3b4a5e;background:rgba(10,16,25,.97);backdrop-filter:blur(10px);border-radius:17px;padding:12px;display:flex;gap:15px;justify-content:space-between;align-items:center;box-shadow:0 14px 36px rgba(0,0,0,.35)}.dock-product{display:flex;align-items:center;gap:11px;min-width:0}.dock-product .catalog-visual{width:74px;height:58px;object-fit:cover}.dock-product>div{display:grid;gap:2px}.dock-product small,.dock-total small{color:var(--muted);font-size:.72rem}.dock-product strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dock-product b{color:#ffd16a}.dock-actions{display:flex;align-items:end;gap:9px}.dock-actions label{display:grid;gap:5px;font-size:.72rem;color:var(--muted)}.dock-actions .input{width:82px;padding:11px}.dock-total{display:grid;gap:4px;min-width:120px}.dock-total strong{font-size:1.05rem}.invoice-v3{top:18px}.catalogue-empty{grid-column:1/-1}
@media(max-width:1350px){.order-v3-layout{grid-template-columns:minmax(0,1fr) 360px}.catalogue-products-v3{grid-template-columns:repeat(2,minmax(0,1fr))}.catalogue-v3-body{grid-template-columns:190px minmax(0,1fr)}}
@media(max-width:1050px){.order-v3-layout{grid-template-columns:1fr}.invoice-v3{position:static}.catalogue-v3-body{grid-template-columns:1fr}.catalogue-categories{position:static;display:flex;overflow:auto;padding-bottom:5px}.catalogue-category-v3{min-width:180px}.catalogue-dock{position:static}}
@media(max-width:700px){.catalogue-v3{padding:15px}.catalogue-v3-head{display:block}.catalogue-count{margin-top:12px;text-align:left}.catalogue-toolbar{display:grid;grid-template-columns:1fr auto}.catalogue-products-v3{grid-template-columns:1fr 1fr}.catalogue-dock{display:grid}.dock-actions{display:grid;grid-template-columns:90px 1fr}.dock-actions .btn{grid-column:1/-1}.dock-total{min-width:0}.catalogue-product-v3>.catalog-visual{height:95px}}
@media(max-width:440px){.catalogue-products-v3{grid-template-columns:1fr}.catalogue-toolbar{grid-template-columns:1fr}.catalogue-clear{width:100%}}

/* V3 — synchronisation Discord */
.sync-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid var(--line);border-radius:16px;padding:14px 18px;margin-bottom:18px;background:rgba(16,23,34,.94)}
.sync-banner>div{display:flex;align-items:center;gap:12px}.sync-banner strong,.sync-banner small{display:block}.sync-banner small{color:var(--muted);margin-top:3px}.sync-dot{width:12px;height:12px;border-radius:50%;display:block;background:var(--amber);box-shadow:0 0 0 6px rgba(243,181,63,.1)}.sync-banner.online .sync-dot{background:var(--green);box-shadow:0 0 0 6px rgba(37,199,122,.1)}
.sync-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:18px}.sync-feed{display:grid;gap:9px;max-height:760px;overflow:auto;padding-right:4px}.sync-event{display:grid;grid-template-columns:40px 1fr auto auto;align-items:center;gap:12px;border:1px solid var(--line);background:#0d141e;border-radius:14px;padding:11px 13px}.sync-event-icon{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;font-size:1.25rem;font-weight:900}.sync-event-icon.deposit{background:rgba(37,199,122,.12);color:#42d88d}.sync-event-icon.withdrawal{background:rgba(239,43,45,.12);color:#ff6d70}.sync-event strong,.sync-event small{display:block}.sync-event small{color:var(--muted);margin-top:3px}.sync-status{font-size:.72rem;border:1px solid var(--line);border-radius:999px;padding:4px 8px;color:var(--muted)}
.sync-players{display:grid;gap:10px}.sync-player{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;border-bottom:1px solid #202c3c;padding:10px 0}.sync-player:last-child{border-bottom:0}.sync-player .rank{width:32px;height:32px;border-radius:10px;background:#1b2738;display:grid;place-items:center;font-weight:900}.sync-player strong,.sync-player small{display:block}.sync-player small{color:var(--muted);margin-top:2px}.sync-player-totals{display:flex;gap:8px;font-weight:900}
@media(max-width:900px){.sync-grid{grid-template-columns:1fr}.sync-event{grid-template-columns:36px 1fr auto}.sync-status{display:none}.sync-banner{align-items:flex-start;flex-direction:column}.sync-banner .btn{width:100%}}

.sync-only-notice{display:flex;gap:14px;align-items:center;justify-content:space-between;margin:0 0 18px;padding:16px 18px;border:1px solid rgba(39,201,126,.35);border-radius:16px;background:rgba(39,201,126,.08)}
.sync-only-notice strong{white-space:nowrap;color:#8ff0bf}.sync-only-notice span{color:var(--muted);font-size:.92rem;text-align:right}@media(max-width:720px){.sync-only-notice{align-items:flex-start;flex-direction:column}.sync-only-notice span{text-align:left}}

/* V4 — alertes, filtres et analyses */
.version-pill{display:inline-grid;place-items:center;margin-left:7px;padding:2px 7px;border-radius:999px;background:linear-gradient(135deg,#b91f2c,#ef4a4f);font-size:.62rem;letter-spacing:.08em;vertical-align:middle;box-shadow:0 0 18px rgba(239,43,45,.25)}
.alert-center{border-color:rgba(239,43,45,.28);background:linear-gradient(180deg,rgba(239,43,45,.04),rgba(12,18,27,.96))}.alert-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.alert-card{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:11px;padding:13px 14px;border-radius:14px;border:1px solid var(--line);background:#0b121c}.alert-card>span{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:#182333}.alert-card strong,.alert-card small{display:block}.alert-card small{color:var(--muted);margin-top:3px}.alert-card b{font-size:1.3rem}.alert-card.critical{border-color:rgba(239,43,45,.45);background:rgba(239,43,45,.08)}.alert-card.warning{border-color:rgba(243,181,63,.35);background:rgba(243,181,63,.06)}
.history-toolbar{display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(3,minmax(150px,.65fr)) auto;gap:10px}.analytics-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.ranking-list{display:grid;gap:8px}.ranking-row{display:grid;grid-template-columns:38px 1fr auto;gap:11px;align-items:center;padding:11px 0;border-bottom:1px solid #202c3c}.ranking-row:last-child{border-bottom:0}.ranking-row>span{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:#1b2738;font-weight:900}.ranking-row strong,.ranking-row small{display:block}.ranking-row small{color:var(--muted);margin-top:2px}.ranking-row b{color:#ff7a7d;font-size:1.05rem}.v4-chart .bar-label small{display:block;color:var(--muted);font-size:.65rem;margin-top:4px}.correction-history{margin-top:18px}
@media(max-width:1100px){.history-toolbar{grid-template-columns:1fr 1fr 1fr}.history-toolbar #histSearch{grid-column:1/-1}.analytics-grid{grid-template-columns:1fr}}
@media(max-width:720px){.alert-grid{grid-template-columns:1fr}.history-toolbar{grid-template-columns:1fr}.history-toolbar #histSearch{grid-column:auto}.history-toolbar .btn{width:100%}}

/* V4.1 — accueil restructuré, stocks compacts et annuaire */
.welcome-dashboard{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.7fr);gap:18px;align-items:stretch;margin-bottom:16px}.welcome-copy,.welcome-status{border:1px solid var(--line);border-radius:20px;background:linear-gradient(145deg,#121b29,#090f17);padding:22px}.welcome-copy{position:relative;overflow:hidden}.welcome-copy:after{content:"B";position:absolute;right:20px;bottom:-45px;font-size:11rem;font-weight:1000;color:rgba(255,255,255,.025);line-height:1}.welcome-copy h2{font-size:2rem;margin:6px 0 8px}.welcome-copy p{max-width:700px;color:var(--muted);margin:0;line-height:1.55}.welcome-actions{display:flex;gap:10px;margin-top:18px}.welcome-status{display:flex;align-items:center;gap:16px}.welcome-status small,.welcome-status strong,.welcome-status em{display:block}.welcome-status small{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.welcome-status strong{font-size:1.05rem;margin:4px 0}.welcome-status em{font-style:normal;color:var(--muted);font-size:.78rem;line-height:1.35}.status-orb{width:54px;height:54px;display:grid;place-items:center;border-radius:50%;background:rgba(243,181,63,.08);border:1px solid rgba(243,181,63,.28);flex:none}.status-orb span{width:16px;height:16px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 8px rgba(243,181,63,.08),0 0 24px rgba(243,181,63,.35)}.status-orb.online{background:rgba(37,199,122,.08);border-color:rgba(37,199,122,.3)}.status-orb.online span{background:var(--green);box-shadow:0 0 0 8px rgba(37,199,122,.08),0 0 24px rgba(37,199,122,.35)}
.dashboard-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-bottom:16px}.dashboard-summary article{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid var(--line);border-radius:15px;background:#0d141e}.dashboard-summary article>span{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#192435}.dashboard-summary small,.dashboard-summary strong{display:block}.dashboard-summary small{font-size:.7rem;color:var(--muted)}.dashboard-summary strong{font-size:1.35rem;margin-top:2px}
.dashboard-main-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.7fr);gap:16px;align-items:start}.dashboard-side{display:grid;gap:16px}.compact-stock-panel{padding:16px}.stock-compact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stock-mini{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:62px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#0a111a}.stock-mini:hover{border-color:#455874;background:#0d1622}.stock-mini-main{display:flex;align-items:center;gap:9px;min-width:0}.stock-mini-main>div{min-width:0}.stock-mini strong,.stock-mini small{display:block}.stock-mini strong{font-size:.83rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stock-mini small{font-size:.66rem;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stock-mini-dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(37,199,122,.08);flex:none}.stock-mini.low .stock-mini-dot{background:var(--amber);box-shadow:0 0 0 4px rgba(243,181,63,.08)}.stock-mini.out .stock-mini-dot{background:var(--red);box-shadow:0 0 0 4px rgba(239,43,45,.08)}.stock-mini-count{text-align:right;flex:none}.stock-mini-count b,.stock-mini-count span{display:block}.stock-mini-count b{font-size:1.1rem}.stock-mini-count span{font-size:.58rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.stock-mini.low{border-color:rgba(243,181,63,.22)}.stock-mini.out{border-color:rgba(239,43,45,.28);background:rgba(239,43,45,.045)}
.mini-alert-list{display:grid;gap:7px}.mini-alert{display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid #202c3c}.mini-alert:last-child{border-bottom:0}.mini-alert>span{font-size:1rem}.mini-alert strong,.mini-alert small{display:block}.mini-alert strong{font-size:.8rem}.mini-alert small{font-size:.66rem;color:var(--muted);margin-top:2px}.mini-alert b{font-size:1rem}.empty-good{padding:22px;text-align:center;color:#7fe6ae;font-weight:800}.member-chips{display:grid;gap:7px}.member-chips>span{display:flex;align-items:center;gap:9px;padding:7px 8px;border-radius:10px;background:#0b121b;font-size:.76rem}.member-chips b{width:27px;height:27px;border-radius:8px;background:#202d40;display:grid;place-items:center;color:#dce8f6}.recent-dashboard{margin-top:16px}
.members-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px;margin-bottom:16px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(135deg,rgba(239,43,45,.1),#0d1520 48%,#091019)}.members-hero h2{font-size:1.8rem;margin:5px 0}.members-hero p{color:var(--muted);margin:0}.members-count{min-width:145px;text-align:center;padding:14px;border:1px solid var(--line);border-radius:15px;background:#0a111a}.members-count strong,.members-count span{display:block}.members-count strong{font-size:2rem}.members-count span{font-size:.72rem;color:var(--muted)}.member-search{max-width:280px}.members-directory{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.directory-card{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:11px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#0b121b}.directory-card.hidden{display:none}.directory-card.inactive{opacity:.58}.directory-avatar{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,#263851,#152033);font-weight:1000}.directory-card strong,.directory-card small{display:block}.directory-card small{color:var(--muted);font-size:.7rem;margin-top:3px}.directory-status{padding:4px 7px;border-radius:999px;font-size:.62rem;font-weight:800}.directory-status.on{color:#7fe6ae;background:rgba(37,199,122,.1);border:1px solid rgba(37,199,122,.25)}.directory-status.off{color:#ff9294;background:rgba(239,43,45,.08);border:1px solid rgba(239,43,45,.2)}.inactive-members{margin-top:16px}
@media(max-width:1150px){.welcome-dashboard,.dashboard-main-grid{grid-template-columns:1fr}.dashboard-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.members-directory{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.welcome-copy,.welcome-status{padding:17px}.welcome-copy h2{font-size:1.55rem}.welcome-actions{display:grid}.dashboard-summary{grid-template-columns:1fr 1fr}.stock-compact-grid{grid-template-columns:1fr}.members-hero{align-items:flex-start;flex-direction:column}.members-count{width:100%}.members-directory{grid-template-columns:1fr}.member-search{max-width:none;width:100%}.panel-head:has(.member-search){align-items:stretch;flex-direction:column}}
@media(max-width:460px){.dashboard-summary{grid-template-columns:1fr}.welcome-status{align-items:flex-start}.stock-mini{min-height:58px}}


/* ===== V4.2 : ouverture réaliste du coffre ===== */
.chest-cinematic .real-chest-scene{position:relative;width:min(680px,92vw);height:min(470px,72vh);display:grid;place-items:center;opacity:0;transform:translateY(80px) scale(.88);transition:1s cubic-bezier(.2,.8,.2,1);perspective:1200px;filter:drop-shadow(0 35px 35px #000)}
.chest-show .real-chest-scene{opacity:1;transform:translateY(0) scale(1)}
.floor-shadow{position:absolute;left:16%;right:16%;bottom:5%;height:14%;border-radius:50%;background:radial-gradient(ellipse,#000 0,#000b 35%,transparent 74%);filter:blur(9px)}
.wood-chest{position:absolute;left:50%;bottom:9%;width:min(430px,72vw);height:min(270px,44vw);transform:translateX(-50%);transform-style:preserve-3d}
.chest-base{position:absolute;left:4%;right:4%;bottom:0;height:58%;border-radius:8px 8px 16px 16px;background:repeating-linear-gradient(90deg,#4c2b18 0 44px,#5d351d 44px 86px,#392012 86px 90px);border:5px solid #151414;box-shadow:inset 0 14px 20px #0008,inset 0 -12px 22px #000a,0 16px 35px #000}
.chest-lid{position:absolute;left:2%;right:2%;top:11%;height:43%;transform-origin:50% 100%;transform-style:preserve-3d;transition:1.15s cubic-bezier(.18,.8,.24,1);z-index:4}
.lid-front{position:absolute;inset:0;border-radius:52% 52% 8px 8px/68% 68% 10px 10px;background:repeating-linear-gradient(90deg,#59331b 0 48px,#704123 48px 94px,#412311 94px 99px);border:5px solid #151414;box-shadow:inset 0 12px 18px #ffffff0d,inset 0 -16px 20px #0009}
.lid-inner{position:absolute;left:4%;right:4%;bottom:-11%;height:32%;background:linear-gradient(#1a1110,#050505);border:4px solid #151414;transform:rotateX(88deg);transform-origin:bottom}
.chest-open .chest-lid{transform:translateY(-9px) rotateX(-112deg)}
.metal-band,.base-band{position:absolute;top:0;bottom:0;width:12%;background:linear-gradient(90deg,#17191c,#626871 48%,#15171a);box-shadow:inset 2px 0 #aab0b544,inset -3px 0 #0008}
.metal-band.band-a,.base-band.band-a{left:17%}.metal-band.band-b,.base-band.band-b{right:17%}
.lid-rivets:before,.lid-rivets:after{content:"";position:absolute;top:48%;width:8px;height:8px;border-radius:50%;background:#94979b;box-shadow:0 0 0 2px #171717,0 34px 0 #94979b,0 34px 0 2px #171717}.lid-rivets:before{left:20%}.lid-rivets:after{right:20%}
.metal-corner{position:absolute;top:0;bottom:0;width:8%;background:linear-gradient(90deg,#17191b,#555b62,#151719);z-index:3}.metal-corner.left{left:0;border-radius:4px 0 0 14px}.metal-corner.right{right:0;border-radius:0 4px 14px 0}
.chest-lock{position:absolute;left:50%;top:-8%;width:18%;height:44%;transform:translateX(-50%);border-radius:8px;background:linear-gradient(145deg,#777d84,#1d2227 55%,#080a0c);border:4px solid #111;z-index:5;box-shadow:0 7px 14px #000}.chest-lock span{position:absolute;left:50%;top:48%;width:14px;height:18px;transform:translate(-50%,-50%);border-radius:50% 50% 4px 4px;background:#07090b;box-shadow:0 0 8px #000}
.inside-glow{position:absolute;left:8%;right:8%;top:-12%;height:65%;opacity:0;background:radial-gradient(ellipse at center,#f1ca72 0,#b93b1738 38%,transparent 72%);filter:blur(8px);transition:.7s}.chest-open .inside-glow{opacity:1}
.opening-hand{position:absolute;right:-25%;top:17%;width:min(390px,58vw);opacity:0;transform:translate(170px,-50px) rotate(-12deg);transition:1s cubic-bezier(.18,.78,.2,1);z-index:8;filter:drop-shadow(0 18px 16px #000c)}
.opening-hand svg{display:block;width:100%;height:auto}.hand-reach .opening-hand{opacity:1;transform:translate(0,0) rotate(-5deg)}.chest-open .opening-hand{transform:translate(-25px,-76px) rotate(-18deg)}
.dust-cloud{position:absolute;left:19%;right:19%;bottom:23%;height:45%;pointer-events:none;z-index:9}.dust-cloud i{position:absolute;left:calc(var(--x)*1%);bottom:8%;width:6px;height:6px;border-radius:50%;background:#d8c09b;opacity:0;filter:blur(.6px);box-shadow:0 0 10px #e3cba7}
.dust-release .dust-cloud i{animation:dustBurst 1.65s ease-out var(--d) forwards}
@keyframes dustBurst{0%{opacity:0;transform:translate(0,10px) scale(.3)}15%{opacity:.7}100%{opacity:0;transform:translate(calc((var(--x) - 50)*.85px),calc(-90px - (var(--i)%8)*12px)) scale(2.2)}}
.chest-caption{position:absolute;left:0;right:0;bottom:0;text-align:center;font-weight:1000;letter-spacing:.22em;color:#e6edf6;text-shadow:0 4px 16px #000;opacity:.8}
.chest-cinematic.finish{opacity:0;transition:.55s ease}
@media(max-width:650px){.chest-cinematic .real-chest-scene{height:58vh}.wood-chest{width:82vw;height:52vw}.opening-hand{right:-34%;top:21%;width:70vw}.chest-caption{font-size:.66rem;letter-spacing:.12em}.dust-cloud{left:12%;right:12%}}


/* ===== V4.4 : clé dans une serrure ===== */
.key-cinematic{background:#020407}.key-cinematic .lock-scene{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 46%,#1a2028 0,#090d12 38%,#010203 76%)}.lock-title{position:absolute;top:7%;left:0;right:0;text-align:center;color:#d9e1ea;font-weight:900;letter-spacing:.18em;font-size:.72rem;opacity:0;transform:translateY(-8px);transition:.55s ease}.key-cinematic.start .lock-title{opacity:.72;transform:none}.metal-door{position:relative;width:min(620px,92vw);height:min(410px,64vh);border-radius:10px;background:linear-gradient(105deg,#090c10 0,#272d34 18%,#101419 47%,#343a42 62%,#0b0e12 100%);border:1px solid #4c535c;box-shadow:inset 0 0 0 2px #050608,inset 24px 0 70px #000a,inset -20px 0 65px #0008,0 45px 90px #000;overflow:hidden}.metal-door:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(100deg,transparent 0 48px,#ffffff08 49px 50px,transparent 51px 92px);mix-blend-mode:screen;opacity:.45}.metal-door:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,transparent 0 22%,#0008 70%,#000 100%)}.door-scratch{position:absolute;height:1px;background:#9aa0a633;transform-origin:left center;z-index:2}.door-scratch.s1{width:180px;left:8%;top:28%;transform:rotate(-8deg)}.door-scratch.s2{width:135px;right:10%;bottom:24%;transform:rotate(11deg)}.door-scratch.s3{width:95px;left:22%;bottom:17%;transform:rotate(4deg)}.lock-plate{position:absolute;left:50%;top:50%;width:190px;height:230px;transform:translate(-50%,-50%);border-radius:24px;background:linear-gradient(145deg,#60666d 0,#171b20 40%,#050709 72%,#3b4148 100%);border:3px solid #090b0e;box-shadow:inset 0 0 0 2px #767c8233,inset 12px 8px 20px #ffffff0a,inset -15px -12px 24px #000c,0 18px 38px #000;z-index:4}.lock-plate:before,.lock-plate:after{content:"";position:absolute;left:50%;width:12px;height:12px;border-radius:50%;transform:translateX(-50%);background:radial-gradient(circle at 35% 35%,#8d949b,#1a1e23 55%,#050607 75%);box-shadow:0 1px 4px #000}.lock-plate:before{top:18px}.lock-plate:after{bottom:18px}.lock-ring{position:absolute;left:50%;top:50%;width:112px;height:112px;transform:translate(-50%,-50%);border-radius:50%;background:conic-gradient(from 20deg,#0a0c0f,#71777e,#171b20,#565c63,#090b0e);box-shadow:inset 0 0 0 6px #11151a,inset 0 0 18px #000,0 6px 14px #0009}.keyhole{position:absolute;left:50%;top:50%;width:30px;height:52px;transform:translate(-50%,-50%);filter:drop-shadow(0 0 5px #000)}.keyhole:before{content:"";position:absolute;left:50%;top:0;width:28px;height:28px;border-radius:50%;transform:translateX(-50%);background:#010203;box-shadow:inset 0 0 7px #000}.keyhole span{position:absolute;left:50%;top:19px;width:13px;height:31px;transform:translateX(-50%);clip-path:polygon(24% 0,76% 0,100% 100%,0 100%);background:#010203}.key-wrap{position:absolute;left:50%;top:50%;width:290px;height:90px;transform-origin:252px 45px;transform:translate(190px,-45px) rotate(0deg);opacity:0;z-index:8;filter:drop-shadow(0 12px 12px #000b);transition:1s cubic-bezier(.22,.75,.2,1)}.key-head{position:absolute;left:0;top:5px;width:80px;height:80px;border-radius:50%;background:conic-gradient(#8b9299,#2b3036,#b7bdc3,#252a30,#9299a0);box-shadow:inset 0 0 0 9px #20252b,inset 0 0 0 12px #777e85,0 5px 14px #000}.key-head span{position:absolute;inset:22px;border-radius:50%;background:#090c10;box-shadow:inset 0 0 8px #000}.key-shaft{position:absolute;left:68px;top:34px;width:194px;height:22px;border-radius:5px;background:linear-gradient(#b9bec3,#555c63 48%,#1b2025 52%,#777e85);box-shadow:0 4px 8px #0009}.key-shaft:after{content:"";position:absolute;right:-5px;top:0;width:18px;height:22px;background:linear-gradient(#aeb4ba,#474e55 52%,#1b2025);clip-path:polygon(0 0,100% 0,100% 58%,66% 58%,66% 100%,25% 100%,25% 65%,0 65%)}.key-shaft i,.key-shaft b{position:absolute;bottom:-13px;width:18px;background:#343a40;border-radius:0 0 3px 3px}.key-shaft i{right:42px;height:15px}.key-shaft b{right:19px;height:10px}.key-in .key-wrap{opacity:1;transform:translate(-252px,-45px) rotate(0deg)}.key-turn .key-wrap{transform:translate(-252px,-45px) rotate(88deg);transition:1.05s cubic-bezier(.55,.03,.2,1)}.key-turn .lock-ring{animation:lockTension .9s ease-in-out}@keyframes lockTension{0%,100%{transform:translate(-50%,-50%)}35%{transform:translate(-50%,-50%) rotate(3deg)}65%{transform:translate(-50%,-50%) rotate(-2deg)}}.unlock-line{position:absolute;left:50%;top:50%;width:2px;height:0;transform:translate(-50%,78px);background:linear-gradient(#25c77a,transparent);box-shadow:0 0 18px #25c77a;z-index:6;transition:.55s ease}.unlocked .unlock-line{height:190px}.unlocked .lock-plate{box-shadow:inset 0 0 0 2px #25c77a55,inset 12px 8px 20px #ffffff0a,inset -15px -12px 24px #000c,0 0 42px #25c77a33,0 18px 38px #000}.unlocked .status-dot{background:#25c77a;box-shadow:0 0 15px #25c77a}.key-cinematic.finish{opacity:0;transition:.55s ease}@media(max-width:600px){.metal-door{height:58vh}.lock-plate{width:150px;height:190px}.lock-ring{width:92px;height:92px}.key-wrap{transform-origin:252px 45px;scale:.78}.key-in .key-wrap{transform:translate(-252px,-45px) rotate(0deg);scale:.78}.key-turn .key-wrap{transform:translate(-252px,-45px) rotate(88deg);scale:.78}.lock-title{font-size:.62rem;letter-spacing:.11em}.access-status{font-size:.76rem}}


/* ===== V4.5 : entrée biométrique cinématique ===== */
.aaa-login{position:relative;min-height:100vh;display:grid;place-items:center;padding:24px;overflow:hidden;background:#03060a;isolation:isolate}.aaa-bg{position:absolute;inset:-3%;z-index:-8;background:url('./bloc-b-night.png') center/cover no-repeat;filter:brightness(.78) contrast(1.10) saturate(.88);animation:aaaCameraPush 18s ease-in-out infinite alternate;transform-origin:58% 44%}@keyframes aaaCameraPush{from{transform:scale(1.03) translate3d(0,0,0)}to{transform:scale(1.11) translate3d(-1.5%,.5%,0)}}.aaa-vignette{position:absolute;inset:0;z-index:-6;background:linear-gradient(90deg,rgba(2,5,9,.96) 0,rgba(2,5,9,.58) 18%,transparent 38%,rgba(2,5,9,.24) 70%,rgba(2,5,9,.7) 100%),radial-gradient(circle at 50% 45%,transparent 20%,rgba(0,0,0,.78) 100%)}.aaa-rain,.bio-rain{position:absolute;inset:-30%;z-index:-3;pointer-events:none;background-image:repeating-linear-gradient(112deg,transparent 0 15px,rgba(190,215,235,.22) 16px 17px,transparent 18px 34px);background-size:34px 170px;animation:aaaRain .72s linear infinite;opacity:.45;transform:rotate(-3deg)}@keyframes aaaRain{to{background-position:-34px 170px}}.aaa-fog{position:absolute;z-index:-2;width:72vw;height:25vh;border-radius:50%;filter:blur(38px);background:rgba(150,170,185,.11);animation:aaaFog 13s ease-in-out infinite alternate}.fog-a{left:-18vw;bottom:-8vh}.fog-b{right:-22vw;bottom:6vh;animation-delay:-7s}@keyframes aaaFog{to{transform:translateX(18vw) scale(1.2);opacity:.35}}.aaa-search-beam{position:absolute;z-index:-4;top:-25vh;width:16vw;height:115vh;transform-origin:50% 0;background:linear-gradient(180deg,rgba(220,236,255,.2),rgba(130,180,220,.045) 45%,transparent 80%);filter:blur(14px);mix-blend-mode:screen;animation:aaaBeam 10s ease-in-out infinite alternate}.beam-a{left:10%;transform:rotate(-18deg)}.beam-b{right:6%;animation-delay:-5s;transform:rotate(18deg)}@keyframes aaaBeam{0%{rotate:-13deg;opacity:.2}55%{opacity:.72}100%{rotate:13deg;opacity:.24}}.aaa-camera{position:absolute;right:10%;top:12%;width:82px;height:42px;z-index:-1;filter:drop-shadow(0 8px 12px #000);animation:aaaCamPivot 7s ease-in-out infinite alternate;transform-origin:100% 50%}.cam-body{position:absolute;inset:4px 13px 7px 0;border-radius:7px 4px 4px 7px;background:linear-gradient(145deg,#8c959e,#242b32 52%,#090c10);border:1px solid #aab1b744}.cam-eye{position:absolute;right:0;top:11px;width:18px;height:18px;border-radius:50%;background:#ff2f35;box-shadow:0 0 15px #ff2027,0 0 30px #ff202766}@keyframes aaaCamPivot{from{transform:rotate(-8deg)}to{transform:rotate(13deg)}}
.aaa-terminal{width:min(470px,94vw);position:relative;border:1px solid rgba(145,170,195,.34);border-radius:18px;padding:25px;background:linear-gradient(150deg,rgba(7,12,18,.91),rgba(5,9,14,.78));box-shadow:0 38px 90px rgba(0,0,0,.72),inset 0 0 0 1px rgba(255,255,255,.025),0 0 55px rgba(40,110,160,.1);backdrop-filter:blur(16px) saturate(1.15);overflow:hidden}.aaa-terminal:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 0 38%,rgba(255,255,255,.035) 48%,transparent 58%);animation:terminalSheen 7s ease-in-out infinite}@keyframes terminalSheen{0%,45%{transform:translateX(-130%)}70%,100%{transform:translateX(130%)}}.terminal-top,.terminal-bottom{display:flex;align-items:center;justify-content:space-between;gap:14px}.terminal-top{padding-bottom:17px;border-bottom:1px solid #263344}.terminal-top>div{display:grid;gap:3px}.terminal-kicker{font-weight:1000;letter-spacing:.23em;font-size:1rem}.terminal-top small,.terminal-bottom{color:#6f8297;font:700 .62rem ui-monospace,monospace;letter-spacing:.06em}.terminal-live{color:#68e7a4;font:800 .65rem ui-monospace,monospace}.terminal-live i{display:inline-block;width:7px;height:7px;margin-right:5px;border-radius:50%;background:#36d486;box-shadow:0 0 10px #36d486;animation:statusPulse .8s alternate infinite}.terminal-title{text-align:center;padding:24px 0 7px}.terminal-title span,.terminal-title strong{display:block}.terminal-title span{font-size:.67rem;letter-spacing:.24em;color:#ef4a4c;font-weight:900}.terminal-title strong{font-size:1.35rem;letter-spacing:.06em;margin-top:8px}.terminal-title p{font-size:.78rem;color:#7f91a4;margin:8px 0}.terminal-form .field{margin:13px 0}.terminal-form label{font-size:.72rem;color:#b6c3d1;text-transform:uppercase;letter-spacing:.08em}.terminal-form .input,.terminal-form .select{background:rgba(4,8,13,.82);border-color:#2a394c;border-radius:8px}.aaa-enter{width:100%;display:flex;align-items:center;justify-content:center;gap:18px;border-radius:8px;margin-top:18px;padding:14px;letter-spacing:.1em;font-size:.75rem;box-shadow:0 10px 28px rgba(185,24,28,.28)}.aaa-enter b{font-size:1.1rem}.terminal-bottom{margin-top:20px;padding-top:15px;border-top:1px solid #263344;flex-wrap:wrap}.terminal-bottom span:last-child{color:#7fe6ae}
.bio-cinematic{background:#020508}.bio-world{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden}.bio-bg{position:absolute;inset:-4%;background:url('./bloc-b-night.png') center/cover no-repeat;filter:brightness(.42) contrast(1.25) saturate(.72);transform:scale(1.05);animation:bioPush 5s ease-out forwards}@keyframes bioPush{to{transform:scale(1.12)}}.bio-world:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 46%,transparent 8%,rgba(1,4,8,.46) 48%,rgba(0,0,0,.88) 100%)}.bio-fog{position:absolute;inset:auto -15% -12%;height:38%;z-index:2;background:rgba(160,180,195,.12);filter:blur(45px);animation:bioFog 5s ease-in-out forwards}@keyframes bioFog{to{transform:translateX(15%);opacity:.45}}.bio-beam{position:absolute;left:5%;top:-30%;width:22%;height:150%;z-index:2;background:linear-gradient(180deg,rgba(215,232,245,.2),transparent 76%);filter:blur(18px);transform:rotate(-16deg);animation:bioBeam 5s ease-in-out forwards}@keyframes bioBeam{50%{transform:rotate(10deg);opacity:.8}to{transform:rotate(18deg);opacity:.3}}.bio-panel{position:relative;z-index:5;width:min(430px,92vw);padding:24px;border-radius:18px;border:1px solid #53647777;background:linear-gradient(155deg,rgba(6,12,18,.94),rgba(3,7,11,.82));box-shadow:0 42px 100px #000,inset 0 0 0 1px #ffffff08;backdrop-filter:blur(18px);opacity:0;transform:translateY(24px) scale(.97);transition:.55s ease}.bio-cinematic.start .bio-panel{opacity:1;transform:none}.bio-head{text-align:center;border-bottom:1px solid #263445;padding-bottom:17px}.bio-head span,.bio-head small{display:block}.bio-head span{font-size:1.8rem;font-weight:1000;letter-spacing:.2em}.bio-head small{margin-top:5px;color:#8495a8;font-size:.64rem;letter-spacing:.16em}.bio-reader{width:220px;height:220px;margin:24px auto 17px;position:relative;display:grid;place-items:center}.bio-ring{position:absolute;inset:0;border-radius:50%;border:1px solid #30503f;background:radial-gradient(circle,#10201966,transparent 66%);box-shadow:inset 0 0 40px #25c77a08}.bio-ring:before,.bio-ring:after{content:"";position:absolute;inset:-7px;border-radius:50%;border:2px solid transparent;border-top-color:#25c77a;border-right-color:#25c77a33;animation:bioSpin 2.4s linear infinite}.bio-ring:after{inset:9px;animation-direction:reverse;animation-duration:3.2s;border-top-color:#5a7695}@keyframes bioSpin{to{transform:rotate(360deg)}}.bio-fingerprint{position:absolute;inset:24px;color:#c7d0d9;display:grid;place-items:center;overflow:hidden;filter:drop-shadow(0 0 8px #ffffff12);transition:.45s ease}.bio-fingerprint svg{width:100%;height:100%}.bio-scanline{position:absolute;left:5%;right:5%;top:-8%;height:3px;background:#35e789;box-shadow:0 0 10px #35e789,0 0 22px #35e789;opacity:0}.scanning .bio-scanline{opacity:1;animation:bioScan 1.1s linear infinite}@keyframes bioScan{to{top:105%}}.bio-progress{position:absolute;left:8px;right:8px;bottom:-7px;height:4px;border-radius:9px;background:#15202b;overflow:hidden}.bio-progress i{display:block;height:100%;width:0;background:#35e789;box-shadow:0 0 12px #35e789;transition:3s linear}.scanning .bio-progress i{width:92%}.verified .bio-progress i{width:100%}.verified .bio-fingerprint{color:#43ef98;filter:drop-shadow(0 0 10px #25c77a) drop-shadow(0 0 28px #25c77a77)}.verified .bio-ring{border-color:#3ee893;box-shadow:0 0 55px #25c77a38,inset 0 0 45px #25c77a18}.bio-copy{text-align:center;display:grid;gap:7px}.bio-copy strong{font-size:.85rem;letter-spacing:.12em}.bio-copy span{font-size:.72rem;color:#8294a8}.verified .bio-copy strong,.verified .bio-copy span{color:#59eba0}.bio-data{display:flex;justify-content:space-between;gap:12px;margin-top:22px;padding-top:13px;border-top:1px solid #263445;color:#607286;font:700 .58rem ui-monospace,monospace}.bio-status{position:absolute;z-index:6;bottom:5%;display:flex;align-items:center;gap:9px;color:#8093a8;font:800 .65rem ui-monospace,monospace;letter-spacing:.1em}.bio-status i{width:7px;height:7px;border-radius:50%;background:#e43c42;box-shadow:0 0 10px #e43c42}.verified .bio-status i{background:#35df8c;box-shadow:0 0 12px #35df8c}.bio-cinematic.finish{opacity:0;transition:.6s ease}
@media(max-width:650px){.aaa-login{padding:14px}.aaa-terminal{padding:20px 17px}.aaa-camera{right:3%;top:8%;scale:.7}.terminal-bottom span:nth-child(2){display:none}.bio-reader{width:190px;height:190px}.bio-panel{padding:20px 16px}.bio-data{font-size:.52rem}.aaa-search-beam{width:30vw}}
@media(prefers-reduced-motion:reduce){.aaa-bg,.aaa-rain,.aaa-fog,.aaa-search-beam,.aaa-camera,.aaa-terminal:before{animation:none!important}}

/* ===== V4.7 : accueil biométrique propre, sans double interface ===== */
.aaa-login-v47 .aaa-bg{background-image:url('./bloc-b-original.png');background-position:center center;filter:brightness(.48) contrast(1.18) saturate(.72)}
.aaa-login-v47 .aaa-vignette{background:linear-gradient(90deg,rgba(1,4,8,.86),rgba(1,4,8,.18) 34%,rgba(1,4,8,.18) 70%,rgba(1,4,8,.74)),radial-gradient(circle at 50% 46%,transparent 16%,rgba(0,0,0,.68) 100%)}
.aaa-login-v47:before{content:"";position:absolute;z-index:-1;left:0;bottom:0;width:24%;height:42%;background:linear-gradient(135deg,rgba(3,7,11,.98),rgba(3,7,11,.82));filter:blur(2px);opacity:.9}
.system-readout{position:absolute;left:2.5%;top:4%;z-index:2;display:grid;gap:6px;color:#8494a5;font:700 .68rem ui-monospace,monospace;letter-spacing:.06em;text-shadow:0 2px 8px #000}.system-readout strong{color:#dce4eb;margin-bottom:5px}.system-readout strong i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#ef3038;box-shadow:0 0 10px #ef3038}.system-readout b{color:#37dc8a}
.terminal-v47{width:min(640px,94vw);padding:24px 26px 20px;background:linear-gradient(155deg,rgba(6,12,18,.94),rgba(2,6,10,.84));border:1px solid #60738688;box-shadow:0 40px 100px #000,inset 0 0 0 1px #ffffff08;backdrop-filter:blur(18px)}
.terminal-v47 .terminal-kicker{font-size:2.8rem;letter-spacing:.06em;font-weight:1000}.terminal-v47 .terminal-top small{font-size:.75rem;letter-spacing:.12em}.terminal-v47 .terminal-title{padding:18px 0 8px}.terminal-v47 .terminal-title strong{font-size:1.35rem;margin-top:6px}.terminal-v47 .terminal-title p{margin:.45rem 0;color:#8798aa}
.terminal-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:16px 22px;align-items:center}.terminal-fields .field{margin:10px 0}.terminal-v47 .login-control{padding:13px 14px}.ready-biometric{min-height:190px;border:1px solid #334354;border-radius:14px;background:linear-gradient(145deg,rgba(8,15,23,.82),rgba(3,8,13,.62));display:grid;grid-template-columns:118px 1fr;align-items:center;padding:14px;position:relative;overflow:hidden}.ready-reader{width:108px;height:108px;display:grid;place-items:center}.ready-ring{position:relative;width:100%;height:100%;border-radius:50%;border:1px solid #315846;background:radial-gradient(circle,#15332466,transparent 68%);box-shadow:inset 0 0 28px #28d57c0b}.ready-ring:before{content:"";position:absolute;inset:-5px;border-radius:50%;border:2px solid transparent;border-top-color:#34dc88;border-right-color:#34dc8830;animation:bioSpin 2.8s linear infinite}.ready-fingerprint{position:absolute;inset:18px;color:#cbd3db;display:grid;place-items:center;overflow:hidden;filter:drop-shadow(0 0 7px #fff2)}.ready-fingerprint svg{width:100%;height:100%}.ready-scanline{position:absolute;left:4%;right:4%;top:-4%;height:2px;background:#39ed91;box-shadow:0 0 8px #39ed91,0 0 18px #39ed91;animation:readyScan 2.3s ease-in-out infinite}@keyframes readyScan{0%{top:0;opacity:.25}50%{top:96%;opacity:1}100%{top:0;opacity:.25}}.ready-copy{display:grid;gap:5px}.ready-copy strong{font-size:.72rem;letter-spacing:.14em;color:#dbe3ea}.ready-copy span{color:#3de18d;font-weight:900;letter-spacing:.1em}.ready-copy small{color:#77899b;line-height:1.35}.terminal-v47 .aaa-enter{grid-column:1/-1;margin-top:0;padding:15px}.terminal-v47 #loginMsg{grid-column:1/-1}.terminal-v47 .terminal-bottom{margin-top:14px}
.security-strip{position:absolute;left:50%;bottom:2.5%;transform:translateX(-50%);z-index:2;width:min(1120px,92vw);display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #40506366;border-radius:14px;background:rgba(4,9,14,.78);backdrop-filter:blur(12px);box-shadow:0 18px 45px #000;padding:14px 18px;color:#a4b0bc;font:700 .65rem ui-monospace,monospace}.security-strip span{padding:0 14px;border-right:1px solid #2b3745;display:grid;gap:4px}.security-strip span:last-child{border-right:0}.security-strip b{color:#35dc88;font-size:.61rem}
@media(max-width:760px){.system-readout,.security-strip{display:none}.terminal-grid{grid-template-columns:1fr}.ready-biometric{grid-template-columns:100px 1fr;min-height:150px}.ready-reader{width:90px;height:90px}.terminal-v47{padding:20px 17px}.terminal-v47 .terminal-kicker{font-size:2rem}}

/* ===== V4.8 accueil net + transition cinéma ===== */
.aaa-login-v47 .aaa-bg{
  background-image:url('./bloc-b-original.png');
  background-position:center 44%;
  filter:brightness(.82) contrast(1.08) saturate(.94);
  animation:cleanCameraPush 24s ease-in-out infinite alternate;
}
@keyframes cleanCameraPush{from{transform:scale(1.015)}to{transform:scale(1.055) translate3d(-.6%,.2%,0)}}
.aaa-login-v47 .aaa-vignette{
  background:linear-gradient(90deg,rgba(1,4,8,.58),rgba(1,4,8,.06) 30%,rgba(1,4,8,.04) 70%,rgba(1,4,8,.45)),radial-gradient(circle at 51% 47%,transparent 38%,rgba(0,0,0,.4) 100%);
}
.aaa-login-v47:before{display:none!important}
.aaa-rain{opacity:.20;background-image:repeating-linear-gradient(112deg,transparent 0 26px,rgba(205,225,240,.22) 27px 28px,transparent 29px 56px);background-size:56px 235px;animation-duration:1.05s}
.aaa-fog{height:15vh;filter:blur(52px);background:rgba(174,193,205,.085);opacity:.7}
.aaa-search-beam{opacity:.24;filter:blur(22px)}
.aaa-camera{opacity:.88}
.aaa-terminal{background:linear-gradient(155deg,rgba(5,10,16,.82),rgba(3,7,11,.69));backdrop-filter:blur(11px);-webkit-backdrop-filter:blur(11px);box-shadow:0 28px 80px rgba(0,0,0,.64),inset 0 1px rgba(255,255,255,.08)}
.system-readout{opacity:.88;text-shadow:0 1px 2px #000}
.security-strip{background:rgba(3,8,13,.72);backdrop-filter:blur(10px)}
.boot-sequence{position:absolute;left:28px;top:28px;z-index:5;width:min(430px,calc(100vw - 56px));font:700 .67rem/1.65 ui-monospace,SFMono-Regular,Consolas,monospace;color:#8da1b5;letter-spacing:.04em;pointer-events:none;text-shadow:0 2px 5px #000}
.boot-sequence span{display:block;opacity:0;transform:translateY(5px);animation:bootLine .35s ease forwards}
.boot-sequence span:nth-child(1){animation-delay:.15s}.boot-sequence span:nth-child(2){animation-delay:.45s}.boot-sequence span:nth-child(3){animation-delay:.75s}.boot-sequence span:nth-child(4){animation-delay:1.05s}.boot-sequence span:nth-child(5){animation-delay:1.35s}.boot-sequence span:nth-child(6){animation-delay:1.65s;color:#56e79c}
.boot-sequence{animation:bootAway .6s ease 3.6s forwards}
@keyframes bootLine{to{opacity:1;transform:none}}@keyframes bootAway{to{opacity:0;transform:translateY(-8px)}}
.bio-cinematic{background:transparent}
.bio-cinematic:before{content:"";position:absolute;inset:0;background:#020508;opacity:.72;transition:opacity .9s ease;z-index:0}
.bio-cinematic.dashboard-ready:before{opacity:1}
.bio-cinematic.finish{opacity:1;transition:none}
.bio-cinematic.finish .bio-world{opacity:0;transform:scale(1.025);transition:opacity .75s ease,transform .75s ease}
.shell-enter{animation:dashboardReveal 1.15s cubic-bezier(.2,.8,.2,1) both}
@keyframes dashboardReveal{0%{opacity:0;filter:blur(12px);transform:scale(1.018)}45%{opacity:.35;filter:blur(6px)}100%{opacity:1;filter:blur(0);transform:none}}
.page-fade-curtain{position:fixed;inset:0;background:#020508;z-index:999;pointer-events:none;animation:curtainLift 1.15s ease forwards}
@keyframes curtainLift{0%{opacity:1}35%{opacity:1}100%{opacity:0;visibility:hidden}}
@media(max-width:760px){.boot-sequence{left:16px;top:15px;font-size:.57rem}.system-readout{display:none}.aaa-login-v47 .aaa-bg{background-position:57% center}.aaa-rain{opacity:.14}}
@media(prefers-reduced-motion:reduce){.boot-sequence,.boot-sequence span,.shell-enter,.page-fade-curtain{animation:none!important}.boot-sequence{display:none}}

/* ===== V4.9 CLEAN : un seul fond, aucun empilement d'anciennes interfaces ===== */
.clean-login{position:relative;min-height:100vh;display:grid;place-items:center;padding:28px;overflow:hidden;background:#02060a;isolation:isolate}.clean-login:before,.clean-login:after{content:none!important}.clean-bg{position:absolute;inset:-1.5%;z-index:-8;background:url('./bloc-b-clean-hd.jpg') center 45%/cover no-repeat;filter:none;transform:scale(1.018);animation:cleanHdPush 28s ease-in-out infinite alternate;will-change:transform}@keyframes cleanHdPush{to{transform:scale(1.045) translate3d(-.35%,.15%,0)}}.clean-light{position:absolute;inset:0;z-index:-7;background:linear-gradient(90deg,rgba(1,5,9,.58),rgba(1,5,9,.05) 28%,rgba(1,5,9,.03) 70%,rgba(1,5,9,.45)),radial-gradient(circle at 48% 46%,transparent 36%,rgba(0,0,0,.42) 100%);pointer-events:none}.clean-rain{position:absolute;inset:-25%;z-index:-5;opacity:.16;pointer-events:none;background-image:repeating-linear-gradient(110deg,transparent 0 31px,rgba(215,232,245,.28) 32px 33px,transparent 34px 65px);background-size:65px 260px;animation:cleanRain 1.25s linear infinite}@keyframes cleanRain{to{background-position:-65px 260px}}.clean-ground-fog{position:absolute;left:-10%;right:-10%;bottom:-8%;height:24%;z-index:-4;pointer-events:none;background:radial-gradient(ellipse at 25% 80%,rgba(188,207,220,.13),transparent 48%),radial-gradient(ellipse at 75% 85%,rgba(188,207,220,.09),transparent 50%);filter:blur(30px);animation:cleanFog 15s ease-in-out infinite alternate}@keyframes cleanFog{to{transform:translateX(4%);opacity:.65}}.clean-wet-floor{position:absolute;left:0;right:0;bottom:0;height:34%;z-index:-6;pointer-events:none;background:linear-gradient(180deg,transparent,rgba(52,91,123,.035) 32%,rgba(150,196,225,.085) 80%,rgba(10,25,37,.16));mix-blend-mode:screen;opacity:.85}.clean-boot{position:absolute;left:28px;top:28px;z-index:2;font:700 .65rem/1.65 ui-monospace,SFMono-Regular,Consolas,monospace;color:#8ea2b6;letter-spacing:.04em;text-shadow:0 2px 6px #000}.clean-boot span{display:block;opacity:0;transform:translateY(5px);animation:cleanBootLine .3s ease forwards}.clean-boot span:nth-child(1){animation-delay:.1s}.clean-boot span:nth-child(2){animation-delay:.35s}.clean-boot span:nth-child(3){animation-delay:.6s}.clean-boot span:nth-child(4){animation-delay:.85s}.clean-boot span:nth-child(5){animation-delay:1.1s}.clean-boot span:nth-child(6){animation-delay:1.35s;color:#54e69a}.clean-boot{animation:cleanBootAway .6s ease 3.5s forwards}@keyframes cleanBootLine{to{opacity:1;transform:none}}@keyframes cleanBootAway{to{opacity:0;transform:translateY(-7px)}}.clean-panel{width:min(560px,94vw);z-index:3;border:1px solid rgba(123,151,178,.48);border-radius:22px;padding:27px 29px 20px;background:linear-gradient(155deg,rgba(6,12,19,.88),rgba(2,7,12,.76));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 34px 100px rgba(0,0,0,.72),inset 0 1px rgba(255,255,255,.08)}.clean-panel-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-bottom:18px;border-bottom:1px solid #344454}.clean-panel-head div{display:grid;gap:3px}.clean-panel-head strong{font-size:1.05rem;letter-spacing:.24em}.clean-panel-head small{color:#71869a;font:700 .61rem ui-monospace,monospace;letter-spacing:.08em}.clean-panel-head>span{display:flex;align-items:center;gap:8px;color:#55e69b;font:800 .65rem ui-monospace,monospace}.clean-panel-head i{width:9px;height:9px;border-radius:50%;background:#36d889;box-shadow:0 0 13px #36d889}.clean-title{text-align:center;padding:24px 0 15px}.clean-title>b{color:#ff4b52;font-size:.71rem;letter-spacing:.25em}.clean-title h1{margin:9px 0 7px;font-size:1.55rem;letter-spacing:.035em}.clean-title p{margin:0;color:#8396a8;font-size:.88rem}.clean-form .field{margin:13px 0}.clean-form label{font-size:.75rem;letter-spacing:.08em;color:#c1ccd6}.clean-control{padding:14px 15px;border-radius:11px;background:rgba(2,7,12,.78);border-color:#34485b}.clean-biometric{margin:17px 0;display:grid;grid-template-columns:116px 1fr;align-items:center;gap:20px;padding:14px;border:1px solid #31475a;border-radius:14px;background:linear-gradient(145deg,rgba(8,17,26,.74),rgba(3,9,15,.56))}.clean-fingerprint{width:104px;height:104px;display:grid;place-items:center}.clean-ring{position:relative;width:100%;height:100%;border-radius:50%;border:1px solid #2f5b48;background:radial-gradient(circle,#16352655,transparent 68%);color:#d2dbe2;padding:20px;overflow:hidden}.clean-ring:before{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid transparent;border-top-color:#38df8b;animation:bioSpin 2.8s linear infinite}.clean-ring svg{width:100%;height:100%}.clean-scanline{position:absolute;left:8%;right:8%;top:0;height:2px;background:#44ed99;box-shadow:0 0 10px #44ed99,0 0 20px #44ed99;animation:cleanReadyScan 2.4s ease-in-out infinite}@keyframes cleanReadyScan{50%{top:96%}}.clean-biometric>div:last-child{display:grid;gap:5px}.clean-biometric strong{font-size:.72rem;letter-spacing:.13em}.clean-biometric b{color:#42e492;font-size:.8rem;letter-spacing:.08em}.clean-biometric small{color:#7f92a4}.clean-enter{width:100%;display:flex;align-items:center;justify-content:center;gap:18px;padding:15px;background:linear-gradient(135deg,#dc262e,#f0363d);box-shadow:0 14px 34px rgba(218,35,43,.26)}.clean-panel-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;padding-top:15px;border-top:1px solid #344454;color:#71879a;font:700 .58rem ui-monospace,monospace}.clean-panel-foot span:last-child{color:#5be7a1}.clean-security{position:absolute;left:50%;bottom:2.5%;transform:translateX(-50%);width:min(1100px,92vw);z-index:2;display:grid;grid-template-columns:repeat(4,1fr);padding:13px 17px;border:1px solid rgba(70,91,111,.55);border-radius:14px;background:rgba(3,9,14,.7);backdrop-filter:blur(9px);box-shadow:0 16px 45px #000;color:#a0adb9;font:700 .62rem ui-monospace,monospace}.clean-security span{display:grid;gap:3px;padding:0 15px;border-right:1px solid #2b3947}.clean-security span:last-child{border-right:0}.clean-security b{color:#42df90;font-size:.59rem}.access-cinematic .bio-bg{background-image:url('./bloc-b-clean-hd.jpg')!important;background-position:center 45%!important;filter:brightness(.58) contrast(1.1)!important}.shell-enter{animation:dashboardRevealClean 1.25s cubic-bezier(.16,.84,.2,1) both}@keyframes dashboardRevealClean{0%{opacity:0;filter:blur(14px);transform:scale(1.022)}55%{opacity:.5;filter:blur(6px)}100%{opacity:1;filter:blur(0);transform:none}}.page-fade-curtain{background:radial-gradient(circle at center,#0a1119,#020508 72%);animation:curtainLiftClean 1.35s ease forwards}@keyframes curtainLiftClean{0%,30%{opacity:1}100%{opacity:0;visibility:hidden}}
@media(max-width:760px){.clean-login{padding:14px}.clean-boot{left:15px;top:15px;font-size:.55rem}.clean-panel{padding:21px 18px 17px}.clean-biometric{grid-template-columns:90px 1fr}.clean-fingerprint{width:82px;height:82px}.clean-security{display:none}.clean-bg{background-position:57% center}.clean-panel-foot span:nth-child(2){display:none}}@media(prefers-reduced-motion:reduce){.clean-bg,.clean-rain,.clean-ground-fog,.clean-boot,.clean-boot span{animation:none!important}.clean-boot{display:none}}
