/* Trí Lữ Grammar Focus V25.3 — compact translucent grammar study sheet. */
html.grammar-focus-v25 {
  --gf-shodo:var(--tl-font-shodo);
  --gf-mincho:var(--tl-font-jp);
  --gf-sans:var(--tl-font-ui);
  --gf-ink:var(--tl-ink);
  --gf-soft:var(--tl-ink-soft);
  --gf-seal:var(--tl-seal);
  --gf-sepia:var(--tl-sepia);
  --gf-paper:var(--tl-paper);
  --gf-paper-soft:var(--tl-paper-soft);
  --gf-glass:var(--tl-glass);
  --gf-glass-border:var(--tl-glass-border);
  --gf-wash:var(--tl-wash);
  --gf-hair:var(--tl-hair);
  --gf-shadow:var(--tl-shadow);
}

html.grammar-focus-v25 .journey-stage {
  overflow:visible!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}

html.grammar-focus-v25 .journey-stage::before,
html.grammar-focus-v25 .journey-stage__glyph { display:none!important; }

html.grammar-focus-v25 .lm-switch {
  min-height:50px!important;
  border:1px solid color-mix(in srgb,var(--gf-ink) 22%,transparent)!important;
  background:var(--gf-paper)!important;
  box-shadow:inset 0 1px rgba(255,255,255,.48)!important;
  -webkit-backdrop-filter:blur(16px) saturate(1.08)!important;
  backdrop-filter:blur(16px) saturate(1.08)!important;
}

html.grammar-focus-v25 .lm-switch button {
  min-height:48px!important;
  background:transparent!important;
  color:var(--gf-ink)!important;
  font-family:var(--gf-sans)!important;
  font-size:14px!important;
  font-weight:800!important;
  text-shadow:none!important;
  filter:none!important;
  -webkit-font-smoothing:antialiased;
}

html.grammar-focus-v25 .lm-switch button.on {
  background:var(--gf-ink)!important;
  color:var(--gf-paper)!important;
}

html.grammar-focus-v25 #flowBox.grammar-focus-active {
  overflow:visible!important;
  padding:0!important;
  border:1px solid var(--gf-glass-border)!important;
  border-radius:30px!important;
  background-color:var(--gf-glass)!important;
  background-image:linear-gradient(135deg,rgba(255,255,255,.16),transparent 45%)!important;
  box-shadow:0 22px 70px rgba(27,47,66,.17),inset 0 1px rgba(255,255,255,.55)!important;
  -webkit-backdrop-filter:blur(18px) saturate(1.55)!important;
  backdrop-filter:blur(18px) saturate(1.55)!important;
}

/* One progress system: accessible 44px targets, rendered as restrained ink bars. */
html.grammar-focus-v25 #flowBox.grammar-focus-active > .fl-top {
  min-height:44px!important;
  display:block!important;
  margin:0 0 12px!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
}

html.grammar-focus-v25 #flowBox.grammar-focus-active > .fl-top .fl-step {
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
  clip:rect(0 0 0 0)!important;
  white-space:nowrap!important;
}

html.grammar-focus-v25 #flowBox.grammar-focus-active > .fl-top .fl-dots {
  width:100%!important;
  min-height:44px!important;
  display:grid!important;
  grid-template-columns:repeat(5,minmax(44px,1fr))!important;
  align-items:center!important;
  gap:7px!important;
}

html.grammar-focus-v25 #flowBox.grammar-focus-active > .fl-top .fl-dots i {
  position:relative!important;
  width:auto!important;
  min-width:44px!important;
  height:44px!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  cursor:pointer;
}

html.grammar-focus-v25 #flowBox.grammar-focus-active > .fl-top .fl-dots i::after {
  content:"";
  display:block!important;
  position:absolute;
  right:0;
  top:50%;
  left:0;
  height:3px;
  border-radius:99px;
  background:color-mix(in srgb,var(--gf-ink) 13%,transparent);
  transform:translateY(-50%);
}

html.grammar-focus-v25 #flowBox.grammar-focus-active > .fl-top .fl-dots i::before {
  display:none!important;
}

html.grammar-focus-v25 #flowBox.grammar-focus-active > .fl-top .fl-dots i.on::after {
  height:4px;
  background:var(--gf-seal);
}

html.grammar-focus-v25 #flowBox.grammar-focus-active > .fl-stage {
  overflow:visible!important;
  min-height:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
}

/* One warm paper sheet; no card-inside-card stack. */
html.grammar-focus-v25 .wcard.grammar-focus-card {
  position:relative;
  overflow:hidden;
  width:100%;
  container-type:inline-size;
  padding:clamp(28px,3vw,42px)!important;
  border:1px solid color-mix(in srgb,var(--gf-ink) 17%,transparent)!important;
  border-radius:26px!important;
  background:
    radial-gradient(80% 55% at 94% 2%,color-mix(in srgb,var(--gf-sepia) 5%,transparent),transparent 70%),
    linear-gradient(115deg,rgba(255,255,255,.2),transparent 46%),
    var(--gf-paper)!important;
  box-shadow:var(--gf-shadow)!important;
  color:var(--gf-ink)!important;
}

/* V25.15 deliberately flattens every #flowBox .wcard with a more specific
 * transparent rule. Re-establish one—and only one—paper surface here. */
html.grammar-focus-v25 .app .view #flowBox.grammar-focus-active .wcard.grammar-focus-card {
  border:1px solid color-mix(in srgb,var(--gf-glass-border) 72%,transparent)!important;
  background-color:transparent!important;
  background-image:
    radial-gradient(80% 55% at 94% 2%,color-mix(in srgb,var(--gf-sepia) 5%,transparent),transparent 70%),
    linear-gradient(145deg,color-mix(in srgb,var(--gf-glass) 84%,transparent),color-mix(in srgb,var(--gf-paper-soft) 52%,transparent))!important;
  box-shadow:var(--gf-shadow)!important;
  -webkit-backdrop-filter:blur(18px) saturate(1.08)!important;
  backdrop-filter:blur(18px) saturate(1.08)!important;
}

html.grammar-focus-v25 .wcard.grammar-focus-card::before {
  content:"";
  position:absolute;
  top:-70px;
  right:-90px;
  width:330px;
  height:240px;
  border:1px solid color-mix(in srgb,var(--gf-sepia) 8%,transparent);
  border-radius:47% 53% 48% 52%;
  opacity:.55;
  transform:rotate(-12deg);
  pointer-events:none;
}

html.grammar-focus-v25 .grammar-focus-card .w-num {
  position:absolute!important;
  top:clamp(26px,3vw,40px);
  left:clamp(28px,3vw,42px);
  z-index:1;
  min-width:50px!important;
  min-height:44px!important;
  display:inline-grid!important;
  place-items:center!important;
  margin:0!important;
  padding:6px 10px!important;
  border:0!important;
  border-radius:7px 9px 6px 8px!important;
  background:var(--gf-seal)!important;
  color:#fff8ee!important;
  font-family:"Bricolage Grotesque",var(--gf-sans)!important;
  font-size:13px!important;
  font-weight:800!important;
  letter-spacing:.02em;
  text-shadow:none!important;
  box-shadow:0 8px 18px color-mix(in srgb,var(--gf-seal) 22%,transparent)!important;
  transform:rotate(-1.4deg);
}

html.grammar-focus-v25 .grammar-focus-card .w-hero {
  position:relative;
  z-index:1;
  display:grid!important;
  grid-template-columns:minmax(0,1.38fr) minmax(190px,.72fr)!important;
  gap:14px clamp(22px,3vw,38px)!important;
  align-items:center!important;
  margin:0!important;
  padding:0 0 24px!important;
}

html.grammar-focus-v25 .grammar-focus-card .w-hero::before {
  content:"Mẫu ngữ pháp · " attr(data-grammar-level);
  grid-column:1/-1;
  display:flex;
  align-items:center;
  gap:12px;
  min-height:44px;
  padding-left:64px;
  color:var(--gf-sepia);
  font-family:var(--gf-sans);
  font-size:11px;
  font-weight:750;
  letter-spacing:.16em;
  text-transform:uppercase;
}

html.grammar-focus-v25 .grammar-focus-card .w-hero::after {
  content:"";
  position:absolute;
  top:22px;
  right:0;
  left:190px;
  height:1px;
  background:linear-gradient(90deg,var(--gf-hair),transparent);
}

html.grammar-focus-v25 .grammar-focus-card .g-title {
  min-width:0;
  margin:0!important;
  font-family:var(--gf-shodo)!important;
  font-size:clamp(34px,3.7vw,48px)!important;
  font-weight:600!important;
  line-height:1.34!important;
  letter-spacing:-.045em!important;
  text-align:left!important;
  text-wrap:balance;
  color:var(--gf-ink)!important;
  text-shadow:none!important;
  position:relative;
  width:max-content;
  max-width:100%;
}

html.grammar-focus-v25 .grammar-focus-card .g-title[data-grammar-title-length="long"] {
  font-size:clamp(43px,3.8vw,50px)!important;
  letter-spacing:-.035em!important;
}

html.grammar-focus-v25 .grammar-focus-card .g-title[data-grammar-title-length="xlong"] {
  font-size:clamp(34px,3vw,42px)!important;
  letter-spacing:-.02em!important;
  white-space:normal;
}

html.grammar-focus-v25 .grammar-focus-card .g-title[data-grammar-title-script="prose"] {
  width:auto;
  font-family:var(--gf-sans)!important;
  font-size:clamp(25px,2.35vw,32px)!important;
  font-weight:700!important;
  line-height:1.42!important;
  letter-spacing:-.025em!important;
  white-space:normal!important;
  text-shadow:none!important;
}

html.grammar-focus-v25 .grammar-focus-card .g-title[data-grammar-title-script="prose"]::after {
  display:none;
}

html.grammar-focus-v25 .grammar-focus-card .w-hero:has(.g-title[data-grammar-title-script="prose"]) {
  min-height:0;
  grid-template-columns:minmax(0,1fr)!important;
  gap:16px!important;
  padding-bottom:32px!important;
}

html.grammar-focus-v25 .grammar-focus-card .w-hero:has(.g-title[data-grammar-title-script="prose"]) .grammar-focus-meaning {
  max-width:64ch;
  padding:16px 0 0!important;
  border:0!important;
  border-top:1px solid var(--gf-hair)!important;
}

html.grammar-focus-v25 .grammar-focus-card .w-hero:has(.g-title[data-grammar-title-script="prose"]) .w-mean {
  max-width:64ch;
  font-size:18px!important;
}

html.grammar-focus-v25 .grammar-focus-card .g-title::after {
  content:"";
  position:absolute;
  right:.02em;
  bottom:-.07em;
  left:.04em;
  height:.065em;
  border-radius:70% 35% 60% 30%;
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--gf-ink) 30%,transparent) 8% 90%,transparent);
  transform:rotate(-.8deg);
}

html.grammar-focus-v25 .grammar-focus-card .g-title rt {
  font-family:var(--gf-shodo)!important;
  font-size:max(.28em,12px)!important;
  font-weight:600!important;
  letter-spacing:.08em!important;
  color:var(--gf-sepia)!important;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-meaning {
  position:relative;
  align-self:stretch;
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:7px;
  padding:4px 0 4px clamp(18px,2.4vw,28px);
  border:0;
  border-left:1px solid var(--gf-hair);
  border-radius:0;
  background:transparent;
  box-shadow:none;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-meaning::before {
  content:"Nghĩa";
  display:block;
  color:var(--gf-seal);
  font-family:var(--gf-sans);
  font-size:10px;
  font-weight:800;
  letter-spacing:.145em;
  text-transform:uppercase;
}

html.grammar-focus-v25 .grammar-focus-card .tl-meaning-toggle,
html.grammar-focus-v25 .grammar-focus-card .tl-example-meaning-toggle {
  width:max-content!important;
  min-width:112px!important;
  min-height:44px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  margin:0!important;
  padding:8px 14px!important;
  border:1px solid var(--gf-hair)!important;
  border-radius:999px!important;
  background:transparent!important;
  color:var(--gf-ink)!important;
  font-family:var(--gf-sans)!important;
  font-size:13px!important;
  font-weight:750!important;
  line-height:1.2!important;
  text-shadow:none!important;
  box-shadow:none!important;
}

html.grammar-focus-v25 .grammar-focus-card .tl-meaning-toggle:hover,
html.grammar-focus-v25 .grammar-focus-card .tl-example-meaning-toggle:hover {
  border-color:color-mix(in srgb,var(--gf-seal) 45%,transparent)!important;
  background:var(--gf-wash)!important;
}

html.grammar-focus-v25 .grammar-focus-card .w-mean {
  order:0;
  display:block;
  max-width:29ch;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  font-family:var(--gf-sans)!important;
  font-size:clamp(15px,1.45vw,19px)!important;
  font-weight:620!important;
  line-height:1.48!important;
  letter-spacing:-.018em;
  color:var(--gf-ink)!important;
  text-wrap:balance;
  text-shadow:none!important;
}

/* Text stays crisp over the dark/light glass; the glass surface owns contrast. */
html.grammar-focus-v25 .grammar-focus-card,
html.grammar-focus-v25 .grammar-focus-card * {
  text-shadow:none!important;
}

/* Header, progress chrome and bottom navigation use the same crisp-text rule. */
html.grammar-focus-v25 body,
html.grammar-focus-v25 body * {
  text-shadow:none!important;
}

html.grammar-focus-v25 .grammar-focus-card .w-mean[hidden] { display:none!important; }

html.grammar-focus-v25 .grammar-focus-card .tl-meaning-toggle {
  display:none!important;
}

/* Numbered editorial sections. */
html.grammar-focus-v25 .grammar-focus-card .g-sec {
  position:relative;
  z-index:1;
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  row-gap:12px!important;
  margin:0!important;
  padding:22px 0 24px!important;
  border:0!important;
  border-top:1px solid var(--gf-hair)!important;
  border-radius:0!important;
  background:transparent!important;
  background-image:none!important;
  box-shadow:none!important;
}

html.grammar-focus-v25 .grammar-focus-card .g-sec::before { display:none!important; }

html.grammar-focus-v25 .grammar-focus-card .g-lbl {
  grid-column:1;
  width:max-content;
  align-self:start;
  display:flex!important;
  align-items:center;
  gap:8px;
  margin:0!important;
  color:var(--gf-seal)!important;
  font-family:var(--gf-sans)!important;
  font-size:10px!important;
  font-weight:800!important;
  letter-spacing:.12em!important;
  line-height:1.35!important;
  text-transform:uppercase;
}

html.grammar-focus-v25 .grammar-focus-card .g-lbl::before {
  content:attr(data-grammar-index)!important;
  display:grid!important;
  place-items:center;
  width:28px;
  height:28px;
  border:1px solid var(--gf-seal)!important;
  flex:0 0 auto;
  border-radius:5px 7px 4px 6px;
  background:var(--gf-seal)!important;
  color:#fff8ee!important;
  box-shadow:none!important;
  font-family:"Bricolage Grotesque",var(--gf-sans);
  font-size:11px;
  letter-spacing:0;
  transform:rotate(-1.2deg);
}

html.grammar-focus-v25 .grammar-focus-card .g-lbl::after {
  content:"";
  width:clamp(32px,8vw,94px);
  height:1px;
  margin-left:4px;
  background:linear-gradient(90deg,var(--gf-hair),transparent);
}

html.grammar-focus-v25 .grammar-focus-card .g-sec > :not(.g-lbl) {
  grid-column:1;
  min-width:0;
}

html.grammar-focus-v25 .grammar-focus-card .g-struct {
  margin:0!important;
  padding:9px 0 9px 18px!important;
  border:0!important;
  border:0!important;
  border-left:3px solid color-mix(in srgb,var(--gf-seal) 66%,transparent)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  font-family:var(--gf-shodo)!important;
  font-size:clamp(19px,2vw,24px)!important;
  font-weight:600!important;
  line-height:1.65!important;
  color:var(--gf-ink)!important;
}

html.grammar-focus-v25 .grammar-focus-card .g-struct[data-grammar-structure-length="long"] {
  display:block!important;
  text-align:left;
  font-size:clamp(23px,2.2vw,28px)!important;
  line-height:1.85!important;
}

html.grammar-focus-v25 .grammar-focus-card .g-struct[data-grammar-structure-length="xlong"] {
  display:block!important;
  text-align:left;
  font-size:clamp(18px,1.75vw,22px)!important;
  line-height:1.9!important;
}

html.grammar-focus-v25 .grammar-focus-card .g-struct code {
  /* Short highlighted terms move as a unit; longer terms reflow within the sheet. */
  display:inline-block;
  inline-size:max-content;
  max-inline-size:100%;
  box-sizing:border-box;
  white-space:normal;
  overflow-wrap:anywhere;
  vertical-align:baseline;
  padding:0 3px 2px!important;
  border:0!important;
  border-radius:0!important;
  background:linear-gradient(180deg,transparent 68%,color-mix(in srgb,var(--gf-seal) 12%,transparent) 68%)!important;
  color:inherit!important;
  font-family:inherit!important;
  font-size:inherit!important;
  font-weight:700!important;
}

html.grammar-focus-v25 .grammar-focus-card .g-explain,
html.grammar-focus-v25 .grammar-focus-card .g-cmp {
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  background-image:none!important;
  box-shadow:none!important;
  color:var(--gf-soft)!important;
}

html.grammar-focus-v25 .grammar-focus-card .g-explain {
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

html.grammar-focus-v25 .app .view .grammar-focus-card .g-explain,
html.grammar-focus-v25 .app .view .grammar-focus-card .g-cmp,
html.grammar-focus-v25 .app .view .grammar-focus-card .g-ex {
  background:transparent!important;
  background-image:none!important;
  box-shadow:none!important;
}

html.grammar-focus-v25 .app .view .grammar-focus-card .g-explain {
  border:0!important;
  background:transparent!important;
}

html.grammar-focus-v25 .grammar-focus-card .g-explain.grammar-focus-explain-grid {
  display:grid!important;
  grid-template-columns:minmax(0,1.04fr) minmax(210px,.96fr)!important;
  grid-template-areas:
    "jp vi"
    "ja-detail ja-detail"
    "rules rules"!important;
  gap:14px clamp(18px,2.4vw,28px)!important;
  align-items:start;
}

html.grammar-focus-v25 .grammar-focus-card .g-explain.grammar-focus-explain-grid:not(:has(.grammar-focus-ja-detail)) {
  grid-template-areas:
    "jp vi"
    "rules rules"!important;
}

html.grammar-focus-v25 .grammar-focus-card .g-explain .explain-jp {
  grid-area:jp;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  color:var(--gf-ink)!important;
  font-family:var(--gf-mincho)!important;
  font-size:clamp(16px,1.55vw,19px)!important;
  font-weight:500!important;
  line-height:1.96!important;
}

html.grammar-focus-v25 .grammar-focus-card .g-explain .explain-jp::before {
  content:"本の要点";
  display:block;
  margin-bottom:7px;
  color:var(--gf-sepia);
  font-family:var(--gf-sans);
  font-size:9px;
  font-weight:800;
  letter-spacing:.13em;
}

html.grammar-focus-v25 .grammar-focus-card .g-explain .g-evn {
  grid-area:vi;
  margin:0!important;
  padding:2px 0 2px clamp(20px,2.5vw,30px)!important;
  border:0!important;
  border-left:1px solid var(--gf-hair)!important;
  background:transparent!important;
  color:var(--gf-soft)!important;
  font-family:var(--gf-sans)!important;
  font-size:14.5px!important;
  font-weight:500!important;
  line-height:1.68!important;
}

html.grammar-focus-v25 .grammar-focus-card .g-explain .g-evn::before {
  content:"Giải thích tiếng Việt";
  display:block;
  margin-bottom:7px;
  color:var(--gf-seal);
  font-family:var(--gf-sans);
  font-size:9px;
  font-weight:800;
  letter-spacing:.11em;
  text-transform:uppercase;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-detail {
  grid-area:ja-detail;
  margin:0;
  padding:12px 0 0;
  border-top:1px solid var(--gf-hair);
  color:var(--gf-soft);
  font-family:var(--gf-mincho);
  font-size:14.5px;
  font-weight:500;
  line-height:1.82;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-detail::before {
  content:"日本語で詳しく";
  display:block;
  margin-bottom:7px;
  color:var(--gf-seal);
  font-family:var(--gf-sans);
  font-size:9px;
  font-weight:800;
  letter-spacing:.12em;
}

html.grammar-focus-v25 .grammar-focus-card .g-explain > :only-child,
html.grammar-focus-v25 .grammar-focus-card .g-explain:not(.grammar-focus-explain-grid) {
  max-width:68ch;
  font-family:var(--gf-sans)!important;
  font-size:16px!important;
  line-height:1.8!important;
}

html.grammar-focus-v25 .grammar-focus-card .g-cmp {
  max-width:72ch;
  font-family:var(--gf-sans)!important;
  font-size:14px!important;
  line-height:1.62!important;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-rules {
  grid-area:rules;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin:4px 0 0;
  padding:0;
  background:transparent;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-rule {
  min-width:0;
  padding:2px 0 2px 11px;
  border-left:2px solid color-mix(in srgb,var(--gf-seal) 38%,transparent);
  background:transparent;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-rule dt {
  margin:0 0 3px;
  color:var(--gf-seal);
  font-family:var(--gf-sans);
  font-size:9px;
  font-weight:800;
  letter-spacing:.11em;
  text-transform:uppercase;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-rule dd {
  margin:0;
  color:var(--gf-soft);
  font-family:var(--gf-sans);
  font-size:12px;
  font-weight:550;
  line-height:1.52;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-comparison {
  max-width:none!important;
  display:block!important;
  border:0!important;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-comparison[data-grammar-count="3"] {
  grid-template-columns:none;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-comparison[data-grammar-count="4"] {
  grid-template-columns:none;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-contrast {
  display:grid;
  grid-template-columns:minmax(150px,.58fr) minmax(0,1.42fr);
  gap:16px;
  align-items:start;
  padding:12px 0;
  border:0;
  border-bottom:1px solid var(--gf-hair);
  border-radius:0;
  background:transparent;
  box-shadow:none;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-contrast-head {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:7px;
  min-width:0;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-contrast-pattern {
  color:var(--gf-ink);
  font-family:var(--gf-mincho);
  font-size:16px;
  font-weight:700;
  line-height:1.55;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-level-badge {
  flex:0 0 auto;
  min-width:28px;
  padding:2px 6px;
  border:1px solid color-mix(in srgb,var(--gf-seal) 42%,transparent);
  border-radius:999px;
  color:var(--gf-seal);
  font-family:"Bricolage Grotesque",var(--gf-sans);
  font-size:9px;
  font-weight:800;
  line-height:1.35;
  text-align:center;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-contrast-copy {
  margin:0;
  color:var(--gf-soft);
  font-family:var(--gf-sans);
  font-size:12.25px;
  font-weight:520;
  line-height:1.58;
}

/* Examples are numbered reading rows, never bordered debug panels. */
html.grammar-focus-v25 .grammar-focus-card .g-exs {
  display:block!important;
  margin:0!important;
  padding:0!important;
}

html.grammar-focus-v25 .grammar-focus-card .g-ex {
  position:relative;
  display:grid!important;
  grid-template-columns:38px minmax(0,1fr) auto!important;
  grid-template-areas:
    "number sentence actions"
    ". translation translation"!important;
  align-items:start!important;
  gap:10px 16px!important;
  margin:0!important;
  padding:18px 0 20px!important;
  border:0!important;
  border-top:1px solid var(--gf-hair)!important;
  border-radius:0!important;
  background:transparent!important;
  background-image:none!important;
  box-shadow:none!important;
}

html.grammar-focus-v25 .grammar-focus-card .g-ex:last-child { padding-bottom:8px!important; }

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-example-number {
  grid-area:number;
  display:block;
  padding-top:10px;
  color:var(--gf-seal);
  font-family:"Bricolage Grotesque",var(--gf-sans);
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
}

html.grammar-focus-v25 .grammar-focus-card .g-ex .jp {
  grid-area:sentence;
  display:block!important;
  min-width:0;
  margin:0!important;
  padding:0!important;
  color:var(--gf-ink)!important;
  font-family:var(--gf-mincho)!important;
  font-size:clamp(18px,1.75vw,22px)!important;
  font-weight:500!important;
  line-height:2.04!important;
  letter-spacing:.005em!important;
}

html.grammar-focus-v25 .grammar-focus-card .g-ex .jp .target {
  position:relative;
  padding:0 3px 2px!important;
  border-radius:4px!important;
  background:linear-gradient(180deg,transparent 58%,color-mix(in srgb,var(--gf-seal) 15%,transparent) 58%)!important;
  color:var(--gf-ink)!important;
  font-weight:700!important;
}

html.grammar-focus-v25 .grammar-focus-card .g-ex ruby,
html.grammar-focus-v25 .grammar-focus-card .explain-jp ruby { padding-top:.82em!important; }

html.grammar-focus-v25 .grammar-focus-card .g-ex rt,
html.grammar-focus-v25 .grammar-focus-card .explain-jp rt {
  color:var(--gf-sepia)!important;
  font-size:max(.48em,10.5px)!important;
  font-weight:500!important;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-example-actions {
  grid-area:actions;
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  align-items:center;
  gap:7px;
}

html.grammar-focus-v25 .grammar-focus-card .g-ex .tl-example-meaning-toggle { min-width:104px!important; }

html.grammar-focus-v25 .grammar-focus-card .g-ex .exspk {
  width:44px!important;
  min-width:44px!important;
  height:44px!important;
  min-height:44px!important;
  display:grid!important;
  place-items:center!important;
  margin:0!important;
  padding:0!important;
  border:1px solid var(--gf-hair)!important;
  border-radius:50%!important;
  background:transparent!important;
  color:var(--gf-ink)!important;
  font-size:0!important;
  line-height:1!important;
  text-shadow:none!important;
  box-shadow:none!important;
}

html.grammar-focus-v25 .grammar-focus-card .g-ex .exspk::before {
  content:"♪";
  font-family:var(--gf-mincho);
  font-size:18px;
  font-weight:700;
  color:var(--gf-ink);
}

html.grammar-focus-v25 .grammar-focus-card .g-ex .exspk:hover,
html.grammar-focus-v25 .grammar-focus-card .g-ex .exspk.playing {
  border-color:color-mix(in srgb,var(--gf-seal) 52%,transparent)!important;
  background:var(--gf-wash)!important;
}

html.grammar-focus-v25 .grammar-focus-card .g-ex .vn {
  grid-area:translation;
  display:block;
  max-width:68ch;
  margin:2px 0 0!important;
  padding:12px 0 0 18px!important;
  border:0!important;
  border-left:3px solid color-mix(in srgb,var(--gf-seal) 38%,transparent)!important;
  background:transparent!important;
  color:var(--gf-soft)!important;
  font-family:var(--gf-sans)!important;
  font-size:15px!important;
  font-style:normal!important;
  font-weight:500!important;
  line-height:1.72!important;
}

html.grammar-focus-v25 .grammar-focus-card .g-ex .vn[hidden] { display:none!important; }

html.grammar-focus-v25 .grammar-focus-card .w-foot {
  position:relative;
  z-index:1;
  display:flex!important;
  justify-content:flex-end!important;
  align-items:center!important;
  margin:0!important;
  padding:24px 0 0!important;
  border-top:1px solid var(--gf-hair)!important;
}

html.grammar-focus-v25 .grammar-focus-card .knowbtn {
  flex:0 1 280px!important;
  width:100%!important;
  min-height:54px!important;
  margin:0!important;
  padding:10px 18px!important;
  border:1px solid color-mix(in srgb,var(--gf-ink) 34%,transparent)!important;
  border-radius:17px!important;
  background:var(--gf-ink)!important;
  color:var(--gf-paper)!important;
  font-family:var(--gf-sans)!important;
  font-size:14px!important;
  font-weight:800!important;
  text-shadow:none!important;
  box-shadow:0 13px 30px color-mix(in srgb,var(--gf-ink) 18%,transparent)!important;
}

html.grammar-focus-v25 .grammar-focus-card .knowbtn.on {
  border-color:color-mix(in srgb,var(--gf-seal) 52%,transparent)!important;
  background:var(--gf-seal)!important;
  color:#fff8ee!important;
}

html.grammar-focus-v25 .grammar-focus-card .source-hold {
  padding:12px 0!important;
  color:var(--gf-soft)!important;
  font-family:var(--gf-sans)!important;
  font-size:12px!important;
}

html.grammar-focus-v25 #flowBox.grammar-focus-active > .fl-nav {
  display:grid!important;
  grid-template-columns:58px minmax(0,1fr)!important;
  gap:10px!important;
  margin:18px 0 0!important;
  padding:18px 0 0!important;
  border-top:1px solid var(--gf-hair)!important;
}

html.grammar-focus-v25 #flowBox.grammar-focus-active > .fl-nav button {
  min-height:54px!important;
  border-radius:17px!important;
  font-family:var(--gf-sans)!important;
  font-size:14px!important;
  font-weight:800!important;
  text-shadow:none!important;
  box-shadow:none!important;
}

html.grammar-focus-v25 #flowBox.grammar-focus-active > .fl-nav .fl-prev {
  border:1px solid var(--gf-hair)!important;
  background:transparent!important;
  color:var(--gf-soft)!important;
}

html.grammar-focus-v25 #flowBox.grammar-focus-active > .fl-nav .fl-next {
  border:1px solid color-mix(in srgb,var(--gf-ink) 34%,transparent)!important;
  background:var(--gf-ink)!important;
  color:var(--gf-paper)!important;
}

html.grammar-focus-v25 #flowBox.grammar-focus-active > .fl-hintswipe { display:none!important; }

/* The lesson already has source audio actions; the floating speaker only obscures the sheet. */
html.grammar-focus-v25 #hnc-am { display:none!important; }

@container (min-width:521px) {
  html.grammar-focus-v25 .grammar-focus-card .g-sec[data-grammar-section="structure"] {
    grid-template-columns:96px minmax(0,1fr)!important;
    column-gap:18px!important;
    row-gap:0!important;
    align-items:center;
  }

  html.grammar-focus-v25 .grammar-focus-card .g-sec[data-grammar-section="structure"] > .g-lbl {
    grid-column:1!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .g-sec[data-grammar-section="structure"] > .g-struct {
    grid-column:2!important;
  }
}

/* Journey's three-column desktop shell can leave the central sheet near 630px
 * even on a wide monitor. Respond to the sheet itself, not only the viewport. */
@container (max-width:520px) {
  html.grammar-focus-v25 .grammar-focus-card .w-hero {
    grid-template-columns:minmax(0,1fr)!important;
    gap:10px!important;
    padding:0 0 20px!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .w-hero::after { left:184px; }

  html.grammar-focus-v25 .grammar-focus-card .g-title {
    font-size:clamp(32px,8.8vw,40px)!important;
    line-height:1.38!important;
    white-space:nowrap;
  }

  html.grammar-focus-v25 .grammar-focus-card .g-title[data-grammar-title-length] {
    white-space:normal!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .g-title[data-grammar-title-script="prose"] {
    font-size:clamp(23px,6.5vw,28px)!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .grammar-focus-meaning {
    align-self:auto;
    min-height:0;
    padding:12px 0 0!important;
    border:0;
    border-top:1px solid var(--gf-hair);
  }

  html.grammar-focus-v25 .grammar-focus-card .g-sec {
    grid-template-columns:minmax(0,1fr)!important;
    row-gap:12px!important;
    padding:18px 0 20px!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .g-lbl,
  html.grammar-focus-v25 .grammar-focus-card .g-sec > :not(.g-lbl) { grid-column:1!important; }

  html.grammar-focus-v25 .grammar-focus-card .g-explain.grammar-focus-explain-grid {
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-areas:
      "jp"
      "ja-detail"
      "vi"
      "rules"!important;
    gap:12px!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .g-explain.grammar-focus-explain-grid:not(:has(.grammar-focus-ja-detail)) {
    grid-template-areas:
      "vi"
      "jp"
      "rules"!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .g-explain .g-evn {
    padding:12px 0 0!important;
    border-left:0!important;
    border-top:1px solid var(--gf-hair)!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .g-ex {
    grid-template-columns:30px minmax(0,1fr)!important;
    grid-template-areas:
      "number sentence"
      ". actions"
      ". translation"!important;
    gap:11px 12px!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .grammar-focus-example-actions { justify-content:flex-start; }

  html.grammar-focus-v25 .grammar-focus-card .grammar-focus-rules {
    grid-template-columns:minmax(0,1fr);
  }

  html.grammar-focus-v25 .grammar-focus-card .grammar-focus-contrast {
    grid-template-columns:minmax(0,1fr);
    gap:4px;
    padding:10px 0;
  }

  html.grammar-focus-v25 .grammar-focus-card .grammar-focus-comparison[data-grammar-count] {
    grid-template-columns:minmax(0,1fr);
  }
}

@media (max-width:560px) {
  html.grammar-focus-v25 #flowBox.grammar-focus-active > .fl-top { margin-bottom:8px!important; }

  html.grammar-focus-v25 .wcard.grammar-focus-card {
    padding:28px 22px calc(32px + env(safe-area-inset-bottom,0px))!important;
    border-radius:22px!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .w-num {
    min-width:50px!important;
    min-height:44px!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .w-hero {
    grid-template-columns:minmax(0,1fr)!important;
    gap:10px!important;
    padding:0 0 20px!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .w-hero::after { left:184px; }

  html.grammar-focus-v25 .grammar-focus-card .g-title {
    font-size:clamp(34px,9.2vw,46px)!important;
    line-height:1.38!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .grammar-focus-meaning {
    align-self:auto;
    min-height:0;
    padding:12px 0 0!important;
    border:0;
    border-top:1px solid var(--gf-hair);
  }

  html.grammar-focus-v25 .grammar-focus-card .w-mean {
    max-width:34ch;
    font-size:17px!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .g-sec {
    grid-template-columns:minmax(0,1fr)!important;
    row-gap:12px!important;
    padding:18px 0 20px!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .g-lbl,
  html.grammar-focus-v25 .grammar-focus-card .g-sec > :not(.g-lbl) { grid-column:1!important; }

  html.grammar-focus-v25 .grammar-focus-card .g-struct {
    padding:11px 0 11px 17px!important;
    font-size:clamp(20px,5.6vw,25px)!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .g-struct[data-grammar-structure-length="long"],
  html.grammar-focus-v25 .grammar-focus-card .g-struct[data-grammar-structure-length="xlong"] {
    font-size:clamp(18px,5vw,22px)!important;
    line-height:1.85!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .g-explain.grammar-focus-explain-grid {
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-areas:
      "jp"
      "ja-detail"
      "vi"
      "rules"!important;
    gap:12px!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .g-explain .explain-jp {
    font-size:17px!important;
    line-height:2.08!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .g-explain .g-evn {
    padding:12px 0 0!important;
    border-left:0!important;
    border-top:1px solid var(--gf-hair)!important;
    font-size:15px!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .g-ex {
    grid-template-columns:30px minmax(0,1fr)!important;
    grid-template-areas:
      "number sentence"
      ". actions"
      ". translation"!important;
    gap:11px 12px!important;
    padding:17px 0 19px!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .grammar-focus-example-number { padding-top:9px; }

  html.grammar-focus-v25 .grammar-focus-card .g-ex .jp {
    font-size:clamp(18px,5vw,21px)!important;
    line-height:2.14!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .grammar-focus-example-actions { justify-content:flex-start; }

  html.grammar-focus-v25 .grammar-focus-card .g-ex .vn {
    padding-left:14px!important;
    font-size:14.5px!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .w-foot { padding-top:28px!important; }

  html.grammar-focus-v25 .grammar-focus-card .knowbtn {
    flex-basis:100%!important;
    max-width:none!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .grammar-focus-rules {
    grid-template-columns:minmax(0,1fr);
  }

  html.grammar-focus-v25 .grammar-focus-card .grammar-focus-contrast {
    grid-template-columns:minmax(0,1fr);
    gap:4px;
    padding:10px 0;
  }

  html.grammar-focus-v25 .grammar-focus-card .grammar-focus-comparison[data-grammar-count] {
    grid-template-columns:minmax(0,1fr);
  }
}

@media (max-width:420px) {
  html.grammar-focus-v25 .wcard.grammar-focus-card {
    padding-right:18px!important;
    padding-left:18px!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .g-title { font-size:clamp(31px,9.5vw,40px)!important; }

  html.grammar-focus-v25 .grammar-focus-card .g-ex {
    grid-template-columns:25px minmax(0,1fr)!important;
    column-gap:9px!important;
  }
}

/* V25.4 — Bunkei Editorial Spread: one paper, four open chapters. */
html.grammar-focus-v25 #flowBox.grammar-focus-active > .fl-top {
  display:none!important;
}

html.grammar-focus-v25 .wcard.grammar-focus-card {
  padding:0!important;
}

html.grammar-focus-v25 .grammar-focus-card .w-num {
  top:42px!important;
  left:48px!important;
}

html.grammar-focus-v25 .grammar-focus-card .w-hero {
  min-height:250px;
  grid-template-columns:minmax(0,1.28fr) minmax(180px,.72fr)!important;
  gap:42px!important;
  padding:42px 48px 36px!important;
}

html.grammar-focus-v25 .grammar-focus-card .w-hero::before {
  padding-left:64px;
}

html.grammar-focus-v25 .grammar-focus-card .w-hero::after {
  right:48px;
  left:232px;
}

html.grammar-focus-v25 .grammar-focus-card .g-title {
  font-size:clamp(52px,4.5vw,60px)!important;
  line-height:1.18!important;
  white-space:nowrap;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-meaning {
  padding:4px 0 4px 28px!important;
  border:0!important;
  border-left:1px solid var(--gf-hair)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

html.grammar-focus-v25 .grammar-focus-card .w-mean {
  max-width:27ch;
  font-size:clamp(20px,1.9vw,24px)!important;
  line-height:1.45!important;
}

html.grammar-focus-v25 .grammar-focus-card > .g-sec {
  display:block!important;
  padding:34px 48px 38px!important;
  border:0!important;
  border-top:1px solid var(--gf-hair)!important;
  background:transparent!important;
  box-shadow:none!important;
}

html.grammar-focus-v25 .grammar-focus-card .g-lbl {
  width:100%;
  margin:0 0 24px!important;
  font-size:12px!important;
}

html.grammar-focus-v25 .grammar-focus-card .g-lbl::before {
  width:30px;
  height:30px;
}

html.grammar-focus-v25 .grammar-focus-card .g-lbl::after {
  flex:1;
  width:auto;
}

html.grammar-focus-v25 .grammar-focus-card > .g-sec[data-grammar-section="structure"] {
  display:block!important;
  grid-template-columns:minmax(0,1fr)!important;
}

html.grammar-focus-v25 .grammar-focus-card .g-struct {
  min-height:88px;
  /* Inline text flow keeps code and adjacent text in reading order. */
  display:block;
  text-align:center;
  padding:18px 22px!important;
  border:0!important;
  border-top:1px solid var(--gf-hair)!important;
  border-bottom:1px solid var(--gf-hair)!important;
  border-radius:0!important;
  background:color-mix(in srgb,var(--gf-seal) 2.5%,transparent)!important;
  box-shadow:none!important;
  font-size:clamp(28px,2.8vw,36px)!important;
}

html.grammar-focus-v25 .grammar-focus-card .g-explain.grammar-focus-explain-grid {
  grid-template-columns:minmax(200px,.82fr) minmax(0,1.18fr)!important;
  grid-template-areas:
    "jp vi"
    "ja-detail ja-detail"
    "rules rules"!important;
  gap:18px 38px!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

html.grammar-focus-v25 .grammar-focus-card .g-explain .explain-jp {
  padding:18px 18px 16px 22px!important;
  border:0!important;
  border-left:4px solid color-mix(in srgb,var(--gf-seal) 62%,transparent)!important;
  background:color-mix(in srgb,var(--gf-sepia) 4%,transparent)!important;
  font-size:18px!important;
  line-height:2!important;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-detail {
  margin:0;
  padding:16px 20px 18px 22px;
  border:0;
  border-left:4px solid color-mix(in srgb,var(--gf-seal) 62%,transparent);
  border-top:1px solid var(--gf-hair);
  background:color-mix(in srgb,var(--gf-sepia) 3.5%,transparent);
  color:var(--gf-ink);
  font-size:16px;
  line-height:1.88;
}

html.grammar-focus-v25 .grammar-focus-card .g-explain .g-evn {
  padding:0!important;
  border:0!important;
  font-size:17px!important;
  line-height:1.75!important;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-rules {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 26px;
  margin-top:4px;
  border-top:1px solid var(--gf-hair);
  border-bottom:1px solid var(--gf-hair);
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-rule {
  padding:15px 0;
  border:0;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-rule:nth-child(2) {
  padding-left:26px;
  border-left:1px solid var(--gf-hair);
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-rule[data-grammar-rule-kind="warning"],
html.grammar-focus-v25 .grammar-focus-card .grammar-focus-rule[data-grammar-rule-kind="key"] {
  grid-column:1/-1;
  padding:13px 15px;
  border-top:1px solid var(--gf-hair);
  border-left:4px solid var(--gf-seal);
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-rule[data-grammar-rule-kind="warning"] {
  background:var(--gf-wash);
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-rule[data-grammar-rule-kind="key"] {
  background:color-mix(in srgb,var(--gf-sepia) 4%,transparent);
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-rule dd {
  font-size:14.5px;
  line-height:1.62;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-comparison,
html.grammar-focus-v25 .grammar-focus-card .grammar-focus-comparison[data-grammar-count] {
  display:block!important;
  grid-template-columns:none!important;
}

html.grammar-focus-v25 .app .view #flowBox.grammar-focus-active .grammar-focus-card .grammar-focus-comparison {
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-contrast {
  display:grid;
  grid-template-columns:minmax(155px,.36fr) minmax(0,1fr);
  gap:24px;
  padding:18px 0;
  border:0;
  border-top:1px solid var(--gf-hair);
  border-radius:0;
  background:transparent;
  box-shadow:none;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-contrast-pattern {
  font-size:20px;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-contrast-copy {
  font-size:15px;
  line-height:1.68;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-example-number {
  display:none!important;
}

html.grammar-focus-v25 .grammar-focus-card .g-exs {
  padding-left:22px!important;
  border-left:4px solid color-mix(in srgb,var(--gf-seal) 68%,transparent);
}

html.grammar-focus-v25 .grammar-focus-card .g-ex {
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-areas:
    "sentence"
    "actions"
    "translation"!important;
  gap:13px!important;
  padding:24px 0 28px!important;
  border:0!important;
  border-top:1px solid var(--gf-hair)!important;
}

html.grammar-focus-v25 .app .view #flowBox.grammar-focus-active .grammar-focus-card .g-ex {
  border:0!important;
  border-top:1px solid var(--gf-hair)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

html.grammar-focus-v25 .grammar-focus-card .g-ex .jp {
  font-size:clamp(24px,2.25vw,29px)!important;
  line-height:2.02!important;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-example-actions {
  justify-content:flex-start;
}

html.grammar-focus-v25 .grammar-focus-card .g-ex .vn {
  padding-left:18px!important;
  font-size:16px!important;
}

html.grammar-focus-v25 .grammar-focus-card .w-foot {
  padding:28px 48px 38px!important;
}

@media (max-width:560px) {
  html.grammar-focus-v25 .grammar-focus-card .w-num {
    top:28px!important;
    left:20px!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .w-hero {
    min-height:0;
    grid-template-columns:minmax(0,1fr)!important;
    gap:14px!important;
    padding:28px 20px 30px!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .w-hero::after {
    right:20px;
    left:202px;
  }

  html.grammar-focus-v25 .grammar-focus-card .g-title {
    font-size:clamp(38px,10.5vw,44px)!important;
    white-space:normal!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .grammar-focus-meaning {
    padding:15px 0 0!important;
    border:0!important;
    border-top:1px solid var(--gf-hair)!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .w-mean {
    font-size:18px!important;
  }

  html.grammar-focus-v25 .grammar-focus-card > .g-sec {
    padding:26px 20px 30px!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .g-lbl {
    margin-bottom:20px!important;
    font-size:11px!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .g-struct {
    min-height:82px;
    text-align:left;
    padding:18px!important;
    font-size:clamp(23px,6.5vw,28px)!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .g-explain.grammar-focus-explain-grid {
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-areas:
      "vi"
      "jp"
      "ja-detail"
      "rules"!important;
    gap:18px!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .g-explain .g-evn {
    padding:0 0 0 16px!important;
    border:0!important;
    border-left:4px solid var(--gf-seal)!important;
    font-size:16px!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .g-explain .explain-jp {
    padding:18px 0 0!important;
    border:0!important;
    border-top:1px solid var(--gf-hair)!important;
    background:transparent!important;
    font-size:17px!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-detail {
    padding:14px 0 0;
    border:0;
    border-top:1px solid var(--gf-hair);
    background:transparent;
    font-size:15px;
  }

  html.grammar-focus-v25 .grammar-focus-card .grammar-focus-rules {
    grid-template-columns:minmax(0,1fr);
  }

  html.grammar-focus-v25 .grammar-focus-card .grammar-focus-rule:nth-child(2) {
    padding-left:0;
    border-left:0;
    border-top:1px solid var(--gf-hair);
  }

  html.grammar-focus-v25 .grammar-focus-card .grammar-focus-rule[data-grammar-rule-kind="warning"],
  html.grammar-focus-v25 .grammar-focus-card .grammar-focus-rule[data-grammar-rule-kind="key"] {
    grid-column:1;
  }

  html.grammar-focus-v25 .grammar-focus-card .grammar-focus-contrast {
    display:block;
    padding:17px 0;
  }

  html.grammar-focus-v25 .grammar-focus-card .grammar-focus-contrast-copy {
    margin-top:7px;
    font-size:14.5px;
  }

  html.grammar-focus-v25 .grammar-focus-card .g-exs {
    padding-left:14px!important;
    border-left-width:3px;
  }

  html.grammar-focus-v25 .grammar-focus-card .g-ex {
    padding:22px 0 26px!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .g-ex .jp {
    font-size:clamp(22px,6.4vw,26px)!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .g-ex .vn {
    padding-left:14px!important;
    font-size:15px!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .w-foot {
    padding:26px 20px calc(34px + env(safe-area-inset-bottom,0px))!important;
  }
}

/* V25.5 — compact Japanese-detail disclosure with a restrained shodo tab. */
html.grammar-focus-v25 .grammar-focus-card .g-explain .grammar-focus-ja-disclosure {
  grid-area:ja-detail;
  position:relative;
  overflow:hidden;
  margin:0;
  border-top:1px solid var(--gf-hair);
  border-bottom:1px solid var(--gf-hair);
  background:
    linear-gradient(90deg,color-mix(in srgb,var(--gf-sepia) 6%,transparent),transparent 72%);
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-toggle {
  width:100%;
  min-height:50px;
  display:grid;
  grid-template-columns:28px auto minmax(0,1fr) 28px;
  align-items:center;
  gap:12px;
  margin:0;
  padding:8px 12px 8px 18px;
  border:0;
  background:transparent;
  color:var(--gf-ink);
  text-align:left;
  cursor:pointer;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-toggle::before {
  content:"JP";
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border:1px solid color-mix(in srgb,var(--gf-seal) 45%,transparent);
  border-radius:50% 47% 52% 45%;
  color:var(--gf-seal);
  font-family:"Bricolage Grotesque",var(--gf-sans);
  font-size:9px;
  font-weight:850;
  letter-spacing:.06em;
  transform:rotate(-3deg);
  grid-column:1;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-toggle::after {
  content:"＋";
  display:grid;
  place-items:center;
  color:var(--gf-seal);
  font-family:var(--gf-mincho);
  font-size:20px;
  font-weight:500;
  grid-column:4;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-toggle[aria-expanded="true"]::after {
  content:"−";
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-toggle:hover {
  background:color-mix(in srgb,var(--gf-sepia) 5%,transparent);
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-toggle:focus-visible {
  outline:3px solid color-mix(in srgb,var(--gf-seal) 58%,transparent)!important;
  outline-offset:-3px!important;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-toggle__jp {
  grid-column:2;
  color:var(--gf-ink);
  font-family:var(--gf-mincho);
  font-size:16px;
  font-weight:700;
  letter-spacing:.035em;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-toggle__vi {
  grid-column:3;
  justify-self:start;
  color:var(--gf-soft);
  font-family:var(--gf-sans);
  font-size:12px;
  font-weight:650;
  letter-spacing:.015em;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-disclosure .grammar-focus-ja-detail {
  grid-area:auto;
  margin:0;
  padding:18px 22px 20px 24px;
  border:0;
  border-top:1px solid color-mix(in srgb,var(--gf-hair) 72%,transparent);
  border-left:4px solid color-mix(in srgb,var(--gf-seal) 62%,transparent);
  background:color-mix(in srgb,var(--gf-sepia) 3.5%,transparent);
  color:var(--gf-ink);
  font-family:var(--gf-mincho);
  font-size:16px;
  line-height:1.88;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-disclosure .grammar-focus-ja-detail::before {
  display:none;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-disclosure .grammar-focus-ja-detail[hidden] {
  display:none!important;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-disclosure.is-open {
  background:
    linear-gradient(100deg,color-mix(in srgb,var(--gf-sepia) 8%,transparent),transparent 78%);
}

@media (max-width:560px) {
  html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-toggle {
    min-height:48px;
    grid-template-columns:28px minmax(0,1fr) 24px;
    gap:10px;
    padding:8px 6px;
  }

  html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-toggle__jp {
    grid-column:2;
    font-size:15px;
  }

  html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-toggle__vi {
    display:none;
  }

  html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-toggle::after {
    grid-column:3;
  }

  html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-disclosure .grammar-focus-ja-detail {
    padding:16px 0 18px 16px;
    background:transparent;
    font-size:15px;
    line-height:1.9;
  }
}

/* V25.6 — Japanese detail opens in the top layer, so examples never move. */
html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-dialog {
  width:min(720px,calc(100vw - 36px));
  max-width:720px;
  max-height:min(76dvh,720px);
  grid-template-rows:auto minmax(0,1fr);
  margin:auto;
  padding:0;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--gf-glass-border) 82%,transparent);
  border-radius:24px;
  background:
    radial-gradient(76% 56% at 96% 0%,color-mix(in srgb,var(--gf-sepia) 7%,transparent),transparent 74%),
    color-mix(in srgb,var(--gf-paper) 94%,transparent);
  color:var(--gf-ink);
  box-shadow:0 34px 110px rgba(5,18,32,.42),inset 0 1px rgba(255,255,255,.5);
  -webkit-backdrop-filter:blur(24px) saturate(1.18);
  backdrop-filter:blur(24px) saturate(1.18);
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-dialog:not([open]) {
  display:none;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-dialog[open] {
  display:grid;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-dialog::backdrop {
  background:rgba(3,13,24,.58);
  -webkit-backdrop-filter:blur(7px) saturate(.82);
  backdrop-filter:blur(7px) saturate(.82);
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-dialog__head {
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  min-height:66px;
  padding:10px 14px 10px 22px;
  border-bottom:1px solid var(--gf-hair);
  background:linear-gradient(90deg,color-mix(in srgb,var(--gf-sepia) 7%,transparent),transparent 76%);
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-dialog__title {
  margin:0;
  color:var(--gf-ink);
  font-family:var(--gf-mincho);
  font-size:20px;
  font-weight:700;
  letter-spacing:.035em;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-dialog__hint {
  justify-self:start;
  color:var(--gf-sepia);
  font-family:var(--gf-sans);
  font-size:11px;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-dialog__close {
  min-width:64px;
  min-height:44px;
  padding:8px 13px;
  border:1px solid var(--gf-hair);
  border-radius:999px;
  background:transparent;
  color:var(--gf-ink);
  font-family:var(--gf-sans);
  font-size:13px;
  font-weight:800;
  cursor:pointer;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-dialog__close:hover {
  border-color:color-mix(in srgb,var(--gf-seal) 54%,var(--gf-hair));
  color:var(--gf-seal);
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-dialog .grammar-focus-ja-detail {
  min-height:0;
  max-height:calc(min(76dvh,720px) - 67px);
  margin:0;
  padding:30px 34px 38px;
  overflow:auto;
  overscroll-behavior:contain;
  border:0;
  background:transparent;
  color:var(--gf-ink);
  font-family:var(--gf-mincho);
  font-size:17px;
  font-weight:500;
  line-height:2.12;
  scrollbar-width:thin;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-dialog .grammar-focus-ja-detail ruby {
  display:inline-block;
  position:relative;
  padding-top:.72em;
  ruby-position:over;
}

html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-dialog .grammar-focus-ja-detail ruby > rt {
  position:absolute;
  top:0;
  left:50%;
  color:var(--gf-sepia);
  font-family:var(--gf-sans);
  font-size:max(.5em,11px);
  font-weight:650;
  line-height:1.05;
  white-space:nowrap;
  transform:translateX(-50%);
}

@media (max-width:560px) {
  html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-dialog {
    width:100%;
    max-width:none;
    max-height:82dvh;
    margin:auto 0 0;
    border-width:1px 0 0;
    border-radius:24px 24px 0 0;
  }

  html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-dialog__head {
    min-height:62px;
    grid-template-columns:minmax(0,1fr) auto;
    padding:9px 12px 9px 18px;
  }

  html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-dialog__title {
    font-size:18px;
  }

  html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-dialog__hint {
    display:none;
  }

  html.grammar-focus-v25 .grammar-focus-card .grammar-focus-ja-dialog .grammar-focus-ja-detail {
    max-height:calc(82dvh - 63px);
    padding:24px 20px calc(34px + env(safe-area-inset-bottom,0px));
    font-size:16px;
    line-height:2.18;
  }
}

/* V25.7 — one default lesson view and one settings entry point. */
html.grammar-focus-v25 .hd.journey-header {
  position:relative!important;
  top:auto!important;
}

html.grammar-focus-v25 .hd.journey-header .hd-row {
  grid-template-columns:auto auto minmax(0,1fr) auto!important;
}

html.grammar-focus-v25 .lm-switch {
  display:none!important;
}

html.grammar-focus-v25 .grammar-settings-trigger {
  width:44px;
  min-width:44px;
  height:44px;
  min-height:44px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid var(--gf-glass-border);
  border-radius:14px;
  background:var(--gf-glass);
  color:var(--gf-ink);
  font-family:var(--gf-sans);
  font-size:20px;
  cursor:pointer;
  box-shadow:inset 0 1px rgba(255,255,255,.34),0 9px 24px rgba(8,28,44,.12);
  -webkit-backdrop-filter:blur(14px);
  backdrop-filter:blur(14px);
}

html.grammar-focus-v25 .grammar-settings-dialog {
  width:min(620px,calc(100vw - 36px));
  max-height:min(78dvh,700px);
  margin:auto;
  padding:0;
  overflow:hidden;
  border:1px solid var(--gf-glass-border);
  border-radius:24px;
  background:color-mix(in srgb,var(--gf-paper) 95%,transparent);
  color:var(--gf-ink);
  box-shadow:0 34px 110px rgba(5,18,32,.42),inset 0 1px rgba(255,255,255,.5);
  -webkit-backdrop-filter:blur(24px) saturate(1.18);
  backdrop-filter:blur(24px) saturate(1.18);
}

html.grammar-focus-v25 .grammar-settings-dialog:not([open]) { display:none; }
html.grammar-focus-v25 .grammar-settings-dialog[open] { display:grid;grid-template-rows:auto minmax(0,1fr); }

html.grammar-focus-v25 .grammar-settings-dialog::backdrop {
  background:rgba(3,13,24,.58);
  -webkit-backdrop-filter:blur(7px) saturate(.82);
  backdrop-filter:blur(7px) saturate(.82);
}

html.grammar-focus-v25 .grammar-settings-dialog__head {
  min-height:66px;
  display:flex;
  align-items:center;
  gap:12px;
  padding:10px 14px 10px 22px;
  border-bottom:1px solid var(--gf-hair);
  background:linear-gradient(90deg,color-mix(in srgb,var(--gf-sepia) 7%,transparent),transparent 76%);
}

html.grammar-focus-v25 .grammar-settings-dialog__title {
  flex:1;
  margin:0;
  color:var(--gf-ink);
  font-family:var(--gf-mincho);
  font-size:21px;
  font-weight:700;
}

html.grammar-focus-v25 .grammar-settings-dialog__close {
  min-width:64px;
  min-height:44px;
  padding:8px 13px;
  border:1px solid var(--gf-hair);
  border-radius:999px;
  background:transparent;
  color:var(--gf-ink);
  font-family:var(--gf-sans);
  font-size:13px;
  font-weight:800;
  cursor:pointer;
}

html.grammar-focus-v25 .grammar-settings-dialog__body {
  min-height:0;
  padding:22px;
  overflow:auto;
}

html.grammar-focus-v25 .grammar-settings-dialog__intro {
  margin:0 0 18px;
  color:var(--gf-soft);
  font-family:var(--gf-sans);
  font-size:14px;
  line-height:1.65;
}

html.grammar-focus-v25 .grammar-settings-dialog__controls {
  display:grid;
  gap:0;
  border-top:1px solid var(--gf-hair);
}

html.grammar-focus-v25 .grammar-settings-row {
  min-height:68px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:16px;
  align-items:center;
  padding:10px 0;
  border-bottom:1px solid var(--gf-hair);
}

html.grammar-focus-v25 .grammar-settings-row[data-settings-control="theme"] { order:1; }
html.grammar-focus-v25 .grammar-settings-row[data-settings-control="furigana"] { order:2; }
html.grammar-focus-v25 .grammar-settings-row[data-settings-control="source"] { order:3; }

html.grammar-focus-v25 .grammar-settings-row__copy b,
html.grammar-focus-v25 .grammar-settings-row__copy small { display:block; }

html.grammar-focus-v25 .grammar-settings-row__copy b {
  color:var(--gf-ink);
  font-family:var(--gf-sans);
  font-size:15px;
}

html.grammar-focus-v25 .grammar-settings-row__copy small {
  margin-top:3px;
  color:var(--gf-soft);
  font-family:var(--gf-sans);
  font-size:12px;
  line-height:1.4;
}

html.grammar-focus-v25 .grammar-settings-row__control {
  min-width:64px;
  display:flex;
  justify-content:flex-end;
}

html.grammar-focus-v25 .grammar-settings-dialog .grammar-settings-control {
  position:static!important;
  inset:auto!important;
  transform:none!important;
  margin:0!important;
  min-width:44px!important;
  min-height:44px!important;
  box-shadow:none!important;
}

html.grammar-focus-v25 .grammar-settings-dialog .hd-mode.grammar-settings-control {
  font-size:18px!important;
  color:var(--gf-ink)!important;
}

html.grammar-focus-v25 .grammar-settings-dialog .hd-mode.grammar-settings-control::after {
  display:none!important;
}

html.grammar-focus-v25 .grammar-settings-dialog #tl-furi {
  width:auto!important;
  padding:8px 13px!important;
  border:1px solid var(--gf-hair)!important;
  border-radius:999px!important;
  background:transparent!important;
  color:var(--gf-ink)!important;
}

@media (max-width:560px) {
  html.grammar-focus-v25 .hd.journey-header .hd-row {
    grid-template-columns:auto auto minmax(0,1fr) auto!important;
  }

  html.grammar-focus-v25 .grammar-settings-dialog {
    width:100%;
    max-width:none;
    max-height:82dvh;
    margin:auto 0 0;
    border-width:1px 0 0;
    border-radius:24px 24px 0 0;
  }

  html.grammar-focus-v25 .grammar-settings-dialog__head {
    min-height:62px;
    padding:9px 12px 9px 18px;
  }

  html.grammar-focus-v25 .grammar-settings-dialog__title { font-size:19px; }
  html.grammar-focus-v25 .grammar-settings-dialog__body { padding:18px; }
}

/* Source RC adapter: usage lists and multi-line dialogue scenarios. */
html.grammar-focus-family-source-rc .grammar-focus-card .g-usage {
  counter-reset:grammar-usage;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 28px;
  margin:0;
  padding:0;
  list-style:none;
  border-top:1px solid var(--gf-hair);
}

html.grammar-focus-family-source-rc .app .view #flowBox.grammar-focus-active .grammar-focus-card .g-usage {
  border:0!important;
  border-top:1px solid var(--gf-hair)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

html.grammar-focus-family-source-rc .grammar-focus-card .g-usage li {
  counter-increment:grammar-usage;
  position:relative;
  min-width:0;
  padding:15px 0 15px 34px;
  border-bottom:1px solid var(--gf-hair);
  color:var(--gf-soft);
  font-family:var(--gf-sans);
  font-size:15px;
  line-height:1.65;
}

html.grammar-focus-family-source-rc .grammar-focus-card .g-usage li::before {
  content:counter(grammar-usage,decimal-leading-zero);
  position:absolute;
  top:17px;
  left:0;
  color:var(--gf-seal);
  font-family:"Bricolage Grotesque",var(--gf-sans);
  font-size:10px;
  font-weight:800;
}

html.grammar-focus-family-source-rc .grammar-focus-card .g-usage strong {
  color:var(--gf-ink);
  font-weight:700;
}

html.grammar-focus-family-source-rc .grammar-focus-card .g-ex.grammar-focus-dialogue,
html.grammar-focus-family-source-rc .app .view #flowBox.grammar-focus-active .grammar-focus-card .g-ex.grammar-focus-dialogue {
  display:block!important;
  padding:18px 0 22px!important;
  border:0!important;
  border-top:1px solid var(--gf-hair)!important;
  background:transparent!important;
  box-shadow:none!important;
}

html.grammar-focus-family-source-rc .grammar-focus-card .g-ex-line {
  display:grid;
  grid-template-columns:30px minmax(0,1fr) auto;
  grid-template-areas:
    "turn sentence action"
    ". translation translation";
  gap:8px 14px;
  align-items:start;
  padding:13px 0;
  border-bottom:1px solid color-mix(in srgb,var(--gf-hair) 62%,transparent);
}

html.grammar-focus-family-source-rc .grammar-focus-card .g-ex-line:last-of-type {
  border-bottom:0;
}

html.grammar-focus-family-source-rc .grammar-focus-card .g-ex-line::before {
  content:attr(data-grammar-line-index);
  grid-area:turn;
  padding-top:9px;
  color:var(--gf-seal);
  font-family:"Bricolage Grotesque",var(--gf-sans);
  font-size:10px;
  font-weight:800;
}

html.grammar-focus-family-source-rc .grammar-focus-card .g-ex-line > .jp {
  grid-area:sentence;
  display:block!important;
  font-family:var(--gf-mincho)!important;
  font-size:clamp(21px,2vw,26px)!important;
  line-height:2.02!important;
  color:var(--gf-ink)!important;
}

html.grammar-focus-family-source-rc .grammar-focus-card .g-ex-line > .vn {
  grid-area:translation;
  max-width:68ch;
  margin:0!important;
  padding:10px 0 0 14px!important;
  border:0!important;
  border-left:3px solid color-mix(in srgb,var(--gf-seal) 34%,transparent)!important;
  color:var(--gf-soft)!important;
  font-family:var(--gf-sans)!important;
  font-size:15px!important;
  line-height:1.7!important;
}

html.grammar-focus-family-source-rc .grammar-focus-card .grammar-focus-line-actions {
  grid-area:action;
  display:flex;
  align-items:center;
  gap:7px;
}

html.grammar-focus-family-source-rc .grammar-focus-card .grammar-focus-line-actions:empty {
  display:none;
}

html.grammar-focus-family-source-rc .grammar-focus-card .grammar-focus-line-actions .tl-example-meaning-toggle {
  min-width:104px!important;
}

html.grammar-focus-family-source-rc .grammar-focus-card .grammar-focus-line-actions .exspk {
  width:44px!important;
  min-width:44px!important;
  height:44px!important;
  min-height:44px!important;
}

html.grammar-focus-family-source-rc .grammar-focus-card .grammar-focus-dialogue > .grammar-focus-example-actions {
  margin-top:10px;
}

html.grammar-focus-family-source-rc .grammar-focus-card .grammar-focus-dialogue > .grammar-focus-example-actions:empty {
  display:none;
}

@media (max-width:560px) {
  html.grammar-focus-family-source-rc .grammar-focus-card .g-usage {
    grid-template-columns:minmax(0,1fr);
  }

  html.grammar-focus-family-source-rc .grammar-focus-card .g-ex-line {
    grid-template-columns:24px minmax(0,1fr);
    grid-template-areas:
      "turn sentence"
      ". action"
      ". translation";
    gap:8px 10px;
  }

  html.grammar-focus-family-source-rc .grammar-focus-card .g-ex-line > .jp {
    font-size:clamp(20px,5.8vw,24px)!important;
  }
}

/* Quiz-only adapter: one editorial exam sheet, never a fake lesson card. */
html.grammar-focus-family-quiz-only #flowBox.grammar-focus-quiz-active,
html.grammar-focus-family-quiz-only .app .view #flowBox.grammar-focus-quiz-active {
  overflow:visible!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}

html.grammar-focus-family-quiz-only .journey-toolbox .bnav {
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
}

html.grammar-focus-family-quiz-only .grammar-focus-quiz-root .exwrap.grammar-focus-quiz {
  position:relative;
  overflow:hidden;
  width:100%;
  min-height:520px;
  padding:40px 48px 46px!important;
  border:1px solid color-mix(in srgb,var(--gf-glass-border) 78%,transparent)!important;
  border-radius:26px!important;
  background-color:transparent!important;
  background-image:
    radial-gradient(78% 58% at 96% 0%,color-mix(in srgb,var(--gf-sepia) 5%,transparent),transparent 72%),
    linear-gradient(145deg,color-mix(in srgb,var(--gf-paper) 70%,transparent),color-mix(in srgb,var(--gf-paper-soft) 72%,transparent))!important;
  color:var(--gf-ink)!important;
  box-shadow:var(--gf-shadow)!important;
  -webkit-backdrop-filter:blur(18px) saturate(1.08)!important;
  backdrop-filter:blur(18px) saturate(1.08)!important;
}

html.grammar-focus-family-quiz-only .grammar-focus-quiz-root .exwrap.grammar-focus-quiz::before {
  content:"文法練習";
  position:absolute;
  top:30px;
  right:46px;
  color:color-mix(in srgb,var(--gf-sepia) 62%,transparent);
  font-family:var(--gf-mincho);
  font-size:12px;
  letter-spacing:.2em;
  pointer-events:none;
}

html.grammar-focus-family-quiz-only .grammar-focus-quiz .ex-top {
  display:grid!important;
  grid-template-columns:44px minmax(0,1fr) auto;
  gap:14px!important;
  align-items:center!important;
  margin:0 0 30px!important;
  padding:0 0 20px!important;
  border-bottom:1px solid var(--gf-hair);
}

html.grammar-focus-family-quiz-only .grammar-focus-quiz .ex-quit {
  width:44px!important;
  min-width:44px!important;
  height:44px!important;
  min-height:44px!important;
  border:1px solid var(--gf-hair)!important;
  border-radius:50%!important;
  background:transparent!important;
  color:var(--gf-soft)!important;
  font-family:var(--gf-sans)!important;
  font-size:20px!important;
  font-weight:700!important;
  box-shadow:none!important;
}

html.grammar-focus-family-quiz-only .grammar-focus-quiz .ex-pb {
  height:4px!important;
  border-radius:99px!important;
  background:color-mix(in srgb,var(--gf-ink) 12%,transparent)!important;
}

html.grammar-focus-family-quiz-only .grammar-focus-quiz .ex-pb > i {
  background:var(--gf-seal)!important;
  box-shadow:none!important;
}

html.grammar-focus-family-quiz-only .grammar-focus-quiz .ex-score {
  min-width:58px;
  color:var(--gf-sepia)!important;
  font-family:"Bricolage Grotesque",var(--gf-sans)!important;
  font-size:12px!important;
  font-weight:800!important;
  text-align:right;
}

html.grammar-focus-family-quiz-only .grammar-focus-quiz .q-label {
  margin:0 0 18px!important;
  color:var(--gf-seal)!important;
  font-family:var(--gf-sans)!important;
  font-size:12px!important;
  font-weight:800!important;
  letter-spacing:.13em;
  text-transform:uppercase;
}

html.grammar-focus-family-quiz-only .grammar-focus-quiz .q-stem,
html.grammar-focus-family-quiz-only .grammar-focus-quiz .q-stem.jp {
  margin:0!important;
  padding:0 0 25px!important;
  border-bottom:1px solid var(--gf-hair);
  color:var(--gf-ink)!important;
  font-family:var(--gf-mincho)!important;
  font-size:clamp(24px,2.2vw,30px)!important;
  font-weight:500!important;
  line-height:2.05!important;
  text-wrap:pretty;
}

html.grammar-focus-family-quiz-only .grammar-focus-quiz .q-stem rt {
  color:var(--gf-sepia)!important;
  font-family:var(--gf-mincho)!important;
  font-size:.48em!important;
}

html.grammar-focus-family-quiz-only .grammar-focus-quiz .grammar-focus-quiz-translation {
  max-width:74ch;
  margin:14px 0 0!important;
  padding:0 0 0 16px!important;
  border-left:3px solid color-mix(in srgb,var(--gf-seal) 32%,transparent);
  color:var(--gf-soft)!important;
  font-family:var(--gf-sans)!important;
  font-size:15px!important;
  font-style:normal!important;
  line-height:1.7!important;
}

html.grammar-focus-family-quiz-only .grammar-focus-quiz .opts {
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  gap:0!important;
  margin:26px 0 0!important;
  border-bottom:1px solid var(--gf-hair);
}

html.grammar-focus-family-quiz-only .grammar-focus-quiz .opt {
  position:relative;
  width:100%!important;
  min-height:60px!important;
  display:grid!important;
  grid-template-columns:44px minmax(0,1fr) auto!important;
  gap:12px!important;
  align-items:center!important;
  padding:12px 8px!important;
  border:0!important;
  border-top:1px solid var(--gf-hair)!important;
  border-radius:0!important;
  background:transparent!important;
  color:var(--gf-ink)!important;
  font-family:var(--gf-sans)!important;
  text-align:left!important;
  box-shadow:none!important;
}

html.grammar-focus-family-quiz-only .grammar-focus-quiz .opt:hover,
html.grammar-focus-family-quiz-only .grammar-focus-quiz .opt:focus-visible {
  background:color-mix(in srgb,var(--gf-sepia) 6%,transparent)!important;
}

html.grammar-focus-family-quiz-only .grammar-focus-quiz .opt .om,
html.grammar-focus-family-quiz-only .grammar-focus-quiz .opt .idx {
  min-width:32px;
  display:inline-grid;
  place-items:center;
  color:var(--gf-seal)!important;
  font-family:var(--gf-mincho)!important;
  font-size:18px!important;
  font-weight:700!important;
}

html.grammar-focus-family-quiz-only .grammar-focus-quiz .opt .jp {
  color:inherit!important;
  font-family:var(--gf-mincho)!important;
  font-size:clamp(18px,1.8vw,22px)!important;
  line-height:1.85!important;
}

html.grammar-focus-family-quiz-only .grammar-focus-quiz .opt[data-grammar-feedback="correct"] {
  border-top-color:color-mix(in srgb,#34745a 52%,var(--gf-hair))!important;
  background:color-mix(in srgb,#34745a 12%,transparent)!important;
  color:color-mix(in srgb,#34745a 72%,var(--gf-ink))!important;
}

html.grammar-focus-family-quiz-only .grammar-focus-quiz .opt[data-grammar-feedback="correct"]::after {
  content:"Đúng ✓";
  color:inherit;
  font-size:12px;
  font-weight:800;
}

html.grammar-focus-family-quiz-only .grammar-focus-quiz .opt[data-grammar-feedback="incorrect"] {
  background:color-mix(in srgb,var(--gf-seal) 10%,transparent)!important;
  color:var(--gf-seal)!important;
}

html.grammar-focus-family-quiz-only .grammar-focus-quiz .opt[data-grammar-feedback="incorrect"]::after {
  content:"Chưa đúng";
  color:inherit;
  font-size:12px;
  font-weight:800;
}

html.grammar-focus-family-quiz-only .grammar-focus-quiz .q-detail {
  margin:26px 0 0!important;
  padding:18px 20px!important;
  border:0!important;
  border-left:4px solid var(--gf-seal)!important;
  border-radius:0!important;
  background:var(--gf-wash)!important;
  color:var(--gf-ink)!important;
  font-family:var(--gf-sans)!important;
  font-size:15px!important;
  line-height:1.75!important;
  box-shadow:none!important;
}

html.grammar-focus-family-quiz-only .grammar-focus-quiz .nextbtn,
html.grammar-focus-family-quiz-only .grammar-focus-quiz .ghost {
  min-height:48px!important;
  margin-top:22px!important;
  border:1px solid var(--gf-ink)!important;
  border-radius:999px!important;
  font-family:var(--gf-sans)!important;
  font-size:14px!important;
  font-weight:800!important;
}

html.grammar-focus-family-quiz-only .grammar-focus-quiz .nextbtn.on {
  background:var(--gf-ink)!important;
  color:var(--gf-paper)!important;
}

html.grammar-focus-family-quiz-only .grammar-focus-quiz .done-card {
  min-height:390px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  color:var(--gf-ink)!important;
  font-family:var(--gf-sans)!important;
}

html.grammar-focus-family-quiz-only .grammar-focus-quiz .done-tt {
  font-family:var(--gf-mincho)!important;
  font-size:clamp(30px,4vw,44px)!important;
  color:var(--gf-ink)!important;
}

html.grammar-focus-family-quiz-only .grammar-focus-quiz .done-sub {
  color:var(--gf-soft)!important;
}

@media (max-width:560px) {
  html.grammar-focus-family-quiz-only .grammar-focus-quiz-root .exwrap.grammar-focus-quiz {
    min-height:0;
    padding:26px 20px calc(32px + env(safe-area-inset-bottom,0px))!important;
    border-radius:22px!important;
  }

  html.grammar-focus-family-quiz-only .grammar-focus-quiz-root .exwrap.grammar-focus-quiz::before {
    top:18px;
    right:20px;
    font-size:10px;
  }

  html.grammar-focus-family-quiz-only .grammar-focus-quiz .ex-top {
    margin-bottom:23px!important;
    padding-bottom:16px!important;
  }

  html.grammar-focus-family-quiz-only .grammar-focus-quiz .q-label {
    max-width:72%;
    font-size:11px!important;
    line-height:1.55!important;
  }

  html.grammar-focus-family-quiz-only .grammar-focus-quiz .q-stem,
  html.grammar-focus-family-quiz-only .grammar-focus-quiz .q-stem.jp {
    padding-bottom:20px!important;
    font-size:clamp(21px,6vw,25px)!important;
    line-height:2.08!important;
  }

  html.grammar-focus-family-quiz-only .grammar-focus-quiz .grammar-focus-quiz-translation {
    font-size:14.5px!important;
  }

  html.grammar-focus-family-quiz-only .grammar-focus-quiz .opts {
    margin-top:20px!important;
  }

  html.grammar-focus-family-quiz-only .grammar-focus-quiz .opt {
    min-height:58px!important;
    grid-template-columns:38px minmax(0,1fr)!important;
    padding:10px 4px!important;
  }

  html.grammar-focus-family-quiz-only .grammar-focus-quiz .opt::after {
    grid-column:2;
    justify-self:start;
  }

  html.grammar-focus-family-quiz-only .grammar-focus-quiz .opt .jp {
    font-size:18px!important;
  }

  html.grammar-focus-family-quiz-only .grammar-focus-quiz .q-detail {
    margin-top:22px!important;
    padding:16px 0 16px 16px!important;
    background:transparent!important;
    font-size:14.5px!important;
  }
}

/* TL_DAY adapter: the guided lesson owns navigation until its done key changes. */
html.grammar-focus-family-tl-day:has(
  .app[data-grammar-focus-day="v1"] #day-khoi:not([hidden]) > #day.tl-day:not([hidden])
) .journey-panel {
  display:none!important;
}

html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] #day-khoi {
  width:100%;
  min-width:0;
}

html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day {
  --day-bg:transparent;
  --day-surface:var(--gf-paper);
  --day-surface-2:var(--gf-paper-soft);
  --day-ink:var(--gf-ink);
  --day-ink-2:var(--gf-soft);
  --day-muted:var(--gf-soft);
  --day-line:var(--gf-hair);
  --day-line-soft:color-mix(in srgb,var(--gf-hair) 64%,transparent);
  --day-son:var(--gf-seal);
  --day-son-strong:var(--gf-seal);
  --day-gold:var(--gf-sepia);
  --day-gold-soft:color-mix(in srgb,var(--gf-sepia) 38%,transparent);
  --day-display:var(--gf-mincho);
  --day-sans:var(--gf-sans);
  --day-jp:var(--gf-mincho);
  --day-shadow:var(--gf-shadow);
  color:var(--gf-ink);
}

html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__in {
  width:100%;
  max-width:none;
  margin:0;
  padding:0;
}

html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__man {
  position:relative;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--gf-glass-border) 78%,transparent)!important;
  border-radius:26px!important;
  background-color:transparent!important;
  background-image:
    radial-gradient(78% 58% at 96% 0%,color-mix(in srgb,var(--gf-sepia) 5%,transparent),transparent 72%),
    linear-gradient(145deg,color-mix(in srgb,var(--gf-paper) 70%,transparent),color-mix(in srgb,var(--gf-paper-soft) 72%,transparent))!important;
  box-shadow:var(--gf-shadow)!important;
  -webkit-backdrop-filter:blur(18px) saturate(1.08)!important;
  backdrop-filter:blur(18px) saturate(1.08)!important;
}

html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__doan {
  gap:7px;
  padding:24px 42px 0;
}

html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__doan i {
  height:3px;
  border:0;
  background:color-mix(in srgb,var(--gf-ink) 12%,transparent);
  box-shadow:none;
}

html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__doan i.qua {
  background:color-mix(in srgb,var(--gf-sepia) 52%,transparent);
}

html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__doan i.nay {
  background:var(--gf-seal);
  box-shadow:none;
}

html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__dau {
  padding:34px 42px 0;
}

html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__so {
  color:var(--gf-seal);
  font-family:var(--gf-sans);
  font-size:11px;
  font-weight:800;
  letter-spacing:.16em;
}

html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__t {
  max-width:22ch;
  margin-top:12px;
  color:var(--gf-ink);
  font-family:var(--gf-mincho);
  font-size:clamp(36px,4vw,48px);
  font-weight:500;
  line-height:1.25;
  letter-spacing:-.02em;
}

html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__mau {
  width:auto;
  margin-top:18px;
  padding:8px 0 8px 18px;
  border:0;
  border-left:4px solid color-mix(in srgb,var(--gf-seal) 66%,transparent);
  background:transparent;
  color:var(--gf-sepia);
  font-family:var(--gf-mincho);
  font-size:clamp(22px,2.6vw,29px);
  line-height:1.65;
}

html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__g {
  max-width:74ch;
  margin:24px 42px 0;
  color:var(--gf-soft);
  font-family:var(--gf-sans);
  font-size:16.5px;
  line-height:1.75;
}

html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__g b {
  color:var(--gf-seal);
}

html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__ct {
  margin:26px 42px 0;
  padding:20px 0 20px 22px;
  border:0;
  border-left:4px solid color-mix(in srgb,var(--gf-sepia) 70%,transparent);
  border-radius:0;
  background:color-mix(in srgb,var(--gf-sepia) 4%,transparent);
  box-shadow:none;
}

html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__ct-label,
html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__vdlb span {
  color:var(--gf-sepia);
  font-family:var(--gf-sans);
  font-size:11px;
  font-weight:800;
}

html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__ct b {
  color:var(--gf-ink);
  font-family:var(--gf-mincho);
  font-size:clamp(21px,2.5vw,28px);
  line-height:1.75;
}

html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__vdlb {
  margin:34px 42px 12px;
}

html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__vd,
html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__them,
html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__bang,
html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__canh {
  margin-right:42px;
  margin-left:42px;
}

html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__v {
  padding:20px 0;
}

html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__v--chinh {
  padding:20px 0 20px 22px;
  border:0;
  border-left:4px solid color-mix(in srgb,var(--gf-seal) 58%,transparent);
  border-radius:0;
  background:transparent;
  box-shadow:none;
}

html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__jp {
  color:var(--gf-ink);
  font-family:var(--gf-mincho);
  font-size:clamp(23px,2.8vw,30px);
  line-height:2.02;
}

html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__vi {
  max-width:70ch;
  padding-left:16px;
  border-left:3px solid color-mix(in srgb,var(--gf-seal) 30%,transparent);
  color:var(--gf-soft);
  font-family:var(--gf-sans);
  font-size:15px;
  line-height:1.7;
}

html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__nghia,
html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__nghe,
html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__on-lai {
  min-height:44px;
  border:1px solid var(--gf-hair);
  background:transparent;
  color:var(--gf-seal);
  box-shadow:none;
}

html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__bang,
html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__canh,
html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__practice {
  border-color:var(--gf-hair);
  border-radius:0;
  background:transparent;
  box-shadow:none;
}

html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__canh {
  padding:16px 0 16px 20px;
  border-width:0 0 0 4px;
  border-left-color:var(--gf-seal);
}

html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__nav {
  padding:34px 42px 38px;
  border-top:1px solid var(--gf-hair);
}

html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__lui {
  min-width:88px;
  color:var(--gf-soft);
}

html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__tiep {
  min-height:50px;
  background:var(--gf-ink);
  color:var(--gf-paper);
  box-shadow:none;
}

html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__xong {
  background:color-mix(in srgb,#34745a 78%,var(--gf-ink));
}

html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] #day-da-xong:not([hidden]) {
  padding:0 0 18px;
}

html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__hoan-tat {
  max-width:none;
  padding:18px 20px;
  border:1px solid var(--gf-hair);
  border-left:4px solid color-mix(in srgb,#34745a 76%,var(--gf-ink));
  background:var(--gf-paper);
  color:var(--gf-ink);
  box-shadow:none;
  -webkit-backdrop-filter:blur(16px);
  backdrop-filter:blur(16px);
}

@media (max-width:560px) {
  html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__man {
    border-radius:22px!important;
  }

  html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__doan {
    padding:18px 20px 0;
  }

  html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__dau {
    padding:26px 20px 0;
  }

  html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__t {
    max-width:none;
    font-size:clamp(31px,9vw,38px);
  }

  html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__mau {
    font-size:clamp(21px,6.3vw,26px);
  }

  html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__g,
  html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__ct,
  html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__vdlb,
  html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__vd,
  html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__them,
  html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__bang,
  html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__canh,
  html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__practice {
    margin-right:20px;
    margin-left:20px;
  }

  html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__ct {
    padding:17px 0 17px 17px;
  }

  html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__ct b {
    font-size:clamp(20px,5.8vw,25px);
  }

  html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__jp {
    font-size:clamp(21px,6vw,25px);
  }

  html.grammar-focus-family-tl-day .app[data-grammar-focus-day="v1"] .tl-day__nav {
    padding:28px 20px calc(30px + env(safe-area-inset-bottom,0px));
  }
}

@media (prefers-reduced-motion:reduce) {
  html.grammar-focus-v25 * {
    scroll-behavior:auto!important;
    animation:none!important;
    transition:none!important;
  }
}

@media (forced-colors:active) {
  html.grammar-focus-v25 .grammar-focus-card,
  html.grammar-focus-v25 .grammar-focus-card .g-sec,
  html.grammar-focus-v25 .grammar-focus-card .g-ex,
  html.grammar-focus-v25 .grammar-focus-card button { border-color:CanvasText!important; }
}

/* Full-cohort interaction cleanup. */
html.grammar-focus-family-quiz-only .journey-panel { display:none!important; }
html.grammar-focus-v25 #fc[role="button"]:focus-visible,
html.grammar-focus-v25 .hubcard[role="button"]:focus-visible {
  outline:3px solid color-mix(in srgb,var(--gf-seal) 44%,transparent)!important;
  outline-offset:3px!important;
}

/* N3 TL_DAY source flow: keep payloads intact while surfacing their full teaching fields. */
html[data-mode="dark"].grammar-focus-v25.tl-day-grammar-source-flow {
  --gf-ink:#fff;
  --gf-soft:#e2ebf2;
}

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day,
html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day * {
  text-shadow:none!important;
}

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__dau {
  display:flex;
  flex-direction:column;
}

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__so { order:0; }

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__mau {
  order:1;
  margin-top:18px;
  color:var(--gf-ink);
  font-family:var(--gf-mincho);
  font-size:clamp(38px,4.5vw,58px);
  font-weight:600;
  line-height:1.48;
}

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__t {
  order:2;
  max-width:34rem;
  margin-top:14px;
  color:var(--gf-soft);
  font-family:var(--gf-sans);
  font-size:clamp(22px,2.2vw,29px);
  font-weight:700;
  line-height:1.34;
  letter-spacing:-.012em;
}

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__meaning,
html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__explain,
html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__compare,
html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__recall {
  margin:26px 42px 0;
  color:var(--gf-ink);
}

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__section-label {
  display:flex;
  align-items:center;
  gap:10px;
  min-height:24px;
  margin-bottom:10px;
  color:var(--gf-sepia);
  font-family:var(--gf-sans);
  font-size:11px;
  font-weight:800;
  letter-spacing:.15em;
  text-transform:uppercase;
}

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__section-label b {
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:2px 8px;
  border:1px solid color-mix(in srgb,var(--gf-seal) 38%,transparent);
  border-radius:999px;
  color:var(--gf-seal);
  font-size:11px;
  letter-spacing:.08em;
}

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__meaning {
  padding:0 0 18px;
  border-bottom:1px solid var(--gf-hair);
}

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__meaning p {
  max-width:34rem;
  margin:0;
  color:var(--gf-ink);
  font-family:var(--gf-sans);
  font-size:clamp(19px,2vw,23px);
  font-weight:700;
  line-height:1.55;
}

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__ct {
  margin-top:26px;
}

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__explain-vi,
html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__compare-copy {
  max-width:72ch;
  color:var(--gf-soft);
  font-family:var(--gf-sans);
  font-size:16.5px;
  font-weight:500;
  line-height:1.78;
}

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__explain-vi + .tl-day__explain-vi {
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid var(--gf-hair);
}

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__source-note {
  margin:12px 0 0;
  color:var(--gf-soft);
  font-family:var(--gf-sans);
  font-size:14px;
  font-weight:500;
}

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__ja-open {
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:12px;
  width:100%;
  min-height:50px;
  margin-top:16px;
  padding:10px 0;
  border:0;
  border-top:1px solid var(--gf-hair);
  border-bottom:1px solid var(--gf-hair);
  background:transparent;
  color:var(--gf-ink);
  text-align:left;
  cursor:pointer;
}

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__ja-open span {
  font-family:var(--gf-mincho);
  font-size:18px;
  font-weight:600;
}

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__ja-open small {
  color:var(--gf-soft);
  font-family:var(--gf-sans);
  font-size:13px;
  font-weight:600;
}

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__ja-dialog {
  width:min(720px,calc(100% - 24px));
  max-height:min(760px,calc(100dvh - 24px));
  margin:auto;
  padding:0;
  overflow:auto;
  border:1px solid var(--gf-glass-border);
  border-radius:24px;
  background:var(--gf-paper);
  color:var(--gf-ink);
  box-shadow:0 28px 90px rgba(2,8,18,.46);
  -webkit-backdrop-filter:blur(24px) saturate(150%);
  backdrop-filter:blur(24px) saturate(150%);
}

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__ja-dialog:not([open]) { display:none; }
html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__ja-dialog::backdrop { background:rgba(3,10,20,.68); }

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__ja-dialog header {
  position:sticky;
  top:0;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:68px;
  padding:12px 18px;
  border-bottom:1px solid var(--gf-hair);
  background:var(--gf-paper);
}

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__ja-dialog h4 {
  margin:0;
  font-family:var(--gf-mincho);
  font-size:22px;
}

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__ja-close {
  min-width:60px;
  min-height:44px;
  border:1px solid var(--gf-hair);
  border-radius:12px;
  background:transparent;
  color:var(--gf-ink);
  font-family:var(--gf-sans);
  font-weight:700;
  cursor:pointer;
}

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__ja-copy {
  padding:24px;
  color:var(--gf-ink);
  font-family:var(--gf-mincho);
  font-size:20px;
  line-height:2.15;
}

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__ja-copy ruby {
  ruby-position:over;
  padding-top:.76em;
}

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__ja-copy rt {
  color:var(--gf-soft);
  font-family:var(--gf-sans);
  font-size:11px;
  line-height:1;
}

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__compare {
  padding:18px 0 18px 20px;
  border-left:4px solid color-mix(in srgb,var(--gf-seal) 64%,transparent);
}

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__compare-copy .cmp-item {
  position:relative;
  margin:9px 0;
  padding-left:18px;
}

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__compare-copy .cmp-item::before {
  content:"◆";
  position:absolute;
  left:0;
  color:var(--gf-seal);
  font-size:10px;
}

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__compare-copy .cmp-jp,
html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__compare-copy strong {
  color:var(--gf-ink);
  font-weight:700;
}

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__recall {
  padding-top:20px;
  border-top:1px solid var(--gf-hair);
}

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__recall-hint {
  margin:0 0 8px;
  color:var(--gf-soft);
  font-size:14px;
  font-weight:500;
}

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__recall details {
  border-bottom:1px solid var(--gf-hair);
}

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__recall summary {
  display:grid;
  grid-template-columns:minmax(120px,.35fr) minmax(0,1fr);
  align-items:center;
  gap:14px;
  min-height:52px;
  padding:8px 0;
  color:var(--gf-ink);
  list-style:none;
  cursor:pointer;
}

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__recall summary::-webkit-details-marker { display:none; }
html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__recall summary span { font-weight:800; }
html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__recall summary small { color:var(--gf-soft);font-size:13px;font-weight:500; }

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__recall-answer {
  padding:4px 0 16px;
  color:var(--gf-ink);
  font-family:var(--gf-mincho);
  font-size:18px;
  line-height:1.8;
}

html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__them summary {
  color:var(--gf-ink);
  font-weight:800;
}

@media (max-width:560px) {
  html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__mau {
    font-size:clamp(32px,10.6vw,44px);
    line-height:1.52;
  }

  html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__t {
    font-size:22px;
  }

  html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__meaning,
  html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__explain,
  html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__compare,
  html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__recall {
    margin-right:20px;
    margin-left:20px;
  }

  html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__recall summary {
    grid-template-columns:1fr;
    gap:2px;
    min-height:58px;
  }

  html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__ja-dialog {
    width:100%;
    max-width:none;
    max-height:calc(100dvh - 8px);
    margin:auto 0 0;
    border-radius:24px 24px 0 0;
  }

  html.tl-day-grammar-source-flow .app[data-grammar-focus-day="v1"] .tl-day__nav {
    padding-bottom:calc(112px + env(safe-area-inset-bottom,0px));
  }
}

/* Stable grammar architecture: scenic glass outside, editorial chapters inside. */
html.grammar-focus-v25 .app[data-grammar-layout="editorial-spread"] .grammar-explanation-spread,
html.grammar-focus-v25 .app[data-grammar-layout="editorial-spread"] .grammar-comparison-list {
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

html.grammar-focus-v25 .app[data-grammar-layout="editorial-spread"] .grammar-comparison-row {
  border-right:0!important;
  border-left:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__man {
  background-image:
    radial-gradient(74% 52% at 96% 0%,color-mix(in srgb,var(--gf-sepia) 5%,transparent),transparent 72%),
    linear-gradient(145deg,color-mix(in srgb,var(--gf-glass) 88%,transparent),color-mix(in srgb,var(--gf-paper-soft) 48%,transparent))!important;
  -webkit-backdrop-filter:blur(20px) saturate(1.12)!important;
  backdrop-filter:blur(20px) saturate(1.12)!important;
}

html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__explain,
html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__compare {
  padding:34px 0 0;
  border:0;
  border-top:1px solid var(--gf-hair);
}

html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__explain > .tl-day__section-label,
html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__compare > .tl-day__section-label {
  display:grid;
  grid-template-columns:48px auto auto minmax(24px,1fr);
  gap:14px;
  min-height:48px;
  margin-bottom:28px;
  color:var(--gf-seal);
  font-size:13px;
}

html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__explain > .tl-day__section-label::before,
html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__compare > .tl-day__section-label::before {
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  border-radius:8px 10px 8px 9px;
  background:var(--gf-seal);
  color:#fff8ee;
  font-family:"Bricolage Grotesque",var(--gf-sans);
  font-size:13px;
  font-weight:850;
  letter-spacing:.02em;
  transform:rotate(-1deg);
}

html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__explain > .tl-day__section-label::before { content:"02"; }
html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__compare > .tl-day__section-label::before { content:"03"; }

html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__explain > .tl-day__section-label::after,
html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__compare > .tl-day__section-label::after {
  content:"";
  align-self:center;
  height:1px;
  background:linear-gradient(90deg,var(--gf-hair),transparent);
}

html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__explain-grid {
  display:grid;
  grid-template-columns:minmax(220px,.78fr) minmax(0,1.22fr);
  gap:38px;
  align-items:start;
}

html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__explain-grid--vi-only {
  grid-template-columns:minmax(0,1fr);
}

html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__explain-source {
  min-width:0;
  padding:20px 18px 18px 22px;
  border-left:4px solid color-mix(in srgb,var(--gf-seal) 62%,transparent);
  background:color-mix(in srgb,var(--gf-sepia) 4%,transparent);
  color:var(--gf-ink);
  font-family:var(--gf-mincho);
  font-size:18px;
  font-weight:500;
  line-height:2;
}

html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__explain-source > span,
html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__explain-vietnamese > span {
  display:block;
  margin-bottom:12px;
  color:var(--gf-sepia);
  font-family:var(--gf-sans);
  font-size:11px;
  font-weight:850;
  letter-spacing:.13em;
  text-transform:uppercase;
}

html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__explain-vietnamese {
  min-width:0;
  padding:2px 0 2px 30px;
  border-left:1px solid var(--gf-hair);
}

html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__explain-vietnamese > span {
  color:var(--gf-seal);
}

html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__explain-vi {
  color:var(--gf-soft);
  font-size:17px;
  font-weight:550;
  line-height:1.82;
}

html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__ja-open {
  margin-top:28px;
  padding-right:12px;
  padding-left:12px;
  background:linear-gradient(90deg,color-mix(in srgb,var(--gf-sepia) 6%,transparent),transparent 72%);
}

html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__source-note {
  padding:14px 0 0;
  border-top:1px solid var(--gf-hair);
}

html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__compare-copy {
  display:block;
}

html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__compare-row {
  display:grid;
  grid-template-columns:minmax(160px,.38fr) minmax(0,1fr);
  gap:26px;
  padding:20px 0;
  border-top:1px solid var(--gf-hair)!important;
}

html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__compare-row:last-child {
  border-bottom:1px solid var(--gf-hair)!important;
}

html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__compare-row--plain {
  grid-template-columns:minmax(0,1fr);
}

html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__compare-head {
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:8px;
  min-width:0;
}

html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__compare-head .cmp-jp {
  color:var(--gf-ink);
  font-family:var(--gf-mincho);
  font-size:21px;
  font-weight:700;
  line-height:1.65;
}

html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__compare-detail {
  color:var(--gf-soft);
  font-family:var(--gf-sans);
  font-size:16px;
  font-weight:550;
  line-height:1.75;
}

html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__source-warning {
  margin:20px 42px 0;
  padding:16px 18px 18px 22px;
  border:0;
  border-left:4px solid var(--gf-seal);
  background:var(--gf-wash);
  color:var(--gf-soft);
  font-family:var(--gf-sans);
  font-size:15px;
  font-weight:550;
  line-height:1.7;
}

html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__source-warning > b {
  display:block;
  margin-bottom:6px;
  color:var(--gf-seal);
  font-size:11px;
  font-weight:850;
  letter-spacing:.13em;
  text-transform:uppercase;
}

@media (max-width:720px) {
  html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__explain-grid {
    grid-template-columns:minmax(0,1fr);
    gap:22px;
  }

  html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__explain-vietnamese {
    padding:20px 0 0;
    border-top:1px solid var(--gf-hair);
    border-left:0;
  }

  html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__compare-row {
    grid-template-columns:minmax(0,1fr);
    gap:8px;
    padding:18px 0;
  }

  html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__source-warning {
    margin-right:20px;
    margin-left:20px;
  }
}

@media (max-width:560px) {
  html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__explain > .tl-day__section-label,
  html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__compare > .tl-day__section-label {
    grid-template-columns:44px auto auto minmax(12px,1fr);
    gap:10px;
  }

  html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__explain > .tl-day__section-label::before,
  html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__compare > .tl-day__section-label::before {
    width:44px;
    height:44px;
  }

  html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__explain-source {
    padding:18px 0 0 16px;
    background:transparent;
    font-size:17px;
  }
}

@media (prefers-reduced-transparency:reduce) {
  html.grammar-focus-v25 .app[data-grammar-layout="editorial-spread"] .wcard.grammar-focus-card,
  html.tl-day-grammar-source-flow .app[data-grammar-layout="editorial-spread"] .tl-day__man,
  html.grammar-focus-v25 .app[data-grammar-layout="editorial-spread"] dialog {
    background:var(--gf-paper)!important;
    background-image:none!important;
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
  }
}

/* Card-width safety: the lesson stage can be narrow even on a wide/Retina window. */
@container (max-width:700px) {
  html.grammar-focus-v25 .grammar-focus-card .w-hero {
    min-height:0;
    grid-template-columns:minmax(0,1fr)!important;
    gap:16px!important;
    padding:34px 28px 32px!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .g-title {
    max-width:100%!important;
    font-size:clamp(38px,8vw,52px)!important;
    white-space:normal!important;
    overflow-wrap:anywhere;
  }

  html.grammar-focus-v25 .grammar-focus-card .grammar-focus-meaning {
    max-width:none!important;
    padding:18px 0 0!important;
    border:0!important;
    border-top:1px solid var(--gf-hair)!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .w-mean {
    max-width:34ch;
  }

  html.grammar-focus-v25 .grammar-focus-card .g-explain.grammar-focus-explain-grid {
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-areas:
      "vi"
      "jp"
      "ja-detail"
      "rules"!important;
    gap:20px!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .g-explain .g-evn {
    padding:0 0 0 18px!important;
    border:0!important;
    border-left:4px solid var(--gf-seal)!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .g-explain .explain-jp {
    padding:20px 0 0!important;
    border:0!important;
    border-top:1px solid var(--gf-hair)!important;
    background:transparent!important;
  }

  html.grammar-focus-v25 .grammar-focus-card .grammar-focus-rules {
    grid-template-columns:minmax(0,1fr);
  }

  html.grammar-focus-v25 .grammar-focus-card .grammar-focus-rule:nth-child(2) {
    padding-left:0;
    border-top:1px solid var(--gf-hair);
    border-left:0;
  }

  html.grammar-focus-v25 .grammar-focus-card .grammar-focus-contrast {
    display:block;
  }

  html.grammar-focus-v25 .grammar-focus-card .grammar-focus-contrast-copy {
    margin-top:8px;
  }
}

/* Feedback canary: compact examples and written source recall. */
html.grammar-focus-v25 .grammar-focus-more-examples > summary {
  min-height:var(--tl-control-min,44px); padding:var(--tl-space-3,12px) 0;
  cursor:pointer; color:var(--gf-seal); font:600 16px var(--gf-sans);
}
html.grammar-focus-v25 .app[data-grammar-family="source-rc"] .grammar-focus-card .g-ex.grammar-focus-dialogue {
  padding:var(--tl-space-3,12px) 0!important;
}
html.grammar-focus-v25 .app[data-grammar-family="source-rc"] .grammar-focus-card .g-ex-line { padding:var(--tl-space-2,8px) 0; }
html.grammar-focus-v25 .grammar-review { text-align:left; }
html.grammar-focus-v25 .grammar-review .q-stem {
  font-size:clamp(22px,2vw,28px); line-height:1.9; margin-bottom:var(--tl-space-4,16px);
}
html.grammar-focus-v25 .grammar-review label { display:block; font-size:16px; margin-bottom:8px; }
html.grammar-focus-v25 .grammar-review textarea {
  display:block;box-sizing:border-box;width:100%;resize:vertical;min-height:112px;
  border:1px solid var(--gf-hair);border-radius:var(--tl-radius-control,12px);
  background:var(--tl-paper-soft);color:var(--gf-ink);padding:var(--tl-space-4,16px);
  font:16px/1.6 var(--gf-sans);
}
html.grammar-focus-v25 .grammar-review-note { font-size:16px;line-height:1.6;color:var(--gf-soft);margin:12px 0 20px; }
html.grammar-focus-v25 .grammar-review [hidden] { display:none!important; }
html.grammar-focus-v25 .grammar-review .q-detail { border-left:3px solid var(--gf-seal);padding:16px;margin:20px 0;line-height:1.8; }
html.grammar-focus-v25 .grammar-review-choice {
  display:block;width:100%;min-height:44px;padding:16px 4px;border:0;border-bottom:1px solid var(--gf-hair);
  background:transparent;color:var(--gf-ink);text-align:left;font:20px/1.7 var(--gf-sans);cursor:pointer;
}
html.grammar-focus-v25 .grammar-review-back { margin-top:16px;min-height:44px; }
html.grammar-focus-v25 .grammar-review :focus-visible,
html.grammar-focus-v25 .grammar-focus-more-examples > summary:focus-visible { outline:2px solid var(--gf-seal);outline-offset:4px; }
html.grammar-focus-v25 .grammar-review #recallAnswer:not([hidden]) { display:block!important; }
html.grammar-focus-v25 .grammar-review #recallJudge:not([hidden]) { display:flex; }
html.grammar-focus-v25 .grammar-review #recallJudge { gap:var(--tl-space-3,12px);align-items:stretch; }
html.grammar-focus-v25 .grammar-review #recallJudge button {
  flex:1;width:auto;min-height:50px;margin:0;padding:12px 8px;
  font:600 16px/1.4 var(--gf-sans);
}
html.grammar-focus-v25 .grammar-source-overview-caption {
  margin-top:var(--tl-space-3,12px);font:600 16px/1.6 var(--gf-sans);color:var(--gf-ink);
}
