/* Large touch targets; activity first, settings in the shared drawer. */
.aw-app .ann-module{height:100%;min-height:0;display:flex;flex-direction:column;gap:12px;padding:16px 20px;color:#234950;position:relative;container-type:inline-size;overflow:hidden}
.aw-app .ann-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:none}
.aw-app .ann-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:10px 16px;border:1px solid #cfdfdb;background:#fff;border-radius:13px;color:#284d53;font:inherit;font-weight:650;cursor:pointer;touch-action:manipulation;line-height:1.25}
.aw-app .ann-button svg{width:23px;height:23px;flex:none}
.aw-app .ann-button:hover{background:#eff8f4;border-color:#80b8a8}
.aw-app .ann-button:focus-visible{outline:3px solid #128574;outline-offset:-3px}
.aw-app .ann-button:disabled{opacity:.4;cursor:default}
.aw-app .ann-button[hidden]{display:none!important}
.aw-app .ann-button.is-primary{background:#117e74;color:#fff;border-color:#117e74}
.aw-app .ann-tabs{display:flex;gap:4px;padding:4px;border-radius:16px;background:#f0f5f3}
.aw-app .ann-top>.ann-tabs{margin-right:auto}
.aw-app .ann-tabs .ann-button{border-color:transparent;background:transparent}
.aw-app .ann-button[aria-pressed=true]{background:#e1f3ea;color:#067465;border-color:#91c7b5;box-shadow:0 2px 6px #244b3f09}
.aw-app .ann-work{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;display:flex;flex-direction:column;justify-content:safe center;gap:18px;padding:10px 2px}
.aw-app .ann-cross{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,auto);align-items:center;gap:12px 22px;width:min(100%,1080px);margin:auto}
.aw-app .ann-center{grid-column:2;grid-row:2;font-size:clamp(40px,7cqw,100px);font-weight:760;line-height:1.1;text-align:center;letter-spacing:-.04em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;padding:14px 0}
.aw-app .ann-cell{display:flex;flex-direction:column;align-items:stretch;gap:8px;position:relative;text-align:center;min-width:0}
.aw-app .ann-cross>.ann-left{grid-column:1;grid-row:2}.aw-app .ann-cross>.ann-right{grid-column:3;grid-row:2}.aw-app .ann-cross>.ann-up{grid-column:2;grid-row:1}.aw-app .ann-cross>.ann-down{grid-column:2;grid-row:3}
.aw-app .ann-label{font-size:clamp(16px,2cqw,24px);font-weight:600;color:#557973}
.aw-app .ann-answer{width:100%;min-height:clamp(90px,10cqw,140px);font-size:clamp(30px,5cqw,72px);border:2px solid #a8cec3;border-radius:19px;font-variant-numeric:tabular-nums;letter-spacing:-.04em;padding:12px 6px;background:#fbfdfb;overflow-wrap:anywhere}
.aw-app .ann-answer[data-result=correct],.aw-app .ann-tile[data-result=correct]{background:#e1f4e7;border-color:#22825d;color:#126848}
.aw-app .ann-answer[data-result=incorrect],.aw-app .ann-tile[data-result=incorrect]{background:#fff2e7;border-color:#b96329;color:#87441d}
.aw-app .ann-mark{font-size:16px;font-weight:650;min-height:20px}
.aw-app .ann-status{flex:none;min-height:24px;font-size:18px;font-weight:600;color:#925820;margin:0;text-align:center}
.aw-app .ann-status[data-success=true]{color:#157452}
.aw-app .ann-routes{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.aw-app .ann-route{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;padding:12px;border-radius:14px;background:#eff8f2;font-size:clamp(18px,2.5cqw,28px);font-variant-numeric:tabular-nums}
.aw-app .ann-route>span{font-size:.7em;color:#577d6d;white-space:nowrap}
.aw-app .ann-table-layout{display:grid;grid-template-columns:minmax(185px,240px) minmax(0,1fr);gap:20px;align-items:start;width:100%;max-width:1500px;margin:auto}
.aw-app .ann-table-side{display:flex;flex-direction:column;gap:18px;min-width:0;padding-top:10px}
.aw-app .ann-table-wrap{min-width:0}
.aw-app .ann-table-side .ann-tabs{justify-content:center}.aw-app .ann-table-side .ann-tabs .ann-button{padding:10px 8px;font-size:15px}
.aw-app .ann-table-number{font-weight:750;font-size:clamp(32px,4.5cqw,64px);text-align:center;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.aw-app .ann-arrows{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.aw-app .ann-arrows .ann-up{grid-column:1;grid-row:1}.aw-app .ann-arrows .ann-down{grid-column:2;grid-row:1}
.aw-app .ann-arrows .ann-button{padding:10px 4px;font-size:18px}
.aw-app .ann-table-side .ann-answer{min-height:80px;font-size:36px}
.aw-app .ann-table-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.aw-app .ann-table-nav strong{font-size:20px;font-variant-numeric:tabular-nums}
.aw-app .ann-table-scroll{overflow:auto;overscroll-behavior:contain;padding:2px}
.aw-app .ann-table{display:grid;grid-template-columns:repeat(10,minmax(48px,1fr));gap:5px;min-width:525px}
.aw-app .ann-tile{min-height:46px;padding:6px 2px;font-size:clamp(16px,2cqw,25px);border-radius:10px;font-variant-numeric:tabular-nums;letter-spacing:-.04em}
.aw-app .ann-tile.is-origin{border:2px solid #307c98;background:#e9f4f8;color:#226079}
.aw-app .ann-tile.is-selected{box-shadow:inset 0 0 0 2px #178374;background:#eaf6ef}
.aw-app .ann-tile.is-cursor,.aw-app .ann-tile.is-destination{background:#157e71;color:#fff;border-color:#157e71;animation:ann-arrive .35s ease-out}
@keyframes ann-arrive{from{box-shadow:inset 0 0 0 5px #a9d8bd}to{box-shadow:inset 0 0 0 0 transparent}}
.aw-app .ann-settings{display:flex;flex-direction:column;gap:12px;margin:0}
@container(max-width:780px){.aw-app .ann-module .ann-top{gap:6px}.aw-app .ann-top>.ann-tabs{flex-basis:100%;justify-content:center}.aw-app .ann-table-layout{grid-template-columns:minmax(0,1fr)}.aw-app .ann-table-side{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:10px}.aw-app .ann-table-side .ann-route{grid-column:1/-1}.aw-app .ann-cross{gap:8px}.aw-app .ann-answer{font-size:clamp(24px,5.5cqw,46px)}.aw-app .ann-center{font-size:clamp(30px,7cqw,56px)}}
@container(max-width:430px){.aw-app .ann-tabs .ann-button{font-size:13px;padding:8px}.aw-app .ann-cross[data-kind=neighbors]{grid-template-columns:1fr 1fr}.aw-app .ann-cross[data-kind=neighbors] .ann-center{grid-column:1/-1;grid-row:1}.aw-app .ann-cross[data-kind=neighbors] .ann-right{grid-column:2}.aw-app .ann-cross[data-kind=jumps] .ann-center{font-size:24px}.aw-app .ann-cross[data-kind=jumps] .ann-answer{font-size:22px;min-height:75px}.aw-app .ann-table-side{grid-template-columns:1fr}.aw-app .ann-table-side .ann-tabs{grid-column:1}.aw-app .ann-table-number{font-size:48px}}
@media(prefers-reduced-motion:reduce){.aw-app .ann-tile{animation:none!important}}
.aw-app .ann-center{font-size:clamp(24px,var(--ann-scale,7cqw),100px);white-space:nowrap;overflow-wrap:normal}
.aw-app .ann-table{grid-template-columns:repeat(10,minmax(var(--tile-min,48px),1fr));min-width:calc(10 * var(--tile-min,48px) + 45px)}
@container(max-width:430px){.aw-app .ann-cross[data-kind=jumps]{grid-template-columns:1fr 1fr}.aw-app .ann-cross[data-kind=jumps] .ann-center{grid-row:2;grid-column:1/-1;font-size:34px}.aw-app .ann-cross[data-kind=jumps] .ann-up{grid-row:1;grid-column:1/-1}.aw-app .ann-cross[data-kind=jumps] .ann-down{grid-row:4;grid-column:1/-1}.aw-app .ann-cross[data-kind=jumps] .ann-left{grid-row:3;grid-column:1}.aw-app .ann-cross[data-kind=jumps] .ann-right{grid-row:3;grid-column:2}}
/* Keep the whole exercise on a classroom panel, including the ten table rows. */
.aw-app .ann-module{padding:12px 16px;gap:8px}
.aw-app .ann-cross[data-kind=jumps] .ann-answer{min-height:clamp(80px,8cqw,110px)}
.aw-app .ann-table{gap:2px;min-width:calc(10 * var(--tile-min,48px) + 18px)}
.aw-app .ann-table-nav{margin-bottom:6px}.aw-app .ann-table-nav .ann-button{min-height:44px;padding:8px 14px}
.aw-app .ann-tile{min-height:clamp(44px,calc((100dvh - 470px)/10),64px)}
.aw-app .ann-mark{position:absolute;right:4px;top:0;min-height:0;font-size:17px;line-height:24px}
.aw-app .ann-tile{padding:4px 2px;font-size:clamp(16px,2cqw,24px)}
.aw-app .ann-module[data-mode=table] .ann-work{padding-top:2px;padding-bottom:2px}
.aw-app .ann-table-number{font-size:var(--ann-table-value,64px)}
@container(max-width:430px){.aw-app .ann-answer{font-size:22px}}

/* Actions stay together; the selected jump is a calculation, not an ambiguous arrow. */
.aw-app .ann-top>.aw-tools-trigger{margin-left:0}
.aw-app .ann-top>[data-neighbor=random]{margin-left:auto}
.aw-app .ann-arrows{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.aw-app .ann-arrows .ann-up{grid-column:2;grid-row:1}
.aw-app .ann-arrows .ann-left{grid-column:1;grid-row:2}
.aw-app .ann-arrows .ann-right{grid-column:3;grid-row:2}
.aw-app .ann-arrows .ann-down{grid-column:2;grid-row:3}
.aw-app .ann-arrows .ann-button{flex-direction:column;gap:2px;padding:6px 2px;min-height:54px}
.aw-app .ann-arrows small{font-size:11px;font-weight:500}
.aw-app .ann-arrows strong{font-size:clamp(15px,1.6cqw,23px);line-height:1.2}
.aw-app .ann-arrows .ann-button[aria-pressed=true]{background:#167e74;color:#fff;border-color:#167e74;box-shadow:0 0 0 2px #d7eee5}
.aw-app .ann-mission{padding:14px 10px;border:1px solid #c8ded4;border-radius:18px;background:#f0f8f4;display:flex;flex-direction:column;gap:10px}
.aw-app .ann-calculation{font-size:clamp(17px,2cqw,28px);font-weight:700;line-height:1.3;text-align:center;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.aw-app .ann-mission .ann-label{font-size:13px}
.aw-app .ann-table-side{gap:12px}
@container(max-width:780px){.aw-app .ann-table-side .ann-mission{grid-column:2;grid-row:1/3}.aw-app .ann-table-side>.ann-tabs{grid-column:1}.aw-app .ann-table-side .ann-arrows{grid-column:1}}
@container(max-width:430px){.aw-app .ann-table-side .ann-mission{grid-column:1;grid-row:auto}}

/* Reserve a stable place for number entry next to the work, never on top of it. */
.aw-app .ann-content{display:flex;align-items:stretch;gap:24px;flex:1;min-height:0;min-width:0;overflow:auto;overscroll-behavior:contain}
.aw-app .ann-content>.ann-work{container-type:inline-size;min-width:0;padding-block:10px}
.aw-app .ann-content .ann-cross{flex:none}
@container(max-width:780px){.aw-app .ann-content{gap:14px;flex-direction:column}.aw-app .ann-content>.ann-work{flex:none;overflow:visible;min-height:300px}.aw-app .ann-content>.apn-pad{align-self:center;flex:none}.aw-app .ann-content .ann-table-layout{margin-block:0}.aw-app .ann-content .ann-cross{margin-block:0}}
