Paillasse/portail/resources/views/espace-eleve.blade.php
Adam Belkacemi 30e14b1c54 ajoute le portail Laravel : connexion prof/élève, session unique, gestion de classe, salle d'attente
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-08 02:01:58 +02:00

169 lines
46 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Mon espace élève · Syllabus</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link href="https://fonts.googleapis.com/css2?family=Archivo:wght@500;700;800;900&family=IBM+Plex+Mono:wght@400;600&display=swap" rel="stylesheet">
<script src="https://cdn.tailwindcss.com"></script>
<script>tailwind.config={theme:{extend:{fontFamily:{display:['Archivo','system-ui','sans-serif'],mono:['"IBM Plex Mono"','monospace']}}}}</script>
<style>
.etoile { clip-path: polygon(50% 0, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); }
.zigzag { background: linear-gradient(135deg, transparent 50%, #000 50% 62%, transparent 62%) 0 0 / 16px 16px, linear-gradient(45deg, transparent 50%, #000 50% 62%, transparent 62%) 0 0 / 16px 16px; }
@keyframes flotte { 0%,100% { transform: translateY(0) rotate(var(--r, 0deg)); } 50% { transform: translateY(-10px) rotate(var(--r, 0deg)); } }
.flotte { animation: flotte 6s ease-in-out infinite; }
@keyframes clignote { 50% { opacity: 0; } }
.curseur { animation: clignote 1s steps(1) infinite; }
@media (prefers-reduced-motion: reduce) { .flotte, .curseur { animation: none; } }
</style>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@xterm/xterm@5.5.0/css/xterm.css">
<script defer src="https://cdn.jsdelivr.net/npm/@xterm/xterm@5.5.0/lib/xterm.min.js"></script>
<script defer src="https://cdn.jsdelivr.net/npm/@xterm/addon-fit@0.10.0/lib/addon-fit.min.js"></script>
<script defer src="{{ asset('js/paillasse-terminal.js') }}"></script>
<link rel="stylesheet" href="{{ asset('css/syllabus-theme.css') }}">
</head>
<body class="bg-white font-display text-black antialiased">
<header style="position:sticky;top:0;z-index:40;background:rgba(255,255,255,.92);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid #e3e5e8">
<nav aria-label="Navigation principale" style="position:relative;max-width:1200px;margin:0 auto;padding:0 20px;min-height:64px;display:flex;flex-wrap:wrap;align-items:center;gap:12px 40px">
<a href="{{ route('accueil') }}" aria-label="Syllabus, accueil" style="display:flex;align-items:center;gap:0;text-decoration:none"><img src="{{ asset('images/logo-syllabus-icone.png') }}" alt="" style="height:32px;width:auto;display:block"><span style="font-family:Mulish,system-ui,sans-serif;font-weight:800;font-size:19px;color:#111827;letter-spacing:-0.01em;margin-left:-14px;position:relative">Syllabus</span></a>
<ul style="margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:8px 28px;flex:1;line-height:1.5"><li><details class="group"><summary @if(request()->routeIs('fonctionnalites') || request()->routeIs('ressource')) aria-current="page" @endif style="cursor:pointer;list-style:none;display:flex;align-items:center;gap:6px;height:36px;margin:-6px -12px;padding:0 12px;border-radius:999px;line-height:1.5;font-size:15px;font-weight:600;color:#0b1220" class="hover:bg-[#f1f3f4] group-open:bg-[#e8f0fe] group-open:text-[#0b57d0] aria-[current=page]:text-[#0b57d0] [&::-webkit-details-marker]:hidden">Fonctionnalités<svg aria-hidden="true" viewBox="0 0 16 16" width="16" height="16" class="transition-transform duration-200 group-open:rotate-180" style="flex:none;opacity:.7"><path d="M4 6l4 4 4-4" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg></summary>
<div style="position:absolute;left:20px;right:20px;top:100%;margin-top:4px;z-index:50;max-width:1160px;margin-left:auto;margin-right:auto;box-sizing:border-box;max-height:calc(100vh - 90px);overflow:auto;border-radius:20px;background:#fff;border:1px solid #e3e5e8;box-shadow:0 24px 48px -16px rgba(15,23,42,.22)">
<div class="grid grid-cols-2 sm:grid-cols-3 min-[1100px]:grid-cols-5 [&>div:last-child]:col-span-2 min-[1100px]:[&>div:last-child]:col-span-1" style="gap:1px;background:#e3e5e8"><div style="padding:22px 20px 20px;min-width:0;background:#fff"><p style="margin:0;display:flex;align-items:center;gap:10px;font-size:14px;font-weight:800;color:#0b1220"><span aria-hidden="true" style="flex:none;width:10px;height:10px;border-radius:3px;background:#0b57d0"></span>Piloter la classe</p><p style="margin:4px 0 0 20px;min-height:32px;font-size:12px;line-height:16px;font-weight:500;color:#5f6368">En direct et au quotidien</p><ul style="margin:10px 0 0 20px;padding:12px 0 0;border-top:1px solid #f1f3f4;list-style:none;display:grid;gap:2px"><li><a href="{{ route('ressource') }}?outil=cockpit" style="display:block;margin:0 -8px;padding:6px 8px;border-radius:8px;font-size:14px;line-height:1.35;font-weight:600;color:#0b1220;text-decoration:none" class="hover:bg-[#f1f3f4] hover:text-[#0b57d0]">Tableau de bord prof</a></li><li><a href="{{ route('ressource') }}?outil=visio" style="display:block;margin:0 -8px;padding:6px 8px;border-radius:8px;font-size:14px;line-height:1.35;font-weight:600;color:#0b1220;text-decoration:none" class="hover:bg-[#f1f3f4] hover:text-[#0b57d0]">Visio de classe</a></li><li><a href="{{ route('ressource') }}?outil=espace-eleve" style="display:block;margin:0 -8px;padding:6px 8px;border-radius:8px;font-size:14px;line-height:1.35;font-weight:600;color:#0b1220;text-decoration:none" class="hover:bg-[#f1f3f4] hover:text-[#0b57d0]">Espace élève</a></li><li><a href="{{ route('ressource') }}?outil=fiche-eleve" style="display:block;margin:0 -8px;padding:6px 8px;border-radius:8px;font-size:14px;line-height:1.35;font-weight:600;color:#0b1220;text-decoration:none" class="hover:bg-[#f1f3f4] hover:text-[#0b57d0]">Fiche élève</a></li><li><a href="{{ route('ressource') }}?outil=messagerie" style="display:block;margin:0 -8px;padding:6px 8px;border-radius:8px;font-size:14px;line-height:1.35;font-weight:600;color:#0b1220;text-decoration:none" class="hover:bg-[#f1f3f4] hover:text-[#0b57d0]">Messagerie</a></li></ul></div><div style="padding:22px 20px 20px;min-width:0;background:#fff"><p style="margin:0;display:flex;align-items:center;gap:10px;font-size:14px;font-weight:800;color:#0b1220"><span aria-hidden="true" style="flex:none;width:10px;height:10px;border-radius:3px;background:#137333"></span>Apprendre</p><p style="margin:4px 0 0 20px;min-height:32px;font-size:12px;line-height:16px;font-weight:500;color:#5f6368">Cours, TP et code</p><ul style="margin:10px 0 0 20px;padding:12px 0 0;border-top:1px solid #f1f3f4;list-style:none;display:grid;gap:2px"><li><a href="{{ route('ressource') }}?outil=cours" style="display:block;margin:0 -8px;padding:6px 8px;border-radius:8px;font-size:14px;line-height:1.35;font-weight:600;color:#0b1220;text-decoration:none" class="hover:bg-[#f1f3f4] hover:text-[#0b57d0]">Cours gratuits</a></li><li><a href="{{ route('ressource') }}?outil=labs" style="display:block;margin:0 -8px;padding:6px 8px;border-radius:8px;font-size:14px;line-height:1.35;font-weight:600;color:#0b1220;text-decoration:none" class="hover:bg-[#f1f3f4] hover:text-[#0b57d0]">TP sur machine Linux</a></li><li><a href="{{ route('ressource') }}?outil=lab-web" style="display:block;margin:0 -8px;padding:6px 8px;border-radius:8px;font-size:14px;line-height:1.35;font-weight:600;color:#0b1220;text-decoration:none" class="hover:bg-[#f1f3f4] hover:text-[#0b57d0]">Lab web</a></li><li><a href="{{ route('ressource') }}?outil=ide" style="display:block;margin:0 -8px;padding:6px 8px;border-radius:8px;font-size:14px;line-height:1.35;font-weight:600;color:#0b1220;text-decoration:none" class="hover:bg-[#f1f3f4] hover:text-[#0b57d0]">Éditeur de code en ligne</a></li><li><a href="{{ route('ressource') }}?outil=maison" style="display:block;margin:0 -8px;padding:6px 8px;border-radius:8px;font-size:14px;line-height:1.35;font-weight:600;color:#0b1220;text-decoration:none" class="hover:bg-[#f1f3f4] hover:text-[#0b57d0]">Ressources à la maison</a></li></ul></div><div style="padding:22px 20px 20px;min-width:0;background:#fff"><p style="margin:0;display:flex;align-items:center;gap:10px;font-size:14px;font-weight:800;color:#0b1220"><span aria-hidden="true" style="flex:none;width:10px;height:10px;border-radius:3px;background:#b06000"></span>Préparer</p><p style="margin:4px 0 0 20px;min-height:32px;font-size:12px;line-height:16px;font-weight:500;color:#5f6368">Prêt à projeter ou imprimer</p><ul style="margin:10px 0 0 20px;padding:12px 0 0;border-top:1px solid #f1f3f4;list-style:none;display:grid;gap:2px"><li><a href="{{ route('ressource') }}?outil=bibliotheque" style="display:block;margin:0 -8px;padding:6px 8px;border-radius:8px;font-size:14px;line-height:1.35;font-weight:600;color:#0b1220;text-decoration:none" class="hover:bg-[#f1f3f4] hover:text-[#0b57d0]">Bibliothèque du prof</a></li><li><a href="{{ route('ressource') }}?outil=banque" style="display:block;margin:0 -8px;padding:6px 8px;border-radius:8px;font-size:14px;line-height:1.35;font-weight:600;color:#0b1220;text-decoration:none" class="hover:bg-[#f1f3f4] hover:text-[#0b57d0]">Banque de sujets</a></li><li><a href="{{ route('ressource') }}?outil=generateur" style="display:block;margin:0 -8px;padding:6px 8px;border-radius:8px;font-size:14px;line-height:1.35;font-weight:600;color:#0b1220;text-decoration:none" class="hover:bg-[#f1f3f4] hover:text-[#0b57d0]">Générateur de TD</a></li><li><a href="{{ route('ressource') }}?outil=td-imprimable" style="display:block;margin:0 -8px;padding:6px 8px;border-radius:8px;font-size:14px;line-height:1.35;font-weight:600;color:#0b1220;text-decoration:none" class="hover:bg-[#f1f3f4] hover:text-[#0b57d0]">TD à imprimer</a></li></ul></div><div style="padding:22px 20px 20px;min-width:0;background:#fff"><p style="margin:0;display:flex;align-items:center;gap:10px;font-size:14px;font-weight:800;color:#0b1220"><span aria-hidden="true" style="flex:none;width:10px;height:10px;border-radius:3px;background:#c5221f"></span>Évaluer</p><p style="margin:4px 0 0 20px;min-height:32px;font-size:12px;line-height:16px;font-weight:500;color:#5f6368">Quiz, examens, devoirs</p><ul style="margin:10px 0 0 20px;padding:12px 0 0;border-top:1px solid #f1f3f4;list-style:none;display:grid;gap:2px"><li><a href="{{ route('ressource') }}?outil=quiz" style="display:block;margin:0 -8px;padding:6px 8px;border-radius:8px;font-size:14px;line-height:1.35;font-weight:600;color:#0b1220;text-decoration:none" class="hover:bg-[#f1f3f4] hover:text-[#0b57d0]">Quiz flash</a></li><li><a href="{{ route('ressource') }}?outil=sujet" style="display:block;margin:0 -8px;padding:6px 8px;border-radius:8px;font-size:14px;line-height:1.35;font-weight:600;color:#0b1220;text-decoration:none" class="hover:bg-[#f1f3f4] hover:text-[#0b57d0]">Créer un sujet</a></li><li><a href="{{ route('ressource') }}?outil=devoirs" style="display:block;margin:0 -8px;padding:6px 8px;border-radius:8px;font-size:14px;line-height:1.35;font-weight:600;color:#0b1220;text-decoration:none" class="hover:bg-[#f1f3f4] hover:text-[#0b57d0]">Devoirs maison</a></li><li><a href="{{ route('ressource') }}?outil=correction" style="display:block;margin:0 -8px;padding:6px 8px;border-radius:8px;font-size:14px;line-height:1.35;font-weight:600;color:#0b1220;text-decoration:none" class="hover:bg-[#f1f3f4] hover:text-[#0b57d0]">Corriger les copies</a></li><li><a href="{{ route('ressource') }}?outil=export" style="display:block;margin:0 -8px;padding:6px 8px;border-radius:8px;font-size:14px;line-height:1.35;font-weight:600;color:#0b1220;text-decoration:none" class="hover:bg-[#f1f3f4] hover:text-[#0b57d0]">Export Pronote / ENT</a></li></ul></div><div style="padding:22px 20px 20px;min-width:0;background:#fff"><p style="margin:0;display:flex;align-items:center;gap:10px;font-size:14px;font-weight:800;color:#0b1220"><span aria-hidden="true" style="flex:none;width:10px;height:10px;border-radius:3px;background:#8430ce"></span>Établissement</p><p style="margin:4px 0 0 20px;min-height:32px;font-size:12px;line-height:16px;font-weight:500;color:#5f6368">Vie scolaire, direction, DSI</p><ul style="margin:10px 0 0 20px;padding:12px 0 0;border-top:1px solid #f1f3f4;list-style:none;display:grid;gap:2px"><li><a href="{{ route('ressource') }}?outil=vie-scolaire" style="display:block;margin:0 -8px;padding:6px 8px;border-radius:8px;font-size:14px;line-height:1.35;font-weight:600;color:#0b1220;text-decoration:none" class="hover:bg-[#f1f3f4] hover:text-[#0b57d0]">Vie scolaire</a></li><li><a href="{{ route('ressource') }}?outil=cohortes" style="display:block;margin:0 -8px;padding:6px 8px;border-radius:8px;font-size:14px;line-height:1.35;font-weight:600;color:#0b1220;text-decoration:none" class="hover:bg-[#f1f3f4] hover:text-[#0b57d0]">Suivi des cohortes</a></li><li><a href="{{ route('ressource') }}?outil=espace-etablissement" style="display:block;margin:0 -8px;padding:6px 8px;border-radius:8px;font-size:14px;line-height:1.35;font-weight:600;color:#0b1220;text-decoration:none" class="hover:bg-[#f1f3f4] hover:text-[#0b57d0]">Espace établissement</a></li><li><a href="{{ route('ressource') }}?outil=academie" style="display:block;margin:0 -8px;padding:6px 8px;border-radius:8px;font-size:14px;line-height:1.35;font-weight:600;color:#0b1220;text-decoration:none" class="hover:bg-[#f1f3f4] hover:text-[#0b57d0]">Académie</a></li><li><a href="{{ route('ressource') }}?outil=integration" style="display:block;margin:0 -8px;padding:6px 8px;border-radius:8px;font-size:14px;line-height:1.35;font-weight:600;color:#0b1220;text-decoration:none" class="hover:bg-[#f1f3f4] hover:text-[#0b57d0]">Intégration et sécurité</a></li></ul></div></div>
<div style="position:sticky;bottom:0;padding:14px 24px;border-top:1px solid #e3e5e8;background:#f8f9fa;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px"><span style="font-size:14px;font-weight:500;color:#5f6368">24 outils, chacun avec sa présentation et sa démo</span><a href="{{ route('fonctionnalites') }}" style="font-size:15px;font-weight:700;color:#0b57d0;text-decoration:none">Voir toutes les fonctionnalités →</a></div>
</div></details></li><li><a href="{{ route('cours.index') }}" @if(request()->routeIs('cours.index')) aria-current="page" @endif style="display:inline-flex;align-items:center;height:24px;line-height:1.5;font-size:15px;font-weight:600;color:#0b1220;text-decoration:none" class="hover:text-[#0b57d0] aria-[current=page]:text-[#0b57d0]">Cours</a></li><li><a href="{{ route('tarifs') }}" @if(request()->routeIs('tarifs')) aria-current="page" @endif style="display:inline-flex;align-items:center;height:24px;line-height:1.5;font-size:15px;font-weight:600;color:#0b1220;text-decoration:none" class="hover:text-[#0b57d0] aria-[current=page]:text-[#0b57d0]">Tarifs</a></li></ul>
<div style="display:flex;align-items:center;gap:20px">
<a href="{{ route('login') }}" style="font-size:15px;font-weight:600;color:#0b1220;text-decoration:none" class="hover:text-[#0b57d0]">Se connecter</a>
<a href="{{ route('register') }}" style="display:inline-flex;align-items:center;height:40px;padding:0 20px;border-radius:999px;background:#0b57d0;color:#fff;font-size:15px;font-weight:700;text-decoration:none">Créer une classe</a>
</div>
</nav>
</header>
<main>
<div class="border-b border-[#e3e5e8] bg-[#f8f9fa]">
<div class="mx-auto grid max-w-[1600px] lg:grid-cols-[240px_minmax(0,1fr)]">
<aside class="border-b border-[#e3e5e8] bg-white p-5 lg:border-b-0 lg:border-r-2">
<div class="flex items-center gap-3"><span class="grid h-11 w-11 place-items-center border border-[#dadce0] rounded-lg bg-[#fef7e0] font-mono text-sm font-semibold">SN</span><div><p class="font-extrabold leading-tight">Sarah N.</p><p class="text-sm font-semibold">BTS SIO 1 · Groupe A</p></div></div>
<p class="mt-6 font-mono text-[11px] font-semibold uppercase tracking-wider">Mon espace</p>
<ul class="mt-2 grid gap-1"><li><a href="#vue" class="flex items-center gap-3 border border-[#dadce0] rounded-lg bg-[#0b57d0] text-white px-3 py-2 text-sm font-bold"><svg viewBox="0 0 24 24" class="h-4 w-4 shrink-0" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 3h7v7H3zM14 3h7v7h-7zM3 14h7v7H3zM14 14h7v7h-7z"/></svg><span class="flex-1">Aujourd’hui</span></a></li><li><a href="#calendrier" class="flex items-center gap-3 border-2 border-transparent hover:border-black px-3 py-2 text-sm font-bold"><svg viewBox="0 0 24 24" class="h-4 w-4 shrink-0" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3" y="4" width="18" height="18"/><path d="M16 2v4M8 2v4M3 10h18"/></svg><span class="flex-1">Calendrier</span></a></li><li><a href="#devoirs" class="flex items-center gap-3 border-2 border-transparent hover:border-black px-3 py-2 text-sm font-bold"><svg viewBox="0 0 24 24" class="h-4 w-4 shrink-0" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20V2H6.5A2.5 2.5 0 0 0 4 4.5v15z"/><path d="M6.5 17H20v5H6.5A2.5 2.5 0 0 1 4 19.5"/></svg><span class="flex-1">Devoirs</span></a></li><li><a href="#examens" class="flex items-center gap-3 border-2 border-transparent hover:border-black px-3 py-2 text-sm font-bold"><svg viewBox="0 0 24 24" class="h-4 w-4 shrink-0" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></svg><span class="flex-1">Examens à venir</span></a></li><li><a href="#entrainement" class="flex items-center gap-3 border-2 border-transparent hover:border-black px-3 py-2 text-sm font-bold"><svg viewBox="0 0 24 24" class="h-4 w-4 shrink-0" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m16 18 6-6-6-6M8 6l-6 6 6 6"/></svg><span class="flex-1">S’entraîner</span></a></li><li><a href="#progres" class="flex items-center gap-3 border-2 border-transparent hover:border-black px-3 py-2 text-sm font-bold"><svg viewBox="0 0 24 24" class="h-4 w-4 shrink-0" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M6 9H4a2 2 0 0 1 0-4h2M18 9h2a2 2 0 0 0 0-4h-2M4 22h16M10 14.7V17c0 .6-.5 1-1 1.2C7.8 18.8 7 20.2 7 22M14 14.7V17c0 .6.5 1 1 1.2 1.2.6 2 2 2 3.8M18 2H6v7a6 6 0 0 0 12 0V2z"/></svg><span class="flex-1">Ma progression</span></a></li></ul>
<button type="button" id="e-main" class="mt-6 flex h-12 w-full items-center justify-center gap-2 border border-[#dadce0] rounded-lg bg-[#fce8e6] text-sm font-extrabold active:shadow-none"><svg viewBox="0 0 24 24" class="h-4 w-4 shrink-0" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M18 11V6a2 2 0 0 0-4 0v5M14 10V4a2 2 0 0 0-4 0v6M10 10.5V6a2 2 0 0 0-4 0v8"/><path d="M18 8a2 2 0 1 1 4 0v6a8 8 0 0 1-8 8h-2c-2.8 0-4.5-.9-6-2.4l-3.6-3.6a2 2 0 0 1 2.8-2.8L7 15"/></svg><span>Lever la main</span></button>
<p id="e-main-info" class="mt-2 hidden text-center text-xs font-bold" aria-live="polite">Main levée · 2<sup>e</sup> dans la file</p>
</aside>
<div class="min-w-0 p-5 lg:p-8">
<div id="vue" class="flex flex-wrap items-end justify-between gap-4">
<div><p class="font-mono text-xs font-semibold">Mon espace élève</p><div class="min-w-0 flex-1"><p data-public="E" class="mb-2 inline-flex items-center gap-2 rounded-full border border-[#b8c1cf] bg-white px-3 py-1 text-sm font-bold text-[#0b5e3c]">Pour les élèves</p>
<h1 class="mt-1 text-4xl font-extrabold tracking-tight">Bonjour Sarah&nbsp;!</h1></div><p class="mt-1 font-semibold">Mardi 29 septembre · 2 devoirs cette semaine · 1 examen dans 9 jours</p></div>
<a href="{{ route('labs.essai') }}" class="inline-flex h-11 items-center gap-2 border border-[#dadce0] rounded-lg bg-black px-4 text-sm font-extrabold text-white hover:bg-[#13233A]"><svg viewBox="0 0 24 24" class="h-4 w-4 shrink-0" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m6 3 14 9-14 9V3z"/></svg>Reprendre le lab VLAN · étape 6</a>
</div>
<ul class="mt-6 grid grid-cols-2 gap-4 md:grid-cols-4" aria-label="Mes indicateurs">
<li class="flex flex-col border border-[#dadce0] rounded-lg bg-white p-4"><div class="flex items-center justify-between gap-2"><p class="text-sm font-bold">Moyenne QCM</p><span class="h-2.5 w-2.5 bg-[#fef7e0]"></span></div><p class="mt-2 font-mono text-3xl font-semibold leading-none">16,0</p><p class="mt-3 text-xs font-bold">+1,2 sur 4 semaines</p></li><li class="flex flex-col border border-[#dadce0] rounded-lg bg-white p-4"><div class="flex items-center justify-between gap-2"><p class="text-sm font-bold">Labs réussis</p><span class="h-2.5 w-2.5 bg-[#e6f4ea]"></span></div><p class="mt-2 font-mono text-3xl font-semibold leading-none">11/14</p><p class="mt-3 text-xs font-bold">dont 3 sans indice</p></li><li class="flex flex-col border border-[#dadce0] rounded-lg bg-white p-4"><div class="flex items-center justify-between gap-2"><p class="text-sm font-bold">Devoirs à rendre</p><span class="h-2.5 w-2.5 bg-[#eef0fd]"></span></div><p class="mt-2 font-mono text-3xl font-semibold leading-none">2</p><p class="mt-3 text-xs font-bold">le prochain vendredi</p></li><li class="flex flex-col border border-[#dadce0] rounded-lg bg-white p-4"><div class="flex items-center justify-between gap-2"><p class="text-sm font-bold">Série</p><span class="h-2.5 w-2.5 bg-[#fce8e6]"></span></div><p class="mt-2 font-mono text-3xl font-semibold leading-none">6 j</p><p class="mt-3 text-xs font-bold">d’entraînement d’affilée</p></li>
</ul>
<div class="mt-6 grid gap-6 xl:grid-cols-[minmax(0,1.4fr)_minmax(0,1fr)]">
<section id="calendrier" class="border border-[#dadce0] rounded-lg bg-white" aria-labelledby="t-cal">
<div class="flex items-center justify-between gap-3 border-b border-[#e3e5e8] p-4"><h2 id="t-cal" class="flex items-center gap-2 text-lg font-extrabold"><svg viewBox="0 0 24 24" class="h-4 w-4 shrink-0" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3" y="4" width="18" height="18"/><path d="M16 2v4M8 2v4M3 10h18"/></svg><span id="e-mois">Septembre – octobre 2026</span></h2><div class="flex gap-1"><button type="button" id="e-prev" class="grid h-9 w-9 place-items-center border border-[#dadce0] rounded-lg font-extrabold hover:bg-[#f8f9fa]" aria-label="Semaine précédente">←</button><button type="button" id="e-next" class="grid h-9 w-9 place-items-center border border-[#dadce0] rounded-lg font-extrabold hover:bg-[#f8f9fa]" aria-label="Semaine suivante">→</button></div></div>
<div class="grid grid-cols-7 border-b border-[#e3e5e8] bg-[#f8f9fa] font-mono text-[11px] font-semibold uppercase"><p class="px-2 py-2">Lun</p><p class="px-2 py-2">Mar</p><p class="px-2 py-2">Mer</p><p class="px-2 py-2">Jeu</p><p class="px-2 py-2">Ven</p><p class="px-2 py-2">Sam</p><p class="px-2 py-2">Dim</p></div>
<div id="e-grille" class="grid grid-cols-7"></div>
<div class="flex flex-wrap gap-4 border-t border-[#e3e5e8] p-3 text-xs font-bold"><span class="flex items-center gap-2"><span class="h-3 w-3 border border-[#dadce0] rounded-lg" style="background:#ec3013"></span>Examen</span><span class="flex items-center gap-2"><span class="h-3 w-3 border border-[#dadce0] rounded-lg" style="background:#C4B5FD"></span>Devoir</span><span class="flex items-center gap-2"><span class="h-3 w-3 border border-[#dadce0] rounded-lg" style="background:#FFD23F"></span>Quiz</span><span class="flex items-center gap-2"><span class="h-3 w-3 border border-[#dadce0] rounded-lg" style="background:#7CF2C0"></span>Cours / TP</span></div>
</section>
<section class="border border-[#dadce0] rounded-lg bg-white" aria-labelledby="t-jour">
<div class="border-b border-[#e3e5e8] p-4"><h2 id="t-jour" class="text-lg font-extrabold">Au programme</h2><p id="e-jour-titre" class="font-mono text-xs font-semibold">mardi 29/09</p></div>
<ol id="e-jour" class="divide-y divide-[#e3e5e8]"></ol>
</section>
</div>
<div class="mt-6 grid gap-6 xl:grid-cols-2">
<section id="devoirs" class="border border-[#dadce0] rounded-lg bg-white" aria-labelledby="t-dev">
<div class="flex items-center justify-between border-b border-[#e3e5e8] bg-[#eef0fd] p-4"><h2 id="t-dev" class="flex items-center gap-2 text-lg font-extrabold"><svg viewBox="0 0 24 24" class="h-4 w-4 shrink-0" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20V2H6.5A2.5 2.5 0 0 0 4 4.5v15z"/><path d="M6.5 17H20v5H6.5A2.5 2.5 0 0 1 4 19.5"/></svg>Mes devoirs</h2><span class="font-mono text-xs font-semibold">2 à rendre</span></div>
<ul class="divide-y divide-[#e3e5e8]"><li class="grid grid-cols-[minmax(0,1fr)_auto] items-center gap-x-4 gap-y-2 p-4"><div><p class="font-bold">DM 3 · Plan d’adressage</p><p class="text-sm font-semibold">Réseaux · M. Belkacemi · <span class="font-mono">ven. 03/10 · 23 h 59</span></p></div><a href="{{ route('devoirs') }}" class="border border-[#dadce0] rounded-lg px-3 py-1 text-xs font-extrabold bg-white hover:bg-[#0b57d0] hover:text-white">À rendre</a><div class="col-span-2 flex items-center gap-2"><div class="h-2 flex-1 border border-[#dadce0] rounded-lg"><div class="h-full bg-black" style="width:60%"></div></div><span class="font-mono text-xs font-semibold">60 %</span></div></li><li class="grid grid-cols-[minmax(0,1fr)_auto] items-center gap-x-4 gap-y-2 p-4"><div><p class="font-bold">TP maison · Scripts Bash</p><p class="text-sm font-semibold">Linux · Mme Roche · <span class="font-mono">lun. 06/10 · 18 h</span></p></div><a href="{{ route('ide') }}" class="border border-[#dadce0] rounded-lg px-3 py-1 text-xs font-extrabold bg-white hover:bg-[#0b57d0] hover:text-white">À rendre</a><div class="col-span-2 flex items-center gap-2"><div class="h-2 flex-1 border border-[#dadce0] rounded-lg"><div class="h-full bg-black" style="width:20%"></div></div><span class="font-mono text-xs font-semibold">20 %</span></div></li><li class="grid grid-cols-[minmax(0,1fr)_auto] items-center gap-x-4 gap-y-2 p-4"><div><p class="font-bold">QCM · Lecture CM VLAN</p><p class="text-sm font-semibold">Réseaux · <span class="font-mono">hier</span></p></div><a href="{{ route('cours.cm') }}" class="border border-[#dadce0] rounded-lg px-3 py-1 text-xs font-extrabold bg-[#e6f4ea]">Rendu · 17/20</a><div class="col-span-2 flex items-center gap-2"><div class="h-2 flex-1 border border-[#dadce0] rounded-lg"><div class="h-full bg-black" style="width:100%"></div></div><span class="font-mono text-xs font-semibold">100 %</span></div></li></ul>
</section>
<section id="examens" class="border border-[#dadce0] rounded-lg bg-white" aria-labelledby="t-exa">
<div class="flex items-center justify-between border-b border-[#e3e5e8] bg-[#ec3013] p-4 text-white"><h2 id="t-exa" class="flex items-center gap-2 text-lg font-extrabold"><svg viewBox="0 0 24 24" class="h-4 w-4 shrink-0" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></svg>Examens à venir</h2></div>
<ul class="divide-y divide-[#e3e5e8]"><li class="flex items-center gap-4 p-4"><span class="grid h-12 w-14 shrink-0 place-items-center border border-[#dadce0] rounded-lg bg-[#f8f9fa] font-mono text-sm font-semibold">J-9</span><div class="min-w-0 flex-1"><p class="font-bold">E6 blanc SISR</p><p class="text-sm font-semibold">Administration systèmes et réseaux · <span class="font-mono">jeu. 08/10 · 8 h</span></p></div><a href="{{ route('examen') }}" class="shrink-0 border border-[#dadce0] rounded-lg px-3 py-1 text-xs font-extrabold hover:bg-[#0b57d0] hover:text-white">Réviser</a></li><li class="flex items-center gap-4 p-4"><span class="grid h-12 w-14 shrink-0 place-items-center border border-[#dadce0] rounded-lg bg-[#f8f9fa] font-mono text-sm font-semibold">J-14</span><div class="min-w-0 flex-1"><p class="font-bold">Contrôle · Adressage IPv4</p><p class="text-sm font-semibold">Réseaux · 1 h · <span class="font-mono">mar. 13/10 · 10 h</span></p></div><a href="{{ route('examen') }}" class="shrink-0 border border-[#dadce0] rounded-lg px-3 py-1 text-xs font-extrabold hover:bg-[#0b57d0] hover:text-white">Réviser</a></li><li class="flex items-center gap-4 p-4"><span class="grid h-12 w-14 shrink-0 place-items-center border border-[#dadce0] rounded-lg bg-[#f8f9fa] font-mono text-sm font-semibold">—</span><div class="min-w-0 flex-1"><p class="font-bold">QCM flash · Commandes Linux</p><p class="text-sm font-semibold">Début d’heure · 5 min · <span class="font-mono">chaque lundi</span></p></div><a href="{{ route('quiz.eleve') }}" class="shrink-0 border border-[#dadce0] rounded-lg px-3 py-1 text-xs font-extrabold hover:bg-[#0b57d0] hover:text-white">Réviser</a></li></ul>
<p class="border-t border-[#e3e5e8] bg-[#f8f9fa] p-3 text-sm font-semibold">Pendant un examen, reste sur la page : les changements d’onglet et de fenêtre sont signalés au prof.</p>
</section>
</div>
<section id="entrainement" class="mt-6 border border-[#dadce0] rounded-lg bg-white" aria-labelledby="t-ent">
<div class="flex flex-wrap items-center justify-between gap-3 border-b border-[#e3e5e8] p-4"><h2 id="t-ent" class="flex items-center gap-2 text-lg font-extrabold"><svg viewBox="0 0 24 24" class="h-4 w-4 shrink-0" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m16 18 6-6-6-6M8 6l-6 6 6 6"/></svg>S’entraîner</h2>
<div id="e-niv" class="flex text-sm font-bold"><button type="button" data-n="all" class="h-10 border border-[#dadce0] rounded-lg px-3 bg-[#0b57d0] text-white">Tout</button><button type="button" data-n="base" class="h-10 border border-[#dadce0] rounded-lg px-3 -ml-0.5 bg-white">Revoir les bases</button><button type="button" data-n="prog" class="h-10 border border-[#dadce0] rounded-lg px-3 -ml-0.5 bg-white">Dans le programme</button><button type="button" data-n="plus" class="h-10 border border-[#dadce0] rounded-lg px-3 -ml-0.5 bg-white">Pour aller plus loin</button></div></div>
<ul id="e-exos" class="grid gap-px bg-black sm:grid-cols-2 xl:grid-cols-4"></ul>
</section>
<section id="progres" class="mt-6 border border-[#dadce0] rounded-lg bg-white p-5" aria-labelledby="t-prog">
<div class="flex flex-wrap items-baseline justify-between gap-2"><h2 id="t-prog" class="flex items-center gap-2 text-lg font-extrabold"><svg viewBox="0 0 24 24" class="h-4 w-4 shrink-0" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M6 9H4a2 2 0 0 1 0-4h2M18 9h2a2 2 0 0 0 0-4h-2M4 22h16M10 14.7V17c0 .6-.5 1-1 1.2C7.8 18.8 7 20.2 7 22M14 14.7V17c0 .6.5 1 1 1.2 1.2.6 2 2 2 3.8M18 2H6v7a6 6 0 0 0 12 0V2z"/></svg>Ma progression par compétence</h2><p class="font-mono text-xs font-semibold">référentiel BTS SIO</p></div>
<ul class="mt-4 grid gap-3 md:grid-cols-2"><li><div class="flex justify-between text-sm font-bold"><span>Installer et configurer un poste</span><span class="font-mono">85 %</span></div><div class="mt-1 h-3 border border-[#dadce0] rounded-lg"><div class="h-full" style="width:85%;background:#7CF2C0"></div></div></li><li><div class="flex justify-between text-sm font-bold"><span>Adressage IPv4 et sous-réseaux</span><span class="font-mono">72 %</span></div><div class="mt-1 h-3 border border-[#dadce0] rounded-lg"><div class="h-full" style="width:72%;background:#7CF2C0"></div></div></li><li><div class="flex justify-between text-sm font-bold"><span>VLAN et commutation</span><span class="font-mono">64 %</span></div><div class="mt-1 h-3 border border-[#dadce0] rounded-lg"><div class="h-full" style="width:64%;background:#FFD23F"></div></div></li><li><div class="flex justify-between text-sm font-bold"><span>Scripts Bash</span><span class="font-mono">48 %</span></div><div class="mt-1 h-3 border border-[#dadce0] rounded-lg"><div class="h-full" style="width:48%;background:#FF6FB5"></div></div></li><li><div class="flex justify-between text-sm font-bold"><span>Sécurité des accès</span><span class="font-mono">55 %</span></div><div class="mt-1 h-3 border border-[#dadce0] rounded-lg"><div class="h-full" style="width:55%;background:#FFD23F"></div></div></li><li><div class="flex justify-between text-sm font-bold"><span>Services réseau (DHCP, DNS)</span><span class="font-mono">30 %</span></div><div class="mt-1 h-3 border border-[#dadce0] rounded-lg"><div class="h-full" style="width:30%;background:#FF6FB5"></div></div></li></ul>
</section>
</div>
</div>
</div>
<script>
document.addEventListener('DOMContentLoaded', function () {
var C = { exam: '#ec3013', dm: '#C4B5FD', quiz: '#FFD23F', cours: '#7CF2C0' };
var EV = {
'2026-09-28': [['quiz','8:00','Quiz flash · Commandes Linux'],['cours','8:05','CM · VLAN et commutation']],
'2026-09-29': [['cours','10:00','TP · Lab VLAN et routage'],['dm','23:59','QCM · Lecture CM VLAN (rendu)']],
'2026-09-30': [['cours','14:00','TD · Découper un réseau IPv4']],
'2026-10-01': [['cours','9:00','CM · Scripts Bash']],
'2026-10-02': [['cours','13:00','TP · Services DHCP']],
'2026-10-03': [['dm','23:59','DM 3 · Plan d’adressage']],
'2026-10-05': [['quiz','8:00','Quiz flash · Réseaux']],
'2026-10-06': [['dm','18:00','TP maison · Scripts Bash']],
'2026-10-08': [['exam','8:00','E6 blanc SISR · 1 h 30']],
'2026-10-13': [['exam','10:00','Contrôle · Adressage IPv4']]
};
var debut = new Date(2026, 8, 28), sel = '2026-09-29';
var MOIS = ['janvier','février','mars','avril','mai','juin','juillet','août','septembre','octobre','novembre','décembre'];
function k(d) { return d.getFullYear() + '-' + String(d.getMonth() + 1).padStart(2, '0') + '-' + String(d.getDate()).padStart(2, '0'); }
function cal() {
var g = document.getElementById('e-grille'), h = '';
for (var i = 0; i < 14; i++) { var d = new Date(debut); d.setDate(d.getDate() + i); var key = k(d), ev = EV[key] || [], today = key === '2026-09-29';
h += '<button type="button" data-d="' + key + '" class="flex min-h-[92px] flex-col items-start gap-1 border-b-2 border-r border-[#e3e5e8] p-2 text-left [&:nth-child(7n)]:border-r-0 ' + (key === sel ? 'bg-[#f8f9fa] outline outline-4 -outline-offset-4 outline-black' : 'hover:bg-[#f8f9fa]') + (i > 6 ? ' [&]:border-b-0' : '') + '"><span class="font-mono text-sm font-semibold ' + (today ? 'bg-black px-1 text-white' : '') + '">' + d.getDate() + '</span>' + ev.map(function (e) { return '<span class="w-full truncate border border-[#dadce0] rounded-lg px-1 text-[11px] font-bold" style="background:' + C[e[0]] + ';color:' + (e[0] === 'exam' ? '#fff' : '#000') + '">' + e[2] + '</span>'; }).join('') + '</button>'; }
g.innerHTML = h;
var f = new Date(debut); f.setDate(f.getDate() + 13);
document.getElementById('e-mois').textContent = (debut.getMonth() === f.getMonth() ? MOIS[debut.getMonth()] : MOIS[debut.getMonth()] + ' – ' + MOIS[f.getMonth()]) + ' ' + f.getFullYear();
g.querySelectorAll('button').forEach(function (b) { b.addEventListener('click', function () { sel = b.dataset.d; cal(); jour(); }); });
}
function jour() { var ev = EV[sel] || [], p = sel.split('-');
document.getElementById('e-jour-titre').textContent = new Date(+p[0], +p[1] - 1, +p[2]).toLocaleDateString('fr-FR', { weekday: 'long', day: '2-digit', month: '2-digit' });
document.getElementById('e-jour').innerHTML = ev.length ? ev.map(function (e) { return '<li class="flex items-center gap-3 p-4"><span class="w-14 shrink-0 font-mono text-sm font-semibold">' + e[1] + '</span><span class="h-8 w-1.5 shrink-0 border border-[#dadce0] rounded-lg" style="background:' + C[e[0]] + '"></span><span class="font-bold">' + e[2] + '</span></li>'; }).join('') : '<li class="p-6 text-center font-bold">Rien de prévu. Un petit exercice&nbsp;?</li>'; }
document.getElementById('e-prev').addEventListener('click', function () { debut.setDate(debut.getDate() - 7); cal(); });
document.getElementById('e-next').addEventListener('click', function () { debut.setDate(debut.getDate() + 7); cal(); });
cal(); jour();
var X = [
['base','Réseaux','Convertir binaire ↔ décimal','Générateur · 10 questions','5 min','apercu-generateur.html'],
['base','Linux','Les 10 commandes du shell','Quiz d’entraînement','5 min','apercu-quiz-eleve.html'],
['prog','Réseaux','Découper un réseau IPv4','TD à imprimer ou en ligne','30 min','apercu-td-imprimable.html'],
['prog','Linux','Mon premier serveur Apache','Lab web · terminal + navigateur','40 min','apercu-lab-web.html'],
['prog','Programmation','Scripts Bash : boucles','IDE · tests automatiques','20 min','apercu-ide.html'],
['prog','Bases de données','Requêtes SQL SELECT','IDE · SQL','20 min','apercu-ide.html'],
['plus','Programmation','Défis Python','HackerRank · gratuit','libre','https://www.hackerrank.com/domains/python'],
['plus','Data','Introduction à Python pour la data','DataCamp · 1er chapitre gratuit','libre','https://www.datacamp.com/courses/intro-to-python-for-data-science']];
var niv = { base: ['#FFFBEA','Revoir les bases'], prog: ['#7CF2C0','Dans le programme'], plus: ['#C4B5FD','Pour aller plus loin'] };
function exos(f) { document.getElementById('e-exos').innerHTML = X.filter(function (x) { return f === 'all' || x[0] === f; }).map(function (x) { var ext = x[5].indexOf('http') === 0;
return '<li class="flex flex-col bg-white p-4"><span class="self-start border border-[#dadce0] rounded-lg px-1.5 font-mono text-[11px] font-semibold" style="background:' + niv[x[0]][0] + '">' + niv[x[0]][1] + '</span><p class="mt-3 font-mono text-xs font-semibold uppercase">' + x[1] + '</p><p class="mt-1 text-lg font-extrabold leading-tight">' + x[2] + '</p><p class="mt-1 flex-1 text-sm font-semibold">' + x[3] + ' · ' + x[4] + '</p><a href="' + x[5] + '"' + (ext ? ' target="_blank" rel="noopener"' : '') + ' class="mt-4 self-start border border-[#dadce0] rounded-lg px-3 py-1 text-xs font-extrabold hover:bg-[#0b57d0] hover:text-white">' + (ext ? 'Ouvrir ↗' : 'Commencer →') + '</a></li>'; }).join(''); }
document.querySelectorAll('#e-niv button').forEach(function (b) { b.addEventListener('click', function () { document.querySelectorAll('#e-niv button').forEach(function (x, i) { x.className = 'h-10 border border-[#dadce0] rounded-lg px-3 ' + (i ? '-ml-0.5 ' : '') + (x === b ? 'bg-[#0b57d0] text-white' : 'bg-white'); }); exos(b.dataset.n); }); });
exos('all');
var mb = document.getElementById('e-main');
mb.addEventListener('click', function () { var on = mb.getAttribute('aria-pressed') === 'true'; mb.setAttribute('aria-pressed', on ? 'false' : 'true'); mb.querySelector('span').textContent = on ? 'Lever la main' : 'Baisser la main'; mb.style.background = on ? '#FF6FB5' : '#000'; mb.style.color = on ? '#000' : '#fff'; document.getElementById('e-main-info').classList.toggle('hidden', on); });
});
</script>
</main>
<footer style="background:#f8f9fa;border-top:1px solid #e3e5e8;font-family:Mulish,system-ui,sans-serif">
<div class="mx-auto grid max-w-7xl gap-10 px-5 py-14 sm:grid-cols-2 lg:grid-cols-4 lg:px-10">
<div>
<p style="margin:0;font-size:18px;font-weight:800;color:#0b1220">Syllabus</p>
<p style="margin:10px 0 0;font-size:14px;line-height:1.6;font-weight:500;color:#5f6368">Cours, labs, IDE et examens en ligne, du lycée au master.</p>
</div>
<nav aria-label="Produit"><p style="margin:0;font-size:13px;font-weight:800;color:#0b1220">Produit</p><ul style="margin:14px 0 0;padding:0;list-style:none;display:grid;gap:10px"><li><a href="{{ route('fonctionnalites') }}" style="font-size:14px;font-weight:500;color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Fonctionnalités</a></li><li><a href="{{ route('cours.index') }}" style="font-size:14px;font-weight:500;color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Cours gratuits</a></li><li><a href="{{ route('labs.essai') }}" style="font-size:14px;font-weight:500;color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Essayer un lab</a></li><li><a href="{{ route('tarifs') }}" style="font-size:14px;font-weight:500;color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Tarifs</a></li></ul></nav><nav aria-label="Outils"><p style="margin:0;font-size:13px;font-weight:800;color:#0b1220">Outils</p><ul style="margin:14px 0 0;padding:0;list-style:none;display:grid;gap:10px"><li><a href="{{ route('ressource') }}?outil=cockpit" style="font-size:14px;font-weight:500;color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Tableau de bord prof</a></li><li><a href="{{ route('ressource') }}?outil=labs" style="font-size:14px;font-weight:500;color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">TP sur machine Linux</a></li><li><a href="{{ route('ressource') }}?outil=ide" style="font-size:14px;font-weight:500;color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Éditeur de code</a></li><li><a href="{{ route('ressource') }}?outil=quiz" style="font-size:14px;font-weight:500;color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Quiz flash</a></li><li><a href="{{ route('ressource') }}?outil=sujet" style="font-size:14px;font-weight:500;color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Examens</a></li><li><a href="{{ route('ressource') }}?outil=bibliotheque" style="font-size:14px;font-weight:500;color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Bibliothèque du prof</a></li></ul></nav><nav aria-label="Établissements"><p style="margin:0;font-size:13px;font-weight:800;color:#0b1220">Établissements</p><ul style="margin:14px 0 0;padding:0;list-style:none;display:grid;gap:10px"><li><a href="{{ route('etablissements') }}" style="font-size:14px;font-weight:500;color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Équiper une classe</a></li><li><a href="{{ route('ressource') }}?outil=vie-scolaire" style="font-size:14px;font-weight:500;color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Vie scolaire</a></li><li><a href="{{ route('ressource') }}?outil=espace-etablissement" style="font-size:14px;font-weight:500;color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Licences et factures</a></li><li><a href="{{ route('ressource') }}?outil=integration" style="font-size:14px;font-weight:500;color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Intégration et sécurité</a></li></ul></nav><nav aria-label="Syllabus"><p style="margin:0;font-size:13px;font-weight:800;color:#0b1220">Syllabus</p><ul style="margin:14px 0 0;padding:0;list-style:none;display:grid;gap:10px"><li><a href="{{ route('aide') }}" style="font-size:14px;font-weight:500;color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Aide et tutoriels</a></li><li><a href="{{ route('legal') }}" style="font-size:14px;font-weight:500;color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Mentions légales et RGPD</a></li></ul></nav>
<p style="margin:0;align-self:start;font-size:14px;font-weight:600;color:#5f6368"><span style="color:#137333">●</span> Tous les services fonctionnent</p>
</div>
<div style="border-top:1px solid #e3e5e8"><ul aria-label="Engagements" style="max-width:1200px;margin:0 auto;padding:24px 20px;list-style:none;display:flex;flex-wrap:wrap;gap:12px 40px"><li style="font-size:14px;font-weight:700;color:#0b1220">Hébergé en France <span style="font-weight:500;color:#5f6368">· Paris</span></li><li style="font-size:14px;font-weight:700;color:#0b1220">RGPD <span style="font-weight:500;color:#5f6368">· données minimisées</span></li><li style="font-size:14px;font-weight:700;color:#0b1220">20 cursus <span style="font-weight:500;color:#5f6368">· du lycée au master</span></li><li style="font-size:14px;font-weight:700;color:#0b1220">0 € <span style="font-weight:500;color:#5f6368">· sans carte bancaire</span></li></ul>
</div>
<div style="border-top:1px solid #e3e5e8">
<div class="mx-auto flex max-w-7xl flex-wrap items-center justify-center gap-x-6 gap-y-2 px-5 py-4 lg:px-10"><nav aria-label="Informations légales"><ul class="flex flex-wrap justify-center gap-x-5 gap-y-1" style="margin:0;padding:0;list-style:none;font-size:14px;font-weight:500"><li><a href="{{ route('legal') }}#mentions" style="color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Mentions légales</a></li><li><a href="{{ route('legal') }}#cgu" style="color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">CGU</a></li><li><a href="{{ route('legal') }}#confidentialite" style="color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Confidentialité et RGPD</a></li><li><a href="{{ route('legal') }}#cookies" style="color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Cookies</a></li><li><a href="{{ route('legal') }}#sous-traitance" style="color:#5f6368;text-decoration:none" class="hover:text-[#0b57d0]">Sous-traitance</a></li></ul></nav></div>
</div>
</footer>
</body>
</html>