/* ========================================================================
   IDLZ — habillage KAWAII CARTOON B (charte fleet-wide, DECISION C6/C7) :
   aplats de couleur, contours epais, ombres PLATES (zero flou), coins bien
   ronds, reflets brillants statiques (--cb-sheen). Palette : atelier ambre
   par defaut (surchargee par sites.js selon le site choisi), accent or du
   hub (#ffc20e). Deux themes soignes (clair/sombre), pilotes par le choix
   EXPLICITE du hub (html[data-theme], /_kit/theme.js) plutot que l'OS seul.
   ======================================================================== */

:root{
  --idlz-bg-0: #1a1207;
  --idlz-bg-1: #241a0c;
  --idlz-grid: rgba(255,194,14,.10);
  --idlz-accent: #ffc20e;
  --idlz-accent-dark: #c98f00;

  /* --- Surcharge locale des jetons --cb-* : glass/blur premium -> flat cartoon --- */
  --cb-text-primary:   #fff9ec;
  --cb-text-secondary: #d8c7a6;
  --cb-text-muted:     #a8987a;

  --cb-surface-1: #241a0c;
  --cb-surface-2: #2f2210;

  --cb-border-light:  rgba(255,255,255,.12);
  --cb-border-medium: rgba(255,255,255,.18);

  --cb-glass-bg:   #2c2011;
  --cb-glass-blur: none;
  --cb-overlay-bg:   rgba(10,7,3,.62);
  --cb-overlay-blur: none;

  --cb-radius-sm:   12px;
  --cb-radius-md:   18px;
  --cb-radius-lg:   22px;
  --cb-radius-btn:  14px;
  --cb-radius-card: 26px;
  --cb-radius-pill: 999px;

  --cb-shadow-xs:  0 2px 0 rgba(0,0,0,.35);
  --cb-shadow-sm:  0 3px 0 rgba(0,0,0,.35);
  --cb-shadow-md:  0 4px 0 rgba(0,0,0,.38);
  --cb-shadow-lg:  0 6px 0 rgba(0,0,0,.4);
  --cb-shadow-xl:  0 9px 0 rgba(0,0,0,.42);
  --cb-shadow-2xl: 0 12px 0 rgba(0,0,0,.45);

  --cb-sheen: radial-gradient(circle at 28% 20%, rgba(255,255,255,.28), rgba(255,255,255,0) 55%);

  color-scheme: dark;
}

/* Mode clair : choix EXPLICITE du hub (html[data-theme="light"]), pas
   seulement prefers-color-scheme — meme contrat que le reste de la flotte. */
html[data-theme="light"]{
  --idlz-bg-0: #fff6df;
  --idlz-bg-1: #ffedbc;
  --idlz-grid: rgba(180,120,0,.14);
  --idlz-accent-dark: #a87700;

  --cb-text-primary:   #241a0c;
  --cb-text-secondary: #5c4a30;
  --cb-text-muted:     #806b4a;

  --cb-surface-1: #fff8ea;
  --cb-surface-2: #fdefce;

  --cb-border-light:  rgba(36,26,12,.14);
  --cb-border-medium: rgba(36,26,12,.22);

  --cb-glass-bg:   #fffaf0;
  --cb-overlay-bg: rgba(60,45,20,.35);

  --cb-shadow-xs:  0 2px 0 rgba(120,90,30,.18);
  --cb-shadow-sm:  0 3px 0 rgba(120,90,30,.18);
  --cb-shadow-md:  0 4px 0 rgba(120,90,30,.2);
  --cb-shadow-lg:  0 6px 0 rgba(120,90,30,.22);
  --cb-shadow-xl:  0 9px 0 rgba(120,90,30,.24);
  --cb-shadow-2xl: 0 12px 0 rgba(120,90,30,.26);

  color-scheme: light;
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;min-height:100%;overflow-x:hidden}
body{
  background: radial-gradient(circle at 25% 15%, rgba(255,194,14,.10), transparent 45%),
              linear-gradient(160deg, var(--idlz-bg-0) 0%, var(--idlz-bg-1) 100%);
  color: var(--cb-text-primary);
  font-family: var(--cb-font-family);
  display:flex;flex-direction:column;align-items:center;min-height:100vh;
  padding: max(var(--cb-space-8), env(safe-area-inset-top)) var(--cb-space-6) max(var(--cb-space-16), env(safe-area-inset-bottom));
  gap: var(--cb-gap-md);
  -webkit-user-select:none;user-select:none;
  transition: background var(--cb-duration-slow) var(--cb-easing-in-out);
}

.ic{width:1.15em;height:1.15em;display:inline-block;vertical-align:-.18em;flex:none}
.ic-inline{width:1em;height:1em;vertical-align:-.14em}
.ic-coin{color:#ffc20e}
.ic-lock{width:1em;height:1em}

.topbar{width:min(680px,100%);display:flex;align-items:center;gap:var(--cb-gap-md);padding:0 var(--cb-space-4)}
.brand{flex:1;display:flex;align-items:baseline;gap:var(--cb-space-5);min-width:0}
.brand h1{
  margin:0;font-size:var(--cb-heading-lg);letter-spacing:var(--cb-letter-spacing-caps);
  font-weight:var(--cb-font-black);color:var(--cb-text-primary);
}
.brand .tag{color:var(--cb-text-secondary);font-size:var(--cb-text-xs);font-weight:var(--cb-font-bold);
  letter-spacing:var(--cb-letter-spacing-label);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.icon-btn{
  font:inherit;font-weight:var(--cb-font-bold);font-size:var(--cb-text-sm);color:var(--cb-text-primary);
  cursor:pointer;border:2px solid var(--cb-border-medium);background:var(--cb-sheen), var(--cb-glass-bg);
  border-radius:var(--cb-radius-btn);padding:var(--cb-space-5) var(--cb-space-6);white-space:nowrap;
  transition:all var(--cb-duration-normal) var(--cb-easing-in-out);box-shadow:var(--cb-shadow-xs);
}
.icon-btn:hover{border-color:var(--idlz-accent);transform:translateY(-2px);box-shadow:var(--cb-shadow-md)}
.icon-btn:active{transform:translateY(0);box-shadow:var(--cb-shadow-xs)}
.icon-btn:focus-visible{outline:var(--cb-focus-ring);outline-offset:var(--cb-focus-offset)}
.icon-btn.sm{padding:var(--cb-space-4) var(--cb-space-6);font-size:var(--cb-text-xs)}
.icon-btn.wide{width:100%;text-align:center;margin-top:var(--cb-space-6)}

/* ---------- Home ---------- */
#screen-home{width:min(460px,100%);display:flex;flex-direction:column;gap:var(--cb-gap-lg);align-items:center}
.hero{text-align:center;animation:fadeInUp .5s cubic-bezier(.16,1,.3,1)}
.hero .logo{font-size:clamp(2.2rem,12vw,3.4rem);font-weight:var(--cb-font-black);letter-spacing:var(--cb-letter-spacing-caps);
  color:var(--cb-text-primary)}
.hero .sub{color:var(--cb-text-secondary);font-size:var(--cb-text-base);font-weight:var(--cb-font-semibold);margin-top:var(--cb-space-4)}
.mini-reactor{
  width:76px;height:76px;margin:var(--cb-space-10) auto 0;border-radius:26%;
  background:var(--cb-sheen), radial-gradient(circle at 32% 28%, #fff2c4, var(--idlz-accent) 55%, var(--idlz-accent-dark));
  border:3px solid rgba(0,0,0,.3);
  box-shadow:var(--cb-shadow-lg), inset 0 -6px 0 rgba(0,0,0,.18);
  animation:reactorSpin 3.2s ease-in-out infinite
}
@keyframes reactorSpin{0%,100%{transform:rotate(0) scale(1)}50%{transform:rotate(8deg) scale(1.04)}}

.stats-row{display:flex;gap:var(--cb-gap-sm);width:100%}
.stat-chip{flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--cb-space-1);
  background:var(--cb-sheen), var(--cb-glass-bg);border:2px solid var(--cb-border-light);border-radius:var(--cb-radius-md);
  padding:var(--cb-space-6);box-shadow:var(--cb-shadow-xs)}
.stat-chip .lbl{font-size:var(--cb-text-xs);color:var(--cb-text-secondary);font-weight:var(--cb-font-bold);
  letter-spacing:var(--cb-letter-spacing-label);text-transform:uppercase}
.stat-chip .val{font-size:var(--cb-heading-xs);font-weight:var(--cb-font-black);color:var(--cb-text-primary);
  display:flex;align-items:center;justify-content:center;gap:4px}

.menu-card{
  width:100%;background:var(--cb-sheen), var(--cb-glass-bg);border:2px solid var(--cb-border-light);border-radius:var(--cb-radius-card);
  padding:var(--cb-pad-lg);box-shadow:var(--cb-shadow-lg);
  animation:fadeInUp .5s cubic-bezier(.16,1,.3,1) .15s both;
}
.menu-card h2{margin:0 0 var(--cb-space-8);font-size:var(--cb-heading-xs);font-weight:var(--cb-font-black);color:var(--cb-text-primary)}

.site-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--cb-gap-sm);margin-bottom:var(--cb-space-10)}
.site-card{
  position:relative;border-radius:var(--cb-radius-md);padding:var(--cb-space-8) var(--cb-space-4);text-align:center;
  border:2px solid var(--cb-border-light);background:var(--cb-surface-2);cursor:pointer;transition:all var(--cb-duration-normal) var(--cb-easing-in-out);
  overflow:hidden;font-family:inherit;box-shadow:var(--cb-shadow-xs)
}
.site-card .site-ic{display:flex;justify-content:center;margin-bottom:var(--cb-space-2);color:var(--idlz-accent)}
.site-card .site-ic svg{width:1.9rem;height:1.9rem}
.site-card .name{font-size:var(--cb-text-xs);font-weight:var(--cb-font-bold);color:var(--cb-text-primary)}
.site-card.on{border-color:var(--idlz-accent);box-shadow:var(--cb-shadow-sm), 0 0 0 3px rgba(212,175,55,.28)}
.site-card:not(.locked):hover{transform:translateY(-2px);box-shadow:var(--cb-shadow-md)}
.site-card:not(.locked):active{transform:translateY(0)}
.site-card.locked{opacity:.6;cursor:not-allowed}
.site-card.locked .name{color:var(--cb-text-muted)}
.site-card.locked .site-ic{color:var(--cb-text-muted)}
.site-card .lock{position:absolute;top:8px;right:8px;color:var(--cb-text-muted)}
.site-card .unlock-hint{display:block;font-size:.65rem;color:var(--cb-text-muted);margin-top:2px}

.big-btn{
  width:100%;font:inherit;font-weight:var(--cb-font-black);font-size:var(--cb-text-base);cursor:pointer;border:2px solid rgba(0,0,0,.3);
  border-radius:var(--cb-radius-card);padding:var(--cb-space-12) var(--cb-space-8);color:#241900;
  background:var(--cb-sheen), linear-gradient(135deg, var(--idlz-accent), var(--idlz-accent-dark));
  box-shadow:var(--cb-shadow-lg);
  transition:all var(--cb-duration-normal) var(--cb-easing-in-out)
}
.big-btn:hover{transform:translateY(-3px);box-shadow:var(--cb-shadow-xl);filter:brightness(1.06)}
.big-btn:active{transform:translateY(0);box-shadow:var(--cb-shadow-xs)}
.big-btn:focus-visible{outline:var(--cb-focus-ring);outline-offset:2px}

.hint-line{color:var(--cb-text-muted);font-size:var(--cb-text-xs);text-align:center;margin:0}

/* ---------- Game screen ---------- */
#screen-game{display:none;width:min(1100px,100%);flex-direction:column;gap:var(--cb-gap-sm);align-items:center;flex:1}
#screen-game.show{display:flex;animation:fadeIn .3s ease-out}
body.playing #screen-home{display:none}
body.playing .topbar{display:none}

.hud-top{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--cb-gap-sm);padding:0 var(--cb-space-2)}
.hud-stats{display:flex;gap:var(--cb-gap-sm);flex-wrap:wrap;justify-content:flex-end}
.hud-chip{
  background:var(--cb-sheen), var(--cb-glass-bg);border:2px solid var(--cb-border-light);border-radius:var(--cb-radius-pill);
  padding:var(--cb-space-3) var(--cb-space-8);font-size:var(--cb-text-xs);font-weight:var(--cb-font-bold);
  color:var(--cb-text-secondary);display:inline-flex;align-items:center
}
.hud-chip b{color:var(--cb-text-primary);font-weight:var(--cb-font-black);margin-left:4px;display:inline-flex;align-items:center;gap:4px}
.hud-chip.coins b{color:#ffc20e}

.canvas-wrap{position:relative;width:100%;aspect-ratio:4/3;max-height:62vh;border-radius:var(--cb-radius-lg);
  overflow:hidden;box-shadow:var(--cb-shadow-2xl);border:3px solid rgba(0,0,0,.3);background:#000}
#canvas{display:block;width:100%;height:100%;touch-action:none;cursor:pointer}

.prestige-bar{
  width:100%;display:flex;align-items:center;justify-content:center;gap:var(--cb-space-6);font:inherit;
  font-weight:var(--cb-font-black);font-size:var(--cb-text-sm);cursor:pointer;border:2px solid rgba(0,0,0,.3);border-radius:var(--cb-radius-btn);
  padding:var(--cb-space-6) var(--cb-space-8);color:#fff;
  background:var(--cb-sheen), linear-gradient(135deg,#d896ff,#8a3fd9);box-shadow:var(--cb-shadow-md);
  transition:all var(--cb-duration-fast) var(--cb-easing-in-out)
}
.prestige-bar b{color:#fff;font-size:var(--cb-text-base)}
.prestige-bar:hover{transform:translateY(-2px);filter:brightness(1.08)}
.prestige-bar:active{transform:translateY(0);box-shadow:var(--cb-shadow-xs)}

.toolbar{display:flex;gap:var(--cb-gap-sm);flex-wrap:wrap;justify-content:center;width:100%;padding:var(--cb-space-2) 0}
.tool-btn{
  position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:58px;
  background:var(--cb-sheen), var(--cb-glass-bg);border:2px solid var(--cb-border-light);border-radius:var(--cb-radius-md);
  padding:var(--cb-space-4) var(--cb-space-5);cursor:pointer;font-family:inherit;color:var(--cb-text-primary);
  transition:all var(--cb-duration-fast) var(--cb-easing-in-out);box-shadow:var(--cb-shadow-xs)
}
.tool-btn .ic{width:1.3rem;height:1.3rem}
.tool-btn .ct{font-size:var(--cb-text-xs);font-weight:var(--cb-font-black);color:var(--cb-accent-light)}
.tool-btn .key{position:absolute;top:2px;left:5px;font-size:.6rem;color:var(--cb-text-muted)}
.tool-btn:hover:not(.empty){transform:translateY(-2px);border-color:var(--idlz-accent);box-shadow:var(--cb-shadow-sm)}
.tool-btn:active:not(.empty){transform:translateY(0) scale(.96)}
.tool-btn.empty{opacity:.5}
.tool-btn.empty .ct{color:var(--cb-danger)}

/* ---------- Overlays ---------- */
.ov{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:60;padding:var(--cb-space-8);
  background:var(--cb-overlay-bg);animation:fadeIn .3s ease-out}
.ov.show{display:flex}
.dialog{
  width:min(94vw,440px);max-height:88vh;overflow-y:auto;background:var(--cb-sheen), var(--cb-glass-bg);border:2px solid var(--cb-border-light);
  border-radius:var(--cb-radius-card);padding:var(--cb-pad-lg);text-align:center;
  animation:popBounce .5s cubic-bezier(.2,.9,.3,1.2);
  box-shadow:var(--cb-shadow-2xl)
}
.dialog h2{margin:0 0 var(--cb-space-4);font-size:var(--cb-heading-md);font-weight:var(--cb-font-black);color:var(--cb-text-primary)}
.dialog p{margin:0 0 var(--cb-space-8);color:var(--cb-text-secondary);font-size:var(--cb-text-sm);line-height:var(--cb-line-height-relaxed)}
.dialog .big-num{font-weight:var(--cb-font-black);font-size:var(--cb-heading-xl);color:var(--cb-text-primary);
  margin:var(--cb-space-4) 0;font-variant-numeric:tabular-nums}
.dialog .record-badge{display:inline-block;background:var(--cb-sheen), linear-gradient(135deg,#ffc20e,#e0a300);color:#241900;
  font-weight:var(--cb-font-black);font-size:var(--cb-text-xs);padding:var(--cb-space-3) var(--cb-space-8);
  border:2px solid rgba(0,0,0,.25);
  border-radius:var(--cb-radius-pill);margin-bottom:var(--cb-space-8);
  animation:popBounce .5s cubic-bezier(.2,.9,.3,1.2)}
.dialog .coins-earned{color:#ffc20e;font-weight:var(--cb-font-bold);font-size:var(--cb-text-base);display:flex;align-items:center;justify-content:center;gap:4px}
.dialog .over-icon{display:flex;justify-content:center;color:var(--idlz-accent);margin-bottom:var(--cb-space-4)}
.dialog .over-icon svg{width:2.6rem;height:2.6rem}
.dialog .wallet-line{color:var(--cb-text-primary);font-size:var(--cb-text-sm)}
.dialog .wallet-line b{color:#ffc20e}

.btn{
  display:block;width:100%;font:inherit;font-weight:var(--cb-font-black);border:2px solid rgba(0,0,0,.3);border-radius:var(--cb-radius-btn);
  padding:var(--cb-space-8) var(--cb-space-10);cursor:pointer;color:#241900;
  background:var(--cb-sheen), linear-gradient(135deg, var(--idlz-accent), var(--idlz-accent-dark));margin-top:var(--cb-space-6);
  transition:all var(--cb-duration-fast) var(--cb-easing-in-out);
  box-shadow:var(--cb-shadow-md)
}
.btn:hover{transform:translateY(-2px);box-shadow:var(--cb-shadow-lg);filter:brightness(1.06)}
.btn:active{transform:translateY(0);box-shadow:var(--cb-shadow-xs)}
.btn:focus-visible{outline:var(--cb-focus-ring);outline-offset:2px}
.btn.alt{background:var(--cb-sheen), linear-gradient(135deg,#d896ff,#8a3fd9);color:#fff;box-shadow:var(--cb-shadow-md)}
.btn.ghost{color:var(--cb-text-primary);background:var(--cb-surface-1);border:2px solid var(--cb-border-light);box-shadow:var(--cb-shadow-xs)}
.btn.ghost:hover{background:var(--cb-surface-2)}
.btn.wide{margin-top:var(--cb-space-6)}

.tool-list{display:flex;flex-direction:column;gap:var(--cb-gap-sm);margin:var(--cb-space-8) 0;text-align:start}
.shop-tool{display:flex;align-items:center;gap:var(--cb-gap-md);background:var(--cb-surface-2);
  border:2px solid var(--cb-border-medium);border-radius:var(--cb-radius-md);padding:var(--cb-space-6)}
.shop-tool .ic{width:1.5rem;height:1.5rem;flex:0 0 auto;color:var(--idlz-accent)}
.shop-tool .info{flex:1;min-width:0}
.shop-tool .info b{display:block;font-size:var(--cb-text-sm);color:var(--cb-text-primary)}
.shop-tool .info span{display:block;font-size:var(--cb-text-xs);color:var(--cb-text-secondary)}
.shop-tool .info .own{color:var(--idlz-accent);font-weight:var(--cb-font-bold)}
.shop-tool .actions{display:flex;flex-direction:column;gap:var(--cb-space-2)}
.shop-tool .actions button{
  font:inherit;font-weight:var(--cb-font-bold);font-size:var(--cb-text-xs);border:2px solid rgba(0,0,0,.22);border-radius:var(--cb-radius-sm);
  padding:var(--cb-space-3) var(--cb-space-6);cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:4px;justify-content:center;
  transition:all var(--cb-duration-fast) var(--cb-easing-in-out)
}
.shop-tool .buy-btn{background:linear-gradient(135deg, var(--idlz-accent), var(--idlz-accent-dark));color:#241900}
.shop-tool .buy-btn:hover{filter:brightness(1.1)}
.shop-tool .ad-btn{background:var(--cb-surface-1);color:var(--cb-text-primary);border-color:var(--cb-border-light)}
.shop-tool .ad-btn:hover{background:var(--cb-surface-2)}

#toast{
  position:fixed;left:50%;bottom:max(var(--cb-space-12), env(safe-area-inset-bottom));transform:translateX(-50%);
  background:var(--cb-glass-bg);border:2px solid var(--cb-border-light);color:var(--cb-text-primary);
  padding:var(--cb-space-8) var(--cb-space-10);border-radius:var(--cb-radius-btn);font-weight:var(--cb-font-bold);
  font-size:var(--cb-text-sm);z-index:2147483000;opacity:0;pointer-events:none;transition:all var(--cb-duration-normal);
  box-shadow:var(--cb-shadow-lg);max-width:86vw;text-align:center;
}
#toast.show{opacity:1;pointer-events:auto;animation:slideUpFade .4s cubic-bezier(.16,1,.3,1)}

/* ---------- Animations ---------- */
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes fadeInUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideUpFade{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes popBounce{0%{opacity:0;transform:scale(.88)}60%{transform:scale(1.06)}100%{opacity:1;transform:scale(1)}}

/* ---------- Responsive ---------- */
@media (max-width:640px){
  body{padding:max(var(--cb-space-6), env(safe-area-inset-top)) var(--cb-space-4) max(var(--cb-space-12), env(safe-area-inset-bottom))}
  .topbar{gap:var(--cb-gap-sm);flex-wrap:wrap}
  .brand{width:100%;justify-content:center}
  .canvas-wrap{aspect-ratio:3/4;max-height:56vh}
  .menu-card{padding:var(--cb-pad-md)}
  .site-grid{grid-template-columns:repeat(3,1fr)}
}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
}
