/* ═══ Démos : primitives partagées ═══ */
.dm{position:relative;padding:22px;display:flex;gap:22px;align-items:center;justify-content:center;flex-wrap:wrap;min-height:460px}
.dm *{box-sizing:border-box}
.dm-col{display:flex;flex-direction:column;align-items:center;gap:10px}
.dm-lbl{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:8px}
.dm-lbl i{width:8px;height:8px;border-radius:50%;background:var(--c,#fff);box-shadow:0 0 10px var(--c,#fff)}
.dm-tools{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;width:100%}
.chip{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 14px;border-radius:999px;font-size:13px;font-weight:700;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);color:#fff;cursor:pointer;transition:.18s;user-select:none;white-space:nowrap}
.chip:hover{background:rgba(255,255,255,.14)}
.chip:active{transform:scale(.96)}
.chip.on{background:rgba(var(--accent-rgb),.25);border-color:rgba(var(--accent-rgb),.7)}

/* appareils */
.dev{position:relative;background:#0a0a0d;border:1px solid rgba(255,255,255,.14);box-shadow:0 30px 70px rgba(0,0,0,.6),inset 0 0 0 6px #121216;overflow:hidden;flex:none}
.dev .scr{position:absolute;overflow:hidden;background:#07070a;display:flex;flex-direction:column}
.dev.phone{width:252px;height:520px;border-radius:44px}
.dev.phone .scr{inset:10px;border-radius:35px}
.dev.phone .island{position:absolute;top:18px;left:50%;transform:translateX(-50%);width:84px;height:24px;border-radius:14px;background:#000;z-index:30;transition:width .45s var(--ease),height .45s var(--ease),border-radius .45s}
.dev.tablet{width:400px;height:320px;border-radius:26px}
.dev.tablet .scr{inset:12px;border-radius:14px}
.dev.laptop{width:440px;height:300px;border-radius:14px 14px 4px 4px;box-shadow:0 30px 70px rgba(0,0,0,.6),inset 0 0 0 8px #121216}
.dev.laptop .scr{inset:10px 10px 10px 10px;border-radius:6px}
.laptop-base{width:500px;max-width:100%;height:14px;margin-top:-1px;border-radius:0 0 14px 14px;background:linear-gradient(#2a2a30,#141418);box-shadow:0 20px 40px rgba(0,0,0,.5)}
.dev.monitor{width:500px;height:300px;border-radius:12px}
.dev.monitor .scr{inset:8px;border-radius:4px}
.monitor-foot{width:90px;height:30px;margin:0 auto;background:linear-gradient(#1c1c22,#101014);clip-path:polygon(30% 0,70% 0,85% 100%,15% 100%)}
.statusbar{display:flex;justify-content:space-between;align-items:center;padding:14px 22px 4px;font-size:11px;font-weight:700;color:#fff;flex:none}

/* notif glass iOS */
.notif{position:absolute;left:8px;right:8px;top:8px;z-index:40;border-radius:20px;padding:10px 12px;
  background:rgba(40,42,52,.72);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  box-shadow:0 14px 40px rgba(0,0,0,.6);transform:translateY(-130%);opacity:0;transition:transform .5s var(--ease),opacity .3s}
.notif.show{transform:none;opacity:1}
.notif.shake{animation:shake .45s}
@keyframes shake{20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
.notif .nh{display:flex;align-items:center;gap:8px;font-size:11px;color:rgba(255,255,255,.65)}
.notif .nh img{width:18px;height:18px;border-radius:5px}
.notif .nh b{color:#fff;font-size:11.5px}
.notif .nb{font-size:13.5px;font-weight:600;margin:5px 0 8px;line-height:1.3}
.notif .nb small{display:block;font-size:11px;color:rgba(255,255,255,.55);font-weight:500;margin-top:2px}
.notif .nr{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.notif .nr button{height:30px;border-radius:10px;background:rgba(255,255,255,.12);font-size:12px;font-weight:700;transition:.15s}
.notif .nr button:hover{background:rgba(255,255,255,.24)}

/* ═══ CHAT ═══ */
.ch-app{flex:1;display:flex;flex-direction:column;min-height:0;background:radial-gradient(120% 80% at 80% 0%,rgba(47,208,255,.14),transparent 60%),#07070a}
.ch-top{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid rgba(255,255,255,.08);flex:none}
.ch-top .t{font-weight:800;font-size:13px}
.ch-top .t small{display:block;font-size:10px;color:var(--muted);font-weight:600}
.ch-top .tr{margin-left:auto;font-size:10px;font-weight:700;padding:4px 8px;border-radius:999px;background:rgba(255,255,255,.08);cursor:pointer}
.ch-top .tr.on{background:rgba(47,208,255,.25);color:#bff0ff}
.ch-body{display:flex;flex:1;min-height:0}
.ch-presets{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:8px;align-content:start;width:52%;border-right:1px solid rgba(255,255,255,.06);overflow:auto}
.ch-presets button{min-height:38px;border-radius:12px;font-size:11.5px;font-weight:700;padding:4px 6px;line-height:1.15;
  background:color-mix(in srgb,var(--pc) 22%,transparent);border:1px solid color-mix(in srgb,var(--pc) 55%,transparent);transition:.15s}
.ch-presets button:hover{background:color-mix(in srgb,var(--pc) 40%,transparent)}
.ch-presets button:active{transform:scale(.95)}
.ch-feed{flex:1;display:flex;flex-direction:column;min-width:0}
.ch-msgs{flex:1;overflow:auto;padding:8px;display:flex;flex-direction:column;gap:6px;scroll-behavior:smooth}
.ch-msg{max-width:90%;padding:6px 10px;border-radius:14px;font-size:12px;line-height:1.3;background:rgba(255,255,255,.08);align-self:flex-start;animation:pop .35s var(--ease)}
.ch-msg.me{align-self:flex-end;background:rgba(47,208,255,.28)}
.ch-msg small{display:block;font-size:9.5px;color:rgba(255,255,255,.5);margin-top:2px}
.ch-msg .orig{font-size:10px;color:rgba(255,255,255,.5);font-style:italic}
.ch-msg.rep{border:1px solid rgba(0,229,160,.5);background:rgba(0,229,160,.14)}
@keyframes pop{from{opacity:0;transform:translateY(8px) scale(.96)}}
.ch-in{display:flex;gap:6px;padding:8px;border-top:1px solid rgba(255,255,255,.06);flex:none}
.ch-in input{flex:1;min-width:0;height:32px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:#fff;padding:0 12px;font:inherit;font-size:12px;outline:none}
.ch-in input:focus{border-color:rgba(47,208,255,.7)}
.ch-in button{width:32px;height:32px;border-radius:50%;background:#2fd0ff;color:#000;font-weight:900;flex:none}
.ch-arrow{display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--muted);font-size:11px;font-weight:700}
.ch-arrow .wire{width:64px;height:2px;background:linear-gradient(90deg,transparent,rgba(47,208,255,.6),transparent);position:relative;overflow:visible}
.ch-arrow .wire i{position:absolute;top:-3px;width:8px;height:8px;border-radius:50%;background:#2fd0ff;box-shadow:0 0 12px #2fd0ff;opacity:0}
.ch-arrow .wire i.go{animation:wire .6s linear}
.ch-arrow .wire i.back{animation:wireb .6s linear}
@keyframes wire{from{left:0;opacity:1}to{left:calc(100% - 8px);opacity:1}}
@keyframes wireb{from{left:calc(100% - 8px);opacity:1}to{left:0;opacity:1}}

/* ═══ REMOTE ═══ */
.rm-grid{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:center;width:100%;max-width:1100px}
.rm-right{display:flex;flex-direction:column;gap:14px;min-width:0}
.rm-app{flex:1;display:flex;flex-direction:column;background:radial-gradient(120% 70% at 20% 0%,rgba(255,69,69,.18),transparent 60%),#070709;padding:0 10px 12px;min-height:0}
.rm-head{display:flex;align-items:center;justify-content:space-between;padding:6px 4px 8px}
.rm-head b{font-size:14px;font-weight:900;letter-spacing:-.02em}
.rm-head b span{color:#ff4545}
.rm-head .con{font-size:9.5px;font-weight:700;color:var(--ok);display:flex;align-items:center;gap:5px}
.rm-head .con::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ok);box-shadow:0 0 8px var(--ok)}
.rm-tabs{display:flex;gap:4px;background:rgba(255,255,255,.06);border-radius:999px;padding:3px;margin-bottom:10px}
.rm-tabs button{flex:1;height:26px;border-radius:999px;font-size:11px;font-weight:700;color:var(--muted)}
.rm-tabs button.on{background:rgba(255,69,69,.3);color:#fff}
.rm-page{flex:1;display:none;flex-direction:column;gap:10px;min-height:0}
.rm-page.on{display:flex}
.rm-faders{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;flex:1;min-height:0}
.fader{display:flex;flex-direction:column;align-items:center;gap:5px;min-height:0}
.fader .trk{position:relative;flex:1;width:34px;border-radius:12px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);touch-action:none;cursor:ns-resize;overflow:hidden;min-height:120px}
.fader .fill{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(to top,rgba(255,69,69,.25),rgba(255,69,69,.7))}
.fader .cap{position:absolute;left:2px;right:2px;height:14px;border-radius:6px;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.6),0 0 12px rgba(255,69,69,.8);transform:translateY(50%)}
.fader .v{font-family:var(--mono);font-size:10px;color:#fff}
.fader .n{font-size:9px;font-weight:700;color:var(--muted);text-align:center;line-height:1.1;height:20px}
.rm-btns{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.rbtn{height:40px;border-radius:12px;font-size:10.5px;font-weight:800;border:1px solid color-mix(in srgb,var(--bc) 60%,transparent);
  background:color-mix(in srgb,var(--bc) 14%,transparent);transition:.12s;user-select:none;touch-action:none}
.rbtn.on{background:var(--bc);color:#000;box-shadow:0 0 18px var(--bc)}
.rbtn.blink.on{animation:rblink .5s steps(2) infinite}
@keyframes rblink{50%{background:color-mix(in srgb,var(--bc) 20%,transparent);color:#fff}}
.rm-flow{display:flex;align-items:center;gap:10px;font-size:11px;font-weight:700;color:var(--muted);justify-content:center;flex-wrap:wrap}
.rm-flow .node{padding:5px 10px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12)}
.rm-flow .node.hot{border-color:#ff4545;color:#fff;box-shadow:0 0 14px rgba(255,69,69,.5)}
.rm-flow .ln{width:40px;height:2px;background:rgba(255,255,255,.14);position:relative;overflow:hidden}
.rm-flow .ln::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,#ff4545,transparent);transform:translateX(-100%)}
.rm-flow .ln.hot::after{animation:flow .5s linear}
@keyframes flow{to{transform:translateX(100%)}}
.rm-pcs{display:grid;grid-template-columns:1fr 1.3fr;gap:14px;min-width:0}
.pcwin{border-radius:10px;overflow:hidden;background:#101014;border:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column;min-height:250px;font-size:11px}
.pcwin .tb{display:flex;align-items:center;gap:6px;padding:7px 10px;background:#18181e;border-bottom:1px solid rgba(255,255,255,.08);font-weight:700;color:var(--muted);font-size:11px}
.pcwin .tb i{width:9px;height:9px;border-radius:50%;background:#ff5f57}.pcwin .tb i+i{background:#febc2e}.pcwin .tb i+i+i{background:#28c840}
.pcwin .tb span{margin-left:6px}
.midilog{flex:1;overflow:hidden;padding:8px 10px;font-family:var(--mono);font-size:10.5px;line-height:1.55;color:#9aa;display:flex;flex-direction:column;justify-content:flex-end}
.midilog div{white-space:nowrap;animation:pop .25s}
.midilog b{color:#ff8a8a;font-weight:700}
.midilog em{color:#7df;font-style:normal}
.softch{display:flex;gap:6px;padding:10px;flex:1;align-items:stretch}
.softch .c{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}
.softch .c .b{flex:1;width:100%;max-width:26px;border-radius:5px;background:#1d1d24;position:relative;overflow:hidden;cursor:ns-resize;touch-action:none;min-height:90px}
.softch .c .b i{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(to top,#2d6,#df3)}
.softch .c small{font-size:9px;color:var(--muted);white-space:nowrap}
.softch .c b{font-family:var(--mono);font-size:9.5px}
.stagecv{width:100%;aspect-ratio:16/8;border-radius:14px;background:#040406;border:1px solid rgba(255,255,255,.1);display:block}

/* ═══ MANAGER ═══ */
.mg{width:100%;max-width:1080px;display:grid;grid-template-columns:1fr 290px;gap:16px;align-items:start}
.mg-main{border-radius:18px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.1);padding:14px;min-width:0}
.mg-stats{display:flex;border-radius:999px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);padding:8px 4px;margin-bottom:12px}
.mg-stats div{flex:1;text-align:center;border-right:1px solid rgba(255,255,255,.1)}
.mg-stats div:last-child{border:0}
.mg-stats b{display:block;font-size:20px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.mg-stats small{font-size:10px;color:var(--muted)}
.mg-tabs{display:flex;gap:4px;margin-bottom:12px;flex-wrap:wrap}
.mg-tabs button{height:32px;padding:0 14px;border-radius:999px;font-size:12.5px;font-weight:700;color:var(--muted);background:rgba(255,255,255,.04)}
.mg-tabs button.on{color:#fff;background:rgba(61,139,255,.25);box-shadow:inset 0 0 0 1px rgba(61,139,255,.6)}
.mg-week{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.mg-day{min-height:210px;border-radius:12px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07);padding:6px;display:flex;flex-direction:column;gap:5px;min-width:0}
.mg-day h5{font-size:10.5px;color:var(--muted);font-weight:700;text-align:center}
.mg-day h5 b{display:block;font-size:17px;color:#fff}
.mg-ev{border-radius:9px;padding:5px 6px;font-size:10px;line-height:1.25;background:color-mix(in srgb,var(--vc) 22%,transparent);border-left:3px solid var(--vc);animation:pop .4s var(--ease);cursor:pointer;position:relative}
.mg-ev b{display:block;font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mg-ev .x{position:absolute;top:2px;right:4px;opacity:0;font-size:11px}
.mg-ev:hover .x{opacity:.7}
.mg-side{border-radius:18px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.1);padding:14px;display:flex;flex-direction:column;gap:10px}
.mg-side h4{font-size:14px;font-weight:800}
.fld{display:flex;flex-direction:column;gap:4px}
.fld label{font-size:11px;color:var(--muted);font-weight:600}
.fld select,.fld input{height:36px;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:#fff;padding:0 10px;font:inherit;font-size:13px;outline:none;width:100%}
.fld select option{background:#15151a}
.fld2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.mg-btn{height:40px;border-radius:999px;background:#3d8bff;color:#fff;font-weight:800;font-size:13.5px;transition:.2s}
.mg-btn:hover{box-shadow:0 8px 24px rgba(61,139,255,.5)}
.mg-table{width:100%;border-collapse:collapse;font-size:13px}
.mg-table th{text-align:left;font-size:11px;color:var(--muted);font-weight:600;padding:8px 6px;border-bottom:1px solid rgba(255,255,255,.1)}
.mg-table td{padding:10px 6px;border-bottom:1px solid rgba(255,255,255,.06);font-variant-numeric:tabular-nums}
.mg-table tr:last-child td{border:0;font-weight:800}
.mg-todo{display:flex;flex-direction:column;gap:6px}
.mg-todo label{display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.04);font-size:13.5px;cursor:pointer;transition:.2s}
.mg-todo input{accent-color:#3d8bff;width:18px;height:18px}
.mg-todo label.done span{text-decoration:line-through;color:var(--muted)}
.dot-c{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:1px}

/* ═══ INVENTAIRE ═══ */
.iv{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:center;width:100%;max-width:1080px}
.iv-app{flex:1;display:flex;flex-direction:column;background:#070709;min-height:0;position:relative}
.iv-cam{position:relative;height:210px;margin:6px 10px;border-radius:18px;overflow:hidden;background:radial-gradient(circle at 50% 60%,#2a2520,#0a0908);flex:none}
.iv-cam .frame{position:absolute;inset:34px 26px;border-radius:12px}
.iv-cam .frame::before,.iv-cam .frame::after{content:"";position:absolute;inset:0;border:3px solid #ff9432;border-radius:12px;clip-path:polygon(0 0,22% 0,22% 3px,3px 3px,3px 22%,0 22%,0 78%,3px 78%,3px calc(100% - 3px),22% calc(100% - 3px),22% 100%,78% 100%,78% calc(100% - 3px),calc(100% - 3px) calc(100% - 3px),calc(100% - 3px) 78%,100% 78%,100% 22%,calc(100% - 3px) 22%,calc(100% - 3px) 3px,78% 3px,78% 0,100% 0,100% 100%,0 100%)}
.iv-cam .laser{position:absolute;left:30px;right:30px;height:2px;background:#ff3b3b;box-shadow:0 0 12px #ff3b3b;top:50%;animation:laser 1.6s ease-in-out infinite}
@keyframes laser{0%,100%{transform:translateY(-40px)}50%{transform:translateY(40px)}}
.iv-cam .code{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.6);opacity:0;transition:.4s var(--ease);background:#fff;padding:8px 10px 4px;border-radius:6px}
.iv-cam .code.on{opacity:1;transform:translate(-50%,-50%) scale(1)}
.iv-cam .flash{position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none}
.iv-cam .flash.go{animation:flash .35s}
@keyframes flash{0%{opacity:.8}100%{opacity:0}}
.iv-cam .hintc{position:absolute;bottom:8px;left:0;right:0;text-align:center;font-size:10.5px;color:rgba(255,255,255,.7);font-weight:600}
.iv-sheet{flex:1;margin:0 10px 10px;border-radius:18px;background:rgba(255,148,50,.07);border:1px solid rgba(255,148,50,.25);padding:12px;display:flex;flex-direction:column;gap:8px;overflow:hidden}
.iv-sheet.empty{align-items:center;justify-content:center;text-align:center;color:var(--muted);font-size:12px}
.iv-sheet h4{font-size:15px;font-weight:800;line-height:1.2}
.iv-sheet .ref{font-family:var(--mono);font-size:10px;color:#ffb877}
.iv-kv{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;font-size:11.5px}
.iv-kv span{color:var(--muted)}
.iv-acts{display:flex;gap:5px;flex-wrap:wrap;margin-top:auto}
.iv-acts button{height:28px;padding:0 10px;border-radius:999px;font-size:10.5px;font-weight:700;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14)}
.iv-acts button:hover{background:rgba(255,148,50,.3)}
.iv-right{display:flex;flex-direction:column;gap:14px;min-width:0}
.iv-table{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:16px;border-radius:18px;background:
  linear-gradient(rgba(255,255,255,.02),rgba(255,255,255,.02)),repeating-linear-gradient(90deg,#15110d 0 40px,#18130f 40px 80px);border:1px solid rgba(255,255,255,.08)}
.iv-item{border-radius:14px;background:#1b1b20;border:1px solid rgba(255,255,255,.1);padding:10px;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;transition:.25s var(--ease);position:relative}
.iv-item:hover{transform:translateY(-4px) rotate(-1deg);border-color:#ff9432;box-shadow:0 10px 30px rgba(255,148,50,.25)}
.iv-item svg.obj{width:56px;height:56px}
.iv-item .lab{background:#fff;border-radius:4px;padding:4px 5px 2px}
.iv-item .nm{font-size:11px;font-weight:700;text-align:center;line-height:1.2}
.iv-item.scanned::after{content:"✓";position:absolute;top:6px;right:8px;color:var(--ok);font-weight:900}
.iv-list{border-radius:18px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.1);overflow:hidden}
.iv-list .row{display:grid;grid-template-columns:1.6fr 1fr 1fr auto;gap:10px;padding:10px 14px;font-size:12.5px;border-bottom:1px solid rgba(255,255,255,.06);align-items:center;transition:background .6s}
.iv-list .row:last-child{border:0}
.iv-list .row.h{font-size:10.5px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.iv-list .row.hl{background:rgba(255,148,50,.18)}
.st{display:inline-flex;height:22px;padding:0 9px;border-radius:999px;font-size:10.5px;font-weight:700;align-items:center;white-space:nowrap}
.st.ok{background:rgba(0,229,160,.14);color:var(--ok)}
.st.rep{background:rgba(255,170,0,.16);color:#ffc24d}
.st.out{background:rgba(61,139,255,.18);color:#8db9ff}

/* ═══ IA ═══ */
.ia{display:grid;grid-template-columns:1fr 1fr;gap:18px;width:100%;max-width:1080px;align-items:stretch}
.ia-chat{border-radius:20px;background:radial-gradient(100% 60% at 0% 0%,rgba(255,100,184,.14),transparent 60%),rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;height:480px;min-width:0}
.ia-head{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.08)}
.ia-orb{width:34px;height:34px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#ff64b8 35%,#6a2bff 80%);box-shadow:0 0 20px rgba(255,100,184,.7);animation:orb 3s ease-in-out infinite}
.ia-orb.think{animation:orb .6s ease-in-out infinite}
@keyframes orb{50%{transform:scale(1.1);box-shadow:0 0 34px rgba(255,100,184,.95)}}
.ia-head b{font-weight:800}
.ia-head small{display:block;font-size:11px;color:var(--muted)}
.ia-msgs{flex:1;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:10px}
.ia-m{max-width:88%;padding:10px 13px;border-radius:16px;font-size:13.5px;line-height:1.45;animation:pop .35s var(--ease)}
.ia-m.u{align-self:flex-end;background:rgba(255,100,184,.25);border-bottom-right-radius:5px}
.ia-m.l{align-self:flex-start;background:rgba(255,255,255,.06);border-bottom-left-radius:5px}
.ia-m .act{display:flex;align-items:center;gap:8px;margin-top:8px;padding:7px 10px;border-radius:10px;background:rgba(0,229,160,.1);border:1px solid rgba(0,229,160,.3);font-size:11.5px;font-weight:700;color:var(--ok)}
.ia-m .card{margin-top:8px;border-radius:12px;background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.1);padding:8px 10px;font-size:12px}
.ia-m .card div{display:flex;justify-content:space-between;gap:10px;padding:3px 0}
.ia-m .card div span{color:var(--muted)}
.typing{display:inline-flex;gap:4px}
.typing i{width:6px;height:6px;border-radius:50%;background:#fff;opacity:.4;animation:ty 1s infinite}
.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
@keyframes ty{50%{opacity:1;transform:translateY(-3px)}}
.ia-sugg{display:flex;gap:6px;overflow-x:auto;padding:0 14px 10px;scrollbar-width:none}
.ia-sugg::-webkit-scrollbar{display:none}
.ia-sugg .chip{height:30px;font-size:12px;flex:none}
.ia-in{display:flex;gap:8px;padding:12px 14px;border-top:1px solid rgba(255,255,255,.08)}
.ia-in input{flex:1;min-width:0;height:42px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:#fff;padding:0 16px;font:inherit;font-size:14px;outline:none}
.ia-in input:focus{border-color:rgba(255,100,184,.7)}
.ia-in button{height:42px;padding:0 18px;border-radius:999px;background:#ff64b8;color:#000;font-weight:800}
.ia-side{display:flex;flex-direction:column;gap:12px;min-width:0}
.ia-side .stagecv{aspect-ratio:auto;flex:1;min-height:250px}
.ia-log{border-radius:16px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.1);padding:10px 12px;font-family:var(--mono);font-size:11px;color:var(--muted);height:130px;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;gap:2px}
.ia-log div{animation:pop .3s}
.ia-log b{color:#ff9fd4;font-weight:700}

/* ═══ ACCESS ═══ */
.ac{display:grid;grid-template-columns:300px 1fr;gap:18px;width:100%;max-width:1100px;align-items:stretch}
.ac-side{border-radius:20px;background:radial-gradient(100% 60% at 0 0,rgba(227,207,164,.14),transparent 60%),rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.1);padding:16px;display:flex;flex-direction:column;gap:12px}
.ac-side h4{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}
.ac-code{display:flex;gap:6px}
.ac-code input{flex:1;min-width:0;height:44px;border-radius:12px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.06);color:#fff;font-family:var(--mono);font-size:17px;letter-spacing:.08em;text-align:center;outline:none}
.ac-code input:focus{border-color:#e3cfa4}
.ac-go{height:44px;border-radius:12px;background:#e3cfa4;color:#000;font-weight:800;width:100%}
.ac-go:disabled{opacity:.5}
.ac-book{display:flex;flex-direction:column;gap:4px;overflow:auto}
.ac-book .fold{font-size:11px;font-weight:800;color:#e3cfa4;margin-top:6px}
.ac-book button{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;text-align:left;background:rgba(255,255,255,.03);transition:.15s;width:100%}
.ac-book button:hover{background:rgba(227,207,164,.14)}
.ac-book button .pc{width:28px;height:22px;border-radius:5px;border:2px solid rgba(255,255,255,.4);position:relative;flex:none}
.ac-book button .pc.on{border-color:var(--ok)}
.ac-book button b{display:block;font-size:12.5px}
.ac-book button small{font-family:var(--mono);font-size:10.5px;color:var(--muted)}
.ac-view{border-radius:20px;background:#050507;border:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;overflow:hidden;min-height:460px;min-width:0}
.ac-bar{display:flex;align-items:center;gap:10px;padding:8px 12px;background:rgba(255,255,255,.04);border-bottom:1px solid rgba(255,255,255,.08);font-size:12px;flex-wrap:wrap}
.ac-bar .nm{font-weight:800}
.ac-bar .pill{font-family:var(--mono);font-size:10.5px;padding:3px 8px;border-radius:999px;background:rgba(255,255,255,.06);color:var(--muted)}
.ac-bar .pill.g{color:var(--ok)}
.ac-bar .sp{flex:1}
.ac-bar button{height:28px;padding:0 10px;border-radius:999px;font-size:11px;font-weight:700;background:rgba(255,255,255,.08)}
.ac-bar button.red{background:rgba(255,82,82,.2);color:#ff9d9d}
.ac-screen{flex:1;position:relative;overflow:hidden;cursor:none;user-select:none}
.ac-idle{position:absolute;inset:0;display:grid;place-items:center;text-align:center;color:var(--muted);font-size:14px;cursor:default;padding:20px}
.ac-idle .big{font-size:44px;margin-bottom:10px;opacity:.5}
.ac-prog{width:220px;height:6px;border-radius:3px;background:rgba(255,255,255,.1);overflow:hidden;margin:14px auto 8px}
.ac-prog i{display:block;height:100%;width:0;background:#e3cfa4;transition:width .4s}
.desk{position:absolute;inset:0;background:radial-gradient(120% 100% at 70% 20%,#3a2c63,#12132a 55%,#07080f);opacity:0;transition:opacity .6s}
.desk.on{opacity:1}
.desk .icons{position:absolute;left:14px;top:14px;display:grid;gap:12px}
.desk .di{width:74px;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:10.5px;color:#fff;text-shadow:0 1px 3px #000;padding:6px 2px;border-radius:8px;text-align:center}
.desk .di.sel{background:rgba(120,160,255,.3)}
.desk .di .g{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;font-size:20px;box-shadow:0 4px 10px rgba(0,0,0,.4)}
.desk .task{position:absolute;left:0;right:0;bottom:0;height:34px;background:rgba(10,10,20,.75);backdrop-filter:blur(8px);display:flex;align-items:center;gap:8px;padding:0 10px;font-size:11px;color:#ccd}
.desk .task .clk{margin-left:auto;font-family:var(--mono)}
.dwin{position:absolute;width:62%;height:58%;left:26%;top:12%;border-radius:10px;background:#15161c;border:1px solid rgba(255,255,255,.14);box-shadow:0 20px 50px rgba(0,0,0,.6);display:flex;flex-direction:column;overflow:hidden;animation:pop .3s var(--ease)}
.dwin .tb{display:flex;align-items:center;gap:6px;padding:6px 10px;background:#1d1e26;font-size:11px;font-weight:700;color:#bbc}
.dwin .tb .x{margin-left:auto;width:18px;height:18px;border-radius:5px;display:grid;place-items:center;background:rgba(255,82,82,.25)}
.dwin .bd{flex:1;padding:10px;font-size:11.5px;color:#ccd;overflow:hidden}
.rcur{position:absolute;width:18px;height:18px;pointer-events:none;z-index:20;transform:translate(-2px,-2px);transition:left .09s linear,top .09s linear}
.lcur{position:absolute;width:10px;height:10px;border-radius:50%;border:2px solid #e3cfa4;pointer-events:none;z-index:21;transform:translate(-5px,-5px)}
.xfer{position:absolute;right:12px;bottom:46px;width:230px;border-radius:12px;background:rgba(20,20,28,.9);border:1px solid rgba(255,255,255,.14);padding:10px;font-size:11px;animation:pop .3s}
.xfer .ac-prog{width:100%;margin:6px 0 0}

/* ═══ FICHIER ═══ */
.fi{display:grid;grid-template-columns:1.1fr 1fr;gap:18px;width:100%;max-width:1000px;align-items:stretch}
.fi-box{border-radius:20px;background:radial-gradient(100% 60% at 0 0,rgba(53,224,161,.12),transparent 60%),rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.1);padding:18px;display:flex;flex-direction:column;gap:14px;min-width:0}
.fi-drop{border:2px dashed rgba(53,224,161,.45);border-radius:18px;min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:20px;transition:.2s;cursor:pointer}
.fi-drop:hover,.fi-drop.over{background:rgba(53,224,161,.08);border-color:#35e0a1}
.fi-drop .ico{font-size:40px;animation:float 3s ease-in-out infinite}
.fi-drop b{font-size:16px}
.fi-drop small{color:var(--muted)}
.fi-file{display:flex;align-items:center;gap:12px;padding:12px;border-radius:14px;background:rgba(255,255,255,.05)}
.fi-file .ext{width:44px;height:52px;border-radius:8px;background:#35e0a1;color:#000;display:grid;place-items:center;font-weight:900;font-size:11px;flex:none;clip-path:polygon(0 0,70% 0,100% 22%,100% 100%,0 100%)}
.fi-file .meta{flex:1;min-width:0}
.fi-file .meta b{display:block;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fi-file .meta small{color:var(--muted);font-size:11.5px}
.fi-bar{height:6px;border-radius:3px;background:rgba(255,255,255,.08);overflow:hidden;margin-top:6px}
.fi-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#35e0a1,#8dffcf)}
.fi-opts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.fi-sw{display:flex;align-items:center;justify-content:space-between;gap:10px;height:36px;padding:0 12px;border-radius:10px;background:rgba(255,255,255,.05);font-size:13px;cursor:pointer}
.sw{width:36px;height:22px;border-radius:999px;background:rgba(255,255,255,.2);position:relative;transition:.2s;flex:none}
.sw::after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:.2s var(--ease)}
.sw.on{background:#35e0a1}.sw.on::after{left:17px}
.fi-link{display:flex;gap:6px}
.fi-link input{flex:1;min-width:0;height:42px;border-radius:12px;border:1px solid rgba(53,224,161,.5);background:rgba(53,224,161,.08);color:#fff;font-family:var(--mono);font-size:13px;padding:0 12px;outline:none}
.fi-link button{height:42px;padding:0 16px;border-radius:12px;background:#35e0a1;color:#000;font-weight:800}
.fi-res{display:flex;gap:16px;align-items:center}
.fi-qr{width:120px;height:120px;background:#fff;border-radius:10px;padding:8px;flex:none}
.fi-qr canvas{width:100%;height:100%;image-rendering:pixelated}
.fi-stats{display:flex;flex-direction:column;gap:6px;font-size:13px}
.fi-stats b{font-size:26px;font-weight:900;font-variant-numeric:tabular-nums;color:#35e0a1}
.fi-empty{flex:1;display:grid;place-items:center;text-align:center;color:var(--muted);font-size:13px}
.fi-dl{display:flex;flex-direction:column;gap:6px}
.fi-dl div{display:flex;justify-content:space-between;font-size:11.5px;padding:6px 10px;border-radius:9px;background:rgba(255,255,255,.04);animation:pop .3s}
.fi-dl div span{color:var(--muted)}

/* ═══ PANEL ═══ */
.pn{width:100%;max-width:1060px;display:grid;grid-template-columns:200px 1fr;gap:14px;min-height:440px}
.pn-side{border-radius:20px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.1);padding:12px;display:flex;flex-direction:column;gap:4px}
.pn-side .me{display:flex;align-items:center;gap:10px;padding:6px 6px 12px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:6px}
.pn-side .av{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#9b5cff,#2fd0ff);display:grid;place-items:center;font-weight:900;font-size:13px}
.pn-side .me b{font-size:13px;display:block}.pn-side .me small{font-size:10.5px;color:var(--muted)}
.pn-side button{display:flex;align-items:center;gap:10px;height:38px;padding:0 12px;border-radius:12px;font-size:13px;font-weight:600;color:var(--muted);text-align:left}
.pn-side button:hover{background:rgba(255,255,255,.05);color:#fff}
.pn-side button.on{background:rgba(155,92,255,.22);color:#fff;box-shadow:inset 0 0 0 1px rgba(155,92,255,.5)}
.pn-main{border-radius:20px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.1);padding:18px;min-width:0;position:relative;overflow:hidden}
.pn-main h3{font-size:20px;font-weight:800;letter-spacing:-.02em;margin-bottom:4px}
.pn-main .sub2{font-size:13px;color:var(--muted);margin-bottom:14px}
.pn-apps{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.pn-app{border-radius:16px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);padding:12px;display:flex;flex-direction:column;gap:8px;transition:.4s var(--ease);position:relative}
.pn-app .ic{width:40px;height:40px;border-radius:11px;overflow:hidden}
.pn-app b{font-size:13px}
.pn-app .s{font-size:10.5px;font-weight:700;color:var(--dim)}
.pn-app.on{border-color:rgba(0,229,160,.45);box-shadow:0 0 24px rgba(0,229,160,.15)}
.pn-app.on .s{color:var(--ok)}
.pn-app.key::after{content:"🔑";position:absolute;right:10px;top:10px;animation:pop .4s}
.pn-login{position:absolute;inset:0;display:grid;place-items:center;background:rgba(8,8,12,.7);backdrop-filter:blur(6px);z-index:5;transition:opacity .5s}
.pn-login.hide{opacity:0;pointer-events:none}
.pn-login .box{width:300px;max-width:90%;border-radius:22px;background:rgba(30,30,40,.8);border:1px solid rgba(255,255,255,.14);padding:22px;display:flex;flex-direction:column;gap:10px;text-align:center}
.pn-login .box b{font-size:26px;font-weight:900;letter-spacing:-.03em}
.pn-login .box b span{color:#9b5cff}
.pn-login input{height:40px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:#fff;padding:0 12px;font:inherit;font-size:13px}
.pn-login button{height:42px;border-radius:999px;background:#9b5cff;color:#fff;font-weight:800}
.pn-lic{display:flex;flex-direction:column;gap:8px}
.pn-lic .l{display:flex;align-items:center;gap:12px;padding:12px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}
.pn-lic .l .ic{width:34px;height:34px;border-radius:10px;overflow:hidden;flex:none}
.pn-lic .l .t{flex:1;min-width:0}
.pn-lic .l .t b{font-size:13.5px;display:block}
.pn-lic .l .t small{font-size:11.5px;color:var(--muted)}
.pn-lic .l .p{font-family:var(--mono);font-size:12px;color:var(--muted);white-space:nowrap}
.pn-total{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding:12px 14px;border-radius:14px;background:rgba(155,92,255,.14);border:1px solid rgba(155,92,255,.4);font-weight:700}
.pn-total b{font-size:20px;font-variant-numeric:tabular-nums}
.pn-bk{display:flex;flex-direction:column;gap:6px}
.pn-bk .b{display:grid;grid-template-columns:auto 1fr auto auto;gap:12px;align-items:center;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.04);font-size:12.5px}
.pn-bk .b .ic{width:28px;height:28px;border-radius:8px;overflow:hidden}
.pn-bk .b small{color:var(--muted);font-family:var(--mono);font-size:11px}
.pn-bk .b button{height:28px;padding:0 10px;border-radius:999px;background:rgba(255,255,255,.08);font-size:11px;font-weight:700}
.pn-bk .b button.done{background:rgba(0,229,160,.2);color:var(--ok)}
.pn-key{position:absolute;width:22px;height:22px;font-size:18px;z-index:6;pointer-events:none;transition:left .7s var(--ease),top .7s var(--ease),opacity .3s}

/* ═══ responsive démos ═══ */
@media (max-width:980px){
  .rm-grid,.iv,.ia,.ac,.fi,.mg{grid-template-columns:1fr}
  .rm-grid>.dm-col,.iv>.dm-col{justify-self:center}
  .ia-chat{height:440px}
  .mg-side{order:-1}
  .ch-arrow{transform:rotate(90deg);margin:-10px 0}
}
@media (max-width:760px){
  .dm{padding:12px;gap:14px}
  .dm-col{width:100%}
  .ch-arrow{display:none}
  .dev.tablet{height:420px!important}
  .dev.laptop{height:400px!important}
  .ch-body{flex-direction:column}
  .ch-presets{width:100%;grid-template-columns:repeat(3,1fr);border-right:0;border-bottom:1px solid rgba(255,255,255,.06);flex:none}
  .ch-presets button{min-height:34px;font-size:10.5px}
  .dev.tablet{width:100%;max-width:430px;height:300px}
  .dev.laptop{width:100%;max-width:470px;height:280px}
  .laptop-base{width:100%}
  .rm-pcs{grid-template-columns:1fr}
  .mg-week{grid-template-columns:repeat(7,minmax(74px,1fr));overflow-x:auto}
  .mg-main{overflow-x:auto}
  .iv-table{grid-template-columns:repeat(2,1fr)}
  .iv-list .row{grid-template-columns:1.4fr 1fr auto;font-size:11.5px}
  .iv-list .row>:nth-child(3){display:none}
  .pn{grid-template-columns:1fr}
  .pn-side{flex-direction:row;overflow-x:auto;padding:8px}
  .pn-side .me{display:none}
  .pn-side button{flex:none}
  .fi-opts{grid-template-columns:1fr}
  .fi-res{flex-direction:column;align-items:flex-start}
  .ac-view{min-height:360px}
}
