/* Generator wizard — DUER */
.generator-page { padding: 2rem 0 4rem; min-height: calc(100vh - 200px); }
.generator-header { text-align: center; margin-bottom: 2.5rem; }
.generator-header h1 { margin-bottom: 0.5rem; color: var(--dark); }
.generator-header p { color: var(--text-light); font-size: 1.0625rem; margin-bottom: 1.5rem; }

.progress-bar { height: 8px; background: var(--bg-alt); border-radius: 4px; overflow: hidden; max-width: 720px; margin: 0 auto 12px; }
.progress-fill { height: 100%; background: linear-gradient(90deg, var(--primary), var(--primary-light)); transition: width 0.3s; }
.progress-steps { display: flex; justify-content: space-between; max-width: 720px; margin: 0 auto; font-size: 12.5px; color: var(--text-light); }
.progress-step.active { color: var(--primary); font-weight: 600; }

.wizard-step { display: none; max-width: 880px; margin: 0 auto; background: var(--bg-white); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 2.5rem 2.25rem; box-shadow: var(--shadow); }
.wizard-step.active { display: block; }
.wizard-step h2 { color: var(--dark); margin: 0 0 6px; }
.wizard-step h3 { color: var(--dark); margin: 2rem 0 1rem; padding-bottom: 6px; border-bottom: 1px solid var(--border); font-size: 1.1rem; }
.step-help { color: var(--text-light); font-size: 14.5px; margin-bottom: 1.5rem; }

.wizard-actions { display: flex; justify-content: space-between; gap: 12px; margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--border); }
.wizard-actions .btn:only-child { margin-left: auto; }

/* Sector picker */
.sector-picker { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.sector-radio {
    border: 2px solid var(--border); border-radius: var(--radius); padding: 16px;
    cursor: pointer; display: flex; align-items: center; gap: 14px;
    transition: var(--transition); position: relative;
}
.sector-radio input { position: absolute; opacity: 0; }
.sector-radio:hover { border-color: var(--c, var(--primary)); }
.sector-radio:has(input:checked) { border-color: var(--c, var(--primary)); background: color-mix(in srgb, var(--c) 5%, transparent); }
.sector-radio-icon { font-size: 1.75rem; line-height: 1; }
.sector-radio-text strong { display: block; color: var(--dark); font-size: 15px; }
.sector-radio-text span { font-size: 12.5px; color: var(--text-light); }

/* Forms */
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.form-group--full { grid-column: 1 / -1; }
.form-group { display: flex; flex-direction: column; gap: 6px; }
.form-label { font-weight: 500; font-size: 14px; color: var(--dark); }
.form-input {
    width: 100%; padding: 10px 14px; border: 1px solid var(--border);
    border-radius: var(--radius-sm); font-size: 15px; font-family: inherit;
    background: var(--bg-white); color: var(--text); transition: var(--transition);
}
.form-input:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-100); }
.form-input:disabled { background: var(--bg-alt); color: var(--text-light); }
.required { color: var(--error); }

.checkboxes-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px 14px; margin: 1rem 0; }
.check { display: flex; align-items: center; gap: 8px; padding: 8px; border-radius: var(--radius-sm); cursor: pointer; font-size: 14.5px; color: var(--text); }
.check:hover { background: var(--bg-alt); }
.check input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--primary); cursor: pointer; }

/* Risks list */
.legend { display: flex; gap: 10px; margin-bottom: 1.25rem; flex-wrap: wrap; }
#risksList { display: flex; flex-direction: column; gap: 12px; }
.risk-row {
    border: 1px solid var(--border); border-radius: var(--radius); padding: 1rem 1.25rem;
    background: var(--bg-white); transition: var(--transition);
}
.risk-row.is-deselected { opacity: 0.5; background: var(--bg-alt); }
.risk-row-head { display: flex; align-items: center; gap: 12px; }
.risk-row-head .check { flex: 1; font-weight: 600; color: var(--dark); }
.risk-row-cot { display: flex; gap: 8px; align-items: center; }
.cot-badge {
    padding: 4px 10px; border-radius: 4px; font-size: 12px; font-weight: 700; color: #fff;
    min-width: 60px; text-align: center;
}
.risk-row-body { margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--border); display: none; }
.risk-row.is-open .risk-row-body { display: block; }
.risk-row p.desc { color: var(--text); font-size: 14px; margin: 0 0 12px; line-height: 1.55; }
.risk-row .grav-freq-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 12px 0; }
.risk-row .grav-freq-row label { display: block; font-size: 13px; color: var(--text-light); margin-bottom: 4px; }
.risk-row .grav-freq-row select { width: 100%; padding: 8px 12px; border: 1px solid var(--border); border-radius: var(--radius-sm); font-family: inherit; }
.risk-row .mesures-label { font-size: 13px; color: var(--text-light); margin-bottom: 4px; }
.risk-row .mesures-textarea { width: 100%; padding: 10px 12px; border: 1px solid var(--border); border-radius: var(--radius-sm); font-family: inherit; font-size: 13.5px; min-height: 100px; }
.risk-row-toggle { background: none; border: none; color: var(--primary); cursor: pointer; font-size: 13px; padding: 4px 8px; }

/* Spinner */
.generating-spinner { text-align: center; padding: 3rem; color: var(--text-light); font-size: 1.125rem; }

/* Generation result */
.gen-result { text-align: center; }
.gen-result .price-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin: 2rem 0; }
.gen-result .price-cards .pricing-card { text-align: left; }

/* Mobile */
@media (max-width: 760px) {
    .wizard-step { padding: 1.5rem 1.25rem; }
    .sector-picker { grid-template-columns: 1fr; }
    .form-grid { grid-template-columns: 1fr; }
    .checkboxes-grid { grid-template-columns: 1fr; }
    .risk-row .grav-freq-row { grid-template-columns: 1fr; }
    .progress-steps { font-size: 10.5px; }
    .gen-result .price-cards { grid-template-columns: 1fr; }
}
