/* CM1 styles are confined to the mission wrapper. */
.pw-level-cm1 { color: #243b3b; line-height: 1.6; overflow-wrap: anywhere; }
.pw-level-cm1 * { box-sizing: border-box; min-width: 0; }
.pw-level-cm1 .pw-panels { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.4fr); gap: 1rem; align-items: start; }
.pw-level-cm1 .pw-panel { border: 2px solid #a2bdb6; border-radius: 1rem; background: #fffef7; padding: 1rem; }
.pw-level-cm1 h3 { color: #183c3a; font-size: 1.3em; line-height: 1.3; margin: 1rem 0 .6rem; }
.pw-level-cm1 p { margin: .7rem 0; }
.pw-level-cm1 figure { margin: 0; }
.pw-level-cm1 figcaption { margin-top: .4rem; font-size: .95em; }
.pw-level-cm1 svg { display: block; width: 100%; height: auto; max-width: 100%; }
.pw-level-cm1 .pw-controls { display: flex; flex-wrap: wrap; gap: .6rem; margin: .8rem 0; }
.pw-level-cm1 .pw-button { min-height: 64px; min-width: 64px; max-width: 100%; white-space: normal; font: inherit; line-height: 1.35; text-align: center; cursor: pointer; padding: .6rem .8rem; border: 2px solid #4c7169; border-radius: .7rem; color: #203e37; background: #fff; overflow-wrap: anywhere; touch-action: manipulation; }
.pw-level-cm1 .pw-button:hover { background: #e7f2e6; }
.pw-level-cm1 .pw-button:focus-visible { outline: 4px solid #8052aa; outline-offset: 3px; }
.pw-level-cm1 .pw-button[aria-pressed="true"] { border: 3px solid #235643; background: #dff0d8; box-shadow: inset 0 -4px #235643; }
.pw-level-cm1 .pw-button:disabled { cursor: default; color: #5d655f; background: #eceee9; border-color: #9ca69d; }
.pw-level-cm1 .pw-button small { display: block; font-size: .85em; margin-top: .25rem; }
.pw-level-cm1 .pw-quiet { font-size: .92em; color: #43544d; }
.pw-level-cm1 .pw-ending { background: #eef4db; border: 2px solid #729152; border-radius: .8rem; padding: .8rem; margin-top: 1rem; }
.pw-level-cm1 .pw-cm1-target { font-size: 1.12em; }
.pw-level-cm1 .pw-cm1-target strong { white-space: normal; }
.pw-level-cm1 .pw-cm1-reference { background: #f1f2e9; border: 1px solid #899e91; border-radius: .7rem; padding: .6rem; }
.pw-level-cm1 .pw-cm1-reference figcaption { margin: 0 0 .5rem; }
.pw-level-cm1 .pw-cm1-reference span { display: block; font-size: .9em; }
.pw-level-cm1 .pw-cm1-panel-picker .pw-button { flex: 1 1 9rem; font-size: .9em; }
.pw-level-cm1 .pw-cm1-piece-picker .pw-button { flex: 1 1 9rem; }
.pw-level-cm1 .pw-cm1-piece-preview { max-height: 50px; }
.pw-level-cm1 .pw-cm1-board { border: 2px solid #8c9d90; background: #f8f5e9; padding: .5rem; border-radius: .7rem; }
.pw-level-cm1 .pw-cm1-slots .pw-button { flex: 1 1 4rem; padding: .5rem; }
.pw-level-cm1 .pw-cm1-equation { background: #edf1e2; border-left: 4px solid #65845a; font-weight: 700; padding: .7rem; }
.pw-level-cm1 .pw-cm1-removals .pw-button { font-size: .9em; }
.pw-level-cm1 .pw-cm1-repaired { font-weight: 700; color: #285334; }
.pw-level-cm1 .pw-cm1-recap { padding-left: 1.3rem; }
.pw-level-cm1 .pw-cm1-recap span { display: block; }
.pw-level-cm1 .pw-cm1-sea { fill: #cce4e8; }
.pw-level-cm1 .pw-cm1-land { fill: #a9bd8a; stroke: #5a734c; stroke-width: 2; }
.pw-level-cm1 .pw-cm1-tower { fill: #f1e6cd; stroke: #4f675b; stroke-width: 3; }
.pw-level-cm1 .pw-cm1-roof { fill: #b85a51; stroke: #624d43; stroke-width: 3; }
.pw-level-cm1 .pw-cm1-lantern { fill: #f6e9ac; stroke: #4f675b; stroke-width: 3; }
.pw-level-cm1 .pw-cm1-line { fill: none; stroke: #4a6356; stroke-width: 3; }
.pw-level-cm1 .pw-cm1-door { fill: #6f8d7d; stroke: #3b5648; stroke-width: 3; }
.pw-level-cm1 .pw-cm1-mini { stroke: #435d52; stroke-width: 1; }
.pw-level-cm1 .pw-cm1-restored { fill: #f4cb70; }
.pw-level-cm1 .pw-cm1-broken { fill: #c3c7bd; stroke-dasharray: 3 2; }
.pw-level-cm1 .pw-cm1-cloth { fill: #ede0c0; stroke: #5d6b51; stroke-width: 2; }
.pw-level-cm1 .pw-cm1-snack { fill: #c07a44; stroke: #62472e; stroke-width: 1; }
.pw-level-cm1 .pw-cm1-neighbour { fill: #b18360; stroke: #65482f; stroke-width: 2; }
.pw-level-cm1 .pw-cm1-neighbour-1 { fill: #cad4a7; }
.pw-level-cm1 .pw-cm1-neighbour-2 { fill: #eac58d; }
.pw-level-cm1 .pw-cm1-neighbour-3 { fill: #b7cad7; }
.pw-level-cm1 .pw-cm1-eye { fill: #283d32; stroke: none; }
.pw-level-cm1 .pw-cm1-unit { fill: #e6ebdf; stroke: #3d584d; stroke-width: 2; }
.pw-level-cm1 .pw-cm1-guide { fill: none; stroke: #647f70; stroke-width: 2; stroke-dasharray: 6 4; }
.pw-level-cm1 .pw-cm1-svg-label { fill: #233e34; font: 24px sans-serif; }
.pw-level-cm1 .pw-cm1-cell { fill: #fff; stroke: #607b6b; stroke-width: 2; }
.pw-level-cm1 .pw-cm1-tile { stroke: #3b584b; stroke-width: 3; }
.pw-level-cm1 .pw-cm1-half { fill: #b7d7d5; }
.pw-level-cm1 .pw-cm1-quarter { fill: #f0d28c; }
.pw-level-cm1 .pw-cm1-piece-label { fill: #243d31; font: 17px sans-serif; }
.pw-level-cm1 .pw-cm1-motif { fill: none; stroke: #37594c; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 800px) {
  .pw-level-cm1 .pw-panels { grid-template-columns: minmax(0, 1fr); }
  .pw-level-cm1 .pw-cm1-scene svg { max-height: 250px; }
}
@media (max-width: 380px) {
  .pw-level-cm1 .pw-panel { padding: .65rem; }
  .pw-level-cm1 .pw-cm1-panel-picker .pw-button { flex-basis: 100%; }
  .pw-level-cm1 .pw-cm1-slots .pw-button { flex-basis: 5rem; }
}
@media (prefers-reduced-motion: reduce) {
  .pw-level-cm1 * { scroll-behavior: auto; }
}
@media print {
  .pw-level-cm1 { color: #000; }
  .pw-level-cm1 .pw-panels { display: block; }
  .pw-level-cm1 .pw-panel { border-color: #000; background: #fff; break-inside: avoid; }
  .pw-level-cm1 .pw-controls { display: none; }
  .pw-level-cm1 .pw-cm1-reference, .pw-level-cm1 .pw-cm1-board { border-color: #000; background: #fff; }
  .pw-level-cm1 .pw-cm1-tile, .pw-level-cm1 .pw-cm1-cell, .pw-level-cm1 .pw-cm1-unit { fill: #fff; stroke: #000; }
  .pw-level-cm1 .pw-cm1-motif, .pw-level-cm1 .pw-cm1-guide { stroke: #000; }
}
