/* Approved theme-only exception: navigation and shared dialogs, never game controls/layout. */
.ll-theme .sbo-chest-strong-game .sbo-mobile-feedback-col { position: relative; }
.ll-theme .ll-chest-click-hint { position: absolute; top: 0; right: 0; width: 52px; height: 60px; pointer-events: none; color: #3872ad; animation: ll-chest-hint-wave 2.8s ease-in-out infinite; }
.ll-theme .ll-chest-click-hint[hidden] { display: none; }
.ll-theme .ll-chest-click-hint svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 5; stroke-linecap: round; stroke-linejoin: round; }
.ll-theme .sbo-chest-strong-game .sbo-letter-zone { scrollbar-color: #c63e00 #efe2c4; }
.ll-theme .sbo-chest-strong-game .sbo-letter-zone::-webkit-scrollbar-thumb,
.ll-theme .sbo-chest-strong-game .sbo-letter-zone::-webkit-scrollbar-thumb:hover { background-color: #c63e00; }
@keyframes ll-chest-hint-wave { 0%, 100% { transform: translate(0, 0) rotate(-3deg); } 50% { transform: translate(-3px, 4px) rotate(3deg); } }
@media (prefers-reduced-motion: reduce) { .ll-theme .ll-chest-click-hint { animation: none; } }
.ll-theme .ll-core-shell.ll-activity[data-module-id] { margin-top: 0; }
.ll-theme .ll-core-shell.ll-activity[data-module-id] > .ll-activity-game { padding-top: 6px; }
/* Explicitly approved title removal for these four games only, on all screens. */
.ll-theme .sbo-falling-letters-game .sbo-game-title,
.ll-theme .sbo-wind-word-game .sbo-game-title,
.ll-theme .sbo-chest-strong-game .sbo-game-title,
.ll-theme .sbo-syllable-cannon-game .sbo-game-title { display: none; }
/* Approved first-column layout; cannon stays in its existing stage. */
@media (min-width: 1024px) {
    .ll-theme :is(.sbo-falling-letters-game, .sbo-wind-word-game, .sbo-chest-strong-game) .sbo-game-left { display: flex; flex-direction: column; }
    .ll-theme :is(.sbo-falling-letters-game, .sbo-wind-word-game, .sbo-chest-strong-game) .sbo-mobile-word-row { display: flex; flex-direction: column; align-items: center; flex: 1; width: 100%; }
    .ll-theme :is(.sbo-falling-letters-game, .sbo-wind-word-game, .sbo-chest-strong-game) .sbo-target-word { margin-top: auto; padding-top: 16px; }
    .ll-theme .sbo-falling-letters-game .sbo-target-word { width: 100%; align-self: stretch; box-sizing: border-box; padding: 34px 12px 40px; }
    .ll-theme .sbo-syllable-cannon-game .sbo-cannon-choice-column { display: flex; flex-direction: column; }
    .ll-theme .sbo-syllable-cannon-game .sbo-cannon-bullets { margin-top: auto; padding-top: 16px; }
}
@media (max-width: 767px) {
    .ll-theme .sbo-chest-strong-game .sbo-game-right { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); align-items: start; }
    .ll-theme .sbo-chest-strong-game .sbo-mobile-feedback-col { min-width: 0; align-self: start; padding-top: 20px; }
    .ll-theme .sbo-chest-strong-game .sbo-mobile-actions-col { min-width: 0; }
    .ll-theme .sbo-chest-strong-game .sbo-chest-emergency-button { margin-top: 0; }
    .ll-theme .sbo-syllable-cannon-game .sbo-cannon-result { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
    .ll-theme .sbo-syllable-cannon-game .sbo-cannon-result-visual { width: 100%; min-width: 0; }
    .ll-theme .sbo-syllable-cannon-game .sbo-cannon-result-image { width: 100%; max-width: 100%; max-height: 120px; object-fit: contain; }
    .ll-theme .sbo-wind-word-game .sbo-game-right { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
    .ll-theme .sbo-wind-word-game .sbo-mobile-feedback-col,
    .ll-theme .sbo-wind-word-game .sbo-mobile-actions-col { min-width: 0; }
    .ll-theme :is(.sbo-falling-letters-game, .sbo-wind-word-game, .sbo-chest-strong-game) .sbo-mobile-word-row { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); grid-template-areas: "image word"; align-items: center; gap: 8px; }
    .ll-theme :is(.sbo-falling-letters-game, .sbo-wind-word-game, .sbo-chest-strong-game) .sbo-mobile-word-row > img { width: 100%; max-width: 100% !important; height: auto !important; object-fit: contain; }
    .ll-theme :is(.sbo-falling-letters-game, .sbo-wind-word-game, .sbo-chest-strong-game) .sbo-target-word { min-width: 0; max-width: 100%; flex-wrap: wrap; margin: 0; }
    .ll-theme .sbo-syllable-cannon-game .sbo-cannon-choice-column { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "card bullets"; grid-template-rows: auto; align-items: start; gap: 6px; }
    .ll-theme .sbo-syllable-cannon-game .sbo-cannon-card { grid-area: card; width: 100%; min-width: 0; margin: 0; }
    .ll-theme .sbo-syllable-cannon-game .sbo-cannon-word-image { width: auto; max-width: 100% !important; max-height: 100px; height: auto; object-fit: contain; margin-inline: auto !important; }
    .ll-theme .sbo-syllable-cannon-game .sbo-cannon-bullets { grid-area: bullets; min-width: 0; margin: 0; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2px; }
    .ll-theme .sbo-syllable-cannon-game .sbo-cannon-bullet { box-sizing: border-box; min-width: 0; min-height: 44px; max-width: 52px; padding: 0; font-size: clamp(.65rem, 2.8vw, .85rem); }
}
.ll-theme .ll-activity-nav .ll-core-button,
.ll-theme .ll-activity-back .ll-core-button,
.ll-theme .sbo-interaction-dialog-actions button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 10px 16px;
    border: 1px solid #c63e00;
    border-radius: 8px;
    font-size: .95rem;
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    transition: background .16s, border-color .16s, color .16s, transform .16s;
}
.ll-theme .ll-activity-nav .ll-core-button--primary,
.ll-theme .sbo-interaction-dialog-actions .sbo-interaction-dialog-accept {
    background: #c63e00;
    border-color: #c63e00;
    color: #fff;
}
.ll-theme .ll-activity-nav .ll-core-button--secondary,
.ll-theme .sbo-interaction-dialog-actions .sbo-interaction-dialog-cancel {
    background: #fff;
    border-color: #c63e00;
    color: #c63e00;
}
.ll-theme .ll-activity-nav .ll-core-button--ghost,
.ll-theme .ll-activity-back .ll-core-button--ghost {
    background: #fff;
    border-color: transparent;
    color: #5a3a22;
}
.ll-theme .ll-activity-nav .ll-core-button--disabled {
    background: #edf1f7;
    border-color: #9faec6;
    color: #526179;
    cursor: not-allowed;
}
.ll-theme .ll-activity-nav a.ll-core-button:is(:hover, :focus-visible),
.ll-theme .ll-activity-back a.ll-core-button:is(:hover, :focus-visible),
.ll-theme .sbo-interaction-dialog-actions button:is(:hover, :focus-visible) { transform: translateY(-1px); }
.ll-theme .sbo-interaction-dialog-card { background: #fff7ed; border-color: #ead3bf; }
.ll-theme .sbo-interaction-dialog-content h3 { color: #5a3a22; }
.ll-theme .sbo-interaction-dialog-close { color: #5a3a22; }
/* SBO declares these orange states !important; override colors only. */
.ll-theme .sbo-interaction-dialog-actions .sbo-interaction-dialog-accept,
.ll-theme .sbo-interaction-dialog-actions .sbo-interaction-dialog-accept:is(:hover, :focus, :active) {
    background-color: #c63e00 !important;
    border-color: #c63e00 !important;
}
.ll-theme .sbo-interaction-dialog-actions .sbo-interaction-dialog-cancel:is(:hover, :focus, :active) {
    border-color: #c63e00 !important;
    color: #c63e00 !important;
}
.ll-theme .sbo-dictation-dialog .sbo-interaction-dialog-card { border-color: #c63e00; }
/* Approved dictation exception: green blank underline and theme check button. */
.ll-theme .sbo-dictation-valorization { background-color: #E6F4EA; color: #24694c; }
.ll-theme .sbo-dictation-valorization p { color: #24694c; }
.ll-theme .sbo-dictation-help-note,
.ll-theme .sbo-dictation-error,
.ll-theme .sbo-dictation-error:focus,
.ll-theme .sbo-dictation-error-static,
.ll-theme .sbo-dictation-extra,
.ll-theme .sbo-dictation-missing-word,
.ll-theme .sbo-dictation-error.is-error { color: #9B3D4A; }
.ll-theme .sbo-dictation-child { font-size: calc(1.15rem + 2px); }
.ll-theme .sbo-dictation-child .sbo-dictation-error,
.ll-theme .sbo-dictation-child .sbo-dictation-error-static,
.ll-theme .sbo-dictation-child .sbo-dictation-extra,
.ll-theme .sbo-dictation-child .sbo-dictation-missing-word { font-size: inherit; font-family: inherit; line-height: inherit; }
.ll-theme .sbo-dictation-blank { border-bottom-color: #24694c; }
.ll-theme .sbo-dictation-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 10px 16px;
    border: 1px solid #c63e00;
    border-radius: 8px;
    background: #c63e00;
    color: #fff;
    font-size: .95rem;
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition: background .16s, border-color .16s, color .16s, transform .16s;
}
.ll-theme .sbo-dictation-check:is(:hover, :focus-visible) { background: #a93000; border-color: #a93000; color: #fff; transform: translateY(-1px); }
.ll-theme .sbo-dictation-check:disabled { opacity: .5; cursor: not-allowed; transform: none; }
/* Module activities only: keep space between navigation and the footer on desktop. */
@media (min-width: 1024px) {
    .ll-theme .ll-activity:has(.sbo-game-shell) .ll-activity-nav { margin-bottom: 200px; }
}
/* Smartphone: remove outer wrapper gutters, never internal game spacing. */
@media (max-width: 767px) {
    .ll-theme .ll-activity:has(.sbo-game-shell) .ll-activity-nav { margin-inline: 10px; }
    .ll-theme .content-container:has(.sbo-game-shell),
    .ll-theme .content-wrap:has(.sbo-game-shell),
    .ll-theme .entry:has(.sbo-game-shell),
    .ll-theme .entry-content-wrap:has(.sbo-game-shell),
    .ll-theme .entry-content:has(.sbo-game-shell),
    .ll-theme .ll-activity:has(.sbo-game-shell),
    .ll-theme .ll-activity-game:has(.sbo-game-shell),
    .ll-theme .ll-training--game:has(.sbo-game-shell) {
        width: 100%; max-width: none; margin-inline: 0; padding-inline: 0; box-sizing: border-box;
    }
    .ll-theme .ll-activity:has(.sbo-game-shell),
    .ll-theme .ll-training--game:has(.sbo-game-shell) { padding-bottom: calc(54px + env(safe-area-inset-bottom, 0px)); }
}
