/**
 * Maison Arcaneïs — Design System V2.42.0.
 * Socle transversal léger : tokens, composants communs et classes d'alignement.
 * Objectif : arrêter l'empilement de correctifs visuels sans casser les écrans existants.
 */

:root {
  --arc-ds-bg-night: #070605;
  --arc-ds-bg-deep: #0e0b08;
  --arc-ds-surface-dark: rgba(21, 16, 11, 0.94);
  --arc-ds-surface-darker: rgba(10, 8, 6, 0.96);
  --arc-ds-surface-ivory: #f4ede4;
  --arc-ds-surface-ivory-soft: #fbf6ee;
  --arc-ds-border-soft: rgba(214, 171, 103, 0.28);
  --arc-ds-border-strong: rgba(214, 171, 103, 0.52);
  --arc-ds-gold: #d6ab67;
  --arc-ds-gold-soft: #ead2a6;
  --arc-ds-text-main: #f4ede4;
  --arc-ds-text-muted: rgba(244, 237, 228, 0.72);
  --arc-ds-text-dark: #1d1711;
  --arc-ds-text-dark-muted: #6f604e;
  --arc-ds-success: #7fb685;
  --arc-ds-warning: #e2b866;
  --arc-ds-danger: #c96f5f;
  --arc-ds-info: #8fb7cf;
  --arc-ds-radius-sm: 10px;
  --arc-ds-radius-md: 16px;
  --arc-ds-radius-lg: 22px;
  --arc-ds-shadow-card: 0 18px 48px rgba(0, 0, 0, 0.24);
  --arc-ds-shadow-soft: 0 10px 28px rgba(0, 0, 0, 0.18);
  --arc-ds-space-1: 6px;
  --arc-ds-space-2: 10px;
  --arc-ds-space-3: 14px;
  --arc-ds-space-4: 18px;
  --arc-ds-space-5: 24px;
  --arc-ds-space-6: 32px;
  --arc-ds-font-title: Georgia, 'Times New Roman', serif;
  --arc-ds-font-ui: Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

.arc-ds-scope,
.arc-admin-wrap,
.arc-dashboard-shell,
.arc-s1-shell,
.arc-city-shell,
.arc-city-app,
.arc-archives-validate-page {
  color-scheme: dark;
  --arc-bg-night: var(--arc-ds-bg-night);
  --arc-bg-deep: var(--arc-ds-bg-deep);
  --arc-surface-dark: var(--arc-ds-surface-dark);
  --arc-surface-ivory: var(--arc-ds-surface-ivory);
  --arc-border-soft: var(--arc-ds-border-soft);
  --arc-border-strong: var(--arc-ds-border-strong);
  --arc-gold: var(--arc-ds-gold);
  --arc-gold-soft: var(--arc-ds-gold-soft);
  --arc-text-main: var(--arc-ds-text-main);
  --arc-text-muted: var(--arc-ds-text-muted);
  --arc-radius-sm: var(--arc-ds-radius-sm);
  --arc-radius-md: var(--arc-ds-radius-md);
  --arc-radius-lg: var(--arc-ds-radius-lg);
  --arc-shadow-card: var(--arc-ds-shadow-card);
  --arc-font-title: var(--arc-ds-font-title);
  --arc-font-ui: var(--arc-ds-font-ui);
}

.arc-ds-card,
.arc-admin-card,
.arc-s1-card,
.arc-city-card,
.arc-archives-card {
  border-radius: var(--arc-ds-radius-lg);
  border: 1px solid var(--arc-ds-border-soft);
  box-shadow: var(--arc-ds-shadow-soft);
}

.arc-ds-kicker,
.arc-admin-card > span,
.arc-s1-kicker,
.arc-city-kicker {
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.arc-ds-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--arc-ds-space-2);
  align-items: center;
}

.arc-ds-notice {
  border: 1px solid var(--arc-ds-border-soft);
  border-radius: var(--arc-ds-radius-md);
  padding: var(--arc-ds-space-4);
  background: rgba(214, 171, 103, 0.08);
}

.arc-ds-status-ok { color: var(--arc-ds-success); }
.arc-ds-status-warning { color: var(--arc-ds-warning); }
.arc-ds-status-danger { color: var(--arc-ds-danger); }
.arc-ds-status-info { color: var(--arc-ds-info); }

@media (max-width: 720px) {
  .arc-ds-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .arc-ds-actions .button,
  .arc-ds-actions a {
    width: 100%;
    text-align: center;
  }
}


/* FIX V2.40.0 — migration progressive : composants critiques normalisés sans purge des CSS historiques. */
.arc-ds-shell {
  font-family: var(--arc-ds-font-ui);
}

.arc-ds-panel,
.arc-ds-card {
  position: relative;
  min-width: 0;
  box-sizing: border-box;
  border: 1px solid var(--arc-ds-border-soft);
  border-radius: var(--arc-ds-radius-lg);
  background: linear-gradient(145deg, rgba(255,255,255,0.055), rgba(255,255,255,0.022));
  box-shadow: var(--arc-ds-shadow-soft);
}

.arc-ds-card-dark {
  color: var(--arc-ds-text-main);
  background: linear-gradient(145deg, var(--arc-ds-surface-dark), var(--arc-ds-surface-darker));
}

.arc-ds-card-ivory {
  color: var(--arc-ds-text-dark);
  background: linear-gradient(145deg, var(--arc-ds-surface-ivory-soft), var(--arc-ds-surface-ivory));
  border-color: rgba(48, 36, 24, 0.14);
}

.arc-ds-title {
  margin: 0 0 var(--arc-ds-space-3);
  font-family: var(--arc-ds-font-title);
  line-height: 1.04;
}

.arc-ds-copy {
  line-height: 1.62;
}

.arc-ds-kicker {
  margin: 0 0 var(--arc-ds-space-2);
  color: var(--arc-ds-gold-soft);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.arc-ds-btn,
.arc-ds-actions a,
.arc-ds-actions button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  border-radius: 999px;
  box-sizing: border-box;
  font-weight: 800;
  text-decoration: none;
}

.arc-ds-btn-primary {
  border: 1px solid rgba(214, 171, 103, 0.58);
  color: #1d1711;
  background: linear-gradient(135deg, var(--arc-ds-gold-soft), var(--arc-ds-gold));
}

.arc-ds-btn-secondary {
  border: 1px solid var(--arc-ds-border-soft);
  color: var(--arc-ds-text-main);
  background: rgba(255, 255, 255, 0.055);
}

.arc-ds-grid {
  display: grid;
  gap: var(--arc-ds-space-4);
}

.arc-ds-grid-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.arc-ds-grid-auto {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
}

.arc-ds-metric {
  min-width: 0;
  border: 1px solid rgba(214, 171, 103, 0.20);
  border-radius: var(--arc-ds-radius-md);
  padding: var(--arc-ds-space-3);
  background: rgba(214, 171, 103, 0.075);
}

.arc-ds-metric span {
  display: block;
  color: var(--arc-ds-text-muted);
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.arc-ds-metric strong {
  display: block;
  margin-top: var(--arc-ds-space-1);
  color: var(--arc-ds-text-main);
  font-family: var(--arc-ds-font-title);
  font-size: 1.45rem;
  line-height: 1.05;
}

.arc-ds-notice-info { border-color: rgba(143, 183, 207, 0.42); background: rgba(143, 183, 207, 0.10); }
.arc-ds-notice-success { border-color: rgba(127, 182, 133, 0.44); background: rgba(127, 182, 133, 0.10); }
.arc-ds-notice-warning { border-color: rgba(226, 184, 102, 0.44); background: rgba(226, 184, 102, 0.11); }
.arc-ds-notice-danger { border-color: rgba(201, 111, 95, 0.44); background: rgba(201, 111, 95, 0.10); }

/* Ponts contrôlés : les composants historiques les plus critiques héritent des tokens DS sans renommage destructeur. */
.arc-admin-card,
.arc-health-card,
.arc-conv-card,
.arc-conv-kpi,
.arc-hot-card,
.arc-admin-log-card,
.arc-log-decision-card-v2217 {
  box-sizing: border-box;
  border-radius: var(--arc-ds-radius-md);
}

.arc-archives-block,
.arc-archives-card,
.arc-s1-card,
.arc-city-card,
.arc-dashboard261-hero,
.arc-dashboard261-figure,
.arc-dashboard261-shortcuts a,
.arc-dashboard236-pathline article {
  box-sizing: border-box;
  border-radius: var(--arc-ds-radius-lg);
}

.arc-archives-kicker,
.arc-s1-kicker,
.arc-city-kicker,
.arc-dashboard261-kicker {
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.arc-archives-actions,
.arc-city-completed-actions,
.arc-city-route-actions,
.arc-dashboard261-lower {
  gap: var(--arc-ds-space-3);
}

.arc-archives-btn,
.arc-s1-button,
.arc-city-btn,
.arc-dashboard261-primary {
  box-sizing: border-box;
  text-decoration: none;
}

@media (max-width: 780px) {
  .arc-ds-grid-2 {
    grid-template-columns: 1fr;
  }
}


/* FIX V2.42.0 — Design system maître progressif : composants transversaux sans refonte métier ni suppression des CSS historiques. */
:root {
  --arc-ds-shell-max: 1240px;
  --arc-ds-content-max: 1080px;
  --arc-ds-focus: 0 0 0 3px rgba(214, 171, 103, 0.30);
  --arc-ds-transition-fast: 160ms ease;
  --arc-ds-transition-base: 220ms ease;
  --arc-ds-surface-glass: linear-gradient(145deg, rgba(30, 22, 15, 0.96), rgba(11, 8, 5, 0.94));
  --arc-ds-surface-glass-soft: linear-gradient(145deg, rgba(255, 255, 255, 0.065), rgba(255, 255, 255, 0.026));
  --arc-ds-surface-gold-wash: radial-gradient(circle at 12% 0%, rgba(214, 171, 103, 0.16), transparent 38%), linear-gradient(145deg, rgba(30, 22, 15, 0.96), rgba(11, 8, 5, 0.94));
}

.arc-ds-shell,
.arc-player-shell,
.arc-dashboard261,
.arc-s1-shell,
.arc-city-shell,
.arc-city-app,
.arc-archives-validate-page {
  box-sizing: border-box;
}

.arc-ds-wrap {
  width: min(100%, var(--arc-ds-shell-max));
  margin-inline: auto;
}

.arc-ds-stack {
  display: grid;
  gap: var(--arc-ds-space-4);
}

.arc-ds-stack-tight {
  display: grid;
  gap: var(--arc-ds-space-2);
}

.arc-ds-section {
  display: grid;
  gap: var(--arc-ds-space-5);
}

.arc-ds-hero,
.arc-ds-surface,
.arc-ds-toolbar,
.arc-ds-empty {
  position: relative;
  box-sizing: border-box;
  border: 1px solid var(--arc-ds-border-soft);
  border-radius: var(--arc-ds-radius-lg);
  background: var(--arc-ds-surface-glass);
  box-shadow: var(--arc-ds-shadow-soft);
}

.arc-ds-hero {
  overflow: hidden;
  padding: clamp(22px, 3vw, 34px);
  background: var(--arc-ds-surface-gold-wash);
}

.arc-ds-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: var(--arc-ds-space-3);
  align-items: center;
  justify-content: space-between;
  padding: var(--arc-ds-space-4);
}

.arc-ds-empty {
  padding: var(--arc-ds-space-5);
  background: rgba(255, 255, 255, 0.035);
}

.arc-ds-list {
  display: grid;
  gap: var(--arc-ds-space-3);
  margin: 0;
  padding: 0;
  list-style: none;
}

.arc-ds-pill,
.arc-ds-tag,
.arc-ds-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  border: 1px solid var(--arc-ds-border-soft);
  border-radius: 999px;
  padding: 6px 11px;
  color: var(--arc-ds-text-main);
  background: rgba(255, 255, 255, 0.055);
  font-size: 0.78rem;
  font-weight: 850;
  letter-spacing: 0.035em;
  text-decoration: none;
}

.arc-ds-tag {
  color: var(--arc-ds-gold-soft);
  background: rgba(214, 171, 103, 0.10);
}

.arc-ds-progress {
  position: relative;
  overflow: hidden;
  height: 10px;
  border-radius: 999px;
  background: rgba(244, 237, 228, 0.13);
}

.arc-ds-progress > span,
.arc-ds-progress-bar {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--arc-ds-gold), var(--arc-ds-gold-soft));
}

.arc-ds-btn:focus-visible,
.arc-ds-actions a:focus-visible,
.arc-ds-actions button:focus-visible,
.arc-archives-btn:focus-visible,
.arc-s1-button:focus-visible,
.arc-city-btn:focus-visible,
.arc-dashboard261-primary:focus-visible,
.arc-player-side-link:focus-visible {
  outline: 0;
  box-shadow: var(--arc-ds-focus);
}

.arc-ds-btn,
.arc-ds-pill,
.arc-ds-tag,
.arc-ds-badge,
.arc-archives-btn,
.arc-s1-button,
.arc-city-btn,
.arc-dashboard261-primary,
.arc-player-side-link {
  transition: transform var(--arc-ds-transition-fast), border-color var(--arc-ds-transition-fast), background var(--arc-ds-transition-fast), box-shadow var(--arc-ds-transition-fast);
}

.arc-ds-btn:hover,
.arc-archives-btn:hover,
.arc-s1-button:hover,
.arc-city-btn:hover,
.arc-dashboard261-primary:hover {
  transform: translateY(-1px);
}

/* Ponts contrôlés V2.42.0 : le design system devient la référence des composants joueur sans changer le HTML existant. */
.arc-player-dashboard,
.arc-dashboard261,
.arc-s1-shell,
.arc-city-shell,
.arc-city-app {
  --arc-component-radius-card: var(--arc-ds-radius-lg);
  --arc-component-radius-control: 999px;
  --arc-component-border: var(--arc-ds-border-soft);
  --arc-component-border-strong: var(--arc-ds-border-strong);
  --arc-component-shadow: var(--arc-ds-shadow-soft);
  --arc-component-gold: var(--arc-ds-gold);
  --arc-component-gold-soft: var(--arc-ds-gold-soft);
}

.arc-player-view-header.is-hero,
.arc-dashboard261-hero,
.arc-draw-head-v2113,
.arc-collection265-hero,
.arc-account-head-v2173,
.arc-s1-hero,
.arc-city-hero,
.arc-city-app-hero,
.arc-city-inventory-hero {
  border-radius: var(--arc-component-radius-card, var(--arc-ds-radius-lg));
  border-color: var(--arc-component-border, var(--arc-ds-border-soft));
  box-shadow: var(--arc-component-shadow, var(--arc-ds-shadow-soft));
}

.arc-dashboard261-shortcuts a,
.arc-dashboard236-pathline article,
.arc-draw-status-card-v2113,
.arc-draw-action-card-v2113,
.arc-draw-checklist-v2113 > article,
.arc-player-city-card,
.arc-city-dashboard-missions-v2202 article,
.arc-s1-stat-card,
.arc-s1-card,
.arc-city-card,
.arc-city-step-card,
.arc-city-inventory-card {
  box-sizing: border-box;
  border-radius: var(--arc-component-radius-card, var(--arc-ds-radius-lg));
}

.arc-player-side-link,
.arc-dashboard261-shortcuts a,
.arc-city-btn,
.arc-s1-button,
.arc-archives-btn {
  -webkit-tap-highlight-color: transparent;
}

@media (min-width: 981px) {
  .arc-ds-grid-desktop-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .arc-ds-grid-desktop-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 780px) {
  .arc-ds-hero,
  .arc-ds-toolbar,
  .arc-ds-empty {
    padding: var(--arc-ds-space-4);
  }

  .arc-ds-toolbar {
    align-items: stretch;
    flex-direction: column;
  }
}
