/* Normigo - Pages
   Auth, onboarding, monitoring, rapport, legal, print */

/* === AUTH PAGES (login/register) === */
.auth-container { max-width:400px; margin:3rem auto; padding:0 1rem; }
.auth-container.auth-wide { max-width:480px; }
.auth-header { text-align:center; margin-bottom:2rem; }
.auth-logo {
    width:56px; height:56px; background:var(--blue); color:#fff;
    border-radius:12px; display:inline-flex; align-items:center; justify-content:center;
    font-size:1.8rem; font-weight:800; margin-bottom:.5rem;
}
.auth-header h1 { font-size:1.4rem; margin-top:.25rem; }
.auth-header p { color:var(--text-muted); font-size:.9rem; margin-top:.25rem; }
.auth-footer { text-align:center; margin-top:1.5rem; font-size:.9rem; }
.auth-footer-muted { text-align:center; margin-top:.5rem; font-size:.8rem; color:var(--text-muted); }
.auth-fieldset { border:none; padding:0; margin:0 0 .75rem; }
.auth-fieldset legend { font-weight:600; font-size:.95rem; margin-bottom:.5rem; color:var(--blue); }
.auth-row { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; }
.auth-error { color:var(--danger); font-size:.85rem; min-height:1.25rem; margin-top:.5rem; }
.auth-cgu { font-size:.8rem; color:var(--text-muted); margin-top:.75rem; }
.auth-btn { width:100%; justify-content:center; min-height:44px; margin-top:1rem; }
.auth-banner { padding:12px 16px; border-radius:6px; font-size:.9rem; margin-bottom:1rem; }
.auth-banner-ok { background:var(--green-light); color:var(--ok); border:1px solid var(--ok); }
.auth-banner-warning { background:var(--orange-light); color:var(--warning); border:1px solid var(--warning); }
.auth-banner-error { background:var(--red-light); color:var(--danger); border:1px solid var(--danger); }
.auth-resend { margin-top:.75rem; }
.auth-confirmation { text-align:center; padding:2rem 1rem; }
.auth-confirmation-icon { font-size:3rem; margin-bottom:1rem; }
.auth-confirmation h2 { margin-bottom:.75rem; color:var(--blue); }
.auth-confirmation p { margin-bottom:.5rem; }
.auth-confirmation-note { font-size:.85rem; color:var(--text-muted); margin-top:1rem; }
.auth-confirmation .btn { margin-top:1.5rem; display:inline-block; text-decoration:none; }
@media print { .auth-confirmation .btn { display:none !important; } }

/* === ONBOARDING WIZARD === */
.onboarding-wrap { max-width:600px; margin:2rem auto; padding:0 1rem; }
.onboarding-header { text-align:center; margin-bottom:2rem; }
.onboarding-header .auth-logo { margin-bottom:.5rem; }
.onboarding-header h1 { font-size:1.5rem; margin:.25rem 0 0; }
.onboarding-sub { color:var(--text-muted); font-size:.9rem; margin-top:.25rem; }
.onboarding-steps { display:flex; justify-content:center; gap:0; margin-bottom:1.5rem; }
.onboarding-step {
    display:flex; align-items:center; gap:.4rem;
    font-size:.82rem; color:var(--text-muted);
    padding:.4rem .75rem; border-bottom:2px solid var(--border);
    flex:1; justify-content:center;
}
.onboarding-step.step-current { color:var(--blue); border-bottom-color:var(--blue); font-weight:600; }
.onboarding-step.step-done { color:var(--ok); border-bottom-color:var(--ok); }
.step-num {
    width:22px; height:22px; border-radius:50%;
    background:var(--bg); border:1px solid currentColor;
    display:flex; align-items:center; justify-content:center;
    font-size:.75rem; font-weight:700; flex-shrink:0;
}
.step-done .step-num { background:var(--ok); color:#fff; border-color:var(--ok); }
.step-current .step-num { background:var(--blue); color:#fff; border-color:var(--blue); }
.onboarding-card { padding:1.75rem; }
.onboarding-card-title { font-size:1.15rem; font-weight:700; margin:0 0 .4rem; color:var(--text); }
.onboarding-card-desc { color:var(--text-muted); font-size:.9rem; margin:0 0 1.25rem; }
.onboarding-field { margin-bottom:1rem; }
.onboarding-actions {
    display:flex; justify-content:flex-end; gap:.75rem;
    margin-top:1.5rem; padding-top:1rem; border-top:1px solid var(--border);
}
.onboarding-modeles { display:flex; flex-direction:column; gap:.6rem; margin-bottom:.5rem; }
.onboarding-modele-card {
    display:flex; align-items:center; gap:.75rem;
    padding:.6rem .75rem; background:var(--bg); border-radius:var(--radius);
    border:1px solid var(--border);
}
.onboarding-modele-icon { font-size:1.1rem; line-height:1.4; flex-shrink:0; }
.onboarding-modele-label { font-weight:600; font-size:.9rem; }
.onboarding-modele-desc { font-size:.8rem; color:var(--text-muted); }
.onboarding-finish { text-align:center; padding:1rem 0 .5rem; }
.onboarding-check {
    width:56px; height:56px; border-radius:50%;
    background:var(--ok); color:#fff; font-size:1.8rem;
    display:flex; align-items:center; justify-content:center;
    margin:0 auto .75rem;
}
.onboarding-ctas { display:flex; flex-direction:column; gap:.75rem; margin:1.25rem 0 .5rem; }
.onboarding-ctas .btn { width:100%; justify-content:center; min-height:48px; font-size:1rem; }

/* === MONITORING SUPER-ADMIN === */
.mon-global {
    display:flex; align-items:center; gap:.75rem;
    padding:.75rem 1rem; border-radius:8px; margin-bottom:1.25rem;
    font-weight:600; font-size:.9rem;
}
.mon-global-ok { background:var(--green-light); color:var(--ok); border:1px solid var(--ok); }
.mon-global-danger { background:var(--red-light); color:var(--danger); border:1px solid var(--danger); }
.mon-global-icon { font-size:1.25rem; }
.mon-global-time { margin-left:auto; font-weight:400; font-size:.78rem; opacity:.7; }

.mon-section-title {
    font-size:.8rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em;
    color:var(--text-muted); margin:1.5rem 0 .75rem; padding-bottom:.4rem;
    border-bottom:2px solid var(--border);
}
.mon-section-title:first-of-type { margin-top:.5rem; }

/* Jauges */
.mon-gauges {
    display:grid; grid-template-columns:repeat(auto-fill, minmax(200px,1fr));
    gap:.75rem; margin-bottom:.5rem;
}
.mon-gauge-card {
    padding:1rem 1.125rem; border-radius:8px; background:var(--bg);
    border:1px solid var(--border);
}
.mon-gauge-header { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:.5rem; }
.mon-gauge-label { font-weight:600; font-size:.9rem; }
.mon-gauge-pct { font-weight:700; font-size:1.1rem; }
.mon-text-ok { color:var(--ok); }
.mon-text-warning { color:var(--warning); }
.mon-text-danger { color:var(--danger); }
.mon-gauge-track { height:8px; border-radius:4px; background:var(--border); overflow:hidden; margin-bottom:.4rem; }
.mon-gauge-fill { height:100%; border-radius:4px; transition:width .4s ease; }
.mon-gauge-ok { background:var(--ok); }
.mon-gauge-warning { background:var(--warning); }
.mon-gauge-danger { background:var(--danger); }
.mon-gauge-detail { font-size:.78rem; color:var(--text-muted); }

/* Grille d'infos */
.mon-info-grid { display:flex; flex-direction:column; gap:2px; margin-bottom:.5rem; }
.mon-info-row {
    display:flex; align-items:center; gap:.5rem;
    padding:.5rem .75rem; background:var(--bg); border-radius:4px; font-size:.85rem;
}
.mon-info-row:nth-child(even) { background:var(--bg-card); }
.mon-info-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; }
.mon-dot-ok { background:var(--ok); }
.mon-dot-danger { background:var(--danger); }
.mon-info-label { font-weight:600; min-width:10rem; color:var(--text); }
.mon-info-value { color:var(--text-muted); }

/* Services */
.mon-svc-grid {
    display:grid; grid-template-columns:repeat(auto-fill, minmax(160px,1fr));
    gap:.5rem; margin-bottom:.5rem;
}
.mon-svc-card {
    display:flex; align-items:center; gap:.75rem;
    padding:.75rem 1rem; border-radius:8px; border:1px solid var(--border);
    background:var(--bg-card);
}
.mon-svc-card-ok .mon-svc-dot { background:var(--ok); box-shadow:0 0 6px var(--ok); }
.mon-svc-card-danger .mon-svc-dot { background:var(--danger); box-shadow:0 0 6px var(--danger); }
.mon-svc-card-danger { border-color:var(--danger); background:var(--red-light); }
.mon-svc-dot { width:10px; height:10px; border-radius:50%; flex-shrink:0; }
.mon-svc-name { font-weight:600; font-size:.85rem; text-transform:capitalize; }
.mon-svc-status { font-size:.75rem; color:var(--text-muted); }

/* Table des tables PG */
.mon-table {
    width:100%; border-collapse:collapse; font-size:.85rem; margin-bottom:.5rem;
}
.mon-table th {
    text-align:left; padding:.4rem .75rem; font-weight:600;
    border-bottom:2px solid var(--border); color:var(--text-muted);
    font-size:.78rem; text-transform:uppercase; letter-spacing:.04em;
}
.mon-table td { padding:.4rem .75rem; border-bottom:1px solid var(--border); }

/* Details / logs */
.mon-details { margin-top:.5rem; margin-bottom:.5rem; }
.mon-details summary { cursor:pointer; font-weight:600; font-size:.85rem; padding:.5rem 0; color:var(--blue); }
.mon-details summary:hover { text-decoration:underline; }
.mon-pre {
    background:#1a1a1a; color:#e0e0e0; padding:.75rem 1rem; border-radius:6px;
    font-size:.72rem; line-height:1.6; max-height:300px; overflow:auto;
    white-space:pre-wrap; word-break:break-all;
}
.mon-empty { font-size:.85rem; margin-bottom:.75rem; }

/* Email log */
.mon-email-list { display:flex; flex-direction:column; gap:4px; padding:.5rem 0; }
.mon-email-row {
    display:flex; flex-wrap:wrap; gap:.5rem; align-items:center;
    padding:.5rem .75rem; border-radius:6px; font-size:.82rem; background:var(--bg);
    border-left:3px solid var(--border);
}
.mon-email-ok { border-left-color:var(--ok); }
.mon-email-warning { border-left-color:var(--warning); }
.mon-email-danger { border-left-color:var(--danger); }
.mon-email-status { font-weight:700; min-width:70px; }
.mon-email-to { color:var(--text); font-weight:500; }
.mon-email-subject { color:var(--text-muted); flex:1; }
.mon-email-date { color:var(--text-muted); font-size:.75rem; }
.mon-email-error { width:100%; font-size:.78rem; color:var(--danger); font-style:italic; padding-top:2px; }

/* Erreurs monitoring */
.mon-err-summary { display:flex; gap:.5rem; flex-wrap:wrap; margin-bottom:.75rem; }
.mon-err-badge {
    display:flex; align-items:center; gap:.5rem;
    padding:.5rem 1rem; border-radius:8px; border:1px solid var(--border);
    background:var(--bg-card);
}
.mon-err-badge-ok { border-color:var(--ok); }
.mon-err-badge-ok .mon-err-count { color:var(--ok); }
.mon-err-badge-warning { border-color:var(--warning); background:var(--orange-light); }
.mon-err-badge-warning .mon-err-count { color:var(--warning); }
.mon-err-badge-danger { border-color:var(--danger); background:var(--red-light); }
.mon-err-badge-danger .mon-err-count { color:var(--danger); }
.mon-err-count { font-size:1.25rem; font-weight:700; }
.mon-err-label { font-size:.78rem; color:var(--text-muted); }

.mon-err-list { display:flex; flex-direction:column; gap:2px; padding:.5rem 0; }
.mon-err-row {
    display:flex; gap:.5rem; align-items:center; flex-wrap:wrap;
    padding:.35rem .75rem; border-radius:4px; font-size:.8rem;
    background:var(--bg); border-left:3px solid var(--border);
}
.mon-err-warning { border-left-color:var(--warning); }
.mon-err-danger { border-left-color:var(--danger); }
.mon-err-ts { color:var(--text-muted); font-size:.75rem; min-width:5.5rem; }
.mon-err-status { font-weight:700; min-width:2.5rem; }
.mon-err-method { font-weight:600; min-width:3rem; color:var(--text-muted); }
.mon-err-url { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mon-err-msg { width:100%; font-size:.75rem; color:var(--danger); font-style:italic; padding-top:2px; }

/* Sparklines historique */
.mon-history { margin-top:.5rem; }
.mon-sparklines {
    display:grid; grid-template-columns:repeat(auto-fill, minmax(220px,1fr));
    gap:.75rem; margin-bottom:.5rem;
}
.mon-spark-card {
    padding:.75rem 1rem; border-radius:8px; background:var(--bg-card);
    border:1px solid var(--border);
}
.mon-spark-header { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:.35rem; }
.mon-spark-label { font-weight:600; font-size:.82rem; }
.mon-spark-current { font-weight:700; font-size:1rem; }
.mon-spark-card svg { display:block; margin:.25rem 0; }
.mon-spark-footer { display:flex; justify-content:space-between; font-size:.7rem; color:var(--text-muted); }

@media (max-width: 767px) {
    .mon-gauges { grid-template-columns:1fr 1fr; }
    .mon-svc-grid { grid-template-columns:1fr 1fr; }
    .mon-sparklines { grid-template-columns:1fr 1fr; }
    .mon-info-label { min-width:7rem; }
    .mon-global { font-size:.82rem; }
}

/* === RAPPORT DE CONFORMITE === */
.rapport-filters {
    display:flex; gap:1rem; margin-bottom:1rem; flex-wrap:wrap; padding:.75rem;
    background:var(--bg-card); border-radius:var(--radius); border:1px solid var(--gray-200);
}
.rapport-filters .form-group { margin:0; min-width:150px; }
.rapport-period-bar { display:flex; gap:.5rem; margin-bottom:1.25rem; flex-wrap:wrap; }
.rapport-period-active { background:var(--blue) !important; color:#fff !important; border-color:var(--blue) !important; }
.rapport-score-card { margin-bottom:1.25rem; }
.rapport-score-inner { display:flex; align-items:center; gap:1.5rem; }
.rapport-score-circle {
    flex-shrink:0; width:90px; height:90px; border-radius:50%; border:5px solid;
    display:flex; align-items:center; justify-content:center;
    font-size:1.5rem; font-weight:700;
}
.rapport-score-title { font-weight:600; font-size:1rem; margin-bottom:.25rem; }
.rapport-score-sub { font-size:.85rem; color:var(--text-muted); margin-bottom:.5rem; }
.rapport-score-axes { display:flex; gap:.75rem; flex-wrap:wrap; margin-bottom:.5rem; }
.rapport-axis { font-size:.75rem; background:var(--bg); border:1px solid var(--border); border-radius:4px; padding:2px 8px; color:var(--text-muted); }
.rapport-disclaimer { font-size:.78rem; color:var(--text-muted); font-style:italic; margin:0; }
.rapport-stats { margin-top:.75rem; margin-bottom:0; }
.rapport-alert {
    margin:.75rem 0 0; padding:.5rem .75rem;
    background:var(--red-light); border-left:3px solid var(--red);
    border-radius:4px; font-size:.85rem; color:var(--red); font-weight:500;
}
.rapport-print-header { display:none; }
.rapport-print-footer { display:none; }
.loading-msg { color:var(--text-muted); text-align:center; padding:2rem; }

@media print {
    .rapport-period-bar, .page-header .btn { display:none !important; }
    .rapport-print-header {
        display:flex; flex-direction:column; gap:.25rem;
        margin-bottom:1.5rem; padding-bottom:.75rem;
        border-bottom:2px solid #000; font-size:.9rem;
    }
    .rapport-print-header strong { font-size:1.1rem; }
    .rapport-print-date { color:#666; font-size:.8rem; }
    .rapport-print-footer {
        display:block; margin-top:2rem; padding-top:.5rem;
        border-top:1px solid #ddd; font-size:.75rem; color:#888; font-style:italic;
    }
    .rapport-score-circle { width:70px; height:70px; font-size:1.2rem; }
}

/* === LEGAL PAGES === */
.legal-content { max-width:720px; margin:0 auto; line-height:1.7; }
.legal-content h2 { font-size:1.3rem; margin:1.5rem 0 .75rem; color:var(--blue); border-bottom:2px solid var(--blue-light); padding-bottom:.25rem; }
.legal-content h3 { font-size:1.1rem; margin:1.25rem 0 .5rem; }
.legal-content h4 { font-size:1rem; margin:1rem 0 .5rem; color:var(--text-muted); }
.legal-content p { margin-bottom:.75rem; }
.legal-content ul { margin:0 0 .75rem 1.5rem; }
.legal-content li { margin-bottom:.25rem; }
.legal-content table { width:100%; border-collapse:collapse; margin:.75rem 0 1rem; font-size:.9rem; }
.legal-content th, .legal-content td { padding:.5rem .75rem; border:1px solid var(--border); text-align:left; }
.legal-content th { background:var(--blue-light); font-weight:600; }
.legal-content a { color:var(--blue); }
.legal-content em { color:var(--text-muted); }

/* === PREFERENCES NOTIFICATIONS === */
.pref-group { border: 1px solid var(--border); border-radius: var(--radius); padding: 1rem 1.25rem; margin-bottom: 1.25rem; }
.pref-group legend { font-weight: 600; color: var(--text); padding: 0 .4rem; font-size: .95rem; }
.form-check { display: flex; align-items: center; gap: .6rem; padding: .35rem 0; }
.form-check-input { width: 1.1rem; height: 1.1rem; flex-shrink: 0; accent-color: var(--blue); cursor: pointer; }
.form-check-label { cursor: pointer; }
