/* Loaded AFTER Spirit and the prefixed site stylesheet. No component reset. */
.spirit .compact-active-topics { font-size: 13px; line-height: 1.55; }
.spirit .compact-active-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 20px; margin: 0; padding: 0; }
.compact-active-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 6em) 3.5em max-content; align-items: baseline; gap: 8px; min-width: 0; padding: 6px 0; border-bottom: 1px dotted #e1e5e1; }
.spirit .compact-active-row a { color: #174f7a; text-decoration: none; }
.spirit .compact-active-row a:hover { text-decoration: underline; }
.spirit .compact-active-title, .spirit .compact-active-category { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.spirit .compact-active-title { font-size: 13px; font-weight: normal; }
.compact-active-category, .compact-active-count, .compact-active-date { font-size: 11px; }
.compact-active-count, .compact-active-date { color: #727272; white-space: nowrap; }
.compact-active-count { text-align: right; }
.compact-active-empty { grid-column: 1 / -1; }
@media (max-width: 767px) { .spirit .compact-active-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 479px) { .compact-active-row { grid-template-columns: minmax(0, 1fr) minmax(0, 4em) 3em max-content; gap: 4px; } }
.spirit_wrapper { background: #f5f6f7; font-family: system-ui, "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif; }
.spirit .layout { box-sizing: border-box; width: calc(100% - 48px); max-width: 1200px; margin-inline: auto; padding: 16px; background: #fff; }
.spirit input, .spirit textarea, .spirit button, .spirit select { font-family: inherit; max-width: 100%; }
.spirit .layout__article { min-width: 0; }
.spirit .headline, .spirit .comment__text, .spirit .topic__title { overflow-wrap: anywhere; }
.spirit .comment__text img, .spirit .comment__text video, .spirit .comment__text iframe { max-width: 100%; }
.spirit .comment__text pre { max-width: 100%; overflow-x: auto; }
.spirit :focus-visible { outline: 3px solid #8b2742; outline-offset: 3px; }
.spirit .site-forum-tools { min-height: 0; margin-bottom: 12px; }
.site-forum-anchor { scroll-margin-top: 16px; }
@media (max-width: 767px) { .spirit .layout { width: calc(100% - 32px); padding: 12px; } }
@media (max-width: 359px) { .spirit .layout { width: calc(100% - 24px); padding: 8px; } }
/* Phase 2B: traditional directory, board columns and reading; forum scoped. */
.spirit .classic-forum { color: #25332c; font-size: 14px; line-height: 1.6; }
.spirit .classic-forum a { color: #175c46; }
.spirit .classic-forum a:hover { text-decoration: underline; }
.spirit .classic-forum .headline { font-size: 21px; margin: 10px 0; line-height: 1.5; }
.classic-breadcrumbs { display: flex; flex-wrap: wrap; gap: 5px 9px; font-size: 13px; padding: 5px 0; overflow-wrap: anywhere; }
.classic-breadcrumbs a { text-decoration: underline; }
.classic-note { color: #59675f; font-size: 12px; margin: 5px 0 10px; overflow-wrap: anywhere; }
.classic-section { border: 1px solid #cbd5ce; margin: 10px 0; }
.classic-section h2 { font-size: 15px; background: #edf3ee; border-bottom: 1px solid #cbd5ce; padding: 5px 9px; margin: 0; }
.classic-kind { font-size: 11px; font-weight: normal; color: #59675f; margin-left: 10px; }
.classic-board-directory, .classic-topic-list { list-style: none; padding: 0; margin: 0; }
.classic-board-directory li { display: grid; grid-template-columns: minmax(150px,1fr) minmax(0,2fr) minmax(130px,1fr); align-items: baseline; gap: 7px; border-bottom: 1px dotted #dbe2dd; padding: 5px 9px; }
.classic-board-directory li:last-child { border-bottom: 0; }
.classic-board-name { font-size: 14px; overflow-wrap: anywhere; text-decoration: underline; }
.classic-board-description, .classic-board-activity { font-size: 11px; color: #617067; overflow-wrap: anywhere; }
.classic-standalone, .classic-empty { padding: 8px 9px; margin: 0; color: #617067; }
.classic-board-tools { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px; font-size: 12px; padding: 7px 0; }
.classic-topic-columns, .classic-topic-row { display: grid; grid-template-columns: minmax(0,1fr) minmax(64px,100px) 130px 60px 60px minmax(64px,100px); gap: 10px; padding: 1px 9px; align-items: baseline; }
.classic-topic-columns { background: #edf3ee; border-block: 1px solid #cbd5ce; font-size: 12px; }
.classic-topic-row { border-bottom: 1px solid #e2e7e3; }
.classic-topic-row:nth-child(even) { background: #fafcf9; }
.classic-topic-subject { min-width: 0; overflow-wrap: anywhere; }
.classic-topic-subject > a { text-decoration: underline; }
.classic-topic-subject small { display: block; font-size: 11px; }
.classic-topic-author, .classic-topic-replies, .classic-topic-views, .classic-topic-date, .classic-topic-last-reply { font-size: 12px; overflow-wrap: anywhere; }
.classic-topic-last-reply { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.classic-status { display: inline-block; font-size: 10px; color: #8b2742; border: 1px solid #ded0d4; padding: 0 3px; margin-right: 3px; }
.classic-mobile-label { display: none; }
.classic-pagination { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 12px 0; font-size: 13px; }
.classic-pagination a { padding: 5px 8px; border: 1px solid #cbd5ce; }
.classic-thread-meta { display: flex; flex-wrap: wrap; gap: 5px; color: #59675f; font-size: 12px; }
.spirit .classic-thread .comments_list__comment { border: 1px solid #cbd5ce; padding: 0 10px 8px; margin: 12px 0; }
.classic-post-heading { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; background: #edf3ee; border-bottom: 1px solid #cbd5ce; padding: 5px 8px; margin: 0 -10px 8px; font-size: 12px; overflow-wrap: anywhere; }
.classic-floor { font-weight: bold; text-decoration: underline; }
.spirit .classic-thread .comment__text { font-size: 15px; line-height: 1.8; overflow-wrap: anywhere; }
.spirit .classic-thread .comment__text pre { white-space: pre; overflow-x: auto; }
.spirit .classic-thread .comment__text blockquote { border-left: 3px solid #b7c9bc; background: #f5f8f5; padding: 8px; }
.spirit .classic-thread .comments_list__item { padding: 8px 10px; }
.classic-thread-return { margin: 10px 0; }
.spirit .classic-thread .classic-topic-navigation { display: grid; grid-template-columns: minmax(0, 1fr) max-content minmax(0, 1fr); grid-template-rows: auto; align-items: center; gap: 8px; width: 100%; margin: 10px 0; padding: 0; font-size: 13px; }
.spirit .classic-thread .classic-topic-navigation::before, .spirit .classic-thread .classic-topic-navigation::after { content: none; }
.spirit .classic-topic-navigation > .classic-topic-previous { grid-column: 1; grid-row: 1; }
.spirit .classic-topic-navigation > .classic-back-board { grid-column: 2; grid-row: 1; justify-self: center; width: auto; white-space: nowrap; }
.spirit .classic-topic-navigation > .classic-topic-next { grid-column: 3; grid-row: 1; }
.spirit .classic-topic-navigation > span { display: block; min-width: 0; width: auto; overflow: hidden; }
.spirit .classic-topic-navigation .classic-topic-previous > a, .spirit .classic-topic-navigation .classic-topic-next > a, .spirit .classic-topic-navigation .classic-topic-disabled { display: flex; align-items: center; gap: 6px; width: 100%; min-width: 0; white-space: nowrap; }
.spirit .classic-topic-navigation a > span, .spirit .classic-topic-navigation .classic-topic-disabled > span { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.spirit .classic-topic-navigation i { flex: 0 0 auto; }
.spirit .classic-topic-next > a, .spirit .classic-topic-next > .classic-topic-disabled { justify-content: flex-end; }
.spirit .classic-topic-navigation .classic-topic-disabled { color: #888; cursor: default; }
@media(max-width:767px) {
  .classic-board-directory li { grid-template-columns: minmax(0,1fr); gap: 2px; padding: 7px 9px; }
  .classic-board-name { display: flex; align-items: center; min-height: 44px; }
  .classic-topic-columns { display: none; }
  .classic-topic-row { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 3px 8px; padding-block: 1px; }
  .classic-topic-subject { grid-column: 1 / -1; }
  .classic-topic-subject > a { display: inline-block; padding-block: 7px; }
  .classic-topic-author, .classic-topic-date, .classic-topic-last-reply { grid-column: 1 / -1; }
  .classic-mobile-label { display: inline; }
  .classic-breadcrumbs a, .classic-pagination a, .classic-back-board { min-height: 44px; display: inline-flex; align-items: center; }
  .classic-post-heading { justify-content: flex-start; }
  .spirit .classic-thread .comment__img { display: none; }
  .spirit .classic-thread .comment__info { margin-left: 0; }
  .spirit .classic-thread .comment__actions a { display: inline-flex; align-items: center; min-height: 44px; }
}
/* Explicit named grid area keeps floor metadata above the upstream post grid. */
.spirit .classic-breadcrumbs { display: flex; flex-wrap: wrap; gap: 5px 9px; }
.spirit .classic-thread .comments_list__comment { grid-template: "fh fh" auto "im io" auto "im tx" auto "ac ac" auto / 50px minmax(0,1fr); gap: 8px; }
.spirit .classic-thread .classic-post-heading { grid-area: fh; display: flex; flex-wrap: wrap; justify-content: space-between; margin: 0 -10px; }
.spirit .classic-thread .comments_list__item .classic-post-heading { flex: 1 1 100%; margin-bottom: 8px; }
.spirit .classic-board-description, .spirit .classic-board-activity { font-size: 12px; }
.spirit .classic-directory-shortcuts { display: flex; flex-wrap: wrap; gap: 5px 12px; font-size: 13px; margin: 8px 0; }
@media(max-width:767px) {
  .spirit .classic-thread .comments_list__comment { grid-template: "fh" auto "io" auto "tx" auto "ac" auto / minmax(0,1fr); }
  .spirit .classic-directory-shortcuts a { display: inline-flex; align-items: center; min-height: 44px; }
}
/* Category tabs use ordinary links so selection survives reloads without JavaScript. */
.spirit .classic-category-tabs { display: flex; flex-wrap: wrap; gap: 4px; border-bottom: 3px solid #34664d; padding: 8px 0 0; }
.spirit .classic-category-tabs a { display: inline-flex; align-items: center; min-height: 40px; padding: 6px 13px; background: #edf3ee; border: 1px solid #cbd5ce; border-bottom: 0; border-radius: 3px 3px 0 0; font-size: 13px; }
.spirit .classic-category-tabs a.is-active { color: #fff; background: #34664d; border-color: #34664d; font-weight: bold; }
.spirit .layout:has(> .classic-directory), .spirit .layout:has(> .classic-board) { display: block; height: auto; padding-top: 0; }
.spirit .layout:has(> .classic-directory) > .site-forum-tools, .spirit .layout:has(> .classic-board) > .site-forum-tools { min-height: 0; margin: 0; padding: 0; }
.spirit .classic-directory, .spirit .classic-board { margin-top: 0; padding-top: 0; }
.spirit .classic-directory > .classic-breadcrumbs, .spirit .classic-board > .classic-breadcrumbs { margin-top: 0; }
.spirit .classic-tab-boards { display: grid; grid-template-columns: repeat(6, minmax(0,1fr)); list-style: none; gap: 0 16px; margin: 0; padding: 8px 12px; }
.classic-tab-boards li { min-width: 0; border-bottom: 1px dotted #dbe2dd; }
.classic-tab-boards a { display: flex; align-items: center; min-height: 38px; font-size: 13px; }
.classic-area-highlights { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.classic-area-highlights .classic-section { min-width: 0; margin-top: 0; }
.spirit .classic-hot-list { list-style: decimal; margin: 0; padding: 4px 12px 4px 32px; }
.classic-hot-list li { border-bottom: 1px dotted #dbe2dd; padding: 7px 0; overflow-wrap: anywhere; }
.classic-hot-list li:last-child { border-bottom: 0; }
.classic-hot-meta { display: block; color: #617067; font-size: 12px; }
.classic-hot-topic-row { display: flex; align-items: baseline; gap: 8px; min-width: 0; }
.classic-hot-topic-row > .classic-hot-topic-title { display: block; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.classic-hot-topic-row .classic-hot-meta { flex-shrink: 0; white-space: nowrap; }
@media(max-width:767px) {
  .spirit .classic-tab-boards { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 10px; }
  .classic-area-highlights { grid-template-columns: minmax(0,1fr); gap: 8px; }
  .spirit .classic-category-tabs a, .classic-tab-boards a, .classic-hot-list a { min-height: 44px; }
  .classic-hot-list a { display: inline-flex; align-items: center; }
}

/* Compact B2 controls; confirmation works without JavaScript. */
.classic-moderation { display:flex; flex-wrap:wrap; gap: .35rem .65rem; padding:.35rem .5rem; margin:.4rem 0; background:#f1f4f7; border-top:1px solid #bcc8d4; border-bottom:1px solid #bcc8d4; font-size:.875rem; }
.classic-moderation a:focus-visible, .moderation-confirm a:focus-visible { outline:2px solid #17477b; outline-offset:3px; }
.moderation-fields input[type=text], .moderation-fields textarea { max-width:100%; width: min(28rem,100%); box-sizing:border-box; }
.moderation-confirm form { max-width:40rem; }
.classic-moderation details, .classic-moderation form { min-width:0; max-width:100%; }

/* Let compact action links wrap as whole labels on narrow screens. */
.spirit .classic-thread .comment__actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:4px 12px; }
.spirit .classic-thread .comment__actions li { flex:0 0 auto; }
.spirit .classic-thread .comment__actions a { white-space:nowrap; }

/* B3: bounded, plain-text reporting surfaces with the existing compact palette. */
.report-page { padding: 1rem; max-width: 100%; min-width: 0; }
.report-page .headline, .report-table th { background: #eaf2ec; padding: .4rem; }
.report-page p, .report-page dd { overflow-wrap: anywhere; }
.report-page dl { margin: .7rem 0; }
.report-page dt { font-weight: bold; }
.report-page dd { margin: 0 0 .4rem; }
.report-page form p { margin: .6rem 0; }
.report-page input, .report-page select, .report-page textarea { max-width: 100%; border: 1px solid #bccdc4; padding: .3rem; }
.report-page textarea { display: block; width: 100%; }
.report-plaintext { white-space: pre-wrap; overflow-wrap: anywhere; }
.report-tabs { display: flex; flex-wrap: wrap; gap: .7rem; margin: .7rem 0; }
.report-table { width: 100%; table-layout: fixed; font-size: .875rem; border-collapse: collapse; }
.report-table th, .report-table td { padding: .35rem; border-bottom: 1px solid #d9e5dd; overflow-wrap: anywhere; text-align: left; }
.report-page a:focus-visible, .report-page button:focus-visible { outline: 2px solid #165f46; outline-offset: 2px; }
@media (max-width: 640px) { .report-page { padding: .6rem; } .report-table { font-size: .75rem; } .report-table th, .report-table td { padding: .15rem; } }
.report-page .headline { font-size: 1.25rem; line-height: 1.5; margin: .4rem 0 .8rem; }
.report-page .errorlist { color: #a52222; }
.report-action-confirm { margin: .6rem 0; }
.report-action-buttons { display: flex; flex-wrap: wrap; gap: .4rem; margin: .4rem 0; }

/* Collapse by rendered height, preserving complete Markdown and media markup. */
.spirit .comment-preview.is-collapsed { max-height: 20rem; overflow: hidden; }
.spirit .comment-expand, .spirit .comment__text details > summary { display: block; margin: .5rem 0 0; padding: .25rem .5rem; background: #edf3ee; border: 1px solid #cbd5ce; color: #165f46; cursor: pointer; font: inherit; }
.spirit .comment-expand[hidden] { display: none; }
.spirit .comment-expand:focus-visible, .spirit .comment__text details > summary:focus-visible { outline: 2px solid #165f46; outline-offset: 3px; }

/* Text expansion control follows the compact blue link reference. */
.spirit .comment-expand, .spirit .comment__text details > summary { padding: 0; border: 0; background: transparent; color: #06f; font-weight: bold; }
.spirit .comment__text details > summary { list-style: none; }
.spirit .comment__text details > summary::-webkit-details-marker { display: none; }
.spirit .comment-expand::after, .spirit .comment__text details > summary::after { content: ""; display: inline-block; width: .4em; height: .4em; margin-left: .5em; border: solid currentColor; border-width: 0 1px 1px 0; transform: translateY(-.15em) rotate(45deg); }
.spirit .comment-expand[aria-expanded="true"]::after, .spirit .comment__text details[open] > summary::after { transform: translateY(.1em) rotate(225deg); }

/* Reply composer tools should look active, rather than disabled. */
.spirit .comment-publish-page .comment__reply__actions__list a { color: #244f40; }
.spirit .comment-publish-page .comment__reply__actions__list a:hover { color: #102c22; }
.spirit .comment-publish-page .comment__reply__actions__list a:focus-visible { color: #102c22; outline: 2px solid #244f40; outline-offset: 3px; }

/* Size reply pages to content instead of stretching the form row to the viewport. */
.spirit_wrapper:has(.comment-publish-page),
.spirit_wrapper:has(.classic-thread) { height: auto; grid-template-rows: auto auto auto; }
.spirit .layout:has(> .comment-publish-page),
.spirit .layout:has(> .classic-thread) { height: auto; grid-template-rows: auto auto auto; row-gap: 12px; }
.spirit .comment-publish-page .js-reply { margin-bottom: 0; }

.economy-page{max-width:960px;overflow-wrap:anywhere}.economy-table-wrap{max-width:100%;overflow-x:auto}.economy-page input:not([type=checkbox]):not([type=hidden]),.economy-page select{max-width:100%;box-sizing:border-box}.economy-level{font-size:.85em;color:#526785}.economy-profile{padding:12px 0}.economy-profile progress{max-width:100%;width:240px}

/* Small-screen reading and controls without shrinking or horizontal scrolling. */
@media(max-width:767px) {
 .spirit .classic-thread .comment__text { font-size:16px; line-height:1.85; }
 .spirit .classic-topic-subject > a { font-size:16px; line-height:1.6; }
 .spirit .js-reply textarea, .spirit .js-reply input:not([type=hidden]) { font-size:16px; }
 .spirit .classic-thread .comment__actions a { display:inline-flex; align-items:center; min-height:44px; }
}

.spirit .video-upload-status { font-size:13px; line-height:1.6; overflow-wrap:anywhere; }.spirit .comment__text video,.spirit .js-box-preview-content video { display:block; max-width:100%; max-height:70vh; height:auto; }

.spirit .video-upload-disabled { display:inline-flex; align-items:center; justify-content:center; min-width:32px; min-height:32px; opacity:.4; cursor:not-allowed; }

/* Public tip receipts stay below the body, outside collapsed comment text. */
.spirit .classic-thread .post-tips { grid-column:2; min-width:0; margin:12px 0 16px; padding:12px 14px; border:1px solid #dbe8de; border-radius:10px; background:#f5faf6; }
.spirit .post-tips h3 { display:flex; align-items:center; gap:7px; font-size:12px; font-weight:600; line-height:1.6; color:#42644e; margin:0 0 7px; }
.spirit .post-tips h3 i { color:#a67a30; }
.spirit .post-tips ul { display:grid; gap:5px; margin:0; padding:0; list-style:none; }
.spirit .post-tips li { display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 7px; font-size:13px; line-height:1.7; overflow-wrap:anywhere; }
.spirit .post-tips a { color:#18634b; text-decoration:none; }
.spirit .post-tips a:hover { text-decoration:underline; }
.spirit .post-tips strong { color:#94621f; font-weight:600; }
.spirit .post-tips time,.spirit .post-tips p { font-size:11px; color:#7b887f; margin:0; }
.spirit .post-tips p { margin-top:7px; }
@media(max-width:767px) { .spirit .classic-thread .post-tips { grid-column:1; padding:10px 12px; } }
.spirit .classic-thread .comments_list__comment:has(> .post-tips) { grid-template:"fh fh" auto "im io" auto "im tx" auto "im tp" auto "ac ac" auto / 50px minmax(0,1fr); }
.spirit .classic-thread .post-tips { grid-area:tp; margin:0 0 4px; }
@media(max-width:767px) { .spirit .classic-thread .comments_list__comment:has(> .post-tips) { grid-template:"fh" auto "io" auto "tx" auto "tp" auto "ac" auto / minmax(0,1fr); } }
.spirit .classic-topic-tip { margin:8px 0; font-size:13px; }
.spirit .classic-topic-tip a { display:inline-flex; align-items:center; min-height:36px; color:#18634b; }

.classic-topic-category { display:inline; margin-left:6px; font-size:11px; white-space:nowrap; }
