:root{--color-primary: #002060;--color-danger: #c00000;--color-success: #059669;--color-warning: #92400e;--bg-success: #ecfdf5;--bg-warning: #fffbeb;--bg-error: #fef2f2;--bg-info: #eff6ff;--transition-base: .3s;--radius-md: .5rem;--radius-lg: .75rem}body{background-color:#fff;height:100vh;overflow:hidden;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}input,textarea,select{user-select:auto!important;-webkit-user-select:auto!important}#login-form input{font-size:16px!important;line-height:1.5!important;font-family:Inter,sans-serif!important;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-text-size-adjust:100%!important;min-height:3.5rem}#login-form input::placeholder{font-size:16px!important;line-height:1.5!important}#login-form input:focus{font-size:16px!important;line-height:1.5!important;min-height:3.5rem}#login-form input:-internal-autofill-previewed,#login-form input:-webkit-autofill-previewed{font-size:16px!important;line-height:1.5!important;min-height:3.5rem;-webkit-text-fill-color:#1f2937!important}#login-form input:-internal-autofill-selected,#login-form input:-webkit-autofill-selected{font-size:16px!important;line-height:1.5!important;min-height:3.5rem;-webkit-text-fill-color:#1f2937!important}#login-form input:-webkit-autofill,#login-form input:-webkit-autofill:hover,#login-form input:-webkit-autofill:focus,#login-form input:-webkit-autofill:active,#login-form input:autofill,#login-form input:-moz-autofill{font-size:16px!important;line-height:1.5!important;min-height:3.5rem;-webkit-text-fill-color:#1f2937;-webkit-box-shadow:0 0 0 1000px #ffffff inset;box-shadow:0 0 0 1000px #fff inset;transition:background-color 9999s ease-in-out 0s}.hide-scrollbar::-webkit-scrollbar{display:none;width:0;height:0}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.gpu-accelerated{transform:translateZ(0);backface-visibility:hidden;perspective:1000px}.scroll-container{scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.will-change-opacity{will-change:opacity}body.high-performance-mode{background:#fff!important}.backdrop-blur-sm,.backdrop-blur-md,.backdrop-blur-lg,.backdrop-blur-\[2px\]{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.text-loader:after{content:"...";animation:ellipsis 1.5s infinite;display:inline-block;width:1em;text-align:left}@keyframes ellipsis{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}.loader{border:3px solid rgba(255,255,255,.3);border-radius:50%;border-top:3px solid #ffffff;width:20px;height:20px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.bulletin-nav-btn:not(:disabled):hover{border-color:#002060;color:#002060;background:#eff6ff}.bulletin-nav-btn:disabled{opacity:.3;cursor:not-allowed}#bulletin-loading-overlay{contain:layout paint}#bulletin-modal-content,#bulletin-iframe{contain:content;backface-visibility:hidden;transform:translateZ(0);will-change:transform,opacity}.bulletin-iframe-wrap{overflow:hidden}#bulletin-iframe{width:calc(100% + 17px);margin-right:-17px}.bullet-dots{display:inline-flex;gap:8px}.bullet-dots span{width:10px;height:10px;border-radius:50%;background:#002060;opacity:.25;animation:bullet-dot 1.2s ease-in-out infinite;will-change:opacity}.bullet-dots span:nth-child(2){animation-delay:.15s}.bullet-dots span:nth-child(3){animation-delay:.3s}@keyframes bullet-dot{0%,80%,to{opacity:.25}40%{opacity:1}}.fade-out{animation:fadeOut .5s cubic-bezier(.4,0,.2,1) forwards}.fade-in{animation:fadeIn .4s ease-out forwards}@keyframes fadeOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.99);pointer-events:none}}@keyframes fadeIn{0%{opacity:0;transform:scale(.99)}to{opacity:1;transform:scale(1)}}@keyframes blueRedCycle{0%,to{color:#002060}50%{color:#c00000}}.animate-blue-red{animation:blueRedCycle 1.8s ease-in-out infinite}@keyframes colorCycle{0%{color:#002060}25%{color:#6b7280}50%{color:#c00000}75%{color:#6b7280}to{color:#002060}}.animate-color-cycle{animation:colorCycle 7s ease-in-out infinite}@keyframes toastIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}#notification-stack{position:fixed;bottom:88px;right:24px;z-index:10001;display:flex;flex-direction:column;gap:8px;align-items:flex-end;pointer-events:none}#user-closure-countdown{background:#002060;border-radius:.85rem;padding:11px 16px;box-shadow:0 12px 36px #00206059,0 3px 10px #0000002e;font-family:Inter,sans-serif;width:290px;animation:toastIn .35s cubic-bezier(.22,.68,0,1.2) both,uccPulse 2.8s ease-in-out .4s infinite}@keyframes uccPulse{0%,to{box-shadow:0 12px 36px #00206059,0 3px 10px #0000002e}50%{box-shadow:0 12px 36px #c0000066,0 3px 10px #00000038}}#announcement-toast{border-radius:.85rem;padding:11px 14px 11px 16px;box-shadow:0 12px 36px #0003,0 3px 10px #0000001f;font-family:Inter,sans-serif;width:290px;animation:toastIn .35s cubic-bezier(.22,.68,0,1.2) both;pointer-events:auto}#system-toast{position:fixed;right:24px;bottom:calc(24px + env(safe-area-inset-bottom,0px));z-index:10000;display:flex;align-items:center;gap:11px;max-width:min(360px,calc(100vw - 32px));padding:12px 14px;border-radius:14px;font-size:.78rem;font-weight:700;font-family:Inter,sans-serif;line-height:1.4;box-shadow:0 12px 32px -8px #0000002e,0 4px 12px -4px #00000014;animation:toastIn .35s cubic-bezier(.22,.68,0,1.2) both;pointer-events:none;overflow:hidden;contain:layout paint}.system-toast-icon{flex-shrink:0;width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}.system-toast-icon svg{width:16px;height:16px}.system-toast-msg{flex:1;min-width:0}.system-toast-progress{position:absolute;left:0;bottom:0;width:100%;height:3px;opacity:.35;transform-origin:left;animation:toastProgress 4s linear forwards}@keyframes toastProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media (max-width: 640px){#system-toast{right:16px;left:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));max-width:none}}#banner-countdown-time{white-space:pre;word-spacing:.35em}.text-colegio{color:#002060;font-family:Montserrat,sans-serif;font-weight:700;letter-spacing:1px;margin-bottom:-.1em;line-height:1}.text-pinceladas{font-family:Chewy,cursive;color:#c00000;line-height:1}.text-montessori-sub{background-color:#002060;color:#fff;padding:.1em .3em;border-radius:50px;font-family:Montserrat,sans-serif;font-weight:700;display:flex;justify-content:center;align-items:center;margin-top:-.1em;letter-spacing:.1em;text-align:center;width:auto}.logo-lg .text-colegio{font-size:clamp(1.25rem,2.8vw,1.5rem)}.logo-lg .text-pinceladas{font-size:clamp(3.5rem,8vw,4.75rem)}.logo-lg .text-montessori-sub{font-size:clamp(1.25rem,2.8vw,1.5rem);padding:.15em .5em}.logo-sm .text-colegio{font-size:.55rem}.logo-sm .text-pinceladas{font-size:1.3rem}.logo-sm .text-montessori-sub{font-size:.55rem;padding:1px 4px}.grade-card{position:relative;overflow:hidden;backface-visibility:hidden;transform:translateZ(0)}.grade-icon-overlay{position:absolute;top:50%;right:5%;transform:translateY(-50%);font-size:8rem;font-family:Montserrat,sans-serif;font-weight:900;opacity:.05;line-height:1;z-index:0;-webkit-user-select:none;user-select:none;transition:opacity .3s ease-out,color .3s ease-out;pointer-events:none}.grade-card:hover .grade-icon-overlay{opacity:1}#grade-quick-switcher{position:relative;height:auto;margin-bottom:0;display:inline-block;flex-shrink:0}#switcher-dropdown{position:absolute;top:110%;right:0;z-index:60;min-width:260px;max-height:350px;overflow-y:auto;white-space:nowrap;padding:6px;border-radius:12px;background-color:#fff;box-shadow:0 20px 40px -5px #00206026,0 10px 15px -6px #0020601a;border:1px solid #f3f4f6}#switcher-dropdown::-webkit-scrollbar{width:4px}#switcher-dropdown::-webkit-scrollbar-track{background:transparent}#switcher-dropdown::-webkit-scrollbar-thumb{background-color:#e5e7eb;border-radius:20px}.student-row{transition:background-color .15s ease,border-color .15s ease,transform .1s ease;transform:translateZ(0)}.student-row:hover{transform:translateY(-2px);z-index:1;box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -1px #00000008}#bulletin-calc-btn.active{border-color:#002060;color:#002060;background:#eff6ff}#bulletin-calc-panel.avg-panel{position:absolute;top:68px;right:16px;z-index:20;width:min(300px,calc(100% - 24px));height:280px;display:flex;flex-direction:column;box-sizing:border-box;padding:10px 12px;background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 12px 32px -12px #00206038;font-family:Inter,sans-serif;animation:avgPanelIn .22s cubic-bezier(.34,1.56,.64,1);transform-origin:top right}#bulletin-calc-panel.avg-panel[hidden]{display:none!important}@keyframes avgPanelIn{0%{opacity:0;transform:translateY(-8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.avg-panel-header{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;flex-shrink:0}.avg-head-left{display:flex;align-items:center;gap:6px;min-width:0}.avg-head-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:7px;background:#eff6ff;color:#002060;flex-shrink:0}.avg-head-icon svg{width:13px;height:13px}.avg-panel-title{font-family:Montserrat,sans-serif;font-weight:700;font-size:12px;color:#002060;letter-spacing:.01em;white-space:nowrap}.avg-close{background:none;border:none;cursor:pointer;color:#9ca3af;font-size:16px;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:7px;transition:color .2s,background .2s;flex-shrink:0}.avg-close:hover{color:#002060;background:#f3f4f6}.avg-status{font-size:10px;font-weight:600;letter-spacing:.02em;color:#6b7280;margin-bottom:6px;height:14px;display:flex;align-items:center;gap:5px;flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.avg-status:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.avg-input{width:100%;padding:7px 10px;margin-bottom:8px;background:#f3f4f6;border:1px solid transparent;border-radius:9px;font-size:12px;font-family:Inter,sans-serif;color:#111827;box-sizing:border-box;transition:all .2s;flex-shrink:0}.avg-input::placeholder{color:#9ca3af}.avg-input:focus{outline:none;background:#fff;border-color:#002060;box-shadow:0 0 0 2px #00206014}.avg-caption{font-family:Montserrat,sans-serif;font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#9ca3af;margin-bottom:4px;flex-shrink:0}.avg-values{flex:1;min-height:40px;display:flex;align-items:center;gap:6px;padding:6px 8px;margin-bottom:10px;background:#f9fafb;border:1px solid #f3f4f6;border-radius:10px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none}.avg-values::-webkit-scrollbar{display:none}.avg-empty{flex-shrink:0;font-size:11px;font-weight:500;color:#b0b7c3}.avg-value{flex-shrink:0;background:#002060;color:#fff;padding:4px 10px;border-radius:7px;font-size:12px;font-weight:600;white-space:nowrap}.avg-result{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:10px;background:#eff6ff;border-radius:12px;flex-shrink:0}.avg-result-label{font-family:Montserrat,sans-serif;font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#5b7290}.avg-result-number{font-size:38px;font-weight:800;line-height:1;color:#002060}@media (max-width: 480px){#bulletin-calc-panel.avg-panel{top:8px;right:12px;width:calc(100% - 24px)}}.csel{position:relative;display:inline-block}.csel.w-full{width:100%}.csel-btn{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:.625rem .875rem;background:#fff;border:1px solid #e5e7eb;border-radius:.625rem;color:#374151;font-weight:600;font-size:.8125rem;font-family:inherit;cursor:pointer;box-shadow:0 1px 2px #0000000d;transition:border-color .2s,background .2s,box-shadow .2s;text-align:left;white-space:nowrap}.csel-btn:hover{border-color:#002060;background:#f8faff}.csel-btn:focus-visible{outline:2px solid #002060;outline-offset:2px}.csel-btn.open{border-color:#002060;box-shadow:0 0 0 3px #0020601a}.csel-label{flex:1;overflow:hidden;text-overflow:ellipsis;min-width:0}.csel-label.placeholder{color:#9ca3af;font-weight:500}.csel-chevron{flex-shrink:0;color:#9ca3af;transition:transform .2s ease,color .2s;line-height:0}.csel-chevron.open{transform:rotate(180deg);color:#002060}.csel-dropdown{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:200;background:#fff;border:1px solid #f3f4f6;border-radius:.75rem;box-shadow:0 20px 40px -5px #00206026,0 8px 16px -6px #00206014;padding:5px;min-width:180px;overflow:hidden;opacity:0;transform:translateY(-6px) scale(.98);transition:opacity .18s ease,transform .18s ease;pointer-events:none}.csel-dropdown.open{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.csel-item{display:block;width:100%;text-align:left;padding:.5rem .875rem;border-radius:.5rem;border:none;background:none;font-size:.8125rem;font-weight:500;color:#374151;cursor:pointer;transition:background .12s,color .12s;font-family:inherit;white-space:nowrap}.csel-item:hover{background:#eff6ff;color:#002060}.csel-item.active{background:#eff6ff;color:#002060;font-weight:700}.csel-item.csel-sep{color:#9ca3af;font-weight:600;border-bottom:1px solid #f3f4f6;margin-bottom:4px;padding-bottom:8px;border-radius:0;cursor:default}.csel-item.csel-sep:hover{background:none;color:#9ca3af}#welcome-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:9998;align-items:center;justify-content:center;background:transparent;pointer-events:none}#welcome-overlay.visible{display:flex}#welcome-text{font-family:Montserrat,sans-serif;font-weight:900;font-size:clamp(1.8rem,5vw,3.8rem);text-transform:uppercase;letter-spacing:.04em;text-align:center;line-height:1.15;color:#002060;padding:0 1rem;text-shadow:0 4px 10px rgba(255,255,255,.5);animation:wTextIn .9s cubic-bezier(.16,1,.3,1) both}#welcome-sub{font-family:Montserrat,sans-serif;font-weight:700;font-size:clamp(.75rem,1.8vw,1rem);text-transform:uppercase;letter-spacing:.28em;color:#c00000;margin-top:.6rem;text-align:center;animation:wTextIn .9s cubic-bezier(.16,1,.3,1) .18s both}@keyframes wFadeIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes wFadeOut{0%{opacity:1}to{opacity:0}}@keyframes wTextIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}#welcome-overlay.visible{animation:wFadeIn .65s cubic-bezier(.16,1,.3,1) both}#welcome-overlay.fading{animation:wFadeOut .5s ease-in-out both}.sa-nav-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;border-radius:.5rem;border:1px solid transparent;cursor:pointer;font-family:Inter,sans-serif;font-size:.8125rem;font-weight:600;color:#6b7280;background:transparent;transition:all .2s ease;white-space:nowrap}.sa-nav-btn:hover{background:#f9fafb;color:#002060}.sa-nav-btn.sa-active{background:#eff6ff!important;color:#002060!important}.sa-tab{display:none;opacity:0}.sa-tab.active{display:block;animation:fadeIn .25s ease-out both}.u-badge{display:inline-flex;align-items:center;gap:3px;padding:3px 10px;border-radius:50px;font-size:9px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.u-badge.permitido{background:#ecfdf5;color:#059669;border:1px solid #a7f3d0}.u-badge.bloqueado{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.u-badge.admin{background:#eff6ff;color:#002060;border:1px solid #bfdbfe}.u-badge.normal{background:#f9fafb;color:#6b7280;border:1px solid #e5e7eb}.sys-msg{display:none;margin-top:.9rem;padding:.65rem .9rem;border-radius:.65rem;font-size:.72rem;font-weight:700;text-align:center;font-family:Inter,sans-serif}.sys-msg.info{background:#eff6ff;color:#002060;border:1px solid #bfdbfe}.sys-msg.success{background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0}.sys-msg.error{background:#fef2f2;color:#c00000;border:1px solid #fecaca}.sys-msg.warn{background:#fffbeb;color:#92400e;border:1px solid #fde68a}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #002060;outline-offset:2px}
