/* Campus board: a restrained visual layer shared by desktop and phone layouts.
   Existing form, disclosure and keyboard contracts remain in mobile*.css. */
:root, body.public-site, body.local-admin-site {
  --bg:#f3f2ee; --card:#fff; --ink:#252f2c; --ink-soft:#4f5b56;
  --muted:#6d796f; --line:#e0e3dd; --brand:#245b50; --brand-deep:#17483e;
  --brand-soft:#edf4ef; --warm:#a05c24; --warm-soft:#faf2e4;
  --warn:#b0473a; --warn-soft:#fcf0ed; --radius:6px; --shadow:none;
}
body,.public-site { background:var(--bg); }
body { font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif; letter-spacing:0; }
h1,h2,h3 { letter-spacing:0; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline-color:#c48e3e; }
.topbar { background:#fff; border-top:3px solid var(--brand); box-shadow:none; }
.topbar-inner { max-width:1240px; min-height:74px; padding:12px 30px; gap:22px; }
.brand-mark,.public-site .brand-mark { background:var(--brand); box-shadow:none; border-radius:5px; width:36px; height:36px; }
.brand-mark .icon { width:23px; height:23px; }
.brand-copy strong { font-size:17px; letter-spacing:.5px; }
.brand small { font-size:10px; letter-spacing:1px; margin-top:2px; }
.public-site .nav>a { border-radius:3px; font-size:13px; padding:9px 11px; }
.public-site .nav>a[aria-current=page] { background:#edf3ef; color:var(--brand); box-shadow:none; }
.nav a .icon { color:#7b8981; }
.nav-more>summary { border-radius:3px; }
.nav-more-menu { border-radius:5px; border-color:var(--line); box-shadow:0 8px 28px #243b2f12; }
.nav .nav-more-menu>a { border-radius:3px; }
.account-nav .account-register { min-height:35px; padding:7px 14px; }
.public-site .wrap { max-width:1240px; padding:25px 30px 55px; }
.foot { max-width:1180px; padding:24px 0; }
.public-site .foot,.foot-links>span,.foot-description { color:#7d857e; }
.btn { border-radius:4px; box-shadow:none; font-weight:600; }
.btn-primary { background:var(--brand); box-shadow:none; }
.btn-primary:hover { background:var(--brand-deep); }
.btn-ghost { border-color:#d5dcd5; color:var(--ink-soft); }
.btn-ghost:hover { background:#f4f7f3; border-color:#a4b8a9; color:var(--brand); }
.text-button { color:#55655b; }
.card,.public-site .forum-panel { border-color:var(--line); border-radius:6px; box-shadow:none; }
.page-head { margin-bottom:23px; }
.page-head h1 { font-size:28px; line-height:1.5; }
.page-head .eyebrow { color:#798078; font-size:11px; letter-spacing:.7px; }
.page-head .sub { color:#6b776f; font-size:13px; }
.board-masthead { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:0 0 13px; padding:1px 0 13px; border-bottom:1px solid #d9ddd5; }
.board-masthead>div { min-width:0; }
.board-kicker { display:none; }
.board-masthead h1 { font-size:28px; line-height:1.45; font-weight:700; margin:0; letter-spacing:1px; }
.board-masthead p { color:#68756c; font-size:13px; line-height:1.8; margin:6px 0 0; }
.board-masthead>.btn { flex:none; min-height:40px; }
.weight-notice { display:flex; align-items:center; gap:14px; background:#faf5e9; border:1px solid #e8d9b5; border-left:3px solid #ab7a2c; border-radius:3px; padding:13px 17px; margin:0 0 21px; }
.weight-notice-number { flex:none; color:#8c601d; font-size:29px; font-weight:750; line-height:1; font-variant-numeric:tabular-nums; }
.weight-notice>div { flex:1; min-width:0; }
.weight-notice strong { color:#654e25; font-size:13px; line-height:1.7; }
.weight-notice p { margin:2px 0 0; color:#796b4b; font-size:11px; line-height:1.8; }
.weight-notice>a { display:inline-flex; align-items:center; gap:5px; flex:none; color:#765520; font-size:12px; }
.weight-notice-compact { padding:8px 15px; margin-bottom:15px; }
.weight-notice-compact .weight-notice-number { font-size:28px; }
.public-site .forum-layout { grid-template-columns:minmax(0,1fr) 260px; gap:22px; }
.public-site .forum-tabs { padding:0 15px; background:#fff; border-color:var(--line); gap:8px; }
.public-site .forum-tabs>a { font-size:13px; padding:13px 9px; color:#657167; }
.public-site .forum-tabs>a[aria-current=page] { color:var(--brand); }
.public-site .forum-tabs>a[aria-current=page]:after { height:2px; left:9px; right:9px; border-radius:0; }
.public-site .forum-tabs .forum-exposure-link { font-size:11px; color:#8b8171; }
.public-site .community-filter.forum-search { padding:13px 21px 10px; }
input[type=text],input[type=password],input[type=number],input[type=search],select,textarea { border-color:#d4dcd4; border-radius:4px; }
input::placeholder,textarea::placeholder { color:#949d96; }
input:focus,select:focus,textarea:focus { border-color:#739e86; box-shadow:0 0 0 3px #245b500b; }
.search-input-wrap>.icon { color:#849187; }
input[type=file] { border-color:#c8d5ca; border-radius:4px; background:#f8faf7; }
input[type=file]::file-selector-button { border-color:#d6dfd4; color:var(--brand); border-radius:3px; }
.public-site .content-filter-bar { padding:0 21px 12px; }
.public-site .content-filter a { border-radius:3px; background:#f4f5f1; color:#707a71; font-size:11px; min-height:30px; padding:5px 10px; }
.public-site .content-filter a[aria-current=page] { color:var(--brand); border-color:#d1ded2; background:#eef4ed; }
.public-site .forum-toolbar { padding:10px 21px; background:#f8f9f5; border-color:var(--line); color:#798276; font-size:12px; }
.public-site .forum-toolbar strong { color:#4c5d50; }
.public-site .sort-links { gap:16px; font-size:12px; }
.public-site .sort-links a { color:#788276; }
.public-site .sort-links a[aria-current=page] { color:var(--brand); }
.public-site .sort-links a[aria-current=page]:before { display:none; }
.public-site .feed-announcement.thread-pinned { background:#fdfcf8; padding:10px 21px; border-bottom-color:#e8e5dc; }
.public-site .feed-announcement>summary { font-size:12px; color:#72786c; cursor:pointer; }
.public-site .feed-announcement>summary>.icon:last-child { display:inline-block; }
.public-site .feed-announcement[open]>summary>.icon:last-child { transform:rotate(180deg); }
.public-site .feed-announcement-body { padding-top:8px; }
.public-site .feed-announcement-body>.thread-title { color:#53634f; }
.public-site .feed-announcement-body>p { color:#737c69; }
.public-site .thread-row { padding:20px 21px 15px; gap:16px; border-bottom-color:#e6e9e2; }
.public-site .thread-row:hover { background:#fcfdfb; }
.public-site .reply-count { background:#f3f5f0; color:#8b9589; border:1px solid #e5e9df; border-radius:3px; width:42px; min-height:41px; margin-top:2px; }
.public-site .reply-count strong { color:#70816e; font-size:15px; }
.public-site .thread-title { color:#2a4f40; font-size:16px; font-weight:650; line-height:1.7; }
.public-site .thread-title:hover { color:#1b6a49; }
.public-site .thread-category { background:#f1f4ed; color:#7b8870; border-radius:2px; font-size:10px; margin-top:4px; }
.public-site .thread-excerpt { color:#59675d; font-size:13px; line-height:1.85; margin:6px 0 10px; -webkit-line-clamp:3; }
.public-site .thread-score { color:#9d5f2e; font-size:20px; }
.public-site .thread-score small { color:#a6aa9d; }
.public-site .thread-meta { color:#6f7d67; font-size:11px; gap:6px 12px; }
.public-site .thread-meta>a { color:#667d5f; }
.public-site .thread-author { color:#6e7c65; }
.public-site .reviewed-label { color:#788771; }
.public-site .thread-rating-line { margin:0 0 7px; }
.public-site .post-rating-summary { border-radius:3px; color:#6e7c64; background:#f6f7f2; }
.verified-badge { color:#6f6227; background:#fbf5df; border-color:#e6d9a4; border-radius:3px; font-size:10px; }
.tag { border-radius:3px; }
.tag-muted { background:#f0f2ed; color:#89917f; }
.tag-warm { color:#916a2e; background:#faf1dc; }
.tag-warn { color:var(--warn); background:var(--warn-soft); }
.public-site .forum-sidebar { gap:18px; }
.public-site .forum-compose { background:#fff; }
.public-site .forum-sidebar .forum-panel { padding:20px; }
.public-site .forum-sidebar h2 { font-size:15px; color:#344737; }
.public-site .forum-compose h2 { font-size:17px; }
.sidebar-kicker { color:#87917f; font-size:10px; letter-spacing:1.5px; margin-bottom:7px; }
.public-site .forum-compose>p,.sidebar-fine { color:#6f7f64; }
.rank-row { border-bottom:1px solid #edf0e8; }
.rank-name strong { color:#52674d; }
.rank-leading,.rank-score { color:#a06b35; }
.sidebar-title>span { color:#77866b; }
.sidebar-rules ol { color:#7b8974; }
.sidebar-rules>a { color:#52764d; }
.public-site .forum-empty h2 { font-size:18px; font-weight:600; }
.public-site .empty-symbol { background:#eff4eb; color:#64825b; border-radius:5px; }
.public-site .pagination a { border-radius:3px; border-color:#dfe6d9; }
.public-site .pagination a[aria-current=page] { background:var(--brand); border-color:var(--brand); }
/* Forms and object rows use the same quieter structure, rather than giant tiles. */
.card-heading h2 { font-size:17px; }
.step-number { border-radius:3px; width:30px; height:30px; background:#f0f4eb; color:#72866a; }
.dim { border-color:#e2e7dc; }
.dim legend .icon { color:#71916b; }
.scale-item>span { background:#fafbf7; border-color:#dfe6d8; border-radius:4px; box-shadow:none; }
.scale-item:hover>span { background:#f1f6ec; border-color:#a1b897; }
.scale-item input:checked+span { background:var(--brand); border-color:var(--brand); box-shadow:none; }
.scale-item input:checked+span small { color:#d9eadb; }
.guidance,.info-note,.reply-evidence { background:#f8faf5; border-color:#dfe7d8; border-radius:5px; }
.info-banner,.alert { border-radius:4px; }
.alert-info,.info-banner { background:#eef5ed; border-color:#d5e4d0; color:#536f4b; }
.info-banner>span { color:#628559; }
.guidance li { border-color:#e1e8db; }
.public-site .object-group-title { background:#f8f9f4; color:#7d8974; }
.public-site .object-row { border-color:#e6e9e1; padding:17px 21px; }
.object-info h3 { color:#3a553c; }
.object-info p { color:#6d7d62; }
.object-info>a { color:#617b58; }
.object-score strong { color:#a3713c; }
.object-score span { color:#7a886e; }
.avatar,.avatar-warm { border-radius:4px; background:#f0f3e9; border-color:#e5eadc; color:#8e9f79; }
.verification-benefit { background:#faf5e8; border:1px solid #e6d5a8; border-left:3px solid #ab7a2c; border-radius:4px; }
.verification-benefit .feature-icon { background:#f3e7c9; color:#a37a36; border-radius:4px; }
.verification-benefit p { color:#796b4d; }
.verification-benefit .weight-number { color:#9b702d; }
.method-option { border-radius:4px; border-color:#dde4d6; background:#fcfdf9; }
.public-site .privacy-hero { border-radius:5px; background:#edf2e8; border-color:#dce5d1; }
.public-site .privacy-sections h2 { color:#405b38; }
.public-site .privacy-sections p { color:#64715c; }
.privacy-sections p { color:#64715c; }
.public-site .login-layout { max-width:960px; margin:20px auto; gap:65px; padding:20px 0; }
.login-intro h1 { font-size:31px; line-height:1.6; }
.login-intro>.eyebrow { color:#8a947f; letter-spacing:1px; margin-bottom:15px; }
.login-intro>p { color:#7c8972; line-height:2; }
.intro-points i { background:#eaf0e2; color:#69865a; border-radius:3px; }
.intro-decoration { display:none; }
.login-layout .auth-card { box-shadow:none; }
.feature-icon { border-radius:4px; background:#eef3e7; color:#718f61; }
.guide-card:hover { border-color:#bacba8; box-shadow:none; }
.guide-card h2,.guide-steps h3,.guide-faq summary,.bookmark-card h2 a { color:#46633d; }
.guide-card p,.guide-steps p,.guide-faq p { color:#6d7d62; }
.guide-card,.guide-steps>li,.guide-faq,.bookmark-toolbar,.bookmark-card { border-radius:5px; }
.draft-tools,.public-site details.draft-tools { border-radius:4px; border-color:#dbe4d3; background:#f8faf5; }
.public-site .thread-score { border-color:#eadfca; border-radius:3px; background:#fbf5e9; }
/* Reading: retain the forum floor pattern while avoiding a blue dashboard look. */
.public-site .thread-detail-head { border-color:var(--line); }
.public-site .thread-detail-head h1 { font-size:25px; color:#304e37; }
.public-site .floor-author { background:#f6f8f1; border-right-color:#e6eadf; }
.forum-user-avatar { background:#edf2e4; color:#95aa82; border-color:#e1e8d6; border-radius:4px; }
.floor-author>strong { color:#718167; }
.landlord-badge { background:#e6eee0; color:#718b62; border-radius:2px; }
.public-site .post-dimensions { background:#f9faf5; border-color:#e2e8d9; border-radius:4px; }
.post-dimensions>div+div { border-color:#e2e8d9; }
.post-dimensions dt { color:#879879; }
.post-dimensions dd { color:#658151; }
.public-site .floor-text { color:#485b41; }
.public-site .post-score-header>strong { color:#9a713b; }
.public-site .post-rating { background:#fcfdf9; border-color:#e2e8d9; }
.public-site .post-rating-average>strong { color:#94713f; }
/* Tablet: keep useful columns, then give the main discussion all available room. */
@media (min-width:721px) and (max-width:1130px) {
  .public-site .topbar-inner { padding-inline:25px; gap:10px 18px; }
  .public-site .nav { flex-basis:100%; justify-content:flex-start; }
  .public-site .forum-layout { grid-template-columns:minmax(0,1fr) 230px; gap:18px; }
  .public-site .forum-sidebar .forum-panel { padding:18px; }
  .public-site .thread-author { margin-left:0; }
}
@media (min-width:721px) and (max-width:900px) {
  .public-site .forum-layout { grid-template-columns:minmax(0,1fr); }
  .public-site .forum-sidebar { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .public-site .forum-sidebar>.sidebar-ranking { grid-column:auto; }
  .public-site .thread-detail-layout .forum-sidebar { display:none; }
}
/* Phone is a board list and a bottom tab bar, not a shrunken desktop dashboard. */
@media (max-width:720px) {
  html:has(.public-site) { scroll-padding-top:80px; }
  .public-site .topbar { border-top-width:2px; }
  .public-site .topbar-inner { min-height:61px; padding:8px 14px; gap:8px; }
  .public-site .brand { gap:8px; }
  .public-site .brand-mark { width:31px; height:31px; border-radius:4px; }
  .public-site .brand-mark .icon { width:21px; height:21px; }
  .public-site .brand-copy strong { font-size:15px; letter-spacing:.3px; }
  .public-site .brand small { display:none; }
  .public-site .account-nav { margin-left:auto; gap:7px; }
  .public-site .account-nav .btn { min-height:39px; padding:8px 10px; font-size:12px; border-radius:4px; }
  .public-site .account-nav>.text-button { min-height:39px; font-size:12px; }
  .public-site .nav { min-height:0; flex:0 0 auto; margin:0; padding:0; }
  .public-site .nav-more>summary { min-height:39px; padding:8px; }
  .public-site .nav-more-menu { right:0; width:min(285px,calc(100vw - 28px)); border-radius:5px; }
  .public-site .wrap { padding:16px 12px 35px; }
  .public-site .board-masthead { align-items:center; gap:12px; padding:0 1px 13px; margin-bottom:12px; }
  .public-site .board-kicker { display:none; }
  .public-site .board-masthead h1 { font-size:24px; line-height:1.4; letter-spacing:0; }
  .public-site .board-masthead p { font-size:12px; line-height:1.65; margin-top:5px; max-width:230px; }
  .public-site .board-masthead>.btn { min-height:44px; padding:10px 12px; font-size:13px; gap:6px; }
  .public-site .board-masthead>.btn .icon { width:15px; height:15px; }
  .public-site .weight-notice { display:grid; grid-template-columns:auto minmax(0,1fr); padding:10px 11px; margin-bottom:13px; gap:0 10px; align-items:center; }
  .public-site .weight-notice-number { grid-column:1; grid-row:1 / 3; }
  .public-site .weight-notice>div { grid-column:2; grid-row:1; }
  .public-site .weight-notice-number { font-size:26px; }
  .public-site .weight-notice strong { font-size:12px; line-height:1.65; display:block; }
  .public-site .weight-notice p { font-size:11px; line-height:1.65; margin-top:3px; }
  .public-site .weight-notice-detail { display:none; }
  .public-site .weight-notice>a { grid-column:2; grid-row:2; justify-self:start; font-size:11px; min-height:35px; max-width:none; flex-direction:row; justify-content:flex-start; gap:5px; line-height:1.5; text-align:left; white-space:nowrap; margin-top:2px; }
  .public-site .weight-notice>a>.icon:last-child { display:none; }
  .public-site .weight-notice>a>.icon:first-child { width:15px; height:15px; margin-bottom:0; }
  .public-site .forum-layout { grid-template-columns:minmax(0,1fr); gap:14px; }
  .public-site .forum-panel { border-radius:5px; }
  .public-site .forum-tabs { padding:0 10px; gap:4px; }
  .public-site .forum-tabs>a { min-height:45px; padding:11px 8px; font-size:12px; }
  .public-site .forum-tabs .forum-exposure-link { display:none; }
  .public-site .community-filter.forum-search { padding:12px 12px 8px; gap:8px; }
  .public-site .content-filter-bar { padding:0 12px 9px; }
  .public-site .content-filter a { min-height:39px; padding:8px 6px; font-size:12px; }
  .public-site .forum-toolbar { padding:7px 12px; font-size:11px; gap:7px; }
  .public-site .sort-links { flex-wrap:nowrap; gap:10px; font-size:12px; }
  .public-site .sort-links>a { min-height:36px; display:inline-flex; align-items:center; }
  .public-site .feed-announcement.thread-pinned { padding:0 12px; }
  .public-site .feed-announcement>summary { font-size:11px; min-height:39px; padding:8px 0; }
  .public-site .feed-announcement-body { padding-bottom:12px; }
  .public-site .thread-row { padding:16px 12px 10px; gap:10px; }
  .public-site .reply-count { width:32px; min-height:37px; font-size:9px; border-radius:3px; }
  .public-site .reply-count strong { font-size:13px; }
  .public-site .thread-title-line { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:4px 7px; margin-bottom:5px; }
  .public-site .thread-title-line>.thread-category { grid-row:1; grid-column:1; justify-self:start; margin:0; font-size:10px; }
  .public-site .thread-title-line>.thread-title { grid-row:2; grid-column:1 / -1; font-size:16px; line-height:1.65; }
  .public-site .thread-title-line>.thread-score { grid-row:1; grid-column:2; font-size:17px; padding:0; margin:0; }
  .public-site .thread-score small { font-size:10px; }
  .public-site .thread-excerpt { font-size:13px; line-height:1.8; margin:6px 0 8px; -webkit-line-clamp:3; }
  .public-site .thread-meta { font-size:11px; gap:2px 9px; line-height:1.7; }
  .public-site .thread-meta>a:first-child { flex-basis:100%; line-height:1.6; }
  .public-site .thread-author { font-size:11px; margin:0; }
  .public-site .thread-meta .verified-badge { font-size:10px; }
  .public-site .reviewed-label { font-size:10px; }
  .public-site .thread-meta .report-link,.public-site .thread-list .bookmark-toggle.btn { min-height:40px; font-size:11px; }
  .public-site .thread-meta .report-link { margin-left:auto; }
  .public-site .thread-list .bookmark-toggle.btn { padding-inline:0; }
  .public-site .forum-sidebar { display:grid; grid-template-columns:minmax(0,1fr); gap:12px; }
  .public-site .forum-sidebar .forum-panel { padding:17px; }
  .public-site .forum-sidebar .sidebar-ranking { grid-column:auto; }
  .public-site .forum-sidebar h2 { font-size:15px; }
  .public-site .forum-empty { padding:33px 20px; }
  .public-site .page-head h1 { font-size:24px; }
  .public-site .page-head .sub { font-size:13px; line-height:1.85; }
  .public-site .card,.public-site .form-card { border-radius:5px; }
  .public-site .card-heading h2 { font-size:16px; }
  .public-site .object-row { padding:14px 12px; }
  .public-site .object-info h3 { font-size:16px; }
  .public-site .object-row>.avatar { width:32px; height:32px; }
  .public-site .object-info p { font-size:12px; }
  .public-site .object-info>a { font-size:12px; }
  .public-site .object-row>.btn { min-height:44px; border-radius:4px; }
  .public-site .scale-item>span,.public-site .post-rating-choice .scale-item>span { border-radius:4px; }
  .public-site input[type=text],.public-site input[type=password],.public-site input[type=search],.public-site select,.public-site textarea { border-radius:4px; font-size:16px; }
  .public-site .verification-benefit { padding:17px 15px; border-radius:4px; gap:12px; }
  .public-site .verification-benefit strong { font-size:16px; }
  .public-site .verification-benefit p { font-size:12px; line-height:1.85; }
  .public-site .weight-number { font-size:36px; }
  .public-site .login-layout { margin:0; padding:0; }
  .public-site .thread-detail-head h1 { font-size:22px; }
  .public-site .thread-detail-head { padding:18px 15px 12px; }
  .public-site .forum-floor .floor-body { padding:15px; }
  .public-site .floor-text { font-size:15px; }
  .public-site .post-dimensions dd { font-size:21px; }
  .public-site .post-rating { background:#fcfdf9; }
  .public-site .mobile-tabbar { background:#fff; border-top-color:#dfe5d9; backdrop-filter:none; box-shadow:none; padding-top:5px; padding-bottom:calc(5px + env(safe-area-inset-bottom,0px)); }
  .public-site .mobile-tabbar>a { min-height:48px; color:#929c87; font-size:11px; border-radius:3px; }
  .public-site .mobile-tabbar>a[aria-current=page] { color:var(--brand); background:transparent; }
  .public-site .mobile-tabbar>a[aria-current=page] .icon { fill:#edf3e8; }
  .public-site .foot { margin-inline:13px; padding-block:21px; }
}
@media (max-width:360px) {
  .public-site .topbar-inner { padding-inline:10px; gap:6px; }
  .public-site .brand-copy strong { font-size:14px; }
  .public-site .brand-mark { width:27px; height:29px; }
  .public-site .account-nav { gap:5px; }
  .public-site .account-nav .btn { padding-inline:8px; }
  .public-site .board-masthead h1 { font-size:22px; }
  .public-site .board-masthead>.btn { padding-inline:10px; font-size:12px; }
  .public-site .board-masthead p { font-size:11px; }
  .public-site .weight-notice { gap:8px; padding-inline:9px; }
  .public-site .weight-notice-number { font-size:24px; }
  .public-site .weight-notice strong { font-size:11px; }
  .public-site .weight-notice p { font-size:10px; }
  .public-site .sort-links { gap:8px; font-size:11px; }
}
@media (max-width:720px) and (max-height:700px) {
  .public-site .board-masthead p { display:none; }
  .public-site .weight-notice p { display:none; }
  .public-site .weight-notice { min-height:50px; padding-block:5px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }

.public-site .post-rating .rating-feedback { margin:0 0 16px; padding:12px 14px; font-size:13px; }
