/* 2026-10-19: サービス終了に向けて足した画面（終了告知のトップ・返金申請・返金管理）の見た目。application.css の後に読む。 */

/* ヘッダー（ログイン前） */
.header_logo_public { display: flex; align-items: center; justify-content: space-between; padding: 14px 0; }
.header_logo_public img { height: 40px; width: auto; }
.header_login_btn { font-size: 14px; padding: 6px 18px; }
.nav_signout form { display: inline; }
.nav_signout .btn-link { padding: 0; color: inherit; font-size: inherit; }

/* 終了告知のトップページ */
.closure-hero { text-align: center; padding: 56px 16px 40px; }
.closure-hero .closure-badge { display: inline-block; font-size: 13px; letter-spacing: .12em; color: #a94442; border: 1px solid #a94442; border-radius: 999px; padding: 4px 14px; margin-bottom: 18px; }
.closure-hero h1 { font-size: 30px; font-weight: 700; line-height: 1.5; margin: 0 0 14px; }
.closure-hero p { font-size: 16px; line-height: 1.9; max-width: 720px; margin: 0 auto 10px; }
.closure-hero .closure-dates { margin: 24px auto 0; max-width: 560px; }
.closure-hero .closure-dates table { width: 100%; border-collapse: collapse; }
.closure-hero .closure-dates th, .closure-hero .closure-dates td { padding: 10px 12px; border-bottom: 1px solid #e5e5e5; text-align: left; font-size: 15px; }
.closure-hero .closure-dates th { width: 42%; color: #555; font-weight: 600; }
.closure-cta { text-align: center; margin: 28px 0 8px; }
.closure-cta .btn { font-size: 17px; padding: 12px 36px; margin: 6px; }
.closure-cta .closure-cta-note { font-size: 13px; color: #666; margin-top: 10px; }

.closure-section { padding: 36px 0; border-top: 1px solid #eee; }
.closure-section h2 { font-size: 22px; font-weight: 700; text-align: center; margin: 0 0 26px; }
.closure-section h3 { font-size: 17px; font-weight: 700; margin: 22px 0 8px; }
.closure-section p, .closure-section li { font-size: 15px; line-height: 1.9; }
.closure-steps { counter-reset: step; list-style: none; padding: 0; max-width: 760px; margin: 0 auto; }
.closure-steps li { position: relative; padding: 0 0 18px 56px; }
.closure-steps li::before { counter-increment: step; content: counter(step); position: absolute; left: 0; top: 0; width: 40px; height: 40px; border-radius: 50%; background: #2b6cb0; color: #fff; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.closure-steps li strong { display: block; font-size: 16px; margin-bottom: 2px; }
.closure-faq { max-width: 820px; margin: 0 auto; }
.closure-faq dt { font-weight: 700; margin-top: 18px; padding-left: 1.8em; text-indent: -1.8em; }
.closure-faq dt::before { content: "Q."; color: #2b6cb0; margin-right: .5em; }
.closure-faq dd { margin: 6px 0 0 1.8em; }
.closure-history { max-width: 820px; margin: 0 auto; color: #444; }
.closure-contact { background: #f7f9fb; border-radius: 10px; padding: 24px; max-width: 640px; margin: 0 auto; text-align: center; }
.closure-contact .closure-contact-tel { font-size: 24px; font-weight: 700; letter-spacing: .04em; }
.closure-contact small { display: block; color: #666; }

/* 返金申請・ポイント残高（利用者） */
.refund-status-steps { display: flex; justify-content: space-between; list-style: none; padding: 0; margin: 18px 0 26px; max-width: 620px; }
.refund-status-steps li { flex: 1; text-align: center; font-size: 13px; color: #999; position: relative; padding-top: 30px; }
.refund-status-steps li::before { content: ""; position: absolute; top: 6px; left: 50%; width: 16px; height: 16px; margin-left: -8px; border-radius: 50%; background: #ddd; }
.refund-status-steps li::after { content: ""; position: absolute; top: 13px; left: 50%; right: -50%; height: 2px; background: #ddd; z-index: -1; }
.refund-status-steps li:last-child::after { display: none; }
.refund-status-steps li.is-done { color: #2b6cb0; }
.refund-status-steps li.is-done::before, .refund-status-steps li.is-done::after { background: #2b6cb0; }
.refund-status-steps li.is-current { color: #222; font-weight: 700; }
.refund-status-steps li.is-current::before { background: #2b6cb0; box-shadow: 0 0 0 4px #cfe0f5; }
.refund-card { border: 1px solid #e3e3e3; border-radius: 10px; padding: 22px 26px; margin-bottom: 22px; background: #fff; }
.refund-card h3 { font-size: 17px; font-weight: 700; margin: 0 0 12px; }
.refund-card table th { width: 34%; color: #555; font-weight: 600; padding: 8px 6px; vertical-align: top; }
.refund-card table td { padding: 8px 6px; }
.refund-amount { font-size: 28px; font-weight: 700; }
.refund-note { font-size: 13px; color: #666; }
.refund-confirm table { width: 100%; }
.refund-confirm th { width: 32%; }
.refund-form .form-group { margin-bottom: 1rem; }
.refund-form .form-text { font-size: 12px; }

/* 返金管理（管理者） */
.admin-filters { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 14px; }
.admin-filters .btn { font-size: 13px; }
.admin-summary { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 18px; }
.admin-summary .admin-summary-item { flex: 1 1 150px; border: 1px solid #e3e3e3; border-radius: 8px; padding: 12px 14px; background: #fff; }
.admin-summary .admin-summary-item .label { font-size: 12px; color: #666; }
.admin-summary .admin-summary-item .value { font-size: 20px; font-weight: 700; }
.admin-summary .admin-summary-item .sub { font-size: 12px; color: #888; }
table.admin-table { font-size: 13px; }
table.admin-table th { white-space: nowrap; }
table.admin-table td.num { text-align: right; white-space: nowrap; }
.badge-status-10 { background: #f0ad4e; color: #fff; }
.badge-status-20 { background: #5cb85c; color: #fff; }
.badge-status-none { background: #ddd; color: #333; }
.admin-log { font-size: 13px; }
.admin-log time { color: #666; margin-right: 8px; }
.admin-log .kind { display: inline-block; min-width: 5em; color: #2b6cb0; font-weight: 600; }
.admin-log pre { white-space: pre-wrap; font-family: inherit; margin: 2px 0 10px 0; }

@media (max-width: 767px) {
  .closure-hero h1 { font-size: 24px; }
  .refund-status-steps { font-size: 11px; }
  .admin-summary .admin-summary-item { flex-basis: 100%; }
}

/* 規約などの静的ページ */
.legal-page .legal-note { background: #fff7e6; border: 1px solid #f0d9a8; border-radius: 6px; padding: 10px 14px; font-size: 14px; }
.legal-body h2 { font-size: 19px; font-weight: 700; margin: 30px 0 10px; padding-bottom: 6px; border-bottom: 1px solid #ddd; }
.legal-body h3 { font-size: 16px; font-weight: 700; margin: 20px 0 6px; }
.legal-body p, .legal-body li { font-size: 14px; line-height: 1.9; margin: 0 0 8px; }
.legal-body ul.legal-list { padding-left: 1.4em; }
