/* FattoChiaro v0.6.0-rc1 — stabilizzazione visiva e componenti Assessment. */
:root {
    --fc-container-wide: 1240px;
    --fc-container-readable: 1120px;
    --fc-text: #17233b;
    --fc-muted: #64748b;
    --fc-border: #dce5f1;
    --fc-soft: #f6f9fd;
    --fc-blue: #1266e5;
    --fc-blue-dark: #0d3d8f;
    --fc-radius: 16px;
    --fc-shadow: 0 12px 34px rgba(22, 52, 91, .08);
}

html { font-size: 16px; }
body { line-height: 1.58; }
body, button, input, select, textarea { font-kerning: normal; }
p, li, dd, dt, label, small, span { overflow-wrap: anywhere; }

h1, h2, h3 { line-height: 1.18; letter-spacing: -.025em; overflow-wrap: normal; }
h1 { font-size: clamp(2rem, 3.7vw, 3.45rem); }
h2 { font-size: clamp(1.45rem, 2.25vw, 2.1rem); }
h3 { font-size: clamp(1.08rem, 1.35vw, 1.35rem); }
.app-page-header h1 { max-width: 22ch; font-size: clamp(1.9rem, 3vw, 3rem); }
.app-page-header p { max-width: 74ch; }

.readable-content { width: min(100%, var(--fc-container-wide)); margin-inline: auto; }
.narrow-container { width: min(100% - 2rem, 840px); margin-inline: auto; }
.block-space { margin-top: 1.5rem; }
.card-header { gap: 1rem; }
.card-header > div { min-width: 0; }
.card-header h2, .card-header p { margin-bottom: .35rem; }
.text-muted { color: var(--fc-muted); }
.text-danger { color: #b42318; }

/* Form readability */
.form-grid, .filters { gap: 1.1rem 1.25rem; }
.input-group { min-width: 0; gap: .38rem; }
.input-group > label { display: flex; flex-direction: column; gap: .22rem; font-weight: 700; line-height: 1.35; }
.input-group > label span, .input-group > small { display: block; font-weight: 400; color: var(--fc-muted); line-height: 1.45; }
.input, textarea.input, select.input { line-height: 1.42; }
textarea.input { resize: vertical; min-height: 7rem; }
.form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-top: 1.4rem; }
.stack-form { display: grid; gap: 1rem; }
.consent-row, .dont-know-choice { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: .8rem; }
.consent-row input, .dont-know-choice input { margin-top: .25rem; }
.consent-row span, .dont-know-choice span { display: grid; gap: .2rem; }
.consent-row small, .dont-know-choice small { color: var(--fc-muted); }

/* Assessment library and scale workflow */
.assessment-principle p { margin: .35rem 0 0; }
.assessment-scale-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; padding: 0; margin: 1.1rem 0 0; list-style: none; }
.assessment-scale-steps li { display: grid; grid-template-columns: 2.15rem 1fr; gap: .75rem; align-items: start; min-width: 0; padding: 1rem; border: 1px solid var(--fc-border); border-radius: 14px; background: #fff; }
.assessment-scale-steps li > span { display: grid; place-items: center; width: 2.15rem; height: 2.15rem; border-radius: 50%; background: #eaf2ff; color: var(--fc-blue-dark); font-weight: 800; }
.assessment-scale-steps li div { display: grid; gap: .25rem; min-width: 0; }
.assessment-scale-steps small { color: var(--fc-muted); line-height: 1.45; }
.assessment-template-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.assessment-template-card { display: flex; flex-direction: column; min-width: 0; padding: 1.2rem; border: 1px solid var(--fc-border); border-radius: var(--fc-radius); background: #fff; }
.assessment-template-card h3 { margin: .8rem 0 .45rem; }
.assessment-template-card p { color: var(--fc-muted); }
.assessment-template-card footer { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: auto; padding-top: 1rem; }
.assessment-template-head, .assessment-review-badges { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; }
.compact-definition-list { display: grid; gap: .55rem; margin: .8rem 0 0; }
.compact-definition-list div { display: grid; grid-template-columns: minmax(5rem, auto) minmax(0, 1fr); gap: .75rem; padding-top: .55rem; border-top: 1px solid #edf2f7; }
.compact-definition-list dt { color: var(--fc-muted); }
.compact-definition-list dd { margin: 0; font-weight: 700; }
.assessment-filters-extended { grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: end; }
.assessment-filter-actions { display: flex; align-items: center; gap: .5rem; grid-column: 1 / -1; }
.assessment-table td { vertical-align: top; }
.assessment-table td strong, .assessment-table td small { display: block; }
.assessment-table td small + small { margin-top: .2rem; }

/* Assessment runner */
.assessment-run-body { background: #f5f8fc; color: var(--fc-text); }
.assessment-run-shell { width: min(100% - 2rem, 980px); margin-inline: auto; padding: 1.25rem 0 3rem; }
.assessment-run-topbar, .assessment-run-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; }
.assessment-run-topbar { padding: .8rem 0 1.2rem; }
.assessment-run-topbar img { width: auto; max-width: 178px; }
.assessment-run-header { padding: 1.5rem; border: 1px solid var(--fc-border); border-radius: 20px; background: #fff; box-shadow: var(--fc-shadow); }
.assessment-run-header h1 { font-size: clamp(1.8rem, 3vw, 2.65rem); margin: .45rem 0; }
.assessment-run-meta { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }
.assessment-run-form { display: grid; gap: 1.25rem; margin-top: 1.25rem; }
.assessment-question-card { padding: 1.35rem; border: 1px solid var(--fc-border); border-radius: 18px; background: #fff; box-shadow: 0 8px 24px rgba(15, 40, 75, .05); }
.assessment-question-head, .assessment-review-question-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.assessment-question-head h2, .assessment-review-question-head h2 { margin: .5rem 0 0; font-size: clamp(1.2rem, 1.75vw, 1.55rem); }
.assessment-prompt { margin: 1rem 0; padding: 1rem; border-left: 4px solid #8eb8f7; border-radius: 0 12px 12px 0; background: #f5f9ff; white-space: normal; }
.assessment-prompt.compact { margin: .75rem 0; }
.assessment-help { margin: -.4rem 0 1rem; color: var(--fc-muted); }
.assessment-text-answer label span { font-size: .91rem; color: var(--fc-muted); }
.word-count-row { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem; min-height: 1.5rem; color: var(--fc-muted); }
.word-count-row.is-below { color: #9a3412; }
.word-count-row.is-ready { color: #087443; }
.word-count-row.is-over { color: #b42318; }
.dont-know-choice { margin-top: 1rem; padding: .9rem 1rem; border: 1px solid #dfe7f2; border-radius: 12px; background: #fbfcfe; }
.dont-know-choice:has(input:checked) { border-color: #f0b44d; background: #fff9eb; }
.assessment-choice-list { display: grid; gap: .7rem; margin: 0; padding: 0; border: 0; }
.assessment-choice-list legend { margin-bottom: .65rem; font-weight: 800; }
.assessment-choice-list label { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .75rem; align-items: start; padding: .85rem 1rem; border: 1px solid var(--fc-border); border-radius: 12px; background: #fff; cursor: pointer; }
.assessment-choice-list label:has(input:checked) { border-color: #6ea5ee; background: #f2f7ff; }
.assessment-choice-list label > span { display: flex; gap: .6rem; align-items: baseline; }
.choice-label-text { min-width: 0; }
.assessment-ordering-v060 { margin: 0; padding: 0; border: 0; }
.assessment-ordering-v060 legend { margin-bottom: .4rem; font-weight: 800; }
.ordering-list { display: grid; gap: .65rem; margin: 1rem 0 0; padding: 0; list-style: none; counter-reset: order; }
.ordering-item { display: grid; grid-template-columns: 2rem 1.4rem minmax(0, 1fr) auto; align-items: center; gap: .7rem; min-width: 0; padding: .8rem .9rem; border: 1px solid var(--fc-border); border-radius: 12px; background: #fff; }
.ordering-item.is-dragging { opacity: .55; border-style: dashed; }
.ordering-position { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: #eaf2ff; color: var(--fc-blue-dark); font-weight: 800; }
.ordering-handle { color: #8291a7; cursor: grab; }
.ordering-label { min-width: 0; }
.ordering-actions { display: flex; gap: .3rem; }
.icon-button { display: inline-grid; place-items: center; width: 2.15rem; height: 2.15rem; border: 1px solid var(--fc-border); border-radius: 9px; background: #fff; color: var(--fc-text); }
.icon-button:disabled { opacity: .38; }
.assessment-rubric-preview { margin-top: 1rem; padding: .8rem 1rem; border-radius: 12px; background: #f7f9fc; }
.assessment-rubric-preview summary { cursor: pointer; font-weight: 750; }
.assessment-submit-bar { position: sticky; bottom: .75rem; z-index: 4; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.1rem; border: 1px solid #cbd9eb; border-radius: 16px; background: rgba(255,255,255,.96); box-shadow: 0 14px 32px rgba(20, 45, 80, .14); backdrop-filter: blur(10px); }
.assessment-submit-bar > div { display: flex; align-items: center; gap: .6rem; color: var(--fc-muted); }
.assessment-run-footer { padding: 1.3rem .2rem 0; }

/* Human review and candidate result */
.assessment-review-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.metric-card { display: grid; align-content: start; gap: .25rem; min-width: 0; padding: 1.1rem; }
.metric-card > span { color: var(--fc-muted); font-weight: 650; }
.metric-card > strong { font-size: 1.45rem; color: var(--fc-blue-dark); }
.metric-card > small { color: var(--fc-muted); }
.assessment-response-review-list { display: grid; gap: 1rem; }
.assessment-review-card, .assessment-result-card { min-width: 0; }
.assessment-result-card { padding: 1.1rem 0; border-bottom: 1px solid var(--fc-border); }
.assessment-result-card:last-child { border-bottom: 0; }
.assessment-candidate-answer { margin: 1rem 0; padding: 1rem; border: 1px solid #dfe8f4; border-radius: 12px; background: #fff; }
.assessment-candidate-answer strong, .assessment-candidate-answer p, .assessment-candidate-answer small { display: block; }
.assessment-candidate-answer p { margin: .45rem 0; white-space: normal; }
.assessment-candidate-answer.is-dont-know { border-color: #f0c36b; background: #fff9ea; }
.assessment-rubric-box { margin: 1rem 0; padding: 1rem; border-radius: 12px; background: #f6f8fb; }
.assessment-rubric-box p { margin: .4rem 0 0; }
.assessment-review-controls { display: grid; grid-template-columns: minmax(13rem, .55fr) minmax(0, 1.45fr); gap: 1rem; align-items: start; margin-top: 1rem; }
.assessment-score-line { display: flex; flex-wrap: wrap; align-items: baseline; gap: .7rem; margin-top: .8rem; }
.assessment-score-line strong { color: var(--fc-blue-dark); }
.assessment-dimension-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.assessment-dimension-grid article { display: grid; gap: .45rem; padding: 1rem; border: 1px solid var(--fc-border); border-radius: 12px; }
.assessment-progress { width: 100%; }
.assessment-overall-note { margin-top: 1rem; padding: 1rem; border-radius: 12px; background: #f6f9fd; }
.notice-neutral { border-color: #d9e2ec; background: #f8fafc; color: var(--fc-text); }
.notice.compact { padding: .75rem .9rem; }

/* Company assessment builder */
.assessment-builder-question { padding: 1.15rem; border: 1px solid var(--fc-border); border-radius: 16px; background: #fff; }
.assessment-builder-question + .assessment-builder-question { margin-top: 1rem; }
.assessment-word-settings { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; }
.assessment-builder-checks { display: flex; flex-wrap: wrap; gap: .75rem 1.2rem; }

/* Mail diagnostics and upgrade */
.mail-status-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.mail-admin-layout { display: grid; grid-template-columns: 1.1fr .9fr; gap: 1rem; }
.settings-definition-list { display: grid; gap: 0; margin: 0; }
.settings-definition-list > div { display: grid; grid-template-columns: minmax(8rem, .6fr) minmax(0, 1.4fr); gap: 1rem; padding: .8rem 0; border-bottom: 1px solid var(--fc-border); }
.settings-definition-list > div:last-child { border-bottom: 0; }
.settings-definition-list dt { color: var(--fc-muted); }
.settings-definition-list dd { margin: 0; font-weight: 700; }
.mail-last-status { margin-top: 1rem; }
.upgrade-result-list { display: grid; gap: .65rem; padding: 0; list-style: none; }
.upgrade-result-list li { display: grid; grid-template-columns: 1.5rem minmax(9rem, .45fr) minmax(0, 1fr); gap: .7rem; align-items: center; padding: .7rem; border-bottom: 1px solid var(--fc-border); }
.upgrade-result-list li svg { color: #087443; }

/* Focus/accessibility */
:where(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid #83b6ff; outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

@media (max-width: 1100px) {
    .assessment-scale-steps, .assessment-template-grid, .assessment-review-summary, .mail-status-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .assessment-filters-extended { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .mail-admin-layout { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
    h1 { font-size: clamp(1.8rem, 9vw, 2.55rem); }
    h2 { font-size: clamp(1.35rem, 6vw, 1.85rem); }
    .app-content { padding-inline: 1rem; }
    .app-page-header, .assessment-question-head, .assessment-review-question-head, .assessment-submit-bar { align-items: stretch; flex-direction: column; }
    .assessment-scale-steps, .assessment-template-grid, .assessment-review-summary, .mail-status-grid, .assessment-dimension-grid, .assessment-filters-extended, .assessment-word-settings { grid-template-columns: 1fr; }
    .assessment-review-controls { grid-template-columns: 1fr; }
    .ordering-item { grid-template-columns: 2rem minmax(0, 1fr) auto; }
    .ordering-handle { display: none; }
    .assessment-submit-bar { position: static; }
    .assessment-submit-bar .button { width: 100%; }
    .settings-definition-list > div { grid-template-columns: 1fr; gap: .2rem; }
    .upgrade-result-list li { grid-template-columns: 1.5rem minmax(0, 1fr); }
    .upgrade-result-list li small { grid-column: 2; }
}

@media (max-width: 480px) {
    .assessment-run-shell { width: min(100% - 1rem, 980px); }
    .assessment-run-header, .assessment-question-card { padding: 1rem; border-radius: 14px; }
    .assessment-choice-list label { padding: .75rem; }
    .ordering-actions { flex-direction: column; }
}

/* Assessment runner state aliases used by assessment-run-v060.js. */
.word-count-row.is-short { color: #9a3412; }
.word-count-row.is-good { color: #087443; }
.word-count-row.is-long { color: #b42318; }

/* Company assessment builder. */
.assessment-question-editor > header > div { display: grid; gap: .2rem; }
.assessment-question-editor > header small { color: var(--fc-muted); font-weight: 500; }
.assessment-setting-block[hidden],
.assessment-word-settings[hidden],
.assessment-question-flags > label[hidden] { display: none !important; }
.assessment-word-settings { margin: 0; padding: 1rem; border: 1px solid var(--fc-border); border-radius: 14px; background: var(--fc-surface-soft, #f8fafc); }
.assessment-word-settings legend { padding: 0 .35rem; font-weight: 750; color: var(--fc-ink); }
.field-explanation { margin: 0 0 .8rem; color: var(--fc-muted); }
.word-limit-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; }
.word-limit-grid label { display: grid; gap: .35rem; font-weight: 700; }
.word-limit-grid label span { color: var(--fc-muted); font-size: .82rem; font-weight: 500; }
.assessment-builder-checks .checkbox-row { align-items: flex-start; min-width: min(100%, 260px); }
.assessment-builder-checks .checkbox-row > span { display: grid; gap: .15rem; }
.assessment-builder-checks .checkbox-row small { color: var(--fc-muted); font-weight: 500; line-height: 1.45; }
@media (max-width: 800px) { .word-limit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .word-limit-grid { grid-template-columns: 1fr; } }

/* Simulazioni e campioni linguistici: istruzioni leggibili e accessibilità discreta. */
.assistive-tools {
    margin: .85rem 0 1rem;
    padding: .8rem 1rem;
    border: 1px solid var(--fc-border);
    border-radius: 12px;
    background: #f8fafc;
}
.assistive-tools summary { cursor: pointer; font-weight: 750; color: var(--fc-blue-dark); }
.assistive-tools p { margin: .65rem 0; color: var(--fc-muted); }
.simulation-start-form { display: grid; gap: .85rem; margin-top: auto; padding-top: 1rem; }
.answer-requirements { display: flex; flex-wrap: wrap; gap: .45rem .9rem; margin: .15rem 0 .6rem; color: var(--fc-muted); font-size: .9rem; }
.answer-requirements span { display: inline-flex; gap: .25rem; }
.answer-counter { min-height: 1.45rem; color: var(--fc-muted); font-size: .9rem; }
.answer-counter.is-short { color: #9a3412; }
.answer-counter.is-good { color: #087443; }
.answer-counter.is-long { color: #b42318; }
.answer-counter.is-muted { color: var(--fc-muted); }
.answer-dont-know { margin-top: .85rem; padding: .85rem 1rem; border: 1px solid var(--fc-border); border-radius: 12px; background: #fbfcfe; }
.answer-dont-know > span { display: grid; gap: .15rem; }
.answer-dont-know small { color: var(--fc-muted); font-weight: 500; }
[data-open-answer].is-dont-know { padding: .9rem; border: 1px solid #f0c36b; border-radius: 14px; background: #fff9ea; }
[data-open-answer].is-dont-know textarea { opacity: .55; }
.simulation-mode-card > div { display: grid; gap: .2rem; }
.simulation-mode-card span { color: var(--fc-muted); }
.language-action-banner > div { display: grid; gap: .15rem; }
.language-action-banner span { color: var(--fc-muted); }
