/* Clear document flow instead of absolutely positioned mobile menu elements. */
#menu{padding:calc(24px + var(--sat)) max(20px,var(--sar)) calc(30px + var(--sab)) max(20px,var(--sal))}
#menu .mwrap{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:28px 48px;max-width:1100px;margin:0 auto;align-items:start;position:relative}
#menu .mainIntro{min-width:0}#menu .mHeader{display:flex;align-items:center;justify-content:space-between;margin:0 0 16px}#menu .mHeader #mLogo{margin:0}#mHelp{min-width:44px;min-height:44px;font-size:20px}
#menu #mLogo{width:64px;height:64px;margin:0 0 12px;display:block}
#menu h1{font-size:clamp(42px,5vw,64px);line-height:.95;max-width:none;margin:8px 0 18px}
#menu .msub{display:block;font-size:16px;line-height:1.5;max-width:500px}
#menu .mbtns{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}
#menu .mbtns #mStart{grid-column:1/-1;font-size:20px;padding:18px}
#menu .mbtns .btn{width:100%;min-width:0;white-space:normal;line-height:1.3;padding:12px 10px;min-height:48px}
#menu .mprofile{display:grid;grid-template-columns:minmax(0,1fr) 138px;gap:12px;padding:12px;margin-top:16px}
#menu .mprofile span{font-size:11px;letter-spacing:.05em;line-height:1.5}#menu #mName{height:46px;font-size:18px}
#menu .mhero{position:static;order:0;width:100%;height:auto;overflow:visible;margin:35px 0 0;display:block;pointer-events:auto;background:var(--cream);border:1px solid var(--line);border-radius:24px;padding:16px}
#menu .mhero canvas{width:100%;height:auto;max-height:none;max-width:100%;transform:none;aspect-ratio:620/720}
#heroCaption{text-align:center;font-size:13px;color:var(--ink2);line-height:1.4;margin:0 0 12px}
#menu .mlern{grid-column:1/-1;margin:0;padding:26px 0 0;border-top:1px solid var(--line)}
#menu .mlab{font-size:26px;line-height:1.2;letter-spacing:-.025em;text-transform:none;color:var(--ink);margin:0 0 18px}
#menu .mthemen{grid-template-columns:1fr!important;gap:10px}
#menu .mthema{grid-template-columns:minmax(0,1fr) repeat(3,minmax(92px,auto));gap:10px;padding:14px!important;min-height:76px!important}
#menu .mthemaTitle b{font-size:17px!important;overflow-wrap:anywhere}#menu .mthemaTitle span{font-size:10px!important;line-height:1.4}
#menu .mact{width:auto;height:auto;min-height:46px;padding:10px;font-size:12px;line-height:1.3;white-space:normal}
#menu .mact>span{display:inline!important;font-size:12px!important;overflow-wrap:anywhere}
.punnetPicker{border:0;padding:0;margin:20px 0 0;min-width:0}.punnetPicker legend{font-weight:800;font-size:13px;margin-bottom:9px}
#punnetOptions{display:grid;grid-template-columns:1fr 1fr;gap:8px}#punnetOptions label{display:flex;gap:8px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--paper);font-size:13px;line-height:1.4;cursor:pointer;min-height:46px}
#punnetOptions label:has(:checked){border-color:var(--green);background:var(--greenbg)}input[type=radio],input[type=checkbox]{accent-color:var(--green);flex:none;width:19px;height:19px}
.contestPanel,.extraPractice{border:1px solid var(--line);border-radius:12px;padding:14px;margin-top:16px;background:var(--paper)}summary{cursor:pointer;line-height:1.5;font-weight:700;min-height:28px}
.contestPanel p{font-size:13px;line-height:1.55;margin:10px 0;color:var(--ink2)}.contestChoice{display:flex;align-items:flex-start;gap:9px;line-height:1.5;font-size:14px;margin:14px 0}.contestChoice input{margin-top:2px}
#contestIdentity[hidden]{display:none}#contestIdentity label{display:block;font-size:13px;font-weight:700;margin:8px 0}
#contestName{width:100%;min-height:46px;padding:10px;font:inherit;border:1px solid var(--line);border-radius:9px;background:var(--bg);user-select:text}
#mSafety{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}#mSafety .btn{white-space:normal;text-align:left}
.menuFooter{grid-column:1/-1;display:flex;align-items:center;gap:15px;flex-wrap:wrap;padding-top:12px;border-top:1px solid var(--line)}#menu .menuFooter .mleader{width:auto;min-height:46px}
#menu #langBar{margin:0;display:flex;flex-wrap:wrap;gap:5px;min-width:0}#menu .lang{min-height:40px;min-width:44px;padding:8px}#langReview{width:100%;font-size:12px;color:var(--ink3)}
.btn,.mact,summary,input{outline-offset:4px}.btn:focus-visible,.mact:focus-visible,summary:focus-visible{outline:3px solid var(--green)}
.sheet{max-height:calc(100dvh - 32px);overflow:auto}.sheet h2,.soloSheet h2,.lhead h1{overflow-wrap:anywhere}.soloActions .btn{white-space:normal;line-height:1.35}
.lbTabs,.lbPeriods{flex-wrap:wrap;overflow:visible}.lbTab,.lbPeriod{white-space:normal;line-height:1.3;padding:10px 13px}.lhead{gap:12px}.lhead h1{min-width:0}
@media(max-width:700px){
 #menu{padding:calc(16px + var(--sat)) max(14px,var(--sar)) calc(24px + var(--sab)) max(14px,var(--sal))}
 #menu .mwrap{grid-template-columns:minmax(0,1fr);gap:22px;max-width:560px}#menu .mhero{margin:0;padding:10px 24px}#menu .mhero canvas{width:auto;height:auto;max-width:100%;max-height:300px;object-fit:contain;margin:auto}
 #menu h1{font-size:46px}#menu .mthema{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:12px!important}
 #menu .mthemaTitle{grid-column:1/-1;padding:0 0 4px}#menu .mact{min-width:0;gap:5px;padding:10px 4px}#menu .mact svg{width:15px;height:15px}
 #menu .mthemaTitle span{display:none}#menu .mlern{padding-top:22px}#menu .mprofile{grid-template-columns:minmax(0,1fr) 115px}
 .soloHead b{white-space:normal;overflow:visible;text-overflow:clip;font-size:13px}.soloHud{height:auto;min-height:68px}.lbHead{height:auto;min-height:68px}
 #punnetOptions{gap:6px}#punnetOptions label{font-size:12px;padding:9px 6px}
}
@media(max-width:360px){#menu h1{font-size:40px}#menu .mact svg{display:none}#menu .mprofile{grid-template-columns:1fr}#menu #mName{text-align:left}.soloKpi{min-width:34px}.soloHud{gap:5px}}
@media(max-height:520px) and (orientation:landscape){#menu .mwrap{grid-template-columns:minmax(0,1fr) minmax(0,.8fr);gap:20px}#menu .mhero{margin-top:30px;padding:10px}#menu .mhero canvas{max-height:260px}#menu .mlern{grid-column:1/-1}#menu .mthema{grid-template-columns:minmax(0,1fr) repeat(3,minmax(75px,auto))}#menu .mthemaTitle{grid-column:auto}.soloHead b{font-size:13px}.soloHud{min-height:56px}.soloSheet{max-height:100%;padding:14px}#qbody{display:block}#qcv{height:130px;width:100%;object-fit:contain}#qopts{grid-template-columns:1fr 1fr}}
/* Keep HUD captions readable against the moving mushroom bed. */
.cap{max-width:calc(50% - 18px);padding:7px 9px;background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:10px;overflow-wrap:anywhere}
.cap .k,.cap .s,.cap .v{text-shadow:none}.cap .s{line-height:1.35}
@media(min-width:701px) and (min-height:521px){.tchip:last-child{width:auto;min-width:34px;padding-inline:8px}}
/* Photo example comparisons: no crop or stretched image geometry. */
#learn:has(.punnetExamples) .lwrap{max-width:1120px}
.punnetTabs{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.punnetTabs .btn[aria-pressed=true]{background:var(--green);color:#fff;border-color:var(--green)}
.punnetGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.punnetGrid figure{margin:0;padding:12px;background:#f5efe6;border:1px solid var(--line);border-radius:14px;min-width:0}.punnetGrid img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain}.punnetGrid figcaption{font-size:14px;line-height:1.5;overflow-wrap:anywhere}.punnetGrid figcaption strong,.punnetGrid figcaption span{display:block}.punnetGrid figcaption span{font-size:12px;margin-top:7px;color:var(--ink2)}.punnetNote{font-size:12px!important;line-height:1.5}.testVersion{font-size:11px;letter-spacing:.12em;color:var(--ink2)}
@media(max-width:900px){.punnetGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:420px){.punnetGrid{grid-template-columns:1fr}.punnetGrid img{max-height:210px}.punnetGrid figure{padding:14px}.punnetTabs .btn{flex:1 1 40%;min-width:0}}
.sizeWeightTable{width:100%;border-collapse:collapse;table-layout:fixed;margin:20px 0;font-size:14px}.sizeWeightTable caption{text-align:left;font-weight:700;padding:0 0 10px}.sizeWeightTable th,.sizeWeightTable td{padding:10px 6px;text-align:center;border:1px solid var(--line);overflow-wrap:anywhere}.sizeWeightTable th{background:#eee9df}.sizeWeightTable tbody tr:nth-child(even){background:#faf8f3}

/* Effort comparisons keep text/symbol cues as well as colour. */
.punnetGrid .effort0,.sizeWeightTable tbody tr.effort0{background:#f8e5e1}
.punnetGrid .effort1,.sizeWeightTable tbody tr.effort1{background:#fbf1d2}
.punnetGrid .effort2,.sizeWeightTable tbody tr.effort2{background:#e5efdf}
.punnetGrid .effortLabel{font-weight:700;color:var(--ink)}
