.m2-body{background:#eef2f8;color:#1b2a44;font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
.m2-wrap{max-width:480px;margin:0 auto;min-height:100dvh;background:#eef2f8;position:relative;overflow-x:hidden}
.m2-head{background:linear-gradient(135deg,#16243d,#26406e);color:#fff;padding:18px 18px 22px;border-radius:0 0 24px 24px;box-shadow:0 10px 30px -12px rgba(20,40,80,.5)}
.m2-head .top{display:flex;align-items:center;justify-content:space-between}
.m2-head .who{display:flex;align-items:center;gap:11px}
.m2-head .who img{width:44px;height:44px;border-radius:50%;border:2px solid rgba(255,255,255,.3)}
.m2-head .who b{font-size:15px;display:block;font-weight:700}.m2-head .who small{font-size:11.5px;opacity:.82}
.m2-bell{position:relative;font-size:19px;text-decoration:none}
.m2-bell .n{position:absolute;top:-7px;right:-8px;background:#f87171;color:#fff;font-size:10px;min-width:17px;height:17px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-weight:700}
.m2-date{font-size:12.5px;opacity:.85;margin-top:10px}
.m2-kpis{display:flex;gap:8px;margin-top:14px}
.m2-kpi{flex:1;background:rgba(255,255,255,.12);border-radius:14px;padding:11px 6px;text-align:center;backdrop-filter:blur(6px)}
.m2-kpi b{font-size:22px;font-weight:800;display:block;line-height:1}
.m2-kpi span{font-size:10.5px;opacity:.88;display:block;margin-top:4px}
.m2-kpi.k2 b{color:#fcd34d}.m2-kpi.k3 b{color:#6ee7b7}.m2-kpi.k4 b{color:#fda4af}
.m2-sec{padding:18px 18px 10px;font-weight:700;font-size:16px}
.m2-list{padding:0 14px 40px}
.m2-card{background:#fff;border-radius:17px;padding:11px;margin-bottom:12px;display:flex;align-items:center;gap:11px;box-shadow:0 8px 20px -12px rgba(20,40,80,.28);cursor:pointer;transition:.15s}
.m2-card:active{transform:scale(.99)}
.m2-card .tm{font-weight:800;font-size:13px;color:#16243d;min-width:44px;text-align:center}
.m2-card>img{width:56px;height:56px;border-radius:13px;object-fit:cover;background:#e7ecf4}
.m2-card .c{flex:1;min-width:0}
.m2-card .c b{font-size:14px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.m2-card .c .ad{color:#6a7990;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.m2-card .c .tags{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}
.m2-tag{font-size:10.5px;padding:3px 9px;border-radius:7px;font-weight:700}
.t-depart{background:#fdece0;color:#e0710f}.t-classique{background:#e8eefb;color:#3b6fd4}
.s-afaire{background:#fff3da;color:#cf8d10}.s-encours{background:#e5eeff;color:#3b82f6}.s-fini{background:#e3f7ec;color:#16a34a}
.m2-card .st{display:flex;flex-direction:column;align-items:flex-end;gap:7px}
.m2-chev{color:#c2cdde;font-size:18px}
.m2-detail{position:absolute;inset:0;background:#eef2f8;min-height:100dvh}
.m2-dhead{background:#16243d;color:#fff;padding:15px 16px;display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:6}
.m2-back{font-size:22px;cursor:pointer;line-height:1}
.m2-dhead b{font-size:16px;font-weight:700}
.m2-signal{margin-left:auto;background:#ef4444;color:#fff;border:none;border-radius:10px;padding:8px 12px;font-size:12px;font-weight:600;cursor:pointer}
.m2-hero{width:100%;height:172px;object-fit:cover;display:block;background:#dfe6f0}
.m2-dbody{padding:16px;padding-bottom:120px}
.m2-name{font-size:19px;font-weight:800}
.m2-addr{color:#6a7990;font-size:13px;margin-top:3px}
.m2-info{background:#fff;border-radius:15px;padding:4px 15px;margin-top:15px;box-shadow:0 8px 20px -14px rgba(20,40,80,.25)}
.m2-info .r{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #eef1f6;font-size:13.5px}
.m2-info .r:last-child{border:none}.m2-info .r .k{color:#6a7990}.m2-info .r .v{font-weight:700}
.m2-bcode{background:#e8eefb;color:#3b6fd4;padding:3px 10px;border-radius:8px;font-weight:800;letter-spacing:1px}
.m2-prog-w{margin-top:20px}
.m2-prog-w .lbl{display:flex;justify-content:space-between;font-size:13.5px;font-weight:700;margin-bottom:8px}
.m2-prog{height:10px;border-radius:6px;background:#dde4ef;overflow:hidden}
.m2-prog i{display:block;height:100%;background:linear-gradient(90deg,#F47C20,#ff9d4d);width:0;transition:.3s;border-radius:6px}
.m2-room{background:#fff;border-radius:14px;margin-top:11px;box-shadow:0 8px 20px -15px rgba(20,40,80,.22);overflow:hidden}
.m2-rh{display:flex;align-items:center;gap:11px;padding:14px 15px;cursor:pointer;font-weight:600;font-size:14px}
.m2-rh .chev{transition:.2s;color:#c2cdde;font-size:15px}
.m2-room.open .chev{transform:rotate(90deg)}
.m2-rh .cnt{margin-left:auto;font-size:12px;color:#6a7990;font-weight:700;background:#f1f4f9;padding:3px 9px;border-radius:20px}
.m2-rh .cnt.full{background:#e3f7ec;color:#16a34a}
.m2-items{display:none;padding:0 15px 8px}
.m2-room.open .m2-items{display:block}
.m2-item{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid #f0f3f8;font-size:13.5px;cursor:pointer}
.m2-item .bx{width:23px;height:23px;border-radius:7px;border:2px solid #d5deeb;display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px;flex-shrink:0}
.m2-item.on .bx{background:#22c55e;border-color:#22c55e}.m2-item.on span{color:#9aa7bd;text-decoration:line-through}
.m2-photos{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.m2-ph{aspect-ratio:4/3;border-radius:14px;border:2px dashed #cdd7e6;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#8b9ab2;font-size:13px;cursor:pointer;overflow:hidden;position:relative}
.m2-ph .e{font-size:25px;margin-bottom:3px}.m2-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.m2-ph .lab{position:absolute;top:8px;left:8px;background:rgba(0,0,0,.55);color:#fff;font-size:11px;padding:3px 9px;border-radius:8px;z-index:2}.m2-ph input{display:none}
.m2-actions{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;display:flex;gap:10px;padding:12px 14px calc(12px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #e7ecf4;z-index:7}
.m2-bsec{flex:1;background:#fff;border:1px solid #dbe3ef;color:#41506b;border-radius:13px;padding:14px;font-weight:600;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px}
.m2-bfin{flex:1.5;background:#22c55e;border:none;color:#fff;border-radius:13px;padding:14px;font-weight:800;font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px}
.m2-bfin:active{transform:scale(.98)}
.m2-donebar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;padding:14px calc(14px) calc(14px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #e7ecf4;z-index:7}
.m2-donebar .t{display:flex;align-items:center;justify-content:center;gap:8px;color:#16a34a;font-weight:800;background:#e3f7ec;border-radius:13px;padding:14px;font-size:14px}
.m2-empty{margin:30px 16px;text-align:center;color:#6a7990}