*{box-sizing:border-box}body{margin:0;font-family:Arial,'Microsoft YaHei',sans-serif;background:#f8fafc;color:#0f172a}.container{max-width:1100px;margin:0 auto;padding:0 16px}.topbar{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:14px 24px;background:#fff;box-shadow:0 1px 6px rgba(0,0,0,.06)}.logo{font-weight:700;font-size:20px;color:#0284c7}.logo a{color:inherit;text-decoration:none}.nav-mini{display:flex;gap:16px;font-size:14px;color:#64748b;align-items:center}.nav-mini a{color:#64748b;text-decoration:none}.nav-mini a:hover{color:#0284c7}.card{background:#fff;border-radius:16px;padding:16px;box-shadow:0 1px 8px rgba(15,23,42,.06)}.section{padding:16px 0}.post-list{display:flex;flex-direction:column;gap:12px}.post-title{font-size:16px;font-weight:700;color:#0f172a}.post-meta{margin-top:8px;font-size:12px;color:#94a3b8}.tabbar{display:flex;gap:18px;font-size:14px;font-weight:600;color:#64748b;border-bottom:2px solid #f1f5f9;padding-bottom:8px;margin-bottom:16px}.tabbar .active{color:#0284c7;border-bottom:2px solid #0284c7;padding-bottom:8px;margin-bottom:-10px}.float-btn{position:fixed;right:24px;bottom:32px;background:#0284c7;color:#fff;border:none;border-radius:999px;padding:14px 22px;font-size:15px;font-weight:600;box-shadow:0 6px 18px rgba(2,132,199,.35);cursor:pointer;text-decoration:none;z-index:100}.float-btn:hover{background:#0369a1}.bottom-nav-bar{display:none}.form-wrap{max-width:480px;margin:48px auto}.input,.select,.textarea{width:100%;padding:12px 14px;border:1px solid #cbd5e1;border-radius:12px;outline:none;font-size:14px;transition:border .2s}.input:focus,.select:focus,.textarea:focus{border-color:#0284c7}.textarea{min-height:180px;resize:vertical}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:11px 20px;border:none;border-radius:12px;background:#0284c7;color:#fff;cursor:pointer;font-size:14px;font-weight:600;text-align:center;line-height:1.15;text-decoration:none;vertical-align:middle;transition:background .2s}.btn:hover{background:#0369a1}.btn-light{background:#e2e8f0;color:#334155}.btn-light:hover{background:#cbd5e1}.quick-list{display:flex;gap:12px;flex-wrap:wrap}.quick-item{min-width:84px;text-align:center;text-decoration:none;color:#0f172a}.banner-slide{position:relative;border-radius:16px;overflow:hidden;margin-bottom:8px}.banner-item{display:none;position:relative}.banner-item.active{display:block}.banner-item img{width:100%;height:220px;object-fit:cover}.banner-placeholder{background:linear-gradient(135deg,#0ea5e9,#2563eb);height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;font-size:18px;font-weight:700}.banner-dots{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);display:flex;gap:6px}.dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.5);cursor:pointer}.dot.active{background:#fff}.admin-layout{display:flex;min-height:100vh}.admin-side{width:240px;background:#0f172a;color:#fff;padding:24px;flex-shrink:0}.admin-side .logo{font-size:18px;margin-bottom:24px;display:block}.admin-main{flex:1;min-width:0}.admin-top{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;background:#fff;box-shadow:0 1px 6px rgba(0,0,0,.05)}.admin-content{padding:24px}.menu-link{display:block;padding:10px 14px;border-radius:10px;color:#94a3b8;text-decoration:none;margin-bottom:4px;font-size:14px;transition:all .2s}.menu-link:hover,.menu-link.active{background:#1e293b;color:#fff}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.stat-card{background:#fff;border-radius:16px;padding:20px;box-shadow:0 1px 8px rgba(15,23,42,.06)}.stat-num{font-size:28px;font-weight:700;color:#0284c7}.stat-label{font-size:13px;color:#94a3b8;margin-top:4px}.table{width:100%;border-collapse:collapse;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 1px 8px rgba(15,23,42,.06)}.table th{padding:14px 16px;border-bottom:2px solid #e2e8f0;text-align:left;font-size:13px;color:#64748b;background:#f8fafc}.table td{padding:14px 16px;border-bottom:1px solid #f1f5f9;font-size:14px;vertical-align:middle}.table tr:last-child td{border-bottom:none}.badge{display:inline-block;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600}.badge-ok{background:#dcfce7;color:#15803d}.badge-warn{background:#fef3c7;color:#b45309}.badge-err{background:#fee2e2;color:#b91c1c}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.page-title{font-size:20px;font-weight:700}@media(max-width:768px){.stats{grid-template-columns:repeat(2,1fr)}.admin-layout{flex-direction:column}.admin-side{width:100%;padding:16px}.container{padding:0 12px}.float-btn{right:16px;bottom:72px}.bottom-nav-bar{display:none}.bottom-nav a{color:#64748b;text-decoration:none;display:flex;flex-direction:column;align-items:center;gap:2px}.bottom-nav .active{color:#0284c7}.banner-item img{height:160px}}@media(min-width:769px){.post-list{display:grid;grid-template-columns:1fr}.sidebar-layout{display:grid;grid-template-columns:1fr 300px;gap:24px}.banner-item img{height:260px}}
.bottom-nav-bar{padding:0.5rem;background-color:#fff;position:fixed;bottom:0;left:0;right:0;display:none;justify-content:center;z-index:200;box-shadow:0 -2px 12px rgba(0,0,0,.08);border-radius:15px 15px 0 0;}
.link{display:inline-flex;justify-content:center;align-items:center;width:56px;height:50px;border-radius:8px;position:relative;z-index:1;overflow:hidden;transform-origin:center left;transition:width .2s ease-in;text-decoration:none;color:#334155;}
.link:before{position:absolute;z-index:-1;content:"";display:block;border-radius:8px;width:100%;height:100%;top:0;transform:translateX(100%);transition:transform .2s ease-in;transform-origin:center right;background-color:#eee;}
.link:hover,.link:focus{outline:0;width:120px;}
.link:hover:before,.link:focus:before{transform:translateX(0);}
.link:hover .link-title,.link:focus .link-title{transform:translateX(0);opacity:1;}
.link.active{color:#0284c7;}
.link-icon{width:26px;height:26px;display:block;flex-shrink:0;left:15px;position:absolute;}
.link-icon svg{width:26px;height:26px;}
.link-title{transform:translateX(100%);transition:transform .2s ease-in;transform-origin:center right;display:block;text-align:center;text-indent:26px;width:100%;font-size:13px;font-weight:600;white-space:nowrap;}
@media(max-width:768px){.bottom-nav-bar{display:flex;}.float-btn{bottom:72px;}}
:root{--bg-main:#f8fafc;--card-bg:#fff;--text-main:#0f172a;--text-soft:#64748b;--text-muted:#94a3b8;--line-soft:#e2e8f0;--input-bg:#f8fafc;--primary:#0284c7;}
html[data-theme="dark"]{color-scheme:dark;--bg-main:#0b1120;--card-bg:#111827;--text-main:#e5e7eb;--text-soft:#cbd5e1;--text-muted:#94a3b8;--line-soft:#263244;--input-bg:#0f172a;--primary:#38bdf8;}
html[data-theme="dark"] body{background:var(--bg-main)!important;color:var(--text-main)!important;}
html[data-theme="dark"] .topbar,html[data-theme="dark"] .card,html[data-theme="dark"] .panel,html[data-theme="dark"] .thread-panel,html[data-theme="dark"] .user-card,html[data-theme="dark"] .notice-ticker,html[data-theme="dark"] .bottom-nav-bar{background:var(--card-bg)!important;border-color:var(--line-soft)!important;color:var(--text-main)!important;box-shadow:0 10px 30px rgba(0,0,0,.28)!important;}
html[data-theme="dark"] .post-title,html[data-theme="dark"] .thread-title,html[data-theme="dark"] .home-section-title h2,html[data-theme="dark"] .hot-section-name,html[data-theme="dark"] .user-name,html[data-theme="dark"] .logo,html[data-theme="dark"] .logo a{color:var(--text-main)!important;}
html[data-theme="dark"] .post-meta,html[data-theme="dark"] .thread-meta,html[data-theme="dark"] .hot-section-meta,html[data-theme="dark"] .muted,html[data-theme="dark"] .nav-mini a,html[data-theme="dark"] .user-sub{color:var(--text-soft)!important;}
html[data-theme="dark"] .input,html[data-theme="dark"] .select,html[data-theme="dark"] .textarea,html[data-theme="dark"] textarea,html[data-theme="dark"] input{background:var(--input-bg)!important;color:var(--text-main)!important;border-color:var(--line-soft)!important;}
html[data-theme="dark"] .table,html[data-theme="dark"] .recent-table{background:var(--card-bg)!important;color:var(--text-main)!important;}
html[data-theme="dark"] .table th,html[data-theme="dark"] .recent-table th{background:#0f172a!important;color:var(--text-soft)!important;border-color:var(--line-soft)!important;}
html[data-theme="dark"] .table td,html[data-theme="dark"] .recent-table td{color:var(--text-main)!important;border-color:var(--line-soft)!important;}
html[data-theme="dark"] .dropdown-menu{background:var(--card-bg)!important;border:1px solid var(--line-soft)!important;}
html[data-theme="dark"] .dropdown-item{color:var(--text-main)!important;}
html[data-theme="dark"] .dropdown-item:hover,html[data-theme="dark"] .user-btn:hover{background:#1e293b!important;}
html[data-theme="dark"] .link{color:var(--text-soft)!important;}
html[data-theme="dark"] .link:before{background:#1e293b!important;}
html[data-theme="dark"] .hot-section-card,html[data-theme="dark"] .quick-card,html[data-theme="dark"] .notice-item{background:#111827!important;border-color:#263244!important;color:#e5e7eb!important;}
html[data-theme="dark"] .bottom-nav-bar .link-title,html[data-theme="dark"] .bottom-nav-bar .link{color:#cbd5e1!important;}
html[data-theme="dark"] .bottom-nav-bar .link.active{color:#38bdf8!important;}

/* Dark mode cleanup 2026-05-05 */
html[data-theme="dark"] .m-tabbar{background:rgba(17,24,39,.96)!important;border-color:#263244!important;box-shadow:0 18px 42px rgba(0,0,0,.42)!important;}
html[data-theme="dark"] .m-tabbar__item{color:#cbd5e1!important;}
html[data-theme="dark"] .m-tabbar__item.is-active{color:#38bdf8!important;background:rgba(56,189,248,.14)!important;}
html[data-theme="dark"] .m-tabbar__item--publish{color:#e5e7eb!important;}
html[data-theme="dark"] .m-tabbar__item--publish.is-active{background:transparent!important;color:#38bdf8!important;}
html[data-theme="dark"] .notice-wrap,
html[data-theme="dark"] .notice-show-wrap,
html[data-theme="dark"] .msg-card,
html[data-theme="dark"] .profile-card,
html[data-theme="dark"] .form-wrap,
html[data-theme="dark"] .search-card{background:#111827!important;border-color:#263244!important;color:#e5e7eb!important;box-shadow:0 10px 30px rgba(0,0,0,.28)!important;}
html[data-theme="dark"] .notice-head h1,
html[data-theme="dark"] .notice-title,
html[data-theme="dark"] .notice-show-title,
html[data-theme="dark"] .notice-empty div,
html[data-theme="dark"] .msg-card span,
html[data-theme="dark"] h1,
html[data-theme="dark"] h2,
html[data-theme="dark"] h3{color:#e5e7eb!important;}
html[data-theme="dark"] .notice-item{background:#0f172a!important;border-color:#263244!important;color:#e5e7eb!important;}
html[data-theme="dark"] .notice-item:hover{background:#1e293b!important;}
html[data-theme="dark"] .notice-text,
html[data-theme="dark"] .notice-show-content{color:#cbd5e1!important;}
html[data-theme="dark"] .notice-meta,
html[data-theme="dark"] .notice-show-meta{color:#94a3b8!important;}
html[data-theme="dark"] .notice-link{background:#0b2a3a!important;color:#7dd3fc!important;}
html[data-theme="dark"] .thread-meta span,
html[data-theme="dark"] .side-nav a,
html[data-theme="dark"] .user-secondary,
html[data-theme="dark"] .pagination a{background:#0f172a!important;color:#cbd5e1!important;border-color:#263244!important;}
html[data-theme="dark"] mark{background:#713f12!important;color:#fde68a!important;}
html[data-theme="dark"] .ql-toolbar,
html[data-theme="dark"] .ql-container{background:#111827!important;border-color:#263244!important;color:#e5e7eb!important;}

/* Dark mode text color hardening: remap common hard-coded day colors */
html[data-theme="dark"] [style*="color:#0f172a"],
html[data-theme="dark"] [style*="color: #0f172a"],
html[data-theme="dark"] [style*="color:#111827"],
html[data-theme="dark"] [style*="color: #111827"],
html[data-theme="dark"] [style*="color:#1e293b"],
html[data-theme="dark"] [style*="color: #1e293b"]{color:#e5e7eb!important;}
html[data-theme="dark"] [style*="color:#334155"],
html[data-theme="dark"] [style*="color: #334155"],
html[data-theme="dark"] [style*="color:#475569"],
html[data-theme="dark"] [style*="color: #475569"],
html[data-theme="dark"] [style*="color:#64748b"],
html[data-theme="dark"] [style*="color: #64748b"]{color:#cbd5e1!important;}
html[data-theme="dark"] [style*="color:#94a3b8"],
html[data-theme="dark"] [style*="color: #94a3b8"]{color:#94a3b8!important;}
html[data-theme="dark"] [style*="background:#fff"],
html[data-theme="dark"] [style*="background: #fff"]{background:#111827!important;}
html[data-theme="dark"] [style*="background:#f8fafc"],
html[data-theme="dark"] [style*="background: #f8fafc"],
html[data-theme="dark"] [style*="background:#f1f5f9"],
html[data-theme="dark"] [style*="background: #f1f5f9"]{background:#0f172a!important;}
html[data-theme="dark"] [style*="border:1px solid #e2e8f0"],
html[data-theme="dark"] [style*="border: 1px solid #e2e8f0"],
html[data-theme="dark"] [style*="border:1px solid #eef2f7"],
html[data-theme="dark"] [style*="border: 1px solid #eef2f7"],
html[data-theme="dark"] [style*="border-color:#e2e8f0"],
html[data-theme="dark"] [style*="border-color: #e2e8f0"]{border-color:#263244!important;}
html[data-theme="dark"] .card *,
html[data-theme="dark"] .panel *,
html[data-theme="dark"] .notice-wrap *,
html[data-theme="dark"] .notice-show-wrap *,
html[data-theme="dark"] .admin-content *{border-color:inherit;}
html[data-theme="dark"] .btn,
html[data-theme="dark"] .badge,
html[data-theme="dark"] .user-avatar,
html[data-theme="dark"] .m-tabbar__publish-btn,
html[data-theme="dark"] .banner-caption,
html[data-theme="dark"] .banner-placeholder{color:inherit;}
html[data-theme="dark"] .btn:not(.btn-light){color:#fff!important;}
html[data-theme="dark"] .btn-light{background:#1e293b!important;color:#e5e7eb!important;}
html[data-theme="dark"] .badge-ok{background:#064e3b!important;color:#86efac!important;}
html[data-theme="dark"] .badge-warn{background:#713f12!important;color:#fde68a!important;}
html[data-theme="dark"] .badge-err{background:#7f1d1d!important;color:#fecaca!important;}
html[data-theme="dark"] a:not(.btn):not(.menu-link):not(.m-tabbar__item){color:#7dd3fc;}

.mention-link,.rich-content a.mention-link,.comment-content a.mention-link{border-bottom:0!important;text-decoration:none!important;box-shadow:none!important;}
.mention-link:hover,.rich-content a.mention-link:hover,.comment-content a.mention-link:hover{border-bottom:0!important;text-decoration:none!important;box-shadow:none!important;}

/* User avatar + verification V badge - canonical */
.avatar-verify-wrap{--avatar-radius:50%;--avatar-bg:linear-gradient(135deg,#0284c7,#6366f1);--avatar-color:#fff;--avatar-font-size:calc(var(--avatar-size,42px) * .42);--avatar-font-weight:950;--avatar-border:0;--avatar-shadow:none;--avatar-image-bg:transparent;position:relative!important;display:inline-grid!important;place-items:center!important;width:var(--avatar-size,42px)!important;height:var(--avatar-size,42px)!important;vertical-align:middle!important;flex:0 0 auto!important;overflow:visible!important}
.oc-user-avatar,.avatar-verify-wrap>span:not(.avatar-verify-badge){width:100%!important;height:100%!important;min-width:100%!important;min-height:100%!important;max-width:100%!important;max-height:100%!important;aspect-ratio:1/1!important;border-radius:var(--avatar-radius,50%)!important;overflow:hidden!important;position:relative!important;display:inline-grid!important;place-items:center!important;box-sizing:border-box!important;flex:0 0 var(--avatar-size,42px)!important;background:var(--avatar-bg,linear-gradient(135deg,#0284c7,#6366f1))!important;color:var(--avatar-color,#fff)!important;font-size:var(--avatar-font-size,calc(var(--avatar-size,42px) * .42))!important;font-weight:var(--avatar-font-weight,950)!important;border:var(--avatar-border,0)!important;box-shadow:var(--avatar-shadow,none)!important;line-height:1!important}
.oc-user-avatar.has-image,.avatar-verify-wrap>span.has-image:not(.avatar-verify-badge){background:var(--avatar-image-bg,transparent)!important}
.avatar-verify-wrap img{width:100%!important;height:100%!important;min-width:100%!important;min-height:100%!important;max-width:none!important;max-height:none!important;object-fit:cover!important;border-radius:inherit!important;display:block!important}
.user-verify-v{position:static!important;width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;max-width:18px!important;max-height:18px!important;border-radius:50%!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;background:var(--verify-color,#2563eb)!important;color:#fff!important;border:2px solid var(--card-bg,#fff)!important;font-family:Arial,Helvetica,sans-serif!important;font-size:10px!important;font-weight:900!important;line-height:1!important;letter-spacing:-.04em!important;padding-top:1px!important;box-sizing:border-box!important;box-shadow:0 3px 8px rgba(15,23,42,.18)!important;vertical-align:middle!important;flex:0 0 auto!important;inset:auto!important;transform:none!important}
.avatar-verify-wrap .avatar-verify-badge{position:absolute!important;right:-2px!important;bottom:-2px!important;left:auto!important;top:auto!important;transform:none!important;width:calc(var(--avatar-size,42px) * .34)!important;height:calc(var(--avatar-size,42px) * .34)!important;min-width:13px!important;min-height:13px!important;max-width:26px!important;max-height:26px!important;font-size:calc(var(--avatar-size,42px) * .15)!important;z-index:3!important}
.profile-avatar,.me-avatar{--avatar-bg:linear-gradient(135deg,#0284c7,#6366f1);--avatar-border:4px solid rgba(255,255,255,.96);--avatar-shadow:0 20px 50px rgba(15,23,42,.24);--avatar-font-size:42px}
.mod-avatar{--avatar-bg:#fff;--avatar-color:#0284c7;--avatar-font-size:22px}
.mini-avatar{--avatar-font-size:11px;--avatar-border:2px solid rgba(255,255,255,.86)}


/* Forum UI nowrap hardening 2026-05-08
   Keep meta chips/badges/action rows on one line; shrink spacing instead of wrapping.
   Do not apply to rich content or normal paragraphs. */
.name-level-inline,.role-badge,.thread-role-badge,.level-badge,.badge,.status-pill,.post-flag,.stat-chip,.thread-card-meta span,.thread-card-section,.home-feed-name-line,.post-stats,.post-author-bar,.author-mini,.comment-meta,.feed-meta,.feed-counts,.profile-title-line,.profile-meta,.author-title-line,.author-meta,.profile-actions,.me-quick-actions,.wallet-actions,.quick-types,.follow-name,.follow-actions,.action-toolbar,.post-actions>.action-toolbar{white-space:nowrap!important;}
.name-level-inline,.home-feed-name-line,.post-stats,.post-author-bar,.author-mini,.comment-meta,.feed-meta,.feed-counts,.profile-title-line,.profile-meta,.author-title-line,.author-meta,.profile-actions,.me-quick-actions,.wallet-actions,.quick-types,.follow-name,.follow-actions{flex-wrap:nowrap!important;min-width:0!important;}
.role-badge,.thread-role-badge,.level-badge,.badge,.status-pill,.post-flag,.stat-chip,.thread-card-meta span,.thread-card-section,.profile-badge,.author-badge,.follow-badge,.soft-btn,.btn,.author-follow-btn,.profile-action-btn,.me-quick-action,.quick-types a{flex:0 0 auto!important;white-space:nowrap!important;}
.name-level-inline,.home-feed-name,.author-name,.comment-name,.feed-meta span,.profile-name,.author-name,.follow-name,.thread-card-section{min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;}
@media(max-width:768px){
  .stat-chip{padding:6px 8px!important;font-size:clamp(10px,2.9vw,12px)!important;gap:3px!important;}
  .role-badge,.thread-role-badge{padding:2px 6px!important;font-size:clamp(9px,2.6vw,11px)!important;}
  .level-badge.small{font-size:clamp(9px,2.5vw,11px)!important;}
  .post-flag,.feed-badge{font-size:clamp(9px,2.6vw,11px)!important;padding:3px 6px!important;}
  .soft-btn{font-size:clamp(10px,2.8vw,11px)!important;padding-left:8px!important;padding-right:8px!important;}
  .btn{font-size:clamp(12px,3.1vw,14px)!important;padding-left:12px!important;padding-right:12px!important;}
}

/* Mobile input focus zoom guard 2026-05-08
   iOS Safari auto-zooms focused fields below 16px. Keep real typing controls >=16px on mobile,
   while leaving normal content zoom/scroll behavior intact. */
@media(max-width:768px){
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),
  select,
  textarea,
  .input,
  .select,
  .textarea,
  .chat-send input,
  .reply-form .textarea,
  .fallback-editor{
    font-size:16px!important;
  }
  .chat-search .input,
  #chatSearchInput,
  #chatInput{
    font-size:16px!important;
  }
}

/* 20260508: mobile topbar height guard */
@media(max-width:768px){
  .topbar{
    min-height:58px!important;
    height:58px!important;
    max-height:58px!important;
    padding:0 14px!important;
    align-items:center!important;
    overflow:visible!important;
  }
  .topbar .logo,
  .topbar .nav-mini,
  .topbar .user-dropdown,
  .topbar .user-btn{
    min-height:0!important;
    height:auto!important;
    margin-top:0!important;
    margin-bottom:0!important;
    align-items:center!important;
  }
  .topbar .logo a{line-height:1!important;display:inline-flex!important;align-items:center!important;}
  .publish-wrap{padding-top:12px!important;}
}
