/* ==========================================================================
   Mini Coloriage v5 — CSS principal
   ========================================================================== */

:root {
  --mc-radius-sm: 14px;
  --mc-radius-md: 22px;
  --mc-radius-lg: 28px;
  --mc-dark: #0f172a;
  --mc-gray-100: #f8fafc;
  --mc-gray-200: #e2e8f0;
  --mc-gray-400: #94a3b8;
  --mc-gray-500: #64748b;
  --mc-gray-600: #475569;
  --mc-blue-50: #eff6ff;
  --mc-blue-100: #dbeafe;
  --mc-blue-600: #2563eb;
  --mc-shadow-soft: 0 8px 30px rgba(15,23,42,0.06);
  --mc-shadow-card: 0 16px 48px rgba(15,23,42,0.08);
  --mc-shadow-elevated: 0 24px 64px rgba(15,23,42,0.12);
  --mc-transition: 0.2s cubic-bezier(0.4,0,0.2,1);
}

.mc-game { max-width:1280px; margin:0 auto; padding:20px; color:var(--mc-dark); font-family:inherit; -webkit-tap-highlight-color:transparent; }
.mc-game *:focus-visible { outline:3px solid var(--mc-blue-600); outline-offset:2px; border-radius:4px; }

/* -- Barre récompenses -- */
.mc-rewards-bar { display:flex; align-items:center; gap:16px; margin-bottom:16px; padding:10px 18px; border-radius:999px; background:var(--mc-dark); color:#fff; font-size:14px; font-weight:600; box-shadow:var(--mc-shadow-card); }
.mc-rewards-stars { display:flex; align-items:center; gap:6px; font-size:18px; }
.mc-rewards-icon { font-size:20px; }
.mc-rewards-badges { display:flex; gap:4px; flex:1; }
.mc-rewards-dashboard-link { margin-left:auto; color:#93c5fd; text-decoration:none; font-size:13px; }
.mc-rewards-dashboard-link:hover { color:#fff; }

/* -- Hero -- */
.mc-hero { display:flex; gap:20px; justify-content:space-between; align-items:stretch; margin-bottom:20px; padding:24px; border-radius:var(--mc-radius-lg); background:rgba(255,255,255,0.92); backdrop-filter:blur(12px); box-shadow:var(--mc-shadow-card); border:1px solid rgba(255,255,255,0.8); }
.mc-hero-left h2 { margin:0 0 8px; font-size:30px; line-height:1.15; letter-spacing:-0.02em; }
.mc-hero-left p { margin:0; color:var(--mc-gray-600); max-width:700px; line-height:1.5; }
.mc-badge { display:inline-block; margin-bottom:10px; padding:5px 12px; border-radius:999px; background:var(--mc-blue-100); color:#0369a1; font-size:13px; font-weight:600; }

/* -- Progression -- */
.mc-progress-card { min-width:260px; padding:20px; border-radius:24px; background:var(--mc-dark); color:#fff; box-shadow:var(--mc-shadow-elevated); flex-shrink:0; }
.mc-progress-label { color:rgba(255,255,255,0.6); font-size:12px; font-weight:500; text-transform:uppercase; letter-spacing:0.05em; }
.mc-progress-value { margin-top:4px; font-size:32px; font-weight:800; font-variant-numeric:tabular-nums; }
.mc-progress-bar { height:10px; margin-top:12px; border-radius:999px; overflow:hidden; background:rgba(255,255,255,0.12); }
#mc-progress-fill { width:0%; height:100%; border-radius:999px; background:linear-gradient(90deg,#38bdf8,#818cf8,#c084fc); background-size:200% 100%; animation:mc-gradient-shift 3s ease infinite; transition:width 0.35s cubic-bezier(0.4,0,0.2,1); }
@keyframes mc-gradient-shift { 0%,100%{background-position:0% 50%} 50%{background-position:100% 50%} }
.mc-progress-text { margin-top:8px; font-size:13px; color:rgba(255,255,255,0.7); }
.mc-status-message { margin-top:6px; font-size:13px; color:#94a3b8; min-height:1.4em; }
.mc-timer { margin-top:8px; font-size:18px; font-weight:700; font-variant-numeric:tabular-nums; color:#38bdf8; }

/* -- Filtres thème -- */
.mc-theme-filters { display:flex; gap:8px; margin-bottom:20px; flex-wrap:wrap; }
.mc-theme-filter { padding:8px 16px; border:2px solid var(--mc-gray-200); border-radius:999px; background:#fff; font-size:13px; font-weight:600; cursor:pointer; transition:all var(--mc-transition); color:var(--mc-dark); }
.mc-theme-filter:hover { border-color:var(--mc-gray-400); }
.mc-theme-filter.active { border-color:var(--mc-dark); background:var(--mc-dark); color:#fff; }
.mc-theme-count { display:inline-block; margin-left:4px; padding:1px 6px; border-radius:999px; background:rgba(0,0,0,0.08); font-size:11px; }
.mc-theme-filter.active .mc-theme-count { background:rgba(255,255,255,0.2); }

/* -- Layout -- */
.mc-layout { display:grid; grid-template-columns:320px 1fr; gap:24px; }
.mc-sidebar { display:flex; flex-direction:column; gap:18px; }
.mc-panel { padding:18px; border-radius:var(--mc-radius-lg); background:#fff; border:1px solid var(--mc-gray-200); box-shadow:var(--mc-shadow-soft); }
.mc-panel h3 { margin:0 0 12px; font-size:18px; font-weight:700; }

/* -- Scènes -- */
.mc-scene-grid { display:grid; gap:8px; max-height:360px; overflow-y:auto; padding-right:4px; }
.mc-scene-grid::-webkit-scrollbar { width:4px; }
.mc-scene-grid::-webkit-scrollbar-thumb { background:var(--mc-gray-400); border-radius:4px; }
.mc-scene-card { display:grid; grid-template-columns:52px 1fr; column-gap:10px; row-gap:2px; align-items:center; width:100%; padding:10px; border-radius:var(--mc-radius-sm); border:2px solid var(--mc-gray-200); background:#fff; text-align:left; cursor:pointer; transition:border-color var(--mc-transition), box-shadow var(--mc-transition); }
.mc-scene-card strong, .mc-scene-card small { grid-column:2; }
.mc-scene-card strong { font-size:13px; }
.mc-scene-card small { color:var(--mc-gray-500); font-size:11px; }
.mc-scene-card:hover { border-color:var(--mc-gray-400); }
.mc-scene-card.active { border-color:var(--mc-dark); box-shadow:0 0 0 1px var(--mc-dark); background:var(--mc-gray-100); }
.mc-scene-card[hidden] { display:none; }

.mc-freemode-card { border-style:dashed; }

.mc-thumb { display:flex; align-items:center; justify-content:center; width:52px; height:52px; border-radius:14px; background:linear-gradient(180deg,#f1f5f9,var(--mc-gray-200)); grid-row:1/-1; }
.mc-thumb-emoji { font-size:24px; }

/* -- Palette -- */
.mc-palette { display:grid; grid-template-columns:repeat(5,1fr); gap:8px; }
.mc-color { width:100%; aspect-ratio:1; border-radius:999px; border:3px solid var(--mc-gray-200); cursor:pointer; transition:transform var(--mc-transition), border-color var(--mc-transition), box-shadow var(--mc-transition); }
.mc-color:hover { transform:scale(1.08); border-color:var(--mc-gray-400); }
.mc-color.active { border-color:var(--mc-dark); transform:scale(1.12); box-shadow:0 0 0 2px var(--mc-dark), 0 4px 12px rgba(15,23,42,0.2); }
.mc-color[data-color="#ffffff"] { background-image:linear-gradient(45deg,#e2e8f0 25%,transparent 25%),linear-gradient(-45deg,#e2e8f0 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#e2e8f0 75%),linear-gradient(-45deg,transparent 75%,#e2e8f0 75%) !important; background-size:8px 8px; background-position:0 0,0 4px,4px -4px,-4px 0; }

.mc-current-color-box { margin-top:14px; padding:10px 12px; border-radius:var(--mc-radius-sm); border:1px solid var(--mc-gray-200); background:var(--mc-gray-100); }
.mc-current-color-label { font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:0.04em; color:var(--mc-gray-500); }
.mc-current-color-row { display:flex; align-items:center; gap:10px; margin-top:4px; }
#mc-current-color-preview { width:32px; height:32px; border-radius:999px; border:2px solid var(--mc-gray-200); background:#ef4444; transition:background-color var(--mc-transition); }
#mc-current-color-code { font-size:12px; font-family:"SF Mono","Fira Code",monospace; color:var(--mc-gray-500); }

.mc-toggle { display:flex; align-items:center; gap:8px; margin-top:10px; font-size:13px; color:#334155; cursor:pointer; }
.mc-toggle input[type="checkbox"] { accent-color:var(--mc-dark); width:15px; height:15px; }

/* -- Boutons -- */
.mc-actions { display:grid; gap:6px; margin-top:14px; }
.mc-actions button, .mc-complete-actions button { padding:10px 12px; border:none; border-radius:var(--mc-radius-sm); background:var(--mc-dark); color:#fff; font-size:13px; font-weight:600; cursor:pointer; transition:opacity var(--mc-transition), transform 0.12s ease; text-align:center; }
.mc-actions button:hover, .mc-complete-actions button:hover { opacity:0.9; }
.mc-actions button:active, .mc-complete-actions button:active { transform:scale(0.97); }
.mc-actions button.secondary, .mc-complete-actions button.secondary { background:#fff; color:var(--mc-dark); border:1px solid var(--mc-gray-200); }
.mc-actions button.secondary:hover { background:var(--mc-gray-100); }
.mc-save-note { margin-top:10px; font-size:11px; color:var(--mc-gray-500); line-height:1.5; }
.mc-save-note a { color:var(--mc-blue-600); }

/* -- Zone de dessin -- */
.mc-main { padding:14px; border-radius:32px; background:#fff; border:1px solid var(--mc-gray-200); box-shadow:var(--mc-shadow-card); }
.mc-canvas-wrap { position:relative; overflow:hidden; border-radius:var(--mc-radius-lg); border:1px solid var(--mc-gray-200); background:linear-gradient(180deg,#f0f9ff 0%,#fff 100%); }
.mc-canvas-container { display:none; }
.mc-canvas-container.active { display:block; }
.mc-canvas-container svg { width:100%; height:auto; display:block; }

.paintable, .paintable-group .group-fill { cursor:pointer; transition:filter 0.15s ease; }
.paintable:hover, .paintable-group:hover .group-fill { filter:drop-shadow(0 0 8px rgba(37,99,235,0.35)) brightness(1.02); }

@keyframes mc-paint-pop { 0%{transform:scale(1)} 50%{transform:scale(1.04)} 100%{transform:scale(1)} }
.mc-just-painted { animation:mc-paint-pop 0.2s ease; }

/* Mode daltonien : patterns sur les zones colorées */
.mc-game.colorblind-mode .paintable[fill]:not([fill="#ffffff"]),
.mc-game.colorblind-mode .group-fill[fill]:not([fill="#ffffff"]) {
  stroke-dasharray: 6 3;
}

/* Mode libre */
.mc-freemode-container { background:#fff; }
#mc-freemode-canvas { width:100%; height:auto; display:block; cursor:crosshair; touch-action:none; }

.mc-footer-note { margin-top:12px; padding:12px 14px; border-radius:var(--mc-radius-md); background:var(--mc-gray-100); color:var(--mc-gray-600); font-size:13px; line-height:1.5; }

/* -- Confettis -- */
.mc-confetti-layer { position:absolute; inset:0; pointer-events:none; overflow:hidden; z-index:5; }
.mc-confetti { position:absolute; top:-20px; width:10px; height:16px; border-radius:3px; opacity:0.9; animation:mc-fall 1400ms cubic-bezier(0.25,0.46,0.45,0.94) forwards; }
@keyframes mc-fall { 0%{transform:translateY(0) rotate(0deg);opacity:1} 80%{opacity:0.8} 100%{transform:translateY(680px) rotate(540deg);opacity:0} }

/* -- Modal -- */
.mc-complete-modal { position:fixed; inset:0; background:rgba(15,23,42,0.6); backdrop-filter:blur(4px); display:none; align-items:center; justify-content:center; z-index:9999; padding:20px; }
.mc-complete-modal.active { display:flex; }
.mc-complete-card { width:100%; max-width:400px; padding:32px 28px; border-radius:var(--mc-radius-lg); background:#fff; text-align:center; box-shadow:var(--mc-shadow-elevated); animation:mc-modal-in 0.3s cubic-bezier(0.34,1.56,0.64,1); }
@keyframes mc-modal-in { from{opacity:0;transform:scale(0.9) translateY(20px)} to{opacity:1;transform:scale(1) translateY(0)} }
.mc-complete-emoji { font-size:48px; margin-bottom:8px; line-height:1; }
.mc-complete-card h3 { margin:0 0 8px; font-size:26px; font-weight:800; }
.mc-complete-card p { margin:0; color:var(--mc-gray-500); line-height:1.5; }
.mc-complete-actions { display:grid; gap:10px; margin-top:20px; }

/* Stars dans la modal */
.mc-modal-stars { font-size:32px; margin:16px 0 8px; letter-spacing:4px; }
.mc-modal-badges { margin:8px 0; font-size:14px; color:var(--mc-gray-600); }

/* Badge modal */
.mc-badge-card { background:linear-gradient(135deg,#fef3c7,#fde68a); }
.mc-badge-modal-icon { font-size:64px; margin-bottom:8px; animation:mc-badge-bounce 0.6s ease; }
@keyframes mc-badge-bounce { 0%{transform:scale(0)} 50%{transform:scale(1.3)} 100%{transform:scale(1)} }

/* -- Fullscreen -- */
.mc-game.is-fullscreen { max-width:none; height:100vh; padding:16px; background:#fff; overflow:auto; }
.mc-game.is-fullscreen .mc-main { min-height:calc(100vh - 220px); }

/* -- Reduced motion -- */
@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { animation-duration:0.01ms !important; transition-duration:0.01ms !important; }
  #mc-progress-fill { animation:none; }
}

/* -- Responsive -- */
@media (max-width:1024px) {
  .mc-layout { grid-template-columns:1fr; }
  .mc-hero { flex-direction:column; }
  .mc-progress-card { min-width:auto; }
  .mc-sidebar { order:2; }
  .mc-main { order:1; }
  .mc-scene-grid { max-height:none; display:flex; overflow-x:auto; gap:8px; padding-bottom:6px; }
  .mc-scene-card { min-width:200px; flex-shrink:0; }
}

@media (max-width:640px) {
  .mc-game { padding:10px; }
  .mc-hero { padding:14px; border-radius:var(--mc-radius-md); }
  .mc-hero-left h2 { font-size:22px; }
  .mc-panel, .mc-main { border-radius:var(--mc-radius-md); }
  .mc-main { padding:8px; }
  .mc-rewards-bar { font-size:12px; padding:8px 14px; }
  .mc-palette { grid-template-columns:repeat(5,1fr); gap:6px; }
  .mc-progress-value { font-size:26px; }
  .mc-theme-filters { gap:6px; }
  .mc-theme-filter { padding:6px 12px; font-size:12px; }
}
