.academy h2 { margin: 1.5rem 0 0.5rem; font-size: 1rem; font-weight: 500; color: var(--muted); }
.academy .note { text-align: left; font-size: 1rem; color: var(--muted); }
.ac-cards { display: grid; gap: 0.5rem; }
.ac-card {
  display: grid;
  gap: 0.25rem;
  padding: 0.85rem 1rem;
  border-radius: 0.9rem;
  background: var(--card);
  box-shadow: inset 0 0 0 1px var(--line);
}
.ac-card.is-off { opacity: 0.6; }
.ac-card strong { font-size: 1.05rem; font-weight: 600; }
.ac-card span { color: var(--muted); font-size: 0.95rem; }
.ac-card .ac-pass { color: var(--accent); font-weight: 600; }
.ac-card .ac-pass.is-low { color: #e0a526; }
.ac-card .ac-pass.is-no { color: var(--danger); }
.ac-bill-top { display: flex; justify-content: space-between; gap: 1rem; }
.ac-bill-top strong:last-child { font-variant-numeric: tabular-nums; white-space: nowrap; }
.academy .mark { font-weight: 600; }
.academy .mark.is-present, .academy .mark.is-makeup { color: var(--accent); }
.academy .mark.is-late { color: #e0a526; }
.academy .mark.is-absent { color: var(--danger); }
.ac-owed { margin: 0 0 0.5rem; font-size: 1.05rem; font-weight: 600; }
.ac-pay { margin-top: 0.75rem; padding: 0.9rem 1rem; border-radius: 0.9rem; background: var(--card); box-shadow: inset 0 0 0 1px var(--accent); }
.ac-pay p { margin: 0; line-height: 1.5; }
.ac-pay .label { margin-top: 0.6rem; color: var(--muted); font-size: 0.9rem; }
.ac-pay .bank { font-size: 1.15rem; font-weight: 600; font-variant-numeric: tabular-nums; user-select: all; }
.ac-pay .memo { margin-top: 0.5rem; color: var(--muted); white-space: pre-line; }
ul.ac-marks { margin: 0; padding: 0; list-style: none; border-radius: 0.9rem; background: var(--card); box-shadow: inset 0 0 0 1px var(--line); }
ul.ac-marks li { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr) auto; gap: 0.6rem; padding: 0.6rem 1rem; border-top: 1px solid var(--line); }
ul.ac-marks li:first-child { border-top: 0; }
ul.ac-marks .what { color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ac-tests { gap: 0.5rem; }
.ac-tests ul.ac-marks { margin: 0 -1rem -0.85rem; border-radius: 0 0 0.9rem 0.9rem; background: none; box-shadow: none; }
.ac-tests ul.ac-marks li:first-child { border-top: 1px solid var(--line); }
.ac-tests ul.ac-marks .what { color: var(--ink); white-space: normal; word-break: keep-all; overflow-wrap: anywhere; }
.ac-tests ul.ac-marks .what small { display: block; color: var(--muted); font-size: 0.85rem; }
.ac-tests .mark.score { font-variant-numeric: tabular-nums; white-space: nowrap; }
.ac-trend svg { display: block; width: 100%; height: auto; overflow: visible; }
.ac-trend .grid { stroke: var(--line); }
.ac-trend .mine { fill: none; stroke: var(--accent); stroke-width: 3; stroke-linejoin: round; stroke-linecap: round; }
.ac-trend .avg { fill: none; stroke: var(--muted); stroke-width: 2; stroke-dasharray: 4 4; }
.ac-trend .dot { fill: var(--accent); }
.ac-trend text { fill: var(--ink); font-size: 11px; font-weight: 600; }
.ac-trend text.day { fill: var(--muted); font-size: 10px; font-weight: 400; }
.ac-legend { display: flex; gap: 1rem; margin: 0; color: var(--muted); font-size: 0.85rem; }
.ac-legend span::before { content: ""; display: inline-block; width: 1rem; margin-right: 0.35rem; vertical-align: middle; border-top: 3px solid var(--accent); }
.ac-legend span.avg::before { border-top: 2px dashed var(--muted); }
