/* Fond et sections du front public, à partir de la palette du thème. */
:root {
  --mt-pattern-line: color-mix(in srgb,var(--mt-primary) 11%,transparent);
  --mt-pattern-glow: color-mix(in srgb,var(--mt-primary) 5%,transparent);
  --mt-section-tint: color-mix(in srgb,var(--mt-bg-secondary) 65%,var(--mt-bg));
}
body:not(:has(.board-page)) { isolation:isolate; min-height:100vh; }
body:not(:has(.board-page))::before,
body:not(:has(.board-page))::after { content:''; position:fixed; inset:0; pointer-events:none; z-index:-1; }
body:not(:has(.board-page))::before {
  background:
    radial-gradient(circle at 94% 20%,transparent calc(17rem - 1px),var(--mt-pattern-line) 17rem,transparent calc(17rem + 1px)),
    radial-gradient(circle at 94% 20%,transparent calc(23rem - 1px),var(--mt-pattern-line) 23rem,transparent calc(23rem + 1px)),
    radial-gradient(circle at 3% 83%,transparent calc(12rem - 1px),var(--mt-pattern-line) 12rem,transparent calc(12rem + 1px)),
    radial-gradient(ellipse at 92% 18%,var(--mt-pattern-glow),transparent 60%),
    radial-gradient(ellipse at 5% 85%,var(--mt-pattern-glow),transparent 45%);
}
body:not(:has(.board-page))::after {
  background:repeating-linear-gradient(135deg,transparent 0 35px,var(--mt-pattern-line) 35px 36px,transparent 36px 70px);
  mask-image:linear-gradient(90deg,transparent 58%,var(--mt-bg));
  opacity:.45;
}
/* Les titres, outils et résultats ont chacun leur propre surface. */
main:not(.board-page) .page-heading,
main:not(.board-page) .account-identity,
main:not(.board-page) .player-header,
main:not(.board-page) .guide-hero {
  padding:clamp(1.25rem,3vw,2rem);
  border:1px solid var(--mt-border);
  border-radius:var(--mt-radius-surface);
  background:linear-gradient(110deg,var(--mt-pattern-glow),transparent 70%),var(--mt-bg-secondary);
  margin-bottom:2rem;
}
main:not(.board-page) .page-heading h1 { margin-top:.5rem; }
main:not(.board-page) :is(.library-filters,.deck-library-filters,.play-filters) {
  padding:clamp(1rem,2.5vw,1.75rem);
  border:1px solid var(--mt-border);
  border-radius:var(--mt-radius-surface);
  background:var(--mt-surface);
  margin-top:0;
  margin-bottom:1.5rem;
}
main:not(.board-page) .page-results-section {
  padding:clamp(1rem,2.5vw,1.75rem);
  border:1px solid var(--mt-border);
  border-radius:var(--mt-radius-surface);
  background:var(--mt-section-tint);
  margin-top:2rem;
}
.page-results-section :is(.library-results,.deck-library-results,.play-results-toolbar) {
  margin-top:0;
  padding:0 0 1.25rem;
  margin-bottom:1.5rem;
  border-bottom:1px solid var(--mt-border);
}
.page-results-section :is(.library-pagination,.deck-library-pagination,.play-pagination) { margin-top:1.5rem; padding-bottom:0; }
main:not(.board-page) :is(.card-detail-copy>section,.card-detail-panel,.player-card,.account-shortcuts>section,.account-settings-grid>section,.legal-content>section,.play-personal-feature) {
  padding:clamp(1.25rem,2.5vw,1.75rem);
  border:1px solid var(--mt-border);
  border-radius:var(--mt-radius-surface);
  background:var(--mt-bg-secondary);
}
main:not(.board-page) :is(.card-detail-panel,.legal-content>section):nth-of-type(even),
.guide-sections>.guide-section:nth-child(even) { background:var(--mt-surface); }
main:not(.board-page) .card-detail-panel { margin-bottom:1.25rem; gap:2rem; }
main:not(.board-page) .account-shortcuts,
main:not(.board-page) .account-settings-grid { gap:1.5rem; }
main:not(.board-page) .account-settings-grid { border:0; padding-top:0; }
main:not(.board-page) .guide-summary { padding:1.25rem; border:1px solid var(--mt-border); border-radius:1rem; background:var(--mt-bg-secondary); }
main:not(.board-page) :is(.deck-panel,.play-create-form) { border:1px solid var(--mt-border); border-radius:var(--mt-radius-surface); background:var(--mt-bg-secondary); padding:clamp(1.25rem,3vw,2rem); }
main:not(.board-page) .play-create-form>section { padding:1.5rem; border:1px solid var(--mt-border); border-radius:1rem; background:var(--mt-surface); }
@media(max-width:575px) {
  .page-results-section .library-explore-grid { gap:.6rem; }
  main:not(.board-page) .card-detail-panel { grid-template-columns:1fr; gap:1rem; }
  body:not(:has(.board-page))::after { opacity:.25; }
}
@media(forced-colors:active) {
  body:not(:has(.board-page))::before,body:not(:has(.board-page))::after { display:none; }
}
