/* =========================================================
   Groupe VIRAS — thème de l'administration (EasyAdmin)
   Couleurs de la marque : bleu nuit #0F2B45, or #F0C95C
   ========================================================= */

:root {
    --viras-navy: #0f2b45;
    --viras-navy-2: #163a57;
    --viras-gold: #f0c95c;
    --viras-gold-dark: #c9a227;
    --viras-surface: #ffffff;
    --viras-surface-2: #f6f8fb;
    --viras-border: #e6eaf0;
    --viras-text: #0f172a;
    --viras-muted: #64748b;

    --color-primary: #1d4f7a;
    --link-color: #1d4f7a;
    --button-primary-bg: var(--viras-navy);
    --button-primary-border-color: var(--viras-navy);
    --button-primary-hover-bg: var(--viras-navy-2);

    --sidebar-bg: var(--viras-navy);
    --sidebar-menu-color: rgba(255, 255, 255, .78);
    --sidebar-menu-icon-color: rgba(255, 255, 255, .55);
    --sidebar-menu-header-color: rgba(240, 201, 92, .85);
    --sidebar-menu-active-item-bg: rgba(240, 201, 92, .14);
    --sidebar-menu-active-item-color: #ffffff;
    --sidebar-menu-badge-bg: #dc2626;
    --sidebar-menu-badge-color: #ffffff;
    --sidebar-menu-badge-active-bg: #dc2626;
    --sidebar-menu-badge-active-color: #ffffff;
}

.ea-dark-scheme {
    --viras-surface: #18181b;
    --viras-surface-2: #111113;
    --viras-border: #2a2a30;
    --viras-text: #f4f4f5;
    --viras-muted: #a1a1aa;
    --color-primary: var(--viras-gold);
    --link-color: var(--viras-gold);
    --sidebar-bg: #0b1f33;
}

/* ---------- Barre latérale ---------- */
.sidebar { background: var(--sidebar-bg); }
.sidebar .logo, .sidebar .logo a { color: #fff !important; }
.sidebar .logo { display: flex; align-items: center; gap: 10px; font-size: 17px; letter-spacing: .2px; }
.sidebar .logo b { color: var(--viras-gold); }
.viras-logo { width: 34px; height: 34px; border-radius: 9px; object-fit: cover; box-shadow: 0 0 0 2px rgba(240, 201, 92, .35); }
.main-menu .menu-item.active > .menu-item-contents { box-shadow: inset 3px 0 0 var(--viras-gold); border-radius: 8px; }
.main-menu .menu-header .menu-item-label { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.sidebar .main-menu a:hover { color: #fff; }

/* ---------- Boutons ---------- */
.btn-primary, .action-new.btn-primary, .action-saveAndReturn, .action-saveAndContinue.btn-primary {
    border-radius: 10px;
}
.btn { border-radius: 10px; }

/* ---------- Pages ---------- */
.content-header-title .title { font-weight: 800; letter-spacing: -.01em; }
.content-panel, .form-fieldset, .datagrid { border-radius: 14px; }
.form-fieldset-title { font-weight: 700; }
.field-image img, .ea-lightbox-thumbnail img { border-radius: 10px; object-fit: cover; }
td.field-image img { width: 64px; height: 44px; }

/* ---------- Tableau de bord ---------- */
.viras-dash { display: grid; gap: 22px; padding-bottom: 32px; color: var(--viras-text); }

.viras-hero {
    display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap;
    padding: 28px 30px; border-radius: 20px; color: #fff;
    background:
        radial-gradient(1200px 300px at 100% 0%, rgba(240, 201, 92, .22), transparent 60%),
        linear-gradient(135deg, var(--viras-navy), var(--viras-navy-2));
    box-shadow: 0 18px 40px -18px rgba(15, 43, 69, .55);
}
.viras-hero h1 { margin: 2px 0 6px; font-size: 28px; font-weight: 800; color: #fff; }
.viras-hero p { margin: 0; opacity: .85; max-width: 560px; }
.viras-hero-kicker { text-transform: capitalize; font-size: 13px; color: var(--viras-gold); opacity: 1 !important; }
.viras-hero-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.viras-btn-gold { background: var(--viras-gold); color: var(--viras-navy) !important; font-weight: 700; border: 0; padding: 10px 18px; }
.viras-btn-gold:hover { background: #f5d77f; }
.viras-btn-ghost { background: rgba(255, 255, 255, .1); color: #fff !important; border: 1px solid rgba(255, 255, 255, .25); padding: 10px 18px; }
.viras-btn-ghost:hover { background: rgba(255, 255, 255, .18); }

.viras-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
.viras-stat {
    display: grid; gap: 4px; padding: 20px; border-radius: 16px; text-decoration: none !important;
    background: var(--viras-surface); border: 1px solid var(--viras-border); color: var(--viras-text);
    transition: transform .15s ease, box-shadow .15s ease;
}
.viras-stat:hover { transform: translateY(-2px); box-shadow: 0 12px 28px -16px rgba(15, 23, 42, .35); }
.viras-stat.is-alert { border-color: rgba(220, 38, 38, .45); }
.viras-stat-icon {
    width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; margin-bottom: 8px;
    color: var(--c); background: color-mix(in srgb, var(--c) 12%, transparent); font-size: 18px;
}
.viras-stat-value { font-size: 30px; font-weight: 800; line-height: 1; color: var(--viras-text); }
.viras-stat-label { font-weight: 600; color: var(--viras-text); }
.viras-stat-sub { font-size: 12.5px; color: var(--viras-muted); }

.viras-grid { display: grid; grid-template-columns: 1.6fr 1fr; gap: 16px; }
@media (max-width: 1100px) { .viras-grid { grid-template-columns: 1fr; } }

.viras-card { background: var(--viras-surface); border: 1px solid var(--viras-border); border-radius: 16px; padding: 18px; }
.viras-card header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.viras-card h2 { font-size: 15px; font-weight: 700; margin: 0; color: var(--viras-text); }
.viras-card h2 i { color: var(--viras-gold-dark); margin-right: 6px; }
.viras-card header a { font-size: 13px; }

.viras-row {
    display: flex; align-items: center; gap: 12px; padding: 10px; border-radius: 12px;
    text-decoration: none !important; color: var(--viras-text);
}
.viras-row:hover { background: var(--viras-surface-2); }
.viras-row-main { display: grid; min-width: 0; flex: 1; }
.viras-row-main strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 600; color: var(--viras-text); }
.viras-row-main small { color: var(--viras-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.viras-thumb {
    width: 56px; height: 40px; border-radius: 9px; flex-shrink: 0; display: grid; place-items: center;
    background: var(--viras-surface-2) center/cover no-repeat; color: var(--viras-muted);
}
.viras-avatar {
    width: 38px; height: 38px; border-radius: 50%; flex-shrink: 0; display: grid; place-items: center;
    background: var(--viras-navy); color: var(--viras-gold); font-weight: 800;
}
.viras-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #dc2626; vertical-align: middle; }
.viras-pill { font-size: 11.5px; font-weight: 600; padding: 3px 10px; border-radius: 999px; background: var(--viras-surface-2); color: var(--viras-muted); white-space: nowrap; }
.viras-pill.is-green { background: rgba(22, 163, 74, .12); color: #16a34a; }
.viras-pill.is-amber { background: rgba(217, 119, 6, .12); color: #d97706; }

.viras-empty { text-align: center; padding: 28px 10px; color: var(--viras-muted); }
.viras-empty i { font-size: 28px; color: var(--viras-gold-dark); margin-bottom: 8px; }

.viras-shortcuts-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; }
.viras-shortcuts-grid a {
    display: flex; align-items: center; gap: 10px; padding: 14px; border-radius: 12px; font-weight: 600;
    background: var(--viras-surface-2); color: var(--viras-text); text-decoration: none !important; border: 1px solid transparent;
}
.viras-shortcuts-grid a:hover { border-color: var(--viras-gold); }
.viras-shortcuts-grid i { color: var(--viras-gold-dark); width: 18px; text-align: center; }

/* ---------- Page de connexion ---------- */
body.page-login { background: linear-gradient(135deg, var(--viras-navy), var(--viras-navy-2)) fixed; }
body.page-login .login-wrapper .main-header .logo { color: #fff; line-height: 1.3; }
body.page-login .login-wrapper section.content { border-radius: 18px; box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .45); }
body.page-login .btn-primary { background: var(--viras-gold); border-color: var(--viras-gold); color: var(--viras-navy); font-weight: 700; }

/* ---------- Interrupteurs & focus ---------- */
.form-check-input:checked { background-color: var(--viras-navy); border-color: var(--viras-navy); }
.ea-dark-scheme .form-check-input:checked { background-color: var(--viras-gold-dark); border-color: var(--viras-gold-dark); }
.form-control:focus, .form-select:focus { border-color: var(--viras-gold-dark); box-shadow: 0 0 0 3px rgba(240, 201, 92, .25); }

/* ---------- Galerie des publications ---------- */
.field-collection .accordion-item, .field-collection-item { border-radius: 12px; }
.field-collection .field-image img { max-height: 90px; }
.field-collection .accordion-body .form-group,
.field-collection .field-collection-item .form-group { display: flex; flex-direction: column; align-items: stretch; gap: 4px; }
.field-collection .accordion-body .form-group > label,
.field-collection .accordion-body .form-group > .form-label { width: auto !important; text-align: left !important; padding: 0 !important; }
.field-collection .accordion-body .form-widget,
.field-collection .accordion-body .ea-fileupload,
.field-collection .accordion-body input.form-control { width: 100% !important; max-width: 100% !important; }
.field-collection .accordion-body .field-integer input { max-width: 140px !important; }

.viras-alert { display: flex; gap: 12px; align-items: flex-start; padding: 14px 18px; border-radius: 14px; background: #fffbeb; border: 1px solid #fcd34d; color: #78350f; }
.viras-alert i { color: #d97706; margin-top: 3px; }
.ea-dark-scheme .viras-alert { background: rgba(217, 119, 6, .12); color: #fde68a; border-color: rgba(217, 119, 6, .4); }
