/* =====================================================================
   v035 — Interface polish pass  (界面打磨层)
   ---------------------------------------------------------------------
   0) 内容列宽度：修掉 .content 未设 flex:1 导致 Learn/Practice 比 Home 窄
   1) 顶部标题条：去掉“空卡片”，改成紧凑页头；页面自带页头时不重复显示
   2) 左侧账户卡：不再被截断（Guest / 邮箱 / 订阅徽标）
   3) Practice 筛选区：标签统一为小号大写，控件对齐；meta 行加分隔
   4) Hero 概览卡：行对齐、日期控件收敛、周目标进度轨道可见
   5) Papers 筛选条：宽度与高度更整齐（窄屏 44px 触控目标）
   6) 全局：键盘焦点可见环、降低动效偏好、选中色
   7) Summary 章节目录：宽屏两列
   8) Review「Paper Attempts」空态占位
   只做覆盖，不改动 v027–v033 的任何既有规则。
   ===================================================================== */

/* ---------------------------------------------------------------
   0. 内容列宽度一致性
   v033 把 .app 从 grid 改成 flex，但 .content 没有补 flex:1，
   导致 Learn / Practice 的内容列只有 1267~1278px，比 Home 窄一大截。
   --------------------------------------------------------------- */
body.ial-v030 .app>.content{
  flex:1 1 auto;
  min-width:0;
}

/* ---------------------------------------------------------------
   0b. 侧栏收起后，主内容要跟着左移铺满
   收起态 sidebar 只剩 64px，但 v033 的 .main 仍写死 padding-left:296px/252px
   → 左侧凭空多出 188px 空白（大哥说的「收起来就空白了」）。按断点收回。
   ≤980px 时 sidebar 本就 display:none，无需处理。
   --------------------------------------------------------------- */
@media(min-width:981px){
  body.ial-v030:not(.workspace-mode) .app.sidebar-collapsed .main{
    padding-left:108px!important; /* 64px 收起栏 + 44px 内容留白 */
  }
  body.ial-v030.workspace-mode .app.sidebar-collapsed .main{
    padding-left:64px!important;
  }
  /* 收起后的图标条：图标稍大、行距更舒展，别再挤成一坨 */
  body.ial-v030 .app.sidebar-collapsed .nav{gap:6px}
  body.ial-v030 .app.sidebar-collapsed .nav button{
    min-height:42px;
    padding:10px 0;
    border-radius:12px;
  }
  body.ial-v030 .app.sidebar-collapsed .nav button .ico{
    font-size:16px;
  }
}

/* ---------------------------------------------------------------
   1. 顶部标题条 —— 不再是孤零零的白卡片
   --------------------------------------------------------------- */
body.ial-v030:not(.workspace-mode) .topbar{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  border-radius:0!important;
  padding:2px 2px 0!important;
  margin:0 0 14px!important;
  min-height:0!important;
}
body.ial-v030:not(.workspace-mode) .topbar h1{
  margin:0!important;
  font-size:21px!important;
  font-weight:800!important;
  letter-spacing:-.02em!important;
  line-height:1.25!important;
  color:var(--c-ink)!important;
}
/* 页面自己已有大标题（pageHead / practiceHeader）时，隐藏重复的标题条 */
body.ial-v030:not(.workspace-mode)
  .main:has(.panel.active :is(.pageHead,.practiceHeader)) > .topbar{
  display:none!important;
}

/* ---------------------------------------------------------------
   2. 左侧账户卡 —— 给文字留出空间，徽标不再被切断
   --------------------------------------------------------------- */
body.ial-v030 .sidebarAccountMirror{
  /* 占满侧栏内容宽度：原来 margin:14px 把卡片压到 188px，文字列只剩 ~48px */
  margin:12px 0 14px!important;
  gap:10px;
  padding:12px 13px 13px;
}
body.ial-v030 .sidebarAccountMirror .acctCopy{
  flex:1 1 auto;
  min-width:0;
  gap:3px;
}
body.ial-v030 .sidebarAccountMirror .acctCopy b{
  font-size:12.5px;
  line-height:1.2;
}
body.ial-v030 .sidebarAccountMirror .acctCopy small{
  font-size:9.5px;
  line-height:1.3;
}
body.ial-v030 .sidebarAccountMirror .acctAvatar{
  width:32px;
  height:32px;
  font-size:11.5px;
}
body.ial-v030 .sidebarAccountMirror .acctPlan{
  align-self:flex-start;
  margin-top:2px;
  padding:2px 7px;
  font-size:9px;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body.ial-v030 .sidebarAccountMirror .acctBtn.primary{
  padding:6px 11px;
  border-radius:9px;
  box-shadow:0 4px 12px rgba(49,94,251,.35);
}
body.ial-v030 .sidebarAccountMirror .acctIcon{
  width:28px;
  height:28px;
  border-radius:9px;
}

/* ---------------------------------------------------------------
   3. Practice 筛选区 —— 标签统一、控件对齐
   --------------------------------------------------------------- */
/* 桌面/平板：三列并排；窄屏交回原有单列堆叠规则 */
@media(min-width:681px){
  body.ial-v030:not(.workspace-mode) .practicePrimaryFilters{
    grid-template-columns:minmax(120px,.85fr) minmax(150px,1.05fr) minmax(180px,1.25fr)!important;
    align-items:end!important;
  }
}
body.ial-v030 .practicePrimaryFilters .filterField,
body.ial-v030 .advancedFilters .filterField{
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  gap:6px!important;
}
body.ial-v030 .practicePrimaryFilters .filterField>label,
body.ial-v030 .advancedFilters .filterField>label,
body.ial-v030 .practiceSearchWrap>label{
  display:block!important;
  margin:0!important;
  font-size:10.5px!important;
  font-weight:800!important;
  letter-spacing:.09em!important;
  line-height:1.1!important;
  text-transform:uppercase!important;
  color:var(--c-muted)!important;
}
body.ial-v030 .practicePrimaryFilters .filterField>select{
  width:100%!important;
  min-height:44px;
}
/* meta 行：计数与预设之间加一条细分隔线 */
body.ial-v030:not(.workspace-mode) .practiceFilterMeta{
  gap:8px;
  padding-top:2px;
}
body.ial-v030:not(.workspace-mode) .practiceFilterMeta .sessionPresetLabel{
  margin-left:4px;
  padding-left:12px;
  border-left:1px solid var(--c-line);
}
/* 主筛选与搜索行之间留出呼吸间距 */
body.ial-v030:not(.workspace-mode) .practiceSearchRow{
  margin-top:16px;
}

/* ---------------------------------------------------------------
   4. Hero 概览卡 —— 行对齐 + 轨道可见
   --------------------------------------------------------------- */
body.ial-v030 .hero .heroProfile .row{
  align-items:center;
  gap:10px;
}
body.ial-v030 .hero .heroProfile .row>b{
  font-variant-numeric:tabular-nums;
}
body.ial-v030 .hero .examDateControl{
  margin:6px 0 8px;
}
body.ial-v030 .hero .examDateButton{
  border-radius:9px;
  padding:6px 11px;
  font-size:10.5px;
  font-weight:800;
  letter-spacing:.03em;
}
body.ial-v030 .hero .goaltrack{
  height:8px!important;
  background:rgba(255,255,255,.22)!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);
  margin-top:8px!important;
}
body.ial-v030 .hero .goaltrack>span{
  background:linear-gradient(90deg,#ffffff,#cfe0ff)!important;
}

/* ---------------------------------------------------------------
   5. Papers 筛选条 —— 尺寸整齐
   --------------------------------------------------------------- */
body.ial-v030 .paperFilters .paperFilterModule{
  font-weight:800;
  letter-spacing:.01em;
  background:#f1f5fb;
  border-color:#dbe3ef;
  color:#5a6b85;
}
body.ial-v030 .paperFilters .paperFilterModule:hover{
  border-color:#b9c8de;
  color:#2d3f5c;
}
body.ial-v030 .paperFilters .paperFilterModule.active{
  background:#172033;
  border-color:#172033;
  color:#fff;
}
body.ial-v030 .paperFilters{
  gap:12px;
}
body.ial-v030 .paperFilters select{
  font-weight:600;
}
/* 桌面/平板：模块按钮组与下拉之间留出分组间距 */
@media(min-width:681px){
  body.ial-v030 .paperFilters select:first-of-type{
    margin-left:6px;
  }
}
@media(max-width:680px){
  body.ial-v030 .paperFilters{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:8px!important;
  }
  body.ial-v030 .paperFilters .paperFilterModule{
    min-height:44px!important;
    width:100%!important;
  }
  body.ial-v030 .paperFilters select{
    grid-column:1/-1!important;
    min-height:44px!important;
  }
  /* 窄屏下计数独占一行，此时不需要左侧分隔线 */
  body.ial-v030:not(.workspace-mode) .practiceFilterMeta .sessionPresetLabel{
    margin-left:0;
    padding-left:0;
    border-left:0;
  }
}

/* ---------------------------------------------------------------
   7. Summary 章节目录：宽屏两列（只作用于「目录」状态，
      打开某章后的正文仍然是单列，不会被切成两栏）
   --------------------------------------------------------------- */
body.ial-v030:not(.workspace-mode) .summaryCards:has(> .summaryChapterList){
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
}
@media(max-width:900px){
  body.ial-v030:not(.workspace-mode) .summaryCards:has(> .summaryChapterList){
    grid-template-columns:minmax(0,1fr)!important;
  }
}

/* ---------------------------------------------------------------
   8. Review 的「Paper Attempts」空态：避免标题下空一片
   --------------------------------------------------------------- */
body.ial-v030 .attemptList:empty::after{
  content:"No paper attempts yet — finish a paper and it will show up here.";
  display:block;
  padding:22px 18px;
  border:1px dashed var(--c-line);
  border-radius:var(--r-lg);
  background:#fff;
  color:var(--c-muted);
  font-size:13px;
  text-align:center;
}

/* ---------------------------------------------------------------
   9. 全局细节：焦点可见、动效偏好、选中色
   --------------------------------------------------------------- */
a:focus-visible,
button:focus-visible,
select:focus-visible,
input:focus-visible,
[tabindex]:focus-visible{
  outline:2px solid var(--c-primary);
  outline-offset:2px;
}
::selection{
  background:#cfe0ff;
  color:#0b1d36;
}
@media(prefers-reduced-motion:reduce){
  *,
  *::before,
  *::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important;
  }
}
