:root {
  --acc: #169B5E;
  --acc-hover: #12854e;
  --glass-border: rgba(255,255,255,0.6);
  --glass-bg: rgba(255,255,255,0.85);
  --text-dark: #1e293b;
  --text-muted: #64748b;
}

body { background-color: #f1f5f9; font-family: system-ui, -apple-system, sans-serif; }

/* --- GLASS UI COMMUNE --- */
.glass-card, .admin-card, .module-card {
  background: var(--glass-bg);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  border: 1px solid var(--glass-border);
  border-radius: 20px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.03);
  transition: transform 0.2s, box-shadow 0.2s;
  overflow: hidden;
}
.glass-card:hover, .admin-card:hover, .module-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 30px rgba(22, 155, 94, 0.15);
  border-color: var(--acc);
}

/* --- LES LOGOS SYMPAS (Bubbles) --- */
.glass-btn {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; min-height: 160px; padding: 1.5rem;
  text-decoration: none; border-radius: 20px;
  background: rgba(255, 255, 255, 0.7); border: 1px solid rgba(255, 255, 255, 0.6);
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.03); backdrop-filter: blur(10px);
  transition: all 0.3s; height: 100%; color: var(--text-dark);
}
.glass-btn:hover {
  transform: translateY(-5px); background: rgba(255, 255, 255, 0.95);
  border-color: var(--acc); box-shadow: 0 15px 35px rgba(22, 155, 94, 0.15);
}

.icon-bubble {
  width: 60px; height: 60px; border-radius: 18px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.8rem; margin-bottom: 12px; transition: transform 0.3s ease;
  background: linear-gradient(135deg, #f8f9fa, #e9ecef); color: #495057;
}
.glass-btn:hover .icon-bubble { transform: scale(1.1) rotate(-5deg); }

/* Couleurs Bubbles */
.glass-btn.accent .icon-bubble { background: linear-gradient(135deg, #d1e7dd, #a3cfbb); color: #0f5132; }
.glass-btn.primary .icon-bubble { background: linear-gradient(135deg, #cfe2ff, #9ec5fe); color: #052c65; }
.glass-btn.warning .icon-bubble { background: linear-gradient(135deg, #fff3cd, #ffe69c); color: #664d03; }
.glass-btn.danger .icon-bubble { background: linear-gradient(135deg, #fce7f3, #fbcfe8); color: #be185d; }
.glass-btn.info .icon-bubble { background: linear-gradient(135deg, #cff4fc, #9eeaf9); color: #055160; }
.glass-btn.secondary .icon-bubble { background: linear-gradient(135deg, #e2e3e5, #d3d6d8); color: #41464b; }
.glass-btn.dark .icon-bubble { background: linear-gradient(135deg, #212529, #000000); color: #fff; }
.glass-btn.news .icon-bubble { background: linear-gradient(135deg, #fee2e2, #fecaca); color: #991b1b; }
.glass-btn.docs .icon-bubble { background: linear-gradient(135deg, #e0e7ff, #c7d2fe); color: #3730a3; }
.glass-btn.backup .icon-bubble { background: linear-gradient(135deg, #f3f4f6, #d1d5db); color: #1f2937; }
.glass-btn.stats .icon-bubble { background: linear-gradient(135deg, #fae8ff, #e9d5ff); color: #6b21a8; }

.glass-title { font-size: 1.1rem; font-weight: 800; margin-bottom: 4px; }
.glass-desc { font-size: 0.8rem; color: var(--text-muted); font-weight: 600; }

/* --- BARRE D'ACTIONS FLOTTANTE (ADMIN) --- */
.actions-bar {
    background: rgba(255,255,255,0.9); backdrop-filter: blur(10px);
    border-bottom: 1px solid #e2e8f0; position: sticky; top: 0; z-index: 100;
    padding: 15px 0; margin-bottom: 20px;
}

/* --- STYLE ACTU PRO --- */
.news-card {
    background: #fff; border-radius: 20px; overflow: hidden; border: 1px solid #e2e8f0;
    transition: transform 0.2s; height: 100%; display: flex; flex-direction: column;
}
.news-card:hover { transform: translateY(-4px); box-shadow: 0 10px 25px rgba(0,0,0,0.08); border-color: var(--acc); }
.news-img-wrap { height: 180px; background: #f1f5f9; position: relative; overflow: hidden; }
.news-img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s; }
.news-card:hover .news-img { transform: scale(1.05); }
.news-badge { position: absolute; top: 15px; right: 15px; padding: 4px 10px; border-radius: 8px; font-weight: 800; font-size: 0.75rem; background: #fff; color: #333; }
.news-body { padding: 20px; flex: 1; display: flex; flex-direction: column; }
.news-meta { font-size: 0.8rem; color: #94a3b8; margin-bottom: 10px; }