/* doc-project | public/assets/css/components/forms.css | Uniformise formulaires, champs, contrôles segmentés, dépôts de fichiers et validation. | Expose: contrôles de formulaire | Dépend de: tokens.css | Impacte: toutes les saisies | Tables: aucune */
label,fieldset{font-weight:650;color:var(--ink-800)}label>span:first-child{display:block;margin-bottom:.35rem}input,select,textarea{width:100%;min-height:44px;padding:.66rem .78rem;border:1px solid var(--ink-300);border-radius:var(--radius-sm);background:#fff;color:var(--ink-900);transition:border var(--transition),box-shadow var(--transition)}textarea{resize:vertical}input:hover,select:hover,textarea:hover{border-color:var(--ink-500)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus)}input[aria-invalid="true"],select[aria-invalid="true"],textarea[aria-invalid="true"]{border-color:var(--danger);background:var(--danger-soft)}fieldset{margin:0;padding:0;border:0}legend{margin-bottom:.5rem}.form-card{display:grid;gap:1rem;padding:1.5rem;background:#fff;border:1px solid var(--ink-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.input-unit{display:flex}.input-unit input{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.input-unit span{display:grid;place-items:center;min-width:56px;padding:0 .65rem;border:1px solid var(--ink-300);border-left:0;border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--ink-50);font-weight:700;color:var(--ink-600)}.segmented-control{display:flex;padding:3px;border:1px solid var(--ink-200);border-radius:var(--radius-sm);background:var(--ink-50)}.segmented-control label{flex:1}.segmented-control input{position:absolute;opacity:0;pointer-events:none}.segmented-control span{display:flex;align-items:center;justify-content:center;min-height:36px;padding:.45rem .7rem;border-radius:.35rem;font-size:.85rem;cursor:pointer}.segmented-control input:checked+span{background:#fff;box-shadow:var(--shadow-xs);color:var(--accent)}.check-row{display:flex;align-items:center;gap:.65rem}.check-row input{width:18px;min-height:18px}.check-row span{margin:0!important}.file-drop{display:grid;place-items:center;gap:.35rem;min-height:170px;padding:1.25rem;border:2px dashed var(--ink-300);border-radius:var(--radius-lg);text-align:center;background:var(--ink-50);cursor:pointer}.file-drop:hover{border-color:var(--accent);background:var(--accent-soft)}.file-drop input{position:absolute;width:1px;height:1px;opacity:0}.file-drop span,.file-drop em{font-size:.85rem;color:var(--ink-600);font-style:normal}.file-drop--compact{min-height:120px}.filter-bar,.report-filters{display:flex;align-items:end;gap:.75rem;flex-wrap:wrap;padding:1rem;background:#fff;border:1px solid var(--ink-200);border-radius:var(--radius-lg);margin-bottom:1rem}.filter-bar label,.report-filters label{min-width:170px;flex:1}.filter-bar label span{font-size:.75rem}.modal-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.modal-fields label:has(textarea),.modal-fields label:has(input[type=file]){grid-column:1/-1}.switch{display:flex;align-items:center;gap:.7rem}.switch input{width:42px;height:24px;appearance:none;background:var(--ink-300);border:0;border-radius:99px;padding:2px}.switch input::before{content:"";display:block;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform var(--transition)}.switch input:checked{background:var(--success)}.switch input:checked::before{transform:translateX(18px)}
@media(max-width:720px){.form-row,.modal-fields{grid-template-columns:1fr}.modal-fields label{grid-column:auto!important}}