/* GALEN UI : surfaces de base reprises du Mac (GalenFormControls, MDBDesignSystem).
   Sélecteurs à faible spécificité : un style d'écran existant garde la main. */
.session-shell :where(input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"], [type="color"]), select, textarea) {
  min-height: 44px;
  padding: 10px 14px;
  border: 1px solid var(--galen-color-quiet-line);
  border-radius: var(--galen-radius-control);
  background-color: var(--galen-color-paper);
  color: var(--galen-color-ink);
  font: 400 15px/1.3 var(--galen-font-text);
  box-shadow: none;
  box-sizing: border-box;
}
.session-shell :where(textarea) { min-height: 88px; }
.session-shell :where(select) {
  appearance: none;
  padding-right: 36px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23172535' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 15 5 5 5-5'/%3E%3Cpath d='m7 9 5-5 5 5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 12px;
  cursor: pointer;
}
.session-shell :where(input, select, textarea):focus { outline: none; border-color: var(--galen-color-blueprint); box-shadow: 0 0 0 1px var(--galen-color-blueprint), 0 0 0 4px rgba(31, 91, 213, .16); }
.session-shell :where(input, select, textarea):disabled { opacity: .6; cursor: default; }
.session-shell :where(input, textarea)::placeholder { color: var(--galen-color-muted-ink); opacity: .7; }
.session-shell :where(label) { color: var(--galen-color-ink); font-size: var(--galen-type-meta-size); font-weight: 600; }

/* Champ composé : libellé au-dessus. */
.galen-field { display: grid; gap: 6px; min-width: 0; }

/* Tableaux : en-tête discret, filets fins. */
.session-shell :where(table) { border-collapse: collapse; font-size: var(--galen-type-body-size); }
.session-shell :where(th) { color: var(--galen-color-muted-ink); font-size: var(--galen-type-meta-size); font-weight: 600; text-align: left; }
.session-shell :where(td, th) { border-bottom: 1px solid var(--galen-color-quiet-line); }

/* Carte de section : bandeau gris + corps papier. */
.galen-section { border: 1px solid var(--galen-color-quiet-line); border-radius: var(--galen-radius-card); background: var(--galen-color-paper); overflow: hidden; }
.galen-section-header { display: flex; align-items: center; gap: 8px; min-height: 40px; margin: 8px; padding: 0 12px; border-radius: var(--galen-radius-selection); background: var(--galen-color-drafting-table); }
.galen-section-header h2 { margin: 0; color: var(--galen-color-ink); font-size: var(--galen-type-label-size); font-weight: 600; }
.galen-section-icon { width: 15px; height: 15px; color: var(--galen-color-ink); }
.galen-section-actions { display: flex; gap: 4px; margin-left: auto; }
.galen-section-body { padding: 8px 16px 16px; }

/* Contrôle segmenté. */
.galen-segmented { display: inline-flex; gap: 2px; padding: 2px; border-radius: var(--galen-radius-selection); background: var(--galen-color-drafting-table); }
.galen-segmented button { min-height: 32px; padding: 0 12px; border: 0; border-radius: 6px; background: transparent; color: var(--galen-color-ink); font: 500 13px var(--galen-font-text); cursor: pointer; }
.galen-segmented button[aria-pressed="true"] { background: var(--galen-color-paper); box-shadow: 0 1px 2px rgba(11, 36, 61, .12); }

/* Pastilles d'état. */
.galen-chip { display: inline-flex; align-items: center; min-height: 22px; padding: 0 8px; border-radius: 999px; background: var(--galen-color-drafting-table); color: var(--galen-color-ink); font-size: var(--galen-type-badge-size); font-weight: 600; }
.galen-chip-validation { background: rgba(42, 107, 82, .12); color: var(--galen-color-validation); }
.galen-chip-safety { background: rgba(169, 76, 18, .12); color: var(--galen-color-safety); }
.galen-chip-critical { background: rgba(255, 59, 48, .12); color: var(--galen-color-critical-text); }

/* État vide. */
.galen-empty-state { display: grid; justify-items: center; gap: 6px; padding: var(--galen-layout-empty-state-top-padding, 28px) 16px; color: var(--galen-color-muted-ink); text-align: center; }
.galen-empty-icon { width: 28px; height: 28px; color: var(--galen-color-muted-ink); }
.galen-empty-title { margin: 0; color: var(--galen-color-ink); font-size: var(--galen-type-section-title-size); font-weight: 600; }
.galen-empty-detail { margin: 0; font-size: var(--galen-type-label-size); }

.galen-symbol-icon { width: 16px; height: 16px; }

/* GalenWizardChrome : bandeau deep ink, pastilles 26, connecteurs 1 px, titres 11. */
.galen-wizard-chrome{display:grid;gap:18px;padding:18px 24px 16px;background:var(--galen-color-deep-ink,#041B30);color:#fff;border-radius:inherit}
.galen-wizard-bar{display:flex;align-items:center;gap:14px;min-width:0}
.galen-wizard-brand{display:inline-flex;color:#fff;flex:none}.galen-wizard-brand .galen-wordmark{width:92px;height:16px}
.galen-wizard-divider{width:1px;height:18px;background:rgba(255,255,255,.18);flex:none}
.galen-wizard-chrome h2.galen-wizard-title{margin:0;flex:1;min-width:0;font-size:var(--galen-text-headline-size);line-height:1.3;font-weight:var(--galen-text-headline-weight);letter-spacing:0;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.galen-wizard-chrome h2.galen-wizard-title:focus{outline:none}
.galen-wizard-badge{display:inline-flex;align-items:center;gap:6px;font-size:var(--galen-text-caption-size);font-weight:500;color:rgba(255,255,255,.62);white-space:nowrap}
.galen-wizard-badge-icon{width:13px;height:13px}
.galen-wizard-chrome button.galen-wizard-close{display:inline-grid;place-items:center;width:44px;min-width:44px;height:44px;min-height:44px;padding:0;margin:-8px -10px -8px 0;border:0;border-radius:7px;background:transparent;box-shadow:none;color:rgba(255,255,255,.74);cursor:pointer;flex:none}
.galen-wizard-chrome button.galen-wizard-close:hover{background:rgba(255,255,255,.08);color:#fff}
.galen-wizard-chrome button.galen-wizard-close:focus-visible{outline:2px solid rgba(255,255,255,.78);outline-offset:-2px}
.galen-wizard-chrome button.galen-wizard-close:disabled{cursor:default;opacity:.4}
.galen-wizard-close-icon{width:16px;height:16px}
.galen-wizard-steps{display:flex;margin:0;padding:0;list-style:none}
.galen-wizard-step{flex:1;min-width:0}
.galen-wizard-chrome .galen-wizard-step button{display:grid;grid-template-columns:1fr 26px 1fr;align-items:center;row-gap:7px;width:100%;min-height:44px;padding:0;margin:0;border:0;border-radius:0;background:transparent;box-shadow:none;color:inherit;font:inherit;cursor:pointer;transform:none}
.galen-wizard-chrome .galen-wizard-step button:disabled{cursor:default;opacity:1}
.galen-wizard-chrome .galen-wizard-step button:focus-visible{outline:2px solid rgba(255,255,255,.78);outline-offset:2px;border-radius:6px}
.galen-wizard-connector{height:1px;background:rgba(255,255,255,.14)}.galen-wizard-connector.is-lit{background:var(--galen-color-blueprint,#1F5BD5)}.galen-wizard-connector.is-hidden{background:transparent}
.galen-wizard-dot{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;box-sizing:border-box;border:1px solid rgba(255,255,255,.22);background:var(--galen-color-deep-ink,#041B30);color:#fff}
.is-current>button .galen-wizard-dot{background:var(--galen-color-blueprint,#1F5BD5);border-color:transparent}
.is-done>button .galen-wizard-dot{background:var(--galen-color-validation,#2A6B52);border-color:transparent}
.is-locked .galen-wizard-dot{color:rgba(255,255,255,.36)}
.galen-wizard-dot-icon{width:12px;height:12px;stroke-width:2.4}
.galen-wizard-step-title{grid-column:1/-1;font-size:11px;line-height:1.3;text-align:center;color:rgba(255,255,255,.82);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;padding:0 4px}
.is-current .galen-wizard-step-title{font-weight:600}.is-locked .galen-wizard-step-title{color:rgba(255,255,255,.34)}
.galen-wizard-step-header{display:flex;align-items:center;gap:18px;min-height:78px;padding:0 36px;background:var(--galen-color-paper,#fff);border-bottom:1px solid var(--galen-color-quiet-line,#E4E2DC)}
.galen-wizard-step-header>div{flex:1;min-width:0}
.galen-wizard-step-header .galen-wizard-step-heading{margin:0;font-size:27px;line-height:1.2;font-weight:600;letter-spacing:0;color:var(--galen-color-ink,#11161C)}
.galen-wizard-step-header p{margin:5px 0 0;font-size:var(--galen-text-callout-size);color:var(--galen-color-muted-ink,#5B6470)}
.galen-wizard-counter{font-size:var(--galen-text-caption-size);font-variant-numeric:var(--galen-numeric-digits);color:var(--galen-color-muted-ink,#5B6470);white-space:nowrap}
@media(max-width:640px){.galen-wizard-chrome{padding:14px 16px 12px}.galen-wizard-step-header{padding:12px 18px;flex-wrap:wrap;gap:6px}.galen-wizard-step-header .galen-wizard-step-heading{font-size:22px}.galen-wizard-step-title{font-size:10px}.galen-wizard-badge{display:none}}
/* Feuilles existantes (situation, revue, poste de marché) : leurs commandes de fermeture gardent leur libellé dans le bandeau. */
.galen-wizard-bar>button:not(.galen-wizard-close){min-height:36px;padding:0 12px;border:1px solid rgba(255,255,255,.22);border-radius:7px;background:transparent;box-shadow:none;color:rgba(255,255,255,.86);font-size:13px;font-weight:500;cursor:pointer;flex:none}
.galen-wizard-bar>button:not(.galen-wizard-close):hover{background:rgba(255,255,255,.08);color:#fff}
.galen-wizard-bar>button:not(.galen-wizard-close):focus-visible{outline:2px solid rgba(255,255,255,.78);outline-offset:2px}
.galen-wizard-bar>button:not(.galen-wizard-close):disabled{opacity:.4;cursor:default}
.market-dialog>header.galen-wizard-chrome{display:grid;justify-content:stretch;padding:18px 24px 16px;background:var(--galen-color-deep-ink,#041B30);border-radius:0}
.market-dialog>header.galen-wizard-chrome h2.galen-wizard-title{margin:0;font-size:15px;color:#fff}

/* Chiffres GalenUI : équivalents web des réglages SwiftUI.
   .galen-digits      = .monospacedDigit() (SF Pro, chiffres à chasse fixe)
   .galen-mono-digits = design: .monospaced (SF Mono)
   Les tailles des styles système macOS sont dans --galen-text-*-size (galen-tokens.css). */
.galen-digits{font-variant-numeric:var(--galen-numeric-digits)}
.galen-mono-digits{font-family:var(--galen-font-mono);font-variant-numeric:var(--galen-numeric-digits)}
.galen-value-digits{font-family:var(--galen-type-value-digits-family);font-size:var(--galen-type-value-digits-size);font-weight:var(--galen-type-value-digits-weight);font-variant-numeric:var(--galen-type-value-digits-numeric)}
.galen-counter{font-family:var(--galen-type-counter-family);font-size:var(--galen-type-counter-size);font-weight:var(--galen-type-counter-weight);font-variant-numeric:var(--galen-type-counter-numeric)}
