:root{--fond:#f6f6f4;--texte:#1d1d1b;--bordure:#d4d4cf;--accent:#1f5fbf;--erreur:#b3261e;color:var(--texte);background:var(--fond);font-family:system-ui,sans-serif}@media (prefers-color-scheme:dark){:root{--fond:#1b1b1a;--texte:#ececea;--bordure:#3a3a37;--accent:#7aa7f0;--erreur:#f2968f}}body{margin:0}.connexion{max-width:22rem;margin:15vh auto 0;padding:0 1rem}.connexion form{gap:1rem;display:grid}.connexion label{gap:.25rem;display:grid}input,button,.bouton{font:inherit;border:1px solid var(--bordure);border-radius:6px;padding:.5rem}button[type=submit]{background:var(--accent);color:#fff;border:none}.erreur{color:var(--erreur);margin:0}.entete{border-bottom:1px solid var(--bordure);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.75rem 1rem;display:flex}.page{max-width:60rem;margin:0 auto;padding:0 1rem 3rem}.page h2{border-bottom:1px solid var(--bordure);margin-top:2rem}.en-ligne{flex-wrap:wrap;gap:.5rem;margin:.5rem 0;display:flex}select{font:inherit;padding:.5rem}.fiche{border:1px solid var(--bordure);border-radius:6px;margin:.75rem 0;padding:.25rem 1rem}.envoi{align-items:center;gap:.5rem;display:flex}.envoi progress{width:10rem}.vignettes{grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:1rem;padding:0;list-style:none;display:grid}.vignettes li{gap:.25rem;display:grid}.vignettes .actions{flex-wrap:wrap;gap:.25rem;display:flex}.vignettes .actions>*{cursor:pointer;padding:.25rem .5rem;font-size:.875rem}.vignettes img,.vignette-absente{aspect-ratio:16/9;object-fit:contain;background:#000;border-radius:4px;width:100%}.entete nav{align-items:center;margin:0}button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.journal{padding:0;list-style:none}.journal li{border-bottom:1px solid var(--bordure);grid-template-columns:11rem 1fr;gap:1rem;padding:.5rem 0;display:grid}.journal time{color:color-mix(in srgb, var(--texte) 65%, transparent);font-variant-numeric:tabular-nums}@media (width<=36rem){.journal li{grid-template-columns:1fr;gap:.125rem}}.vignette-absente{color:#ccc;place-content:center;display:grid}.vignette-absente.echec{color:var(--erreur)}.playlist{border-left-width:6px}.entete-playlist h3{margin:0 auto 0 0}.entete-playlist input[type=color]{width:2.5rem;height:2.25rem;padding:0}.elements{padding-left:1.5rem}.elements li{border-bottom:1px solid var(--bordure);padding:.25rem 0}.elements li.glisse{opacity:.4}.elements li.hors-validite strong{opacity:.6;text-decoration:line-through}.element{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;display:flex}.element input[type=number]{width:5rem}.poignee{cursor:grab}.actions-element{gap:.25rem;margin-left:auto;display:flex}.badge{color:var(--erreur);border:1px solid;border-radius:4px;padding:.1rem .4rem;font-size:.85em}.apercu{border:none;border-radius:8px;width:min(90vw,1280px)}.apercu::backdrop{background:#0009}.apercu-surface{aspect-ratio:16/9}.apercu-surface:fullscreen{aspect-ratio:auto}.page>.erreur{z-index:1;background:var(--fond);padding:.5rem 0;position:sticky;top:0}.formulaire-creneau fieldset{border:none;align-items:center;padding:0}.formulaire-creneau legend{float:left;margin-right:.5rem}.creneaux{padding:0;list-style:none}.creneaux li{border-bottom:1px solid var(--bordure);align-items:center;gap:.5rem;padding:.25rem 0;display:flex}.creneaux li.modifie{background:color-mix(in srgb, var(--accent) 12%, transparent)}button:disabled{opacity:.5;cursor:not-allowed}.indication{opacity:.75;margin:0;font-size:.875rem}.calendrier .titre-periode{margin:.25rem 0 .5rem;font-weight:600}.calendrier .titre-periode:first-letter{text-transform:uppercase}.frise{gap:2px;display:grid}.frise .rangee{grid-template-columns:9rem 1fr;align-items:stretch;display:grid}.frise .libelle{text-overflow:ellipsis;white-space:nowrap;padding:.25rem .5rem .25rem 0;font-size:.875rem;overflow:hidden}.frise .jours{font-size:.75rem;display:flex}.frise .jours>span{text-align:center;white-space:nowrap;flex:1 1 0;min-width:0;overflow:hidden}.frise .jours>.aujourdhui{color:var(--accent);font-weight:700}.frise .piste{border:1px solid var(--bordure);background-image:linear-gradient(to right, var(--bordure) 1px, transparent 1px);border-radius:4px;min-height:1.75rem;margin:0;position:relative}.frise .morceau{box-sizing:border-box;white-space:nowrap;text-overflow:ellipsis;text-align:left;color:#fff;background:var(--accent);cursor:pointer;border:1px solid #00000040;border-radius:3px;min-width:2px;height:1.75rem;padding:0 .25rem;font-size:.75rem;line-height:1.6rem;position:absolute;top:0;overflow:hidden}.frise .morceau.eteint{color:#fff;background:repeating-linear-gradient(135deg,#555 0 6px,#333 6px 12px)}.frise .morceau.noir{color:#888;cursor:default;background:#111}.frise .morceau.modifie{outline:3px solid var(--accent);outline-offset:1px;z-index:1}.frise .resultat .libelle{font-weight:700}.frise .resultat .indication{background-image:none;padding:.25rem .5rem}.calendrier .separateur{background:var(--bordure);width:1px}.frise{-webkit-user-select:none;user-select:none}.frise .piste.editable{cursor:crosshair;touch-action:none}.frise .piste.editable .morceau{cursor:grab}.frise .poignee{cursor:ew-resize;width:min(6px,25%);height:100%;position:absolute;top:0;left:0}.frise .poignee.fin{left:auto;right:0}.frise .morceau.fantome{opacity:.3}.frise .morceau.apercu-geste{z-index:2;pointer-events:none;outline:2px dashed var(--texte);outline-offset:-2px;color:#fff;background-color:var(--accent)}.frise .morceau.apercu-geste.refuse{background:repeating-linear-gradient(135deg, var(--erreur) 0 6px, #7a1b15 6px 12px);outline-color:var(--erreur)}.vue-ecrans{column-gap:4px;font-size:.75rem;display:grid}.vue-ecrans .entete-jour{text-align:center;min-width:0}.vue-ecrans .entete-jour .aujourdhui{color:var(--accent)}.vue-ecrans .colonnes{gap:2px;min-width:0;display:grid}.vue-ecrans .colonnes>span{text-overflow:ellipsis;white-space:nowrap;opacity:.75;overflow:hidden}.vue-ecrans .heures,.vue-ecrans .journee{height:36rem;position:relative}.vue-ecrans .heures span{opacity:.75;position:absolute;right:.25rem;transform:translateY(-50%)}.vue-ecrans .heures span:first-child{transform:none}.vue-ecrans .colonne{border:1px solid var(--bordure);background-image:linear-gradient(to bottom, var(--bordure) 1px, transparent 1px);background-size:100% 8.33333%;border-radius:4px;position:relative;overflow:hidden}.vue-ecrans .morceau{box-sizing:border-box;text-align:left;vertical-align:top;color:#fff;background:var(--accent);cursor:pointer;border:1px solid #00000040;border-radius:3px;padding:.125rem .25rem;font-size:.75rem;position:absolute;left:0;right:0;overflow:hidden}.vue-ecrans .morceau.eteint{background:repeating-linear-gradient(135deg,#555 0 6px,#333 6px 12px)}.vue-ecrans .morceau.noir{color:#888;cursor:default;background:#111}.etats{grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:1rem;padding:0;list-style:none;display:grid}.etat{margin:0;padding:0 0 .5rem;overflow:hidden}.etat>:not(img,.capture-absente){margin:.5rem .75rem 0}.etat img,.capture-absente{aspect-ratio:16/9;object-fit:contain;background:#000;width:100%;display:block}.capture-absente{color:#999;place-content:center;display:grid}.connexion-etat:before{content:"● ";color:var(--bordure)}.connexion-etat.en-ligne-non:before{color:var(--erreur)}.connexion-etat.en-ligne-oui:before{color:#2e8540}.etat .details{color:color-mix(in srgb, var(--texte) 65%, transparent);font-size:.875rem}.etat .actions button{flex:auto}button.danger{background:var(--erreur);color:#fff;border:none}.actions-en-cours{padding-left:1.25rem;font-size:.875rem}.comptes{padding:0;list-style:none}.comptes li{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:.5rem 1rem;display:flex}.comptes li.inactif strong{opacity:.6;text-decoration:line-through}.qr-code{background:#fff;width:12rem;padding:.5rem}.details code{word-break:break-all}button.lien{color:var(--accent);background:0 0;border:none;text-decoration:underline}.moteur-affichage{background:#000;position:relative;overflow:hidden}.moteur-affichage>.couche{object-fit:contain;opacity:0;width:100%;height:100%;transition:opacity var(--fondu,0s) linear;position:absolute;inset:0}.moteur-affichage>.couche.visible{opacity:1}.moteur-affichage>.recadre{object-fit:cover}
