/* ============== 全局变量与重置 ============== */
:root{
  --primary:#5B8DEF;
  --primary-dark:#3B6FE0;
  --primary-light:#E0F2FE;
  --accent-yellow:#FFD93D;
  --accent-yellow-dark:#F5B800;
  --accent-purple:#A78BFA;
  --accent-pink:#F472B6;
  --accent-green:#34D399;
  --accent-orange:#FB923C;
  --accent-red:#F87171;
  --bg-gradient:linear-gradient(180deg,#E0F2FE 0%,#DBEAFE 100%);
  --card-bg:#FFFFFF;
  --text-dark:#1E3A8A;
  --text-mid:#475569;
  --text-light:#94A3B8;
  --border:#E2E8F0;
  --shadow-sm:0 2px 8px rgba(91,141,239,0.08);
  --shadow-md:0 6px 20px rgba(91,141,239,0.12);
  --shadow-lg:0 12px 32px rgba(91,141,239,0.16);
  --radius-sm:10px;
  --radius-md:16px;
  --radius-lg:24px;
  --radius-xl:32px;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Hiragino Sans GB","Helvetica Neue",Arial,sans-serif;font-size:16px;color:var(--text-dark);}
button{font-family:inherit;cursor:pointer;border:none;background:none;}
input,textarea,select{font-family:inherit;outline:none;border:none;background:transparent;}
::-webkit-scrollbar{width:6px;height:6px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:#CBD5E1;border-radius:3px;}

/* ============== 整体 App 容器 ============== */
#app{width:100vw;height:100vh;overflow:hidden;background:var(--bg-gradient);display:flex;flex-direction:column;}

/* ============== 顶栏 ============== */
.topbar{
  height:64px;flex-shrink:0;position:sticky;top:0;z-index:100;
  background:rgba(255,255,255,0.85);backdrop-filter:blur(20px);
  border-bottom:1px solid rgba(91,141,239,0.12);
  display:flex;align-items:center;justify-content:space-between;
  padding:0 24px;
}
.topbar-left{display:flex;align-items:center;gap:14px;min-width:0;}
.brand-icon{
  width:42px;height:42px;border-radius:14px;
  background:linear-gradient(135deg,#5B8DEF,#A78BFA);
  display:flex;align-items:center;justify-content:center;color:white;
  box-shadow:var(--shadow-sm);font-size:20px;flex-shrink:0;
}
.brand-title{font-size:18px;font-weight:700;color:var(--text-dark);white-space:nowrap;}
.brand-subtitle{font-size:12px;color:var(--text-light);margin-top:2px;white-space:nowrap;}
.topbar-right{display:flex;align-items:center;gap:12px;flex-shrink:0;}
/* 全局刷新按钮(2026-09-20 用户定制):顶栏右上角,点击刷新页面获取最新内容 */
.refresh-chip{
  display:flex;align-items:center;justify-content:center;
  width:38px;height:38px;border-radius:50%;
  background:#FFFFFF;border:1.5px solid #E2E8F0;
  font-size:17px;cursor:pointer;flex-shrink:0;
  position:relative;z-index:30;   /* 2026-09-27:防被相邻徽标遮挡导致点不动 */
  transition:transform .5s, background .2s, border-color .2s;
}
.refresh-chip:hover{background:#EFF6FF;border-color:#5B8DEF;transform:rotate(180deg);}
.refresh-chip:active{transform:rotate(360deg) scale(.92);}
.star-chip{
  display:flex;align-items:center;gap:6px;padding:8px 14px;
  background:linear-gradient(135deg,#FFD93D,#F5B800);border-radius:999px;
  color:white;font-weight:700;box-shadow:0 4px 12px rgba(245,184,0,0.3);cursor:pointer;
  transition:transform .15s;
}
.star-chip:hover{transform:translateY(-1px);}
.badge-chip{
  display:flex;align-items:center;gap:8px;padding:8px 12px;
  background:linear-gradient(135deg,#F472B6,#A78BFA);border-radius:999px;
  color:white;font-weight:700;box-shadow:0 4px 12px rgba(167,139,250,.3);
  cursor:pointer;transition:transform .15s;
}
.badge-chip:hover{transform:translateY(-1px);}
.bc-count{font-size:12px;background:rgba(255,255,255,.22);padding:2px 8px;border-radius:999px;font-weight:600;}
.user-chip{
  display:flex;align-items:center;gap:8px;padding:6px 14px 6px 6px;
  background:white;border-radius:999px;box-shadow:var(--shadow-sm);
  cursor:pointer;transition:all .2s;
}
.user-chip:hover{box-shadow:0 4px 14px rgba(91,141,239,.25);transform:translateY(-1px);}
.avatar{
  width:32px;height:32px;border-radius:50%;
  background:linear-gradient(135deg,#F472B6,#A78BFA);
  display:flex;align-items:center;justify-content:center;color:white;font-weight:700;
}

/* ============== 学段切换器 ============== */
.age-switch{
  display:flex;gap:4px;margin-left:14px;flex-shrink:0;
  background:#fff;padding:4px;border-radius:13px;
  box-shadow:0 2px 8px rgba(91,141,239,.10);
  border:1px solid var(--primary-light);
}
.age-btn{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:5px 11px;border-radius:9px;border:none;background:transparent;
  color:var(--text-light);font-weight:700;font-size:12px;cursor:pointer;
  transition:all .2s;min-width:56px;line-height:1.15;
}
.age-btn .age-emoji{font-size:16px;line-height:1;}
.age-btn .age-sub{font-size:9.5px;font-weight:500;color:#94A3B8;margin-top:2px;}
.age-btn:hover{background:var(--primary-light);color:var(--primary);}
.age-btn.active{
  background:linear-gradient(135deg,var(--primary),var(--accent-purple));
  color:#fff;box-shadow:0 3px 8px rgba(91,141,239,.30);
}
.age-btn.active .age-sub{color:#E0E7FF;}
.menu-btn{display:none;width:38px;height:38px;border-radius:10px;background:white;align-items:center;justify-content:center;font-size:18px;color:var(--text-mid);box-shadow:var(--shadow-sm);}

/* ============== 主体布局 ============== */
.main{flex:1;display:flex;overflow:hidden;}

/* ============== 侧边栏 ============== */
.sidebar{
  width:220px;flex-shrink:0;background:rgba(255,255,255,0.6);
  border-right:1px solid rgba(91,141,239,0.1);
  display:flex;flex-direction:column;
  padding:14px 16px 16px;position:relative;overflow:hidden;
}
.sidebar::after{
  content:"";position:absolute;bottom:0;left:0;right:0;height:140px;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 140' preserveAspectRatio='none'><path d='M0,90 C30,80 50,100 80,90 L80,140 L0,140 Z' fill='%23BAE6FD' opacity='0.45'/><path d='M60,80 C90,70 120,90 150,82 L150,140 L60,140 Z' fill='%237DD3FC' opacity='0.45'/><path d='M120,95 C150,85 180,100 220,90 L220,140 L120,140 Z' fill='%2338BDF8' opacity='0.45'/></svg>") no-repeat bottom center/100% auto;
  pointer-events:none;
}
.sidebar-header{
  display:flex;flex-direction:column;align-items:center;gap:6px;
  padding:4px 8px 16px;text-align:center;position:relative;z-index:2;
}
.sidebar-header-icon{
  width:64px;height:64px;border-radius:18px;
  background:linear-gradient(135deg,#FFD93D,#FBBF24);
  display:flex;align-items:center;justify-content:center;font-size:30px;
  box-shadow:0 8px 16px rgba(251,191,36,0.35);
}
.sidebar-title{font-size:15px;font-weight:800;color:var(--text-dark);line-height:1.4;}
.sidebar-nav{flex:1;overflow-y:auto;position:relative;z-index:2;padding-bottom:8px;}
.nav-item{
  display:flex;align-items:center;gap:12px;
  padding:12px 14px;border-radius:14px;
  color:var(--text-mid);font-weight:600;
  transition:all .2s;text-align:left;width:100%;font-size:15px;margin-bottom:2px;
}
.nav-item:hover{background:rgba(91,141,239,0.08);}
.nav-item.active{background:linear-gradient(135deg,#5B8DEF,#3B6FE0);color:white;box-shadow:0 6px 14px rgba(91,141,239,0.4);}
.nav-item .ico{
  width:28px;height:28px;display:flex;align-items:center;justify-content:center;
  border-radius:8px;background:rgba(91,141,239,0.1);flex-shrink:0;font-size:15px;
}
.nav-item.active .ico{background:rgba(255,255,255,0.2);}
.dock{
  margin-top:10px;padding:10px 12px;background:rgba(255,255,255,0.85);
  border-radius:16px;box-shadow:var(--shadow-sm);position:relative;z-index:2;
}
.dock-user{display:flex;align-items:center;gap:10px;cursor:pointer;}
.dock-avatar{
  width:38px;height:38px;border-radius:50%;
  background:linear-gradient(135deg,#F472B6,#A78BFA);
  display:flex;align-items:center;justify-content:center;color:white;font-weight:700;flex-shrink:0;
}
.dock-meta{min-width:0;}
.dock-name{font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dock-tag{font-size:11px;color:var(--text-light);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* ============== 内容区 ============== */
.content{flex:1;overflow-y:auto;padding:24px 32px;background:transparent;}
.view{display:none;}
.view.active{display:block;animation:fadeIn .3s ease;}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
.page-title{font-size:28px;font-weight:800;margin-bottom:6px;display:flex;align-items:center;gap:10px;}
.page-subtitle{font-size:15px;color:var(--text-mid);margin-bottom:24px;}
.page-subtitle::before{content:"•";color:var(--primary);margin-right:6px;}

/* ============== 卡片通用 ============== */
.card{
  background:var(--card-bg);border-radius:var(--radius-lg);
  padding:20px 24px;box-shadow:var(--shadow-md);
  border:1px solid rgba(91,141,239,0.06);
}
.card-title{font-size:18px;font-weight:700;margin-bottom:14px;display:flex;align-items:center;gap:8px;color:var(--text-dark);}
.card-title .deco{width:6px;height:18px;border-radius:3px;background:linear-gradient(180deg,#5B8DEF,#A78BFA);}
.muted{font-size:13px;color:var(--text-mid);margin-bottom:14px;}

/* ============== 按钮 ============== */
.btn-primary{
  padding:10px 18px;border-radius:12px;font-weight:700;font-size:14px;
  background:linear-gradient(135deg,#5B8DEF,#3B6FE0);color:white;
  box-shadow:0 4px 12px rgba(91,141,239,.3);transition:all .2s;
}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(91,141,239,.4);}
.btn-accent{
  padding:10px 18px;border-radius:12px;font-weight:700;font-size:14px;
  background:linear-gradient(135deg,#34D399,#10B981);color:white;
  box-shadow:0 4px 12px rgba(16,185,129,.3);transition:all .2s;
}
.btn-accent:hover{transform:translateY(-1px);}
.btn-ghost{
  padding:10px 18px;border-radius:12px;font-weight:700;font-size:14px;
  background:var(--primary-light);color:var(--primary);transition:all .2s;
}
.btn-ghost:hover{background:#CFE8FF;}

/* ============== 首页 Hero ============== */
.hero-banner{
  display:flex;align-items:center;justify-content:space-between;
  padding:28px 36px;margin-bottom:24px;
  background:linear-gradient(120deg,#EEF4FF 0%,#F0FDFA 50%,#FFF5F7 100%);
  border-radius:24px;box-shadow:var(--shadow-sm);
  position:relative;overflow:hidden;
}
.hero-banner::before{
  content:"";position:absolute;right:-40px;top:-40px;
  width:240px;height:240px;border-radius:50%;
  background:radial-gradient(circle,rgba(91,141,239,0.18),transparent 70%);
  pointer-events:none;
}
.hero-banner::after{
  content:"";position:absolute;right:80px;bottom:-60px;
  width:180px;height:180px;border-radius:50%;
  background:radial-gradient(circle,rgba(167,139,250,0.16),transparent 70%);
  pointer-events:none;
}
.hero-text{position:relative;z-index:1;}
.hero-title{font-size:34px;font-weight:800;color:var(--text-dark);}
.hero-sub{font-size:15px;color:var(--text-mid);margin-top:6px;}
.hero-right{position:relative;z-index:1;text-align:right;}
.hero-date{font-size:14px;color:var(--text-mid);font-weight:600;}
.hero-day{
  margin-top:8px;display:inline-block;padding:8px 16px;
  background:linear-gradient(135deg,#FFD93D,#F5B800);border-radius:999px;
  color:white;font-weight:700;font-size:14px;box-shadow:0 4px 12px rgba(245,184,0,0.3);
}

/* ============== KPI 卡片 ============== */
.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:24px;}
.kpi-card{
  background:white;border-radius:18px;padding:20px 22px;
  display:flex;align-items:center;gap:16px;
  box-shadow:var(--shadow-sm);border:1px solid #E2E8F0;
  transition:all .25s ease;cursor:pointer;
}
.kpi-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);}
.kpi-icon{
  width:64px;height:64px;border-radius:18px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:30px;
  box-shadow:0 4px 12px rgba(0,0,0,0.06);
}
.kpi-blue .kpi-icon{background:linear-gradient(135deg,#DBEAFE,#BFDBFE);}
.kpi-green .kpi-icon{background:linear-gradient(135deg,#DCFCE7,#BBF7D0);}
.kpi-orange .kpi-icon{background:linear-gradient(135deg,#FED7AA,#FDBA74);}
.kpi-purple .kpi-icon{background:linear-gradient(135deg,#E9D5FF,#C4B5FD);}
.kpi-content{flex:1;min-width:0;}
.kpi-label{font-size:13px;color:var(--text-mid);font-weight:600;}
.kpi-val{font-size:30px;font-weight:800;color:var(--text-dark);margin-top:2px;}
.kpi-unit{font-size:14px;font-weight:600;color:var(--text-light);margin-left:3px;}
.kpi-sub{font-size:12px;color:var(--accent-green);margin-top:2px;font-weight:600;}

/* ============== 仪表盘布局 ============== */
.dash-row{display:grid;gap:18px;margin-bottom:24px;}
.dash-2col{grid-template-columns:1.4fr 1fr;}
.dash-3col{grid-template-columns:1fr 1.2fr 1fr;}
.chart-card{padding:18px 22px;}
.chart-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;flex-wrap:wrap;gap:8px;}
.chart-title{font-size:15px;font-weight:700;color:var(--text-dark);display:flex;align-items:center;gap:6px;}
.chart-legend{display:flex;gap:14px;font-size:12px;color:var(--text-mid);flex-wrap:wrap;}
.chart-legend span{display:inline-flex;align-items:center;gap:4px;}
.chart-legend i{width:10px;height:10px;border-radius:3px;display:inline-block;}
.chart-legend.horizontal{justify-content:center;padding:8px 0 0 0;border-top:1px dashed #E2E8F0;margin-top:10px;}
.chart-svg{width:100%;height:220px;display:block;overflow:hidden;}
.chart-svg svg{display:block;width:100%;height:100%;}
.chart-svg-bubble{height:230px;}
.chart-svg-bar{height:230px;}
.ring-wrap{display:flex;align-items:center;gap:18px;padding:8px 4px 6px;}
.ring-wrap svg{width:170px;height:170px;flex-shrink:0;}
.ring-stats{display:flex;flex-direction:column;gap:14px;flex:1;font-size:14px;color:var(--text-mid);}
.ring-stats strong{font-size:18px;color:var(--text-dark);}

/* ============== 时间线 ============== */
.timeline{display:flex;flex-direction:column;gap:10px;max-height:240px;overflow-y:auto;}
.timeline-row{
  display:flex;align-items:center;gap:10px;font-size:13px;
  background:#F8FAFC;border-radius:12px;padding:10px 12px;transition:background .2s;
}
.tl-date{flex-shrink:0;color:var(--primary);font-weight:700;width:44px;}
.tl-text{flex:1;color:var(--text-dark);}
.tl-ico{margin-right:6px;}
.tl-done{color:#CBD5E1;font-size:16px;flex-shrink:0;}

/* ============== 学科统计 ============== */
.stat-grid{display:grid;gap:12px;}
.stat-tile{
  display:flex;align-items:center;gap:12px;
  background:#F8FAFC;border-radius:14px;padding:12px 14px;
}
.stat-tile .ico{
  width:40px;height:40px;border-radius:12px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:20px;
}
.stat-tile .label{font-size:12px;color:var(--text-mid);}
.stat-tile .val{font-size:18px;font-weight:800;color:var(--text-dark);}

/* ============== 鼓励的话 ============== */
.encourage-box{
  background:linear-gradient(135deg,#FDF4FF,#EDE9FE);
  border-radius:16px;padding:20px;text-align:center;
}
.encourage-quote{font-size:16px;font-weight:700;color:#6B21A8;line-height:1.7;}
.encourage-author{font-size:12px;color:#92400E;margin-top:10px;font-weight:600;}
.encourage-actions{display:flex;gap:10px;justify-content:center;margin-top:16px;flex-wrap:wrap;}

/* ============== 今日任务 ============== */
.todo-list{display:flex;flex-direction:column;gap:12px;}
.todo-item{
  display:flex;align-items:center;gap:14px;padding:14px;
  background:#F8FAFC;border-radius:14px;transition:all .2s;
}
.todo-item.done{background:#F0FDF4;}
.todo-ic{
  width:50px;height:50px;border-radius:14px;flex-shrink:0;
  background:white;display:flex;align-items:center;justify-content:center;
  font-size:24px;box-shadow:var(--shadow-sm);
}
.todo-body{flex:1;min-width:0;}
.todo-title{font-size:15px;font-weight:700;}
.todo-item.done .todo-title{text-decoration:line-through;color:var(--text-light);}
.todo-sub{font-size:12px;color:var(--text-mid);margin-top:3px;}

/* ============== 生字卡片 ============== */
.char-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:10px;}
.char-card{
  aspect-ratio:1;border-radius:14px;background:var(--primary-light);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  cursor:pointer;transition:all .2s;font-size:14px;color:var(--primary);font-weight:700;
}
.char-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);}
.char-card .ch{font-size:26px;color:var(--text-dark);font-weight:800;line-height:1.2;}
.char-card .py{font-size:11px;color:var(--primary);margin-top:2px;}

/* ============== 句子列表 ============== */
.sentence-list{display:flex;flex-direction:column;gap:10px;}
.sentence-item{
  display:flex;align-items:center;gap:12px;background:#F8FAFC;
  border-radius:12px;padding:12px 14px;font-size:14px;line-height:1.6;
}
.sentence-item .sen-ico{flex-shrink:0;font-size:20px;}
.sentence-item .sen-text{flex:1;color:var(--text-dark);}
.sentence-item button{flex-shrink:0;}

/* ============== 口算 ============== */
.calc-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:16px;}
.calc-timer,.calc-progress{font-size:14px;color:var(--text-mid);font-weight:600;}
.calc-progress span{color:var(--primary);font-weight:800;font-size:16px;}
.calc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;}
.calc-item{
  background:#F8FAFC;border-radius:14px;padding:14px 16px;
  display:flex;align-items:center;gap:10px;font-size:18px;font-weight:700;
}
.calc-item input{
  flex:1;min-width:0;background:white;border-radius:10px;
  padding:8px 10px;font-size:18px;font-weight:700;text-align:center;
  border:2px solid #E2E8F0;transition:border-color .2s;color:var(--text-dark);
}
.calc-item input:focus{border-color:var(--primary);}
.calc-item.correct{background:#F0FDF4;}
.calc-item.correct input{border-color:var(--accent-green);}
.calc-item.wrong{background:#FEF2F2;}
.calc-item.wrong input{border-color:var(--accent-red);}
.calc-item .calc-ans{font-size:13px;font-weight:600;}

/* ============== 单词 ============== */
.word-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;}
.word-card{
  background:#F8FAFC;border-radius:12px;padding:12px;text-align:center;
  cursor:pointer;transition:all .2s;
}
.word-card:hover{background:var(--primary-light);transform:translateY(-2px);}
.word-card .w-en{font-size:15px;font-weight:800;color:var(--text-dark);}
.word-card .w-zh{font-size:12px;color:var(--text-mid);margin-top:3px;}

/* ============== 打字练习 ============== */
.type-box{background:#F8FAFC;border-radius:16px;padding:18px;}
.type-target{
  font-size:22px;font-weight:800;text-align:center;letter-spacing:1px;
  background:white;border-radius:14px;padding:20px 16px;margin-bottom:12px;
  word-break:break-all;color:var(--text-dark);min-height:72px;display:flex;align-items:center;justify-content:center;
}
.type-input{
  width:100%;background:white;border-radius:12px;border:2px solid #E2E8F0;
  padding:12px 16px;font-size:16px;text-align:center;transition:border-color .2s;color:var(--text-dark);
}
.type-input:focus{border-color:var(--primary);}
.type-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px 0;}
.type-stats>div{background:white;border-radius:12px;padding:10px;text-align:center;}
.ts-num{font-size:18px;font-weight:800;color:var(--primary);display:block;}
.ts-lbl{font-size:11px;color:var(--text-light);}
.type-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;}
.type-actions button{font-size:13px;padding:8px 14px;}

/* ============== 错题本 ============== */
.err-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:24px;}
.err-stat{
  background:white;border-radius:18px;padding:20px;text-align:center;
  box-shadow:var(--shadow-sm);cursor:pointer;transition:all .2s;
}
.err-stat:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);}
.err-stat .e-num{font-size:32px;font-weight:800;color:var(--text-dark);}
.err-stat .e-sub{font-size:13px;color:var(--text-mid);margin-top:4px;}
.err-list{display:flex;flex-direction:column;gap:10px;}
.err-item{
  display:flex;align-items:center;gap:12px;background:#F8FAFC;
  border-radius:12px;padding:12px 14px;font-size:14px;
}
.err-item .e-tag{
  flex-shrink:0;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;
}
.err-item .e-text{flex:1;color:var(--text-dark);}
.err-item .e-btn{flex-shrink:0;font-size:12px;padding:6px 12px;}

/* ============== 成长打卡 ============== */
.checkin-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.hero-checkin{
  grid-column:1 / -1;
  background:linear-gradient(135deg,#E0F2FE 0%,#DBEAFE 100%);
  border-radius:var(--radius-lg);padding:24px 28px;
  display:flex;align-items:center;gap:24px;position:relative;overflow:hidden;
}
.checkin-emoji{font-size:56px;}
.checkin-streak{
  margin-top:10px;display:inline-block;background:rgba(255,255,255,.8);
  padding:8px 16px;border-radius:999px;font-weight:700;font-size:14px;
}
.week-stars{font-size:28px;font-weight:800;margin-bottom:14px;}
.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;}
.day-cell{
  background:#F8FAFC;border-radius:12px;padding:10px 4px;text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:2px;
}
.day-cell.done{background:#DCFCE7;}
.day-w{font-size:12px;color:var(--text-mid);font-weight:700;}
.day-i{font-size:14px;font-weight:800;height:18px;}
.goal-list{display:flex;flex-direction:column;gap:10px;}
.goal-item{
  display:flex;align-items:center;gap:12px;background:#F8FAFC;
  border-radius:12px;padding:12px 14px;font-size:14px;
}
.goal-item .g-ic{flex-shrink:0;font-size:22px;}
.goal-item .g-text{flex:1;}
.goal-item .g-num{font-size:12px;color:var(--text-mid);font-weight:600;flex-shrink:0;}
.goal-item .g-bar{
  width:60px;height:6px;border-radius:3px;background:#E2E8F0;overflow:hidden;flex-shrink:0;
}
.goal-item .g-bar i{display:block;height:100%;background:var(--accent-green);border-radius:3px;}
.goal-item .g-check{flex-shrink:0;color:var(--accent-green);font-weight:800;font-size:16px;}
.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:12px;}
.badge-item{
  display:flex;flex-direction:column;align-items:center;gap:6px;
  background:#F8FAFC;border-radius:14px;padding:14px 8px;text-align:center;
  transition:all .2s;cursor:default;
}
.badge-item.locked{opacity:.45;filter:grayscale(.6);}
.badge-item .b-ico{font-size:30px;}
.badge-item .b-name{font-size:11px;color:var(--text-mid);font-weight:600;}
.reward-list{display:flex;flex-direction:column;gap:10px;}
.reward-item{
  display:flex;align-items:center;gap:12px;background:#F8FAFC;
  border-radius:12px;padding:12px 14px;
}
.reward-item .r-cost{
  flex-shrink:0;padding:4px 10px;background:linear-gradient(135deg,#FFD93D,#F5B800);
  border-radius:999px;color:white;font-size:12px;font-weight:800;
}
.reward-item .r-text{flex:1;font-size:14px;}
.reward-item button{flex-shrink:0;font-size:12px;padding:7px 12px;}

/* ============== 家长报告 ============== */
.report-score,.report-checkin{text-align:center;padding:28px;}
.report-score-num{
  font-size:56px;font-weight:800;
  background:linear-gradient(135deg,#5B8DEF,#A78BFA);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  line-height:1.1;
}
.report-score-txt{font-size:14px;color:var(--text-mid);margin-top:8px;}
.report-checkin-num{font-size:32px;font-weight:800;color:var(--text-dark);}
.report-checkin-txt{font-size:14px;color:var(--text-mid);margin-top:8px;}
.duration-row{display:flex;flex-direction:column;gap:14px;}
.duration-item{display:flex;align-items:center;gap:12px;}
.duration-item .d-ico{font-size:22px;flex-shrink:0;}
.duration-item .d-name{width:48px;font-size:13px;color:var(--text-mid);font-weight:600;}
.duration-item .d-bar{flex:1;height:10px;border-radius:5px;background:#F1F5F9;overflow:hidden;}
.duration-item .d-bar i{display:block;height:100%;border-radius:5px;}
.duration-item .d-val{width:64px;text-align:right;font-size:13px;font-weight:800;color:var(--text-dark);flex-shrink:0;}
.highlight-list{display:flex;flex-direction:column;gap:10px;}
.hl-item{
  display:flex;gap:10px;background:#F8FAFC;border-radius:12px;
  padding:12px 14px;font-size:14px;line-height:1.6;
}
.hl-item .hl-ico{flex-shrink:0;font-size:18px;}
.hl-item.suggest{background:#FFF7ED;}

/* ============== 幼儿视图 ============== */
.pinyin-panel{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:14px;}
.pinyin-card{
  background:white;border-radius:16px;padding:16px;text-align:center;
  box-shadow:var(--shadow-sm);cursor:pointer;transition:all .2s;
}
.pinyin-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);}
.pinyin-card .py-big{font-size:28px;font-weight:800;color:var(--primary);}
.pinyin-card .py-src{font-size:12px;color:var(--text-light);margin-top:4px;}
.pinyin-card .py-ex{font-size:14px;color:var(--text-mid);margin-top:4px;}
.zi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px;}
.zi-card{
  background:white;border-radius:16px;padding:18px;text-align:center;
  box-shadow:var(--shadow-sm);cursor:pointer;transition:all .2s;
}
.zi-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);}
.zi-card .zi-big{font-size:44px;font-weight:800;color:var(--text-dark);}
.zi-card .zi-py{font-size:13px;color:var(--primary);margin-top:4px;font-weight:700;}
.zi-card .zi-words{font-size:13px;color:var(--text-mid);margin-top:6px;}
.count-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:14px;}
.count-card{
  background:white;border-radius:16px;padding:16px;text-align:center;
  box-shadow:var(--shadow-sm);cursor:pointer;transition:all .2s;
}
.count-card:hover{transform:translateY(-2px);}
.count-card .num-big{font-size:30px;font-weight:800;color:var(--accent-orange);}
.count-card .num-cn{font-size:14px;color:var(--text-mid);margin-top:4px;}
.count-card .num-en{font-size:12px;color:var(--text-light);}
.songs-pane{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;}
.song-card{
  background:white;border-radius:16px;padding:18px;cursor:pointer;
  box-shadow:var(--shadow-sm);transition:all .2s;
}
.song-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);}
.song-icon{font-size:32px;margin-bottom:8px;}
.song-title{font-size:16px;font-weight:800;color:var(--text-dark);}
.song-desc{font-size:12px;color:var(--text-mid);margin-top:4px;}

/* ============== 理综文综学科 ============== */
.sub-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:18px;}
.tip-list{display:flex;flex-direction:column;gap:12px;}
.tip-item{
  display:flex;align-items:flex-start;gap:12px;
  background:#F8FAFC;border-radius:14px;padding:14px 16px;
  cursor:pointer;transition:all .2s;
}
.tip-item:hover{background:var(--primary-light);transform:translateX(2px);}
.tip-ico{
  width:40px;height:40px;border-radius:12px;flex-shrink:0;
  background:white;display:flex;align-items:center;justify-content:center;
  font-size:20px;box-shadow:var(--shadow-sm);
}
.tip-body{flex:1;min-width:0;}
.tip-title{font-size:15px;font-weight:800;color:var(--text-dark);}
.tip-desc{font-size:13px;color:var(--text-mid);line-height:1.7;margin-top:4px;}
.formula-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.formula-card{
  background:linear-gradient(135deg,#EEF4FF,#F5F3FF);
  border-radius:14px;padding:16px;text-align:center;
  cursor:pointer;transition:all .2s;
}
.formula-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);}
.formula-card .f-formula{
  font-size:15px;font-weight:800;color:var(--primary-dark);
  font-family:Consolas,"Courier New",monospace;line-height:1.5;word-break:break-all;
}
.formula-card .f-name{font-size:12px;color:var(--text-mid);margin-top:6px;font-weight:600;}

/* ============== 英语视图 2×2 网格 ============== */
.english-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-rows:1fr 1fr;
  gap:16px;
}
.english-grid .sent-card{grid-row:span 2;display:flex;flex-direction:column;}
.english-grid .card{display:flex;flex-direction:column;min-height:0;padding:16px 20px;}
.english-grid .sent-box{flex:1;min-height:0;}
.english-grid .sent-target{padding:18px 14px;font-size:20px;line-height:1.4;}
.english-grid .sent-day-bar{height:10px;}
@media(max-width:1100px){
  .english-grid{grid-template-columns:1fr;}
  .english-grid .sent-card{grid-row:auto;}
}

/* ============== 艾宾浩斯每日单词 ============== */
.eb-card{padding:20px 24px 24px;}
.eb-overview{display:block;margin-bottom:16px;}
.eb-stat{
  background:#F8FAFC;border-radius:16px;padding:18px 10px;text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:4px;
}
.eb-stat-num{font-size:30px;font-weight:800;color:var(--primary-dark);line-height:1.1;}
.eb-stat-lbl{font-size:12px;color:var(--text-mid);font-weight:600;}
.eb-start{grid-column:1 / -1;text-align:center;margin-top:4px;}
.eb-study{display:none;max-width:560px;margin:0 auto;}
.eb-word-card{
  background:linear-gradient(135deg,#EEF4FF,#F5F3FF);
  border-radius:20px;padding:36px 24px;text-align:center;cursor:pointer;
  box-shadow:var(--shadow-sm);transition:all .2s;border:1px solid rgba(91,141,239,.1);
}
.eb-word-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);}
.eb-word-card.flipped{background:linear-gradient(135deg,#F0FDF4,#DCFCE7);}
.eb-word{font-size:40px;font-weight:800;color:var(--text-dark);letter-spacing:1px;word-break:break-all;}
.eb-ipa{font-size:16px;color:var(--primary);margin-top:8px;font-weight:600;}
.eb-def{font-size:18px;color:var(--text-dark);margin-top:14px;line-height:1.7;font-weight:600;}
.eb-hint{font-size:12px;color:var(--text-light);margin-top:12px;}
.eb-actions{display:flex;gap:10px;justify-content:center;margin-top:16px;flex-wrap:wrap;align-items:center;}
/* 2026-10-09 王姐定制:单词卡内三排按钮 —— 阶段(彻底掌握/认识/模糊/忘记)、语音(听一听/读一读)、
   导航(上一个/下一个/再来一组)。后两排各自成行、行距与卡内按钮 gap 一致(10px,不用默认 16px),
   整组固定在标题下方,右侧词库再长也不会把它们顶下去。 */
.eb-actions.eb-voice-row{margin-top:10px;}
.eb-actions.eb-nav-row{margin-top:10px;}
.eb-btn{
  padding:12px 20px;border-radius:14px;font-weight:800;font-size:15px;
  transition:all .2s;color:white;
}
.eb-btn:hover{transform:translateY(-2px);}
.eb-know{background:linear-gradient(135deg,#34D399,#10B981);box-shadow:0 4px 12px rgba(16,185,129,.3);}
.eb-fuzzy{background:linear-gradient(135deg,#FB923C,#F97316);box-shadow:0 4px 12px rgba(249,115,22,.3);}
.eb-forget{background:linear-gradient(135deg,#F87171,#EF4444);box-shadow:0 4px 12px rgba(239,68,68,.3);}
.eb-master{background:linear-gradient(135deg,#A78BFA,#7C3AED);box-shadow:0 4px 12px rgba(124,58,237,.3);}
.eb-speak{padding:12px 18px;}
.eb-read{padding:12px 18px;}
.eb-result{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#F8FAFC;border-radius:12px;padding:10px 14px;font-size:14px;margin-top:10px;}
.eb-result-label{font-weight:700;color:var(--text-mid);font-size:13px;min-width:104px;}
.eb-result-val{font-size:12px;font-weight:700;color:var(--text-light);font-variant-numeric:tabular-nums;min-width:0;text-align:center;}
.eb-result-val.pass,.eb-result-val.mid,.eb-result-val.fail{font-size:20px;font-weight:800;min-width:74px;}
.eb-result-val.pass{color:var(--accent-green);}
.eb-result-val.mid{color:#F59E0B;}
.eb-result-val.fail{color:var(--accent-red);}
.eb-result-detail{font-size:12px;color:var(--text-light);flex:1;min-width:180px;}
.eb-playback{flex-shrink:0;display:none;padding:5px 12px;border-radius:9px;font-weight:700;font-size:12px;background:linear-gradient(135deg,#38BDF8,#0EA5E9);color:white;cursor:pointer;border:none;transition:all .2s;box-shadow:0 3px 8px rgba(14,165,233,.3);}
.eb-playback:hover{transform:scale(1.05);}
.eb-progress{text-align:center;font-size:13px;color:var(--text-mid);margin-top:14px;font-weight:600;}
.eb-done{display:none;text-align:center;padding:20px 0;}
.eb-done-emoji{font-size:56px;}
.eb-done-title{font-size:24px;font-weight:800;color:var(--text-dark);margin-top:8px;}
.eb-done-stats{display:flex;gap:18px;justify-content:center;margin:18px 0;flex-wrap:wrap;}
.eb-done-stats span{background:#F8FAFC;border-radius:12px;padding:10px 16px;font-size:14px;color:var(--text-mid);}
.eb-done-stats strong{font-size:20px;color:var(--text-dark);}
.eb-done-sub{font-size:14px;color:var(--text-mid);margin-bottom:18px;}
.eb-rule{
  margin-top:16px;background:#FEFCE8;border-radius:12px;padding:10px 14px;
  font-size:12px;color:#92400E;line-height:1.7;
}
.word-card.mastered{border:1px solid var(--accent-green);}
.word-card .w-err{font-size:10px;color:var(--accent-red);font-weight:700;margin-top:2px;}

/* ============== 句子练习(高中英语) ============== */
.sent-box{display:flex;flex-direction:column;gap:14px;}
.sent-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;}
.sent-meta{display:flex;flex-direction:column;gap:4px;}
.sent-day{font-size:13px;color:var(--text-mid);font-weight:700;}
.sent-meta-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.sent-progress{font-size:12px;color:var(--accent-orange);font-weight:700;}
/* 2026-10-02 王姐定制:句子「来源」由"句子上方的库切换行"移到**句子框右下角**。
   绝对定位挂在 .sent-target-box(句子的定位父级)上。
   注意:不能把 .sent-src 塞进 .sent-target 内部 —— 那个节点是用 textContent 赋句子的,塞进去会被冲掉。 */
.sent-target-box{position:relative;}
.sent-src{
  position:absolute;right:14px;bottom:10px;
  font-size:11px;color:var(--text-light);font-weight:600;
  background:rgba(241,245,249,.85);border-radius:6px;padding:2px 8px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:min(240px,60%);
  pointer-events:none;
}
.sent-num{
  padding:4px 14px;border-radius:999px;
  background:linear-gradient(135deg,var(--accent-purple),var(--primary));
  color:white;font-weight:800;font-size:13px;
}
.sent-target{
  background:linear-gradient(135deg,#EEF4FF,#F5F3FF);
  border-radius:18px;padding:32px 18px;
  font-size:24px;font-weight:800;line-height:1.5;color:var(--text-dark);
  text-align:center;letter-spacing:0.3px;
  border:1px solid rgba(91,141,239,.1);
  min-height:90px;outline:none;cursor:text;transition:all .2s;white-space:pre-wrap;
}
.sent-target:focus{background:linear-gradient(135deg,#E0EFFF,#EAE5FF);box-shadow:0 0 0 3px rgba(91,141,239,.2);}
.sent-target:empty:before{content:attr(data-ph);color:#94A3B8;font-weight:500;font-size:14px;pointer-events:none;}
.sent-target-wrap{display:flex;flex-direction:column;gap:4px;}
.sent-target-hint{font-size:11px;color:var(--text-light);text-align:right;}
.sent-lib-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:2px 0 10px;padding:8px 10px;background:#F4F6FB;border-radius:12px;}
.sent-lib-row .sent-day{margin-left:10px;}
.sent-lib-spacer{flex:1;}
/* 句子练习标题行:副标题靠右(2026-09-16 用户定制) */
.sent-title-hint{margin:0 0 0 auto;font-size:13px;font-weight:500;color:var(--text-mid);}
.sent-lib-lbl{font-size:12px;font-weight:700;color:var(--text-mid);}
.sent-lib-btn{padding:4px 12px;border-radius:999px;border:1px solid #CBD5E1;background:#FFFFFF;color:#475569;font-size:12px;font-weight:700;cursor:pointer;transition:all .2s;}
.sent-lib-btn:hover{border-color:#8B5CF6;color:#8B5CF6;}
.sent-lib-btn.active{background:linear-gradient(135deg,#8B5CF6,#6366F1);color:#FFFFFF;border-color:transparent;box-shadow:0 2px 8px rgba(99,102,241,.35);}
.sent-translate{
  background:#F8FAFC;border:2px dashed #CBD5E1;border-radius:14px;
  padding:14px;font-size:15px;color:#94A3B8;cursor:text;outline:none;
  transition:all .2s;width:100%;text-align:center;font-weight:600;
  min-height:46px;white-space:pre-wrap;
}
.sent-translate:empty:before{content:attr(data-ph);color:#94A3B8;}
.sent-translate:hover{background:var(--primary-light);border-color:var(--primary);color:var(--primary);}
.sent-translate.shown{
  background:#F0FDF4;border:2px solid var(--accent-green);color:var(--text-dark);
  font-weight:700;text-align:left;
}
.sent-translate-hint{font-size:11px;color:var(--text-light);text-align:right;margin-top:-2px;}
.sent-ans{
  background:#FFF7ED;border:1px dashed #FDBA74;border-radius:12px;
  padding:12px 14px;font-size:14px;color:var(--text-dark);line-height:1.8;
  margin-top:2px;
}
.sent-gram{
  background:#F5F3FF;border:1px dashed #A78BFA;border-radius:12px;
  padding:12px 14px;font-size:14px;color:var(--text-dark);line-height:1.9;
  margin-top:2px;white-space:pre-wrap;word-break:break-word;
  box-shadow:inset 0 0 0 1px rgba(167,139,250,.08);
}
.sent-result{
  display:flex;flex-direction:column;gap:6px;
  background:#F8FAFC;border-radius:12px;padding:10px 14px;font-size:14px;
}
.sent-result-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.sent-result-label{font-weight:700;color:var(--text-mid);font-size:13px;min-width:108px;}
.sent-result-val{
  font-size:12px;font-weight:700;color:var(--text-light);
  font-variant-numeric:tabular-nums;min-width:0;text-align:center;
}
/* 已录音有分数时:大号高亮 */
.sent-result-val.pass,.sent-result-val.mid,.sent-result-val.fail{
  font-size:22px;font-weight:800;min-width:80px;
}
.sent-result-val.pass{color:var(--accent-green);}
.sent-result-val.mid{color:#F59E0B;}
.sent-result-val.fail{color:var(--accent-red);}
.sent-result-detail{font-size:12px;color:var(--text-light);flex:1;min-width:200px;}
.sent-playback{
  flex-shrink:0;display:none;padding:5px 12px;border-radius:9px;font-weight:700;font-size:12px;
  background:linear-gradient(135deg,#38BDF8,#0EA5E9);color:white;cursor:pointer;border:none;
  transition:all .2s;box-shadow:0 3px 8px rgba(14,165,233,.3);
}
.sent-playback:hover{transform:scale(1.05);}
.sent-rec-status{
  display:flex;align-items:center;gap:10px;
  padding:10px 14px;border-radius:12px;
  background:#FEF3C7;border:1px solid #FDE68A;
  font-size:14px;color:#92400E;font-weight:600;
}
.sent-rec-dot{
  width:10px;height:10px;border-radius:50%;background:var(--accent-red);
  box-shadow:0 0 0 0 rgba(248,113,113,.6);
  animation:sentPulse 1.4s infinite;
  flex-shrink:0;
}
@keyframes sentPulse{
  0%{box-shadow:0 0 0 0 rgba(248,113,113,.6);}
  70%{box-shadow:0 0 0 10px rgba(248,113,113,0);}
  100%{box-shadow:0 0 0 0 rgba(248,113,113,0);}
}
#sentRecLive{
  font-family:Consolas,"Courier New",monospace;
  font-size:11px;
  color:var(--accent-red);
  flex:1 1 0;min-width:0;
  text-align:left;line-height:1.45;
  white-space:normal;word-break:break-word;overflow-wrap:anywhere;
  max-height:52px;overflow-y:auto;
}
.sent-rec-stop{
  flex-shrink:0;padding:6px 16px;border-radius:10px;font-weight:800;font-size:14px;
  background:linear-gradient(135deg,#F87171,#EF4444);color:white;cursor:pointer;
  border:none;transition:all .2s;box-shadow:0 3px 10px rgba(239,68,68,.35);
}
.sent-rec-stop:hover{transform:scale(1.05);}
/* 语速档位 */
.sent-rate-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.sent-rate-lbl{font-size:12px;font-weight:700;color:var(--text-mid);}
.sent-rate-btn{
  padding:5px 12px;border-radius:999px;font-size:12px;font-weight:700;cursor:pointer;
  background:#F8FAFC;border:1px solid #E2E8F0;color:var(--text-mid);transition:all .2s;
}
.sent-rate-btn:hover{border-color:var(--primary);color:var(--primary);}
.sent-rate-btn.active{
  background:linear-gradient(135deg,var(--accent-purple),var(--primary));
  color:white;border-color:transparent;box-shadow:0 2px 6px rgba(91,141,239,.35);
}
/* 2026-10-09 王姐定制:按钮组由 6 列改 7 列 —— 新增「📋 返回待复习清单」放在「下一题」后面。
   该按钮只在学习模式(从待复习清单点进来)显示,其余时候第 7 格为空、不影响原 6 个按钮排布。 */
.sent-actions{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;}
.sent-actions button{flex:1;min-width:0;padding:9px 2px;font-size:12px;white-space:nowrap;}
#sentBackToListBtn{font-size:11.5px;padding:9px 1px;}
@media(max-width:1100px){
  .sent-actions{grid-template-columns:repeat(4,1fr);}
}
.sent-footer{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--text-mid);margin-top:6px;}
.sent-footer .sent-day-bar{flex:0.9;}
.sent-time-total{
  flex-shrink:0;font-size:12px;font-weight:600;color:var(--text-mid);
  background:#F1F5F9;border-radius:8px;padding:3px 10px;white-space:nowrap;
}
.sent-time-total b{color:var(--primary-dark);font-size:15px;}
.sent-time-btn{
  flex-shrink:0;padding:5px 10px;border-radius:8px;font-size:12px;font-weight:800;cursor:pointer;
  background:#F8FAFC;border:1px solid #CBD5E1;color:var(--text-mid);transition:all .2s;
}
.sent-time-btn:hover{border-color:var(--accent-orange);color:var(--accent-orange);}
.sent-duebar{
  align-items:center;gap:8px;background:#FFF4E5;border:1px solid #FFD7A8;border-radius:12px;
  padding:8px 12px;font-size:13px;color:#92400E;font-weight:600;line-height:1.5;
}
.sent-judge{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  background:#F8FAFC;border-radius:12px;padding:8px 12px;
}
.sent-judge-lbl{font-weight:700;font-size:13px;color:var(--text-mid);}
.sent-judge-btn{
  padding:7px 14px;border-radius:10px;font-weight:700;font-size:13px;
  border:2px solid transparent;transition:all .2s;cursor:pointer;
}
.sent-judge-btn.j-know{background:#E7F9F0;color:#0B9E5F;}
.sent-judge-btn.j-know:hover{border-color:#34D399;}
.sent-judge-btn.j-unfam{background:#FEF6E7;color:#D97706;}
.sent-judge-btn.j-unfam:hover{border-color:#FBBF24;}
.sent-judge-btn.j-wrong{background:#FEE7E7;color:#DC2626;}
.sent-judge-btn.j-wrong:hover{border-color:#F87171;}
.sent-judge-btn.active{transform:scale(1.06);box-shadow:0 2px 8px rgba(0,0,0,.12);}
.sent-judge-btn.j-know.active{border-color:#0B9E5F;background:#D1FAE5;}
.sent-judge-btn.j-unfam.active{border-color:#D97706;background:#FEF3C7;}
.sent-judge-btn.j-wrong.active{border-color:#DC2626;background:#FEE2E2;}
.sent-judge.has{box-shadow:inset 0 0 0 1px #CBD5E1;}
.sent-stats{
  display:grid;grid-template-columns:repeat(4,1fr);gap:8px;
}
.sent-stat-item{
  background:#F1F5F9;border-radius:10px;padding:7px 6px;
  text-align:center;font-size:11px;color:var(--text-mid);font-weight:600;
}
.sent-stat-item b{display:block;font-size:18px;color:var(--primary-dark);line-height:1.3;}
.sent-listen-state{font-size:11px;color:var(--text-light);line-height:1.6;word-break:break-all;}
.sent-footer-lbl{font-weight:700;flex-shrink:0;}
.sent-day-bar{flex:1;display:flex;gap:3px;height:14px;}
.sent-day-cell{flex:1;border-radius:3px;background:#E2E8F0;transition:background .2s;}
.sent-day-cell.done{background:var(--accent-green);}
.sent-day-cell.now{background:var(--primary);}
@media(max-width:768px){
  .eb-overview{grid-template-columns:repeat(2,1fr);}
  .eb-word{font-size:30px;}
}

/* ============== 📌 每日·我不会的 ============== */
.mist-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px;}
.mist-select{
  padding:9px 14px;border-radius:12px;border:1px solid #E2E8F0;background:white;
  font-size:14px;font-weight:600;color:var(--text-dark);cursor:pointer;
}
.mist-search{
  flex:1;min-width:180px;padding:9px 14px;border-radius:12px;border:1px solid #E2E8F0;
  background:white;font-size:14px;color:var(--text-dark);
}
.mist-search:focus{border-color:var(--primary);}
.mist-stats{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;font-size:11px;color:var(--text-mid);align-items:center;}
.mist-stats .mist-stat b{font-size:16px;color:var(--text-dark);}
/* 2026-09-27 用户定制:错题列表上方的全选条 */
.mist-allbar{margin:-6px 0 10px;}
.mist-allbar .mist-all-label{display:inline-flex;align-items:center;gap:8px;cursor:pointer;padding:6px 12px;background:#fff;border:1px solid var(--border,#e5e7eb);border-radius:8px;font-size:13px;color:var(--text-dark);}
.mist-allbar .mist-all-label input[type=checkbox]{width:15px;height:15px;cursor:pointer;accent-color:var(--primary);}
.mist-allbar .mist-all-hint{font-size:12px;color:var(--text-light);}
/* 2026-10-02 王姐定制:全选条尾部「排序」下拉(小大排/大小排) */
.mist-allbar .mist-sort-wrap{display:inline-flex;align-items:center;gap:6px;margin-left:10px;padding:4px 10px;background:#fff;border:1px solid var(--border,#e5e7eb);border-radius:8px;font-size:13px;color:var(--text-dark);}
.mist-allbar .mist-sort-sel{border:1px solid var(--border,#e5e7eb);border-radius:6px;padding:2px 6px;font-size:13px;font-family:inherit;color:var(--text-dark);background:#F8FAFC;cursor:pointer;outline:none;}
.mist-allbar .mist-sort-sel:focus{border-color:var(--primary);}
/* 2026-09-26 用户定制:统计条快捷筛选按钮(待复习/未掌握/已掌握可点击) */
.mist-stats .mist-stat-btn{appearance:none;border:1px solid var(--line,#e3e8f0);background:#fff;border-radius:999px;padding:3px 9px;font-size:11px;color:var(--text-mid);cursor:pointer;transition:all .15s;font-family:inherit;line-height:1.4;white-space:nowrap;}
.mist-stats .mist-stat-btn b{font-size:13px;color:var(--text-dark);}
.mist-stats .mist-stat-btn:hover{border-color:var(--primary);color:var(--primary);}
.mist-stats .mist-stat-btn.on{background:var(--primary);border-color:var(--primary);color:#fff;}
.mist-stats .mist-stat-btn.on b{color:#fff;}
.mist-stats .mist-stat-btn.red{color:#dc2626;}
/* 2026-10-02 王姐定制:「未掌握」数量数字统一红色粗体;选中时浅红底红字保持可读 */
.mist-stats .mist-stat-btn.red b{color:#dc2626;font-weight:800;}
.mist-stats .mist-stat-btn.red.on{background:#fee2e2;border-color:#dc2626;color:#b91c1c;}
.mist-stats .mist-stat-btn.red.on b{color:#dc2626;}
/* 2026-10-02 王姐定制:掌握程度3个+错因分类3个,椭圆保持白色,外围区域变色(掌握程度=浅绿,错因分类=浅桔) */
.mist-stats .mist-stat-group{display:inline-flex;gap:4px;align-items:center;padding:3px 6px;border-radius:999px;}
.mist-stats .mist-stat-group.lv{background:#c7ebd1;}
.mist-stats .mist-stat-group.eb{background:#fbd9b4;}
.mist-list{display:flex;flex-direction:column;gap:14px;}
.mist-empty{
  background:white;border-radius:20px;padding:50px 20px;text-align:center;
  box-shadow:var(--shadow-sm);border:1px dashed #CBD5E1;
}
.mist-item{
  background:white;border-radius:18px;padding:16px 20px;
  box-shadow:var(--shadow-sm);border:1px solid #E2E8F0;transition:all .2s;
}
.mist-item:hover{box-shadow:var(--shadow-md);}
.mist-item.done{opacity:.72;}
.mist-item-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.mist-dot{font-size:16px;flex-shrink:0;}
.mist-subj{
  padding:3px 10px;border-radius:999px;background:var(--primary-light);
  color:var(--primary-dark);font-size:12px;font-weight:800;flex-shrink:0;
}
.mist-q-block{flex:1;min-width:160px;display:flex;flex-direction:column;gap:4px;}
.mist-q{font-size:15px;font-weight:700;color:var(--text-dark);line-height:1.5;}
.mist-q-opts{font-size:14px;font-weight:400;color:var(--text-2nd,#5a6472);line-height:1.6;}
/* 2026-09-29 王姐定制:题面图形单独一行放题干最下方,与文字分开 */
.mist-q-figs{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start;margin-top:4px;padding-top:8px;border-top:1px dashed var(--line,#e5e7eb);}
.mist-q-figs img{max-width:100%;max-height:260px;width:auto;height:auto;border-radius:8px;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.08);}
.mist-mastered{color:var(--accent-green);font-size:12px;font-weight:800;flex-shrink:0;}
.mist-time{font-size:11px;color:var(--text-light);flex-shrink:0;}
.mist-item-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;align-items:center;}
.mist-tag{
  padding:2px 9px;border-radius:999px;background:#F5F3FF;color:#6B21A8;
  font-size:11px;font-weight:700;
}
.mist-diff{color:#F59E0B;font-size:12px;margin-left:4px;letter-spacing:1px;}
.mist-item-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;}
.mist-btn{padding:3.5px 7px;font-size:10px;border-radius:6px;}
/* 2026-10-09 王姐定制:错题卡片下方两行(标签行 + 按钮行)缩小到原值的 80%,比题面(15px)小、不喧宾夺主。
   限定在 .mist-item 卡片内 —— 错题详情弹窗(#mistDetail .mist-detail-tags)与其它模块不受影响。
   原值: .mist-tag 11px / .mist-diff 12px / .mist-btn 10px  →  80%: 8.8 / 9.6 / 8
   (先用过 50% = 5.5/6/5,王姐反馈"太小看不见",故回调到 80%) */
.mist-item .mist-item-tags .mist-tag{font-size:9px;}
.mist-item .mist-item-tags .mist-diff{font-size:9.5px;}
.mist-item .mist-item-actions .mist-btn{font-size:8px;}
/* 错题编号(2026-09-20):右下角,比题目略小、深灰色 */
.mist-no{margin-left:auto;font-size:12px;font-weight:400;color:#475569;letter-spacing:.3px;white-space:nowrap;}
/* 错题中心·日期范围筛选(2026-09-20) */
.mist-date-wrap{display:inline-flex;align-items:center;gap:4px;}
.mist-date-label{font-size:13px;font-weight:700;color:var(--text-dark);white-space:nowrap;}
.mist-date{padding:8px 10px;width:132px;}
.mist-date-sep{font-size:13px;font-weight:700;color:var(--text-dark);}
.mist-date-clear{padding:6px 9px;font-size:12px;border-radius:10px;line-height:1;}
.mist-date-clear:hover{color:var(--accent-red);border-color:var(--accent-red);}
.mist-answer{margin-top:12px;border-top:1px dashed #E2E8F0;padding-top:12px;}
.mist-answer-box{
  background:#F8FAFC;border-radius:12px;padding:14px 16px;
  font-size:14px;line-height:1.8;color:var(--text-dark);word-break:break-word;
}
.mist-answer-box img{max-width:100%;border-radius:8px;}
.mist-answer-meta{font-size:11px;color:var(--text-light);margin-top:8px;}
.mist-answer-meta .due{color:var(--accent-red);font-weight:700;}

/* 录入弹窗 */
.modal-wide{width:min(720px,94vw);}
.mist-form{display:flex;flex-direction:column;gap:14px;}
.mist-row{display:flex;gap:14px;flex-wrap:wrap;}
.mist-field{flex:1;min-width:140px;}
.mist-field.full{width:100%;flex:1 0 100%;}
.mist-field label{font-size:13px;font-weight:700;color:var(--text-mid);display:block;margin-bottom:6px;}
.mist-field label .req{color:var(--accent-red);}
.mist-field label .hint{font-weight:400;font-size:11px;color:var(--text-light);margin-left:6px;}
.mist-level{display:flex;gap:6px;}
.mist-level .lv{
  width:44px;height:40px;border-radius:10px;font-size:18px;
  background:#F8FAFC;border:2px solid transparent;transition:all .2s;
}
.mist-level .lv.active{border-color:var(--primary);background:white;box-shadow:var(--shadow-sm);}
.mist-stars{display:flex;gap:2px;font-size:22px;cursor:pointer;padding-top:4px;}
.mist-star{color:#E2E8F0;transition:color .15s;}
.mist-star.on{color:#FBBF24;}
.rich-toolbar{
  display:flex;align-items:center;gap:4px;flex-wrap:wrap;
  background:#F8FAFC;border-radius:10px 10px 0 0;padding:6px 8px;
  border:1px solid #E2E8F0;border-bottom:none;
}
.rt-btn{
  min-width:28px;height:28px;border-radius:7px;font-size:13px;color:var(--text-mid);
  background:white;border:1px solid #E2E8F0;transition:all .15s;padding:0 6px;
}
.rt-btn:hover{background:var(--primary-light);color:var(--primary);}
.rt-sep{width:1px;height:18px;background:#E2E8F0;margin:0 4px;}
.rich-box{
  min-height:96px;background:white;border:1px solid #E2E8F0;border-radius:0 0 10px 10px;
  padding:12px 14px;font-size:15px;line-height:1.8;color:var(--text-dark);
  word-break:break-word;outline:none;
}
.rich-box:focus{border-color:var(--primary);}
.rich-box img{max-width:100%;border-radius:8px;margin:4px 0;}
.rich-box:empty:before{content:attr(data-ph);color:#CBD5E1;pointer-events:none;}
.mist-input{
  width:100%;padding:10px 14px;border-radius:10px;border:1px solid #E2E8F0;
  background:white;font-size:14px;color:var(--text-dark);
}
.mist-input:focus{border-color:var(--primary);}
.mist-rec{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.mist-rec-timer{font-size:14px;font-weight:700;color:var(--accent-red);font-variant-numeric:tabular-nums;}
.mist-audio-box{display:flex;align-items:center;gap:8px;}

/* 详情弹窗 */
.mist-detail-q,.mist-detail-a{margin-bottom:14px;}
.mist-detail-label{font-size:12px;font-weight:800;color:var(--text-mid);margin-bottom:6px;}
.mist-detail-content{
  background:#F8FAFC;border-radius:12px;padding:14px 16px;
  font-size:15px;line-height:1.9;color:var(--text-dark);word-break:break-word;
}
.mist-detail-content img{max-width:100%;border-radius:8px;}
.mist-detail-a summary{cursor:pointer;font-weight:700;color:var(--primary);padding:8px 0;font-size:14px;}
/* 2026-10-02 王姐定制:答案/解析分层排版——步骤标题加粗、结论墨绿加粗、关键信息青色、易错红色加粗 */
.mist-ans-step{font-weight:800;color:var(--text-dark);}
.mist-ans-warn{display:block;font-weight:800;color:#dc2626;background:#fef2f2;border-radius:8px;padding:4px 10px;margin:4px 0;}
.mist-ans-concl{display:block;font-weight:800;color:#047857;margin:4px 0;}
.mist-ans-key{color:#0d9488;font-weight:700;}
/* 2026-10-11 王姐定制:答案/解析四板块标题词配色 + 正文缩进排版
   「答案」深绿 #1B5E20 /「方法」橙 #E65100 /「步骤」深蓝 #0D47A1 /「易错」红 #C62828
   标题词后统一全角冒号(同色),冒号后接正文;
   板块内各小项独占一行、左端对齐,相对标题行后退 4em,序号同列对齐 */
.mist-hd{font-weight:800;}
.mist-hd-ans{color:#1B5E20;}
.mist-hd-method{color:#E65100;}
.mist-hd-step{color:#0D47A1;}
.mist-hd-warn{color:#C62828;}
.mist-sec-body{display:block;padding-left:4em;text-align:left;margin:0;}
@media (max-width:640px){
  .mist-sec-body{padding-left:2em;}
}
.mist-detail-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px;}
/* 2026-10-03 王姐定制:详情弹窗「放大」模式——题目在左、解析在右并排大字显示,再点还原 */
/* 2026-10-03 王姐:右上角按钮组——放大在前、关闭(X)在后,两者间隔 1cm;整组固定不随内容滚走 */
.mist-detail-topbtns{
  position:absolute;top:14px;right:14px;z-index:6;
  display:flex;align-items:center;gap:1cm;
}
.mist-detail-topbtns .modal-close{position:static;flex:0 0 auto;}
.mist-zoom-btn{font-size:15px;line-height:1;}
.mist-detail-close{font-size:18px;font-weight:800;line-height:1;}
/* 2026-10-03 王姐:错题编号挪到标题后面(内联小章,不再绝对定位挂在右上角) */
.mist-detail-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.mist-detail-title-row .mist-detail-no{position:static;display:inline-block;}
/* 放大模式下标题栏/按钮固定,只有内容区滚动——✕ 和 ⛶ 始终可见,不会随内容滚走 */
#mistDetail.zoomed .modal-box{display:flex;flex-direction:column;overflow:hidden;}
#mistDetail.zoomed .mist-detail-body{flex:1;overflow-y:auto;min-height:0;}
#mistDetail.zoomed .modal-actions{flex-shrink:0;}
#mistDetail.zoomed .modal-box{width:min(1500px,97vw);max-height:96vh;}
#mistDetail.zoomed .modal-title{font-size:24px;}
/* 2026-10-04 王姐:右侧解析很长时,左侧题目要"跟随滚动条一起走",方便随时看题——
   做法:左栏(题目+题型+标记区)整体一栏 .mist-detail-left,放大模式下 position:sticky 吸顶,
   右侧滚到哪题目都留在视野里;题目本身比可视区还高时,sticky 自动退化成跟着一起滚,
   照样能看全(不会把题目下半截永远挡住)。
   小窗(非放大)模式:左栏容器 display:contents「透明」,靠 order 还原原顺序
   题目→解析→标签→录音→元信息,排版与从前完全一致。 */
.mist-detail-body{display:flex;flex-direction:column;}
.mist-detail-left{display:contents;}
.mist-detail-q{order:0;}
.mist-detail-a{order:1;}
.mist-detail-tags{order:2;}
.mist-detail-audio{order:3;}
.mist-detail-meta{order:4;}
#mistDetail.zoomed .mist-detail-body{display:grid;grid-template-columns:1fr 1fr;column-gap:22px;align-items:start;}
#mistDetail.zoomed .mist-detail-left{
  display:block;grid-column:1;grid-row:1;align-self:start;
  position:sticky;top:0;z-index:2;background:#fff;
}
#mistDetail.zoomed .mist-detail-a{grid-column:2;grid-row:1;margin-bottom:0;}
#mistDetail.zoomed .mist-detail-content{font-size:17px;line-height:2.05;padding:18px 20px;}
#mistDetail.zoomed .mist-detail-a summary{font-size:16px;}
@media (max-width:900px){
  #mistDetail.zoomed .mist-detail-body{display:flex;flex-direction:column;}
  #mistDetail.zoomed .mist-detail-left{position:static;display:contents;background:none;}
  #mistDetail.zoomed .mist-detail-a{margin-bottom:14px;}
}
.mist-detail-audio{margin-bottom:12px;font-size:13px;color:var(--text-mid);}
.mist-detail-audio label{font-weight:700;margin-right:8px;}
.mist-detail-meta{font-size:12px;color:var(--text-light);line-height:2;}
.mist-lv-pick{
  cursor:pointer;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:700;
  background:#F8FAFC;border:1px solid transparent;margin-right:4px;
}
.mist-lv-pick.on{border-color:var(--primary);background:var(--primary-light);color:var(--primary-dark);}
/* 详情顶部题型选择器(王姐红框位置) */
.mist-qtype-top{display:inline-flex;gap:2px;flex-wrap:wrap;}
/* 自动判断回填的「预判态」:虚线边框+浅色,区别于已保存的手动值 */
.mist-lv-pick.guess{border:1px dashed var(--primary);background:transparent;color:var(--text-mid);opacity:.75;}
/* 2026-10-01 王姐:顶部题型被标示出来的项,底色显示蓝色(已存=实心蓝,预判=浅蓝) */
.mist-qtype-top .mist-lv-pick.on{background:var(--primary);border-color:var(--primary);color:#fff;}
.mist-qtype-top .mist-lv-pick.guess{background:var(--primary-light);border:1px dashed var(--primary);color:var(--primary-dark);opacity:1;}

/* 2026-10-03 王姐:详情右下角「确认/关闭」行——放在按钮排(下一题)下面,靠右对齐
   2026-10-04 王姐:两钮间隔拉开到 2cm;10-04 再加固:width:100%+justify-self 确保任何容器下都横跨整行靠右 */
.mist-detail-confirm-row{grid-column:1 / -1;width:100%;justify-self:stretch;display:flex;justify-content:flex-end;gap:2cm;margin-top:4px;}
.mist-detail-confirm-row .btn-primary,.mist-detail-confirm-row .btn-ghost{min-width:96px;}

/* 2026-10-03 王姐:举一反三题的「掌握程度/错因分类」标记区(与详情弹窗同款选择器) */
.mist-sim-mark{
  margin-top:14px;padding:12px 14px;border-radius:12px;
  background:#F8FAFC;border:1px dashed #CBD5E1;
  display:flex;flex-direction:column;gap:8px;
}
.mist-sim-mark-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.mist-sim-mark-label{font-size:12px;font-weight:800;color:var(--text-mid);flex:0 0 auto;}
.mist-sim-mark-tip{font-size:11.5px;color:var(--text-light);line-height:1.6;}

/* 学科管理 */
.mist-subject-list{display:flex;flex-direction:column;gap:8px;margin-bottom:14px;}
.mist-subject-row{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  background:#F8FAFC;border-radius:10px;padding:10px 14px;font-size:14px;font-weight:700;
}
.mist-subject-count{font-size:11px;color:var(--text-light);font-weight:400;}
.mist-add-subject{display:flex;gap:10px;}

/* ============== 通用弹窗 ============== */
.modal-overlay{
  position:fixed;inset:0;background:rgba(15,23,42,.45);
  display:none;align-items:center;justify-content:center;z-index:1200;
  padding:24px;backdrop-filter:blur(4px);
}
.modal-overlay.open{display:flex;}
.modal-box{
  width:min(520px,94vw);max-height:88vh;overflow-y:auto;
  background:white;border-radius:24px;padding:28px;position:relative;
  box-shadow:0 20px 60px rgba(0,0,0,.2);animation:popIn .25s ease;
}
@keyframes popIn{from{opacity:0;transform:scale(.95) translateY(10px);}to{opacity:1;transform:none;}}
.modal-close{
  position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:50%;
  background:#F1F5F9;color:#0F172A;font-size:16px;display:flex;align-items:center;
  justify-content:center;cursor:pointer;transition:all .15s;
}
.modal-close:hover{background:#FEE2E2;color:#DC2626;transform:rotate(90deg);}
.modal-title{font-size:20px;font-weight:800;margin-bottom:16px;color:var(--text-dark);}
/* 2026-10-02 王姐:错题详情右上角显示错题编号(关闭按钮左侧) */
.mist-detail-no{
  position:absolute;top:20px;right:58px;z-index:1;
  background:#F1F5F9;border:1px solid #E2E8F0;border-radius:999px;
  padding:3px 12px;font-size:13px;font-weight:800;color:#475569;
  letter-spacing:.5px;pointer-events:none;
}
.big-char{font-size:96px;text-align:center;font-weight:800;color:var(--text-dark);margin:10px 0;}
.info-block{border-radius:12px;padding:14px;margin-bottom:14px;font-size:14px;line-height:1.8;}
.info-block .ib-title{font-weight:700;margin-bottom:6px;}
.ib-blue{background:var(--primary-light);}
.ib-yellow{background:#FEF3C7;}
.ib-green{background:#DCFCE7;}
.modal-actions{display:flex;justify-content:center;gap:10px;margin-top:18px;flex-wrap:wrap;}

/* ============== 学生信息弹窗 ============== */
.modal-student{text-align:center;}
.student-avatar{
  width:72px;height:72px;border-radius:50%;margin:6px auto 10px;
  background:linear-gradient(135deg,#F472B6,#A78BFA);
  display:flex;align-items:center;justify-content:center;
  color:white;font-size:28px;font-weight:800;
}
.student-name{font-size:20px;font-weight:800;color:var(--text-dark);margin-bottom:16px;}
.student-fields{display:flex;flex-direction:column;gap:10px;text-align:left;}
.student-row{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:#F8FAFC;border-radius:12px;padding:12px 16px;
}
.s-label{font-size:13px;color:var(--text-mid);font-weight:600;flex-shrink:0;}
.student-row input{
  flex:1;text-align:right;font-size:14px;font-weight:700;color:var(--text-dark);
  background:transparent;
}
.s-val{font-size:14px;font-weight:700;color:var(--text-dark);}

/* ============== Toast ============== */
.toast{
  position:fixed;bottom:30px;left:50%;transform:translateX(-50%) translateY(20px);
  padding:12px 24px;background:var(--text-dark);color:white;border-radius:999px;
  font-weight:600;box-shadow:var(--shadow-lg);opacity:0;transition:all .3s;z-index:2000;
  max-width:90vw;text-align:center;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* ============== 响应式 ============== */
@media(max-width:1200px){
  .kpi-row{grid-template-columns:repeat(2,1fr);}
  .dash-3col{grid-template-columns:1fr;}
}
@media(max-width:980px){
  .dash-2col{grid-template-columns:1fr;}
  .checkin-grid{grid-template-columns:1fr;}
  .sub-grid{grid-template-columns:1fr;}
  .content{padding:18px;}
  .topbar{padding:0 14px;}
  .brand-subtitle{display:none;}
  .age-btn{min-width:48px;padding:4px 8px;font-size:11px;}
  .age-sub{display:none;}
}
@media(max-width:768px){
  .menu-btn{display:flex;}
  .sidebar{
    position:fixed;left:0;top:64px;bottom:0;z-index:90;
    transform:translateX(-100%);transition:transform .25s ease;background:white;box-shadow:var(--shadow-lg);
  }
  .sidebar.open{transform:translateX(0);}
  .topbar-right .badge-chip span:not(.bc-count),.topbar-right .user-chip span{display:none;}
  .kpi-row{grid-template-columns:1fr 1fr;gap:12px;}
  .kpi-card{padding:14px;gap:10px;}
  .kpi-icon{width:48px;height:48px;font-size:22px;border-radius:14px;}
  .kpi-val{font-size:22px;}
  .hero-banner{padding:20px;flex-direction:column;align-items:flex-start;gap:14px;}
  .hero-right{text-align:left;}
  .hero-title{font-size:26px;}
  .err-summary{grid-template-columns:1fr 1fr;}
}

/* ============== 高中数学·知识图谱(人教A版2019) ============== */
.mkg-card{padding:20px 22px;}
.mkg-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px;}
.mkg-title{font-size:18px;font-weight:800;color:var(--text-dark);display:flex;align-items:center;gap:8px;}
.mkg-ver{font-size:11px;color:var(--accent-purple);background:#F3E8FF;border-radius:999px;padding:2px 10px;font-weight:700;}
.mkg-booktag{font-size:12px;color:var(--text-mid);background:#F8FAFC;border:1px solid #E2E8F0;border-radius:999px;padding:4px 12px;font-weight:600;}
.mkg-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;}
.mkg-tab{
  display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:12px;cursor:pointer;
  border:1px solid #E2E8F0;background:#F8FAFC;font-size:13px;font-weight:700;color:var(--text-mid);
  transition:all .2s;
}
.mkg-tab:hover{border-color:var(--primary);color:var(--primary);}
.mkg-tab.active{
  background:linear-gradient(135deg,var(--accent-purple),var(--primary));color:#fff;
  border-color:transparent;box-shadow:0 4px 12px rgba(91,141,239,.35);
}
.mkg-tab-ico{font-size:16px;}
.mkg-tab-nm{white-space:nowrap;}
.mkg-list{display:flex;flex-direction:column;gap:8px;}
.mkg-ch{border:1px solid #E2E8F0;border-radius:14px;background:#fff;overflow:hidden;transition:box-shadow .2s;}
.mkg-ch.open{box-shadow:0 6px 18px rgba(91,141,239,.12);border-color:#C7D9FB;}
.mkg-ch-head{
  width:100%;display:flex;align-items:center;gap:12px;padding:13px 16px;cursor:pointer;
  background:linear-gradient(135deg,#F8FAFC,#F1F5F9);border:none;text-align:left;transition:background .2s;
}
.mkg-ch.open .mkg-ch-head{background:linear-gradient(135deg,#EEF4FF,#F5F3FF);}
.mkg-ch-no{flex-shrink:0;font-size:11px;font-weight:800;color:var(--primary-dark);background:#E3EDFF;border-radius:6px;padding:2px 8px;}
.mkg-ch-t{flex:1;font-size:15px;font-weight:800;color:var(--text-dark);}
.mkg-ch-badges{flex-shrink:0;font-size:11px;color:var(--text-light);font-weight:600;display:flex;gap:4px;flex-wrap:wrap;}
.mkg-arrow{color:var(--primary);font-size:12px;flex-shrink:0;}
.mkg-ch-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:12px;border-top:1px dashed #E2E8F0;}
.mkg-sec{background:#F8FAFC;border-radius:12px;padding:12px 14px;}
.mkg-sec-warn{background:#FFF7ED;border:1px dashed #FDBA74;}
.mkg-sec-h{font-size:13px;font-weight:800;color:var(--text-mid);margin-bottom:8px;}
.mkg-sec-warn .mkg-sec-h{color:#C2410C;}
.mkg-ol{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:7px;}
.mkg-ol li{font-size:13px;line-height:1.65;color:var(--text-mid);padding-left:14px;position:relative;}
.mkg-ol li::before{content:"";position:absolute;left:2px;top:9px;width:5px;height:5px;border-radius:50%;background:var(--primary);}
.mkg-sec-warn .mkg-ol li::before{background:#F97316;}
.mkg-ol li b{color:var(--text-dark);margin-right:6px;font-weight:800;}
.mkg-sec-warn .mkg-ol li b{color:#C2410C;}
.mkg-ol li span{color:var(--text-mid);}
.mkg-fs{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;}
.mkg-f{background:linear-gradient(135deg,#EEF4FF,#F5F3FF);border:1px solid rgba(91,141,239,.15);border-radius:10px;padding:9px 12px;}
.mkg-f-f{font-size:14px;font-weight:800;color:var(--text-dark);font-family:Consolas,"Cambria Math","Times New Roman",serif;letter-spacing:.2px;}
.mkg-f-n{font-size:11px;color:var(--text-light);margin-top:3px;font-weight:600;}
.mkg-none{color:#CBD5E1;}
@media(max-width:768px){
  .mkg-tab-nm{font-size:12px;}
  .mkg-ch-t{font-size:14px;}
  .mkg-ch-badges{display:none;}
  .mkg-fs{grid-template-columns:1fr 1fr;}
}

/* ============== 口算折叠卡片 ============== */
.calc-collapse{padding:0;overflow:hidden;}
.calc-collapse[open]{padding:0;}
.calc-collapse > *:not(summary){padding:0 24px 20px;}
.calc-collapse > .calc-toolbar:not(summary){padding-top:14px;}
.calc-summary{
  display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none;
  padding:16px 24px;font-size:15px;font-weight:800;color:var(--text-dark);user-select:none;
}
.calc-summary::-webkit-details-marker{display:none;}
.calc-summary::after{content:"▼";margin-left:auto;font-size:11px;color:var(--primary);transition:transform .2s;}
.calc-collapse[open] .calc-summary::after{transform:rotate(180deg);}
.calc-summary-ico{font-size:18px;}
.calc-summary-tip{font-size:11px;font-weight:600;color:var(--text-light);background:#F1F5F9;border-radius:999px;padding:2px 10px;margin-left:2px;}

/* ============== 高中数学图谱 · 新版(教材/章节下拉 + 5 板块) ============== */
.mkg-pick{display:flex;flex-direction:row;gap:12px;margin:6px 0 14px;background:#F8FAFC;border:1px solid #E2E8F0;border-radius:12px;padding:12px 16px;flex-wrap:wrap;}
.mkg-pick-row{display:flex;align-items:center;gap:8px;flex:1;min-width:260px;background:#fff;border:1px solid #E2E8F0;border-radius:10px;padding:6px 10px;}
.mkg-pick-ico{font-size:16px;flex-shrink:0;}
.mkg-pick-lbl{font-size:12px;font-weight:800;color:var(--text-mid);min-width:34px;letter-spacing:.5px;flex-shrink:0;}
.mkg-pick-row .mkg-select{flex:1;min-width:140px;border:none;background:transparent;font-size:13px;}
.mkg-select{
  min-width:230px;padding:9px 12px;border-radius:10px;border:1px solid #CBD5E1;background:#fff;
  font-size:14px;font-weight:700;color:var(--text-dark);cursor:pointer;transition:border-color .2s;
}
.mkg-select:hover,.mkg-select:focus{border-color:var(--primary);outline:none;}
.mkg-btabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;}
.mkg-btab{
  padding:9px 14px;border-radius:999px;cursor:pointer;font-size:12px;font-weight:800;
  border:1px solid #E2E8F0;background:#fff;color:var(--text-mid);transition:all .2s;white-space:nowrap;
}
.mkg-btab:hover{border-color:var(--primary);color:var(--primary);}
.mkg-btab.active{
  background:linear-gradient(135deg,var(--accent-purple),var(--primary));color:#fff;
  border-color:transparent;box-shadow:0 4px 12px rgba(91,141,239,.35);
}
.mkg-body{display:flex;flex-direction:column;gap:12px;}
.mkg-sec-h{display:flex;align-items:center;gap:8px;justify-content:space-between;font-size:13px;font-weight:800;color:var(--text-mid);margin-bottom:8px;}
.mkg-sec-warn .mkg-sec-h{color:#C2410C;}
.mkg-cnt{font-size:11px;color:var(--text-light);background:#E2E8F0;border-radius:999px;padding:1px 8px;font-weight:800;}
.mkg-sec-warn .mkg-cnt{background:#FED7AA;color:#9A3412;}
/* 高考真题 */
.mkg-zt{background:#F0FDF4;border:1px solid #BBF7D0;border-radius:12px;padding:12px 14px;line-height:1.6;}
.mkg-zt-q b{color:var(--accent-green);margin-right:8px;}
.mkg-zt-q span:not(.katex):not(.katex *){font-weight:800;color:var(--text-dark);font-size:14px;}
/* 2026-09-26 王姐反馈:幂指数与底数字号不协调——排除 KaTeX 公式,使底数用正文字号、上下标按 0.7em 自动成比例 */
.mkg-zt-q .katex{font-size:16px;font-weight:normal;}
.mkg-zt-row{display:flex;gap:8px;font-size:13px;color:var(--text-mid);margin-top:6px;}
.mkg-zt-lbl{flex-shrink:0;font-weight:800;color:#15803D;font-size:12px;padding-top:1px;}
/* 高考真题:答案折叠 + 举一反三(2026-09-16 用户定制) */
.mkg-ans-box{margin-top:8px;padding:10px 12px;background:#FFFFFF;border:1px dashed #86EFAC;border-radius:10px;font-size:13px;color:var(--text-dark);line-height:1.7;}
.mkg-ans-btn{margin-top:6px;padding:1px 4px;border-radius:999px;border:1px solid #86EFAC;background:#FFFFFF;color:#15803D;font-size:9px;font-weight:700;cursor:pointer;transition:all .2s;}
.mkg-ans-btn:hover{background:#15803D;color:#FFFFFF;}
.mkg-yst{margin-top:10px;border-top:1px dashed #86EFAC;padding-top:8px;}
.mkg-yst-h{font-weight:800;color:#7C3AED;font-size:13px;margin-bottom:6px;}
.mkg-yst-item{background:#FAF5FF;border:1px solid #DDD6FE;border-radius:10px;padding:10px 12px;margin-top:6px;}
.mkg-yst-item .mkg-zt-q b{color:#7C3AED;}
/* 高考真题:勾选打印(2026-09-16 用户定制) */
.mkg-print-btn{padding:6px 18px;border-radius:999px;border:none;background:linear-gradient(135deg,#5B8DEF,#A78BFA);color:#FFF;font-size:13px;font-weight:800;cursor:pointer;box-shadow:0 2px 8px rgba(91,141,239,.35);transition:all .2s;flex-shrink:0;}
.mkg-print-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(91,141,239,.45);}
.mkg-print-btn2{background:#FFFFFF;color:#5B8DEF;border:2px solid #5B8DEF;box-shadow:none;}
.mkg-print-btn2:hover{background:#EEF4FF;box-shadow:0 2px 8px rgba(91,141,239,.25);}
.mkg-print-ck{display:inline-flex;align-items:center;margin-right:6px;cursor:pointer;flex-shrink:0;}
.mkg-print-ck input{width:16px;height:16px;accent-color:#5B8DEF;cursor:pointer;}
/* 列表勾选框布局适配 + 设问同行小字 */
.mkg-ol li{display:flex;align-items:flex-start;gap:6px;}
.mkg-ol li .mkg-print-ck{padding-top:2px;}
.mkg-ol li b{flex-shrink:0;margin-right:4px;}
.mkg-f{display:flex;align-items:flex-start;gap:8px;}
.mkg-f .mkg-f-w{flex:1;}
.mkg-zt-ask{font-size:12px;color:#94A3B8;font-weight:400;margin-left:10em;}
.mkg-zt-src{float:right;font-size:11px;color:#94A3B8;font-weight:400;margin-left:10em;}
.mkg-zt-q .mkg-zt-ask{color:#94A3B8!important;font-weight:400!important;}
.mkg-zt-q .mkg-zt-src{color:#94A3B8!important;font-weight:400!important;font-size:11px!important;}
/* 选择题选项排版(2026-09-16 用户定制):A B / C D 两行两列,字母与答案紧挨,选项间留3字间隔 */
.mkg-opts{display:grid;grid-template-columns:1fr 1fr;column-gap:3em;row-gap:8px;margin-top:6px;}
/* 2026-10-14 王姐:完形填空等短选项(单词级),ABCD 四个同一行拉开间距 */
.mkg-opts-1row{grid-template-columns:repeat(4,auto);justify-content:start;column-gap:2.5em;}
/* 2026-10-14 王姐定英语专用排版:阅读/七选五两列(AB/CD/EF),完形四列均分铺满整行 */
.mkg-eng-c2{grid-template-columns:1fr 1fr;}
.mkg-eng-c4{grid-template-columns:repeat(4,1fr);column-gap:1em;}
/* 2026-10-14 王姐:完形填空 题号与 ABCD 选项同一行;行距列距适当拉近但不贴死 */
.mkg-eng-row4{display:flex;align-items:baseline;column-gap:1.2em;margin:3px 0;}
.mkg-eng-no{flex:0 0 auto;}
.mkg-eng-row4 .mkg-opts{flex:1;margin-top:0;}
.mkg-opt{display:flex;align-items:baseline;min-width:0;}
.mkg-opt-letter{font-size:1.5em!important;font-weight:700!important;line-height:1;margin-right:4px;flex-shrink:0;}
.mkg-opt-text{flex:1;min-width:0;word-break:break-word;}
/* 选择题空括号可填写(2026-09-20 用户定制) */
.mkg-blank{display:inline-flex;min-width:46px;height:28px;align-items:center;justify-content:center;margin:0 4px;padding:0 8px;border:1.5px dashed #94A3B8;border-radius:6px;background:#F8FAFC;color:#0F172A;font-weight:700;font-size:1em;cursor:pointer;vertical-align:middle;position:relative;user-select:none;}
.mkg-blank:hover{border-color:#5B8DEF;background:#EFF6FF;}
.mkg-blank.open{border-color:#5B8DEF;background:#EFF6FF;}
.mkg-blank-pop{display:inline-flex;gap:3px;align-items:center;}
.mkg-blank-op{min-width:26px;height:26px;padding:0 4px;border-radius:6px;border:1px solid #5B8DEF;background:#FFFFFF;color:#1D4ED8;font-weight:700;font-size:13px;cursor:pointer;line-height:1;}
.mkg-blank-op:hover{background:#2563EB;color:#fff;}
.mkg-blank-clr{min-width:22px;height:26px;padding:0 4px;border-radius:6px;border:1px solid #E2E8F0;background:#FFFFFF;color:#94A3B8;font-size:13px;cursor:pointer;line-height:1;}
@media print{.mkg-blank{border:1px solid #999;background:#fff;color:#000;}}
/* 提示标签红粗体(2026-09-20 用户定制):命题意图/解题思路 */
.mkg-klabel{color:#DC2626;font-weight:700;}
/* 解析内表格(2026-09-27 王姐定制:解题思路里的分布表) */
.mkg-ans-box table.mkg-ktable{border-collapse:collapse;margin:8px auto;font-size:12.5px;}
.mkg-ans-box table.mkg-ktable th,.mkg-ans-box table.mkg-ktable td{border:1px solid #CBD5E1;padding:3px 10px;text-align:center;}
.mkg-ans-box table.mkg-ktable td:first-child,.mkg-ans-box table.mkg-ktable th:first-child{background:#F1F5F9;font-weight:600;}
/* 来源右下角靠边(2026-09-16 用户定制):灰色小字右对齐 */
.mkg-src-br{margin-top:8px;text-align:right;font-size:11px;color:#94A3B8;font-weight:400;line-height:1.4;}
/* 2026-10-02 错题编号反写(王姐定制):错数>0 的题在右下角、来源上方显示错题本编号 */
.mkg-mistno-br{margin-top:6px;text-align:right;font-size:11px;font-weight:700;color:#DC2626;line-height:1.4;}
/* 真题/变式 配图尺寸(2026-09-20 用户定制):题面截图缩小到50%、解析截图25%、大题整题图保持全宽;字体视觉大小与题目文字相近 */
.mkg-zt-imgbox{margin:8px 0 4px;}
.mkg-zt-imgbox img{max-width:50%;max-height:none;display:block;border:1px solid #E2E8F0;border-radius:8px;}
.mkg-zt-imgbox.mkg-bigimg img{max-width:100%;}
.mkg-zt-imgbox.mkg-kimgbox img{max-width:25%;}
.mkg-yst-item .mkg-zt-imgbox img{max-height:none;}
/* 真题对错统计按钮(2026-09-16 用户定制) */
.mkg-stat-wrap{display:inline-flex;gap:6px;margin-left:10em;vertical-align:middle;flex-wrap:wrap;}
.mkg-stat-item{display:inline-flex;gap:2px;align-items:center;}
.mkg-stat-mini{width:13px;height:13px;line-height:11px;padding:0;border-radius:50%;border:1px solid #CBD5E1;background:#F8FAFC;color:#475569;font-size:9px;font-weight:800;cursor:pointer;text-align:center;}
.mkg-stat-mini:active{transform:scale(.9);}
.mkg-stat-mini:hover{background:#E2E8F0;color:#0F172A;}
.mkg-stat-btn{padding:1px 3px;border-radius:999px;border:1px solid #CBD5E1;background:#FFFFFF;font-size:9px;font-weight:700;cursor:pointer;transition:all .15s;}
.mkg-stat-btn:active{transform:scale(.94);}
.mkg-stat-btn.st-ok{color:#15803D;border-color:#86EFAC;background:#F0FDF4;}
.mkg-stat-btn.st-fuzzy{color:#D97706;border-color:#FCD34D;background:#FFFBEB;}
.mkg-stat-btn.st-wrong{color:#DC2626;border-color:#FCA5A5;background:#FEF2F2;}
/* 大类全选(2026-09-16 用户定制) */
.mkg-sec-all{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;color:#5B8DEF;cursor:pointer;white-space:nowrap;}
.mkg-sec-all input{width:15px;height:15px;accent-color:#5B8DEF;cursor:pointer;}
.mkg-all-bar{margin-bottom:8px;}
/* 错题集 */
.mkg-empty{background:#FFF7ED;border:1px dashed #FDBA74;border-radius:12px;padding:16px;font-size:13px;color:#9A3412;line-height:1.7;}
.mkg-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px;}
.mkg-wrong{display:flex;flex-direction:column;gap:8px;}
.mkg-w{background:#fff;border:1px solid #E2E8F0;border-radius:10px;padding:10px 12px;}
.mkg-w-head{display:flex;align-items:center;gap:8px;margin-bottom:5px;}
.mkg-w-lv{font-size:11px;font-weight:800;border-radius:999px;padding:1px 9px;}
.mkg-w-lv.red{background:#FEE2E2;color:#DC2626;}
.mkg-w-lv.yellow{background:#FEF3C7;color:#B45309;}
.mkg-w-lv.green{background:#D1FAE5;color:#047857;}
.mkg-w-time{font-size:11px;color:var(--text-light);margin-left:auto;}
.mkg-w-q{font-size:13px;color:var(--text-dark);line-height:1.6;}
.mkg-w-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px;}
.mkg-w-tags span{font-size:11px;color:var(--accent-purple);background:#F5F3FF;border-radius:6px;padding:1px 8px;font-weight:600;}

/* ============== 侧边栏折叠组(地史政生) ============== */
.nav-group{display:flex;flex-direction:column;}
.nav-group-btn{justify-content:flex-start;}
.nav-group-btn .nav-caret{margin-left:auto;font-size:10px;color:var(--text-light);transition:transform .2s;}
.nav-group.open .nav-group-btn .nav-caret{color:var(--primary);}
.nav-sub{display:flex;flex-direction:column;gap:2px;margin:2px 0 6px;padding-left:10px;border-left:2px solid rgba(91,141,239,.25);margin-left:22px;}
.nav-sub-item{font-size:13.5px;padding:9px 12px;color:var(--text-light);}
.nav-sub-item .ico{font-size:15px;}
.nav-sub-item.active{font-size:13.5px;}
.nav-name{line-height:1.35;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* ============== 英语视图顶部模式切换(每日单词/句子练习) ============== */
.eng-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:0 0 14px;}
.eng-head-txt{min-width:0;transform:translateY(-0.5cm);}
.eng-tabs{display:flex;gap:8px;margin:0;background:#F8FAFC;border:1px solid #E2E8F0;border-radius:14px;padding:6px;width:fit-content;max-width:100%;flex-shrink:0;transform:translateY(-1cm);}
.eng-tab{
  padding:9px 20px;border-radius:10px;cursor:pointer;font-size:14px;font-weight:800;
  border:none;background:transparent;color:var(--text-mid);transition:all .2s;white-space:nowrap;
}
.eng-tab:hover{color:var(--primary);}
.eng-tab.active{background:linear-gradient(135deg,var(--accent-purple),var(--primary));color:#fff;box-shadow:0 4px 12px rgba(91,141,239,.35);}
.eng-panel{transform:translateY(-0.8cm);}
.eng-panel .sub-grid{align-items:stretch;}
.eng-panel .eb-card{display:flex;flex-direction:column;}
/* 2026-10-09 王姐定制:原来这里有一条 `.eng-panel .eb-overview + div{flex:1;}`,把学习区(ebStudy)
   撑满整张卡片 —— 于是「上一个/下一个/再来一组」被顶到卡片最底部,右侧词库一变长/换行就跟着下沉。
   去掉这条撑高后,学习区按内容自然高度排列,三个导航按钮固定在标题下方,与右侧内容彻底解耦。 */
@media(max-width:760px){
  .eng-head{flex-direction:column;align-items:stretch;}
  .eng-tabs{width:100%;}
  .eng-tab{flex:1;text-align:center;padding:10px 8px;font-size:13px;}
}

/* ============== 错题详情底部按钮(6 个紧凑等宽) ============== */
#mistDetailActions{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;padding:12px 18px;}
#mistDetailActions .btn-accent,#mistDetailActions .btn-ghost,#mistDetailActions .btn-primary{
  padding:8px 6px;font-size:12.5px;border-radius:10px;min-width:0;line-height:1.25;
  display:flex;align-items:center;justify-content:center;gap:4px;white-space:nowrap;
}
@media(max-width:780px){
  #mistDetailActions{grid-template-columns:repeat(3,1fr);}
}
@media(max-width:420px){
  #mistDetailActions{grid-template-columns:repeat(2,1fr);}
}

/* ============== 举一反三弹窗 ============== */
.mist-similar-box{max-width:780px;}
#mistSimilarModal .modal-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.mist-similar-ico{font-size:22px;}
.mist-similar-prog{
  margin-left:auto;background:#F1F5F9;border:1px solid #E2E8F0;border-radius:999px;
  padding:3px 12px;font-size:12px;font-weight:700;color:var(--text-mid);
}
.mist-similar-body{display:flex;flex-direction:column;gap:12px;padding:16px 18px 4px;}
.mist-sim-card{
  background:linear-gradient(135deg,#EEF4FF,#F5F3FF);border:1px solid rgba(91,141,239,.15);
  border-radius:14px;padding:16px 18px;line-height:1.65;
}
.mist-sim-type{
  display:inline-block;font-size:11px;font-weight:800;border-radius:6px;
  padding:2px 9px;background:#5B8DEF;color:#fff;letter-spacing:.5px;
}
.mist-sim-type.solve{background:#F59E0B;}
.mist-sim-src{
  display:inline-block;font-size:11px;font-weight:600;border-radius:6px;
  padding:2px 9px;background:rgba(91,141,239,.1);color:#5B8DEF;letter-spacing:.3px;
  margin-left:6px;vertical-align:1px;
}
/* 2026-10-03:题源来自网络检索补充题库时,用绿色徽章区分(本地题库是蓝色) */
.mist-sim-src.web-src{background:rgba(16,185,129,.12);color:#0F9D58;}
/* 2026-10-03:推不出非重复类似题时的空态 —— 明确写「暂无合适类似题」,不拿重复题填空 */
.mist-sim-empty{
  text-align:center;padding:26px 18px 20px;background:#F8FAFC;
  border:1px dashed #CBD5E1;border-radius:14px;
}
.mist-sim-empty-ico{font-size:38px;line-height:1;opacity:.75;}
.mist-sim-empty-t{font-size:16px;font-weight:800;color:var(--text-dark);margin:10px 0 8px;}
.mist-sim-empty-d{font-size:13px;color:var(--text-mid);line-height:1.85;}
.mist-sim-empty-d b{color:var(--accent-red);font-weight:800;}
.mist-sim-empty-tip{
  margin-top:12px;font-size:12px;color:var(--text-light);line-height:1.7;
  background:#fff;border:1px solid #E2E8F0;border-radius:10px;padding:8px 12px;text-align:left;
}
.mist-sim-q{font-size:15px;font-weight:600;color:var(--text-dark);margin-top:8px;white-space:pre-wrap;line-height:1.7;}
.mist-sim-opts{display:flex;flex-direction:column;gap:8px;margin-top:12px;}
.mist-sim-opt{
  display:flex;align-items:flex-start;gap:10px;padding:10px 14px;
  background:#fff;border:1px solid #E2E8F0;border-radius:10px;
  cursor:pointer;transition:all .2s;font-size:14px;text-align:left;line-height:1.5;
}
.mist-sim-opt:hover{border-color:var(--primary);background:#F8FAFC;}
.mist-sim-opt.correct{border-color:#34D399;background:#D1FAE5;}
.mist-sim-opt.wrong{border-color:#F87171;background:#FEE2E2;}
.mist-sim-opt.disabled{cursor:default;opacity:.85;}
.mist-sim-opt .opt-mark{
  flex-shrink:0;width:22px;height:22px;border-radius:50%;
  background:#EEF4FF;color:var(--primary);font-weight:800;display:flex;align-items:center;justify-content:center;font-size:12px;
}
.mist-sim-opt.correct .opt-mark{background:#34D399;color:#fff;}
.mist-sim-opt.wrong .opt-mark{background:#F87171;color:#fff;}
.mist-sim-upload{
  margin-top:12px;background:#F8FAFC;border:2px dashed #CBD5E1;border-radius:12px;
  padding:16px;text-align:center;cursor:pointer;transition:all .2s;
}
.mist-sim-upload:hover{border-color:var(--primary);background:#EEF4FF;}
.mist-sim-upload input{display:none;}
.mist-sim-upload-icon{font-size:28px;display:block;margin-bottom:6px;}
.mist-sim-upload-tip{font-size:12px;color:var(--text-light);}
.mist-sim-thumb{display:flex;align-items:center;gap:8px;margin-top:10px;background:#fff;border:1px solid #E2E8F0;border-radius:10px;padding:8px 10px;font-size:12px;}
.mist-sim-thumb img{height:48px;border-radius:6px;object-fit:cover;}
.mist-sim-thumb .del{cursor:pointer;color:var(--accent-red);margin-left:auto;font-weight:700;}
.mist-sim-answer{
  background:#F0FDF4;border:1px solid #BBF7D0;border-radius:12px;
  padding:14px 16px;font-size:13.5px;line-height:1.7;color:#064E3B;
}
.mist-sim-answer b{color:#0F766E;}
.mist-sim-feedback{
  padding:8px 14px;border-radius:10px;font-size:13.5px;font-weight:700;
  margin-top:10px;
}
.mist-sim-feedback.right{background:#D1FAE5;color:#047857;}
.mist-sim-feedback.wrong{background:#FEE2E2;color:#B91C1C;}
/* 2026-10-01:题库未标注答案时不判对错——已选项中性蓝灰标记,提示对照解析自查 */
.mist-sim-feedback.neutral{background:#E0F2FE;color:#3B6FE0;}
.mist-sim-opt.picked{border-color:#93B4F5;background:#EFF5FF;}
.mist-sim-opt.picked .opt-mark{background:#5B8DEF;color:#fff;}

#mistSimilarActions{
  display:grid;grid-template-columns:1fr auto 1fr;gap:8px;padding:14px 18px 16px;
  border-top:1px solid #E2E8F0;background:#F8FAFC;
}
#mistSimilarActions button{padding:9px 14px;font-size:13px;border-radius:10px;min-width:0;}
#mistSimilarActions .btn-primary{font-weight:800;}
#mistSimAnswerBtn{min-width:130px;}

@media(max-width:560px){
  #mistSimilarActions{grid-template-columns:1fr 1fr;}
  #mistSimAnswerBtn{grid-column:span 2;}
}

/* ============== 错题录入 · 错误分析红框(语音识别结果) ============== */
.mist-rec{display:flex;flex-wrap:wrap;align-items:center;gap:8px;}
.mist-error-analysis{
  width:100%;margin-top:10px;background:#FFF5F5;
  border:2px solid #ef4444;border-radius:10px;padding:10px 12px;
  box-shadow:inset 0 0 0 1px rgba(239,68,68,.1);
}
.mist-error-analysis:focus-within{border-color:#dc2626;box-shadow:0 0 0 3px rgba(239,68,68,.15);}
.mist-ea-label{display:block;font-size:12px;font-weight:700;color:#991b1b;margin-bottom:6px;letter-spacing:.3px;}
.mist-error-analysis textarea{
  width:100%;min-height:84px;max-height:200px;border:none;background:transparent;
  resize:vertical;font-size:13px;line-height:1.65;color:#1f2937;
  font-family:inherit;outline:none;
}
.mist-error-analysis textarea::placeholder{color:#fca5a5;font-style:italic;}
#mistSpeechBtn.recording{
  background:linear-gradient(135deg,#dc2626,#b91c1c)!important;color:#fff!important;
  border-color:#dc2626!important;animation:pulse-rec 1.2s ease-in-out infinite;
}
@keyframes pulse-rec{
  0%,100%{box-shadow:0 0 0 0 rgba(220,38,38,.6);}
  50%{box-shadow:0 0 0 6px rgba(220,38,38,0);}
}

/* ============== 每日单词 KPI(renderEbOverview) ============== */
/* 2026-10-08 王姐定制:六项统计同排一行、等宽等高、不换行 */
.eb-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:12px;}
.eb-kpi{
  background:linear-gradient(135deg,#EEF4FF,#F5F3FF);border:1px solid rgba(91,141,239,.15);
  border-radius:12px;padding:10px 4px;text-align:center;
  display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px;
  min-height:64px;box-sizing:border-box;overflow:hidden;
}
.eb-kpi b{display:block;font-size:20px;font-weight:800;color:var(--primary-dark, #3b5bdb);font-variant-numeric:tabular-nums;line-height:1.15;}
.eb-kpi span{font-size:10.5px;color:#64748B;font-weight:600;white-space:nowrap;line-height:1.3;}
@media(max-width:640px){
  .eb-kpis{grid-template-columns:repeat(6,1fr);gap:5px;}
  .eb-kpi{padding:7px 2px;min-height:54px;border-radius:10px;}
  .eb-kpi b{font-size:15px;}
  .eb-kpi span{font-size:8.5px;}
}
/* 2026-10-10 王姐定制:六个统计格子可点 → 打开该分类单词清单(勾选导出 / 打印)。
   只加 cursor / hover 反馈,不动原有配色与尺寸。 */
.eb-kpi{cursor:pointer;position:relative;transition:box-shadow .18s,border-color .18s,transform .18s;}
.eb-kpi::after{
  content:"›";position:absolute;top:3px;right:7px;
  font-size:14px;font-weight:800;color:#A5B4FC;opacity:0;transition:opacity .18s;
}
.eb-kpi:hover{border-color:#93C5FD;box-shadow:0 3px 12px rgba(79,124,255,.18);transform:translateY(-1px);}
.eb-kpi:hover::after{opacity:1;}
.eb-kpi:active{transform:translateY(0);box-shadow:0 1px 4px rgba(79,124,255,.16);}

/* ===== 统计格子 → 分类单词清单弹窗(2026-10-10) ===== */
.ebs-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px;}
.ebs-cnt{font-size:13px;color:var(--text-mid);font-weight:700;}
.ebs-cnt b{color:var(--primary-dark,#3b5bdb);font-variant-numeric:tabular-nums;}
.ebs-tools{display:flex;gap:8px;flex-wrap:wrap;}
.ebs-list{
  max-height:52vh;overflow:auto;padding:4px 8px;
  border:1px solid #E2E8F0;border-radius:12px;background:#fff;
}
.ebs-row{display:flex;align-items:center;gap:8px;padding:6px 4px;border-bottom:1px dashed #EEF2F7;}
.ebs-row:last-child{border-bottom:none;}
.ebs-row:hover{background:#F3F7FF;}
.ebs-row.on{background:#DBEAFE;}
.ebs-w{
  min-width:104px;font-size:14px;font-weight:800;color:var(--text-dark);
  cursor:pointer;flex:0 0 auto;
  display:flex;flex-direction:column;gap:1px;
}
.ebs-w:hover{color:var(--primary);text-decoration:underline;}
/* 2026-10-10:音标跟在单词正下方(短语等无音标时自动为空,不占高度) */
.ebs-ipa{
  font-size:11px;font-weight:600;color:#7C8DA6;line-height:1.3;
  letter-spacing:0;white-space:normal;word-break:break-word;
}
.ebs-ipa:empty{display:none;}
.ebs-def{
  flex:1;min-width:0;font-size:12.5px;color:#475569;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.ebs-st{flex:0 0 auto;font-size:11.5px;color:#64748B;white-space:nowrap;}
@media(max-width:640px){
  .ebs-ipa{display:none;}
  .ebs-w{min-width:78px;font-size:13px;}
  .ebs-row .word-pick{margin-right:2px;}
}

/* ============== 句子练习 · 翻译/语法查看按钮与展开框 ============== */
.sent-view-box{
  background:#FFF7ED;border:1px dashed #FDBA74;border-radius:12px;
  padding:12px 16px;margin-top:12px;font-size:14px;line-height:1.8;
  color:#7C2D12;text-align:left;
}
.sent-gram-box{background:#F5F3FF;border-color:#C4B5FD;color:#4C1D95;}
/* 2026-10-10 王姐定制:「参考翻译」这 4 个字用深蓝粗体(前面的 ✅ 与后面的译文保持原样) */
.sent-view-box .sent-zh-lab{color:#1E3A8A;font-weight:900;}
/* 2026-10-10 王姐定制:语法界面常常很长 —— 限高后在**它自己内部**滚动:
   overflow-y:auto 让内容短时不出现滚动条、长时才出现;
   overscroll-behavior:contain 让滚到头也不带动外层页面(这就是"只在语法界面滚动")。
   外层页面只需滚到语法区顶部即可 —— 见 app.js 的 sentScrollToGram。 */
.sent-gram-box{
  max-height:70vh;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}

/* ============== 结构解码 · 词/标注对号入座（2026-10-09 王姐定制 v5）==============
   王姐要求：「每个词的词性、成分标注必须精确位于该词的正下方，逐词一一对应」
   +「句子的成份（汉语）要和上面的英文居中对齐，方便学习者对号入座」。

   v5 为什么不再用「空格凑网格」：英文行 15px、标签行 13px，浏览器里
   1 个汉字 ≠ 2 个英文格（实测 Consolas 15px 格宽 8.25px，13px 汉字 13px
   = 1.58 格；宋体 15px 也才 1.82 格），按 2 格算的列位会越往右越偏。
   现在改为「词+标注」inline-block 单元，标注在单元内 text-align:center 居中，
   由浏览器按真实字体排版 → 任何字体/字号/缩放下都不会错位。 */
.sent-gram-box .sd-title{font-weight:800;font-size:13.5px;color:#5B21B6;margin-bottom:8px;}
.sent-gram-box .sd-raw{white-space:pre-wrap;font-size:13.5px;line-height:1.9;}
.sent-gram-box .sd-body{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.sent-gram-box .sd-row{
  margin:0 0 10px 0;white-space:nowrap;letter-spacing:0;
}
.sent-gram-box .sd-row:last-child{margin-bottom:0;}
/* 每个「词 + 其下方标注」是一个单元；标注在单元内居中 = 对齐词的中心 */
.sent-gram-box .sd-row .sd-u{
  display:inline-block;text-align:center;vertical-align:top;
  margin-right:16px;
}
.sent-gram-box .sd-row .sd-u:last-child{margin-right:0;}
.sent-gram-box .sd-row .sd-u .sd-en,
.sent-gram-box .sd-row .sd-u .sd-lab{
  display:block;white-space:pre;
  font-family:Consolas,"Courier New","DejaVu Sans Mono",
    "Noto Sans Mono CJK SC","Microsoft YaHei",monospace;
  font-style:normal;font-weight:700;letter-spacing:0;
}
.sent-gram-box .sd-row .sd-u .sd-en{color:#312E81;font-size:15px;line-height:1.55;}
.sent-gram-box .sd-row .sd-u .sd-lab{color:#7C3AED;font-size:13px;line-height:1.5;margin-top:1px;}
.sent-gram-box .sd-row .sd-u .sd-lab:empty{display:none;}
/* ◎ 子块（宾语从句 / 定语从句 …） */
.sent-gram-box .sd-sub{margin:14px 0 0 0;padding:9px 13px 11px;border-left:3px solid #A78BFA;background:rgba(255,255,255,.6);border-radius:0 8px 8px 0;}
.sent-gram-box .sd-sub-h{font-weight:800;font-size:12.5px;color:#6D28D9;margin-bottom:8px;letter-spacing:.2px;}
/* ===== 难点突破（2026-10-08 王姐要求：加在结构解码下面）=====
   数据逐字照抄自原书【难点突破】板块；原书没有该板块的句子不渲染。 */
.sent-gram-box .sd-nd{
  margin:18px 0 0 0;padding:11px 14px 13px;
  border-left:3px solid #F59E0B;background:rgba(255,251,235,.85);
  border-radius:0 8px 8px 0;
}
.sent-gram-box .sd-nd-h{font-weight:800;font-size:13px;color:#B45309;margin-bottom:7px;letter-spacing:.2px;}
.sent-gram-box .sd-nd-b{font-size:13.5px;line-height:1.95;color:#78350F;text-align:left;word-break:break-word;}
.sent-gram-box .sd-nd-b .nd-tag{
  display:inline-block;padding:0 6px;margin:0 2px;border-radius:4px;
  background:#FDE68A;color:#92400E;font-size:12.5px;font-weight:800;
}
/* ===== 《新东方作文100句》· 查看语法（2026-10-10 王姐定制）=====
   原书四个板块:1 句句真解  2 词句积累  3 使用场景  4 举一反三 */
.sent-gram-box .zw-sec{margin:0 0 16px 0;}
.sent-gram-box .zw-sec:last-child{margin-bottom:0;}
.sent-gram-box .zw-sec-h{
  display:inline-block;padding:3px 12px;margin-bottom:9px;border-radius:6px;
  background:linear-gradient(90deg,#4C1D95,#6D28D9);color:#fff;
  font-size:12.5px;font-weight:800;letter-spacing:.4px;
}
.sent-gram-box .zw-qy{font-size:13.5px;line-height:1.9;color:#312E81;word-break:break-word;}
.sent-gram-box .zw-qy b{color:#6D28D9;margin-right:4px;}
.sent-gram-box .zw-words{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px 18px;margin-top:9px;
}
.sent-gram-box .zw-w{font-size:13px;line-height:1.7;color:#334155;word-break:break-word;}
.sent-gram-box .zw-scene{font-size:13.5px;line-height:1.95;color:#334155;word-break:break-word;}
.sent-gram-box .zw-ex{margin-top:2px;}
.sent-gram-box .zw-ex-i{
  padding:8px 12px;margin-bottom:8px;border-radius:8px;
  background:rgba(255,255,255,.75);border-left:3px solid #A78BFA;
}
.sent-gram-box .zw-ex-i:last-child{margin-bottom:0;}
.sent-gram-box .zw-ex-en{font-size:13.5px;line-height:1.7;color:#312E81;font-weight:600;word-break:break-word;}
.sent-gram-box .zw-ex-zh{font-size:13px;line-height:1.7;color:#475569;margin-top:3px;word-break:break-word;}
.sent-gram-box .zw-ex-tag{
  display:inline-block;margin-left:6px;padding:0 6px;border-radius:4px;
  background:#FDE68A;color:#92400E;font-size:11.5px;font-weight:800;
}
@media (max-width:560px){
  .sent-gram-box .sd-row .sd-u{margin-right:12px;}
  .sent-gram-box .sd-row .sd-u .sd-en{font-size:13.5px;}
  .sent-gram-box .sd-row .sd-u .sd-lab{font-size:12px;}
  .sent-gram-box .sd-nd-b{font-size:12.5px;}
  .sent-gram-box .zw-words{grid-template-columns:1fr;}
  .sent-gram-box .zw-ex-en{font-size:12.5px;}
  .sent-gram-box .zw-ex-zh{font-size:12px;}
  .sent-gram-box .zw-qy{font-size:12.5px;}
  .sent-gram-box .zw-scene{font-size:12.5px;}
}
.sent-view-btns{display:flex;gap:10px;justify-content:center;margin-top:12px;}
.sent-view-btn{
  padding:7px 16px;border-radius:999px;border:1px solid #CBD5E1;background:#fff;
  font-size:12.5px;font-weight:700;color:var(--text-mid);cursor:pointer;transition:all .2s;
}
.sent-view-btn:hover{border-color:var(--primary);color:var(--primary);}
.sent-view-btn.on{background:linear-gradient(135deg,#EEF4FF,#F5F3FF);border-color:var(--primary);color:var(--primary);}

/* ============== 学习词库 · 错词标记 ============== */
.word-cell{position:relative;}
.word-cell.has-err{border-color:#FCA5A5;background:#FFF5F5;}
.word-err-tag{
  display:inline-block;margin-left:5px;padding:0 5px;border-radius:6px;
  background:#DC2626;color:#fff;font-size:10px;font-weight:800;line-height:16px;vertical-align:1px;
}

/* ===== 2026-10-10 王姐定制:单词支持「点击看详情」+「勾选导出 / 打印」 ===== */
.word-cell{cursor:pointer;border-radius:8px;padding:3px 6px;transition:background .15s,box-shadow .15s;}
/* 2026-10-15 王姐定:右侧生字格子缩小(汉字 20→15px),一屏能多看几个字。
   用独立类 chi-z-grid,不碰任何现有类(.zi-grid 是幼儿识字页的,别混)。 */
.chi-z-grid{gap:6px;}
.word-cell:hover{background:#EEF4FF;}
/* 选中态排在 .has-err 之后,勾选时以蓝色高亮为准 */
.word-cell.on{background:#DBEAFE;box-shadow:inset 0 0 0 1.5px #93C5FD;}
.word-pick{width:12px;height:12px;margin:0 5px 0 0;vertical-align:-1px;cursor:pointer;accent-color:#4F7CFF;}
.word-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:8px 0 10px;}
.word-tool{
  padding:4px 10px;border-radius:8px;border:1px solid #CBD5E1;background:#fff;
  font-size:12px;font-weight:700;color:#475569;cursor:pointer;transition:all .18s;
}
.word-tool:hover{border-color:var(--primary);color:var(--primary);}
.word-tool-main{background:#EEF4FF;border-color:#BFD3FF;color:var(--primary-dark);}
.word-tool-main.has-pick{background:var(--primary);border-color:var(--primary);color:#fff;}
.word-tool:disabled{opacity:.55;cursor:not-allowed;}

/* 单词详情弹窗(复用通用 #modal) */
.wd-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.wd-word{font-size:26px;font-weight:800;color:var(--text-dark);letter-spacing:.5px;}
.wd-ipa{font-size:14px;color:var(--text-mid);margin-top:2px;}
.wd-speak{
  padding:7px 14px;border-radius:999px;border:1px solid #BFD3FF;background:#EEF4FF;
  font-size:13px;font-weight:800;color:var(--primary-dark);cursor:pointer;
}
.wd-speak:hover{background:#E0EAFF;}
.wd-def{
  margin-top:12px;padding:12px 14px;border-radius:12px;background:#F8FAFC;
  font-size:15px;line-height:1.7;color:var(--text-dark);word-break:break-word;
}
.wd-block{margin-top:16px;}
.wd-block-h{font-size:13px;font-weight:800;color:var(--text-mid);margin-bottom:8px;}
.wd-row{
  display:flex;justify-content:space-between;gap:12px;padding:7px 2px;
  border-bottom:1px dashed #E2E8F0;font-size:13.5px;
}
.wd-row:last-child{border-bottom:none;}
.wd-k{color:var(--text-mid);}
.wd-v{font-weight:700;color:var(--text-dark);}
.wd-v.ok{color:var(--accent-green);}

/* 知识图谱:来源搜索 + 全部模式分组头(2026-09-18) */
.mkg-src-search{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:#475569;font-weight:600;margin-left:10px}
.mkg-src-search input{width:190px;padding:7px 10px;border:1.5px solid #cbd5e1;border-radius:9px;font-size:.85rem;outline:none;background:#fff}
.mkg-src-search input:focus{border-color:#6366f1;box-shadow:0 0 0 3px rgba(99,102,241,.12)}
.mkg-src-clear{border:none;background:#e2e8f0;border-radius:7px;padding:4px 9px;cursor:pointer;font-size:.8rem;font-weight:700;color:#475569}
.mkg-src-clear:hover{background:#cbd5e1}
.mkg-grp-head{margin:16px 0 10px;padding:9px 13px;background:#f1f5f9;border-left:4px solid #6366f1;border-radius:9px;font-weight:700;font-size:.95rem;color:#334155}
.mkg-src-sel{padding:6px 8px;border:1.5px solid #cbd5e1;border-radius:9px;font-size:.82rem;background:#fff;color:#334155;outline:none;max-width:130px}
.mkg-src-sel:focus{border-color:#6366f1}
/* 2026湖北卷原卷题图:固定显示宽度使图内字体与题目文字等大(2026-09-20 用户定制,不随屏幕拉伸) */
.mkg-zt-imgbox img[src*="hb26_q1full2"]{max-width:630px;}
.mkg-zt-imgbox img[src*="hb26_q4fig2"]{max-width:450px;}
.mkg-zt-imgbox img[src*="hb26_q5full2"]{max-width:810px;}
.mkg-zt-imgbox img[src*="hb26_q5opts2"]{max-width:600px;}

/* ============== 登录入口 + 登录弹窗（2026-09-27） ============== */
.login-chip{
  display:flex;align-items:center;gap:6px;padding:8px 14px;
  background:linear-gradient(135deg,#5B8DEF,#4F6EF7);border-radius:999px;
  color:white;font-weight:700;box-shadow:0 4px 12px rgba(91,141,239,.3);
  cursor:pointer;transition:transform .15s;font-size:13px;
}
.login-chip:hover{transform:translateY(-1px);}
.login-chip.logged{background:linear-gradient(135deg,#16A34A,#22C55E);box-shadow:0 4px 12px rgba(22,163,74,.3);}
.login-chip .badge-ver{
  font-size:11px;background:rgba(255,255,255,.25);padding:2px 8px;border-radius:999px;font-weight:600;
}
.modal-login{max-width:380px;}
.login-field{margin-bottom:14px;}
.login-field label{display:block;font-size:13px;color:var(--text-2, #4b5563);margin-bottom:6px;font-weight:600;}
.login-field input{width:100%;box-sizing:border-box;height:44px;border:1.5px solid #E2E8F0;border-radius:10px;padding:0 14px;font-size:15px;outline:none;transition:border-color .15s;}
.login-field input:focus{border-color:#5B8DEF;}
.login-code-row{display:flex;gap:10px;}
.login-code-row input{flex:1;}
.login-code-btn{flex:0 0 auto;height:44px;padding:0 16px;background:#F1F5F9;color:#4b5563;border:none;border-radius:10px;font-size:13px;cursor:pointer;white-space:nowrap;}
.login-code-btn:disabled{opacity:.5;cursor:not-allowed;}
.login-submit{width:100%;height:46px;background:linear-gradient(135deg,#5B8DEF,#4F6EF7);color:white;border:none;border-radius:12px;font-size:16px;font-weight:700;cursor:pointer;transition:opacity .15s;}
.login-submit:hover{opacity:.92;}
.login-submit:disabled{opacity:.6;cursor:not-allowed;}
.login-tip{margin-top:12px;font-size:12px;color:#9CA3AF;text-align:center;line-height:1.6;}
.login-logout{width:100%;height:42px;margin-top:12px;background:#FEE2E2;color:#DC2626;border:none;border-radius:12px;font-size:14px;font-weight:600;cursor:pointer;}
.login-logout:hover{background:#FECACA;}

/* ============== 登录门（未登录强制登录，2026-09-27） ============== */
.login-gate{
  position:fixed;inset:0;z-index:1100;
  background:linear-gradient(180deg,#F5F7FF 0%,#EEF2FF 100%);
  display:none;align-items:center;justify-content:center;padding:24px;
}
.login-gate-inner{text-align:center;max-width:420px;}
.login-gate-ico{font-size:64px;line-height:1;}
.login-gate-title{font-size:24px;font-weight:800;margin-top:14px;color:#111827;}
.login-gate-sub{font-size:14px;color:#6b7280;margin-top:10px;line-height:1.7;}
.login-gate-btn{
  margin-top:28px;height:48px;padding:0 44px;
  background:linear-gradient(135deg,#5B8DEF,#4F6EF7);color:#fff;
  border:none;border-radius:12px;font-size:16px;font-weight:700;cursor:pointer;
  box-shadow:0 6px 18px rgba(91,141,239,.35);transition:transform .15s,opacity .15s;
}
.login-gate-btn:hover{transform:translateY(-2px);opacity:.95;}

/* ============== 品牌 LOGO 显示（2026-09-27） ============== */
.login-gate-ico img{
  width:160px;height:160px;object-fit:contain;
  border-radius:24px;box-shadow:0 10px 30px rgba(0,0,0,.12);
  background:#fff;
}

/* ============== 登录切换标签 + 修改密码（2026-09-27） ============== */
.login-tabs{display:flex;gap:6px;margin-bottom:14px;background:#F1F5F9;border-radius:10px;padding:4px;}
.login-tabs .ltab{flex:1;text-align:center;padding:8px 0;font-size:13px;font-weight:600;color:#6b7280;border-radius:8px;cursor:pointer;transition:all .15s;}
.login-tabs .ltab.active{background:#fff;color:#4F6EF7;box-shadow:0 1px 4px rgba(0,0,0,.08);}
.login-extra{margin-top:10px;text-align:center;}
.login-link-btn{background:none;border:none;color:#4F6EF7;font-size:13px;cursor:pointer;text-decoration:underline;}
.login-guide{margin-top:12px;text-align:center;font-size:12px;}
.login-guide a{color:#6B7280;text-decoration:underline;}

/* ===== 2026-09-28 手机版字体优化（仅 ≤768px 生效，电脑端完全不受影响） ===== */
@media(max-width:768px){
  body{font-size:13px;}
  .page-title{font-size:19px !important;margin-bottom:4px;}
  .page-subtitle{font-size:12px !important;margin-bottom:12px;line-height:1.5;}
  .card-title{font-size:15px !important;margin-bottom:10px;}
  .card-title .sent-title-hint{display:none;}   /* 手机上隐藏卡片标题后的长提示 */
  .sent-target{font-size:17px !important;padding:18px 12px !important;min-height:64px;}
  .english-grid .sent-target{font-size:17px !important;padding:18px 12px;}
  /* 2026-10-02 窄屏:句子框内边距只有 18px,来源小字跟着调小、贴底,别压到句子 */
  .sent-src{font-size:10px;right:10px;bottom:5px;padding:1px 6px;}
  .eng-tab{font-size:12.5px;}
  .eb-kpi b{font-size:16px;}
  .eb-kpi span{font-size:9px;}
  /* .eb-word 由 JS 按词长动态控制字号,不在此覆盖 */
  .badge{font-size:10.5px;}
  .sentence-item .sen-ico{font-size:16px;}
}

/* ==========================================================
   2026-09-30 拍照识别（错题模块专用）
   只在文件末尾追加,不改动上面任何一行已有样式
   ========================================================== */
.mist-toolbar .mist-ai-btn{
  background:linear-gradient(135deg,#F59E0B,#F97316);
  box-shadow:0 4px 12px rgba(249,115,22,.3);
}
.mist-toolbar .mist-ai-btn:hover{box-shadow:0 6px 16px rgba(249,115,22,.42);}

.mist-ai-box{width:min(620px,94vw);}
.mist-ai-tip{
  float:right;font-size:12px;font-weight:600;color:var(--text-light);
  margin-top:6px;
}
.mist-ai-loading{padding:28px 0 20px;text-align:center;}
.mist-ai-spin{
  width:38px;height:38px;margin:0 auto 14px;border-radius:50%;
  border:3px solid #E2E8F0;border-top-color:#5B8DEF;
  animation:maiSpin .8s linear infinite;
}
@keyframes maiSpin{to{transform:rotate(360deg);}}
.mist-ai-load-t{font-size:15px;font-weight:700;color:var(--text-dark);}
.mist-ai-load-s{font-size:12.5px;color:var(--text-light);margin-top:6px;}

.mist-ai-warn{
  background:#FFF7ED;border:1px solid #FED7AA;color:#9A3412;
  border-radius:12px;padding:10px 14px;font-size:13px;line-height:1.75;margin-bottom:14px;
}
.mist-ai-figbox{
  background:#F8FAFC;border:1px solid #E2E8F0;border-radius:14px;
  padding:10px;margin-bottom:14px;text-align:center;
}
.mist-ai-figbox img{
  max-width:100%;max-height:230px;border-radius:10px;object-fit:contain;background:#fff;
}
.mist-ai-figbox img[src=""],.mist-ai-figbox img:not([src]){display:none;}

.mist-ai-row{display:flex;gap:12px;flex-wrap:wrap;}
.mist-ai-row .mist-ai-field{flex:1 1 240px;}
.mist-ai-field{margin-bottom:12px;}
.mist-ai-field label{
  display:block;font-size:13px;font-weight:700;color:var(--text-mid);margin-bottom:6px;
}
.mist-ai-stem{min-height:88px;line-height:1.7;resize:vertical;}
.mist-ai-opts{display:flex;flex-direction:column;gap:8px;}
.mist-ai-opt{display:flex;align-items:center;gap:8px;}
.mist-ai-opt b{
  flex:0 0 22px;text-align:center;font-size:13px;color:var(--primary);
}
.mist-ai-ans{
  background:#F8FAFC;border:1px solid #E2E8F0;border-radius:12px;
  padding:10px 14px;font-size:13.5px;line-height:1.75;color:var(--text-dark);
  max-height:220px;overflow-y:auto;
}
.mist-ai-conf{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:4px;}
.mist-ai-badge{
  font-size:11.5px;font-weight:700;border-radius:999px;padding:3px 11px;
  border:1px solid transparent;
}
.mist-ai-badge.ok{background:#DCFCE7;color:#15803D;border-color:#BBF7D0;}
.mist-ai-badge.mid{background:#FEF3C7;color:#B45309;border-color:#FDE68A;}
.mist-ai-badge.low{background:#FEE2E2;color:#B91C1C;border-color:#FECACA;}
.mist-ai-actions{position:sticky;bottom:-8px;background:#fff;padding-top:12px;}

/* ===== 手机端(≤640px):大按钮 + 宽弹窗,方便家长单手操作 ===== */
@media(max-width:640px){
  .mist-ai-box{width:96vw;max-height:92vh;padding:20px 16px;border-radius:20px;}
  .mist-ai-tip{float:none;display:block;margin-top:4px;}
  .mist-toolbar .mist-ai-btn{width:100%;justify-content:center;}
  .mist-ai-figbox img{max-height:180px;}
  .mist-ai-actions{position:static;gap:8px;}
  .mist-ai-actions button{
    flex:1 1 44%;min-height:44px;font-size:14.5px;padding:10px 8px;
  }
  .mist-ai-actions .btn-primary{flex:1 1 100%;order:-1;}
}

/* ==========================================================
   2026-10-02 句子库页面重构（王姐定制）
   顶部七类统计区 / 底部标记区 / 页面最底部「已掌握」模块
   只在文件末尾追加，不改动上面任何一行已有样式
   ========================================================== */

/* ---- 句库切换：原「句子库」整行已删，两个句库按钮挪到卡片标题右侧 ---- */
.sent-bank-switch{display:inline-flex;gap:6px;flex-shrink:0;}

/* ---- S 编号：原是库切换行里的独立胶囊，现并进句子框右下角来源条 ---- */
.sent-src{max-width:min(320px,74%);}
.sent-src .sent-num{
  padding:0 6px 0 0;margin-right:6px;border-radius:0;background:none;
  border-right:1px solid #CBD5E1;color:#475569;font-size:11px;font-weight:800;
}

/* ---- 一、顶部统计区（7 类一行） ---- */
.sent-statbar{margin:0 0 14px;}
.ssb-title{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:800;color:var(--text-mid);margin-bottom:8px;flex-wrap:wrap;}
.ssb-note{font-size:11.5px;font-weight:500;color:var(--text-light);}
.ssb-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;}
.ssb-card{
  position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;gap:2px;
  padding:10px 6px 9px;border-radius:14px;border:1px solid var(--border);background:#fff;
  cursor:pointer;transition:transform .18s,box-shadow .18s,border-color .18s,background .18s;
}
.ssb-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--sc,#5B8DEF);opacity:.85;}
.ssb-card:hover{border-color:var(--sc,#5B8DEF);box-shadow:var(--shadow-sm);transform:translateY(-1px);}
.ssb-card.on{border-color:var(--sc,#5B8DEF);background:#F7FAFF;box-shadow:var(--shadow-md);}
.ssb-ico{font-size:15px;line-height:1;}
.ssb-num{font-size:22px;font-weight:900;line-height:1.15;color:var(--sc,#5B8DEF);font-variant-numeric:tabular-nums;}
.ssb-name{font-size:12px;font-weight:800;color:var(--text-dark);white-space:nowrap;}
/* 2026-10-10 王姐定制:「今天待复习」是每天真正要干的事 —— 卡片提到「句子总数」前面,
   名字用红字粗体、字号比其它卡片大 1 号(12px → 13px),其余卡片一个字未改。 */
.ssb-card.pri .ssb-name{font-size:13px;font-weight:900;color:#E11D48;}
.ssb-sub{font-size:10.5px;font-weight:600;color:var(--text-light);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;}

/* ---- 统计详情（原地展开） ---- */
.sent-stat-detail{border:1px solid var(--border);border-radius:14px;background:#FBFCFF;padding:12px 14px;margin:0 0 14px;}
.ssd-head{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:800;color:var(--text-dark);margin-bottom:8px;flex-wrap:wrap;}
.ssd-close{margin-left:auto;border:1px solid #CBD5E1;background:#fff;color:#475569;font-size:11.5px;font-weight:700;border-radius:999px;padding:3px 10px;cursor:pointer;}
.ssd-close:hover{border-color:#8B5CF6;color:#8B5CF6;}
.ssd-meta{font-size:12.5px;color:var(--text-mid);line-height:1.85;margin-bottom:6px;}
.ssd-meta b{color:var(--text-dark);}
.ssd-hint{font-size:11.5px;color:var(--text-light);}
.ssd-tags{display:flex;flex-wrap:wrap;gap:5px;max-height:190px;overflow:auto;padding:2px 0;}
.ssd-tag{font-size:11px;font-weight:700;color:#94A3B8;background:#F1F5F9;border:1px solid transparent;border-radius:6px;padding:2px 7px;cursor:pointer;}
.ssd-tag:hover{border-color:var(--primary);color:var(--primary);}
.ssd-tag.on{background:#E0F2FE;color:#3B6FE0;}
.ssd-tag.ok{background:#DCFCE7;color:#15803D;}
.ssd-sub{border-top:1px dashed var(--border);}
.ssd-sub-h{display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;padding:8px 2px;cursor:pointer;text-align:left;}
.ssd-sub-n{flex:1;font-size:13px;font-weight:700;color:var(--text-mid);}
.ssd-sub-c{font-size:12px;font-weight:900;color:var(--sc,#5B8DEF);font-variant-numeric:tabular-nums;}
.ssd-sub-x{font-size:11.5px;font-weight:700;color:var(--text-light);}
.ssd-list{display:flex;flex-direction:column;gap:6px;max-height:340px;overflow:auto;padding:4px 0 6px;}
.ssd-row{background:#fff;border:1px solid var(--border);border-radius:10px;padding:8px 10px;}
.ssd-row-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.ssd-code{font-size:12px;font-weight:900;color:#3B6FE0;background:#E0F2FE;border-radius:6px;padding:1px 7px;}
/* 2026-10-10 王姐定制:三库统一清单里,每句前面标出它属于哪套句库(语法300 / 3500词 / 作文100 / 初中) */
.ssd-bank{font-style:normal;font-size:10.5px;font-weight:800;color:#7C3AED;background:#F3E8FF;border:1px solid #DDD6FE;border-radius:6px;padding:1px 6px;}
.ssd-go{margin-left:auto;border:1px solid #CBD5E1;background:#fff;color:#475569;font-size:11.5px;font-weight:700;border-radius:999px;padding:2px 9px;cursor:pointer;}
.ssd-go:hover{border-color:var(--primary);color:var(--primary);}
.ssd-en{font-size:13.5px;font-weight:700;color:var(--text-dark);margin-top:5px;line-height:1.5;}
.ssd-zh{font-size:12.5px;color:var(--text-mid);margin-top:2px;line-height:1.5;}
.ssd-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px;}
.ssd-chip{font-style:normal;font-size:11px;font-weight:700;border-radius:999px;padding:1px 8px;background:#F1F5F9;color:#475569;border:1px solid var(--border);}
.ssd-chip.ok{background:#DCFCE7;color:#15803D;border-color:#86EFAC;}
.ssd-chip.due{background:#FFF7ED;color:#C2410C;border-color:#FDBA74;}
.ssd-empty{font-size:12.5px;color:var(--text-light);padding:10px 2px;text-align:center;}

/* ---- 「今天待复习」清单的两组分节标题（2026-10-08 王姐定制：上面新句子 / 下面老句子） ---- */
.ssd-group-h{display:flex;align-items:center;gap:8px;margin:12px 0 6px;font-size:13px;font-weight:800;color:var(--text-dark);}
.ssd-group-h:first-child{margin-top:2px;}
.ssd-group-h::before{content:"";flex:0 0 auto;width:4px;height:14px;border-radius:2px;background:#94A3B8;}
.ssd-group-h.new::before{background:linear-gradient(180deg,#34D399,#059669);}
.ssd-group-h.rev::before{background:linear-gradient(180deg,#FBBF24,#F59E0B);}
.ssd-group-h .ssd-group-n{font-size:12px;font-weight:900;color:#0369A1;background:#E0F2FE;border-radius:999px;padding:1px 8px;}
.ssd-group-h.new .ssd-group-n{color:#047857;background:#D1FAE5;}
.ssd-group-h.rev .ssd-group-n{color:#B45309;background:#FEF3C7;}
.ssd-group-h small{font-size:11px;font-weight:600;color:var(--text-light);}

/* ---- 二、底部标记区（4/5 同行、6/7 同行，可多选） ---- */
.sent-mark-area{margin-top:16px;border-top:1px dashed var(--border);padding-top:14px;}
.sma-head{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap;}
.sma-pass{border:2px solid var(--accent-green);background:#fff;color:#15803D;font-size:14px;font-weight:900;border-radius:999px;padding:7px 18px;cursor:pointer;transition:all .18s;}
.sma-pass:hover{background:#F0FDF4;}
.sma-pass.on{background:linear-gradient(135deg,#34D399,#10B981);color:#fff;border-color:transparent;box-shadow:0 4px 12px rgba(16,185,129,.35);}
.sma-tip{font-size:12px;font-weight:600;color:var(--text-light);}
.sma-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.sma-block{border:1px solid var(--border);border-left:4px solid var(--sc,#5B8DEF);border-radius:12px;background:#FCFDFF;padding:9px 11px;}
.sma-block-h{display:flex;align-items:center;gap:8px;margin-bottom:7px;}
.sma-block-h b{font-size:13.5px;font-weight:900;color:var(--text-dark);}
.sma-block-c{margin-left:auto;font-size:11.5px;font-weight:900;color:var(--sc,#5B8DEF);background:#F1F5F9;border-radius:999px;padding:1px 9px;}
.sma-subs{display:flex;flex-wrap:wrap;gap:6px;}
.sma-sub{display:inline-flex;align-items:center;gap:6px;border:1px solid #CBD5E1;background:#fff;color:#475569;font-size:12.5px;font-weight:700;border-radius:999px;padding:5px 12px 5px 8px;cursor:pointer;transition:all .16s;}
.sma-sub:hover{border-color:var(--sc,#5B8DEF);color:var(--sc,#5B8DEF);}
.sma-sub.on{border-color:transparent;background:var(--sc,#5B8DEF);color:#fff;box-shadow:0 3px 10px rgba(0,0,0,.12);}
.sma-box{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;flex:0 0 15px;border-radius:4px;border:1.5px solid currentColor;font-size:11px;font-weight:900;font-style:normal;line-height:1;}
.sma-sub.on .sma-box{border-color:rgba(255,255,255,.9);background:rgba(255,255,255,.2);}

/* ---- 三、页面最底部「已掌握」模块 ---- */
.sent-mastered-card{margin-top:14px;}

/* ---- 窄屏适配 ---- */
@media(max-width:768px){
  .ssb-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;}
  .ssb-num{font-size:18px;}
  .ssb-name{font-size:11px;}
  .ssb-card.pri .ssb-name{font-size:12px;}
  .ssb-sub{display:none;}
  .sent-bank-switch{gap:4px;}
  .sent-bank-switch .sent-lib-btn{font-size:11px;padding:3px 9px;}
  .sma-sub{font-size:12px;padding:5px 10px 5px 7px;}
  .sent-mark-area{margin-top:12px;padding-top:10px;}
  .ssd-list{max-height:none;}
}

/* ---- 标记区:撤销过关小链接 + 到期提示强调（2026-10-02 补） ---- */
.sma-undo{border:1px solid #CBD5E1;background:#fff;color:#94A3B8;font-size:11.5px;font-weight:700;border-radius:999px;padding:4px 11px;cursor:pointer;transition:all .16s;}
.sma-undo:hover{border-color:var(--accent-red);color:var(--accent-red);}
.sma-tip b{color:#C2410C;}
/* ---- 2026-10-06 王姐定制:「这句还没学」提醒(待复习句未点已过关/未勾错误类型时显示) ---- */
.sma-warn{display:inline-block;color:#B91C1C;background:#FEF3C7;border:1px solid #FCD34D;border-radius:999px;padding:2px 9px;font-size:11.5px;font-weight:800;}

/* ---- 标记区:重点子分类红字粗体（2026-10-02 王姐定制,当前为「结构找错·主干找错」） ----
   勾选后底色是实心紫,红字会看不清 → 用 :not(.on) 让选中态回归白字,颜色只在未勾选时生效 */
.sma-sub.hi:not(.on){color:#DC2626;border-color:#FCA5A5;font-weight:900;}
.sma-sub.hi:not(.on):hover{border-color:#DC2626;color:#DC2626;background:#FEF2F2;}
.sma-sub.hi:not(.on) .sma-box{border-color:#DC2626;}

/* ---- 「今天待复习」详情:两行说明缩小后并到标题同一行（2026-10-04 王姐定制） ----
   只作用于该面板标题行内的 .ssd-inline-note,不影响其它类目仍在用的 .ssd-meta 两行样式。
   字号/间距是按「左侧栏 + 7 列统计条」实测调过的:1080px 宽的窗口刚好放得下一行,再窄就让它在
   原位折行 —— 宁可折行也不能用省略号把「今天到期 N 句」这类信息吃掉。 */
.ssd-head .ssd-inline-note{
  flex:1 1 auto;min-width:0;
  font-size:10px;font-weight:600;color:var(--text-light);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.ssd-head .ssd-inline-note b{color:var(--text-dark);font-weight:800;}
.ssd-head .ssd-inline-note .ssd-sep{font-style:normal;color:#CBD5E1;margin:0 2px;font-weight:400;}
/* 窗口偏窄:标题行各元素间距收紧,给说明文字多挤几个像素 */
@media(max-width:1150px){
  .ssd-head{gap:5px;}
}
/* 更窄就一行放不下了 → 允许折行(信息完整优先,不能用省略号把「今天到期 N 句」吃掉) */
@media(max-width:1040px){
  .ssd-head .ssd-inline-note{white-space:normal;overflow:visible;}
}

/* ===== 学校作业板块(2026-10-06) ===== */
.mkg-hw-search{margin:8px 0 10px}
.mkg-hw-input{width:100%;box-sizing:border-box;padding:9px 12px;border:1px solid var(--line,#d7dee8);border-radius:10px;font-size:14px;background:#fff;color:inherit;outline:none}
.mkg-hw-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.12)}
.mkg-hw-qt{display:inline-block;margin:0 8px;padding:1px 8px;border-radius:999px;font-size:12px;font-weight:600;background:#eff6ff;color:#1d4ed8;vertical-align:2px}
.mkg-zt-q .mkg-hw-qt{margin-left:8px}
/* 学校作业(2026-10-06 王姐):选项长→每个选项单独成行(对齐错题本三档标准) */
.mkg-hw-card .mkg-opts{grid-template-columns:1fr;}
/* 学校作业(2026-10-06b 王姐):ABCD 选项行右缩,与题干文字(标题+徽章之后)起始位置对齐 */
.mkg-hw-card .mkg-zt-q{display:flex;align-items:baseline;}
.mkg-hw-card .mkg-zt-q > b,.mkg-hw-card .mkg-zt-q > span.mkg-hw-qt{flex-shrink:0;}
.mkg-hw-card .mkg-zt-q > span:last-child{flex:1 1 auto;min-width:0;}
/* 学校作业(2026-10-06c 王姐):题图太大,缩小到容器宽 20% */
.mkg-hw-card .mkg-zt-imgbox img{max-width:20%;}

/* ==========================================================================
   手机端专属布局 (2026-10-11 王姐)
   ⚠️ 本段全部包在 @media(max-width:640px) 内 —— 只对手机生效,
      电脑(≥641px)与平板一个像素都不会变。
   解决三件事:
     ① 顶栏塞不下 → 改成两行,「星星 / 勋章 / 手机号 / 头像」全部收得进来;
     ② 「今日任务」卡片文字只剩 90px 宽 → 说明文字占满整行、按钮换行到右下方,
        手机系统字体放大也不会一个字一行;
     ③ 谁的账号在登录看不出来 → 手机号胶囊加 📱 前缀并保证一定可见。
   ========================================================================== */
@media(max-width:640px){

  /* ---- ① 顶栏:第一行 = ☰ 图标 过关AI …… 学段切换;第二行 = 刷新/星星/勋章/账号/头像 ---- */
  .topbar{
    height:auto;flex-wrap:wrap;align-items:center;
    padding:7px 10px;row-gap:7px;column-gap:8px;
  }
  .topbar-left{flex:1 1 auto;gap:8px;min-width:0;}
  .brand-icon{width:34px;height:34px;font-size:16px;border-radius:11px;}
  .brand-title{font-size:16px;}
  .brand-subtitle{display:none;}

  /* 学段切换挪到第一行最右侧(仍可直接点,不用去菜单里找) */
  .age-switch{margin-left:auto;gap:3px;padding:3px;border-radius:11px;flex-shrink:0;}
  .age-btn{min-width:0;padding:4px 7px;font-size:11px;}
  .age-btn .age-emoji{font-size:13px;}

  /* 第二行独占一整行,右对齐 —— 一排挤不下时才允许横向滑动兜底(正常情况下不会溢出) */
  .topbar-right{
    flex:0 0 100%;width:100%;justify-content:flex-end;gap:5px;
    overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;
    padding-bottom:1px;
  }
  .refresh-chip{width:28px;height:28px;font-size:13px;flex-shrink:0;}
  .star-chip,.badge-chip{gap:3px;padding:4px 8px;font-size:11px;flex-shrink:0;}
  .bc-count{font-size:10.5px;padding:1px 5px;}
  .login-chip{font-size:11px;padding:4px 8px;flex-shrink:0;}
  .login-chip.logged{letter-spacing:0;}
  .login-chip .badge-ver{display:none;}
  /* 已登录的手机号胶囊加 📱 —— 一眼看出是哪个号在登录 */
  .login-chip.logged::before{content:"\1F4F1";margin-right:3px;font-size:11px;}
  /* 学生名字那一格在手机上让位给「手机号 / 退出登录」入口;
     要改学生信息仍可点左上角 ☰ 菜单(抽屉底部就是名字,点进去一样)。 */
  .user-chip{display:none;}

  /* 抽屉菜单跟着两行顶栏往下挪(第三轮把胶囊收窄后顶栏实测高 90px) */
  .sidebar{top:90px;}

  /* ---- ② 今日任务卡片:不再互相挤压 ---- */
  .todo-item{flex-wrap:wrap;align-items:flex-start;gap:10px 12px;padding:13px;}
  .todo-ic{width:42px;height:42px;font-size:21px;border-radius:12px;}
  .todo-body{flex:1 1 calc(100% - 54px);min-width:0;}
  .todo-title{font-size:15px;line-height:1.35;}
  .todo-sub{font-size:12px;line-height:1.55;}
  .todo-item > button{margin-left:auto;margin-top:2px;flex-shrink:0;}

  /* ---- ③ 内容区留白收窄一点,给卡片多几个像素 ---- */
  .content{padding:12px;}
}
/* 超窄屏(≤360px,如 iPhone SE/老安卓):图标再缩一号,给正文再让出 12px */
@media(max-width:360px){
  .todo-item{gap:8px 10px;padding:12px;}
  .todo-ic{width:36px;height:36px;font-size:18px;border-radius:10px;}
  .todo-body{flex:1 1 calc(100% - 46px);}
  .content{padding:8px;}
}

/* ==========================================================================
   手机端排版细化 · 第二轮 (2026-10-11 王姐反馈)
   ⚠️ 本段全部包在 @media(max-width:640px) / @media(max-width:400px) 内,
      电脑(≥641px)与平板一个像素都不会变。
   解决王姐手机上看到的 4 个问题:
     ① 「句子练习」四个字被挤成一竖排
        → 根因:.card-title 是 flex 且 nowrap,标题文字被右侧句库按钮挤到只剩 1 字宽。
          修法:标题行允许换行(row-gap 6px),句库按钮自己也能换行 → 标题永远占满一行。
     ② 句库按钮(新东方语法300句/3500词100句/新东方作文100句)总宽 310px 撑出屏幕
        → 被卡片/屏幕切掉,还会让整页能左右滑。修法:按钮允许换行 + 手机上收窄字号与内边距。
     ③ 顶栏第二行(刷新/星星/勋章/手机号)在 320px 窄屏放不下 → 「刷新」被挤出屏幕摸不到
        → 收窄各胶囊,并允许换行兜底(宁可顶栏高一点,也绝不把按钮弄丢)。
     ④ 超窄屏(≤400px)格子类统计挤成一团(句子 7 格 4 列只剩 59px、单词 6 格只剩 38px)
        → 改 3 列,数字和名字都有地方放。
   ========================================================================== */
@media(max-width:640px){

  /* ---- ① 所有卡片标题行:不再把标题文字压成竖排(挤不下就换行) ---- */
  .card-title{flex-wrap:wrap;row-gap:6px;}

  /* ---- ② 句子页:句库切换按钮换行显示,不再撑出卡片 ---- */
  .sent-bank-switch{flex-wrap:wrap;max-width:100%;flex-shrink:1;gap:5px;}
  .sent-lib-btn{font-size:11px;padding:4px 9px;}

  /* ---- ③ 顶栏第二行:各胶囊收窄 + 换行兜底,「刷新」永远不会被挤出屏幕 ---- */
  .topbar-right{
    flex-wrap:wrap;row-gap:5px;column-gap:5px;
    overflow:visible;              /* 取消横向滚动:挤不下就换行,不给"看不见的按钮" */
  }
  .refresh-chip{width:28px;height:28px;font-size:13px;}
  .star-chip,.badge-chip{gap:3px;padding:4px 7px;font-size:10.5px;}
  .badge-chip .bc-count{font-size:10px;padding:1px 5px;}
  .login-chip{font-size:10.5px;padding:4px 7px;}
  .login-chip.logged::before{font-size:10px;margin-right:2px;}
}

/* 超窄屏(≤400px,老安卓/iPhone SE 一档):格子类统计改 3 列,不再挤成一条 */
@media(max-width:400px){
  .ssb-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .eb-kpis{grid-template-columns:repeat(3,1fr);gap:6px;}
  .sent-lib-btn{font-size:10.5px;padding:4px 8px;}
}

/* 2026-10-11 王姐第二轮:401~430px(iPhone 11/XR/14 Plus 这一档)6 个单词统计格只剩 53px,
   数字挤在框里 —— 同样改成 3 列(每格 ~120px)。≤400px 的那条规则保持不变。 */
@media(max-width:430px){
  .eb-kpis{grid-template-columns:repeat(3,1fr);gap:6px;}
}

/* 2026-10-11 王姐第二轮:句子清单里的分组标题(「🆕 今天要学的新句子 / 🔁 今天要复习的老句子」)
   后面那行小字太长,把标题文字挤成一竖排(和「句子练习」标题同一个毛病)。
   手机端让那行小字换到下一行,标题保持一行。 */
@media(max-width:640px){
  .ssd-group-h{flex-wrap:wrap;row-gap:4px;}
  .ssd-group-h small{flex:1 1 100%;}
}

/* ==========================================================================
   手机端排版细化 · 第三轮 (2026-10-11 王姐第三次反馈)
   ⚠️ 本段全部包在 @media(max-width:640px) 内 —— 电脑(≥641px)一个像素都不变。
   解决王姐手机上看到的 3 个问题:
     ① 账号(手机号)没和勋章同一行,被挤成了第三行
        → 根因:手机浏览器会按系统字体设置【自动放大】页内文字(text-size-adjust),
           各胶囊跟着变宽,旧的收窄量就不够了。
           修法:关掉自动放大 + 再把第二行各胶囊收窄一档,四个一定挤在同一行。
     ② 「🔤 英语学习」四个字被顶栏盖住一半
        → 根因:.eng-head-txt{transform:translateY(-0.5cm)} 把标题【整体上移了 19px】,
           电脑端 .content 上边距有 24px 所以看不出来;手机端只有 12px(≤360px 更只有 8px),
           超出部分被内容区裁掉、正好被顶栏压住一半。
           修法:手机端取消这个上移(手机端标题本来就是竖排,这个微调没有意义)。
     ③ 长单词仍然断行(consumptio / n)
        → 根因:.eb-word 是 flex 子项,文字超宽会被压回容器宽度,JS 里拿 scrollWidth
           判断"是否超宽"永远不成立。修法在 app.js 的 ebRender() 里(改用离屏测量 + 行数复核);
           这里再加一条 CSS 兜底,保证手机上单词无论如何都不换行。
   ========================================================================== */
@media(max-width:640px){

  /* ① 关掉"系统字体自动放大" —— 顶栏和各处字号才不会被手机系统悄悄撑大 */
  html{-webkit-text-size-adjust:100%;text-size-adjust:100%;}

  /* ① 顶栏第二行再收一档:刷新 + 星星 + 勋章 + 手机号 四个一定在同一行 */
  .topbar-right{gap:3px;}
  .refresh-chip{width:25px;height:25px;font-size:12px;}
  .star-chip,.badge-chip{gap:2px;padding:3px 5px;font-size:10px;}
  .badge-chip .bc-count{font-size:9.5px;padding:1px 4px;}
  .login-chip{font-size:10px;padding:3px 5px;}
  .login-chip.logged::before{font-size:10px;margin-right:2px;}
  .login-chip.logged{font-variant-numeric:tabular-nums;letter-spacing:-.2px;}

  /* ② 「英语学习」标题不再被上移,完整显示在顶栏下方 */
  .eng-head-txt{transform:none;}

  /* ③ 单词卡:手机上一律不换行(真正的字号自适应在 app.js 的 ebRender 里) */
  .eb-word{white-space:nowrap;}

  /* ③ 断掉"长单词把卡片撑宽"的链路:
       .sub-grid 是 grid,.eb-word 又设了 nowrap → 列宽会被单词的"最小内容宽"顶开,
       结果单词越长方块越宽、甚至把整页撑出屏幕(实测 28 字母的词能把卡片撑到 374px > 320px 视口)。
       列宽改 minmax(0,1fr)(允许收缩到 0)后,卡片宽度就只由屏幕决定,字号自适应才能算得准。 */
  .sub-grid{grid-template-columns:minmax(0,1fr);}
  .sub-grid > *{min-width:0;}
  .eb-study{min-width:0;width:100%;max-width:100%;margin:0;}   /* ← 缺的就是这一环:.eb-study 的 margin:0 auto
       让 flex 列容器不再拉伸它,宽度改由"内容"决定(长词直接把卡片顶宽);手机上让它老实占满一列 */
  .eb-word-card{min-width:0;}
  .eb-word{min-width:0;max-width:100%;}
}

/* ==========================================================================
   手机端首页精简 · 第四轮 (2026-10-11 王姐第四次反馈:"我画掉的都不显示")
   ⚠️ 只在手机上隐藏元素,一个都不删 DOM —— 电脑端(≥641px)完全不受影响。
     被隐藏的 3 处(都是王姐在截图上划掉的):
       ① 首页大标题「过关AI」      → 顶栏左上角已经有品牌名了,这里重复
       ② 首页副标题「您成长路上的智能学习助手」
          (①② 都在 .hero-text 里,整块隐藏;下面「日期 + 打卡第 N 天」保留)
       ③ 「今天的安排」卡片最上面那条虚线块:
          星星 N 颗 · 连学 N 天 · 累计打卡 · 今日 N 分钟 + 10星换勋章/勋章墙/家长报告/备份/恢复
          (app.js 的 gxMintBar() 生成,已给它加了 .gx-mint-bar 类名)
          注:这些入口没有消失 —— 勋章墙/家长报告在左侧抽屉菜单里,备份/恢复在「每日·我不会的」页工具栏里。
   ⚠️ .gx-mint-bar 的 display:flex 写在元素的行内 style 里,行内样式优先级高于普通 CSS 规则,
      所以这里必须加 !important 才压得住。
   ========================================================================== */
@media(max-width:640px){
  .hero-text{display:none;}                                   /* ① ② 顶部大标题 + 副标题 */
  #todayTasks > .gx-mint-bar{display:none !important;}        /* ③ 「今天的安排」里的星星统计条 + 5 个按钮 */
}

/* ==========================================================================
   题库检索(2026-10-12 新增)
   ========================================================================== */
.zs-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0 8px;}
.zs-sel,.zs-kw{
  height:34px;padding:0 10px;border:1px solid var(--border);border-radius:var(--radius-sm);
  background:#fff;color:var(--text-dark);font-size:13px;outline:none;max-width:150px;
}
.zs-sel-wide{max-width:220px;}
.zs-kw{flex:1;min-width:180px;max-width:320px;padding:0 12px;}
.zs-sel:focus,.zs-kw:focus{border-color:var(--primary);}
.zs-btn{
  height:34px;padding:0 14px;border:1px solid var(--primary);border-radius:var(--radius-sm);
  background:#fff;color:var(--primary-dark);font-size:13px;cursor:pointer;white-space:nowrap;
}
.zs-btn:hover{background:var(--primary-light);}
.zs-meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 10px;font-size:13px;color:var(--text-mid);}
.zs-count{font-weight:700;color:var(--text-dark);}
.zs-hint{color:var(--accent-orange);flex:1;min-width:200px;}
.zs-pager{display:flex;align-items:center;gap:8px;}
.zs-pager .zs-btn{height:28px;padding:0 10px;}
.zs-list{display:flex;flex-direction:column;gap:10px;}
.zs-item{
  background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-md);
  padding:12px 14px;box-shadow:var(--shadow-sm);
}
.zs-head{display:flex;align-items:center;gap:10px;margin-bottom:6px;flex-wrap:wrap;}
.zs-no{
  min-width:26px;height:26px;line-height:26px;text-align:center;border-radius:50%;
  background:var(--primary-light);color:var(--primary-dark);font-size:12px;font-weight:700;
}
.zs-tags{display:flex;flex-wrap:wrap;gap:6px;}
.zs-tag{
  font-size:11px;padding:2px 8px;border-radius:10px;background:#F1F5F9;color:var(--text-mid);
  border:1px solid var(--border);
}
.zs-tag-subj{background:var(--primary-light);color:var(--primary-dark);border-color:#DBEAFE;font-weight:700;}
.zs-tag-qt{background:#FFF7ED;color:#C2410C;border-color:#FED7AA;}
.zs-t{font-size:14px;line-height:1.75;color:var(--text-dark);word-break:break-word;}
/* 2026-10-14 题库检索·真表格排版(转录的【表：】标记由渲染层还原,题面与解析共用) */
.zs-table{border-collapse:collapse;margin:8px 0;font-size:13px;line-height:1.5;}
.zs-table th,.zs-table td{border:1px solid #CBD5E1;padding:5px 12px;text-align:left;vertical-align:top;}
.zs-table th{background:#F1F5F9;font-weight:600;white-space:nowrap;}
.zs-src{font-size:11px;color:var(--text-light);margin-top:6px;}
.zs-acts{margin-top:8px;}
.zs-btn-ans{height:28px;font-size:12px;padding:0 10px;}
.zs-ansbox{margin-top:8px;border-top:1px dashed var(--border);padding-top:8px;}
.zs-ans{font-size:13px;line-height:1.85;color:var(--text-mid);word-break:break-word;}
/* 2026-10-14 王姐:解析标签彩色粗体 */
.zs-ktag{font-weight:700;}
.zs-ktag.zt-red{color:#e03131;}
.zs-ktag.zt-blue{color:#1971c2;}
.zs-ktag.zt-purple{color:#7048e8;}
.zs-ktag.zt-green{color:#2f9e44;}
.zs-ktag.zt-orange{color:#e8590c;}
.zs-ktag.zt-teal{color:#0c8599;}
.zs-ktag.zt-rose{color:#d6336c;}
.zs-ktag.zt-brown{color:#a8681a;}
.zs-ktag.zt-cyan{color:#0b7285;}
.zs-ktag.zt-slate{color:#5c6672;}
.zs-empty{padding:24px;text-align:center;color:var(--text-light);font-size:13px;}
@media(max-width:640px){
  .zs-sel,.zs-sel-wide{max-width:none;flex:1 1 46%;}
  .zs-kw{flex:1 1 100%;max-width:none;}
  .zs-meta{font-size:12px;}
}

/* ==========================================================================
   批量导入 · 冲突处理流水线(2026-10-12 新增)
   ========================================================================== */
.zimp-card{
  background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-md);
  padding:14px 16px;box-shadow:var(--shadow-sm);margin-bottom:12px;
}
.zimp-card-title{font-size:15px;font-weight:700;color:var(--text-dark);margin-bottom:8px;}
.zimp-help{font-size:12px;color:var(--text-mid);line-height:1.7;margin-bottom:8px;}
.zimp-help b{color:var(--primary-dark);}
.zimp-ta{
  width:100%;border:1px solid var(--border);border-radius:var(--radius-sm);
  padding:10px 12px;font-size:13px;line-height:1.7;color:var(--text-dark);
  background:#F8FAFC;resize:vertical;
}
.zimp-ta:focus{border-color:var(--primary);background:#fff;}
.zimp-ta-code{font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;font-size:12px;color:#334155;}
.zimp-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0 6px;}
.zimp-sel{
  height:34px;padding:0 10px;border:1px solid var(--border);border-radius:var(--radius-sm);
  background:#fff;color:var(--text-dark);font-size:13px;max-width:220px;
}
.zimp-btn{
  height:34px;padding:0 14px;border:1px solid var(--primary);border-radius:var(--radius-sm);
  background:#fff;color:var(--primary-dark);font-size:13px;white-space:nowrap;
}
.zimp-btn:hover{background:var(--primary-light);}
.zimp-btn-main{background:var(--primary);color:#fff;border-color:var(--primary);font-weight:700;}
.zimp-btn-main:hover{background:var(--primary-dark);}
.zimp-btn-warn{border-color:#F59E0B;color:#B45309;background:#FFFBEB;}
.zimp-btn-warn:hover{background:#FEF3C7;}
.zimp-msg{font-size:12px;color:var(--text-mid);line-height:1.7;min-height:18px;}
.zimp-msg-bad{color:#B91C1C;font-weight:700;}
.zimp-stat{display:inline-flex;flex-wrap:wrap;gap:6px;margin-left:8px;font-weight:400;}
.zimp-chip{
  font-size:11px;padding:2px 8px;border-radius:10px;background:#F1F5F9;color:var(--text-mid);
  border:1px solid var(--border);
}
.zimp-chip b{color:var(--text-dark);font-size:12px;}
.zimp-cD{background:#DCFCE7;color:#15803D;border-color:#BBF7D0;}
.zimp-cC{background:#FEF9C3;color:#92400E;border-color:#FDE68A;}
.zimp-cB{background:#FFF7ED;color:#C2410C;border-color:#FED7AA;}
.zimp-cA{background:#F1F5F9;color:#475569;border-color:#E2E8F0;}
.zimp-cX{background:#FEE2E2;color:#B91C1C;border-color:#FECACA;}
.zimp-cOK{background:var(--primary-light);color:var(--primary-dark);border-color:#DBEAFE;}
.zimp-legend{font-size:12px;color:var(--text-mid);margin:0 0 10px;line-height:2;}
.zimp-g{font-size:11px;padding:2px 8px;border-radius:10px;border:1px solid;font-weight:700;}
.zimp-gD{background:#DCFCE7;color:#15803D;border-color:#BBF7D0;}
.zimp-gC{background:#FEF9C3;color:#92400E;border-color:#FDE68A;}
.zimp-gB{background:#FFF7ED;color:#C2410C;border-color:#FED7AA;}
.zimp-gA{background:#F1F5F9;color:#475569;border-color:#E2E8F0;}
.zimp-list{display:flex;flex-direction:column;gap:10px;}
.zimp-item{
  background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);
  padding:10px 12px;box-shadow:var(--shadow-sm);
}
.zimp-item-x{border-color:#FCA5A5;background:#FFFBFB;}
.zimp-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px;}
.zimp-pick{display:inline-flex;align-items:center;}
.zimp-pick input{width:16px;height:16px;accent-color:var(--primary);}
.zimp-tag{font-size:11px;padding:2px 8px;border-radius:10px;background:#F1F5F9;color:var(--text-mid);border:1px solid var(--border);}
.zimp-t{font-size:13px;line-height:1.8;color:var(--text-dark);word-break:break-word;}
.zimp-note{font-size:11px;color:var(--text-mid);margin-top:6px;line-height:1.7;}
.zimp-note-x{color:#B91C1C;font-weight:700;}
.zimp-conflict{
  margin-top:8px;border:1px dashed #FCA5A5;border-radius:var(--radius-sm);
  background:#FFF5F5;padding:8px 10px;
}
.zimp-cfrow{display:flex;gap:8px;font-size:12px;line-height:1.8;align-items:flex-start;}
.zimp-cflab{flex:0 0 62px;color:#94A3B8;}
.zimp-cfval{flex:1;color:var(--text-mid);word-break:break-word;}
.zimp-cfval.zimp-new{color:#B91C1C;font-weight:700;}
.zimp-cfbtns{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;}
.zimp-cfbtns .zimp-btn{height:30px;font-size:12px;padding:0 10px;}
.zimp-empty{padding:24px;text-align:center;color:var(--text-light);font-size:13px;}
@media(max-width:640px){
  .zimp-sel{max-width:none;flex:1 1 100%;}
  .zimp-btn{flex:1 1 46%;}
  .zimp-cfbtns .zimp-btn{flex:1 1 100%;}
}

/* ================================================================
 * 语文「每日生字」模块样式(2026-10-15 王姐定制)
 * 结构与英语「每日单词」保持一致:.eb-* 全部复用,这里只补语文特有的部分:
 *   ① 折叠区(字解/组词/例句/易错提示)默认收起
 *   ② 红色问号主卡 + 拼音
 *   ③ 挖空成圆圈的例句框
 *   ④ 右侧汉字格子
 * ================================================================ */

/* ① 折叠区:整块放在学习区最上层,像每日单词那样"点一下才看到答案" */
.zi-fold-row{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;}
/* 2026-10-15 王姐定:【字解 + 组词 同一行】,放在「彻底掌握」按钮行正上方;
   上方那个「例句」折叠块已删(与下面的挖空例句重复),易错提示另起一行紧跟其后。
   两块默认收起,点标题才展开 —— 高度由 .zi-fold.open 撑开,收起时只有标题那一行。 */
.zi-fold-row-tight{margin-top:14px;margin-bottom:8px;gap:10px;}
.zi-fold-row-tight.zi-fold-row-pair{flex-direction:row;}
.zi-fold-row-pair > .zi-fold{flex:1 1 0;min-width:0;}
.zi-fold{border:1px solid #E5E7EB;border-radius:12px;background:#F8FAFC;overflow:hidden;}
.zi-fold.open{background:#fff;border-color:#93C5FD;}
.zi-fold-h{
  display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;
  padding:11px 14px;border:0;background:transparent;cursor:pointer;
  font-size:14px;font-weight:700;color:#334155;text-align:left;font-family:inherit;
}
.zi-fold-h:hover{background:#EEF4FF;color:var(--primary-dark,#3B6FE0);}
.zi-fold.open .zi-fold-h{color:var(--primary-dark,#3B6FE0);border-bottom:1px dashed #BFDBFE;}
.zi-fold-arrow{font-size:11px;color:#94A3B8;flex:none;}
.zi-fold-b{padding:12px 14px;font-size:14px;line-height:1.75;color:#1F2937;}

/* ② 主卡:红色问号(没切换方向时)或汉字 */
.zi-card{cursor:pointer;}
.zi-big{font-size:88px !important;line-height:1.1;font-weight:800;letter-spacing:2px;}
.zi-py{font-size:22px !important;margin-top:10px !important;letter-spacing:1px;}

/* ③ 例句挖空框 */
.zi-sent-box{
  margin-top:14px;padding:14px;border-radius:14px;
  background:#FFFBEB;border:1px solid #FDE68A;text-align:center;
}
.zi-sent-tip{font-size:12px;color:#92400E;margin-bottom:8px;}
.zi-sent{font-size:19px;line-height:1.9;color:#1F2937;letter-spacing:1px;}
.zi-sent-btn{margin-top:10px !important;padding:6px 16px !important;font-size:13px !important;}

/* ④ 右侧汉字格子:比英文单词大一点、方正一点 */
.zi-cell-txt{font-size:15px !important;font-weight:700;line-height:1.35;}

/* 字解里的标签 */
.zi-mean-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:4px;}
.zi-tag{
  display:inline-block;font-size:11px;font-weight:700;color:#3B6FE0;
  background:#EEF4FF;border-radius:6px;padding:2px 7px;
}
.zi-wchip{
  display:inline-block;font-size:16px;font-weight:700;color:#173404;
  background:#EAF3DE;border-radius:8px;padding:3px 10px;margin:0 6px 6px 0;
}
.zi-tip-list{margin:0;padding-left:20px;}
.zi-tip-list li{margin:4px 0;}

/* 详情弹窗里的拼音 */
.zi-d-py{letter-spacing:2px;}

/* 手机端:问号与例句都要收得住,不能撑破屏幕 */
@media(max-width:640px){
  .zi-fold-h{padding:10px 12px;font-size:13px;}
  .zi-fold-b{padding:10px 12px;font-size:13px;}
  .zi-big{font-size:66px !important;}
  .zi-py{font-size:19px !important;}
  .zi-sent{font-size:17px;}
  .zi-sent-box{padding:12px 10px;}
  .zi-cell-txt{font-size:14px !important;}
}

/* ============== 2026-11-04 王姐定:语文页头紧凑化 ==============
   ① 副标题(green框)已在 index.html 删除
   ② 页签(red框)并入「📖 语文学习」同一行、靠后(右)位置,整体版面紧凑上移
   只作用 #view-chinese,其他页(英语等)头部排版一个像素不动 */
#view-chinese .eng-head{flex-wrap:nowrap;align-items:center;gap:12px;margin:0 0 10px;}
#view-chinese .eng-head-txt{transform:none;flex:0 0 auto;}
#view-chinese .eng-tabs{transform:none;flex:0 1 auto;margin-left:auto;gap:4px;padding:5px 6px;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;}
#view-chinese .eng-tab{padding:7px 11px;font-size:12.5px;}
@media(max-width:760px){
  #view-chinese .eng-head{flex-wrap:wrap;}
  #view-chinese .eng-tabs{margin-left:0;}
}
