    /* -------------------------------------------------------
       💫 AULAPAES PANEL 2.0 – STYLE V6.0
       by @janomaths — Inspirado en apps premium educativas
    -------------------------------------------------------- */
    
    @import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600;700&family=Poppins:wght@300;400;500&display=swap');
    
    /* Evita que el contenido sea visible antes de tiempo */
    body:not(.loaded) > *:not(.splash-screen) {
      opacity: 0;
      visibility: hidden;
    }
    
    body.loaded > *:not(.splash-screen) {
      visibility: visible;
      animation: contentFadeIn 0.6s ease forwards;
    }
    
    @keyframes contentFadeIn {
      from { opacity: 0; filter: blur(6px); transform: scale(0.98); }
      to { opacity: 1; filter: blur(0); transform: scale(1); }
    }
    
    /* Animación de salida del splash */
    .splash-screen.fade-out {
      animation: splashExit 0.8s ease forwards;
    }
    
    @keyframes splashExit {
      0% {
        opacity: 1;
        transform: scale(1);
        filter: blur(0);
      }
      100% {
        opacity: 0;
        transform: scale(1.1);
        filter: blur(10px);
      }
    }
    
    .splash-content {
      animation: fadeLogo 0.9s ease forwards;
    }
    @keyframes fadeLogo {
      from { opacity: 0; transform: translateY(10px); }
      to { opacity: 1; transform: translateY(0); }
    }

    
    * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }
    a { text-decoration: none; color: inherit; }
    button { border: none; background: none; cursor: pointer; }
    
    html {
      scroll-behavior: smooth;
    }
    
    /* ---------------- BODY ---------------- */
    body {
      font-family: 'Montserrat', sans-serif;
      background: #001233;
      color: #1a1a1a;
      transition: background 0.6s ease, color 0.6s ease;
      padding-bottom: 90px;
      overflow-x: hidden;
    }
    
    body.loaded {
      background: linear-gradient(180deg, #f9fbff 0%, #eef3ff 100%);
    }
    
    body.dark-mode {
      background: radial-gradient(circle at top, #0a0a0f 0%, #050507 100%);
      color: #f4f4f4;
    }
    
    /* ---------------- SPLASH ---------------- */
    .splash-screen {
      position: fixed;
      inset: 0;
      background: radial-gradient(circle at center, #007bff 0%, #001233 100%);
      display: flex;
      justify-content: center;
      align-items: center;
      flex-direction: column;
      z-index: 9999;
      animation: fadeInSplash 0.8s ease;
    }
    .splash-logo {
      font-family: 'Montserrat', sans-serif;
      font-size: 2.4em;
      font-weight: 700;
      color: #fff;
      letter-spacing: 1px;
    }
    .splash-logo span {
      color: #00bfff;
    }
    .splash-subtitle {
      font-family: 'Poppins', sans-serif;
      color: #d8e9ff;
      margin-top: 2px;
      font-size: 1em;
      font-weight: 300;
    }
    .loading-bar {
      width: 200px;
      height: 5px;
      background: rgba(255,255,255,0.2);
      border-radius: 8px;
      margin-top: 25px;
      overflow: hidden;
      position: relative;
    }
    .loading-bar span {
      position: absolute;
      left: 0;
      top: 0;
      height: 100%;
      width: 0%;
      background: linear-gradient(90deg, #fff, #00bfff);
      border-radius: 8px;
      animation: loadBar 2.8s ease forwards 0.2s;
    }
    @keyframes loadBar {
      to { width: 100%; }
    }

    @keyframes fadeInSplash {
      from { opacity: 0; transform: scale(0.9); }
      to { opacity: 1; transform: scale(1); }
    }
    .splash-screen.hide {
      opacity: 0;
      pointer-events: none;
      transform: scale(1.05);
      transition: all 0.7s ease;
    }
    
    /* ---------------- HEADER ---------------- */
    .jm-header {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 18px 24px;
      position: sticky;
      top: 0;
      background: rgba(255, 255, 255, 0.75);
      backdrop-filter: blur(15px);
      border-bottom: 1px solid rgba(0, 0, 0, 0.05);
      z-index: 200;
      transition: background 0.4s ease;
    }
    body.dark-mode .jm-header {
      background: rgba(15, 15, 25, 0.8);
      border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    }
    .jm-logo {
      display: flex;
      flex-direction: column;
      font-family: 'Montserrat', sans-serif;
      font-weight: 700;
      font-size: 1.7em;
      color: #1b1b1b;
      transition: transform 0.3s ease, color 0.4s ease;
    }
    .jm-logo span { color: #007bff; }
    .jm-logo:hover { transform: scale(1.05); color: #007bff; }
    .jm-subtitle {
      font-family: 'Poppins', sans-serif;
      font-weight: 300;
      font-size: 0.45em;
      color: #007bff;
      letter-spacing: 0.5px;
      margin-top: -5px;
      opacity: 0.8;
    }
    body.dark-mode .jm-logo { color: #fff; }
    body.dark-mode .jm-logo span { color: #6eaaff; }
    body.dark-mode .jm-subtitle { color: #8ab6ff; }
    
    #toggleTheme {
      font-size: 1.4em;
      color: #007bff;
      transition: transform 0.3s ease, color 0.4s ease;
    }
    #toggleTheme:hover {
      transform: rotate(20deg) scale(1.1);
      color: #005fcc;
    }
    
    /* ---------------- BIENVENIDA ---------------- */
    .welcome-message {
      text-align: center;
      margin: 25px 15px 10px;
      animation: fadeInStart 1s ease forwards;
    }
    .welcome-message h2 {
      font-family: 'Montserrat', sans-serif;
      font-size: 1.4em;
      color: #007bff;
      margin-bottom: 6px;
    }
    .welcome-message p {
      font-family: 'Poppins', sans-serif;
      color: #444;
      font-size: 0.95em;
      opacity: 0.8;
    }
    body.dark-mode .welcome-message p { color: #a5c9ff; }
    
    /* ---------------- BUSCADOR ---------------- */
    .search-box {
      position: relative;
      width: 90%;
      max-width: 460px;
      margin: 20px auto 15px;
      display: flex;
      align-items: center;
    }
    .search-box i {
      position: absolute;
      left: 18px;
      color: #007bff;
      font-size: 1.1em;
    }
    .search-box input {
      width: 100%;
      font-family: 'Poppins', sans-serif;
      padding: 12px 40px;
      border-radius: 30px;
      border: none;
      background: rgba(255, 255, 255, 0.95);
      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
      font-size: 15px;
      color: #333;
      transition: all 0.4s ease;
    }
    .search-box input:focus {
      box-shadow: 0 0 12px rgba(0, 123, 255, 0.4);
      outline: none;
    }
    .search-box button {
      position: absolute;
      right: 15px;
      font-size: 1.1em;
      color: #aaa;
      cursor: pointer;
      display: none;
      transition: color 0.3s ease;
    }
    .search-box button:hover { color: #007bff; }
    body.dark-mode .search-box input {
      background: rgba(255, 255, 255, 0.05);
      color: #fff;
      box-shadow: 0 0 10px rgba(0, 123, 255, 0.1);
    }
    body.dark-mode .search-box i { color: #5a9cff; }
    
    /* ---------------- FRASES MOTIVACIONALES ---------------- */
    .jm-message {
      text-align: center;
      font-family: 'Poppins', sans-serif;
      font-weight: 400;
      font-size: 0.95em;
      color: #444;
      margin-bottom: 25px;
      transition: opacity 0.5s ease, color 0.5s ease;
      opacity: 0;
      animation: fadeInStart 1.2s ease forwards;
    }
    @keyframes fadeInStart {
      from { opacity: 0; transform: translateY(10px); }
      to { opacity: 1; transform: translateY(0); }
    }
    body.dark-mode .jm-message { color: #a5c9ff; }
    #dailyMessage {
      transition: opacity 0.5s ease, transform 0.3s ease;
    }
    #dailyMessage:hover {
      transform: scale(1.03);
      color: #007bff;
    }
    body.dark-mode #dailyMessage:hover { color: #8ab6ff; }
    
    /* ---------------- GRID PRINCIPAL ---------------- */
    .jm-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
      gap: 20px;
      padding: 0 20px 100px;
      max-width: 900px;
      margin: 0 auto;
    }
    .jm-card {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      border-radius: 18px;
      background: rgba(255, 255, 255, 0.95);
      box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
      padding: 28px 10px;
      color: #222;
      transition: all 0.4s ease;
      opacity: 0;
      position: relative;
      overflow: hidden;
      transform-style: preserve-3d;
      perspective: 800px;
    }
    .jm-card h3 {
      font-size: 15px;
      font-weight: 600;
      margin-top: 8px;
    }
    .jm-card i {
      font-size: 1.8em;
      color: #007bff;
      margin-bottom: 6px;
      transition: transform 0.4s ease;
    }
    .jm-card:hover {
      transform: translateY(-6px) rotateX(3deg) rotateY(-3deg);
      box-shadow: 0 10px 25px rgba(0, 123, 255, 0.25);
    }
    .jm-card:hover i { transform: scale(1.2) rotate(8deg); }
    .jm-card::before {
      content: "";
      position: absolute;
      width: 180%;
      height: 180%;
      background: conic-gradient(from 180deg, #007bff, #00bfff, #6f00ff, #007bff);
      top: -40%;
      left: -40%;
      animation: rotateGlow 6s linear infinite;
      opacity: 0;
      transition: opacity 0.4s ease;
      z-index: 0;
    }
    .jm-card:hover::before { opacity: 0.2; }
    @keyframes rotateGlow { to { transform: rotate(360deg); } }
    .jm-card > * { position: relative; z-index: 2; }
    
    body.dark-mode .jm-card {
      background: rgba(255, 255, 255, 0.05);
      border: 1px solid rgba(255, 255, 255, 0.08);
      color: #fff;
      box-shadow: 0 4px 15px rgba(0, 123, 255, 0.15);
    }
    body.dark-mode .jm-card i { color: #5a9cff; }
    
    /* ---------------- DOCK INFERIOR ---------------- */
    .app-panel {
      position: fixed;
      bottom: 0;
      left: 0;
      width: 100%;
      background: rgba(0, 123, 255, 0.9);
      backdrop-filter: blur(10px);
      display: flex;
      justify-content: space-around;
      align-items: center;
      padding: 8px 0;
      box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.25);
      z-index: 1000;
      border-top: 1px solid rgba(255, 255, 255, 0.2);
    }
    body.dark-mode .app-panel {
      background: rgba(15, 15, 25, 0.9);
    }
    .app-button {
      font-family: 'Montserrat', sans-serif;
      display: flex;
      flex-direction: column;
      align-items: center;
      background: none;
      color: #fff;
      font-size: 12px;
      font-weight: 600;
      cursor: pointer;
      transition: transform 0.25s ease, color 0.3s ease;
    }
    .app-button i {
      font-size: 22px;
      margin-bottom: 5px;
      transition: transform 0.3s ease;
    }
    .app-button:hover {
      transform: scale(1.15);
      color: #e0f3ff;
    }
    .app-button:active i {
      transform: scale(1);
    }
    
    /* Botón central */
    .main-button {
      background: linear-gradient(135deg, #007bff, #00bfff);
      color: #fff;
      border-radius: 50%;
      width: 60px;
      height: 60px;
      font-size: 1.6em;
      display: flex;
      justify-content: center;
      align-items: center;
      box-shadow: 0 0 20px rgba(0, 123, 255, 0.5);
      animation: pulseBtn 2.5s infinite;
      border: 2px solid rgba(255,255,255,0.2);
      transform: translateY(-20px);
    }
    @keyframes pulseBtn {
      0%,100% { box-shadow: 0 0 15px rgba(0,123,255,0.4); }
      50% { box-shadow: 0 0 25px rgba(0,123,255,0.7); }
    }
    .main-button:hover {
      transform: translateY(-22px) scale(1.05);
    }
    
    /* ---------------- ANIMACIONES ---------------- */
    .fade-in { animation: fadeUp 0.6s ease forwards; }
    @keyframes fadeUp {
      from { opacity: 0; transform: translateY(25px); }
      to { opacity: 1; transform: translateY(0); }
    }
    
    /* ---------------- RESPONSIVE ---------------- */
    @media (max-width: 600px) {
      .jm-header {
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        padding: 20px 28px;
      }
    
      .jm-logo {
        font-size: 1.86em;
        align-items: flex-start;
      }
    
      .jm-subtitle {
        font-size: 0.48em;
        margin-top: -4px;
      }
    
      #toggleTheme {
        font-size: 1.8em;
      }
    
      .jm-card {
        padding: 24px 8px;
        border-radius: 20px;
      }
    
      .jm-card i {
        font-size: 1.6em;
      }
    
      .jm-message {
        font-size: 0.9em;
        padding: 0 12px;
      }
    }
    
    
