/* ============================================================
   legacy-fix.css — 由 .site-recon/style.css 自动生成（v2）

   作用：中和原站的粗野主义视觉语法，使其在新视觉系统下自洽。
   检测项：硬边框 / 硬偏移阴影 / 纯黄色块（含 var(--yellow)）/
           文字偏移阴影 / 危险条纹 / CRT 扫描线 / 旋转贴纸 /
           Anton 装饰体 / 噪点纹理 / 跑马灯，以及浅色模式对比度。

   生成器：.assets/gen_legacy_fix.py —— 原站 CSS 变更后重跑即可。
   ============================================================ */

body::after { background-image: none !important; background-size: auto !important }
.stripes { background: var(--surface) !important; color: var(--fg) !important; background-image: none !important; background-size: auto !important }
.marquee { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important; background: var(--surface) !important; color: var(--fg) !important }
.marquee-track { animation: none !important }
.nav-logo .logo-mark { background: var(--surface) !important; color: var(--fg) !important }
.nav-item.nav-on .chev { transform: none !important }
body.mobile-open .nav-burger span:first-child { transform: none !important }
body.mobile-open .nav-burger span:last-child { transform: none !important }
.section-head .head-tag { background: var(--surface) !important; color: var(--fg) !important; transform: none !important }
.hero::before { background-image: none !important; background-size: auto !important }
.hero-tag { transform: none !important }
.hero-title .row-en { text-shadow: none !important }
.btn-primary { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important; box-shadow: none !important; background: var(--surface) !important; color: var(--fg) !important }
.btn-primary:hover { box-shadow: none !important }
.btn-ghost { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important }
.tv { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important; box-shadow: none !important }
.tv-screen::after { background-image: none !important; background-size: auto !important }
.tv-rec i { animation: none !important }
.tv-date { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important; background: var(--surface) !important; color: var(--fg) !important }
.cd-num { text-shadow: none !important }
.tv-colon { animation: none !important }
.tv-progress { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important }
.cd-progress-bar { background: var(--surface) !important; color: var(--fg) !important; background-image: none !important; background-size: auto !important }
.tv-quote { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important; background: var(--surface) !important; color: var(--fg) !important }
.subject-card { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important; box-shadow: none !important }
.subject-card:hover { box-shadow: none !important; transform: none !important }
.subject-card::before { background: var(--surface) !important; color: var(--fg) !important; transform: none !important }
.subject-card .card-icon { transform: none !important }
.manifesto { background: var(--surface) !important; color: var(--fg) !important }
.page-hero::before { background-image: none !important; background-size: auto !important }
.page-tag { transform: none !important }
.page-hero h1 { text-shadow: none !important }
.unit-head h2 { background: transparent !important; padding: 0 !important; border-left: none !important; border-radius: 0 !important; color: var(--fg) !important; transform: none !important }
.chapter-card { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important }
.chapter-card:hover { box-shadow: none !important; background: var(--surface) !important; color: var(--fg) !important }
.chip-ready::before { animation: none !important }
.empty-state { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important }
.article-body h2 { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important; background: transparent !important; padding: 0 !important; border-left: none !important; border-radius: 0 !important; color: var(--fg) !important }
.article-body blockquote { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important; background: var(--surface) !important; color: var(--fg) !important }
.article-body pre { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important }
.article-body p code, .article-body li code { background: var(--surface) !important; color: var(--fg) !important }
.skill-chips li { background: var(--surface) !important; color: var(--fg) !important; transform: none !important }
.skill-chips li:nth-child(even) { transform: none !important }
.site-footer { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important; background: var(--surface) !important; color: var(--fg) !important }
.intro-logo { text-shadow: none !important }
.intro-bar { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important }
.intro-bar i { background: var(--surface) !important; color: var(--fg) !important; background-image: none !important; background-size: auto !important }
.intro-text { animation: none !important }
.deco-1 { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important; background: var(--surface) !important; color: var(--fg) !important; transform: none !important }
.deco-2 { transform: none !important }
.deco-3 { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important; transform: none !important }
.eq i { background: var(--surface) !important; color: var(--fg) !important }
.btn-primary:active { box-shadow: none !important }
.cd-fallback .cd-days-text { text-shadow: none !important }
.sch-panel { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important; box-shadow: none !important }
.sch-panel::after { background-image: none !important; background-size: auto !important }
.sch-now-badge.t-study { background: var(--surface) !important; color: var(--fg) !important }
.sch-now-range { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important; background: var(--surface) !important; color: var(--fg) !important }
.sch-clock { text-shadow: none !important }
.sch-progress { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important }
.sch-progress-bar { background: var(--surface) !important; color: var(--fg) !important; background-image: none !important; background-size: auto !important }
.sch-checkin-card, .sch-note-card { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important; box-shadow: none !important }
.sch-note-card { box-shadow: none !important }
.ci-btn { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important; box-shadow: none !important; background: var(--surface) !important; color: var(--fg) !important }
.ci-btn:hover { box-shadow: none !important }
.ci-btn:active { box-shadow: none !important }
.ci-stat { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important }
.sch-note-card textarea { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important }
.sch-note-card textarea:focus { box-shadow: none !important }
.ci-save { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important }
.ci-empty { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important }
.ci-card { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important; background: var(--surface) !important; color: var(--fg) !important }
.sch-tabs button { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important }
.sch-tabs button.active { background: var(--surface) !important; color: var(--fg) !important }
.sch-table { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important }
.sch-table th { background: var(--surface) !important; color: var(--fg) !important }
.sch-table tr.now td { background: var(--surface) !important; color: var(--fg) !important }
.sch-table tr.now td:first-child::before { animation: none !important }
.sch-tag-study { background: var(--surface) !important; color: var(--fg) !important }
.mega-tile.cur { background: var(--surface) !important; color: var(--fg) !important }
.ic-math { background: var(--surface) !important; color: var(--fg) !important }
.mm-acc.open .mm-acc-btn .chev { transform: none !important }
.search-item:hover, .search-item.sel { background: var(--surface) !important; color: var(--fg) !important }
.file-card { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important }
.file-card:hover { box-shadow: none !important; background: var(--surface) !important; color: var(--fg) !important }
.file-type { background: var(--surface) !important; color: var(--fg) !important }
.file-dl { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important; background: var(--surface) !important; color: var(--fg) !important }
.mc-status-card { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important; box-shadow: none !important }
.mc-addr { background: var(--surface) !important; color: var(--fg) !important }
.btn-copy { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important; background: var(--surface) !important; color: var(--fg) !important }
.mc-step { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important }
.ics-card { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important }
.nb-loc { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important; background: var(--surface) !important; color: var(--fg) !important }
.nb-tip { background: var(--surface) !important; color: var(--fg) !important }
.lec-link { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important; background: var(--surface) !important; color: var(--fg) !important }
.pomo-dot { animation: none !important }
.pomo-open { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important; background: var(--surface) !important; color: var(--fg) !important }
.pomo-open:hover { background: var(--surface) !important; color: var(--fg) !important }
.pomo-frame { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important }
.pomo-tip { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important }
.rk-mine-card { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important }
.rk-mine-score { background: var(--surface) !important; color: var(--fg) !important }
.rk-me td { background: var(--surface) !important; color: var(--fg) !important }
.rk-act:hover { background: var(--surface) !important; color: var(--fg) !important }
.nc-card { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important; box-shadow: none !important }
.nc-card::before { background: var(--surface) !important; color: var(--fg) !important }
.nc-card:hover { box-shadow: none !important; background: var(--surface) !important; color: var(--fg) !important; transform: none !important }
.farm-topbar { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important; box-shadow: none !important }
.farm-btn { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important; box-shadow: none !important }
.farm-btn:hover { box-shadow: none !important }
.farm-btn:active { box-shadow: none !important }
.farm-btn-yellow { background: var(--surface) !important; color: var(--fg) !important }
.farm-scene { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important; box-shadow: none !important }
.farm-sun { box-shadow: none !important }
.farm-barn { box-shadow: none !important }
.d-clover2 { transform: none !important }
.d-carrot { transform: none !important }
.fm-animal .fm-img { box-shadow: none !important }
.fm-animal .fm-prod { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important }
.farm-pet img { box-shadow: none !important }
.farm-events { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important }
.farm-card { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important; box-shadow: none !important }
.farm-card:hover { box-shadow: none !important }
.farm-card .fc-price { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important }
.farm-card .farm-btn { box-shadow: none !important }
.farm-modal-card { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important; box-shadow: none !important }
.farm-modal-card .fm-act { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important; box-shadow: none !important; background: var(--surface) !important; color: var(--fg) !important }
.farm-modal-card .fm-act:hover { box-shadow: none !important }
.k-server-icon { font-family: var(--font-sans) !important }
.k-server-head { font-family: var(--font-sans) !important }
.k-login-card h2 { font-family: var(--font-sans) !important }
.logo b { background: var(--surface) !important; color: var(--fg) !important }
.now { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important; box-shadow: none !important }
.now .tag { background: var(--surface) !important; color: var(--fg) !important; transform: none !important }
.bar i { background: var(--surface) !important; color: var(--fg) !important }
.block { border-width: 1px !important; border-style: solid !important; border-color: var(--ln-hair) !important }
.block.cur { box-shadow: none !important }
.cat-study { background: var(--surface) !important; color: var(--fg) !important }

/* ---------- 纯装饰元素：视觉退场（DOM 与文案全部保留，一行即可恢复）---------- */
.bg-word { display: none !important; }
.hero-deco { display: none !important; }
.marquee { display: none !important; }
.stripes { display: none !important; }
.tv-top { display: none !important; }
.tv-hint { display: none !important; }
.cd-hint { display: none !important; }
.tv-meta { display: none !important; }
.intro-text { display: none !important; }
.tv > i { display: none !important; }
.tv .tv-pin { display: none !important; }
.tv::before, .tv::after, .tv-screen::before, .tv-screen::after { display: none !important; content: none !important; }

/* 开场加载幕：原站要 4.9s 才退场，这里直接跳过（元素保留，main.js 逻辑不受影响）*/
.intro { display: none !important; }

/* ============================================================
   142 条浅色模式对比度覆盖
   原站按「深色底」设计的纸白透明色，在白底上对比度不足，
   此处按透明度映射到语义文字 / 面板 / 描边令牌。
   ============================================================ */
html[data-theme="light"] body::before { content: none !important; }
  body { color: var(--fg) !important }
  .nav-logo { color: var(--fg) !important }
  .nav-logo:hover { color: var(--fg) !important }
  .nav-item > a { color: var(--fg) !important }
  .nav-item > a:hover { background: transparent !important; color: var(--fg) !important }
  .nav-item.nav-on > a { background: transparent !important; color: var(--fg) !important }
  .nav-icon-btn { color: var(--fg) !important }
  .nav-icon-btn:hover { background: transparent !important; color: var(--fg) !important }
  .nav-burger span { background: var(--surface) !important }
  .section-head p { color: var(--fg) !important }
  .hero-title .row-cn { color: var(--fg) !important }
  .hero-title .row-cn.fill { color: var(--fg) !important }
  .hero-sub { color: var(--fg) !important }
  .btn-ghost { color: var(--fg) !important }
  .btn-ghost:hover { background: var(--surface) !important }
  .tv { background: var(--surface) !important }
  .tv::before, .tv::after { color: var(--fg) !important }
  .tv-label { color: var(--fg) !important }
  .cd-unit-label { color: var(--fg-2) !important }
  .tv-progress { background: transparent !important }
  .tv-meta { color: var(--fg-2) !important }
  .tv-quote { color: var(--fg) !important }
  .subject-card { background: var(--surface) !important }
  .subject-card .subject-meta { color: var(--fg) !important }
  .page-hero p { color: var(--fg) !important }
  .unit-head .unit-note { color: var(--fg-2) !important }
  .chapter-card { background: var(--surface) !important }
  .chapter-card .ch-num { color: var(--fg-2) !important }
  .chip-empty { border-color: var(--ln-hair) !important; color: var(--fg-2) !important; color: var(--muted) !important }
  .chip-empty::before { background: var(--surface-2) !important }
  .empty-state p { color: var(--fg) !important }
  .article-hero .article-meta { color: var(--fg-2) !important }
  .article-body { color: var(--fg) !important }
  .article-body h2 { color: var(--fg) !important }
  .article-body h3 { color: var(--fg) !important }
  .article-body blockquote { color: var(--fg) !important }
  .article-body pre { background: var(--surface) !important }
  .about-block p { color: var(--fg) !important }
  .footer-inner { color: var(--fg-2) !important }
  .footer-nav a { color: var(--fg) !important }
  .intro-text { color: var(--fg) !important }
  .deco-3 { color: var(--fg) !important }
  .cd-fallback .cd-fallback-unit { color: var(--fg) !important }
  .cd-sub-unit { color: var(--fg) !important }
  .cd-sub-en { color: var(--fg-2) !important }
  .sch-panel { background: var(--surface) !important }
  .sch-now-badge { background: var(--surface) !important }
  .sch-now-badge.t-life { background: var(--surface) !important }
  .sch-now-badge.t-idle { color: var(--fg) !important }
  .sch-now-name { color: var(--fg) !important }
  .sch-sub { color: var(--fg-2) !important }
  .sch-progress { background: transparent !important }
  .sch-meta { color: var(--fg-2) !important }
  .sch-checkin-card, .sch-note-card { background: var(--surface) !important }
  .ci-save { color: var(--fg) !important }
  .ci-empty { color: var(--fg-2) !important }
  .ci-card { background: var(--surface) !important }
  .ci-time { color: var(--fg-2) !important }
  .ci-del { color: var(--fg-2) !important }
  .ci-note { color: var(--fg) !important }
  .ci-note-empty { color: var(--fg-2) !important }
  .sch-tabs button { color: var(--fg) !important }
  .sch-tabs button:hover { border-color: var(--ln-hair) !important; color: var(--fg) !important }
  .sch-table { background: var(--surface) !important }
  .sch-table td { color: var(--fg) !important }
  .sch-table .sch-time { color: var(--fg) !important }
  .sch-tag-life { color: var(--fg) !important }
  .sch-foot { color: var(--fg-2) !important }
  .mega-tile:hover { background: transparent !important }
  .ic-english { background: var(--surface) !important }
  .mega-name { color: var(--fg) !important }
  .mega-tagline { color: var(--fg-2) !important }
  .mega-list a { color: var(--fg) !important }
  .mega-list a i { color: var(--fg-2) !important }
  .mega-list a:hover { background: transparent !important; color: var(--fg) !important }
  .mega-col h5 { color: var(--fg-2) !important }
  .mm-item > a, .mm-acc-btn { color: var(--fg) !important }
  .mm-sub a:active { background: transparent !important }
  .mm-txt b { color: var(--fg) !important }
  .mm-txt i { color: var(--fg-2) !important }
  .mm-search-row button { color: var(--fg) !important }
  .search-glyph { color: var(--fg-2) !important }
  .search-input { color: var(--fg) !important }
  .search-input::placeholder { color: var(--muted) !important }
  .search-close { background: transparent !important; color: var(--fg-2) !important }
  .search-close:hover { background: transparent !important; color: var(--fg) !important }
  .search-item .si-crumb { color: var(--fg-2) !important }
  .search-item .si-title { color: var(--fg) !important }
  .search-empty { color: var(--fg-2) !important }
  .search-hint { color: var(--fg-2) !important }
  .search-hint b { color: var(--fg-2) !important }
  .file-card { background: var(--surface) !important }
  .file-info h4 { color: var(--fg) !important }
  .file-info p { color: var(--fg-2) !important }
  .mc-status-card { background: var(--surface) !important }
  .mc-state { color: var(--fg) !important }
  .mc-sub { color: var(--fg-2) !important }
  .mc-step { background: var(--surface) !important }
  .mc-step h4 { color: var(--fg) !important }
  .mc-step p { color: var(--fg) !important }
  .ics-card { background: var(--surface) !important }
  .ics-card li { color: var(--fg) !important }
  .ics-card li b { color: var(--fg) !important }
  .ics-card p { color: var(--fg) !important }
  .ics-note { color: var(--fg-2) !important }
  .lec-desc { color: var(--fg-2) !important }
  .nb p, .nb li { color: var(--fg) !important }
  .nb b { color: var(--fg) !important }
  .nb-loc { color: var(--fg) !important }
  .nb-tip { color: var(--fg) !important }
  .pomo-bar-title { color: var(--fg) !important }
  .pomo-tip { background: var(--surface) !important }
  .pomo-tip span { color: var(--fg) !important }
  .rk-mine-card { background: var(--surface) !important }
  .rk-mine-card span { color: var(--fg-2) !important }
  .rk-num { color: var(--fg) !important }
  .rk-name { color: var(--fg) !important }
  .rk-act { color: var(--fg) !important }
  .nc-card { background: var(--surface) !important }
  .nc-card p { color: var(--fg) !important }
  .nc-arrow { color: var(--fg) !important }
  .farm-topbar { background: var(--surface) !important }
  .farm-stat span { color: var(--fg-2) !important }
  .farm-hint { color: var(--fg-2) !important }
  .farm-events { background: var(--surface) !important }
  .farm-sec-title { color: var(--fg) !important }
  .farm-events .fe-row { color: var(--fg) !important }
  .farm-events .fe-row .fe-time { color: var(--fg-2) !important }
  .farm-modal-card .fm-close { background: var(--surface) !important; color: var(--fg) !important }
  body { background: var(--surface) !important; color: var(--fg) !important }
  .date { color: var(--fg-2) !important }
  .now { background: var(--surface) !important }
  .now .tag.sleep { color: var(--fg) !important }
  .now .range { color: var(--fg-2) !important }
  .clock small { color: var(--fg-2) !important }
  .bar { background: transparent !important }
  .next { color: var(--fg) !important }
  .sec-title { color: var(--fg-2) !important }
  .block { background: var(--surface) !important }
  .block .time { color: var(--fg) !important }
  .cat-rest { background: var(--surface-2) !important; color: var(--fg) !important }
  .foot p { color: var(--fg-2) !important }