/* 共通 */
.moba-wrap { max-width: 720px; margin: 0 auto; padding: 24px 16px; font-family: 'Yu Gothic UI','Hiragino Sans',sans-serif; }
.moba-btn { display: inline-block; background: #7C4F1E; color: #fff; border: none; border-radius: 6px; padding: 14px 32px; font-size: 1em; cursor: pointer; transition: background .2s; }
.moba-btn:hover { background: #5a3210; }
.moba-error { color: #c00; font-size: .9em; }
.moba-loading { text-align: center; padding: 40px; color: #888; }

/* ログイン */
.moba-login-box { background: #F4F0EA; border: 2px solid #7C4F1E; border-radius: 12px; padding: 40px; max-width: 420px; margin: 40px auto; }
.moba-login-header { text-align: center; margin-bottom: 28px; }
.moba-login-label { font-size: .8em; letter-spacing: .2em; color: #7C4F1E; margin: 0 0 4px; }
.moba-login-header h2 { margin: 0 0 6px; color: #1E1A14; }
.moba-login-level { font-size: .85em; color: #6B5E4E; margin: 0; }
.moba-field { margin-bottom: 16px; }
.moba-field label { display: block; font-size: .85em; margin-bottom: 6px; color: #444; }
.moba-field input { width: 100%; padding: 10px 12px; border: 1px solid #C49A5A; border-radius: 6px; font-size: 1em; box-sizing: border-box; }
#moba-login-form .moba-btn { width: 100%; margin-top: 8px; }

/* プログレス */
.moba-exam-header { margin-bottom: 24px; }
.moba-progress-bar { background: #e8e0d5; border-radius: 4px; height: 8px; overflow: hidden; }
.moba-progress-fill { background: #7C4F1E; height: 100%; transition: width .4s; }
#moba-progress-text { text-align: right; font-size: .85em; color: #888; margin: 6px 0 0; }

/* 問題 */
.moba-question-box { background: #fff; border-radius: 10px; padding: 24px; box-shadow: 0 2px 8px rgba(0,0,0,.06); }
.moba-question-text { font-size: 1.15em; line-height: 1.7; margin: 0 0 20px; color: #1E1A14; }
.moba-choices { display: flex; flex-direction: column; gap: 10px; }
.moba-choice-btn { display: flex; align-items: center; gap: 12px; background: #F9F6F1; border: 2px solid #e0d5c8; border-radius: 8px; padding: 14px 16px; cursor: pointer; text-align: left; font-size: 1em; transition: border-color .15s, background .15s; }
.moba-choice-btn:hover:not(:disabled) { border-color: #7C4F1E; background: #F4EDE3; }
.moba-choice-btn:disabled { cursor: default; }
.moba-choice-key { font-weight: bold; color: #7C4F1E; min-width: 20px; }
.moba-choice-text { color: #1E1A14; }
.moba-correct { border-color: #2a9d2a !important; background: #edf7ed !important; }
.moba-wrong   { border-color: #c00 !important; background: #fdecea !important; }

/* フィードバック */
.moba-feedback { border-radius: 8px; padding: 16px; margin-bottom: 16px; }
.moba-feedback-correct { background: #edf7ed; border-left: 4px solid #2a9d2a; }
.moba-feedback-wrong   { background: #fdecea; border-left: 4px solid #c00; }
.moba-feedback-result { font-weight: bold; margin: 0 0 8px; }
.moba-feedback-exp { margin: 0; font-size: .92em; color: #444; line-height: 1.6; }
#moba-next-btn { margin-top: 8px; }

/* 結果 */
.moba-result-pass, .moba-result-fail { text-align: center; padding: 32px 0; }
.moba-result-badge { font-size: 3em; margin-bottom: 12px; }
.moba-result-score { font-size: 1.4em; font-weight: bold; color: #7C4F1E; }

/* 合格証 */
.moba-certificate { background: #F4F0EA; border: 6px double #7C4F1E; border-radius: 4px; padding: 40px; margin: 24px auto; max-width: 540px; text-align: center; }
.moba-cert-inner { border: 1px solid #C49A5A; padding: 32px; }
.moba-cert-sub { font-size: .75em; letter-spacing: .25em; color: #7C4F1E; margin: 0 0 4px; }
.moba-cert-title { font-size: 2em; letter-spacing: .15em; color: #1E1A14; margin: 0 0 20px; font-family: 'Yu Mincho','Hiragino Mincho ProN',serif; }
.moba-cert-seal { width: 80px; height: 80px; border-radius: 50%; background: radial-gradient(#9d6528, #5a3210); display: flex; flex-direction: column; align-items: center; justify-content: center; margin: 0 auto 24px; color: #fff; font-size: 1.6em; line-height: 1.2; }
.moba-cert-seal small { font-size: .4em; letter-spacing: .1em; }
.moba-cert-body { margin: 0 0 6px; color: #1E1A14; }
.moba-cert-body-bold { font-weight: bold; font-size: 1.05em; margin: 0 0 20px; }
.moba-cert-date { font-size: .85em; color: #6B5E4E; margin: 0 0 16px; }
.moba-cert-footer { font-size: .8em; letter-spacing: .1em; color: #7C4F1E; margin: 0; }
.moba-cert-footer-ja { font-size: .75em; color: #9E8E7E; margin: 2px 0 0; }
.moba-btn-print { margin-top: 16px; background: #555; }
.moba-btn-print:hover { background: #333; }

/* 受験時間外 */
.moba-closed-box { text-align: center; background: #F4F0EA; border: 2px solid #7C4F1E; border-radius: 12px; padding: 48px 32px; max-width: 480px; margin: 40px auto; }
.moba-closed-icon { font-size: 2.5em; margin: 0 0 12px; }
.moba-closed-table { margin: 16px auto; border-collapse: collapse; }
.moba-closed-table th, .moba-closed-table td { padding: 8px 16px; border: 1px solid #C49A5A; }
.moba-closed-table th { background: #e8ddd0; }

/* 印刷 */
@media print {
  .moba-btn, .moba-exam-header, #moba-next-btn, .moba-result-badge, h2 { display: none !important; }
  .moba-certificate { border: 4px double #7C4F1E; page-break-inside: avoid; }
}
