/* A 模块局部组件。公共布局、字体、颜色变量和响应式规则来自 learning-page-system.css。 */

/* 将短行内公式与其后的中文闭合标点视为一个排版单元，避免标点孤立在下一行行首。 */
.a-math-punct{
  white-space:nowrap;
}

.a-definition,
.a-example,
.a-boundary-note{
  margin:1.35rem 0;
  padding:clamp(1rem,2.4vw,1.45rem);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  background:var(--paper);
  box-shadow:var(--soft-shadow);
}

.a-definition{
  border-left:4px solid var(--blue);
}

.a-example{
  border-left:4px solid var(--cyan);
}

.a-boundary-note{
  border-left:4px solid var(--amber);
  background:linear-gradient(90deg,var(--amber-soft),var(--paper) 52%);
}

.a-definition p:last-child,
.a-example p:last-child,
.a-boundary-note p:last-child{
  margin-bottom:0;
}

.a-decision-grid,
.a-trait-grid,
.a-relation-grid,
.a-count-grid{
  display:grid;
  gap:1rem;
  margin:1.4rem 0;
}

.a-decision-grid,
.a-relation-grid,
.a-count-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
}

.a-trait-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
}

.a-figure,
.a-trait,
.a-relation,
.a-count-card{
  min-width:0;
  margin:0;
  padding:1rem;
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  background:var(--paper);
  box-shadow:var(--soft-shadow);
}

.a-figure{
  display:flex;
  flex-direction:column;
}

.a-decision-diagram{
  display:grid;
  flex:1;
  gap:.75rem;
  padding:1rem;
  border-radius:var(--radius-md);
  background:var(--soft);
}

.a-decision-start{
  display:grid;
  gap:.3rem;
  min-height:5rem;
  padding:.8rem 1rem;
  align-content:center;
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  text-align:center;
}

.a-decision-start span{
  color:var(--muted);
  font-size:.78rem;
  font-weight:800;
}

.a-decision-start strong{
  color:var(--ink);
  font-size:1.02rem;
}

.a-decision-start.is-defined{
  border-color:var(--blue-line);
  background:var(--blue-soft);
}

.a-decision-start.is-undefined{
  border-color:var(--amber-line);
  background:var(--amber-soft);
}

.a-decision-case{
  display:grid;
  grid-template-columns:minmax(92px,1fr) auto minmax(82px,.9fr) auto minmax(72px,.72fr);
  gap:.45rem;
  align-items:center;
  padding:.7rem;
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  background:var(--paper);
  text-align:center;
}

.a-candidate,
.a-decision-reason,
.a-decision-result{
  display:grid;
  min-height:2.8rem;
  padding:.45rem .55rem;
  place-items:center;
  border-radius:var(--radius-sm);
}

.a-candidate{
  background:var(--blue-soft);
  color:var(--blue-deep);
  font-weight:800;
}

.a-decision-reason{
  background:var(--paper-strong);
  color:var(--body);
  font-size:.86rem;
}

.a-flow-arrow{
  color:var(--purple);
  font-weight:900;
}

.a-decision-result{
  border:1px solid var(--line);
  font-family:var(--font-math);
}

.a-decision-result.is-in{
  border-color:var(--cyan-line);
  background:var(--cyan-soft);
  color:var(--cyan-deep);
}

.a-decision-result.is-out{
  border-color:var(--red-line);
  background:var(--red-soft);
  color:var(--red-deep);
}

.a-decision-result.is-unknown{
  border-color:var(--amber-line);
  background:var(--amber-soft);
  color:var(--amber-deep);
  font-family:var(--font-sans);
  font-size:.85rem;
}

.a-missing-standard{
  display:grid;
  gap:.25rem;
  padding:.8rem 1rem;
  border-left:4px solid var(--amber);
  border-radius:var(--radius-sm);
  background:var(--paper);
}

.a-missing-standard strong{
  color:var(--amber-deep);
}

.a-missing-standard span{
  color:var(--body);
  font-size:.88rem;
}

.a-decision-conclusion{
  padding:.75rem 1rem;
  border-radius:var(--radius-sm);
  font-weight:800;
  text-align:center;
}

.a-decision-conclusion.is-defined{
  background:var(--cyan-soft);
  color:var(--cyan-deep);
}

.a-decision-conclusion.is-undefined{
  background:var(--amber-soft);
  color:var(--amber-deep);
}

.a-figure figcaption{
  margin-top:.9rem;
  padding-top:.85rem;
  border-top:1px solid var(--line);
  color:var(--body);
  font-size:.92rem;
}

.a-observe{
  margin:1.45rem 0 .75rem;
  color:var(--blue-deep);
  font-weight:800;
}

.a-observe::before{
  display:inline-block;
  width:.65rem;
  height:.65rem;
  margin-right:.48rem;
  border-radius:50%;
  background:var(--blue);
  content:"";
}

.a-trait{
  border-top:3px solid var(--blue-line);
}

.a-trait:nth-child(2){border-top-color:var(--purple-line)}
.a-trait:nth-child(3){border-top-color:var(--cyan-line)}

.a-trait h3,
.a-relation h3,
.a-count-card h3{
  margin:0 0 .55rem;
  color:var(--blue-deep);
}

.a-trait p:last-child,
.a-relation p:last-child,
.a-count-card p:last-child{
  margin-bottom:0;
}

.a-relation{
  text-align:center;
}

.a-relation-symbol{
  display:block;
  margin:.25rem 0 .75rem;
  color:var(--ink);
  font-family:var(--font-math);
  font-size:clamp(1.35rem,3vw,1.8rem);
  font-weight:800;
}

.a-relation.is-in{
  border-top:4px solid var(--cyan);
}

.a-relation.is-out{
  border-top:4px solid var(--red);
}

.a-number-sets{
  max-width:100%;
  margin:1.4rem 0;
  overflow-x:auto;
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  background:var(--paper);
  box-shadow:var(--soft-shadow);
}

.a-number-sets table{
  width:100%;
  min-width:650px;
  border-collapse:collapse;
}

.a-number-sets th,
.a-number-sets td{
  padding:.82rem .95rem;
  border-bottom:1px solid var(--line);
  text-align:left;
  vertical-align:top;
}

.a-number-sets th{
  background:var(--blue-soft);
  color:var(--blue-deep);
  font-size:.9rem;
}

.a-number-sets tr:last-child td{
  border-bottom:0;
}

.a-count-card strong{
  display:block;
  margin:.2rem 0 .6rem;
  color:var(--purple-deep);
  font-family:var(--font-math);
  font-size:1.22rem;
}

.a-summary-line{
  margin-top:1rem;
  color:var(--ink);
  font-family:var(--font-serif);
  font-size:clamp(1.15rem,2.4vw,1.45rem);
  font-weight:700;
}

/* 02 集合的表示：列举、描述与双向核对。 */

.a-representation-formula{
  max-width:100%;
  margin:1.2rem 0;
  padding:1rem clamp(.8rem,3vw,1.4rem);
  overflow-x:auto;
  border:1px solid var(--blue-line);
  border-radius:var(--radius-md);
  background:var(--blue-soft);
  color:var(--blue-deep);
  font-size:clamp(1.05rem,2.6vw,1.35rem);
  text-align:center;
}

.a-representation-formula mjx-container[display="true"]{
  margin:.2rem 0 !important;
}

.a-representation-formula.is-compact{
  max-width:680px;
}

.a-representation-formula.is-warning{
  border-color:var(--amber-line);
  background:var(--amber-soft);
  color:var(--amber-deep);
}

.a-representation-figure{
  min-width:0;
  margin:0 0 1.25rem;
  padding:clamp(.85rem,2.5vw,1.2rem);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  background:var(--paper);
  box-shadow:var(--soft-shadow);
}

.a-representation-figure figcaption{
  margin-top:1rem;
  padding-top:.85rem;
  border-top:1px solid var(--line);
  color:var(--body);
  font-size:.92rem;
}

.a-enumeration-flow{
  display:grid;
  grid-template-columns:minmax(110px,.75fr) auto minmax(180px,1.1fr) auto minmax(260px,1.65fr);
  gap:.75rem;
  align-items:center;
  padding:clamp(.8rem,2.4vw,1.2rem);
  border-radius:var(--radius-md);
  background:var(--soft);
}

.a-flow-source,
.a-flow-condition{
  display:grid;
  min-height:5.5rem;
  padding:.8rem;
  align-content:center;
  gap:.25rem;
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  background:var(--paper);
  text-align:center;
}

.a-flow-source span,
.a-flow-condition span{
  color:var(--muted);
  font-size:.78rem;
  font-weight:800;
}

.a-flow-source{
  border-color:var(--blue-line);
  background:var(--blue-soft);
}

.a-flow-condition{
  border-color:var(--purple-line);
  background:var(--purple-soft);
}

.a-representation-arrow{
  color:var(--purple);
  font-size:1.25rem;
  font-weight:900;
}

.a-flow-elements{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:.45rem;
}

.a-flow-elements span{
  display:grid;
  min-height:2.6rem;
  place-items:center;
  border:1px solid var(--cyan-line);
  border-radius:var(--radius-sm);
  background:var(--cyan-soft);
  color:var(--cyan-deep);
  font-family:var(--font-math);
  font-weight:800;
}

.a-description-anatomy{
  display:grid;
  grid-template-columns:auto minmax(62px,.7fr) auto minmax(62px,.7fr) auto minmax(92px,1fr) auto;
  gap:clamp(.25rem,1.4vw,.8rem);
  padding:clamp(1rem,3vw,1.5rem);
  align-items:center;
  border-radius:var(--radius-md);
  background:var(--soft);
  text-align:center;
}

.a-anatomy-brace,
.a-anatomy-symbol{
  color:var(--ink);
  font-family:var(--font-math);
  font-size:clamp(1.35rem,4vw,2rem);
}

.a-anatomy-part{
  display:grid;
  min-height:6rem;
  padding:.75rem .45rem;
  place-content:center;
  gap:.35rem;
  border:1px solid var(--line);
  border-radius:var(--radius-md);
}

.a-anatomy-part strong{
  font-family:var(--font-math);
  font-size:clamp(1.3rem,3.6vw,1.8rem);
}

.a-anatomy-part small{
  color:var(--body);
  font-size:.78rem;
  font-weight:800;
}

.a-anatomy-part.is-object{
  border-color:var(--blue-line);
  background:var(--blue-soft);
}

.a-anatomy-part.is-domain{
  border-color:var(--purple-line);
  background:var(--purple-soft);
}

.a-anatomy-part.is-condition{
  border-color:var(--amber-line);
  background:var(--amber-soft);
}

.a-equivalence-check{
  display:grid;
  gap:.8rem;
  padding:clamp(.8rem,2.4vw,1.15rem);
  border-radius:var(--radius-md);
  background:var(--soft);
}

.a-equivalence-row{
  display:grid;
  grid-template-columns:minmax(150px,.8fr) minmax(0,2fr) minmax(88px,.55fr);
  gap:.8rem;
  padding:.9rem 1rem;
  align-items:center;
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  background:var(--paper);
}

.a-equivalence-row strong{
  color:var(--purple-deep);
}

.a-equivalence-row span{
  color:var(--body);
}

.a-equivalence-row em{
  padding:.4rem .55rem;
  border:1px solid var(--cyan-line);
  border-radius:var(--radius-pill);
  background:var(--cyan-soft);
  color:var(--cyan-deep);
  font-size:.82rem;
  font-style:normal;
  font-weight:800;
  text-align:center;
}

.a-method-guide{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
  margin:1.35rem 0;
  padding:clamp(.8rem,2.4vw,1.15rem);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  background:var(--paper);
  box-shadow:var(--soft-shadow);
}

.a-method-guide article{
  padding:.9rem 1rem;
  border-left:4px solid var(--blue);
  border-radius:var(--radius-sm);
  background:var(--blue-soft);
}

.a-method-guide article:nth-child(2){
  border-left-color:var(--purple);
  background:var(--purple-soft);
}

.a-method-guide h3{
  margin:0 0 .45rem;
  color:var(--ink);
  font-size:1rem;
}

.a-method-guide p:last-child{
  margin-bottom:0;
}

@media (max-width:820px){
  .a-trait-grid{
    grid-template-columns:1fr;
  }

  .a-enumeration-flow{
    grid-template-columns:1fr;
  }

  .a-representation-arrow{
    transform:rotate(90deg);
    justify-self:center;
  }

  .a-flow-elements{
    grid-template-columns:repeat(5,minmax(0,1fr));
  }
}

@media (max-width:640px){
  .a-decision-grid,
  .a-relation-grid,
  .a-count-grid{
    grid-template-columns:1fr;
  }

  .a-decision-case{
    grid-template-columns:1fr;
    gap:.3rem;
  }

  .a-flow-arrow{
    transform:rotate(90deg);
  }

  .a-figure,
  .a-trait,
  .a-relation,
  .a-count-card{
    padding:.85rem;
  }

  .a-number-sets table{
    min-width:590px;
  }

  .a-description-anatomy{
    grid-template-columns:auto minmax(48px,.65fr) auto minmax(48px,.65fr) auto minmax(72px,1fr) auto;
    gap:.22rem;
    padding:.8rem .4rem;
  }

  .a-anatomy-part{
    min-height:5.25rem;
    padding:.55rem .25rem;
  }

  .a-anatomy-part small{
    font-size:.68rem;
  }

  .a-equivalence-row,
  .a-method-guide{
    grid-template-columns:1fr;
  }

  .a-equivalence-row{
    gap:.45rem;
  }

  .a-equivalence-row em{
    width:max-content;
  }

  .a-flow-elements{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media (max-width:380px){
  .a-representation-formula.is-long-list{
    padding-inline:.6rem;
    font-size:.96rem;
  }
}

@media print{
  .a-definition,
  .a-example,
  .a-boundary-note,
  .a-figure,
  .a-trait,
  .a-relation,
  .a-number-sets,
  .a-count-card,
  .a-representation-figure,
  .a-method-guide{
    box-shadow:none;
  }
}

/* A 模块总目录：自然呈现学习顺序，已开放文章整卡可点击。 */
.a-catalog{
  --a-catalog-small:#626d7a;
}

.a-nav-compact{
  display:none;
}

.a-catalog-link-card{
  border:1px solid var(--line);
  background:var(--paper);
  box-shadow:var(--soft-shadow);
  text-decoration:none;
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}

.a-catalog-link-card:hover,
.a-catalog-link-card:focus-visible{
  border-color:var(--blue-line);
  box-shadow:0 4px 12px rgba(23,32,47,.07),0 14px 28px rgba(23,32,47,.06);
  transform:translateY(-2px);
}

.a-catalog-link-card:focus-visible{
  outline:3px solid rgba(23,107,135,.48);
  outline-offset:3px;
}

.a-catalog-link-arrow{
  color:var(--blue-deep);
  font-size:1.35rem;
  font-weight:900;
  line-height:1;
  transition:transform .18s ease;
}

.a-catalog-link-card:hover .a-catalog-link-arrow,
.a-catalog-link-card:focus-visible .a-catalog-link-arrow{
  transform:translateX(3px);
}

.a-route-list{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:.75rem;
  margin:1.65rem 0;
  padding:0;
  list-style:none;
}

.a-route-list li{
  display:grid;
  min-width:0;
  min-height:104px;
  padding:.9rem;
  align-content:start;
  gap:.45rem;
  border:1px solid var(--line);
  border-top:3px solid var(--blue);
  border-radius:var(--radius-md);
  background:var(--paper);
  box-shadow:var(--soft-shadow);
}

.a-route-index{
  color:var(--blue-deep);
  font-family:var(--font-serif);
  font-size:.78rem;
  font-weight:900;
}

.a-route-list strong{
  font-size:.92rem;
  line-height:1.5;
}

.a-catalog-chapter{
  margin:2rem 0 0;
}

.a-catalog-chapter + .a-catalog-chapter{
  margin-top:2.75rem;
}

.a-catalog-chapter-head{
  display:block;
  padding:0 0 1rem;
}

.a-catalog-chapter-head h3{
  margin:0 0 .3rem;
  font-family:var(--font-serif);
  font-size:clamp(1.15rem,2vw,1.45rem);
}

.a-catalog-chapter-head p{
  margin:0;
  color:var(--muted);
  font-size:.92rem;
}

.a-lesson-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
  margin:0;
  padding:0;
  list-style:none;
}

.a-lesson-list li{
  display:flex;
  min-width:0;
  margin:0;
}

.a-lesson-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-rows:auto 1fr auto;
  width:100%;
  min-height:238px;
  padding:1.25rem;
  align-items:start;
  gap:1rem;
  border-left:1px solid var(--line);
  border-top:4px solid var(--line-strong);
  border-radius:var(--radius-lg);
}

.a-lesson-row.is-live{
  border-left-color:var(--line);
  border-top-color:var(--blue);
}

.a-lesson-row.is-live:hover,
.a-lesson-row.is-live:focus-visible{
  border-left-color:var(--blue-line);
  border-top-color:var(--blue);
}

.a-lesson-row.is-pending{
  border-left-color:var(--line);
  border-top-color:var(--line-strong);
  background:var(--soft);
  color:var(--muted);
}

.a-lesson-index{
  display:inline-flex;
  width:max-content;
  min-width:42px;
  min-height:32px;
  padding:.25rem .65rem;
  align-items:center;
  justify-content:center;
  border-radius:var(--radius-pill);
  background:var(--blue-soft);
  color:var(--blue-deep);
  font-family:var(--font-serif);
  font-size:.8rem;
  font-weight:900;
}

.a-lesson-row.is-pending .a-lesson-index{
  border:1px solid var(--line);
  background:var(--paper);
  color:var(--a-catalog-small);
}

.a-lesson-copy{
  display:grid;
  grid-column:1 / -1;
  grid-row:2;
  min-width:0;
  align-content:start;
  gap:.65rem;
}

.a-lesson-copy strong{
  font-family:var(--font-serif);
  font-size:1.12rem;
  line-height:1.4;
}

.a-lesson-copy small{
  color:var(--a-catalog-small);
  font-size:.88rem;
  line-height:1.75;
}

.a-lesson-row.is-pending .a-lesson-copy strong{
  color:#53606e;
}

.a-lesson-row .a-catalog-link-arrow{
  grid-column:2;
  grid-row:3;
  align-self:end;
  justify-self:end;
}

.a-lesson-availability{
  grid-column:1 / -1;
  grid-row:3;
  align-self:end;
  justify-self:start;
  color:var(--a-catalog-small);
  font-size:.75rem;
  line-height:1.5;
  white-space:nowrap;
}

@media(max-width:1023px){
  .a-route-list{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:720px){
  .a-lesson-list{
    grid-template-columns:minmax(0,1fr);
  }

  .a-lesson-row{
    min-height:210px;
  }
}

@media(max-width:640px){
  .a-catalog .topbar .nav-link[href="#learning-path"]{
    display:none;
  }

  .a-catalog .topbar .nav-link{
    padding:.48rem .5rem;
  }

  .a-nav-wide{
    display:none;
  }

  .a-nav-compact{
    display:inline;
  }

  .a-route-list{
    grid-template-columns:1fr;
    gap:.65rem;
  }

  .a-lesson-row{
    grid-template-columns:minmax(0,1fr) auto;
    min-height:196px;
    padding:1rem;
    gap:.85rem;
  }

  .a-lesson-availability{
    justify-self:start;
    white-space:normal;
  }
}

@media(prefers-reduced-motion:reduce){
  .a-catalog-link-card,
  .a-catalog-link-arrow{
    transition:none;
  }

  .a-catalog-link-card:hover,
  .a-catalog-link-card:focus-visible,
  .a-catalog-link-card:hover .a-catalog-link-arrow,
  .a-catalog-link-card:focus-visible .a-catalog-link-arrow{
    transform:none;
  }
}

@media print{
  .a-route-list li,
  .a-lesson-row{
    box-shadow:none;
    break-inside:avoid;
  }
}
