.generator-page .g-main {max-width:1100px;margin:28px auto 50px}
.g-heading {display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}
.g-heading h1 {font-size:clamp(1.5rem,3vw,2rem);margin:0}
.g-heading a {font-size:.95rem;white-space:nowrap}
.g-modes {display:flex;gap:6px;margin-bottom:24px;flex-wrap:wrap}
.g-modes button,.g-help button {padding:10px 16px;border:1px solid var(--line);border-radius:10px;color:var(--lavender-dark);background:var(--paper);font-weight:650}
.g-modes [aria-pressed=true] {background:var(--lavender);color:white;border-color:var(--lavender)}
.g-layout {display:grid;grid-template-columns:245px minmax(0,1fr);gap:24px;align-items:start}
.g-sidebar h2 {margin:0 0 12px;font-size:1rem;color:var(--muted)}
.g-sidebar nav {display:flex;flex-direction:column;gap:5px}
.g-sidebar button {text-align:left;padding:12px 14px;border:1px solid transparent;background:transparent;color:var(--ink);border-radius:10px;font-size:.95rem}
.g-sidebar [aria-pressed=true] {border-color:var(--line);background:var(--lavender-soft);color:var(--lavender-dark);font-weight:750}
.g-sidebar button:hover {background:var(--lavender-pale)}
.g-card {background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:26px 30px;box-shadow:0 6px 24px #49326909}
.g-card-top {display:flex;align-items:center;justify-content:space-between;gap:14px}
.g-card-top h2 {font-size:1.1rem;margin:0;font-weight:700}
.g-analog {flex:none;background:var(--lavender-soft);color:var(--lavender-dark);border:1px solid var(--line);border-radius:10px;padding:10px 16px;font-weight:750}
.g-prompt {margin:24px 0 0}
.g-expression {display:flex;align-items:center;justify-content:center;gap:.3em;min-height:145px;font:2rem/1.25 Georgia,'Times New Roman',serif;padding:20px 8px;color:#16131a}
.g-fraction {display:inline-flex;flex-direction:column;vertical-align:middle;text-align:center;align-items:stretch;line-height:1.15;margin:0 .1em}
.g-fraction>span {display:block;padding:.12em .22em}
.g-fraction>span:first-child {border-bottom:1.5px solid currentColor}
.g-fraction .g-fraction {font-size:.85em}
.g-operator {vertical-align:middle;margin:0 .12em}
.g-card label {display:block;font-weight:650;margin-bottom:7px}
.g-answer-row {display:flex;gap:10px}
.g-answer-row input {min-width:0;width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink)}
.g-answer-row button {flex:none}
.g-feedback {min-height:1.6em;margin:12px 0;color:var(--muted)}
.g-feedback[data-state=correct] {color:#1e674e;font-weight:650}
.g-feedback[data-state=incorrect] {color:#9d3046}
.g-help {display:flex;gap:8px;flex-wrap:wrap}
.g-help button {font-size:.9rem;padding:8px 12px}
.g-help button:disabled {opacity:.48;cursor:default}
.g-note {margin:14px 0 0;font-size:.88rem;color:var(--muted)}
.g-hint,.g-solution {background:var(--lavender-pale);border-radius:12px;padding:16px;margin:16px 0 0}
.g-solution ol {padding-left:22px;margin:0}
.g-solution li+li {margin-top:18px}
.g-solution .step-math {font:1.25rem/1.7 Georgia,'Times New Roman',serif;margin-top:10px;overflow-x:auto;padding:4px 0 8px}
.g-progress {display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:.9rem;color:var(--muted);margin:16px 4px}
.g-sources {font-size:.9rem;margin:26px 4px;color:var(--muted)}
.g-sources summary {cursor:pointer}
.generator-page button:focus-visible,.generator-page input:focus-visible,.generator-page a:focus-visible {outline:3px solid #8e6abd;outline-offset:3px}
.generator-page [hidden] {display:none!important}
.g-card.changed .g-expression {animation:appear .25s ease-out}
@keyframes appear {from{opacity:.25;transform:translateY(3px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.g-card.changed .g-expression{animation:none}}
@media(max-width:760px){
 .generator-page .g-main{margin-top:18px}.g-layout{grid-template-columns:minmax(0,1fr);gap:18px}
 .g-sidebar nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;overflow:visible}.g-sidebar button{white-space:normal;padding:9px 12px;min-width:0;line-height:1.3;border-color:var(--line);background:var(--paper)}
 .g-sidebar button[aria-pressed=true]{background:var(--lavender-soft);border-color:var(--lavender)}
 .g-sidebar h2{font-size:.9rem;margin-bottom:8px}.g-card{padding:20px}.g-card-top h2{font-size:1rem}
 .g-card-top{gap:8px}.g-analog{padding:9px 12px}.g-heading{align-items:flex-start}.g-heading a{white-space:normal;text-align:right}
 .g-modes{gap:6px;margin-bottom:18px}.g-modes button{padding:9px 12px;font-size:.88rem}
 .g-expression{font-size:1.75rem;min-height:130px}.g-answer-row{flex-wrap:wrap}.g-answer-row input{flex:1 1 150px}
 .g-answer-row button{flex:1 1 100px}.g-help button{min-height:42px}.g-progress{font-size:.85rem}
}

.g-local-links{display:flex;align-items:center;gap:18px}.g-local-links a{white-space:nowrap;color:var(--lavender-dark);font-weight:700}
@media(max-width:620px){.generator-page .topbar{grid-template-columns:minmax(0,1fr) auto}.g-local-links{min-width:0;flex-wrap:wrap;gap:6px 12px}.g-local-links a{font-size:.875rem}}

/* Native math layout keeps the fraction rule and decimal comma on one math axis. */
.g6-math{font-family:"Cambria Math","STIX Two Math",math;font-size:1em;math-style:normal;white-space:nowrap}.g-expression>.g6-math{flex:none}.step-math .g6-math{margin:0 .1em}
