:root{--texte:#1f2328;--texte-doux:#59636e;--fond:#f6f7f9;--fond-panneau:#fff;--fond-editeur:#fff;--fond-marge:#f6f7f9;--fond-survol:#eef1f5;--bordure:#d0d7de;--accent:#1d4ed8;--sur-accent:#fff;--accent-doux:#e8efff;--erreur:#b42318;--fond-erreur:#fdecea;--attention:#8a5300;--fond-attention:#fff5e0;--succes:#1a7f37;--ligne-active:#1d4ed80d;--selection:#c9dafc;--fond-ligne-courante:#facc1547;--bord-ligne-courante:#b45309;--fond-ligne-appel:#59636e1f;--code-mot-cle:#1d4ed8;--code-type:#7a3e9d;--code-constante:#0a6e70;--code-nombre:#9a4a00;--code-chaine:#0b7a2b;--code-commentaire:#59636e;--code-titre:#1f2328;--code-predefini:#8b2d8b;--code-fonction:#6f42c1;--code-operateur:#b42318;--police:system-ui, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--police-code:ui-monospace, "Cascadia Code", "Fira Code", Consolas, "DejaVu Sans Mono", monospace;--taille-texte:16px;--rayon:6px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font:15px/1.45 var(--police);color:var(--texte);background:var(--fond)}@media (prefers-color-scheme:dark){:root:not([data-theme=clair]){--texte:#e6edf3;--texte-doux:#9ea7b3;--fond:#0d1117;--fond-panneau:#161b22;--fond-editeur:#0d1117;--fond-marge:#161b22;--fond-survol:#21262d;--bordure:#30363d;--accent:#6ea8ff;--sur-accent:#0d1117;--accent-doux:#172a46;--erreur:#ff8a80;--fond-erreur:#3b1714;--attention:#f0b860;--fond-attention:#3a2a10;--succes:#56d364;--ligne-active:#6ea8ff12;--selection:#264f78;--fond-ligne-courante:#facc152e;--bord-ligne-courante:#facc15;--fond-ligne-appel:#9ea7b326;--code-mot-cle:#79b8ff;--code-type:#d2a8ff;--code-constante:#56d4dd;--code-nombre:#ffab70;--code-chaine:#7ee787;--code-commentaire:#9ea7b3;--code-titre:#e6edf3;--code-predefini:#f0a6f0;--code-fonction:#d2a8ff;--code-operateur:#ff9492;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=sombre]{--texte:#e6edf3;--texte-doux:#9ea7b3;--fond:#0d1117;--fond-panneau:#161b22;--fond-editeur:#0d1117;--fond-marge:#161b22;--fond-survol:#21262d;--bordure:#30363d;--accent:#6ea8ff;--sur-accent:#0d1117;--accent-doux:#172a46;--erreur:#ff8a80;--fond-erreur:#3b1714;--attention:#f0b860;--fond-attention:#3a2a10;--succes:#56d364;--ligne-active:#6ea8ff12;--selection:#264f78;--fond-ligne-courante:#facc152e;--bord-ligne-courante:#facc15;--fond-ligne-appel:#9ea7b326;--code-mot-cle:#79b8ff;--code-type:#d2a8ff;--code-constante:#56d4dd;--code-nombre:#ffab70;--code-chaine:#7ee787;--code-commentaire:#9ea7b3;--code-titre:#e6edf3;--code-predefini:#f0a6f0;--code-fonction:#d2a8ff;--code-operateur:#ff9492;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--fond)}h1,h2{margin:0;font-size:1rem}button,input,select,textarea{font:inherit;color:inherit}button,summary{cursor:pointer}button{background:var(--fond-panneau);border:1px solid var(--bordure);border-radius:var(--rayon);white-space:nowrap;padding:.3rem .7rem}button:hover:not(:disabled){background:var(--fond-survol)}button:disabled{opacity:.55;cursor:not-allowed}button.principal{background:var(--accent);border-color:var(--accent);color:var(--sur-accent);font-weight:600}button.principal:hover:not(:disabled){background:var(--accent);filter:brightness(1.1)}button.danger{background:var(--erreur);border-color:var(--erreur);color:var(--fond-panneau)}button.lien{color:var(--accent);background:0 0;border:none;padding:0;text-decoration:underline}input,select,textarea{background:var(--fond-panneau);border:1px solid var(--bordure);border-radius:var(--rayon);padding:.3rem .5rem}a{color:var(--accent)}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.visuellement-cache{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.lien-evitement{z-index:10;position:absolute;left:-9999px}.lien-evitement:focus{background:var(--fond-panneau);padding:.4rem .8rem;top:.5rem;left:1rem}.aide{color:var(--texte-doux);margin:.4rem 0;font-size:.85rem}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.application{flex-direction:column;height:100%;display:flex}.barre{background:var(--fond-panneau);border-bottom:1px solid var(--bordure);flex-wrap:wrap;align-items:center;gap:.5rem .8rem;padding:.5rem 1rem;display:flex}.logo{color:var(--texte);margin:0;font-size:1.2rem;font-weight:800}.logo span{color:var(--accent)}.nom-algo input{width:min(22rem,40vw);font-weight:600}.statut-sauvegarde{color:var(--texte-doux);min-width:10rem;margin:0;font-size:.85rem}.statut-sauvegarde.erreur{color:var(--erreur);font-weight:600}.actions-execution,.actions-fichier{align-items:center;gap:.4rem;display:flex}.actions-fichier{margin-left:auto}.menu,.menu-actions{position:relative}.menu>summary,.menu-actions>summary{border:1px solid var(--bordure);border-radius:var(--rayon);background:var(--fond-panneau);padding:.3rem .7rem;list-style:none}.menu>summary::-webkit-details-marker{display:none}.menu-actions>summary::-webkit-details-marker{display:none}.menu>div,.menu-actions>div{z-index:5;background:var(--fond-panneau);border:1px solid var(--bordure);border-radius:var(--rayon);flex-direction:column;min-width:14rem;padding:.3rem;display:flex;position:absolute;right:0;box-shadow:0 6px 18px #00000026}.menu>div button,.menu-actions>div button{text-align:left;border:none}.bandeaux:empty{display:none}.bandeau{border-bottom:1px solid var(--bordure);margin:0;padding:.5rem 1rem}.bandeau.alerte{background:var(--fond-erreur);color:var(--erreur)}.bandeau.attention,.bandeau.info{background:var(--fond-attention);color:var(--texte)}.onglets{display:none}.espace{flex:1;grid-template-columns:17rem minmax(0,1fr) minmax(18rem,26rem);min-height:0;display:grid}.colonne{background:var(--fond-panneau);min-height:0;overflow:auto}.colonne.gauche{border-right:1px solid var(--bordure)}.colonne.centre{grid-template-rows:1fr auto;display:grid;overflow:hidden}.colonne.droite{border-left:1px solid var(--bordure);flex-direction:column;display:flex}@media (width<=1279px){.onglets{background:var(--fond-panneau);border-bottom:1px solid var(--bordure);display:flex}.onglets button{border:none;border-bottom:3px solid #0000;border-radius:0;flex:1;padding:.5rem}.onglets button[aria-selected=true]{border-bottom-color:var(--accent);font-weight:600}.espace{grid-template-columns:1fr}.colonne{border:none!important;display:none!important}[data-onglet=algorithmes] [data-panneau=algorithmes],[data-onglet=console] [data-panneau=console]{flex-direction:column;display:flex!important}[data-onglet=editeur] [data-panneau=editeur]{display:grid!important}.actions-fichier{margin-left:0}}.entete-panneau{border-bottom:1px solid var(--bordure);justify-content:space-between;align-items:center;gap:.5rem;padding:.6rem .8rem;display:flex}.entete-panneau .outils{gap:.3rem;display:flex}.bibliotheque.survol{outline:3px dashed var(--accent);outline-offset:-3px}.outils-bibliotheque,.filtres{flex-wrap:wrap;gap:.4rem;padding:.5rem .8rem 0;display:flex}.filtres input{width:9rem}.liste-algos{margin:.5rem 0 0;padding:0;list-style:none}.liste-algos li{align-items:center;gap:.3rem;padding:.15rem .5rem .15rem .8rem;display:flex}.liste-algos li.courant{background:var(--accent-doux);box-shadow:inset 3px 0 0 var(--accent)}.liste-algos li.vide{color:var(--texte-doux);padding:.5rem .8rem}.liste-algos .ouvrir{text-align:left;background:0 0;border:none;flex-direction:column;flex:1;align-items:flex-start;min-width:0;padding:.25rem .3rem;display:flex}.liste-algos .ouvrir:disabled{opacity:1;cursor:default}.liste-algos .nom{text-overflow:ellipsis;max-width:100%;overflow:hidden}.liste-algos .date{color:var(--texte-doux);font-size:.78rem}.liste-algos .renommage{flex:1;min-width:0}.menu-actions>summary{background:0 0;border-color:#0000;padding:.1rem .5rem}.pied-bibliotheque{border-top:1px solid var(--bordure);flex-direction:column;align-items:flex-start;gap:.4rem;margin-top:.5rem;padding:.8rem;display:flex}.jauge{flex-direction:column;width:100%;font-size:.85rem;display:flex}.jauge meter{width:100%}.palette{border-top:1px solid var(--bordure);padding:.6rem .8rem 1rem}.palette h2{margin-bottom:.4rem}.palette summary{padding:.25rem 0;font-weight:600}.palette ul{flex-wrap:wrap;gap:.3rem;margin:0 0 .4rem;padding:0;list-style:none;display:flex}.palette li button{padding:.2rem .5rem;font-size:.85rem}.zone-editeur{min-height:0;overflow:hidden}.editeur{height:100%}.diagnostics{border-top:1px solid var(--bordure);background:var(--fond-panneau);max-height:30vh;overflow:auto}.diagnostics h2 button{text-align:left;background:0 0;border:none;width:100%;padding:.4rem .8rem;font-weight:600}.diagnostics.avec-erreurs h2 button{color:var(--erreur)}.diagnostics ul{margin:0;padding:0 0 .4rem;list-style:none}.diagnostics li button{text-align:left;white-space:normal;background:0 0;border:none;width:100%;padding:.25rem .8rem}.diagnostics .gravite{font-weight:700}.diagnostics .erreur .gravite{color:var(--erreur)}.diagnostics .avertissement .gravite{color:var(--attention)}.diagnostics .suggestion,.console .suggestion{color:var(--texte-doux)}.console{flex-direction:column;flex:1;min-height:0;display:flex}.zone-console{font-family:var(--police-code);font-size:calc(var(--taille-texte) * .9);flex:1;padding:.6rem .8rem;overflow:auto}.zone-console pre{font:inherit;white-space:pre-wrap;word-break:break-word;margin:0}.zone-console .vide{font-family:var(--police);color:var(--texte-doux)}.bloc-saisie{color:var(--accent);font-weight:600}.bloc-info{color:var(--texte-doux);font-style:italic}.bloc-erreur{color:var(--erreur)}.saisie{display:inline}.saisie input{font-family:var(--police-code);border-color:var(--accent);width:12rem;padding:0 .3rem}.message-saisie{color:var(--erreur);font-family:var(--police);margin:.3rem 0 0}.alerte-longue{background:var(--fond-attention);border-top:1px solid var(--bordure);margin:0;padding:.5rem .8rem}.annonce{background:var(--texte);color:var(--fond);border-radius:var(--rayon);max-width:calc(100% - 2rem);margin:0;padding:.5rem 1rem;position:fixed;bottom:1rem;left:50%;transform:translate(-50%);box-shadow:0 6px 18px #00000040}.annonce button.lien{color:var(--fond);margin-left:.5rem}.dialogue{border:1px solid var(--bordure);background:var(--fond-panneau);width:min(34rem,100% - 2rem);color:var(--texte);border-radius:10px;padding:1.2rem 1.4rem}.dialogue::backdrop{background:#0006}.dialogue h2{margin-bottom:.8rem;font-size:1.15rem}.dialogue fieldset{border:1px solid var(--bordure);border-radius:var(--rayon);flex-direction:column;gap:.3rem;margin:0 0 .8rem;display:flex}.dialogue .champ{flex-direction:column;gap:.2rem;margin-bottom:.8rem;display:flex}.dialogue-actions{justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.dialogue:has(.rapport-import){width:min(48rem,100% - 2rem)}.rapport-import h3{margin:1rem 0 .4rem;font-size:1rem}.rapport-import ul{margin:0;padding-left:1.2rem}.rapport-points li{margin-bottom:.35rem}.rapport-lignes{font-weight:600}.rapport-types{border-collapse:collapse;width:100%;font-size:.9rem}.rapport-types th,.rapport-types td{text-align:left;border-bottom:1px solid var(--bordure);vertical-align:top;padding:.25rem .5rem}.rapport-types th[scope=rowgroup]{background:var(--fond);font-weight:600}.rapport-note{color:var(--texte-doux);margin-top:1rem;font-size:.85rem}.cm-gutter-arret{cursor:pointer;width:1.2rem}.cm-gutter-arret .cm-gutterElement{justify-content:center;align-items:center;display:flex}.point-arret{color:var(--erreur);font-size:.9em}.cm-gutter-arret .cm-gutterElement:hover:empty:after{content:"●";color:var(--erreur);opacity:.35;font-size:.9em}.cm-ligne-courante{box-shadow:inset 4px 0 0 var(--bord-ligne-courante);background-color:var(--fond-ligne-courante)!important}.cm-ligne-appel{background-color:var(--fond-ligne-appel);box-shadow:inset 4px 0 0 var(--texte-doux)}.barre-debogage{background:var(--fond-attention);border-bottom:1px solid var(--bordure);flex-wrap:wrap;align-items:center;gap:.4rem .6rem;padding:.4rem 1rem;display:flex}.statut-execution{margin:0 .5rem 0 0;font-weight:600}.inspection{border-top:1px solid var(--bordure);flex-shrink:0;max-height:45%;overflow:auto}.inspection .vide,.inspection .aide{color:var(--texte-doux);padding:0 .8rem}.inspection.perimee table{opacity:.65}.inspection .cadre{font-weight:400}table.variables{border-collapse:collapse;width:100%;font-size:.9rem}table.variables th,table.variables td{text-align:left;border-bottom:1px solid var(--bordure);vertical-align:top;padding:.25rem .8rem}table.variables thead th{color:var(--texte-doux);font-weight:600}table.variables code{font-family:var(--police-code);word-break:break-word}table.variables tr.modifiee{background:var(--fond-ligne-courante)}.marque-modifiee{color:var(--attention);font-size:.75rem;font-weight:400}.sans-valeur{color:var(--texte-doux);font-style:italic}table.variables ol{margin:.3rem 0 0;padding-left:0;list-style:none}table.variables .indice{color:var(--texte-doux)}.sous-titre{padding:.6rem .8rem .2rem}.pile{margin:0;padding:0 .8rem .8rem;list-style:none}.pile button{text-align:left;background:0 0;border:none;width:100%}.pile button[aria-current=true]{background:var(--accent-doux);font-weight:600}.pile .ligne{color:var(--texte-doux)}.filtre-commandes{width:100%;margin-bottom:.5rem}.liste-commandes{max-height:50vh;margin:0;padding:0;list-style:none;overflow:auto}.liste-commandes li{border-radius:var(--rayon);cursor:pointer;justify-content:space-between;gap:1rem;padding:.35rem .5rem;display:flex}.liste-commandes li[aria-selected=true]{background:var(--accent);color:var(--sur-accent)}.liste-commandes kbd{font-family:var(--police-code);opacity:.85;font-size:.8rem}.choix-mode{display:flex}.choix-mode button{border-radius:0}.choix-mode button:first-child{border-radius:var(--rayon) 0 0 var(--rayon)}.choix-mode button:last-child{border-radius:0 var(--rayon) var(--rayon) 0;border-left:none}.choix-mode button[aria-checked=true]{background:var(--accent);border-color:var(--accent);color:var(--sur-accent);font-weight:600}.editeur-blocs{height:100%;font-family:var(--police-code);font-size:var(--taille-texte);background:var(--fond-editeur);padding:.6rem 1rem 3rem;overflow:auto}.editeur-blocs .liste-blocs{border-left:2px solid var(--bordure);margin:0 0 0 .55rem;padding:0 0 0 1.4rem;list-style:none}.editeur-blocs .principal>.liste-blocs,.editeur-blocs .sous-programme>.liste-blocs{border-left-color:#0000}.mot-cle{color:var(--code-mot-cle);font-weight:600}.operateur{color:var(--code-operateur)}.ligne-section{padding:.15rem 0}.entete-algorithme .champ-bloc input{font-weight:700}.sous-programme{border-bottom:1px dashed var(--bordure);margin-bottom:.8rem;padding-bottom:.4rem}.bloc{outline-offset:1px}.bloc:focus-visible>.ligne-bloc:first-child,.bloc:focus-visible>.ligne-bloc{background:var(--ligne-active)}.ligne-bloc{border-radius:var(--rayon);align-items:center;gap:.2rem;min-height:1.9em;display:flex}.ligne-bloc:hover{background:var(--ligne-active)}.ligne-bloc.bloc-courant{background:var(--fond-ligne-courante);box-shadow:inset 4px 0 0 var(--bord-ligne-courante)}.contenu-bloc{flex-wrap:wrap;flex:1;align-items:center;gap:.25rem;display:flex}.poignee{width:1.1rem;color:var(--texte-doux);cursor:grab;opacity:0;background:0 0;border:none;flex:none;padding:0}.ligne-bloc:hover .poignee,.bloc:focus-within>.ligne-bloc .poignee{opacity:1}.editeur-blocs .point-arret{text-align:center;flex:none;width:1rem}.champ-bloc{display:inline-block;position:relative}.champ-bloc input{font:inherit;border:1px solid #0000;border-bottom:1px dashed var(--bordure);background:var(--fond-panneau);border-radius:3px;min-width:2ch;padding:0 .25rem}.champ-bloc input:hover,.champ-bloc input:focus{border-color:var(--accent)}.champ-bloc input[aria-invalid=true]{border-color:var(--erreur);border-style:solid}.propositions{z-index:6;background:var(--fond-panneau);border:1px solid var(--bordure);border-radius:var(--rayon);min-width:10rem;margin:0;padding:.2rem;list-style:none;position:absolute;top:100%;left:0;box-shadow:0 6px 18px #00000026}.propositions li{cursor:pointer;border-radius:3px;padding:.15rem .4rem}.propositions li[aria-selected=true]{background:var(--accent);color:var(--sur-accent)}.commentaire-fin,.commentaire-bloc,.commentaire-haut{color:var(--code-commentaire);font-style:italic}.commentaire-fin{margin-left:.6rem}.ligne-vide,.liste-vide{color:var(--texte-doux);font-size:.8em;font-family:var(--police);opacity:.7}.liste-vide{padding:.1rem 0 .1rem 2.3rem;display:block}.ligne-haut-vide{height:.8em}.retour{color:var(--code-constante);align-items:center;gap:.15rem;display:inline-flex}.editeur-blocs button.retirer,.editeur-blocs button.ajout{font-family:var(--police);color:var(--texte-doux);margin-left:.4rem;padding:.05rem .4rem;font-size:.75rem}.editeur-blocs button.retirer{opacity:0}.ligne-bloc:hover button.retirer,.ligne-bloc:focus-within button.retirer,.ligne-section:hover button.retirer,.ligne-section:focus-within button.retirer{opacity:1}.editeur-blocs button.replier{color:var(--texte-doux);background:0 0;border:none;padding:0 .2rem 0 0}.editeur-blocs .replie{color:var(--texte-doux);margin:0 0 0 2.6rem;font-size:.85em}.fin-bloc{min-height:1.6em}.erreurs-bloc{font-family:var(--police);color:var(--erreur);margin:0 0 .2rem 2.3rem;padding:0;font-size:.82rem;list-style:none}.menu-bloc>summary{opacity:0}.ligne-bloc:hover .menu-bloc>summary,.bloc:focus-within>.ligne-bloc .menu-bloc>summary,.menu-bloc[open]>summary{opacity:1}.menu-bloc>div{font-family:var(--police)}.menu-bloc kbd{float:right;color:var(--texte-doux);margin-left:1rem;font-size:.75rem}.bloc,.fin-liste{position:relative}.fin-liste{min-height:.6rem;list-style:none}.point-insertion{z-index:1;height:.7rem;position:absolute;top:-.35rem;left:-1.2rem;right:0}.fin-liste .point-insertion{top:-.1rem}.point-insertion>button{opacity:0;z-index:2;border-radius:50%;width:1.2rem;height:1.2rem;padding:0;font-size:.8rem;line-height:1;position:absolute;top:-.25rem;left:0}.point-insertion:hover>button,.point-insertion.ouvert>button{opacity:1}.point-insertion.survol:after{content:"";background:var(--accent);border-radius:3px;height:.3rem;position:absolute;top:.2rem;left:1.2rem;right:0}.menu-insertion{z-index:7;max-width:26rem;font-family:var(--police);background:var(--fond-panneau);border:1px solid var(--bordure);border-radius:var(--rayon);flex-wrap:wrap;gap:.3rem;padding:.4rem;display:flex;position:absolute;top:0;left:1.4rem;box-shadow:0 6px 18px #00000026}.menu-insertion button{font-size:.8rem}
