/* =========================================================
Iliade – Stats & SEO (admin)
Fichier : assets/css/admin-stats.css
========================================================= */
/* ---------- Variables (fallback si ton thème n’en fournit pas) ---------- */
:root {
--ili-bg: #f6f7f9;
--ili-card: #ffffff;
--ili-border: #e6e7eb;
--ili-text: #111827;
--ili-muted: #6b7280;
--ili-primary: #2563eb;
--ili-success: #10b981;
--ili-warn: #f59e0b;
--ili-danger: #ef4444;
--ili-radius: 12px;
--ili-gap: 16px;
--ili-shadow: 0 1px 2px rgba(0,0,0,.04), 0 2px 8px rgba(0,0,0,.04);
}
/* ---------- Wrapper page ---------- */
.wrap.iliade-stats {
max-width: 100% !important;
padding: clamp(16px, 3vw, 32px) !important;
box-sizing: border-box;
background: var(--ili-bg);
}
/* Titres & textes */
.wrap.iliade-stats h1,
.wrap.iliade-stats h2,
.wrap.iliade-stats h3 { color: var(--ili-text); }
.wrap.iliade-stats .description,
.wrap.iliade-stats .muted { color: var(--ili-muted); }
/* ---------- Onglets ---------- */
.iliade-tabs {
display: flex;
gap: 8px;
flex-wrap: wrap;
margin: 12px 0 16px;
}
.iliade-tab-btn {
appearance: none;
border: 1px solid var(--ili-border);
background: var(--ili-card);
color: var(--ili-text);
border-radius: 999px;
padding: 8px 14px;
cursor: pointer;
font-weight: 600;
line-height: 1;
transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.iliade-tab-btn:hover { border-color: var(--ili-primary); }
.iliade-tab-btn.active {
background: var(--ili-text);
color: #fff;
border-color: var(--ili-text);
}
.iliade-tab { display: none; }
.iliade-tab.active { display: block; }
/* ---------- Grilles ---------- */
.grid {
display: grid;
gap: var(--ili-gap);
grid-template-columns: repeat(12, minmax(0, 1fr));
}
.kpi-grid .card { grid-column: span 3; }
.charts-grid .card:nth-child(1) { grid-column: span 7; }
.charts-grid .card:nth-child(2) { grid-column: span 5; }
.lists-grid .card { grid-column: span 4; }
/* ---------- Cartes ---------- */
.card {
background: var(--ili-card);
border: 1px solid var(--ili-border);
border-radius: var(--ili-radius);
padding: 16px;
box-shadow: var(--ili-shadow);
min-width: 0; /* évite tout overflow en grid */
overflow: hidden;
}
.card-title {
margin: 0 0 10px;
font-size: 18px;
font-weight: 700;
color: var(--ili-text);
}
/* ---------- KPI ---------- */
.kpi {
display: flex;
align-items: center;
justify-content: space-between;
min-height: 78px;
}
.kpi-label {
display: block;
font-size: 12px;
color: var(--ili-muted);
text-transform: uppercase;
letter-spacing: .04em;
}
.kpi-value {
display: block;
font-size: 26px;
font-weight: 800;
color: var(--ili-text);
margin-top: 2px;
}
/* ---------- Tableaux & listes ---------- */
.table {
width: 100%;
border-collapse: collapse;
}
.table th, .table td {
padding: 10px 12px;
border-bottom: 1px solid var(--ili-border);
text-align: left;
vertical-align: top;
white-space: nowrap;
}
.table th {
font-size: 12px;
text-transform: uppercase;
color: var(--ili-muted);
letter-spacing: .04em;
}
.table td { white-space: normal; }
.table a.button { white-space: nowrap; }
.ranked-list {
margin: 0;
padding: 0 0 0 18px;
max-height: 420px; /* liste longue => scroll interne */
overflow: auto;
}
.ranked-list li {
padding: 4px 0;
line-height: 1.35;
color: var(--ili-text);
word-break: break-word;
}
/* ---------- Badges ---------- */
.badge {
display: inline-block;
font-size: 11px;
padding: 2px 6px;
border-radius: 999px;
border: 1px solid var(--ili-border);
color: var(--ili-text);
background: #fff;
}
/* ---------- Canvases / graphs ---------- */
canvas {
display: block;
width: 100% !important;
height: 280px !important; /* hauteur consistante */
background: #fff;
border-radius: 8px;
}
.charts-grid .card canvas + canvas { margin-top: 16px; }
/* Empêche les cartes vides d’écraser la mise en page */
.card:has(canvas)::after {
content: '';
display: block;
}
/* ---------- SEO : KPIs + ring ---------- */
.seo-kpis {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 12px;
}
.seo-kpi {
border: 1px solid var(--ili-border);
border-radius: var(--ili-radius);
background: var(--ili-card);
padding: 12px;
}
.seo-kpi .label {
font-size: 12px;
color: var(--ili-muted);
text-transform: uppercase;
letter-spacing: .04em;
}
.seo-kpi .value {
font-size: 22px;
font-weight: 700;
margin-top: 4px;
color: var(--ili-text);
}
.seo-problems {
display: grid;
grid-template-columns: repeat(12, minmax(0, 1fr));
gap: var(--ili-gap);
}
.seo-card { grid-column: span 6; }
.ring { width: 120px; height: 120px; }
.ring .track { stroke: var(--ili-border); }
.ring .value { transition: stroke-dashoffset .6s ease; stroke: var(--ili-primary); }
.ring.green .value { stroke: var(--ili-success); }
.ring.orange .value { stroke: var(--ili-warn); }
.ring.red .value { stroke: var(--ili-danger); }
/* ---------- Liens et boutons ---------- */
.wrap.iliade-stats a { color: var(--ili-primary); }
.wrap.iliade-stats .button {
border-radius: 8px;
padding: 6px 10px;
line-height: 1.2;
}
.wrap.iliade-stats .button.button-primary {
background: var(--ili-primary);
border-color: var(--ili-primary);
}
/* ---------- Responsif ---------- */
/* < 1200px : charts en pile */
@media (max-width: 1200px) {
.charts-grid .card { grid-column: span 12 !important; }
}
/* < 1024px : KPI sur 2 colonnes, listes & SEO en pile */
@media (max-width: 1024px) {
.kpi-grid .card { grid-column: span 6; }
.lists-grid .card { grid-column: span 12; }
.seo-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.seo-card { grid-column: span 12; }
}
/* < 782px (breakpoint WP admin) : tout en une colonne */
@media (max-width: 782px) {
.grid { grid-template-columns: 1fr; }
.kpi-grid .card,
.charts-grid .card,
.lists-grid .card,
.seo-card { grid-column: auto; }
.table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.kpi { min-height: 72px; }
}
/* ---------- Sécurité overflow ---------- */
.iliade-stats * { box-sizing: border-box; }
.iliade-stats img, .iliade-stats svg { max-width: 100%; height: auto; }
.iliade-stats .card, .iliade-stats .grid > * { min-width: 0; }
Warning: Cannot modify header information - headers already sent by (output started at /home/u358607643/domains/pixiplace.fr/public_html/wp-content/themes/iliade-game/admin/iliade-stats-dashboard.php:14) in /home/u358607643/domains/pixiplace.fr/public_html/wp-includes/pluggable.php on line 1450
Warning: Cannot modify header information - headers already sent by (output started at /home/u358607643/domains/pixiplace.fr/public_html/wp-content/themes/iliade-game/admin/iliade-stats-dashboard.php:14) in /home/u358607643/domains/pixiplace.fr/public_html/wp-includes/pluggable.php on line 1453