/* qy33.com · Site v2 · 2026-10-25
   Unified light SaaS system for all pages. Loaded after legacy styles. */
:root {
  --bg:#f7f8fc; --bg-soft:#f5f6fa; --bg-sunken:#eef0f5; --card:#fff;
  --ink:#111827; --ink-2:#374151; --ink-3:#6b7280; --sub:#6b7280; --mute:#9ca3af;
  --line:#ebedf5; --line-2:#dfe3ed;
  --red:#3b4fe0; --red-deep:#2f3fd1; --brand:#3b4fe0; --brand-soft:#eef0ff; --brand-ink:#2f3fd1;
  --up:#ef4444; --up-soft:#fee2e2; --down:#10b981; --down-soft:#d1fae5; --green:#10b981;
  --amber:#ca8a04; --gold:#ca8a04; --warn:#eab308; --info:#3b4fe0; --info-soft:#eef0ff;
  --violet:#8b5cf6; --teal:#10b981; --slate:#64748b;
  --sans:"Inter","SF Pro Text",-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",sans-serif;
  --serif:var(--sans); --mono:"Inter","SFMono-Regular",Consolas,"Liberation Mono",monospace;
  --radius:12px; --radius-sm:9px; --radius-xs:6px; --radius-lg:16px; --radius-pill:999px;
  --shadow:0 1px 2px rgba(16,24,40,.04),0 4px 12px rgba(16,24,40,.04);
  --shadow-md:0 1px 3px rgba(16,24,40,.04),0 8px 24px rgba(16,24,40,.05);
  --shadow-lg:0 4px 8px rgba(16,24,40,.06),0 16px 32px rgba(16,24,40,.08);
  --focus-ring:0 0 0 3px rgba(59,79,224,.16);
}
body { padding-bottom:0; background:linear-gradient(180deg,#fafbff 0%,#f3f5fa 100%); color:var(--ink-2); font:400 15px/1.7 var(--sans); }
a { color:var(--brand); }
a:hover { color:var(--red-deep); }
.container { max-width:1248px; }
.main { flex:1; padding:36px 24px 80px; }
::selection { color:#2737b8; background:#e0e4ff; }

/* Shared navigation */
.site-header { height:72px; background:rgba(255,255,255,.84); border-bottom:1px solid var(--line); box-shadow:none; backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); transition:background .2s,box-shadow .2s; }
.site-header.is-scrolled { background:rgba(255,255,255,.96); box-shadow:0 4px 20px rgba(16,24,40,.05); }
.header-inner { height:100%; gap:28px; padding-top:0; padding-bottom:0; }
.logo { gap:10px; }
.logo-mark,.footer-logo .logo-mark { width:36px; height:36px; border-radius:10px; color:#fff; background:var(--brand); box-shadow:0 4px 10px rgba(59,79,224,.2); }
.logo-text { color:var(--ink); font:700 16px/1.2 var(--sans); letter-spacing:-.02em; }
.logo-text em { display:block; margin-top:3px; color:var(--mute); font:500 10px/1 var(--sans); letter-spacing:.18em; }
.main-nav { justify-content:center; flex-wrap:nowrap; gap:2px; }
.main-nav a { position:relative; padding:8px 12px; color:#4b5563; border-radius:8px; font-size:13px; font-weight:500; white-space:nowrap; }
.main-nav a:hover { color:var(--brand); background:#f2f4ff; }
.main-nav a.active { color:var(--brand); background:transparent; font-weight:600; }
.main-nav a.active::after { content:""; position:absolute; left:50%; bottom:-15px; width:18px; height:2px; border-radius:2px; background:var(--brand); transform:translateX(-50%); }
.main-nav a.admin-link { color:var(--amber); }
.header-user { gap:5px; }
.header-user .btn { border:0; font-size:13px; }
.header-user .btn-ghost { color:var(--ink-2); }
.header-user .btn-primary { padding:8px 15px; border-radius:8px; background:var(--brand); box-shadow:0 1px 2px rgba(59,79,224,.2),0 4px 12px rgba(59,79,224,.18); }
.header-user .btn-primary:hover { background:var(--red-deep); }
.user-chip { color:var(--brand); background:var(--brand-soft); }
.nav-toggle { display:none; }

/* Shared controls and feedback */
.btn { border-radius:10px; font-weight:600; transition:background .18s,border-color .18s,color .18s,box-shadow .18s,transform .18s; }
.btn-primary { color:#fff; background:var(--brand); box-shadow:0 1px 2px rgba(59,79,224,.16),0 4px 12px rgba(59,79,224,.2); }
.btn-primary:hover { color:#fff; background:var(--red-deep); box-shadow:0 6px 18px rgba(59,79,224,.23); }
.btn-ghost { color:var(--ink-2); background:#fff; border-color:var(--line-2); }
.btn-ghost:hover { color:var(--brand); border-color:#b9c1ef; background:#fafaff; }
.btn-ok { color:#059669; background:#ecfdf5; border-color:#a7f3d0; }
.btn-danger { color:#dc2626; background:#fef2f2; border-color:#fecaca; }
.form-group input,.form-group textarea,.form-group select,.comment-form textarea,.reply-form textarea {
  color:var(--ink); background:#fff; border:1px solid var(--line-2); border-radius:10px; outline:none; transition:border-color .18s,box-shadow .18s;
}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus,.comment-form textarea:focus,.reply-form textarea:focus { border-color:#8c98ed; box-shadow:var(--focus-ring); }
.form-group input:disabled { color:var(--mute); background:#f6f7f9; }
.form-group label { color:var(--ink-2); }
.agree-label input[type="checkbox"] { accent-color:var(--brand); }
.flash { border-radius:12px; box-shadow:var(--shadow); }
.flash-ok { color:#047857; background:#ecfdf5; border-color:#a7f3d0; }
.flash-err { color:#dc2626; background:#fef2f2; border-color:#fecaca; }
.flash-warn { color:#a16207; background:#fffbeb; border-color:#fde68a; }
.hp-notice { margin:0 0 24px; padding:10px 14px; color:var(--ink-3); background:rgba(255,255,255,.75); border:1px solid var(--line); border-radius:10px; font-size:12px; }
.hp-notice-dot { background:var(--brand); }
.hp-notice-closed { color:var(--ink-3); background:rgba(255,255,255,.7); border-color:var(--line); }
.hp-notice-closed .hp-notice-dot { background:var(--mute); }

/* Category pages */
body[data-cat="fupan"] { --cat-accent:#3b4fe0; --cat-soft:#eef0ff; }
body[data-cat="guping"] { --cat-accent:#ec4899; --cat-soft:#fce7f3; }
body[data-cat="xuangu"] { --cat-accent:#10b981; --cat-soft:#d1fae5; }
body[data-cat="guanzhu"] { --cat-accent:#d69e12; --cat-soft:#fef9c3; }
.cat-bar { gap:16px; margin-bottom:28px; padding:6px 0 24px; border-bottom:1px solid var(--line); }
.cat-bar-ic,.cat-head-ic-red,.cat-head-ic-gold,.cat-head-ic-teal,.cat-head-ic-violet { width:44px; height:44px; color:var(--cat-accent,var(--brand)); background:var(--cat-soft,var(--brand-soft)); border-radius:12px; }
.cat-bar-title { color:var(--ink); font:700 30px/1.25 var(--sans); letter-spacing:-.035em; }
.cat-bar-desc { margin-top:5px; color:var(--ink-3); font-size:13px; }
.cat-bar-stats { color:var(--ink-3); }
.cat-bar-stats b { color:var(--ink); font-variant-numeric:tabular-nums; }
.cat-bar-latest { color:var(--ink-3); }
.cat-layout { grid-template-columns:minmax(0,1fr) 316px; gap:28px; }
.cat-side { top:92px; }
.today-card { padding:26px 28px 22px; margin-bottom:28px; color:inherit; background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow-md); }
.today-card:hover { color:inherit; border-color:#d5daf5; box-shadow:var(--shadow-lg); transform:translateY(-3px); }
.today-head { margin-bottom:14px; }
.today-tag { padding:3px 10px; color:var(--cat-accent,var(--brand)); background:var(--cat-soft,var(--brand-soft)); border-radius:999px; font:600 11px var(--sans); letter-spacing:.03em; }
.today-date { color:var(--mute); font-size:12px; }
.today-go { color:var(--cat-accent,var(--brand)); font-weight:600; }
.today-card:hover .today-go { color:var(--cat-accent,var(--brand)); }
.today-title { color:var(--ink); font:700 24px/1.45 var(--sans); letter-spacing:-.025em; }
.today-nums { gap:12px; margin-top:20px; }
.today-num { padding:16px 8px 13px; background:#fafbfc; border:1px solid var(--line); border-radius:12px; }
.today-num b { color:var(--cat-accent,var(--brand)); font:750 30px/1.2 var(--mono); letter-spacing:-.04em; font-variant-numeric:tabular-nums; }
.today-num span { color:var(--ink-3); }
.today-quote { color:var(--ink-2); font:400 16px/1.9 var(--sans); }
.today-teaser { color:var(--ink-3); font-size:14px; line-height:1.85; }
.hist-head { margin-bottom:14px; }
.hist-head h2 { color:var(--ink); font:700 19px var(--sans); letter-spacing:-.02em; }
.hist-head span { color:var(--mute); }
.hist-grid { gap:10px; }
.hist-row { gap:12px; padding:12px 14px; background:#fff; border:1px solid var(--line); border-radius:10px; box-shadow:0 1px 2px rgba(16,24,40,.02); }
.hist-row:hover { color:inherit; border-color:#cdd4f6; box-shadow:var(--shadow); transform:translateY(-1px); }
.hist-date { color:var(--cat-accent,var(--brand)); font-size:11px; font-variant-numeric:tabular-nums; }
.hist-title { color:var(--ink-2); }
.hist-row:hover .hist-go { color:var(--cat-accent,var(--brand)); }
.datecal { background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow); }
.datecal-head { padding:16px 16px 13px; }
.datecal-h-title { color:var(--ink); font:650 15px var(--sans); letter-spacing:0; }
.datecal-body { padding:6px 14px 14px; }
.dc { color:#a5acb9; }
.dc-has { color:var(--brand); background:var(--brand-soft); }
.dc-has:hover { color:#fff; background:var(--brand); box-shadow:0 4px 10px rgba(59,79,224,.22); }
.dc-latest { color:#fff; background:var(--brand); }
.dc-today { outline-color:var(--amber); }
.dc-mini.dc-has { background:#aeb8f4; }
.dc-mini.dc-latest { background:var(--brand); }
.cal-older>summary:hover { color:var(--brand); background:var(--brand-soft); }
.reg-guide-card { color:var(--ink-2); background:linear-gradient(135deg,#eef0ff,#f7f7ff); border:1px solid #dfe3fb; border-radius:16px; }

/* Article shell, navigation and comments */
.postnav-top { margin:0 0 18px; }
.postnav-back { color:var(--ink-3); }
.postnav-back:hover { color:var(--brand); }
.postnav-mini>a,.postnav-mini>.is-off { background:#fff; border-color:var(--line); border-radius:999px; }
.postnav-mini>a:hover { color:var(--brand); background:#f8f8ff; border-color:#cbd3f7; }
.article { margin-bottom:24px; padding:32px 36px 26px; background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow); }
.article-head { padding-bottom:22px; border-bottom:1px solid var(--line); }
.article-cat { display:inline-flex; padding:3px 10px; color:var(--cat-accent,var(--brand)); background:var(--cat-soft,var(--brand-soft)); border-radius:999px; font-size:11px; letter-spacing:.04em; }
.article-title { margin-top:14px; color:var(--ink); font:700 clamp(25px,3vw,34px)/1.35 var(--sans); letter-spacing:-.035em; }
.article-meta { margin-top:14px; padding-bottom:0; border-bottom:0; color:var(--mute); font-size:12px; }
.article-source { color:var(--ink-3); }
.like-btn { color:var(--brand); background:var(--brand-soft); border:1px solid #dfe3fb; border-radius:999px; }
.like-btn:hover { background:#e2e6ff; }
.like-btn.liked { color:#fff; background:var(--brand); }
.article-body { --gf-ink:#111827; --gf-sub:#6b7280; --gf-mute:#9ca3af; --gf-line:#ebedf5; --gf-line-2:#dfe3ed; --gf-soft:#f7f8fc; --gf-brand:#3b4fe0; --gf-brand-deep:#2f3fd1; --gf-up:#ef4444; --gf-down:#10b981; --gf-warn:#eab308; padding:22px 0 10px; color:var(--ink-2); font-size:15px; line-height:1.9; }
.article-body h1,.article-body h2,.article-body h3,.article-body h4 { color:var(--ink); font-family:var(--sans); letter-spacing:-.02em; }
.article-body h2 { padding-left:12px; border-left:3px solid var(--brand); }
.article-body blockquote { color:var(--ink-3); background:#f5f6ff; border-left-color:var(--brand); }
.article-body table { border-collapse:separate; border-spacing:0; overflow:hidden; border:1px solid var(--line); border-radius:12px; }
.article-body th { color:var(--ink-2); background:#f7f8fb; border-color:var(--line); }
.article-body td { background:#fff; border-color:var(--line); }
.article-body tr:nth-child(even) td { background:#fafbfc; }
.article-body :not(pre)>code { color:var(--red-deep); background:var(--brand-soft); }
.article-foot { padding-top:20px; border-top:1px solid var(--line); }
.foot-disclaimer { color:var(--mute); font-size:12px; line-height:1.9; }
.postnav-bottom { gap:14px; margin-top:24px; }
.postnav-card { padding:17px 19px; background:#fafbfc; border:1px solid var(--line); border-radius:12px; }
.postnav-card:hover { color:inherit; background:#fff; border-color:#cbd3f7; box-shadow:var(--shadow); transform:translateY(-2px); }
.postnav-kicker { color:var(--brand); letter-spacing:.04em; }
.comments-sec { padding:26px 30px; background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow); }
.comments-title { color:var(--ink); font:700 20px var(--sans); }
.comment-form { padding:16px; background:#f8f9fc; border:1px solid var(--line); border-radius:12px; }
.comment-item { border-bottom:1px solid var(--line); }
.comment-user { color:var(--ink); }
.comment-user.admin { color:var(--brand); background:var(--brand-soft); }
.comment-login-tip { background:#f5f6ff; border:1px solid #e2e6fb; border-radius:10px; }

/* Structured article modules */
.mod { margin:20px 0; padding:20px; background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:0 1px 2px rgba(16,24,40,.025); }
.mod-head { gap:10px; padding-bottom:12px; margin-bottom:14px; border-bottom:1px solid var(--line); }
.mod-seq { color:var(--brand); background:var(--brand-soft); border-radius:7px; }
.mod-ic { color:var(--cat-accent,var(--brand)); }
.mod-title { color:var(--ink); font:650 18px var(--sans); }
.mod-count { color:var(--ink-3); background:#f3f4f6; border-radius:999px; }
.mod-nav { padding:5px; background:rgba(255,255,255,.94); border:1px solid var(--line); box-shadow:var(--shadow); }
.mod-nav a { color:var(--ink-3); }
.mod-nav a:hover { color:var(--brand); background:var(--brand-soft); }
.mod-nav-seq { color:var(--brand); }
.b-stat,.q-card,.s-card,.tile,.cl-item { background:#fafbfc; border:1px solid var(--line); box-shadow:none; }
.b-stat-n { color:var(--ink); font-variant-numeric:tabular-nums; }
.b-stat-l { color:var(--ink-3); }
.s-code { color:var(--brand); background:var(--brand-soft); border-color:#dfe3fb; }
.s-chg.up,.q-pct.up,.up { color:var(--up)!important; }
.s-chg.down,.q-pct.down,.down { color:var(--down)!important; }
.b-table-wrap { border-color:var(--line); border-radius:12px; }
.b-table thead th { color:var(--ink-2); background:#f7f8fb; border-bottom:1px solid var(--line-2); }
.b-table td { color:var(--ink-2); border-bottom:1px solid var(--line); }
.b-table tbody tr:nth-child(even) td { background:#fafbfc; }
.b-table tbody tr:hover td { background:#f5f6ff; }
.b-callout.tone-note { color:var(--ink-3); background:#f5f6f8; border-left-color:#94a3b8; }
.b-callout.tone-quote { color:#66531b; background:#fef9c3; border-left-color:#eab308; }
.b-callout.tone-logic { color:#755c12; background:#fffbeb; border-left-color:#eab308; }
.b-callout.tone-warn { color:#b45309; background:#fff7ed; border-left-color:#f97316; }
.b-callout.tone-summary { color:#fff; background:var(--brand); border-radius:12px; box-shadow:0 4px 14px rgba(59,79,224,.18); }
.bdg,.chip,.s-tag { border-radius:999px; }
.resonance { padding:24px; background:linear-gradient(135deg,#ede9fe,#f5f3ff); border:1px solid #e2dcf7; border-radius:16px; box-shadow:none; }
.resonance-title { color:#35285b; font:700 21px var(--sans); }
.resonance-count { color:#6d4cc5; background:rgba(255,255,255,.7); border-radius:999px; }
.resonance-note { color:#746790; }
.resonance-item { background:rgba(255,255,255,.75); border:1px solid rgba(139,92,246,.15); border-radius:12px; }
.resonance-code { color:#6d4cc5; }
.resonance-hits { color:#6d4cc5; background:#ede9fe; border-radius:999px; }
.resonance-mod { color:#6d4cc5; background:#f1edff; border-radius:999px; }
.mod-backtop a { color:var(--mute); }
.mod-backtop a:hover { color:var(--brand); }

/* Special-follow content */
.gz-meta-line { color:var(--ink-3); border-bottom-color:var(--line); }
.gz-meta-title { color:var(--ink); font-family:var(--sans); }
.gz-tab { border-radius:10px; }
.gz-tab:hover { background:#f5f6ff; }
.gz-tab.active { background:var(--brand-soft); }
.gz-tab.active .gz-tab-name,.gz-tab:hover .gz-tab-name { color:var(--brand); }
.gz-avatar-char { background:var(--brand); }
.gz-avatar-all { background:var(--violet); }
.gz-user-head { color:var(--ink); }
.gz-user-head::before { background:var(--brand); }
.gz-user-head::after { background:linear-gradient(90deg,var(--line),transparent); }
.gz-post { background:#fafbfc; border:1px solid var(--line); border-radius:12px; }
.gz-ai { background:#f5f6ff; border-color:#e3e6f8; border-radius:10px; }
.gz-ai-num { background:var(--brand); }
.gz-more-btn { color:var(--brand); background:#fff; border-color:#cbd3f7; }
.gz-more-btn:hover { color:#fff; background:var(--brand); }
.gz-post-body>p:first-child.dropcap::first-letter { color:var(--brand); }

/* About and content pages */
.page-head { margin-bottom:32px; padding:10px 0 24px; border-bottom:1px solid var(--line); }
.page-head h1,.page-title { color:var(--ink); font:700 34px/1.3 var(--sans); letter-spacing:-.04em; }
.page-sub { max-width:720px; margin-top:10px; color:var(--ink-3); font-size:14px; line-height:1.85; }
.ab-sec { margin:36px 0; }
.ab-h2 { margin-bottom:18px; padding-bottom:12px; color:var(--ink); border-bottom:1px solid var(--line); font:700 21px var(--sans); letter-spacing:-.025em; }
.ab-cards { gap:18px; }
.ab-card { padding:22px; background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow); }
.ab-card h3 { color:var(--ink); font:650 16px var(--sans); }
.ab-card p { color:var(--ink-3); line-height:1.85; }
.ab-stats { gap:16px; }
.ab-stat { padding:20px 14px; background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow); }
.ab-stat b { color:var(--brand); font-size:32px; letter-spacing:-.04em; font-variant-numeric:tabular-nums; }
.ab-stat span { color:var(--ink-3); }
.ab-note { color:var(--ink-3); }
.cat-cal { padding:18px; background:#fff; border:1px solid var(--line); border-radius:14px; }
.cat-cal-cell.has { background:var(--brand); }
.cat-cal-cell.today { outline-color:var(--amber); }
.ab-cat { color:var(--ink-3); background:#fff; border-color:var(--line); }
.ab-cat:hover { color:var(--brand); border-color:#cbd3f7; }
.ab-cat b { color:var(--brand); }
.ab-glossary { gap:12px; }
.ab-term { padding:17px 18px; background:#fff; border:1px solid var(--line); border-radius:12px; }
.ab-term dt { color:var(--ink); }
.ab-term dd { color:var(--ink-3); }
.ab-callout { color:var(--ink-3); background:#f5f6ff; border:1px solid #e0e4f8; border-left:3px solid var(--brand); border-radius:12px; }
.ab-callout.warn { background:#fffbeb; border-color:#fde68a; border-left-color:#eab308; }
.hp-about-link { color:var(--brand); background:#fff; border:1px solid var(--line); border-radius:10px; }

/* Legal */
.legal-page { max-width:840px; margin:0 auto; padding:36px 42px 44px; background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow); }
.legal-page h1 { color:var(--ink); font-size:30px; letter-spacing:-.035em; }
.legal-page .legal-updated { margin:6px 0 28px; padding-bottom:20px; color:var(--mute); border-bottom:1px solid var(--line); }
.legal-page h2 { margin:28px 0 10px; color:var(--ink); font-size:18px; }
.legal-page p,.legal-page li { color:var(--ink-2); line-height:1.95; }
.legal-page a { color:var(--brand); }

/* Authentication and profile */
.auth-wrap { position:relative; max-width:460px; margin:32px auto 20px; }
.auth-wrap::before { content:""; position:absolute; z-index:-1; inset:-100px -160px; background:radial-gradient(ellipse at center,rgba(226,230,255,.8),transparent 65%); pointer-events:none; }
.auth-card { padding:38px 38px 34px; background:rgba(255,255,255,.96); border:1px solid var(--line); border-radius:18px; box-shadow:0 2px 4px rgba(16,24,40,.02),0 20px 50px rgba(36,45,85,.08); }
.auth-title { color:var(--ink); font:700 27px var(--sans); letter-spacing:-.035em; }
.auth-sub { margin:8px 0 28px; color:var(--ink-3); }
.auth-alt { color:var(--ink-3); }
.auth-alt a { color:var(--brand); }
.profile-card { max-width:560px; }
.profile-sec { color:var(--ink); font:650 17px var(--sans); border-top-color:var(--line); }
.code-tip { color:var(--mute); }

/* Admin */
.admin-title { margin-bottom:20px; color:var(--ink); font:700 30px var(--sans); letter-spacing:-.035em; }
.admin-nav { gap:8px; margin-bottom:26px; padding:5px; width:max-content; max-width:100%; background:#eef0f5; border-radius:12px; }
.admin-nav a { color:var(--ink-3); background:transparent; border:0; border-radius:9px; font-size:13px; }
.admin-nav a:hover { color:var(--ink); background:rgba(255,255,255,.6); }
.admin-nav a.active { color:var(--brand); background:#fff; border:0; box-shadow:0 1px 3px rgba(16,24,40,.08); }
.admin-stats { gap:18px; margin-bottom:30px; }
.stat-card { padding:22px; text-align:left; background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow); }
.stat-card .n { color:var(--ink); font-size:36px; letter-spacing:-.05em; font-variant-numeric:tabular-nums; }
.stat-card .l { color:var(--ink-3); letter-spacing:0; }
.admin-h2 { color:var(--ink); font:650 19px var(--sans); }
.admin-table-wrap { background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow); }
.admin-table th { color:var(--ink-3); background:#f7f8fb; font-size:12px; }
.admin-table td { color:var(--ink-2); border-bottom-color:var(--line); }
.admin-table tbody tr:hover td { background:#fafbff; }
.admin-upload-card { padding:30px; background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow); }
.admin-upload-card h2 { color:var(--ink); font:650 19px var(--sans); }
.tag { border-radius:999px; }
.tag-ok { color:#047857; background:#d1fae5; }
.tag-warn { color:#a16207; background:#fef9c3; }
.tag-danger { color:#dc2626; background:#fee2e2; }
.tag-admin { color:var(--brand); background:var(--brand-soft); }

/* Registration prompts */
.reg-float-inner { background:rgba(255,255,255,.96); border:1px solid var(--line); box-shadow:0 12px 36px rgba(16,24,40,.14); }
.reg-pop-card { background:#fff; border:1px solid var(--line); border-radius:18px; box-shadow:0 24px 64px rgba(16,24,40,.18); }
.unlock-gate-card { background:#f5f6ff; border:1px solid #dfe3fb; border-radius:16px; }

/* Shared footer */
.site-footer { padding-bottom:0; background:#f3f4f6; border-top:1px solid #e5e7eb; }
.site-footer::before { display:none; }
.footer-grid { gap:48px; padding:48px 0 38px; }
.footer-logo-text { color:var(--ink); font:700 16px var(--sans); letter-spacing:-.02em; }
.footer-logo-text em { color:var(--brand); }
.footer-brand-desc { color:var(--ink-3); }
.footer-col h4 { color:var(--ink-2); letter-spacing:.04em; }
.footer-col h4::after { background:var(--brand); opacity:.55; }
.footer-col>a { color:var(--ink-3); }
.footer-col>a:hover { color:var(--brand); padding-left:0; }
.social-btn { color:var(--ink-3); background:#fff; border:1px solid var(--line-2); border-radius:9px; box-shadow:none; }
.social-btn.weibo:hover,.social-btn.mail:hover { color:#fff; background:var(--brand); box-shadow:0 5px 14px rgba(59,79,224,.2); }
.footer-bottom { color:var(--mute); border-top:1px solid #e2e4e9; }
.footer-bottom a { color:var(--ink-3); }
.footer-bottom a:hover { color:var(--brand); }

/* Deep legacy-module normalization */
.article-body .b-callout.tone-quote { color:#2d3158; background:linear-gradient(120deg,#f2f4ff 0%,#fff 70%); border:1px solid #dfe3fb; border-left:4px solid var(--gf-brand); box-shadow:0 1px 3px rgba(59,79,224,.05); }
.article-body .b-callout.tone-quote::before { color:var(--gf-brand-deep); background:#e9edff; border-color:#d5dcfb; }
.article-body .b-callout.tone-logic { border-left-color:#cfd5e5; }
.article-body .b-callout.tone-warn { color:#8a5a09; background:#fffbeb; border-left-color:var(--gf-warn); }
.article-body .b-callout.tone-summary { color:#fff; background:var(--brand); border-radius:12px; box-shadow:0 4px 14px rgba(59,79,224,.18); }
.article-body .b-boards .bb-item { border-left-color:rgba(59,79,224,.35); }
.article-body .b-boards .bb-item::before { background:#eef0ff; }
.article-body .s-tag.tag-top { color:var(--gf-brand-deep); background:#eef0ff; border-color:#d5dcfb; }
.article-body .b-chips .chip.tone-h { color:var(--gf-brand-deep); background:#eef0ff; border-color:#d5dcfb; }
.article-body .kpi { box-shadow:inset 0 -.45em 0 rgba(59,79,224,.12); }
.article-body .gp-wiki { color:var(--gf-brand-deep); background:#eef0ff; border-bottom-color:rgba(59,79,224,.38); }
.article-body .gp-wiki:hover { background:#e0e5ff; }
.gp-rail-item.is-active { background:#eef0ff; }
.bdg.ok,.bdg.cm { color:var(--brand); background:#eef0ff; border-color:#d5dcfb; }
.bdg.muted,.chip,.b-empty { background:#f7f8fa; }
.bdg.h250 { background:var(--brand); }
.t-num { color:var(--brand); background:#eef0ff; }
.bar { background:#eef0f5; }
.b-text th,.b-table thead th,.admin-table th { background:#f7f8fb; }
.b-checklist.tone-warn .cl-item { background:#fff7ed; border-color:#fed7aa; }
.hs-hot-chip { background:#eef0ff; border-color:#d5dcfb; }
.hs-concept-head { background:#f7f8fb; }
.hs-stock:hover { background:#f5f6ff; }
.hs-concept .hs-stock::before { background:linear-gradient(rgba(59,79,224,.22),rgba(59,79,224,.06)); }
.hs-concept .hs-stock::after { box-shadow:0 0 0 3px rgba(59,79,224,.14); }
.hs-ltype.cm { color:var(--brand); background:#eef0ff; }
.hs-block { color:var(--ink-3); background:#f3f4f6; border-color:var(--line); }
.gz-meta-time::before,.gz-post-time::before { background:var(--brand); }
.gz-meta-count { color:var(--ink-3); background:#f3f4f6; }
.gz-disc-box { color:var(--ink-3); background:#f7f8fc; border-color:var(--line-2); }
.gz-tab.active::after { background:var(--brand); }
.gz-tab.active .gz-avatar { box-shadow:0 0 0 2px var(--brand),0 2px 6px rgba(16,24,40,.12); }
.gz-tab.active { background:var(--brand-soft); box-shadow:none; }
.gz-user-name,.gz-post-body { color:var(--ink-2); }
.gz-user-count,.gz-post-stats { color:var(--mute); }
.gz-post { border:1px solid var(--line); border-radius:12px; box-shadow:0 1px 2px rgba(16,24,40,.025); }
.gz-post:hover { box-shadow:var(--shadow); }
.gz-post-body blockquote { color:var(--ink-3); background:#f5f6f8; border-left-color:#cbd5e1; }
.gz-post-grid .gz-ai { background:#f5f6ff; border:1px solid #dfe3fb; border-left:3px solid var(--brand); border-radius:10px; }
.gz-ai-badge { background:var(--brand); }
.gz-ai-text { color:var(--ink-3); }
.gz-ai-point+.gz-ai-point { border-top-color:#dfe3fb; }
.gz-ai-point:hover { background:rgba(59,79,224,.05); }
.gz-user+.gz-user::before { color:#cbd5e1; }

@media(max-width:1120px){
  .main-nav a { padding:8px; font-size:12px; }
  .logo-text em { display:none; }
}
@media(max-width:960px){
  .site-header { height:64px; }
  .header-inner { flex-wrap:nowrap; gap:12px; padding-top:0; padding-bottom:0; }
  .main-nav { display:none; position:absolute; left:16px; right:16px; top:64px; width:auto; flex:none; order:initial; overflow:visible; padding:10px; background:rgba(255,255,255,.98); border:1px solid var(--line); border-radius:12px; box-shadow:0 16px 32px rgba(16,24,40,.12); }
  .main-nav.is-open { display:grid; grid-template-columns:1fr 1fr; }
  .main-nav a { padding:11px 12px; font-size:13px; }
  .main-nav a.active { background:var(--brand-soft); }
  .main-nav a.active::after { display:none; }
  .header-user { margin-left:auto; }
  .nav-toggle { display:flex; flex-direction:column; justify-content:center; gap:4px; width:36px; height:36px; padding:8px; border:1px solid var(--line); border-radius:8px; background:#fff; cursor:pointer; }
  .nav-toggle span { width:100%; height:1.5px; border-radius:2px; background:#4b5563; }
  .cat-layout { grid-template-columns:minmax(0,1fr); }
  .cat-side { position:static; }
}
@media(max-width:700px){
  .main { padding:24px 16px 60px; }
  .header-user .btn-ghost { display:none; }
  .header-user .btn-primary { padding:7px 11px; font-size:11px; }
  .logo-text { font-size:14px; }
  .logo-mark { width:32px; height:32px; }
  .cat-bar { align-items:flex-start; margin-bottom:20px; padding-bottom:20px; }
  .cat-bar-title { font-size:25px; }
  .cat-bar-stats { padding-left:60px; font-size:11px; white-space:normal; flex-wrap:wrap; }
  .today-card { padding:20px 18px; }
  .today-title { font-size:20px; }
  .today-num b { font-size:26px; }
  .article { padding:22px 18px; border-radius:14px; }
  .article-title { font-size:25px; }
  .article-body { font-size:14px; }
  .article-meta { gap:8px 12px; }
  .comments-sec { padding:20px 18px; }
  .mod { padding:16px 14px; }
  .resonance { padding:18px; }
  .page-head h1,.page-title { font-size:28px; }
  .ab-stats { gap:10px; }
  .legal-page { padding:26px 22px; }
  .legal-page h1 { font-size:26px; }
  .auth-wrap { margin-top:16px; }
  .auth-card { padding:28px 22px; }
  .admin-nav { width:100%; overflow-x:auto; flex-wrap:nowrap; }
  .admin-nav a { flex:none; }
  .admin-stats { gap:10px; }
  .stat-card { padding:16px; }
  .stat-card .n { font-size:30px; }
}
@media(max-width:480px){
  .header-user { display:flex; margin-left:auto; margin-right:44px; }
  .header-user .user-chip { display:none; }
  .header-user .btn-ghost { display:inline-flex; padding:7px 9px; font-size:11px; }
  .nav-toggle { position:absolute; right:16px; top:14px; }
  .today-head { flex-wrap:wrap; }
  .today-go { margin-left:auto; }
  .ab-stat { padding:16px 8px; }
  .ab-stat b { font-size:27px; }
  .reg-float-tip { display:none; }
}
@media(prefers-reduced-motion:reduce){
  .today-card,.hist-row,.postnav-card,.kcard,.btn { transition:none; }
}
