/* Shared semantic palette. Brand colours retain their physical meaning. */
:root {
  --shiai-yellow: #f5c518;
  --shiai-yellow-bright: #ffd84d;
  --shiai-yellow-dark: #c59b00;
  --shiai-black: #0d0f12;
  --shiai-charcoal: var(--ui-surface);
  --shiai-success: var(--ui-success-text);
  --shiai-warning: var(--ui-warning-text);
  --shiai-danger: var(--ui-danger-text);
  --shiai-info: var(--ui-info-text);
  --competitor-a-color: #ffd23f;
  --competitor-b-color: #e26752;
  --ui-on-brand: #0d0f12;
  color-scheme: light;
  --ui-bg: #f4f6f8;
  --ui-bg-rgb: 244, 246, 248;
  --ui-surface: #ffffff;
  --ui-surface-rgb: 255, 255, 255;
  --ui-raised: #e9eef3;
  --ui-raised-rgb: 233, 238, 243;
  --ui-field: #ffffff;
  --ui-text: #17212f;
  --ui-text-rgb: 23, 33, 47;
  --ui-muted: #4b5563;
  --ui-muted-rgb: 75, 85, 99;
  --ui-border: #758293;
  --ui-divider: #758293;
  --ui-link: #715100;
  --ui-link-rgb: 113, 81, 0;
  --ui-focus: #795800;
  --ui-selected-bg: #dbe8fb;
  --ui-selected-text: #173d6b;
  --ui-progress: #1769aa;
  --ui-success-bg: #e4f3e9;
  --ui-success-text: #14512f;
  --ui-success-border: #2e7750;
  --ui-warning-bg: #fff3cd;
  --ui-warning-text: #664d03;
  --ui-warning-border: #987120;
  --ui-danger-bg: #fde7e9;
  --ui-danger-text: #8a1c2a;
  --ui-danger-border: #b03345;
  --ui-info-bg: #e2eff8;
  --ui-info-text: #173f58;
  --ui-info-border: #416d88;
}

:root[data-shiai-theme="dark"] {
  color-scheme: dark;
  --ui-bg: #1b2027;
  --ui-bg-rgb: 27, 32, 39;
  --ui-surface: #242b34;
  --ui-surface-rgb: 36, 43, 52;
  --ui-raised: #2c3540;
  --ui-raised-rgb: 44, 53, 64;
  --ui-field: #20262e;
  --ui-text: #cbd3dd;
  --ui-text-rgb: 203, 211, 221;
  --ui-muted: #a5b0bd;
  --ui-muted-rgb: 165, 176, 189;
  --ui-border: #7d8b9b;
  --ui-divider: #414d5a;
  --ui-link: #e1bf62;
  --ui-link-rgb: 225, 191, 98;
  --ui-focus: #e1bf62;
  --ui-selected-bg: #1d5394;
  --ui-selected-text: #ffffff;
  --ui-progress: #63b3ed;
  --ui-success-bg: #1d5139;
  --ui-success-text: #deffec;
  --ui-success-border: #63b58a;
  --ui-warning-bg: #4a3d22;
  --ui-warning-text: #fff0bc;
  --ui-warning-border: #c9a54c;
  --ui-danger-bg: #54282b;
  --ui-danger-text: #ffb5b3;
  --ui-danger-border: #e08f9b;
  --ui-info-bg: #193a4a;
  --ui-info-text: #e4f4ff;
  --ui-info-border: #7badc3;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-shiai-theme]) {
    color-scheme: dark;
  --ui-bg: #1b2027;
  --ui-bg-rgb: 27, 32, 39;
  --ui-surface: #242b34;
  --ui-surface-rgb: 36, 43, 52;
  --ui-raised: #2c3540;
  --ui-raised-rgb: 44, 53, 64;
  --ui-field: #20262e;
  --ui-text: #cbd3dd;
  --ui-text-rgb: 203, 211, 221;
  --ui-muted: #a5b0bd;
  --ui-muted-rgb: 165, 176, 189;
  --ui-border: #7d8b9b;
  --ui-divider: #414d5a;
  --ui-link: #e1bf62;
  --ui-link-rgb: 225, 191, 98;
  --ui-focus: #e1bf62;
  --ui-selected-bg: #1d5394;
  --ui-selected-text: #ffffff;
  --ui-progress: #63b3ed;
  --ui-success-bg: #1d5139;
  --ui-success-text: #deffec;
  --ui-success-border: #63b58a;
  --ui-warning-bg: #4a3d22;
  --ui-warning-text: #fff0bc;
  --ui-warning-border: #c9a54c;
  --ui-danger-bg: #54282b;
  --ui-danger-text: #ffb5b3;
  --ui-danger-border: #e08f9b;
  --ui-info-bg: #193a4a;
  --ui-info-text: #e4f4ff;
  --ui-info-border: #7badc3;
  }
}

:root, :root[data-shiai-theme] {
  --shiai-text: var(--ui-text);
  --shiai-text-muted: var(--ui-muted);
  --shiai-surface: var(--ui-surface);
  --shiai-surface-raised: var(--ui-raised);
  --shiai-border: var(--ui-border);
  --body-bg: var(--ui-bg);
  --body-fg: var(--ui-text);
  --body-quiet-color: var(--ui-muted);
  --body-medium-color: var(--ui-muted);
  --body-loud-color: var(--ui-text);
  --secondary: var(--ui-surface);
  --header-bg: var(--ui-surface);
  --header-color: var(--ui-text);
  --header-link-color: var(--ui-text);
  --breadcrumbs-bg: var(--ui-surface);
  --breadcrumbs-fg: var(--ui-muted);
  --breadcrumbs-link-fg: var(--ui-link);
  --link-fg: var(--ui-link);
  --link-hover-color: var(--ui-text);
  --link-selected-fg: var(--ui-link);
  --hairline-color: var(--ui-border);
  --border-color: var(--ui-border);
  --error-fg: var(--ui-danger-text);
  --darkened-bg: var(--ui-raised);
  --selected-bg: var(--ui-selected-bg);
  --selected-row: var(--ui-selected-bg);
  --close-button-bg: var(--ui-raised);
  --close-button-hover-bg: var(--ui-surface);
  --object-tools-bg: var(--ui-raised);
  --object-tools-hover-bg: var(--ui-surface);
  --object-tools-fg: var(--ui-text);
  --bs-body-bg: var(--ui-bg);
  --bs-body-bg-rgb: var(--ui-bg-rgb);
  --bs-body-color-rgb: var(--ui-text-rgb);
  --bs-emphasis-color-rgb: var(--ui-text-rgb);
  --bs-secondary-color-rgb: var(--ui-muted-rgb);
  --bs-secondary-bg-rgb: var(--ui-surface-rgb);
  --bs-tertiary-bg-rgb: var(--ui-raised-rgb);
  --bs-link-color-rgb: var(--ui-link-rgb);
  --bs-link-hover-color-rgb: var(--ui-text-rgb);
  --bs-body-color: var(--ui-text);
  --bs-emphasis-color: var(--ui-text);
  --bs-secondary-color: var(--ui-muted);
  --bs-tertiary-color: var(--ui-muted);
  --bs-secondary-bg: var(--ui-surface);
  --bs-tertiary-bg: var(--ui-raised);
  --bs-border-color: var(--ui-border);
  --bs-border-color-translucent: var(--ui-border);
  --bs-link-color: var(--ui-link);
  --bs-link-hover-color: var(--ui-text);
  --primary: var(--shiai-yellow);
  --accent: var(--ui-link);
  --primary-fg: var(--ui-on-brand);
  --button-fg: var(--ui-on-brand);
  --button-bg: var(--shiai-yellow);
  --button-hover-bg: var(--shiai-yellow-bright);
  --default-button-bg: var(--shiai-yellow);
  --default-button-hover-bg: var(--shiai-yellow-bright);
  --delete-button-bg: var(--ui-danger-bg);
  --delete-button-hover-bg: var(--ui-danger-bg);
}

:where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--ui-focus);
  outline-offset: 3px;
}
html[data-shiai-theme] body :is(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid var(--ui-focus) !important;
  outline-offset: 3px;
}
html[data-shiai-theme] :is(input[type="checkbox"], input[type="radio"]) { accent-color: var(--ui-progress); }
.shiai-theme-link { color: var(--ui-link); }
/* Structural separators are quieter than interactive control boundaries. */
html[data-shiai-theme="dark"] body :is(.gestion-topbar, .gestion-breadcrumbs, .gestion-sidebar, .app-sidebar, .app-footer, .card, .card-header, .module, fieldset, table th, table td) {
  border-color: var(--ui-divider);
}
body .shiai-audit-history .table { font-size: max(15px, .9375rem); line-height: 1.65; }
body .shiai-audit-history .table :is(th, td) { font-size: inherit; line-height: inherit; padding: .8rem .9rem; vertical-align: top; }
body .shiai-audit-history .table th { color: var(--ui-muted); font-weight: 600; text-transform: none; }
body .shiai-audit-history .table td:first-child { white-space: nowrap; font-variant-numeric: tabular-nums; }
body .shiai-audit-history .table td:last-child { min-width: 23rem; }
.shiai-theme-changing, .shiai-theme-changing *, .shiai-theme-changing *::before, .shiai-theme-changing *::after { transition: none !important; }
.shiai-theme-control {
  display: inline-flex; align-items: center; gap: .4rem; flex: 0 0 auto;
  border: 1px solid var(--ui-border); border-radius: .4rem; padding: .25rem .4rem;
  background: var(--ui-surface); color: var(--ui-text); font: 500 .85rem/1.4 system-ui, sans-serif;
}
.shiai-theme-control select {
  width: auto; min-width: 5.2rem; min-height: 32px; margin: 0; padding: .25rem;
  border: 1px solid var(--ui-border); border-radius: .25rem;
  background: var(--ui-field); color: var(--ui-text); font: inherit;
}
.shiai-theme-control--floating { position: fixed; top: .5rem; right: .5rem; z-index: 1200; }
body .site-header { gap: .75rem; }
.site-header > .shiai-theme-control, .scoreboard__header > .shiai-theme-control { align-self: center; }
.login-box > .shiai-theme-control, .shiai-admin-login > .shiai-theme-control { margin-bottom: 1rem; }
html[data-shiai-theme] [hidden] { display: none !important; }
html[data-shiai-theme] :is(input, select, textarea)::placeholder { color: var(--ui-muted); opacity: 1; }
html[data-shiai-theme] :is(input, select, textarea):disabled { opacity: 1; color: var(--ui-muted); }
html[data-shiai-theme] :is(button:disabled, .btn[aria-disabled="true"]) {
  opacity: 1; background: var(--ui-raised) !important; color: var(--ui-muted) !important;
  border-color: var(--ui-border) !important; cursor: not-allowed;
}
@media (max-width: 600px) {
  .shiai-theme-control { gap: 0; padding: .15rem; }
  .shiai-theme-control > span { display: none; }
  .shiai-theme-control select { min-width: 5rem; }
}
@media print {
  :root, :root[data-shiai-theme] {
    color-scheme: light !important;
  --ui-bg: #ffffff !important;
  --ui-bg-rgb: 255, 255, 255 !important;
  --ui-surface: #ffffff !important;
  --ui-surface-rgb: 255, 255, 255 !important;
  --ui-raised: #e9eef3 !important;
  --ui-raised-rgb: 233, 238, 243 !important;
  --ui-field: #ffffff !important;
  --ui-text: #111111 !important;
  --ui-text-rgb: 17, 17, 17 !important;
  --ui-muted: #4b5563 !important;
  --ui-muted-rgb: 75, 85, 99 !important;
  --ui-border: #758293 !important;
  --ui-divider: #758293 !important;
  --ui-link: #715100 !important;
  --ui-link-rgb: 113, 81, 0 !important;
  --ui-focus: #795800 !important;
  --ui-selected-bg: #dbe8fb !important;
  --ui-selected-text: #173d6b !important;
  --ui-progress: #1769aa !important;
  --ui-success-bg: #e4f3e9 !important;
  --ui-success-text: #14512f !important;
  --ui-success-border: #2e7750 !important;
  --ui-warning-bg: #fff3cd !important;
  --ui-warning-text: #664d03 !important;
  --ui-warning-border: #987120 !important;
  --ui-danger-bg: #fde7e9 !important;
  --ui-danger-text: #8a1c2a !important;
  --ui-danger-border: #b03345 !important;
  --ui-info-bg: #e2eff8 !important;
  --ui-info-text: #173f58 !important;
  --ui-info-border: #416d88 !important;
  }
  .shiai-theme-control { display: none !important; }
  body { background: #fff !important; color: #111 !important; }
}
