:root{--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-heading:"Outfit", "Inter", sans-serif;--c-sky-lightest:#eaf4ff;--c-sky-soft:#cfe7ff;--c-sky-medium:#a9d2ff;--c-sky-accent:#7fb7e6;--c-warm-cream:#fff3e6;--c-warm-peach:#f6d3a9;--c-warm-peach-hover:#ebbf8a;--bg-page:#f6faff;--bg-surface:#fff;--bg-surface-soft:#eaf4ff;--bg-input:#f8fbfe;--text-main:#1e293b;--text-muted:#526e8c;--text-faint:#859db7;--border-card:#cfe7ff;--border-card-hover:#a9d2ff;--border-card-active:#7fb7e6;--success:#10b981;--success-bg:#e6fbf2;--success-text:#065f46;--danger:#ef4444;--danger-bg:#feeceb;--danger-text:#991b1b;--warning:#f59e0b;--warning-bg:#fef3c7;--warning-text:#92400e;--radius-sm:10px;--radius-md:16px;--radius-lg:24px;--radius-xl:30px;--radius-pill:9999px;--shadow-sm:0 2px 6px #7fb7e61f;--shadow-md:0 8px 20px #7fb7e62e;--shadow-lg:0 14px 35px #64a0d738;--shadow-float:0 16px 40px #4a78a526}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-page);color:var(--text-main);background-image:radial-gradient(circle at 15% 15%,#eaf4ff 0%,#0000 45%),radial-gradient(circle at 85% 85%,#fff3e6 0%,#0000 40%);background-attachment:fixed;min-height:100vh;line-height:1.5;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);letter-spacing:-.02em;color:var(--text-main);font-weight:700}.app-container{background:var(--bg-surface);border-radius:var(--radius-xl);border:1px solid #cfe7ff99;max-width:1080px;margin:20px auto 40px;overflow:hidden;box-shadow:0 10px 40px #7fb7e629}@media (width<=1120px){.app-container{border-radius:var(--radius-lg);margin:10px}}.mockup-navbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:24px 32px 16px;display:flex}.mockup-brand{align-items:center;gap:12px;display:flex}.mockup-brand-icon{border-radius:var(--radius-md);background:linear-gradient(135deg, var(--c-sky-accent), var(--c-sky-medium));color:#fff;justify-content:center;align-items:center;width:42px;height:42px;display:flex;box-shadow:0 4px 12px #7fb7e659}.mockup-brand-title{color:var(--text-main);font-size:1.25rem;font-weight:800;line-height:1.1}.mockup-brand-sub{color:var(--text-muted);font-size:.78rem;font-weight:500}.nav-pills-group{border-radius:var(--radius-pill);background:#cfe7ff73;border:1px solid #a9d2ff8c;flex-wrap:wrap;align-items:center;gap:6px;padding:5px;display:flex;position:relative}.nav-pill{border-radius:var(--radius-pill);cursor:pointer;color:var(--text-muted);-webkit-user-select:none;user-select:none;background:0 0;border:none;outline:none;justify-content:center;align-items:center;padding:8px 18px;font-size:.92rem;font-weight:600;text-decoration:none;transition:color .18s;display:inline-flex;position:relative}.nav-pill:focus-visible{outline:2px solid var(--c-sky-accent);outline-offset:2px}.nav-pill-content{z-index:2;align-items:center;gap:8px;display:inline-flex;position:relative}.nav-pill.active .nav-pill-content{color:#0f2d59;font-weight:700}.nav-pill-active-bg{border-radius:var(--radius-pill);z-index:1;background:#fff;position:absolute;inset:0;box-shadow:0 3px 12px #7fb7e661}.nav-pill-active-bg-warm{border-radius:var(--radius-pill);background:var(--c-warm-peach);z-index:1;position:absolute;inset:0;box-shadow:0 4px 14px #f6d3a980}.nav-pill-warm{color:#4a3215}.nav-pill-warm.active .nav-pill-content{color:#382109}.hero-wave-banner{border-radius:var(--radius-xl);text-align:center;background:radial-gradient(at 20% 0,#a9d2ff 0%,#0000 60%),radial-gradient(at 80% 100%,#cfe7ff 0%,#0000 60%),linear-gradient(135deg,#7fb7e6 0%,#a9d2ff 40%,#bfe1ff 70%,#cfe7ff 100%);justify-content:center;align-items:center;margin:10px 32px 30px;padding:48px 24px;display:flex;position:relative;overflow:hidden;box-shadow:0 12px 30px #7fb7e647}.hero-wave-svg{pointer-events:none;opacity:.7;width:100%;height:100%;position:absolute;inset:0}.hero-floating-card{z-index:2;border-radius:var(--radius-lg);width:100%;max-width:600px;box-shadow:var(--shadow-float);background:#fff;border:1px solid #fffc;padding:36px 40px;animation:.3s scaleUp;position:relative}.hero-title{color:#1e293b;letter-spacing:-.03em;margin-bottom:8px;font-size:2.2rem;font-weight:800}.hero-subtitle{color:var(--text-muted);margin-bottom:22px;font-size:1rem;line-height:1.5}.btn-pill-warm{border-radius:var(--radius-pill);background:var(--c-warm-peach);color:#3f2912;font-size:1rem;font-weight:700;font-family:var(--font-sans);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;padding:12px 28px;text-decoration:none;transition:all .2s;display:inline-flex;box-shadow:0 4px 14px #f6d3a980}.btn-pill-warm:hover{background:var(--c-warm-peach-hover);transform:translateY(-2px);box-shadow:0 6px 18px #f6d3a999}.btn-pill-warm:active{transform:translateY(0)}.btn-pill-blue{border-radius:var(--radius-pill);background:var(--c-sky-accent);color:#1a365d;font-size:1rem;font-weight:700;font-family:var(--font-sans);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;padding:12px 28px;text-decoration:none;transition:all .2s;display:inline-flex;box-shadow:0 4px 14px #7fb7e666}.btn-pill-blue:hover{background:#6fa7d6;transform:translateY(-2px);box-shadow:0 6px 18px #7fb7e680}.levels-cards-grid{grid-template-columns:repeat(3,1fr);gap:20px;padding:0 32px 30px;display:grid}@media (width<=860px){.levels-cards-grid{grid-template-columns:1fr}.mockup-navbar{padding:20px 16px}.hero-wave-banner{margin:10px 16px 20px;padding:32px 16px}.hero-floating-card{padding:24px 20px}.hero-title{font-size:1.7rem}}.level-card-mockup{border:3px solid var(--border-card);border-radius:var(--radius-lg);text-align:center;cursor:pointer;box-shadow:var(--shadow-sm);background:#fff;flex-direction:column;align-items:center;padding:28px 20px;transition:all .25s cubic-bezier(.16,1,.3,1);display:flex;position:relative}.level-card-mockup:hover{border-color:var(--c-sky-medium);box-shadow:var(--shadow-md);transform:translateY(-4px)}.level-card-mockup.selected{border-color:var(--c-sky-accent);background:#fafcff;box-shadow:0 8px 24px #7fb7e647}.level-card-icon-circle{background:var(--c-sky-lightest);width:64px;height:64px;color:var(--c-sky-accent);border:2px solid var(--c-sky-soft);border-radius:50%;justify-content:center;align-items:center;margin-bottom:16px;transition:transform .2s;display:flex}.level-card-mockup:hover .level-card-icon-circle{transform:scale(1.08)}.level-card-title{color:var(--text-main);margin-bottom:6px;font-size:1.2rem;font-weight:800}.level-card-meta{color:var(--text-muted);margin-bottom:16px;font-size:.84rem}.card-learn-more-btn{border-radius:var(--radius-pill);background:var(--c-warm-peach);color:#3f2912;cursor:pointer;border:none;justify-content:center;align-items:center;margin-top:auto;padding:6px 18px;font-size:.82rem;font-weight:700;transition:all .2s;display:inline-flex}.level-card-mockup.selected .card-learn-more-btn{background:var(--c-sky-accent);color:#1a365d}.checkin-form-card{border:2px solid var(--border-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);background:#fff;margin:0 32px 36px;padding:32px 28px}@media (width<=860px){.checkin-form-card{margin:0 16px 24px;padding:24px 18px}}.form-group{flex-direction:column;gap:6px;margin-bottom:18px;display:flex}.form-label{color:var(--text-main);font-size:.88rem;font-weight:700}.form-input,.form-select,.form-textarea{background:var(--bg-input);border:1.5px solid var(--border-card);border-radius:var(--radius-md);width:100%;color:var(--text-main);font-size:.95rem;font-family:var(--font-sans);padding:12px 16px;transition:all .2s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--c-sky-accent);background:#fff;outline:none;box-shadow:0 0 0 3px #7fb7e640}.btn{font-size:.9rem;font-weight:600;font-family:var(--font-sans);border-radius:var(--radius-pill);cursor:pointer;-webkit-user-select:none;user-select:none;border:none;justify-content:center;align-items:center;gap:8px;padding:10px 20px;text-decoration:none;transition:all .2s;display:inline-flex}.btn:active{transform:scale(.98)}.btn-primary{background:var(--c-sky-accent);color:#1a365d;font-weight:700;box-shadow:0 4px 12px #7fb7e659}.btn-primary:hover{background:#6fa7d6;box-shadow:0 6px 16px #7fb7e673}.btn-success{color:#fff;background:#10b981;box-shadow:0 4px 12px #10b9814d}.btn-whatsapp{color:#0b2b18;background:#25d366;font-weight:700}.btn-outline{color:var(--text-main);border:1.5px solid var(--border-card);background:#fff}.btn-outline:hover{background:var(--c-sky-lightest);border-color:var(--border-card-hover)}.btn-danger-outline{color:var(--danger);background:#fff;border:1.5px solid #ef44444d}.btn-danger-outline:hover{background:var(--danger-bg)}.btn-danger{background:var(--danger);color:#fff;border:1.5px solid #dc2626;box-shadow:0 4px 12px #ef444440}.btn-danger:hover{background:#dc2626;transform:translateY(-1px);box-shadow:0 6px 16px #ef444459}.btn-sm{padding:6px 14px;font-size:.8rem}.btn-lg{padding:14px 28px;font-size:1.05rem}.badge{border-radius:var(--radius-pill);align-items:center;gap:5px;padding:4px 12px;font-size:.78rem;font-weight:700;display:inline-flex}.badge-present{background:var(--success-bg);color:var(--success-text);border:1px solid #10b9814d}.badge-absent{background:var(--danger-bg);color:var(--danger-text);border:1px solid #ef44444d}.badge-warning{background:var(--warning-bg);color:var(--warning-text);border:1px solid #f59e0b4d}.badge-level{background:var(--c-sky-lightest);color:#1a365d;border:1px solid var(--c-sky-soft)}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(8px);background:#0f172a8c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-content{border:2px solid var(--c-sky-soft);border-radius:var(--radius-lg);background:#fff;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:0 24px 60px #0f2d5047}.modal-header{border-bottom:1.5px solid var(--border-card);justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.modal-body{padding:24px}.modal-footer{border-top:1.5px solid var(--border-card);justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.glass-panel{border:1.5px solid var(--border-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);background:#fff;transition:all .2s}.glass-panel:hover{border-color:var(--border-card-hover)}.student-name-cell{cursor:pointer;position:relative}.student-name-link{color:var(--text-main);border-bottom:1.5px dashed var(--c-sky-medium);font-weight:700;text-decoration:none;transition:all .2s;display:inline-block}.student-name-link:hover{color:var(--c-sky-accent);border-bottom-color:var(--c-sky-accent)}.student-popover{z-index:50;border:1.5px solid var(--border-card);border-radius:var(--radius-md);box-shadow:var(--shadow-md);background:#fff;min-width:240px;padding:14px 18px;animation:.15s scaleUp;position:absolute;top:calc(100% + 8px);left:0}.student-popover:before{content:"";border-left:1.5px solid var(--border-card);border-top:1.5px solid var(--border-card);background:#fff;width:12px;height:12px;position:absolute;top:-7px;left:20px;transform:rotate(45deg)}.popover-row{color:var(--text-main);align-items:center;gap:8px;padding:5px 0;font-size:.85rem;display:flex}.popover-row+.popover-row{border-top:1px solid var(--c-sky-lightest)}.popover-row-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;min-width:72px;font-size:.78rem;font-weight:700}.popover-row-value{color:var(--text-main);font-family:Inter,sans-serif}.status-icon{border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;transition:transform .15s;display:inline-flex}.status-icon:hover{transform:scale(1.12)}.status-icon--active{background:var(--success-bg);color:var(--success);border:1.5px solid #10b9814d}.status-icon--inactive{background:var(--warning-bg);color:var(--warning);border:1.5px solid #f59e0b4d}.status-icon--graduated{color:#7c3aed;background:#ede9fe;border:1.5px solid #7c3aed40}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleUp{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes pulseGlow{0%,to{box-shadow:0 0 15px #f6d3a966}50%{box-shadow:0 0 30px #f6d3a9b3}}.pulse-success{animation:2.5s ease-in-out infinite pulseGlow}@keyframes waveDriftSlow{0%{transform:translate(0)scaleY(1)}50%{transform:translate(-18px)scaleY(1.02)}to{transform:translate(0)scaleY(1)}}@keyframes waveDriftReverse{0%{transform:translate(0)scaleY(1)}50%{transform:translate(18px)scaleY(.98)}to{transform:translate(0)scaleY(1)}}.wave-animated-1{transform-origin:bottom;animation:14s ease-in-out infinite waveDriftSlow}.wave-animated-2{transform-origin:bottom;animation:18s ease-in-out infinite waveDriftReverse}
