/* ==========================================================================
   Kadre — espace admin (Kevin + Andy).
   ========================================================================== */

.connexion {
  min-height: 100vh; display: grid; place-items: center; padding: 24px;
}
.connexion .carte { width: min(400px, 100%); }
.connexion-logo { display: flex; justify-content: center; margin-bottom: 10px; }

/* ------------------------------------------------------------- modeles */
.modeles-grille { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }

.modele-carte {
  border: 1px solid var(--bord); border-radius: var(--r-md);
  background: var(--surface); overflow: hidden;
  display: flex; flex-direction: column; transition: var(--transition);
}
.modele-carte:hover { box-shadow: var(--ombre-2); border-color: var(--indigo); }
.modele-carte.inactif { opacity: .55; }
.modele-image {
  aspect-ratio: 3 / 4;
  display: flex; align-items: center; justify-content: center;
  padding: 12px; overflow: hidden;
  border-bottom: 1px solid var(--bord-doux);
}
.modele-image img {
  max-width: 100%; max-height: 100%;
  width: auto; height: auto;
  object-fit: contain; border-radius: 4px;
}
.modele-infos { padding: 11px 12px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.modele-actions {
  display: flex; flex-wrap: wrap; gap: 5px;
  padding: 9px 10px;
  border-top: 1px solid var(--bord-doux); background: var(--surface-2);
}
.modele-actions .espace { flex: 1 0 0; min-width: 0; }

/* ------------------------------------------------------------- editeur */
.editeur-admin {
  display: grid; gap: 14px;
  grid-template-columns: 232px minmax(0, 1fr) 300px;
  align-items: start;
}
@media (max-width: 1180px) { .editeur-admin { grid-template-columns: 200px minmax(0, 1fr); } .editeur-proprietes { grid-column: 1 / -1; } }
@media (max-width: 820px) { .editeur-admin { grid-template-columns: 1fr; } }

.plan {
  position: sticky; top: 14px;
  display: grid; place-items: center;
  padding: 20px; border-radius: var(--r-md);
  border: 1px solid var(--bord); background: var(--surface);
  min-height: 420px;
}
.plan-boite { position: relative; line-height: 0; }
.plan canvas { display: block; border-radius: 4px; box-shadow: var(--ombre-2); }

.calque-boite {
  position: absolute; border: 1px solid transparent; cursor: move;
}
.calque-boite:hover { border-color: rgba(107, 91, 210, .55); }
.calque-boite.selection { border: 1.5px solid var(--indigo); background: rgba(107, 91, 210, .06); }
.calque-boite.verrouille { cursor: not-allowed; }

.poignee {
  position: absolute; width: 11px; height: 11px;
  background: var(--surface); border: 2px solid var(--indigo); border-radius: 3px;
}
.poignee.no { left: -6px; top: -6px; cursor: nwse-resize; }
.poignee.n  { left: calc(50% - 5.5px); top: -6px; cursor: ns-resize; }
.poignee.ne { right: -6px; top: -6px; cursor: nesw-resize; }
.poignee.o  { left: -6px; top: calc(50% - 5.5px); cursor: ew-resize; }
.poignee.e  { right: -6px; top: calc(50% - 5.5px); cursor: ew-resize; }
.poignee.so { left: -6px; bottom: -6px; cursor: nesw-resize; }
.poignee.s  { left: calc(50% - 5.5px); bottom: -6px; cursor: ns-resize; }
.poignee.se { right: -6px; bottom: -6px; cursor: nwse-resize; }

.liste-calques { display: flex; flex-direction: column; gap: 3px; max-height: 460px; overflow: auto; }
.calque-ligne {
  display: flex; align-items: center; gap: 8px;
  padding: 7px 9px; border-radius: var(--r-sm);
  cursor: pointer; font-size: 13.5px; border: 1px solid transparent;
  transition: var(--transition);
}
.calque-ligne:hover { background: var(--surface-2); }
.calque-ligne.selection { background: rgba(107, 91, 210, .16); border-color: var(--indigo); }
.calque-ligne .nom { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calque-ligne svg { flex: 0 0 auto; color: var(--texte-faible); }
.calque-ligne.selection svg { color: var(--indigo); }

.editeur-proprietes { display: flex; flex-direction: column; gap: 12px; }
.editeur-proprietes .carte { max-height: calc(100vh - 40px); overflow: auto; }
.groupe { display: flex; flex-direction: column; gap: 9px; }
.titre-groupe {
  font-size: 11px; text-transform: uppercase; letter-spacing: .07em;
  color: var(--texte-faible); font-weight: 700;
  margin: 12px 0 2px; padding-top: 10px;
  border-top: 1px solid var(--bord-doux);
}
.editeur-proprietes .carte > .titre-groupe:first-of-type { border-top: 0; padding-top: 0; }
.duo { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.quatuor { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }

.mini-champ { display: flex; flex-direction: column; gap: 3px; }
.mini-champ label { font-size: 11px; color: var(--texte-faible); font-weight: 600; }
.mini-champ input, .mini-champ select { padding: 6px 9px; font-size: 13px; }

.polices-admin {
  display: flex; flex-wrap: wrap; gap: 5px;
  max-height: 168px; overflow: auto;
  padding: 4px; margin-bottom: 4px;
  border: 1px solid var(--bord-doux); border-radius: var(--r-sm);
  background: var(--surface-2);
}
.police-case {
  display: flex; align-items: center; gap: 6px;
  padding: 5px 9px; border-radius: var(--r-sm);
  border: 1px solid var(--bord); background: var(--surface-2);
  font-size: 13px; cursor: pointer;
}
.police-case.actif { border-color: var(--indigo); background: rgba(107, 91, 210, .14); }

.barre-outils { display: flex; flex-wrap: wrap; gap: 6px; }

.pipette-actif .plan canvas { cursor: crosshair; }

/* ------------------------------------------------------------- soumissions */
.detail-cadres { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.detail-image { border-radius: var(--r-sm); padding: 10px; display: grid; place-items: center; }
.detail-image img { max-width: 100%; max-height: 300px; border-radius: 4px; }

.fiche { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.fiche .faible { margin-bottom: 2px; }
