@charset "UTF-8";@font-face{font-family:Bowlby One SC;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/bowlbyonesc/v27/DtVlJxerQqQm37tzN3wMug9P_gH2ojhN.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bowlby One SC;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/bowlbyonesc/v27/DtVlJxerQqQm37tzN3wMug9P_g_2og.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Lilita One;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/lilitaone/v17/i7dPIFZ9Zz-WBtRtedDbYE98RWq7.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Lilita One;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/lilitaone/v17/i7dPIFZ9Zz-WBtRtedDbYEF8RQ.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIOOaBXso.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIMeaBXso.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIOuaBXso.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIO-aBXso.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofINeaB.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIOOaBXso.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIMeaBXso.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIOuaBXso.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIO-aBXso.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofINeaB.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIOOaBXso.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIMeaBXso.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIOuaBXso.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIO-aBXso.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofINeaB.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-weight:800;font-display:swap;src:url(https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIOOaBXso.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-weight:800;font-display:swap;src:url(https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIMeaBXso.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-weight:800;font-display:swap;src:url(https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIOuaBXso.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-weight:800;font-display:swap;src:url(https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIO-aBXso.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-weight:800;font-display:swap;src:url(https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofINeaB.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-weight:900;font-display:swap;src:url(https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIOOaBXso.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-weight:900;font-display:swap;src:url(https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIMeaBXso.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-weight:900;font-display:swap;src:url(https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIOuaBXso.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-weight:900;font-display:swap;src:url(https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofIO-aBXso.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-weight:900;font-display:swap;src:url(https://fonts.gstatic.com/s/nunito/v32/XRXV3I6Li01BKofINeaB.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--blue: #0078f4;--blue-dark: #0055b0;--blue-light: #3395f6;--orange: #f87507;--orange-dark: #c45c00;--bg: #f0f4fb;--surface: #ffffff;--surface-2: #f8fafc;--border: #e2e8f0;--text-primary: #1e293b;--text-secondary: #475569;--text-muted: #94a3b8;--shadow: rgba(0, 0, 0, .07)}body.dark{--bg: #0f1117;--surface: #1a1d27;--surface-2: #22263a;--border: #2e3347;--text-primary: #e2e8f0;--text-secondary: #94a3b8;--text-muted: #64748b;--shadow: rgba(0, 0, 0, .35);background:var(--bg);color:var(--text-primary)}body.dark .sidebar{background:linear-gradient(160deg,#0d1930,#0a1120)}body.dark .main-content{background:var(--bg)}body.dark .content-section{background:transparent}body.dark .stat-card,body.dark .edit-col,body.dark .goal-row,body.dark .profile-hero,body.dark .profile-edit-card,body.dark .profile-setting-card,body.dark .role-card,body.dark .role-editor,body.dark .modal-card,body.dark .context-menu,body.dark .table-wrap,body.dark .class-card,body.dark .teacher-card{background:var(--surface)!important;color:var(--text-primary)!important;border-color:var(--border)!important}body.dark .data-table th{background:var(--surface-2);color:var(--text-primary);border-color:var(--border)}body.dark .data-table td{border-color:var(--border);color:var(--text-primary)}body.dark .data-table tr:hover td{background:var(--surface-2)}body.dark .form-input,body.dark .form-select,body.dark .search-input,body.dark .goal-input{background:var(--surface-2);color:var(--text-primary);border-color:var(--border)}body.dark .form-input::placeholder,body.dark .form-select::placeholder,body.dark .search-input::placeholder,body.dark .goal-input::placeholder{color:var(--text-muted)}body.dark h1,body.dark h2,body.dark h3,body.dark h4,body.dark .section-title,body.dark .profile-name,body.dark .role-name,body.dark .edit-col-title,body.dark .goal-row-title{color:var(--text-primary)!important}body.dark p,body.dark .profile-desc,body.dark .role-desc,body.dark .psc-setting-desc,body.dark .profile-email,body.dark .goal-label{color:var(--text-secondary)!important}body.dark .info-chip{background:var(--surface-2);color:var(--text-primary)}body.dark .class-badge{background:var(--surface-2)}body.dark .pqs-chip{background:var(--surface-2);border-color:var(--border)}body.dark .nav-item.active{background:#ffffff1f}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:Nunito,sans-serif;background:var(--bg);height:100vh;overflow:hidden}app-root{display:flex;width:100%;height:100vh;overflow:hidden}.sidebar{width:260px;background:linear-gradient(160deg,var(--blue) 0%,var(--blue-dark) 100%);color:#fff;height:100vh;position:sticky;top:0;padding:20px;flex-shrink:0;box-shadow:inset -1px 0 #ffffff14,4px 0 20px #0078f440}.logo{font-family:Bowlby One SC,cursive;font-size:32px;text-align:center;margin:0 0 30px;color:#fff;letter-spacing:1px;text-shadow:-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000,1px 1px 0 #000,0 1px 0 #111,0 2px 0 #1a1a1a,0 3px 0 #222,0 4px 8px rgba(0,0,0,.45)}.nav-menu{display:flex;flex-direction:column;gap:10px}.nav-item{border:none;background:#ffffff24;border-bottom:3px solid rgba(0,0,0,.25);padding:10px 14px;border-radius:12px;color:#fff;cursor:pointer;font-family:Nunito,sans-serif;font-weight:700;font-size:15px;text-align:left;display:flex;align-items:center;gap:10px;box-shadow:0 4px #0000004d,0 6px 12px #0003;transition:background .15s ease,color .15s ease,box-shadow .1s ease,transform .1s ease,border-color .1s ease}.nav-item:hover{background:#ffffff38;box-shadow:0 6px #00000047,0 8px 18px #00000038;transform:translateY(-1px)}.nav-item:active{transform:translateY(3px);box-shadow:0 1px #0000004d,0 2px 4px #00000026;border-bottom-width:1px}.nav-item.active{background:var(--orange);border-bottom:3px solid var(--orange-dark);color:#fff;box-shadow:0 4px 0 var(--orange-dark),0 6px 14px #f8750773}.nav-item.active:hover{background:#ff8b20;box-shadow:0 6px 0 var(--orange-dark),0 8px 18px #f8750780;transform:translateY(-1px)}.nav-item.active:active{transform:translateY(3px);box-shadow:0 1px 0 var(--orange-dark),0 2px 6px #f875074d;border-bottom-width:1px}.nav-icon{width:28px;height:28px;object-fit:contain;opacity:.85;flex-shrink:0;transition:opacity .15s,filter .15s;filter:drop-shadow(0 1px 2px rgba(0,0,0,.18))}.nav-item.active .nav-icon{opacity:1;filter:drop-shadow(0 1px 3px rgba(0,0,0,.25))}.main-content{flex:1;padding:40px;min-height:100vh;overflow-y:auto}.content-section{animation:fadeIn .25s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 22px;border:none;border-radius:12px;font-family:Nunito,sans-serif;font-weight:800;font-size:15px;cursor:pointer;line-height:1;white-space:nowrap;-webkit-user-select:none;user-select:none;transition:background .15s ease,transform .1s ease,box-shadow .1s ease,border-color .1s ease}.btn-blue{background:var(--blue);color:#fff;border-bottom:3px solid var(--blue-dark);box-shadow:0 5px 0 var(--blue-dark),0 8px 16px #0078f459}.btn-blue:hover{background:var(--blue-light);box-shadow:0 7px 0 var(--blue-dark),0 10px 20px #0078f466;transform:translateY(-2px)}.btn-blue:active{transform:translateY(4px);box-shadow:0 1px 0 var(--blue-dark),0 2px 6px #0078f433;border-bottom-width:1px}.btn-orange{background:var(--orange);color:#fff;border-bottom:3px solid var(--orange-dark);box-shadow:0 5px 0 var(--orange-dark),0 8px 16px #f8750766}.btn-orange:hover{background:#ff8b20;box-shadow:0 7px 0 var(--orange-dark),0 10px 20px #f8750773;transform:translateY(-2px)}.btn-orange:active{transform:translateY(4px);box-shadow:0 1px 0 var(--orange-dark),0 2px 6px #f8750733;border-bottom-width:1px}.login-screen{position:fixed;inset:0;z-index:9999;background:linear-gradient(160deg,var(--blue) 0%,var(--blue-dark) 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:20px;overflow-y:auto}.login-card{background:#fff;border-radius:24px;padding:36px 40px 32px;width:100%;max-width:420px;box-shadow:0 8px #00000038,0 18px 48px #00000052;text-align:center;animation:fadeIn .35s ease}.login-logo{font-family:Bowlby One SC,cursive;font-size:64px;color:#fff;letter-spacing:2px;line-height:1.1;text-shadow:-2px -2px 0 rgba(0,0,0,.6666666667),2px -2px 0 rgba(0,0,0,.6666666667),-2px 2px 0 rgba(0,0,0,.6666666667),2px 2px 0 rgba(0,0,0,.6666666667),0 2px 0 #111,0 4px 0 #1a1a1a,0 6px 14px rgba(0,0,0,.5);margin-bottom:10px}.login-tagline{font-size:16px;color:#ffffffbf;font-weight:600;margin:0 0 36px;letter-spacing:.3px}.login-form{display:flex;flex-direction:column;gap:16px;text-align:left}.login-field{display:flex;flex-direction:column;gap:6px}.login-field label{font-size:13px;font-weight:700;color:#374151;text-transform:uppercase;letter-spacing:.4px}.login-input{padding:12px 16px;border:2px solid #e5e7eb;border-radius:12px;font-size:15px;color:#1a2540;outline:none;transition:border-color .15s,box-shadow .15s;font-family:Nunito,sans-serif}.login-input:focus{border-color:var(--blue);box-shadow:0 0 0 4px #0078f41f}.login-error{font-size:13px;color:#dc2626;font-weight:600;margin:0;background:#fef2f2;padding:8px 12px;border-radius:10px;border:1px solid #fecaca}.btn-login{margin-top:4px;padding:14px;border:none;border-radius:14px;font-size:16px;font-weight:800;font-family:Nunito,sans-serif;cursor:pointer;color:#fff;background:var(--blue);border-bottom:4px solid var(--blue-dark);box-shadow:0 5px 0 var(--blue-dark),0 8px 16px #0078f461;transition:transform .1s,box-shadow .1s}.btn-login:hover{transform:translateY(-2px);box-shadow:0 7px 0 var(--blue-dark),0 12px 20px #0078f46b}.btn-login:active{transform:translateY(4px);box-shadow:0 1px 0 var(--blue-dark),0 2px 6px #0078f433;border-bottom-width:1px}.sidebar{display:flex;flex-direction:column}.sidebar-spacer{flex:1}.btn-logout{width:100%;padding:11px 14px;border-radius:12px;border:none;background:#ffffff1a;border:1.5px solid rgba(255,255,255,.2);color:#fffc;font-family:Nunito,sans-serif;font-size:14px;font-weight:700;cursor:pointer;text-align:left;transition:background .15s,color .15s,border-color .15s;margin-bottom:4px}.btn-logout:hover{background:#ef444440;border-color:#ef44448c;color:#fff}.btn-purple{background:linear-gradient(135deg,#7c3aed,#9333ea);color:#fff;border-bottom:3px solid #6d28d9;box-shadow:0 5px #6d28d9,0 8px 16px #7c3aed59}.btn-purple:hover{background:linear-gradient(135deg,#6d28d9,#7c3aed);transform:translateY(-2px);box-shadow:0 7px #5b21b6,0 10px 20px #7c3aed73}.btn-purple:active{transform:translateY(4px);box-shadow:0 1px #5b21b6,0 2px 6px #7c3aed33;border-bottom-width:1px}.generar-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:8px}@media(max-width:900px){.generar-grid{grid-template-columns:1fr}}.generar-card{border-radius:20px;padding:28px;display:flex;flex-direction:column;gap:20px;box-shadow:0 4px 24px #00000017;position:relative;overflow:hidden}.generar-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;border-radius:20px 20px 0 0}.generar-card-ia{background:#fff;border:1.5px solid #e0d5fc}.generar-card-ia:before{background:linear-gradient(90deg,#7c3aed,#9333ea)}.generar-card-plantilla{background:#fff;border:1.5px solid #ccf0ea}.generar-card-plantilla:before{background:linear-gradient(90deg,#0d9488,#14b8a6)}.generar-card-header{display:flex;align-items:flex-start;gap:14px}.generar-card-icon{font-size:36px;line-height:1;flex-shrink:0}.generar-card-title{font-size:18px;font-weight:800;color:#1a2540;margin:0 0 4px}.generar-card-subtitle{font-size:13px;color:#6b7280;margin:0;line-height:1.5}.gen-upload-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border:2px dashed #d1d5db;border-radius:14px;padding:28px 20px;cursor:pointer;transition:border-color .18s,background .18s;background:#f9fafb;text-align:center}.gen-upload-zone:hover{border-color:#7c3aed;background:#faf5ff}.gen-upload-zone.has-file{border-color:#22c55e;background:#f0fdf4}.gen-upload-icon{font-size:32px;line-height:1}.gen-upload-label{font-size:13.5px;color:#6b7280;font-weight:500}.gen-controls{display:flex;flex-direction:column;gap:16px}.gen-control-group{display:flex;flex-direction:column;gap:8px}.gen-label{font-size:13px;font-weight:700;color:#374151;text-transform:uppercase;letter-spacing:.4px}.gen-count-row{display:flex;align-items:center;gap:16px}.gen-count-btn{width:36px;height:36px;border-radius:10px;border:2px solid #e5e7eb;background:#fff;font-size:20px;font-weight:700;cursor:pointer;color:#374151;transition:border-color .15s,background .15s;line-height:1;display:flex;align-items:center;justify-content:center}.gen-count-btn:hover{border-color:#7c3aed;background:#faf5ff;color:#7c3aed}.gen-count-val{font-size:22px;font-weight:800;color:#1a2540;min-width:36px;text-align:center}.gen-diff-row{display:flex;gap:8px}.gen-diff-btn{flex:1;padding:8px 4px;border-radius:10px;border:2px solid #e5e7eb;background:#f9fafb;font-size:13px;font-weight:600;cursor:pointer;color:#6b7280;transition:all .15s}.gen-diff-btn:hover{border-color:#7c3aed;color:#7c3aed;background:#faf5ff}.gen-diff-btn.active{border-color:#7c3aed;background:#ede9fe;color:#6d28d9}.btn-ia{padding:13px 20px;border:none;border-radius:14px;font-size:15px;font-weight:800;cursor:pointer;background:linear-gradient(135deg,#7c3aed,#9333ea);color:#fff;box-shadow:0 4px 14px #7c3aed66;transition:opacity .15s,transform .15s}.btn-ia:hover{opacity:.9;transform:translateY(-1px)}.btn-ia:disabled{opacity:.6;cursor:not-allowed}.btn-plantilla{padding:13px 20px;border:none;border-radius:14px;font-size:15px;font-weight:800;cursor:pointer;background:linear-gradient(135deg,#0d9488,#14b8a6);color:#fff;box-shadow:0 4px 14px #0d948861;transition:opacity .15s,transform .15s}.btn-plantilla:hover{opacity:.9;transform:translateY(-1px)}.btn-plantilla:disabled{opacity:.6;cursor:not-allowed}.btn-ghost{background:#fff;color:var(--blue);border:2px solid #d0dff5;border-bottom:3px solid #b0c8f0;box-shadow:0 4px #b0c8f0,0 6px 14px #00000014}.btn-ghost:hover{background:#f0f6ff;box-shadow:0 6px #b0c8f0,0 8px 18px #0000001a;transform:translateY(-2px)}.btn-ghost:active{transform:translateY(4px);box-shadow:0 1px #b0c8f0,0 2px 4px #0000000f;border-bottom-width:1px}.btn-red{background:#e53e3e;color:#fff;border-bottom:3px solid #9b1c1c;box-shadow:0 5px #9b1c1c,0 8px 16px #e53e3e59}.btn-red:hover{background:#fc5c5c;box-shadow:0 7px #9b1c1c,0 10px 20px #e53e3e66;transform:translateY(-2px)}.btn-red:active{transform:translateY(4px);box-shadow:0 1px #9b1c1c,0 2px 6px #e53e3e33;border-bottom-width:1px}.btn-sm{padding:7px 14px;font-size:13px;border-radius:8px}.btn-lg{padding:14px 30px;font-size:17px;border-radius:14px}.btn img{width:20px;height:20px;object-fit:contain;filter:brightness(0) invert(1)}.btn-action-icon{filter:none!important}.section-title{font-family:Lilita One,cursive;font-size:28px;color:#1e293b;margin-top:0}.dashboard-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:30px}.stat-card{background:#fff;padding:25px;border-radius:18px;text-align:center;border-bottom:4px solid #c8d8f0;box-shadow:0 6px #c0cfe8,0 10px 24px #0078f41a;transition:transform .15s ease,box-shadow .15s ease;cursor:default}.stat-card:hover{transform:translateY(-4px);box-shadow:0 10px #b8c8e0,0 16px 32px #0078f42e}.stat-card h3{font-size:48px;font-weight:900;margin:0 0 8px;background:linear-gradient(135deg,var(--blue),var(--orange));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-card p{font-size:14px;font-weight:700;color:#64748b;margin:0;text-transform:uppercase;letter-spacing:.5px}@media(max-width:900px){.dashboard-cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){body{flex-direction:column}.sidebar{width:100%;height:auto;position:static}.dashboard-cards{grid-template-columns:1fr 1fr}}.section-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.section-toolbar .section-title{margin:0}.search-bar-wrap{display:flex;align-items:center;gap:10px;background:#fff;border:2px solid #d8e6f8;border-radius:12px;padding:8px 16px;margin-bottom:16px;box-shadow:0 2px 8px #0078f40f;transition:border-color .2s,box-shadow .2s}.search-bar-wrap:focus-within{border-color:var(--blue);box-shadow:0 2px 12px #0078f426}.search-icon{font-size:16px}.search-input{flex:1;border:none;outline:none;font-family:Nunito,sans-serif;font-size:15px;font-weight:600;color:#1e293b;background:transparent}.search-input::placeholder{color:#94a3b8;font-weight:600}.selection-bar{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,#fff7ed,#fff3e0);border:2px solid var(--orange);border-radius:12px;padding:10px 16px;margin-bottom:12px;font-weight:700;color:var(--orange-dark);animation:fadeIn .2s ease}.selection-bar-actions{display:flex;gap:8px}.table-wrap{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 4px #c0cfe8,0 8px 24px #0078f414;border-bottom:4px solid #c0cfe8}.data-table{width:100%;border-collapse:collapse;font-size:14px}.data-table thead tr{background:linear-gradient(135deg,var(--blue),#0060cc);color:#fff}.data-table thead th{padding:14px 16px;text-align:left;font-family:Nunito,sans-serif;font-weight:800;font-size:13px;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.data-table thead th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s}.data-table thead th.sortable:hover{background:#ffffff26}.sort-icon{display:inline-block;margin-left:4px;opacity:.8;font-size:11px}.data-table tbody tr{border-bottom:1px solid #e8f0fc;transition:background .15s}.data-table tbody tr:last-child{border-bottom:none}.data-table tbody tr:hover{background:#f5f9ff}.data-table tbody tr.row-selected{background:#fff3e0}.data-table tbody td{padding:12px 16px;color:#334155;font-weight:600;vertical-align:middle}.col-check{width:44px;text-align:center}.col-actions{width:90px;white-space:nowrap}.col-actions.data-table td{display:flex;gap:6px}.data-table .col-actions{display:flex;gap:6px;padding:8px 10px;align-items:center}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;border:none;cursor:pointer;transition:all .15s ease;flex-shrink:0}.btn-icon svg{width:16px;height:16px}.btn-icon-blue{background:var(--blue);color:#fff}.btn-icon-blue:hover{background:#0060d0;transform:scale(1.08)}.btn-icon-blue:active{transform:scale(.95)}.btn-icon-red{background:#ef4444;color:#fff}.btn-icon-red:hover{background:#dc2626;transform:scale(1.08)}.btn-icon-red:active{transform:scale(.95)}.row-inactive .btn-icon-blue,.row-inactive .btn-icon-red{opacity:.5}.teacher-name{display:flex;align-items:center;gap:10px;font-weight:700}.avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--orange));color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:900;flex-shrink:0;text-transform:uppercase}.class-badge{display:inline-block;background:#e8f0fe;color:var(--blue);border-radius:6px;padding:2px 8px;font-size:12px;font-weight:800;margin-right:4px}.role-badge{display:inline-block;background:linear-gradient(135deg,var(--orange),#ffaa40);color:#fff;border-radius:20px;padding:3px 12px;font-size:12px;font-weight:800}.empty-row{text-align:center!important;color:#94a3b8!important;font-weight:700!important;padding:40px 16px!important;font-size:15px!important}.muted{color:#94a3b8;font-style:italic;font-size:13px}.modal-overlay{position:fixed;inset:0;background:#00000073;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}.modal-card{background:#fff;border-radius:20px;width:540px;max-width:95vw;box-shadow:0 8px #0000001f,0 20px 48px #00000038;overflow:hidden;animation:modalSlideIn .25s cubic-bezier(.34,1.56,.64,1)}.modal-card-sm{width:500px}.game-modal{width:560px;padding:0;overflow:hidden}.game-modal-header{position:relative;display:flex;align-items:center;justify-content:center;padding:28px 20px 20px;min-height:140px}.game-modal-logo{max-height:120px;max-width:90%;object-fit:contain;filter:drop-shadow(0 4px 14px rgba(0,0,0,.35))}.gm-close{position:absolute;top:12px;right:12px;background:#00000040!important;border-radius:50%!important;width:30px;height:30px;display:flex;align-items:center;justify-content:center;color:#fff!important;font-size:14px!important}.gm-close:hover{background:#00000073!important}.gm-survival{background:linear-gradient(160deg,#1a6b00,#2d9900 60%,#4c0)}.gm-snake{background:linear-gradient(160deg,#0d3d00,#1a6e00 60%,#2a9900)}.gm-live{background:linear-gradient(160deg,#1a0000,#5c0000,#c00)}.gm-home{background:linear-gradient(160deg,#000819,#001a4d 60%,#0044b8)}.game-modal-body{padding:20px 28px 8px}.game-modal-badge{display:inline-block;padding:4px 14px;border-radius:20px;font-size:12px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;margin-bottom:12px}.gm-badge-survival{background:#d4f7c0;color:#1a6b00}.gm-badge-snake{background:#c0f7d4;color:#0d3d00}.gm-badge-live{background:#ffd0d0;color:#8b0000}.gm-badge-home{background:#cdd9ff;color:#002080}.game-modal-desc{font-size:15px;color:#1a2540;margin:0 0 14px;line-height:1.5}.game-modal-rules{list-style:none;padding:0;margin:0 0 4px;display:flex;flex-direction:column;gap:8px}.game-modal-rules li{font-size:14px;color:#374151;background:#f8faff;border-radius:10px;padding:9px 14px;border-left:3px solid #e5e7eb;line-height:1.4}.game-modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 28px 22px;border-top:1px solid #f0f0f0}.gm-btn-survival{background:linear-gradient(135deg,#2db300,#1a8000);border-bottom:4px solid #0f5200;box-shadow:0 5px #0f5200,0 8px 18px #2db30059;color:#fff;font-weight:800;border-radius:12px;padding:10px 22px;cursor:pointer;font-size:15px;font-family:Nunito,sans-serif;transition:transform .1s,box-shadow .1s}.gm-btn-survival:hover{transform:translateY(-2px);filter:brightness(1.08)}.gm-btn-survival:active{transform:translateY(3px);box-shadow:0 1px #0f5200;border-bottom-width:1px}.gm-btn-snake{background:linear-gradient(135deg,#1a8000,#0d5200);border-bottom:4px solid #062e00;box-shadow:0 5px #062e00,0 8px 18px #1a800059;color:#fff;font-weight:800;border-radius:12px;padding:10px 22px;cursor:pointer;font-size:15px;font-family:Nunito,sans-serif;transition:transform .1s,box-shadow .1s}.gm-btn-snake:hover{transform:translateY(-2px);filter:brightness(1.08)}.gm-btn-snake:active{transform:translateY(3px);box-shadow:0 1px #062e00;border-bottom-width:1px}.gm-btn-live{background:linear-gradient(135deg,#e00000,#9a0000);border-bottom:4px solid #5c0000;box-shadow:0 5px #5c0000,0 8px 18px #dc000059;color:#fff;font-weight:800;border-radius:12px;padding:10px 22px;cursor:pointer;font-size:15px;font-family:Nunito,sans-serif;transition:transform .1s,box-shadow .1s}.gm-btn-live:hover{transform:translateY(-2px);filter:brightness(1.08)}.gm-btn-live:active{transform:translateY(3px);box-shadow:0 1px #5c0000;border-bottom-width:1px}.gm-btn-home{background:linear-gradient(135deg,#0060e0,#0040a0);border-bottom:4px solid #002060;box-shadow:0 5px #002060,0 8px 18px #0060e059;color:#fff;font-weight:800;border-radius:12px;padding:10px 22px;cursor:pointer;font-size:15px;font-family:Nunito,sans-serif;transition:transform .1s,box-shadow .1s}.gm-btn-home:hover{transform:translateY(-2px);filter:brightness(1.08)}.gm-btn-home:active{transform:translateY(3px);box-shadow:0 1px #002060;border-bottom-width:1px}.game-modal-survival .game-modal-rules li{border-left-color:#4c0}.game-modal-snake .game-modal-rules li{border-left-color:#2a9900}.game-modal-live .game-modal-rules li{border-left-color:#c00}.game-modal-home .game-modal-rules li{border-left-color:#0060e0}.gm-content-selector{background:#f3f6ff;border:1.5px solid #dde4f6;border-radius:14px;padding:14px 16px;margin-bottom:14px;display:flex;flex-direction:column;gap:6px}.gm-label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.7px;color:#6b7a99;margin-top:4px}.gm-label:first-child{margin-top:0}.gm-select{width:100%;padding:9px 12px;border-radius:10px;border:1.5px solid #c8d3ed;background:#fff;font-size:14px;font-family:Nunito,sans-serif;font-weight:600;color:#1a2540;cursor:pointer;appearance:auto}.gm-select:focus{outline:none;border-color:#3b82f6}.gm-secciones{display:flex;flex-wrap:wrap;gap:7px}.gm-seccion-chip{display:inline-flex;align-items:center;padding:5px 13px;border-radius:20px;border:1.5px solid #c8d3ed;background:#fff;font-size:13px;font-weight:600;color:#374151;cursor:pointer;transition:all .15s ease;-webkit-user-select:none;user-select:none}.gm-seccion-chip:hover{border-color:#3b82f6;color:#1d4ed8}.gm-seccion-chip.gm-seccion-active{background:#1d4ed8;border-color:#1d4ed8;color:#fff}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-30px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;background:linear-gradient(135deg,var(--blue),#0060cc);color:#fff}.modal-header-danger{background:linear-gradient(135deg,#e53e3e,#9b1c1c)}.modal-header h3{margin:0;font-family:Lilita One,cursive;font-size:20px;font-weight:400}.modal-close{background:#fff3;border:none;color:#fff;width:30px;height:30px;border-radius:50%;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:background .15s}.modal-close:hover{background:#ffffff59}.modal-body{padding:24px;display:flex;flex-direction:column;gap:16px}.modal-body p{margin:0;color:#334155;font-weight:600;line-height:1.6}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid #e8f0fc;background:#f8faff}.form-row{display:flex;gap:14px}.form-row .form-field{flex:1}.form-field{display:flex;flex-direction:column;gap:6px}.form-field.full-width{width:100%}.form-field label{font-size:13px;font-weight:800;color:#475569;text-transform:uppercase;letter-spacing:.4px}.label-hint{font-size:11px;font-weight:600;color:#94a3b8;text-transform:none;letter-spacing:0}.form-field input,.form-field select{border:2px solid #dbe8f8;border-radius:10px;padding:10px 14px;font-family:Nunito,sans-serif;font-size:14px;font-weight:600;color:#1e293b;outline:none;transition:border-color .2s,box-shadow .2s;background:#fff}.form-field input:focus,.form-field select:focus{border-color:var(--blue)}.checkbox-picker{display:flex;flex-wrap:wrap;gap:8px;padding:10px;background:#f8faff;border:1.5px solid #e0e8f5;border-radius:12px;max-height:180px;overflow-y:auto}.checkbox-option{display:flex;align-items:center;gap:7px;background:#fff;border:1.5px solid #e4eaf6;border-radius:20px;padding:5px 12px 5px 8px;font-size:.85rem;cursor:pointer;transition:border-color .15s,background .15s;-webkit-user-select:none;user-select:none}.checkbox-option input[type=checkbox]{width:15px;height:15px;accent-color:var(--blue);cursor:pointer}.checkbox-option:has(input:checked){background:#e8f0ff;border-color:var(--blue)}.checkbox-dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex-shrink:0}.checkbox-dot-class{background:var(--blue)}.picker-empty{font-size:.83rem;color:#aaa;font-style:italic;padding:4px 0}.picker-sub{font-size:.78rem;color:#999}.form-field input:focus,.form-field select:focus{box-shadow:0 0 0 3px #0078f426}.form-field input::placeholder{color:#94a3b8}.class-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;margin-top:8px}.class-card{border-radius:18px;padding:24px 20px 18px;cursor:pointer;transition:transform .15s ease,box-shadow .12s ease;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden;color:#fff}.class-card:after{content:"";position:absolute;right:-20px;bottom:-20px;width:100px;height:100px;border-radius:50%;background:#ffffff1f;pointer-events:none}.class-card:hover{transform:translateY(-5px);filter:brightness(1.06)}.class-card:active{transform:translateY(3px);filter:brightness(.94)}.class-card:nth-child(6n+1){background:linear-gradient(135deg,#0078f4,#0055b0);box-shadow:0 6px #0040a0,0 10px 24px #0078f459}.class-card:nth-child(6n+2){background:linear-gradient(135deg,#f87507,#c45c00);box-shadow:0 6px #a04500,0 10px 24px #f8750759}.class-card:nth-child(6n+3){background:linear-gradient(135deg,#7c3aed,#5b21b6);box-shadow:0 6px #4c1d95,0 10px 24px #7c3aed59}.class-card:nth-child(6n+4){background:linear-gradient(135deg,#059669,#047857);box-shadow:0 6px #065f46,0 10px 24px #05966959}.class-card:nth-child(6n+5){background:linear-gradient(135deg,#e53e3e,#9b1c1c);box-shadow:0 6px #7f1d1d,0 10px 24px #e53e3e59}.class-card:nth-child(6n+6){background:linear-gradient(135deg,#0891b2,#0e7490);box-shadow:0 6px #155e75,0 10px 24px #0891b259}.class-card-name{font-family:Lilita One,cursive;font-size:28px;color:#fff;margin-bottom:4px;text-shadow:0 2px 6px rgba(0,0,0,.2)}.class-card-desc{font-size:13px;color:#fffc;font-weight:600;margin-bottom:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.class-card-stats{display:flex;gap:12px;margin-top:14px}.class-stat{display:flex;flex-direction:column;align-items:center;flex:1;background:#fff3;border-radius:10px;padding:8px 4px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.class-stat-num{font-size:20px;font-weight:900;color:#fff;line-height:1}.class-stat-label{font-size:10px;font-weight:800;color:#ffffffbf;text-transform:uppercase;letter-spacing:.3px;margin-top:2px}.class-card-hint{font-size:11px;color:#ffffff8c;font-weight:600;margin-top:12px;text-align:center}.class-card-add{display:flex;flex-direction:column;align-items:center;justify-content:center;border:2.5px dashed #b8ccf0;background:#f8fbff;box-shadow:none;min-height:160px;transition:background .15s,border-color .15s,transform .12s}.class-card-add:hover{background:#edf4ff;border-color:var(--blue);transform:translateY(-2px)}.class-card-add:active{transform:translateY(2px)}.class-card-add-icon{font-size:40px;color:#fff;opacity:.9;line-height:1}.class-card-add-label{font-size:14px;font-weight:800;color:#fff;opacity:1;margin-top:8px}.niveles-container{display:flex;flex-direction:column;gap:28px;padding-bottom:24px}.nivel-section{border:2px solid rgba(0,0,0,.45);border-radius:20px;padding:20px 20px 16px;background:#ffffff0f;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:border-color .2s,background .2s,box-shadow .2s;position:relative}.nivel-section.nivel-drag-over{border-color:var(--blue);background:#0078f40f;box-shadow:0 0 0 4px #0078f41f,0 8px 32px #0000001a}.nivel-section.nivel-block-drag-over{border-color:#f87507;background:#f875070d;box-shadow:0 0 0 4px #f875072e,0 8px 32px #0000001a;transition:border-color .15s,box-shadow .15s}.nivel-section.nivel-block-dragging{opacity:.45;border-style:dashed}.nivel-block-handle{font-size:18px;color:#00000047;cursor:grab;padding:2px 4px;border-radius:6px;line-height:1;flex-shrink:0;transition:color .15s,background .15s}.nivel-block-handle:hover{color:#0000008c;background:#0000000f}.nivel-block-handle:active{cursor:grabbing}.nivel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:12px}.nivel-title-wrap{display:flex;align-items:center;gap:8px}.nivel-title{font-size:16px;font-weight:800;color:#1a2540;letter-spacing:.3px}.nivel-count{font-size:12px;color:#00000073;font-weight:600}.nivel-btn{background:none;border:none;cursor:pointer;font-size:13px;padding:2px 5px;border-radius:6px;opacity:.6;transition:opacity .15s,background .15s}.nivel-btn:hover{opacity:1;background:#00000014}.nivel-btn-del{color:#f87171;font-size:11px}.nivel-rename-input{background:#fff;border:1.5px solid rgba(0,0,0,.25);border-radius:8px;color:#1a2540;font-size:14px;font-weight:700;padding:4px 12px;outline:none;min-width:180px}.nivel-rename-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #0078f426}.nivel-rename-input::placeholder{color:#00000059}.class-card-dragging{opacity:.35;transform:scale(.97);pointer-events:none}.class-card{position:relative}.class-card-drag-handle{position:absolute;top:8px;right:10px;font-size:16px;color:#fff6;cursor:grab;line-height:1;-webkit-user-select:none;user-select:none}.class-card-drag-handle:active{cursor:grabbing}.add-nivel-row{display:flex;align-items:center;gap:10px;padding:4px 0 0}.btn-add-nivel{background:transparent;border:2px dashed rgba(0,0,0,.25);border-radius:12px;color:#00000080;font-size:14px;font-weight:700;padding:10px 24px;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.btn-add-nivel:hover{background:#0078f412;border-color:var(--blue);color:var(--blue)}.invite-code-modal{max-width:480px!important;width:96vw}.invite-code-desc{font-size:13.5px;color:#6b7280;margin-bottom:20px;line-height:1.5}.invite-code-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:14px;background:#f7f9fc;border:1.5px solid #e5e9f0;margin-bottom:10px;transition:border-color .15s}.invite-code-label-wrap{display:flex;align-items:center;gap:8px;min-width:120px}.invite-code-icon{font-size:18px}.invite-code-name{font-size:14px;font-weight:700;color:#1a2540}.invite-badge{font-size:10px;font-weight:800;padding:2px 8px;border-radius:20px;letter-spacing:.4px;text-transform:uppercase}.invite-badge-fixed{background:#dcfce7;color:#15803d}.invite-badge-temp{background:#fef3c7;color:#b45309}.invite-code-box{display:flex;align-items:center;gap:8px;background:#fff;border:1.5px solid #d1d5db;border-radius:10px;padding:8px 12px;flex:1;min-width:0}.invite-code-box-clave{border-color:#fbbf24;background:#fffbeb}.invite-code-value{font-family:Courier New,Courier,monospace;font-size:18px;font-weight:800;letter-spacing:3px;color:#1a2540;flex:1;text-align:center}.invite-copy-btn{background:none;border:none;font-size:18px;cursor:pointer;color:#9ca3af;padding:0 2px;transition:color .15s,transform .15s;line-height:1;flex-shrink:0}.invite-copy-btn:hover{color:var(--blue);transform:scale(1.2)}.invite-copy-btn.copied{color:#22c55e;transform:scale(1.1)}.invite-code-note{font-size:12.5px;color:#9ca3af;margin-top:14px;padding:10px 14px;background:#f9fafb;border-radius:10px;border:1px dashed #e5e7eb}.context-menu{position:fixed;background:#fff;border-radius:12px;padding:6px;box-shadow:0 8px 32px #0000002e,0 2px 8px #0000001a;z-index:2000;min-width:170px;animation:modalSlideIn .15s ease}.context-item{display:flex;align-items:center;gap:8px;width:100%;padding:9px 12px;border:none;background:transparent;border-radius:8px;font-family:Nunito,sans-serif;font-size:14px;font-weight:700;color:#334155;cursor:pointer;text-align:left;transition:background .12s}.context-item:hover{background:#f0f6ff;color:var(--blue)}.context-item-danger{color:#e53e3e}.context-item-danger:hover{background:#fff5f5;color:#c53030}.context-divider{margin:4px 0;border:none;border-top:1px solid #e8f0fc}.context-overlay{position:fixed;inset:0;z-index:1999;background:transparent}.class-detail-header{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #e8f0fc}.class-detail-title{font-family:Lilita One,cursive;font-size:26px;color:#1e293b;margin:0;flex:1}.class-detail-desc{font-family:Nunito,sans-serif;font-size:16px;font-weight:600;color:#64748b}.mode-switcher{display:flex;gap:0;background:#e8f0fc;border-radius:12px;padding:4px}.mode-btn{border:none;background:transparent;border-radius:8px;padding:8px 16px;font-family:Nunito,sans-serif;font-size:14px;font-weight:800;color:#64748b;cursor:pointer;transition:background .15s,color .15s,box-shadow .1s}.mode-btn.active{background:var(--blue);color:#fff;box-shadow:0 2px 8px #0078f44d}.clase-mode{display:flex;flex-direction:column;gap:16px}.action-buttons-grid{display:flex;flex-wrap:wrap;gap:10px}.btn-action{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:10px;padding:12px 18px;flex:1;min-width:80px;text-align:left;line-height:1.25;font-size:13px;font-weight:800;white-space:nowrap}.btn-action-icon{width:44px;height:44px;object-fit:contain;flex-shrink:0}.action-buttons-grid .btn:disabled{opacity:.4;cursor:not-allowed;transform:none!important;box-shadow:0 2px #00000026!important}.action-hint{margin:0;font-size:13px;font-weight:700;color:#94a3b8;font-style:italic}.student-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.student-toolbar .search-bar-wrap{flex:1;margin-bottom:0;min-width:200px}.student-toolbar-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.checkbox-label{display:flex;align-items:center;gap:6px;font-weight:700;font-size:14px;color:#475569;cursor:pointer}.student-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px}.student-card{background:#fff;border-radius:14px;padding:14px;border-bottom:3px solid #c8d8f0;box-shadow:0 3px #c8d8f0,0 5px 14px #0078f412;transition:transform .12s,box-shadow .12s,opacity .12s;cursor:pointer}.student-card.selected{border-color:var(--orange);box-shadow:0 3px 0 var(--orange-dark),0 5px 14px #f875072e;background:#fff8f0}.student-card.inactive{opacity:.42;filter:grayscale(.5)}.student-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.student-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--orange));color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:900;text-transform:uppercase}.student-toggle{background:none;border:none;cursor:pointer;font-size:16px;padding:0;line-height:1}.student-name{font-size:13px;font-weight:800;color:#1e293b;margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-stats{display:flex;gap:8px;font-size:11px;font-weight:700;color:#64748b}.toast-success{position:fixed;top:20px;right:20px;background:#22c55e;color:#fff;padding:12px 20px;border-radius:12px;font-size:14px;font-weight:800;box-shadow:0 4px 16px #22c55e66;z-index:3000;animation:fadeIn .3s ease}.edit-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:8px}.edit-col{background:#fff;border-radius:16px;border-bottom:4px solid #c0cfe8;box-shadow:0 4px #c0cfe8,0 6px 20px #0078f412;overflow:hidden}.goal-row{display:flex;align-items:center;gap:20px;flex-wrap:wrap;background:#fff;border-radius:14px;border-bottom:3px solid #c0cfe8;box-shadow:0 3px #c0cfe8,0 4px 16px #0078f412;padding:14px 20px;margin-bottom:16px}.goal-row-label{display:flex;align-items:center;gap:8px;min-width:160px}.goal-row-icon{font-size:22px}.goal-row-title{font-family:Lilita One,cursive;font-size:16px;color:#1e293b}.goal-row-value{display:flex;align-items:baseline;gap:6px}.goal-number-inline{font-family:Lilita One,cursive;font-size:28px;color:var(--blue);line-height:1}.goal-stepper{display:flex;align-items:center;gap:8px}.goal-step-btn{width:36px;height:36px;border-radius:8px;border:1.5px solid #cbd5e1;background:#f8fafc;font-size:15px;font-weight:800;color:var(--blue);cursor:pointer;transition:background .15s}.goal-step-btn:hover:not(:disabled){background:#e0eaff;border-color:var(--blue)}.goal-step-btn:disabled{opacity:.4;cursor:default}.goal-step-val{font-family:Lilita One,cursive;font-size:22px;color:#1e293b;min-width:36px;text-align:center}.goal-warning-inline{font-size:11px;color:#92400e;background:#fef3c7;border-radius:6px;padding:5px 10px}.goal-locked{font-size:12px;color:#64748b;background:#f1f5f9;border-radius:8px;padding:8px 14px;line-height:1.5}.goal-label{font-size:13px;color:#64748b;font-weight:600}.goal-modal-warning{margin-top:12px;background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;padding:12px 14px;font-size:13px;color:#92400e;line-height:1.5}.edit-col-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:linear-gradient(135deg,var(--blue),#0060cc);color:#fff}.edit-col-title{margin:0;font-family:Lilita One,cursive;font-size:16px;font-weight:400;color:#fff}.edit-col-limit{margin:0;padding:8px 16px;background:#fff8f0;font-size:12px;font-weight:700;color:var(--orange-dark);border-bottom:1px solid #fed7aa}.edit-list{padding:8px;display:flex;flex-direction:column;gap:6px}.edit-list-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;background:#f8faff;transition:background .12s}.edit-list-item:hover{background:#edf4ff}.edit-list-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--orange));color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:900;flex-shrink:0;text-transform:uppercase}.edit-list-info{flex:1;min-width:0}.edit-list-name{font-size:13px;font-weight:800;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.edit-list-sub{font-size:11px;font-weight:600;color:#94a3b8;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.edit-empty{text-align:center;padding:20px;font-size:13px;font-weight:700;color:#cbd5e1;font-style:italic}.toolbar-info{display:flex;gap:10px;align-items:center}.info-chip{display:inline-flex;align-items:center;gap:5px;background:#e8f0fe;color:var(--blue);border-radius:20px;padding:6px 14px;font-size:13px;font-weight:800}.info-chip.chip-orange{background:#fff3e0;color:var(--orange-dark)}.xp-chip{display:inline-block;background:#ffffff26;color:#fff;border-radius:20px;padding:3px 10px;font-size:12px;font-weight:800;white-space:nowrap}.gem-chip{display:inline-block;background:linear-gradient(135deg,#fce4ec,#f8bbd0);color:#c2185b;border-radius:20px;padding:3px 10px;font-size:12px;font-weight:800;white-space:nowrap}.coin-chip{display:inline-block;background:linear-gradient(135deg,#fff9c4,#fff176);color:#f57f17;border-radius:20px;padding:3px 10px;font-size:12px;font-weight:800;white-space:nowrap}.power-chip{display:inline-block;background:linear-gradient(135deg,#e3f2fd,#bbdefb);color:#1565c0;border-radius:20px;padding:3px 10px;font-size:12px;font-weight:800;white-space:nowrap}.status-toggle-btn{border:none;border-radius:20px;padding:5px 12px;font-family:Nunito,sans-serif;font-size:12px;font-weight:800;cursor:pointer;transition:transform .1s,box-shadow .1s;white-space:nowrap}.status-toggle-btn.status-active{background:#dcfce7;color:#166534;box-shadow:0 2px #86efac}.status-toggle-btn.status-active:hover{background:#bbf7d0}.status-toggle-btn.status-inactive{background:#fee2e2;color:#991b1b;box-shadow:0 2px #fca5a5}.status-toggle-btn.status-inactive:hover{background:#fecaca}.status-toggle-btn:active{transform:translateY(2px);box-shadow:none}.data-table tbody tr.row-inactive{opacity:.55;filter:grayscale(.4)}.data-table tbody tr.row-inactive:hover{opacity:.75}.delete-warning-box{background:#fff5f5;border:2px solid #feb2b2;border-radius:12px;padding:16px 18px}.delete-warning-title{margin:0 0 10px;font-size:14px;font-weight:800;color:#c53030}.delete-warning-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}.delete-warning-list li{font-size:13px;font-weight:600;color:#742a2a;line-height:1.5}.student-nick{font-size:12px;font-weight:800;color:#7c3aed}.student-email{font-size:12px;font-weight:600;color:#64748b;margin-top:2px}.col-filter-hint{display:flex;align-items:center;gap:8px;background:#fffbeb;border:1.5px solid #fcd34d;border-radius:10px;padding:7px 14px;font-size:13px;font-weight:700;color:#92400e;margin-bottom:10px}.link-btn{background:none;border:none;color:var(--blue);font-size:12px;font-weight:800;cursor:pointer;padding:2px 4px;border-radius:4px;font-family:Nunito,sans-serif;text-decoration:underline;text-underline-offset:2px}.link-btn:hover{background:#e8f0fe}.data-table th.th-filterable{padding:0}.th-inner{display:flex;align-items:center;justify-content:space-between;gap:4px;padding:12px 14px;white-space:nowrap}.th-inner .sortable{cursor:pointer;flex:1}.col-filter-btn{flex-shrink:0;width:22px;height:22px;border-radius:5px;border:1.5px solid rgba(255,255,255,.3);background:#ffffff1f;color:#fffc;font-size:9px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s;line-height:1;padding:0}.col-filter-btn:hover{background:#ffffff40;color:#fff}.col-filter-btn.col-filter-active{background:var(--orange);border-color:var(--orange-dark);color:#fff;box-shadow:0 0 0 3px #f8750740}.col-filter-wrap{position:relative}.col-filter-dropdown{position:absolute;top:calc(100% + 4px);right:0;z-index:9999;background:#fff;border:1.5px solid #e2e8f0;border-radius:12px;box-shadow:0 8px 32px #0000002e;min-width:180px;max-height:260px;overflow-y:auto;padding:8px 0;animation:dropdownIn .15s ease}@keyframes dropdownIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.col-filter-actions{display:flex;gap:4px;padding:4px 12px 8px;border-bottom:1.5px solid #f1f5f9;margin-bottom:4px}.col-filter-item{display:flex;align-items:center;gap:8px;padding:6px 14px;cursor:pointer;font-size:13px;font-weight:700;color:#334155;transition:background .1s;-webkit-user-select:none;user-select:none}.col-filter-item:hover{background:#f8fafc}.col-filter-item input[type=checkbox]{width:15px;height:15px;accent-color:var(--blue);cursor:pointer;flex-shrink:0}.bulk-warn-box{background:#fffbeb;border:1.5px solid #fcd34d;border-radius:10px;padding:12px 16px;font-size:13px;font-weight:700;color:#92400e;margin-bottom:18px;line-height:1.6}.bulk-common-badge{display:inline-block;background:#d1fae5;color:#065f46;font-size:11px;font-weight:800;border-radius:6px;padding:2px 8px;margin-left:8px;vertical-align:middle}.bulk-mixed-badge{display:inline-block;background:#fef3c7;color:#78350f;font-size:11px;font-weight:800;border-radius:6px;padding:2px 8px;margin-left:8px;vertical-align:middle}.bulk-activo-btns{display:flex;gap:8px;margin-top:6px}.bulk-estado-btn{flex:1;padding:8px 12px;border-radius:10px;border:2px solid #e2e8f0;background:#f8fafc;font-size:13px;font-weight:800;cursor:pointer;font-family:Nunito,sans-serif;transition:all .15s;color:#64748b}.bulk-estado-btn:hover{background:#f1f5f9;border-color:#cbd5e1}.bulk-estado-btn.bulk-estado-sel{border-color:var(--blue);background:#eff6ff;color:var(--blue);box-shadow:0 0 0 3px #0078f426}.bulk-estado-btn.bulk-activo.bulk-estado-sel{border-color:#16a34a;background:#f0fdf4;color:#15803d;box-shadow:0 0 0 3px #16a34a26}.bulk-estado-btn.bulk-inactivo.bulk-estado-sel{border-color:#dc2626;background:#fef2f2;color:#b91c1c;box-shadow:0 0 0 3px #dc262626}.materia-breadcrumb{display:flex;align-items:center;gap:6px;margin-bottom:18px;font-size:.92rem}.bc-item{color:#555;font-weight:600}.bc-link{color:var(--blue);cursor:pointer}.bc-link:hover{text-decoration:underline}.bc-sep{color:#aaa;font-size:1.1rem}.materia-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.materia-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px}.materia-card{border-radius:18px;padding:20px 18px 16px;cursor:pointer;transition:transform .15s ease,box-shadow .12s ease,filter .12s ease;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden;color:#fff;border:none;box-shadow:0 5px #00000040,0 8px 20px #0000002e}.materia-card:after{content:"";position:absolute;right:-20px;bottom:-20px;width:100px;height:100px;border-radius:50%;background:#ffffff1f;pointer-events:none}.materia-card:hover{transform:translateY(-5px);filter:brightness(1.06);box-shadow:0 8px #00000038,0 14px 28px #0003}.materia-card:active{transform:translateY(3px);filter:brightness(.94);box-shadow:0 2px #00000047,0 4px 10px #00000026}.materia-card-icon-row{font-size:2.2rem;padding:16px 0 8px;text-align:center}.materia-card-body{padding:0 14px 10px}.materia-card-body h3{margin:0 0 4px;font-size:1rem;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.15)}.materia-card-desc{font-size:.82rem;color:#fffc;margin:0 0 8px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.materia-card-stats{font-size:.78rem;color:#ffffffb3;font-weight:600}.materia-card-actions{display:flex;gap:6px;padding:10px 14px 14px;justify-content:flex-end}.btn-icon-white{background:#ffffff40;color:#595959;width:36px;height:36px;border-radius:10px;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s}.btn-icon-white svg{width:16px;height:16px}.btn-icon-white:hover{background:#fff6;transform:scale(1.08)}.btn-icon-white:active{transform:scale(.95)}.btn-icon-white-red{background:#fff3;color:#fff;width:36px;height:36px;border-radius:10px;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s}.btn-icon-white-red svg{width:16px;height:16px}.btn-icon-white-red:hover{background:#ef4444b3;transform:scale(1.08)}.btn-icon-white-red:active{transform:scale(.95)}.hier-panel{background:#fff;border-radius:16px;border:1.5px solid #e5eaf2;padding:20px;width:100%}.hier-add-row{display:flex;gap:10px;margin-bottom:16px}.hier-input{flex:1;border:1.5px solid #dde3ee;border-radius:10px;padding:8px 14px;font-size:.92rem;outline:none}.hier-input:focus{border-color:var(--blue)}.hier-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.hier-item{display:flex;align-items:center;gap:10px;background:#f4f7ff;border-radius:12px;padding:12px 14px;cursor:pointer;transition:background .15s}.hier-item:hover{background:#e8eeff}.hier-icon{font-size:1.2rem}.hier-name{flex:1;font-weight:600;font-size:.95rem;color:#1e293b}.hier-count{font-size:.78rem;color:#aaa;font-weight:600}.hier-del{margin-left:4px}.pregunta-list{display:flex;flex-direction:column;gap:16px;width:100%}.pregunta-card{background:#fff;border:1.5px solid #e5eaf2;border-radius:16px;padding:18px 20px;transition:border-color .15s}.pregunta-card.pregunta-importante{border-color:#f7c44f;background:#fffbee}.pregunta-top{display:flex;align-items:center;gap:10px;margin-bottom:12px}.pregunta-num{background:var(--blue);color:#fff;font-size:.75rem;font-weight:800;padding:3px 9px;border-radius:20px}.importante-badge{background:#fef3c7;color:#d97706;font-size:.75rem;font-weight:700;padding:3px 10px;border-radius:20px}.pregunta-actions{display:flex;gap:6px;margin-left:auto}.pregunta-enunciado{font-size:.97rem;font-weight:600;color:#1e293b;margin:0 0 14px;line-height:1.5}.pregunta-respuestas{display:flex;flex-direction:column;gap:6px}.respuesta{display:flex;align-items:center;gap:10px;background:#f4f7ff;border-radius:10px;padding:8px 14px;border:1.5px solid transparent}.respuesta.respuesta-correcta{background:#ecfdf5;border-color:#34d399}.respuesta-letra{width:26px;height:26px;border-radius:50%;background:#dde3ee;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:800;flex-shrink:0}.respuesta-correcta .respuesta-letra{background:#34d399;color:#fff}.respuesta-texto{flex:1;font-size:.9rem;color:#374151}.respuesta-check{color:#059669;font-weight:800;font-size:1rem}.btn-icon-star{background:#fef3c7;color:#d97706;width:36px;height:36px;border-radius:10px;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s}.btn-icon-star svg{width:16px;height:16px}.btn-icon-star:hover{background:#fde68a;transform:scale(1.08)}.btn-icon-star:active{transform:scale(.95)}.color-swatches{display:flex;gap:10px;flex-wrap:wrap}.color-swatch{width:32px;height:32px;border-radius:50%;cursor:pointer;border:3px solid transparent;transition:transform .15s,border-color .15s}.color-swatch:hover{transform:scale(1.15)}.color-swatch.color-swatch-sel{border-color:#1e293b;transform:scale(1.15)}.modal-card-lg{max-width:560px}.pregunta-textarea{width:100%;border:1.5px solid #dde3ee;border-radius:10px;padding:10px 14px;font-size:.93rem;font-family:inherit;resize:vertical;outline:none;box-sizing:border-box}.pregunta-textarea:focus{border-color:var(--blue)}.pregunta-respuestas-form{display:flex;flex-direction:column;gap:10px;margin-top:4px}.pregunta-resp-row{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:12px;border:1.5px solid #e5eaf2;background:#f9fafb}.pregunta-resp-row.pregunta-resp-correcta{border-color:#34d399;background:#f0fdf4}.resp-radio-label{display:flex;align-items:center;gap:8px;cursor:pointer}.resp-letra-pill{width:28px;height:28px;border-radius:50%;background:var(--blue);color:#fff;font-weight:800;font-size:.8rem;display:flex;align-items:center;justify-content:center}.resp-input{flex:1;border:none;background:transparent;font-size:.92rem;outline:none;color:#1e293b}.resp-input::placeholder{color:#bbb}.resp-correcta-label{font-size:.78rem;font-weight:700;color:#059669;white-space:nowrap}.importante-check-label{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:.9rem;font-weight:600;color:#374151;cursor:pointer}.importante-check-label input{width:16px;height:16px;accent-color:var(--blue)}.hier-sel-bar{display:flex;align-items:center;justify-content:space-between;background:#e8eeff;border:1.5px solid #c7d4ff;border-radius:12px;padding:10px 16px;margin-bottom:12px;font-size:.9rem;font-weight:600;color:#1e40af}.hier-sel-actions{display:flex;gap:8px}.hier-checkbox{width:17px;height:17px;accent-color:var(--blue);flex-shrink:0;cursor:pointer}.hier-item-selected{background:#dbe9ff!important;border-left:3px solid var(--blue)}.pregunta-selected{border-color:var(--blue)!important;box-shadow:0 0 0 2px #0050dc26}.btn-collapse{background:#f0f4ff;color:#5b7edb;width:30px;height:30px;border-radius:8px;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,transform .15s}.btn-collapse svg{width:14px;height:14px}.btn-collapse:hover{background:#dce7ff}.modal-confirm-card{max-width:420px}.confirm-message{font-size:.97rem;color:#374151;line-height:1.6;margin:0}.form-select{width:100%;border:1.5px solid #dde3ee;border-radius:10px;padding:9px 14px;font-size:.92rem;font-family:inherit;outline:none;background:#fff;cursor:pointer}.form-select:focus{border-color:var(--blue)}.class-student-list-wrap{width:100%;overflow-x:auto;border-radius:14px;box-shadow:0 2px 12px #0000000f}.class-student-table{width:100%;border-collapse:collapse;background:#fff;font-size:.88rem}.class-student-table thead tr{background:linear-gradient(90deg,#05c,#0078f4);color:#fff;text-align:left}.class-student-table thead th{padding:11px 14px;font-weight:600;font-size:.78rem;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap}.class-student-table tbody tr{border-bottom:1px solid #f0f4fa;transition:background .12s}.class-student-table tbody tr:hover{background:#f5f8ff}.class-student-table tbody tr:last-child{border-bottom:none}.class-student-table tbody td{padding:10px 14px;vertical-align:middle}.class-student-table .col-check{width:40px;text-align:center}.class-student-table .col-num{width:40px;color:#a0aec0;font-weight:700}.class-student-table .col-center{text-align:center}.class-student-table tr.cs-selected{background:#dbe9ff!important}.class-student-table tr.cs-inactive{opacity:.55}.cs-name-cell{display:flex;align-items:center;gap:10px}.cs-avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#0078f4,#0055b0);color:#fff;font-size:.78rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.cs-muted{color:#94a3b8}.cs-xp{font-weight:700;color:#1a2540}.cs-gems{font-weight:700;color:#e91e8c}.cs-coins{font-weight:700;color:#f59e0b}.cs-power{font-weight:700;color:#3b82f6}.stat-th{font-weight:800;font-size:12px}.stat-th.stat-xp{color:#f8fafc}.stat-th.stat-gems{color:#f472b6}.stat-th.stat-coins{color:#fbbf24}.stat-th.stat-power{color:#60a5fa}.stat-inline{font-weight:700;font-size:12px}.stat-inline.stat-xp{color:#6b7280}.stat-inline.stat-gems{color:#db2777}.stat-inline.stat-coins{color:#d97706}.stat-inline.stat-power{color:#2563eb}.cs-status-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:1.5px solid #e2e8f0;border-radius:20px;padding:4px 10px;font-size:.78rem;cursor:pointer;transition:background .12s,border-color .12s}.cs-status-btn:hover{background:#f0f4fa}.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-dot-active{background:#22c55e}.status-dot-inactive{background:#f87171}.class-student-table .cs-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.class-student-table .cs-sortable:hover{background:#ffffff26}.cs-sort-icon{font-size:.75rem;opacity:.85;margin-left:4px}.profile-section{display:flex;flex-direction:column;gap:28px}.profile-hero{display:flex;align-items:center;gap:28px;flex-wrap:wrap;background:#fff;border-radius:20px;border-bottom:4px solid #c0cfe8;box-shadow:0 4px #c0cfe8,0 8px 32px #0078f414;padding:28px 32px}.profile-avatar-wrap{position:relative;flex-shrink:0}.profile-avatar-ring{width:96px;height:96px;border-radius:50%;background:linear-gradient(135deg,var(--blue),#0055b0);display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 0 0 4px #dbeafe,0 4px 16px #0078f440}.profile-avatar-img{width:100%;height:100%;object-fit:cover}.profile-avatar-initials{font-family:Lilita One,cursive;font-size:38px;color:#fff}.profile-avatar-edit{position:absolute;bottom:0;right:0;width:28px;height:28px;border-radius:50%;background:#fff;border:2px solid #e2e8f0;display:flex;align-items:center;justify-content:center;font-size:13px;cursor:pointer;box-shadow:0 2px 8px #0000001f;transition:transform .15s}.profile-avatar-edit:hover{transform:scale(1.15)}.profile-hero-info{flex:1;min-width:200px;display:flex;flex-direction:column;gap:6px}.profile-name{font-family:Lilita One,cursive;font-size:26px;color:#1e293b;margin:0}.profile-email{font-size:14px;color:#64748b;margin:0}.profile-desc{font-size:13px;color:#475569;margin:0}.profile-quick-stats{display:flex;gap:16px;flex-wrap:wrap}.pqs-chip{display:flex;flex-direction:column;align-items:center;background:#f0f7ff;border-radius:14px;padding:12px 20px;min-width:70px;border-bottom:3px solid #bfdbfe}.pqs-num{font-family:Lilita One,cursive;font-size:24px;color:var(--blue)}.pqs-label{font-size:11px;color:#64748b;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.profile-section-title{font-family:Lilita One,cursive;font-size:20px;color:#1e293b;margin:0}.profile-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px}.profile-stat-card{border-radius:16px;padding:20px 16px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;border-bottom:4px solid transparent;box-shadow:0 3px 12px #00000012;transition:transform .15s}.profile-stat-card:hover{transform:translateY(-3px)}.psc-icon{font-size:28px}.psc-num{font-family:Lilita One,cursive;font-size:30px}.psc-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;opacity:.75}.psc-blue{background:#eff6ff;border-color:#93c5fd}.psc-blue .psc-num{color:#1d4ed8}.psc-orange{background:#fff7ed;border-color:#fcd34d}.psc-orange .psc-num{color:#c2410c}.psc-green{background:#f0fdf4;border-color:#86efac}.psc-green .psc-num{color:#15803d}.psc-purple{background:#faf5ff;border-color:#d8b4fe}.psc-purple .psc-num{color:#7c3aed}.psc-pink{background:#fdf2f8;border-color:#f0abfc}.psc-pink .psc-num{color:#a21caf}.psc-gold{background:#fefce8;border-color:#fde047}.psc-gold .psc-num{color:#a16207}.profile-settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.profile-setting-card{background:#fff;border-radius:14px;border-bottom:3px solid #e2e8f0;box-shadow:0 2px 8px #0000000f;padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;transition:box-shadow .15s}.profile-setting-card:hover{box-shadow:0 4px 16px #0000001a}.profile-setting-danger{border-color:#fecaca}.psc-header{display:flex;align-items:center;gap:14px;flex:1;min-width:0}.psc-setting-icon{font-size:24px;flex-shrink:0}.psc-setting-title{font-weight:700;font-size:14px;color:#1e293b}.psc-setting-desc{font-size:12px;color:#64748b;margin-top:2px}.code-badge{font-family:monospace;background:#f1f5f9;border-radius:4px;padding:1px 6px;font-size:13px;color:var(--blue)}.coming-soon-badge{background:#f1f5f9;color:#64748b;border-radius:20px;padding:4px 12px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.profile-edit-card{background:#fff;border-radius:16px;border-bottom:4px solid #c0cfe8;box-shadow:0 4px #c0cfe8,0 6px 20px #0078f412;padding:24px;animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.profile-edit-title{font-family:Lilita One,cursive;font-size:18px;color:#1e293b;margin:0 0 18px}.profile-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.profile-edit-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}.dark-toggle-btn{width:52px;height:28px;border-radius:14px;background:#cbd5e1;border:none;cursor:pointer;position:relative;transition:background .25s;flex-shrink:0}.dark-toggle-btn.active{background:var(--blue)}.dark-toggle-thumb{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:11px;background:#fff;box-shadow:0 2px 6px #0003;transition:left .25s}.dark-toggle-btn.active .dark-toggle-thumb{left:27px}.roles-section{display:flex;flex-direction:column;gap:20px}.roles-intro{font-size:14px;color:#64748b;margin:0}.roles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.role-card{background:#fff;border-radius:14px;border-left:5px solid #0078f4;border-bottom:3px solid #e2e8f0;box-shadow:0 2px 10px #0000000f;padding:18px 20px;display:flex;flex-direction:column;gap:14px;transition:box-shadow .15s}.role-card:hover{box-shadow:0 6px 20px #0000001a}.role-card-header{display:flex;align-items:center;gap:14px}.rol-avatar{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-family:Lilita One,cursive;font-size:20px;color:#fff;flex-shrink:0}.role-info{flex:1;min-width:0}.role-name{font-weight:800;font-size:15px;color:#1e293b}.role-desc{font-size:12px;color:#64748b;margin-top:2px}.role-perms-summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.perm-count-chip{border-radius:20px;padding:3px 10px;font-size:11px;font-weight:700}.perm-group-dot{width:28px;height:28px;border-radius:8px;border:1.5px solid #e2e8f0;display:flex;align-items:center;justify-content:center;font-size:14px;opacity:.3;transition:opacity .15s;cursor:default}.perm-group-dot.active{opacity:1}.role-card-actions{display:flex;align-items:center;gap:8px}.locked-badge{font-size:11px;color:#94a3b8;background:#f1f5f9;border-radius:20px;padding:4px 10px;font-weight:700}.role-editor{background:#fff;border-radius:16px;border-bottom:4px solid #c0cfe8;box-shadow:0 4px #c0cfe8,0 6px 20px #0078f412;padding:24px;animation:slideDown .2s ease}.role-editor-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.role-editor-title{font-family:Lilita One,cursive;font-size:18px;color:#1e293b;margin:0}.role-editor-meta{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-bottom:20px}@media(max-width:700px){.role-editor-meta{grid-template-columns:1fr}}.color-pick-row{display:flex;align-items:center;gap:10px}.color-pick-input{width:40px;height:36px;border-radius:8px;border:1.5px solid #cbd5e1;cursor:pointer;padding:2px}.perm-groups-title{font-family:Lilita One,cursive;font-size:16px;color:#1e293b;margin:0 0 12px}.perm-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:20px}.perm-group{background:#f8fafc;border-radius:10px;padding:12px 14px;border:1.5px solid #e2e8f0}.perm-group-header{margin-bottom:8px}.perm-group-toggle{display:flex;align-items:center;gap:8px;cursor:pointer}.perm-group-label{font-weight:800;font-size:13px;color:#1e293b}.perm-items{display:flex;flex-direction:column;gap:6px}.perm-item{display:flex;align-items:center;gap:8px;font-size:12px;color:#475569;cursor:pointer}.perm-item input{cursor:pointer;accent-color:var(--blue)}.role-editor-footer{display:flex;gap:10px;justify-content:flex-end}.login-tabs{display:flex;gap:0;margin-bottom:24px;background:#ffffff1a;border-radius:14px;padding:4px}.login-tab{flex:1;padding:10px 12px;border:2px solid var(--blue);background:transparent;border-radius:11px;font-family:Nunito,sans-serif;font-size:13px;font-weight:700;color:var(--blue);cursor:pointer;transition:all .18s}.login-tab.active{background:var(--orange, #f87507);border-color:var(--orange, #f87507);color:#fff;box-shadow:0 2px 8px #f8750759}.login-tab:hover:not(.active){background:#0078f414}.login-success{background:#f0fdf4;border:1.5px solid #86efac;color:#166534;font-weight:700;font-size:14px;padding:14px 16px;border-radius:12px;text-align:center}.superadmin-screen{position:fixed;inset:0;z-index:9000;background:var(--bg);display:flex;flex-direction:column;align-items:center;padding:48px 24px;overflow-y:auto}.superadmin-header{text-align:center;margin-bottom:36px}.superadmin-title{font-size:32px;font-weight:800;color:var(--blue);margin:0 0 8px}.superadmin-sub{color:#6b7280;font-size:15px;margin:0 0 16px}.superadmin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;width:100%;max-width:900px}.superadmin-empty{color:#9ca3af;font-size:15px;padding:40px;text-align:center;grid-column:1/-1}.superadmin-card{background:#fff;border-radius:18px;padding:20px 24px;display:flex;align-items:center;gap:16px;box-shadow:0 2px 12px #00000012;border:1.5px solid #e5e7eb;cursor:pointer;transition:transform .15s,box-shadow .15s,border-color .15s}.superadmin-card:hover{transform:translateY(-3px);box-shadow:0 6px 24px #0078f424;border-color:var(--blue)}.superadmin-card-icon{font-size:36px}.superadmin-card-info{flex:1}.superadmin-card-name{font-size:17px;font-weight:800;color:#1a2540;margin-bottom:2px}.superadmin-card-email{font-size:13px;color:#6b7280}.superadmin-card-date{font-size:12px;color:#9ca3af;margin-top:2px}.superadmin-card-arrow{font-size:20px;color:#d1d5db;font-weight:700}.superadmin-loading{font-size:18px;color:#6b7280;margin:40px 0}.superadmin-back{background:#ffffff24;border:1.5px solid rgba(255,255,255,.25);border-radius:10px;color:#ffffffd9;font-size:13px;font-weight:700;padding:8px 14px;cursor:pointer;margin-bottom:12px;transition:background .15s}.superadmin-back:hover{background:#ffffff38}.superadmin-viewing-badge{display:block;font-size:10px;font-weight:700;letter-spacing:.5px;color:#ffc800e6;text-transform:uppercase;margin-top:4px}.invite-hint{font-size:13px;color:#ffffffbf;margin:0 0 4px;line-height:1.5;text-align:center}.invite-dialog-overlay{position:fixed;inset:0;z-index:10000;background:#0000008c;display:flex;align-items:center;justify-content:center;padding:20px}.invite-dialog{background:#fff;border-radius:24px;padding:36px 32px 28px;max-width:480px;width:100%;box-shadow:0 12px 48px #00000047;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;animation:fadeIn .25s ease}.invite-dialog-icon{font-size:44px}.invite-dialog-title{font-size:20px;font-weight:800;color:#1a2540;margin:0}.invite-dialog-desc{font-size:14px;color:#6b7280;margin:0;line-height:1.55}.invite-link-box{background:#f3f4f6;border:1.5px solid #e5e7eb;border-radius:12px;padding:12px 16px;width:100%;word-break:break-all}.invite-link-text{font-size:12px;color:#374151;font-family:monospace;-webkit-user-select:all;user-select:all}.psc-clickable{cursor:pointer;transition:background .15s,box-shadow .15s}.psc-clickable:hover{background:#f0f6ff;box-shadow:0 2px 12px #0078f41a}.psc-arrow{font-size:20px;color:#d1d5db;font-weight:700;margin-left:8px}.role-matrix-overlay{position:fixed;inset:0;z-index:10000;background:#00000073;display:flex;align-items:center;justify-content:center;padding:20px}.role-matrix-panel{background:#fff;border-radius:24px;width:100%;max-width:860px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 12px 48px #00000038;animation:fadeIn .22s ease;overflow:hidden}.role-matrix-header{display:flex;align-items:flex-start;justify-content:space-between;padding:28px 32px 16px;border-bottom:1.5px solid #f3f4f6;flex-shrink:0}.role-matrix-title{font-size:20px;font-weight:800;color:#1a2540;margin:0 0 4px}.role-matrix-sub{font-size:13px;color:#6b7280;margin:0}.role-matrix-scroll{flex:1;overflow:auto;padding:0 32px}.role-matrix-table{width:100%;border-collapse:collapse;font-size:14px}.role-matrix-perm-col{min-width:220px;text-align:left;padding:14px 12px 14px 0;font-weight:700;color:#374151;position:sticky;left:0;background:#fff;font-size:12px;text-transform:uppercase;letter-spacing:.4px}.role-matrix-role-col{min-width:110px;text-align:center;padding:10px 8px;position:sticky;top:0;background:#fff;z-index:1;border-bottom:2px solid #f3f4f6}.role-matrix-role-header{display:flex;flex-direction:column;align-items:center;gap:4px;position:relative}.role-matrix-role-name{font-size:12px;font-weight:700;color:#1a2540}.role-matrix-del-btn{position:absolute;top:-4px;right:-4px;background:#fee2e2;border:none;color:#dc2626;border-radius:50%;width:16px;height:16px;font-size:9px;cursor:pointer;line-height:1;display:flex;align-items:center;justify-content:center}.role-matrix-del-btn:hover{background:#fca5a5}.rol-avatar-sm{width:32px!important;height:32px!important;font-size:15px!important}.role-matrix-group-row td{background:#f8fafc;font-size:12px;font-weight:800;color:#374151;text-transform:uppercase;letter-spacing:.5px;padding:8px 12px 8px 0;border-top:1.5px solid #e5e7eb}.role-matrix-perm-row:hover td{background:#f9fafb}.role-matrix-perm-label{padding:10px 16px 10px 0;color:#374151;font-size:13.5px;white-space:nowrap;position:sticky;left:0;background:#fff}.role-matrix-sub-perm .role-matrix-perm-label{padding-left:20px;color:#6b7280;font-size:12.5px}.role-matrix-cell{text-align:center;padding:8px;border-left:1px solid #f3f4f6}.role-matrix-check{display:flex;align-items:center;justify-content:center;cursor:pointer}.role-matrix-check input[type=checkbox]{width:18px;height:18px;accent-color:var(--blue);cursor:pointer}.role-matrix-check input[type=checkbox]:disabled{opacity:.4;cursor:not-allowed}.role-matrix-footer{display:flex;align-items:center;justify-content:space-between;padding:16px 32px 24px;border-top:1.5px solid #f3f4f6;flex-shrink:0}.role-matrix-edit-bar{display:flex;align-items:center;gap:10px;padding:12px 32px;background:#f0f6ff;border-bottom:1.5px solid #dbeafe;flex-shrink:0;flex-wrap:wrap}.role-matrix-add-bar{background:#f0fdf4;border-bottom-color:#bbf7d0}.role-matrix-edit-label{font-size:13px;font-weight:700;color:#1e40af;white-space:nowrap}.form-input-sm{height:34px;font-size:13px;padding:6px 12px;border-radius:8px;border:1.5px solid #e5e7eb;outline:none;min-width:120px;max-width:180px}.form-input-sm:focus{border-color:var(--blue)}.role-matrix-color-pick{display:flex;align-items:center;gap:6px}.role-matrix-role-actions{display:flex;gap:4px;justify-content:center;margin-top:2px}.role-matrix-action-btn{background:none;border:none;cursor:pointer;font-size:13px;padding:2px 4px;border-radius:4px;line-height:1;transition:background .12s}.role-matrix-action-btn:hover{background:#00000014}.sidebar-user-info{display:flex;align-items:center;gap:10px;padding:12px 16px;margin:0 8px 8px;background:#ffffff12;border-radius:14px;min-width:0}.sidebar-user-avatar{width:36px;height:36px;border-radius:50%;background:var(--blue);color:#fff;font-weight:800;font-size:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar-user-details{min-width:0;flex:1}.sidebar-user-name{font-size:12px;color:#fff;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-email{font-size:11px;color:#ffffffbf;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.sidebar-user-role{margin-top:3px}.sidebar-role-badge{display:inline-block;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--orange, #f87507);background:#f8750726;border-radius:6px;padding:2px 7px}.field-error{display:block;font-size:12px;color:#dc2626;margin-top:4px;font-weight:600}input.input-error,select.input-error{border-color:#dc2626!important;background:#fff5f5}.pagination-bar{display:flex;align-items:center;justify-content:center;gap:16px;padding:12px 0 4px}.pagination-bar .btn-sm{padding:5px 14px;font-size:13px}.pagination-bar button:disabled{opacity:.35;cursor:not-allowed}.pagination-info{font-size:13px;color:var(--text-muted, #64748b);font-weight:500}.iframe-login-screen,.iframe-success-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0f172a,#1e1b4b);padding:24px;box-sizing:border-box}.iframe-login-card{background:#ffffff0d;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:32px 28px;width:100%;max-width:340px;display:flex;flex-direction:column;gap:14px;color:#fff}.iframe-login-logo{font-size:22px;font-weight:700;display:flex;align-items:center;gap:8px;color:#fff}.iframe-logo-icon{font-size:28px}.iframe-login-sub{font-size:13px;color:#ffffff8c;margin:0}.iframe-field{display:flex;flex-direction:column;gap:5px}.iframe-field label{font-size:12px;font-weight:600;color:#fff9;text-transform:uppercase;letter-spacing:.05em}.iframe-field input{background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:10px;padding:10px 12px;color:#fff;font-size:14px;outline:none;transition:border-color .2s}.iframe-field input::placeholder{color:#ffffff4d}.iframe-field input:focus{border-color:#6366f1cc}.iframe-btn{margin-top:4px;padding:11px;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:10px;color:#fff;font-size:14px;font-weight:700;cursor:pointer;text-align:center;text-decoration:none;transition:opacity .2s,transform .15s;display:block}.iframe-btn:hover{opacity:.9;transform:translateY(-1px)}.iframe-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.iframe-error{font-size:12px;color:#f87171;margin:0;text-align:center}.iframe-link{font-size:12px;color:#fff6;text-align:center;text-decoration:none;transition:color .2s}.iframe-link:hover{color:#ffffffb3}
