<?php
$title = 'Paramètres';

$baseUrl = rtrim(\App\Core\Config::baseUrl(), '/');
$publicRoot = \App\Core\Config::publicPath();

$resolveBrandingAsset = static function (?string $configuredPath, string $defaultPublicPath) use ($baseUrl, $publicRoot): array {
  $configuredPath = trim((string)$configuredPath);
  if ($configuredPath !== '' && !str_starts_with($configuredPath, '/')) {
    $configuredPath = '/storage/uploads/' . ltrim($configuredPath, '/');
  }

  $hasConfiguredFile = false;
  if ($configuredPath !== '') {
    $configuredFsPath = $publicRoot . DIRECTORY_SEPARATOR . ltrim(str_replace('/', DIRECTORY_SEPARATOR, $configuredPath), DIRECTORY_SEPARATOR);
    $hasConfiguredFile = is_file($configuredFsPath);
  }

  $effectivePath = $hasConfiguredFile ? $configuredPath : $defaultPublicPath;

  return [
    'url' => $baseUrl . $effectivePath,
    'path' => ltrim($effectivePath, '/'),
    'source' => $hasConfiguredFile ? 'Chargé' : 'Par défaut',
    'is_custom' => $hasConfiguredFile,
  ];
};

$webBrandingAssets = [
  'logo' => $resolveBrandingAsset($settings['branding_logo'] ?? null, '/assets/logo-default.svg'),
  'favicon' => $resolveBrandingAsset($settings['branding_favicon'] ?? null, '/assets/favicon.svg'),
  'login_bg' => $resolveBrandingAsset($settings['branding_login_bg'] ?? null, '/assets/login-bg-default.svg'),
];
?>
<div class="mb-3">
  <?php if (!empty($saved)): ?>
  <div class="alert alert-success alert-dismissible fade show" role="alert">
    <i class="fas fa-check-circle me-1"></i> Paramètres enregistrés avec succès.
    <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Fermer"></button>
  </div>
  <?php endif; ?>
  <?php if (!empty($tested)): ?>
    <?php if ($tested === 'success'): ?>
    <div class="alert alert-success alert-dismissible fade show" role="alert">
      <i class="fas fa-envelope-circle-check me-1"></i> Email de test remis via <?= htmlspecialchars($tested_transport ?: 'smtp') ?>. Vérifiez votre boîte de réception.
      <?php if (!empty($tested_message)): ?>
      <div class="small mt-1"><?= htmlspecialchars($tested_message) ?></div>
      <?php endif; ?>
      <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Fermer"></button>
    </div>
    <?php elseif ($tested === 'error'): ?>
    <?php
      $tm       = $tested_message ?? '';
      $tmLower  = strtolower($tm);
      $isQuota  = str_contains($tm, 'Quota journalier') || str_contains($tm, '5.4.5') || (str_contains($tmLower, 'daily') && str_contains($tmLower, 'limit'));
      $isAuth   = str_contains($tm, 'Authentification') || str_contains($tm, "mot de passe d'application");
      $isRelay  = str_contains($tm, 'relais');
    ?>
    <div class="alert alert-danger alert-dismissible fade show" role="alert" style="border-radius:.85rem;">
      <div class="d-flex gap-2 align-items-start">
        <i class="fas fa-circle-xmark mt-1" style="font-size:1.1rem;flex-shrink:0;"></i>
        <div class="flex-grow-1" style="min-width:0;">
          <div class="fw-bold mb-1">Échec de l'envoi de l'email de test</div>
          <?php if (!empty($tm)): ?>
          <div class="small"><?= htmlspecialchars($tm) ?></div>
          <?php endif; ?>
          <?php if ($isQuota): ?>
          <div class="mt-2 p-2 rounded small" style="background:rgba(255,255,255,.25);">
            <strong>Solutions :</strong>
            <ul class="mb-0 mt-1 ps-3">
              <li>Attendez demain (quota Gmail réinitialisé à minuit UTC).</li>
              <li>Utilisez un compte Google Workspace dédié (2 000 emails/jour).</li>
              <li>Remplacez Gmail SMTP par <strong>Brevo</strong>, <strong>Mailgun</strong> ou <strong>Resend</strong>.</li>
            </ul>
          </div>
          <?php elseif ($isAuth): ?>
          <div class="mt-2 p-2 rounded small" style="background:rgba(255,255,255,.25);">
            <strong>Solution :</strong> Générez un <a href="https://myaccount.google.com/apppasswords" target="_blank" class="alert-link">mot de passe d'application Gmail</a> et renseignez-le dans le champ mot de passe SMTP.
          </div>
          <?php elseif ($isRelay): ?>
          <div class="mt-2 p-2 rounded small" style="background:rgba(255,255,255,.25);">
            <strong>Solution :</strong> L'adresse expéditeur doit être identique au <em>smtp_user</em> configuré.
          </div>
          <?php else: ?>
          <div class="mt-2 p-2 rounded small" style="background:rgba(255,255,255,.25);">
            Vérifiez l'hôte, le port et les identifiants SMTP. Pour les tests locaux, utilisez <strong>Mailtrap</strong> ou <strong>MailHog</strong>.
          </div>
          <?php endif; ?>
        </div>
      </div>
      <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Fermer"></button>
    </div>
    <?php endif; ?>
  <?php endif; ?>
</div>
<script>
setTimeout(()=>{ document.querySelectorAll('.alert').forEach(a=>{ a.classList.remove('show'); a.classList.add('fade'); }); }, 4500);
</script>
<style>
  .settings-branding-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 1rem;
  }

  .settings-branding-card {
    border: 1px solid #e2e8f0;
    border-radius: 1rem;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    padding: 1rem;
    box-shadow: 0 14px 30px rgba(15, 23, 42, 0.06);
  }

  .settings-branding-preview {
    position: relative;
    overflow: hidden;
    border-radius: .9rem;
    border: 1px solid rgba(148, 163, 184, 0.24);
    background: radial-gradient(circle at top left, rgba(14, 165, 233, 0.18), transparent 38%), linear-gradient(135deg, #e2e8f0 0%, #f8fafc 100%);
  }

  .settings-branding-preview--logo,
  .settings-branding-preview--favicon {
    height: 110px;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .settings-branding-preview--logo img {
    max-width: 82%;
    max-height: 58px;
    object-fit: contain;
  }

  .settings-branding-preview--favicon img {
    width: 58px;
    height: 58px;
    object-fit: contain;
    border-radius: 16px;
    background: rgba(255,255,255,.92);
    padding: .7rem;
    box-shadow: 0 12px 26px rgba(15, 23, 42, 0.12);
  }

  .settings-branding-preview--login {
    height: 150px;
    background-size: cover;
    background-position: center;
  }

  .settings-branding-preview--login::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(160deg, rgba(15, 23, 42, 0.08) 0%, rgba(15, 23, 42, 0.42) 100%);
  }

  .settings-branding-badge {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .35rem .6rem;
    border-radius: 999px;
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: .01em;
  }

  .settings-branding-badge.is-custom {
    background: #dcfce7;
    color: #166534;
  }

  .settings-branding-badge.is-default {
    background: #e0f2fe;
    color: #075985;
  }

  .settings-branding-path {
    font-family: "Consolas", "SFMono-Regular", monospace;
    font-size: .75rem;
    color: #475569;
    word-break: break-all;
  }
</style>
<div class="row">
  <div class="col-12 col-lg-6">
    <div class="card shadow-sm mb-3">
      <div class="card-header">Général</div>
      <div class="card-body">
  <form method="post" action="<?= htmlspecialchars(route_url('/settings/save')) ?>" enctype="multipart/form-data">
          <div class="mb-4 p-3 p-xl-4 rounded-4 border" style="background:linear-gradient(135deg,#f8fafc 0%,#eef6ff 100%);border-color:#dbeafe !important;">
            <div class="d-flex flex-column flex-md-row justify-content-between align-items-md-center gap-2 mb-3">
              <div>
                <h5 class="mb-1">Branding web actuellement chargé</h5>
                <p class="text-muted mb-0">Aperçu du logo, du favicon et du fond de connexion réellement utilisés par les layouts web.</p>
              </div>
              <span class="badge text-bg-light border">public/settings</span>
            </div>

            <div class="settings-branding-grid">
              <div class="settings-branding-card">
                <div class="d-flex justify-content-between align-items-center mb-2">
                  <h6 class="mb-0">Logo</h6>
                  <span class="settings-branding-badge <?= $webBrandingAssets['logo']['is_custom'] ? 'is-custom' : 'is-default' ?>">
                    <i class="fas <?= $webBrandingAssets['logo']['is_custom'] ? 'fa-circle-check' : 'fa-wand-magic-sparkles' ?>"></i>
                    <?= htmlspecialchars($webBrandingAssets['logo']['source']) ?>
                  </span>
                </div>
                <div class="settings-branding-preview settings-branding-preview--logo mb-3">
                  <img src="<?= htmlspecialchars($webBrandingAssets['logo']['url']) ?>" alt="Logo web chargé">
                </div>
                <div class="small text-muted mb-1">Fichier utilisé</div>
                <div class="settings-branding-path"><?= htmlspecialchars($webBrandingAssets['logo']['path']) ?></div>
              </div>

              <div class="settings-branding-card">
                <div class="d-flex justify-content-between align-items-center mb-2">
                  <h6 class="mb-0">Favicon</h6>
                  <span class="settings-branding-badge <?= $webBrandingAssets['favicon']['is_custom'] ? 'is-custom' : 'is-default' ?>">
                    <i class="fas <?= $webBrandingAssets['favicon']['is_custom'] ? 'fa-circle-check' : 'fa-wand-magic-sparkles' ?>"></i>
                    <?= htmlspecialchars($webBrandingAssets['favicon']['source']) ?>
                  </span>
                </div>
                <div class="settings-branding-preview settings-branding-preview--favicon mb-3">
                  <img src="<?= htmlspecialchars($webBrandingAssets['favicon']['url']) ?>" alt="Favicon chargé">
                </div>
                <div class="small text-muted mb-1">Fichier utilisé</div>
                <div class="settings-branding-path"><?= htmlspecialchars($webBrandingAssets['favicon']['path']) ?></div>
              </div>

              <div class="settings-branding-card">
                <div class="d-flex justify-content-between align-items-center mb-2">
                  <h6 class="mb-0">Background login</h6>
                  <span class="settings-branding-badge <?= $webBrandingAssets['login_bg']['is_custom'] ? 'is-custom' : 'is-default' ?>">
                    <i class="fas <?= $webBrandingAssets['login_bg']['is_custom'] ? 'fa-circle-check' : 'fa-wand-magic-sparkles' ?>"></i>
                    <?= htmlspecialchars($webBrandingAssets['login_bg']['source']) ?>
                  </span>
                </div>
                <div class="settings-branding-preview settings-branding-preview--login mb-3" style="background-image:url('<?= htmlspecialchars($webBrandingAssets['login_bg']['url']) ?>');"></div>
                <div class="small text-muted mb-1">Fichier utilisé</div>
                <div class="settings-branding-path"><?= htmlspecialchars($webBrandingAssets['login_bg']['path']) ?></div>
              </div>
            </div>
          </div>

          <div class="mb-3">
            <label class="form-label">Nom de l'application</label>
            <input class="form-control" name="app_name" value="<?= htmlspecialchars($settings['app_name'] ?? 'NOVALINK') ?>">
          </div>
          <div class="mb-3">
            <label class="form-label">Devise par défaut</label>
            <input class="form-control" name="default_currency" value="<?= htmlspecialchars($settings['default_currency'] ?? 'XOF') ?>">
          </div>
          <div class="mb-3">
            <label class="form-label">Fuseau horaire</label>
            <select class="form-select" name="timezone">
              <?php
                $currentTz = $settings['timezone'] ?? 'Africa/Abidjan';
                $timezones = [
                  'Africa/Abidjan' => 'Africa/Abidjan (GMT+0)',
                  'Africa/Lagos' => 'Africa/Lagos (GMT+1)',
                  'Africa/Cairo' => 'Africa/Cairo (GMT+2)',
                  'Europe/Paris' => 'Europe/Paris (GMT+1)',
                  'Europe/London' => 'Europe/London (GMT+0)',
                  'America/New_York' => 'America/New_York (GMT-5)',
                  'America/Los_Angeles' => 'America/Los_Angeles (GMT-8)',
                  'Asia/Dubai' => 'Asia/Dubai (GMT+4)',
                  'Asia/Tokyo' => 'Asia/Tokyo (GMT+9)',
                  'UTC' => 'UTC (GMT+0)'
                ];
                foreach ($timezones as $tz => $label):
              ?>
                <option value="<?= htmlspecialchars($tz) ?>" <?= $tz === $currentTz ? 'selected' : '' ?>>
                  <?= htmlspecialchars($label) ?>
                </option>
              <?php endforeach; ?>
            </select>
            <small class="form-text text-muted">Définit le fuseau horaire pour l'application (affichage des dates et heures)</small>
          </div>
          <div class="mb-3">
            <label class="form-label">Langue</label>
            <select class="form-select" name="locale">
              <?php
                $currentLocale = $settings['locale'] ?? 'fr_FR';
                $locales = [
                  'fr_FR' => 'Français (France)',
                  'en_US' => 'English (United States)',
                  'ar_SA' => 'العربية (Arabic)'
                ];
                foreach ($locales as $loc => $label):
              ?>
                <option value="<?= htmlspecialchars($loc) ?>" <?= $loc === $currentLocale ? 'selected' : '' ?>>
                  <?= htmlspecialchars($label) ?>
                </option>
              <?php endforeach; ?>
            </select>
          </div>
          <div class="mb-3">
            <label class="form-label">TVA (%)</label>
            <input type="number" step="0.01" class="form-control" name="vat_rate" value="<?= htmlspecialchars($settings['vat_rate'] ?? '18') ?>">
          </div>
          <div class="form-check form-switch mb-3">
            <!-- Champ caché pour forcer la valeur à 0 si la case est décochée -->
            <input type="hidden" name="enforce_2fa" value="0">
            <input class="form-check-input" type="checkbox" name="enforce_2fa" value="1" id="enf2fa" <?= !empty($settings['enforce_2fa']) ? 'checked' : '' ?>>
            <label class="form-check-label" for="enf2fa">Imposer 2FA pour tous</label>
          </div>

          <div class="mb-3">
            <label class="form-label">Logo</label>
            <input type="file" class="form-control" name="logo" accept="image/*">
          </div>
          <div class="mb-3">
            <label class="form-label">Favicon</label>
            <input type="file" class="form-control" name="favicon" accept="image/x-icon">
          </div>
          <div class="mb-3">
            <label class="form-label">Background Login</label>
            <input type="file" class="form-control" name="login_bg" accept="image/*">
          </div>

          <div class="d-flex justify-content-between align-items-center mt-2">
            <button class="btn btn-primary" type="submit"><i class="fas fa-save me-1"></i> Enregistrer</button>
            <form method="post" action="<?= htmlspecialchars(route_url('/settings/test-email')) ?>" class="m-0">
              <button type="submit" class="btn btn-outline-secondary"><i class="fas fa-envelope me-1"></i> Email de test</button>
            </form>
          </div>
        </form>
      </div>
    </div>
  </div>

  <div class="col-12 col-lg-6">
    <div class="card shadow-sm mb-3">
      <div class="card-header">Mail (SMTP)</div>
      <div class="card-body">
  <form method="post" action="<?= htmlspecialchars(route_url('/settings/save')) ?>">
          <div class="row g-3">
            <div class="col-12 col-md-8">
              <label class="form-label">Hôte SMTP</label>
              <input class="form-control" name="smtp_host" value="<?= htmlspecialchars($settings['smtp_host'] ?? '') ?>">
            </div>
            <div class="col-6 col-md-4">
              <label class="form-label">Port</label>
              <input class="form-control" name="smtp_port" value="<?= htmlspecialchars($settings['smtp_port'] ?? '587') ?>">
            </div>
            <div class="col-6">
              <label class="form-label">Chiffrement</label>
              <input class="form-control" name="smtp_encryption" value="<?= htmlspecialchars($settings['smtp_encryption'] ?? 'tls') ?>">
            </div>
            <div class="col-6">
              <label class="form-label">Utilisateur</label>
              <input class="form-control" name="smtp_user" value="<?= htmlspecialchars($settings['smtp_user'] ?? '') ?>">
            </div>
            <div class="col-6">
              <label class="form-label">Nom expéditeur</label>
              <input class="form-control" name="smtp_from_name" value="<?= htmlspecialchars($settings['smtp_from_name'] ?? ($settings['app_name'] ?? 'NOVALINK')) ?>" placeholder="ex. Support NOVALINK">
            </div>
            <div class="col-12">
              <label class="form-label">Mot de passe</label>
              <input type="password" class="form-control" name="smtp_pass" value="<?= htmlspecialchars($settings['smtp_pass'] ?? '') ?>">
            </div>
            <div class="col-12">
              <label class="form-label">Email service client opérateur</label>
              <input type="email" class="form-control" name="operator_service_email" value="<?= htmlspecialchars($settings['operator_service_email'] ?? '') ?>" placeholder="ex. serviceclient@operateur.ci">
              <div class="form-text">Cette adresse recevra les nouvelles déclarations e-Intervention pour prise en charge.</div>
            </div>
          </div>
          <div class="d-flex justify-content-end align-items-center mt-3">
            <button class="btn btn-primary" type="submit"><i class="fas fa-save me-1"></i> Enregistrer</button>
          </div>
        </form>

        <form method="post" action="<?= htmlspecialchars(route_url('/settings/test-email')) ?>" class="mt-3">
          <div class="row g-2 align-items-end">
            <div class="col-12 col-md-8">
              <label class="form-label mb-1">Adresse email de test</label>
              <input type="email" class="form-control" name="test_email" placeholder="ex. supervision@exemple.com" value="<?= htmlspecialchars($test_email_default ?? '') ?>">
            </div>
            <div class="col-12 col-md-4">
              <button type="submit" class="btn btn-outline-secondary w-100 mt-2 mt-md-0"><i class="fas fa-envelope me-1"></i> Email de test</button>
            </div>
          </div>
        </form>
      </div>
    </div>

    <!-- Section Application Mobile -->
    <div class="card shadow-sm mb-3">
      <div class="card-header d-flex align-items-center gap-2">
        <i class="fas fa-mobile-screen-button"></i> Application Mobile
      </div>
      <div class="card-body">
        <form method="post" action="<?= htmlspecialchars(route_url('/settings/save')) ?>" enctype="multipart/form-data">

          <div class="mb-3">
            <label class="form-label fw-semibold">URL de l'API mobile</label>
            <input class="form-control font-monospace" name="mobile_api_base"
                   value="<?= htmlspecialchars($settings['mobile_api_base'] ?? '') ?>"
                   placeholder="ex. http://192.168.1.10/Insuite_backbones/public">
            <div class="form-text">Adresse que l'APK utilisera pour joindre le serveur. Laissez vide pour conserver la valeur de l'APK.</div>
          </div>

          <?php
            $configUrl = rtrim(\App\Core\Config::baseUrl(), '/') . '/api/mobile/config';
          ?>
          <div class="mb-3">
            <label class="form-label fw-semibold">URL de configuration (à coller dans l'APK)</label>
            <div class="input-group">
              <input class="form-control font-monospace" id="configUrlInput"
                     value="<?= htmlspecialchars($configUrl) ?>" readonly>
              <button class="btn btn-outline-secondary" type="button" id="btnCopyConfigUrl">
                <i class="fas fa-copy"></i>
              </button>
            </div>
            <div class="form-text">L'APK appelle automatiquement cette URL au démarrage pour récupérer la configuration.</div>
          </div>

          <hr class="my-3">

          <div class="mb-3">
            <label class="form-label fw-semibold">Logo mobile</label>
            <?php if (!empty($settings['mobile_logo'])): ?>
              <div class="mb-2">
                <img src="<?= htmlspecialchars(base_url('storage/uploads/' . $settings['mobile_logo'])) ?>"
                     alt="Logo mobile actuel" style="max-height:48px; border-radius:6px;">
                <span class="text-muted small ms-2">Logo actuel</span>
              </div>
            <?php elseif (!empty($settings['branding_logo'])): ?>
              <div class="mb-2">
                <img src="<?= htmlspecialchars(base_url('storage/uploads/' . $settings['branding_logo'])) ?>"
                     alt="Logo web (utilisé par défaut)" style="max-height:48px; border-radius:6px;">
                <span class="text-muted small ms-2">Logo web utilisé par défaut</span>
              </div>
            <?php endif; ?>
            <input type="file" class="form-control" name="mobile_logo" accept="image/*">
            <div class="form-text">Affiché dans l'en-tête et le splash screen de l'APK.</div>
          </div>

          <div class="mb-3">
            <label class="form-label fw-semibold">Image de fond — Splash screen</label>
            <?php if (!empty($settings['mobile_splash'])): ?>
              <div class="mb-2">
                <img src="<?= htmlspecialchars(base_url('storage/uploads/' . $settings['mobile_splash'])) ?>"
                     alt="Splash actuel" style="max-height:64px; border-radius:6px;">
                <span class="text-muted small ms-2">Splash actuel</span>
              </div>
            <?php endif; ?>
            <input type="file" class="form-control" name="mobile_splash" accept="image/*">
            <div class="form-text">Image de fond affichée au lancement de l'APK (format 9:16 recommandé).</div>
          </div>

          <div class="mb-3">
            <label class="form-label fw-semibold">Icône de l'application</label>
            <?php if (!empty($settings['mobile_icon'])): ?>
              <div class="mb-2">
                <img src="<?= htmlspecialchars(base_url('storage/uploads/' . $settings['mobile_icon'])) ?>"
                     alt="Icône mobile actuelle" style="max-height:48px; width:48px; object-fit:contain; border-radius:10px; border:1px solid #dee2e6;">
                <span class="text-muted small ms-2">Icône actuelle</span>
              </div>
            <?php elseif (!empty($settings['branding_favicon'])): ?>
              <div class="mb-2">
                <img src="<?= htmlspecialchars(base_url('storage/uploads/' . $settings['branding_favicon'])) ?>"
                     alt="Favicon web utilisé par défaut" style="max-height:48px; width:48px; object-fit:contain; border-radius:10px; border:1px solid #dee2e6;">
                <span class="text-muted small ms-2">Favicon web utilisé par défaut</span>
              </div>
            <?php endif; ?>
            <input type="file" class="form-control" name="mobile_icon" accept="image/*">
            <div class="form-text">Appliquée comme icône PWA/favicon dans le WebView de l'APK. Format carré PNG recommandé (512×512). <em>L'icône native du lanceur Android reste celle compilée dans l'APK.</em></div>
          </div>

          <div class="mb-3">
            <label class="form-label fw-semibold">Image de fond — Écran de connexion</label>
            <?php if (!empty($settings['mobile_login_bg'])): ?>
              <div class="mb-2">
                <img src="<?= htmlspecialchars(base_url('storage/uploads/' . $settings['mobile_login_bg'])) ?>"
                     alt="Fond login mobile actuel" style="max-height:64px; border-radius:6px;">
                <span class="text-muted small ms-2">Fond login actuel</span>
              </div>
            <?php elseif (!empty($settings['branding_login_bg'])): ?>
              <div class="mb-2">
                <img src="<?= htmlspecialchars(base_url('storage/uploads/' . $settings['branding_login_bg'])) ?>"
                     alt="Fond web utilisé par défaut" style="max-height:64px; border-radius:6px;">
                <span class="text-muted small ms-2">Fond web utilisé par défaut</span>
              </div>
            <?php endif; ?>
            <input type="file" class="form-control" name="mobile_login_bg" accept="image/*">
            <div class="form-text">Image de fond de l'écran de connexion de l'APK.</div>
          </div>

          <div class="d-flex justify-content-end mt-2">
            <button class="btn btn-primary" type="submit"><i class="fas fa-save me-1"></i> Enregistrer</button>
          </div>
        </form>
      </div>
    </div>
    <script>
    document.getElementById('btnCopyConfigUrl')?.addEventListener('click', function() {
      const input = document.getElementById('configUrlInput');
      navigator.clipboard?.writeText(input.value).then(() => {
        this.innerHTML = '<i class="fas fa-check"></i>';
        setTimeout(() => { this.innerHTML = '<i class="fas fa-copy"></i>'; }, 1800);
      });
    });
    </script>

    <!-- Section Administration -->
    <div class="card shadow-sm mb-3">
      <div class="card-header">Administration</div>
      <div class="card-body">
        <div class="row g-3">
          <div class="col-12">
            <h6 class="mb-2">Gestion des utilisateurs</h6>
            <a href="<?= htmlspecialchars(route_url('/users')) ?>" class="btn btn-outline-primary me-2">
              <i class="fas fa-users me-1"></i> Utilisateurs
            </a>
            <a href="<?= htmlspecialchars(route_url('/roles')) ?>" class="btn btn-outline-primary">
              <i class="fas fa-user-tag me-1"></i> Rôles
            </a>
          </div>
          <div class="col-12">
            <hr class="my-2">
            <h6 class="mb-2">Extensions de la plateforme</h6>
            <a href="<?= htmlspecialchars(route_url('/settings/modules')) ?>" class="btn btn-outline-dark me-2">
              <i class="fas fa-puzzle-piece me-1"></i> Gestion des modules
            </a>
          </div>
          <div class="col-12">
            <hr class="my-2">
            <h6 class="mb-2">Configuration technique</h6>
            <a href="<?= htmlspecialchars(route_url('/sla')) ?>" class="btn btn-outline-success me-2">
              <i class="fas fa-clock me-1"></i> SLA & Niveaux de service
            </a>
            <a href="<?= htmlspecialchars(route_url('/referentials')) ?>" class="btn btn-outline-warning me-2">
              <i class="fas fa-database me-1"></i> Référentiels
            </a>
            <a href="<?= htmlspecialchars(route_url('/settings/database-alignment')) ?>" class="btn btn-outline-secondary me-2">
              <i class="fas fa-table-columns me-1"></i> Alignement base de données
            </a>
            <a href="<?= htmlspecialchars(route_url('/catalog')) ?>" class="btn btn-outline-info">
              <i class="fas fa-list me-1"></i> Catalogue
            </a>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>
