.jmt-app {
  --jmt-night: #11151d;
  --jmt-panel: #1a1f29;
  --jmt-panel-2: #222834;
  --jmt-ember: #e55235;
  --jmt-ember-dark: #bd3d28;
  --jmt-mint: #3bd39f;
  --jmt-paper: #f7f3ec;
  --jmt-ink: #161a20;
  --jmt-slate: #747b88;
  --jmt-line: #dfe1e5;
  --jmt-serif: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
  --jmt-sans: "Avenir Next", "Hiragino Sans", "Yu Gothic", "Noto Sans CJK JP", sans-serif;
  --jmt-mono: "SFMono-Regular", "JetBrains Mono", Menlo, monospace;
  --jmt-width: min(1440px, calc(100% + 28px));
  width: var(--jmt-width) !important;
  max-width: none !important;
  position: relative;
  left: -14px;
  margin: 20px 0 20px -16px !important;
  color: var(--jmt-ink);
  font-family: var(--jmt-sans);
  font-size: 15px;
  line-height: 1.58;
  -webkit-font-smoothing: antialiased;
}

.jmt-course-page .wp-block-post-title { display: none; }

.jmt-app *, .jmt-app *::before, .jmt-app *::after { box-sizing: border-box; }
.jmt-app button { font: inherit; }
.jmt-app button { cursor: pointer; }
.jmt-app svg { width: 1.15em; height: 1.15em; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.jmt-app button:focus-visible, .jmt-app input:focus-visible, .jmt-app textarea:focus-visible, .jmt-app a:focus-visible { outline: 3px solid #77b8ff; outline-offset: 3px; }

.jmt-loading, .jmt-error {
  min-height: 420px;
  display: grid;
  place-content: center;
  justify-items: center;
  padding: 40px;
  border: 1px solid var(--jmt-line);
  background: #fff;
  text-align: center;
}

.jmt-loading span { width: 40px; height: 40px; border: 2px solid #ddd; border-top-color: var(--jmt-ember); border-radius: 50%; animation: jmt-spin .8s linear infinite; }
.jmt-loading p { color: var(--jmt-slate); }
.jmt-error strong { font-size: 24px; }
.jmt-error p { color: var(--jmt-slate); }
@keyframes jmt-spin { to { transform: rotate(360deg); } }

.jmt-btn {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 8px 18px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-weight: 700;
  letter-spacing: .01em;
  text-decoration: none;
  transition: transform .18s ease, background .18s ease, border-color .18s ease;
}
.jmt-btn:hover { transform: translateY(-1px); }
.jmt-btn-primary { background: var(--jmt-ember); color: #fff; }
.jmt-btn-primary:hover { background: var(--jmt-ember-dark); color: #fff; }
.jmt-btn-danger { background: var(--jmt-ember); color: #fff; }
.jmt-btn-ghost { background: transparent; border-color: currentColor; color: inherit; }
.jmt-btn:disabled { cursor: not-allowed; opacity: .45; transform: none; }
.jmt-kicker { margin: 0 0 10px; color: var(--jmt-ember); font-family: var(--jmt-mono); font-size: 12px; font-weight: 800; letter-spacing: .22em; text-transform: uppercase; }

/* Course entrance: an agenda pinned beside one strong typographic promise. */
.jmt-intro {
  min-height: 520px;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(390px, .85fr);
  align-items: center;
  gap: clamp(28px, 5vw, 72px);
  padding: clamp(36px, 5vw, 72px);
  overflow: hidden;
  border: 1px solid #e4ded5;
  border-radius: 28px;
  background: var(--jmt-paper);
}
.jmt-intro-copy h1 { margin: 0; color: var(--jmt-ink); font-family: var(--jmt-serif); font-size: clamp(40px, 4.8vw, 68px); font-weight: 500; letter-spacing: -.045em; line-height: 1.08; }
.jmt-intro-copy h1 span { color: var(--jmt-ember); }
.jmt-lead { max-width: 560px; margin: 20px 0 24px; color: #555c67; font-size: clamp(16px, 1.2vw, 18px); }
.jmt-intro-actions { display: flex; align-items: center; gap: 14px; }
.jmt-intro-actions > span { color: var(--jmt-slate); font-size: 13px; }
.jmt-intro-board { position: relative; padding: 20px 22px 24px; background: var(--jmt-night); color: #e9edf3; border-radius: 4px 4px 28px 4px; box-shadow: 28px 34px 0 #e8dfd2; transform: rotate(1deg); }
.jmt-intro-board::after { content: ""; position: absolute; top: -14px; right: 38px; width: 46px; height: 28px; border: 4px solid var(--jmt-ember); border-bottom: 0; border-radius: 10px 10px 0 0; }
.jmt-board-header { display: flex; align-items: center; gap: 10px; padding-bottom: 14px; border-bottom: 1px solid #303642; color: #8e96a4; font-family: var(--jmt-mono); font-size: 11px; letter-spacing: .08em; }
.jmt-board-header span:last-child { margin-left: auto; }
.jmt-live-dot { width: 9px; height: 9px; display: inline-block; flex: 0 0 auto; border-radius: 50%; background: var(--jmt-ember); box-shadow: 0 0 0 5px rgba(229,82,53,.12); }
.jmt-board-title { padding: 20px 0 14px; }
.jmt-board-title small { display: block; color: #8e96a4; font-size: 12px; }
.jmt-board-title strong { display: block; margin-top: 8px; font-family: var(--jmt-serif); font-size: clamp(24px, 2.6vw, 38px); font-weight: 600; line-height: 1.35; }
.jmt-intro-board ol { margin: 0; padding: 0; list-style: none; }
.jmt-intro-board li { display: grid; grid-template-columns: 38px 1fr auto; align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid #2d333e; }
.jmt-intro-board li > span, .jmt-intro-board time { color: #727b8a; font-family: var(--jmt-mono); font-size: 11px; }
.jmt-intro-board li b { font-size: 14px; }

/* A quiet threshold before the active meeting: one lesson, one action. */
.jmt-intro-minimal {
  min-height: 420px;
  grid-template-columns: 1fr;
  place-items: center;
  padding: clamp(44px, 8vw, 112px) clamp(20px, 6vw, 88px);
  text-align: center;
}
.jmt-intro-minimal-inner {
  width: min(880px, 100%);
  display: grid;
  justify-items: center;
  gap: clamp(28px, 4vw, 42px);
}
.jmt-intro-minimal h1 {
  margin: 0;
  color: var(--jmt-ink);
  font-family: var(--jmt-serif);
  font-size: clamp(40px, 5vw, 72px);
  font-weight: 600;
  letter-spacing: -.045em;
  line-height: 1.2;
  overflow-wrap: anywhere;
}
.jmt-intro-minimal .jmt-btn { min-width: 156px; }

.jmt-course-nav { min-height: 48px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 12px; padding: 6px 16px; border: 1px solid #dfe1e5; background: #fff; color: #68717c; font-size: 12px; }
.jmt-course-nav.is-top { margin-bottom: 10px; border-radius: 14px; }
.jmt-course-nav.is-bottom { margin-top: 14px; border-radius: 14px; }
.jmt-course-nav > div:last-child { text-align: right; }
.jmt-course-nav > div { min-width: 0; }
.jmt-course-nav.is-top > div:first-child { display: flex; align-items: center; gap: 4px; overflow: hidden; white-space: nowrap; }
.jmt-course-nav.is-top > div:first-child a { overflow: hidden; text-overflow: ellipsis; }
.jmt-course-nav > span { font-family: var(--jmt-mono); font-size: 11px; font-weight: 700; letter-spacing: .08em; }
.jmt-course-nav a { color: var(--jmt-ink); font-weight: 700; text-decoration: none; }
.jmt-course-nav a:hover { color: var(--jmt-ember); }
.jmt-course-nav div > span { color: #a2a8af; }
.jmt-course-picker { position: relative; display: inline-block; text-align: left; }
.jmt-course-picker-toggle { min-height: 34px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 6px 10px; border: 1px solid #d3d8dc; border-radius: 8px; background: #f7f8f8; color: #26323b; font-size: 11px; font-weight: 750; white-space: nowrap; }
.jmt-course-picker-toggle:hover { border-color: #aeb7bd; background: #fff; }
.jmt-course-picker-toggle svg { width: 13px; height: 13px; transition: transform .16s ease; }
.jmt-course-picker-toggle[aria-expanded="true"] { border-color: #d88d7b; background: #fff3ef; color: #a93c28; }
.jmt-course-picker-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.jmt-course-picker-panel { position: absolute; z-index: 100; top: calc(100% + 8px); right: 0; width: min(360px, calc(100vw - 48px)); max-height: min(420px, 65vh); overflow-y: auto; padding: 10px; border: 1px solid #d8dde0; border-radius: 12px; background: #fff; box-shadow: 0 18px 45px rgba(27,36,43,.18); }
.jmt-course-nav.is-bottom .jmt-course-picker-panel { top: auto; bottom: calc(100% + 8px); }
.jmt-course-picker-panel[hidden] { display: none; }
.jmt-course-picker-panel header { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; padding: 4px 5px 9px; border-bottom: 1px solid #e5e8ea; }
.jmt-course-picker-panel header b { overflow: hidden; color: #26313a; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.jmt-course-picker-panel header span { color: #78838c; font-family: var(--jmt-mono); font-size: 9px; white-space: nowrap; }
.jmt-course-picker-panel ul { margin: 7px 0 0; padding: 0; list-style: none; }
.jmt-course-picker-panel li + li { margin-top: 3px; }
.jmt-course-picker-panel li a { min-height: 42px; display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 7px 9px; border: 1px solid transparent; border-radius: 8px; color: #28343d; font-weight: 600; }
.jmt-course-picker-panel li a > span { color: #89949c; font-family: var(--jmt-mono); font-size: 9px; }
.jmt-course-picker-panel li a > b { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.jmt-course-picker-panel li a > em { padding: 1px 6px; border-radius: 999px; background: #f6d8d0; color: #9e3421; font-size: 9px; font-style: normal; }
.jmt-course-picker-panel li a:hover { border-color: #e2e5e7; background: #f6f8f8; color: #1e2a33; }
.jmt-course-picker-panel li a[aria-current="page"] { border-color: #e8b7aa; background: #fff0ec; color: #a53824; box-shadow: inset 3px 0 0 var(--jmt-ember); }

/* Meeting room */
.jmt-meeting {
  height: 660px;
  min-height: 660px;
  max-height: 660px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #2b3039;
  border-radius: 24px;
  background: var(--jmt-night);
  color: #f1f3f6;
  box-shadow: 0 22px 60px rgba(17,21,29,.18);
}
.jmt-meeting-body {
  min-height: 0;
  flex: 1 1 auto;
  display: grid;
  grid-template-rows: minmax(0, 1fr) 48px 52px;
  overflow-x: hidden;
  overflow-y: hidden;
}
.jmt-intro + .jmt-study,
.jmt-meeting + .jmt-study,
.jmt-quiz + .jmt-study,
.jmt-report + .jmt-study { margin-top: 14px; }
.jmt-meeting-head { height: 48px; min-height: 48px; display: flex; align-items: center; justify-content: space-between; padding: 0 22px; border-bottom: 1px solid #2a3039; }
.jmt-meeting-title { min-width: 0; display: flex; align-items: center; gap: 12px; }
.jmt-meeting-head strong { font-size: 15px; }
.jmt-meeting-head em { padding: 1px 7px; border: 1px solid #39404b; border-radius: 4px; color: #8f97a4; font-size: 10px; font-style: normal; }
.jmt-meeting-head time { display: flex; gap: 6px; color: #828a98; font-family: var(--jmt-mono); font-size: 12px; font-weight: 700; }
.jmt-meeting-head time span { color: #f5f6f7; }
.jmt-meeting-head time i { color: #4e5663; font-style: normal; }
.jmt-meeting-head-actions { flex: 0 0 auto; display: flex; align-items: center; gap: 12px; }
.jmt-fullscreen { min-height: 32px; display: inline-flex; align-items: center; gap: 6px; padding: 5px 9px; border: 1px solid #3b444f; border-radius: 7px; background: #202630; color: #e9edf0; font-size: 11px; font-weight: 700; cursor: pointer; }
.jmt-fullscreen svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.jmt-fullscreen:hover { border-color: #697582; background: #2b333e; }
.jmt-fullscreen:focus-visible { outline: 3px solid #77b8ff; outline-offset: 2px; }
.jmt-meeting-grid { min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr) 220px; gap: 10px; padding: 8px 16px 0; }
.jmt-meeting-grid > main { min-width: 0; min-height: 0; display: flex; flex-direction: column; }
.jmt-participants { --jmt-person-size: min(130px, calc((100% - 24px) / 4)); flex: 0 0 auto; display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: flex-start; gap: 8px; }
.jmt-person { position: relative; width: var(--jmt-person-size); height: auto; min-width: 0; min-height: 0; flex: 0 0 var(--jmt-person-size); aspect-ratio: 1; display: grid; place-content: center; justify-items: center; gap: 5px; border: 2px solid #303642; border-radius: 12px; background: #1c212b; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.jmt-person > b { position: absolute; right: 10px; bottom: 9px; left: 10px; overflow: hidden; padding: 3px 8px; border-radius: 5px; background: #0d1118; font-size: 12px; line-height: 1.3; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.jmt-avatar { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; background: var(--person); color: #fff; font-family: var(--jmt-serif); font-size: 24px; }
.jmt-levels { position: absolute; top: 10px; right: 10px; display: none; align-items: end; gap: 2px; }
.jmt-levels i { width: 3px; border-radius: 4px; background: var(--jmt-mint); animation: jmt-level .6s ease-in-out infinite alternate; }
.jmt-levels i:nth-child(1) { height: 7px; }
.jmt-levels i:nth-child(2) { height: 13px; animation-delay: -.2s; }
.jmt-levels i:nth-child(3) { height: 9px; animation-delay: -.4s; }
.jmt-levels i:nth-child(4) { height: 15px; animation-delay: -.1s; }
.jmt-person.is-speaking { border-color: var(--jmt-mint); box-shadow: 0 0 0 1px var(--jmt-mint), 0 0 24px rgba(59,211,159,.24); transform: translateY(-2px); }
.jmt-person.is-speaking .jmt-levels { display: flex; }
.jmt-person[data-person="learner"].is-speaking { border-color: var(--jmt-ember); box-shadow: 0 0 0 1px var(--jmt-ember), 0 0 24px rgba(229,82,53,.28); }
.jmt-person[data-person="learner"].is-speaking .jmt-levels i { background: var(--jmt-ember); }
@keyframes jmt-level { to { height: 4px; } }

.jmt-transcript-panel { height: auto; min-height: 0; display: flex; flex-direction: column; margin-top: 8px; overflow: hidden; border: 1px solid #303642; border-radius: 14px; background: #191e27; }
.jmt-panel-label { height: 36px; min-height: 36px; display: flex; align-items: center; justify-content: space-between; padding: 0 12px; border-bottom: 1px solid #303642; color: #8f97a5; font-family: var(--jmt-mono); font-size: 10px; font-weight: 700; letter-spacing: .06em; }
.jmt-panel-label span:last-child { color: var(--jmt-mint); }
.jmt-transcript { min-height: 0; flex: 1 1 auto; overflow-x: hidden; overflow-y: auto; overscroll-behavior-x: contain; overscroll-behavior-y: auto; touch-action: pan-y; -webkit-overflow-scrolling: touch; padding: 10px 12px; scrollbar-color: #4d5664 #191e27; scrollbar-width: thin; }
.jmt-empty-line { color: #626b78; text-align: center; }
.jmt-transcript article { position: relative; max-width: 100%; margin: 0 0 10px; padding-left: 14px; border-left: 2px solid #3a424e; }
.jmt-transcript article:last-child { margin-bottom: 0; }
.jmt-transcript article.is-current { border-left-color: var(--jmt-mint); }
.jmt-transcript article::before { content: ""; position: absolute; top: 4px; left: -5px; width: 8px; height: 8px; border-radius: 50%; background: #626b78; }
.jmt-transcript article b { color: #959daa; font-size: 12px; }
.jmt-transcript article p { margin: 2px 0; color: #f0f2f5; font-size: 15px; line-height: 1.45; }
.jmt-transcript article small { color: #78818f; font-size: 12px; }
.jmt-transcript article.is-self { margin-left: 4%; padding: 8px 12px; border-left: 3px solid var(--jmt-ember); border-radius: 0 8px 8px 0; background: rgba(229,82,53,.10); }
.jmt-transcript article.is-self::before { display: none; }
.jmt-transcript-gap { display:grid; min-height:72px; place-items:center; color:#78818f; font-size:13px; letter-spacing:.06em; }
.jmt-response { max-height: none; flex: 0 0 auto; overflow: hidden; padding: 10px 12px; border-top: 1px solid #6a453e; background: #242126; }
.jmt-response-head { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; margin-bottom: 8px; }
.jmt-response-head b { color: #ff987d; }
.jmt-response-head span { color: #9299a5; font-size: 12px; }
.jmt-choices { display: grid; gap: 5px; }
.jmt-choices button { display: grid; grid-template-columns: 24px 1fr; padding: 7px 10px; border: 1px solid #4a4850; border-radius: 8px; background: #302d32; color: #e7e8eb; text-align: left; line-height: 1.35; }
.jmt-choices button > span { color: #828896; font-family: var(--jmt-mono); }
.jmt-choices button b { font-weight: 500; }
.jmt-choices button small { grid-column: 2; color: #8d949f; }
.jmt-choices button:hover, .jmt-choices button.is-selected { border-color: var(--jmt-ember); background: rgba(229,82,53,.12); }
.jmt-choices button em { grid-column: 2; justify-self: start; padding: 1px 6px; border-radius: 999px; font-size: 9px; font-style: normal; font-weight: 700; }
.jmt-choices button:disabled { cursor: default; opacity: 1; }
.jmt-choice-note { margin: 6px 0 0; color: #8d949f; font-size: 10px; }
.jmt-choice-feedback { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 7px; padding: 7px 9px; border: 1px solid #6a453e; border-radius: 8px; background: #2f2727; }
.jmt-choice-feedback[hidden] { display: none; }
.jmt-choice-feedback > div { min-width: 0; display: grid; gap: 1px; }
.jmt-choice-feedback strong { color: #ff9d83; font-size: 12px; }
.jmt-choice-feedback span { color: #a5abb4; font-size: 10px; }
.jmt-choice-feedback .jmt-btn { min-height: 32px; flex: 0 0 auto; padding: 5px 10px; font-size: 10px; }
.jmt-choice-feedback.is-correct { border-color: #b8ddcf; background: #eef8f4; }
.jmt-choice-feedback.is-correct strong { color: #176448; }

.jmt-agenda { min-height: 0; height: 100%; display: flex; flex-direction: column; padding: 12px; border: 1px solid #303642; border-radius: 14px; background: #191e27; }
.jmt-agenda > p { margin: 0 0 10px; color: #929aa7; font-size: 13px; font-weight: 700; letter-spacing: .08em; }
.jmt-agenda ol { margin: 0; padding: 0; list-style: none; }
.jmt-agenda li { display: grid; grid-template-columns: 10px 42px 1fr; align-items: center; gap: 8px; padding: 6px 0; color: #59616e; }
.jmt-agenda li > span { width: 8px; height: 8px; border-radius: 50%; background: #4b525e; }
.jmt-agenda li time { font-family: var(--jmt-mono); font-size: 11px; }
.jmt-agenda li b { font-size: 13px; }
.jmt-agenda li.is-done > span { background: var(--jmt-mint); }
.jmt-agenda li.is-current { color: #f4f5f7; }
.jmt-agenda li.is-current > span { background: var(--jmt-ember); box-shadow: 0 0 0 5px rgba(229,82,53,.1); }
.jmt-capability { margin-top: auto; padding-top: 12px; border-top: 1px solid #2e3540; }
.jmt-capability > * { display: block; }
.jmt-capability small { color: #69717f; font-family: var(--jmt-mono); font-size: 10px; text-transform: uppercase; }
.jmt-capability b { margin: 5px 0; color: #a7afbb; font-size: 12px; }
.jmt-capability span { color: #656e7b; font-size: 10px; }
.jmt-segmented-timeline { min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 11px; padding: 7px 16px 3px; }
.jmt-segmented-timeline > span { color: #7e8794; font-family: var(--jmt-mono); font-size: 9px; font-weight: 700; letter-spacing: .05em; white-space: nowrap; }
.jmt-timeline-segments { min-width: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(30px, 1fr)); gap: 4px; }
.jmt-timeline-segments button { position: relative; width: auto; height: 30px; display: grid; place-items: center; padding: 0; overflow: hidden; border: 1px solid #39414d; border-radius: 5px; background: #1b2028; color: #8f98a5; font-family: var(--jmt-mono); font-size: 8px; font-weight: 700; cursor: pointer; transition: border-color .16s ease, background .16s ease, color .16s ease, transform .16s ease; }
.jmt-timeline-segments button::after { content: ""; position: absolute; inset: auto 0 0; height: 3px; background: #57616d; }
.jmt-timeline-segments button.is-self::after { background: #c96049; }
.jmt-timeline-segments button.has-audio::before { content: ""; position: absolute; top: 4px; right: 4px; width: 3px; height: 3px; border-radius: 50%; background: currentColor; opacity: .7; }
.jmt-timeline-segments button:hover { border-color: #77818d; color: #f5f6f7; transform: translateY(-1px); }
.jmt-timeline-segments button.is-complete { border-color: #3d7462; background: #24372f; color: #9ed4c1; }
.jmt-timeline-segments button.is-current { z-index: 1; border-color: var(--jmt-ember); background: #452d28; color: #ffb09d; box-shadow: 0 0 0 2px rgba(229,82,53,.18); }
.jmt-timeline-segments button:focus-visible { z-index: 2; outline: 3px solid #77b8ff; outline-offset: 2px; }
.jmt-timeline-segments button:disabled { cursor: default; opacity: .58; transform: none; }
.jmt-controls { height: 52px; display: flex; align-items: center; justify-content: center; gap: 7px; padding: 4px 16px; }
.jmt-controls > span { width: 1px; height: 32px; margin: 0 10px; background: #323945; }
.jmt-audio-state { min-width: 170px; color: #7f8895; font-family: var(--jmt-mono); font-size: 10px; }
.jmt-round { width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid #404754; border-radius: 50%; background: #20252e; color: #d9dce1; }
.jmt-round:hover, .jmt-round.is-on { border-color: #9c6858; background: #332a29; color: #ff9d83; }

/* Quiz and report retain the focused night mode. */
.jmt-quiz, .jmt-report { min-height: 0; padding: clamp(28px, 4vw, 52px) clamp(18px, 5vw, 72px); border-radius: 24px; background: var(--jmt-night); color: #eef0f3; }
.jmt-quiz > header, .jmt-report > header { max-width: 760px; margin: 0 auto 22px; text-align: center; }
.jmt-quiz h2, .jmt-report h2 { margin: 0 0 6px; font-family: var(--jmt-serif); font-size: clamp(30px, 3.4vw, 44px); font-weight: 500; letter-spacing: -.03em; }
.jmt-quiz header > span, .jmt-report header > span { color: #8e96a3; }
.jmt-quiz form { max-width: 900px; margin: 0 auto; }
.jmt-quiz fieldset { margin: 0 0 12px; padding: 16px 18px 18px; border: 1px solid #313741; border-radius: 14px; background: #1b2028; }
.jmt-quiz legend { width: 100%; display: grid; grid-template-columns: 40px 1fr; align-items: baseline; padding: 0; }
.jmt-quiz legend > span { color: #ff987d; font-family: var(--jmt-mono); font-size: 12px; }
.jmt-quiz legend b { font-size: 16px; }
.jmt-quiz legend small { grid-column: 2; color: #77808d; }
.jmt-quiz fieldset > div { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 0 40px; }
.jmt-quiz label { position: relative; }
.jmt-quiz label input { position: absolute; opacity: 0; pointer-events: none; }
.jmt-quiz label span { display: block; padding: 7px 13px; border: 1px solid #49505b; border-radius: 999px; color: #b8bec7; transition: .16s ease; }
.jmt-quiz label:hover span { border-color: #747d89; color: #fff; }
.jmt-quiz label input:checked + span { border-color: var(--jmt-ember); background: var(--jmt-ember); color: #fff; }
.jmt-quiz label input:focus-visible + span { outline: 3px solid #77b8ff; outline-offset: 3px; }
.jmt-quiz-submit { padding: 14px 0 0; text-align: center; }
.jmt-inline-error { margin: 0 0 12px; color: #ff9d83; font-weight: 700; }

.jmt-score-layout { max-width: 900px; display: grid; grid-template-columns: 240px 1fr; align-items: center; gap: 40px; margin: 30px auto; }
.jmt-total-score { position: relative; height: 220px; display: grid; place-content: center; justify-items: center; border-radius: 50%; background: #191e26; }
.jmt-total-score::before { content: ""; position: absolute; inset: 8px; border: 1px solid #343b46; border-radius: 50%; }
.jmt-total-score i { position: absolute; inset: -4px; border: 5px solid var(--jmt-ember); border-left-color: transparent; border-bottom-color: transparent; border-radius: 50%; transform: rotate(calc(var(--score) - 45deg)); opacity: .9; }
.jmt-total-score small { color: #868f9c; }
.jmt-total-score strong { font-family: var(--jmt-serif); font-size: 68px; font-weight: 400; line-height: 1; }
.jmt-total-score span { color: #7f8793; font-family: var(--jmt-mono); }
.jmt-component-list { display: grid; gap: 20px; }
.jmt-component-list article > div { display: flex; justify-content: space-between; margin-bottom: 7px; }
.jmt-component-list article b { font-size: 14px; }
.jmt-component-list article div span { color: #9ba3ae; font-family: var(--jmt-mono); font-size: 12px; }
.jmt-component-list article > i { height: 5px; display: block; overflow: hidden; border-radius: 99px; background: #2b313b; }
.jmt-component-list article > i span { height: 100%; display: block; border-radius: inherit; background: var(--jmt-mint); }
.jmt-answer-count { margin: 8px 0 0; color: #9ba3ae; }
.jmt-answer-count strong { color: #fff; font-family: var(--jmt-mono); font-size: 20px; }
.jmt-report-note { max-width: 900px; margin: 0 auto 18px; padding: 14px 18px; border-left: 3px solid var(--jmt-ember); background: #1a1f27; }
.jmt-report-note b { color: #ff9b82; font-size: 12px; }
.jmt-report-note p { margin: 4px 0 0; color: #979fab; font-size: 13px; }
.jmt-report > .jmt-btn { display: flex; width: max-content; margin: 0 auto; }

/* Study desk: the abrupt shift to paper is intentional and memorable. */
.jmt-study { min-height: 0; padding: clamp(24px, 3vw, 40px); border: 1px solid #e5e0d8; border-radius: 24px; background: var(--jmt-paper); }
.jmt-study-head { display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.jmt-study h2 { margin: 0; font-family: var(--jmt-serif); font-size: clamp(28px, 3vw, 40px); font-weight: 600; letter-spacing: -.035em; }
.jmt-study h2 small { color: #8d929a; font-family: var(--jmt-mono); font-size: 14px; }
.jmt-study-head > p { max-width: 460px; margin: 0 0 4px; color: var(--jmt-slate); font-size: 13px; text-align: right; }
.jmt-word-chips { display: flex; flex-wrap: wrap; gap: 7px; margin: 18px 0; }
.jmt-word-chips button { min-height: 38px; padding: 6px 12px; border: 1px solid #dadce0; border-radius: 999px; background: #fff; color: #242830; }
.jmt-word-chips button:hover, .jmt-word-chips button.is-active { border-color: var(--jmt-ink); background: var(--jmt-ink); color: #fff; }
.jmt-word-detail { display: grid; grid-template-columns: 240px 1fr; min-height: 240px; overflow: hidden; border: 1px solid #e0e1e3; border-radius: 20px; background: #fff; box-shadow: 0 16px 36px rgba(31,35,42,.05); }
.jmt-word-identity { padding: 24px; border-right: 1px solid #e5e6e8; }
.jmt-word-identity h3 { margin: 0; font-family: var(--jmt-serif); font-size: 44px; font-weight: 600; line-height: 1.2; }
.jmt-word-identity b { display: block; margin: 6px 0 12px; color: var(--jmt-ember); font-weight: 600; }
.jmt-word-identity p { color: #4f5661; }
.jmt-examples { padding: 20px 24px; }
.jmt-example-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; color: #777f8a; font-family: var(--jmt-mono); font-size: 11px; letter-spacing: .08em; }
.jmt-example-heading small { padding: 2px 8px; border: 1px solid #e7a99c; border-radius: 4px; color: var(--jmt-ember); }
.jmt-example-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0; }
.jmt-example-actions button, .jmt-grammar-audio { min-height: 40px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 8px 13px; border: 1px solid #d7d9dd; border-radius: 10px; background: #fff; color: var(--jmt-ink); font-size: 13px; font-weight: 650; }
.jmt-example-actions button svg, .jmt-grammar-audio svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.jmt-example-actions button:hover, .jmt-grammar-audio:hover { border-color: var(--jmt-ink); background: var(--jmt-ink); color: #fff; }
.jmt-example-actions button:focus-visible, .jmt-grammar-audio:focus-visible { outline: 3px solid rgba(206, 67, 45, .24); outline-offset: 2px; }
.jmt-example-actions button.is-playing, .jmt-grammar-audio.is-playing { border-color: var(--jmt-ember); background: var(--jmt-ember); color: #fff; }
.jmt-example-actions button:disabled { cursor: default; opacity: .7; }
.jmt-example-hint { margin: 8px 0 4px; color: #777f89; font-size: 12px; }
.jmt-example-list { position: relative; }
.jmt-example-list > article { display: grid; grid-template-columns: 30px 1fr 42px; align-items: center; gap: 10px; padding: 9px 0; border-top: 1px solid #ececee; transition: filter .18s ease, opacity .18s ease; }
.jmt-example-list > article > span { color: #a0a5ad; font-family: var(--jmt-mono); font-size: 10px; }
.jmt-example-list.is-concealed > article { opacity: .42; filter: blur(6px); pointer-events: none; user-select: none; }
.jmt-example-list.is-concealed::after { content: "例句已隐藏"; position: absolute; inset: 0; display: grid; place-items: center; color: #68707a; font-size: 12px; font-weight: 700; letter-spacing: .08em; pointer-events: none; }
.jmt-examples article p { margin: 0; color: #20242a; font-size: 17px; }
.jmt-examples article small { color: #8a9099; }
.jmt-examples article button { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid #dedfe2; border-radius: 50%; background: #fff; color: var(--jmt-ink); }
.jmt-examples article button:hover { border-color: var(--jmt-ink); background: var(--jmt-ink); color: #fff; }
.jmt-examples article button:focus-visible { outline: 3px solid rgba(206, 67, 45, .24); outline-offset: 2px; }
.jmt-examples article button.is-playing { border-color: var(--jmt-ember); background: var(--jmt-ember); color: #fff; }
.jmt-examples article button:disabled { cursor: wait; opacity: .72; }
.jmt-audio-loader { width: 15px; height: 15px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: jmt-audio-spin .7s linear infinite; }
@keyframes jmt-audio-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .jmt-audio-loader { animation-duration: 1.4s; } }
.jmt-grammar-head { margin: 36px 0 16px; }
.jmt-grammar { display: grid; gap: 8px; }
.jmt-grammar > article { overflow: hidden; border: 1px solid #dfe0e3; border-radius: 16px; background: #fff; }
.jmt-grammar-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 7px 10px 7px 0; }
.jmt-grammar-toggle { width: 100%; display: grid; grid-template-columns: auto 1fr 24px; align-items: baseline; gap: 14px; padding: 7px 8px 7px 18px; border: 0; background: transparent; color: var(--jmt-ink); text-align: left; }
.jmt-grammar-toggle > span { font-family: var(--jmt-serif); font-size: 20px; font-weight: 700; }
.jmt-grammar-toggle small { color: #777e89; }
.jmt-grammar-toggle i { font-size: 24px; font-style: normal; transition: transform .2s ease; }
.jmt-grammar-toggle:focus-visible { outline: 3px solid rgba(206, 67, 45, .2); outline-offset: -3px; }
.jmt-grammar-audio { min-width: 112px; }
.jmt-grammar-detail { display: none; padding: 0 18px 16px; }
.jmt-grammar > article.is-open > .jmt-grammar-detail { display: block; }
.jmt-grammar > article.is-open .jmt-grammar-toggle i { transform: rotate(45deg); }
.jmt-grammar-detail > p { display: grid; grid-template-columns: 64px 1fr; margin: 8px 0; color: #626a75; }
.jmt-grammar-detail > p b { color: #333840; }
.jmt-grammar blockquote { margin: 12px 0 0; padding: 12px 16px; border: 0; border-radius: 10px; background: var(--jmt-paper); }
.jmt-grammar blockquote span, .jmt-grammar blockquote small { display: block; }
.jmt-grammar blockquote span { color: #252a31; font-size: 17px; }
.jmt-grammar blockquote small { margin-top: 4px; color: #858b94; }
.jmt-study-footer { margin-top: 20px; text-align: center; }

/* The exam is a separate assessment slip after the study desk, never a meeting state. */
.jmt-study + .jmt-exam { margin-top: 14px; }
.jmt-exam { position: relative; overflow: hidden; padding: clamp(24px,3vw,40px); border: 1px solid #ccd2d9; border-radius: 24px; background: #fff; }
.jmt-exam::before { content:""; position:absolute; top:0; bottom:0; left:0; width:7px; background:var(--jmt-ember); }
.jmt-exam-entry { min-height:160px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:24px; padding:0 clamp(0px,2vw,24px); }
.jmt-exam-entry h2, .jmt-exam > header h2 { margin:0; font-family:var(--jmt-serif); font-size:clamp(28px,3vw,40px); font-weight:600; letter-spacing:-.035em; }
.jmt-exam-entry p:not(.jmt-kicker), .jmt-exam > header p:last-child { margin:8px 0 0; color:#676f7a; }
.jmt-exam.is-open, .jmt-exam.is-result { background:#fbfaf7; color:#1c232a; border-color:#d7dde2; }
.jmt-exam.is-open > header, .jmt-exam.is-result > header { max-width:900px; margin:0 auto 22px; }
.jmt-exam.is-open > header p:last-child, .jmt-exam.is-result > header p:last-child { color:#66717e; }
.jmt-exam form, .jmt-exam-results { max-width:900px; margin:0 auto; }
.jmt-exam fieldset { margin:0 0 12px; padding:16px 18px 18px; border:1px solid #dce1e5; border-radius:14px; background:#fff; box-shadow:0 8px 24px rgba(30,38,46,.035); transition:border-color .16s ease, box-shadow .16s ease; }
.jmt-exam fieldset.is-missing { border-color:#d94b31; box-shadow:0 0 0 3px rgba(217,75,49,.1); }
.jmt-exam legend { width:100%; display:grid; grid-template-columns:44px 1fr; align-items:baseline; padding:0; }
.jmt-exam legend > span { color:#c9412b; font-family:var(--jmt-mono); font-size:12px; }
.jmt-exam legend b { font-size:17px; }
.jmt-exam legend small { grid-column:2; margin-top:4px; color:#737d88; }
.jmt-single-options { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 0 44px; }
.jmt-single-options label { position:relative; }
.jmt-single-options input { position:absolute; opacity:0; pointer-events:none; }
.jmt-single-options span { display:block; padding:7px 13px; border:1px solid #cbd2d8; border-radius:999px; background:#fff; color:#343d47; transition:.16s ease; }
.jmt-single-options label:hover span { border-color:#7f8994; color:#151b21; }
.jmt-single-options input:checked + span { border-color:var(--jmt-ember); background:var(--jmt-ember); color:#fff; }
.jmt-single-options input:focus-visible + span { outline:3px solid #77b8ff; outline-offset:3px; }
.jmt-short-answer { display:grid; gap:6px; margin:12px 0 0 44px; }
.jmt-short-answer > span { color:#4d5863; font-size:13px; font-weight:700; }
.jmt-short-answer textarea { width:100%; resize:vertical; padding:10px 12px; border:1px solid #cbd2d8; border-radius:10px; background:#fff; color:#20272e; font:inherit; line-height:1.5; }
.jmt-short-answer textarea::placeholder { color:#98a0a8; }
.jmt-short-answer small { color:#7b858f; font-size:11px; }
.jmt-exam-submit { padding:14px 0 0; text-align:center; }
.jmt-inline-error { max-width:680px; margin:0 auto 16px; padding:12px 16px; border:1px solid #efc1b7; border-radius:10px; background:#fff1ed; color:#a93420; font-weight:700; }
.jmt-inline-error[hidden] { display:none; }
.jmt-exam-score { width:170px; height:170px; display:grid; place-content:center; justify-items:center; margin:0 auto 24px; border:1px solid #d9dfe4; border-radius:50%; background:linear-gradient(145deg,#fff 0%,#f3f1eb 100%); box-shadow:0 18px 42px rgba(32,40,48,.08); }
.jmt-exam-score strong { font-family:var(--jmt-serif); font-size:58px; font-weight:500; line-height:1; }
.jmt-exam-score span, .jmt-exam-score small { color:#707b86; font-family:var(--jmt-mono); font-size:11px; }
.jmt-exam-result-item { margin-bottom:8px; padding:14px 16px; border:1px solid #dce1e5; border-left:4px solid #8e98a2; border-radius:12px; background:#fff; box-shadow:0 8px 22px rgba(30,38,46,.035); }
.jmt-exam-result-item.is-correct, .jmt-exam-result-item.is-graded { border-left-color:#2a9a75; }
.jmt-exam-result-item.is-incorrect { border-left-color:var(--jmt-ember); }
.jmt-exam-result-item header { display:grid; grid-template-columns:42px 1fr auto; gap:10px; align-items:center; }
.jmt-exam-result-item header span { color:#c9412b; font-family:var(--jmt-mono); font-size:11px; }
.jmt-exam-result-item header strong { font-family:var(--jmt-mono); font-size:12px; }
.jmt-exam-result-item > p { margin:12px 0 5px; color:#4e5964; }
.jmt-exam-result-item > small { display:block; color:#737e89; }
.jmt-exam-result-item > small.is-strength { color:#247b5f; }
.jmt-exam-result-item details { margin-top:12px; color:#66727e; }
.jmt-exam-result-item summary { cursor:pointer; font-weight:700; }
.jmt-exam-result-item details p { margin:8px 0 0; color:#2f3841; }
.jmt-exam-actions { display:flex; justify-content:center; gap:10px; margin-top:18px; }

.jmt-toast { position: fixed; z-index: 99999; left: 50%; bottom: 28px; padding: 10px 18px; border-radius: 8px; background: #141820; color: #fff; font-size: 13px; box-shadow: 0 8px 30px rgba(0,0,0,.2); transform: translate(-50%, 20px); opacity: 0; pointer-events: none; transition: .2s ease; }
.jmt-toast.is-visible { transform: translate(-50%, 0); opacity: 1; }
.jmt-app.is-busy { pointer-events: none; opacity: .7; }

@media (max-width: 1000px) {
  .jmt-intro { grid-template-columns: 1fr; }
  .jmt-intro-board { max-width: 640px; transform: none; }
  .jmt-word-detail { grid-template-columns: 220px 1fr; }
}

@media (max-width: 720px) {
  .jmt-app {
    --jmt-width: calc(100vw - 32px);
    left: 0;
    margin: 12px 0 !important;
    font-size: 14px;
  }
  .jmt-intro { min-height: auto; padding: 28px 18px; border-radius: 18px; }
  .jmt-intro > *, .jmt-intro-board { min-width: 0; max-width: 100%; }
  .jmt-intro-copy, .jmt-intro-copy h1, .jmt-lead,
  .jmt-board-title strong, .jmt-intro-board li b {
    overflow-wrap: anywhere;
    word-break: normal;
  }
  .jmt-intro-copy h1 { font-size: 38px; }
  .jmt-intro-actions { align-items: flex-start; flex-direction: column; }
  .jmt-intro-board { padding: 18px; box-shadow: 12px 16px 0 #e8dfd2; }
  .jmt-intro-minimal { min-height: 300px; padding: 42px 18px; }
  .jmt-intro-minimal h1 { font-size: clamp(30px, 9vw, 42px); letter-spacing: -.035em; }
  .jmt-intro-minimal .jmt-btn { width: min(220px, 100%); }
  .jmt-meeting { height: 620px; min-height: 620px; max-height: 620px; border-radius: 14px; }
  .jmt-meeting-head { height: 44px; min-height: 44px; gap: 8px; padding: 0 10px; }
  .jmt-meeting-title { min-width: 0; flex: 1; gap: 7px; }
  .jmt-meeting-head strong { font-size: 12px; line-height: 1.2; }
  .jmt-meeting-head em { display: none; }
  .jmt-meeting-head time { flex: 0 0 auto; gap: 3px; font-size: 10px; }
	.jmt-meeting-head-actions { gap: 5px; }
	.jmt-fullscreen { width: 32px; min-height: 32px; justify-content: center; padding: 0; }
	.jmt-fullscreen span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .jmt-meeting-body { grid-template-rows: minmax(0, 1fr) 74px 50px; }
  .jmt-meeting-grid { grid-template-columns: 1fr; grid-template-rows: minmax(0, 1fr) 36px; gap: 6px; padding: 6px 8px 0; }
  .jmt-participants { --jmt-person-size: min(82px, calc((100% - 12px) / 4)); gap: 4px; }
  .jmt-person { gap: 3px; border-width: 1px; border-radius: 8px; }
  .jmt-person > b { right: 4px; bottom: 4px; left: 4px; padding: 1px 2px; background: transparent; font-size: 9px; }
  .jmt-avatar { width: 36px; height: 36px; font-size: 18px; }
  .jmt-levels { top: 5px; right: 5px; }
  .jmt-transcript-panel { margin-top: 7px; border-radius: 9px; }
  .jmt-panel-label { height: 34px; min-height: 34px; padding: 0 8px; font-size: 8px; letter-spacing: 0; }
  .jmt-transcript { padding: 8px 9px; }
  .jmt-transcript article b { font-size: 9px; }
  .jmt-transcript article p { font-size: 12px; line-height: 1.35; }
  .jmt-transcript article small { font-size: 9px; line-height: 1.3; }
  .jmt-transcript article.is-self { margin-left: 0; padding: 5px 7px; }
  .jmt-response { padding: 7px 8px; }
  .jmt-response-head { gap: 6px; margin-bottom: 5px; font-size: 9px; }
  .jmt-response-head span { font-size: 8px; }
  .jmt-choices { gap: 3px; }
  .jmt-choices button { grid-template-columns: 18px 1fr; padding: 4px 6px; border-radius: 6px; font-size: 10px; line-height: 1.22; }
  .jmt-choices button small { font-size: 8px; }
  .jmt-choice-note { display: none; }
	.jmt-choice-feedback { gap: 6px; padding: 5px 6px; }
	.jmt-choice-feedback strong { font-size: 10px; }
	.jmt-choice-feedback span { font-size: 8px; }
	.jmt-choice-feedback .jmt-btn { min-height: 28px; padding: 4px 7px; font-size: 8px; }
  .jmt-agenda { height: 36px; min-height: 36px; display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 8px; padding: 0 9px; border-radius: 8px; }
  .jmt-agenda > p { margin: 0; font-size: 9px; white-space: nowrap; }
  .jmt-agenda ol { margin: 0; }
  .jmt-agenda li { display: none; grid-template-columns: 7px 32px 1fr; gap: 4px; padding: 0; }
  .jmt-agenda li.is-current { display: grid; }
  .jmt-agenda li > span { width: 6px; height: 6px; }
  .jmt-agenda li time { font-size: 8px; }
  .jmt-agenda li b { overflow: hidden; font-size: 9px; white-space: nowrap; text-overflow: ellipsis; }
  .jmt-capability { display: none; }
  .jmt-segmented-timeline { align-content: center; grid-template-columns: 1fr; gap: 4px; padding: 5px 8px 2px; }
  .jmt-segmented-timeline > span { overflow: hidden; font-size: 7px; text-overflow: ellipsis; }
	.jmt-timeline-segments { grid-template-columns: repeat(auto-fit, minmax(25px, 1fr)); gap: 3px; }
	.jmt-timeline-segments button { width: auto; height: 25px; border-radius: 4px; font-size: 7px; }
  .jmt-controls { height: 50px; flex-wrap: nowrap; gap: 5px; padding: 5px 8px; }
  .jmt-round { width: 34px; height: 34px; flex: 0 0 auto; }
  .jmt-controls .jmt-btn { width: auto; min-height: 34px; margin: 0; padding: 5px 10px; font-size: 10px; }
  .jmt-controls > span { display: none; }
  .jmt-audio-state { display: none; }
  .jmt-course-nav { min-height: 46px; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); gap: 6px; padding: 6px 8px; font-size: 10px; }
  .jmt-course-nav > span { font-size: 9px; letter-spacing: 0; }
	.jmt-course-picker-toggle { min-height: 32px; gap: 4px; padding: 5px 7px; font-size: 9px; }
	.jmt-course-picker-toggle svg { width: 11px; height: 11px; }
	.jmt-course-picker-panel { width: min(330px, calc(100vw - 48px)); max-height: 55vh; padding: 8px; }
	.jmt-course-picker-panel li a { min-height: 40px; grid-template-columns: 27px minmax(0,1fr) auto; gap: 6px; padding: 6px 7px; }
  .jmt-quiz, .jmt-report { padding: 28px 12px; border-radius: 14px; }
  .jmt-quiz fieldset { padding: 14px 12px; }
  .jmt-quiz legend { grid-template-columns: 34px 1fr; }
  .jmt-quiz fieldset > div { margin-left: 0; }
  .jmt-score-layout { grid-template-columns: 1fr; gap: 24px; }
  .jmt-total-score { width: 190px; height: 190px; margin: 0 auto; }
  .jmt-study { padding: 24px 12px; border-radius: 14px; }
  .jmt-study-head { align-items: flex-start; flex-direction: column; gap: 10px; }
  .jmt-study-head > p { text-align: left; }
  .jmt-word-detail { grid-template-columns: 1fr; }
  .jmt-word-identity { padding: 20px; border-right: 0; border-bottom: 1px solid #e5e6e8; }
  .jmt-examples { padding: 16px 14px; }
  .jmt-example-list > article { grid-template-columns: 24px 1fr 44px; }
  .jmt-examples article button { width: 44px; height: 44px; }
  .jmt-example-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .jmt-example-actions button { width: 100%; height: 44px; padding: 7px 9px; }
  .jmt-grammar-row { grid-template-columns: minmax(0, 1fr) 48px; gap: 4px; padding-right: 6px; }
  .jmt-grammar-toggle { grid-template-columns: 1fr 24px; gap: 8px; padding: 13px 8px 13px 14px; }
  .jmt-grammar-toggle small { grid-column: 1; }
  .jmt-grammar-toggle i { grid-column: 2; grid-row: 1 / 3; }
  .jmt-grammar-audio { min-width: 44px; width: 44px; height: 44px; padding: 0; border-radius: 50%; }
  .jmt-grammar-audio span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .jmt-grammar-detail { padding: 0 14px 14px; }
  .jmt-exam { padding:24px 12px; border-radius:14px; }
  .jmt-exam-entry { min-height: 0; grid-template-columns:1fr; gap:16px; padding:0; }
  .jmt-exam-entry .jmt-btn { width:100%; }
  .jmt-exam fieldset { padding:14px 12px; }
  .jmt-exam legend { grid-template-columns:34px 1fr; }
  .jmt-single-options, .jmt-short-answer { margin-left:0; }
  .jmt-single-options { align-items:stretch; flex-direction:column; }
  .jmt-single-options label span { width:100%; }
  .jmt-exam-actions { align-items:stretch; flex-direction:column; }
  .jmt-exam-actions .jmt-btn { width:100%; }
}

/* Meeting minutes theme: a bright paper surface keeps long Japanese transcripts legible. */
.jmt-meeting {
  border-color: #d5dadd;
  background: #f3f5f6;
  color: #18212a;
  box-shadow: 0 22px 60px rgba(33,42,49,.12);
}
.jmt-meeting-head { border-bottom-color: #d9dde0; background: #fff; }
.jmt-meeting-head em { border-color: #d4d9dd; background: #f6f7f8; color: #66717b; }
.jmt-meeting-head time { color: #75808a; }
.jmt-meeting-head time span { color: #16202a; }
.jmt-meeting-head time i { color: #a7afb6; }
.jmt-fullscreen { border-color: #cbd2d6; background: #f7f8f8; color: #34414b; }
.jmt-fullscreen:hover { border-color: #9ca6ad; background: #fff; color: #18232c; }
.jmt-person {
  border-color: #d7dce0;
  background: #fff;
  box-shadow: 0 5px 14px rgba(32,43,51,.045);
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease, background .2s ease;
}
.jmt-person > b { border: 1px solid #e1e4e6; background: #f6f7f8; color: #2c363f; }
.jmt-person.is-speaking { border-color: #2e9a73; background: #f2faf6; box-shadow: 0 0 0 1px #2e9a73, 0 9px 22px rgba(46,154,115,.16); }
.jmt-person[data-person="learner"].is-speaking { border-color: var(--jmt-ember); background: #fff5f2; box-shadow: 0 0 0 1px var(--jmt-ember), 0 9px 22px rgba(229,82,53,.16); }

.jmt-transcript-panel { border-color: #d2d8dc; background: #fff; box-shadow: 0 7px 18px rgba(32,43,51,.045); }
.jmt-panel-label { border-bottom-color: #dde1e4; background: #f7f8f8; color: #5d6872; }
.jmt-panel-label span:last-child { color: #21795b; }
.jmt-transcript { background: #fff; scrollbar-color: #aab3ba #edf0f1; }
.jmt-empty-line { color: #66727c; }
.jmt-transcript article {
  margin-bottom: 8px;
  padding: 7px 10px 7px 18px;
  border-left-color: #cbd2d7;
  border-radius: 0 8px 8px 0;
  background: #fff;
  transition: background .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.jmt-transcript article.is-current { border-left-color: #278363; background: #eaf5ef; box-shadow: inset 0 0 0 1px #c5e1d4; }
.jmt-transcript article::before { top: 12px; border: 2px solid #fff; background: #8c979f; box-shadow: 0 0 0 1px #c4cbd0; }
.jmt-transcript article.is-current::before { background: #278363; box-shadow: 0 0 0 2px #b9ddce; }
.jmt-transcript article b { display: flex; align-items: baseline; gap: 7px; color: #4d5963; }
.jmt-transcript article b time { color: #78838c; font-family: var(--jmt-mono); font-size: 10px; font-weight: 600; }
.jmt-transcript article p { margin: 3px 0; color: #17212a; font-weight: 550; line-height: 1.5; }
.jmt-transcript article small { color: #56636d; }
.jmt-transcript article.is-self { background: #fff5f2; }
.jmt-transcript article.is-self.is-current { background: #ffede8; box-shadow: inset 0 0 0 1px #f1c8bd; }
.jmt-transcript-gap { color: #697680; }

.jmt-response { border-top-color: #ecc7bd; background: #fff8f6; }
.jmt-response-head b { color: #b63e29; }
.jmt-response-head span, .jmt-choice-note { color: #5b6670; }
.jmt-meeting .jmt-choices button { border-color: #c8cfd3; background: #fff; color: #18232c; }
.jmt-meeting .jmt-choices button > span { color: #4f5c66; }
.jmt-meeting .jmt-choices button b { color: #18232c; }
.jmt-meeting .jmt-choices button small { color: #45535d; }
.jmt-choices button:hover, .jmt-choices button.is-selected { border-color: var(--jmt-ember); background: #fff0ec; }
.jmt-meeting .jmt-choices button.is-wrong { border-color: #ba4a34; background: #fff0ec; color: #6e2012; box-shadow: inset 3px 0 0 #b33a25; }
.jmt-meeting .jmt-choices button.is-wrong > span, .jmt-meeting .jmt-choices button.is-wrong b, .jmt-meeting .jmt-choices button.is-wrong small { color: #6e2012; }
.jmt-choices button.is-wrong em { background: #f3d0c7; color: #9f321f; }
.jmt-meeting .jmt-choices button.is-correct { border-color: #3d9171; background: #e8f6f0; color: #124b37; box-shadow: inset 3px 0 0 #23775a; }
.jmt-meeting .jmt-choices button.is-correct > span, .jmt-meeting .jmt-choices button.is-correct b, .jmt-meeting .jmt-choices button.is-correct small { color: #124b37; }
.jmt-choices button.is-correct em { background: #cfe9de; color: #176448; }
.jmt-choice-feedback { border-color: #ebc8bf; background: #fff8f6; }
.jmt-choice-feedback strong { color: #ad3e29; }
.jmt-choice-feedback span { color: #59656e; }

.jmt-agenda { border-color: #d2d8dc; background: #fff; box-shadow: 0 7px 18px rgba(32,43,51,.045); }
.jmt-agenda > p { color: #46525c; }
.jmt-agenda li { color: #89939b; }
.jmt-agenda li > span { background: #bbc2c7; }
.jmt-agenda li.is-done { color: #637079; }
.jmt-agenda li.is-done > span { background: #2e9a73; }
.jmt-agenda li.is-current { color: #17212a; }
.jmt-capability { border-top-color: #e0e3e5; }
.jmt-capability small { color: #7a858e; }
.jmt-capability b { color: #3c4852; }
.jmt-capability span { color: #77828b; }

.jmt-segmented-timeline > span { color: #65717b; }
.jmt-timeline-segments button { border-color: #cdd3d7; background: #fff; color: #66727c; }
.jmt-timeline-segments button::after { background: #aeb7bd; }
.jmt-timeline-segments button.is-self::after { background: #d26851; }
.jmt-timeline-segments button:hover { border-color: #8e999f; color: #24313a; }
.jmt-timeline-segments button.is-complete { border-color: #a9cdbf; background: #eff7f3; color: #32775e; }
.jmt-timeline-segments button.is-current { border-color: var(--jmt-ember); background: #fff0ec; color: #ac3e29; box-shadow: 0 0 0 2px rgba(229,82,53,.12); }
.jmt-controls > span { background: #d8dcdf; }
.jmt-audio-state { color: #67737d; }
.jmt-round { border-color: #ccd2d6; background: #fff; color: #34414b; }
.jmt-round:hover, .jmt-round.is-on { border-color: #d59483; background: #fff0ec; color: #b8432d; }

.jmt-meeting:fullscreen,
.jmt-meeting.is-pseudo-fullscreen {
  width: 100vw;
  height: 100dvh;
  min-height: 100dvh;
  max-height: 100dvh;
  margin: 0;
  border: 0;
  border-radius: 0;
}
.jmt-meeting:fullscreen { background: #f3f5f6; }
.jmt-meeting.is-pseudo-fullscreen { position: fixed; z-index: 1000000; inset: 0; }
body.jmt-fullscreen-open { overflow: hidden; }
.jmt-meeting:fullscreen .jmt-meeting-grid,
.jmt-meeting.is-pseudo-fullscreen .jmt-meeting-grid { padding-right: clamp(16px, 3vw, 48px); padding-left: clamp(16px, 3vw, 48px); }

@media (max-width: 720px) {
  .jmt-person > b { border: 0; background: transparent; color: #28333c; }
  .jmt-transcript article { padding: 6px 7px 6px 14px; }
  .jmt-transcript article p { font-size: 13px; line-height: 1.4; }
  .jmt-transcript article small { font-size: 10px; line-height: 1.35; }
  .jmt-agenda { border-color: #d2d8dc; background: #fff; }
}

@media (prefers-reduced-motion: reduce) {
  .jmt-app *, .jmt-app *::before, .jmt-app *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .001ms !important; }
}
