/* Piano Academy MIDI Frontend */
:root {
    --pam-black: #111111;
    --pam-dark: #172033;
    --pam-gold: #C9A44C;
    --pam-cream: #F8F5EF;
    --pam-text: #3A3A3A;
    --pam-border: rgba(17,17,17,0.12);
    --pam-white-key-width: 28px;
    --pam-black-key-width: 19px;
    --pam-white-key-height: 185px;
    --pam-black-key-height: 118px;
    --pam-falling-height: 380px;
}

body:has(.pam-no-page-overflow) {
    overflow-x: hidden;
}

.pam-app {
    max-width: 1120px;
    margin: 28px auto;
    padding: 28px;
    background: var(--pam-cream);
    color: var(--pam-black);
    border: 1px solid var(--pam-border);
    border-radius: 22px;
    box-sizing: border-box;
    font-family: inherit;
}

.pam-app.pam-full-width {
    width: 100% !important;
    max-width: 1600px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    transform: none !important;
    box-sizing: border-box !important;
}

/* Evita que el entrenador se corte hacia la izquierda dentro de temas de WordPress */
.entry-content .pam-app,
.wp-site-blocks .pam-app,
.elementor .pam-app,
.site-content .pam-app {
    max-width: min(1600px, calc(100vw - 32px)) !important;
}

/* Cuando el contenido del tema es estrecho, el teclado se ajusta sin romper la página */
.pam-keyboard-wrap {
    max-width: 100% !important;
}

.pam-falling-stage {
    max-width: 100% !important;
}

.pam-label {
    color: var(--pam-gold);
    font-size: 0.75rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    margin-bottom: 8px;
}

.pam-hero {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: center;
    margin-bottom: 22px;
}

.pam-hero h2 {
    font-size: clamp(2rem, 4vw, 3.2rem);
    margin: 0 0 8px;
    line-height: 1.05;
}

.pam-hero p {
    margin: 0;
    color: var(--pam-text);
    max-width: 720px;
}

.pam-button,
.pam-small-button {
    border: 0;
    border-radius: 999px;
    background: var(--pam-black);
    color: #fff;
    padding: 14px 22px;
    font-weight: 800;
    cursor: pointer;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.pam-button:hover,
.pam-small-button:hover {
    opacity: .88;
}

.pam-small-button {
    background: #fff;
    color: var(--pam-black);
    border: 1px solid var(--pam-border);
    padding: 10px 16px;
    font-size: .9rem;
}

.pam-hand-controls {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
    background: #fff;
    border: 1px solid var(--pam-border);
    border-radius: 16px;
    padding: 14px;
    margin-bottom: 18px;
}

.pam-hand-controls label {
    font-weight: 800;
}

.pam-hand-controls select {
    border: 1px solid var(--pam-border);
    border-radius: 12px;
    padding: 10px 12px;
    background: #fff;
}

.pam-status-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 20px;
}

.pam-card {
    background: #fff;
    border: 1px solid var(--pam-border);
    border-radius: 18px;
    padding: 20px;
}

.pam-card h3 {
    margin: 0 0 14px;
    font-size: 1rem;
}

.pam-card p {
    margin: 8px 0;
}

.pam-ok {
    color: #078a35;
    font-weight: 800;
}

.pam-error {
    color: #c11515;
    font-weight: 800;
}

.pam-current-note {
    font-size: clamp(2.6rem, 6vw, 4.8rem);
    font-weight: 900;
    color: var(--pam-gold);
    line-height: 1;
    margin-bottom: 10px;
}

.pam-feedback {
    margin-top: 12px;
    padding: 12px;
    border-radius: 12px;
    background: rgba(201,164,76,.14);
    font-weight: 800;
}

.pam-feedback-ok {
    background: rgba(24, 164, 74, .12);
    color: #0c7d35;
}

.pam-feedback-error {
    background: rgba(212, 43, 43, .10);
    color: #c11515;
}

.pam-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 20px;
}

.pam-falling-panel {
    background: #111;
    color: #fff;
    border-radius: 18px;
    padding: 22px;
    margin: 22px 0;
    overflow: hidden;
}

.pam-falling-header {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-start;
    margin-bottom: 16px;
}

.pam-falling-header h3 {
    margin: 0 0 8px;
    font-size: clamp(1.8rem, 3vw, 2.5rem);
}

.pam-falling-header p {
    margin: 0;
    color: rgba(255,255,255,.88);
}

.pam-falling-target {
    background: rgba(255,255,255,.10);
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 14px;
    padding: 12px 16px;
    min-width: 190px;
}

.pam-falling-target strong {
    color: var(--pam-gold);
}

.pam-falling-stage {
    position: relative;
    height: var(--pam-falling-height);
    background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.03));
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 16px;
    overflow: hidden;
}

.pam-hit-line {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 54px;
    height: 3px;
    background: var(--pam-gold);
    box-shadow: 0 0 15px rgba(201,164,76,.95);
    z-index: 4;
}

.pam-hit-line span {
    position: absolute;
    right: 10px;
    top: 5px;
    color: var(--pam-gold);
    font-weight: 900;
    font-size: .75rem;
    text-transform: uppercase;
}

.pam-falling-note {
    position: absolute;
    top: 0;
    transform: translateX(-50%);
    width: 58px;
    min-height: 48px;
    border-radius: 14px;
    background: #1ea84b;
    color: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    z-index: 5;
    box-shadow: 0 10px 22px rgba(0,0,0,.28);
    font-weight: 900;
}

.pam-falling-note small {
    font-size: .72rem;
    opacity: .92;
}

.pam-falling-hit {
    background: #1ea84b;
    transform: translateX(-50%) scale(1.08);
}

.pam-falling-note-complete {
    background: #1ea84b;
    transition: none !important;
}

.pam-falling-guides {
    position: absolute;
    inset: 0;
    z-index: 1;
}

.pam-falling-guide {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 1px;
    background: rgba(255,255,255,.11);
}

.pam-falling-guide span {
    position: absolute;
    bottom: 10px;
    transform: translateX(-50%);
    color: rgba(255,255,255,.70);
    font-size: .75rem;
    font-weight: 800;
}

.pam-keyboard-wrap {
    background: #222;
    border-radius: 18px;
    padding: 14px;
    overflow-x: auto;
    margin-bottom: 22px;
}

.pam-keyboard {
    display: flex;
    align-items: flex-start;
    position: relative;
    width: max-content;
    min-width: 100%;
}

.pam-key {
    border: 1px solid #111;
    padding: 0;
    cursor: pointer;
    position: relative;
    font-family: inherit;
    font-weight: 800;
    transition: transform .08s ease, background .12s ease, box-shadow .12s ease;
}

.pam-key-white {
    width: var(--pam-white-key-width);
    height: var(--pam-white-key-height);
    background: #fff;
    color: #111;
    border-radius: 0 0 8px 8px;
    margin: 0;
    z-index: 1;
}

.pam-key-black {
    width: var(--pam-black-key-width);
    height: var(--pam-black-key-height);
    background: #111;
    color: #fff;
    border-radius: 0 0 6px 6px;
    margin-left: calc(var(--pam-black-key-width) / -2);
    margin-right: calc(var(--pam-black-key-width) / -2);
    z-index: 3;
}

.pam-key-note {
    position: absolute;
    bottom: 18px;
    left: 50%;
    transform: translateX(-50%);
    font-size: .72rem;
}

.pam-key-midi {
    position: absolute;
    bottom: 4px;
    left: 50%;
    transform: translateX(-50%);
    font-size: .55rem;
    color: rgba(0,0,0,.55);
}

.pam-key-black span {
    position: absolute;
    bottom: 12px;
    left: 50%;
    transform: translateX(-50%);
    font-size: .55rem;
}

.pam-key-active {
    background: var(--pam-gold) !important;
    color: #fff !important;
    transform: translateY(4px);
    box-shadow: 0 0 0 3px rgba(201,164,76,.22);
}

.pam-key-target {
    box-shadow: inset 0 -8px 0 var(--pam-gold), 0 0 0 2px rgba(201,164,76,.45);
}

.pam-instructions {
    background: #fff;
    border: 1px solid var(--pam-border);
    border-radius: 18px;
    padding: 20px;
}

.pam-instructions h3 {
    margin-top: 0;
}

/* Uploader y biblioteca */
.pam-uploader .pam-drop-zone {
    border: 1.5px dashed var(--pam-gold);
    border-radius: 18px;
    padding: 34px 20px;
    display: flex;
    align-items: center;
    flex-direction: column;
    gap: 8px;
    background: rgba(255,255,255,.45);
    text-align: center;
}

.pam-drop-icon {
    width: 52px;
    height: 52px;
    border-radius: 999px;
    background: var(--pam-gold);
    display: grid;
    place-items: center;
    font-size: 2rem;
    color: #111;
}

.pam-selected-file {
    background: #fff;
    border: 1px solid var(--pam-border);
    border-radius: 12px;
    padding: 14px;
    margin: 14px 0;
}

.pam-library h2 {
    margin-top: 0;
}

.pam-library-list {
    display: grid;
    gap: 14px;
}

.pam-library-item {
    background: #fff;
    border: 1px solid var(--pam-border);
    border-radius: 16px;
    padding: 16px;
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(260px, 1fr) auto;
    gap: 14px;
    align-items: center;
}

.pam-library-meta strong {
    display: block;
    margin-bottom: 5px;
}

.pam-library-meta span {
    color: var(--pam-text);
    font-size: .9rem;
}

.pam-shortcode-box {
    background: rgba(201,164,76,.10);
    border-radius: 12px;
    padding: 12px;
    display: flex;
    gap: 8px;
    align-items: center;
}

.pam-shortcode-box code {
    white-space: normal;
    word-break: break-word;
    flex: 1;
}

.pam-copy-shortcode {
    border: 0;
    border-radius: 10px;
    padding: 8px 10px;
    background: var(--pam-black);
    color: #fff;
    cursor: pointer;
    font-weight: 800;
}

.pam-library-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.pam-library-options {
    grid-column: 1 / -1;
    background: var(--pam-cream);
    border-radius: 12px;
    padding: 10px 12px;
}

.pam-success-box,
.pam-error-box,
.pam-info-box {
    margin-top: 12px;
    padding: 12px;
    border-radius: 12px;
    font-weight: 800;
}

.pam-success-box { background: rgba(24,164,74,.12); color: #0c7d35; }
.pam-error-box { background: rgba(212,43,43,.12); color: #c11515; }
.pam-info-box { background: rgba(201,164,76,.14); color: #111; }

@media (max-width: 900px) {
    .pam-hero,
    .pam-falling-header {
        flex-direction: column;
    }

    .pam-status-grid {
        grid-template-columns: 1fr;
    }

    .pam-library-item {
        grid-template-columns: 1fr;
    }

    .pam-library-actions {
        justify-content: flex-start;
    }
}


/* Corrección 1.6.1: evita cortes laterales en páginas de tema Hostinger */
.pam-app * {
    box-sizing: border-box;
}

.pam-hero h2 {
    overflow-wrap: anywhere;
}

.pam-app {
    overflow: visible;
}

@media (max-width: 1200px) {
    .pam-app.pam-full-width {
        width: calc(100vw - 24px) !important;
        max-width: calc(100vw - 24px) !important;
    }
}

@media (max-width: 700px) {
    .pam-app {
        padding: 18px !important;
    }
}


/* Modo canción compacto con selector de niveles */
.pam-song-practice {
    background: #F8F5EF;
}

.pam-song-practice > h2 {
    margin-top: 0;
    font-size: clamp(2rem, 4vw, 3rem);
}

.pam-song-levels {
    display: grid;
    grid-template-columns: repeat(5, minmax(140px, 1fr));
    gap: 12px;
    margin: 22px 0;
}

.pam-song-level-button {
    border: 1px solid var(--pam-border);
    background: #fff;
    border-radius: 16px;
    padding: 16px;
    text-align: left;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    gap: 5px;
    min-height: 120px;
    transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}

.pam-song-level-button strong {
    color: var(--pam-black);
    font-size: 1rem;
}

.pam-song-level-button span {
    color: var(--pam-gold);
    font-weight: 900;
}

.pam-song-level-button small {
    color: var(--pam-text);
    line-height: 1.35;
}

.pam-song-level-button:hover,
.pam-song-level-active {
    transform: translateY(-2px);
    border-color: var(--pam-gold);
    box-shadow: 0 12px 24px rgba(17,17,17,.08);
}

.pam-song-panel {
    margin-top: 18px;
}

.pam-song-panel > .pam-app {
    margin-top: 0;
    margin-bottom: 0;
}

@media (max-width: 1100px) {
    .pam-song-levels {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .pam-song-levels {
        grid-template-columns: 1fr;
    }
}


/* Manos virtuales y digitación */
.pam-hands-guide {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 18px 0;
}

.pam-hand-card {
    background: #fff;
    border: 1px solid var(--pam-border);
    border-radius: 18px;
    padding: 18px;
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.pam-hand-card-active {
    border-color: var(--pam-gold);
    box-shadow: 0 12px 26px rgba(201,164,76,.20);
    transform: translateY(-1px);
}

.pam-hand-title {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    font-weight: 900;
    margin-bottom: 12px;
}

.pam-hand-title span {
    color: var(--pam-gold);
}

.pam-hand-visual {
    position: relative;
    height: 142px;
    max-width: 260px;
    margin: 0 auto 12px;
}

.pam-palm {
    position: absolute;
    left: 88px;
    top: 58px;
    width: 84px;
    height: 68px;
    border-radius: 38px 38px 30px 30px;
    background: linear-gradient(180deg, #f7d8bd, #eab98f);
    border: 2px solid rgba(17,17,17,.12);
    box-shadow: inset 0 -8px 18px rgba(0,0,0,.08);
}

.pam-finger {
    position: absolute;
    width: 38px;
    height: 84px;
    border-radius: 24px 24px 18px 18px;
    background: linear-gradient(180deg, #ffe3c8, #efbd91);
    border: 2px solid rgba(17,17,17,.12);
    display: flex;
    justify-content: center;
    align-items: flex-start;
    padding-top: 10px;
    font-weight: 900;
    color: #111;
    box-shadow: inset 0 -8px 16px rgba(0,0,0,.08);
    transition: transform .15s ease, background .15s ease, box-shadow .15s ease;
}

.pam-finger span {
    width: 24px;
    height: 24px;
    border-radius: 999px;
    background: #fff;
    display: grid;
    place-items: center;
    font-size: .85rem;
}

.pam-finger-1 {
    left: 46px;
    top: 68px;
    height: 56px;
    transform: rotate(-35deg);
}

.pam-finger-2 {
    left: 82px;
    top: 12px;
}

.pam-finger-3 {
    left: 124px;
    top: 0;
    height: 96px;
}

.pam-finger-4 {
    left: 166px;
    top: 12px;
}

.pam-finger-5 {
    left: 204px;
    top: 42px;
    height: 66px;
    transform: rotate(18deg);
}

.pam-hand-visual-left {
    transform: scaleX(-1);
}

.pam-finger-active {
    background: linear-gradient(180deg, #d8b44d, #C9A44C) !important;
    box-shadow: 0 0 0 5px rgba(201,164,76,.20), inset 0 -8px 16px rgba(0,0,0,.12);
    transform: translateY(-6px) scale(1.04);
}

.pam-finger-1.pam-finger-active {
    transform: rotate(-35deg) translateY(-6px) scale(1.04);
}

.pam-finger-5.pam-finger-active {
    transform: rotate(18deg) translateY(-6px) scale(1.04);
}

.pam-hand-caption {
    text-align: center;
    color: var(--pam-text);
}

.pam-hand-caption strong {
    color: var(--pam-black);
}

@media (max-width: 800px) {
    .pam-hands-guide {
        grid-template-columns: 1fr;
    }
}


/* Biblioteca visual de canciones */
.pam-song-library > h2 {
    margin-top: 0;
    font-size: clamp(2rem, 4vw, 3rem);
}

.pam-library-toolbar {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin: 22px 0;
}

.pam-library-toolbar input,
.pam-library-toolbar select {
    border: 1px solid var(--pam-border);
    background: #fff;
    border-radius: 999px;
    padding: 14px 18px;
    min-height: 48px;
}

.pam-library-toolbar input {
    flex: 1 1 280px;
}

.pam-library-toolbar select {
    flex: 0 0 220px;
}

.pam-song-grid {
    display: grid;
    gap: 18px;
    margin: 22px 0 28px;
}

.pam-song-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.pam-song-grid-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.pam-song-grid-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.pam-song-card {
    background: #fff;
    border: 1px solid var(--pam-border);
    border-radius: 22px;
    overflow: hidden;
    box-shadow: 0 12px 28px rgba(17,17,17,.06);
    transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}

.pam-song-card:hover,
.pam-song-card-active {
    transform: translateY(-3px);
    border-color: var(--pam-gold);
    box-shadow: 0 18px 38px rgba(17,17,17,.10);
}

.pam-song-cover {
    height: 150px;
    background:
        radial-gradient(circle at 30% 30%, rgba(201,164,76,.45), transparent 30%),
        linear-gradient(135deg, #111111, #172033);
    position: relative;
    display: grid;
    place-items: center;
    overflow: hidden;
}

.pam-song-cover-note {
    width: 74px;
    height: 74px;
    border-radius: 999px;
    background: var(--pam-gold);
    color: #111;
    display: grid;
    place-items: center;
    font-size: 3rem;
    font-weight: 900;
    z-index: 2;
}

.pam-song-cover-lines {
    position: absolute;
    inset: 0;
    opacity: .28;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 12px;
}

.pam-song-cover-lines span {
    display: block;
    height: 1px;
    background: #fff;
}

.pam-song-card-body {
    padding: 18px;
}

.pam-song-card-body h3 {
    margin: 8px 0 8px;
    font-size: 1.2rem;
    line-height: 1.25;
}

.pam-song-card-body p {
    color: var(--pam-text);
    margin: 0 0 16px;
}

.pam-song-badge {
    display: inline-flex;
    border-radius: 999px;
    padding: 6px 10px;
    background: rgba(201,164,76,.14);
    color: #8b6c21;
    font-weight: 900;
    font-size: .78rem;
}

.pam-song-card-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.pam-song-player-area {
    margin-top: 26px;
}

.pam-song-player-placeholder,
.pam-empty-library {
    background: #fff;
    border: 1px dashed var(--pam-gold);
    border-radius: 18px;
    padding: 28px;
    text-align: center;
}

.pam-song-player-placeholder h3,
.pam-empty-library h3 {
    margin-top: 0;
}

.pam-song-player-panel {
    margin-top: 20px;
}

@media (max-width: 1100px) {
    .pam-song-grid-3,
    .pam-song-grid-4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .pam-song-grid,
    .pam-song-grid-2,
    .pam-song-grid-3,
    .pam-song-grid-4 {
        grid-template-columns: 1fr;
    }

    .pam-library-toolbar select {
        flex: 1 1 100%;
    }
}


/* Profesor IA */
.pam-ai-teacher {
    background: linear-gradient(180deg, #F8F5EF, #fff);
}

.pam-ai-header {
    display: flex;
    gap: 16px;
    align-items: center;
    margin-bottom: 18px;
}

.pam-ai-avatar {
    width: 58px;
    height: 58px;
    border-radius: 18px;
    background: #111;
    color: #C9A44C;
    display: grid;
    place-items: center;
    font-weight: 900;
    box-shadow: 0 14px 30px rgba(17,17,17,.12);
}

.pam-ai-header h2 {
    margin: 0 0 4px;
    font-size: clamp(1.8rem, 4vw, 2.6rem);
}

.pam-ai-header p {
    margin: 0;
    color: var(--pam-text);
}

.pam-ai-suggestions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin: 16px 0;
}

.pam-ai-suggestions button {
    border: 1px solid var(--pam-border);
    background: #fff;
    border-radius: 999px;
    padding: 10px 14px;
    font-weight: 800;
    cursor: pointer;
}

.pam-ai-suggestions button:hover {
    border-color: var(--pam-gold);
}

.pam-ai-chat {
    background: #fff;
    border: 1px solid var(--pam-border);
    border-radius: 18px;
    padding: 16px;
    min-height: 220px;
    max-height: 440px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.pam-ai-message {
    max-width: 82%;
    padding: 13px 15px;
    border-radius: 16px;
    line-height: 1.45;
}

.pam-ai-message-bot {
    align-self: flex-start;
    background: #F8F5EF;
    color: #111;
    border: 1px solid rgba(201,164,76,.24);
}

.pam-ai-message-user {
    align-self: flex-end;
    background: #111;
    color: #fff;
}

.pam-ai-loading {
    opacity: .7;
}

.pam-ai-error {
    color: #c11515;
}

.pam-ai-form {
    display: flex;
    gap: 12px;
    margin-top: 14px;
    align-items: flex-end;
}

.pam-ai-input {
    flex: 1;
    border: 1px solid var(--pam-border);
    border-radius: 16px;
    padding: 14px;
    resize: vertical;
    min-height: 70px;
    font-family: inherit;
}

.pam-ai-disclaimer {
    margin-top: 12px;
    font-size: .85rem;
    color: var(--pam-text);
}

@media (max-width: 700px) {
    .pam-ai-form {
        flex-direction: column;
        align-items: stretch;
    }

    .pam-ai-message {
        max-width: 100%;
    }
}


/* Piano Hero / Synthesia Neon */
.pam-game-song{background:radial-gradient(circle at 30% 0%,rgba(201,164,76,.22),transparent 32%),linear-gradient(180deg,#080812,#111);color:#fff;border-color:rgba(201,164,76,.35);box-shadow:0 22px 70px rgba(0,0,0,.32)}
.pam-game-song .pam-label,.pam-game-song h2{color:#fff}.pam-game-song p,.pam-game-tips li{color:rgba(255,255,255,.78)}
.pam-game-header{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:18px}.pam-game-header h2{font-size:clamp(2rem,4vw,3.4rem);margin:0 0 8px}
.pam-game-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.pam-game-meta span{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:8px 12px;font-weight:800;color:rgba(255,255,255,.88)}
.pam-game-score-box{min-width:150px;background:rgba(255,255,255,.10);border:1px solid rgba(201,164,76,.45);border-radius:20px;padding:16px;text-align:center;box-shadow:inset 0 0 22px rgba(201,164,76,.12)}.pam-game-score-box strong{display:block;color:#C9A44C;font-size:2.4rem;line-height:1;margin:6px 0}
.pam-game-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:14px}.pam-game-controls label,.pam-game-midi-status{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:10px 14px;color:rgba(255,255,255,.86);font-weight:800}.pam-game-controls select{margin-left:6px;border-radius:999px;padding:7px 10px}.pam-game-ok{color:#39ff88!important}.pam-game-error{color:#ff6b6b!important}
.pam-game-feedback{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.16);border-radius:18px;padding:14px 16px;margin-bottom:14px}.pam-game-feedback strong{color:#C9A44C}
.pam-game-stage-wrap{position:relative;border-radius:22px;overflow:hidden;border:1px solid rgba(201,164,76,.36);box-shadow:0 24px 60px rgba(0,0,0,.42),inset 0 0 28px rgba(201,164,76,.12);background:#050506}.pam-game-canvas{display:block;width:100%;height:min(62vh,580px);min-height:430px}.pam-game-hit-label{position:absolute;right:18px;bottom:78px;color:#C9A44C;font-weight:900;text-transform:uppercase;font-size:.72rem;letter-spacing:.12em;text-shadow:0 0 14px #C9A44C}
.pam-game-keyboard{display:flex;align-items:flex-start;overflow-x:auto;background:#080808;border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:12px;margin:14px 0 18px}.pam-game-key{position:relative;border:1px solid #111;cursor:pointer;font-family:inherit;font-weight:900;transition:transform .08s ease,box-shadow .12s ease,background .12s ease}.pam-game-key-white{width:44px;height:165px;background:linear-gradient(180deg,#fff,#dcdcdc);color:#111;border-radius:0 0 10px 10px;z-index:1}.pam-game-key-black{width:28px;height:105px;background:linear-gradient(180deg,#1c1c1c,#000);color:#fff;border-radius:0 0 8px 8px;margin-left:-14px;margin-right:-14px;z-index:3}.pam-game-key span{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);font-size:.75rem}.pam-game-key small{position:absolute;bottom:7px;left:50%;transform:translateX(-50%);font-size:.58rem;opacity:.65}.pam-game-key-black span{bottom:12px;font-size:.58rem}.pam-game-key-target{box-shadow:inset 0 -10px 0 #C9A44C,0 0 24px rgba(201,164,76,.85)}.pam-game-key-active{background:#C9A44C!important;color:#111!important;transform:translateY(5px)}
.pam-game-tips{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:18px;padding:18px}.pam-game-tips h3{margin-top:0;color:#fff}
.pam-game-library-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:22px 0}.pam-game-library-card{border:1px solid var(--pam-border);background:#fff;border-radius:22px;padding:18px;text-align:left;display:grid;grid-template-columns:74px 1fr;gap:10px 16px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.pam-game-library-card:hover,.pam-game-library-card-active{transform:translateY(-3px);border-color:var(--pam-gold);box-shadow:0 18px 38px rgba(17,17,17,.10)}.pam-game-card-art{grid-row:span 3;width:74px;height:74px;border-radius:18px;background:linear-gradient(135deg,#111,#172033);color:var(--pam-gold);display:grid;place-items:center;font-size:3rem}.pam-game-library-card strong{font-size:1.2rem}.pam-game-library-card span{color:var(--pam-gold);font-weight:900}.pam-game-library-card small{color:var(--pam-text)}.pam-game-library-placeholder{background:#fff;border:1px dashed var(--pam-gold);border-radius:18px;padding:28px;text-align:center}
@media(max-width:900px){.pam-game-header{flex-direction:column}.pam-game-library-grid{grid-template-columns:1fr}.pam-game-library-card{grid-template-columns:1fr}.pam-game-canvas{height:520px}}



/* Piano Hero / Synthesia Neon - sincronizado con el teclado */
.pam-game-song {
    background: radial-gradient(circle at 30% 0%, rgba(201,164,76,.22), transparent 32%), linear-gradient(180deg, #080812, #111111) !important;
    color: #fff !important;
    border-color: rgba(201,164,76,.35) !important;
    box-shadow: 0 22px 70px rgba(0,0,0,.32);
}

.pam-game-song .pam-label,
.pam-game-song h2 {
    color: #fff !important;
}

.pam-game-song p,
.pam-game-tips li {
    color: rgba(255,255,255,.78);
}

.pam-game-header {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: flex-start;
    margin-bottom: 18px;
}

.pam-game-header h2 {
    font-size: clamp(2rem, 4vw, 3.4rem);
    margin: 0 0 8px;
}

.pam-game-meta {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 12px;
}

.pam-game-meta span {
    background: rgba(255,255,255,.10);
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 999px;
    padding: 8px 12px;
    font-weight: 800;
    color: rgba(255,255,255,.88);
}

.pam-game-score-box {
    min-width: 150px;
    background: rgba(255,255,255,.10);
    border: 1px solid rgba(201,164,76,.45);
    border-radius: 20px;
    padding: 16px;
    text-align: center;
    box-shadow: inset 0 0 22px rgba(201,164,76,.12);
}

.pam-game-score-box strong {
    display: block;
    color: #C9A44C;
    font-size: 2.4rem;
    line-height: 1;
    margin: 6px 0;
}

.pam-game-controls {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
    margin-bottom: 14px;
}

.pam-game-controls label,
.pam-game-midi-status,
.pam-game-range-status {
    background: rgba(255,255,255,.10);
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 999px;
    padding: 10px 14px;
    color: rgba(255,255,255,.86);
    font-weight: 800;
}

.pam-game-controls select {
    margin-left: 6px;
    border-radius: 999px;
    padding: 7px 10px;
}

.pam-game-ok { color: #39ff88 !important; }
.pam-game-error { color: #ff6b6b !important; }

.pam-game-feedback {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    background: rgba(255,255,255,.10);
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 18px;
    padding: 14px 16px;
    margin-bottom: 14px;
}

.pam-game-feedback strong {
    color: #C9A44C;
}

.pam-game-stage-wrap {
    position: relative;
    border-radius: 22px;
    overflow: hidden;
    border: 1px solid rgba(201,164,76,.36);
    box-shadow: 0 24px 60px rgba(0,0,0,.42), inset 0 0 28px rgba(201,164,76,.12);
    background: #050506;
}

.pam-game-canvas {
    display: block;
    width: 100%;
    height: min(62vh, 580px);
    min-height: 430px;
}

.pam-game-hit-label {
    position: absolute;
    right: 18px;
    bottom: 78px;
    color: #C9A44C;
    font-weight: 900;
    text-transform: uppercase;
    font-size: .72rem;
    letter-spacing: .12em;
    text-shadow: 0 0 14px #C9A44C;
}

.pam-game-keyboard {
    display: flex;
    align-items: flex-start;
    overflow-x: auto;
    background: #080808;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 18px;
    padding: 12px;
    margin: 14px 0 18px;
    scroll-behavior: smooth;
}

.pam-game-key {
    position: relative;
    border: 1px solid #111;
    cursor: pointer;
    font-family: inherit;
    font-weight: 900;
    transition: transform .08s ease, box-shadow .12s ease, background .12s ease;
    flex: 0 0 auto;
}

.pam-game-key-white {
    width: 44px;
    height: 165px;
    background: linear-gradient(180deg, #fff, #dcdcdc);
    color: #111;
    border-radius: 0 0 10px 10px;
    z-index: 1;
}

.pam-game-key-black {
    width: 28px;
    height: 105px;
    background: linear-gradient(180deg, #1c1c1c, #000);
    color: #fff;
    border-radius: 0 0 8px 8px;
    margin-left: -14px;
    margin-right: -14px;
    z-index: 3;
}

.pam-game-key span {
    position: absolute;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%);
    font-size: .75rem;
}

.pam-game-key small {
    position: absolute;
    bottom: 7px;
    left: 50%;
    transform: translateX(-50%);
    font-size: .58rem;
    opacity: .65;
}

.pam-game-key-black span {
    bottom: 12px;
    font-size: .58rem;
}

.pam-game-key-target {
    box-shadow: inset 0 -10px 0 #C9A44C, 0 0 24px rgba(201,164,76,.85);
}

.pam-game-key-active {
    background: #C9A44C !important;
    color: #111 !important;
    transform: translateY(5px);
}

.pam-game-tips {
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 18px;
    padding: 18px;
}

.pam-game-tips h3 {
    margin-top: 0;
    color: #fff;
}

/* Biblioteca Piano Hero */
.pam-game-library-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 22px 0;
}

.pam-game-library-card {
    border: 1px solid var(--pam-border);
    background: #fff;
    border-radius: 22px;
    padding: 18px;
    text-align: left;
    display: grid;
    grid-template-columns: 74px 1fr;
    gap: 10px 16px;
    cursor: pointer;
    transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.pam-game-library-card:hover,
.pam-game-library-card-active {
    transform: translateY(-3px);
    border-color: var(--pam-gold);
    box-shadow: 0 18px 38px rgba(17,17,17,.10);
}

.pam-game-card-art {
    grid-row: span 3;
    width: 74px;
    height: 74px;
    border-radius: 18px;
    background: linear-gradient(135deg, #111, #172033);
    color: var(--pam-gold);
    display: grid;
    place-items: center;
    font-size: 3rem;
}

.pam-game-library-card strong {
    font-size: 1.2rem;
}

.pam-game-library-card span {
    color: var(--pam-gold);
    font-weight: 900;
}

.pam-game-library-card small {
    color: var(--pam-text);
}

.pam-game-library-placeholder {
    background: #fff;
    border: 1px dashed var(--pam-gold);
    border-radius: 18px;
    padding: 28px;
    text-align: center;
}

@media (max-width: 900px) {
    .pam-game-header {
        flex-direction: column;
    }

    .pam-game-library-grid {
        grid-template-columns: 1fr;
    }

    .pam-game-library-card {
        grid-template-columns: 1fr;
    }

    .pam-game-canvas {
        height: 520px;
    }

    .pam-game-key-white {
        width: 38px;
    }

    .pam-game-key-black {
        width: 24px;
        margin-left: -12px;
        margin-right: -12px;
    }
}


/* Ajustes PRO 1.8.3: cascada recta, partitura, teclas por colores y sonido/volumen */
.pam-game-song.pam-game-height-compact .pam-game-canvas { height: 420px !important; min-height: 360px !important; }
.pam-game-song.pam-game-height-normal .pam-game-canvas { height: min(62vh, 580px) !important; min-height: 430px !important; }
.pam-game-song.pam-game-height-large .pam-game-canvas { height: min(76vh, 720px) !important; min-height: 560px !important; }
.pam-game-song.pam-game-height-fullscreen .pam-game-canvas { height: calc(100vh - 250px) !important; min-height: 650px !important; }

.pam-game-keys-small .pam-game-key-white { width: 34px !important; height: 145px !important; }
.pam-game-keys-small .pam-game-key-black { width: 22px !important; height: 92px !important; margin-left: -11px !important; margin-right: -11px !important; }

.pam-game-keys-normal .pam-game-key-white { width: 44px !important; height: 165px !important; }
.pam-game-keys-normal .pam-game-key-black { width: 28px !important; height: 105px !important; margin-left: -14px !important; margin-right: -14px !important; }

.pam-game-keys-large .pam-game-key-white { width: 56px !important; height: 190px !important; }
.pam-game-keys-large .pam-game-key-black { width: 36px !important; height: 124px !important; margin-left: -18px !important; margin-right: -18px !important; }

.pam-game-key-white.pam-note-do { background: linear-gradient(180deg,#fff,#ffd2dc) !important; }
.pam-game-key-white.pam-note-re { background: linear-gradient(180deg,#fff,#ffe4a3) !important; }
.pam-game-key-white.pam-note-mi { background: linear-gradient(180deg,#fff,#c6f7d2) !important; }
.pam-game-key-white.pam-note-fa { background: linear-gradient(180deg,#fff,#b9f9ec) !important; }
.pam-game-key-white.pam-note-sol { background: linear-gradient(180deg,#fff,#c7ecff) !important; }
.pam-game-key-white.pam-note-la { background: linear-gradient(180deg,#fff,#dbc7ff) !important; }
.pam-game-key-white.pam-note-si { background: linear-gradient(180deg,#fff,#f5f5f5) !important; }

.pam-game-key-black.pam-note-dos,
.pam-game-key-black.pam-note-res,
.pam-game-key-black.pam-note-fas,
.pam-game-key-black.pam-note-sols,
.pam-game-key-black.pam-note-las {
    border-bottom: 5px solid rgba(201,164,76,.85) !important;
}

.pam-game-key-target {
    box-shadow: inset 0 -12px 0 #C9A44C, 0 0 30px rgba(201,164,76,.95) !important;
    outline: 2px solid rgba(201,164,76,.65) !important;
}

.pam-game-key-active {
    background: #C9A44C !important;
    color: #111 !important;
    transform: translateY(5px);
}

.pam-game-view-sheet .pam-game-stage-wrap {
    background: #fffdf6 !important;
    border-color: rgba(17,17,17,.18) !important;
}

.pam-game-view-sheet .pam-game-hit-label {
    color: #111 !important;
    text-shadow: none !important;
}

.pam-game-controls label,
.pam-game-midi-status,
.pam-game-range-status {
    white-space: nowrap;
}

@media (max-width: 900px) {
    .pam-game-song.pam-game-height-fullscreen .pam-game-canvas {
        height: 620px !important;
    }
}


/* PRO 1.8.4: marco completo, presión/velocity, metrónomo y sustain visual */
.pam-game-keyboard {
    width: 100% !important;
    box-sizing: border-box !important;
}

.pam-game-key {
    overflow: hidden;
}

.pam-game-key-white {
    width: var(--pam-game-white-fit, 44px) !important;
}

.pam-game-key-black {
    width: var(--pam-game-black-fit, 28px) !important;
    margin-left: calc(var(--pam-game-black-fit, 28px) / -2) !important;
    margin-right: calc(var(--pam-game-black-fit, 28px) / -2) !important;
}

.pam-game-key .pam-game-pressure {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: var(--pam-pressure, 0%);
    background: linear-gradient(180deg, rgba(57,255,136,.18), rgba(57,255,136,.70));
    pointer-events: none;
    transition: height .08s linear, opacity .15s ease;
    opacity: .9;
    z-index: 0;
}

.pam-game-key > span,
.pam-game-key > small {
    z-index: 2;
}

.pam-game-key-held {
    box-shadow: inset 0 -12px 0 rgba(57,255,136,.85), 0 0 24px rgba(57,255,136,.65) !important;
}

.pam-game-key-active {
    background: #C9A44C !important;
    color: #111 !important;
    transform: translateY(5px);
}

.pam-game-key-target {
    box-shadow: inset 0 -12px 0 #C9A44C, 0 0 30px rgba(201,164,76,.95) !important;
    outline: 2px solid rgba(201,164,76,.65) !important;
}

.pam-game-controls label,
.pam-game-midi-status,
.pam-game-range-status {
    white-space: nowrap;
}

.pam-game-fit-note {
    color: rgba(255,255,255,.75);
    font-size: .82rem;
}


/* FIX 1.8.5: el teclado llena exactamente todo el marco cuando está en Ajustar al marco */
.pam-game-song.pam-game-fit-frame .pam-game-keyboard {
    overflow-x: hidden !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    justify-content: flex-start !important;
}

.pam-game-song.pam-game-fit-frame .pam-game-keyboard .pam-game-key-white {
    width: var(--pam-game-white-fit, 44px) !important;
    min-width: var(--pam-game-white-fit, 44px) !important;
    max-width: var(--pam-game-white-fit, 44px) !important;
}

.pam-game-song.pam-game-fit-frame .pam-game-keyboard .pam-game-key-black {
    width: var(--pam-game-black-fit, 28px) !important;
    min-width: var(--pam-game-black-fit, 28px) !important;
    max-width: var(--pam-game-black-fit, 28px) !important;
    margin-left: calc(var(--pam-game-black-fit, 28px) / -2) !important;
    margin-right: calc(var(--pam-game-black-fit, 28px) / -2) !important;
}

.pam-game-song.pam-game-fit-scroll .pam-game-keyboard {
    overflow-x: auto !important;
}

/* En modo fit, las clases de tamaño no deben crear hueco derecho */
.pam-game-song.pam-game-fit-frame.pam-game-keys-small .pam-game-key-white,
.pam-game-song.pam-game-fit-frame.pam-game-keys-normal .pam-game-key-white,
.pam-game-song.pam-game-fit-frame.pam-game-keys-large .pam-game-key-white {
    width: var(--pam-game-white-fit, 44px) !important;
}

.pam-game-song.pam-game-fit-frame.pam-game-keys-small .pam-game-key-black,
.pam-game-song.pam-game-fit-frame.pam-game-keys-normal .pam-game-key-black,
.pam-game-song.pam-game-fit-frame.pam-game-keys-large .pam-game-key-black {
    width: var(--pam-game-black-fit, 28px) !important;
}


/* PRO 1.8.6: notas largas y Mi Corazón Encantado */
.pam-game-song .pam-game-message {
    font-weight: 800;
}

.pam-game-library h3 {
    margin-top: 26px;
}

.pam-game-card-art {
    text-shadow: 0 0 18px rgba(201,164,76,.75);
}


/* PRO 1.8.7: botón para escuchar la canción y verificar MIDI */
.pam-game-demo {
    background: linear-gradient(135deg, #39ff88, #06d6a0) !important;
    color: #071111 !important;
    font-weight: 900 !important;
}

.pam-game-stop-demo {
    background: rgba(255,255,255,.14) !important;
    color: #fff !important;
}


/* PRO 1.8.8: fix teclas y prueba de sonido */
.pam-game-sound-test {
    background: rgba(201,164,76,.25) !important;
    color: #fff !important;
    font-weight: 900 !important;
    border: 1px solid rgba(201,164,76,.6) !important;
}


/* PRO 1.8.9: partitura más realista y sincronización MIDI */
.pam-game-view-sheet .pam-game-stage-wrap {
    background: linear-gradient(180deg, #113a63, #49c4ba 48%, #123563) !important;
    border-color: rgba(35,103,255,.42) !important;
}

.pam-game-view-sheet .pam-game-hit-label {
    color: #ffffff !important;
    text-shadow: 0 0 12px #2367ff !important;
}

.pam-game-key-held {
    box-shadow: inset 0 -12px 0 rgba(57,255,136,.85), 0 0 24px rgba(57,255,136,.65) !important;
    outline: 2px solid rgba(57,255,136,.65) !important;
}


/* PRO 1.9.0: partitura guiada para no confundir al tocar */
.pam-game-keycolors-target .pam-game-key-white.pam-note-do,
.pam-game-keycolors-target .pam-game-key-white.pam-note-re,
.pam-game-keycolors-target .pam-game-key-white.pam-note-mi,
.pam-game-keycolors-target .pam-game-key-white.pam-note-fa,
.pam-game-keycolors-target .pam-game-key-white.pam-note-sol,
.pam-game-keycolors-target .pam-game-key-white.pam-note-la,
.pam-game-keycolors-target .pam-game-key-white.pam-note-si {
    background: linear-gradient(180deg, #ffffff, #e9e9e9) !important;
}

.pam-game-keycolors-target .pam-game-key-black {
    border-bottom: none !important;
}

.pam-game-keycolors-target .pam-game-key-target {
    background: linear-gradient(180deg, #fff6cf, #C9A44C) !important;
    box-shadow: inset 0 -12px 0 #39ff88, 0 0 34px rgba(201,164,76,.98) !important;
}

.pam-game-view-sheet .pam-game-canvas {
    min-height: 540px !important;
}

.pam-game-view-sheet .pam-game-feedback strong {
    font-size: 1.05rem;
}


/* PRO 1.9.1: partitura limpia sin etiquetas amontonadas */
.pam-game-view-sheet .pam-game-canvas {
    min-height: 560px !important;
}

.pam-game-view-sheet .pam-game-stage-wrap {
    background: linear-gradient(180deg, #0d3156, #42c7be 48%, #0e2f57) !important;
    border-color: rgba(31,102,255,.50) !important;
}

.pam-game-view-sheet .pam-game-hit-label {
    color: #ffffff !important;
    text-shadow: 0 0 12px #1f66ff !important;
}

.pam-game-keycolors-target .pam-game-key-white.pam-note-do,
.pam-game-keycolors-target .pam-game-key-white.pam-note-re,
.pam-game-keycolors-target .pam-game-key-white.pam-note-mi,
.pam-game-keycolors-target .pam-game-key-white.pam-note-fa,
.pam-game-keycolors-target .pam-game-key-white.pam-note-sol,
.pam-game-keycolors-target .pam-game-key-white.pam-note-la,
.pam-game-keycolors-target .pam-game-key-white.pam-note-si {
    background: linear-gradient(180deg, #ffffff, #e9e9e9) !important;
}


/* PRO 1.9.2: teclado limpio, sin teclas verdes pegadas */
.pam-game-keymark-clean .pam-game-key .pam-game-pressure {
    opacity: 0 !important;
    height: 0 !important;
}

.pam-game-keymark-clean .pam-game-key-held,
.pam-game-keymark-clean .pam-game-key-demo {
    box-shadow: inset 0 -12px 0 rgba(201,164,76,.95), 0 0 26px rgba(201,164,76,.65) !important;
    outline: 2px solid rgba(201,164,76,.75) !important;
}

.pam-game-keymark-clean .pam-game-key-target {
    background: linear-gradient(180deg, #fff6cf, #C9A44C) !important;
    box-shadow: inset 0 -12px 0 #C9A44C, 0 0 34px rgba(201,164,76,.98) !important;
}

.pam-game-keymark-pressure .pam-game-key-held {
    box-shadow: inset 0 -12px 0 rgba(57,255,136,.85), 0 0 24px rgba(57,255,136,.65) !important;
    outline: 2px solid rgba(57,255,136,.65) !important;
}


/* PRO 1.9.3: demo con pausa funcional */
.pam-game-demo {
    background: linear-gradient(135deg, #39ff88, #06d6a0) !important;
    color: #071111 !important;
    font-weight: 900 !important;
}

.pam-game-stop-demo {
    background: rgba(255,255,255,.16) !important;
    color: #ffffff !important;
    font-weight: 900 !important;
}


/* PRO 1.9.4: reparación final de controles */
.pam-game-sound-test {
    background: rgba(201,164,76,.28) !important;
    color: #fff !important;
    font-weight: 900 !important;
    border: 1px solid rgba(201,164,76,.65) !important;
}


/* PRO 1.9.5: números de dedo visibles en partitura */
.pam-game-view-sheet .pam-game-feedback strong {
    color: #C9A44C !important;
}


/* PRO 1.9.6: dedo grande y legible */
.pam-game-view-sheet .pam-game-target,
.pam-game-view-sheet .pam-game-feedback strong {
    font-size: 1.2rem !important;
    letter-spacing: .02em;
}

.pam-game-view-sheet .pam-game-message {
    font-size: 1.04rem !important;
}


/* PRO 1.9.7: Cascada real estilo Synthesia y Neón 3D estilo Piano Hero */
.pam-game-song .pam-game-stage-wrap {
    border-radius: 18px !important;
}

.pam-game-song:not(.pam-game-view-sheet) .pam-game-stage-wrap {
    background: #111 !important;
    border-color: rgba(255,255,255,.16) !important;
}

.pam-game-song:not(.pam-game-view-sheet) .pam-game-hit-label {
    color: rgba(255,255,255,.86) !important;
    text-shadow: 0 0 12px rgba(255,255,255,.55) !important;
}

.pam-game-song .pam-game-keyboard {
    background: #050505 !important;
    border-top: 2px solid rgba(255,255,255,.22) !important;
}


/* PRO 1.9.8: exportar MIDI completo como JSON */
.pam-json-textarea {
    width: 100%;
    min-height: 420px;
    border-radius: 18px;
    border: 1px solid rgba(17,17,17,.16);
    padding: 16px;
    font-family: Consolas, Monaco, monospace;
    font-size: 13px;
    line-height: 1.45;
    background: #111;
    color: #f8f5ef;
    box-sizing: border-box;
}


/* PRO 1.9.9: Mi corazón encantado en JSON manual */
.pam-game-library-card strong {
    line-height: 1.2;
}


/* PRO 2.0.0: Grabador de clases del profesor */
.pam-teacher-recorder {
    background: linear-gradient(180deg, #f8f5ef, #ffffff);
}

.pam-recorder-grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 14px;
    margin: 18px 0;
}

.pam-recorder-grid label {
    display: grid;
    gap: 7px;
    font-weight: 900;
}

.pam-recorder-grid input,
.pam-recorder-grid select {
    width: 100%;
    border: 1px solid var(--pam-border);
    border-radius: 14px;
    padding: 12px 14px;
    font: inherit;
    box-sizing: border-box;
}

.pam-recorder-controls {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin: 16px 0;
}

.pam-rec-status {
    background: #111;
    color: #f8f5ef;
    border-radius: 16px;
    padding: 14px 16px;
    font-weight: 900;
    margin: 12px 0;
}

.pam-rec-error {
    background: #7f1d1d !important;
}

.pam-rec-stats {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin: 12px 0 18px;
}

.pam-rec-stats span {
    background: #fff;
    border: 1px solid var(--pam-border);
    border-radius: 999px;
    padding: 9px 13px;
    font-weight: 800;
}

.pam-rec-keyboard {
    display: flex;
    align-items: flex-start;
    overflow-x: auto;
    background: #050505;
    border-radius: 18px;
    padding: 14px;
    margin: 18px 0;
    border: 1px solid rgba(17,17,17,.2);
}

.pam-rec-key {
    position: relative;
    border: 1px solid #111;
    cursor: pointer;
    font-family: inherit;
    font-weight: 900;
    flex: 0 0 auto;
    overflow: hidden;
}

.pam-rec-key-white {
    width: 42px;
    height: 160px;
    background: linear-gradient(180deg, #ffffff, #e8e8e8);
    color: #111;
    border-radius: 0 0 10px 10px;
    z-index: 1;
}

.pam-rec-key-black {
    width: 27px;
    height: 100px;
    background: linear-gradient(180deg, #1a1a1a, #000);
    color: #fff;
    border-radius: 0 0 8px 8px;
    margin-left: -13.5px;
    margin-right: -13.5px;
    z-index: 3;
}

.pam-rec-key span {
    position: absolute;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
    font-size: .72rem;
}

.pam-rec-key small {
    position: absolute;
    bottom: 7px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
    font-size: .55rem;
    opacity: .7;
}

.pam-rec-key::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: var(--rec-pressure, 0%);
    background: linear-gradient(180deg, rgba(201,164,76,.15), rgba(201,164,76,.88));
    transition: height .08s linear;
}

.pam-rec-key-active {
    box-shadow: inset 0 -12px 0 #C9A44C, 0 0 24px rgba(201,164,76,.7);
    transform: translateY(4px);
}

.pam-rec-json-wrap {
    margin-top: 16px;
}

.pam-rec-json {
    width: 100%;
    min-height: 280px;
    border-radius: 16px;
    border: 1px solid var(--pam-border);
    padding: 14px;
    font-family: Consolas, Monaco, monospace;
    font-size: 13px;
    background: #111;
    color: #f8f5ef;
    box-sizing: border-box;
}

.pam-rec-output {
    background: #fff;
    border: 1px solid var(--pam-gold);
    border-radius: 18px;
    padding: 16px;
    margin-top: 18px;
}

.pam-rec-output pre,
.pam-teacher-song-card pre {
    white-space: pre-wrap;
    background: #111;
    color: #f8f5ef;
    border-radius: 12px;
    padding: 10px 12px;
}

.pam-teacher-song-card {
    display: block !important;
}

@media (max-width: 900px) {
    .pam-recorder-grid {
        grid-template-columns: 1fr;
    }

    .pam-rec-key-white {
        width: 36px;
    }

    .pam-rec-key-black {
        width: 23px;
        margin-left: -11.5px;
        margin-right: -11.5px;
    }
}


/* PRO 2.0.1: biblioteca clara para alumnos */
.pam-teacher-empty {
    background: #fff;
    border: 1px dashed var(--pam-gold);
    border-radius: 18px;
    padding: 22px;
    margin: 16px 0;
}

.pam-teacher-empty pre,
.pam-teacher-empty code {
    background: #111;
    color: #f8f5ef;
    border-radius: 10px;
    padding: 8px 10px;
    display: inline-block;
}

.pam-teacher-class-placeholder {
    background: #fff;
    border: 1px dashed var(--pam-gold);
    border-radius: 18px;
    padding: 28px;
    text-align: center;
    margin-top: 16px;
}

.pam-teacher-class-panel {
    margin-top: 18px;
}

.pam-teacher-class-card {
    cursor: pointer;
}


/* PRO 2.0.2: Editor de clases grabadas */
.pam-editor-layout {
    display: grid;
    grid-template-columns: 300px 1fr;
    gap: 18px;
    align-items: start;
}

.pam-editor-list,
.pam-editor-main {
    background: #fff;
    border: 1px solid var(--pam-border);
    border-radius: 18px;
    padding: 16px;
}

.pam-editor-class-btn {
    width: 100%;
    border: 1px solid var(--pam-border);
    background: #f8f5ef;
    border-radius: 15px;
    padding: 13px;
    text-align: left;
    cursor: pointer;
    margin-bottom: 10px;
    font-family: inherit;
}

.pam-editor-class-btn strong {
    display: block;
    color: #111;
    font-size: .95rem;
}

.pam-editor-class-btn span {
    display: block;
    color: rgba(17,17,17,.62);
    font-size: .82rem;
    margin-top: 3px;
}

.pam-editor-class-active {
    border-color: var(--pam-gold) !important;
    box-shadow: 0 0 0 3px rgba(201,164,76,.18);
    background: #fff9df !important;
}

.pam-editor-tools,
.pam-editor-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin: 16px 0;
}

.pam-editor-status {
    background: #111;
    color: #f8f5ef;
    border-radius: 15px;
    padding: 12px 14px;
    font-weight: 900;
    margin: 12px 0;
}

.pam-editor-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 12px 0;
}

.pam-editor-summary span {
    background: #f8f5ef;
    border: 1px solid var(--pam-border);
    border-radius: 999px;
    padding: 8px 12px;
    font-weight: 800;
}

.pam-editor-summary code {
    background: #111;
    color: #f8f5ef;
    padding: 4px 8px;
    border-radius: 8px;
}

.pam-editor-table-wrap {
    overflow-x: auto;
    border: 1px solid var(--pam-border);
    border-radius: 16px;
}

.pam-editor-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 760px;
    background: #fff;
}

.pam-editor-table th,
.pam-editor-table td {
    border-bottom: 1px solid rgba(17,17,17,.08);
    padding: 9px;
    text-align: left;
    vertical-align: middle;
}

.pam-editor-table th {
    background: #111;
    color: #f8f5ef;
    font-size: .82rem;
}

.pam-editor-table input,
.pam-editor-table select {
    width: 100%;
    border: 1px solid var(--pam-border);
    border-radius: 10px;
    padding: 8px;
    font: inherit;
    box-sizing: border-box;
}

.pam-editor-table small {
    display: block;
    margin-top: 4px;
    color: rgba(17,17,17,.62);
    font-weight: 800;
}

.pam-mini-delete {
    border: none;
    border-radius: 10px;
    background: #7f1d1d;
    color: #fff;
    padding: 8px 10px;
    cursor: pointer;
    font-weight: 900;
}

.pam-edit-json {
    width: 100%;
    min-height: 320px;
    border-radius: 16px;
    border: 1px solid var(--pam-border);
    padding: 14px;
    font-family: Consolas, Monaco, monospace;
    font-size: 13px;
    background: #111;
    color: #f8f5ef;
    box-sizing: border-box;
}

.pam-editor-help {
    color: rgba(17,17,17,.68);
    font-weight: 700;
}

@media (max-width: 980px) {
    .pam-editor-layout {
        grid-template-columns: 1fr;
    }
}


/* PRO 2.0.3: eliminar canciones desde biblioteca */
.pam-delete-teacher-song {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 10px;
    padding: 8px 12px;
    border-radius: 999px;
    background: #7f1d1d;
    color: #ffffff;
    font-weight: 900;
    font-size: .82rem;
    cursor: pointer;
    border: 1px solid rgba(255,255,255,.18);
}

.pam-delete-teacher-song:hover {
    background: #991b1b;
}

.pam-delete-teacher-song-editor {
    font-style: normal;
    width: fit-content;
}

.pam-game-library-card .pam-delete-teacher-song {
    position: relative;
    z-index: 5;
}


/* PRO 2.0.4: eliminar real sin abrir/modificar */
.pam-teacher-class-card-wrap {
    position: relative;
    display: grid;
    gap: 8px;
}

.pam-teacher-class-card-wrap .pam-game-library-card {
    width: 100%;
}

.pam-delete-teacher-song-button {
    width: 100%;
    border: none;
    border-radius: 14px;
    background: #7f1d1d;
    color: #ffffff;
    padding: 10px 12px;
    cursor: pointer;
    font-weight: 900;
    font-family: inherit;
    box-shadow: 0 8px 18px rgba(127, 29, 29, .16);
}

.pam-delete-teacher-song-button:hover {
    background: #991b1b;
}

.pam-delete-teacher-song-button:disabled {
    opacity: .7;
    cursor: wait;
}


/* PRO 2.0.5: eliminación real por formulario POST */
.pam-delete-teacher-song-form {
    width: 100%;
    margin: 0;
}

.pam-delete-teacher-song-submit {
    width: 100%;
    border: none;
    border-radius: 14px;
    background: #7f1d1d;
    color: #ffffff;
    padding: 11px 12px;
    cursor: pointer;
    font-weight: 900;
    font-family: inherit;
    box-shadow: 0 8px 18px rgba(127, 29, 29, .16);
}

.pam-delete-teacher-song-submit:hover {
    background: #991b1b;
}

.pam-delete-teacher-song-submit:disabled {
    opacity: .75;
    cursor: wait;
}

.pam-delete-notice {
    border-radius: 16px;
    padding: 13px 15px;
    font-weight: 900;
    margin: 14px 0;
}

.pam-delete-success {
    background: #dcfce7;
    color: #14532d;
    border: 1px solid #86efac;
}

.pam-delete-error {
    background: #fee2e2;
    color: #7f1d1d;
    border: 1px solid #fecaca;
}


/* PRO 2.1.0: Panel profesional del profesor */
.pam-teacher-panel-hero {
    background: radial-gradient(circle at 10% 10%, rgba(201,164,76,.18), transparent 32%), linear-gradient(135deg, #111, #1e1e1e);
    color: #f8f5ef;
    border-color: rgba(201,164,76,.42) !important;
}

.pam-teacher-panel-hero h1,
.pam-teacher-panel-hero p { color: #f8f5ef; }

.pam-teacher-recorder-pro {
    background: linear-gradient(180deg, #fff, #f8f5ef);
    border: 1px solid rgba(201,164,76,.28) !important;
}

.pam-pro-steps {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin: 16px 0 20px;
}

.pam-pro-steps span {
    background: #111;
    color: #f8f5ef;
    border-radius: 999px;
    padding: 9px 13px;
    font-weight: 900;
    font-size: .86rem;
}

.pam-recorder-pro-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 18px 0;
}

.pam-recorder-pro-grid label,
.pam-pro-wide-label {
    display: grid;
    gap: 7px;
    font-weight: 900;
}

.pam-recorder-pro-grid input,
.pam-recorder-pro-grid select,
.pam-pro-wide-label textarea {
    width: 100%;
    border: 1px solid var(--pam-border);
    border-radius: 14px;
    padding: 12px 14px;
    font: inherit;
    box-sizing: border-box;
    background: #fff;
}

.pam-pro-wide-label { margin: 14px 0; }

.pam-recorder-pro-controls {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 18px 0;
}

.pam-pro-countdown {
    position: fixed;
    inset: 0;
    z-index: 999999;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,.66);
    color: #fff;
    font-size: clamp(5rem, 18vw, 14rem);
    font-weight: 1000;
    text-shadow: 0 0 40px rgba(201,164,76,.9);
}

.pam-pro-output {
    background: #fff;
    border: 1px solid var(--pam-gold);
    border-radius: 18px;
    padding: 16px;
    margin-top: 18px;
}

.pam-pro-output pre {
    background: #111;
    color: #f8f5ef;
    border-radius: 12px;
    padding: 12px;
    white-space: pre-wrap;
}

.pam-student-instructions {
    background: linear-gradient(180deg, #fff9df, #ffffff);
    border: 1px solid rgba(201,164,76,.34);
    border-radius: 18px;
    padding: 16px 18px;
    margin: 16px 0;
}

.pam-student-instructions h3 {
    margin: 0 0 6px;
    font-size: 1rem;
}

.pam-student-instructions p {
    margin: 0 0 12px;
    color: rgba(17,17,17,.78);
    font-weight: 650;
}

.pam-pro-json {
    width: 100%;
    min-height: 320px;
    border-radius: 16px;
    border: 1px solid var(--pam-border);
    padding: 14px;
    font-family: Consolas, Monaco, monospace;
    font-size: 13px;
    background: #111;
    color: #f8f5ef;
    box-sizing: border-box;
}

@media (max-width: 980px) {
    .pam-recorder-pro-grid { grid-template-columns: 1fr; }
}


/* PRO 2.1.1: fix botones y conteo del panel profesor */
.pam-pro-countdown {
    position: fixed;
    inset: 0;
    z-index: 999999;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,.72);
    color: #ffffff;
    font-size: clamp(76px, 12vw, 180px);
    font-weight: 1000;
    text-shadow: 0 0 30px rgba(201,164,76,.85);
}

.pam-pro-record:disabled {
    opacity: .75;
    cursor: wait;
}


/* PRO 2.2.0: micrófono y voz del profesor */
.pam-pro-voice-preview,
.pam-student-voice-box {
    background: linear-gradient(180deg, #fffaf0, #ffffff);
    border: 1px solid rgba(201,164,76,.45);
    border-radius: 18px;
    padding: 16px;
    margin: 16px 0;
    box-shadow: 0 10px 26px rgba(17,17,17,.06);
}

.pam-pro-voice-preview h3,
.pam-student-voice-box h3 {
    margin-top: 0;
}

.pam-pro-voice-preview audio,
.pam-student-voice-box audio {
    width: 100%;
    margin: 8px 0 10px;
}

.pam-student-voice-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 10px;
}

.pam-pro-voice-status {
    color: #7f1d1d;
}


/* PRO 2.2.1: micrófono corregido y biblioteca actualizada */
.pam-pro-voice-tools-v221 {
    background: #fff;
    border: 1px solid var(--pam-border);
    border-radius: 16px;
    padding: 12px 14px;
    margin: 12px 0;
}

.pam-pro-voice-meter-v221 {
    height: 14px;
    width: 100%;
    background: rgba(17,17,17,.12);
    border-radius: 999px;
    overflow: hidden;
}

.pam-pro-voice-meter-v221 span {
    display: block;
    width: 0%;
    height: 100%;
    background: linear-gradient(90deg, #C9A44C, #ffe27a);
    border-radius: 999px;
    transition: width .08s linear;
}

.pam-pro-voice-help-v221 {
    display: block;
    margin-top: 8px;
    color: rgba(17,17,17,.68);
    font-weight: 800;
}

.pam-v221-library .pam-game-card-art {
    font-size: 2rem;
}

.pam-teacher-panel-v221 .pam-teacher-panel-hero {
    border: 1px solid rgba(201,164,76,.35);
}


/* PRO 2.3.0: todas las clases viejas se muestran con el piano nuevo */
.pam-legacy-updated-wrap {
    margin: 24px 0;
}

.pam-legacy-updated-wrap .pam-game-song {
    border: 1px solid rgba(201,164,76,.35);
    box-shadow: 0 16px 40px rgba(17,17,17,.08);
}

.pam-legacy-updated-wrap .pam-game-header {
    background: linear-gradient(135deg, rgba(17,17,17,.98), rgba(28,24,18,.95));
    color: #fff;
    border-radius: 18px;
    padding: 22px;
}

.pam-legacy-updated-wrap .pam-game-header h2,
.pam-legacy-updated-wrap .pam-game-header p {
    color: #fff;
}

.pam-legacy-updated-wrap .pam-student-instructions {
    border-color: rgba(201,164,76,.38);
}

/* El teclado viejo queda oculto si alguna página tenía restos cargados por caché. */
.pam-app[data-pam-trainer="1"].pam-force-hidden-old-trainer {
    display: none !important;
}


/* PRO 2.3.1: pantalla completa para clases viejas convertidas al piano nuevo */
.pam-legacy-fullscreen-v231,
.pam-game-fullscreen-v231 {
    width: min(100vw - 24px, 1800px) !important;
    max-width: min(100vw - 24px, 1800px) !important;
    margin-left: 50% !important;
    transform: translateX(-50%) !important;
    box-sizing: border-box !important;
}

.pam-legacy-fullscreen-v231 .pam-game-song,
.pam-game-fullscreen-v231 {
    width: min(100vw - 24px, 1800px) !important;
    max-width: min(100vw - 24px, 1800px) !important;
}

.entry-content .pam-legacy-fullscreen-v231,
.wp-site-blocks .pam-legacy-fullscreen-v231,
.elementor .pam-legacy-fullscreen-v231,
.site-content .pam-legacy-fullscreen-v231,
.entry-content .pam-game-fullscreen-v231,
.wp-site-blocks .pam-game-fullscreen-v231,
.elementor .pam-game-fullscreen-v231,
.site-content .pam-game-fullscreen-v231 {
    width: min(100vw - 24px, 1800px) !important;
    max-width: min(100vw - 24px, 1800px) !important;
}

.pam-legacy-fullscreen-v231 .pam-game-stage-wrap,
.pam-game-fullscreen-v231 .pam-game-stage-wrap {
    min-height: clamp(460px, 54vh, 720px) !important;
}

.pam-legacy-fullscreen-v231 .pam-game-canvas,
.pam-game-fullscreen-v231 .pam-game-canvas {
    min-height: clamp(460px, 54vh, 720px) !important;
}

.pam-legacy-fullscreen-v231 .pam-game-keyboard,
.pam-game-fullscreen-v231 .pam-game-keyboard {
    min-height: 154px;
}

.pam-legacy-fullscreen-v231 .pam-game-header,
.pam-game-fullscreen-v231 .pam-game-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 160px;
    gap: 18px;
}

/* Botón eliminar definitivo real */
.pam-delete-teacher-song-form-v231 {
    width: 100%;
    margin: 0;
    display: block;
}

.pam-delete-teacher-song-form-v231 .pam-delete-teacher-song-button {
    width: 100%;
    border: none;
    border-radius: 14px;
    background: #7f1d1d;
    color: #fff;
    padding: 11px 14px;
    font-weight: 900;
    cursor: pointer;
    font-family: inherit;
}

.pam-delete-teacher-song-form-v231 .pam-delete-teacher-song-button:hover {
    background: #991b1b;
}

.pam-delete-teacher-song-form-v231 .pam-delete-teacher-song-button:disabled {
    opacity: .7;
    cursor: wait;
}

.pam-delete-success-v231 {
    border-radius: 16px;
    padding: 14px 16px;
    margin: 14px 0;
    background: rgba(24,164,74,.12);
    color: #0c7d35;
    border: 1px solid rgba(24,164,74,.25);
    font-weight: 900;
}

@media (max-width: 800px) {
    .pam-legacy-fullscreen-v231,
    .pam-game-fullscreen-v231 {
        width: calc(100vw - 12px) !important;
        max-width: calc(100vw - 12px) !important;
    }

    .pam-legacy-fullscreen-v231 .pam-game-header,
    .pam-game-fullscreen-v231 .pam-game-header {
        grid-template-columns: 1fr;
    }

    .pam-legacy-fullscreen-v231 .pam-game-stage-wrap,
    .pam-game-fullscreen-v231 .pam-game-stage-wrap {
        min-height: 430px !important;
    }
}


/* PRO 2.4.0: canciones MIDI completas */
.pam-midi-full-wrap,
.pam-midi-full-library {
    width: min(100vw - 24px, 1800px) !important;
    max-width: min(100vw - 24px, 1800px) !important;
    margin-left: 50% !important;
    transform: translateX(-50%) !important;
    box-sizing: border-box !important;
}

.pam-midi-full-wrap .pam-game-song,
.pam-midi-full-panel .pam-game-song {
    width: min(100vw - 24px, 1800px) !important;
    max-width: min(100vw - 24px, 1800px) !important;
}

.pam-midi-complete-notice {
    background: linear-gradient(135deg, rgba(201,164,76,.16), rgba(255,255,255,.96));
    border: 1px solid rgba(201,164,76,.36);
    margin-bottom: 14px !important;
}

.pam-midi-complete-notice strong {
    display: block;
    font-size: 1.25rem;
    margin-bottom: 6px;
}

.pam-midi-full-grid {
    margin-top: 18px;
}

.pam-midi-full-card {
    cursor: pointer;
}

.pam-midi-full-panel {
    margin-top: 22px;
}

.pam-midi-full-panel .pam-game-stage-wrap,
.pam-midi-full-wrap .pam-game-stage-wrap {
    min-height: clamp(460px, 54vh, 720px) !important;
}

@media (max-width: 800px) {
    .pam-midi-full-wrap,
    .pam-midi-full-library,
    .pam-midi-full-wrap .pam-game-song,
    .pam-midi-full-panel .pam-game-song {
        width: calc(100vw - 12px) !important;
        max-width: calc(100vw - 12px) !important;
    }
}


/* PRO 2.4.1: rescate visual de shortcodes crudos */
.pam-shortcode-rescue-v241 {
    width: min(100vw - 24px, 1600px) !important;
    max-width: min(100vw - 24px, 1600px) !important;
    margin-left: 50% !important;
    transform: translateX(-50%) !important;
    background: linear-gradient(135deg, rgba(201,164,76,.14), #fff) !important;
    border: 1px solid rgba(201,164,76,.32) !important;
}


/* PRO 2.5.0: detalle visual de sonido de piano mejorado */
.pam-game-sound-test::before,
.pam-rec-sound-test::before {
    content: "🎹";
}

.pam-piano-sound-note {
    background: rgba(201,164,76,.12);
    border: 1px solid rgba(201,164,76,.32);
    border-radius: 14px;
    padding: 12px 14px;
    font-weight: 800;
}


/* PRO 2.6.0: sonido por muestras reales */
.pam-game-sound-test {
    background: linear-gradient(135deg, #111, #3a2d12) !important;
    color: #fff !important;
}

.pam-game-sound-test::after {
    content: " · samples";
    opacity: .75;
    font-size: .78em;
}



/* PRO 2.7.0: puntuación, fallas y límite para pasar la canción */
.pam-game-pro-control select {
    min-width: 110px;
}

.pam-game-pro-hud {
    display: grid;
    grid-template-columns: repeat(5, minmax(110px, 1fr));
    gap: 10px;
    align-items: stretch;
    margin: 14px 0 18px;
    padding: 14px;
    background: linear-gradient(135deg, rgba(17,17,17,.98), rgba(35,30,22,.96));
    border: 1px solid rgba(201,164,76,.35);
    border-radius: 18px;
    color: #fff;
    box-shadow: 0 16px 35px rgba(17,17,17,.18);
}

.pam-game-pro-stat {
    background: rgba(255,255,255,.075);
    border: 1px solid rgba(255,255,255,.11);
    border-radius: 14px;
    padding: 12px 14px;
    min-height: 62px;
}

.pam-game-pro-stat span {
    display: block;
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .12em;
    color: rgba(255,255,255,.72);
    font-weight: 900;
    margin-bottom: 5px;
}

.pam-game-pro-stat strong {
    display: block;
    font-size: clamp(1.2rem, 2vw, 1.65rem);
    line-height: 1;
    font-weight: 1000;
}

.pam-stat-progress strong,
.pam-stat-accuracy strong,
.pam-stat-hits strong {
    color: #ffe27a;
}

.pam-stat-fails strong {
    color: #ffb4b4;
}

.pam-stat-stars strong {
    color: #ffd54a;
    letter-spacing: .06em;
    text-shadow: 0 0 14px rgba(255,213,74,.42);
}

.pam-game-pro-bar {
    grid-column: 1 / -1;
    height: 12px;
    border-radius: 999px;
    background: rgba(255,255,255,.13);
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.12);
}

.pam-game-pro-bar-fill {
    display: block;
    width: 0%;
    height: 100%;
    background: linear-gradient(90deg, #C9A44C, #ffe27a, #7bd88f);
    border-radius: 999px;
    transition: width .22s ease;
}

.pam-game-pro-danger {
    border-color: rgba(255, 159, 28, .7);
    box-shadow: 0 0 0 3px rgba(255,159,28,.12), 0 16px 35px rgba(17,17,17,.18);
}

.pam-game-pro-failed {
    border-color: rgba(239,68,68,.85);
    box-shadow: 0 0 0 3px rgba(239,68,68,.15), 0 16px 35px rgba(17,17,17,.18);
}

.pam-game-pro-failed .pam-game-pro-bar-fill {
    background: linear-gradient(90deg, #7f1d1d, #ef4444);
}

@media (max-width: 900px) {
    .pam-game-pro-hud {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pam-stat-stars {
        grid-column: 1 / -1;
    }
}

@media (max-width: 560px) {
    .pam-game-pro-hud {
        grid-template-columns: 1fr;
    }
}


/* PRO 2.7.1: canción creada desde video */
.pam-game-song[data-autostart="0"] .pam-game-header .pam-label::after {
    content: "";
}


/* PRO 2.8.0: estabilidad MIDI */
.pam-game-midi-status.pam-game-ok::after {
    content: " · conexión manual segura";
    opacity: .75;
    font-weight: 700;
}

.pam-midi-stability-note {
    background: rgba(201,164,76,.12);
    border: 1px solid rgba(201,164,76,.35);
    border-radius: 14px;
    padding: 12px 14px;
    font-weight: 800;
}


/* PRO 2.9.0: calibración real de teclado MIDI */
.pam-game-keyboard-real-control select {
    min-width: 120px;
}

.pam-game-clear-calibration {
    background: #fff9df !important;
    border-color: rgba(201,164,76,.45) !important;
}

.pam-game-range-status {
    font-weight: 900;
    color: #C9A44C;
}

.pam-game-controls .pam-game-keyboard-real-control {
    border: 1px solid rgba(201,164,76,.32);
    background: rgba(201,164,76,.10);
    border-radius: 14px;
    padding: 8px 10px;
}


/* PRO 2.9.1: barra visible de calibración 61 teclas */
.pam-keyboard-calibration-bar-v291 {
    width: 100%;
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
    background: linear-gradient(135deg, rgba(201,164,76,.16), rgba(255,255,255,.94));
    border: 1px solid rgba(201,164,76,.38);
    border-radius: 18px;
    padding: 13px 14px;
    margin: 14px 0;
    box-sizing: border-box;
}

.pam-keyboard-cal-title {
    font-weight: 1000;
    color: #111;
    margin-right: 4px;
}

.pam-keyboard-calibration-bar-v291 label {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-weight: 900;
}

.pam-keyboard-calibration-bar-v291 select {
    border: 1px solid rgba(17,17,17,.16);
    border-radius: 12px;
    padding: 9px 11px;
    font-weight: 800;
    background: #fff;
}

.pam-calibrate-v291,
.pam-force-61-v291,
.pam-clear-cal-v291 {
    border-radius: 999px !important;
    font-weight: 1000 !important;
}

.pam-force-61-v291 {
    background: #111 !important;
    color: #fff !important;
}

.pam-calibrate-v291 {
    background: #C9A44C !important;
    color: #111 !important;
}

.pam-clear-cal-v291 {
    background: #fff !important;
    color: #7f1d1d !important;
    border-color: rgba(127,29,29,.28) !important;
}


/* PRO 3.0.1 ESTABLE: panel completo + 61 teclas */
html body .pam-force-fullscreen-v301,
html body .pam-parent-fullscreen-v301,
html body .pam-legacy-updated-wrap,
html body .pam-midi-full-wrap {
    width: calc(100vw - 18px) !important;
    max-width: calc(100vw - 18px) !important;
    margin-left: 50% !important;
    transform: translateX(-50%) !important;
    box-sizing: border-box !important;
}

html body .pam-force-fullscreen-v301.pam-game-song,
html body .pam-force-fullscreen-v301 .pam-game-song,
html body .pam-legacy-updated-wrap .pam-game-song,
html body .pam-midi-full-wrap .pam-game-song {
    width: calc(100vw - 18px) !important;
    max-width: calc(100vw - 18px) !important;
    box-sizing: border-box !important;
}

html body .pam-force-fullscreen-v301 .pam-game-stage-wrap,
html body .pam-force-fullscreen-v301 .pam-game-canvas {
    min-height: clamp(520px, 60vh, 820px) !important;
}

html body .pam-force-fullscreen-v301 .pam-game-keyboard {
    min-height: 165px !important;
}

.pam-keyboard-bar-v301 {
    width: 100% !important;
    display: flex !important;
    gap: 10px !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    background: linear-gradient(135deg, rgba(201,164,76,.18), rgba(255,255,255,.98)) !important;
    border: 2px solid rgba(201,164,76,.55) !important;
    border-radius: 18px !important;
    padding: 14px !important;
    margin: 14px 0 !important;
    box-sizing: border-box !important;
    box-shadow: 0 10px 28px rgba(17,17,17,.08) !important;
}

.pam-keyboard-bar-v301 .pam-keyboard-cal-title {
    font-weight: 1000 !important;
    color: #111 !important;
    font-size: 1rem !important;
}

.pam-keyboard-bar-v301 label {
    display: inline-flex !important;
    align-items: center !important;
    gap: 7px !important;
    font-weight: 900 !important;
    color: #111 !important;
}

.pam-keyboard-bar-v301 select {
    border: 1px solid rgba(17,17,17,.20) !important;
    border-radius: 12px !important;
    padding: 10px 12px !important;
    font-weight: 900 !important;
    background: #fff !important;
}

.pam-calibrate-v301,
.pam-force-61-v301,
.pam-clear-cal-v301 {
    border-radius: 999px !important;
    font-weight: 1000 !important;
    padding: 10px 14px !important;
}

.pam-calibrate-v301 {
    background: #C9A44C !important;
    color: #111 !important;
}

.pam-force-61-v301 {
    background: #111 !important;
    color: #fff !important;
}

.pam-clear-cal-v301 {
    background: #fff !important;
    color: #7f1d1d !important;
    border: 1px solid rgba(127,29,29,.3) !important;
}

.pam-keyboard-status-v301 {
    background: #111 !important;
    color: #ffe27a !important;
    border-radius: 999px !important;
    padding: 9px 13px !important;
    font-weight: 1000 !important;
}

.pam-game-range-status {
    font-weight: 1000 !important;
    color: #C9A44C !important;
}

@media (max-width: 800px) {
    html body .pam-force-fullscreen-v301,
    html body .pam-parent-fullscreen-v301,
    html body .pam-legacy-updated-wrap,
    html body .pam-midi-full-wrap {
        width: calc(100vw - 8px) !important;
        max-width: calc(100vw - 8px) !important;
    }
}


/* PRO 3.1.0: grabar canciones actualizado */
html body .pam-teacher-recorder-pro.pam-recorder-fullscreen-v310,
html body .pam-recorder-parent-fullscreen-v310 .pam-teacher-recorder-pro {
    width: calc(100vw - 18px) !important;
    max-width: calc(100vw - 18px) !important;
    margin-left: 50% !important;
    transform: translateX(-50%) !important;
    box-sizing: border-box !important;
}

html body .pam-teacher-recorder-pro.pam-recorder-fullscreen-v310 {
    padding-left: clamp(18px, 2vw, 34px) !important;
    padding-right: clamp(18px, 2vw, 34px) !important;
}

.pam-rec-keyboard-bar-v310 {
    width: 100% !important;
    display: flex !important;
    gap: 10px !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    background: linear-gradient(135deg, rgba(201,164,76,.18), rgba(255,255,255,.98)) !important;
    border: 2px solid rgba(201,164,76,.55) !important;
    border-radius: 18px !important;
    padding: 14px !important;
    margin: 16px 0 !important;
    box-sizing: border-box !important;
    box-shadow: 0 10px 28px rgba(17,17,17,.08) !important;
}

.pam-rec-keyboard-bar-v310 .pam-keyboard-cal-title {
    font-weight: 1000 !important;
    color: #111 !important;
    font-size: 1rem !important;
}

.pam-rec-keyboard-bar-v310 label {
    display: inline-flex !important;
    align-items: center !important;
    gap: 7px !important;
    font-weight: 900 !important;
    color: #111 !important;
}

.pam-rec-keyboard-bar-v310 select {
    border: 1px solid rgba(17,17,17,.20) !important;
    border-radius: 12px !important;
    padding: 10px 12px !important;
    font-weight: 900 !important;
    background: #fff !important;
}

.pam-rec-calibrate-v310,
.pam-rec-force-61-v310,
.pam-rec-clear-cal-v310 {
    border-radius: 999px !important;
    font-weight: 1000 !important;
    padding: 10px 14px !important;
}

.pam-rec-calibrate-v310 { background: #C9A44C !important; color: #111 !important; }
.pam-rec-force-61-v310 { background: #111 !important; color: #fff !important; }
.pam-rec-clear-cal-v310 {
    background: #fff !important;
    color: #7f1d1d !important;
    border: 1px solid rgba(127,29,29,.3) !important;
}

.pam-rec-keyboard-status-v310 {
    background: #111 !important;
    color: #ffe27a !important;
    border-radius: 999px !important;
    padding: 9px 13px !important;
    font-weight: 1000 !important;
}

.pam-teacher-recorder-pro.pam-recorder-fullscreen-v310 .pam-pro-keyboard {
    min-height: 165px !important;
}

@media (max-width: 800px) {
    html body .pam-teacher-recorder-pro.pam-recorder-fullscreen-v310,
    html body .pam-recorder-parent-fullscreen-v310 .pam-teacher-recorder-pro {
        width: calc(100vw - 8px) !important;
        max-width: calc(100vw - 8px) !important;
    }
}


/* PRO 3.2.0: tamaño configurable de partitura */
.pam-sheet-size-control-v320 {
    border: 1px solid rgba(201,164,76,.38);
    background: rgba(201,164,76,.10);
    border-radius: 14px;
    padding: 8px 10px;
    font-weight: 900;
}

.pam-sheet-size-control-v320 select {
    min-width: 128px;
    font-weight: 900;
}

.pam-game-stage-wrap.pam-sheet-stage-active-v320,
.pam-game-canvas.pam-sheet-canvas-active-v320 {
    min-height: var(--pam-sheet-height-v320, 720px) !important;
}

.pam-game-song[data-sheet-size-v320="normal"] .pam-game-stage-wrap.pam-sheet-stage-active-v320 {
    min-height: 580px !important;
}

.pam-game-song[data-sheet-size-v320="large"] .pam-game-stage-wrap.pam-sheet-stage-active-v320 {
    min-height: 720px !important;
}

.pam-game-song[data-sheet-size-v320="xlarge"] .pam-game-stage-wrap.pam-sheet-stage-active-v320 {
    min-height: 860px !important;
}

.pam-game-song[data-sheet-size-v320="huge"] .pam-game-stage-wrap.pam-sheet-stage-active-v320 {
    min-height: 1020px !important;
}

.pam-game-song[data-sheet-size-v320="normal"] .pam-game-canvas.pam-sheet-canvas-active-v320 {
    min-height: 580px !important;
}

.pam-game-song[data-sheet-size-v320="large"] .pam-game-canvas.pam-sheet-canvas-active-v320 {
    min-height: 720px !important;
}

.pam-game-song[data-sheet-size-v320="xlarge"] .pam-game-canvas.pam-sheet-canvas-active-v320 {
    min-height: 860px !important;
}

.pam-game-song[data-sheet-size-v320="huge"] .pam-game-canvas.pam-sheet-canvas-active-v320 {
    min-height: 1020px !important;
}

@media (max-width: 900px) {
    .pam-game-song[data-sheet-size-v320="huge"] .pam-game-stage-wrap.pam-sheet-stage-active-v320,
    .pam-game-song[data-sheet-size-v320="huge"] .pam-game-canvas.pam-sheet-canvas-active-v320 {
        min-height: 850px !important;
    }
}


/* PRO 3.3.0: espacio configurable en partitura */
.pam-sheet-space-control-v330 {
    border: 1px solid rgba(201,164,76,.38);
    background: rgba(201,164,76,.10);
    border-radius: 14px;
    padding: 8px 10px;
    font-weight: 900;
}

.pam-sheet-space-control-v330 select {
    min-width: 118px;
    font-weight: 900;
}

/* Compacto: elimina el espacio muerto grande entre partitura y teclado */
.pam-game-song[data-sheet-space-v330="compact"][data-sheet-size-v320="normal"] .pam-game-stage-wrap.pam-sheet-stage-active-v320,
.pam-game-song[data-sheet-space-v330="compact"][data-sheet-size-v320="normal"] .pam-game-canvas.pam-sheet-canvas-active-v320 {
    min-height: 390px !important;
}

.pam-game-song[data-sheet-space-v330="compact"][data-sheet-size-v320="large"] .pam-game-stage-wrap.pam-sheet-stage-active-v320,
.pam-game-song[data-sheet-space-v330="compact"][data-sheet-size-v320="large"] .pam-game-canvas.pam-sheet-canvas-active-v320 {
    min-height: 450px !important;
}

.pam-game-song[data-sheet-space-v330="compact"][data-sheet-size-v320="xlarge"] .pam-game-stage-wrap.pam-sheet-stage-active-v320,
.pam-game-song[data-sheet-space-v330="compact"][data-sheet-size-v320="xlarge"] .pam-game-canvas.pam-sheet-canvas-active-v320 {
    min-height: 520px !important;
}

.pam-game-song[data-sheet-space-v330="compact"][data-sheet-size-v320="huge"] .pam-game-stage-wrap.pam-sheet-stage-active-v320,
.pam-game-song[data-sheet-space-v330="compact"][data-sheet-size-v320="huge"] .pam-game-canvas.pam-sheet-canvas-active-v320 {
    min-height: 610px !important;
}

/* Normal */
.pam-game-song[data-sheet-space-v330="balanced"][data-sheet-size-v320="normal"] .pam-game-stage-wrap.pam-sheet-stage-active-v320,
.pam-game-song[data-sheet-space-v330="balanced"][data-sheet-size-v320="normal"] .pam-game-canvas.pam-sheet-canvas-active-v320 {
    min-height: 520px !important;
}

.pam-game-song[data-sheet-space-v330="balanced"][data-sheet-size-v320="large"] .pam-game-stage-wrap.pam-sheet-stage-active-v320,
.pam-game-song[data-sheet-space-v330="balanced"][data-sheet-size-v320="large"] .pam-game-canvas.pam-sheet-canvas-active-v320 {
    min-height: 620px !important;
}

/* Amplio */
.pam-game-song[data-sheet-space-v330="tall"] .pam-game-stage-wrap.pam-sheet-stage-active-v320,
.pam-game-song[data-sheet-space-v330="tall"] .pam-game-canvas.pam-sheet-canvas-active-v320 {
    min-height: var(--pam-sheet-height-v330, 760px) !important;
}

/* En modo compacto se acerca más el teclado a la partitura */
.pam-game-song[data-sheet-space-v330="compact"] .pam-game-keyboard {
    margin-top: 4px !important;
}

@media (max-width: 900px) {
    .pam-game-song[data-sheet-space-v330="compact"][data-sheet-size-v320="huge"] .pam-game-stage-wrap.pam-sheet-stage-active-v320,
    .pam-game-song[data-sheet-space-v330="compact"][data-sheet-size-v320="huge"] .pam-game-canvas.pam-sheet-canvas-active-v320 {
        min-height: 540px !important;
    }
}

/* PRO 3.4.0: tienda de partituras */
.pam-score-uploader,.pam-score-shop{width:min(100vw - 24px,1600px)!important;max-width:min(100vw - 24px,1600px)!important;margin-left:50%!important;transform:translateX(-50%)!important;box-sizing:border-box!important}.pam-score-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0}.pam-score-form-grid label{display:grid;gap:7px;font-weight:900}.pam-score-form-grid input,.pam-score-form-grid select,.pam-score-form-grid textarea{width:100%;border:1px solid var(--pam-border);border-radius:14px;padding:12px 13px;font-family:inherit;font-weight:800;box-sizing:border-box}.pam-score-description-label{grid-column:1/-1}.pam-score-help{background:rgba(201,164,76,.10);border:1px solid rgba(201,164,76,.30);border-radius:18px;padding:16px 18px;margin:14px 0}.pam-score-save-status{margin-top:14px;font-weight:900}.pam-score-success{background:rgba(24,164,74,.12);color:#0c7d35;border:1px solid rgba(24,164,74,.24);border-radius:14px;padding:12px 14px}.pam-score-error{background:rgba(239,68,68,.12);color:#7f1d1d;border:1px solid rgba(239,68,68,.24);border-radius:14px;padding:12px 14px}.pam-score-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:18px;margin-top:22px}.pam-score-card{background:#fff;border:1px solid var(--pam-border);border-radius:22px;overflow:hidden;box-shadow:0 14px 32px rgba(17,17,17,.08);display:grid;grid-template-rows:190px 1fr}.pam-score-preview{background:linear-gradient(135deg,#121212,#3a2d12);display:flex;align-items:center;justify-content:center;overflow:hidden}.pam-score-preview img{width:100%;height:100%;object-fit:cover}.pam-score-pdf-preview{width:112px;height:140px;border-radius:14px;background:#fff;color:#111;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:1000;box-shadow:0 12px 28px rgba(0,0,0,.28)}.pam-score-info{padding:18px}.pam-score-info h3{margin:6px 0 8px;font-size:1.25rem}.pam-score-meta{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.pam-score-meta span{background:rgba(201,164,76,.13);border:1px solid rgba(201,164,76,.28);border-radius:999px;padding:7px 10px;font-size:.86rem;font-weight:900}.pam-score-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.pam-score-warning{display:block;background:rgba(239,68,68,.10);color:#7f1d1d;border:1px solid rgba(239,68,68,.20);border-radius:14px;padding:10px 12px;font-weight:900;margin-top:10px}.pam-score-practice-panels{margin-top:24px}.pam-score-practice-panel{margin-top:22px}.pam-score-practice-empty{background:rgba(17,17,17,.06);border:1px dashed rgba(17,17,17,.22);border-radius:18px;padding:18px;font-weight:900}@media(max-width:760px){.pam-score-form-grid{grid-template-columns:1fr}}


/* PRO 3.5.0: pago manual por WhatsApp */
.pam-manual-payment-checkout {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}

.pam-manual-payment-checkout span {
    background: rgba(37, 211, 102, .12);
    border: 1px solid rgba(37, 211, 102, .25);
    border-radius: 999px;
    padding: 6px 10px;
    font-weight: 900;
}

.pam-manual-payment-box {
    width: min(100%, 980px);
    margin: 24px auto;
    background: #fff;
    border: 1px solid rgba(17,17,17,.12);
    border-radius: 24px;
    padding: clamp(18px, 3vw, 30px);
    box-shadow: 0 16px 42px rgba(17,17,17,.10);
    box-sizing: border-box;
}

.pam-manual-payment-box h2 {
    margin: 6px 0 10px;
}

.pam-manual-payment-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 18px 0;
}

.pam-payment-account {
    border: 1px solid rgba(201,164,76,.32);
    background: rgba(201,164,76,.10);
    border-radius: 18px;
    padding: 15px;
    display: grid;
    gap: 5px;
}

.pam-payment-account span {
    color: rgba(17,17,17,.65);
    font-size: .84rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.pam-payment-account strong {
    font-size: 1.12rem;
    word-break: break-word;
}

.pam-payment-account small {
    font-weight: 800;
    color: rgba(17,17,17,.68);
}

.pam-manual-payment-note {
    background: rgba(17,17,17,.05);
    border-left: 4px solid #C9A44C;
    border-radius: 12px;
    padding: 12px 14px;
    margin: 14px 0;
}

.pam-whatsapp-receipt-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #25D366;
    color: #071b0e !important;
    border-radius: 999px;
    padding: 14px 20px;
    font-weight: 1000;
    text-decoration: none !important;
    box-shadow: 0 10px 24px rgba(37,211,102,.24);
}

.pam-whatsapp-receipt-button:hover {
    transform: translateY(-1px);
    filter: brightness(.97);
}

.pam-manual-payment-small {
    margin-top: 12px;
    font-size: .9rem;
    color: rgba(17,17,17,.66);
    font-weight: 700;
}

@media (max-width: 680px) {
    .pam-manual-payment-grid {
        grid-template-columns: 1fr;
    }

    .pam-whatsapp-receipt-button {
        width: 100%;
        box-sizing: border-box;
        text-align: center;
    }
}


/* PRO 3.6.0: subida estable de partituras */
.pam-score-uploader-v360 .pam-required {
    background: rgba(239,68,68,.12);
    color: #991b1b;
    border-radius: 999px;
    padding: 3px 7px;
    font-size: .72rem;
    font-weight: 1000;
}

.pam-score-uploader-v360 .pam-optional {
    background: rgba(17,17,17,.07);
    color: rgba(17,17,17,.72);
    border-radius: 999px;
    padding: 3px 7px;
    font-size: .72rem;
    font-weight: 1000;
}

.pam-score-uploader-v360 label small {
    display: block;
    color: rgba(17,17,17,.62);
    font-size: .82rem;
    line-height: 1.35;
}

.pam-score-form-v360[aria-busy="true"] .pam-score-submit-v360 {
    opacity: .68;
    pointer-events: none;
}

.pam-score-upload-wait-v360 {
    margin-top: 10px;
    font-weight: 900;
}

/* PRO 3.6.1: estado visible cuando una función opcional falla sin bloquear el resto */
.pam-score-save-status.pam-score-error {
    white-space: pre-wrap;
}
