.field-training{margin:0;height:100dvh;overflow:hidden;background:#19212a;color:#ead9b8}
.field-training main{box-sizing:border-box;display:grid!important;grid-template-columns:1fr!important;grid-template-rows:54px minmax(0,1fr) auto 20px;gap:0!important;width:min(1180px,100%);height:100dvh!important;min-height:0!important;margin:auto;padding:0 20px!important;background:transparent}
.field-training header{height:54px;min-height:0;padding:0;display:flex;gap:14px;flex-wrap:nowrap;border-bottom:1px solid #bfa77955}.field-training header>a:first-child{font-size:28px}.field-training .field-label{margin-right:auto;font:18px KaigongDisplay,serif;color:#c7ad7a}.field-training header button,.field-training header>a:not(:first-child){margin:0;font:14px KaigongDisplay,serif;white-space:nowrap;min-height:40px;padding:7px}
.field-training .arena{position:relative;min-height:0;margin:10px 0 0;border:1px solid #a98e5b66;border-radius:4px 4px 0 0;overflow:hidden;background:#6a6653}
.field-training canvas{display:block!important;width:100%!important;height:100%!important;min-height:0!important;max-height:none!important;aspect-ratio:auto!important}
.field-heading{position:absolute;z-index:2;top:0;left:0;right:0;padding:14px 20px 26px;pointer-events:none;background:linear-gradient(#17212be8,transparent);text-shadow:0 2px 4px #0008}.field-heading span{font-size:12px;color:#e7cf9c}.field-heading h1{font:30px KaigongDisplay,serif;margin:3px 0;color:#fff0d0}.field-heading p{font:14px KaigongDisplay,serif;margin:0;color:#fff0d0}
.field-training #field-cue{position:absolute;top:auto!important;bottom:10px;left:50%;right:auto;transform:translateX(-50%);width:max-content;max-width:90%;padding:6px 14px;background:#19232ee8;color:#ffe3a3;border:1px solid #c5a46a80;border-radius:3px;font:16px KaigongDisplay,serif;text-align:center;pointer-events:none}
.field-training .panel{align-self:stretch;position:static!important;padding:12px 22px!important;border:1px solid #a98e5b66;border-top:2px solid #b99a60;border-radius:0 0 4px 4px;background:#202b36;color:#ead9b8;box-shadow:none;min-height:0}
.field-status{display:flex;justify-content:space-between;gap:8px;font:15px KaigongDisplay,serif;color:#ead9b8}.field-status #attempts{font-size:12px;color:#b9c1c5}
.field-training #routes{display:flex;gap:6px;margin-top:8px}.field-training #routes button{font:14px KaigongDisplay,serif;min-height:36px;padding:5px 12px;background:#18222c;color:#ccbfa6;border:1px solid #847253}.field-training #routes button[aria-pressed=true]{background:#6c3c2d;color:#ffe6b1;border-color:#c29a5e}
.field-training #aim{display:grid!important;grid-template-columns:1fr 220px;grid-template-rows:auto 36px 16px;column-gap:24px;row-gap:5px;background:none;border:0;margin-top:8px;padding:0!important}.field-training .aim-readout{grid-column:1;display:flex;justify-content:space-between;min-height:22px;margin:0}.field-training #aim-cue{font:18px KaigongDisplay,serif;color:#e9dec8}.field-training #power{font-size:16px;color:#d9e3e6}.field-training #meter{grid-column:1;grid-row:2;height:36px;margin:0;width:100%;position:relative;overflow:visible}.field-training #meter i{position:absolute;height:100%;top:0}.field-training #needle{position:absolute}.field-training .meter-scale{grid-column:1;grid-row:3;margin:0}.field-training #draw{grid-column:2;grid-row:1/4;min-height:66px;align-self:center;font:26px KaigongDisplay,serif;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;background:#a34d36;color:#fff0d2;border-color:#c4875e}
.field-bottom{display:flex;align-items:center;gap:12px;margin-top:5px}.field-bottom button{background:none;border:0;color:#c9c6b9;min-height:32px;padding:3px;font:13px KaigongDisplay,serif}.field-bottom p{flex:1;margin:0;text-align:center;font:14px KaigongDisplay,serif;color:#e4c798;min-height:20px}.field-training footer{font:11px KaigongDisplay,serif;text-align:center;padding:2px;color:#a99d86}.field-training [hidden]{display:none!important}.field-training #aim[hidden]{display:none!important}
#done-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:10px}#done-actions button{min-height:44px;font:20px KaigongDisplay,serif}#done-actions .primary{min-width:200px}
.field-training dialog{box-sizing:border-box;max-width:min(640px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:24px;border:1px solid #bd9d63;background:#202b36;color:#f4e4c8;overflow:hidden;border-radius:5px;font-family:KaigongDisplay,serif}.field-training dialog::backdrop{background:#080f19c9}.book-heading{display:flex;align-items:center;justify-content:space-between}.book-heading h2{margin:4px 0;font-size:28px}.book-heading small{color:#c2a77b}.book-heading button{font-size:25px;min-width:44px;background:none;color:#f4e4c8}#book-intro,#letter-note{font-size:14px;color:#cdbb98;line-height:1.6}#book-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:12px 0}#book-grid button{display:flex;flex-direction:column;gap:6px;min-height:70px;text-align:left;background:#17212b;border:1px solid #8b7654;color:#eee1c7;font:18px KaigongDisplay,serif}#book-grid small{color:#d9b467;font-size:13px}.field-training dialog a{color:#efc98c}
@media(max-width:600px){.field-training main{padding:env(safe-area-inset-top) 8px env(safe-area-inset-bottom)!important;grid-template-rows:46px minmax(0,1fr) auto 18px}.field-training header{height:46px;gap:4px}.field-training header>a:first-child{font-size:22px}.field-training .field-label{display:none}.field-training header button,.field-training header>a:not(:first-child){font-size:12px;padding:5px}.field-training header>a:first-child{margin-right:auto}.field-training .arena{margin-top:5px}.field-heading{padding:10px 12px 20px}.field-heading h1{font-size:25px}.field-heading p{font-size:12px;max-width:280px}.field-training .panel{padding:10px 12px!important}.field-training #aim{grid-template-columns:1fr 105px;column-gap:14px;grid-template-rows:24px 30px 12px}.field-training #draw{font-size:20px;min-height:62px;padding:5px}.field-training #meter{height:30px}.field-training #aim-cue{font-size:15px}.field-status{font-size:13px}.field-bottom{gap:6px}.field-bottom p{font-size:12px}.field-training dialog{padding:16px}#book-grid{gap:6px}#book-grid button{min-height:64px;font-size:17px;padding:10px}#letter-note{font-size:12px}}
@media(max-height:620px){.field-heading h1{font-size:22px}.field-heading p{font-size:12px}.field-training .panel{padding:8px 12px!important}.field-training #routes{margin-top:4px}.field-training #routes button{min-height:30px}.field-training #book-grid button{min-height:54px;padding:6px}.field-training #book-intro,.field-training #letter-note{margin:6px 0}.field-training dialog{padding:14px}}
@media(prefers-reduced-motion:reduce){.field-training *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* Isolate the exercise desk from legacy fixed-height camp panels. */
.field-training .panel{height:auto!important;min-height:0!important;max-height:none!important;overflow:visible}
.field-training .aim-readout{display:flex!important;align-items:center;padding-right:0!important;margin:0!important}
.field-training #title{font:30px KaigongDisplay,serif!important;margin:3px 0!important;padding:0;letter-spacing:2px}
.field-training #draw{margin:0!important}
.field-training dialog:not([open]){display:none!important}
.field-training #next{margin:0;position:static}
@media(max-width:600px){.field-training #title{font-size:25px!important}}
@media(max-height:620px){.field-training #title{font-size:22px!important}}

.field-training .aim-readout{flex-direction:row!important;gap:4px}
.field-training #done-actions{display:grid;grid-template-columns:minmax(110px,1fr) minmax(140px,2fr)}
.field-training #done-actions button{width:100%;min-width:0;font-size:19px;white-space:nowrap;padding:10px}
.field-training #book>a{font:17px KaigongDisplay,serif;display:inline-block;min-height:32px}
@media(max-height:440px) and (min-width:600px){.field-training #book-grid{grid-template-columns:repeat(3,1fr)}.field-training #book{width:620px}.field-training main{grid-template-rows:42px minmax(0,1fr) auto 16px}.field-training header{height:42px}.field-training #aim{grid-template-columns:1fr 180px;grid-template-rows:18px 24px 12px}.field-training #meter{height:24px}.field-training #draw{min-height:48px}.field-training .field-bottom button{min-height:24px}.field-training .field-heading p{display:none}}

/* Keep cue changes from reflowing the meter or moving the held button. */
.field-training .aim-readout{height:24px;min-height:24px;overflow:hidden}
.field-training #aim-cue{white-space:nowrap;min-width:0;font-size:clamp(12px,3.5vw,18px)}
.field-training #power{flex:none;white-space:nowrap}
.field-training .field-heading p{max-width:80%;line-height:1.6}
.field-training .field-bottom p{line-height:1.5}
.field-training #book-grid small{color:#ccb88b;font-size:12px}
.field-training #book-intro{margin:8px 0}
@media(max-width:600px){.field-training .field-heading p{max-width:100%;font-size:12px}.field-training #done-actions button{font-size:17px}}

.field-training main{grid-template-columns:minmax(0,1fr)!important}.field-training main>*{min-width:0}.field-training #aim{grid-template-columns:minmax(0,1fr) 220px}.field-training #aim>*{min-width:0}@media(max-width:600px){.field-training #aim{grid-template-columns:minmax(0,1fr) 105px}.field-training header{gap:3px}.field-training header>*{min-width:0}.field-training header button{white-space:nowrap}}
