/* ===== Prototype mobile : mise en page bureau ===== */
body.proto-page{height:100vh;overflow:hidden;background:var(--cloud)}
.pv{display:grid;grid-template-columns:292px 1fr;height:100vh}
.pv-side{background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;overflow-y:auto;padding:18px 14px 18px 18px;gap:16px;scrollbar-width:thin}
.pv-head{display:flex;align-items:center;justify-content:space-between;padding:2px 2px 4px}
.pv-close{display:none}
.pv-app{display:flex;gap:12px;align-items:center;padding:12px;border-radius:14px;background:var(--cloud)}
.pv-app b{display:block;font:600 14px/1.2 var(--f-head);color:var(--navy)}
.pv-app span{font-size:12px;color:var(--muted)}
.pv-mkt{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 2px}
.pv-list{display:flex;flex-direction:column;gap:14px}
.pv-g{display:flex;flex-direction:column;gap:2px}
.pv-g .caption{padding:0 8px 6px;font-size:10.5px}
.pv-i{display:flex;align-items:center;gap:10px;padding:8px;border-radius:10px;color:var(--text);font-size:13.5px;font-weight:500;transition:background .12s}
.pv-i:hover{background:var(--cloud)}
.pv-i.on{background:var(--blue-t);color:var(--navy);font-weight:600}
.pv-n{font:600 11px/1 var(--f-head);color:var(--faint);width:20px}
.pv-i.on .pv-n{color:var(--blue-d)}
.pv-other{margin-top:auto;display:flex;flex-direction:column;gap:2px;padding-top:14px;border-top:1px solid var(--line)}
.pv-other .caption{padding:0 8px 6px;font-size:10.5px}
.pv-other a{display:flex;align-items:center;gap:10px;padding:8px;border-radius:10px;color:var(--text);font-size:13px;font-weight:500}
.pv-other a:hover{background:var(--cloud);color:var(--navy)}
.pv-stage{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:16px;min-width:0;background:radial-gradient(1200px 600px at 50% 0%,#fff 0%,var(--cloud) 60%)}
.pv-top{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:560px;gap:12px}
.pv-crumb{display:flex;flex-direction:column;gap:2px;min-width:0}
.pv-count{font:600 11px var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.pv-crumb b{font:600 18px/1.2 var(--f-head);color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pv-nav{display:flex;gap:8px}
.pv-desc{max-width:520px;text-align:center;font-size:13px;color:var(--muted);min-height:20px}
.pv-devwrap{position:relative;flex:none}
.device{position:absolute;top:0;left:0;width:414px;height:868px;padding:12px;border-radius:62px;background:#0B1220;box-shadow:0 0 0 2px #2A3447,0 40px 80px rgba(13,42,82,.25),0 10px 24px rgba(13,42,82,.12);transform-origin:0 0}
.pv-scrim,.pv-fab{display:none}

/* ===== Écran ===== */
.screen{position:relative;width:390px;height:844px;border-radius:50px;overflow:hidden;background:#fff;display:flex;flex-direction:column;isolation:isolate}
.screen.is-dark{background:var(--navy)}
.screen.bg-cloud{background:var(--cloud)}
.screen::after{content:"";position:absolute;bottom:8px;left:50%;width:134px;height:5px;margin-left:-67px;border-radius:3px;background:#0B1220;opacity:.85;z-index:50;pointer-events:none}
.screen.is-dark::after{background:#fff;opacity:.7}
.sb{position:relative;height:50px;flex:none;display:flex;align-items:center;justify-content:space-between;padding:6px 30px 0 34px;font:600 15px/1 var(--f-head);color:#0B1220;z-index:20}
.sb.dark{color:#fff}
.sb-isl{position:absolute;left:50%;top:11px;width:122px;height:35px;margin-left:-61px;border-radius:20px;background:#0B1220}
.sb-r{display:flex;align-items:center;gap:6px}
.scr{flex:1;min-height:0;display:flex;flex-direction:column;position:relative}
.screen .toasts{position:absolute;bottom:104px}

/* En-tête d'app */
.ah{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;gap:8px;padding:4px 14px 8px;flex:none}
.ah h1{font:600 17px/1.2 var(--f-head);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ah-sp{width:40px}
.ah.left{grid-template-columns:1fr auto}
.ah.left h1{text-align:left;font-size:22px}
.ab{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:4px 20px 24px;scrollbar-width:none}
.ab::-webkit-scrollbar{display:none}
.ab.nopad{padding:0}
.ab.center-v{display:flex;align-items:center;justify-content:center}
.af{flex:none;padding:12px 20px 30px;background:#fff;border-top:1px solid var(--line-2);display:flex;flex-direction:column;gap:10px}
.af.row{flex-direction:row;align-items:center;justify-content:space-between}
.af .tot small{display:block;font-size:12px;color:var(--muted)}
.af .tot b{font:700 20px/1.2 var(--f-head);color:var(--navy)}
.sec-t{display:flex;align-items:center;justify-content:space-between;margin:22px 0 12px}
.sec-t h2{font-size:16px}
.sec-t a,.sec-t button{font:600 13px var(--f-head);color:var(--blue-d)}
.stack{display:flex;flex-direction:column;gap:10px}
.gap-s{height:8px}.gap{height:16px}.gap-l{height:24px}

/* Barre d'onglets */
.tabbar{flex:none;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:8px 12px 28px;border-top:1px solid var(--line-2);background:#fff}
.tb{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 0 6px;border-radius:14px;color:#8392A7;font:500 11px/1 var(--f-body)}
.tb.on{background:var(--blue-t);color:var(--navy);font-weight:600}

/* Lignes de liste */
.lrow{display:flex;align-items:center;gap:12px;width:100%;padding:12px;border-radius:14px;background:#fff;border:1px solid var(--line);text-align:left;transition:border-color .15s,background .15s}
.lrow:hover{border-color:#CFDAE8}
.lrow-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.lrow-t b{font:600 14px/1.3 var(--f-head);color:var(--navy);overflow-wrap:anywhere}
.lrow-t small{font-size:12.5px;line-height:1.35;color:var(--muted);overflow-wrap:anywhere}
.lrow .chev{color:var(--faint)}
.lgroup{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.lgroup .lrow{border:0;border-radius:0;border-bottom:1px solid var(--line-2)}
.lgroup .lrow:last-child{border-bottom:0}

/* Options sélectionnables */
.opt{display:flex;align-items:center;gap:12px;width:100%;padding:12px;border-radius:14px;background:#fff;border:1.5px solid var(--line);text-align:left;transition:all .15s;position:relative}
.opt:hover{border-color:#C9D6E6}
.opt.on{border-color:var(--blue);background:#F3FAFF;box-shadow:0 0 0 3px rgba(65,168,245,.12)}
.opt .o-t{flex:1;min-width:0}
.opt .o-t b{display:block;font:600 14px/1.3 var(--f-head);color:var(--navy)}
.opt .o-t small{font-size:12px;color:var(--muted)}
.opt .o-p{font:600 13.5px var(--f-head);color:var(--navy);white-space:nowrap}
.radio{width:20px;height:20px;border-radius:50%;border:2px solid #C5D0DE;flex:none;position:relative}
.on>.radio,.opt.on .radio{border-color:var(--blue)}
.opt.on .radio::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--blue)}
.tile-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tile{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:14px;border-radius:16px;background:#fff;border:1.5px solid var(--line);text-align:left;position:relative;min-height:112px;transition:all .15s}
.tile b{font:600 13.5px/1.25 var(--f-head);color:var(--navy)}
.tile small{font-size:11.5px;color:var(--muted);margin-top:-6px}
.tile.on{border-color:var(--blue);background:#F3FAFF}
.tile .tchk{position:absolute;top:10px;right:10px;width:22px;height:22px;border-radius:50%;border:2px solid #C5D0DE;display:grid;place-items:center;color:#fff}
.tile.on .tchk{background:var(--blue);border-color:var(--blue)}

/* Stepper */
.stepper{display:inline-flex;align-items:center;gap:12px}
.stepper button{width:30px;height:30px;border-radius:9px;background:var(--navy-t);color:var(--navy);display:grid;place-items:center}
.stepper button.plus{background:var(--navy);color:#fff}
.stepper b{font:600 15px var(--f-head);color:var(--navy);min-width:18px;text-align:center}

/* Notes, alertes */
.note{display:flex;gap:10px;align-items:center;padding:12px 14px;border-radius:12px;background:var(--cloud);font-size:12.5px;color:var(--text)}
.note .ic{color:var(--blue-d)}
.note.o{background:var(--orange-t)}.note.o .ic{color:var(--orange-d)}
.note.g{background:var(--green-t)}.note.g .ic{color:var(--green)}
.note.r{background:var(--red-t)}.note.r .ic{color:var(--red)}

/* Points de progression */
.dots{display:flex;gap:6px;justify-content:center}
.dots i{width:6px;height:6px;border-radius:3px;background:#D3DCE8;transition:all .2s}
.dots i.done{background:#9FCFF7}
.dots i.on{width:20px;background:var(--blue)}

/* Feuille modale */
.sheet-wrap{position:absolute;inset:0;z-index:60;display:flex;flex-direction:column;justify-content:flex-end}
.sheet-bg{position:absolute;inset:0;background:rgba(11,18,32,.45);opacity:0;transition:opacity .25s}
.sheet{position:relative;background:#fff;border-radius:26px 26px 0 0;padding:10px 20px 34px;transform:translateY(100%);transition:transform .28s cubic-bezier(.2,.8,.2,1);max-height:88%;overflow-y:auto}
.sheet-wrap.in .sheet-bg{opacity:1}
.sheet-wrap.in .sheet{transform:none}
.sheet-grab{width:40px;height:5px;border-radius:3px;background:#D5DDE8;margin:0 auto 14px}
.sheet h3{font-size:18px;margin-bottom:6px}

/* Divers composants app */
.hello small{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--muted)}
.hello small .ic{color:var(--red)}
.hello h2{font-size:24px;margin-top:4px}
.hello h2 em{font-family:var(--f-acc);font-style:italic;font-weight:500;color:var(--blue)}
.promo{position:relative;overflow:hidden;border-radius:18px;background:var(--navy);color:#fff;padding:16px;min-height:150px}
.promo .caption{color:#7CC6FA;font-size:9.5px}
.promo p{font:500 italic 19px/1.25 var(--f-acc);margin:8px 0 12px;max-width:62%}
.promo .mt-truck{position:absolute;right:-6px;bottom:14px}
.promo .btn{height:30px;font-size:12px;padding:0 12px;border-radius:9px}
.svc{display:flex;flex-direction:column;justify-content:flex-end;gap:2px;padding:14px;border-radius:16px;min-height:118px;text-align:left;background:var(--blue-t);position:relative}
.svc.o{background:var(--orange-t)}
.svc .ic{position:absolute;top:14px;left:14px;color:var(--blue-d)}
.svc.o .ic{color:var(--orange-d)}
.svc b{font:600 14px var(--f-head);color:var(--navy)}
.svc small{font-size:11.5px;color:var(--muted)}
.mini-svc{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}
.mini-svc button{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 4px;border-radius:14px;background:var(--cloud);font:500 11px/1.2 var(--f-body);color:var(--navy);text-align:center}
.mini-svc .ic{color:var(--blue-d)}
.recent{display:flex;align-items:center;gap:12px;padding:12px;border-radius:14px;border:1px solid var(--line)}
.recent .lrow-t b{font-size:13px}
.linkb{font:600 13px var(--f-head);color:var(--blue-d);white-space:nowrap}

/* Splash */
.splash{flex:1;display:flex;flex-direction:column;align-items:center;padding:0 28px 34px;position:relative;overflow:hidden;color:#fff}
.splash::before{content:"";position:absolute;left:-30%;right:-30%;bottom:-36%;height:62%;border-radius:50%;background:radial-gradient(closest-side,rgba(65,168,245,.18),rgba(65,168,245,0));pointer-events:none}
.splash .mid{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center}
.splash .wm{font:700 40px/1 var(--f-head);color:#fff}
.splash .wm .my{color:var(--blue);font-weight:400}
.splash p{font:italic 500 15px/1.4 var(--f-acc);color:#D6E2F2}
.splash .btn{width:100%}
.splash small{margin-top:14px;font-size:13px;color:#AFC0D6}
.splash small a{color:#fff;font-weight:600}

/* Carte dans l'app */
.mapbox{position:relative;border-radius:18px;overflow:hidden;background:#EEF2F6}
.map-full{position:absolute;inset:0;z-index:0}
.map-top{position:absolute;top:8px;left:14px;right:14px;display:flex;align-items:center;justify-content:space-between;gap:8px;z-index:2}
.pill{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border-radius:999px;background:#fff;box-shadow:var(--sh-2);font:600 12.5px var(--f-head);color:var(--navy);white-space:nowrap}
.pill .ic{color:var(--blue-d)}
.panel{position:absolute;left:0;right:0;bottom:0;z-index:3;background:#fff;border-radius:26px 26px 0 0;box-shadow:0 -10px 30px rgba(13,42,82,.12);padding:10px 20px 30px;display:flex;flex-direction:column;gap:12px;max-height:72%;overflow-y:auto}
.dcard{display:flex;align-items:center;gap:12px}
.dcard .lrow-t b{font-size:15px}
.dcard .ver{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--muted)}
.dcard .ver .ic{color:var(--yellow);fill:var(--yellow)}
.rbtn{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--blue-t);color:var(--navy);flex:none}
.rbtn.n{background:var(--navy);color:#fff}
.vcard{display:flex;align-items:center;gap:12px;padding:12px;border-radius:14px;background:var(--cloud)}
.plate{font:700 11px/1 var(--f-head);padding:6px 8px;border:1.5px solid var(--navy);border-radius:6px;color:var(--navy);background:#fff;white-space:nowrap;letter-spacing:.04em}
.eta b{font:600 18px var(--f-head);color:var(--navy)}
.eta small{display:block;font-size:12.5px;color:var(--muted)}

/* Frise */
.tl{display:flex;flex-direction:column}
.tl-i{display:grid;grid-template-columns:24px 1fr auto;gap:12px;position:relative;padding-bottom:16px}
.tl-i:last-child{padding-bottom:0}
.tl-i::before{content:"";position:absolute;left:11px;top:22px;bottom:-2px;width:2px;background:var(--line)}
.tl-i:last-child::before{display:none}
.tl-i.done::before{background:var(--blue)}
.tl-d{width:24px;height:24px;border-radius:50%;border:2px solid #CFD8E5;background:#fff;display:grid;place-items:center;color:#fff;position:relative;z-index:1}
.tl-i.done .tl-d{background:var(--blue);border-color:var(--blue)}
.tl-i.now .tl-d{border-color:var(--blue);box-shadow:0 0 0 5px rgba(65,168,245,.18)}
.tl-i.now .tl-d::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--blue)}
.tl-i b{font:600 13.5px var(--f-head);color:var(--navy);display:block}
.tl-i small{font-size:12px;color:var(--muted)}
.tl-i time{font-size:12px;color:var(--muted)}

/* Récapitulatif */
.rcard{padding:14px;border-radius:16px;border:1px solid var(--line);background:#fff}
.rcard h3{display:flex;align-items:center;justify-content:space-between;font-size:14px;margin-bottom:10px}
.rcard h3 button{color:var(--blue-d)}
.kv{display:flex;justify-content:space-between;gap:12px;font-size:13px;padding:5px 0}
.kv span{color:var(--muted)}
.kv b{font-weight:600;color:var(--navy);text-align:right}
.kv.tot{border-top:1px dashed var(--line);margin-top:6px;padding-top:10px}
.kv.tot b{font:700 16px var(--f-head)}
.addr{display:grid;grid-template-columns:20px 1fr;gap:10px;font-size:13px}
.addr .dotp{width:12px;height:12px;border-radius:50%;border:3px solid var(--navy);margin:3px 4px}
.addr .dotp.o{border-color:var(--orange)}
.addr .ln{width:2px;height:20px;background:var(--line);margin:0 9px}
.addr b{display:block;font:600 13.5px var(--f-head);color:var(--navy)}
.addr small{color:var(--muted)}
.photos{display:flex;gap:8px}
.photos span{width:64px;height:64px;border-radius:10px;background:var(--cloud) center/cover;display:grid;place-items:center;color:var(--faint);border:1px dashed #C9D4E3}

/* Paiement */
.paycard{position:relative;border-radius:18px;padding:18px;background:linear-gradient(135deg,#0D2A52,#1A4A86);color:#fff;min-height:170px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}
.paycard::after{content:"";position:absolute;right:-60px;top:-60px;width:200px;height:200px;border-radius:50%;background:rgba(65,168,245,.16)}
.paycard .top{display:flex;justify-content:space-between;align-items:center;position:relative;z-index:1}
.paycard .brand{background:#fff;color:var(--navy);border-radius:8px;padding:5px 10px;font:700 12px var(--f-head)}
.paycard .num{font:500 19px/1 var(--f-head);letter-spacing:.12em;position:relative;z-index:1}
.paycard .bot{display:flex;justify-content:space-between;font:500 12px var(--f-body);color:#C6D5EA;position:relative;z-index:1}
.pm-logo{width:40px;height:28px;border-radius:7px;display:grid;place-items:center;font:700 9.5px/1 var(--f-head);color:#fff;flex:none;letter-spacing:.02em}

/* OTP */
.otp{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.otp input{width:100%;height:56px;border-radius:12px;border:1.5px solid var(--line);text-align:center;font:600 22px var(--f-head);color:var(--navy);background:#fff}
.otp input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px rgba(65,168,245,.15)}
.phone-in{display:flex;gap:8px}
.cc{display:inline-flex;align-items:center;gap:6px;height:46px;padding:0 12px;border-radius:12px;border:1.5px solid var(--line);font:600 14px var(--f-head);color:var(--navy);background:#fff;flex:none}

/* Recherche chauffeur */
.radar{position:relative;width:220px;height:220px;margin:0 auto;display:grid;place-items:center}
.radar i{position:absolute;inset:60px;border-radius:50%;background:var(--blue);opacity:0;animation:pulse 2.4s ease-out infinite}
.radar i:nth-child(2){animation-delay:.8s}.radar i:nth-child(3){animation-delay:1.6s}
.radar .core{position:relative;width:96px;height:96px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:var(--sh-3)}

/* Notation */
.rate{display:flex;gap:8px;justify-content:center}
.rate button{color:#D5DBE5}.rate button.on{color:var(--yellow)}
.rate .ic{fill:currentColor}

/* Chat */
.chat{display:flex;flex-direction:column;gap:10px}
.msg{max-width:78%;padding:10px 14px;border-radius:16px;font-size:13.5px;line-height:1.4;animation:fadeUp .25s}
.msg.in{background:var(--cloud);color:var(--text);border-bottom-left-radius:4px;align-self:flex-start}
.msg.out{background:var(--navy);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}
.msg time{display:block;font-size:10.5px;opacity:.6;margin-top:4px}
.chat-in{display:flex;gap:8px;align-items:center}
.chat-in .input{border-radius:999px}
.chat-in .rbtn{background:var(--orange);color:#fff}

/* Profil */
.prof{display:flex;align-items:center;gap:14px;padding:16px;border-radius:18px;background:var(--navy);color:#fff}
.prof b{font:600 17px var(--f-head);display:block}
.prof small{color:#B8C7DB;font-size:12.5px}
.prof .av{box-shadow:0 0 0 3px rgba(255,255,255,.2)}
.stats3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.stats3>div{padding:12px;border-radius:14px;background:var(--cloud);text-align:center}
.stats3 b{display:block;font:700 17px var(--f-head);color:var(--navy)}
.stats3 small{font-size:11px;color:var(--muted)}

/* Offres */
.coupon{display:flex;border-radius:16px;overflow:hidden;border:1px solid var(--line);background:#fff}
.coupon .cl{width:92px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--orange);color:#fff;padding:10px;text-align:center;position:relative}
.coupon .cl.b{background:var(--blue)}.coupon .cl.n{background:var(--navy)}
.coupon .cl b{font:700 22px/1 var(--f-head)}
.coupon .cl small{font-size:10.5px;opacity:.9}
.coupon .cr{flex:1;padding:12px 14px;display:flex;flex-direction:column;gap:4px;border-left:2px dashed var(--line);min-width:0}
.coupon .cr b{font:600 13.5px var(--f-head);color:var(--navy)}
.coupon .cr small{font-size:12px;color:var(--muted)}
.coupon .code{display:flex;align-items:center;justify-content:space-between;margin-top:4px}
.coupon .code span{font:700 12.5px var(--f-head);letter-spacing:.08em;color:var(--navy);background:var(--cloud);padding:5px 8px;border-radius:6px}

/* Commande carte */
.ocard{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:16px;border:1px solid var(--line);background:#fff;text-align:left;width:100%}
.ocard .oh{display:flex;align-items:center;justify-content:space-between}
.ocard .oh b{font:600 13px var(--f-head);color:var(--navy)}
.ocard .of{display:flex;align-items:center;justify-content:space-between;padding-top:10px;border-top:1px solid var(--line-2);font-size:12.5px;color:var(--muted)}
.ocard .of b{font:700 14px var(--f-head);color:var(--navy)}

/* Notifications */
.notif{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--line-2)}
.notif:last-child{border-bottom:0}
.notif b{font:600 13.5px var(--f-head);color:var(--navy);display:block}
.notif p{font-size:12.5px;color:var(--muted);margin-top:2px}
.notif time{font-size:11px;color:var(--faint)}
.notif.unread b::after{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--orange);margin-left:6px;vertical-align:middle}

/* Pas encore maquetté */
.nm{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;padding:20px 8px;max-width:320px}
.nm h2{font-size:20px}
.nm p{font-size:13.5px;line-height:1.55}
.nm-art{position:relative;width:200px;height:110px;display:grid;place-items:center;border-radius:24px;background:var(--cloud);margin-bottom:8px;overflow:hidden}
.nm-road{position:absolute;left:0;right:0;bottom:16px;height:2px;background:repeating-linear-gradient(90deg,#C9D4E3 0 14px,transparent 14px 26px)}

/* Chauffeur */
.online{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:16px;background:#fff;box-shadow:var(--sh-2)}
.online b{font:600 14px var(--f-head);color:var(--navy);display:block}
.online small{font-size:12px;color:var(--muted)}
.online.on{background:var(--navy)}
.online.on b{color:#fff}.online.on small{color:#A9C0DB}
.earn{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.earn>div{padding:12px;border-radius:14px;background:#fff;box-shadow:var(--sh-1)}
.earn b{display:block;font:700 15px var(--f-head);color:var(--navy);white-space:nowrap}
.earn small{font-size:11px;color:var(--muted)}
.ring{position:relative;width:76px;height:76px;flex:none}
.ring svg{transform:rotate(-90deg)}
.ring b{position:absolute;inset:0;display:grid;place-items:center;font:700 20px var(--f-head);color:var(--navy)}
.req-price{font:700 28px/1 var(--f-head);color:var(--navy)}
.sigpad{width:100%;height:150px;border-radius:14px;border:1.5px dashed #C2CEDE;background:#FBFCFE;touch-action:none;display:block;cursor:crosshair}
.upl{display:flex;align-items:center;gap:12px;padding:12px;border-radius:14px;border:1.5px dashed #C9D4E3;background:#fff;width:100%;text-align:left}
.upl.ok{border-style:solid;border-color:#BFE6D3;background:#F4FBF7}
.upl .lrow-t b{font-size:13.5px}
.wk{display:flex;align-items:flex-end;gap:8px;height:120px;padding-top:10px}
.wk div{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}
.wk i{width:100%;max-width:26px;border-radius:6px 6px 2px 2px;background:var(--blue);display:block}
.wk div.hi i{background:var(--navy)}
.wk span{font-size:10.5px;color:var(--muted)}
.bigmoney{font:700 34px/1.1 var(--f-head);color:#fff}
.chk-row{display:flex;align-items:center;gap:12px;padding:12px;border-radius:14px;border:1px solid var(--line);background:#fff;cursor:pointer;width:100%;text-align:left}
.chk-row .cb{width:22px;height:22px;border-radius:7px;border:2px solid #C5D0DE;display:grid;place-items:center;color:#fff;flex:none}
.chk-row.on .cb{background:var(--green);border-color:var(--green)}
.chk-row span{font-size:13.5px;color:var(--navy);font-weight:500}

/* ===== Plein écran sur téléphone ===== */
body.full .pv{display:block;height:100dvh}
body.full .pv-side{position:fixed;inset:0 auto 0 0;width:min(320px,86vw);z-index:200;transform:translateX(-105%);transition:transform .25s;box-shadow:var(--sh-3)}
body.full.side-open .pv-side{transform:none}
body.full .pv-close{display:inline-grid}
body.full .pv-scrim{display:block;position:fixed;inset:0;background:rgba(11,18,32,.45);z-index:150;opacity:0;pointer-events:none;transition:opacity .25s}
body.full.side-open .pv-scrim{opacity:1;pointer-events:auto}
body.full .pv-stage{padding:0;display:block;height:100dvh;background:#fff}
body.full .pv-top,body.full .pv-desc{display:none}
body.full .pv-devwrap{width:100%!important;height:100dvh!important}
body.full .device{position:static;width:100%;height:100dvh;padding:0;border-radius:0;box-shadow:none;background:none;transform:none!important}
body.full .screen{width:100%;height:100dvh;border-radius:0}
body.full .screen::after,body.full .sb{display:none}
body.full .scr{padding-top:env(safe-area-inset-top)}
body.full .tabbar{padding-bottom:max(10px,env(safe-area-inset-bottom))}
body.full .af,body.full .panel{padding-bottom:max(16px,env(safe-area-inset-bottom))}
body.full .pv-fab{display:grid;place-items:center;position:fixed;right:10px;top:calc(env(safe-area-inset-top) + 64px);width:38px;height:38px;border-radius:12px;background:rgba(13,42,82,.82);color:#fff;z-index:120;box-shadow:var(--sh-2)}
body.full .screen .toasts{bottom:96px}

/* ===== Intégration (iframe du site vitrine) ===== */
body.embed{background:transparent;overflow:hidden}
body.embed .pv{display:block;height:auto}
body.embed .pv-side,body.embed .pv-top,body.embed .pv-desc,body.embed .pv-fab,body.embed .pv-scrim{display:none!important}
body.embed .pv-stage{padding:0;display:block;background:none}
body.embed .device{position:static;padding:0;border-radius:0;box-shadow:none;background:none;width:390px;height:844px}
body.embed .screen{border-radius:0}
body.embed .screen::after{display:none}
@media (max-width:900px) and (min-width:641px){.pv{grid-template-columns:250px 1fr}}
/* Ajustements écrans étroits */
.chips>button{flex:none}
.scr .tabs>button{padding:12px 8px;font-size:12.5px}
.scr .tabs>button .n{margin-left:4px;min-width:18px;padding:0 4px}
.ocard .of{gap:10px}
.ocard .of b{white-space:nowrap}
/* Photos réelles */
.splash.photo{background-size:cover;background-position:center}
.splash.photo::before{display:none}
.splash.langs .mid{justify-content:center}
.lang-list{display:flex;flex-direction:column;gap:10px;width:100%;margin-bottom:14px}
.lang-b{display:flex;align-items:center;gap:14px;width:100%;height:60px;padding:0 18px;border-radius:16px;background:rgba(255,255,255,.08);border:1.5px solid rgba(255,255,255,.16);color:#fff;font:600 16px var(--f-body);text-align:start;backdrop-filter:blur(6px)}
.lang-b[lang=ar]{font-family:'IBM Plex Sans Arabic','Noto Sans Arabic',Tahoma,sans-serif;font-size:18px}
.lang-b .lang-k{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:rgba(255,255,255,.12);font:700 14px 'IBM Plex Sans Arabic',Poppins,sans-serif}
.lang-b span:nth-child(2){flex:1}
.lang-b.on{background:#fff;color:var(--navy);border-color:#fff}
.lang-b.on .lang-k{background:var(--blue);color:#fff}
.promo.photo{background-size:cover;background-position:center;min-height:168px}
.svc.ph{padding:0;overflow:hidden;min-height:150px;justify-content:flex-end;background:var(--navy)}
.svc.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.svc.ph::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,42,82,0) 30%,rgba(13,42,82,.92) 100%)}
.svc.ph b,.svc.ph small{position:relative;z-index:1;padding:0 12px;color:#fff}
.svc.ph small{padding-bottom:12px;color:#D6E2F2}
.vcard .vimg{width:74px;height:50px}
.dcard img.av{border-radius:50%}
.promo.photo::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,42,82,.95) 0%,rgba(13,42,82,.75) 48%,rgba(13,42,82,.1) 100%)}
[dir=rtl] .promo.photo::before{background:linear-gradient(270deg,rgba(13,42,82,.95) 0%,rgba(13,42,82,.75) 48%,rgba(13,42,82,.1) 100%)}
.promo.photo>*{position:relative}
/* RTL : éléments à positions physiques */
[dir=rtl] .tl-i::before{left:auto;right:11px}
[dir=rtl] .coupon .cr{border-left:0;border-right:2px dashed var(--line)}
[dir=rtl] .msg.in{border-bottom-left-radius:16px;border-bottom-right-radius:4px}
[dir=rtl] .msg.out{border-bottom-right-radius:16px;border-bottom-left-radius:4px}
[dir=rtl] body.full .pv-side{inset:0 0 0 auto;transform:translateX(105%)}
[dir=rtl] body.full.side-open .pv-side{transform:none}
[dir=rtl] body.full .pv-fab{right:auto;left:10px}
[dir=rtl] .chartbox .tip{direction:rtl}
