/* ─── Question Block ──────────────────────────────────────────────────────────
   Reuses: .brief-block hover/outline states, .controls-container, .control-bar,
           button.plain, tokens.css colours and typography.
   ─────────────────────────────────────────────────────────────────────────── */

/* Outer wrapper — matches .brief in gap rhythm */
.question-blocks-container {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* ─── Question action row (Add / Build buttons) ────────────────────────────── */

.question-action-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
}

/* ─── Questionnaire section labels ─────────────────────────────────────────── */

.questionnaire-section-label {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 4px 0 2px;
}

.questionnaire-section-label::after {
    content: '';
    flex: 1;
    height: 1px;
    background-color: var(--surface-border-placeholder, #E4E2DD);
}

/* ─── Appear animation for generated blocks ─────────────────────────────────── */

@keyframes question-block-appear {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0);   }
}

.question-block--appear {
    opacity: 0;
}

.question-block--visible {
    animation: question-block-appear 0.25s ease forwards;
}

/* ─── Build button loading spinner ──────────────────────────────────────────── */

@keyframes spin {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

.build-questionnaire-btn__spinner {
    animation: spin 0.9s linear infinite;
    display: inline-block;
}

/* ========================================= */


.question-block {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 20px;
    border-radius: 16px;
    outline: 0px dotted var(--surface-border-placeholder);
    position: relative;
    transition: all 0.3s ease;;
    margin-bottom: 24px; /* room for the floating controls-container */
}

.question-block:hover {
    outline: 1px dotted var(--surface-border-placeholder);
}

.question-block.editing-focus {
    outline: 1px solid var(--surface-border-placeholder);
    background-color: #ffffff02;
    /* box-shadow: 0 3px 8px 0 rgba(0, 0, 0, 0.07), 0 0 1px 0 rgba(0, 0, 0, 0.45); */
}

.question-block.out-of-focus {
    opacity: 0.3;
}

/* Locks content during AI review — functional, not a focus state */
.question-block.pending-review .question-text-row p,
.question-block.pending-review .question-header-row p,
.question-block.pending-review .question-option-row p {
    cursor: default;
    pointer-events: none;
}

/* ========================================= */

.question-header-row{
    display: flex;
    flex-direction: row;
    gap: 10px;
    overflow: hidden;
    transition: height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    outline: 0px solid var(--surface-border-placeholder);
    outline-style: dotted;
    cursor: text;
    transition: all 0.3s ease;
    padding: 10px 15px;
    border-radius: 6px;
    p {
        flex: 1;
        outline: none;
        width: 100%;
    }
}

.question-header-row .lh {
    display: flex;
    flex: 1;
    flex-direction: row;
    gap: 10px;
}

.question-header-row .rh {
    display: flex;
    flex: 1;
    flex-direction: row;
    gap: 10px;
}

/* If the block is in focus, the header should have a solid outline */
.question-block.editing-focus .question-header-row {
    outline: 1px dotted var(--surface-border-placeholder);
}

/* If the block is hovered, the header should have a dotted outline */
.question-block:hover:not(.editing-focus) .question-header-row {
    outline: 1px dotted var(--surface-border-placeholder);
}

/* If the header text element is in focus, the header should have a solid outline */
.question-header-row:focus-within {
    outline: 1px solid var(--surface-border-placeholder) !important;
    outline-style: solid !important;
}

/* ========================================= */


.question-text-row {
    display: flex;
    flex-direction: row;
    gap: 10px;
    overflow: hidden;
    transition: height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    outline: 0px solid var(--surface-border-placeholder);
    outline-style: dotted;
    cursor: text;
    transition: all 0.3s ease;
    padding: 10px 15px;
    border-radius: 6px;
    p {
        flex: 1;
        outline: none;
    }
}

.question-block.editing-focus .question-text-row,
.question-block:hover .question-text-row {
    outline: 1px dotted var(--surface-border-placeholder);
}


.question-text-row:focus-within {
    outline: 1px solid var(--surface-border-placeholder) !important;
    outline-style: solid !important;
}

/* ========================================= */

.question-options-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* ========================================= */

.question-option-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 10px;
    overflow: hidden;
    transition: height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    outline: 0px solid var(--surface-border-placeholder);
    outline-style: dotted;
    cursor: text;
    transition: all 0.3s ease;
    padding: 5px;
    border-radius: 6px;
    p {
        flex: 1;
        outline: none;
    }
}

.question-block.editing-focus .question-option-row,
.question-block:hover .question-option-row {
    outline: 1px dotted var(--surface-border-placeholder);
}


.question-option-row:focus-within {
    outline: 1px solid var(--surface-border-placeholder) !important;
    outline-style: solid !important;
}

/* ─── Option delete button — only visible on row hover ─────────────────────── */

.question-option-delete,
.question-option-add-image,
.question-option-add-below              { opacity: 0; pointer-events: none; transition: opacity 0.15s ease; }
.question-option-row:hover .question-option-delete,
.question-option-row:hover .question-option-add-image,
.question-option-row:hover .question-option-add-below { opacity: 1; pointer-events: auto; }

/* ─── Option drag handle swap ──────────────────────────────────────────────── */

.question-option-drag .icon-drag    { display: none; }
.question-option-drag .icon-default { display: inline; }

.question-block:hover .question-option-drag .icon-default { display: none; }
.question-block:hover .question-option-drag .icon-drag    { display: inline; cursor: grab; }

/* ========================================= */

[contenteditable][data-placeholder]:empty::before {
    content: attr(data-placeholder);
    color: var(--text-placeholder, #B0AAA2);
    pointer-events: none;
}