:root{--pd:#B33A2B;--pd-ink:#0B0B0B;--pd-paper:#F2EEE7;}
/* ============================================================
   Thomas English · Plan D 统一覆盖样式表（CSS-Only 换肤）
   用法：在各板块原 <style> 之后注入本表 + plan-d-system.css
   原则：HTML/JS 零改动，仅靠级联顺序覆盖原有蓝紫卡片风
   分层：L1 全局基座 / L2 各家族 chrome / L3 应用组件通用化
   ============================================================ */

/* ---------- L1 全局基座 ---------- */
html,body{
  background:var(--paper)!important;
  color:var(--ink)!important;
  font-family:var(--sans)!important;
}
body{ -webkit-font-smoothing:antialiased; }
::selection{background:var(--pd);color:var(--paper);}
a{color:inherit;}

/* 杀掉渐变装饰条 / 彩色顶边 */
.top-accent,.unify-bar .accent,.boot,.notice-grad{display:none!important;}
body.has-unify-bar{padding-top:0!important;}

/* 标题族 → Didone 衬线 */
h1,h2,h3,.app-title,.section-title,.brand-title,.login-box h1,.dialog h3,.panel h3,.mod-head .t{
  font-family:var(--serif)!important;
  font-weight:500!important;
  letter-spacing:-.02em!important;
  color:var(--ink)!important;
  line-height:1.05!important;
}
h1{font-size:clamp(40px,7vw,92px)!important;}
h2{font-size:clamp(28px,4vw,48px)!important;}
h3{font-size:clamp(20px,2.6vw,30px)!important;}
.sub,.lead p,.meta,.tip,.hint,.muted,#who,.topbar .who{
  font-family:var(--serif)!important;font-style:italic!important;
  color:var(--muted)!important;font-weight:400!important;
}

/* 按钮族 → Plan D 药丸 */
.btn,.btn-main,.btn.purple,.btn-block,.auth-go,.uc-btn,.mini,.seg button,.cat-tab,.nav-chip,.tabs button,.role-tabs button,.grid-names button,.icon-btn{
  background:none!important;
  border:1px solid var(--line-soft)!important;
  border-radius:999px!important;
  color:var(--ink)!important;
  box-shadow:none!important;
  text-shadow:none!important;
  font-family:var(--sans)!important;
  font-size:11px!important;
  letter-spacing:.18em!important;
  text-transform:uppercase!important;
  font-weight:600!important;
  padding:10px 20px!important;
  cursor:pointer;
  transition:all .25s ease!important;
  background-image:none!important;
}
.btn:hover,.btn-main:hover,.mini:hover,.seg button:hover,.cat-tab:hover,.nav-chip:hover,.tabs button:hover,.icon-btn:hover{
  background:var(--ink)!important;color:var(--paper)!important;border-color:var(--ink)!important;
}
.btn.ghost,.btn-ghost,.btn-back{background:none!important;color:var(--muted)!important;}
.btn.ghost:hover,.btn-ghost:hover{background:var(--ink)!important;color:var(--paper)!important;}
.btn.danger,.mini.danger,.btn-sm-del{border-color:rgba(179,58,43,.45)!important;color:var(--pd)!important;}
.btn.danger:hover,.mini.danger:hover{background:var(--pd)!important;color:#fff!important;border-color:var(--pd)!important;}
/* 激活态 */
.seg button.on,.cat-tab.on,.nav-chip.on,.tabs button.on,.role-tabs button.on,.grid-names button.on,.chip.on{
  background:var(--ink)!important;color:var(--paper)!important;border-color:var(--ink)!important;
}

/* 输入族 → 下划线 */
input[type=text],input[type=password],input[type=search],input[type=number],select,textarea,.search,.search-box input,.field input,.uc-fld input{
  background:none!important;
  border:0!important;
  border-bottom:1px solid var(--line-soft)!important;
  border-radius:0!important;
  box-shadow:none!important;
  color:var(--ink)!important;
  font-family:var(--serif)!important;
  font-size:17px!important;
  padding:10px 2px!important;
  outline:none!important;
}
select{border:1px solid var(--line-soft)!important;border-radius:2px!important;padding:8px 10px!important;font-family:var(--mono)!important;font-size:12px!important;}
input:focus,textarea:focus,.search:focus{border-bottom-color:var(--pd)!important;}
label,.field label,.uc-fld label{
  font-size:9.5px!important;letter-spacing:.22em!important;text-transform:uppercase!important;
  color:var(--muted)!important;font-weight:600!important;
}

/* 标签/徽章族 → 极小药丸 */
.tag,.chip,.badge,.unit-chip,.badge.good,.badge.warn,.badge.bad,.badge.blue{
  background:none!important;
  border:1px solid var(--hairline)!important;
  border-radius:999px!important;
  color:var(--muted)!important;
  font-family:var(--sans)!important;
  font-size:9.5px!important;
  letter-spacing:.16em!important;
  text-transform:uppercase!important;
  font-weight:600!important;
  padding:3px 10px!important;
  box-shadow:none!important;
}
.badge.good{color:var(--ok)!important;border-color:rgba(47,93,74,.4)!important;}
.badge.warn{color:var(--warn)!important;border-color:rgba(154,107,18,.4)!important;}
.badge.bad{color:var(--pd)!important;border-color:rgba(179,58,43,.4)!important;}

/* 隐藏装饰图标 */
.ic,.ico,.card .ic svg,.action-card .ico{display:none!important;}

/* 表格 → 细线 */
table,.tb,.sc-tb{border-collapse:collapse!important;width:100%;}
th,td{border-bottom:1px solid var(--hairline)!important;background:none!important;color:var(--ink)!important;}
th{font-size:9.5px!important;letter-spacing:.2em!important;text-transform:uppercase!important;color:var(--muted)!important;font-weight:600!important;}
td{font-family:var(--serif)!important;font-size:15px!important;}

/* 弹层族 → Plan D 模态 */
.mask,.modal-mask,#auth-gate,.login-wrap{
  background:rgba(11,11,11,.5)!important;
  -webkit-backdrop-filter:blur(3px)!important;backdrop-filter:blur(3px)!important;
}
#auth-gate{background:var(--paper)!important;}
.modal,.dialog,.login-card,.login-box,#auth-gate .card{
  background:var(--card)!important;
  border:1px solid var(--rule)!important;
  border-radius:3px!important;
  box-shadow:0 40px 90px -30px rgba(11,11,11,.5)!important;
  position:relative;
  color:var(--ink)!important;
}
.modal::before,.dialog::before,.login-card::before{
  content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--pd);
}

/* 页脚族 */
footer.app,footer.site,.footer{
  background:var(--paper)!important;
  border-top:1px solid var(--hairline)!important;
  color:var(--muted)!important;
  font-size:10px!important;letter-spacing:.28em!important;text-transform:uppercase!important;
  box-shadow:none!important;
}

/* ---------- L2 家族 A chrome（resource/essay/grammar/hw/novels） ---------- */
header.app{
  background:var(--paper)!important;color:var(--ink)!important;
  border-bottom:1px solid var(--hairline)!important;
  padding:20px 48px!important;box-shadow:none!important;
  position:sticky;top:0;z-index:40;
}
.app-mark{
  background:none!important;color:var(--ink)!important;
  width:auto!important;height:auto!important;border-radius:0!important;
  font-family:var(--serif)!important;font-style:italic!important;font-weight:500!important;
  font-size:24px!important;line-height:1!important;
}
.app-mark::after{content:".";color:var(--pd);}
.app-title{font-size:22px!important;}
.app-sub{font-size:11px!important;letter-spacing:.2em!important;text-transform:uppercase!important;opacity:1!important;color:var(--muted)!important;}
.app-nav a,.app-nav .res-back{
  color:var(--muted)!important;opacity:1!important;
  font-size:11px!important;letter-spacing:.22em!important;text-transform:uppercase!important;font-weight:500!important;
  margin-left:22px!important;position:relative;
}
.app-nav a:hover{color:var(--ink)!important;}
.home-back{
  position:static!important;background:none!important;color:var(--muted)!important;
  box-shadow:none!important;border-radius:0!important;
  font-size:10px!important;letter-spacing:.24em!important;text-transform:uppercase!important;font-weight:600!important;
  padding:0!important;margin:0 18px 0 0!important;
}
.home-back:hover{color:var(--pd)!important;}
.wrap{max-width:1200px!important;margin:0 auto!important;padding:clamp(40px,6vh,72px) 48px 64px!important;}
.lead,.head{text-align:left!important;margin-bottom:clamp(24px,4vh,40px)!important;}
.lead h1,.head h1{margin:0 0 12px!important;}

/* 卡片网格 → 编号细线行 */
.grid{display:block!important;background:none!important;border:0!important;gap:0!important;}
.grid .card,a.card,.card{
  display:grid!important;
  grid-template-columns:56px 1fr auto!important;
  gap:24px!important;align-items:center!important;
  background:none!important;
  border:0!important;border-top:1px solid var(--line-soft)!important;
  border-radius:0!important;box-shadow:none!important;
  padding:24px 0!important;min-height:0!important;
  position:relative;transition:padding .5s cubic-bezier(.2,.7,.2,1)!important;
}
.grid .card:last-child,a.card:last-child{border-bottom:1px solid var(--line-soft)!important;}
.grid .card:hover,a.card:hover{padding-left:16px!important;transform:none!important;box-shadow:none!important;background:none!important;}
.card h3{font-size:clamp(20px,2.6vw,30px)!important;margin:0!important;}
.card p{font-family:var(--sans)!important;font-style:normal!important;font-size:13px!important;color:var(--muted)!important;margin:6px 0 0!important;}
.card .btn,.card .btn-main{
  justify-self:end!important;width:44px!important;height:44px!important;padding:0!important;
  border-radius:50%!important;display:grid!important;place-items:center!important;
  font-size:0!important; /* 隐藏文字，用 ::after 箭头 */
}
.card .btn::after,.card .btn-main::after{content:"→";font-size:16px;letter-spacing:0;}
.card .btn:hover,.card .btn-main:hover{background:var(--ink)!important;color:var(--paper)!important;transform:rotate(-45deg)!important;}
.tag-row{grid-column:2!important;margin-top:6px!important;display:flex!important;gap:8px!important;flex-wrap:wrap!important;}

/* ---------- L2 admin chrome ---------- */
#login{min-height:100vh;display:flex!important;align-items:center!important;justify-content:center!important;background:var(--paper)!important;}
.login-box{background:var(--card)!important;border:1px solid var(--rule)!important;border-radius:3px!important;padding:48px!important;box-shadow:none!important;max-width:520px!important;}
.topbar{
  background:var(--paper)!important;border-bottom:1px solid var(--hairline)!important;
  color:var(--ink)!important;box-shadow:none!important;padding:18px 48px!important;
}
.topbar .brand,.brand{
  font-family:var(--serif)!important;font-style:italic!important;font-weight:500!important;
  font-size:22px!important;color:var(--ink)!important;
}
.topbar .brand small,.brand small{
  font-family:var(--sans)!important;font-style:normal!important;font-size:10px!important;
  letter-spacing:.24em!important;text-transform:uppercase!important;color:var(--muted)!important;margin-left:12px!important;
}
.shell{background:var(--paper)!important;}
.side{
  background:var(--paper)!important;border-right:1px solid var(--hairline)!important;
  color:var(--ink)!important;
}
.side a,.side button{color:var(--muted)!important;border-radius:0!important;}
.side a.on,.side a.active,.side button.on{color:var(--pd)!important;background:none!important;border-left:2px solid var(--pd)!important;}
.main{background:var(--paper)!important;color:var(--ink)!important;}

/* ---------- L2 xueqing chrome ---------- */
.unify-bar{
  background:var(--paper)!important;border-bottom:1px solid var(--hairline)!important;
  box-shadow:none!important;height:52px!important;position:sticky!important;top:0!important;
}
.unify-bar a.back{
  color:var(--muted)!important;font-size:10px!important;letter-spacing:.24em!important;text-transform:uppercase!important;font-weight:600!important;margin-top:0!important;
}
.unify-bar a.back:hover{color:var(--pd)!important;}
.unify-bar .site{color:var(--muted)!important;font-family:var(--serif)!important;font-style:italic!important;font-size:16px!important;margin-top:0!important;}
.container{max-width:1200px!important;margin:0 auto!important;padding:clamp(32px,5vh,60px) 48px!important;}
.tabs,.tabs.big{border-bottom:1px solid var(--line-soft)!important;background:none!important;}
.tabs button{border:0!important;border-radius:0!important;padding:0 0 12px!important;margin-right:24px!important;}
.tabs button.on{background:none!important;color:var(--ink)!important;border-bottom:2px solid var(--pd)!important;}
.panel{background:none!important;border:0!important;border-top:1px solid var(--line-soft)!important;border-radius:0!important;box-shadow:none!important;padding:24px 0!important;}
.cards{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))!important;gap:1px!important;background:var(--line-soft)!important;border:1px solid var(--line-soft)!important;}
.cards .card{display:block!important;border:0!important;padding:24px 20px!important;background:var(--paper)!important;grid-template-columns:none!important;}
.cards .card:hover{padding:24px 20px!important;transform:none!important;}
.card .k{font-size:9.5px!important;letter-spacing:.2em!important;text-transform:uppercase!important;color:var(--muted)!important;}
.card .v{font-family:var(--serif)!important;font-weight:400!important;font-size:40px!important;color:var(--ink)!important;}
.grid-names{border:1px solid var(--line-soft)!important;background:none!important;}
.grid-names .name-cell{border-color:var(--hairline)!important;background:var(--paper)!important;}
.grid-names .name-cell.sel{background:var(--paper-2)!important;}
.row{border-color:var(--hairline)!important;}

/* ---------- L2 arcade chrome ---------- */
header.site{
  background:var(--paper)!important;border-bottom:1px solid var(--hairline)!important;
  padding:20px 48px!important;box-shadow:none!important;
}
header.site .brand-mark, a.brand-mark{
  background:none!important;color:var(--ink)!important;
  width:auto!important;height:auto!important;border-radius:0!important;box-shadow:none!important;
  font-family:var(--serif)!important;font-style:italic!important;font-weight:500!important;font-size:24px!important;
  text-shadow:none!important;
}
a.brand-mark::after{content:".";color:var(--pd);}
.lobby-main{background:var(--paper)!important;}
.hero{ text-align:left!important; }
.kicker{
  background:none!important;color:var(--muted)!important;border:0!important;
  font-size:10px!important;letter-spacing:.32em!important;text-transform:uppercase!important;font-weight:600!important;padding:0!important;
}
.brand-title{font-size:clamp(48px,9vw,120px)!important;color:var(--ink)!important;text-shadow:none!important;}
.hero .lead{font-family:var(--serif)!important;font-style:italic!important;color:var(--muted)!important;font-size:17px!important;}
#grid{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))!important;gap:1px!important;background:var(--line-soft)!important;border:1px solid var(--line-soft)!important;}
#grid .game,#grid a,#grid .tile{
  background:var(--paper)!important;border:0!important;border-radius:0!important;box-shadow:none!important;
  color:var(--ink)!important;padding:24px 20px!important;
}
#grid .game:hover,#grid a:hover{background:var(--card)!important;transform:none!important;}
.hint{
  background:none!important;border:1px dashed var(--line-soft)!important;border-radius:3px!important;
  color:var(--muted)!important;font-family:var(--serif)!important;font-style:italic!important;font-size:14px!important;padding:18px 22px!important;
}
.lobby-dock{background:var(--paper)!important;border-color:var(--hairline)!important;}

/* ---------- L2 vocab chrome ---------- */
.vocab-topbar,.topbar{background:var(--paper)!important;border-bottom:1px solid var(--hairline)!important;box-shadow:none!important;color:var(--ink)!important;}
.hero{background:none!important;color:var(--ink)!important;}
.nav-btn{background:none!important;border:1px solid var(--line-soft)!important;border-radius:999px!important;color:var(--muted)!important;box-shadow:none!important;}
.nav-btn:hover,.nav-btn.on,.nav-btn.active{background:var(--ink)!important;color:var(--paper)!important;border-color:var(--ink)!important;}
.stat-bar{background:none!important;border:1px solid var(--line-soft)!important;border-radius:3px!important;}

/* ---------- L3 应用组件通用化 ---------- */
.view,.pcard,.word-card,.action-card,.qcell,.opt,.room-row,.rank-row,.final-row,.preview-row,.chat-row,.pick-row{
  background:var(--paper)!important;
  border:1px solid var(--hairline)!important;
  border-radius:3px!important;
  box-shadow:none!important;
  color:var(--ink)!important;
}
.action-card:hover,.word-card:hover,.pcard:hover{border-color:var(--ink)!important;}
.opt{border:1px solid var(--line-soft)!important;border-radius:999px!important;background:none!important;}
.opt.on,.opt.correct{border-color:var(--pd)!important;color:var(--pd)!important;background:rgba(179,58,43,.05)!important;}
.quiz-grid{background:none!important;}
#toast{background:var(--ink)!important;color:var(--paper)!important;border-radius:999px!important;box-shadow:none!important;}
.empty,.no{color:var(--muted)!important;font-family:var(--serif)!important;font-style:italic!important;}
.msg.ok{color:var(--ok)!important;}
.msg.err,.err{color:var(--pd)!important;}
.dot{background:var(--pd)!important;}

/* ---------- L3 登录门禁 / 引导弹层（各板块通用） ---------- */
#gate,.gate,#login-mask,.login-mask,#auth-gate{
  background:rgba(11,11,11,.5)!important;
  -webkit-backdrop-filter:blur(3px)!important;backdrop-filter:blur(3px)!important;
}
#gate .g,.gate .g{
  background:var(--card)!important;border:1px solid var(--rule)!important;border-radius:3px!important;
  box-shadow:0 40px 90px -30px rgba(11,11,11,.5)!important;position:relative;padding:40px 36px!important;
}
#gate .g::before,.gate .g::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--pd);}
#gate .g h2,.gate .g h2{font-family:var(--serif)!important;font-weight:400!important;font-size:32px!important;color:var(--ink)!important;}
#gate .g p,.gate .g p{font-family:var(--serif)!important;font-style:italic!important;color:var(--muted)!important;font-size:14px!important;}
#gate .g a,#gate .g button,.gate .g a{
  background:var(--ink)!important;color:var(--paper)!important;border-radius:999px!important;
  box-shadow:none!important;background-image:none!important;
  font-size:11px!important;letter-spacing:.22em!important;text-transform:uppercase!important;font-weight:600!important;
  height:48px!important;display:flex!important;align-items:center!important;justify-content:center!important;
}
#gate .g a:hover,.gate .g a:hover{background:var(--pd)!important;}
.pill,.lead .pill{
  background:none!important;border:1px solid var(--hairline)!important;color:var(--muted)!important;
  font-size:9.5px!important;letter-spacing:.2em!important;text-transform:uppercase!important;font-weight:600!important;
  padding:4px 12px!important;border-radius:999px!important;
}
.mask2{background:rgba(11,11,11,.5)!important;-webkit-backdrop-filter:blur(3px)!important;backdrop-filter:blur(3px)!important;}
.mask2 .modal,.mask2>div{background:var(--card)!important;border:1px solid var(--rule)!important;border-radius:3px!important;box-shadow:none!important;}

/* ---------- L4 修正补丁 ---------- */
/* 1) 中和"渐变文字"（background-clip:text + text-fill:transparent） */
h1,h2,h3,.brand-title,.hero h1,.hero .brand-title,[class*="title"],.big,.v{
  background-image:none!important;
  -webkit-background-clip:border-box!important;background-clip:border-box!important;
  -webkit-text-fill-color:currentColor!important;
  color:var(--ink)!important;
  text-shadow:none!important;
}
/* 2) 固定返回按钮 → 纸面药丸 */
.btn-back,a.back,.back-home-fixed,[class*="back"]:not(.app-nav a):not(.back-home){
  background:var(--paper)!important;border:1px solid var(--line-soft)!important;
  color:var(--muted)!important;box-shadow:none!important;border-radius:999px!important;
  font-size:10px!important;letter-spacing:.22em!important;text-transform:uppercase!important;font-weight:600!important;
  background-image:none!important;
}
/* 3) 残留彩色 pill / kicker 全中和 */
[class*="kicker"],[class*="pill"],.hero .pill,.lead .pill{
  background:none!important;background-image:none!important;
  border:1px solid var(--hairline)!important;color:var(--muted)!important;
  box-shadow:none!important;
}
/* 4) 统计数字去蓝 */
.stat-bar b,.stat-bar .num,.stat-bar .v,.card .v,.pcard b,[class*="stat"] b{color:var(--ink)!important;}
/* 5) arcade 游戏格：多列细线网格 + 块状内容 + 隐藏图标 + 文字化"进入" */
#grid{
  display:grid!important;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr))!important;
  gap:1px!important;background:var(--line-soft)!important;border:1px solid var(--line-soft)!important;
}
#grid>*{
  display:flex!important;flex-direction:column!important;gap:10px!important;
  grid-template-columns:none!important;
  background:var(--paper)!important;border:0!important;border-radius:0!important;box-shadow:none!important;
  padding:26px 22px!important;color:var(--ink)!important;
}
#grid>*:hover{background:var(--card)!important;transform:none!important;}
#grid>* .icon,#grid>* .ico,#grid>* [class*="icon"]:not(.arrow-btn){display:none!important;}
#grid>* h3,#grid>* b,#grid>* .name{
  writing-mode:horizontal-tb!important;display:block!important;
  font-family:var(--serif)!important;font-weight:500!important;font-size:26px!important;letter-spacing:-.015em!important;color:var(--ink)!important;
}
#grid>* .desc{font-family:var(--sans)!important;font-style:normal!important;font-size:13px!important;line-height:1.6!important;color:var(--muted)!important;}
#grid>* .meta{display:flex!important;gap:8px!important;}
#grid>* .go{
  display:flex!important;align-items:center!important;gap:12px!important;margin-top:auto!important;
  font-size:10px!important;letter-spacing:.24em!important;text-transform:uppercase!important;font-weight:600!important;color:var(--pd)!important;
}
#grid>* .arrow-btn{
  width:36px!important;height:36px!important;border-radius:50%!important;
  background:none!important;border:1px solid var(--line-soft)!important;color:var(--ink)!important;
  display:grid!important;place-items:center!important;box-shadow:none!important;
  transition:all .3s ease!important;
}
#grid>*:hover .arrow-btn{background:var(--ink)!important;color:var(--paper)!important;border-color:var(--ink)!important;}
#grid>* .arrow-btn svg{display:block!important;width:14px!important;height:14px!important;}
#grid .go,#grid .go *,#grid [class*="go"]{color:var(--pd)!important;}
/* 6) 圆形箭头规则仅限家族 A 的 a.card */
.grid>.card .btn,.grid>a.card .btn{ /* keep */ }
#grid .btn{transform:none!important;}

/* 响应式收口 */
@media (max-width:900px){
  header.app,.topbar,header.site{padding:16px 24px!important;}
  .wrap,.container{padding:32px 24px 48px!important;}
  .grid .card,a.card,.card{grid-template-columns:40px 1fr auto!important;gap:14px!important;}
  .tag-row{display:none!important;}
}

/* ---------- L5 板块私有组件中和 ---------- */
/* grammar */
.side .active,.side a.active,.mod.active,.side .on{
  background:none!important;background-image:none!important;color:var(--pd)!important;
  border-left:2px solid var(--pd)!important;border-radius:0!important;box-shadow:none!important;
}
.side a,.side .mod{color:var(--muted)!important;border-radius:0!important;background:none!important;}
.side a:hover,.side .mod:hover{color:var(--ink)!important;background:var(--paper-2)!important;}
.side .num,.side .n{background:none!important;border:1px solid var(--hairline)!important;color:var(--muted)!important;border-radius:50%!important;}
.sect-h,.block>h2,.cat-h,.section-h,.module-head{
  border-left:2px solid var(--pd)!important;background:none!important;
  padding-left:14px!important;color:var(--ink)!important;
}
.eg,.box,.formula,.note,.fex,.fen{
  background:var(--paper)!important;background-image:none!important;
  border:1px solid var(--hairline)!important;border-left:2px solid var(--pd)!important;
  border-radius:3px!important;color:var(--ink)!important;box-shadow:none!important;
}
.eg b,.eg .t,.formula b{color:var(--ink)!important;}
.drill-btn,.m-toolbar button,.m-jump{border:1px solid var(--line-soft)!important;border-radius:999px!important;background:none!important;color:var(--ink)!important;box-shadow:none!important;}
.solid,.app-nav .solid{background:var(--ink)!important;color:var(--paper)!important;border-radius:999px!important;}
.q,.ansbody,.drill-passage,.drill-detail{background:var(--paper)!important;border:1px solid var(--hairline)!important;border-radius:3px!important;color:var(--ink)!important;}
.ok,.good{color:var(--ok)!important;}
.warn{color:var(--warn)!important;}
.bad,.fb.bad{color:var(--pd)!important;}

/* essay */
.genre-card,.reader,.panel,.form-wrap{
  background:var(--paper)!important;background-image:none!important;
  border:1px solid var(--hairline)!important;border-radius:3px!important;box-shadow:none!important;color:var(--ink)!important;
}
.genre-card:hover,.reader:hover{border-color:var(--ink)!important;transform:none!important;}
.tab,.tabs .tab,.stage-pill,.stag{border:1px solid var(--line-soft)!important;border-radius:999px!important;background:none!important;color:var(--muted)!important;}
.tab.active,.tabs .tab.active,.stage-pill.open{background:var(--ink)!important;color:var(--paper)!important;border-color:var(--ink)!important;}
.blue,.violet,.teal{color:var(--ink)!important;}
.submit-btn,.enter{background:var(--ink)!important;color:var(--paper)!important;border:0!important;border-radius:999px!important;box-shadow:none!important;}
.submit-btn:hover,.enter:hover{background:var(--pd)!important;}
.reader-bar,.reader-ctr{background:var(--paper)!important;border-color:var(--hairline)!important;}

/* hw */
.scbar{
  background:var(--paper)!important;background-image:none!important;
  border:1px solid var(--hairline)!important;border-radius:3px!important;color:var(--ink)!important;box-shadow:none!important;
}
.scbar .sb-btn{background:var(--ink)!important;color:var(--paper)!important;border:0!important;border-radius:999px!important;}
.sc-site{background:var(--paper)!important;border:1px solid var(--hairline)!important;border-radius:3px!important;color:var(--ink)!important;}
.sc-site:hover{border-color:var(--ink)!important;transform:none!important;box-shadow:none!important;}
.sc-stat{background:var(--paper)!important;border:1px solid var(--hairline)!important;border-radius:3px!important;}
.sc-stat b{font-family:var(--serif)!important;font-weight:400!important;font-size:32px!important;color:var(--ink)!important;}
.qrow,.krow,.row{border-bottom:1px solid var(--hairline)!important;background:none!important;}
.att,.att-wrap,.att-thumb-wrap{background:var(--paper)!important;border:1px solid var(--hairline)!important;border-radius:3px!important;}
.userbox,.ub-home{background:none!important;border:1px solid var(--hairline)!important;border-radius:999px!important;color:var(--muted)!important;}
.sm-btn,.sb-btn{border:1px solid var(--line-soft)!important;border-radius:999px!important;background:none!important;color:var(--ink)!important;}
.sm-btn:hover,.sb-btn:hover{background:var(--ink)!important;color:var(--paper)!important;}

/* admin */
#app .side .active,#app .side a.active{background:none!important;color:var(--pd)!important;border-left:2px solid var(--pd)!important;}
#app .side a{color:var(--muted)!important;background:none!important;}
.stat{background:var(--paper)!important;border:1px solid var(--hairline)!important;border-radius:3px!important;}
.stat b,.stat .v{font-family:var(--serif)!important;font-weight:400!important;font-size:34px!important;color:var(--ink)!important;}
.box,.tagsec{background:var(--paper)!important;border:1px solid var(--hairline)!important;border-radius:3px!important;color:var(--ink)!important;}
.btn.purple{background:var(--ink)!important;color:var(--paper)!important;border-color:var(--ink)!important;background-image:none!important;}
.btn.purple:hover{background:var(--pd)!important;border-color:var(--pd)!important;}
.chk{accent-color:var(--pd)!important;}

/* ---------- L6 定点修正（grammar 等） ---------- */
.res-back{
  background:var(--ink)!important;color:var(--paper)!important;border:0!important;border-radius:999px!important;
  padding:9px 18px!important;box-shadow:none!important;background-image:none!important;
  font-size:11px!important;letter-spacing:.2em!important;text-transform:uppercase!important;font-weight:600!important;
}
.res-back:hover{background:var(--pd)!important;}
.btn.solid{background:var(--ink)!important;color:var(--paper)!important;border-color:var(--ink)!important;background-image:none!important;}
.btn.solid:hover{background:var(--pd)!important;border-color:var(--pd)!important;}
.mod .num{background:none!important;border:1px solid var(--hairline)!important;color:var(--muted)!important;}
.mod.active .num,.mod.on .num{border-color:var(--pd)!important;color:var(--pd)!important;}
.mod{background:none!important;border-radius:0!important;}
.mod.active{background:none!important;color:var(--pd)!important;}
.eg .en{color:var(--ink)!important;font-family:var(--serif)!important;font-style:italic!important;font-size:19px!important;}
.eg .tag,.m-head .badge{background:none!important;border:1px solid var(--hairline)!important;color:var(--muted)!important;}
.points li::before{color:var(--pd)!important;}
.m-jump a{color:var(--pd)!important;}
strong,b{color:var(--ink)!important;}

/* ---------- L7 审计定点修正（grammar/essay/arcade 残留旧色） ---------- */
/* grammar */
.eg p,.ans p,.box p,.wrap p,.points p{color:var(--muted)!important;border-color:var(--pd)!important;}
.eg p b,.eg p strong{color:var(--ink)!important;}
details.ans,details.ans summary{border-color:var(--hairline)!important;color:var(--ink)!important;}
details.ans[open] summary{color:var(--pd)!important;}
div.quiz{border-color:var(--hairline)!important;}
div.score,div.hw{background:var(--paper)!important;background-image:none!important;border:1px solid var(--hairline)!important;}
/* essay */
.stage-idx{background:none!important;border:1px solid var(--hairline)!important;color:var(--muted)!important;}
.logic{border-color:var(--hairline)!important;}
.lh{color:var(--ink)!important;border-color:var(--pd)!important;}
.lh b,.lh strong{color:var(--ink)!important;}
/* arcade */
header.site a.nav-btn,header.site .nav-btn{color:var(--muted)!important;}
header.site a.nav-btn:hover{color:var(--ink)!important;}

/* ---------- L8 高特异性 blanket 修正 ---------- */
body p{color:var(--ink)!important;border-left-color:var(--pd)!important;}
body p.sub,body p.lead,body p.meta,body p.desc,body p.tip{color:var(--muted)!important;}
body details.ans,body details.ans summary{color:var(--ink)!important;border-left-color:var(--hairline)!important;}
body details.ans[open]>summary{color:var(--pd)!important;}
body div.quiz{border-left-color:var(--hairline)!important;}
body div.score,body div.hw{background-color:var(--paper)!important;background-image:none!important;border:1px solid var(--hairline)!important;}
body button.hw-btn{background-color:var(--ink)!important;color:var(--paper)!important;border-color:var(--ink)!important;border-radius:999px!important;}
body footer a,body footer.site a,body .f-links a{color:var(--muted)!important;}
body a:not([class]):not([id]){color:inherit!important;}

/* ---------- L9 em / drill 修正 ---------- */
body em,body i{color:var(--pd)!important;font-style:italic!important;}
body div.drill{border-left-color:var(--pd)!important;}
