/* ==========================================================================
   Évaluation en ligne — plans de travail communs (page élève + dashboard)
   ========================================================================== */
/* ---------- algorigramme (repris des rappels) ---------- */
.fbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.fbar .btn{padding:9px 14px;font-size:.85rem}
.fhelp{font-size:.85rem;color:var(--muted);margin:10px 0}
.fhelp .dot{display:inline-block;width:11px;height:11px;border-radius:50%;background:var(--lv);vertical-align:-1px}
.fc{position:relative;min-height:440px;border-radius:14px;overflow-x:auto;overflow-y:hidden;background:#fbfcfe;background-image:radial-gradient(#d6dde8 1px,transparent 1px);background-size:18px 18px;color:#111827}
.fc.ro{min-height:300px}
.fc.dragging{user-select:none;-webkit-user-select:none;cursor:grabbing}
.fc svg.lk{position:absolute;left:0;top:0;pointer-events:none;overflow:visible}
.fc svg.lk line.tmp{stroke:var(--lv);stroke-width:2.5;stroke-dasharray:6 4}
.fc svg.lk .hl{fill:none;stroke:var(--lv);stroke-width:7;stroke-opacity:.45;stroke-linejoin:round}
.fc svg.lk .hl-dot{fill:var(--lv);stroke:#fff;stroke-width:2}
.fb{position:absolute;display:flex;align-items:center;justify-content:center;cursor:grab;touch-action:none;font-family:Manrope,Arial,sans-serif;font-weight:700;font-size:.9rem;line-height:1.25;text-align:center;user-select:none;-webkit-user-select:none}
.fc.ro .fb{cursor:default}
.fb .tx{min-width:30px;word-break:break-word;position:relative}
.fb .tx.vide{color:#64748b;font-weight:500;font-style:italic}
.fb.t-s{width:110px;height:40px;background:#bbf7d0;border:2px solid #111827;border-radius:20px}
.fb.t-e{width:110px;height:40px;background:#fecaca;border:2px solid #111827;border-radius:20px}
.fb.t-a{width:190px;min-height:46px;padding:9px 12px;background:#bfdbfe;border:2px solid #111827}
.fb.t-c{width:210px;min-height:96px;padding:16px 44px}
.fb .dia{position:absolute;inset:0;width:100%;height:100%}
.fb .dia polygon{fill:#fde68a;stroke:#111827;stroke-width:2;vector-effect:non-scaling-stroke}
.fb.target .dia{filter:drop-shadow(0 0 5px var(--lv))}
.fb.target.t-a,.fb.target.t-e{outline:3px solid var(--lv);outline-offset:2px}
.fb:not(.t-s):not(.t-e):hover .tx{text-decoration:underline dotted}
.port{position:absolute;width:16px;height:16px;border-radius:50%;background:var(--lv);border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.35);cursor:crosshair;touch-action:none;z-index:2}
.port.b{left:calc(50% - 8px);bottom:-8px}
.port.r{right:-8px;top:calc(50% - 8px)}
.port:hover{transform:scale(1.3)}
.fb .del{position:absolute;top:-10px;right:-10px;width:22px;height:22px;border-radius:50%;border:0;background:#ef4444;color:#fff;font-size:.7rem;cursor:pointer;display:none;z-index:3}
.fb.t-c .del{right:30px;top:4px}
.fb:hover .del{display:block}
.lbl{position:absolute;min-width:72px;text-align:center;font:700 .78rem Manrope,Arial,sans-serif;color:#111827;background:rgba(255,255,255,.95);border:1px dashed #94a3b8;border-radius:6px;padding:2px 7px;z-index:4;cursor:pointer;white-space:nowrap}
span.lbl{cursor:default}
.lbl.vide{color:#94a3b8;font-weight:600}
.lbl.oui{background:#dcfce7;border:1.5px solid #16a34a;color:#14532d}
.lbl.non{background:#fee2e2;border:1.5px solid #dc2626;color:#7f1d1d}
.fmenu{position:fixed;z-index:300;background:#fff;color:#111827;border:2px solid #111827;border-radius:12px;padding:6px;box-shadow:0 14px 34px -10px rgba(0,0,0,.55);display:flex;flex-direction:column;gap:3px;min-width:220px;max-width:min(92vw,340px)}
.fmenu-t{font:700 .7rem "JetBrains Mono",monospace;letter-spacing:.06em;color:#64748b;padding:4px 8px 2px;text-transform:uppercase}
.fmenu button{font:700 .9rem Manrope,Arial,sans-serif;text-align:left;border:0;border-radius:8px;padding:8px 10px;background:#f1f5f9;color:#111827;cursor:pointer}
.fmenu button:hover{background:#e0e7ff}
.fmenu button.on{background:#a78bfa;color:#fff}

/* ---------- programmation : blocs + scène ---------- */
.pg{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:14px;align-items:start}
@media (max-width:900px){.pg{grid-template-columns:1fr}}
.pg-ws{height:600px;border-radius:12px;overflow:hidden;border:1px solid #cfd6e3;background:#fff}
.pg-side{display:flex;flex-direction:column;gap:10px}
.stg{border:1px solid #cfd6e3;border-radius:12px;overflow:hidden;background:#fff;color:#111827}
.stg-bar{display:flex;align-items:center;gap:6px;padding:6px 8px;background:#e9eef2;border-bottom:1px solid #cfd6e3}
.stg-bar button{display:grid;place-items:center;width:38px;height:32px;border-radius:8px;border:1px solid transparent;background:transparent;cursor:pointer}
.stg-bar button:hover{background:#dbe3ea}
.stg-go.on{background:#c9ecc5;border-color:#4cbf56}
.stg-t{margin-left:auto;font:700 .72rem "JetBrains Mono",monospace;color:#64748b;letter-spacing:.06em;text-transform:uppercase}
.stg-area{position:relative;aspect-ratio:4/3;background:#fff}
.stg-sp{position:absolute;left:50%;top:54%;transform:translate(-50%,-50%);width:62%}
.stg-sp img{width:100%;display:block}
.stg-bub{position:absolute;left:62%;top:-18%;background:#fff;border:2px solid #c4ccd6;border-radius:14px;padding:6px 10px;font:700 .85rem Manrope,Arial,sans-serif;color:#575e75;max-width:150px;word-break:break-word}
.stg-mon{position:absolute;left:6px;top:6px;display:flex;flex-direction:column;gap:5px;z-index:2}
.mon{background:#e6f0ff;border:1px solid #c4ccd6;border-radius:6px;padding:3px 6px;font:700 .78rem Manrope,Arial,sans-serif;color:#575e75}
.mon-row{display:flex;gap:6px;align-items:center}
.mon-v{background:#ff8c1a;color:#fff;border-radius:5px;padding:0 7px;min-width:34px;text-align:center}
.mon input[type=range]{width:118px;margin:3px 0 0;accent-color:#ff8c1a;display:block}
.stg-keys{display:flex;gap:8px;flex-wrap:wrap}
.key{font:700 .9rem Manrope,Arial,sans-serif;display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--surface-2);color:var(--text);border-radius:10px;padding:8px 12px;cursor:pointer;touch-action:none;user-select:none}
.key kbd{font:700 .8rem "JetBrains Mono",monospace;background:#fff;color:#111;border-radius:6px;padding:3px 8px;box-shadow:0 2px 0 #94a3b8}
.key.down{border-color:var(--lv);background:color-mix(in srgb,var(--lv) 22%,var(--surface-2))}
.key.down kbd{transform:translateY(2px);box-shadow:none}
.stg-help{font-size:.84rem;color:var(--muted);margin:0}
