/* Dragon Ball RPG 6.1 — habillage manga, fichier 2/7 : base et composants partagés. */

/* ---------- Montage plein écran (même mécanique que V5.0.1) ---------- */
html:has(body.dbrpg-page){height:100%;overflow:hidden}
body.dbrpg-page{height:100%;min-height:0;margin:0!important;overflow:hidden!important;overscroll-behavior:none;background:#eadcff}
body.dbrpg-page>*:not(#wpadminbar):not(#dbrpg-fullscreen-mount){display:none!important}
#dbrpg-fullscreen-mount{position:fixed;inset:var(--dbrpg-admin-bar-height) 0 0;z-index:9998;width:100%;overflow:hidden;background:#eadcff}

.dbrpg-app{
  box-sizing:border-box;width:100%;height:100%;min-height:0;overflow:hidden;
  color:var(--m-ink);font:500 15px/1.5 var(--m-font-body);
  background:var(--m-paper-bg) radial-gradient(var(--m-dot) 1.2px,transparent 1.3px) 0 0/9px 9px;
  color-scheme:light;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;
}
.dbrpg-app *,.dbrpg-app *::before,.dbrpg-app *::after{box-sizing:border-box}
.dbrpg-app img{max-width:100%}
.dbrpg-app :where(h1,h2,h3,h4){margin:0;font-family:var(--m-font-display);font-weight:400;letter-spacing:.02em;line-height:1.05;color:var(--m-ink)}
.dbrpg-app :where(h1){font-size:clamp(2rem,4vw,2.8rem)}
.dbrpg-app :where(h2){font-size:clamp(1.6rem,3vw,2.1rem)}
.dbrpg-app :where(h3){font-size:1.35rem}
.dbrpg-app :where(h4){font-size:1.1rem}
.dbrpg-app :where(p){margin:0}
.dbrpg-app :where(small){font-size:.82rem}
.dbrpg-app :where(a){color:var(--m-violet-deep)}
.dbrpg-app :where(kbd){padding:1px 6px;border:var(--m-stroke-thin) solid var(--m-ink);border-radius:6px;background:var(--m-blank);font:800 .8rem var(--m-font-body);box-shadow:var(--m-shadow-press)}
.dbrpg-app :focus-visible{outline:3px solid var(--m-violet);outline-offset:3px}
.dbrpg-app [hidden]{display:none!important}
.dbrpg-sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.dbrpg-honeypot{position:absolute;left:-9999px}

/* Défilement : un seul conteneur de vue */
.dbrpg-view-scroll,.dbrpg-hud-content{min-width:0;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--m-violet) transparent}
.dbrpg-view-scroll.is-background-locked{overflow:hidden;touch-action:none}
.dbrpg-standalone-scroll{overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain}

/* ---------- Icônes ---------- */
.dbrpg-icon{width:1.25em;height:1.25em;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.2em}

/* ---------- Libellés ---------- */
.dbrpg-kicker{display:inline-block;font:900 .72rem/1.3 var(--m-font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--m-violet-deep)}
.dbrpg-muted{color:var(--m-ink-3)}
.dbrpg-tabs-label{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 16px;margin:var(--m-gap-lg) 0 var(--m-gap-sm)}
.dbrpg-tabs-label b{font:400 1.45rem/1 var(--m-font-display);letter-spacing:.03em}
.dbrpg-tabs-label small,.dbrpg-tabs-label span{font-weight:800;color:var(--m-ink-2)}
.dbrpg-tabs-label>div{display:grid;gap:2px}

/* ---------- Boutons ---------- */
.dbrpg-app button{font:inherit;color:inherit;cursor:pointer}
.dbrpg-app button:disabled{cursor:not-allowed}
.dbrpg-primary,.dbrpg-secondary,.dbrpg-danger,.dbrpg-app :where(main) button:where(:not([class])){
  display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:9px 18px;
  border:var(--m-stroke) solid var(--m-ink);border-radius:var(--m-radius);
  font:900 .95rem/1.15 var(--m-font-body);text-align:center;text-decoration:none;
  box-shadow:var(--m-shadow);transition:transform var(--m-speed),box-shadow var(--m-speed),background var(--m-speed);
}
.dbrpg-primary{background:var(--m-pop);color:var(--m-ink)}
.dbrpg-secondary,.dbrpg-app :where(main) button:where(:not([class])){background:var(--m-blank);color:var(--m-ink)}
.dbrpg-danger{background:var(--m-danger);color:var(--m-blank)}
.dbrpg-primary:hover:not(:disabled),.dbrpg-secondary:hover:not(:disabled),.dbrpg-danger:hover:not(:disabled),.dbrpg-app :where(main) button:where(:not([class])):hover:not(:disabled){transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--m-ink)}
.dbrpg-primary:active:not(:disabled),.dbrpg-secondary:active:not(:disabled),.dbrpg-danger:active:not(:disabled){transform:translate(3px,3px);box-shadow:var(--m-shadow-press)}
.dbrpg-secondary:hover:not(:disabled){background:var(--m-paper-2)}
.dbrpg-primary:disabled,.dbrpg-secondary:disabled,.dbrpg-danger:disabled,.dbrpg-app :where(main) button:where(:not([class])):disabled{background:var(--m-paper-3);color:var(--m-ink-3);border-color:var(--m-ink-3);box-shadow:none;transform:none}
.dbrpg-link{display:inline-flex;align-items:center;gap:6px;padding:4px 2px;border:0;background:none;color:var(--m-violet-deep);font:800 .9rem/1.3 var(--m-font-body);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}
.dbrpg-link:hover{color:var(--m-ink)}
.dbrpg-link[hidden]{display:none}
.dbrpg-icon-button{display:grid;place-items:center;width:40px;height:40px;padding:0;border:var(--m-stroke) solid var(--m-ink);border-radius:50%;background:var(--m-blank);font-size:1.3rem;box-shadow:var(--m-shadow-sm)}
.dbrpg-result-actions,.dbrpg-head-actions{display:flex;flex-wrap:wrap;gap:var(--m-gap-sm);align-items:center}
.dbrpg-result-actions{margin-top:var(--m-gap)}

/* ---------- Champs ---------- */
.dbrpg-app :where(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),select,textarea){
  width:100%;min-height:44px;padding:8px 12px;border:var(--m-stroke-thin) solid var(--m-ink);border-radius:var(--m-radius-sm);
  background:var(--m-blank);color:var(--m-ink);font:700 .95rem var(--m-font-body);box-shadow:inset 2px 2px 0 var(--m-paper-3)}
.dbrpg-app :where(input,select,textarea):focus{outline:3px solid var(--m-violet);outline-offset:1px}
.dbrpg-app :where(input[type=checkbox],input[type=radio]){width:20px;height:20px;accent-color:var(--m-violet);vertical-align:middle}
.dbrpg-app :where(input[type=range]){accent-color:var(--m-violet)}
.dbrpg-app :where(label){font-weight:800;color:var(--m-ink-2)}
.dbrpg-app :where(fieldset){margin:0;padding:12px;border:var(--m-stroke-thin) solid var(--m-ink);border-radius:var(--m-radius)}
.dbrpg-app :where(legend){padding:0 6px;font:400 1.2rem var(--m-font-display)}

/* ---------- Surfaces ---------- */
.dbrpg-panel{position:relative;padding:18px;border:var(--m-stroke) solid var(--m-ink);border-radius:var(--m-radius-lg);background:var(--m-paper);box-shadow:var(--m-shadow)}
.dbrpg-panel+.dbrpg-panel{margin-top:var(--m-gap)}
.dbrpg-panel-title{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:8px 16px;margin-bottom:12px}
.dbrpg-panel-title>span,.dbrpg-panel-title>small{font-weight:800;color:var(--m-ink-2);font-size:.85rem}
.dbrpg-panel-title h2,.dbrpg-panel-title h3{font-size:1.4rem}
.dbrpg-section-head{display:grid;gap:6px;margin:var(--m-gap-lg) 0 var(--m-gap)}
.dbrpg-section-head:first-child{margin-top:0}
.dbrpg-section-head h2{font-size:clamp(2rem,4.5vw,2.8rem);transform:skew(-4deg);transform-origin:left;color:var(--m-ink);text-shadow:3px 3px 0 var(--m-violet-soft)}
.dbrpg-section-head>p{max-width:72ch;color:var(--m-ink-2);font-weight:600}
.dbrpg-app details>summary{cursor:pointer;list-style:none}
.dbrpg-app details>summary::-webkit-details-marker{display:none}
.dbrpg-empty{display:grid;justify-items:center;gap:10px;padding:32px 20px;text-align:center;border:var(--m-stroke) dashed var(--m-ink);border-radius:var(--m-radius-lg);background:var(--m-paper)}
.dbrpg-empty>span{display:grid;place-items:center;width:64px;height:64px;border:var(--m-stroke) solid var(--m-ink);border-radius:50%;background:var(--m-pop);font-size:1.8rem;box-shadow:var(--m-shadow-sm)}
.dbrpg-empty.compact{padding:18px}
.dbrpg-empty p{color:var(--m-ink-2);max-width:56ch}

/* ---------- Pastilles, raretés, états ---------- */
.dbrpg-badge,.dbrpg-rarity,.dbrpg-state-label,.dbrpg-progress-pill,.dbrpg-exclusive-tag,.dbrpg-featured-tag,.dbrpg-guarantee-tag,.dbrpg-race-badge,.dbrpg-legacy-preserved{
  display:inline-flex;align-items:center;gap:4px;width:max-content;max-width:100%;padding:3px 10px;
  border:var(--m-stroke-thin) solid var(--m-ink);border-radius:999px;background:var(--m-blank);color:var(--m-ink);
  font:900 .72rem/1.35 var(--m-font-body);letter-spacing:.08em;text-transform:uppercase}
.dbrpg-progress-pill{background:var(--m-violet-soft);letter-spacing:.02em;font-size:.82rem}
.dbrpg-exclusive-tag,.dbrpg-featured-tag{background:var(--m-hot);color:var(--m-blank)}
.dbrpg-guarantee-tag{background:var(--m-pop)}
.dbrpg-race-badge{background:var(--m-violet);color:var(--m-blank)}
.dbrpg-done{display:inline-flex;align-items:center;gap:4px;font-weight:900;color:var(--m-success)}
.dbrpg-locked{display:inline-flex;align-items:center;gap:4px;font-weight:900;color:var(--m-ink-3)}
.dbrpg-locked::before{content:"🔒";font-size:.85em}
.dbrpg-dmg-tag{display:inline-block;margin-left:4px;padding:1px 7px;border:var(--m-stroke-thin) solid var(--m-ink);border-radius:6px;font:900 .68rem/1.4 var(--m-font-body);font-style:normal;letter-spacing:.06em;text-transform:uppercase;vertical-align:middle;background:var(--m-ki);color:var(--m-ink)}
.dbrpg-dmg-tag.physique{background:var(--m-ult)}

/* Rareté : couleur d’entourage disponible via --rc sur toute carte */
.dbrpg-app [class*="rarity-"],.dbrpg-app .dbrpg-item,.dbrpg-app .dbrpg-shop-item{--rc:var(--m-r-commun)}
.dbrpg-app :is(.rarity-rare,.rare){--rc:var(--m-r-rare)}
.dbrpg-app :is(.rarity-super-rare,.super-rare,.rarity-epique,.epique){--rc:var(--m-r-super)}
.dbrpg-app :is(.rarity-legendaire,.legendaire){--rc:var(--m-r-legend)}
.dbrpg-app :is(.rarity-mythique,.mythique){--rc:var(--m-r-myth)}
.dbrpg-app :is(.rarity-divin,.divin){--rc:var(--m-r-divin)}
.dbrpg-rarity{background:var(--rc,var(--m-r-commun));color:var(--m-ink)}
.rarity-commun .dbrpg-rarity,.commun .dbrpg-rarity{color:var(--m-ink)}

/* ---------- Effets et récompenses (puces) ---------- */
.dbrpg-effects,.dbrpg-rewards,.dbrpg-companion-stats,.dbrpg-talent-effects,.dbrpg-awakening-stats{display:flex;flex-wrap:wrap;gap:6px}
.dbrpg-effects>span,.dbrpg-rewards>span,.dbrpg-companion-stats>span,.dbrpg-talent-effects>span,.dbrpg-awakening-stats>span{
  display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border:var(--m-stroke-thin) solid var(--m-ink);border-radius:8px;background:var(--m-paper-2);font:800 .8rem/1.35 var(--m-font-body)}
.dbrpg-rewards>span{background:var(--m-pop)}
.dbrpg-quest-item-reward img,.dbrpg-reward-item img{width:26px;height:26px;object-fit:cover;border-radius:6px;border:2px solid var(--m-ink);background:var(--m-paper)}
.dbrpg-reward-item{display:inline-flex;align-items:center;gap:8px;padding:5px 10px 5px 5px;border:var(--m-stroke-thin) solid var(--m-ink);border-radius:10px;background:var(--m-blank);font-weight:800}
.dbrpg-reward-item small{display:block;color:var(--m-ink-3);font-size:.75rem}
.dbrpg-condition-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.dbrpg-condition-list span,.dbrpg-transform-conditions span{padding:2px 8px;border-radius:8px;border:2px solid var(--m-ink);font-weight:800;font-size:.8rem;background:var(--m-paper-2)}
.dbrpg-condition-list .met,.dbrpg-transform-conditions .met{background:#c9f7d8}
.dbrpg-condition-list .missing,.dbrpg-transform-conditions .missing{background:var(--m-blank);color:var(--m-ink-3);border-style:dashed}

/* ---------- Jauges ---------- */
.dbrpg-bar-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;font-weight:900;font-size:.82rem}
.dbrpg-bar{position:relative;height:14px;border:var(--m-stroke-thin) solid var(--m-ink);border-radius:999px;background:var(--m-paper-3);overflow:hidden}
.dbrpg-bar>u,.dbrpg-bar>i{position:absolute;inset:0 auto 0 0;display:block;border-radius:999px;text-decoration:none;transition:width .45s cubic-bezier(.3,.7,.3,1)}
.dbrpg-bar>u{background:#fff;opacity:.85;transition-delay:.25s;transition-duration:.7s}
.dbrpg-bar>i{background:var(--bar,var(--m-violet));box-shadow:inset 0 3px 0 #ffffff70}
.dbrpg-bar.hp,.dbrpg-bar.companionhp{--bar:linear-gradient(90deg,var(--m-hp-deep),var(--m-hp))}
.dbrpg-bar.ki{--bar:linear-gradient(90deg,var(--m-ki-deep),var(--m-ki))}
.dbrpg-bar.enemyhp{--bar:linear-gradient(90deg,#b0122f,var(--m-hot))}
.dbrpg-bar.enemyki{--bar:linear-gradient(90deg,#5b21b6,var(--m-violet))}
.dbrpg-bar.ultimate{--bar:linear-gradient(90deg,#e0590b,var(--m-pop))}
.dbrpg-bar.xp{--bar:linear-gradient(90deg,var(--m-violet),#c084fc)}
.dbrpg-bar-row.is-low .dbrpg-bar>i{animation:dbrpg-m-low 1s ease-in-out infinite}
.dbrpg-bar-row b[data-bar-value]{font-variant-numeric:tabular-nums}
@keyframes dbrpg-m-low{50%{filter:brightness(1.4)}}

.dbrpg-periodic-progress,.dbrpg-event-objective>.dbrpg-event-bar,.dbrpg-event-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}
.dbrpg-periodic-progress>i,.dbrpg-event-bar{display:block;height:12px;border:var(--m-stroke-thin) solid var(--m-ink);border-radius:999px;background:var(--m-paper-3);overflow:hidden}
.dbrpg-event-bar{grid-template-columns:none}
.dbrpg-periodic-progress>i>span,.dbrpg-event-bar>i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--m-violet),#c084fc);box-shadow:inset 0 2px 0 #ffffff70}
.dbrpg-periodic-progress>b{font-weight:900;font-size:.85rem;font-variant-numeric:tabular-nums}
.dbrpg-xp-track{height:12px;border:var(--m-stroke-thin) solid var(--m-ink);border-radius:999px;background:var(--m-paper-3);overflow:hidden}
.dbrpg-xp-track>i{display:block;width:var(--xp-width,0);height:100%;background:linear-gradient(90deg,var(--m-violet),#c084fc)}
.dbrpg-mastery>i,.dbrpg-skill-mastery>i,.dbrpg-mentor-progress>i,.dbrpg-training-xp>i,.dbrpg-ultimate-gauge-readout>i,.dbrpg-home-xp>i{display:block;height:10px;border:2px solid var(--m-ink);border-radius:999px;background:var(--m-paper-3);overflow:hidden}
.dbrpg-mastery>i>span,.dbrpg-skill-mastery>i>b,.dbrpg-mentor-progress>i>b,.dbrpg-training-xp>i>b,.dbrpg-ultimate-gauge-readout>i>b,.dbrpg-home-xp>i>b{display:block;height:100%;background:linear-gradient(90deg,var(--m-violet),#c084fc)}
.dbrpg-ultimate-gauge-readout>i>b{background:linear-gradient(90deg,#e0590b,var(--m-pop))}

/* ---------- Infobulles de statistiques ---------- */
.dbrpg-stat-help{position:relative;display:inline-flex;vertical-align:middle}
.dbrpg-stat-tip-trigger{display:grid;place-items:center;width:20px;height:20px;padding:0;border:2px solid var(--m-ink);border-radius:50%;background:var(--m-violet-soft);font:900 .72rem/1 var(--m-font-body)}
.dbrpg-stat-tooltip{position:absolute;left:50%;bottom:calc(100% + 10px);z-index:var(--z-overlay);display:none;width:min(300px,80vw);padding:12px;transform:translateX(-50%);border:var(--m-stroke) solid var(--m-ink);border-radius:var(--m-radius);background:var(--m-paper);box-shadow:var(--m-shadow);color:var(--m-ink);font-weight:600;text-align:left}
.dbrpg-stat-help.is-open .dbrpg-stat-tooltip,.dbrpg-stat-tip-trigger[aria-expanded=true]+.dbrpg-stat-tooltip,.dbrpg-stat-help:hover .dbrpg-stat-tooltip,.dbrpg-stat-help:focus-within .dbrpg-stat-tooltip{display:block}
.dbrpg-stat-tooltip>strong{display:block;margin-bottom:6px;font:400 1.15rem var(--m-font-display)}
.dbrpg-stat-tooltip-grid{display:grid;gap:4px;font-size:.82rem}
.dbrpg-stat-tooltip-grid>span{display:flex;justify-content:space-between;gap:10px;border-bottom:1px dashed var(--m-paper-3);padding-bottom:3px}
.dbrpg-stat-tooltip-grid b{font-weight:700;color:var(--m-ink-2)}
.dbrpg-stat-tooltip-grid em{font-style:normal;font-weight:900;text-align:right}
.dbrpg-stat-tooltip>small{display:block;margin-top:8px;color:var(--m-ink-2)}

/* ---------- Bandeau d’illustration de mode ---------- */
.dbrpg-mode-hero{position:relative;display:flex;align-items:flex-end;min-height:190px;margin-bottom:var(--m-gap);overflow:hidden;border:var(--m-stroke) solid var(--m-ink);border-radius:var(--m-radius-lg);background:var(--m-violet);box-shadow:var(--m-shadow-lg)}
.dbrpg-mode-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.dbrpg-mode-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#1c0b36e6 0%,#1c0b3699 45%,transparent 80%)}
.dbrpg-mode-hero-copy{position:relative;z-index:1;display:grid;gap:6px;max-width:560px;padding:20px 22px;color:var(--m-blank)}
.dbrpg-mode-hero-copy .dbrpg-kicker{color:var(--m-pop)}
.dbrpg-mode-hero-copy h1{color:var(--m-pop);font-size:clamp(2.1rem,5vw,3.2rem);-webkit-text-stroke:1.5px var(--m-ink);paint-order:stroke fill;text-shadow:3px 3px 0 var(--m-ink);transform:skew(-5deg);transform-origin:left}
.dbrpg-mode-hero-copy p{font-weight:700;opacity:.92}
.dbrpg-mode-hero.is-visual-disabled{background:var(--m-violet) radial-gradient(#ffffff26 1.3px,transparent 1.4px) 0 0/10px 10px}

/* ---------- Résultat unifié (reçus) ---------- */
.dbrpg-unified-result{margin-bottom:var(--m-gap);padding:16px;border:var(--m-stroke) solid var(--m-ink);border-radius:var(--m-radius-lg);background:var(--m-pop);box-shadow:var(--m-shadow);animation:dbrpg-m-pop .35s cubic-bezier(.2,1.4,.4,1)}
.dbrpg-unified-result header{display:flex;align-items:center;gap:12px}
.dbrpg-unified-result header>span{display:grid;place-items:center;width:44px;height:44px;border:var(--m-stroke) solid var(--m-ink);border-radius:50%;background:var(--m-blank)}
.dbrpg-unified-result header>div{flex:1}
.dbrpg-unified-result header small{font-weight:900;text-transform:uppercase;letter-spacing:.1em}
.dbrpg-unified-result header button{width:36px;height:36px;border:var(--m-stroke-thin) solid var(--m-ink);border-radius:50%;background:var(--m-blank);font-size:1.3rem;line-height:1}
.dbrpg-unified-result>div{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.dbrpg-unified-result>div>span{display:grid;padding:6px 12px;border:var(--m-stroke-thin) solid var(--m-ink);border-radius:10px;background:var(--m-blank)}
.dbrpg-unified-result>div small{font-weight:900;font-size:.68rem;letter-spacing:.1em;color:var(--m-ink-2)}
.dbrpg-unified-result>div b{font:400 1.3rem var(--m-font-display)}
@keyframes dbrpg-m-pop{from{transform:scale(.85) rotate(-2deg);opacity:0}to{transform:none;opacity:1}}

/* ---------- Fenêtres modales ---------- */
.dbrpg-modal-backdrop,.dbrpg-equipment-dialog,.dbrpg-help,.dbrpg-crop-modal,.dbrpg-avatar-setup-backdrop{position:fixed;inset:var(--dbrpg-admin-bar-height) 0 0;z-index:var(--z-overlay);display:grid;place-items:center;padding:16px;background:#1c0b36b3;backdrop-filter:blur(3px)}
.dbrpg-dialog-backdrop,.dbrpg-help-backdrop,.dbrpg-crop-backdrop{position:absolute;inset:0;border:0;background:transparent;cursor:default}
.dbrpg-equipment-dialog-panel,.dbrpg-help>section,.dbrpg-crop-modal>section,.dbrpg-training-modal,.dbrpg-avatar-setup,.dbrpg-avatar-editor-dialog{
  position:relative;width:min(560px,100%);max-height:calc(100dvh - var(--dbrpg-admin-bar-height) - 32px);overflow-y:auto;overscroll-behavior:contain;
  padding:22px;border:var(--m-stroke) solid var(--m-ink);border-radius:var(--m-radius-lg);background:var(--m-paper);box-shadow:var(--m-shadow-lg);animation:dbrpg-m-pop .25s ease-out}
.dbrpg-help>section header,.dbrpg-crop-modal>section header,.dbrpg-avatar-editor-dialog header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.dbrpg-help>section header button,.dbrpg-crop-modal header button,.dbrpg-training-modal>button[data-training-close]{display:grid;place-items:center;width:38px;height:38px;flex:none;padding:0;border:var(--m-stroke-thin) solid var(--m-ink);border-radius:50%;background:var(--m-blank);font-size:1.1rem;box-shadow:var(--m-shadow-press)}
.dbrpg-training-modal>button[data-training-close]{position:absolute;right:14px;top:14px}
.dbrpg-help details{margin-top:12px;padding:10px 12px;border:var(--m-stroke-thin) solid var(--m-ink);border-radius:var(--m-radius);background:var(--m-paper-2)}
.dbrpg-help summary{font-weight:900}
.dbrpg-help details p{margin-top:6px;color:var(--m-ink-2)}

/* ---------- Notifications ---------- */
.dbrpg-toasts{position:fixed;right:16px;bottom:calc(96px + env(safe-area-inset-bottom));z-index:var(--z-toast);display:grid;gap:8px;width:min(360px,calc(100vw - 32px));pointer-events:none}
.dbrpg-toast{padding:12px 14px;border:var(--m-stroke) solid var(--m-ink);border-radius:var(--m-radius);background:var(--m-blank);box-shadow:var(--m-shadow);font-weight:800;animation:dbrpg-m-toast .3s cubic-bezier(.2,1.3,.4,1)}
.dbrpg-toast.success{background:#c9f7d8}
.dbrpg-toast.error{background:#ffd1db}
.dbrpg-toast.info{background:var(--m-violet-soft)}
@keyframes dbrpg-m-toast{from{transform:translateX(30px) rotate(3deg);opacity:0}}

/* ---------- Chargement et erreur ---------- */
.dbrpg-loading,.dbrpg-error{display:grid;place-items:center;align-content:center;gap:14px;height:100%;padding:24px;text-align:center}
.dbrpg-loading strong{font:400 1.6rem var(--m-font-display);letter-spacing:.04em}
.dbrpg-orb{position:relative;width:72px;height:72px;border:var(--m-stroke) solid var(--m-ink);border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff7c2,var(--m-pop) 45%,var(--m-pop-deep));box-shadow:var(--m-shadow);animation:dbrpg-m-bounce 1s ease-in-out infinite}
.dbrpg-orb::after{content:"★";position:absolute;inset:0;display:grid;place-items:center;color:#e5381d;font-size:1.6rem}
@keyframes dbrpg-m-bounce{50%{transform:translateY(-10px) rotate(8deg)}}
.dbrpg-error{max-width:520px;margin:auto}
.dbrpg-error h3{font-size:2rem}

@media (prefers-reduced-motion:reduce){
  .dbrpg-app *,.dbrpg-app *::before,.dbrpg-app *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
