body { margin: 0; padding: 2.25em; font-family: Arial, sans-serif; font-size: 1em; }
h2 { font-size: 4em; margin: 0.3em 0; text-align: center; }
h4 { font-size: 3em; margin: 0.2em 0; text-align: center; color: #666; }
p { text-align: center; font-size: 2.5em; margin: 0.2em 0; }

.header { margin-bottom: 2em; padding-bottom: 1.5em; border-bottom: 2px solid #333; }
.section { margin: 1.5em 0; padding: 1.5em; border-top: 2px solid #333; }
.section h3 { font-size: 3em; margin: 0.4em 0; }
.form-line { padding: 0.6em 0; display: flex; justify-content: flex-start; align-items: center; gap: 1em; }
.form-line label { font-size: 2.4em; flex: 1; }
.form-line input[type='number'] { width: 2.5em; font-size: 2.1em; padding: 0.5em; text-align: center; flex-shrink: 0; }
.kit-title { padding: 0.6em 0; display: flex; justify-content: flex-start; align-items: center; gap: 1em; }
.kit-title .qte-display { width: 2.5em; font-size: 2.1em; padding: 0.5em; flex-shrink: 0; text-align: center; font-weight: bold; }
.kit-title label { font-size: 2.4em; flex: 1; }
.kit-element { opacity: 0.7; }
.kit-element label span.item-name[data-type='perissable'] { color: #AB0093; }
.kit-element label span.item-name[data-type='electronique'] { color: #FF7F2F; }

input[type='number'] { width: 2.5em; font-size: 2.1em; padding: 0.5em; flex-shrink: 0; text-align: center; }
input[type='checkbox'] { width: 4.5em; height: 4.5em; cursor: pointer; flex-shrink: 0; }
input[type='submit'] { width: 100%; padding: 1.2em; font-size: 3em; background: #AB0093; color: white; border: none; margin-top: 1.5em; font-weight: bold; }
button { font-size: 2.4em; padding: 0.3em 0.8em; background: #AB0093; color: white; border: none; cursor: pointer; flex-shrink: 0; }

.violet, .perissable { color: #AB0093; }
.orange, .electronique { color: #FF7F2F; }
.bleu { background: #002D73; padding: 0.8em 1.5em; font-size: 2.1em; color: white; border: none; cursor: pointer; }
.ok { color: #28a745; font-size: 3.6em; text-align: center; margin: 2em 0; font-weight: bold; }
.correction { padding: 1.5em; margin: 1.5em 0; border-top: 2px solid #333; }
.correction h3 { font-size: 3em; margin: 0.4em 0; }
.ajouter h3 { color: #28a745; }
.retirer h3 { color: #dc3545; }

.selection-container { margin: 3em 0; padding: 2em; }
.selection-row { display: flex; flex-direction: column; gap: 3em; margin: 2em 0; }
.selection-group { display: grid; grid-template-columns: 0.3fr 1fr; gap: 2em; align-items: center; }
.selection-group label { font-size: 2.6em; font-weight: bold; color: #333; text-align: left; }
select { padding: 1em; font-size: 2.4em; border: 2px solid #333; border-radius: 4px; width: 100%; }
select:focus { outline: none; border-color: #8a007a; }

.error-msg { color: #dc3545; font-size: 2.4em; text-align: center; margin: 1em 0; }
.item-recap { padding: 1em; margin: 0.8em 0; border-left: 5px solid; border-radius: 4px; }
.item-ok { border-left-color: #28a745; background: #f0f9f5; }
.item-erreur { border-left-color: #dc3545; background: #fef5f5; }
.item-zero { border-left-color: #ff9800; background: #fffbf0; }
.item-recap p { margin: 0.3em 0; font-size: 2.1em; }
.item-recap .nom { font-weight: bold; font-size: 2.4em; }
.item-recap .detail { color: #666; font-size: 1.9em; }
.recap-title { font-size: 3.6em; text-align: center; margin: 2em 0; font-weight: bold; }
.recap-title.ok { color: #28a745; }
.recap-title.partiel { color: #ff9800; }
.recap-title.erreur { color: #dc3545; }