:root{--brand:#8a1538;--brand-hover:#6e1029;--brand-contrast:#fff;--brand-tint:#f8eef1;--accent:#c8a85a;--accent-dark:#a6863f;--bg:#f7f8fa;--surface:#fff;--surface-2:#f1f3f6;--border:#e2e5ea;--text:#1a1d23;--text-secondary:#5a616e;--text-muted:#9aa1ad;--ok:#1e874b;--ok-tint:#e5f4ec;--ok-on:#0f5c32;--info:#1f6feb;--info-tint:#e7f0fe;--info-on:#134fae;--warn:#c77a0a;--warn-tint:#fcf1dd;--warn-on:#8a5300;--mute:#6b7280;--mute-tint:#eef0f3;--mute-on:#3f4651;--danger:#d12e2e;--danger-tint:#fbe7e7;--danger-on:#98201f;--radius:10px;--radius-card:12px;--e1:0 1px 2px #1018280f, 0 1px 3px #1018281a;--e2:0 8px 24px #10182829;--font:"Inter", -apple-system, "Segoe UI", Roboto, sans-serif}[data-theme=dark]{--bg:#0f1216;--surface:#171b21;--surface-2:#1e232b;--border:#2a313b;--text:#eceef1;--text-secondary:#a7aeb9;--text-muted:#6b7280;--brand:#b22049;--brand-hover:#8a1538;--accent:#d4b66a;--brand-tint:#3a1320;--ok-tint:#10311f;--info-tint:#11294d;--warn-tint:#3a2a0e;--mute-tint:#23272e;--danger-tint:#3a1717}.est-aprobada{background:var(--ok-tint);border-left:4px solid var(--ok);color:var(--ok-on)}.est-elegible{background:var(--info-tint);border-left:4px solid var(--info);color:var(--info-on)}.est-cursando{background:var(--warn-tint);border-left:4px solid var(--warn);color:var(--warn-on)}.est-bloqueada{background:var(--mute-tint);border-left:4px solid var(--mute);color:var(--mute-on)}.est-pendiente{background:var(--surface-2);border-left:4px solid var(--border);color:var(--text-muted)}.est-reprobada,.est-error{background:var(--danger-tint);border-left:4px solid var(--danger);color:var(--danger-on)}@keyframes shimmer{to{transform:translate(100%)}}.skeleton{background:var(--surface-2);border-radius:6px;position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg,#0000,#ffffff73,#0000);animation:1.4s infinite shimmer;position:absolute;inset:0;transform:translate(-100%)}@media (prefers-reduced-motion:reduce){.skeleton:after{animation:none}}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;line-height:1.5}h1,h2,h3{margin:0;line-height:1.3}button{cursor:pointer;font-family:inherit}:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}.btn{border-radius:var(--radius);background:var(--brand);color:var(--brand-contrast);border:none;min-height:44px;padding:10px 16px;font-size:14px;font-weight:600}.btn:hover{background:var(--brand-hover)}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.app-shell{background:var(--bg);flex-direction:column;max-width:760px;min-height:100%;margin:0 auto;display:flex}.app-shell>.content{flex:1}.top-nav{display:none}@media (width>=900px){.app-shell{max-width:1760px}.top-nav{display:flex}.bottom-nav{display:none!important}}.malla-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;display:grid}.stat-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width>=720px){.stat-grid{grid-template-columns:repeat(4,1fr)}}.avance-cols{grid-template-columns:1fr;align-items:start;gap:16px;display:grid}@media (width>=900px){.avance-cols{grid-template-columns:1fr 1fr}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.sheet-overlay,.sheet-panel{animation:none!important}}@media print{body{background:#fff!important}.app-shell>nav,header,.sheet-overlay,.sheet-panel,button:not(.print-visible){display:none!important}.grilla-horario-wrap{overflow:visible!important}.app-shell{max-width:100%!important}@page{margin:12mm;size:A4 landscape}}
