/* Theme Pokemon : coque de Pokedex (rouge, LED bleue, ecrans LCD) et affiches
   en cartes a collectionner holographiques, dans l'esprit de pokemon-cards-css
   (simeydotme). Purement visuel : chaque regle est bornee a
   :root[data-theme="pokemon"], le balisage et le comportement des pages sont
   identiques aux autres themes. Aucun sprite ni logo officiel : la Pokeball et
   les LED sont dessinees en CSS.
   Palette : rouge #e3350d, bleu #3b4cca, jaune #ffde00, contour #1d1d27,
   ecran LCD vert-de-gris, papier creme. */

:root[data-theme="pokemon"]{
  color-scheme:light;
  --pk-red:#e3350d; --pk-red-dark:#a81f06; --pk-blue:#3b4cca; --pk-yellow:#ffde00;
  --pk-ink:#1d1d27; --pk-lcd:#c9e4bb; --pk-lcd-dark:#22401d; --pk-gold:#d4a017;
  --pk-pixel:"Press Start 2P","Courier New",monospace;
  --pk-font:"Nunito","Segoe UI",system-ui,sans-serif;
  --pk-hard:4px 4px 0 var(--pk-ink);
  --pk-hard-sm:2px 2px 0 var(--pk-ink);

  --bg:#f7f1e1; --bg-soft:#efe7d1;
  --surface:#fffdf6; --surface-2:#f4edd9; --surface-hover:#ece2c6;
  --border:#1d1d27; --border-soft:#cbc19f;
  --text:#1d1d27; --text-dim:#464658; --text-faint:#67677a;
  --accent:#c9260a; --accent-hover:#e3350d; --accent-dim:#e3350d;
  --accent-soft:rgba(227,53,13,.12);
  --danger:#9c1030; --danger-hover:#7d0c26; --danger-soft:rgba(156,16,48,.12);
  --success:#1d6b12; --success-soft:rgba(29,107,18,.14);
  --warning:#7a5600; --warning-soft:rgba(255,222,0,.35);
  --purple:#6b2f9e; --purple-soft:rgba(107,47,158,.14);
  --radius-sm:12px; --radius:16px; --radius-lg:22px;
  --shadow:6px 8px 0 var(--pk-ink);
  --shadow-sm:var(--pk-hard);
  --nav-bg:#e3350d;
}

/* ---------- Fond : papier creme, motif de Pokeballs en filigrane ---------- */
:root[data-theme="pokemon"] body{
  font-family:var(--pk-font);font-weight:600;
  background:
    radial-gradient(circle,rgba(227,53,13,.09) 0 3px,transparent 3.5px) 0 0/44px 44px,
    linear-gradient(#fbf5e4,#f1e9d0);
  background-attachment:fixed;
}
:root[data-theme="pokemon"] ::selection{background:var(--pk-yellow);color:var(--pk-ink)}
:root[data-theme="pokemon"] *{scrollbar-color:var(--pk-red) #efe7d1}

/* ---------- Titres : police pixel, filet noir avec Pokeball posee dessus ---------- */
:root[data-theme="pokemon"] h1{
  position:relative;font-family:var(--pk-pixel);font-weight:400;font-size:1.05rem;
  line-height:1.7;letter-spacing:0;color:var(--pk-ink);
  text-shadow:2px 2px 0 var(--pk-yellow);
  padding-bottom:.9rem;margin-bottom:1.6rem;border-bottom:4px solid var(--pk-ink);
  overflow-wrap:anywhere;
}
:root[data-theme="pokemon"] h1::after{
  content:"";position:absolute;left:1.5rem;bottom:-13px;width:22px;height:22px;
  border:3px solid var(--pk-ink);border-radius:50%;
  background:
    radial-gradient(circle,#fff 0 2.5px,var(--pk-ink) 3px 4.5px,transparent 5px),
    linear-gradient(var(--pk-red) 0 42%,var(--pk-ink) 42% 58%,#fff 58%);
}
:root[data-theme="pokemon"] h2,
:root[data-theme="pokemon"] h3{font-family:var(--pk-font);font-weight:900;color:var(--pk-blue)}
:root[data-theme="pokemon"] h2::before{content:"◓ ";color:var(--pk-red)}
:root[data-theme="pokemon"] a:not(.btn):not(.nav-link):not(.card):not(.brand){
  color:var(--pk-blue);text-decoration-thickness:2px;text-underline-offset:3px;font-weight:800;
}
:root[data-theme="pokemon"] a:not(.btn):not(.nav-link):not(.card):not(.brand):hover{color:var(--pk-red)}
:root[data-theme="pokemon"] .meta-line{color:var(--text-dim)}

/* ---------- Barre de navigation : bandeau rouge de Pokedex ---------- */
:root[data-theme="pokemon"] nav{
  background:linear-gradient(#f0492a,#e3350d 55%,#c22a0a);backdrop-filter:none;
  border-bottom:4px solid var(--pk-ink);
  box-shadow:0 4px 0 rgba(29,29,39,.25),inset 0 -3px 0 rgba(0,0,0,.14),inset 0 3px 0 rgba(255,255,255,.28);
}
/* La marque est reecrite : le clap 🎬 du balisage est masque (font-size 0) au
   profit de la lentille bleue et des trois LED, dessinees en degrades. */
:root[data-theme="pokemon"] nav .brand{font-size:0;gap:.55rem}
:root[data-theme="pokemon"] nav .brand::before{
  content:"";flex:none;width:5.3rem;height:2.1rem;
  filter:drop-shadow(0 0 5px rgba(102,196,255,.85));
  background:
    radial-gradient(circle at .85rem .8rem,#fff 0 .15rem,transparent .18rem),
    radial-gradient(circle at 1.05rem 1.05rem,#8fd6ff 0 .28rem,#2b8bf0 .52rem,#0a3d91 .72rem,#fff .75rem .82rem,var(--pk-ink) .85rem .98rem,transparent 1rem),
    radial-gradient(circle at 2.95rem .55rem,#ff8a8a 0 .12rem,#c81a22 .3rem,var(--pk-ink) .33rem .42rem,transparent .45rem),
    radial-gradient(circle at 3.75rem .55rem,#fff3a0 0 .12rem,#f5c400 .3rem,var(--pk-ink) .33rem .42rem,transparent .45rem),
    radial-gradient(circle at 4.55rem .55rem,#b6f5a6 0 .12rem,#3cb62a .3rem,var(--pk-ink) .33rem .42rem,transparent .45rem);
}
:root[data-theme="pokemon"] nav .brand::after{
  content:"Nicoflix";font-family:var(--pk-pixel);font-size:.72rem;font-weight:400;
  color:#fff;letter-spacing:0;text-shadow:2px 2px 0 var(--pk-ink);
}
:root[data-theme="pokemon"] nav a.nav-link{
  color:#fff;font-weight:900;border-radius:99px;border:2px solid transparent;
  text-shadow:1px 1px 0 rgba(29,29,39,.55);
}
:root[data-theme="pokemon"] nav a.nav-link:hover{background:rgba(29,29,39,.22);color:#fff}
:root[data-theme="pokemon"] nav a.nav-link.active{
  color:var(--pk-ink);text-shadow:none;background:var(--pk-yellow);
  border-color:var(--pk-ink);box-shadow:var(--pk-hard-sm);
}
:root[data-theme="pokemon"] nav #theme-toggle{
  font-size:1.15rem;line-height:1;padding:.3rem .6rem;color:var(--pk-red);
}

/* ---------- Panneaux : contour noir epais, ombre dure ---------- */
:root[data-theme="pokemon"] .card,
:root[data-theme="pokemon"] details.section,
:root[data-theme="pokemon"] .table-wrap,
:root[data-theme="pokemon"] table{
  border:3px solid var(--pk-ink);box-shadow:var(--pk-hard);
}
:root[data-theme="pokemon"] .table-wrap table{box-shadow:none;border:none}
:root[data-theme="pokemon"] .grid a.card:not(.poster-card):hover{
  border-color:var(--pk-ink);box-shadow:6px 8px 0 var(--pk-ink);transform:translate(-2px,-3px);
}
/* En-tete de section : petit ecran LCD vert-de-gris */
:root[data-theme="pokemon"] details.section > summary{
  color:var(--pk-lcd-dark);font-weight:900;border-radius:13px;
  background:linear-gradient(var(--pk-lcd),#b3d4a3);
  box-shadow:inset 0 2px 0 rgba(255,255,255,.55),inset 0 -3px 0 rgba(34,64,29,.18);
}
:root[data-theme="pokemon"] details.section > summary:hover{background:linear-gradient(#d3ecc6,#bcdcad)}
:root[data-theme="pokemon"] details.section[open] > summary{
  border-radius:13px 13px 0 0;border-bottom:3px solid var(--pk-ink);
}
:root[data-theme="pokemon"] details.section > summary .chevron{color:var(--pk-lcd-dark)}
:root[data-theme="pokemon"] details.section > summary .count{
  color:var(--pk-ink);background:var(--pk-yellow);border:2px solid var(--pk-ink);font-weight:900;
}

/* ---------- Affiches : cartes a collectionner holographiques ---------- */
:root[data-theme="pokemon"] .poster-card.card{
  --mx:50%;--my:50%;--tx:0deg;--ty:0deg;
  isolation:isolate;border:6px solid transparent;border-radius:16px;
  background:
    linear-gradient(#fff4c2,#fbe6a0) padding-box,
    linear-gradient(135deg,#fff0a0,#d4a017 28%,#fff6c4 50%,#b98a0c 72%,#ffe98a) border-box;
  box-shadow:var(--pk-hard),0 0 0 2px var(--pk-ink);
  transition:transform .12s ease-out,box-shadow .2s;
}
:root[data-theme="pokemon"] .poster-card.card:hover{
  border-color:transparent;
  transform:perspective(800px) rotateX(var(--ty)) rotateY(var(--tx)) scale(1.04);
  box-shadow:8px 10px 0 var(--pk-ink),0 0 0 2px var(--pk-ink),0 0 22px rgba(255,222,0,.7);
}
:root[data-theme="pokemon"] .poster-card .poster-wrap{
  position:relative;background:var(--pk-ink);
  border:3px solid var(--pk-ink);border-radius:8px;margin:.4rem .4rem 0;overflow:hidden;
}
:root[data-theme="pokemon"] .poster-card .card-title{
  color:var(--pk-ink);font-weight:900;padding-top:.6rem;
}
:root[data-theme="pokemon"] .poster-card .card-meta{color:#5b4a08}
:root[data-theme="pokemon"] .poster-card .overlay,
:root[data-theme="pokemon"] .poster-card .remove-form{z-index:3}
:root[data-theme="pokemon"] .poster-card .overlay .badge{
  background:var(--surface);color:var(--pk-ink);border:2px solid var(--pk-ink);
}
:root[data-theme="pokemon"] .poster-card .overlay .badge.s-warn{background:#ffe27a;color:#4a3200}
:root[data-theme="pokemon"] .poster-card button.btn-remove{
  background:var(--surface);color:var(--pk-red);border:2px solid var(--pk-ink);box-shadow:var(--pk-hard-sm);
}
:root[data-theme="pokemon"] .poster-card button.btn-remove:hover{background:var(--pk-red);color:#fff;border-color:var(--pk-ink)}

/* ---------- Holo avance : toutes les affiches (.poster-card) et cadre du detail ----------
   Couches empilees sur le modele de pokemon-cards-css (simeydotme, « rare
   holo ») : foil arc-en-ciel a 400 % en color-dodge, paillettes masquees autour
   du pointeur, reflet radial en overlay, bordure doree dont le degrade se
   decale. Le script de base.html pose --mx/--my (pointeur), --bx/--by (position
   du foil), --tx/--ty (rotation), --o (intensite 0-1) et la classe pk-live
   pendant qu'une souris, un doigt ou le gyroscope pilote la carte. */
@property --bx{syntax:"<percentage>";inherits:true;initial-value:50%}
@property --by{syntax:"<percentage>";inherits:true;initial-value:50%}
@property --mx{syntax:"<percentage>";inherits:true;initial-value:50%}
@property --my{syntax:"<percentage>";inherits:true;initial-value:50%}

:root[data-theme="pokemon"] .poster-card,
:root[data-theme="pokemon"] .holo-frame{
  --mx:50%;--my:50%;--bx:50%;--by:50%;--tx:0deg;--ty:0deg;--o:0;
  --holo-red:#f80e7b;--holo-yellow:#eedf10;--holo-green:#21e985;--holo-blue:#0dbde9;--holo-violet:#c929f1;
  background-size:100% 100%,300% 300%;
  background-position:0 0,var(--bx) var(--by);
}
:root[data-theme="pokemon"] .poster-card:hover,
:root[data-theme="pokemon"] .holo-frame:hover{--o:1}
:root[data-theme="pokemon"] .poster-card.pk-live,
:root[data-theme="pokemon"] .holo-frame.pk-live{--o:1}
:root[data-theme="pokemon"] .poster-card.pk-live{
  transform:perspective(800px) rotateX(var(--ty)) rotateY(var(--tx)) scale(1.04);
}

/* Cadre du detail : meme carte doree que les vignettes, en plus grand */
:root[data-theme="pokemon"] .holo-frame{
  position:relative;isolation:isolate;width:min(280px,100%)!important;
  border:7px solid transparent;border-radius:18px;padding:.5rem .5rem 1.8rem;
  background-color:transparent;
  background-image:
    linear-gradient(#fff4c2,#fbe6a0),
    linear-gradient(135deg,#fff0a0,#d4a017 28%,#fff6c4 50%,#b98a0c 72%,#ffe98a);
  background-origin:padding-box,border-box;background-clip:padding-box,border-box;
  box-shadow:var(--pk-hard),0 0 0 2px var(--pk-ink);
  transition:transform .12s ease-out,box-shadow .2s;touch-action:pan-y;
}
:root[data-theme="pokemon"] .holo-frame:hover,
:root[data-theme="pokemon"] .holo-frame.pk-live{
  transform:perspective(900px) rotateX(var(--ty)) rotateY(var(--tx)) scale(1.03);
  box-shadow:8px 10px 0 var(--pk-ink),0 0 0 2px var(--pk-ink),0 0 26px rgba(255,222,0,.7);
}
:root[data-theme="pokemon"] .holo-art{
  position:relative;isolation:isolate;overflow:hidden;
  border:3px solid var(--pk-ink);border-radius:8px;background:var(--pk-ink);
}
:root[data-theme="pokemon"] .holo-art img{border-radius:0!important;box-shadow:none!important}

/* Foil arc-en-ciel */
:root[data-theme="pokemon"] .poster-card .poster-wrap{isolation:isolate}
:root[data-theme="pokemon"] .poster-card .poster-wrap::before,
:root[data-theme="pokemon"] .holo-art::before{
  content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background-image:
    repeating-linear-gradient(110deg,var(--holo-violet),var(--holo-blue),var(--holo-green),var(--holo-yellow),var(--holo-red),
      var(--holo-violet),var(--holo-blue),var(--holo-green),var(--holo-yellow),var(--holo-red)),
    repeating-linear-gradient(90deg,#1c1c1c 0 1px,#4d4d4d 1px 2px);
  background-position:
    calc(((50% - var(--bx)) * 2.6) + 50%) calc(((50% - var(--by)) * 3.5) + 50%),
    center center;
  background-size:400% 400%,cover;
  background-blend-mode:overlay;
  filter:brightness(1.1) contrast(1.1) saturate(1.2);
  mix-blend-mode:color-dodge;
  opacity:calc(.3 + var(--o) * .6);transition:opacity .25s;
}
/* Paillettes : petits points lumineux, visibles seulement autour du reflet */
:root[data-theme="pokemon"] .poster-card .poster-wrap::after,
:root[data-theme="pokemon"] .holo-art::after{
  content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background-image:
    radial-gradient(circle at 20% 30%,#fff 0 1px,transparent 1.7px),
    radial-gradient(circle at 70% 60%,#fff 0 1.2px,transparent 2px),
    radial-gradient(circle at 45% 85%,#fff 0 1px,transparent 1.7px),
    radial-gradient(circle at 85% 15%,#fff 0 1.2px,transparent 2px);
  background-size:53px 61px,71px 47px,89px 73px,43px 59px;
  background-position:
    calc(var(--bx) * .6) calc(var(--by) * .5),
    calc(var(--bx) * -.4) calc(var(--by) * .7),
    calc(var(--bx) * .3) calc(var(--by) * -.6),
    calc(var(--bx) * -.7) calc(var(--by) * -.3);
  -webkit-mask-image:radial-gradient(circle at var(--mx) var(--my),#000 0%,transparent 55%);
  mask-image:radial-gradient(circle at var(--mx) var(--my),#000 0%,transparent 55%);
  filter:brightness(1.6);mix-blend-mode:color-dodge;
  opacity:calc(var(--o) * .9);transition:opacity .25s;
}
/* Reflet : tache de lumiere qui suit le pointeur, sur toute la carte */
:root[data-theme="pokemon"] .poster-card::after,
:root[data-theme="pokemon"] .holo-frame::after{
  content:"";position:absolute;inset:0;z-index:2;pointer-events:none;border-radius:10px;
  background:radial-gradient(farthest-corner circle at var(--mx) var(--my),
    rgba(255,255,255,.8) 0%,rgba(255,255,255,.25) 22%,rgba(0,0,0,.4) 90%);
  mix-blend-mode:overlay;opacity:calc(var(--o) * .75);transition:opacity .25s;
}
/* Balayage automatique du foil sur la carte du detail tant que rien ne la pilote */
:root[data-theme="pokemon"] .holo-frame:not(.pk-live):not(:hover){
  --o:.45;animation:pk-sheen 5s ease-in-out infinite alternate;
}
@keyframes pk-sheen{
  0%{--bx:32%;--by:36%;--mx:25%;--my:30%}
  100%{--bx:68%;--by:64%;--mx:75%;--my:70%}
}

/* ---------- Champs ---------- */
:root[data-theme="pokemon"] label{color:var(--text-dim);font-weight:900}
:root[data-theme="pokemon"] input,
:root[data-theme="pokemon"] select,
:root[data-theme="pokemon"] textarea{
  background:#fff;color:var(--pk-ink);border:3px solid var(--pk-ink);border-radius:14px;
  font-family:var(--pk-font);font-weight:700;box-shadow:inset 0 2px 0 rgba(29,29,39,.08);
}
:root[data-theme="pokemon"] input:focus,
:root[data-theme="pokemon"] select:focus,
:root[data-theme="pokemon"] textarea:focus{
  border-color:var(--pk-blue);box-shadow:0 0 0 4px rgba(255,222,0,.85);
}

/* ---------- Boutons : gros, en relief, ils s'enfoncent au clic ---------- */
:root[data-theme="pokemon"] button,
:root[data-theme="pokemon"] a.btn{
  font-family:var(--pk-font);font-weight:900;color:#fff;
  background:linear-gradient(#f0492a,#e3350d 55%,#c22a0a);
  border:3px solid var(--pk-ink);border-radius:99px;
  box-shadow:0 4px 0 var(--pk-ink);text-shadow:1px 1px 0 rgba(29,29,39,.45);
  transition:transform .08s,box-shadow .08s,filter .15s;
}
:root[data-theme="pokemon"] button:hover,
:root[data-theme="pokemon"] a.btn:hover{
  background:linear-gradient(#ff5a3a,#ee3d17 55%,#cf2f0d);filter:brightness(1.05);transform:translateY(-1px);
  box-shadow:0 5px 0 var(--pk-ink);
}
:root[data-theme="pokemon"] button:active,
:root[data-theme="pokemon"] a.btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--pk-ink)}
:root[data-theme="pokemon"] button:focus-visible,
:root[data-theme="pokemon"] a.btn:focus-visible{outline:3px solid var(--pk-blue);outline-offset:2px}
:root[data-theme="pokemon"] button.btn-ghost{
  background:#fff;color:var(--pk-ink);text-shadow:none;
}
:root[data-theme="pokemon"] button.btn-ghost:hover{background:var(--pk-yellow);color:var(--pk-ink)}
:root[data-theme="pokemon"] button.btn-danger,
:root[data-theme="pokemon"] button.btn-remove{
  background:#fff;color:var(--danger);text-shadow:none;border-color:var(--danger);
  box-shadow:0 3px 0 var(--danger);
}
:root[data-theme="pokemon"] button.btn-danger:hover,
:root[data-theme="pokemon"] button.btn-remove:hover{
  background:var(--danger);color:#fff;border-color:var(--pk-ink);box-shadow:0 4px 0 var(--pk-ink);
}
:root[data-theme="pokemon"] button.btn-mini{
  background:transparent;border:none;box-shadow:none;color:var(--text-faint);text-shadow:none;transform:none;filter:none;
}
:root[data-theme="pokemon"] button.btn-mini:hover{background:transparent;color:var(--danger)}
:root[data-theme="pokemon"] button:disabled,
:root[data-theme="pokemon"] button:disabled:hover{
  background:repeating-linear-gradient(-45deg,#e6dfc8 0 8px,#f0ead6 8px 16px);
  color:var(--text-faint);border-color:#a89f80;box-shadow:0 3px 0 #a89f80;text-shadow:none;
  transform:none;filter:none;
}
:root[data-theme="pokemon"] button.switch-toggle,
:root[data-theme="pokemon"] button.switch-toggle:hover,
:root[data-theme="pokemon"] button.switch-toggle:active{
  background:transparent;border:none;box-shadow:none;color:var(--text-dim);text-shadow:none;
  transform:none;filter:none;
}
:root[data-theme="pokemon"] .switch-track{background:#fff;border:3px solid var(--pk-ink)}
:root[data-theme="pokemon"] .switch-thumb{background:var(--pk-red);border:2px solid var(--pk-ink)}
:root[data-theme="pokemon"] button.switch-toggle[aria-checked="true"] .switch-track{
  background:#8ed36a;border-color:var(--pk-ink);
}
:root[data-theme="pokemon"] button.switch-toggle[aria-checked="true"] .switch-thumb{background:#fff}

/* ---------- Badges : pastilles colorees comme des types ---------- */
:root[data-theme="pokemon"] .badge{
  font-weight:900;letter-spacing:.03em;border:2px solid var(--pk-ink);
  background:#e6dfc8;color:var(--text-dim);box-shadow:var(--pk-hard-sm);
}
:root[data-theme="pokemon"] .s-searching{background:#ffde00;color:#3a2f00;border-color:var(--pk-ink)}      /* electrique */
:root[data-theme="pokemon"] .s-downloading,
:root[data-theme="pokemon"] .s-waiting_release{background:#2a6bd1;color:#fff;border-color:var(--pk-ink)}       /* eau */
:root[data-theme="pokemon"] .s-validating{background:#ffb3cc;color:#5a0f2b;border-color:var(--pk-ink)}     /* psy */
:root[data-theme="pokemon"] .s-completed{background:#8ed36a;color:#123a06;border-color:var(--pk-ink)}     /* plante */
:root[data-theme="pokemon"] .s-failed,
:root[data-theme="pokemon"] .s-error{background:#c62828;color:#fff;border-color:var(--pk-ink)}            /* feu */
:root[data-theme="pokemon"] .s-needs_review,
:root[data-theme="pokemon"] .s-waiting_space,
:root[data-theme="pokemon"] .s-waiting_approval,
:root[data-theme="pokemon"] .s-warn{background:#f5a623;color:#3a2200;border-color:var(--pk-ink)}         /* combat */
:root[data-theme="pokemon"] .s-duplicate_rejected{background:#d8d3c4;color:var(--text-dim);border-color:var(--pk-ink)} /* normal */
:root[data-theme="pokemon"] .s-info{background:#cfe0ff;color:#1d2f7a;border-color:var(--pk-ink)}
:root[data-theme="pokemon"] .s-searching::before,
:root[data-theme="pokemon"] .s-downloading::before,
:root[data-theme="pokemon"] .s-validating::before{animation:pk-blink 1s ease infinite}
:root[data-theme="pokemon"] .chips .badge{border-radius:99px}
:root[data-theme="pokemon"] .chips a:hover .badge{border-color:var(--pk-ink);transform:translateY(-2px)}

/* ---------- Tableaux ---------- */
:root[data-theme="pokemon"] table{border-radius:14px}
:root[data-theme="pokemon"] th{
  font-family:var(--pk-font);font-weight:900;letter-spacing:.06em;color:#fff;
  background:var(--pk-blue);border-bottom:3px solid var(--pk-ink);
}
:root[data-theme="pokemon"] td{border-bottom:2px dotted rgba(29,29,39,.22)}
:root[data-theme="pokemon"] tbody tr:hover{background:rgba(255,222,0,.22)}
:root[data-theme="pokemon"] tr.row-link:hover{background:rgba(255,222,0,.4);box-shadow:inset 5px 0 0 var(--pk-red)}

/* ---------- Alertes, journal, etats vides ---------- */
:root[data-theme="pokemon"] .warn{
  background:#ffe9e2;border:3px solid var(--pk-ink);border-left:12px solid var(--pk-red);
  box-shadow:var(--pk-hard);color:var(--text);
}
:root[data-theme="pokemon"] .warn strong{color:var(--pk-red-dark)}
:root[data-theme="pokemon"] .journal li{
  border:2px solid var(--pk-ink);border-left-width:8px;border-radius:14px;box-shadow:var(--pk-hard-sm);
}
:root[data-theme="pokemon"] .journal li.lvl-info{border-left-color:var(--pk-blue)}
:root[data-theme="pokemon"] .journal li.lvl-warn{border-left-color:#f5a623}
:root[data-theme="pokemon"] .journal li.lvl-error{border-left-color:var(--pk-red)}
:root[data-theme="pokemon"] .empty-state{
  font-weight:800;border:3px dashed #b9ae8c;border-radius:var(--radius);background:rgba(255,253,246,.6);
}
:root[data-theme="pokemon"] .empty-state::before{
  content:"";display:block;width:2.6rem;height:2.6rem;margin:0 auto .8rem;
  border:3px solid var(--pk-ink);border-radius:50%;
  background:
    radial-gradient(circle,#fff 0 .22rem,var(--pk-ink) .25rem .42rem,transparent .45rem),
    linear-gradient(var(--pk-red) 0 43%,var(--pk-ink) 43% 57%,#fff 57%);
  animation:pk-wobble 2.6s ease-in-out infinite;
}

@keyframes pk-blink{0%,100%{opacity:.35}50%{opacity:1}}
@keyframes pk-wobble{
  0%,60%,100%{transform:rotate(0)}
  68%{transform:rotate(-14deg)} 76%{transform:rotate(12deg)}
  84%{transform:rotate(-8deg)} 92%{transform:rotate(5deg)}
}

@media (max-width:640px){
  :root[data-theme="pokemon"] h1{font-size:.8rem}
  :root[data-theme="pokemon"] nav .brand::after{font-size:.62rem}
  :root[data-theme="pokemon"] .poster-card .poster-wrap{margin:.3rem .3rem 0}
}
@media (prefers-reduced-motion:reduce){
  :root[data-theme="pokemon"] .empty-state::before,
  :root[data-theme="pokemon"] .badge::before{animation:none!important}
  :root[data-theme="pokemon"] .poster-card.card:hover,
  :root[data-theme="pokemon"] .poster-card.pk-live,
  :root[data-theme="pokemon"] .holo-frame:hover,
  :root[data-theme="pokemon"] .holo-frame.pk-live{transform:none}
  :root[data-theme="pokemon"] .holo-frame:not(.pk-live):not(:hover){animation:none}
}
