.language-hero { padding: 72px 4vw 34px; border-bottom: 1px solid var(--line); }
.language-hero h1 { font-size: clamp(42px, 5vw, 70px); }
.language-nav { display: grid; grid-template-columns: repeat(5, 1fr); margin: 0; padding: 0 4vw; border: 0; border-bottom: 1px solid var(--ink); }
.language-tab { min-width: 0; padding: 20px; border: 0; border-left: 1px solid var(--ink); background: transparent; text-align: center; }
.language-tab:last-child { border-right: 1px solid var(--ink); }
.language-tab strong { font-size: 14px; }
.language-tab.is-active { background: var(--ink); color: white; }
.language-content { padding: 55px 4vw 110px; }
.language-content > h2 { margin: 0 0 25px; font-size: 28px; }
.sentence-card { display: grid; grid-template-columns: 50px 1fr; border-top: 1px solid var(--ink); background: var(--cream); }
.sentence-card:last-child { border-bottom: 1px solid var(--ink); }
.sentence-number { padding: 24px 15px; border-right: 1px solid var(--line); font: 500 10px "DM Mono"; }
.segment-row { display: flex; align-items: stretch; overflow-x: auto; }
.segment { min-width: 150px; padding: 22px 24px; border: 0; border-right: 1px solid var(--line); background: transparent; text-align: left; }
.segment strong, .segment span, .segment em, .word-card strong, .word-card span, .word-card em, .grammar-card > strong, .grammar-card > span, .grammar-card > em { display: block; }
.segment strong { font: 600 25px "Noto Sans JP"; }
.segment span { margin-top: 7px; color: #77786f; font: 400 12px "Noto Sans JP"; }
.segment em { margin-top: 19px; font-style: normal; font-weight: 600; }
.word-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; border: 1px solid var(--ink); background: var(--line); }
.word-card { min-height: 180px; padding: 22px; border: 0; background: var(--cream); text-align: left; }
.word-card strong { font: 600 24px "Noto Sans JP"; }
.word-card span { margin-top: 7px; color: #77786f; font: 400 12px "Noto Sans JP"; }
.word-card em { margin-top: 35px; font-style: normal; font-weight: 600; }
.grammar-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.grammar-card { min-height: 300px; padding: 28px; border: 1px solid var(--ink); background: var(--cream); text-align: left; }
.grammar-card > strong { font: 600 30px "Noto Sans JP"; }
.grammar-card > span { margin-top: 7px; color: #77786f; font: 400 12px "Noto Sans JP"; }
.grammar-card > em { margin-top: 24px; font-size: 16px; font-style: normal; font-weight: 700; }
.grammar-card > div { margin-top: 35px; padding-top: 20px; border-top: 1px solid var(--line); }
.grammar-card b, .grammar-card small, .grammar-card p { display: block; }
.grammar-card b { font: 600 18px "Noto Sans JP"; }
.grammar-card small { margin-top: 5px; color: #77786f; font: 400 11px "Noto Sans JP"; }
.grammar-card p { margin: 12px 0 0; font-size: 13px; }
.song-studio { display: grid; grid-template-columns: 190px minmax(300px, .75fr) minmax(390px, 1.25fr); gap: 34px; }
.song-library { border-top: 1px solid var(--ink); }
.song-library > button { width: 100%; padding: 16px; border: 0; border-bottom: 1px solid var(--ink); background: var(--ink); color: white; text-align: left; }
.song-library-item { display: grid; grid-template-columns: 30px 1fr; width: 100%; padding: 16px 10px; border: 0; border-bottom: 1px solid var(--line); background: transparent; text-align: left; }
.song-library-item span { font: 500 9px "DM Mono"; }
.song-library-item strong { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.song-library-item.is-active { background: var(--green); }
.song-inputs { display: grid; gap: 22px; align-content: start; }
.song-inputs label { display: grid; gap: 9px; font-size: 12px; font-weight: 700; }
.song-inputs input, .song-inputs textarea { width: 100%; padding: 14px 0; border: 0; border-bottom: 1px solid var(--ink); border-radius: 0; outline: 0; background: transparent; resize: vertical; }
.song-inputs textarea { padding: 15px; border: 1px solid var(--ink); font: 400 15px/1.8 "Noto Sans JP"; }
.song-inputs audio { width: 100%; }
.youtube-embed:has(iframe) { aspect-ratio: 16 / 9; background: #000; }
.youtube-embed iframe { width: 100%; height: 100%; border: 0; }
.song-save { justify-self: start; padding: 12px 28px; border: 1px solid var(--ink); background: var(--ink); color: white; }
.song-actions { display: flex; gap: 8px; }
.song-delete { padding: 12px 20px; border: 1px solid var(--ink); background: transparent; }
.lyrics-sheet { border-top: 1px solid var(--ink); }
.lyrics-sheet h3 { margin: 0; padding: 22px 18px; border-bottom: 1px solid var(--ink); font-size: 25px; }
.lyric-line { display: grid; grid-template-columns: 46px 1fr; min-height: 58px; border-bottom: 1px solid var(--line); }
.lyric-line span { padding: 20px 12px; border-right: 1px solid var(--line); font: 500 9px "DM Mono"; }
.lyric-line p { margin: 0; padding: 16px 18px; font: 500 18px/1.45 "Noto Sans JP"; white-space: pre-wrap; }
@media (max-width: 850px) { .word-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) {
  .language-hero { padding: 50px 20px 25px; }
  .language-nav { grid-template-columns: repeat(2, 1fr); padding: 0 20px; }
  .language-tab:nth-child(2) { border-right: 1px solid var(--ink); }
  .language-tab:nth-child(n+3) { border-top: 1px solid var(--ink); }
  .language-content { padding: 40px 20px 80px; }
  .sentence-card { grid-template-columns: 38px 1fr; }
  .sentence-number { padding: 20px 10px; }
  .segment { min-width: 135px; padding: 20px 17px; }
  .segment strong { font-size: 21px; }
  .word-grid, .grammar-grid { grid-template-columns: 1fr; }
  .song-studio { grid-template-columns: 1fr; gap: 40px; }
  .song-library { display: grid; grid-template-columns: 110px 1fr; }
  .song-library #song-library-list { display: flex; overflow-x: auto; }
  .song-library-item { min-width: 140px; }
}
