/**
 * question-types.css - 設問形式固有のスタイル（Web専用）
 *
 * 各設問形式テンプレートで使用する追加スタイル
 * common.cssと併用して使用
 * @media print ルールは一切含まない
 */

/* ========================================
   式と答え形式 (formula-answer)
   ======================================== */
.question-formula-answer .answer-fields,
.response-formula .answer-fields {
    margin-top: var(--spacing-lg);
}

.question-formula-answer .field-row,
.response-formula .field-row {
    display: flex;
    align-items: center;
    margin: var(--spacing-md) 0;
}

/* ========================================
   選択肢グリッド形式 (multiple-choice-grid)
   ======================================== */
.question-multiple-choice-grid .choices-grid,
.response-choice.layout-grid .choices-grid {
    margin: var(--spacing-md) 0;
}

.question-multiple-choice-grid .choice-label,
.response-choice.layout-grid .choice-label {
    font-weight: bold;
    margin-right: 0.3em;
}

/* ========================================
   選択肢縦並び形式 (multiple-choice-vertical)
   ======================================== */
.question-multiple-choice-vertical .choices-vertical,
.response-choice.layout-vertical .choices-vertical {
    margin: var(--spacing-md) 0;
    padding-left: var(--spacing-lg);
}

.question-multiple-choice-vertical .choice-label,
.response-choice.layout-vertical .choice-label {
    font-weight: bold;
}

/* ========================================
   選択肢横並び形式 (multiple-choice-inline)
   ======================================== */
.question-multiple-choice-inline .choices-inline,
.response-choice.layout-inline .choices-inline {
    margin: var(--spacing-md) 0;
}

/* ========================================
   自由記述形式 (free-text)
   ======================================== */
.question-free-text .answer-space,
.response-long .answer-space {
    margin-top: var(--spacing-lg);
}

/* 罫線付き解答欄 */
.question-free-text .answer-lines,
.response-long .answer-lines {
    margin-top: var(--spacing-md);
}

.question-free-text .answer-line,
.response-long .answer-line {
    border-bottom: 1px solid var(--color-border-light);
    height: 1.8em;
    margin: 0;
}

/* ========================================
   図形問題形式 (geometry)
   ======================================== */
.question-geometry .question-with-figure,
.media-geometry .question-with-figure {
    display: flex;
    gap: var(--spacing-lg);
    align-items: flex-start;
}

.question-geometry .question-text-area,
.media-geometry .question-text-area {
    flex: 3;
}

.question-geometry .figure-area,
.media-geometry .figure-area {
    flex: 2;
    text-align: center;
    padding: var(--spacing-md);
}

.question-geometry .geometry-figure svg,
.media-geometry .geometry-figure svg {
    max-width: 100%;
    height: auto;
}

.question-geometry .dimension-info,
.media-geometry .dimension-info {
    font-size: var(--font-size-small);
    background: transparent;
    border: 1px solid var(--color-border-light);
    padding: var(--spacing-sm);
    margin: var(--spacing-sm) 0;
}

/* 2段組での図形問題対応（モバイル） */
@media screen and (max-width: 600px) {
    .questions-section:not(.single-column) .question-geometry .question-with-figure,
    .questions-section:not(.single-column) .media-geometry .question-with-figure {
        flex-direction: column;
    }

    .questions-section:not(.single-column) .question-geometry .figure-area,
    .questions-section:not(.single-column) .media-geometry .figure-area {
        width: 100%;
        max-width: 200px;
        margin: 0 auto;
    }
}

/* ========================================
   穴埋め形式 (fill-in-blank)
   ======================================== */
.question-fill-in-blank .choices-box,
.response-blank .choices-box {
    border: 1px solid var(--color-border);
    padding: var(--spacing-md);
    margin: var(--spacing-md) 0;
    background: transparent;
}

.question-fill-in-blank .choices-box-title,
.response-blank .choices-box-title {
    font-weight: bold;
    font-size: var(--font-size-small);
    margin-bottom: var(--spacing-sm);
}

.question-fill-in-blank .choices-box-content,
.response-blank .choices-box-content {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-lg);
}

.question-fill-in-blank .fill-in-text,
.response-blank .fill-in-text {
    line-height: 2;
}

.question-fill-in-blank .inline-answer-box,
.response-blank .inline-answer-box {
    display: inline-block;
    border: 1px solid var(--color-border);
    min-width: 2.5cm;
    height: 1.2em;
    vertical-align: middle;
    margin: 0 0.2em;
    background: transparent;
}

.question-fill-in-blank .blank-ref,
.response-blank .blank-ref {
    font-weight: bold;
    color: var(--color-text);
}

.question-fill-in-blank .blanks-list,
.response-blank .blanks-list {
    margin-top: var(--spacing-lg);
}

.question-fill-in-blank .blanks-list .field-row,
.response-blank .blanks-list .field-row {
    margin: var(--spacing-sm) 0;
}

/* ========================================
   短い解答欄
   ======================================== */
.field-line.short {
    min-width: 3cm;
}
