html, body {
  height: 100%;
  margin: 0;
  display: flex;
  flex-direction: column;
}

main {
  flex: 1;
}

/* Form e sezioni */
form.form {
    max-width: 600px;
    margin: 20px auto;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

fieldset {
    border: 1px solid #ccc;
    border-radius: 6px;
    padding: 15px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

legend {
    font-weight: bold;
    padding: 0 10px;
}

/* Gruppi e righe */
.form-group {
    display: flex;
    flex-direction: column;
}

.form-group label {
    font-weight: bold;
    margin-bottom: 4px;
    margin-top: 6px; /* più spazio rispetto al campo precedente */
}

.form-row {
    display: flex;
    gap: 10px;
}

.form-row .form-group {
    flex: 1; /* larghezza uniforme */
    display: flex;
    flex-direction: column;
}

/* Input, select, textarea */
form input,
form select,
form textarea {
    padding: 8px;
    border: 1px solid #ccc;
    border-radius: 5px;
    width: 100%; /* riempie sempre la colonna */
    box-sizing: border-box;
}

/* Pulsanti */
form button,
a.btn {
    background: #2d6cdf;
    color: white;
    border: none;
    padding: 8px 14px;
    border-radius: 5px;
    cursor: pointer;
    text-decoration: none;
    text-align: center;
}

a.btn {
    background: #777;
}

table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 20px;
}
table th, table td {
    padding: 8px;
    border: 1px solid #ddd;
    text-align: left;
}
