:root{font-family:Inter,"Microsoft YaHei","PingFang SC",sans-serif;color:#263846;background:#ffffff;font-synthesis:none;font-size:16px;--ink:#182936;--muted:#667786;--line:#dce3e8;--green:#147568;--pale:#eaf5f2;--blue:#3498DB}*{box-sizing:border-box}body{margin:0}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button,.button{border:1px solid var(--line);border-radius:5px;background:#ffffff;color:var(--ink);padding:9px 15px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:.9rem;line-height:1.5;text-decoration:none}button:hover,.button:hover{background:#eff5f6;text-decoration:none}button:disabled{opacity:.55;cursor:wait}.primary{background:#3498DB;color:white;border-color:#3498DB}.primary:hover{background:#2980B9;color:white}.small{padding:5px 10px;font-size:.875rem}.danger{color:#ac3838}.link-button{border:0;background:none;padding:0;color:var(--blue)}header{background:var(--ink);color:white}.topbar{max-width:1460px;margin:auto;padding:20px 32px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{display:flex;gap:12px;align-items:center;color:#3498DB;font-weight:700;font-size:1.25rem;letter-spacing:.02em}.brand:hover{text-decoration:none}.brand img{width:34px;height:34px;border-radius:8px;background:transparent}.brand span{font-size:.875rem;font-weight:400;color:#6B7C8F;letter-spacing:0}.account{display:flex;align-items:center;gap:12px;font-size:.875rem}.account a{color:#dce9f0}.account button{color:#dce9f0;background:transparent;border-color:#465562}nav{max-width:1460px;margin:auto;padding:0 32px;display:flex;gap:26px;overflow:auto}nav a{white-space:nowrap;color:#c5d2da;padding:13px 0 15px;border-bottom:3px solid transparent;font-size:.9375rem}nav a:hover{color:white;text-decoration:none}nav a.active{color:#83d8c7;border-color:#83d8c7}main{max-width:1460px;margin:auto;padding:28px 32px 60px}.heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}h1{font-size:1.65rem;margin:0 0 9px;font-weight:650;letter-spacing:.01em}h2{font-size:1.05rem;margin:0 0 18px;font-weight:650}h3{font-size:1rem;margin:0 0 10px}p{line-height:1.8;margin:8px 0 14px}.muted{color:var(--muted);font-size:.875rem;line-height:1.7}.eyebrow{font-size:.8rem;letter-spacing:.1em;color:var(--green);font-weight:600;margin-bottom:8px}.grid{display:grid;grid-template-columns:1fr 1.15fr .85fr;gap:20px;align-items:start}.two{display:grid;grid-template-columns:1.4fr 1fr;gap:22px;align-items:start}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.panel{background:#ffffff;border:1px solid var(--line);border-radius:7px;padding:22px;margin-bottom:20px}.panel-title{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin-bottom:16px}.panel-title h2{margin:0}.panel-title a{font-size:.875rem}.accent-panel{border-top:3px solid var(--green)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;border:1px solid var(--line);border-radius:7px;overflow:hidden;background:var(--line);margin-bottom:24px}.stat{padding:18px 24px;background:#ffffff;display:flex;align-items:center;gap:16px}.stat strong{font-size:1.7rem;font-weight:600;font-variant-numeric:tabular-nums}.stat span{font-size:.875rem;color:var(--muted)}.row{padding:14px 0;border-bottom:1px solid #edf0f3}.row:last-child{border-bottom:0;padding-bottom:0}.row:first-child{padding-top:0}.row-title{font-size:.9375rem;font-weight:550;margin-bottom:6px;display:block}.row-meta{color:var(--muted);font-size:.8125rem;line-height:1.7}.flex{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.tag{display:inline-block;font-size:.8rem;padding:3px 8px;border-radius:4px;background:#edf1f5;color:#556778;line-height:1.5}.tag.green{background:var(--pale);color:var(--green)}.tag.orange{background:#fff3e0;color:#915812}.tag.red{background:#ffeded;color:#a93b3b}.progress{height:7px;background:#eaf0f2;border-radius:4px;overflow:hidden;margin-top:9px}.progress span{height:100%;display:block;background:#438c7f}.empty{padding:25px 10px;text-align:center;color:var(--muted);line-height:1.8;font-size:.9rem}.notice{background:#edf4fa;border-left:3px solid #4784b5;padding:12px 16px;font-size:.875rem;line-height:1.8;margin:16px 0;color:#345571}.warning{background:#fff7e8;border-color:#bc8235;color:#775224}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9rem;text-align:left}th{font-size:.8125rem;color:var(--muted);background:#f7f9fa;font-weight:500;white-space:nowrap}th,td{padding:13px 14px;border-bottom:1px solid #e9eef2;line-height:1.65}tr:last-child td{border-bottom:0}td .tag{margin:2px}.filters{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}label{display:block;font-size:.875rem;margin-bottom:6px;color:#435767}input,select,textarea{width:100%;padding:10px 11px;background:#ffffff;border:1px solid #cbd6de;border-radius:4px;color:var(--ink);line-height:1.5}input:focus,select:focus,textarea:focus{outline:2px solid #a0c8dd;outline-offset:1px}textarea{min-height:120px;resize:vertical}input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--green)}.field{margin-bottom:17px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.wide{grid-column:1/-1}.checklist{max-height:310px;overflow:auto;border:1px solid var(--line);padding:12px;border-radius:5px}.checklist label,.choice{display:flex;gap:10px;padding:10px;align-items:flex-start;border-bottom:1px solid #edf0f2;line-height:1.7;margin:0}.choice{border:1px solid var(--line);border-radius:4px;margin:9px 0;cursor:pointer}.choice input{margin-top:6px}.prose{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.95}.prose .katex-display{overflow:auto;padding:4px 0}.question{font-size:1.05rem;line-height:2;min-height:110px;padding:12px 0 25px}.breadcrumbs{font-size:.875rem;margin-bottom:20px;color:var(--muted)}.tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:20px}.tabs a{padding:7px 14px;border-radius:4px;font-size:.9rem}.tabs .selected{background:var(--pale);color:var(--green);font-weight:600}.login{max-width:1000px;display:grid;grid-template-columns:1fr 1fr;gap:28px;margin:70px auto;padding:36px;align-items:stretch}.login-copy.panel{display:flex;flex-direction:column;justify-content:center;padding:32px;margin:0;min-height:100%;border-top:3px solid var(--green)}.login .panel{padding:32px;margin:0;height:100%}.error{color:#af3131;background:#fff1f1;padding:11px;border-radius:4px;margin:12px 0;font-size:.9rem}.error:empty{display:none}#toast{position:fixed;bottom:24px;right:24px;max-width:480px;background:var(--ink);color:white;box-shadow:0 6px 30px #12222f22;border-radius:6px;padding:14px 20px;z-index:100;display:none}footer{text-align:center;color:var(--muted);font-size:.8125rem;padding:18px}.number{font-variant-numeric:tabular-nums;font-family:ui-monospace,monospace}.rank{font-weight:600;color:var(--green);min-width:25px}.detail-list{margin:0;padding:0;list-style:none}.detail-list li{padding:10px 0;border-bottom:1px solid var(--line)}details{margin:12px 0}summary{cursor:pointer;font-size:.9rem;color:var(--blue);padding:7px 0}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.day{min-height:72px;border:1px solid var(--line);padding:7px;border-radius:4px;font-size:.8rem}.day.today{border:2px solid var(--green)}.day .mark{display:block;background:var(--pale);color:var(--green);font-size:.75rem;margin:4px 0;padding:3px;overflow-wrap:anywhere}.video{width:100%;max-height:430px;background:#182936;border-radius:5px}.checkbox-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:5px}.checkbox-grid label{display:flex;gap:8px;align-items:center}.sticky{position:sticky;top:18px}@media(max-width:1100px){.grid{grid-template-columns:1fr 1fr}.grid>div:last-child{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.cards{grid-template-columns:1fr 1fr}.stat{padding:16px;gap:10px}nav{gap:22px}.filters{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){main{padding:22px 16px}.topbar{padding:16px;align-items:flex-start}.brand{font-size:1.05rem}.brand span{display:none}.account{gap:8px;font-size:.8rem;flex-wrap:wrap;justify-content:flex-end}nav{padding:0 16px;gap:23px}.grid,.two,.cards,.login{display:block}.grid>div:last-child{display:block}.heading{flex-direction:column;gap:10px}.stats{grid-template-columns:1fr 1fr}.stat strong{font-size:1.4rem}.panel{padding:18px}.filters,.form-grid{grid-template-columns:1fr 1fr}.login{margin:10px auto;padding:20px}.login-copy{padding:0}.login-copy h1{font-size:1.6rem}.calendar{gap:3px}.day{padding:4px;font-size:.75rem;min-height:55px}.day .mark{font-size:.7rem}.sticky{position:static}}@media(max-width:430px){.filters,.form-grid{grid-template-columns:1fr}.checkbox-grid{grid-template-columns:1fr}.brand img{width:28px}.account a{display:none}.stat{padding:12px}.calendar{display:block}.day{display:flex;gap:8px;min-height:auto;margin-bottom:4px}.day:empty{display:none}}
/* Keep account and teaching controls available on narrow screens. */
@media(max-width:430px){.topbar{flex-wrap:wrap}.account{width:100%;justify-content:flex-start}.account a{display:inline}.grid>*{min-width:0}.two>*{min-width:0}}

/* Dense OJ-style problem bank */
.compact-panel{padding:16px 18px}.problem-filters{grid-template-columns:2fr repeat(4,1fr);margin-bottom:12px}.problem-filters .filter-knowledge{max-width:100%}.problem-bank{padding:0}.problem-bank table{min-width:980px}.problem-bank th,.problem-bank td{padding:10px 12px}.problem-bank tbody tr:hover{background:#f8fbfb}.problem-title-cell{min-width:260px;font-weight:550}.problem-title-cell .row-meta{font-weight:400;margin-top:3px}.pager{display:flex;align-items:center;gap:10px;margin-left:auto}.button.disabled{opacity:.45;pointer-events:none}
/* 第二行：来源占 2fr（对齐关键词），知识点/排序各 1fr（对齐年级·难度） */
.problem-filters .filter-knowledge select:disabled{opacity:.55;cursor:not-allowed;background:#eef2f7}
@media(max-width:1100px){.problem-filters{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.problem-filters{grid-template-columns:1fr 1fr}.pager{width:100%;margin-left:0;justify-content:space-between}}
@media(max-width:430px){.problem-filters{grid-template-columns:1fr}}

.submission-stream{padding:0}.submission-stream table{min-width:960px}.submission-stream th,.submission-stream td{padding:10px 12px}.submission-stream tbody tr:hover{background:#f8fbfb}.submission-stream td:nth-child(2){min-width:260px}


/* Teacher grading submission confirmation */
.submit-success{min-height:70vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:48px 20px}.submit-success-check{width:88px;height:88px;border:3px solid currentColor;border-radius:50%;display:grid;place-items:center;font-size:56px;line-height:1;margin-bottom:24px}.submit-success h1{margin:0 0 12px}.submit-success p{margin:0 0 28px}.submit-success-back{text-decoration:underline;text-underline-offset:5px;font-size:16px}

html[data-theme="dark"]{color-scheme:dark;color:#e6e1d4;background:#161616;--ink:#e6e1d4;--muted:#9b9588;--line:#2c2c2c;--pale:#1e2a27;--blue:#3498DB}
html[data-theme="dark"] body{background:#161616;color:#e6e1d4}
html[data-theme="dark"] header{background:#111}
html[data-theme="dark"] .brand span,html[data-theme="dark"] .account,html[data-theme="dark"] .account a,html[data-theme="dark"] .account button,html[data-theme="dark"] nav a{color:#c9c3b6}
html[data-theme="dark"] nav a.active{color:#83d8c7}
html[data-theme="dark"] .panel,html[data-theme="dark"] .stat,html[data-theme="dark"] .login .panel{background:#1e1e1e;border-color:#2c2c2c;color:#e6e1d4}
html[data-theme="dark"] button,html[data-theme="dark"] .button{background:#262626;color:#e6e1d4;border-color:#3a3a3a}
html[data-theme="dark"] button:hover,html[data-theme="dark"] .button:hover{background:#3030300}
html[data-theme="dark"] .primary{background:#3498DB;color:#fff;border-color:#3498DB}
html[data-theme="dark"] input,html[data-theme="dark"] select,html[data-theme="dark"] textarea{background:#1a1a1a;color:#e6e1d4;border-color:#3a3a3a}
html[data-theme="dark"] th{background:#1a1a1a;color:#9b9588}
html[data-theme="dark"] td,html[data-theme="dark"] th,html[data-theme="dark"] .row,html[data-theme="dark"] .detail-list li{border-color:#2c2c2c}
html[data-theme="dark"] .problem-bank tbody tr:hover,html[data-theme="dark"] .submission-stream tbody tr:hover{background:#242424}
/* 题库表头和各列文字在暗色下统一用白色，避免压到深色底上看不清 */
html[data-theme="dark"] .problem-bank th{background:#1a1a1a;color:#fff}
html[data-theme="dark"] .problem-bank td{color:#fff}
html[data-theme="dark"] .tag{background:#2a2a2a;color:#c9c3b6}
html[data-theme="dark"] .notice{background:#1c2830;color:#c5d6e4;border-color:#4784b5}
html[data-theme="dark"] .error{background:#3a1e1e;color:#f0b0b0}
html[data-theme="dark"] footer{color:#9b9588}
html[data-theme="dark"] .stats{background:#2c2c2c}

.diff-tag{font-family:"LXGW WenKai","霞鹜文楷",serif;font-size:.98rem;font-weight:700;padding:5px 11px;border-radius:6px;letter-spacing:.04em;line-height:1.3}

.prob-hero{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;flex-wrap:wrap;margin:8px 0 16px}
.prob-hero-main{min-width:0;max-width:100%;flex:1 1 auto}
.prob-hero-source{margin-top:4px}
.prob-hero-knowledge{margin-top:6px;line-height:1.9}
.prob-kp{display:inline-block;margin:0 6px 0 0;padding:1px 9px;border:1px solid rgba(120,96,60,.28);border-radius:999px;font-size:.82rem;line-height:1.7;color:#7a5a32;text-decoration:none;background:rgba(120,96,60,.05)}
.prob-kp:hover{border-color:#a13c2b;color:#a13c2b}
.prob-kp.is-plain{color:#6f6250}
/* 历史知识点多选（录题页） */
.hk-picker{margin-top:6px}
.hk-selected{display:flex;flex-wrap:wrap;gap:6px;min-height:30px;align-items:center;margin-bottom:8px}
.hk-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 4px 2px 10px;border:1px solid rgba(120,96,60,.3);border-radius:999px;font-size:.86rem;line-height:1.7;color:#7a5a32;background:rgba(120,96,60,.06)}
.hk-chip.is-unknown{border-color:#c0392b;color:#c0392b;background:rgba(192,57,43,.06)}
.hk-chip-x{border:0;background:transparent;color:inherit;font-size:1rem;line-height:1;padding:0 4px;cursor:pointer}
.hk-chip-x:hover{color:#a13c2b}
.hk-results{display:flex;flex-direction:column;gap:2px;max-height:220px;overflow:auto;margin-top:6px}
.hk-option{display:flex;align-items:center;gap:8px;width:100%;padding:5px 8px;border:0;border-radius:6px;background:transparent;color:inherit;text-align:left;cursor:pointer;font:inherit}
.hk-option:hover{background:rgba(120,96,60,.1)}
.hk-kind{flex:none;padding:0 6px;border-radius:4px;font-size:.74rem;line-height:1.6;color:#8a7457;background:rgba(120,96,60,.12)}
.hk-hint{margin:2px 0}
.prob-hero h1{
  margin:0 0 6px;font-size:1.7rem;
  writing-mode:horizontal-tb;
  word-break:normal;
  overflow-wrap:break-word;
  white-space:normal;
  max-width:100%;
}
.prob-hero .muted,
.prob-hero-source{
  writing-mode:horizontal-tb;
  word-break:normal;
  overflow-wrap:break-word;
  white-space:normal;
  max-width:100%;
}
.side-acts{margin-top:10px;flex-wrap:wrap;gap:8px 12px}
.prob-stats{display:flex;gap:22px;text-align:right;flex-wrap:wrap}
.prob-stats b{display:block;font-size:1.1rem}
.prob-stats span{color:var(--muted,#888);font-size:.8rem}
.prob-tabs{display:flex;align-items:center;gap:18px;border-bottom:1px solid var(--line);margin:0 0 16px;flex-wrap:wrap}
.prob-tabs a{padding:10px 0;text-decoration:none;color:inherit}
.prob-tabs a.on{border-bottom:2px solid #3498DB;color:#3498DB}
.prob-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:16px}
.prob-layout > .panel,
.prob-layout > aside{min-width:0;max-width:100%}
.side-card{background:var(--card,#ffffff);border:1px solid var(--line);border-radius:10px;padding:14px;margin-bottom:12px;max-width:100%;box-sizing:border-box}
.side-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:7px 0;border-bottom:1px solid var(--line)}
.side-row:last-child{border-bottom:0}
.side-row > span,
.side-row > strong{
  writing-mode:horizontal-tb;
  word-break:normal;
  overflow-wrap:break-word;
  white-space:normal;
  min-width:0;
  max-width:100%;
}

html[data-theme="light"] .side-card,html[data-theme="light"] .prob-layout .panel{background:#ffffff;color:#1a1a1a}
html[data-theme="dark"] .side-card{background:#1c1c1c;color:#eee}

.pill{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;line-height:1.6;background:#eee;color:#333}
html[data-theme="dark"] .pill{background:#333;color:#ddd}
.pill-teal{background:#14b8a6;color:#fff}
.pill-blue{background:#3498DB;color:#fff}
html[data-theme="dark"] .pill-teal{background:#0d9488;color:#fff}
html[data-theme="dark"] .pill-blue{background:#2980B9;color:#fff}

.prob-wrap{max-width:1120px;margin:0 auto;padding:0 20px 40px;box-sizing:border-box;width:100%}
/* 从学习页进来的题目：左上角返回，右上角下一题 / 完成关卡 */
.prob-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 14px}
.prob-nav .button{font-weight:600;white-space:nowrap}
.prob-nav .button.primary{color:#fff}
.prob-layout .question.prose,
.question.prose,
.prob-layout .prose{
  writing-mode:horizontal-tb;
  overflow-wrap:break-word;
  word-break:normal;
  max-width:100%;
  white-space:pre-wrap;
}
.prob-layout .question.prose img,
.prob-layout .prose img,
.prob-layout .stem-img{
  width:100%;
  max-width:100%;
  height:auto;
  display:block;
  box-sizing:border-box;
}

/* 窄屏：单列横排，禁竖排/逐字断；元信息上下堆 */
@media (max-width:719.98px){
  .prob-wrap{padding:0 12px 32px}
  .prob-hero{
    flex-direction:column;
    align-items:stretch;
    gap:12px;
  }
  .prob-hero-main{width:100%}
  .prob-hero h1{font-size:1.25rem;line-height:1.45}
  .prob-stats{
    text-align:left;
    gap:12px 18px;
    width:100%;
  }
  .prob-tabs{gap:12px 16px}
  .prob-layout{
    display:flex !important;
    flex-direction:column;
    gap:12px;
    grid-template-columns:none !important;
  }
  .prob-layout > .panel,
  .prob-layout > aside,
  .prob-aside{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    flex:none;
  }
  .prob-layout > aside,
  .prob-aside{order:2}
  .prob-layout > .panel{order:1}
  .side-acts{
    flex-direction:column;
    align-items:flex-start;
    gap:8px;
  }
  .side-tags{
    flex-direction:row !important;
    flex-wrap:wrap !important;
    align-items:center;
  }
  .side-row{
    flex-direction:column;
    align-items:flex-start;
    justify-content:flex-start;
    gap:4px;
  }
  .side-row > span,
  .side-row > strong,
  .prob-hero h1,
  .prob-hero .muted,
  .prob-hero-source,
  .prob-hero-main,
  .prob-layout .panel,
  .breadcrumbs{
    writing-mode:horizontal-tb !important;
    word-break:normal !important;
    overflow-wrap:break-word;
    white-space:normal;
    max-width:100%;
  }
}

.answer-pre{white-space:pre-wrap;padding:14px;border-radius:8px;font-family:ui-monospace,Consolas,monospace;line-height:1.7;border:1px solid var(--line);background:#f3f4f6;color:#111}
html[data-theme="dark"] .answer-pre{background:#1c1c1c;color:#eee;border-color:#333}

/* Top row (brand + account): taller than nav; avatar stays large */
.topbar{
  min-height:52px;
  padding:8px 24px;
  align-items:center;
  box-sizing:border-box;
}
.topbar .brand{
  display:inline-flex;
  align-items:center;
  gap:10px;
  line-height:1.2;
  flex:0 0 auto;
  font-size:1.15rem;
  font-weight:700;
}
.topbar .brand img{width:32px;height:32px;flex:0 0 32px;border-radius:8px}
.topbar .brand span{font-size:.85rem}
.account{
  display:flex;
  flex-wrap:nowrap;
  align-items:center;
  gap:8px;
  white-space:nowrap;
  min-height:36px;
  flex:1 1 auto;
  justify-content:flex-end;
  min-width:0;
}
.account select{max-width:148px;font-size:.8125rem;padding:6px 8px}
/* 排除铃铛：admin 铃铛是 .account 直接子节点，不能套导航链接的 padding/flex */
.account > a:not(.inbox-bell),.account > button{
  flex:0 1 auto;
  font-size:.8125rem;
  padding:6px 10px;
  line-height:1.3;
  min-height:32px;
  box-sizing:border-box;
}
.account-who{
  display:inline-flex;
  flex-direction:row;
  flex-wrap:nowrap;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
  min-height:36px;
  line-height:1;
}
.inbox-bell,
.account > .inbox-bell,
header .topbar .account > .inbox-bell{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px !important;
  height:36px !important;
  flex:0 0 36px !important;
  padding:0 !important;
  min-height:0 !important;
  font-size:inherit !important;
  line-height:1 !important;
  color:inherit !important;
  text-decoration:none;
  border-radius:8px;
  box-sizing:border-box;
  background:transparent;
  border:0;
}
.inbox-bell:hover,
.account > .inbox-bell:hover,
header .topbar .account > .inbox-bell:hover{text-decoration:none;background:rgba(127,127,127,.12);color:inherit !important}
.inbox-bell-icon{display:block;width:22px;height:22px}
.inbox-badge{
  position:absolute;
  top:2px;
  right:2px;
  min-width:16px;
  height:16px;
  padding:0 4px;
  border-radius:999px;
  background:#3498DB;
  color:#fff !important;
  font-size:10px;
  font-weight:700;
  line-height:16px;
  text-align:center;
  box-sizing:border-box;
  pointer-events:none;
}
html[data-theme="light"] .inbox-badge,
html:not([data-theme]) .inbox-badge,
html[data-theme="dark"] .inbox-badge{
  background:#3498DB !important;
  color:#fff !important;
}
/* 微信式消息中心：左右白底，中间一条浅灰竖线 */
.chat-shell{display:grid;grid-template-columns:280px 1fr;min-height:520px;padding:0;overflow:hidden;background:#ffffff;border:0}
.chat-aside{border:0;border-right:1px solid #e8eaed;overflow-y:auto;background:#ffffff;max-height:70vh}
.chat-thread{display:flex;gap:10px;padding:12px 12px;border-bottom:1px solid #eceef1;color:inherit;text-decoration:none;align-items:center}
.chat-thread:hover{background:#f7f8fa;text-decoration:none}
.chat-thread.on{background:#eef3f8}
.chat-thread.unread .chat-thread-name{font-weight:700}
.chat-av{width:44px;height:44px;border-radius:6px;object-fit:cover;flex:0 0 44px;background:#dde3ea}
.chat-av-sys{display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;background:var(--brand,#3498DB)}
.chat-thread-main{min-width:0;flex:1}
.chat-thread-top{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.chat-thread-name{font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink,#182936)}
.chat-thread-time{font-size:.75rem;color:var(--muted);flex:0 0 auto}
.chat-thread-preview{font-size:.8rem;color:var(--muted);margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:6px}
.chat-dot{width:8px;height:8px;border-radius:50%;background:var(--brand,#3498DB);flex:0 0 8px}
.chat-main{display:flex;flex-direction:column;min-width:0;min-height:520px;max-height:70vh;background:#ffffff}
.chat-main-head{padding:12px 16px;border-bottom:1px solid #e8eaed;background:#ffffff;font-size:1rem}
.chat-stream{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;background:#ffffff}
/* 微信行：对方左头像+灰泡；自己右头像+浅蓝泡；系统/tip 居中无头像 */
.chat-row{display:flex;gap:8px;align-items:flex-start;max-width:100%;width:100%;box-sizing:border-box}
.chat-row.theirs{align-self:stretch;justify-content:flex-start;flex-direction:row}
.chat-row.mine{align-self:stretch;justify-content:flex-end;flex-direction:row}
.chat-row.sys,.chat-row.tip{align-self:center;flex-direction:column;align-items:center;max-width:88%;width:auto}
.chat-msg-av{width:36px;height:36px;border-radius:50%;object-fit:cover;flex:0 0 36px;background:#dde3ea;display:block}
.chat-msg-col{display:flex;flex-direction:column;max-width:min(72%,420px);min-width:0}
.chat-row.theirs .chat-msg-col{align-items:flex-start}
.chat-row.mine .chat-msg-col{align-items:flex-end}
.chat-bubble{max-width:100%;padding:10px 12px;border-radius:6px;text-align:left;font:inherit;cursor:default;border:0}
.chat-bubble.sys,.chat-bubble.tip{align-self:center;background:#f0f2f5;color:var(--ink,#182936);cursor:pointer;max-width:100%}
.chat-bubble.tip{cursor:default}
.chat-bubble.sys.was-unread{box-shadow:inset 3px 0 0 var(--brand,#3498DB)}
.chat-bubble.theirs{background:#f0f2f5;color:var(--ink,#182936)}
.chat-bubble.mine{background:#d6ebfa;color:var(--ink,#182936)}
.chat-bubble-label{font-size:.75rem;color:var(--muted);margin-bottom:4px}
.chat-bubble-body{font-size:.95rem;line-height:1.5;word-break:break-word;white-space:pre-wrap}
.chat-bubble-meta{font-size:.72rem;margin-top:4px;color:var(--muted);line-height:1.2}
.chat-row.sys .chat-bubble-meta,.chat-row.tip .chat-bubble-meta{text-align:center}
.chat-row.mine .chat-bubble-meta{text-align:right}
.chat-row.theirs .chat-bubble-meta{text-align:left}
.chat-bubble-link{color:var(--brand,#3498DB);font-size:.8rem;margin-top:4px}
.chat-main-head-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.chat-head-left{min-width:0;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.chat-head-right{display:flex;align-items:center;gap:10px;flex:0 0 auto;margin-left:auto}
.chat-relation{font-size:.8rem;color:var(--muted);padding:2px 8px;border:1px solid var(--line);border-radius:999px}
.chat-relation.is-classmate{color:var(--brand,#3498DB);border-color:#b7d7f5}
.chat-head-edit{position:relative}
.chat-edit-btn{border:1px solid var(--line);background:#ffffff;border-radius:6px;padding:4px 10px;font-size:.85rem;cursor:pointer;color:var(--ink)}
.chat-edit-btn:hover{background:#f5f6f8}
.chat-edit-menu{position:absolute;right:0;top:calc(100% + 4px);min-width:140px;background:#ffffff;border:1px solid var(--line);border-radius:8px;box-shadow:0 4px 16px rgba(0,0,0,.08);z-index:5;padding:4px;display:flex;flex-direction:column}
.chat-edit-menu[hidden]{display:none !important}
.chat-edit-item{border:0;background:transparent;text-align:left;padding:8px 10px;font-size:.875rem;cursor:pointer;border-radius:6px;color:var(--ink)}
.chat-edit-item:hover:not(:disabled){background:#f5f6f8}
.chat-edit-item:disabled{opacity:.45;cursor:not-allowed}
.chat-thread{cursor:pointer}
.chat-compose-wrap{border-top:1px solid #e8eaed;background:#ffffff}
.chat-emoji-bar{display:flex;flex-wrap:wrap;gap:2px;padding:6px 10px 0;background:#ffffff}
.chat-emoji-btn{border:0;background:transparent;padding:4px 6px;font-size:1.15rem;line-height:1;cursor:pointer;border-radius:6px}
.chat-emoji-btn:hover{background:#f0f2f5}
.chat-compose{display:flex;gap:8px;padding:8px 12px 10px;background:#ffffff;align-items:flex-end}
.chat-compose input,.chat-compose textarea{flex:1;min-width:0;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:#ffffff;color:var(--ink);resize:none;min-height:40px;max-height:120px;line-height:1.45;font:inherit}
.chat-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:8px 12px;background:#ffffff;border-bottom:1px solid var(--line);font-size:.875rem}
.chat-toolbar a.on{font-weight:650;color:var(--brand,#3498DB)}
.chat-empty-left,.chat-empty-msg{padding:24px;text-align:center}
html[data-theme="dark"] .chat-shell{background:#1a1a1a}
html[data-theme="dark"] .chat-aside{background:#222;border-color:#333}
html[data-theme="dark"] .chat-thread{border-color:#333}
html[data-theme="dark"] .chat-thread:hover{background:#2a2a2a}
html[data-theme="dark"] .chat-thread.on{background:#2e2e2e}
html[data-theme="dark"] .chat-thread-name{color:#e8e8e8}
html[data-theme="dark"] .chat-main,html[data-theme="dark"] .chat-stream,html[data-theme="dark"] .chat-main-head,html[data-theme="dark"] .chat-compose,html[data-theme="dark"] .chat-compose-wrap,html[data-theme="dark"] .chat-emoji-bar{background:#1a1a1a;border-color:#333}
html[data-theme="dark"] .chat-emoji-btn:hover{background:#333}
html[data-theme="dark"] .chat-toolbar{background:#1a1a1a;border-color:#333}
html[data-theme="dark"] .chat-bubble.sys,html[data-theme="dark"] .chat-bubble.tip,html[data-theme="dark"] .chat-bubble.theirs{background:#333;color:#e8e8e8}
html[data-theme="dark"] .chat-bubble.mine{background:#1a3a52;color:#e8e8e8;border:0}
html[data-theme="dark"] .chat-compose input,html[data-theme="dark"] .chat-compose textarea{background:#111;color:#e8e8e8;border-color:#444}
@media (max-width:820px){
  .chat-shell{grid-template-columns:1fr;min-height:0}
  .chat-aside{max-height:220px}
  .chat-main{min-height:360px;max-height:none}
}
.account-who > .account-name{
  font-size:1.2rem;
  font-weight:650;
  letter-spacing:.01em;
  line-height:1.2;
  color:var(--brand,#3498DB);
  text-decoration:none;
  white-space:nowrap;
  padding:0;
  min-height:0;
  border:0;
  background:none;
}
.account-who > .account-name:hover{text-decoration:underline;color:var(--brand,#3498DB)}
/* 仅 ▾ 打开切账号；select 全透明叠在箭头上，不占第二行 */
.account-slot-caret{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:22px;
  height:28px;
  flex:0 0 22px;
  overflow:hidden;
  cursor:pointer;
  color:inherit;
}
.account-slot-caret .account-caret{
  font-size:.85rem;
  line-height:1;
  pointer-events:none;
  opacity:.75;
}
.account-slot-caret select{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  margin:0;
  padding:0;
  border:0;
  opacity:0;
  cursor:pointer;
  max-width:none;
  color:transparent;
  background:transparent;
  -webkit-appearance:none;
  appearance:none;
  font-size:16px;
}
.topbar .nav-avatar,.account-who .nav-avatar{
  width:36px;
  height:36px;
  border-radius:50%;
  object-fit:cover;
  background:#d8dee4;
  flex:0 0 36px;
  display:block;
}
.nav-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;background:#d8dee4;flex:0 0 36px;display:block}
.acc-v .nav-avatar{width:56px;height:56px;flex-basis:56px}
table .nav-avatar{width:32px;height:32px;flex-basis:32px}

/* Second row nav: compact, aligned with content width */
header > nav,
header nav[aria-label="主导航"]{
  min-height:44px;
  align-items:stretch;
  gap:6px;
  padding:0 24px;
  box-sizing:border-box;
}
header > nav a,
header nav[aria-label="主导航"] a{
  display:inline-flex;
  align-items:center;
  font-size:.95rem;
  padding:10px 16px;
  line-height:1.3;
  box-sizing:border-box;
}

.acc-sheet{max-width:860px;background:var(--card,#ffffff);border:1px solid var(--line);border-radius:12px;padding:8px 28px}
.acc-row{display:flex;align-items:center;justify-content:flex-start;gap:48px;padding:22px 0;border-bottom:1px solid var(--line)}
.acc-row:last-child{border-bottom:0}
.acc-k{width:140px;flex:0 0 140px;font-weight:600}
.acc-v{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.acc-btn,.button.acc-btn,a.button.acc-btn,label.button.acc-btn{
  background:var(--brand,#3498DB);
  color:#fff;
  border:1px solid var(--brand,#3498DB);
}
.acc-btn:hover,.button.acc-btn:hover,a.button.acc-btn:hover,label.button.acc-btn:hover{
  background:#3498DB;
  color:#fff;
  border-color:#3498DB;
  filter:none;
  text-decoration:none;
}
html[data-theme="dark"] .acc-sheet{background:#1c1c1c}
html[data-theme="dark"] .acc-btn,
html[data-theme="dark"] .button.acc-btn,
html[data-theme="dark"] a.button.acc-btn,
html[data-theme="dark"] label.button.acc-btn{
  background:var(--brand,#3498DB);
  color:#fff;
  border:1px solid var(--brand,#3498DB);
}
html[data-theme="dark"] .acc-btn:hover,
html[data-theme="dark"] .button.acc-btn:hover,
html[data-theme="dark"] a.button.acc-btn:hover,
html[data-theme="dark"] label.button.acc-btn:hover{
  background:#3498DB;
  color:#fff;
  border-color:#3498DB;
}
html[data-theme="dark"] .topbar{min-height:52px}
html[data-theme="dark"] header > nav,
html[data-theme="dark"] header nav[aria-label="主导航"]{min-height:44px}

.acc-center{max-width:560px;margin:0 auto 40px}
.acc-center .acc-sheet{max-width:100%}
.acc-center #user-edit.panel{margin-left:auto;margin-right:auto}
.learn-subjects .button{min-width:6em;justify-content:center}
.learn-hub-btn{min-width:12em;justify-content:center;padding:14px 20px;font-size:1.05rem}
.learn-hub-grid{display:flex;flex-wrap:wrap;gap:16px}

/* 学习 · 六学科 / 历史入口（学生主路径） */
.learn-subjects-panel,.learn-history-panel{max-width:720px;margin:24px auto 40px;padding:28px 24px 32px;border:none;box-shadow:none;background:transparent}
.learn-subject-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;max-width:560px;margin:0 auto}
.learn-history-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;max-width:420px;margin:0 auto}
.learn-subject-tile,.learn-history-tile{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  min-height:88px;padding:18px 12px;text-align:center;text-decoration:none;
  font-size:1.15rem;font-weight:600;letter-spacing:.04em;color:var(--brand,#1a6fb5);
  background:#ffffff;border:1px solid rgba(26,111,181,.22);border-radius:10px;
  transition:border-color .15s ease,background .15s ease,color .15s ease;
}
.learn-subject-tile-on:hover,.learn-history-tile:hover{
  border-color:var(--brand,#1a6fb5);background:rgba(26,111,181,.06);color:var(--brand,#1a6fb5);
}
.learn-subject-tile-off{
  color:#9aa8b5;background:#f6f8fa;border-color:#e4e9ef;cursor:default;user-select:none;pointer-events:none;
}
.learn-subject-soon{font-size:.72rem;font-weight:500;letter-spacing:0;color:#a0aab4}
.learn-list{display:flex;flex-direction:column;gap:2px}
.learn-list-row{
  display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 16px;
  padding:14px 4px;border-bottom:1px solid var(--line,#e8edf2);text-decoration:none;color:inherit;
}
.learn-list-row:hover .learn-list-title{color:var(--brand,#1a6fb5)}
.learn-list-title{font-weight:600;font-size:1.05rem}
.learn-concept-search-panel{padding:12px 16px;margin-bottom:12px}
.learn-concept-search-row{display:flex;align-items:center;gap:10px;flex-wrap:nowrap}
.learn-concept-search-row input[type="search"]{
  flex:1 1 auto;min-width:0;padding:9px 12px;border:1px solid var(--line);border-radius:5px;background:#ffffff;color:var(--ink);
}
.learn-concept-search-row .button,.learn-concept-search-row button{flex:0 0 auto;white-space:nowrap}
.learn-concept-catalog{padding:0;overflow:hidden}
.learn-concept-scroll{
  max-height:min(70vh,640px);overflow:auto;padding:18px 22px 28px;
  -webkit-overflow-scrolling:touch;
}
.learn-concept-vol{margin:0 0 28px}
.learn-concept-vol:last-child{margin-bottom:8px}
.learn-concept-vol-title{
  margin:0 0 14px;padding:0;border:0;
  font-size:1.2rem;font-weight:700;color:var(--ink,#182936);letter-spacing:.02em;
}
.learn-concept-unit{margin:0 0 18px}
.learn-concept-unit-title{
  margin:0 0 10px;font-size:.95rem;font-weight:400;line-height:1.55;
  color:var(--ink,#182936);
}
.learn-concept-unit-list{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;
}
.learn-concept-chip{
  display:inline;padding:0;border:0;background:none;
  font-size:.98rem;font-weight:400;line-height:1.6;
  color:var(--blue,#3498DB);text-decoration:none;white-space:nowrap;
}
.learn-concept-chip:hover{text-decoration:underline;color:var(--brand,#1a6fb5)}
.learn-concept-empty{margin:4px 0 0;font-size:.9rem}
@media (max-width:640px){
  .learn-concept-search-row{flex-wrap:wrap}
  .learn-concept-scroll{max-height:min(65vh,520px);padding:14px 14px 22px}
  .learn-concept-unit-title{font-size:.9rem}
  .learn-concept-unit-list{gap:6px 14px}
}
@media (max-width:640px){
  .learn-subject-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:none}
  .learn-history-grid{grid-template-columns:1fr;gap:12px;max-width:none}
  .learn-subject-tile,.learn-history-tile{min-height:76px;font-size:1.05rem}
}

.cb-admin-form .cb-admin-sec{margin:0 0 12px;font-size:1.05rem}
.cb-admin-form .cb-admin-sub{margin:16px 0 8px;font-size:.95rem}
.cb-admin-form .cb-admin-block{display:block;margin:0 0 12px}
.cb-admin-form .cb-admin-block textarea{width:100%;box-sizing:border-box}
.cb-admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px 16px;margin-bottom:8px}
.cb-admin-table td,.cb-admin-table th{vertical-align:middle}
#cb-ex-table .input{width:100%;min-width:0;box-sizing:border-box}

.cb-h{margin:0 0 10px;font-size:1.05rem;font-weight:650;color:var(--ink)}
.cb-pill{display:inline-flex;align-items:center;padding:5px 12px;border-radius:999px;border:1px solid var(--line);color:var(--ink);font-size:.875rem;text-decoration:none;background:transparent}
a.cb-pill:hover{border-color:var(--blue);color:var(--blue);background:rgba(52,152,219,.06);text-decoration:none}
.cb-pill-soft{background:rgba(52,152,219,.1);border-color:transparent;color:var(--blue,#3498DB)}
a.cb-pill.cb-pill-soft:hover{background:rgba(52,152,219,.18);border-color:transparent;color:var(--blue,#3498DB);text-decoration:none}
.cb-pill-muted{opacity:.5;cursor:default}
.learn-concept-entry .row-title{font-weight:600}
html[data-theme="dark"] .cb-pill-soft{background:#262626}
html[data-theme="dark"] a.cb-pill:hover{background:rgba(52,152,219,.14)}


.question.prose .stem-img,.prose .stem-img,.print-sheet .stem-img{max-width:100%;height:auto;display:block;margin:12px 0;border:1px solid var(--line);border-radius:4px;background:#ffffff}

@media(max-width:1100px){
  .account > a:not(.inbox-bell),.account > button{font-size:.8125rem;padding:8px 11px;min-height:38px}
  .account{gap:8px}
  header > nav a,
  header nav[aria-label="主导航"] a{padding:14px 18px;font-size:1.05rem}
}
@media(max-width:760px){
  .topbar{min-height:48px;padding:6px 16px;align-items:center}
  .account-name{font-size:1.15rem}
  .topbar .nav-avatar,.account-who .nav-avatar,.nav-avatar{width:32px;height:32px;flex-basis:32px}
  .topbar .brand{font-size:1.35rem}
  .topbar .brand img{width:36px;height:36px;flex-basis:36px}
  header > nav,
  header nav[aria-label="主导航"]{min-height:60px;padding:0 16px}
  header > nav a,
  header nav[aria-label="主导航"] a{padding:14px 18px;font-size:1.05rem}
}

.luogu-table,.luogu-table table,.luogu-table td,.luogu-table th{
  font-family:"Segoe UI","PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif;
  font-variant-numeric:tabular-nums;
}
.luogu-table .number,.luogu-table td.number a{
  font-family:ui-monospace,SFMono-Regular,Consolas,Menlo,monospace;
}

#code-mismatch{color:#e11d48;margin:6px 0 0}

#code-mismatch{color:#e11d48;margin:6px 0 0}


/* Luogu-like light skin */
html[data-theme="light"],html:not([data-theme]){
  --bg:#ffffff;
  --card:#ffffff;
  --text:#3d4b5c;
  --muted:#8aa0b3;
  --line:#e3eaf3;
  --link:#3498DB;
  --primary:#3498DB;
  --header:#ffffff;
  --header-text:#3d4b5c;
}
html[data-theme="light"] body,html:not([data-theme]) body{background:var(--bg);color:var(--text);}
html[data-theme="light"] .topbar,html:not([data-theme]) header.top,
html[data-theme="light"] header,html:not([data-theme]) header{
  background:var(--yk-bg,#ffffff) !important;
  color:#3d4b5c !important;
  border-bottom:none;
  box-shadow:none;
}
html[data-theme="light"] header a,html:not([data-theme]) header a,
html[data-theme="light"] .account a,html[data-theme="light"] .account button,
html:not([data-theme]) .account a,html:not([data-theme]) .account button{
  color:#3d4b5c !important;
  background:#ffffff;
  border:1px solid #d7e1ea;
}
html[data-theme="light"] nav a.on,html:not([data-theme]) nav a.on{color:#3498DB !important;border-bottom:2px solid #3498DB;}
html[data-theme="light"] .button.primary,html:not([data-theme]) .button.primary,
html[data-theme="light"] button.primary,html:not([data-theme]) button.primary{
  background:#3498DB;border-color:#3498DB;color:#fff;
}
html[data-theme="light"] a{color:#3498DB;}
html[data-theme="light"] .panel,html:not([data-theme]) .panel,
html[data-theme="light"] .card,html[data-theme="light"] .side-card{
  background:#ffffff;border:1px solid #e6ebf1;box-shadow:0 1px 2px rgba(0,0,0,.03);
}
html[data-theme="light"] .acc-btn,
html[data-theme="light"] .button.acc-btn,
html[data-theme="light"] a.button.acc-btn,
html[data-theme="light"] label.button.acc-btn,
html:not([data-theme]) .acc-btn,
html:not([data-theme]) .button.acc-btn,
html:not([data-theme]) a.button.acc-btn,
html:not([data-theme]) label.button.acc-btn{
  background:var(--brand,#3498DB);
  color:#fff;
  border:1px solid var(--brand,#3498DB);
}
html[data-theme="light"] .acc-btn:hover,
html[data-theme="light"] .button.acc-btn:hover,
html[data-theme="light"] a.button.acc-btn:hover,
html[data-theme="light"] label.button.acc-btn:hover,
html:not([data-theme]) .acc-btn:hover,
html:not([data-theme]) .button.acc-btn:hover,
html:not([data-theme]) a.button.acc-btn:hover,
html:not([data-theme]) label.button.acc-btn:hover{
  background:#3498DB;
  color:#fff;
  border-color:#3498DB;
}


html[data-theme="light"] header a,html:not([data-theme]) header a,
html[data-theme="light"] header button,html:not([data-theme]) header button,
html[data-theme="light"] header select,html:not([data-theme]) header select,
html[data-theme="light"] nav a,html:not([data-theme]) nav a{
  border:0 !important;
  box-shadow:none !important;
  background:transparent !important;
  outline:none;
}
html[data-theme="light"] nav a,html:not([data-theme]) nav a{padding:10px 14px;}
html[data-theme="light"] header .account a:hover,html[data-theme="light"] nav a:hover{color:#3498DB !important;}


html[data-theme="light"] nav,html:not([data-theme]) nav{
  display:flex !important;
  width:100%;
  align-items:stretch;
  justify-content:space-evenly;
  gap:8px;
}
html[data-theme="light"] nav a,html:not([data-theme]) nav a{
  flex:1 1 0;
  text-align:center;
  padding:18px 8px !important;
  font-size:16px !important;
  line-height:1.7 !important;
  white-space:nowrap;
}


html[data-theme="light"] header,html:not([data-theme]) header,
html[data-theme="light"] header a,html:not([data-theme]) header a,
html[data-theme="light"] header button,html:not([data-theme]) header button,
html[data-theme="light"] header select,html:not([data-theme]) header select,
html[data-theme="light"] nav a,html:not([data-theme]) nav a{
  color:#3498DB !important;
  font-family:"Segoe UI","PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif !important;
}
html[data-theme="light"] .brand,html:not([data-theme]) .brand{
  color:#3498DB !important;
}
html[data-theme="light"] .brand span,html:not([data-theme]) .brand span{
  color:#6B7C8F !important;
}


html[data-theme="light"] .compact-panel .button,
html:not([data-theme]) .compact-panel .button,
html[data-theme="light"] #submission-filters .button,
html:not([data-theme]) #submission-filters .button{
  background:#3498DB !important;
  border:0 !important;
  color:#fff !important;
}

.luogu-table td.number a,.luogu-table td:first-child,.luogu-table .number{
  font-family:ui-monospace,SFMono-Regular,Consolas,Menlo,monospace !important;
  font-weight:600;
}
.luogu-table td:first-child,.luogu-table td:first-child a{color:#3498DB !important;}
.score-cell{font-family:ui-monospace,SFMono-Regular,Consolas,Menlo,monospace !important;font-weight:700;}
#submission-filters a.button,#submission-filters .button,form#submission-filters a{
  background:#3498DB !important;color:#fff !important;border:0 !important;
}

#problem-form .flex .button, #problem-form a.button {
  background:#3498DB !important;
  color:#fff !important;
  border:0 !important;
}
#problem-form a.button:not(.primary) {
  background:#ffffff !important;
  color:#3498DB !important;
  border:1px solid #3498DB !important;
}

.choice-row{display:flex;gap:8px;align-items:flex-start;margin:6px 0}
.choice-letter{width:28px;font-weight:700;color:#3498DB;padding-top:10px;flex:0 0 28px}
.choice-row input{flex:1}
.choice-row-rich .choice-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.choice-row-rich textarea[data-i]{width:100%;min-height:56px;resize:vertical;font:inherit;line-height:1.5}
.choice-img-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.choice-ans{border:1px solid #3498DB;background:#ffffff;color:#3498DB;border-radius:6px;padding:6px 10px;flex:0 0 auto;margin-top:4px}
.choice-ans.on{background:#3498DB;color:#fff}
.opt-text .stem-img,.opt-text img.stem-img{max-width:100%;height:auto;display:block;margin:6px 0;border:1px solid var(--line,#dce3e8);border-radius:4px;background:#ffffff}


/* nav-theme-unify */
nav,
html[data-theme="light"] nav,
html:not([data-theme]) nav,
html[data-theme="dark"] nav{
  display:flex !important;
  width:100% !important;
  max-width:1460px !important;
  margin:auto !important;
  padding:0 32px !important;
  justify-content:space-evenly !important;
  gap:8px !important;
  align-items:stretch !important;
}
nav a,
html[data-theme="light"] nav a,
html:not([data-theme]) nav a,
html[data-theme="dark"] nav a{
  flex:1 1 0 !important;
  text-align:center !important;
  padding:18px 8px !important;
  font-size:16px !important;
  line-height:1.7 !important;
  white-space:nowrap !important;
  background:transparent !important;
  border:0 !important;
  border-bottom:3px solid transparent !important;
}
html[data-theme="light"] nav a,
html:not([data-theme]) nav a{color:#3d4b5c !important;}
html[data-theme="light"] nav a:hover,
html:not([data-theme]) nav a:hover,
html[data-theme="light"] nav a.active,
html:not([data-theme]) nav a.active{
  color:#3498DB !important;
  border-bottom-color:#3498DB !important;
}
html[data-theme="dark"] nav a{color:#c5d2da !important;}
html[data-theme="dark"] nav a:hover,
html[data-theme="dark"] nav a.active{
  color:#83d8c7 !important;
  border-bottom-color:#83d8c7 !important;
}

/* plaza */
.plaza{display:grid;grid-template-columns:220px 1fr;gap:20px;align-items:start;max-width:1460px;margin:0 auto;}
.plaza-side{display:flex;flex-direction:column;gap:8px;padding:16px;}
.plaza-cat{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;color:inherit;text-decoration:none;}
.plaza-cat:hover{background:#f0f4f7;text-decoration:none;}
.plaza-cat.on{background:#3498DB;color:#fff;}
html[data-theme="dark"] .plaza-cat.on{background:#147568;color:#fff;}
html[data-theme="dark"] .plaza-cat:hover{background:#2a2a2a;}
.plaza-tag-dot{width:8px;height:8px;border-radius:50%;flex:0 0 8px;display:inline-block;}
/* 对齐洛谷：绿生活·游记 / 橙科技·工程 / 红休闲·娱乐 / 淡蓝题解 / 紫算法·理论 */
.plaza-tag-green{--tag-c:#52c41a}.plaza-tag-orange{--tag-c:#fa8c16}.plaza-tag-red{--tag-c:#f5222d}.plaza-tag-sky{--tag-c:#69c0ff}.plaza-tag-purple{--tag-c:#722ed1}.plaza-tag-gold{--tag-c:#FFD04C}
.plaza-tag-dot.plaza-tag-green,.plaza-tag-dot.plaza-tag-orange,.plaza-tag-dot.plaza-tag-red,.plaza-tag-dot.plaza-tag-sky,.plaza-tag-dot.plaza-tag-purple,.plaza-tag-dot.plaza-tag-gold{background:var(--tag-c)}
.plaza-tag-chip{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;padding:2px 8px;border-radius:4px;background:color-mix(in srgb,var(--tag-c) 16%,transparent);color:var(--ink)}
.plaza-tag-chip.plaza-tag-green{--tag-c:#52c41a}.plaza-tag-chip.plaza-tag-orange{--tag-c:#fa8c16}.plaza-tag-chip.plaza-tag-red{--tag-c:#f5222d}.plaza-tag-chip.plaza-tag-sky{--tag-c:#69c0ff}.plaza-tag-chip.plaza-tag-purple{--tag-c:#722ed1}.plaza-tag-chip.plaza-tag-gold{--tag-c:#FFD04C}
/* 与侧栏「发布」.button.primary 同色 */
.plaza-tag-chip.plaza-tag-code{background:#3498DB;color:#fff;gap:0;font-weight:600;text-decoration:none}
a.plaza-tag-chip.plaza-tag-code:hover{background:#2980B9;color:#fff;text-decoration:none;filter:brightness(1.05)}
.plaza-list{display:flex;flex-direction:column;gap:12px;}
.plaza-sort{gap:8px;margin:0 0 12px;align-items:center;flex-wrap:wrap}
.plaza-sort-hint{font-size:.85rem;margin-left:4px}
.plaza-pin{display:inline-block;margin-right:6px;padding:1px 6px;border-radius:4px;background:#e67e22;color:#fff;font-size:12px;font-weight:600;line-height:1.4;vertical-align:middle}
.md-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 8px;padding:8px 10px;background:#f5f8fc;border:1px solid var(--line,#dce3e8);border-radius:6px}
.md-toolbar .small{padding:4px 9px;min-width:2em;justify-content:center}
.md-toolbar-sep{width:1px;height:18px;background:#d0d8e0;margin:0 2px}
.md-toolbar-hint{font-size:.8rem;margin-left:4px}
.post-compose-split{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:stretch}
.post-compose-edit,#post-compose #body{min-height:360px}
#post-compose #body{width:100%;min-height:360px;line-height:1.65;height:100%;resize:vertical}
.post-compose-preview-wrap{display:flex;flex-direction:column;min-height:360px;min-width:0}
.post-compose-preview-label{font-size:.8rem;margin:0 0 6px}
.md-preview{flex:1;padding:14px 16px;border:1px solid var(--line,#dce3e8);border-radius:6px;background:#ffffff;overflow:auto;min-height:320px}
.post-prose{white-space:normal;line-height:1.75}
.post-prose .post-h{margin:1.1em 0 .45em;line-height:1.35;color:var(--ink,#182936);font-weight:700}
.post-prose h1.post-h{font-size:1.55rem}.post-prose h2.post-h{font-size:1.35rem}.post-prose h3.post-h{font-size:1.2rem}
.post-prose h4.post-h{font-size:1.08rem}.post-prose h5.post-h{font-size:1rem}
.post-prose .md-hl{background:#ffe58f;color:inherit;padding:0 .15em;border-radius:2px}
.post-prose .post-img,.prose .post-img{max-width:100%;height:auto;display:block;margin:12px 0;border:1px solid var(--line,#dce3e8);border-radius:4px;background:#ffffff}
@media (max-width:860px){.post-compose-split{grid-template-columns:1fr}}
.plaza-card{padding:18px 20px;}
.plaza-card-top{margin-bottom:8px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.plaza-card-top .plaza-title{margin:0}
.plaza-title{font-size:1.15rem;font-weight:650;display:block;margin:0 0 8px;line-height:1.45;color:#3498DB}
.plaza-title:hover{color:#3498DB;text-decoration:none}
.plaza-excerpt{margin:0 0 14px;font-size:.95rem;line-height:1.65;color:var(--muted,#667786);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.plaza-card-foot{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;font-size:.85rem;color:var(--muted,#667786)}
.plaza-author{display:inline-flex;align-items:center;gap:8px;color:inherit;text-decoration:none;min-width:0}
.plaza-author:hover{text-decoration:none}
.plaza-author-name{font-weight:600;color:var(--ink,#182936)}
.plaza-author:hover .plaza-author-name{color:var(--brand,#3498DB);text-decoration:underline}
.plaza-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;flex:0 0 28px;background:#ddd}
.plaza-time{margin-right:auto}
.plaza-stats{display:inline-flex;align-items:center;gap:12px}
.plaza-stat,.plaza-stat-btn{border:0;background:transparent;padding:0;color:inherit;font:inherit;cursor:pointer}
.plaza-stat{text-decoration:none}
.plaza-stat:hover,.plaza-stat-btn:hover{color:var(--brand,#3498DB);text-decoration:none}
.plaza-stat-btn.on{color:var(--brand,#3498DB);font-weight:600}
.plaza-card-acts{margin-top:10px}
.plaza-meta{font-size:13px;opacity:.75;}
html[data-theme="dark"] .plaza-author-name{color:#e6e1d4}
html[data-theme="dark"] .plaza-excerpt{color:#9b9588}
@media(max-width:800px){.plaza{grid-template-columns:1fr;}}

/* 左上角品牌字色 = 唯一品牌蓝；顶栏显示名 / 欢迎名共用，不用另套亮蓝 */
:root{--brand:#3498DB}
.brand,.brand:hover{color:var(--brand) !important;}
.brand span{color:#6B7C8F !important;}
/* 现有图标染成与「翊空」同色 #3498DB；不换图、不动 favicon 文件 */
.brand img{
  filter:brightness(0) saturate(100%) invert(52%) sepia(72%) saturate(523%) hue-rotate(169deg) brightness(94%) contrast(91%);
}
.account-who > .account-name,
.account-who > .account-name:hover,
html[data-theme="light"] .account-who > .account-name,
html:not([data-theme]) .account-who > .account-name,
html[data-theme="dark"] .account-who > .account-name,
html[data-theme="dark"] .account-who > .account-name:hover,
.welcome-hi .welcome-name,
.welcome-hi strong.welcome-name{
  color:var(--brand) !important;
}

html[data-theme="light"] header, html:not([data-theme]) header,
html[data-theme="light"] .topbar, html:not([data-theme]) .topbar {
  background:#ffffff !important;
  border:none !important;
  box-shadow:none !important;
  border-radius:0 !important;
}


html[data-theme="light"] header, html:not([data-theme]) header,
html[data-theme="light"] nav, html:not([data-theme]) nav {
  background:#ffffff !important;
  border:none !important;
  box-shadow:none !important;
}
html[data-theme="light"] body, html:not([data-theme]) body {
  background:#f6f7f9 !important;
}
html[data-theme="light"] main, html:not([data-theme]) main {
  background:transparent !important;
}

.oj-home{max-width:1460px;margin:0 auto;}
.oj-search{display:flex;gap:10px;align-items:center;margin-bottom:16px;}
.oj-search input{flex:1;}
.oj-grid{display:grid;grid-template-columns:1.4fr .9fr;gap:16px;}
.oj-block header{font-weight:700;padding:10px 14px;border-bottom:1px solid rgba(0,0,0,.08);background:rgba(0,0,0,.03);}
html[data-theme="dark"] .oj-block header{background:#111;border-bottom-color:#333;color:#eee;}
.oj-block table{width:100%;}
.oj-block td,.oj-block th{padding:8px 12px;}
.todo-add{display:flex;gap:8px;padding:10px 12px;}
.todo-add input{flex:1;}
.todo-list{list-style:none;margin:0;padding:0 12px 12px;}
.todo-list li{display:flex;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px solid rgba(0,0,0,.06);}
.todo-list li.done{opacity:.55;text-decoration:line-through;}
@media(max-width:900px){.oj-grid{grid-template-columns:1fr;}}

.welcome-bar{display:flex;gap:24px;align-items:stretch;justify-content:space-between;padding:16px 20px;}
.welcome-ann{flex:1;min-width:0;display:flex;flex-direction:column;}
.welcome-ann header{font-weight:700;margin-bottom:8px;}
.welcome-ann table{width:100%;}
.welcome-ann-more{margin-top:auto;padding-top:10px;text-align:right;}
.welcome-ann-more a{color:#3498DB;font-weight:600;text-decoration:none;}
.welcome-ann-more a:hover{text-decoration:underline;}
.ann-pin{display:inline-block;margin-right:6px;padding:1px 6px;border-radius:4px;background:#3498DB;color:#fff;font-size:12px;font-weight:600;line-height:1.4;vertical-align:middle;}
.ann-time{white-space:nowrap;font-family:inherit;font-variant-numeric:normal;color:var(--muted);font-size:.875rem;line-height:1.7}
html[data-theme="dark"] .ann-pin{background:#147568;}
html[data-theme="dark"] .welcome-ann-more a{color:#5ec4ff;}

.oj-home{max-width:1180px;margin:0 auto;}
.welcome-bar{max-width:1180px;margin:0 auto 16px;padding:22px 28px;}
/* 首页：公告卡 + 欢迎卡并排（外层不再套一层 panel） */
.welcome-bar--home{
  padding:0;
  background:transparent;
  border:0;
  box-shadow:none;
  gap:16px;
}
.welcome-ann header{font-size:20px;color:#3498DB;}
.welcome-ann td,.welcome-ann th{font-size:16px;padding:8px 12px;}
.oj-search{max-width:1180px;margin:0 auto 16px;}
.oj-grid{max-width:1180px;margin:0 auto;}

/* 右侧欢迎卡：欢迎语贴近日历上移；倒计时沉底，外框高度仍跟左侧公告卡 stretch 对齐 */
.welcome-copy{
  flex:0 0 280px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  text-align:center;
  min-height:220px;
  box-sizing:border-box;
  padding-top:18px;
  padding-bottom:18px;
}
.welcome-hi{
  font-size:26px;
  margin:0 0 6px;
  width:100%;
  text-align:center;
}
.welcome-cal{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:100%;
  margin:0;
}
.welcome-month,.welcome-wk{
  writing-mode:vertical-rl;
  font-size:16px;
  letter-spacing:2px;
  color:#5b6b7a;
}
.welcome-day{
  font-size:76px;
  line-height:1;
  font-weight:700;
  color:#5EB95E;
}
.welcome-count{
  margin:auto 0 0;
  width:100%;
  text-align:center;
  font-size:16px;
  color:#5b6b7a;
}
.welcome-count strong{color:#5EB95E;font-size:18px;}

.pid-cell{white-space:nowrap;vertical-align:middle;}
.pid{font-size:20px;font-weight:700;letter-spacing:.02em;font-family:"JetBrains Mono","Consolas","Sarasa Mono SC",ui-monospace,monospace;margin-left:6px;}
.verdict{display:inline-block;min-width:1.4em;text-align:center;font-size:22px;font-weight:900;line-height:1;}
.verdict.ac{color:#16a34a;}
.verdict.wa{color:#e11d48;}
.verdict.dash{color:#c0c4cc;font-weight:700;font-size:18px;}
.pid{font-size:22px;}

.submission-stream td .score-cell{font-size:16px;font-weight:700;}
.submission-stream td .tag,.submission-stream td a{font-size:15px;}
.submission-stream .tag{transform:scale(1.05);display:inline-block;}

.submission-stream td:first-child{width:42%;font-size:16px;}
.submission-stream td:first-child a{font-size:17px;font-weight:600;}
.submission-stream .row-meta{font-size:13px;}

.submission-stream .sub-title .pid{font-size:18px;font-weight:800;margin-right:8px;color:#e67e22;}
.submission-stream td .score-cell{font-size:18px;font-weight:700;}
.submission-stream th:nth-child(2),.submission-stream td:nth-child(2),
.submission-stream th:nth-child(3),.submission-stream td:nth-child(3){
  width:7%;padding-left:6px;padding-right:6px;text-align:left;white-space:nowrap;
}
.submission-stream td:nth-child(1){width:46%;}

.submission-stream td:nth-child(1),.submission-stream th:nth-child(1){width:52%;}
.submission-stream th:nth-child(2),.submission-stream td:nth-child(2){width:6%;padding-left:0;padding-right:4px;}
.submission-stream th:nth-child(3),.submission-stream td:nth-child(3){width:6%;padding-left:0;padding-right:10px;}

.submission-stream td:nth-child(1),.submission-stream th:nth-child(1){width:34%;}
.submission-stream th:nth-child(2),.submission-stream td:nth-child(2){width:10%;text-align:center;padding-left:0;}
.submission-stream th:nth-child(3),.submission-stream td:nth-child(3){width:8%;text-align:center;padding-left:0;}

.submission-stream th:nth-child(3),.submission-stream td:nth-child(3){width:12%;padding-right:28px;}

.pager-luogu{display:flex;justify-content:flex-end;align-items:center;gap:8px;padding:14px 8px 6px;flex-wrap:wrap;}
.pager-luogu .pg-total{margin-right:8px;color:#5b6b7a;font-weight:600;}
.pg-btn{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 10px;border:1px solid #d9dee6;border-radius:8px;background:#ffffff;color:#334155;text-decoration:none;}
.pg-btn.on{background:#3498DB;border-color:#3498DB;color:#fff;}
.pg-btn.off{opacity:.35;pointer-events:none;}
html[data-theme="dark"] .pg-btn{background:#1b1b1b;border-color:#333;color:#ddd;}
html[data-theme="dark"] .pg-btn.on{background:#147568;border-color:#147568;color:#fff;}

.pid-cell{display:flex;align-items:center;gap:10px;}
.pid-cell .verdict{flex:0 0 28px;width:28px;text-align:center;}
.pid-cell .pid{flex:0 0 3.2em;min-width:3.2em;display:inline-block;text-align:left;}

.pid-cell .verdict{
  flex:0 0 32px !important;
  width:32px !important;
  height:28px;
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  font-size:20px !important;
  line-height:1 !important;
  font-weight:900;
  -webkit-text-stroke:0;
  text-shadow:none;
}
.pid-cell .verdict.dash{color:#c0c4cc;font-size:20px !important;font-weight:700;}
.pid-cell .pid{margin-left:0;}

.problem-bank td.problem-title-cell{width:32%;padding-right:8px;}
.problem-bank td:nth-child(3),.problem-bank th:nth-child(3){padding-left:4px;width:12%;}

.pid-cell .verdict.wa{font-size:18px !important;font-weight:900;color:#e11d48;transform:none;}

.problem-bank td.problem-title-cell,.problem-bank th:nth-child(2){width:24%;padding-right:4px;}
.problem-bank td:nth-child(3),.problem-bank th:nth-child(3){width:11%;padding-left:0;}
.problem-bank td:nth-child(1),.problem-bank th:nth-child(1){width:12%;}

.problem-bank th:nth-child(3),.problem-bank td:nth-child(3),
.problem-bank th:nth-child(4),.problem-bank td:nth-child(4),
.problem-bank th:nth-child(5),.problem-bank td:nth-child(5){
  width:14%;
}

.problem-bank{table-layout:fixed;}
.problem-bank th:nth-child(3),.problem-bank td:nth-child(3),
.problem-bank th:nth-child(4),.problem-bank td:nth-child(4),
.problem-bank th:nth-child(5),.problem-bank td:nth-child(5){
  width:8%;
  max-width:8%;
}

.problem-bank td.pid-cell{padding-right:4px;}
.problem-bank td.problem-title-cell{padding-left:4px;}
.problem-bank td,.problem-bank td a{font-size:16px;}
.problem-bank .row-meta{font-size:13px;}

.problem-bank .pid-cell{padding-right:0;}
.problem-bank .pid-cell .pid{margin-left:4px;}
.problem-bank td.problem-title-cell{padding-left:2px;}
.problem-bank th:nth-child(3),.problem-bank td:nth-child(3),
.problem-bank th:nth-child(4),.problem-bank td:nth-child(4){width:7%;padding-left:4px;}

.problem-bank .problem-title-cell .pid{margin-right:6px;color:#111;}
.problem-bank .problem-title-cell a{white-space:normal;}
.problem-bank td.pid-cell{width:36px;padding-right:2px;}

.problem-bank th:nth-child(1),
.problem-bank td.pid-cell{
  width:36px !important;
  max-width:36px !important;
  padding-left:8px;
  padding-right:0;
}
.problem-bank td.problem-title-cell{padding-left:0;}
.problem-bank .problem-title-cell .pid{margin-right:6px;margin-left:0;}

.problem-bank th:nth-child(1),.problem-bank td.pid-cell{
  width:88px !important;
  max-width:88px !important;
  text-align:right !important;
  padding-right:0 !important;
  padding-left:8px !important;
}
.problem-bank th:nth-child(2),.problem-bank td.problem-title-cell{
  text-align:left !important;
  padding-left:6px !important;
}
.problem-bank .pid-cell .verdict{margin-right:6px;}
.problem-bank .pid-cell .pid{margin-left:0;}

.problem-bank td,.problem-bank th{vertical-align:middle;}
.problem-bank th:nth-child(1),.problem-bank td.pid-cell{width:36px;max-width:36px;padding-right:0;text-align:center;}
.problem-bank th:nth-child(2),.problem-bank td.pid-col{width:64px;max-width:64px;padding-left:4px;padding-right:0;text-align:left;}
.problem-bank td.pid-col .pid{color:#e6a23c;font-size:18px;font-weight:700;font-family:"JetBrains Mono","Consolas",ui-monospace,monospace;}
.problem-bank th:nth-child(3),.problem-bank td.problem-title-cell{padding-left:16px;text-align:left;}
.problem-bank td.problem-title-cell a{color:#3498DB;font-size:16px;font-weight:500;}
.problem-bank tbody tr td{padding-top:14px;padding-bottom:14px;}

.problem-bank th:nth-child(1),.problem-bank td.pid-cell{width:28px;max-width:28px;padding-right:0;padding-left:6px;}
.problem-bank th:nth-child(2),.problem-bank td.pid-col{width:56px;padding-left:2px;}

.problem-bank{border-collapse:collapse;table-layout:auto;}
.problem-bank td.pid-cell,.problem-bank .pid-cell{
  display:table-cell !important;
  width:24px !important;
  max-width:24px !important;
  padding:12px 0 12px 10px !important;
  text-align:center !important;
}
.problem-bank td.pid-col{
  width:48px !important;
  padding-left:4px !important;
  padding-right:8px !important;
}
.problem-bank td,.problem-bank th{
  border-bottom:1px solid #eceff3;
}
.problem-bank .pid-cell .verdict{
  display:inline !important;
  width:auto !important;
  flex:none !important;
}

.problem-bank td.problem-title-cell a{font-size:17px;font-weight:500;}
.problem-bank td:nth-child(n+4){font-size:14px;color:#3d4b5c;}

/* YK_ALIGN_V2 */
.problem-bank td.pid-cell{
  width:28px !important;max-width:28px !important;
  text-align:right !important;
  padding-left:8px !important;
  padding-right:6px !important;
}
.problem-bank td.pid-col{
  width:44px !important;
  text-align:left !important;
  padding-left:0 !important;
  padding-right:10px !important;
}
.problem-bank td.problem-title-cell,
.problem-bank th.problem-title-cell{
  text-align:left !important;
  padding-left:0 !important;
}

/* YK_SHIFT_PID */
.problem-bank td.pid-cell{padding-right:0 !important;width:30px !important;}
.problem-bank td.pid-col{padding-left:0 !important;margin-left:0 !important;position:relative;left:-10px;}

/* YK_CLEAN_COLS */
.problem-bank td,.problem-bank th{position:static !important;left:auto !important;background:transparent;}
.problem-bank tbody tr:hover td{background:transparent;}
.problem-bank th:nth-child(1),.problem-bank td.pid-cell{
  width:32px !important;max-width:32px !important;
  padding:12px 2px 12px 16px !important;
  text-align:center !important;
}
.problem-bank th:nth-child(2),.problem-bank td.pid-col{
  width:48px !important;
  padding:12px 6px 12px 0 !important;
  text-align:left !important;
}
.problem-bank th:nth-child(3),.problem-bank td.problem-title-cell{
  padding-left:8px !important;
  text-align:left !important;
}

main{max-width:1200px;margin:0 auto;padding-left:24px;padding-right:24px;}
.table-wrap.problem-bank,.compact-panel{max-width:1200px;margin-left:auto;margin-right:auto;}

/* 题库列表：题号贴左；题目列固定约 13em 放 10 字、左对齐、禁止省略；右侧列往右让；知识点可省略 */
.problem-bank table{table-layout:fixed;width:100%;}
.problem-bank th,
.problem-bank td{
  white-space:nowrap !important;
  vertical-align:middle;
  writing-mode:horizontal-tb;
}
/* 题号贴左 */
.problem-bank th:nth-child(2),
.problem-bank td.pid-col{
  width:3.5em !important;
  max-width:3.5em !important;
  text-align:left !important;
  padding-left:0 !important;
  padding-right:8px !important;
  position:static !important;
  left:auto !important;
  margin-left:0 !important;
}
.problem-bank td.pid-col .pid{text-align:left;}
/* 题目列：固定能放下 10 个汉字，左对齐，不要省略号 */
.problem-bank th:nth-child(3),
.problem-bank td.problem-title-cell{
  width:13em !important;
  min-width:13em !important;
  max-width:14em !important;
  text-align:left !important;
  overflow:visible !important;
  text-overflow:clip !important;
  white-space:nowrap !important;
  padding-left:4px !important;
  padding-right:12px !important;
}
.problem-bank td.problem-title-cell .problem-title-link,
.problem-bank td.problem-title-cell > a.problem-title-link,
.problem-bank .problem-title-cell a{
  display:inline !important;
  max-width:none !important;
  overflow:visible !important;
  text-overflow:clip !important;
  white-space:nowrap !important;
  text-align:left !important;
  vertical-align:baseline;
  color:#3498DB !important;
}
/* 正文小字链接（题名、登录辅助链等）→ 洛谷蓝；不改按钮填充、图标 */
.submission-stream tbody td:first-child > a,
.luogu-table td:first-child a,
a.row-title,
a.row-title[href*="#/problems/"],
.panel .row a[href*="#/problems/"]:not(.button),
.set-card a[href*="#/problems/"]:not(.button),
.panel-title a:not(.button),
.login-text-link,
.login-links a.login-text-link,
.login .login-links a{
  color:#3498DB !important;
}
.login-links{
  margin:14px 0 0;
  font-size:.875rem;
  line-height:1.6;
}
.login-links-sep{color:var(--muted,#667786);font-weight:400}
.login-text-link{font-size:.875rem;font-weight:400;text-decoration:none}
.login-text-link:hover{text-decoration:underline}
/* 学科、年级：收窄并左移一点 */
.problem-bank th:nth-child(4),
.problem-bank td:nth-child(4),
.problem-bank th:nth-child(5),
.problem-bank td:nth-child(5){
  width:3em !important;
  max-width:3.2em !important;
  text-align:left;
  padding-left:4px !important;
  padding-right:4px !important;
}
/* 知识点：至少 10 个汉字宽，勿在第 8 字截断 */
.problem-bank th.knowledge-cell,
.problem-bank td.knowledge-cell,
.problem-bank th:nth-child(6),
.problem-bank td:nth-child(6){
  width:13em !important;
  min-width:13em !important;
  max-width:14em !important;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap !important;
  padding-left:6px !important;
  padding-right:6px !important;
}
/* 题型 / 难度 / 来源：收紧左内边距，来源给足宽度避免学生端被挤扁 */
.problem-bank th.type-cell,
.problem-bank td.type-cell,
.problem-bank th:nth-child(7),
.problem-bank td:nth-child(7){
  width:3.5em;
  max-width:4em;
  text-align:left !important;
  white-space:nowrap !important;
  padding-left:6px !important;
}
.problem-bank td.diff-cell,
.problem-bank th:nth-child(8){
  white-space:nowrap !important;
  width:4.5em;
  padding-left:6px !important;
}
.problem-bank td.diff-cell .diff-tag{
  white-space:nowrap !important;
  display:inline-block;
  word-break:keep-all;
}
.problem-bank td.source-cell,
.problem-bank th:nth-child(9){
  white-space:nowrap !important;
  writing-mode:horizontal-tb;
  word-break:keep-all;
  width:10em !important;
  max-width:12em !important;
  min-width:9em !important;
  overflow:hidden;
  text-overflow:ellipsis;
  padding-left:6px !important;
}
/* 仅管理列（第 10 列）；勿用 last-child，学生端最后一列是「来源」 */
.problem-bank td.prob-manage,
.problem-bank th:nth-child(10){
  white-space:nowrap !important;
  width:64px;
  writing-mode:horizontal-tb;
}
.problem-bank td.prob-manage .button{
  white-space:nowrap;
  writing-mode:horizontal-tb;
  letter-spacing:normal;
}
.long-title-list{margin:0 0 12px;padding-left:1.2em;line-height:1.7;font-size:.9rem}
.long-title-list code{font-weight:700;margin-right:6px}

.math-bar{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 12px;}
.math-bar button{padding:6px 10px;border:1px solid #d9dee6;border-radius:8px;background:#ffffff;cursor:pointer;font-size:13px;}
.math-bar button:hover{border-color:#3498DB;color:#3498DB;}

.math-preview{min-height:52px;padding:12px 14px;border:1px solid #e6ebf1;border-radius:10px;background:#ffffff;font-size:20px;}
#math-compose{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0;}
#math-compose label{display:flex;flex-direction:column;font-size:12px;color:#5b6b7a;}
#math-compose input{min-width:80px;padding:6px 8px;}

.math-plain{width:100%;max-width:360px;padding:8px 10px;margin:8px 0;border:1px solid #d9dee6;border-radius:8px;}

.picker-q{width:100%;margin-bottom:8px;padding:8px 10px;border:1px solid #d9dee6;border-radius:8px;}
.picker-toolbar{display:flex;gap:8px;align-items:center;margin-bottom:6px}
.picker-toolbar .picker-q{flex:1;margin-bottom:0;min-width:0}
.picker-toolbar .picker-range-btn{flex:0 0 auto;white-space:nowrap}
.picker-hint{margin:0 0 8px;font-size:.85rem;line-height:1.45}
.picker-hint code{font-size:.84em}
 .picker-list{max-height:230px;overflow:auto;}
.picker-list label{display:flex;}

.pub-hub{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:1100px;}
.pub-card{display:block;text-decoration:none;padding:22px;}
.pub-card h2{margin-top:0;}
@media(max-width:900px){.pub-hub{grid-template-columns:1fr;}}
.coach-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(220px,.9fr);gap:16px;align-items:start}
@media(max-width:900px){.coach-layout{grid-template-columns:1fr}}
.coach-log{min-height:360px;max-height:56vh;overflow:auto;display:flex;flex-direction:column;gap:10px;padding:4px 2px 12px}
.coach-bubble{padding:10px 12px;border-radius:8px;white-space:pre-wrap;line-height:1.5;font-size:.95rem}
.coach-user{background:color-mix(in srgb,var(--brand,#3498DB) 12%,transparent);align-self:flex-end;max-width:92%}
.coach-assistant{background:#f0f3f6;align-self:flex-start;max-width:96%}
.coach-form{display:flex;gap:8px;align-items:flex-end}
.coach-form textarea{flex:1;min-height:72px;resize:vertical}
.coach-hint{margin:8px 0 0}
.coach-refs h2{margin-top:0;font-size:1.05rem}
.coach-refs-list{display:flex;flex-direction:column;gap:8px}
.coach-ref{display:block;padding:8px 10px;border:1px solid var(--line);border-radius:6px;text-decoration:none;color:var(--brand,#3498DB);font-weight:600}
.coach-ref:hover{background:#eff5f6;text-decoration:none}

/* PICK5 */
.picker-list{max-height:calc(46px * 5);overflow-y:auto;}
.picker-list label{min-height:46px;align-items:center;}

.pub-stage{max-width:760px;margin:0 auto;}
.pub-stage .panel{width:100%;}

.opt-list{display:flex;flex-direction:column;gap:2px;margin:8px 0 12px;max-width:100%}
/* 题干与 A/B/C/D 间距收为约 1/3～1/2；选项彼此行距不变 */
#answer-form .question,
#answer-form .question.prose,
.part-block .question,
.part-block .question.prose{
  min-height:0;
  padding-bottom:8px;
}
#answer-form .question + .opt-list,
#answer-form .question.prose + .opt-list,
.part-block .question + .opt-list,
.part-block .question.prose + .opt-list,
.part-block .opt-list{
  margin-top:4px;
}
.part-block{margin:16px 0;padding:12px 0 4px;border-top:1px solid var(--border,#e5e7eb)}
.part-block:first-of-type{border-top:0;padding-top:0}
.part-title{margin:0 0 8px;font-size:1.05rem}
.picker-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.prob-points-wrap{margin-left:auto}
.form-grid:not(.assign-contest) .prob-points-wrap{display:none}
#assignment-form:not(.assign-contest) .prob-points-wrap{display:none}
/* Answer choices: input overlays the row and must receive clicks (opacity 0 can be ignored by some engines). */
#answer-form .opt-list{position:relative;z-index:1}
#answer-form .opt-row{
  position:relative;display:flex;align-items:flex-start;gap:10px;padding:8px 10px;margin:0 0 4px;
  cursor:pointer;border:0;border-radius:6px;background:transparent;width:100%;box-shadow:none;
  font-size:inherit;color:inherit
}
#answer-form .prob-submit-bar{
  margin-top:22px;padding-top:16px;border-top:1px solid var(--line);
  display:flex;justify-content:flex-start
}
#answer-form .prob-submit-bar .primary{
  min-width:128px;padding:11px 32px;font-size:1rem;font-weight:600;
  background:#3498DB;color:#fff;border-color:#3498DB
}
#answer-form .prob-submit-bar .primary:hover{background:#2980B9;color:#fff}
#answer-form .opt-row:hover{background:rgba(35,95,161,.06)}
#answer-form .opt-row .opt-input{
  -webkit-appearance:none;appearance:none;
  position:absolute;inset:0;z-index:5;
  width:100% !important;height:100% !important;min-width:0;min-height:0;
  margin:0 !important;padding:0 !important;border:0 !important;border-radius:0;
  opacity:.01;background:transparent !important;box-shadow:none !important;outline:none;
  cursor:pointer;pointer-events:auto !important
}
#answer-form .opt-row .opt-key,
#answer-form .opt-row .opt-text{pointer-events:none;position:relative;z-index:1}
/* 图片选项两列（题目描述 + 提交页）；文字选项仍整行 */
.opt-list.opt-list-img{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px 12px;
  align-items:stretch;
}
.opt-list.opt-list-img .opt-row:not(.opt-row-img){
  grid-column:1 / -1;
  width:100%;
}
.opt-row.opt-row-img{
  display:block !important;
  position:relative;
  width:auto !important;
  min-width:0;
  margin:0;
  padding:10px;
  border:1px solid var(--line,#dce3e8);
  border-radius:8px;
  background:#ffffff;
  box-sizing:border-box;
}
.opt-row.opt-row-img:hover{background:#f5f8fc}
.opt-row.opt-row-img .opt-key{
  position:absolute;
  top:8px;
  left:8px;
  z-index:2;
  width:22px;
  min-width:22px;
  height:22px;
  flex:none;
  font-size:.72rem;
  box-shadow:0 1px 2px rgba(0,0,0,.06);
}
.opt-row.opt-row-img .opt-text{
  display:flex;
  justify-content:center;
  align-items:center;
  padding:0;
  min-width:0;
}
.opt-row.opt-row-img .stem-img,
.opt-row.opt-row-img img{
  max-width:90%;
  width:auto;
  height:auto;
  max-height:240px;
  margin:0;
  display:block;
  object-fit:contain;
  border:1px solid var(--line,#dce3e8);
  border-radius:4px;
  background:#ffffff;
}
@media(max-width:560px){
  .opt-list.opt-list-img{grid-template-columns:1fr}
}
.opt-row{position:relative;display:flex;align-items:flex-start;gap:10px;padding:8px 10px;margin:0;cursor:default;border:0;border-radius:6px;background:transparent;width:100%;box-shadow:none}
.opt-key{flex:0 0 30px;width:30px;min-width:30px;height:30px;display:inline-flex !important;align-items:center;justify-content:center;border-radius:6px;font-weight:600;font-size:.88rem;line-height:1;background:#efe7d7;color:var(--ink);border:1px solid #dcd3c2;box-sizing:border-box}
.opt-text{flex:1;min-width:0;padding-top:4px;line-height:1.55;word-break:break-word}
.part-fill{display:flex;flex-direction:column;gap:12px;margin:8px 0 12px}
.part-fill .fill-blank-row label{display:block;margin:0 0 6px;color:var(--muted);font-size:.875rem}
.subj-answer-edit{margin:0 0 14px}
.subj-answer-edit > label{display:block;margin:0 0 6px}
.subj-answer-ta{min-height:140px;font-family:ui-monospace,Consolas,monospace;font-size:.95rem;line-height:1.6}
.subj-mf-host{margin-top:10px;padding:12px;border:1px dashed var(--line);border-radius:8px;background:#f5f8fc}
.subj-mf-label{margin:0 0 8px;font-size:.8rem}
.subj-mf-actions{align-items:center}
.subj-answer-view{min-height:0;padding:8px 0 4px;white-space:pre-wrap}
.subj-answer-view .katex{font-size:1.05em}
.subj-ans-img,.subj-answer-view img{max-width:min(100%,480px);height:auto;display:block;margin:10px 0;border:1px solid var(--line);border-radius:4px}
.subj-grade-answer{margin:10px 0 12px;padding:12px 14px;background:#f7f9fb;border:1px solid var(--line);border-radius:8px}
.subj-grade-answer > strong{display:block;margin-bottom:8px}
.subj-grade-feedback{margin:10px 0 12px;padding:12px 14px;background:#f7faf8;border:1px solid var(--line);border-radius:8px}
.subj-grade-feedback > strong{display:block;margin-bottom:8px}
.answer-part .subj-answer-view{background:#ffffff;border-radius:6px;padding:10px 12px;border:1px solid #e8eef2}
.grade-list{display:flex;flex-direction:column;gap:0}
.grade-list-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 4px;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}
.grade-list-row:hover{background:#f7f9fb;text-decoration:none}
.grade-list-row:last-child{border-bottom:0}
.grade-list-main{min-width:0;flex:1}
.grade-list-code{font-weight:700;color:var(--blue);margin-right:6px}
.grade-tabs{margin-bottom:12px}
.grade-detail .grade-form{margin-top:16px}
html[data-theme="dark"] .subj-mf-host{background:#1a1a1a;border-color:#333}
html[data-theme="dark"] .subj-grade-answer{background:#1a1a1a;border-color:#333}
html[data-theme="dark"] .subj-grade-feedback{background:#1a2220;border-color:#333}
html[data-theme="dark"] .grade-list-row:hover{background:#242424}
html[data-theme="dark"] .answer-part .subj-answer-view{background:#161616;border-color:#333}
html[data-theme="dark"] .answer-part .subj-answer-view{background:#161616;border-color:#2c2c2c}
.part-fill .part-fill-input{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
/* 历史对错：绿/红；当前选中（opt-on）必须压过历史色 → 蓝 */
.opt-row.ok .opt-key,
#answer-form .opt-row.ok .opt-key{background:#e7f6ee;color:#147a3d;border-color:#1a9a55}
.opt-row.bad .opt-key,
#answer-form .opt-row.bad .opt-key{background:#fdecea;color:#c0392b;border-color:#d6554d}
#answer-form .opt-row:has(.opt-input:checked) .opt-key,
#answer-form .opt-row.opt-on .opt-key,
#answer-form .opt-row.ok.opt-on .opt-key,
#answer-form .opt-row.bad.opt-on .opt-key,
#answer-form .opt-row.ok:has(.opt-input:checked) .opt-key,
#answer-form .opt-row.bad:has(.opt-input:checked) .opt-key{background:#eaf4fb;color:#3498DB;border-color:#3498DB}
html[data-theme="dark"] #answer-form .opt-row:hover{background:rgba(255,255,255,.05)}
html[data-theme="dark"] .opt-key{background:#2c333b;color:#e8edf2;border-color:#3d4650}
html[data-theme="dark"] .opt-row.ok .opt-key,
html[data-theme="dark"] #answer-form .opt-row.ok .opt-key{background:rgba(26,154,85,.28);color:#8ee0b0;border-color:#3cb371}
html[data-theme="dark"] .opt-row.bad .opt-key,
html[data-theme="dark"] #answer-form .opt-row.bad .opt-key{background:rgba(192,57,43,.28);color:#f5b7b1;border-color:#e07470}
html[data-theme="dark"] #answer-form .opt-row:has(.opt-input:checked) .opt-key,
html[data-theme="dark"] #answer-form .opt-row.opt-on .opt-key,
html[data-theme="dark"] #answer-form .opt-row.ok.opt-on .opt-key,
html[data-theme="dark"] #answer-form .opt-row.bad.opt-on .opt-key,
html[data-theme="dark"] #answer-form .opt-row.ok:has(.opt-input:checked) .opt-key,
html[data-theme="dark"] #answer-form .opt-row.bad:has(.opt-input:checked) .opt-key{background:rgba(52,152,219,.22);color:#7ec8f0;border-color:#3498DB}

.print-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:4px 0 0}
.print-key-toggle{display:flex;align-items:center;gap:6px;margin:0;color:var(--muted);font-size:.875rem;white-space:nowrap}
.print-key-toggle input{width:auto;margin:0}
.print-sheet{display:none}
@media print{
  header,nav,footer,aside,#toast,.no-print,.print-bar,.prob-layout,.prob-hero,.heading,.panel{display:none !important}
  body{background:#fff !important;color:#111 !important}
  main{max-width:none;padding:0;margin:0}
  .panel,.prob-wrap,.prob-layout{border:0;box-shadow:none;padding:0;margin:0;background:transparent}
  .print-sheet{display:block !important;color:#111}
  .print-banner{font-size:13px;font-weight:600;margin:0 0 16px;padding-bottom:8px;border-bottom:1px solid #ccc}
  .print-item{page-break-inside:avoid;break-inside:avoid;margin:0 0 22px;padding:0 0 12px}
  .print-item h2{font-size:16px;margin:0 0 8px}
  .print-sheet .opt-list{margin:6px 0 0}
  .print-sheet .opt-row{padding:6px 0;page-break-inside:avoid;break-inside:avoid}
  .print-sheet .opt-input{display:none !important}
  .print-key,.print-sol{display:none}
  body.print-with-key .print-key,body.print-with-key .print-sol{display:block;margin-top:10px;padding-top:8px;border-top:1px dashed #bbb}
  a[href]:after{content:none !important}
}
.user-row-disabled td{color:var(--muted)}
.user-acts{white-space:nowrap}
.task-score-board{margin:0 0 14px}
.task-score-progress{margin:0 0 8px;font-size:.9rem;color:var(--muted);font-weight:600}
.task-score-hero{margin:0;font-size:1.05rem;line-height:1.4;font-weight:600;color:var(--ink)}
.task-score-num{font-size:1.4rem;font-weight:800;margin-left:.12em}
.task-score-cheer{margin:8px 0 0;font-size:.95rem;color:var(--muted)}

/* 登录页左侧文案：与右侧登录框同尺寸卡片 */
.login-copy .login-hero{
  font-size:2.2rem;
  font-weight:650;
  letter-spacing:0.14em;
  line-height:1.5;
  margin:0 0 16px;
  color:var(--ink);
}
.login-copy .login-epigraph{
  font-size:0.9rem;
  line-height:1.75;
  margin:0 0 28px;
  letter-spacing:0.04em;
  max-width:18em;
}
.login-copy .login-brand-line{
  font-size:0.8125rem;
  margin:0;
  letter-spacing:0.06em;
  opacity:0.85;
}
html[data-theme="dark"] .login-copy .login-hero{color:var(--ink)}
@media(max-width:760px){
  .login{gap:18px}
  .login-copy.panel,.login .panel{height:auto;min-height:0}
  .login-copy .login-hero{font-size:1.75rem;letter-spacing:0.1em}
}

/* Topbar + nav height wins over earlier compact media rules (light + dark) */
header .topbar{
  min-height:52px !important;
  align-items:center !important;
  padding-top:8px !important;
  padding-bottom:8px !important;
  max-width:none !important;
  width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
  box-sizing:border-box !important;
}
header .topbar .brand{font-size:1.15rem !important}
header .topbar .brand img{width:32px !important;height:32px !important;flex:0 0 32px !important}
header .topbar .brand span{font-size:.85rem !important}
header .topbar .account{flex-wrap:nowrap !important;align-items:center !important}
header .topbar .account > a:not(.inbox-bell),
header .topbar .account > button{
  padding:6px 10px !important;
  min-height:32px !important;
  font-size:.8125rem !important;
  box-sizing:border-box;
}
header .topbar .account-who .nav-avatar,
header .topbar .nav-avatar{
  width:36px !important;
  height:36px !important;
  flex:0 0 36px !important;
  border-radius:50% !important;
}
header .topbar .account-who{
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
}
header .topbar .account-who > .account-name{
  font-size:1rem !important;
  font-weight:650 !important;
  color:var(--brand,#3498DB) !important;
  padding:0 !important;
  min-height:0 !important;
  background:none !important;
  border:0 !important;
}
header > nav,
header nav[aria-label="主导航"]{
  min-height:44px !important;
  align-items:stretch !important;
  gap:6px !important;
  max-width:1200px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
header > nav a,
header nav[aria-label="主导航"] a{
  font-size:.95rem !important;
  padding:10px 16px !important;
  display:inline-flex !important;
  align-items:center !important;
}
html[data-theme="dark"] header .topbar{min-height:52px !important}
html[data-theme="dark"] header > nav,
html[data-theme="dark"] header nav[aria-label="主导航"]{min-height:44px !important}
@media(max-width:760px){
  header .topbar{min-height:48px !important;padding-top:6px !important;padding-bottom:6px !important}
  header .topbar .brand{font-size:1.05rem !important}
  header .topbar .account-who .nav-avatar,
  header .topbar .nav-avatar{width:32px !important;height:32px !important;flex-basis:32px !important;border-radius:50% !important}
  header .topbar .account-who > .account-name{font-size:.95rem !important;color:var(--brand,#3498DB) !important;padding:0 !important;min-height:0 !important}
  header .topbar .account > a:not(.inbox-bell),
  header .topbar .account > button{font-size:.75rem !important;padding:5px 8px !important;min-height:30px !important}
  header > nav,
  header nav[aria-label="主导航"]{min-height:42px !important}
  header > nav a,
  header nav[aria-label="主导航"] a{font-size:1.05rem !important;padding:14px 18px !important}
}
@media(max-width:430px){
  header .topbar{flex-wrap:nowrap !important}
  header .topbar .account{width:auto !important;justify-content:flex-end !important}
}

/* Final override: topbar 全宽；品牌左缩进（比内容栏略贴边） */
header .topbar{
  min-height:64px !important;
  padding:10px 24px 10px 56px !important;
  max-width:none !important;
  width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
}
header .topbar .brand{font-size:1.35rem !important;gap:8px !important;}
header .topbar .brand img{width:36px !important;height:36px !important;}
header .account-who .nav-avatar,
header .topbar .nav-avatar{
  width:40px !important;
  height:40px !important;
}
header nav{
  min-height:72px !important;
}
header nav a{
  padding:20px 24px !important;
  font-size:1.12rem !important;
}

/* Sticky topbar + hover-expand horizontal nav (not a left drawer) */
header .head-sticky{
  position:sticky;
  top:0;
  z-index:60;
}
header .topbar{
  position:sticky;
  top:0;
  z-index:60;
  background:var(--ink,#182936);
}
html[data-theme="light"] header .topbar,
html:not([data-theme]) header .topbar{
  background:#ffffff !important;
}
html[data-theme="dark"] header .topbar{
  background:#111 !important;
}
header .nav-rail{
  position:relative;
  left:50%;
  right:auto;
  width:100vw;
  max-width:100vw;
  margin-left:-50vw;
  margin-bottom:0;
  height:12px;
  z-index:59;
  padding:0;
  overflow:hidden;
  background:#ffffff;
  box-sizing:border-box;
  transition:height .28s ease,margin-bottom .28s ease;
}
html[data-theme="dark"] header .nav-rail{
  background:#111;
}
header .head-sticky:hover .nav-rail,
header .head-sticky:focus-within .nav-rail{
  height:72px;
  margin-bottom:-60px;
}
header .nav-rail nav,
html[data-theme="light"] header .nav-rail nav,
html:not([data-theme]) header .nav-rail nav,
html[data-theme="dark"] header .nav-rail nav{
  position:absolute;
  left:0;
  right:0;
  top:0;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  box-sizing:border-box;
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:stretch !important;
  justify-content:space-between !important;
  gap:0 !important;
  height:72px !important;
  min-height:72px !important;
  max-height:none !important;
  padding:0 40px !important;
  overflow:hidden !important;
  transform:translateY(-100%);
  opacity:0;
  pointer-events:none;
  transition:transform .28s ease,opacity .2s ease;
  background:#ffffff !important;
  border:0 !important;
  border-bottom:0 !important;
  box-shadow:none !important;
}
html[data-theme="dark"] header .nav-rail nav{
  background:#111 !important;
}
header .head-sticky:hover .nav-rail nav,
header .head-sticky:focus-within .nav-rail nav,
html[data-theme="light"] header .head-sticky:hover .nav-rail nav,
html:not([data-theme]) header .head-sticky:hover .nav-rail nav{
  transform:translateY(0);
  opacity:1;
  pointer-events:auto;
}
header .nav-rail nav a,
html[data-theme="light"] header .nav-rail nav a,
html:not([data-theme]) header .nav-rail nav a{
  flex:0 0 auto !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  white-space:nowrap;
  border:0 !important;
  border-bottom:3px solid transparent !important;
  border-radius:0 !important;
  box-shadow:none !important;
  background:transparent !important;
}
header .nav-rail nav a:hover,
html[data-theme="light"] header .nav-rail nav a:hover,
html:not([data-theme]) header .nav-rail nav a:hover{
  border-bottom-color:#3498DB !important;
  text-decoration:none !important;
}
header .nav-rail nav a.active,
html[data-theme="light"] header .nav-rail nav a.active,
html:not([data-theme]) header .nav-rail nav a.active{
  border-bottom-color:#3498DB !important;
  color:#3498DB !important;
}
html[data-theme="dark"] header .nav-rail nav a:hover,
html[data-theme="dark"] header .nav-rail nav a.active{
  border-bottom-color:#83d8c7 !important;
}
@media(max-width:899px){
  header .nav-rail,
  header .head-sticky:hover .nav-rail,
  header .head-sticky:focus-within .nav-rail{
    height:auto;
    margin-bottom:0;
    overflow:visible;
    transition:none;
  }
  header .nav-rail nav,
  html[data-theme="light"] header .nav-rail nav,
  html:not([data-theme]) header .nav-rail nav,
  header .head-sticky:hover .nav-rail nav,
  header .head-sticky:focus-within .nav-rail nav{
    position:static !important;
    height:auto !important;
    min-height:60px !important;
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    transform:none !important;
    opacity:1 !important;
    pointer-events:auto !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    padding:0 16px !important;
    justify-content:space-between !important;
    transition:none !important;
  }
}

/* User profile (#/u/:username) — 学洛谷：封面与顶栏留缝、白字叠图、栏内 tabs+统计 */
.uprofile{margin:0;display:flex;flex-direction:column;flex:1 1 auto;min-height:calc(100vh - 148px)}
main:has(.uprofile){padding-top:14px !important;display:flex;flex-direction:column;min-height:calc(100vh - 108px)}
.uprofile-banner{position:relative;margin:0;border-radius:8px 8px 0 0;overflow:visible;background:#ffffff}
.uprofile-cover-wrap{position:relative;border-radius:8px 8px 0 0;overflow:hidden}
.uprofile-cover{height:268px;width:100%;background:#dce4ec center/cover no-repeat;border-radius:0}
.uprofile-cover.is-default{background:linear-gradient(135deg,#d9e3ec 0%,#eef2f6 55%,#d5dee8 100%)}
.uprofile-cover-wrap::after{content:"";position:absolute;inset:auto 0 0 0;height:58%;background:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,.14) 55%,transparent);pointer-events:none;z-index:1}
.uprofile-identity{position:absolute;left:0;right:0;bottom:0;z-index:2;display:flex;align-items:center;gap:12px;padding:0 16px 12px 28px;margin:0}
.uprofile-avatar{width:60px;height:60px;border-radius:50%;object-fit:cover;background:#d8dee4;flex:0 0 60px;border:0;box-shadow:none}
.uprofile-main{flex:1 1 auto;min-width:0;padding:0 0 2px;align-self:center}
.uprofile-name{font-size:1.35rem;font-weight:700;line-height:1.2;margin:0;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.55),0 0 10px rgba(0,0,0,.28)}
.uprofile-sig{margin:6px 0 0;font-size:.82rem;line-height:1.35;color:rgba(255,255,255,.92);text-shadow:0 1px 2px rgba(0,0,0,.5);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
a.uprofile-settings,a.uprofile-settings:visited,a.uprofile-settings:hover{flex:0 0 auto;align-self:flex-end;margin:0 0 2px;padding:6px 12px;font-size:.95rem;font-weight:600;color:#fff !important;text-decoration:none;white-space:nowrap;border-radius:4px;background:rgba(0,0,0,.38);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);box-shadow:0 1px 3px rgba(0,0,0,.2)}
a.uprofile-settings:hover{background:rgba(0,0,0,.5)}
.uprofile-acts{flex:0 0 auto;align-self:flex-end;margin:0 0 2px;justify-content:flex-end}
.uprofile-bar{display:flex;align-items:stretch;justify-content:space-between;gap:12px;background:#ffffff;padding:0 14px 0 6px;border-bottom:1px solid var(--line,#e9eef2);min-height:48px}
.uprofile-tabs{display:flex;gap:6px;flex:1 1 auto;flex-wrap:wrap;margin:0;padding:0;border:0;background:transparent}
.uprofile-tabs a{padding:12px 22px;font-size:1.05rem;color:var(--ink);text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px;line-height:1.25}
.uprofile-tabs a:hover{color:var(--brand,#3498DB);text-decoration:none}
.uprofile-tabs a.on{border-color:var(--brand,#3498DB);font-weight:650;color:var(--brand,#3498DB)}
.uprofile-stats{display:flex;align-items:center;gap:28px;margin:0;padding:6px 4px;flex:0 0 auto}
.uprofile-stat{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:40px;font-size:.85rem;line-height:1.2;color:var(--muted)}
.uprofile-stat strong{color:var(--ink);font-weight:650;font-size:1.05rem;font-variant-numeric:tabular-nums;line-height:1.15}
.uprofile-card{margin:0;padding:0;border-radius:0 0 8px 8px;border-top:0;overflow:hidden;flex:1 1 auto;display:flex;flex-direction:column;min-height:0;background:#eef2f7;border-color:transparent}
.uprofile-banner+.uprofile-card,.uprofile .uprofile-card{border-top:0}
.uprofile-pane{padding:14px 0 8px;background:transparent;flex:1 1 auto}
.uprofile-home{display:flex;flex-direction:column;gap:12px}
.uprofile-block{background:#ffffff;border:1px solid var(--line,#e9eef2);border-radius:6px;padding:16px 20px}
.uprofile-block-hd{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px}
.uprofile-block-hd h2{margin:0;font-size:1rem;font-weight:650;color:var(--ink)}
.uprofile-block-hd .muted{font-size:.875rem;text-decoration:none}
.uprofile-bio{line-height:1.85;min-height:0;white-space:pre-wrap}
.uprofile-empty{margin:0;padding:4px 0 2px}
.uprofile-passed{display:flex;flex-wrap:wrap;gap:8px}
.uprofile-pass{display:inline-block;padding:4px 10px;border-radius:4px;background:#edf4fa;color:var(--brand,#3498DB);font-size:.875rem;font-weight:600;text-decoration:none;line-height:1.4}
.uprofile-pass:hover{background:#dceef9;text-decoration:none}
.uprofile-people{display:flex;flex-wrap:wrap;gap:14px}
.uprofile-person{display:flex;flex-direction:column;align-items:center;gap:6px;width:72px;text-align:center;font-size:.85rem;text-decoration:none;color:inherit}
.uprofile-person img{width:48px;height:48px;border-radius:50%;object-fit:cover;background:#ddd}
/* 兼容裁剪预览旧结构 */
.uprofile-banner-inner{display:flex;align-items:flex-end;gap:18px;padding:0 22px 18px;margin-top:-48px;position:relative;z-index:1;min-height:96px}
.uprofile-meta{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;justify-content:flex-end}
.uprofile-aside{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-end;gap:10px;margin-left:auto}
.uprofile-details{margin-top:10px;padding-left:114px}
.acc-cover-preview{width:120px;height:48px;object-fit:cover;border-radius:6px;border:1px solid var(--line);background:#eef2f6;display:inline-block;vertical-align:middle;margin-right:8px}
.crop-overlay{position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box}
.crop-modal{background:#ffffff;border-radius:10px;width:min(960px,100%);max-height:min(92vh,820px);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 12px 40px rgba(0,0,0,.22)}
.crop-modal-hd{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line)}
.crop-modal-body{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(240px,.9fr);gap:16px;padding:16px 18px;min-height:0;overflow:auto;flex:1}
.crop-stage{min-height:320px;max-height:52vh;background:#111;border-radius:8px;overflow:hidden}
.crop-stage img{display:block;max-width:100%}
.crop-preview-pane{min-width:0}
.crop-preview-profile{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#ffffff}
.crop-preview-banner .uprofile-cover{height:96px;border-radius:0}
.crop-preview-banner .uprofile-banner-inner{margin-top:-36px;padding:0 12px 12px;min-height:72px;gap:12px}
.crop-preview-banner .uprofile-avatar{width:72px;height:72px;flex-basis:72px}
.crop-preview-banner .uprofile-name{font-size:1.05rem}
.crop-tip{margin:10px 0 0;font-size:.85rem}
.crop-modal-ft{display:flex;justify-content:flex-end;gap:10px;padding:12px 18px;border-top:1px solid var(--line);background:#f5f8fc}
@media(max-width:760px){
  .crop-modal-body{grid-template-columns:1fr}
  .crop-stage{min-height:240px;max-height:40vh}
}
@media(max-width:760px){
  .uprofile-cover{height:200px}
  .uprofile-identity{flex-wrap:wrap;gap:10px;padding:0 12px 8px 20px}
  .uprofile-avatar{width:52px;height:52px;flex-basis:52px}
  .uprofile-bar{flex-wrap:wrap;padding:0 8px 4px}
  .uprofile-tabs a{padding:10px 16px}
  .uprofile-stats{width:100%;justify-content:flex-end;gap:20px;padding:2px 0 6px}
  .uprofile-banner-inner{flex-wrap:wrap;align-items:flex-end;padding:0 14px 14px;margin-top:-38px;min-height:76px}
  .uprofile-aside{width:100%;align-items:flex-start;flex-direction:row;flex-wrap:wrap;justify-content:space-between;margin-left:0}
  .uprofile-pane{padding:14px 16px 16px}
}
.classmate-req{align-items:center;gap:12px}
.classmate-req-who{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
.classmate-req-link{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:inherit}
.classmate-req-name{font-weight:650}
.classmate-av{flex:0 0 auto}
.classmate-list{display:flex;flex-direction:column;gap:4px}
.classmate-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;text-decoration:none;color:inherit}
.classmate-row:hover{background:#f5f6f8}

/* 任务列表：桌面表格 / 窄屏卡片（避免标题一字一列） */
.task-list-cards{display:none}
.task-list-table{display:block}
.task-card{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:14px 0;
  border-bottom:1px solid var(--line,#e9eef2);
}
.task-card:last-child{border-bottom:0;padding-bottom:0}
.task-card:first-child{padding-top:0}
.task-card-title{
  display:block;
  font-size:1.05rem;
  font-weight:600;
  line-height:1.55;
  color:var(--blue,#3498DB);
  white-space:normal;
  writing-mode:horizontal-tb;
  word-break:normal;
  overflow-wrap:break-word;
  max-width:100%;
}
.task-card-title:hover{text-decoration:underline}
.task-card-badges{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.task-card-times{
  display:flex;
  flex-wrap:wrap;
  gap:8px 16px;
  font-size:.85rem;
  color:var(--muted,#667786);
  line-height:1.5;
  white-space:normal;
}
.task-card-times span{min-width:0}
.task-card-foot{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
@media (max-width:719.98px){
  .tasks-page .heading{
    flex-direction:column;
    align-items:stretch;
    gap:12px;
  }
  .tasks-page .heading > div:first-child{min-width:0;max-width:100%}
  .tasks-page .heading h1{
    white-space:normal;
    word-break:normal;
    overflow-wrap:break-word;
  }
  .tasks-page .heading > .flex{
    width:100%;
    justify-content:flex-start;
    margin:0;
  }
  .tasks-page .tasks-new-btn{
    width:100%;
    box-sizing:border-box;
  }
  .task-list{padding:16px}
  .task-list-table{display:none !important}
  .task-list-cards{
    display:flex;
    flex-direction:column;
    gap:0;
  }
  .task-list .pager{margin-top:12px}
}

/* —— 移动端首页（<720px）：公告卡在上、欢迎/日历/倒计时在下，互不重叠 —— */
@media (max-width:719.98px){
  /* 顶栏整行可横滑，露出主题切换 / 账号 / 退出 */
  header .topbar{
    min-height:56px !important;
    padding:10px 12px !important;
    flex-wrap:nowrap !important;
    gap:8px;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
    overscroll-behavior-x:contain;
  }
  header .topbar .brand{
    font-size:1.15rem !important;
    gap:8px !important;
    min-width:0;
    flex:0 0 auto !important;
  }
  header .topbar .brand img{
    width:32px !important;
    height:32px !important;
    flex-basis:32px !important;
  }
  header .topbar .brand span{display:none;}
  header .topbar .account{
    flex:0 0 auto !important;
    width:auto !important;
    justify-content:flex-start !important;
    gap:6px !important;
    flex-wrap:nowrap !important;
    min-width:max-content !important;
  }
  header .topbar .account > #theme-toggle,
  header .topbar .account > #add-slot,
  header .topbar .account > a[href="#/manage"],
  header .topbar .account > a[href="#/account"],
  header .topbar .account > #logout{
    display:inline-flex !important;
    flex:0 0 auto !important;
    white-space:nowrap !important;
  }
  header .topbar .account-who .nav-avatar,
  header .topbar .nav-avatar{
    width:36px !important;
    height:36px !important;
    flex-basis:36px !important;
  }
  header .topbar .account-who > .account-name{
    max-width:7em;
    overflow:hidden;
    text-overflow:ellipsis;
    font-size:1rem !important;
  }
  header .topbar .account > a[href="#/login"]{
    padding:8px 12px !important;
    min-height:36px !important;
    font-size:.9rem !important;
  }

  /* 第二行导航：横滑，不挤碎文字 */
  header .nav-rail,
  header .head-sticky:hover .nav-rail,
  header .head-sticky:focus-within .nav-rail{
    height:auto !important;
    margin-bottom:0 !important;
    overflow:visible !important;
  }
  header .nav-rail nav,
  html[data-theme="light"] header .nav-rail nav,
  html:not([data-theme]) header .nav-rail nav,
  html[data-theme="dark"] header .nav-rail nav,
  header .head-sticky:hover .nav-rail nav,
  header .head-sticky:focus-within .nav-rail nav{
    position:static !important;
    transform:none !important;
    opacity:1 !important;
    pointer-events:auto !important;
    height:auto !important;
    min-height:48px !important;
    display:flex !important;
    flex-wrap:nowrap !important;
    justify-content:flex-start !important;
    gap:0 !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
    padding:0 8px !important;
  }
  header .nav-rail nav a,
  html[data-theme="light"] header .nav-rail nav a,
  html:not([data-theme]) header .nav-rail nav a,
  html[data-theme="dark"] header .nav-rail nav a{
    flex:0 0 auto !important;
    white-space:nowrap !important;
    font-size:.95rem !important;
    padding:12px 14px !important;
    min-width:max-content;
  }

  /* 首页欢迎区：两张独立卡，上下排列 */
  .oj-home .welcome-bar--home,
  .oj-home .welcome-bar{
    flex-direction:column !important;
    align-items:stretch !important;
    gap:12px !important;
    padding:0 !important;
    margin-left:0;
    margin-right:0;
    max-width:none;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
  }
  .oj-home .welcome-ann,
  .oj-home .welcome-copy{
    flex:none !important;
    width:100% !important;
    max-width:100% !important;
    min-height:0 !important;
    margin:0;
    overflow:visible;
  }
  .oj-home .welcome-copy{
    justify-content:flex-start;
    gap:14px;
    padding-top:18px;
    padding-bottom:18px;
  }
  .oj-home .welcome-hi{font-size:1.25rem;}
  .oj-home .welcome-day{font-size:64px;}
  .oj-home .welcome-month,
  .oj-home .welcome-wk{font-size:14px;}
  .oj-home .welcome-count{
    font-size:15px;
    line-height:1.55;
    white-space:normal;
    word-break:break-word;
    padding:0 4px;
  }
  .oj-home .welcome-count strong{font-size:17px;}
  .oj-home .welcome-ann table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;}

  /* 搜索：单列，按钮在下不挡字 */
  .oj-home .oj-search{
    flex-direction:column;
    align-items:stretch;
    gap:10px;
    max-width:none;
  }
  .oj-home .oj-search input{
    width:100%;
    min-width:0;
    box-sizing:border-box;
  }
  .oj-home .oj-search button{
    width:100%;
  }

  .oj-home{padding:0 12px;box-sizing:border-box;}
  .oj-home .oj-grid{max-width:none;}
}

/* 夜间：移动端首页同样两卡分离 */
html[data-theme="dark"] .oj-home .welcome-ann,
html[data-theme="dark"] .oj-home .welcome-copy{
  background:#1c1c1c;
}
@media (max-width:719.98px){
  html[data-theme="dark"] .oj-home .welcome-bar--home,
  html[data-theme="dark"] .oj-home .welcome-bar{
    background:transparent !important;
  }
}

.hist-import{position:fixed;inset:0;z-index:80;background:#0006;display:flex;justify-content:center;align-items:flex-start;overflow:auto;padding:24px 12px;}
.hist-import[hidden]{display:none !important;}
.hist-import-card{width:min(920px,100%);margin:0;}
.hist-import textarea{width:100%;min-height:220px;font-family:ui-monospace,Consolas,monospace;font-size:13px;line-height:1.45;}
.hist-import button:disabled{opacity:.45;cursor:not-allowed;background:#e6ebef;color:#7d8b96;border-color:#d5dee4}
.hist-import-preview{max-height:320px;overflow:auto;margin-top:8px;}
.intake-stats{font-size:1.05rem;margin:0 0 12px;}
.intake-card{border:1px solid #d5dee4;border-radius:8px;padding:12px;margin:0 0 12px;}
.intake-card textarea{width:100%;min-height:72px;}
.intake-why{margin:6px 0 10px;color:#8a4b08;}
.intake-card-head{margin-bottom:8px;}
.intake-raw{min-height:220px;font-family:ui-monospace,Consolas,monospace;}

/* —— 历史概念关系图（自建 SVG） —— */
.hn-panel{padding:18px 20px 14px}
.hn-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:10px}
.hn-select-label{display:flex;align-items:center;gap:8px;margin:0;font-size:.875rem;color:var(--muted);white-space:nowrap}
.hn-select-label select{width:auto;min-width:200px;max-width:100%;padding:7px 10px}
.hn-summary{font-size:.82rem}
.hn-legend{display:flex;flex-wrap:wrap;gap:8px 16px;margin:4px 0 12px;font-size:.78rem;color:var(--muted)}
.hn-key{display:inline-flex;align-items:center;gap:6px}
.hn-key::before{content:"";width:10px;height:10px;border-radius:3px;display:inline-block;border:1px solid}
.hn-key-center::before{background:#182936;border-color:#182936}
.hn-key-up::before{background:#ffffff6e6;border-color:#d9a441}
.hn-key-parallel::before{background:#eaf4fb;border-color:#3498DB}
.hn-key-child::before{background:#e9f5f1;border-color:#147568}
.hn-key-period::before{background:#f2eefb;border-color:#7a5fc0}
.hn-canvas{overflow-x:auto;overflow-y:hidden;border:1px solid var(--line);border-radius:10px;background:#ffffff}
.hn-svg{display:block;width:100%;height:auto;min-width:620px}
.hn-svg .hn-node rect{stroke-width:1.2;transition:stroke-width .12s ease,fill .12s ease}
.hn-svg a.hn-node{cursor:pointer}
.hn-svg a.hn-node:hover rect{stroke-width:2.4}
.hn-node-title{font-size:13px;font-weight:650;text-anchor:middle;fill:#182936;pointer-events:none}
.hn-node-sub{font-size:10.5px;text-anchor:middle;fill:#667786;pointer-events:none}
.hn-node-center rect{fill:#182936;stroke:#182936}
.hn-node-center .hn-node-title{fill:#fff}
.hn-node-center .hn-node-sub{fill:#c5d2da}
.hn-node-up rect{fill:#fff6e6;stroke:#d9a441}
.hn-node-parallel rect{fill:#eaf4fb;stroke:#3498DB}
.hn-node-child rect{fill:#e9f5f1;stroke:#147568}
.hn-node-period rect{fill:#f2eefb;stroke:#7a5fc0}
.hn-edge{stroke-width:1.4;fill:none}
.hn-edge-up{stroke:#d9a441}
.hn-edge-parallel{stroke:#3498DB}
.hn-edge-child{stroke:#147568}
.hn-edge-period{stroke:#7a5fc0;stroke-dasharray:4 3}
.hn-empty-text{font-size:14px;text-anchor:middle;fill:#8a99a8}
.hn-overflow{font-size:11px;text-anchor:middle;fill:#8a99a8}
.hn-side .actions{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0 0}
.hn-relations{display:flex;flex-direction:column;gap:14px;margin-top:14px}
.hn-rel-title{font-size:.8rem;color:var(--muted);margin-bottom:7px;letter-spacing:.04em}
.hn-rel-list{display:flex;flex-wrap:wrap;gap:8px}
.hn-help{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.cb-pill-period{border-color:#7a5fc0;color:#6a4fb3}
a.cb-pill-period:hover{border-color:#7a5fc0;color:#6a4fb3;background:rgba(122,95,192,.08)}
@media(max-width:640px){
 .hn-panel{padding:14px 12px 10px}
 .hn-select-label{width:100%}
 .hn-select-label select{flex:1;min-width:0}
 .hn-summary{width:100%}
 .hn-svg{min-width:560px}
}
html[data-theme="dark"] .hn-canvas{background:#1a1a1a}
html[data-theme="dark"] .hn-node-title{fill:#e6e1d4}
html[data-theme="dark"] .hn-node-sub{fill:#9b9588}
html[data-theme="dark"] .hn-node-center rect{fill:#0f0f0f;stroke:#3498DB}
html[data-theme="dark"] .hn-node-up rect{fill:#2a2418;stroke:#d9a441}
html[data-theme="dark"] .hn-node-parallel rect{fill:#1c2830;stroke:#3498DB}
html[data-theme="dark"] .hn-node-child rect{fill:#1b2a26;stroke:#3fae9c}
html[data-theme="dark"] .hn-node-period rect{fill:#241f33;stroke:#9a80e0}
html[data-theme="dark"] .hn-key-center::before{background:#e6e1d4;border-color:#e6e1d4}

/* —— 历史地图：整页地图 + 同页知识抽屉（米色宣纸 / 墨色 / 朱红） —— */
body.history-map-mode{overflow:hidden}
body.history-map-mode header,
body.history-map-mode footer{display:none}
body.history-map-mode main{max-width:none;margin:0;padding:0}
body.history-map-mode #app{height:100vh;overflow:hidden}
.hmap{--hm-paper:#f4ecda;--hm-paper-2:#efe4cc;--hm-ink:#2b241b;--hm-muted:#6f6250;--hm-line:rgba(88,68,42,.24);--hm-red:#a13c2b;position:fixed;inset:0;z-index:40;background:var(--hm-paper);color:var(--hm-ink);font-family:"LXGW WenKai","Songti SC","STSong",serif}
.hmap-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.hmap-frame{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;background:var(--hm-paper)}
.hmap-pill{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border-radius:999px;border:1px solid var(--hm-line);background:rgba(247,241,227,.92);color:var(--hm-ink);font-size:.86rem;line-height:1.4;text-decoration:none;box-shadow:0 2px 10px rgba(60,45,25,.12);backdrop-filter:blur(6px);cursor:pointer}
.hmap-pill:hover{background:#fbf6ea;color:var(--hm-red);text-decoration:none}
.hmap-topbar{position:absolute;top:14px;left:14px;z-index:3;display:flex;align-items:center;gap:8px;flex-wrap:wrap;max-width:calc(100% - 220px)}
.hmap-year-form{display:flex;align-items:center;gap:6px;margin:0;padding:4px 6px 4px 10px;border-radius:999px;border:1px solid var(--hm-line);background:rgba(247,241,227,.92);backdrop-filter:blur(6px);box-shadow:0 2px 10px rgba(60,45,25,.12)}
.hmap-year-form input{width:84px;padding:4px 6px;border:0;background:transparent;color:var(--hm-ink);font-size:.9rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;text-align:right;outline:none}
.hmap-go{padding:5px 10px;border:0;box-shadow:none;background:var(--hm-red);color:#fdf7e9}
.hmap-go:hover{background:#8a3224;color:#fff}
.hmap-fullscreen{position:absolute;top:56px;right:14px;z-index:3;font-size:.8rem}
.hmap-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.hmap-action{padding:7px 12px;border-radius:999px;border:1px solid var(--hm-line);background:rgba(247,241,227,.94);color:var(--hm-ink);font-size:.84rem;line-height:1.4;white-space:nowrap;box-shadow:0 2px 10px rgba(60,45,25,.12);backdrop-filter:blur(6px);cursor:pointer;font-family:inherit}
.hmap-action:hover{background:var(--hm-red);color:#fdf7e9;border-color:var(--hm-red)}
.hmap-scrim{position:absolute;inset:0;z-index:4;background:rgba(43,36,27,.28)}
.hmap-scrim[hidden]{display:none}
.hmap-drawer{position:absolute;top:0;right:0;bottom:0;z-index:5;width:min(460px,100%);display:flex;flex-direction:column;background:linear-gradient(180deg,#f8f1e1,#f2e7d1);border-left:1px solid var(--hm-line);box-shadow:-18px 0 50px rgba(50,36,20,.22);transform:translateX(102%);visibility:hidden;transition:transform .26s ease,visibility 0s linear .26s}
.hmap-drawer.is-open{transform:none;visibility:visible;transition:transform .26s ease}
.hmap-drawer-head{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--hm-line);background:rgba(255,250,240,.7)}
.hmap-drawer-back,.hmap-drawer-close{border:1px solid var(--hm-line);background:transparent;color:var(--hm-ink);border-radius:999px;padding:5px 10px;font-size:.82rem;cursor:pointer;font-family:inherit}
.hmap-drawer-close{margin-left:auto;font-size:1.1rem;line-height:1;padding:4px 9px 6px}
.hmap-drawer-back[hidden]{display:none}
.hmap-tabs{display:flex;gap:4px}
.hmap-tabs button{border:0;background:transparent;color:var(--hm-muted);padding:6px 10px;border-radius:999px;font-size:.9rem;cursor:pointer;font-family:inherit}
.hmap-tabs button[aria-selected="true"]{background:rgba(161,60,43,.12);color:var(--hm-red);font-weight:600}
@media(max-width:640px){.hmap-tabs{gap:2px}.hmap-tabs button{padding:5px 7px;font-size:.82rem}}
.hmap-drawer-body{flex:1;overflow:auto;padding:18px 20px 40px;overscroll-behavior:contain}
.hmap-search-row{position:sticky;top:-18px;z-index:1;padding:10px 0;margin:-10px 0 6px;background:linear-gradient(180deg,#f8f1e1 70%,rgba(248,241,225,0))}
.hmap-search-row input{width:100%;padding:9px 12px;border-radius:999px;border:1px solid var(--hm-line);background:rgba(255,252,245,.9);color:var(--hm-ink);font-size:.9rem;outline:none}
.hmap-search-row input:focus{border-color:var(--hm-red);box-shadow:0 0 0 3px rgba(161,60,43,.12)}
.hmap-count{margin:4px 0 10px;font-size:.75rem;color:var(--hm-muted);letter-spacing:.05em}
.hmap-group{margin:0 0 18px}
.hmap-group h5{margin:0 0 8px;font-size:.78rem;font-weight:600;letter-spacing:.12em;color:var(--hm-red)}
.hmap-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left;padding:9px 10px;border:0;border-bottom:1px dashed rgba(88,68,42,.18);border-radius:6px;background:transparent;color:var(--hm-ink);cursor:pointer;font-family:inherit}
.hmap-item[hidden]{display:none}
.hmap-item:hover{background:rgba(161,60,43,.07)}
.hmap-item-title{display:flex;align-items:center;gap:6px;font-size:.95rem}
.hmap-item-sub{font-size:.75rem;color:var(--hm-muted)}
.hmap-draft{font-size:.65rem;padding:1px 5px;border:1px solid var(--hm-line);border-radius:4px;color:var(--hm-muted)}
.hmap-gaokao{font-size:.62rem;padding:1px 6px;border-radius:999px;background:rgba(161,60,43,.12);color:var(--hm-red);font-weight:600;letter-spacing:.06em;white-space:nowrap}
.hmap-scope{display:flex;gap:6px;margin:0 0 10px}
.hmap-scope-btn{padding:5px 11px;border-radius:999px;border:1px solid var(--hm-line);background:rgba(255,252,245,.6);color:var(--hm-muted);font-size:.78rem;cursor:pointer;font-family:inherit;letter-spacing:.04em}
.hmap-scope-btn:hover{border-color:var(--hm-red);color:var(--hm-red)}
.hmap-scope-btn.is-on{background:var(--hm-red);border-color:var(--hm-red);color:#fdf7e9}
.hmap-event-item .hmap-item-title{font-family:'Noto Serif SC','Songti SC','SimSun',serif;font-size:1rem;font-weight:600;letter-spacing:.01em}
.hmap-event-item .hmap-item-sub{font-family:'Noto Serif SC','Songti SC','SimSun',serif;letter-spacing:.03em}
.hmap-event-detail{font-family:'Noto Serif SC','Songti SC','SimSun',serif}
.hmap-event-detail .hmap-detail-title{font-weight:700;letter-spacing:.02em}
.hmap-empty{padding:18px 4px;color:var(--hm-muted);font-size:.86rem;line-height:1.7}
.hmap-detail-kicker{margin-bottom:6px;font-size:.72rem;letter-spacing:.2em;color:var(--hm-red)}
.hmap-detail-title{margin:0 0 4px;font-size:1.5rem;font-weight:600;line-height:1.4}
.hmap-detail-meta{margin:0 0 12px;font-size:.8rem;color:var(--hm-muted)}
.hmap-detail-full{margin:0 0 10px;font-size:.84rem;line-height:1.7;color:var(--hm-muted)}
.hmap-detail-lead{margin:0 0 14px;padding:10px 12px;border-left:3px solid var(--hm-red);background:rgba(161,60,43,.16);font-size:.92rem;line-height:1.8}
.hmap-locate{display:inline-flex;align-items:center;gap:5px;margin:0 0 16px;padding:6px 12px;border-radius:999px;border:1px solid var(--hm-red);background:transparent;color:var(--hm-red);font-size:.8rem;cursor:pointer;font-family:inherit}
.hmap-locate:hover{background:var(--hm-red);color:#fdf7e9}
.hmap-locate-note{margin:0 0 16px;padding:8px 12px;border-left:2px solid rgba(161,60,43,.45);border-radius:0 4px 4px 0;background:rgba(161,60,43,.05);color:var(--hm-muted,#7a6a52);font-size:.84rem;line-height:1.7}
.hmap-sec{margin:0 0 16px}
.hmap-sec h4{margin:0 0 6px;font-size:.82rem;font-weight:600;letter-spacing:.1em;color:var(--hm-red)}
.hmap-prose{font-size:.9rem;line-height:1.85;color:var(--hm-ink);overflow-wrap:anywhere}
.hmap-prose p{margin:0 0 8px}
.hmap-narrative{margin:0 0 16px;padding:12px 14px;border:1px solid rgba(161,60,43,.28);border-radius:6px;background:rgba(161,60,43,.05)}
.hmap-narrative-label{display:inline-block;margin:0 0 8px;padding:2px 8px;border-radius:3px;background:var(--hm-red);color:#fdf7e9;font-size:.72rem;letter-spacing:.18em}
.hmap-narrative-source{display:inline-block;margin:0 0 8px 8px;color:var(--hm-muted,#7a6a52);font-size:.74rem}
.hmap-versions{margin-top:22px;padding-top:14px;border-top:1px dashed rgba(88,68,42,.22)}
.hmap-version{margin:0 0 14px;padding:0 0 0 12px;border-left:2px solid rgba(161,60,43,.35)}
.hmap-version h5{margin:0 0 5px;font-size:.8rem;font-weight:600;color:var(--hm-ink);letter-spacing:.08em}
.hmap-version-source{margin-left:8px;font-weight:400;font-size:.74rem;color:var(--hm-muted);letter-spacing:0}
.hmap-cause-arrow{text-align:center;color:var(--hm-red);font-size:.8rem;margin:2px 0}
.hmap-chain{display:flex;flex-wrap:wrap;gap:5px;align-items:center;font-size:.8rem}
.hmap-chain-node{padding:3px 8px;border-radius:4px;background:rgba(88,68,42,.08)}
.hmap-chain-arrow{color:var(--hm-muted)}
.hmap-rel{display:flex;gap:8px;align-items:flex-start;margin:0 0 8px}
.hmap-rel>span{flex:0 0 60px;padding-top:4px;font-size:.75rem;color:var(--hm-muted)}
.hmap-pills{display:flex;flex-wrap:wrap;gap:5px}
.hmap-pill-link,.hmap-pill-static{display:inline-block;padding:3px 9px;border-radius:999px;border:1px solid var(--hm-line);background:rgba(255,252,245,.8);color:var(--hm-ink);font-size:.78rem}
.hmap-pill-link{cursor:pointer;font-family:inherit}
.hmap-pill-link:hover{border-color:var(--hm-red);background:rgba(161,60,43,.07);color:var(--hm-red)}
.hmap-exams{display:flex;flex-direction:column;gap:5px;font-size:.8rem;color:var(--hm-ink)}
.hmap-exam{padding:4px 8px;border-left:2px solid var(--hm-line);background:rgba(88,68,42,.04)}
.hmap-exam a{color:var(--hm-red)}
.hmap-exam-count{font-weight:400;color:var(--hm-muted)}
.hmap-more-row{margin:0 0 4px;padding-top:10px;border-top:1px solid var(--hm-line)}
.hmap-more,.hmap-more:visited,html[data-theme="light"] .hmap-more,html[data-theme="light"] .hmap-more:visited{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:999px;border:1px solid var(--hm-red);background:var(--hm-red);color:#fff;font-size:.86rem;text-decoration:none}
.hmap-more:hover{background:#8a3224;color:#fff;text-decoration:none}
/* 历史实体专属页：整页横向两栏，复用地图抽屉的排版变量 */
.hent-panel{--hm-paper:#f4ecda;--hm-paper-2:#efe4cc;--hm-ink:#2b241b;--hm-muted:#6f6250;--hm-line:rgba(88,68,42,.24);--hm-red:#a13c2b;color:var(--hm-ink);font-family:"LXGW WenKai","Songti SC","STSong",serif}
.hent-body{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:2px 40px;align-items:start}
.hent-body>.hmap-detail-kicker,
.hent-body>.hmap-detail-title,
.hent-body>.hmap-detail-full,
.hent-body>.hmap-detail-meta,
.hent-body>.hmap-detail-lead,
.hent-body>.hmap-narrative,
.hent-body>.hmap-locate,
.hent-body>.hmap-locate-note,
.hent-body>.hmap-pills{grid-column:1/-1}
.hent-back{margin:0 0 28px}
@media(max-width:820px){
 .hent-body{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:640px){
 .hmap-topbar{top:8px;left:8px;gap:6px;max-width:calc(100% - 104px)}
 .hmap-fullscreen{top:48px;right:8px;padding:5px 10px;font-size:.78rem}
 .hmap-year-form input{width:66px}
 .hmap-actions{flex-wrap:wrap;gap:5px}
 .hmap-action{padding:6px 10px;font-size:.78rem}
 .hmap-drawer{width:100%}
 .hmap-drawer-body{padding:14px 14px 40px}
 .hmap-search-row{top:-14px}
}

/* 历史地图页（自托管江山时序 + 本站浮层）固定使用日间配色。
 * 全站夜间模式的 html[data-theme="dark"] button/input 规则优先级更高，
 * 这里逐项还原，保证地图界面在夜间模式下与白天完全一致。 */
html[data-theme="dark"] .hmap{color-scheme:light;background:var(--hm-paper);color:var(--hm-ink)}
html[data-theme="dark"] .hmap button{background:transparent;color:var(--hm-ink);border-color:var(--hm-line)}
html[data-theme="dark"] .hmap button:hover{background:transparent}
html[data-theme="dark"] .hmap .hmap-pill{background:rgba(247,241,227,.92);color:var(--hm-ink);border-color:var(--hm-line)}
html[data-theme="dark"] .hmap .hmap-pill:hover{background:#fbf6ea;color:var(--hm-red)}
html[data-theme="dark"] .hmap .hmap-go{background:var(--hm-red);color:#fdf7e9;border-color:var(--hm-red)}
html[data-theme="dark"] .hmap .hmap-go:hover{background:#8a3224;color:#fff}
html[data-theme="dark"] .hmap .hmap-action{background:rgba(247,241,227,.94);color:var(--hm-ink);border-color:var(--hm-line)}
html[data-theme="dark"] .hmap .hmap-action:hover{background:var(--hm-red);color:#fdf7e9;border-color:var(--hm-red)}
html[data-theme="dark"] .hmap .hmap-drawer-back,
html[data-theme="dark"] .hmap .hmap-drawer-close{background:transparent;color:var(--hm-ink);border-color:var(--hm-line)}
html[data-theme="dark"] .hmap .hmap-tabs button{background:transparent;color:var(--hm-muted);border:0}
html[data-theme="dark"] .hmap .hmap-tabs button[aria-selected="true"]{background:rgba(161,60,43,.12);color:var(--hm-red)}
html[data-theme="dark"] .hmap .hmap-scope-btn{background:rgba(255,252,245,.6);color:var(--hm-muted);border-color:var(--hm-line)}
html[data-theme="dark"] .hmap .hmap-scope-btn.is-on{background:var(--hm-red);color:#fdf7e9;border-color:var(--hm-red)}
html[data-theme="dark"] .hmap .hmap-locate{background:transparent;color:var(--hm-red);border-color:var(--hm-red)}
html[data-theme="dark"] .hmap .hmap-locate:hover{background:var(--hm-red);color:#fdf7e9}
html[data-theme="dark"] .hmap input{background:transparent;color:var(--hm-ink);border-color:var(--hm-line)}
html[data-theme="dark"] .hmap .hmap-search-row input{background:rgba(255,252,245,.9)}
html[data-theme="dark"] .hmap .hmap-pill-link,
html[data-theme="dark"] .hmap .hmap-pill-static{background:rgba(255,252,245,.8);color:var(--hm-ink);border-color:var(--hm-line)}

/* ==========================================================================
   YK DESIGN REFRESH (2026-10)
   全站观感统一：字体、留白、卡片、表单、导航。
   只动视觉，不动布局结构与业务功能；主色仍是 #3498DB；浅色底改为米白（护眼）。
   ========================================================================== */

:root{
  --yk-font-sans:Inter,"Segoe UI","PingFang SC","Hiragino Sans GB","Noto Sans SC","Microsoft YaHei",system-ui,-apple-system,sans-serif;
  --yk-bg:#ffffff;
  --yk-surface:#ffffff;
  --yk-surface-2:#f2f6fc;
  --yk-line:#e3eaf3;
  --yk-line-strong:#cfdbe8;
  --yk-ink:#1b2b3a;
  --yk-muted:#6a7b8b;
  --yk-radius:12px;
  --yk-radius-sm:8px;
  --yk-shadow-sm:0 1px 2px rgba(20,40,70,.05);
  --yk-shadow:0 1px 2px rgba(20,40,70,.04),0 10px 30px -18px rgba(20,40,70,.22);
  --yk-shadow-hover:0 2px 4px rgba(20,40,70,.05),0 16px 38px -20px rgba(20,40,70,.28);
  font-family:var(--yk-font-sans);
  -webkit-text-size-adjust:100%;
}
html[data-theme="dark"]{
  --yk-bg:#161616;
  --yk-surface:#1e1e1e;
  --yk-surface-2:#191919;
  --yk-line:#2f2f2f;
  --yk-line-strong:#3d3d3d;
  --yk-ink:#e6e1d4;
  --yk-muted:#9b9588;
  --yk-shadow-sm:0 1px 2px rgba(0,0,0,.4);
  --yk-shadow:0 1px 2px rgba(0,0,0,.35),0 12px 30px -18px rgba(0,0,0,.75);
  --yk-shadow-hover:0 2px 6px rgba(0,0,0,.4),0 18px 40px -20px rgba(0,0,0,.8);
}
body{
  font-family:var(--yk-font-sans);
  color:var(--yk-ink);
  background:var(--yk-bg);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}
html[data-theme="light"] body,html:not([data-theme]) body{background:var(--yk-bg) !important}
::selection{background:rgba(52,152,219,.2);color:inherit}
:focus-visible{outline:2px solid #3498DB;outline-offset:2px}
h1{font-size:clamp(1.6rem,1.35rem + .55vw,1.9rem);font-weight:700;letter-spacing:.005em;line-height:1.35;color:var(--yk-ink)}
h2{font-size:1.18rem;font-weight:680;letter-spacing:.01em;line-height:1.45}
h3{font-size:1.02rem;font-weight:650}
p{line-height:1.85}
.muted{color:var(--yk-muted);font-size:.875rem;line-height:1.75}
a{transition:color .15s ease,background-color .15s ease,border-color .15s ease,box-shadow .15s ease}

/* —— 顶部栏与主导航：去掉悬停才出现的 12px 窄条，导航常驻 —— */
header .topbar{min-height:60px !important;padding:10px 28px !important;gap:18px !important}
header .topbar .brand{font-size:1.3rem !important;letter-spacing:.06em !important}
header .topbar .brand img{width:34px !important;height:34px !important;border-radius:9px !important}
header .topbar .brand span{letter-spacing:.02em !important}
header .account-who .nav-avatar,
header .topbar .nav-avatar{box-shadow:0 0 0 2px rgba(52,152,219,.18)}
html[data-theme="dark"] header .account-who .nav-avatar,
html[data-theme="dark"] header .topbar .nav-avatar{box-shadow:0 0 0 2px rgba(94,196,255,.25)}
html[data-theme="light"] header .account > a:not(.inbox-bell):hover,
html[data-theme="light"] header .account > button:hover,
html:not([data-theme]) header .account > a:not(.inbox-bell):hover,
html:not([data-theme]) header .account > button:hover{
  background:#eef4fb !important;border-radius:8px !important;color:#3498DB !important;
}
html[data-theme="dark"] header .account > a:not(.inbox-bell):hover,
html[data-theme="dark"] header .account > button:hover{
  background:rgba(255,255,255,.08) !important;border-radius:8px !important;
}
@media(min-width:900px){
  header .head-sticky{box-shadow:0 1px 0 rgba(20,40,70,.04),0 4px 18px -12px rgba(20,40,70,.18)}
  header .nav-rail{
    position:relative !important;left:auto !important;width:100% !important;max-width:none !important;
    margin:0 !important;height:52px !important;overflow:visible !important;
    background:var(--yk-bg) !important;border-bottom:1px solid var(--yk-line) !important;
    transition:none !important;
  }
  header .head-sticky:hover .nav-rail,
  header .head-sticky:focus-within .nav-rail{height:52px !important;margin-bottom:0 !important}
  header .nav-rail nav,
  html[data-theme="light"] header .nav-rail nav,
  html:not([data-theme]) header .nav-rail nav,
  html[data-theme="dark"] header .nav-rail nav{
    position:static !important;transform:none !important;opacity:1 !important;pointer-events:auto !important;
    height:52px !important;min-height:52px !important;max-height:52px !important;
    padding:0 28px !important;justify-content:center !important;gap:4px !important;
    overflow-x:auto !important;overflow-y:hidden !important;
    background:var(--yk-bg) !important;border:0 !important;box-shadow:none !important;
    transition:none !important;
  }
  html[data-theme="dark"] header .nav-rail,
  html[data-theme="dark"] header .nav-rail nav{background:#111 !important;border-bottom-color:#2a2a2a !important}
  header .nav-rail nav::-webkit-scrollbar{height:0}
  header .nav-rail nav a,
  html[data-theme="light"] header .nav-rail nav a,
  html:not([data-theme]) header .nav-rail nav a{
    height:52px !important;padding:0 18px !important;font-size:.98rem !important;font-weight:550;
    color:#4a5b6b !important;border-bottom:2px solid transparent !important;border-radius:0 !important;
    transition:color .15s ease,background-color .15s ease,border-color .15s ease;
  }
  header .nav-rail nav a:hover{
    color:#3498DB !important;background:rgba(52,152,219,.06) !important;
    border-bottom-color:rgba(52,152,219,.35) !important;text-decoration:none !important;
  }
  header .nav-rail nav a.active{
    color:#3498DB !important;font-weight:650;border-bottom-color:#3498DB !important;
  }
  html[data-theme="dark"] header .nav-rail nav a{color:#c9c3b6 !important}
  html[data-theme="dark"] header .nav-rail nav a:hover{
    color:#fff !important;background:rgba(255,255,255,.06) !important;
    border-bottom-color:#83d8c7 !important;
  }
  html[data-theme="dark"] header .nav-rail nav a.active{
    color:#83d8c7 !important;border-bottom-color:#83d8c7 !important;
  }
}

/* —— 按钮 / 表单 —— */
button,.button{
  border-radius:9px;border-color:var(--yk-line-strong);font-weight:550;
  transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease,color .15s ease;
  box-shadow:0 1px 1px rgba(20,40,70,.03);
}
button:hover,.button:hover{background:#f1f5f9;border-color:#c3d2dd}
.primary,button.primary,.button.primary{
  background:#3498DB !important;border-color:#3498DB !important;color:#fff !important;
  font-weight:600;box-shadow:0 2px 6px rgba(52,152,219,.24);
}
.primary:hover,button.primary:hover,.button.primary:hover{
  background:#2f89c5 !important;border-color:#2f89c5 !important;
  box-shadow:0 4px 12px rgba(52,152,219,.3);
}
input,select,textarea{
  border-radius:8px;border-color:var(--yk-line-strong);
  transition:border-color .15s ease,box-shadow .15s ease;
}
input:not([type=checkbox]):not([type=radio]):focus,
select:focus,textarea:focus{
  outline:none !important;border-color:#3498DB;
  box-shadow:0 0 0 3px rgba(52,152,219,.16);
}
html[data-theme="dark"] input:not([type=checkbox]):not([type=radio]):focus,
html[data-theme="dark"] select:focus,html[data-theme="dark"] textarea:focus{
  border-color:#5ec4ff;box-shadow:0 0 0 3px rgba(94,196,255,.2);
}
label{color:var(--yk-ink);font-weight:550}
.checklist,.choice{border-radius:9px;border-color:var(--yk-line)}

/* —— 卡片 / 表格 / 标签 —— */
.panel{
  background:var(--yk-surface);border:1px solid var(--yk-line);
  border-radius:var(--yk-radius);box-shadow:var(--yk-shadow-sm);
}
html[data-theme="light"] .panel,html:not([data-theme]) .panel,
html[data-theme="light"] .card,html[data-theme="light"] .side-card{
  border-color:var(--yk-line);box-shadow:var(--yk-shadow-sm);
}
html[data-theme="dark"] .panel{box-shadow:none;border-color:var(--yk-line)}
table{font-size:.9rem}
th{background:var(--yk-surface);color:var(--yk-muted);font-weight:600;letter-spacing:.02em}
th,td{padding:12px 14px;border-bottom-color:var(--yk-line)}
tbody tr{transition:background-color .12s ease}
tbody tr:hover{background:rgba(52,152,219,.035)}
html[data-theme="dark"] tbody tr:hover{background:rgba(255,255,255,.04)}
.tag{border-radius:6px;font-weight:550}
.progress{border-radius:999px}
.progress span{border-radius:999px}
.tabs{gap:6px;border-bottom-color:var(--yk-line)}
.tabs a{border-radius:8px 8px 0 0;padding:8px 14px;font-weight:550}
.tabs a:hover{background:var(--yk-surface-2);text-decoration:none}
.notice{border-radius:0 10px 10px 0}
.error{border-radius:8px}
#toast{border-radius:12px;box-shadow:0 12px 40px rgba(10,25,40,.28)}
footer{padding:24px 16px;letter-spacing:.02em}
.breadcrumbs{font-size:.85rem}

/* —— 首页 —— */
.oj-grid{gap:18px}
@media(min-width:901px){
  .oj-grid{grid-template-columns:1.45fr .85fr;align-items:stretch}
  .oj-grid > .oj-block:first-child{grid-row:span 2}
}
.oj-search{padding:12px 14px !important;border-radius:14px;gap:8px}
.oj-search input{height:42px}
.oj-block header{
  padding:13px 18px;font-size:.98rem;font-weight:650;letter-spacing:.01em;
  background:var(--yk-surface-2);border-bottom:1px solid var(--yk-line);
}
html[data-theme="dark"] .oj-block header{background:#191919;border-bottom-color:#2f2f2f;color:#e6e1d4}
.oj-block td,.oj-block th{padding:10px 18px}
.oj-block tbody tr:hover{background:rgba(52,152,219,.04)}
.welcome-ann header{font-size:1.1rem;letter-spacing:.01em}
.todo-add input{height:40px}
.todo-list li{border-bottom-color:var(--yk-line)}

/* —— 学习中心 —— */
.learn-subjects-panel,.learn-history-panel{
  max-width:860px;margin:28px auto 48px;padding:8px 0 16px;
  background:transparent !important;border:0 !important;box-shadow:none !important;
}
.learn-subject-grid{max-width:720px;gap:18px}
.learn-history-grid{max-width:560px;gap:18px}
.learn-subject-tile,.learn-history-tile{
  min-height:104px;border-radius:14px;border-color:var(--yk-line);
  background:var(--yk-surface);box-shadow:var(--yk-shadow-sm);font-size:1.16rem;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background-color .18s ease;
}
.learn-subject-tile-on:hover,.learn-history-tile:hover{
  transform:translateY(-3px);box-shadow:var(--yk-shadow-hover);
  border-color:rgba(52,152,219,.55);background:var(--yk-surface);
}
.learn-subject-tile-off{
  color:#9aa8b5;background:var(--yk-surface-2);border-color:var(--yk-line);
  box-shadow:none;cursor:default;user-select:none;pointer-events:none;
}
.learn-list-row{border-bottom-color:var(--yk-line);padding:15px 8px}
.learn-list-row:hover{background:var(--yk-surface-2);border-radius:8px;text-decoration:none}
.learn-concept-search-panel{padding:12px 16px}
.learn-concept-catalog{padding:0}
html[data-theme="dark"] .learn-subject-tile,
html[data-theme="dark"] .learn-history-tile{background:#1e1e1e;border-color:#333;color:#8ecbff}
html[data-theme="dark"] .learn-subject-tile-off{background:#181818;border-color:#2c2c2c;color:#777}

/* 学习 · 数学：单元 → 关卡 → 本关题目 */
.learn-math-panel{max-width:760px;margin:24px auto 40px;padding:26px 22px 30px;border:none;box-shadow:none;background:transparent}
.learn-math-unit{margin:0 0 28px}
.learn-math-unit:last-child{margin-bottom:0}
.learn-math-unit-title{
  margin:0 0 12px;padding-left:2px;font-size:.95rem;font-weight:650;
  letter-spacing:.08em;color:var(--yk-muted,#6b7a88);
}
.learn-math-unit .learn-history-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-width:none;gap:14px;margin:0}
.learn-math-tile-sub{font-size:.8rem;font-weight:500;letter-spacing:0;color:var(--yk-muted,#6b7a88)}
/* 关卡星标：没通关空心，通关黄色实心 */
.learn-math-star{font-size:1.45rem;line-height:1;color:#c9d2da;letter-spacing:0}
.learn-math-star.is-on{color:#f2b705;text-shadow:0 0 1px rgba(160,110,0,.28)}
html[data-theme="dark"] .learn-math-star{color:#4a5560}
html[data-theme="dark"] .learn-math-star.is-on{color:#f7c52b}
.learn-math-tile-off{
  color:#9aa8b5;background:var(--yk-surface-2);border-color:var(--yk-line);
  box-shadow:none;cursor:default;user-select:none;pointer-events:none;
}
html[data-theme="dark"] .learn-math-tile-off{background:#181818;border-color:#2c2c2c;color:#777}
html[data-theme="dark"] .learn-math-tile-sub{color:#8a97a3}
@media(max-width:640px){
  .learn-math-panel{padding:18px 14px 24px}
  .learn-math-unit .learn-history-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
}

/* —— 题库 / 题目详情 —— */
.prob-hero h1{letter-spacing:.005em}
.prob-tabs a{font-weight:550}
.prob-tabs a.on{font-weight:650}
.prob-layout{gap:20px}
.side-card{padding:16px;border-radius:12px;box-shadow:var(--yk-shadow-sm)}
.side-row{border-bottom-color:var(--yk-line)}
.diff-tag{font-family:var(--yk-font-sans)}
.problem-bank tbody tr td{transition:background-color .12s ease}
.problem-bank tbody tr:hover td{background:rgba(52,152,219,.04) !important}
html[data-theme="dark"] .problem-bank tbody tr:hover td{background:rgba(255,255,255,.04) !important}

/* —— 任务 / 广场 —— */
.task-card{border-bottom-color:var(--yk-line)}
.task-card-title{font-weight:650}
.plaza{gap:22px}
.plaza-side{padding:16px}
.plaza-cat{border-radius:9px;font-weight:550}
.plaza-card{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.plaza-card:hover{transform:translateY(-2px);border-color:#cfe0ee;box-shadow:var(--yk-shadow-hover)}
.plaza-title{font-size:1.16rem;font-weight:650;letter-spacing:.005em}
.plaza-excerpt{line-height:1.7}

/* —— 个人主页 —— */
.uprofile-banner{background:var(--yk-surface);border-radius:14px 14px 0 0}
.uprofile-cover,.uprofile-cover-wrap{border-radius:14px 14px 0 0}
.uprofile-bar{background:var(--yk-surface);border-bottom-color:var(--yk-line);padding:0 18px 0 8px}
.uprofile-tabs a{font-size:1rem;padding:13px 20px}
.uprofile-card{background:var(--yk-bg);border-radius:0 0 14px 14px}
.uprofile-block{
  background:var(--yk-surface);border-color:var(--yk-line);
  border-radius:10px;box-shadow:var(--yk-shadow-sm);
}
html[data-theme="dark"] .uprofile-banner,
html[data-theme="dark"] .uprofile-bar{background:#1e1e1e;border-color:#2f2f2f}
html[data-theme="dark"] .uprofile-card{background:#161616}
html[data-theme="dark"] .uprofile-block{background:#1e1e1e;border-color:#2f2f2f}

/* —— 登录页 —— */
.login{margin:56px auto;gap:24px;padding:0}
.login .panel{border-radius:16px}
.login-copy.panel{
  padding:40px;
  background:linear-gradient(165deg,#ffffff 0%,#f7fbff 100%);
}
.login-copy h1{font-size:1.9rem;letter-spacing:.02em}
html[data-theme="dark"] .login-copy.panel{
  background:linear-gradient(165deg,#1e1e1e 0%,#1a2026 100%);
}

/* —— 滚动条 —— */
*{scrollbar-width:thin;scrollbar-color:#c3cfda transparent}
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-thumb{
  background:#c9d4de;border-radius:999px;
  border:3px solid transparent;background-clip:content-box;
}
*::-webkit-scrollbar-thumb:hover{background:#aebdca;background-clip:content-box;border:3px solid transparent}
html[data-theme="dark"] *{scrollbar-color:#3a3a3a transparent}
html[data-theme="dark"] *::-webkit-scrollbar-thumb{
  background:#3a3a3a;border-radius:999px;border:3px solid transparent;background-clip:content-box;
}

/* —— 窄屏 —— */
@media(max-width:899px){
  header .nav-rail{
    position:relative !important;left:auto !important;width:100% !important;max-width:100% !important;
    margin:0 !important;height:auto !important;overflow-x:hidden !important;
    background:var(--yk-surface) !important;border-bottom:1px solid var(--yk-line);
  }
  header .nav-rail nav,
  html[data-theme="light"] header .nav-rail nav,
  html:not([data-theme]) header .nav-rail nav,
  html[data-theme="dark"] header .nav-rail nav{
    position:static !important;height:auto !important;min-height:56px !important;
    padding:0 12px !important;justify-content:flex-start !important;gap:2px !important;
    transform:none !important;opacity:1 !important;pointer-events:auto !important;
    background:var(--yk-surface) !important;transition:none !important;
  }
  html[data-theme="dark"] header .nav-rail,
  html[data-theme="dark"] header .nav-rail nav{background:#111 !important;border-bottom-color:#2a2a2a !important}
  header .nav-rail nav a{height:56px !important;padding:0 14px !important;font-size:.98rem !important}
  header .nav-rail nav{scrollbar-width:none}
  header .nav-rail nav::-webkit-scrollbar{height:0}
  header .topbar .account{flex-wrap:wrap !important;justify-content:flex-end !important}
}
@media(max-width:760px){
  main{padding:20px 16px 48px}
  header .topbar{padding:8px 14px !important}
  .oj-search{padding:10px 12px !important}
  .oj-search input{height:40px}
  .learn-subject-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:100%;gap:12px}
  .learn-history-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:100%;gap:12px}
  .learn-subject-tile,.learn-history-tile{min-height:88px;font-size:1.02rem}
  .login{margin:10px auto;padding:0}
  .login-copy.panel{padding:28px}
}
@media(max-width:430px){
  header .topbar{padding:8px 12px !important}
  .learn-subject-grid,.learn-history-grid{grid-template-columns:1fr}
}

/* 窄屏 toast 贴边，长文本换行而不是溢出屏幕 */
@media(max-width:560px){
  #toast{left:12px;right:12px;bottom:12px;max-width:none;overflow-wrap:anywhere;word-break:break-word}
}

/* ==========================================================================
   YK COOL-WHITE（2026-10-20）
   底色改为纯白 #FFFFFF（与浏览器标签栏同色），不再叠任何底色渐变；
   科技感交给顶栏毛玻璃、蓝色高亮、冷色描边与阴影。
   只覆盖浅色主题，暗色主题不受影响。
   ========================================================================== */
html[data-theme="light"],html:not([data-theme]){
  --yk-bg:#ffffff;
  --yk-surface:#ffffff;
  --yk-surface-2:#f2f6fc;
  --yk-line:#e3eaf3;
  --yk-line-strong:#cfdbe8;
  --yk-ink:#0f1f2e;
  --yk-muted:#61748a;
  --bg:#ffffff;
  --card:#ffffff;
  --line:#e3eaf3;
  --text:#2b3b4c;
  --muted:#6b7c90;
  --header:#ffffff;
}

/* 页面底色：纯白，不叠渐变，避免任何偏黄/偏灰的观感 */
html[data-theme="light"] body,html:not([data-theme]) body{
  background:#ffffff !important;
  background-image:none !important;
}

/* 顶栏 / 导航：半透明白 + 毛玻璃，底下一条冷色细线 */
html[data-theme="light"] header,html:not([data-theme]) header,
html[data-theme="light"] .topbar,html:not([data-theme]) .topbar,
html[data-theme="light"] header .nav-rail,html:not([data-theme]) header .nav-rail,
html[data-theme="light"] header .nav-rail nav,html:not([data-theme]) header .nav-rail nav,
html[data-theme="light"] nav,html:not([data-theme]) nav{
  background:rgba(255,255,255,.88) !important;
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  backdrop-filter:saturate(180%) blur(14px);
}
html[data-theme="light"] header,html:not([data-theme]) header{
  border-bottom:1px solid #e6edf6 !important;
  box-shadow:0 10px 30px -26px rgba(18,60,110,.55) !important;
}
html[data-theme="light"] header .nav-rail,html:not([data-theme]) header .nav-rail{
  border-bottom:1px solid #edf2f9 !important;
}
html[data-theme="light"] header .nav-rail nav a:hover,html:not([data-theme]) header .nav-rail nav a:hover{
  background:rgba(52,152,219,.07) !important;
}
html[data-theme="light"] header .nav-rail nav a.active,html:not([data-theme]) header .nav-rail nav a.active,
html[data-theme="light"] nav a.active,html:not([data-theme]) nav a.active{
  color:#2b8fe0 !important;
  border-bottom-color:#3498DB !important;
  text-shadow:0 0 18px rgba(52,152,219,.28);
}
/* 左上角品牌保持纯蓝，不加任何光晕 */
.brand,.brand:hover{text-shadow:none}

/* 卡片 / 面板：纯白、冷描边、冷阴影 */
html[data-theme="light"] .panel,html:not([data-theme]) .panel,
html[data-theme="light"] .card,html:not([data-theme]) .card,
html[data-theme="light"] .side-card,html:not([data-theme]) .side-card,
html[data-theme="light"] .acc-sheet,html:not([data-theme]) .acc-sheet{
  background:#ffffff !important;
  border-color:#e3eaf3 !important;
  box-shadow:0 1px 2px rgba(16,45,80,.04),0 18px 38px -28px rgba(16,60,120,.45) !important;
}

/* 学习页学科卡片 */
html[data-theme="light"] .learn-subject-tile,html:not([data-theme]) .learn-subject-tile,
html[data-theme="light"] .learn-history-tile,html:not([data-theme]) .learn-history-tile{
  background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%) !important;
  border-color:#e1eaf5 !important;
  box-shadow:0 1px 2px rgba(16,45,80,.04),0 12px 26px -22px rgba(16,60,120,.55) !important;
}
html[data-theme="light"] .learn-subject-tile-on:hover,html:not([data-theme]) .learn-subject-tile-on:hover,
html[data-theme="light"] .learn-history-tile:hover,html:not([data-theme]) .learn-history-tile:hover{
  border-color:rgba(52,152,219,.6) !important;
  box-shadow:0 2px 4px rgba(16,45,80,.05),0 0 0 3px rgba(52,152,219,.10),0 20px 40px -24px rgba(16,60,120,.6) !important;
}
html[data-theme="light"] .learn-subject-tile-off,html:not([data-theme]) .learn-subject-tile-off{
  background:#ffffff !important;
  border-color:#e7eef7 !important;
  color:#9aa9ba !important;
}

/* 表格头与悬停：冷灰蓝，不用米色 */
html[data-theme="light"] th,html:not([data-theme]) th{
  background:#f7fafe !important;
  color:#61748a !important;
}
html[data-theme="light"] tbody tr:hover,html:not([data-theme]) tbody tr:hover{
  background:rgba(52,152,219,.045) !important;
}
html[data-theme="light"] .learn-list-row:hover,html:not([data-theme]) .learn-list-row:hover{
  background:#f4f8fd !important;
}

/* 按钮 / 输入框：冷白底、冷灰描边 */
html[data-theme="light"] button:not(.primary):not(.acc-btn),html:not([data-theme]) button:not(.primary):not(.acc-btn),
html[data-theme="light"] .button:not(.primary):not(.acc-btn),html:not([data-theme]) .button:not(.primary):not(.acc-btn){
  background:#ffffff;
  border-color:#d5e1ee;
}
html[data-theme="light"] button:not(.primary):not(.acc-btn):hover,html:not([data-theme]) button:not(.primary):not(.acc-btn):hover,
html[data-theme="light"] .button:not(.primary):not(.acc-btn):hover,html:not([data-theme]) .button:not(.primary):not(.acc-btn):hover{
  background:#f1f7fd;border-color:#a9cdec;
}

/* 地图抽屉/顶栏是纸面暖色外壳，按钮不能被上面的冷白底规则盖掉，
   否则红底选择器会变成白底浅字、几乎看不见。 */
html[data-theme="light"] .hmap .hmap-go,html:not([data-theme]) .hmap .hmap-go{background:var(--hm-red);border-color:var(--hm-red);color:#fff}
html[data-theme="light"] .hmap .hmap-go:hover,html:not([data-theme]) .hmap .hmap-go:hover{background:#8a3224;color:#fff}
html[data-theme="light"] .hmap .hmap-action,html:not([data-theme]) .hmap .hmap-action{background:rgba(247,241,227,.94);border-color:var(--hm-line);color:var(--hm-ink)}
html[data-theme="light"] .hmap .hmap-action:hover,html:not([data-theme]) .hmap .hmap-action:hover{background:var(--hm-red);border-color:var(--hm-red);color:#fff}
html[data-theme="light"] .hmap .hmap-tabs button,html:not([data-theme]) .hmap .hmap-tabs button{background:transparent;border-color:transparent;color:var(--hm-muted)}
html[data-theme="light"] .hmap .hmap-tabs button[aria-selected="true"],html:not([data-theme]) .hmap .hmap-tabs button[aria-selected="true"]{background:rgba(161,60,43,.12);color:var(--hm-red)}
html[data-theme="light"] .hmap .hmap-scope-btn,html:not([data-theme]) .hmap .hmap-scope-btn{background:rgba(255,252,245,.6);border-color:var(--hm-line);color:var(--hm-muted)}
html[data-theme="light"] .hmap .hmap-scope-btn:hover,html:not([data-theme]) .hmap .hmap-scope-btn:hover{border-color:var(--hm-red);color:var(--hm-red)}
html[data-theme="light"] .hmap .hmap-scope-btn.is-on,html:not([data-theme]) .hmap .hmap-scope-btn.is-on{background:var(--hm-red);border-color:var(--hm-red);color:#fff}
html[data-theme="light"] .hmap .hmap-locate,html:not([data-theme]) .hmap .hmap-locate{background:transparent;border-color:var(--hm-red);color:var(--hm-red)}
html[data-theme="light"] .hmap .hmap-locate:hover,html:not([data-theme]) .hmap .hmap-locate:hover{background:var(--hm-red);color:#fff}
html[data-theme="light"] .hmap .hmap-drawer-back,html:not([data-theme]) .hmap .hmap-drawer-back,
html[data-theme="light"] .hmap .hmap-drawer-close,html:not([data-theme]) .hmap .hmap-drawer-close{background:transparent;border-color:var(--hm-line);color:var(--hm-ink)}

/* 标签：去掉暖灰 */
html[data-theme="light"] .tag,html:not([data-theme]) .tag{background:#eff4fa;color:#51677f}
html[data-theme="light"] .tag.green,html:not([data-theme]) .tag.green{background:#e9f6f3;color:#0f6f63}

/* 学习页外层容器保持透明，别被上面的白卡片规则套住 */
html[data-theme="light"] .learn-subjects-panel,html:not([data-theme]) .learn-subjects-panel,
html[data-theme="light"] .learn-history-panel,html:not([data-theme]) .learn-history-panel{
  background:transparent !important;border:0 !important;box-shadow:none !important;
}

/* 关卡讲解：先学后练 */
.learn-lesson{max-width:860px;margin:0 auto 18px;padding:28px 28px 24px;border:1px solid var(--line);border-radius:8px;background:#fff}
.learn-lesson-head h2{margin:0 0 10px;font-size:1.3rem}
.learn-lesson-head .prose{margin:0}
.learn-lesson-goals{background:transparent;border:0;border-radius:0;padding:0;margin:14px 0 18px}
.learn-lesson-label{display:block;font-size:.8rem;letter-spacing:.08em;color:var(--green);font-weight:600;margin-bottom:6px}
.learn-lesson-goals ul{margin:0;padding-left:20px}
.learn-lesson-goals li{line-height:1.9;font-size:.9375rem}
.learn-lesson-block{margin:24px 0}
.learn-lesson-block:first-of-type{margin-top:0}
.learn-lesson-block h3{font-size:1rem;margin:0 0 8px;padding-left:10px;border-left:3px solid var(--blue);line-height:1.4}
.learn-formula-list{display:flex;flex-direction:column;gap:8px}
.learn-formula{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;padding:6px 0;border:0;border-radius:0;background:transparent}
.learn-formula-tex{font-size:1.02rem;line-height:1.7}
.learn-formula-note{color:var(--muted);font-size:.875rem;line-height:1.7}
.learn-example details{border-top:1px solid var(--line);margin:0;padding:2px 0}
.learn-example details:first-of-type{border-top:1px solid var(--line)}
.learn-example summary{font-weight:600;color:var(--ink);font-size:.9375rem}
.learn-example summary:hover{color:var(--blue)}
.learn-pitfall{margin:0;border:0;border-radius:0;background:transparent;padding:0}
.learn-pitfall p{margin:4px 0 0}
.learn-pitfall-item+.learn-pitfall-item{margin-top:12px;padding-top:12px;border-top:1px dashed #e0c398}
.learn-pitfall-item strong{display:block;font-size:.9375rem}
.learn-summary{background:transparent;border-radius:0;padding:0}
.learn-summary h3{border-left-color:var(--green)}
.learn-summary p{margin:5px 0}
.learn-lesson-cta{display:flex;justify-content:center;margin-top:26px}
.learn-lesson-cta .primary{padding:11px 28px;font-size:.9375rem}
html[data-theme="dark"] .learn-lesson{background:#1b1b1b;border-color:#2c2c2c}
html[data-theme="dark"] .learn-formula{background:transparent;border-color:transparent}
html[data-theme="dark"] .learn-summary{background:transparent}
html[data-theme="dark"] .learn-lesson-goals{background:transparent}
html[data-theme="dark"] .learn-example summary{color:var(--ink)}
html[data-theme="dark"] .learn-pitfall-item+.learn-pitfall-item{border-top-color:#4a3d28}
@media(max-width:760px){
 .learn-lesson{padding:18px 16px 16px;border-radius:6px}
 .learn-lesson-block{margin:20px 0}
 .learn-formula{padding:9px 11px}
 .learn-formula-tex{font-size:.97rem}
}

/* 全屏书本式讲解：整块纸面铺满屏幕，左右两页，翻页时书页绕书脊转过去 */
body.deck-open{overflow:hidden}
.lesson-deck{position:fixed;inset:0;z-index:90;display:block;background:#fffefb}
.lesson-deck[hidden]{display:none}
.deck-stage{position:absolute;inset:0;overflow:hidden}
/* 换页直接切换，不做过渡 */
.deck-track{position:absolute;inset:0}
.deck-spread{position:absolute;inset:0;display:flex;align-items:stretch;overflow:hidden;background:#fffefb;opacity:0;visibility:hidden;pointer-events:none}
.deck-spread.is-active{opacity:1;visibility:visible;pointer-events:auto}
/* 书脊：中间一条白线，两页共用一张纸 */
.deck-spread::after{content:'';position:absolute;top:0;bottom:0;left:50%;width:2px;transform:translateX(-50%);pointer-events:none;z-index:3;background:#fff}
.deck-page{position:relative;z-index:1;flex:1 1 50%;min-width:0;height:100%;overflow:auto;background:transparent;border:0;border-radius:0;box-shadow:none;padding:56px 44px 62px}
.deck-page-left{padding-right:66px}
.deck-page-right{padding-left:66px}
.deck-page-single{padding-left:44px;padding-right:44px}
/* 页码贴外侧下角 */
.deck-page::after{content:attr(data-page);position:absolute;bottom:64px;font-size:.82rem;color:#9b907c;font-variant-numeric:tabular-nums;letter-spacing:.06em}
.deck-page-left::after{left:44px}
.deck-page-right::after{right:44px}
.deck-page-single::after{display:none}
.deck-page-inner{max-width:640px;margin:0 auto}
/* 内容块一律透出纸色：不留任何背景、阴影、滤镜，避免公式/文字底下出现灰带 */
.deck-page-inner,.deck-page-inner *{background-image:none;text-shadow:none;filter:none;-webkit-backdrop-filter:none;backdrop-filter:none}
.deck-page-inner,.deck-page-inner *{background-color:transparent;box-shadow:none}
.deck-kicker{font-size:.78rem;letter-spacing:.12em;color:var(--green);font-weight:600;margin-bottom:6px}
.deck-h2{font-size:1.6rem;margin:0 0 16px}
.deck-h3{font-size:1.14rem;margin:0 0 14px;padding-left:12px;border-left:4px solid var(--blue);line-height:1.45}
.deck-page .prose{font-size:1.02rem;line-height:2}
.deck-page .learn-formula-list{gap:10px}
.deck-page .learn-formula{padding:12px 16px}
.deck-page .learn-formula-tex{font-size:1.04rem}
.deck-page .learn-example details{margin:0}
.deck-page .learn-example summary{padding:10px 0;font-size:.97rem}
.deck-page .learn-lesson-goals{margin:18px 0 22px}
/* 顶栏、底栏浮在纸面上，不占阅读面积 */
.deck-top,.deck-bottom{position:absolute;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 26px;background:transparent;border:0;pointer-events:none}
.deck-top{top:0}
.deck-bottom{bottom:0}
.deck-head{display:flex;align-items:baseline;gap:14px;min-width:0}
.deck-lesson-name{font-weight:650;font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#4b4335}
.deck-progress{font-size:.85rem;color:#8a7f6c;font-variant-numeric:tabular-nums;white-space:nowrap}
.deck-tools{display:flex;gap:8px;flex:0 0 auto}
.deck-top button,.deck-bottom button,.deck-bottom .deck-dots{pointer-events:auto}
.deck-dots{display:flex;gap:7px;flex-wrap:wrap;justify-content:center;min-width:0}
/* 全局 html:not([data-theme]) button 的白底优先级很高，这里必须写足选择器才盖得住 */
.lesson-deck .deck-bottom .deck-dots button.deck-dot{width:9px;height:9px;min-width:9px;padding:0;border-radius:50%;background:#c9bda8;border:0;flex:0 0 auto;box-shadow:none}
.lesson-deck .deck-bottom .deck-dots button.deck-dot.is-active{background:var(--green);transform:scale(1.25)}
.deck-bottom button{min-width:96px;white-space:nowrap;flex:0 0 auto}
/* 排版测量用的隐藏容器 */
.deck-measure{position:absolute;left:-99999px;top:0;visibility:hidden;pointer-events:none}
.deck-measure-item{overflow:hidden}
.deck-measure .deck-page-inner{max-width:none;margin:0}
html[data-theme="dark"] .lesson-deck,html[data-theme="dark"] .deck-spread{background-color:#1a1a1a}
html[data-theme="dark"] .deck-spread{background-image:radial-gradient(125% 100% at 50% 42%,rgba(255,255,255,.03),rgba(255,255,255,0) 60%,rgba(0,0,0,.35) 100%)}
html[data-theme="dark"] .deck-spread::after{background:rgba(255,255,255,.72)}
html[data-theme="dark"] .deck-lesson-name{color:#e8e4dc}
html[data-theme="dark"] .deck-progress{color:#9a948a}
html[data-theme="dark"] .deck-page::after{color:#7f7a70}
html[data-theme="dark"] .lesson-deck .deck-bottom .deck-dots button.deck-dot{background:#4a4a4a}
html[data-theme="dark"] .lesson-deck .deck-bottom .deck-dots button.deck-dot.is-active{background:var(--green)}
@media(max-width:820px){
 .deck-page{padding:62px 18px 66px}
 .deck-page-left,.deck-page-right,.deck-page-single{padding-left:18px;padding-right:18px}
 .deck-spread::after{display:none}
 .deck-page::after{bottom:62px}
 .deck-page-left::after{left:18px}
 .deck-page-right::after{right:18px}
 .deck-top,.deck-bottom{padding:9px 12px;gap:8px}
 .deck-h2{font-size:1.28rem}
 .deck-h3{font-size:1.05rem;margin-bottom:10px}
 .deck-progress{display:none}
 .deck-bottom button{min-width:0;padding:8px 12px}
 .lesson-deck .deck-bottom .deck-dots button.deck-dot{width:8px;height:8px;min-width:8px}
}

/* 讲解里的交互图象：可拖参数看函数怎么变 */
.lesson-widget{margin:14px 0 6px;padding:12px 14px 14px;border:1px solid #e2dccd;border-radius:14px;background:#fffdf7}
.lesson-widget-formula{min-height:2.2em;display:flex;align-items:center;justify-content:center;font-size:1.05rem;color:var(--ink)}
.lesson-widget-formula .katex-display{margin:.2em 0}
.lesson-widget-board{position:relative;width:100%;height:280px;overflow:hidden;border-radius:8px}
.lesson-widget-loading{height:100%;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:.9rem}
.lesson-widget-sliders{display:grid;gap:9px;margin-top:8px}
.lesson-widget-slider{display:grid;grid-template-columns:74px 1fr 58px;align-items:center;gap:10px;margin:0;font-size:.9rem;color:#435767}
.lesson-widget-k{white-space:nowrap;font-weight:550}
.lesson-widget-slider input[type=range]{width:100%;padding:0;border:0;background:transparent;accent-color:#2563eb;cursor:pointer}
.lesson-widget-slider output{text-align:right;font-variant-numeric:tabular-nums;color:var(--muted);font-size:.88rem}
.lesson-widget-readout{margin-top:10px;font-size:.85rem;line-height:1.75;color:var(--muted)}
.lesson-widget-readout b{color:var(--ink);font-weight:600}
html[data-theme="dark"] .lesson-widget{background:#1f1f1f;border-color:#333}
html[data-theme="dark"] .lesson-widget-slider{color:#c9c3b6}
@media(max-width:760px){
 .lesson-widget{padding:10px 10px 12px;border-radius:10px}
 .lesson-widget-board{height:220px}
 .lesson-widget-slider{grid-template-columns:64px 1fr 50px;gap:8px;font-size:.85rem}
}

/* ── 闯关答题 deck：沿用讲解的全屏纸面，一屏一题 ── */
.quiz-deck .deck-stage{overflow:auto;padding:64px 24px 72px}
.quiz-track{width:100%;max-width:940px;margin:0 auto;min-height:calc(100vh - 136px);display:flex;flex-direction:column;justify-content:center}
.quiz-view{width:100%}
.quiz-card{border:1px solid #e6dfd0;border-radius:18px;background:#fffdf8;padding:34px 40px 26px;box-shadow:0 20px 50px -34px rgba(70,58,34,.45)}
.quiz-meta{display:flex;gap:14px;align-items:baseline;font-size:.82rem;color:#8a7f6c;letter-spacing:.04em;margin-bottom:14px}
.quiz-meta .quiz-code{font-weight:700;color:var(--green);letter-spacing:.06em}
.quiz-stem{font-size:1.12rem;line-height:2}
.quiz-opts{margin-top:18px;display:grid;gap:10px}
/* 全局 button 的白底规则很强，这里必须写足选择器才盖得住 */
.lesson-deck .quiz-opt{display:flex;width:100%;gap:14px;align-items:flex-start;justify-content:flex-start;text-align:left;padding:14px 16px;border:1.5px solid #e2dac9;border-radius:12px;background:#fffefb;color:var(--ink);font-size:1rem;font-weight:400;line-height:1.7;box-shadow:none;white-space:normal}
.lesson-deck .quiz-opt:hover{border-color:var(--green);background:#f5faf3}
.lesson-deck .quiz-opt.is-picked{border-color:var(--green);background:#edf6ea;box-shadow:0 0 0 2px rgba(20,117,104,.16)}
.quiz-opt .opt-key{flex:0 0 30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#efe9db;color:#6b604c;font-weight:700;font-size:.9rem;line-height:1}
.quiz-opt.is-picked .opt-key{background:var(--green);color:#fff}
.quiz-opt .opt-text{min-width:0;flex:1}
.quiz-actions{margin-top:16px;display:flex;justify-content:flex-end}
.quiz-fill{margin-top:18px;display:flex;gap:10px;align-items:center}
.quiz-fill .input{flex:1;min-width:0;font-size:1.05rem;padding:12px 14px}
.quiz-hint{margin:12px 0 0;font-size:.82rem;color:#9a8f7b}
.quiz-error{margin-top:12px;color:#b23b3b;background:#fff1f1;border-radius:8px;padding:9px 12px;font-size:.88rem}
/* 判对/判错的全屏提示 */
.quiz-flash{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;background:rgba(255,254,250,.88)}
.quiz-flash[hidden]{display:none!important}
/* button 全局 display:inline-flex 会盖掉 UA 的 [hidden]，弹层里的按钮要显式藏 */
.quiz-flash button[hidden]{display:none!important}
.quiz-flash-card{padding:38px 56px;border-radius:24px;background:#fffefb;border:1px solid #e6dfd0;box-shadow:0 30px 70px -30px rgba(60,48,24,.4);text-align:center;animation:quiz-pop .26s cubic-bezier(.2,.9,.3,1.2)}
.quiz-flash-word{font-size:3.6rem;font-weight:800;line-height:1.05;letter-spacing:.01em}
.quiz-flash.is-ok .quiz-flash-word{color:var(--green)}
.quiz-flash.is-bad .quiz-flash-word{color:#c2410c}
.quiz-flash-sub{margin-top:10px;color:#7a6f5c;font-size:.95rem}
.quiz-flash-card button{margin-top:20px;min-width:150px}
.quiz-flash-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.quiz-flash-actions button{margin-top:20px;min-width:150px}
/* 展开题解后：卡片变成可滚动的解析面板，仍然盖住题目，不能重做 */
.quiz-flash-card.is-sol{max-width:min(780px,92vw);max-height:86vh;overflow:auto;text-align:left;padding:30px 38px 28px}
.quiz-flash-card.is-sol .quiz-flash-word,
.quiz-flash-card.is-sol .quiz-flash-sub{text-align:center}
.quiz-flash-card.is-sol .quiz-flash-word{font-size:2.2rem}
.quiz-flash-sol[hidden]{display:none!important}
.quiz-flash-sol{margin-top:16px;padding-top:14px;border-top:1px dashed #e6dfd0;text-align:left;font-size:.95rem;line-height:1.85;color:var(--ink)}
.quiz-sol-head{font-weight:700;color:var(--green);font-size:.85rem;letter-spacing:.06em;margin-bottom:8px}
.quiz-sol-loading,.quiz-sol-empty{margin:0;color:#8a7f6c;font-size:.9rem}
@keyframes quiz-pop{from{transform:scale(.86);opacity:0}to{transform:scale(1);opacity:1}}
/* 本关总分 */
.quiz-sum-inner{max-width:620px;margin:0 auto;text-align:center;border:1px solid #e6dfd0;border-radius:22px;background:#fffdf8;padding:38px 42px;box-shadow:0 20px 50px -34px rgba(70,58,34,.45)}
.quiz-sum-kicker{font-size:.8rem;letter-spacing:.14em;color:var(--green);font-weight:600}
.quiz-sum-title{margin:8px 0 4px;font-size:1.6rem}
.quiz-sum-score{font-size:4.4rem;font-weight:800;line-height:1.1;color:var(--ink);font-variant-numeric:tabular-nums}
.quiz-sum-score small{font-size:1.1rem;font-weight:500;color:#8a7f6c;margin-left:6px}
.quiz-sum-line{color:#6f6452;margin:2px 0 18px}
.quiz-wrong-list{list-style:none;margin:0 0 18px;padding:0;text-align:left}
.quiz-wrong-list li{display:grid;grid-template-columns:62px 1fr auto;gap:12px;align-items:baseline;padding:10px 0;border-bottom:1px dashed #e6dfd0;font-size:.92rem}
.quiz-wrong-score{color:#b45309;font-variant-numeric:tabular-nums;font-weight:600}
.quiz-sum-note{font-size:.88rem;color:#8a7f6c;margin:8px 0}
.quiz-sum-actions{display:flex;gap:12px;justify-content:center;margin:22px 0 6px;flex-wrap:wrap}
/* 深色主题 */
html[data-theme="dark"] .quiz-card,
html[data-theme="dark"] .quiz-sum-inner{background:#1f1f1f;border-color:#333;box-shadow:none}
html[data-theme="dark"] .quiz-meta,
html[data-theme="dark"] .quiz-hint,
html[data-theme="dark"] .quiz-sum-note,
html[data-theme="dark"] .quiz-sum-line,
html[data-theme="dark"] .quiz-flash-sub{color:#a8a294}
html[data-theme="dark"] .lesson-deck .quiz-opt{background:#232323;border-color:#3a3a3a;color:#e8e4dc}
html[data-theme="dark"] .lesson-deck .quiz-opt:hover{background:#28302c;border-color:#3f8f7a}
html[data-theme="dark"] .lesson-deck .quiz-opt.is-picked{background:#24352f;border-color:#3f8f7a;box-shadow:none}
html[data-theme="dark"] .quiz-opt .opt-key{background:#333;color:#c9c3b6}
html[data-theme="dark"] .quiz-flash{background:rgba(18,18,18,.9)}
html[data-theme="dark"] .quiz-flash-card{background:#1f1f1f;border-color:#333;box-shadow:none}
html[data-theme="dark"] .quiz-flash-word{color:#e8e4dc}
html[data-theme="dark"] .quiz-flash.is-ok .quiz-flash-word{color:#6fc2ae}
html[data-theme="dark"] .quiz-flash.is-bad .quiz-flash-word{color:#f0a06a}
html[data-theme="dark"] .quiz-flash-sol{border-color:#3a3a3a;color:#e8e4dc}
html[data-theme="dark"] .quiz-sol-head{color:#6fc2ae}
html[data-theme="dark"] .quiz-sol-loading,
html[data-theme="dark"] .quiz-sol-empty{color:#a8a294}
html[data-theme="dark"] .quiz-sum-score{color:#e8e4dc}
html[data-theme="dark"] .quiz-wrong-list li{border-color:#333}
html[data-theme="dark"] .quiz-error{background:#3a2020;color:#f0a0a0}
@media(max-width:820px){
 .quiz-deck .deck-stage{padding:58px 12px 40px}
 .quiz-track{min-height:calc(100vh - 98px)}
 .quiz-card{padding:20px 16px 18px;border-radius:14px}
 .quiz-stem{font-size:1rem;line-height:1.95}
 .lesson-deck .quiz-opt{padding:12px;gap:10px;font-size:.95rem}
 .quiz-flash-card{padding:28px 26px;border-radius:18px}
 .quiz-flash-word{font-size:2.6rem}
 .quiz-flash-card.is-sol{padding:22px 18px;border-radius:16px;max-height:88vh}
 .quiz-flash-card.is-sol .quiz-flash-word{font-size:1.75rem}
 .quiz-flash-sol{font-size:.9rem;line-height:1.8}
 .quiz-flash-actions{flex-direction:column}
 .quiz-flash-actions button{width:100%;min-width:0;margin-top:10px}
 .quiz-sum-inner{padding:26px 18px;border-radius:16px}
 .quiz-sum-score{font-size:3.2rem}
 .quiz-fill{flex-direction:column;align-items:stretch}
 .quiz-fill .primary{width:100%}
 .quiz-wrong-list li{grid-template-columns:52px 1fr auto;gap:8px;font-size:.86rem}
}

/* —— 导航反馈：点顶栏后超过 110ms 还没画完，才显示顶部进度条并淡出内容，避免快页面闪一下 —— */
.nav-progress{position:fixed;left:0;top:0;height:2px;width:100%;background:var(--brand);transform:scaleX(0);transform-origin:0 50%;opacity:0;pointer-events:none;z-index:9999}
.nav-progress.on{opacity:1;animation:nav-progress-run .9s cubic-bezier(.2,.7,.3,1) forwards}
@keyframes nav-progress-run{0%{transform:scaleX(.06)}55%{transform:scaleX(.58)}100%{transform:scaleX(.86)}}
main{transition:opacity .18s}
body.nav-pending main{opacity:.5;transition:opacity .12s}

/* —— 备案信息：全站页脚统一展示，居中、12px、低对比灰；纯文本链接，移动端同样显示 —— */
.beian{margin-top:6px;font-size:12px;line-height:1.9;color:#888;text-align:center}
.beian a{color:#888;text-decoration:none}
.beian a:hover{color:#6b6b6b;text-decoration:underline}
.beian-police{min-height:0}
html[data-theme="dark"] .beian,html[data-theme="dark"] .beian a{color:#8f8b82}

/* ===== 教学工具：函数绘图（仅管理员）===== */
.teach-panel{padding:22px 24px}
.teach-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.teach-head h2{margin:0 0 6px}
.teach-head p{margin:0;max-width:64ch;line-height:1.65}
.teach-head code,.teach-hint code,.teach-tips code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.86em;background:#eef3f6;border-radius:4px;padding:1px 5px}
.teach-toolbar{display:flex;gap:8px;flex-wrap:wrap}
.teach-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:18px;align-items:start}
.teach-main{min-width:0}
.teach-exprs{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.teach-expr{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:3px 8px;background:#fff;transition:border-color .15s,background .15s}
.teach-expr:focus-within{border-color:#3498DB}
.teach-expr.is-error{border-color:#d9534f;background:#fef4f4}
.teach-dot{width:10px;height:10px;border-radius:50%;flex:none}
.teach-expr input{flex:1;min-width:0;border:0;background:transparent;outline:none!important;box-shadow:none;padding:8px 2px;color:inherit;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1rem}
.teach-expr-clear{flex:none;border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:.9rem;line-height:1;padding:6px;border-radius:6px}
.teach-expr-clear:hover{background:#eef3f6;color:var(--ink)}
.teach-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.teach-chip{border:1px solid var(--line);background:#fff;color:inherit;border-radius:999px;padding:5px 12px;font-size:.86rem;line-height:1.4;cursor:pointer}
.teach-chip:hover{border-color:#3498DB;color:#2b7fba;background:#fff}
.teach-board{width:100%!important;height:440px!important;border:1px solid var(--line);border-radius:12px;overflow:hidden;position:relative;background:#fff}
.teach-board .jxgbox{width:100%!important;height:100%!important}
.teach-board .JXGinfobox{display:none}
.teach-hint{margin:10px 0 0;font-size:.84rem;line-height:1.65}
.teach-side{display:flex;flex-direction:column;gap:12px;min-width:0}
.teach-card{border:1px solid var(--line);border-radius:12px;padding:14px}
.teach-card h3{margin:0 0 10px;font-size:.95rem}
.teach-card p{margin:0;font-size:.85rem;line-height:1.7}
.teach-table-wrap{overflow-x:auto}
.teach-table{width:100%;border-collapse:collapse;font-size:.82rem;font-variant-numeric:tabular-nums}
.teach-table th,.teach-table td{padding:5px 6px;text-align:right;border-bottom:1px solid var(--line);white-space:nowrap}
.teach-table th{background:transparent;font-weight:500}
.teach-table th:first-child,.teach-table td:first-child{text-align:left;color:var(--muted)}
html[data-theme="dark"] .teach-expr{background:#161616}
html[data-theme="dark"] .teach-expr.is-error{background:#2a1b1b;border-color:#7f3a3a}
html[data-theme="dark"] .teach-expr-clear:hover{background:#242424;color:#e6e1d4}
html[data-theme="dark"] .teach-chip{background:#161616}
html[data-theme="dark"] .teach-chip:hover{color:#6ea8fe;border-color:#6ea8fe;background:#161616}
html[data-theme="dark"] .teach-head code,html[data-theme="dark"] .teach-hint code,html[data-theme="dark"] .teach-tips code{background:#242424}
html[data-theme="dark"] .teach-board{background:#111}
@media(max-width:900px){.teach-layout{grid-template-columns:1fr}.teach-board{height:360px!important}}
@media(max-width:560px){.teach-panel{padding:16px}.teach-board{height:300px!important}.teach-head h2{font-size:1.02rem}}
