/* Il Posto delle Favole — admin and service colours, 2026-09-19.
 * Public home/detail CSS, application state, API and saved themes are unchanged.
 * fca-on: admin/login/admin receipt. fca-services: operational overlays/loaders.
 * The theme-editor iframe (?tema_preview) does NOT get either marker.
 * Keep semantic red/green/amber, inline seat colours and z-indexes untouched.
 */
body:has(#app[v-cloak]) { background: #f5ccc5 !important; }
body:has(#app > .fca-on) { background: #f5ccc5 !important; color: #303256; }
#app:has(> .fca-on) {
  --tk-primary: #2b32a3; --tk-terracotta: #b45a65; --tk-sage: #6263a6;
  --tk-textDark: #303256; --tk-cream: #fffaf7; --tk-lightBg: #fff8f2;
  --tk-surface: #fffaf7; --tk-surface2: #f7e7e1; --tk-surface3: #fffdfb;
  --tk-textMuted: #69637b; --tk-loaderAccent: #69637b;
  --tk-fontTitle: 'Plus Jakarta Sans', sans-serif;
  --tk-fontBody: 'Plus Jakarta Sans', sans-serif;
  background: #fff8f2 !important; color: #303256;
  border-color: #ead5ce; box-shadow: 0 12px 45px rgba(78,43,93,.09);
  font-family: 'Plus Jakarta Sans', sans-serif;
}
#app:has(> .fca-on) .archeo-title {
  font-family: 'Plus Jakarta Sans', sans-serif; letter-spacing: -.02em;
}
/* Neutral surfaces: do not restyle coloured warning/success boxes. */
#app:has(> .fca-on) .bg-white { background-color: #fffdfb; }
#app:has(> .fca-on) .bg-stone-50 { background-color: #fff8f2; }
#app:has(> .fca-on) .bg-stone-100 { background-color: #f7e7e1; }
#app:has(> .fca-on) .bg-stone-200 { background-color: #f1dcd5; }
#app:has(> .fca-on) :is(.bg-stone-700,.bg-stone-800,.bg-stone-900) { background-color: #2b32a3; }
#app:has(> .fca-on) .text-stone-400 { color: #777084; }
#app:has(> .fca-on) .text-stone-500 { color: #69637b; }
#app:has(> .fca-on) .text-stone-600 { color: #57516d; }
#app:has(> .fca-on) :is(.text-stone-700,.text-stone-800,.text-stone-900) { color: #303256; }
#app:has(> .fca-on) .border-stone-100 { border-color: #f0dfd9; }
#app:has(> .fca-on) .border-stone-200 { border-color: #e9d4cc; }
#app:has(> .fca-on) .border-stone-300 { border-color: #d5b9b5; }
#app:has(> .fca-on) .divide-stone-100 > :not([hidden]) ~ :not([hidden]) { border-color: #f0dfd9; }
#app:has(> .fca-on) .hover\:bg-stone-50:hover { background-color: #fff2ea; }
#app:has(> .fca-on) :is(.hover\:bg-stone-100,.hover\:bg-stone-200,.hover\:bg-stone-300):hover { background-color: #efd5ce; }
#app:has(> .fca-on) :is(.hover\:bg-stone-700,.hover\:bg-stone-800,.hover\:bg-stone-900):hover { background-color: #212886; }
#app:has(> .fca-on) :is(.bg-stone-700,.bg-stone-800,.bg-stone-900) :is(.text-stone-300,.text-stone-400) { color: #e4e4fa; }
#app:has(> .fca-on) .voce-menu-ctx:hover { background: #fff1e9; }
/* Operational context-menu states keep their original feedback. */
#app:has(> .fca-on) .voce-menu-ctx.text-emerald-700:hover { background: #ecfdf5; }
#app:has(> .fca-on) .voce-menu-ctx.text-sky-700:hover { background: #f0f9ff; }
#app:has(> .fca-on) .voce-menu-ctx.text-red-600:hover { background: #fef2f2; }
#app:has(> .fca-on) :is(button,a,input,select,textarea):focus-visible {
  outline: 2px solid #2b32a3; outline-offset: 3px;
}
#app:has(> .fca-on) .tm-campo {
  background: #fffaf7; color: #303256; border-color: #ddc5bf;
}
#app:has(> .fca-on) .tm-campo:focus { background: #fffdfb; border-color: #2b32a3; }
#app:has(> .fca-on) .tm-campo::placeholder { color: #79718a; }
#app:has(> .fca-on) .tm-campo:disabled { background: #f2e6e0; color: #79718a; }
#app:has(> .fca-on) :is(input,select,textarea) { caret-color: #2b32a3; }
/* No styling of color inputs / theme swatches / canvas: they are data, not chrome. */

/* Shared operational panels. The selectors deliberately exclude home/detail
 * cards, receipt semantic states, seat glyphs and editor preview canvases. */
#app:has(> .fca-services) :is(.tm-popup-pannello,.tm-sheet) {
  --tk-primary: #2b32a3; --tk-terracotta: #b45a65; --tk-sage: #6263a6;
  --tk-textDark: #303256; --tk-surface: #fffaf7; --tk-surface2: #f7e7e1;
  --tk-textMuted: #69637b;
  background: #fff9f4 !important; color: #303256 !important;
}
#app:has(> .fca-services) .tm-popup-overlay { background-color: rgba(35,32,76,.48); }
#app:has(> .fca-services) .tm-popup-pannello [data-ed='popup.corpo'] { color: #57516d !important; }
#app:has(> .fca-services) .tm-popup-pannello .text-stone-500 { color: #69637b; }
#app:has(> .fca-services) :is(.tm-popup-conferma,.tm-popup-largo,.tm-sheet-spettacolo,.tm-sheet-gestione) {
  background: #2b32a3 !important; color: #fffaf7 !important;
}
#app:has(> .fca-services) .tm-sheet-laboratorio { background: #a94d60 !important; color: #fffaf7 !important; }
#app:has(> .fca-services) .tm-popup-annulla { background: #f6e6df; color: #303256; border-color: #e8cfc7; }
#app:has(> .fca-services) :is(.tm-popup-conferma,.tm-popup-largo,.tm-sheet-spettacolo,.tm-sheet-gestione):hover:not(:disabled) { background: #212886 !important; }
#app:has(> .fca-services) :is(.tm-popup-pannello,.tm-sheet) .archeo-title { font-family: 'Plus Jakarta Sans', sans-serif; letter-spacing: -.02em; }
#app:has(> .fca-services) .tm-toast { box-shadow: 0 12px 28px rgba(43,35,86,.18); }
/* Preserve toast titles/accent stripes, error titles and semantic dialog borders. */

/* Login: existing controls, handlers and dimensions remain unchanged. */
#app:has(> .fca-on) .fca-login {
  background: linear-gradient(180deg, rgba(247,198,185,.92), rgba(255,248,242,.96)),
              url('favole-c/c-sky-isolated.webp') center / cover;
}
#app:has(> .fca-on) .fca-login-panel {
  background: #fffaf7; border-color: #ead4cb;
  box-shadow: 0 20px 60px rgba(74,42,104,.13);
}
#app:has(> .fca-on) .fca-login-wordmark { width: 220px; max-width: 100%; height: auto; margin: 0 auto 22px; }
#app:has(> .fca-on) .fca-login h3 { color: #2b32a3; }
#app:has(> .fca-on) .fca-login input { background: #fffdfb; color: #303256; border-color: #ddc5bf; }
#app:has(> .fca-on) .fca-login input:focus { border-color: #2b32a3; }
#app:has(> .fca-on) .fca-login .bg-theatre-textDark { background: #2b32a3; }

/* One loader for public and admin outside the editor preview.
 * Never touch loading / turnstileChecking, timeout or submit logic. */
#app:has(> .fca-services) .fc-legacy-loader { display: none !important; }
#app:has(> .fca-services) .fca-loader {
  position: fixed; inset: 0; z-index: 110; display: flex;
  align-items: center; justify-content: center; padding: 24px;
  background: linear-gradient(180deg, rgba(248,204,194,.85), rgba(255,248,242,.97)),
              url('favole-c/c-sky-isolated.webp') center / cover;
  color: #2b32a3; font-family: 'Plus Jakarta Sans', sans-serif;
}
#app:has(> .fca-services) .fca-loader-panel {
  width: 100%; max-width: 340px; padding: 34px 28px;
  display: flex; flex-direction: column; align-items: center; gap: 18px;
  border: 1px solid rgba(255,255,255,.78); border-radius: 24px;
  background: rgba(255,250,246,.96); box-shadow: 0 18px 55px rgba(89,46,97,.10);
}
#app:has(> .fca-services) .fca-loader-wordmark { width: 252px; max-width: 100%; height: auto; }
#app:has(> .fca-services) .fca-loader-spinner {
  display: block; flex: 0 0 auto; width: 28px; height: 28px; margin: 4px 0;
  border: 3px solid #f0cbc2; border-top-color: #2b32a3; border-radius: 50%;
  animation: fca-spin .9s linear infinite;
}
#app:has(> .fca-services) .fca-loader-title {
  margin: 0; color: #2b32a3; font-size: 13px; font-weight: 750; line-height: 1.55; text-align: center;
}
#app:has(> .fca-services) .fca-loader-note {
  margin: 0; color: #69637b; font-size: 11px; font-weight: 500; line-height: 1.65; text-align: center;
}
/* Boot failure is outside Vue. Its original display:none and watchdog logic stay intact. */
#tm-fallback.fca-fallback { background: #f5ccc5 !important; color: #303256 !important; }
#tm-fallback.fca-fallback > div { background: #fffaf7 !important; border-color: #ead4cb !important; box-shadow: 0 20px 60px rgba(74,42,104,.13) !important; }
#tm-fallback.fca-fallback h2 { color: #2b32a3; }
#tm-fallback.fca-fallback p { color: #69637b !important; }
#tm-fallback.fca-fallback button { background: #2b32a3 !important; color: #fffaf7 !important; }
@keyframes fca-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  #app:has(> .fca-services) .fca-loader-spinner { animation: none; }
}

/* Existing Tailwind alpha utilities contain literal legacy RGB values. */
#app:has(> .fca-on) .bg-theatre-primary\/5 { background-color: rgba(43,50,163,0.05); }
#app:has(> .fca-on) .bg-theatre-primary\/70 { background-color: rgba(43,50,163,0.7); }
#app:has(> .fca-on) .bg-theatre-sage\/30 { background-color: rgba(98,99,166,0.3); }
#app:has(> .fca-on) .bg-theatre-sage\/70 { background-color: rgba(98,99,166,0.7); }
#app:has(> .fca-on) .bg-theatre-terracotta\/10 { background-color: rgba(180,90,101,0.1); }
#app:has(> .fca-on) .bg-theatre-terracotta\/70 { background-color: rgba(180,90,101,0.7); }
#app:has(> .fca-on) .border-theatre-primary\/30 { border-color: rgba(43,50,163,0.3); }
#app:has(> .fca-on) .border-theatre-primary\/40 { border-color: rgba(43,50,163,0.4); }
#app:has(> .fca-on) .border-theatre-terracotta\/30 { border-color: rgba(180,90,101,0.3); }
#app:has(> .fca-on) .border-theatre-terracotta\/40 { border-color: rgba(180,90,101,0.4); }
#app:has(> .fca-on) .border-theatre-terracotta\/60 { border-color: rgba(180,90,101,0.6); }

/* Decorative divider only: replace the former gold/plum ornament. */
#app:has(> .fca-on) [data-ed='stacco.stacco'] > div { background: #b8b2dc !important; border-color: #fff8f2 !important; }
#app:has(> .fca-on) [data-ed='stacco.stacco'] > div:nth-child(3) { background: #b45a65 !important; }
#app:has(> .fca-services) .tm-popup-pannello { box-shadow: 0 18px 48px rgba(43,35,86,.15); }

/* Legacy admin-only bottom navigation: recolour chrome, not its actions. */
#app:has(> .fca-on) .fc-legacy-nav { background: #fff9f4 !important; border-color: #ead4cb !important; }
#app:has(> .fca-on) .fc-legacy-nav [data-ed='nav.pastiglia'] { background: rgba(43,50,163,.65) !important; color: #fffaf7 !important; }
#app:has(> .fca-on) .fc-legacy-nav [data-ed='nav.pastiglia'].shadow-md { background: #2b32a3 !important; }
#app:has(> .fca-on) .fc-legacy-nav [data-ed='nav.etichetta'] { color: #4b4770 !important; }

/* Preserve the seat-selection palette AND its legend from the source theme.
 * CSS aliases resolve on body before the admin's own token overrides. */
body.tema-on { --fca-seat-primary: var(--tk-primary); --fca-seat-terracotta: var(--tk-terracotta); --fca-seat-text: var(--tk-textDark); }
#app:has(> .fca-on) .tm-picker-pannello {
  --tk-primary: var(--fca-seat-primary); --tk-terracotta: var(--fca-seat-terracotta); --tk-textDark: var(--fca-seat-text);
}
#app:has(> .fca-services) .tm-picker-overlay { background-color: rgba(35,32,76,.48); }
#app:has(> .fca-services) .tm-picker-pannello { background: #fff9f4; }
#app:has(> .fca-services) .tm-picker-pannello [data-ed='pickerPosti.titolo'] { color: #2b32a3 !important; }
#app:has(> .fca-services) .tm-picker-annulla { background: #f6e6df; color: #303256; }
#app:has(> .fca-services) .tm-picker-conferma { background: #2b32a3; color: #fffaf7; }

#app:has(> .fca-on) .bg-black\/60 { background-color: rgba(35,32,76,.48); }
#app:has(> .fca-services) .tm-toast { background: rgba(33,39,117,.96); }

/* Admin-generated receipt: recolour neutral cards, not confirmation/cancellation states. */
#app:has(> .fca-on) [data-ed='ricevuta.card'] { background: #fffaf7 !important; border-color: #ddc5bf !important; }
#app:has(> .fca-on) [data-ed='ricevuta.boxEvento'] { background: #f7e7e1 !important; border-color: #ead4cb !important; }
