.footer-inner { flex-wrap: wrap; gap: 1.25rem; }
.footer-links { display: flex; flex-wrap: wrap; gap: .8rem 1.4rem; width: 100%; font-size: .9rem; line-height: 1.6; }
[hidden] { display: none !important; }
.reader-page { max-width: 900px; margin: 0 auto; padding: 3.5rem 1.5rem 5rem; color: #172b43; }
.reader-page h1 { font-size: clamp(2rem, 4.5vw, 3.25rem); letter-spacing: -.035em; line-height: 1.2; margin: .6rem 0 1.5rem; overflow-wrap: anywhere; }
.reader-page h2 { font-size: 1.4rem; line-height: 1.45; margin: 2rem 0 .9rem; }
.reader-page h3 { font-size: 1.05rem; line-height: 1.5; }
.reader-page p { font-size: 1rem; line-height: 1.85; }
.reader-page .reader-intro { font-size: 1.15rem; line-height: 1.8; max-width: 48rem; }
.reader-page > section { border-top: 1px solid #dce2e9; margin-top: 2rem; }
.reader-page a, .correction-link { color: #244fd7; text-underline-offset: .2em; overflow-wrap: anywhere; }
.reader-page .note, .reader-record-meta, .reader-page time { font-size: .875rem; line-height: 1.6; color: #53627a; }
.reader-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; padding: 1.5rem; border: 1px solid #dce2e9; border-radius: 14px; background: #fff; margin: 2rem 0; }
.reader-form > label:has(textarea), .reader-form-foot, .reader-form > p { grid-column: 1 / -1; }
.reader-form label, .reader-record label, .comment-report-form label { display: flex; flex-direction: column; gap: .5rem; min-width: 0; font-size: 1rem; line-height: 1.5; }
.reader-form select, .reader-form textarea, .reader-record textarea, .comment-report-form textarea { width: 100%; min-width: 0; box-sizing: border-box; padding: .75rem; border: 1px solid #bfcad8; border-radius: 7px; background: #fff; color: #172b43; font: inherit; font-size: 1rem; line-height: 1.6; }
.reader-form select { text-overflow: ellipsis; }
.reader-form textarea, .reader-record textarea, .comment-report-form textarea { resize: vertical; }
.reader-form-foot, .reader-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .7rem; }
.reader-form-foot { justify-content: space-between; }
.reader-form-foot span { font-size: .875rem; color: #53627a; }
.reader-page button, .reader-signin, .comment-report-form button { padding: .7rem 1rem; border: 1px solid #172b43; border-radius: 7px; background: #172b43; color: #fff; font: inherit; font-size: .95rem; line-height: 1.5; cursor: pointer; }
.reader-signin { display: inline-block; color: #fff !important; margin: .6rem 0 1.25rem; text-decoration: none; }
.reader-page button:disabled, .comment-report-form button:disabled { opacity: .55; cursor: default; }
.reader-page :focus-visible, .comment-report-form :focus-visible { outline: 3px solid #5272ec; outline-offset: 3px; }
.reader-record { background: #fff; padding: 1.4rem; margin: 1rem 0; border: 1px solid #dce2e9; border-radius: 12px; overflow-wrap: anywhere; }
.reader-record time { display: block; }
.reader-record .reader-message { white-space: pre-wrap; }
.reader-record .operator-reply { padding: 1rem; background: #f1f5fc; border-left: 3px solid #315ae5; }
.reader-record .reader-actions { margin-top: .8rem; }
.reader-record > a { display: block; margin-top: .6rem; }
.reader-contact-link { margin-top: 2.5rem; }
.reader-explanation p { line-height: 1.9; }
.reader-explanation { padding-bottom: .5rem; }
.comment-guidance { font-size: .9rem; line-height: 1.75; color: #53627a; }
.comment-delete, .comment-report, .vote-withdraw { border: 1px solid #c6d0de; border-radius: 6px; padding: .4rem .7rem; margin-right: .5rem; margin-top: .5rem; background: #fff; color: #243955; font: inherit; font-size: .875rem; cursor: pointer; }
.comment-report-form { display: block; width: 100%; margin-top: 1rem; padding: 1rem; background: #f4f6fa; border-radius: 7px; }
.comment-report-form button { margin: .8rem .5rem 0 0; }
.correction-link { display: block; font-size: .9rem; line-height: 1.6; margin-top: 1rem; }
.moderation-page small { display: inline-block; font-size: .9rem; font-weight: 400; color: #53627a; }
.reader-page .is-error { color: #a02622; }
.reader-page button:hover:not(:disabled), .reader-signin:hover { background: #29405d; }
@media (max-width: 600px) {
  .reader-page { padding: 2rem 1.1rem 3rem; }
  .reader-form { grid-template-columns: 1fr; padding: 1rem; }
  .reader-record { padding: 1rem; }
  .footer-links { gap: .7rem 1rem; }
  .reader-page button, .reader-signin { min-height: 44px; }
}
