/**
 * app.css — v1.1
 * Mise en page PROPRE à la page de connexion/inscription et au tableau
 * de bord admin. Les tokens et composants (cartes, boutons, champs,
 * onglets, bloc de code...) sont dans le kit partagé
 * /ui/v1/skolsuite-ui.css, chargé avant ce fichier — ne rien redéfinir
 * ici qui existe déjà là-bas.
 *
 * views/dashboard-admin.php a été repris avec le kit multilingue +
 * thème clair/sombre dans cette passe (voir CHANGELOG-i18n.md) — les
 * quelques classes ci-dessous (.ss-subcard, .ss-inline-form, .ss-filters,
 * .ss-badge-neutral) couvrent ce qui est propre à cette page et n'a pas
 * d'équivalent générique dans le kit. assets/css/dashboard.css est donc
 * déprécié (plus référencé par aucune vue) — conservé tel quel pour
 * mémoire, à supprimer dans un prochain nettoyage.
 */
:root {
  --ss-primary: #2563eb;
  --ss-error: #dc2626;
  --ss-text: #1f2937;
  --ss-border: #d1d5db;
  --ss-bg: #f3f4f6;
}

body { margin: 0; background: var(--ss-paper); }

.ss-wrap {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  position: relative;
}

.ss-wrap-inner { width: 100%; max-width: 400px; }

.ss-topcorner {
  position: fixed;
  top: 1rem;
  inset-inline-end: 1rem; /* right en LTR, left en RTL (dir="rtl" sur <html>) */
}

/* Deux boutons d'icône empilés en haut du cadre (langue + apparence) */
.ss-topcorner-group {
  position: fixed;
  top: 1rem;
  inset-inline-end: 1rem;
  display: flex;
  gap: .5rem;
}

/* ---- Tableau de bord admin : blocs "sous-carte" (une appli, un
   utilisateur) à l'intérieur d'une .ss-card, formulaires inline courts
   et filtres — tout en tokens du kit, donc suit le thème clair/sombre
   et le RTL automatiquement. ---- */
.ss-subcard{
  border: 1px solid var(--ss-paper-line);
  border-radius: var(--ss-radius-sm);
  padding: 1rem;
  margin-bottom: .9rem;
}
.ss-subcard-head{ display: flex; gap: .6rem; align-items: center; margin-bottom: .6rem; flex-wrap: wrap; }
.ss-subcard code{ background: var(--ss-chalk); padding: .1rem .4rem; border-radius: 4px; font-size: .8rem; }
.ss-subcard-detail{ font-size: .8rem; color: var(--ss-muted); margin-bottom: .4rem; }
.ss-subcard-actions{ display: flex; gap: .4rem; flex-wrap: wrap; margin-top: .6rem; }

.ss-inline-form{ display: flex; gap: .4rem; margin: .5rem 0; flex-wrap: wrap; }
.ss-inline-form input{
  flex: 1; min-width: 160px;
  padding: .45rem .6rem;
  border: 1px solid var(--ss-paper-line); border-radius: var(--ss-radius-sm);
  background: #fff; font-family: inherit; font-size: .85rem; color: var(--ss-ink);
}
[data-ss-theme="dark"] .ss-inline-form input{ background: #212B27; }

.ss-filters{ display: flex; gap: .6rem; margin-bottom: .9rem; flex-wrap: wrap; }
.ss-filters select{
  padding: .45rem .6rem;
  border: 1px solid var(--ss-paper-line); border-radius: var(--ss-radius-sm);
  background: #fff; font-family: inherit; font-size: .85rem; color: var(--ss-ink);
}
[data-ss-theme="dark"] .ss-filters select{ background: #212B27; }

.ss-badge-neutral{ background: var(--ss-paper); color: var(--ss-muted); }

.ss-table{ width: 100%; border-collapse: collapse; margin-bottom: .9rem; font-size: .85rem; }
.ss-table th, .ss-table td{
  padding: .5rem .7rem; text-align: start;
  border-bottom: 1px solid var(--ss-paper-line);
}
.ss-table th{ font-weight: 600; color: var(--ss-muted); }
.ss-table td .ss-btn{ margin-inline-end: .3rem; }
.ss-hint{ font-size: .85rem; color: var(--ss-muted); margin: .3rem 0 .9rem; }

.ss-lang-row{ display: flex; gap: .5rem; flex-wrap: wrap; }
.ss-lang-item{ flex: 1; min-width: 110px; }
.ss-lang-tag{ font-size: .7rem; color: var(--ss-muted); display: block; margin-bottom: .2rem; }

/* Tableaux -- zébrures, alignement, boutons icône avec info-bulle */
.ss-table tbody tr:nth-child(even) { background: var(--ss-paper); }
[data-ss-theme="dark"] .ss-table tbody tr:nth-child(even) { background: rgba(255,255,255,.03); }
.ss-table td { vertical-align: middle; }
.ss-table td.ss-td-actions { text-align: end; white-space: nowrap; }
.ss-table th.ss-th-actions { text-align: end; }
.ss-table td.ss-td-center, .ss-table th.ss-th-center { text-align: center; }

.ss-icon-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; padding: 0; margin-inline-start: .25rem;
  border: 1px solid var(--ss-paper-line); border-radius: var(--ss-radius-sm);
  background: #fff; color: var(--ss-ink); cursor: pointer;
  transition: background .15s, border-color .15s;
}
[data-ss-theme="dark"] .ss-icon-btn { background: #212B27; }
.ss-icon-btn:hover { background: var(--ss-paper); border-color: var(--ss-ochre); }
.ss-icon-btn svg { width: 15px; height: 15px; }
.ss-icon-btn.ss-icon-danger { color: #DC2626; }
.ss-icon-btn.ss-icon-danger:hover { background: #FEE2E2; border-color: #DC2626; }
[data-ss-theme="dark"] .ss-icon-btn.ss-icon-danger:hover { background: rgba(220,38,38,.15); }
.ss-icon-btn.ss-icon-success { color: #16A34A; }
.ss-icon-btn.ss-icon-success:hover { background: #DCFCE7; border-color: #16A34A; }
[data-ss-theme="dark"] .ss-icon-btn.ss-icon-success:hover { background: rgba(22,163,74,.15); }
.ss-icon-btn:disabled { opacity: .4; cursor: not-allowed; }

.ss-checkbox-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: .4rem .8rem; margin-top: .3rem;
}

/* ---- v1.6.a : inscription élève par code de classe ---- */
.ss-pin{ letter-spacing:.45em; font-size:1.25rem; text-align:center; font-variant-numeric:tabular-nums; }
.ss-class-card{ border:1px solid var(--ss-paper-line); border-inline-start:4px solid var(--ss-slate); border-radius:var(--ss-radius-sm); padding:.7rem .9rem; margin:0 0 1rem; background:var(--ss-paper); }
.ss-class-card p{ margin:0; }
.ss-class-card-k{ font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; color:var(--ss-muted); font-weight:600; }
.ss-class-card-t{ font-size:1.05rem; font-weight:700; margin:.15rem 0 !important; }
.ss-class-card-m{ font-size:.82rem; color:var(--ss-muted); }
.ss-ref-display .ss-ref-big{ font-size:1.7rem; letter-spacing:.18em; font-weight:700; padding:.4rem .9rem; }
[data-ss-theme="dark"] .ss-class-card{ background:#131C2E; }

/* v2.0 — sélection multiple, tableau de bord sécurité */
.ss-bulkbar{ display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; padding:.6rem .8rem; margin-bottom:.9rem;
  border:1px solid var(--ss-paper-line); border-radius:var(--ss-radius-sm); background:var(--ss-paper); }
.ss-bulkbar select{ padding:.45rem .6rem; border:1px solid var(--ss-paper-line); border-radius:var(--ss-radius-sm); }
.ss-row-selected td{ background: var(--ss-ochre-soft, #FFF6E5); }
.ss-stat-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(10rem, 1fr)); gap:.7rem; margin-bottom:1rem; }
.ss-stat{ border:1px solid var(--ss-paper-line); border-radius:var(--ss-radius-sm); padding:.7rem .8rem; display:flex; flex-direction:column; }
.ss-stat b{ font-size:1.5rem; }
.ss-stat span{ font-size:.8rem; color:var(--ss-muted); }
[data-ss-theme="dark"] .ss-row-selected td{ background:#2C3330; }
[data-ss-theme="dark"] .ss-bulkbar select{ background:#212B27; }
.ss-statbars{ display:flex; align-items:flex-end; gap:4px; height:140px; margin:1rem 0; padding-bottom:4px; border-bottom:1px solid var(--ss-paper-line); overflow-x:auto; }
.ss-statbar{ display:flex; align-items:flex-end; gap:2px; flex:1 0 12px; max-width:28px; }
.ss-statbar span{ flex:1; min-height:1px; border-radius:2px 2px 0 0; }
.ss-filters input[type=search], .ss-filters input[type=number], .ss-filters input[type=text]{
  padding:.45rem .6rem; border:1px solid var(--ss-paper-line); border-radius:var(--ss-radius-sm); font:inherit; font-size:.9rem; }
[data-ss-theme="dark"] .ss-filters input{ background:#212B27; color:inherit; }
