/* ==========================================================================
   BASE — palette, reset minimo, accessibilità, ruoli
   Vincolo palette: usare solo #123a63 #0f2e4f #2A9AA5 #848484 + bianco + trasparenze
   ========================================================================== */

:root{
  /* Palette (VINCOLANTE) */
  --gefil-blue: #123a63;
  --gefil-blue-dark: #0f2e4f;
  --gefil-accent: #2A9AA5;
  --gefil-gray: #848484;

  /* Neutri ammessi */
  --white: #ffffff;

  /* Variabili UI (derivate dalla palette) */
  --bg: var(--white);
  --surface: var(--white);

  --text: var(--gefil-blue-dark);
  --muted: var(--gefil-gray);

  /* Aggiunta MINIMA: variabile bordo usata in layout/components */
  --border: rgba(132,132,132,.45);

  --radius: 14px;
  --shadow: 0 10px 30px rgba(15,46,79,.10); /* derivato da --gefil-blue-dark */
  --focus: 0 0 0 3px rgba(42,154,165,.45);  /* derivato da --gefil-accent */

  --side-padding: 48px;

  /* Default (contribuente) */
  --content-width: 860px;
}

/* Ruoli: larghezza diversa, stessi componenti */
/*
body.role-admin,
body.role-ente,
body.role-operatore{
  --content-width: 1200px;
}

body.role-contribuente{
  --content-width: 860px;
}
*/

/* Variante attuale: settaggio larghezza su main in base al ruolo */
main.role-super,
main.role-admin,
main.role-ente,
main.role-operatore{
  --content-width: 1200px;
}
main.role-contribuente{
  --content-width: 860px;
}

/* Reset minimo */
*,
*::before,
*::after{ box-sizing: border-box; }

html, body{ height: 100%; }

body{
  margin: 0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, Arial, "Helvetica Neue", sans-serif;
  color: var(--text);
  background: var(--bg);
  line-height: 1.45;

  /* Sticky footer (footer sempre in fondo se contenuto corto) */
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

main{
  flex: 1 0 auto;
}

img{ max-width: 100%; height: auto; display: block; }

input, select, textarea, button{ font: inherit; }

/* Link neutralizzati (niente blu/viola, niente underline di default) */
a{ color: inherit; text-decoration: none; }
a:visited{ color: inherit; }
a:hover{ text-decoration: none; }

/* Focus visibile */
:focus{ outline: none; }
:focus-visible{
  box-shadow: var(--focus);
  border-radius: 10px;
}

/* Skip link (AGID) */
.skip-link{
  position: absolute;
  left: -9999px;
  top: 8px;
  padding: 10px 12px;
  background: var(--surface);
  border: 2px solid var(--gefil-accent);
  border-radius: 10px;
  color: var(--text);
  z-index: 1000;
}
.skip-link:focus,
.skip-link:focus-visible{
  left: 12px;
  box-shadow: var(--focus);
}

/* Riduzione animazioni */
@media (prefers-reduced-motion: reduce){
  *{
    scroll-behavior: auto !important;
    transition: none !important;
    animation: none !important;
  }
}
