  :root { --blu: #25396c; --giallo: #f8b133; --fondo: #f5f6f9; --testo: #1d2433; --grigio: #6b7280;
          --bordo: #dfe3ea; --verde: #2e7d4f; --rosso: #b42318; }
  * { box-sizing: border-box; }
  body { margin: 0; background: var(--fondo); color: var(--testo);
         font: 16px/1.5 -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; }
  header { background: var(--blu); color: #fff; padding: 18px 16px; border-bottom: 5px solid var(--giallo); }
  header .riga { max-width: 960px; margin: 0 auto; display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 8px; }
  header h1 { margin: 0; font-size: 22px; letter-spacing: .3px; }
  header h1 span { color: var(--giallo); }
  main { max-width: 960px; margin: 0 auto; padding: 16px; }
  .scheda { background: #fff; border: 1px solid var(--bordo); border-left: 5px solid var(--giallo);
            border-radius: 8px; padding: 18px; margin-bottom: 18px; }
  h2 { margin: 0 0 12px; font-size: 19px; color: var(--blu); }
  h3 { margin: 18px 0 8px; font-size: 16px; color: var(--blu); }
  label { display: block; font-weight: 600; margin: 14px 0 4px; }
  .aiuto { color: var(--grigio); font-size: 14px; margin: 2px 0 6px; }
  select, textarea, input[type=text] { width: 100%; font: inherit; padding: 9px 10px; border: 1px solid var(--bordo); border-radius: 6px; background: #fff; }
  textarea { min-height: 140px; resize: vertical; }
  input[type=file] { font: inherit; max-width: 100%; }
  button { font: inherit; cursor: pointer; border-radius: 6px; border: 1px solid var(--blu); padding: 8px 14px; background: #fff; color: var(--blu); }
  button.principale { background: var(--blu); color: #fff; font-weight: 600; padding: 10px 20px; margin-top: 16px; }
  button:disabled { opacity: .5; cursor: default; }
  button.piccolo { padding: 3px 9px; font-size: 14px; margin: 2px 4px 2px 0; }
  .stato { display: inline-block; font-size: 13px; font-weight: 600; padding: 2px 9px; border-radius: 999px; background: #eef1f6; color: var(--blu); }
  .stato.pronta { background: #e5f4ea; color: var(--verde); }
  .stato.attesa, .stato.lavoro, .stato.coda { background: #fff4dc; color: #8a5a00; }
  .stato.bozza { background: #f1f1f1; color: var(--grigio); }
  .richiesta { border-top: 1px solid var(--bordo); padding: 14px 0; }
  .richiesta:first-of-type { border-top: 0; }
  .richiesta .testa { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; font-weight: 600; }
  .testo-richiesta { white-space: pre-wrap; background: var(--fondo); border-radius: 6px; padding: 10px; margin: 8px 0; font-size: 15px; }
  .risposta { border-left: 3px solid var(--blu); padding: 2px 0 2px 12px; margin-top: 8px; }
  .risposta p { margin: 6px 0; }
  .risposta li { margin: 3px 0; }
  .tabella { overflow-x: auto; }
  table { border-collapse: collapse; font-size: 14px; margin: 8px 0; }
  td { border: 1px solid var(--bordo); padding: 5px 8px; vertical-align: top; }
  .file { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; padding: 6px 0; border-bottom: 1px dashed var(--bordo); }
  .file .data { color: var(--grigio); font-size: 13px; }
  .messaggio { padding: 10px 12px; border-radius: 6px; margin-top: 12px; }
  .messaggio.ok { background: #e5f4ea; color: var(--verde); }
  .messaggio.errore { background: #fdecea; color: var(--rosso); }
  .messaggio.info { background: #eef1f6; color: var(--blu); }
  .nascosto { display: none; }
  details summary { cursor: pointer; color: var(--blu); font-weight: 600; }
  .prenota { display: inline-block; background: var(--giallo); color: var(--blu); font-weight: 700; text-decoration: none;
             padding: 7px 14px; border-radius: 6px; font-size: 15px; }
  .prenota:hover { filter: brightness(1.05); }
  header .destra { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
  footer { max-width: 960px; margin: 0 auto; padding: 0 16px 30px; color: var(--grigio); font-size: 13px; }
  input.corto { max-width: 200px; }
  button.accanto { margin-left: 8px; }
