:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;color:#1f2933;background-color:#f3f4f7;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;display:block;background:radial-gradient(circle at top,#e5f0ff 0,#f3f4f7 55%,#e5e7eb)}#app{width:100%;max-width:none;padding:0}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem}.home,.question{width:100%;min-height:100vh}.home{border-radius:0;overflow:hidden;background:linear-gradient(180deg,#3f51b5,#5c6bc0);box-shadow:0 18px 45px #0f172a1f;color:#fff}.home-topbar{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.25rem}.home-topbar-title{font-weight:800;letter-spacing:.08em}.home-topbar-actions{display:flex;align-items:center;gap:.75rem}.home-topbar-user{font-size:.85rem;opacity:.9}.home-main{padding:1.75rem 1.5rem 2rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.75rem;text-align:center}.home-buttons{width:100%;display:flex;flex-direction:column;gap:1rem}.home-button{width:100%;height:60px;border-radius:999px;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.75rem;font-size:1.05rem;font-weight:700;color:#fff;box-shadow:0 12px 28px #0f172a38;transition:transform .12s ease,box-shadow .12s ease,filter .12s ease}.home-button:hover{transform:translateY(-1px);box-shadow:0 16px 34px #0f172a42}.home-button:active{transform:translateY(0);box-shadow:0 10px 22px #0f172a38}.home-button-continue{background:linear-gradient(135deg,#43a047,#2e7d32)}.home-button-stats{background:linear-gradient(135deg,#9c27b0,#6a1b9a)}.home-button-icon{font-size:1.15rem}.home-logo{width:120px;height:120px;border-radius:999px;display:grid;place-items:center;background-color:#ffffff2e;border:2px solid rgba(255,255,255,.22)}.home-logo-inner{width:84px;height:84px;border-radius:999px;display:grid;place-items:center;background-color:#11182759;font-size:2rem}.home-welcome{font-size:1.6rem;font-weight:300}.home-brand{font-size:2.15rem;font-weight:900}.home-subtitle{margin-top:.75rem;font-size:.98rem;opacity:.92;line-height:1.45}.login-container{background-color:#fff;border-radius:18px;padding:2.5rem 2.25rem 2rem;box-shadow:0 18px 45px #0f172a1f}.login-container h1{margin:0 0 .25rem;font-size:2.2rem;font-weight:700;text-align:center;color:#111827}.login-container h2{margin:0 0 1.75rem;font-size:1.1rem;font-weight:600;text-align:center;color:#6b7280}.google-login-button{width:100%;border-radius:999px;border:1px solid #d1d5db;padding:.75rem 1.2rem;font-size:.98rem;font-weight:600;font-family:inherit;background-color:#fff;color:#111827;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background-color .12s ease,border-color .12s ease}.google-login-button:hover{background-color:#f9fafb;border-color:#cbd5e1;transform:translateY(-1px);box-shadow:0 10px 22px #0f172a1f}.google-login-button:active{transform:translateY(0);box-shadow:0 6px 14px #0f172a1a}.google-login-button:disabled{opacity:.65;cursor:default;box-shadow:none}.login-divider{position:relative;margin:1.25rem 0;text-align:center;color:#9ca3af}.login-divider:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background-color:#e5e7eb}.login-divider span{position:relative;display:inline-block;padding:0 .65rem;font-size:.85rem;font-weight:600;background-color:#fff}form{display:flex;flex-direction:column;gap:1.1rem}label{font-size:.9rem;font-weight:600;color:#374151}input[type=email],input[type=password]{margin-top:.25rem;width:100%;padding:.7rem .9rem;border-radius:10px;border:1px solid #d1d5db;font-size:.95rem;font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}input[type=email]:focus,input[type=password]:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb29;background-color:#f9fafb}button[type=submit]{margin-top:.5rem;width:100%;border-radius:999px;border:none;padding:.8rem 1.2rem;font-size:.98rem;font-weight:600;font-family:inherit;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;cursor:pointer;box-shadow:0 12px 25px #2563eb66;transition:transform .12s ease,box-shadow .12s ease,background .12s ease,opacity .12s ease}button[type=submit]:hover{background:linear-gradient(135deg,#1d4ed8,#1e40af);transform:translateY(-1px);box-shadow:0 16px 30px #2563eb73}button[type=submit]:active{transform:translateY(0);box-shadow:0 8px 18px #2563eb59}button[type=submit]:disabled{opacity:.65;cursor:default;box-shadow:none}.status{margin-top:1rem;font-size:.9rem;text-align:center;min-height:1.2rem}.status.success{color:#16a34a}.status.error{color:#dc2626}.user-card{margin-top:1.25rem;padding:1.25rem 1.1rem 1.1rem;border-radius:14px;background-color:#f9fafb;border:1px solid #e5e7eb}.user-card h3{margin:0 0 .25rem;font-size:1.05rem;font-weight:700;color:#111827}.user-meta{margin:0 0 .75rem;font-size:.85rem;color:#6b7280}.user-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.user-stats .label{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:#9ca3af;margin-bottom:.15rem}.user-stats .value{display:block;font-size:.95rem;font-weight:600;color:#111827}.dashboard{width:100%;max-width:none;margin:0;padding:2rem 2.25rem 2.25rem;border-radius:0;min-height:100vh;background-color:#fff;box-shadow:0 18px 45px #0f172a1f}.page-shell{width:100%;min-height:100vh;padding:1.5rem}.dashboard-header{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin-bottom:2rem}.dashboard-kicker{margin:0 0 .15rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;color:#6b7280}.dashboard-header h1{margin:0 0 .4rem;font-size:1.7rem;font-weight:700;color:#111827}.dashboard-subtitle{margin:0;font-size:.95rem;color:#6b7280}.dashboard-user{display:flex;flex-direction:column;align-items:flex-end;gap:.35rem}.dashboard-user-email{font-size:.9rem;color:#4b5563}.logout-button{border-radius:999px;border:1px solid #d1d5db;background-color:#fff;padding:.45rem .9rem;font-size:.85rem;font-weight:500;color:#374151;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}.home .logout-button{border-color:#ffffff73;background-color:#ffffff1f;color:#fff}.home .logout-button:hover{background-color:#ffffff2e;border-color:#ffffff8c}.dashboard-back{border:1px solid #d1d5db;background-color:#fff;border-radius:999px;padding:.35rem .8rem;font-size:.85rem;font-weight:600;color:#2563eb;cursor:pointer;margin-bottom:.75rem}.dashboard-back:hover{background-color:#eff6ff;border-color:#bfdbfe}.question{border-radius:0;overflow:hidden;background:#f3f4f7;box-shadow:0 18px 45px #0f172a1f}.question-topbar{display:flex;align-items:center;gap:.75rem;padding:.85rem;background-color:#f8fafc;border-bottom:1px solid #e5e7eb}.question-topbar-spacer{flex:1}.question-icon-button{width:40px;height:40px;border-radius:999px;border:1px solid #e5e7eb;background-color:#fff;color:#2563eb;font-weight:800;cursor:pointer;transition:background-color .12s ease,border-color .12s ease,transform .12s ease}.question-icon-button:disabled{opacity:.45;cursor:default}.question-icon-button:hover:not(:disabled){background-color:#eff6ff;border-color:#bfdbfe;transform:translateY(-1px)}.question-next{border:none;border-radius:999px;padding:.6rem .95rem;background-color:#22c55e;color:#fff;font-weight:800;font-size:.75rem;letter-spacing:.05em;cursor:pointer;transition:transform .12s ease,filter .12s ease,opacity .12s ease}.question-next:disabled{opacity:.35;cursor:default}.question-next:hover:not(:disabled){transform:translateY(-1px);filter:brightness(.98)}.question-main{padding:1.1rem 1rem 1.25rem}.question-card{background-color:#fff;border-radius:16px;padding:1.15rem 1.05rem;box-shadow:0 10px 24px #0f172a14;font-size:1.05rem;line-height:1.55;color:#111827}.options{margin-top:1.15rem;display:flex;flex-direction:column;gap:.75rem}.option{width:100%;display:grid;grid-template-columns:38px 1fr;gap:.9rem;align-items:center;text-align:left;padding:.95rem;background-color:#fff;border-radius:14px;border:1.5px solid #e5e7eb;box-shadow:0 10px 20px #0f172a0f;cursor:pointer;transition:transform .12s ease,border-color .12s ease,background-color .12s ease}.option:hover:not(:disabled){transform:translateY(-1px);border-color:#cbd5e1}.option:disabled{cursor:default}.option-letter{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;font-weight:900;color:#111827;border:1.5px solid #e5e7eb}.option-text{color:#111827;font-size:1rem;line-height:1.45}.option-selected{border-color:#2563eb;background-color:#2563eb0f}.option-selected .option-letter{border-color:#2563eb;color:#2563eb}.option-correct{border-color:#16a34a;background-color:#16a34a14}.option-correct .option-letter{border-color:#16a34a;background-color:#16a34a;color:#fff}.option-wrong{border-color:#dc2626;background-color:#dc262614}.option-wrong .option-letter{border-color:#dc2626;background-color:#dc2626;color:#fff}.justificacion{margin-top:1.15rem;background-color:#fff;border-radius:16px;padding:1.15rem 1.05rem;box-shadow:0 10px 24px #0f172a14}.justificacion-overlay{position:fixed;inset:0;z-index:1000;background:#1118279e;display:flex;align-items:stretch;justify-content:center;padding:0}.justificacion-modal{width:100%;max-width:860px;height:100%;background-color:#f3f4f7;display:flex;flex-direction:column}.justificacion-modal-header{display:flex;align-items:center;gap:.75rem;padding:.85rem;background-color:#fff;border-bottom:1px solid #e5e7eb}.justificacion-title{font-weight:800;color:#111827}.justificacion-header-spacer{flex:1}.justificacion-close{border:1px solid #e5e7eb;background-color:#fff;color:#2563eb;border-radius:999px;padding:.45rem .8rem;font-weight:800;cursor:pointer;transition:background-color .12s ease,border-color .12s ease,transform .12s ease}.justificacion-close:hover{background-color:#eff6ff;border-color:#bfdbfe;transform:translateY(-1px)}.justificacion-modal-body{padding:1rem;overflow:auto}.justificacion-modal-body .question-card{margin-bottom:1rem}.justificacion-modal-body .justificacion{margin-top:0}.justificacion h3{margin:0 0 .5rem;font-size:1.05rem;font-weight:800;color:#111827}.justificacion-meta{margin:0 0 1rem;font-size:.9rem;color:#6b7280}.justificacion-block h4{margin:.95rem 0 .35rem;font-size:.95rem;font-weight:800;color:#111827}.justificacion-block p{margin:0;font-size:.98rem;color:#111827;line-height:1.55}.question-footer{margin-top:1rem}.question-next-footer{width:100%;border:none;border-radius:14px;padding:.95rem 1rem;background-color:#22c55e;color:#fff;font-weight:800;font-size:.95rem;letter-spacing:.04em;cursor:pointer;transition:transform .12s ease,opacity .12s ease}.question-next-footer:disabled{opacity:.35;cursor:default}.question-next-footer:hover:not(:disabled){transform:translateY(-1px)}.logout-button:hover{background-color:#f3f4f6;border-color:#cbd5e1;box-shadow:0 4px 10px #0f172a14}.dashboard-main{display:flex;flex-direction:column;gap:1.75rem}.dashboard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}.card{padding:1.25rem 1.1rem 1.1rem;background-color:#f9fafb;border-radius:14px;border:1px solid #e5e7eb}.card.primary{background:radial-gradient(circle at top left,#2563eb 0,#1d4ed8 35%,#111827);color:#eff6ff}.card.primary h2{margin:0 0 .5rem;font-size:1rem;font-weight:600}.card-main-stat{margin:0 0 .35rem;font-size:2.1rem;font-weight:700}.card-caption{margin:0;font-size:.85rem;color:#dbeafe}.card h3{margin:0 0 .35rem;font-size:.95rem;font-weight:600;color:#111827}.card-stat{margin:0;font-size:1.4rem;font-weight:700;color:#111827}.card-text{margin:0;font-size:.95rem;color:#4b5563}.card.wide{grid-column:span 3}.dashboard-footer-note{font-size:.85rem;color:#6b7280}@media(max-width:480px){#app{max-width:100%;padding:0}.login-page{padding:1rem}.login-container{padding:2rem 1.5rem 1.75rem;border-radius:16px;box-shadow:0 14px 30px #0f172a24}.login-container h1{font-size:1.9rem}.dashboard{margin:0;padding:1.5rem 1.35rem 1.6rem}.dashboard-header{flex-direction:column;align-items:flex-start}.dashboard-grid{grid-template-columns:1fr}.card.wide{grid-column:span 1}}
