:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#eef5fa;--color-surface:#fff;--color-surface-muted:#f6f9fc;--color-border:#d9e3ee;--color-border-strong:#b8c8da;--color-text:#15202b;--color-muted:#5f6f81;--color-primary:#2856a6;--color-primary-strong:#183d82;--color-primary-soft:#e8f0ff;--color-danger:#b82d3a;--color-danger-soft:#fdecef;--color-success:#1f8f4d;--color-success-soft:#e9f8ef;--color-warning:#8c6b00;--color-warning-soft:#fff7cf;--shadow-card:0 10px 30px #203c5a1a;--shadow-dialog:0 24px 70px #15202b38;--radius:8px;--sidebar-width:320px}*{box-sizing:border-box}html{min-width:320px}body{background:var(--color-bg);min-height:100vh;color:var(--color-text);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}:focus-visible{outline-offset:3px;outline:3px solid #7fb4ff}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.loading-screen,.login-page{min-height:100vh}.loading-screen{text-align:center;place-content:center;gap:1rem;display:grid}.login-page{grid-template-columns:minmax(0,1.1fr) minmax(420px,.9fr);display:grid}.login-hero{color:#fff;background:#0c1c46;grid-template-rows:1fr auto;align-items:center;min-height:100vh;padding:4rem clamp(2rem,6vw,6rem);display:grid}.login-hero h1{max-width:12ch;margin:0;font-size:clamp(2.4rem,5vw,4.5rem);line-height:1.05}.login-hero p:not(.eyebrow){color:#dce8ff;max-width:34rem;font-size:1.25rem}.login-hero-copyright{color:#0000;background:linear-gradient(#dce8ff,#0000);-webkit-background-clip:text;background-clip:text;margin:0;padding-bottom:.5rem;font-size:.8rem}.app-copyright{text-align:right;color:#0000;background:linear-gradient(to bottom, var(--color-muted), transparent);-webkit-background-clip:text;background-clip:text;margin:2rem 0 0;padding-bottom:.5rem;font-size:.75rem}.login-card{background:var(--color-surface);align-content:center;gap:1.5rem;min-height:100vh;padding:clamp(2rem,6vw,5rem);display:grid}.login-card h2{margin:0;font-size:2rem}.brand-lockup{align-items:center;gap:.8rem;display:inline-flex}.brand-mark{width:3.5rem;height:3.5rem;color:var(--color-primary);place-content:center;font-weight:800;display:inline-grid}.brand-mark img{object-fit:contain;width:100%;height:100%}.brand-copy{display:grid}.brand-logotipo{object-fit:contain;width:auto;height:1.4rem}.brand-lockup-large{flex-direction:column;align-items:center;gap:1rem;display:flex}.brand-mark-large{object-fit:contain;width:8rem;height:8rem}.brand-logotipo-large{object-fit:contain;width:auto;height:2.5rem}.brand-copy strong{color:var(--color-primary);font-size:1.25rem}.brand-copy small,.muted,.hint,small{color:var(--color-muted)}.hint{margin:0;font-size:.95rem}.provider-grid,.action-row,.modal-actions,.assignment-actions,.table-actions,.mission-card-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.provider-grid{grid-template-columns:1fr 1fr;display:grid}.button,.icon-button,.file-button{border-radius:var(--radius);border:1px solid #0000;min-height:2.75rem;font-weight:700}.button{justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1rem;display:inline-flex}.button-full{width:100%}.button-primary{background:var(--color-primary);color:#fff}.button-primary:hover{background:var(--color-primary-strong)}.button-secondary{border-color:var(--color-border);background:var(--color-surface);color:var(--color-primary)}.button-secondary:hover,.button-ghost:hover{background:var(--color-primary-soft)}.button-ghost{color:var(--color-primary);background:0 0}.button-danger,.button-danger-outline:hover{background:var(--color-danger);color:#fff}.button-danger-outline{background:var(--color-surface);color:var(--color-danger);border-color:#e7b7be}.icon-button{border-color:var(--color-border);background:var(--color-surface);color:var(--color-primary);padding:.5rem .75rem}.form-stack{gap:1rem;display:grid}.field,.search-field,.select-field{color:var(--color-text);gap:.35rem;font-weight:700;display:grid}.field input,.field select,.field textarea,.search-field input,.select-field select{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface-muted);width:100%;color:var(--color-text)}.field input::placeholder,.field textarea::placeholder,.search-field input::placeholder,::placeholder{color:#b5b5b5}.field input,.field select,.search-field input,.select-field select{min-height:3rem;padding:0 1rem}.field textarea{resize:vertical;min-height:8rem;padding:.9rem 1rem}.form-error{border-radius:var(--radius);background:var(--color-danger-soft);color:#7c1b26;border:1px solid #e4a9b1;margin:0;padding:.8rem 1rem}.success-message{border-radius:var(--radius);background:var(--color-success-soft);color:#146333;border:1px solid #a8dcb9;margin:0;padding:.8rem 1rem}.app-shell{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--color-border);z-index:100;background:#f8fbfe;grid-template-rows:auto 1fr auto;gap:1.75rem;height:100vh;padding:2rem 1.5rem;display:grid;position:sticky;top:0}.sidebar-user,.person-cell{align-items:center;gap:.75rem;min-width:0;display:flex}.sidebar-user span:last-child,.person-cell span:last-child{min-width:0;display:grid}.nav-list{gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.nav-link{border-radius:var(--radius);color:#526273;align-items:center;min-height:3rem;padding:.75rem 1rem;font-weight:800;display:flex}.nav-link[aria-current=page],.nav-link:hover{background:var(--color-surface);color:var(--color-primary);box-shadow:0 4px 14px #203c5a14}.nav-link-button{text-align:left;background:0 0;border:0;width:100%}.content-shell{width:min(100%,1180px);padding:2rem clamp(.5rem,2vw,2rem) 4rem clamp(1rem,4vw,4rem)}.page-stack{gap:2rem;display:grid}.page-header{justify-content:space-between;align-items:end;gap:1.5rem;display:flex}.page-header h1{margin:.2rem 0 0;font-size:clamp(2rem,4vw,3.35rem);line-height:1.05}.page-header p:not(.eyebrow){max-width:42rem;color:var(--color-muted);margin:.75rem 0 0;font-size:1.12rem}.eyebrow{color:#1d7b3b;text-transform:uppercase;margin:0;font-weight:900}.page-actions{flex:none}.metric-grid,.mission-grid{gap:1rem;display:grid}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-card,.mission-card,.table-card,.profile-card,.empty-state{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);box-shadow:var(--shadow-card)}.metric-card{gap:.5rem;padding:1.5rem;display:grid}.metric-card p{color:var(--color-muted);margin:0;font-weight:700}.metric-card strong{font-size:2rem}.metric-icon,.mission-symbol{border-radius:var(--radius);flex-shrink:0;justify-content:center;align-items:center;width:3rem;height:3rem;display:inline-flex}.mission-symbol img,.metric-icon img{object-fit:contain;width:1.6rem;height:1.6rem}.mission-symbol-category-fundamentos img{filter:invert(22%)sepia(60%)saturate(800%)hue-rotate(200deg)brightness(80%)}.mission-symbol-category-logica img{filter:invert(30%)sepia(60%)saturate(600%)hue-rotate(110deg)brightness(75%)}.mission-symbol-category-control img{filter:invert(35%)sepia(80%)saturate(700%)hue-rotate(20deg)brightness(70%)}.mission-symbol-category-robotica img{filter:invert(20%)sepia(50%)saturate(700%)hue-rotate(260deg)brightness(75%)}.metric-icon-yellow,.mission-symbol-yellow{background:var(--color-warning-soft)}.metric-icon-green,.mission-symbol-green{background:var(--color-success-soft)}.metric-icon-blue,.mission-symbol-blue{background:var(--color-primary-soft)}.mission-symbol-indigo{background:#e9eefc}.mission-symbol-red{background:var(--color-danger-soft)}.mission-symbol-slate{background:#e8edf3}.mission-symbol-yellow img{filter:invert(35%)sepia(80%)saturate(700%)hue-rotate(20deg)brightness(70%)}.mission-symbol-green img{filter:invert(30%)sepia(60%)saturate(600%)hue-rotate(110deg)brightness(75%)}.mission-symbol-blue img{filter:invert(22%)sepia(60%)saturate(800%)hue-rotate(200deg)brightness(80%)}.mission-symbol-red img{filter:invert(25%)sepia(80%)saturate(900%)hue-rotate(340deg)brightness(70%)}.mission-symbol-indigo img{filter:invert(22%)sepia(60%)saturate(800%)hue-rotate(220deg)brightness(75%)}.mission-symbol-slate img{filter:invert(30%)sepia(10%)saturate(400%)hue-rotate(180deg)brightness(70%)}.mission-symbol-category-fundamentos{background:var(--color-primary-soft)}.mission-symbol-category-logica{background:#d4f5e9}.mission-symbol-category-control{background:var(--color-warning-soft)}.mission-symbol-category-robotica{background:#ede9fc}.section-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.section-heading h2{margin:0;font-size:1.35rem}.text-link{color:var(--color-primary);font-weight:900}.assignment-list{gap:1rem;display:grid}.pagination-footer{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);justify-content:space-between;align-items:center;margin-top:.25rem;padding:.75rem 1rem;display:flex}.pagination-info{color:var(--color-muted);font-size:.875rem}.pagination-controls{align-items:center;gap:.5rem;display:flex}.pagination-current{color:var(--color-text);text-align:center;min-width:2.5rem;font-size:.875rem;font-weight:600}.assignment-card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);box-shadow:var(--shadow-card);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;padding:1rem;display:grid}.assignment-card h2,.assignment-card h3,.mission-card h2{margin:0}.assignment-card p,.mission-card p{color:var(--color-muted);margin:.25rem 0 0}.assignment-actions-right{justify-content:end}.filter-panel{align-items:end;gap:1rem;padding:0;display:flex}.filter-panel-wrap{flex-wrap:wrap}.filter-panel fieldset{border:0;min-width:min(100%,420px);margin:0;padding:0}.filter-panel legend{margin-bottom:.35rem;font-weight:800}.segmented-control{border:1px solid var(--color-border);border-radius:var(--radius);background:#dce4ee;gap:.35rem;padding:.35rem;display:flex}.segment-button{border-radius:calc(var(--radius) - 2px);color:#4c5b6a;background:0 0;border:0;min-height:2.5rem;padding:0 1rem;font-weight:800}.segment-button[aria-pressed=true]{background:var(--color-surface);color:var(--color-primary)}.mission-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.mission-card{gap:1rem;padding:1.5rem;display:grid}.mission-card-top{justify-content:space-between;align-items:start;gap:1rem;display:flex}.age-pill,.status-pill{border-radius:var(--radius);align-items:center;min-height:1.8rem;padding:.25rem .65rem;font-size:.9rem;font-weight:900;display:inline-flex}.age-pill{background:var(--color-success-soft);color:#126432}.table-card{overflow:hidden}.responsive-table{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:760px}th,td{border-bottom:1px solid var(--color-border);text-align:left;vertical-align:middle;padding:1rem}th{color:#465668;text-transform:uppercase;background:#e9eff6;font-size:.9rem}td{background:var(--color-surface)}.avatar{border-radius:var(--radius);background:var(--color-primary-soft);width:2.6rem;height:2.6rem;color:var(--color-primary);flex:none;place-content:center;font-weight:900;display:inline-grid}.avatar-small{width:2.2rem;height:2.2rem;font-size:.8rem}.avatar-large{width:5rem;height:5rem}.avatar-image{object-fit:cover}.status-en-curso{color:#19507b;background:#dcf0ff}.status-revisar{background:var(--color-warning-soft);color:var(--color-warning)}.status-calificado{background:var(--color-success-soft);color:#126432}.table-footer{background:var(--color-surface-muted);color:var(--color-muted);justify-content:space-between;align-items:center;gap:1rem;padding:1rem;display:flex}.pagination{align-items:center;gap:.75rem;display:flex}.modal-backdrop{z-index:9999;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0d18267a;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal-card{border-radius:var(--radius);background:var(--color-surface);width:min(92vw,720px);max-height:min(90vh,900px);box-shadow:var(--shadow-dialog);gap:1.25rem;padding:clamp(1.25rem,4vw,2.5rem);display:grid;position:relative;overflow:auto}.modal-card h2{margin:0;padding-right:2.5rem;font-size:2rem;line-height:1.15}.modal-close{position:absolute;top:1rem;right:1rem}.dialog-symbol{border-radius:50%;place-content:center;width:4rem;height:4rem;margin-inline:auto;font-size:2rem;font-weight:900;display:grid}.dialog-symbol-danger{background:var(--color-danger-soft);color:var(--color-danger)}.dialog-symbol-primary{background:var(--color-success-soft);color:var(--color-success)}.dialog-body{text-align:center;max-width:34rem;margin-inline:auto}.preview-layout{grid-template-columns:minmax(220px,.8fr) minmax(0,1fr);align-items:start;gap:2rem;display:grid}.preview-art{border-radius:var(--radius);background:var(--color-primary-soft);align-content:center;gap:.8rem;min-height:20rem;padding:1.5rem;display:grid}.preview-art span{border-radius:var(--radius);background:var(--color-primary);color:#fff;width:fit-content;padding:.65rem 1rem;font-weight:900;display:inline-flex}.preview-copy{gap:1rem;display:grid}.definition-panel{gap:.8rem;margin:0;display:grid}.definition-panel div{border-radius:var(--radius);background:var(--color-surface-muted);padding:1rem}.definition-panel dt,.profile-details dt{color:var(--color-muted);font-weight:800}.definition-panel dd,.profile-details dd{margin:.25rem 0 0;font-weight:700}.profile-upload,.import-panel{gap:.7rem;display:grid}.file-button{border-color:var(--color-border);background:var(--color-surface-muted);width:fit-content;color:var(--color-primary);justify-content:center;align-items:center;padding:.7rem 1rem;display:inline-flex}.file-button input{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;overflow:hidden}.empty-state{text-align:center;padding:2rem}.profile-card{gap:1.5rem;max-width:820px;padding:clamp(1.5rem,4vw,2.5rem);display:grid}.profile-layout{grid-template-columns:220px minmax(0,1fr);align-items:start;gap:1.5rem;display:grid}.profile-photo{border-radius:var(--radius);object-fit:cover;width:200px;height:200px}.profile-photo-placeholder{background:var(--color-primary-soft);color:var(--color-primary);place-content:center;font-size:3rem;font-weight:900;display:grid}.profile-details{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:0;display:grid}.profile-details div{border-radius:var(--radius);background:var(--color-surface-muted);padding:1rem}.profile-bio{grid-column:1/-1}.profile-footer{justify-content:flex-end;display:flex}.student-login-page{color:#fff;background:#102651 url("data:image/svg+xml,%3Csvg width='1440' height='700' viewBox='0 0 1440 700' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='1440' height='700' fill='%23102651'/%3E%3Cpath d='M120 520h1200M250 390h180M980 210h260M780 120h80M1020 470h120' stroke='%238dd8f0' stroke-width='8' stroke-linecap='round' opacity='.5'/%3E%3Ccircle cx='1050' cy='320' r='65' fill='%238dd8f0' opacity='.35'/%3E%3Ccircle cx='1130' cy='260' r='35' fill='%23ffffff' opacity='.2'/%3E%3C/svg%3E") 0 0/cover;place-items:center;min-height:100vh;padding:clamp(1.5rem,4vw,4rem);display:grid}.student-login-card{border-radius:var(--radius);background:var(--color-surface);width:min(100%,520px);color:var(--color-text);box-shadow:var(--shadow-dialog);gap:1.4rem;padding:clamp(1.5rem,4vw,2.5rem);display:grid}.student-login-card h1{margin:0;font-size:clamp(2rem,5vw,3rem);line-height:1.05}.student-login-card p:not(.eyebrow){color:var(--color-muted)}.student-shell{background:var(--color-bg);min-height:100vh}.student-topbar{z-index:1000;background:var(--color-primary);color:#fff;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:1rem;min-height:5rem;padding:.85rem clamp(1rem,4vw,3rem);display:grid;position:sticky;top:0;box-shadow:0 10px 24px #15202b29}.student-topbar .brand-mark,.student-topbar .brand-copy strong,.student-topbar .brand-copy small{color:#fff;border-color:#9fe5f5}.student-nav-list{justify-content:center;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.student-nav-link{border-radius:var(--radius);color:#e9f2ff;align-items:center;min-height:2.75rem;padding:0 1rem;font-weight:800;display:inline-flex}.student-nav-link:hover,.student-nav-link[aria-current=page]{color:#fff;background:#ffffff24}.topbar-action{background:#fff}.student-content{width:min(100%,1180px);margin-inline:auto;padding:clamp(1rem,4vw,3rem)}.student-page-stack{gap:2rem;display:grid}.student-hero{border-radius:var(--radius);color:#fff;min-height:270px;box-shadow:var(--shadow-card);background:#0c1c46 url("data:image/svg+xml,%3Csvg width='1200' height='320' viewBox='0 0 1200 320' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='1200' height='320' fill='%230c1c46'/%3E%3Crect x='450' y='70' width='260' height='150' rx='10' fill='%2315202b'/%3E%3Cpath d='M180 110h180M210 150h130M785 90h190M820 145h250M760 220h330' stroke='%238dd8f0' stroke-width='7' stroke-linecap='round'/%3E%3Ccircle cx='900' cy='180' r='48' fill='%23ffffff' opacity='.2'/%3E%3C/svg%3E") 0 0/cover;align-items:end;padding:clamp(1.5rem,4vw,3rem);display:grid}.student-hero h1{max-width:14ch;margin:.25rem 0;font-size:clamp(2.2rem,5vw,4rem);line-height:1}.student-hero p:not(.eyebrow){color:#e4efff;max-width:48rem;font-size:1.12rem}.student-section{gap:1rem;display:grid}.student-section h2{margin:0}.student-mission-row{grid-template-columns:260px repeat(3,minmax(220px,1fr));gap:1rem;padding-bottom:.35rem;display:grid;overflow-x:auto}.student-free-card,.student-mission-card,.student-assigned-card,.editor-header-card,.mission-instructions,.blockly-card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);box-shadow:var(--shadow-card)}.student-free-card,.student-mission-card{align-content:end;gap:.5rem;min-height:220px;padding:1.25rem;display:grid}.student-free-card{background:var(--color-primary);color:#fff}.student-free-card span{width:4rem;height:4rem;color:var(--color-primary);background:#fff;border-radius:50%;place-content:center;margin-bottom:auto;font-size:2.5rem;font-weight:900;display:grid}.student-free-card small{color:#e4efff}.mission-preview{border-radius:var(--radius);width:100%;height:110px;margin-bottom:auto;display:block}.mission-preview-blue{background:#2856a6}.mission-preview-green{background:#1f8f4d}.mission-preview-yellow{background:#c8891f}.mission-preview-red{background:#b82d3a}.mission-preview-indigo{background:#3046a5}.mission-preview-slate{background:#556575}.student-mission-card progress{width:100%;height:.65rem;accent-color:var(--color-primary)}.student-assigned-card{justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem;display:flex}.student-assigned-card h3,.student-assigned-card p{margin:0}.student-assigned-card p{color:var(--color-muted)}.editor-header-card{justify-content:space-between;align-items:end;gap:1rem;padding:clamp(1.25rem,4vw,2rem);display:flex}.editor-header-card h1{margin:0;font-size:clamp(2rem,5vw,3.25rem)}.editor-header-card p:not(.eyebrow){max-width:48rem;color:var(--color-muted)}.editor-actions{flex-wrap:wrap;gap:.75rem;display:flex}.mission-editor-layout{grid-template-columns:minmax(260px,360px) minmax(0,1fr);gap:1rem;min-height:650px;display:grid}.mission-instructions{align-content:start;gap:1rem;padding:1.25rem;display:grid}.mission-instructions h2,.mission-instructions p{margin:0}.step-list{gap:.75rem;padding-left:1.25rem;display:grid}.step-list li{border-radius:var(--radius);background:var(--color-surface-muted);padding:.75rem}.step-list span{color:var(--color-muted);display:block}.step-done{border:1px solid #9fdcb4;background:var(--color-success-soft)!important}.hint-card{border-radius:var(--radius);background:var(--color-primary-soft);color:var(--color-primary-strong);padding:1rem;font-weight:800}.blockly-card{z-index:1;min-height:650px;position:relative;overflow:hidden}.image-upload-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:1rem;padding:.75rem 1rem;display:flex}.image-upload-label{color:var(--color-text-muted);margin:0;font-size:.875rem}.image-upload-preview{object-fit:contain;border:1px solid var(--color-border);border-radius:4px;width:auto;height:48px}.blockly-canvas{pointer-events:auto;position:absolute;inset:0}.blockly-loading{z-index:1;border-radius:var(--radius);background:var(--color-surface);box-shadow:var(--shadow-card);padding:.75rem 1rem;font-weight:800;position:absolute;inset:1rem auto auto 1rem}@media (max-width:1050px){.app-shell{grid-template-columns:1fr}.sidebar{grid-template-rows:auto auto auto;height:auto;position:static}.nav-list{grid-template-columns:repeat(2,minmax(0,1fr))}.content-shell{width:100%}.mission-grid,.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.login-page{grid-template-columns:1fr}.login-hero{min-height:42vh}.login-card{min-height:auto}.provider-grid,.page-header,.assignment-card,.preview-layout,.profile-layout,.profile-details{grid-template-columns:1fr}.page-header,.assignment-card{align-items:start;display:grid}.mission-grid,.metric-grid,.nav-list{grid-template-columns:1fr}.filter-panel{align-items:stretch}.filter-panel,.table-footer{flex-direction:column}.search-field,.select-field,.filter-panel fieldset,.action-row,.button,.icon-button{width:100%}.segmented-control{flex-wrap:wrap}.segment-button{flex:9rem}.modal-actions{justify-content:stretch}.profile-photo{width:min(100%,220px)}.student-topbar,.editor-header-card,.student-assigned-card{grid-template-columns:1fr;align-items:start;display:grid}.student-nav-list,.editor-actions{justify-content:start}.student-mission-row{grid-template-columns:260px}.mission-editor-layout{grid-template-columns:1fr}.blockly-card{min-height:560px}}
