/* Blocco 1 — palette e tipografia. Nessuna regola di prenotazione. */
:root,
:root[data-theme="night"] {
  color-scheme: dark;
  --ui-bg: #0B1220;
  --ui-surface: #131C2E;
  --ui-surface-2: #1A2539;
  --ui-border: #2A3750;
  --ui-text: #E6ECF5;
  --ui-muted: #A3B0C2;
  --ui-action: #2563C9;
  --ui-link: #6AA8F5;
  --ui-action-soft: rgba(106,168,245,.14);
  --ui-ok: #5BD49A;
  --ui-ok-bg: rgba(91,212,154,.14);
  --ui-warn: #F2B95A;
  --ui-warn-bg: rgba(242,185,90,.16);
  --ui-danger: #F28B82;
  --ui-danger-bg: rgba(242,139,130,.14);
  --ui-note: #5ED0E0;
  --ui-note-bg: rgba(94,208,224,.12);
  --ui-note-border: #3FA9B8;
  --ui-note-badge: #5ED0E0;
  --ui-note-badge-text: #062A30;
}
:root[data-theme="day"] {
  color-scheme: light;
  --ui-bg: #EEF1F5;
  --ui-surface: #FFFFFF;
  --ui-surface-2: #F4F6F9;
  --ui-border: #CBD3DE;
  --ui-text: #111827;
  --ui-muted: #4A5568;
  --ui-action: #1D56B8;
  --ui-link: #1D56B8;
  --ui-action-soft: #E3ECFA;
  --ui-ok: #16703F;
  --ui-ok-bg: #DFF3E7;
  --ui-warn: #8A5200;
  --ui-warn-bg: #FCEFD6;
  --ui-danger: #B42318;
  --ui-danger-bg: #FDE7E4;
  --ui-note: #0B6A78;
  --ui-note-bg: #DDF3F6;
  --ui-note-border: #2E9AAA;
  --ui-note-badge: #0B6A78;
  --ui-note-badge-text: #FFFFFF;
}
:root[data-theme] {
  --surface-canvas: var(--ui-bg);
  --surface-header: var(--ui-surface);
  --surface-header-edge: var(--ui-border);
  --surface-panel: var(--ui-surface);
  --bg-card: var(--ui-surface);
  --text-primary: var(--ui-text);
  --font-sans: 'IBM Plex Sans', system-ui, sans-serif;
  --font-mono: 'IBM Plex Mono', ui-monospace, monospace;
  --default-font-family: var(--font-sans);
  --default-mono-font-family: var(--font-mono);
}
html[data-theme] body { background: var(--ui-bg); color: var(--ui-text); font: 15px/1.5 var(--font-sans); }
html[data-theme] #aeroclub-app { background: var(--ui-bg); color: var(--ui-text); }
html[data-theme] :is(button,input,select,textarea) { font-family: var(--font-sans); }
html[data-theme] :is(h1,h2,h3,h4,h5,h6) { font-family: var(--font-sans)!important; letter-spacing: normal!important; text-transform: none!important; color: var(--ui-text)!important; }
html[data-theme] h2 { font-size: 18px!important; line-height: 1.4; }
html[data-theme] h3 { font-size: 16px!important; line-height: 1.4; }
html[data-theme] :is(.font-mono,.tracking-widest,.tracking-wider,.uppercase) { font-family: var(--font-sans); letter-spacing: normal; text-transform: none; }
html[data-theme] :is(.text-xs,.text-sm,[class*="text-[10"],[class*="text-[11"],[class*="text-[12"]) { font-size: 13px; line-height: 1.45; }
html[data-theme] :is([class*="text-slate-"],[class*="text-zinc-"],[class*="text-neutral-"]) { color: var(--ui-muted)!important; }
html[data-theme] :is(.text-white,[class*="text-slate-1"],[class*="text-slate-2"]) { color: var(--ui-text)!important; }
html[data-theme] :is([class*="bg-slate-"],[class*="bg-zinc-"],[class*="bg-neutral-"]) { background-color: var(--ui-surface-2)!important; }
html[data-theme] :is([class*="border-slate-"],[class*="border-zinc-"]) { border-color: var(--ui-border)!important; }
html[data-theme] :is([class*="bg-gradient-to-"],[class*="bg-linear-to-"]) { background-image: none!important; }
html[data-theme] [class*="shadow"] { box-shadow: none!important; }
html[data-theme] :is(button,a,input,select,textarea,summary):focus-visible { outline: 3px solid var(--ui-link)!important; outline-offset: 3px; }
html[data-theme] :is(button,summary,input:not([type="checkbox"]):not([type="radio"]),select) { min-height: 44px; }
html[data-theme] :is(button,summary) { touch-action: manipulation; }
html[data-theme] button {
  border: 1px solid var(--ui-border); border-radius: 11px;
  background: var(--ui-surface-2); color: var(--ui-text)!important;
  font-size: 13px; font-weight: 600; line-height: 1.35;
}
html[data-theme] button:hover:not(:disabled) { border-color: var(--ui-link); }
html[data-theme] button:disabled { cursor: not-allowed; opacity: .65; }
html[data-theme] :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea) { background: var(--ui-surface)!important; color: var(--ui-text)!important; border: 1px solid var(--ui-border)!important; border-radius: 10px; }
html[data-theme] :is(input,textarea)::placeholder { color: var(--ui-muted); opacity: 1; }
html[data-theme] input:is([type="checkbox"],[type="radio"]) { accent-color: var(--ui-action); }
html[data-theme] a { color: var(--ui-link); }
html[data-theme] #app-header { color: var(--ui-text); box-shadow: none; }
html[data-theme] #app-header .club-brand h1 { color: var(--ui-text)!important; -webkit-text-fill-color: var(--ui-text); background: none; }
html[data-theme] #app-header .club-brand p,html[data-theme] #app-header .club-controls :is(.text-amber-400,.text-sky-300) { color: var(--ui-muted)!important; }
html[data-theme] #app-header .club-brand p>.animate-pulse { background: var(--ui-muted); animation: none; }
html[data-theme] #app-header button[aria-pressed="true"] { background: var(--ui-action)!important; color: #fff!important; border-color: var(--ui-action); }
html[data-theme] #portal-quick-nav { background: var(--ui-surface); border-color: var(--ui-border); }
html[data-theme] #portal-quick-nav a { min-height: 44px; border-radius: 11px; display: inline-flex; align-items: center; }
html[data-theme] #portal-quick-nav a { background: var(--ui-surface-2); color: var(--ui-text); border-color: var(--ui-border); }
html[data-theme] #portal-quick-nav a[aria-current="page"] { background: var(--ui-action); color: #fff; border-color: var(--ui-action); }
html[data-theme] #portal-quick-nav .portal-menu-toggle { background: var(--ui-surface-2); color: var(--ui-text); }
html[data-theme] #portal-quick-nav #portal-menu-btn { background: var(--ui-surface-2)!important; color: var(--ui-text)!important; border-color: var(--ui-border); }
html[data-theme] :is([id^="day-card-"],.portal-modal,.portal-card,.booking187-management,.portal-availability-summary,.booking-wx) { background: var(--ui-surface)!important; color: var(--ui-text)!important; border: 1px solid var(--ui-border)!important; border-radius: 14px; }
html[data-theme] [id^="day-card-"] [class*="text-rose-"] { color: var(--ui-muted)!important; }
html[data-theme] [id^="day-card-"] [class*="bg-rose-"] { background: var(--ui-surface-2)!important; border-color: var(--ui-border)!important; }
html[data-theme] [id^="day-card-"] h3>span { background: var(--ui-border)!important; }
html[data-theme] [id^="slot-card-"] { border-style: solid!important; border-radius: 11px; background: var(--ui-surface-2)!important; border-color: var(--ui-border)!important; }
html[data-theme] [id^="slot-card-"] .lucide-clock+span { font: 500 20px/1.4 var(--font-mono); color: var(--ui-text); }
html[data-theme] [id^="slot-card-"] a { color: var(--ui-muted)!important; font-family: var(--font-mono); }
html[data-theme] [id^="slot-card-"] [class*="text-emerald-"] { color: var(--ui-text)!important; }
html[data-theme] :is([id^="book-slot-"],#confirm-booking-btn,#confirm-booking-form-btn,.portal-primary) { background: var(--ui-action)!important; border-color: var(--ui-action)!important; color: #fff!important; padding: 10px 14px; }
html[data-theme] :is([id^="book-slot-"],#confirm-booking-btn,#confirm-booking-form-btn,.portal-primary):hover { filter: brightness(.93); }
html[data-theme] :is(#cancel-reservation-btn,button[title="Annulla prenotazione"],.portal-delete,.booking187-danger) { background: var(--ui-danger-bg)!important; border: 1px solid var(--ui-danger)!important; color: var(--ui-danger)!important; min-height: 44px; }
html[data-theme] #general-notes-section { background: var(--ui-note-bg)!important; border: 1.5px solid var(--ui-note-border)!important; border-radius: 14px; transform: none!important; color: var(--ui-note)!important; }
html[data-theme] #general-notes-section>div[title="Post-it Pin"] { display: none; }
html[data-theme] #general-notes-section :is(h2,svg) { color: var(--ui-note)!important; fill: none; }
html[data-theme] #general-notes-section li { background: var(--ui-surface)!important; border-color: var(--ui-note-border)!important; border-radius: 10px; padding: 10px 12px; }
html[data-theme] #general-notes-section li span { color: var(--ui-text)!important; }
html[data-theme] #general-notes-section>div { border-color: var(--ui-note-border); }
html[data-theme] :is(.portal-summary-row,.portal-profile-qualifications,.portal-details pre,.booking187-pilot-results,.booking-wx-cell) { background: var(--ui-surface-2)!important; color: var(--ui-text)!important; border-color: var(--ui-border)!important; }
html[data-theme] :is(.portal-summary-row strong,.portal-card strong,.portal-summary-row span) { color: var(--ui-text)!important; }
html[data-theme] :is(.portal-summary-row small,.portal-muted,.portal-empty,.portal-qual-form>label,.portal-form label,.portal-log-filter label,.portal-check) { color: var(--ui-muted)!important; font-size: 13px; }
html[data-theme] :is(.portal-form,.portal-qual-form) label { color: var(--ui-muted); }
html[data-theme] .portal-medical.warn { background: var(--ui-warn-bg); color: var(--ui-warn); border-color: var(--ui-warn); }
html[data-theme] .portal-medical.danger { background: var(--ui-danger-bg); color: var(--ui-danger); border-color: var(--ui-danger); }
html[data-theme] .booking-wx-category { color: var(--ui-ok); background: var(--ui-ok-bg); border-color: var(--ui-ok); border-radius: 999px; }
html[data-theme] .booking-wx-category.booking-wx-caution { color: var(--ui-warn); background: var(--ui-warn-bg); border-color: var(--ui-warn); }
html[data-theme] .booking-wx-category.booking-wx-imc { color: var(--ui-danger); background: var(--ui-danger-bg); border-color: var(--ui-danger); }
html[data-theme] :is(.booking-wx-origin,.booking-wx-warning,.booking-wx-cell span) { opacity: 1; color: var(--ui-muted); font-size: 13px; }
html[data-theme] :is(.booking-wx-cell strong,.booking-wx-source code,.pilot-clock-value) { font-family: var(--font-mono); }
html[data-theme] #compact-clock-widget.pilot-clock-panel { background: var(--ui-surface)!important; border: 1px solid var(--ui-border)!important; border-radius: 14px; color: var(--ui-text); }
html[data-theme] .pilot-clock-tile { background: var(--ui-surface-2)!important; border-color: var(--ui-border)!important; border-radius: 10px; }
html[data-theme] .pilot-clock-panel .pilot-clock-value { color: var(--ui-text)!important; }
html[data-theme] :is(.pilot-clock-label,.pilot-clock-tile small,.pilot-clock-date,.pilot-clock-eyebrow,.pilot-clock-details p,.pilot-clock-note,.pilot-clock-daybar-labels) { color: var(--ui-muted)!important; font: 400 13px/1.45 var(--font-sans); text-transform: none; letter-spacing: normal; }
html[data-theme] .pilot-clock-track>span { background: var(--ui-muted); }
html[data-theme] .pilot-clock-state { background: var(--ui-surface-2); border-color: var(--ui-border); color: var(--ui-muted); border-radius: 999px; }
html[data-theme] .pilot-clock-state.day { background: var(--ui-ok-bg); color: var(--ui-ok); border-color: var(--ui-ok); }
html[data-theme] .pilot-clock-state.soon { background: var(--ui-warn-bg); color: var(--ui-warn); border-color: var(--ui-warn); }
html[data-theme] #section-divider-flights-stats>div.relative { background: var(--ui-surface); border: 1px solid var(--ui-border); border-radius: 14px; }
html[data-theme] #section-divider-flights-stats :is(span,svg) { color: var(--ui-text)!important; font: 600 18px/1.4 var(--font-sans); text-transform: none; letter-spacing: normal; animation: none; }
html[data-theme] #section-divider-flights-stats>div.absolute { background: var(--ui-border); height: 1px; }
html[data-theme] #fleet-manuals-panel [class*="text-amber-"],html[data-theme] #fleet-manuals-panel [class*="text-sky-"] { color: var(--ui-text)!important; }
html[data-theme] #fleet-manuals-panel [class*="bg-gradient"] { background: var(--ui-surface)!important; }
html[data-theme] .booking187-pilot-count { color: var(--ui-muted); font-size: 13px; }
html[data-theme] .booking187-pilot-results .booking187-pilot-active { background: var(--ui-action-soft); }
html[data-theme] #navigation-archive-bar { background: var(--ui-surface)!important; border-color: var(--ui-border)!important; border-radius: 14px; }
html[data-theme] #navigation-archive-bar button { background: var(--ui-surface-2)!important; color: var(--ui-text)!important; border-color: var(--ui-border)!important; }
html[data-theme] #navigation-archive-bar button[aria-pressed="true"] { background: var(--ui-action-soft)!important; color: var(--ui-link)!important; border-color: var(--ui-link)!important; }
html[data-theme] :is(.portal-expanded-menu,.portal-menu-action,.portal-menu-section,.portal-menu-copy strong) { background: var(--ui-surface); color: var(--ui-text); border-color: var(--ui-border); }
html[data-theme] .portal-menu-copy span { color: var(--ui-muted); }
html[data-theme] #booking-cookie-settings { background: var(--ui-surface); color: var(--ui-text); border-color: var(--ui-border); }
html[data-theme] #booking-modal { background: rgb(11 18 32 / .78)!important; }
html[data-theme] #booking-modal>div { background: var(--ui-surface)!important; border-color: var(--ui-border)!important; }
html[data-theme] #booking-highlight-card { background: var(--ui-surface-2)!important; border-color: var(--ui-border)!important; border-radius: 12px; }
html[data-theme] #booking-highlight-card :is(span,div) { color: var(--ui-text)!important; }
html[data-theme] #booking-highlight-card .font-mono { font-family: var(--font-mono); }
html[data-theme] #booking-modal [class*="text-indigo-"] { color: var(--ui-muted)!important; }
html[data-theme] #booking-modal [class*="bg-indigo-"] { background: var(--ui-surface-2)!important; border-color: var(--ui-border)!important; }
html[data-theme] #booking-modal [class*="text-rose-"] { color: var(--ui-danger)!important; }
html[data-theme] #booking-modal [class*="text-amber-"] { color: var(--ui-warn)!important; }
html[data-theme] #booking-modal [class*="bg-amber-"] { background: var(--ui-warn-bg)!important; border-color: var(--ui-warn)!important; }
html[data-theme] #booking-modal [class*="text-emerald-"] { color: var(--ui-ok)!important; }
html[data-theme] #booking-modal h3 { font-size: 20px!important; }
@media(max-width:600px) {
  html[data-theme] :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea) { font-size: 16px!important; }
  html[data-theme] [id^="slot-card-"] { flex-wrap: wrap; gap: 10px; }
  html[data-theme] [id^="slot-card-"] .lucide-clock+span { font-size: 20px; }
  html[data-theme] #app-header button[aria-label^="Display "]::after { content: attr(title); font-size: 13px; display: block; }
  html[data-theme] :is(#profile-btn,#logout-btn) { min-width: 44px; }
  html[data-theme] #logout-btn span { display: inline; }
  html[data-theme] #booking-highlight-card>.grid { grid-template-columns: 1fr; gap: 12px; }
  html[data-theme] #booking-highlight-card>.grid>.border-l { border-left: 0; padding-left: 0; }
  html[data-theme] #booking-highlight-card>.grid>div>span:last-child { white-space: nowrap; font-size: 17px; }
}
@media(prefers-reduced-motion:reduce) { html[data-theme] *,html[data-theme] *::before,html[data-theme] *::after { scroll-behavior: auto!important; animation: none!important; transition: none!important; } }
