/* Terrain d'entraînement : bureau simulé (informatique.html) */
.dp{margin-top:18px;background:var(--ink);border-radius:17px;overflow:hidden;color:#fff;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.dp-bar{min-height:46px;padding:7px 14px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;background:#303746}
.dp-bar>span{font:11px 'DM Mono';color:#b8c0ce}
.dp-bar strong{flex:1 1 220px;font-size:12px;font-weight:600;color:var(--mint);min-height:1.4em}
.dp-bar strong.flash{animation:dpFlash .35s ease}
@keyframes dpFlash{from{opacity:.35;transform:translateY(2px)}to{opacity:1;transform:none}}
.dp-bar label{display:flex;align-items:center;gap:6px;font-size:12px;color:#d9deea;cursor:pointer}
.dp-bar button{padding:6px 11px;border:1px solid #ffffff38;border-radius:7px;background:none;color:#fff;font-size:12px;cursor:pointer}
.dp-bar button:hover{background:#ffffff14}
.dp-screen{position:relative;height:420px;overflow:hidden;background:radial-gradient(circle at 70% 30%,#26345b,#151925 55%);touch-action:none}
.dp-screen:focus,.dp-desktop:focus{outline:none}
.dp-desktop{position:absolute;inset:0}

/* Icônes */
.dp-icon{position:relative;z-index:0;width:84px;padding:6px 4px 5px;display:flex;flex-direction:column;align-items:center;gap:6px;border:1px solid transparent;border-radius:8px;cursor:default;touch-action:none;outline:none}
.dp-desktop>.dp-icon{position:absolute}
.dp-icon b{max-width:100%;font-size:11px;font-weight:600;line-height:1.3;text-align:center;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;padding:0 3px;border-radius:3px;text-shadow:0 1px 2px #0009}
.dp-icon:hover{background:#ffffff12}
.dp-icon:focus-visible{border-color:#ffffff80}
.dp-icon.selected{background:#5b8cff47;border-color:#8fb0ff99}
.dp-icon.selected b{-webkit-line-clamp:4}
.dp-icon.dragging{opacity:.4}
.dp-icon.drop-hover{background:#8be8bd33;border-color:var(--mint)}
.dp-icon.drop-refused{background:#ff704833;border-color:var(--orange)}
.dp-rename{width:100%;padding:2px 3px;border:1px solid var(--blue);border-radius:3px;font-size:11px;text-align:center;color:var(--ink);background:#fff;user-select:text;-webkit-user-select:text}
.dp-glyph{position:relative;display:grid;place-items:end center;pointer-events:none}
.dp-file .dp-glyph{width:42px;height:52px;background:#f3f5fa;border-radius:3px;clip-path:polygon(0 0,70% 0,100% 22%,100% 100%,0 100%);box-shadow:inset 0 0 0 1px #0002}
.dp-file .dp-glyph:before{content:"";position:absolute;right:0;top:0;width:30%;height:22%;background:#c9cfdc}
.dp-file .dp-glyph i{width:100%;padding:3px 0;font:600 9px/1 'DM Mono';font-style:normal;text-align:center;color:#fff;background:#7d8597}
.dp-glyph[data-cat=audio] i{background:var(--blue)}
.dp-glyph[data-cat=midi] i{background:var(--orange)}
.dp-glyph[data-cat=text] i{background:#3f8f6b}
.dp-glyph[data-cat=pdf] i{background:#c43d3d}
.dp-folder .dp-glyph{width:56px;height:42px;margin-top:10px;background:var(--purple);border-radius:3px 6px 6px 6px}
.dp-folder .dp-glyph:before{content:"";position:absolute;left:0;top:-7px;width:24px;height:8px;background:var(--purple);border-radius:4px 4px 0 0}
.dp-folder.full .dp-glyph:after{content:"";position:absolute;left:8px;right:8px;top:-4px;height:10px;background:#f3f5fa;border-radius:2px;z-index:-1}
.dp-trash .dp-glyph{width:38px;height:44px;margin-top:8px;border-radius:2px 2px 7px 7px;background:repeating-linear-gradient(90deg,#aab3c5 0 6px,#8c95a8 6px 9px)}
.dp-trash .dp-glyph:before{content:"";position:absolute;left:-5px;right:-5px;top:-8px;height:6px;border-radius:3px;background:#c4cbd9}
.dp-trash.full .dp-glyph:after{content:"";position:absolute;left:6px;top:-15px;width:20px;height:12px;background:#f3f5fa;border-radius:2px;transform:rotate(-14deg)}

/* Fenêtres */
.dp-win{position:absolute;display:flex;flex-direction:column;min-width:190px;min-height:130px;max-width:calc(100% - 16px);max-height:calc(100% - 16px);background:#fff;color:var(--ink);border-radius:10px;overflow:hidden;box-shadow:0 18px 45px #000a;opacity:.97}
.dp-win.front{opacity:1;box-shadow:0 22px 55px #000c}
.dp-titlebar{flex:none;height:34px;display:flex;align-items:center;gap:8px;padding:0 6px 0 12px;background:#e7eaf1;cursor:move;touch-action:none}
.dp-win.front .dp-titlebar{background:#dfe6f7}
.dp-wintitle{flex:1;font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dp-close{width:26px;height:26px;border:0;border-radius:6px;background:none;font-size:18px;line-height:1;color:var(--ink);cursor:pointer}
.dp-close:hover{background:var(--orange);color:#fff}
.dp-grip{position:absolute;right:0;bottom:0;width:18px;height:18px;cursor:nwse-resize;touch-action:none;background:linear-gradient(135deg,transparent 50%,#b7bfd0 50% 58%,transparent 58% 70%,#b7bfd0 70% 78%,transparent 78%)}
.dp-desktop.drop-hover{box-shadow:inset 0 0 0 2px #8be8bd66}
.dp-folder-view:focus{outline:none}
.dp-win-body{flex:1;min-height:0;overflow:auto;position:relative}
.dp-folder-view{display:flex;flex-wrap:wrap;align-content:flex-start;gap:4px;padding:10px;touch-action:none}
.dp-folder-view.drop-hover{background:#8be8bd2e;box-shadow:inset 0 0 0 2px var(--mint)}
.dp-folder-view .dp-icon b{text-shadow:none;color:var(--ink)}
.dp-folder-view .dp-icon:hover{background:#eef1f7}
.dp-folder-view .dp-icon.selected{background:#dbe6ff;border-color:#9db7ff}
.dp-folder-view .dp-icon:focus-visible{border-color:var(--blue)}
.dp-empty{width:100%;margin:auto;padding:24px 10px;text-align:center;font-size:12px;color:var(--muted);pointer-events:none}
.dp-wave{height:90px;margin:14px 14px 6px;display:flex;align-items:center;gap:2px;padding:0 6px;background:#101827;border-radius:6px}
.dp-wave i{flex:1;background:var(--mint);border-radius:1px}
.dp-roll{position:relative;height:96px;margin:14px;background:repeating-linear-gradient(0deg,#f1f3f8 0 16%,#e6e9f1 16% 32%);border-radius:6px}
.dp-roll i{position:absolute;height:14%;background:var(--orange);border-radius:2px}
.dp-audio-meta{margin:0 14px;font:11px 'DM Mono';color:var(--muted)}
.dp-opened-with{margin:8px 14px 12px;font-size:12px;color:var(--muted)}
.dp-text{display:block;width:calc(100% - 20px);height:calc(100% - 64px);min-height:70px;margin:10px 10px 0;padding:8px;border:1px solid var(--line);border-radius:6px;font:12px/1.5 'DM Mono';resize:none;user-select:text;-webkit-user-select:text}
.dp-props{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;margin:0;padding:14px;font-size:12px}
.dp-props dt{color:var(--muted)}
.dp-props dd{margin:0;font-weight:600;overflow-wrap:anywhere}

/* Menu contextuel, glisser, rectangle, dialogue */
.dp-menu{position:absolute;z-index:1000;min-width:190px;padding:5px;display:grid;background:#fff;color:var(--ink);border-radius:8px;box-shadow:0 15px 35px #0008}
.dp-menu button{display:flex;justify-content:space-between;gap:18px;padding:7px 10px;border:0;border-radius:5px;background:none;font-size:13px;text-align:left;color:inherit;cursor:pointer}
.dp-menu button:hover:not(:disabled),.dp-menu button:focus-visible{background:#eef1f7;outline:none}
.dp-menu button.danger{color:#c2361b}
.dp-menu button:disabled{opacity:.4;cursor:default}
.dp-menu kbd{font:11px 'DM Mono';color:var(--muted)}
.dp-menu hr{width:100%;margin:4px 0;border:0;border-top:1px solid var(--line)}
.dp-ghost{position:absolute;z-index:1001;pointer-events:none;opacity:.88}
.dp-ghost .dp-icon{background:#5b8cff33;border-color:#8fb0ff}
.dp-ghost .dp-icon b{color:#fff}
.dp-count,.dp-plus{position:absolute;top:-4px;right:-2px;min-width:20px;height:20px;padding:0 5px;display:grid;place-items:center;border-radius:10px;background:var(--orange);color:#fff;font:700 11px 'DM Mono'}
.dp-plus{display:none;right:auto;left:-4px;background:#2c9d63;font-size:15px}
.dp-ghost.copy .dp-plus{display:grid}
.dp-band{position:absolute;z-index:999;pointer-events:none;background:#5b8cff2e;border:1px solid #8fb0ff}
.dp-dialog{position:absolute;inset:0;z-index:1100;display:grid;place-items:center;padding:16px;background:#0008}
.dp-dialog-box{max-width:360px;padding:18px 18px 14px;background:#fff;color:var(--ink);border-radius:12px;box-shadow:0 20px 50px #000a}
.dp-dialog-box b{font-size:15px}
.dp-dialog-box p{margin:8px 0 14px;font-size:13px;color:#434958}
.dp-dialog-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.dp-dialog-actions button{padding:7px 13px;border:1px solid var(--line);border-radius:7px;background:#fff;font-size:13px;cursor:pointer}
.dp-dialog-actions button.primary{background:var(--blue);border-color:var(--blue);color:#fff}

/* Missions */
.dp-missions{padding:16px 18px 18px;background:#1d2332}
.dp-missions header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px;margin-bottom:10px}
.dp-missions header b{font-size:14px}
.dp-missions header span{font:11px 'DM Mono';color:var(--mint)}
.dp-missions ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 18px;counter-reset:mission}
.dp-missions li{display:flex;gap:9px;align-items:flex-start;font-size:13px;line-height:1.4;color:#c9cfdc}
.dp-check{flex:none;width:18px;height:18px;margin-top:1px;border:1.5px solid #ffffff55;border-radius:50%;display:grid;place-items:center;font-size:11px}
.dp-missions li.done{color:#8a93a6}
.dp-missions li.done .dp-check{background:var(--mint);border-color:var(--mint);color:var(--ink)}
.dp-missions li.done .dp-check:after{content:"✓";font-weight:800}
.dp-missions li.just-done .dp-check{animation:dpPop .5s ease}
@keyframes dpPop{40%{transform:scale(1.45)}}
.dp-missions p{margin:10px 0 0;font-size:12px;color:#8a93a6}

@media(max-width:700px){
  .dp-screen{height:400px}
  .dp-missions ol{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){.dp-bar strong.flash,.dp-missions li.just-done .dp-check{animation:none}}

/* Types de curseurs (section Souris) */
.cursor-types{margin-bottom:6px}
.cursor-types i svg{width:24px;height:24px;overflow:visible}
.cursor-types .cur-fill{fill:#111;stroke:#fff;stroke-width:1.3;stroke-linejoin:round}
.cursor-types .cur-hand{fill:#fff;stroke:#111;stroke-width:1.3;stroke-linejoin:round}
.cursor-types .cur-line{fill:none;stroke:#111;stroke-width:1.1;stroke-linecap:round}
.cursor-types .cur-halo{fill:none;stroke:#fff;stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round}
.cursor-types .cur-stroke{fill:none;stroke:#111;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.cursor-types span{display:inline-flex;align-items:center;transition:background .15s}
.cursor-types span:hover{background:#dde3f0}
.cursor-demo-default{cursor:default}
.cursor-demo-pointer{cursor:pointer}
.cursor-demo-text{cursor:text}
.cursor-demo-resize{cursor:ew-resize}
.cursor-hint{margin:0 0 20px;font-size:13px!important}
