        body.sepia-theme .nav-bar {
            background: rgba(232, 222, 184, 0.9) !important;
            border-bottom: 1px solid rgba(140, 123, 100, 0.2) !important;
        }
        body.sepia-theme .sidebar {
            background: #eae0c8 !important;
            border-right: 1px solid rgba(140, 123, 100, 0.2) !important;
        }
        body.sunset-theme .nav-bar { background: rgba(252, 236, 227, 0.9) !important; border-bottom: 1px solid rgba(166, 116, 104, 0.2) !important; }
        body.sunset-theme .sidebar { background: var(--paper-dark) !important; border-right: 1px solid rgba(166, 116, 104, 0.2) !important; }
        
        /* Cyberpunk Theme */
        body.cyberpunk-theme {
            --ink: #e0fbfc;
            --paper: #0b0c10;
            --paper-dark: #1f2833;
            --muted: #66fcf1;
            --gold: #c5c6c7;
            background-color: var(--paper) !important;
            color: var(--ink) !important;
        }
        body.cyberpunk-theme .nav-bar { background: rgba(11, 12, 16, 0.9) !important; border-bottom: 1px solid rgba(102, 252, 241, 0.2) !important; }
        body.cyberpunk-theme .sidebar { background: var(--paper-dark) !important; border-right: 1px solid rgba(102, 252, 241, 0.2) !important; }
        
        /* Forest Theme */
        body.forest-theme {
            --ink: #f1f8f5;
            --paper: #162c24;
            --paper-dark: #1b382d;
            --muted: #8eb3a2;
            --gold: #d4af37;
            background-color: var(--paper) !important;
            color: var(--ink) !important;
        }
        body.forest-theme .nav-bar { background: rgba(22, 44, 36, 0.9) !important; border-bottom: 1px solid rgba(142, 179, 162, 0.2) !important; }
        body.forest-theme .sidebar { background: var(--paper-dark) !important; border-right: 1px solid rgba(142, 179, 162, 0.2) !important; }
        
        /* Deep Sea Theme */
        body.deepsea-theme {
            --ink: #e6f1f5;
            --paper: #0a1128;
            --paper-dark: #121e42;
            --muted: #5e7ba1;
            --gold: #00b4d8;
            background-color: var(--paper) !important;
            color: var(--ink) !important;
        }
        body.deepsea-theme .nav-bar { background: rgba(10, 17, 40, 0.9) !important; border-bottom: 1px solid rgba(94, 123, 161, 0.2) !important; }
        body.deepsea-theme .sidebar { background: var(--paper-dark) !important; border-right: 1px solid rgba(94, 123, 161, 0.2) !important; }
        
        /* Lavender Theme */
        body.lavender-theme {
            --ink: #2c223a;
            --paper: #f4f0fa;
            --paper-dark: #e8e0f5;
            --muted: #85729e;
            --gold: #b392d4;
            background-color: var(--paper) !important;
            color: var(--ink) !important;
        }
        body.lavender-theme .nav-bar { background: rgba(244, 240, 250, 0.9) !important; border-bottom: 1px solid rgba(133, 114, 158, 0.2) !important; }
        body.lavender-theme .sidebar { background: var(--paper-dark) !important; border-right: 1px solid rgba(133, 114, 158, 0.2) !important; }

        /* Matcha Theme */
        body.matcha-theme {
            --ink: #223626;
            --paper: #f2f7f3;
            --paper-dark: #e1ede4;
            --muted: #6f9c7a;
            --gold: #8fbc99;
            background-color: var(--paper) !important;
            color: var(--ink) !important;
        }
        body.matcha-theme .nav-bar { background: rgba(242, 247, 243, 0.9) !important; border-bottom: 1px solid rgba(111, 156, 122, 0.2) !important; }
        body.matcha-theme .sidebar { background: var(--paper-dark) !important; border-right: 1px solid rgba(111, 156, 122, 0.2) !important; }

        /* Sakura Theme */
        body.sakura-theme {
            --ink: #3b2024;
            --paper: #fdf5f6;
            --paper-dark: #f9e6e8;
            --muted: #a87980;
            --gold: #d49a9e;
            background-color: var(--paper) !important;
            color: var(--ink) !important;
        }
        body.sakura-theme .nav-bar { background: rgba(253, 245, 246, 0.9) !important; border-bottom: 1px solid rgba(168, 121, 128, 0.2) !important; }
        body.sakura-theme .sidebar { background: var(--paper-dark) !important; border-right: 1px solid rgba(168, 121, 128, 0.2) !important; }

        /* Sky Theme */
        body.sky-theme {
            --ink: #1e293b;
            --paper: #f0f7fa;
            --paper-dark: #e1eff5;
            --muted: #648da3;
            --gold: #82b6d1;
            background-color: var(--paper) !important;
            color: var(--ink) !important;
        }
        body.sky-theme .nav-bar { background: rgba(240, 247, 250, 0.9) !important; border-bottom: 1px solid rgba(100, 141, 163, 0.2) !important; }
        body.sky-theme .sidebar { background: var(--paper-dark) !important; border-right: 1px solid rgba(100, 141, 163, 0.2) !important; }
        
        body.font-dyslexic {
            font-family: 'Comic Sans MS', 'OpenDyslexic', 'Trebuchet MS', sans-serif !important;
        }
        body.font-modern { font-family: var(--sans) !important; }
        body.font-playfair { font-family: 'Playfair Display', serif !important; }
        body.font-lora { font-family: 'Lora', serif !important; }
        body.font-cormorant { font-family: 'Cormorant Garamond', serif !important; }
        
        body.font-inter { font-family: 'Inter', sans-serif !important; }
        body.font-outfit { font-family: 'Outfit', sans-serif !important; }
        body.font-dmserif { font-family: 'DM Serif Display', serif !important; }
        body.font-baskerville { font-family: 'Libre Baskerville', serif !important; }
        body.spacing-relaxed p {
            line-height: 2.2 !important;
            font-size: 1.15rem !important;
        }
        body.focus-active .sidebar { display: none !important; }
        body.focus-active .nav-bar { opacity: 0.2; transition: opacity 0.3s; }
        body.focus-active .nav-bar:hover { opacity: 1; }
        body.focus-active .main-content { max-width: 900px; margin: 0 auto; }
        body {
            background-color: var(--paper);
            color: var(--ink);
            font-family: var(--serif);
            font-size: 20px;
            line-height: 1.8;
            margin: 0;
            padding: 0;
            display: flex;
            flex-direction: column;
            min-height: 100vh;
            overflow-x: hidden;
            width: 100%;
            position: relative;
        }
        h1 { font-size: 3rem; line-height: 1.2; margin-bottom: 1rem; color: var(--ink); text-align: center; }
        h2 { font-size: 2rem; margin-top: 4rem; margin-bottom: 1.5rem; color: var(--ink); border-bottom: 1px solid var(--gold); padding-bottom: 0.5rem; }
        h3 { font-size: 1.5rem; margin-top: 2.5rem; margin-bottom: 1rem; color: var(--ink); }
        p { margin-bottom: 1.5rem; text-align: justify; }
        
        /* Ajustes globales de fix */
        .tu-espejo-container, .tu-espejo-container * {
            box-sizing: border-box;
        }

        /* Diccionario Lean */
        .lean-term {
            border-bottom: 2px dashed var(--gold);
            cursor: pointer;
            position: relative;
            color: var(--ink);
            font-weight: 600;
        }
        .lean-term:hover {
            background: rgba(184, 151, 90, 0.15);
        }
        .lean-tooltip {
            position: fixed;
            bottom: -100%; left: 0; width: 100%;
            background: var(--paper-dark);
            border-top: 2px solid var(--gold);
            box-shadow: 0 -10px 40px rgba(0,0,0,0.2);
            padding: 1.5rem;
            z-index: 5000;
            transition: bottom 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
            font-family: var(--sans);
            box-sizing: border-box;
        }
        .lean-tooltip.active {
            bottom: 0;
        }
        .lean-tooltip-title {
            font-family: var(--serif); color: var(--gold); font-size: 1.5rem; margin-top: 0; margin-bottom: 0.5rem;
        }
        .lean-tooltip-desc {
            color: var(--muted); font-size: 0.95rem; margin-bottom: 1rem; line-height: 1.5;
        }
        .lean-tooltip-close {
            position: absolute; top: 1rem; right: 1rem; background: none; border: none; font-size: 1.5rem; color: var(--ink); cursor: pointer;
        }
        
        /* Selector de Velocidad */
        .btn-speed {
            flex: 1; background: #222; color: #888; border: 1px solid #333; padding: 0.6rem; border-radius: 4px; cursor: pointer; font-family: var(--mono); font-weight: bold; transition: all 0.2s;
        }
        .btn-speed.active {
            background: var(--gold); color: var(--ink); border-color: var(--gold);
        }

        .nav-bar {
            padding: 1rem 2rem;
            background: rgba(244, 240, 232, 0.7);
            backdrop-filter: blur(12px);
            -webkit-backdrop-filter: blur(12px);
            border-bottom: 1px solid rgba(14, 13, 11, 0.1);
            position: sticky;
            top: 0;
            z-index: 100;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        .nav-bar a.back-link {
            font-family: var(--mono);
            font-size: 0.8rem;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            color: var(--muted);
            text-decoration: none;
            transition: color 0.2s;
            display: flex; align-items: center; gap: 0.5rem;
        }
        .nav-bar a.back-link:hover { color: var(--ink); }
        
        .nav-actions {
            display: flex; gap: 1rem; align-items: center;
        }
        .icon-btn {
            background: none; border: 1px solid var(--muted); color: var(--ink); 
            padding: 0.4rem 0.8rem; border-radius: 20px; font-family: var(--mono); 
            font-size: 0.7rem; cursor: pointer; transition: all 0.2s;
            display: flex; align-items: center; gap: 0.4rem; white-space: nowrap;
        }
        .icon-btn:hover { background: rgba(14,13,11,0.05); }

        .menu-toggle {
            display: none;
            background: none;
            border: none;
            cursor: pointer;
            color: var(--ink);
            padding: 0.5rem;
        }
        .menu-toggle svg { width: 24px; height: 24px; }

        .app-layout {
            display: flex;
            flex: 1;
        }
        .sidebar-backdrop {
            display: none;
        }
        .sidebar {
            width: 320px;
            background: var(--paper-dark);
            border-right: 1px solid rgba(14, 13, 11, 0.1);
            padding: 2rem 1.5rem;
            position: sticky;
            top: 56px;
            height: calc(100vh - 56px);
            overflow-y: auto;
            flex-shrink: 0;
            transition: transform 0.3s ease;
        }
        .sidebar-title {
            font-family: var(--mono);
            font-size: 0.8rem;
            text-transform: uppercase;
            letter-spacing: 0.2em;
            color: var(--gold);
            margin-bottom: 1.5rem;
        }
        .sidebar-link {
            display: block;
            font-family: var(--serif);
            font-size: 1.1rem;
            color: var(--ink);
            text-decoration: none;
            padding: 0.6rem 0;
            border-bottom: 1px solid rgba(14, 13, 11, 0.05);
            transition: color 0.2s, background 0.2s;
        }
        .sidebar-link:hover, .sidebar-link.active {
            color: var(--gold);
            font-weight: 600;
        }
        .main-content {
            flex: 1;
            padding: 2rem 4rem;
            max-width: 900px;
            margin: 0 auto;
        }
        .modulo-content {
            display: none;
        }
        .modulo-content.active {
            display: block;
            animation: fadeIn 0.4s ease forwards;
        }
        .modulo-content h1, .modulo-content h2, .modulo-content h3, .modulo-content h4 {
            text-align: justify;
            text-justify: inter-word;
            line-height: 1.35;
        }
        .hl-yellow { background-color: rgba(255, 235, 59, 0.4); border-radius: 3px; }
        .hl-green { background-color: rgba(76, 175, 80, 0.4); border-radius: 3px; }
        .hl-red { background-color: rgba(244, 67, 54, 0.4); border-radius: 3px; }
        .hl-blue { background-color: rgba(33, 150, 243, 0.4); border-radius: 3px; }
        .hl-btn-color {
            width: 24px !important; height: 24px !important; border-radius: 50% !important; padding: 0 !important; cursor: pointer; border: 2px solid transparent !important; transition: transform 0.2s; flex-shrink:0;
        }
        .hl-btn-color:hover { transform: scale(1.2); border-color: white !important; }
        .hl-btn-yellow { background-color: #ffeb3b !important; }
        .hl-btn-green { background-color: #4caf50 !important; }
        .hl-btn-red { background-color: #f44336 !important; }
        .hl-btn-blue { background-color: #2196f3 !important; }
        .highlight-menu {
            position: absolute;
            display: none;
            background: rgba(20, 20, 20, 0.85);
            backdrop-filter: blur(10px);
            -webkit-backdrop-filter: blur(10px);
            border-radius: 20px;
            box-shadow: 0 8px 32px rgba(0,0,0,0.3);
            padding: 0.3rem 0.5rem;
            z-index: 1000;
            transform: translateX(-50%);
            white-space: nowrap;
            align-items: center;
            gap: 0.2rem;
        }
        .highlight-menu button {
            background: none;
            border: none;
            color: #fff;
            font-family: var(--mono);
            font-size: 0.75rem;
            text-transform: uppercase;
            letter-spacing: 0.05em;
            cursor: pointer;
            padding: 0.5rem 0.8rem;
            border-radius: 15px;
            transition: all 0.2s;
            display: flex;
            align-items: center;
            gap: 0.4rem;
        }
        .highlight-menu button:hover {
            background: rgba(255,255,255,0.15);
        }
        @keyframes fadeIn {
            from { opacity: 0; transform: translateY(10px); }
            to { opacity: 1; transform: translateY(0); }
        }
        @media(max-width: 900px) {
            .app-layout { flex-direction: column; }
            .menu-toggle { display: block; }
            .sidebar {
                position: fixed;
                top: 0;
                left: 0;
                width: 280px;
                height: 100vh;
                z-index: 200;
                transform: translateX(-100%);
                border-right: 1px solid rgba(14, 13, 11, 0.1);
                padding-top: 2rem;
            }
            .sidebar.open { transform: translateX(0); }
            .sidebar-backdrop {
                display: none;
                position: fixed;
                top: 0;
                left: 0;
                right: 0;
                bottom: 0;
                background: rgba(14, 13, 11, 0.5);
                z-index: 150;
                opacity: 0;
                transition: opacity 0.3s ease;
            }
            .sidebar-backdrop.open { display: block; opacity: 1; }
            .main-content { padding: 2rem 1.5rem; padding-bottom: 100px; }
            
            /* Responsive Canvas (Movido aquí para cubrir tablets y teléfonos grandes) */
            .canvas-grid { display: block !important; padding: 10px; }
            .cb-problem, .cb-solution, .cb-metrics, .cb-value, .cb-advantage, .cb-channels, .cb-segments, .cb-costs, .cb-revenue {
                display: block !important;
                width: auto !important;
                margin-bottom: 15px;
            }
        }
        @media(max-width: 600px) {
            .nav-bar {
                padding: 0.5rem 0.5rem;
                background: rgba(20, 20, 20, 0.95);
                border-bottom: 1px solid rgba(255, 255, 255, 0.1);
                flex-direction: column;
                align-items: flex-start;
                gap: 0.5rem;
                height: auto;
            }
            .nav-bar a.back-link {
                margin-left: 0.5rem;
                margin-bottom: 0.2rem;
            }
            .nav-actions {
                display: flex;
                width: 100%;
                justify-content: flex-start;
                align-items: center;
                overflow-x: auto;
                -webkit-overflow-scrolling: touch;
                gap: 0.6rem;
                padding-bottom: 8px;
                padding-top: 4px;
                position: static;
                background: transparent;
                border: none;
                box-shadow: none;
                scrollbar-width: none; /* Firefox */
            }
            .nav-actions::-webkit-scrollbar { display: none; /* Chrome/Safari */ }
            .nav-actions button, .nav-actions .menu-toggle {
                display: flex !important;
                flex-direction: row !important;
                align-items: center !important;
                justify-content: center !important;
                padding: 0.4rem 0.8rem !important;
                border: 1px solid var(--muted) !important;
                background: var(--paper-dark) !important;
                border-radius: 20px !important;
                gap: 0.4rem !important;
                box-shadow: none !important;
                min-width: max-content;
                flex-shrink: 0;
            }
            .nav-actions button i, .nav-actions .menu-toggle i {
                width: 16px !important;
                height: 16px !important;
            }
            .hide-mobile {
                display: inline !important;
                font-size: 11px !important;
                line-height: 1;
                font-family: var(--mono);
                text-transform: capitalize;
                white-space: nowrap;
            }
            #mezclador-audio {
                width: 90% !important;
                padding: 1.5rem !important;
            }
            .mezclador-controles { display: none !important; }
            .mezclador-mobile-msg { display: block !important; }
            body { font-size: 18px; }
            
            .pdf-iframe { display: none !important; }
            .pdf-mobile-fallback { display: block !important; }
        }
        .pdf-mobile-fallback { display: none; }
        .hide-mobile { display: inline; }
        
        .focus-btn {
            background: transparent;
            border: 1px solid var(--muted);
            color: var(--ink);
            padding: 0.4rem 0.8rem;
            border-radius: 20px;
            font-family: var(--mono);
            font-size: 0.7rem;
            cursor: pointer;
            transition: all 0.3s ease;
            white-space: nowrap;
            display: flex; align-items: center; gap: 0.4rem;
        }
        .focus-btn.active {
            background: var(--gold);
            border-color: var(--gold);
            color: var(--ink);
            box-shadow: 0 0 15px rgba(184, 151, 90, 0.6);
            transform: scale(1.02);
        }
        .canvas-grid {
            display: grid;
            grid-template-columns: repeat(5, 1fr);
            grid-template-rows: repeat(2, 1fr) auto;
            gap: 10px;
            background: var(--paper-dark);
            padding: 15px;
            border-radius: 8px;
            min-height: 70vh;
        }
        .canvas-block {
            background: #fff;
            border: 1px solid var(--muted);
            border-radius: 4px;
            padding: 15px;
            overflow-y: auto;
        }
        .canvas-block h3 {
            margin-top: 0;
            font-family: var(--mono);
            font-size: 0.8rem;
            text-transform: uppercase;
            color: var(--gold);
            border-bottom: 1px solid #eee;
            padding-bottom: 5px;
            margin-bottom: 10px;
        }
        /* Grid Placement */
        .cb-problem { grid-column: 1; grid-row: 1 / span 2; }
        .cb-solution { grid-column: 2; grid-row: 1; }
        .cb-metrics { grid-column: 2; grid-row: 2; }
        .cb-value { grid-column: 3; grid-row: 1 / span 2; }
        .cb-advantage { grid-column: 4; grid-row: 1; }
        .cb-channels { grid-column: 4; grid-row: 2; }
        .cb-segments { grid-column: 5; grid-row: 1 / span 2; }
        .cb-costs { grid-column: 1 / span 2; grid-row: 3; }
        .cb-revenue { grid-column: 3 / span 3; grid-row: 3; }

        @media print {
            body { background: white; color: black; }
            .nav-bar, .sidebar, .sidebar-backdrop, #highlight-menu, #progress-container, .print-hide { display: none !important; }
            .app-layout { display: block; }
            .main-content { padding: 0; margin: 0; }
            .canvas-grid { background: white; border: 2px solid black; }
            .canvas-block { border: 1px solid black; background: white; }
            @page { size: landscape; margin: 1cm; }
        }

        .ai-body {
            flex: 1; padding: 1rem; overflow-y: auto;
            font-size: 0.9rem; line-height: 1.5;
        }
        .ai-footer {
            padding: 1rem; background: var(--paper-dark);
            border-top: 1px solid var(--muted);
            display: flex; gap: 0.5rem;
        }
        .ai-footer input {
            flex: 1; padding: 0.5rem; border: 1px solid var(--muted); border-radius: 4px; font-family: var(--serif);
        }
        .ai-footer button {
            background: var(--gold); color: var(--ink); border: none; padding: 0.5rem 1rem; border-radius: 4px; cursor: pointer; font-weight: bold; font-family: var(--mono);
        }
        .ai-message { margin-bottom: 1rem; padding: 0.8rem; border-radius: 8px; }
        .ai-message.user { background: rgba(184, 151, 90, 0.1); border: 1px solid var(--gold); }
        .ai-message.bot { background: rgba(14, 13, 11, 0.05); border: 1px solid var(--muted); }
        .ai-context { font-size: 0.8rem; font-style: italic; color: var(--muted); margin-bottom: 0.5rem; border-left: 2px solid var(--gold); padding-left: 0.5rem; }
        
        /* Modal Configuración IA */
        .ai-settings-modal {
            display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%;
            background: rgba(0,0,0,0.8); z-index: 3000; justify-content: center; align-items: center;
        }
        .ai-settings-modal.active { display: flex; }
        .ai-settings-content {
            background: var(--paper); padding: 2rem; border-radius: 8px; max-width: 400px; width: 90%;
        }
        .ai-settings-content input { width: 100%; padding: 0.5rem; margin: 1rem 0; border: 1px solid var(--muted); border-radius: 4px; font-family: var(--mono); }

/* Fix for audio players overflowing on mobile */
div[style*="background: #061118"] {
    max-width: 100%;
    box-sizing: border-box;
}
div[style*="background: #061118"] > div[style*="flex-grow: 1"] {
    min-width: 50px !important;
}
div[style*="background: #061118"] canvas {
    max-width: 100% !important;
}
@media (max-width: 600px) {
    div[style*="background: #061118"] {
        gap: 0.3rem !important;
        padding: 0.8rem 0.5rem !important;
        flex-wrap: wrap !important;
        justify-content: center !important;
    }
    div[style*="background: #061118"] > button[style*="width: 50px"] {
        width: 35px !important;
        height: 35px !important;
    }
    div[style*="background: #061118"] > button svg {
        width: 16px !important;
        height: 16px !important;
    }
    div[style*="background: #061118"] > div[style*="min-width: 40px"] {
        min-width: auto !important;
        font-size: 0.75rem !important;
    }
    h2 { font-size: 1.5rem; margin-top: 2rem; }
    
    .btn-reel, .pdf-mobile-fallback a {
        width: 100% !important;
        justify-content: center !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        box-sizing: border-box !important;
    }
}