body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--bg-primary:#fff;--bg-secondary:#f8f9fa;--bg-hover:#e3f2fd;--bg-panel:#fff;--bg-header:#343a40;--bg-footer:#495057;--text-primary:#333;--text-secondary:#666;--text-muted:#6c757d;--text-inverse:#fff;--border-color:#e0e0e0;--border-focus:#86b7fe;--accent-color:#1976d2;--accent-hover:#1565c0;--accent-color-alpha:#2196f340;--success-color:#4caf50;--warning-color:#ffc107;--error-color:#dc3545;--info-color:#17a2b8;--shadow-small:0 2px 4px #0000001a;--shadow-medium:0 4px 8px #00000026;--shadow-large:0 8px 16px #0003;--status-no-disponible-bg:#f5f5f5;--status-no-disponible-border:#dc3545;--status-no-cursada-bg:#e9ecef;--status-no-cursada-border:#adb5bd;--status-puede-cursar-bg:#fff3cd;--status-puede-cursar-border:#ffc107;--status-cursando-bg:#cce7ff;--status-cursando-border:#2196f3;--status-cursada-bg:#e8f5e8;--status-cursada-border:#28a745;--status-final-bg:#e2e3e5;--status-final-border:#495057;--rf-edge-color:#b1b1b7;--rf-edge-hover:#2563eb;--rf-handle-color:#cbd5e1;--rf-handle-hover:#3b82f6;--rf-minimap-bg:#f8f9facc;--rf-controls-bg:#ffffffe6;--warning-bg:#fff3e0;--warning-text:#e65100;--warning-border:#ffcc80;--danger-color:#f44336;--status-aprobado:#4caf50;--status-aprobado-bg:#e8f5e8;--status-cursando:#ff9800;--status-cursando-bg:#fff3e0;--status-disponible:#2196f3;--status-disponible-bg:#e3f2fd;--status-no-disponible:#9e9e9e;--status-cursada:#3f51b5}[data-theme=dark]{--bg-primary:#1a1a1a;--bg-secondary:#2d2d2d;--bg-hover:#333;--bg-panel:#252526;--bg-header:#181818;--bg-footer:#252526;--text-primary:#fff;--text-secondary:#ccc;--text-muted:#a0a0a0;--text-inverse:#fff;--border-color:#424242;--border-focus:#4f9cdb;--accent-color:#64b5f6;--accent-hover:#42a5f5;--accent-color-alpha:#4fc3f740;--success-color:#66bb6a;--warning-color:#ff9800;--error-color:#f44336;--info-color:#2196f3;--shadow-small:0 2px 4px #0000004d;--shadow-medium:0 4px 8px #0006;--shadow-large:0 8px 16px #00000080;--status-no-disponible-bg:#424242;--status-no-disponible-border:#f44336;--status-no-cursada-bg:#2a2a2a;--status-no-cursada-border:#666;--status-puede-cursar-bg:#3d3319;--status-puede-cursar-border:#ff9800;--status-cursando-bg:#1a2e3d;--status-cursando-border:#4fc3f7;--status-cursada-bg:#1b5e20;--status-cursada-border:#4caf50;--status-final-bg:#2d2d2d;--status-final-border:#ccc;--rf-edge-color:#4a5568;--rf-edge-hover:#60a5fa;--rf-handle-color:#4a5568;--rf-handle-hover:#60a5fa;--rf-minimap-bg:#121212e6;--rf-controls-bg:#252526f2;--warning-bg:#e65100;--warning-text:#fff3e0;--warning-border:#ff9800;--danger-color:#ef5350;--status-aprobado:#66bb6a;--status-aprobado-bg:#1b5e20;--status-cursando:#ffb74d;--status-cursando-bg:#e65100;--status-disponible:#64b5f6;--status-disponible-bg:#0d47a1;--status-no-disponible:#bdbdbd;--status-cursada:#7986cb}.theme-light{color-scheme:light}.theme-dark{color-scheme:dark}.App{background-color:#fff;background-color:var(--bg-primary);color:#333;color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;min-height:100vh;padding-bottom:50px;text-align:center;transition:background-color .3s ease,color .3s ease}.App-header{align-items:center;background-color:#343a40;background-color:var(--bg-header);box-shadow:0 4px 8px #00000026;box-shadow:var(--shadow-medium);color:#fff;color:var(--text-inverse);display:flex;flex-direction:column;height:auto;justify-content:center;left:0;margin-bottom:10px;min-height:60px;padding:15px 20px;position:fixed;right:0;top:0;transition:background-color .3s ease;z-index:1000}.App-header h1{font-size:1.4em;font-weight:500;margin:0}.career-map-container{box-sizing:border-box;height:calc(100vh - 85px);margin-top:80px;padding:5px;position:relative;width:100%}.cpo-toggle-section{background-color:#f8f9fa;background-color:var(--bg-secondary);border:1px solid #e0e0e0;border:1px solid var(--border-color);border-radius:8px;box-shadow:0 2px 4px #0000001a;box-shadow:var(--shadow-small);margin:20px auto;max-width:700px;padding:15px;text-align:center;transition:all .3s ease}.cpo-toggle-button{background-color:#1976d2;background-color:var(--accent-color);border:none;border-radius:4px;color:#fff;color:var(--text-inverse);cursor:pointer;font-size:1em;font-weight:500;opacity:.9;padding:12px 24px;transition:all .2s ease}.cpo-toggle-button:hover{background-color:#1565c0;background-color:var(--accent-hover);opacity:1}.cpo-toggle-button:disabled{background-color:#6c757d;background-color:var(--text-muted);cursor:not-allowed}.cpo-toggle-section p{color:#666;color:var(--text-secondary);font-size:.9em;font-style:italic;margin-top:10px}.cpo-controls{background:#fff;background:var(--bg-panel);border:2px solid #1976d2;border:2px solid var(--accent-color);border-radius:8px;box-shadow:0 8px 16px #0003;box-shadow:var(--shadow-large);left:50%;margin:20px;max-height:calc(100vh - 200px);max-width:800px;overflow-y:auto;padding:20px;position:absolute;top:80px;transform:translateX(-50%);width:90%;z-index:1001}.cpo-controls,.cpo-controls select{color:#333;color:var(--text-primary);transition:all .3s ease}.cpo-controls select{background-color:#f8f9fa;background-color:var(--bg-secondary);border:1px solid #e0e0e0;border:1px solid var(--border-color);border-radius:4px;cursor:pointer;font-size:1em;margin-bottom:20px;max-width:400px;padding:12px;width:100%}.cpo-controls select:disabled{background-color:#e3f2fd;background-color:var(--bg-hover);cursor:not-allowed}.cpo-controls button{background-color:#1976d2;background-color:var(--accent-color);border:none;border-radius:4px;color:#fff;color:var(--text-inverse);cursor:pointer;font-size:1em;padding:10px 20px;transition:all .2s ease}.cpo-controls button:hover{background-color:#1565c0;background-color:var(--accent-hover);transform:translateY(-2px)}.cpo-controls .close-button{align-items:center;background:#dc3545;background:var(--error-color);border:2px solid #fff;border:2px solid var(--bg-panel);border-radius:50%;box-shadow:0 4px 8px #00000026;box-shadow:var(--shadow-medium);color:#fff;color:var(--text-inverse);cursor:pointer;display:flex;font-size:20px;height:35px;justify-content:center;padding:0;position:absolute;right:10px;top:10px;transition:all .2s ease;width:35px}.cpo-controls .close-button:hover{background:#d32f2f;box-shadow:0 8px 16px #0003;box-shadow:var(--shadow-large);transform:scale(1.1)}.cpo-controls .close-button:before{content:"×";font-size:24px;line-height:1}.cpo-controls h3{border-bottom:2px solid #e0e0e0;border-bottom:2px solid var(--border-color);font-size:1.3em;margin-bottom:20px;margin-top:0;padding-bottom:10px;padding-right:50px}.cpo-controls h3,.cpo-controls:before{color:#1976d2;color:var(--accent-color)}.cpo-controls:before{background:#e3f2fd;background:var(--bg-hover);border-radius:4px;content:"💡 Tip: Cierra este panel para navegar libremente por el mapa";display:block;font-size:.85em;margin-bottom:15px;margin-top:35px;padding:8px 12px}.orientacion-selector{margin-bottom:25px;padding-right:40px}.stats-display{background-color:#fff;background-color:var(--bg-primary);border:1px solid #e0e0e0;border:1px solid var(--border-color);border-radius:8px;margin:20px 0;padding:20px}.stats-display h4{border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--border-color);color:#1976d2;color:var(--accent-color);font-size:1.1em;font-weight:600;margin-top:0;padding-bottom:8px}.stats-display p{color:#666;color:var(--text-secondary);font-size:.9em;margin:8px 0}.subject-node{border-radius:6px;box-shadow:0 2px 4px #0000001a;box-shadow:var(--shadow-small);padding:10px;transition:all .2s ease}.subject-node:hover{transform:translateY(-2px)}.status-no-disponible{background-color:#f5f5f5!important;background-color:var(--status-no-disponible-bg)!important;border-left:5px solid #dc3545!important;border-left:5px solid var(--status-no-disponible-border)!important}.status-no-cursada{background-color:#e9ecef!important;background-color:var(--status-no-cursada-bg)!important;border-left:5px solid #adb5bd!important;border-left:5px solid var(--status-no-cursada-border)!important}.status-puede-cursar{background-color:#fff3cd!important;background-color:var(--status-puede-cursar-bg)!important;border-left:5px solid #ffc107!important;border-left:5px solid var(--status-puede-cursar-border)!important}.status-cursando{background-color:#fff3e0!important;background-color:var(--status-cursando-bg)!important;border-left:5px solid #2196f3!important;border-left:5px solid var(--status-cursando-border)!important}.status-cursada-aprobada{background-color:#e8f5e8!important;background-color:var(--status-cursada-bg)!important;border-left:5px solid #28a745!important;border-left:5px solid var(--status-cursada-border)!important}.status-final-aprobado{background-color:#e2e3e5!important;background-color:var(--status-final-bg)!important;border-left:5px solid #495057!important;border-left:5px solid var(--status-final-border)!important}.react-flow__controls{background:#f8f9fa!important;background:var(--bg-secondary)!important;border:1px solid #e0e0e0!important;border:1px solid var(--border-color)!important;border-radius:8px;box-shadow:0 2px 4px #0000001a;box-shadow:var(--shadow-small);left:20px!important;position:fixed!important;z-index:1002!important}.react-flow__controls button{align-items:center!important;background:#ffffffe6;background:var(--rf-controls-bg);border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--border-color);display:flex!important;height:40px!important;justify-content:center!important;padding:8px;width:40px!important}.react-flow__controls button:hover{background:#e3f2fd;background:var(--bg-hover);color:#333;color:var(--text-primary);transform:scale(1.05)}.react-flow__controls button svg{height:16px!important;width:16px!important}.react-flow__minimap{border-radius:8px;box-shadow:0 2px 4px #0000001a;box-shadow:var(--shadow-small)}.react-flow__edge,.react-flow__edge-path{transition:all .3s ease}.react-flow__edge-path{filter:drop-shadow(0 2px 4px rgba(0,0,0,.1));filter:drop-shadow(var(--shadow-small))}.react-flow__edge:hover .react-flow__edge-path{stroke-width:3;filter:drop-shadow(0 4px 8px rgba(0,0,0,.15));filter:drop-shadow(var(--shadow-medium))}.edge-habilitada .react-flow__edge-path,.edge-prerequisito .react-flow__edge-path{stroke-dasharray:8 4;filter:drop-shadow(0 4px 8px rgba(0,0,0,.15));filter:drop-shadow(var(--shadow-medium))}.react-flow__arrowhead{transition:all .3s ease}.edge-habilitada .react-flow__arrowhead,.edge-prerequisito .react-flow__arrowhead{filter:drop-shadow(0 2px 4px rgba(0,0,0,.1));filter:drop-shadow(var(--shadow-small))}.react-flow__edge:hover .react-flow__arrowhead{transform:scale(1.2)}.edge-habilitada,.edge-prerequisito{filter:brightness(1.1)}.react-flow__edge-text{fill:#333;fill:var(--text-primary);font-size:11px;font-weight:500;text-shadow:0 2px 4px #0000001a;text-shadow:var(--shadow-small)}.react-flow__edge-textbg{fill:#ffffffe6;fill:var(--rf-controls-bg);stroke:#e0e0e0;stroke:var(--border-color);stroke-width:1;rx:4}.cpo-group,.cpo-group-derivadas,.cpo-group-principales,.cpo-group:hover{display:none}.react-flow__renderer{background:#fff;background:var(--bg-primary)}.react-flow__node{align-items:center;background:#f8f9fa;background:var(--bg-secondary);border:1px solid #e0e0e0;border:1px solid var(--border-color);border-radius:4px;cursor:pointer;display:flex;flex-direction:column;font-size:.85em;height:80px;justify-content:space-between;padding:8px;text-align:center;transition:all .2s ease-in-out;width:200px}.react-flow__node:hover{transform:scale(1.05);z-index:1}.controls-container{position:fixed!important;right:15px!important;top:75px!important;z-index:1010!important}.controls-container.collapsed{opacity:1;transform:translateX(0);visibility:visible}.toggle-controls-button{-webkit-backdrop-filter:blur(5px)!important;backdrop-filter:blur(5px)!important;box-shadow:0 8px 16px #0003!important;box-shadow:var(--shadow-large)!important;font-size:1.1em!important;height:48px!important;width:48px!important;z-index:1011!important}.toggle-controls-button:hover{background-color:#1565c0!important;background-color:var(--accent-hover)!important;box-shadow:0 8px 16px #0003;box-shadow:var(--shadow-large);transform:scale(1.05)}.toggle-controls-button:active{transform:scale(.95)}.view-controls{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f8f9fa;background:var(--bg-secondary);border-radius:12px;box-shadow:0 4px 8px #00000026;box-shadow:var(--shadow-medium);overflow:hidden}.view-controls.expanded{animation:expandControls .3s ease-out}.view-controls.collapsed{animation:collapseControls .3s ease-in}@keyframes expandControls{0%{opacity:0;transform:translateY(-20px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes collapseControls{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-20px) scale(.9)}}.view-control-button{opacity:.9;overflow:hidden;position:relative;transition:all .2s ease}.view-control-button:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.view-control-button:hover{box-shadow:0 4px 8px #00000026;box-shadow:var(--shadow-medium);opacity:1;transform:translateY(-2px)}.view-control-button:hover:before{left:100%}.view-control-button:active{transform:translateY(0);transition:transform .1s ease}.view-control-button.active{box-shadow:0 4px 8px #00000026;box-shadow:var(--shadow-medium);opacity:1}.cbc-group{background:#f8f9fa;background:var(--bg-secondary);border:2px solid #dc3545;border:2px solid var(--error-color);border-radius:8px;box-shadow:0 2px 4px #0000001a;box-shadow:var(--shadow-small);min-width:200px;overflow:hidden;padding:15px;position:relative;transition:all .3s ease}.cbc-group:hover{background:linear-gradient(135deg,#f8f9fa,#dc26260d);background:linear-gradient(135deg,var(--bg-secondary) 0,#dc26260d 100%);border-color:#b91c1c;box-shadow:0 4px 8px #00000026;box-shadow:var(--shadow-medium);cursor:pointer;transform:translateY(-2px)}.cbc-group:before{background:linear-gradient(45deg,#dc3545,#b91c1c,#dc3545);background:linear-gradient(45deg,var(--error-color),#b91c1c,var(--error-color));border-radius:8px;bottom:-2px;content:"";left:-2px;opacity:0;position:absolute;right:-2px;top:-2px;transition:opacity .3s ease;z-index:-1}.cbc-group:hover:before{opacity:.3}@keyframes cbcPulse{0%,to{box-shadow:0 2px 4px #0000001a;box-shadow:var(--shadow-small)}50%{box-shadow:0 4px 12px #dc262626}}.cbc-group{animation:cbcPulse 3s ease-in-out infinite}@media (hover:none) and (pointer:coarse){.cbc-group{animation:none;min-height:80px;padding:20px}.cbc-group:active{background:linear-gradient(135deg,#f8f9fa,#dc26261a);background:linear-gradient(135deg,var(--bg-secondary) 0,#dc26261a 100%);border-color:#b91c1c;transform:scale(.98)}.cbc-group:before{display:none}}@media screen and (max-width:768px){.cbc-group{font-size:.9em;min-width:180px;padding:12px}.cbc-group h3{font-size:1em!important}.cbc-group p{font-size:.8em!important}}.cpo-group{background:#f8f9fa;background:var(--bg-secondary);border:2px solid #1976d2;border:2px solid var(--accent-color);border-radius:8px;box-shadow:0 2px 4px #0000001a;box-shadow:var(--shadow-small);min-width:200px;padding:15px;transition:all .3s ease}.cpo-group:hover{box-shadow:0 4px 8px #00000026;box-shadow:var(--shadow-medium);transform:translateY(-2px)}.cbc-group h3,.cpo-group h3{font-size:1.1em;font-weight:600;margin:0 0 10px}.cbc-group p,.cpo-group p{color:#666;color:var(--text-secondary);font-size:.9em;margin:0}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.cpo-controls{animation:fadeIn .3s ease-out}.floating-button{background-color:#1976d2;background-color:var(--accent-color);border:none;border-radius:8px;bottom:20px;box-shadow:0 4px 8px #00000026;box-shadow:var(--shadow-medium);color:#fff;color:var(--text-inverse);cursor:pointer;font-size:1em;padding:12px 24px;position:fixed;right:20px;transition:all .2s ease;z-index:1000}.floating-button:hover{background-color:#1565c0;background-color:var(--accent-hover);box-shadow:0 8px 16px #0003;box-shadow:var(--shadow-large);transform:translateY(-2px)}.orientacion-view{background-color:#f8f9fa;background-color:var(--bg-secondary);border-radius:8px;box-shadow:0 2px 4px #0000001a;box-shadow:var(--shadow-small);margin-top:20px;padding:20px}.orientacion-view h2{color:#1976d2;color:var(--accent-color);margin-bottom:20px}.orientacion-view .progress-section{margin-bottom:30px}.orientacion-view .materias-list{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));margin-top:10px}.orientacion-view .materia-card{background-color:#f8f9fa;background-color:var(--bg-secondary);border-radius:4px;box-shadow:0 2px 4px #0000001a;box-shadow:var(--shadow-small);padding:12px}.orientacion-view .puntos-indicator{align-items:center;display:flex;gap:10px;margin-bottom:10px}.orientacion-view .puntos-label{background-color:#1976d2;background-color:var(--accent-color);color:#fff;color:var(--text-inverse)}.orientacion-view .puntos-label,.orientacion-view .puntos-value{border-radius:4px;font-weight:700;padding:8px 16px}.App-footer{background-color:#343a40;background-color:var(--bg-header);bottom:0;box-shadow:0 2px 4px #0000001a;box-shadow:var(--shadow-small);color:#fff;color:var(--text-inverse);left:0;padding:20px;position:fixed;right:0;z-index:900}.credits{padding:0 20px}.credits p{font-size:.9em;margin:0}.credits a{color:#1976d2;color:var(--accent-color);text-decoration:none;transition:color .2s ease}.credits a:hover{color:#1565c0;color:var(--accent-hover)}.linkedin-button{background-color:#1976d2;background-color:var(--accent-color);border-radius:4px;font-weight:500;padding:8px 16px;transition:background-color .2s ease}.linkedin-button,.linkedin-button:hover{color:#fff!important;color:var(--text-inverse)!important}.linkedin-button:hover{background-color:#1565c0;background-color:var(--accent-hover)}.contact-button{border-radius:4px;display:inline-block;font-weight:500;padding:8px 16px;transition:all .2s ease}.contact-button,.contact-button:hover{background-color:#4caf50!important;background-color:var(--success-color)!important;color:#fff!important;color:var(--text-inverse)!important;text-decoration:none}.contact-button:hover{opacity:.9;transform:translateY(-1px)}.career-container{padding-bottom:80px}@media screen and (max-width:768px){.credits{flex-direction:column;gap:15px;text-align:center}.credits>div{text-align:center!important}.credits>div:last-child{flex-direction:row!important;gap:12px!important;justify-content:center}.contact-button,.linkedin-button{font-size:.8em!important;padding:6px 12px!important}}@media (prefers-reduced-motion:reduce){.controls-container,.toggle-controls-button,.view-control-button,.view-controls{animation:none!important;transition:none!important}}[data-theme=dark] .view-controls{background:#f8f9fa;background:var(--bg-secondary);border-color:#1976d2;border-color:var(--accent-color);box-shadow:0 8px 16px #0003;box-shadow:var(--shadow-large)}[data-theme=dark] .toggle-controls-button{background-color:#1976d2!important;background-color:var(--accent-color)!important;border:2px solid #f8f9fa;border:2px solid var(--bg-secondary)}[data-theme=dark] .view-control-button{border-color:#1976d2!important;border-color:var(--accent-color)!important}[data-theme=dark] .view-control-button:hover{box-shadow:0 4px 12px #4fc3f74d}@media screen and (max-width:380px){.App-header h1{font-size:1em}.subject-node{font-size:.7em!important;height:65px!important;width:130px!important}.cpo-controls{padding:10px!important}.cpo-controls select,.orientacion-selector select{font-size:14px!important;padding:10px!important}.stats-display{padding:10px}.stats-display h4{font-size:.9em}.stats-display p{font-size:.8em}.controls-container{right:10px!important;top:10px!important}.toggle-controls-button{font-size:1em!important;height:44px!important;width:44px!important}.view-controls{margin-top:48px!important;max-width:250px!important;min-width:200px!important}.view-control-button{font-size:.9em!important;padding:12px 16px!important}.react-flow__controls{bottom:90px!important;left:10px!important}.react-flow__controls button{font-size:16px!important;height:40px!important;width:40px!important}}@media screen and (max-height:500px) and (orientation:landscape){.App-header{height:auto;position:static}.career-map-container{height:calc(100vh - 60px);margin-top:10px}.App-footer{position:static}.react-flow__controls{bottom:20px!important;left:15px!important}.controls-container{right:10px!important;top:10px!important}.view-controls{max-height:calc(100vh - 80px)!important;overflow-y:auto!important}.toggle-controls-button{font-size:.9em!important;height:40px!important;width:40px!important}.help-guide-container{maxHeight:95vh!important;maxWidth:90vw!important}.help-guide-header{padding:10px 15px!important}.help-guide-header h2{fontSize:1.1em!important}.help-guide-content{fontSize:.9em!important;padding:15px 20px!important}.help-guide-footer{padding:8px 15px!important}.help-guide-footer button{fontSize:.8em!important;padding:6px 12px!important}}.ciclo-profesional-orientado,.nav-button,.nav-button.active,.nav-button:disabled,.nav-button:hover:not(:disabled),.toggle-botonera-button,.toggle-botonera-button.hidden:before,.toggle-botonera-button:before,.toggle-botonera-button:hover,.top-buttons,.top-buttons.hidden{display:none}.career-container{background-color:#fff;background-color:var(--bg-primary);height:100vh;overflow:hidden;position:relative;width:100%}.react-flow__pane,.react-flow__renderer{height:100%;width:100%}.react-flow__handle{background-color:#1976d2;background-color:var(--accent-color);background-color:#333;background-color:var(--text-primary);border:2px solid #f8f9fa;border:2px solid var(--bg-secondary);height:8px;height:10px;opacity:.7;transition:all .2s ease;width:8px;width:10px}.react-flow__handle:hover{background-color:#3b82f6;background-color:var(--rf-handle-hover);box-shadow:0 4px 8px #00000026;box-shadow:var(--shadow-medium);transform:scale(1.3)}.react-flow__handle.source{background-color:#2196f3;background-color:var(--status-cursando-border)}.react-flow__handle.target{background-color:#ffc107;background-color:var(--status-puede-cursar-border)}.react-flow__handle-top{top:-5px}.react-flow__handle-bottom{bottom:-5px}.react-flow__renderer{background:linear-gradient(135deg,#fff,#f8f9fa);background:linear-gradient(135deg,var(--bg-primary) 0,var(--bg-secondary) 100%)}.react-flow__edge.react-flow__edge-selected .react-flow__edge-path{stroke-width:4;filter:drop-shadow(0 4px 8px rgba(0,0,0,.15));filter:drop-shadow(var(--shadow-medium))}@keyframes pulseConnection{0%,to{opacity:.8}50%{opacity:1}}.react-flow__edge-path{animation:pulseConnection 3s ease-in-out infinite}.edge-habilitada .react-flow__edge-path,.edge-prerequisito .react-flow__edge-path{animation:pulseConnection 3s ease-in-out infinite,dashPrerequisito 2s linear infinite}.edge-habilitada .react-flow__edge-path{animation:pulseConnection 3s ease-in-out infinite,dashHabilitada 2s linear infinite}@media (prefers-color-scheme:dark){.react-flow__edge-path{stroke:#b1b1b7;stroke:var(--rf-edge-color);filter:drop-shadow(0 2px 4px rgba(0,0,0,.1));filter:drop-shadow(var(--shadow-small))}.react-flow__handle{border-color:#f8f9fa;border-color:var(--bg-secondary)}}.status-arrastre,.status-arrastre-cursada,.status-arrastre-final{background-color:#e9ecef!important;background-color:var(--status-no-cursada-bg)!important;border-left:5px solid #adb5bd!important;border-left:5px solid var(--status-no-cursada-border)!important;font-style:italic}.status-arrastre-cursada,.status-arrastre-final{opacity:.9}.status-explorar-seleccionada{background-color:#fff3e0!important;background-color:var(--status-cursando-bg)!important;border:2px solid #1565c0!important;border:2px solid var(--accent-hover)!important;box-shadow:0 0 10px #1565c0;box-shadow:0 0 10px var(--accent-hover)}.status-explorar-prerrequisito{background-color:#fff3cd!important;background-color:var(--status-puede-cursar-bg)!important;border-left:5px solid #ffc107!important;border-left:5px solid var(--status-puede-cursar-border)!important;opacity:.95}.status-explorar-habilitada{background-color:#fff3e0!important;background-color:var(--status-cursando-bg)!important;border-left:5px solid #2196f3!important;border-left:5px solid var(--status-cursando-border)!important;opacity:.95}.node-cbc{background-color:#f8f9fa!important;background-color:var(--bg-secondary)!important;border-color:#e0e0e0!important;border-color:var(--border-color)!important;border-width:1px!important;opacity:.7}.node-cbc:hover{opacity:1}.node-cpc,.node-cpo-comun,.node-cpo-orientacion{background-color:#fff3e0;background-color:var(--status-cursando-bg);border-color:#2196f3;border-color:var(--status-cursando-border)}[data-theme=dark] .react-flow__renderer{background:linear-gradient(135deg,#fff,#f8f9fa);background:linear-gradient(135deg,var(--bg-primary) 0,var(--bg-secondary) 100%)}[data-theme=dark] .react-flow__minimap{background:#f8f9facc;background:var(--rf-minimap-bg);border:1px solid #e0e0e0;border:1px solid var(--border-color)}[data-theme=dark] .react-flow__controls{background:#ffffffe6;background:var(--rf-controls-bg);border:1px solid #e0e0e0;border:1px solid var(--border-color)}[data-theme=dark] .react-flow__controls button{background:#f8f9fa;background:var(--bg-secondary);border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--border-color);color:#333;color:var(--text-primary)}[data-theme=dark] .react-flow__controls button:hover{background:#e3f2fd;background:var(--bg-hover)}[data-theme=dark] .react-flow__controls button svg{fill:#333;fill:var(--text-primary)}[data-theme=dark] .react-flow__edge-text{fill:#333;fill:var(--text-primary);text-shadow:1px 1px 2px #fff;text-shadow:1px 1px 2px var(--bg-primary)}[data-theme=dark] .react-flow__edge-textbg{fill:#f8f9fa;fill:var(--bg-secondary);stroke:#e0e0e0;stroke:var(--border-color)}[data-theme=dark] .react-flow__node{color:#333;color:var(--text-primary)}[data-theme=dark] .react-flow__node-default,[data-theme=dark] .react-flow__node-input,[data-theme=dark] .react-flow__node-output{background:#f8f9fa;background:var(--bg-secondary);border:1px solid #e0e0e0;border:1px solid var(--border-color);color:#333;color:var(--text-primary)}[data-theme=dark] ::-webkit-scrollbar{height:8px;width:8px}[data-theme=dark] ::-webkit-scrollbar-track{background:#fff;background:var(--bg-primary);border-radius:4px}[data-theme=dark] ::-webkit-scrollbar-thumb{background:#6c757d;background:var(--text-muted);border-radius:4px}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:#666;background:var(--text-secondary)}.theme-toggle{z-index:1020!important}.config-button-container,.theme-toggle-container{align-items:center;display:flex;justify-content:center}.config-toggle-button{transition:all .3s ease!important}.config-toggle-button:hover{background-color:#1565c0!important;background-color:var(--accent-hover)!important;transform:scale(1.05)}.config-toggle-button:active{transform:scale(.95)}@media (max-width:768px){.App-header{left:0!important;min-height:80px!important;padding:10px 15px!important;position:fixed!important;right:0!important;top:0!important;z-index:1000!important}.theme-toggle-container{order:1}.App-header h1{flex:1 1!important;font-size:1.1em!important;margin:0 10px!important;order:2;text-align:center!important}.config-button-container{order:3}.career-container{height:calc(100vh - 90px)!important;margin-top:90px!important}.App-header>div:last-child{align-items:center!important;flex-direction:column!important;gap:6px!important;margin-top:6px!important}.App-header>div:last-child span{font-size:.8em!important;text-align:center!important}.App-header>div:last-child button{font-size:.75em!important;padding:6px 12px!important}}.help-button:hover{box-shadow:0 6px 20px #22c55e66!important;transform:translateY(-2px)}.cpo-button:hover{box-shadow:0 6px 20px #ffc10766!important;transform:translateY(-2px)}.cpo-button{font-family:Segoe UI,system-ui,-apple-system,sans-serif;text-transform:uppercase}.config-toggle-button:hover{box-shadow:0 6px 20px #2563eb66!important;transform:translateY(-2px)}@media (max-width:768px){.theme-toggle-container{order:1}.config-button-container{gap:6px!important;order:3}.config-button-container button,.config-toggle-button,.cpo-button,.help-button{font-size:1em!important;height:38px!important;width:38px!important}.cpo-button{font-size:.7em!important;font-weight:800!important;letter-spacing:.3px!important}.help-guide-content{font-size:.9em;padding:20px!important}.progress-stats-grid{gap:10px!important;grid-template-columns:1fr!important}}.progress-stats{animation:slideInUp .5s ease-out}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.export-import-section{transition:all .3s ease}.export-import-section:hover{box-shadow:0 4px 8px #00000026;box-shadow:var(--shadow-medium);transform:translateY(-2px)}.backup-file-input{transition:border-color .3s ease}.backup-file-input:focus{border-color:#1976d2;border-color:var(--accent-color);box-shadow:0 0 0 2px #2563eb33}@media (prefers-reduced-motion:reduce){.cbc-group,.progress-stats{animation:none!important}*{transition:none!important}}@media (prefers-contrast:high){:root{--text-primary:#000;--text-secondary:#333;--border-color:#000;--accent-color:#00f}[data-theme=dark]{--text-primary:#fff;--text-secondary:#ccc;--border-color:#fff;--accent-color:#0ff}}@media print{.config-button-container,.export-import-section,.help-button,.theme-toggle-container{display:none!important}.App-header{box-shadow:none!important;position:static!important}.career-container{margin-top:0!important}}.loading-indicator{animation:spin 1s ease-in-out infinite;border:3px solid #2563eb4d;border-radius:50%;border-top:3px solid var(--accent-color);display:inline-block;height:20px;width:20px}@keyframes spin{to{transform:rotate(1turn)}}[title]:hover:after{background:#fff;background:var(--bg-panel);border:1px solid #e0e0e0;border:1px solid var(--border-color);border-radius:6px;box-shadow:0 4px 8px #00000026;box-shadow:var(--shadow-medium);color:#333;color:var(--text-primary);content:attr(title);font-size:.8em;padding:8px 12px;position:absolute;white-space:nowrap;z-index:1000}.config-toggle-button:focus-visible,.help-button:focus-visible{outline:2px solid #1976d2;outline:2px solid var(--accent-color);outline-offset:2px}*{transition:background-color .3s ease,color .3s ease,border-color .3s ease}::selection{background-color:#1976d2;background-color:var(--accent-color);color:#fff;color:var(--text-inverse)}html{scroll-behavior:smooth}.App-footer{margin-top:40px}.credits{align-items:center;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;margin:0 auto;max-width:1200px;padding:20px}@media (max-width:768px){.credits{flex-direction:column;gap:15px;text-align:center}}button:not(:disabled):hover{transform:translateY(-1px);transition:all .2s ease}button:not(:disabled):active{transform:translateY(0)}.stat-card{transition:all .3s ease}.stat-card:hover{box-shadow:0 8px 16px #0003;box-shadow:var(--shadow-large);transform:translateY(-2px)}.progress-bar{overflow:hidden;position:relative}.progress-bar:after{animation:progressShimmer 2s infinite;background:linear-gradient(90deg,#0000,#fff6,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;width:100%}@keyframes progressShimmer{0%{left:-100%}50%{left:100%}to{left:100%}}.config-panel{animation:slideInFromTop .3s ease-out;background-color:#fff;background-color:var(--bg-panel);border:2px solid #1976d2;border:2px solid var(--accent-color);border-radius:12px;box-shadow:0 8px 16px #0003;box-shadow:var(--shadow-large);display:flex;flex-direction:column;left:20px;margin:0 auto;max-height:calc(100vh - 200px);max-width:900px;overflow:hidden;position:fixed;right:20px;top:100px;z-index:1001}@keyframes slideInFromTop{0%{opacity:0;transform:translateY(-30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.config-panel-tabs{background-color:#1976d2;background-color:var(--accent-color);border-radius:10px 10px 0 0;color:#fff;display:flex;position:relative}.config-panel-tab{background-color:initial;border:none;border-bottom:3px solid #0000;color:#fff;cursor:pointer;flex:1 1;font-size:.9em;font-weight:400;overflow:hidden;padding:15px 10px;transition:all .3s ease}.config-panel-tab:before{background:linear-gradient(90deg,#0000,#ffffff1a,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.config-panel-tab:hover:before{left:100%}.config-panel-tab.active{background-color:#fff3;border-bottom-color:#fff;box-shadow:inset 0 -3px 0 #fff;font-weight:700}.config-panel-close{align-items:center;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background-color:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:18px;height:32px;justify-content:center;position:absolute;right:8px;top:8px;transition:all .2s ease;width:32px}.config-panel-close:hover{background-color:#ffffff4d;transform:scale(1.1)}.config-panel-content{background:#fff;background:var(--bg-panel);flex:1 1;overflow:auto;padding:0}.config-panel-content>div{padding:20px}.config-panel-content::-webkit-scrollbar{width:8px}.config-panel-content::-webkit-scrollbar-track{background:#f8f9fa;background:var(--bg-secondary);border-radius:4px}.config-panel-content::-webkit-scrollbar-thumb{background:#1976d2;background:var(--accent-color);border-radius:4px}.config-panel-content::-webkit-scrollbar-thumb:hover{background:#1565c0;background:var(--accent-hover)}.config-panel .cpo-controls,.config-panel .export-import-section,.config-panel .progress-stats{background:#0000;border:none;box-shadow:none;margin:0;padding:0}@media screen and (max-width:768px){.config-panel{border-radius:8px;left:10px;max-height:calc(100vh - 180px);right:10px;top:90px}.config-panel-tabs{border-radius:6px 6px 0 0}.config-panel-tab{font-size:.8em;padding:12px 8px}.config-panel-tab span.tab-icon{display:block;font-size:1.2em;margin-bottom:2px}.config-panel-tab span.tab-label{font-size:.7em}.config-panel-content>div{padding:15px}.config-panel-close{font-size:16px;height:28px;right:6px;top:6px;width:28px}.config-panel-footer{border-radius:0 0 6px 6px;font-size:.75em;padding:8px 15px}}@media screen and (max-width:380px){.config-panel{left:5px;max-height:calc(100vh - 170px);right:5px;top:85px}.config-panel-tab{font-size:.75em;padding:10px 4px}.config-panel-content>div{padding:10px}}.tab-content-enter{opacity:0;transform:translateX(20px)}.tab-content-enter-active{transition:opacity .3s ease,transform .3s ease}.tab-content-enter-active,.tab-content-exit{opacity:1;transform:translateX(0)}.tab-content-exit-active{opacity:0;transform:translateX(-20px);transition:opacity .3s ease,transform .3s ease}[data-theme=dark] .config-panel-tabs{background-color:#1976d2;background-color:var(--accent-color);border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--border-color)}[data-theme=dark] .config-panel-tab.active{background-color:#ffffff26;box-shadow:inset 0 -3px 0 #fffc}[data-theme=dark] .config-panel-close{background-color:#0000004d;border:1px solid #fff3}[data-theme=dark] .config-panel-close:hover{background-color:#0006}.config-panel-tab{position:relative}.config-panel-tab:hover{background-color:#ffffff1a}.config-panel-tab:active{transform:translateY(1px)}.config-panel-tab.active:after{background:#fff;border-radius:2px;bottom:-2px;box-shadow:0 2px 4px #0003;content:"";height:3px;left:20%;position:absolute;right:20%}@media screen and (max-height:500px) and (orientation:landscape){.config-panel{max-height:calc(100vh - 140px);top:70px}.config-panel-content>div{padding:15px}}.cpo-panel{animation:slideInFromTop .3s ease-out;background-color:#fff;background-color:var(--bg-panel);border:2px solid #4caf50;border:2px solid var(--success-color);border-radius:12px;box-shadow:0 8px 16px #0003;box-shadow:var(--shadow-large);display:flex;flex-direction:column;left:15px;margin:0 auto;max-height:calc(100vh - 120px);max-width:850px;overflow:hidden;position:fixed;right:15px;top:80px;z-index:1001}.cpo-panel-header{background-color:#4caf50;background-color:var(--success-color);border-radius:10px 10px 0 0;min-height:60px;padding:12px 20px;position:relative}.cpo-panel-close,.cpo-panel-header{align-items:center;color:#fff;display:flex}.cpo-panel-close{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background-color:#fff3;border:none;border-radius:50%;cursor:pointer;flex-shrink:0;font-size:16px;height:30px;justify-content:center;margin-left:15px;transition:all .2s ease;width:30px}.cpo-panel-close:hover{background-color:#ffffff4d;transform:scale(1.1)}.cpo-panel-content{background:#fff;background:var(--bg-panel);flex:1 1;min-height:200px;overflow:auto;padding:15px 20px}.cpo-panel-content::-webkit-scrollbar{width:8px}.cpo-panel-content::-webkit-scrollbar-track{background:#f8f9fa;background:var(--bg-secondary);border-radius:4px}.cpo-panel-content::-webkit-scrollbar-thumb{background:#4caf50;background:var(--success-color);border-radius:4px}.cpo-panel-content::-webkit-scrollbar-thumb:hover{background:#4caf50;background:var(--success-color);opacity:.8}.cpo-panel .cpo-controls{background:#0000;border:none;box-shadow:none;margin:0;padding:0}.cpo-panel-footer{background-color:#e3f2fd;background-color:var(--bg-hover);border-radius:0 0 10px 10px;border-top:1px solid #e0e0e0;border-top:1px solid var(--border-color);color:#666;color:var(--text-secondary);font-size:.8em;padding:12px 20px;text-align:center}@media screen and (max-width:768px){.cpo-panel{border-radius:8px;left:8px;max-height:calc(100vh - 160px);right:8px;top:85px}.cpo-panel-header{border-radius:6px 6px 0 0;min-height:50px;padding:10px 15px}.cpo-panel-header h3{font-size:1em!important}.cpo-panel-header p{font-size:.8em!important}.cpo-panel-content{padding:12px 15px}.cpo-panel-close{font-size:14px;height:26px;margin-left:8px;width:26px}.cpo-panel-footer{font-size:.75em;padding:8px 15px}}@media screen and (max-width:380px){.cpo-panel{left:5px;max-height:calc(100vh - 150px);right:5px;top:80px}.cpo-panel-content{padding:10px 12px}.cpo-panel-header{padding:8px 12px}.cpo-panel-header h3{font-size:.9em!important}.cpo-panel-header p{font-size:.75em!important}.cpo-panel-footer{font-size:.7em;padding:6px 12px}}[data-theme=dark] .cpo-panel-header{background-color:#4caf50;background-color:var(--success-color);border-bottom:1px solid #e0e0e0;border-bottom:1px solid var(--border-color)}[data-theme=dark] .cpo-panel-close{background-color:#0000004d;border:1px solid #fff3}[data-theme=dark] .cpo-panel-close:hover{background-color:#0006}@media screen and (max-height:600px) and (orientation:landscape){.cpo-panel{max-height:calc(100vh - 100px);top:70px}.cpo-panel-header{min-height:40px;padding:8px 15px}.cpo-panel-header h3{font-size:1em!important}.cpo-panel-header p{font-size:.8em!important}.cpo-panel-content{padding:10px 15px}.cpo-panel-footer{font-size:.75em;padding:6px 15px}}.cpo-controls-panel-wrapper .cpo-controls{background:#0000!important;border:none!important;box-shadow:none!important;left:auto!important;margin:0!important;max-width:100%!important;padding:0!important;position:static!important;top:auto!important;transform:none!important;width:100%!important;z-index:auto!important}.cpo-controls-panel-wrapper .cpo-controls:before{display:none!important}@media screen and (max-width:768px){.help-guide-modal{padding:5px!important}.help-guide-container{maxHeight:95vh!important;margin:0!important}.help-guide-header{padding:15px 20px!important}.help-guide-header h2{fontSize:1.2em!important;paddingRight:45px!important}.help-guide-content{scrollBehavior:smooth!important;overscrollBehavior:contain!important;padding:20px 25px!important}.help-guide-footer{flexWrap:wrap!important;gap:10px!important;padding:12px 20px!important}.help-guide-footer button{minWidth:80px!important;fontSize:.85em!important}.help-guide-content ul{paddingLeft:18px!important}.help-guide-content li{marginBottom:8px!important;lineHeight:1.5!important}.help-guide-content p{fontSize:.95em!important;marginBottom:12px!important}}@media screen and (max-width:380px){.help-guide-header h2{fontSize:1.1em!important}.help-guide-content{padding:15px 20px!important}.help-guide-content p{fontSize:.9em!important}.help-guide-footer button{fontSize:.8em!important;padding:8px 16px!important}}.feedback-button{backgroundColor:#4caf50;backgroundColor:var(--success-color);align-items:center;border:none;border-radius:50%;bottom:20px;box-shadow:0 8px 16px #0003;box-shadow:var(--shadow-large);color:#fff;cursor:pointer;display:flex;font-size:1.5em;height:60px;justify-content:center;position:fixed;right:20px;transition:all .3s ease;width:60px;z-index:999}.feedback-button:hover{box-shadow:0 8px 25px #4caf5066;transform:scale(1.1)}.feedback-button:active{transform:scale(.95)}@media (max-width:768px){.feedback-button{bottom:90px;font-size:1.3em;height:56px;right:15px;width:56px}.feedback-button:hover{box-shadow:0 8px 16px #0003;box-shadow:var(--shadow-large);transform:none}.feedback-button:active{background-color:#4caf50;background-color:var(--success-color);transform:scale(.95)}}@media (max-width:380px){.feedback-button{bottom:85px;font-size:1.2em;height:50px;right:10px;width:50px}}.subject-node{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f8f9fa;background:var(--bg-secondary);border-radius:12px;box-shadow:0 4px 8px #00000026;box-shadow:var(--shadow-medium);font-size:.85em;overflow:hidden;padding:12px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.subject-node:before{background:linear-gradient(135deg,#ffffff1a,#ffffff0d 50%,#0000000d);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:1}.subject-node>div{position:relative;z-index:2}.subject-node:hover{box-shadow:0 8px 16px #0003;box-shadow:var(--shadow-large);transform:translateY(-6px) scale(1.03)}.status-no-disponible{background:linear-gradient(135deg,#f5f5f5,#dc35451a)!important;background:linear-gradient(135deg,var(--status-no-disponible-bg),#dc35451a)!important;border:2px solid #dc3545!important;border-left:4px solid #dc3545!important;border:2px solid var(--status-no-disponible-border)!important;border-left-width:4px!important;cursor:not-allowed;opacity:.7}.status-no-cursada{background:linear-gradient(135deg,#e9ecef,#adb5bd1a)!important;background:linear-gradient(135deg,var(--status-no-cursada-bg),#adb5bd1a)!important;border:2px solid #adb5bd!important;border-left:4px solid #adb5bd!important;border:2px solid var(--status-no-cursada-border)!important;border-left-width:4px!important}.status-puede-cursar{background:linear-gradient(135deg,#fff3cd,#ffc10733)!important;background:linear-gradient(135deg,var(--status-puede-cursar-bg),#ffc10733)!important;border:2px solid #ffc107!important;border-left:4px solid #ffc107!important;border:2px solid var(--status-puede-cursar-border)!important;border-left-width:4px!important;box-shadow:0 0 20px #ffc10733}.status-cursando{animation:cursando-pulse 3s ease-in-out infinite;background:linear-gradient(135deg,#fff3e0,#2196f333)!important;background:linear-gradient(135deg,var(--status-cursando-bg),#2196f333)!important;border:2px solid #2196f3!important;border-left:4px solid #2196f3!important;border:2px solid var(--status-cursando-border)!important;border-left-width:4px!important;box-shadow:0 0 20px #2196f333}.status-cursada-aprobada{background:linear-gradient(135deg,#e8f5e8,#4caf5033)!important;background:linear-gradient(135deg,var(--status-cursada-bg),#4caf5033)!important;border:2px solid #28a745!important;border-left:4px solid #28a745!important;border:2px solid var(--status-cursada-border)!important;border-left-width:4px!important;box-shadow:0 0 20px #4caf5033}.status-final-aprobado{background:linear-gradient(135deg,#e2e3e5,#2d2d2d1a,#4caf504d)!important;background:linear-gradient(135deg,var(--status-final-bg),#2d2d2d1a,#4caf504d)!important;border:2px solid #4caf50!important;border-left:4px solid #4caf50!important;border:2px solid var(--success-color)!important;border-left-width:4px!important;box-shadow:0 0 25px #4caf5066;cursor:default}.status-explorar-seleccionada{animation:explorar-selected 2s ease-in-out infinite;background:linear-gradient(135deg,#1976d2,#1565c0)!important;background:linear-gradient(135deg,var(--accent-color),var(--accent-hover))!important;border:3px solid #1976d2!important;border:3px solid var(--accent-color)!important;box-shadow:0 0 30px #1976d2,0 8px 16px #0003;box-shadow:0 0 30px var(--accent-color),var(--shadow-large);color:#fff!important;transform:scale(1.05)}.status-explorar-prerrequisito{animation:prerequisito-glow 2s ease-in-out infinite;background:linear-gradient(135deg,#fff3cd,#ff98004d)!important;background:linear-gradient(135deg,var(--status-puede-cursar-bg),#ff98004d)!important;border:2px solid #ffc107!important;border-left:4px solid #ffc107!important;border:2px solid var(--status-puede-cursar-border)!important;border-left:4px solid var(--warning-color)!important;box-shadow:0 0 20px #ff98004d}.status-explorar-habilitada{animation:habilitada-glow 2s ease-in-out infinite;background:linear-gradient(135deg,#fff3e0,#2196f34d)!important;background:linear-gradient(135deg,var(--status-cursando-bg),#2196f34d)!important;border:2px solid #2196f3!important;border-left:4px solid #17a2b8!important;border:2px solid var(--status-cursando-border)!important;border-left:4px solid var(--info-color)!important;box-shadow:0 0 20px #2196f34d}@keyframes cursando-pulse{0%,to{box-shadow:0 0 20px #2196f333,0 4px 8px #00000026;box-shadow:0 0 20px #2196f333,var(--shadow-medium)}50%{box-shadow:0 0 30px #2196f366,0 8px 16px #0003;box-shadow:0 0 30px #2196f366,var(--shadow-large)}}@keyframes explorar-selected{0%,to{box-shadow:0 0 30px #1976d2,0 8px 16px #0003;box-shadow:0 0 30px var(--accent-color),var(--shadow-large)}50%{box-shadow:0 0 40px #1565c0,0 8px 32px #0000004d;box-shadow:0 0 40px var(--accent-hover),0 8px 32px #0000004d}}@keyframes prerequisito-glow{0%,to{box-shadow:0 0 20px #ff98004d,0 4px 8px #00000026;box-shadow:0 0 20px #ff98004d,var(--shadow-medium)}50%{box-shadow:0 0 30px #ff980080,0 8px 16px #0003;box-shadow:0 0 30px #ff980080,var(--shadow-large)}}@keyframes habilitada-glow{0%,to{box-shadow:0 0 20px #2196f34d,0 4px 8px #00000026;box-shadow:0 0 20px #2196f34d,var(--shadow-medium)}50%{box-shadow:0 0 30px #2196f380,0 8px 16px #0003;box-shadow:0 0 30px #2196f380,var(--shadow-large)}}.react-flow__edge{pointer-events:all}.react-flow__edge,.react-flow__edge-path{transition:all .3s cubic-bezier(.4,0,.2,1)}.react-flow__edge-path{stroke:#b1b1b7;stroke:var(--rf-edge-color);stroke-width:2;filter:drop-shadow(2px 2px 4px rgba(0,0,0,.1))}.react-flow__edge:hover .react-flow__edge-path{stroke:#2563eb;stroke:var(--rf-edge-hover);stroke-width:4;filter:drop-shadow(3px 3px 8px rgba(0,0,0,.2))}.edge-prerequisito .react-flow__edge-path{stroke:#ffc107;stroke:var(--status-puede-cursar-border);stroke-width:3;stroke-dasharray:12 6;animation:dashPrerequisito 2s linear infinite;filter:drop-shadow(2px 2px 6px rgba(255,152,0,.3))}.edge-habilitada .react-flow__edge-path{stroke:#2196f3;stroke:var(--status-cursando-border);stroke-width:3;stroke-dasharray:16 8;animation:dashHabilitada 2s linear infinite;filter:drop-shadow(2px 2px 6px rgba(33,150,243,.3))}@keyframes dashPrerequisito{0%{stroke-dashoffset:18;opacity:.8}to{stroke-dashoffset:0;opacity:1}}@keyframes dashHabilitada{0%{stroke-dashoffset:0;opacity:.8}to{stroke-dashoffset:24;opacity:1}}.react-flow__arrowhead{fill:currentColor;stroke:none;filter:drop-shadow(1px 1px 2px rgba(0,0,0,.2));transition:all .3s cubic-bezier(.4,0,.2,1)}.edge-prerequisito .react-flow__arrowhead{fill:#ffc107;fill:var(--status-puede-cursar-border);filter:drop-shadow(2px 2px 4px rgba(255,152,0,.4))}.edge-habilitada .react-flow__arrowhead{fill:#2196f3;fill:var(--status-cursando-border);filter:drop-shadow(2px 2px 4px rgba(33,150,243,.4))}.react-flow__edge:hover .react-flow__arrowhead{fill:#2563eb;fill:var(--rf-edge-hover);filter:drop-shadow(3px 3px 6px rgba(0,0,0,.3));transform:scale(1.3)}.edge-prerequisito{animation:edge-pulse-orange 3s ease-in-out infinite}.edge-habilitada{animation:edge-pulse-blue 3s ease-in-out infinite}@keyframes edge-pulse-orange{0%,to{filter:drop-shadow(2px 2px 6px rgba(255,152,0,.3))}50%{filter:drop-shadow(3px 3px 10px rgba(255,152,0,.6))}}@keyframes edge-pulse-blue{0%,to{filter:drop-shadow(2px 2px 6px rgba(33,150,243,.3))}50%{filter:drop-shadow(3px 3px 10px rgba(33,150,243,.6))}}.react-flow__controls{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff2;border:1px solid #e0e0e0;border:1px solid var(--border-color);border-radius:12px;bottom:120px!important;box-shadow:0 8px 16px #0003;box-shadow:var(--shadow-large);display:flex;flex-direction:column;gap:8px;left:15px!important;padding:8px;position:absolute;transition:all .3s ease;z-index:1000}.react-flow__controls button{align-items:center;background:#f8f9fa;background:var(--bg-secondary);border:none;border-radius:8px;color:#333;color:var(--text-primary);cursor:pointer;display:flex;font-size:16px;font-weight:600;height:40px;justify-content:center;overflow:hidden;position:relative;transition:all .2s ease;width:40px}.react-flow__controls button:before{background:linear-gradient(90deg,#0000,#fff6,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.react-flow__controls button:hover{background:#1976d2;background:var(--accent-color);box-shadow:0 4px 8px #00000026;box-shadow:var(--shadow-medium);color:#fff;color:var(--text-inverse);transform:translateY(-2px)}.react-flow__controls button:hover:before{left:100%}.react-flow__controls button svg{height:20px;transition:all .2s ease;width:20px}.react-flow__minimap{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:2px solid #e0e0e0;border:2px solid var(--border-color);border-radius:12px;bottom:90px!important;box-shadow:0 8px 16px #0003;box-shadow:var(--shadow-large);overflow:hidden;position:fixed!important;right:20px!important;z-index:1002!important}.react-flow__renderer{background:radial-gradient(circle at 20% 30%,#f8f9fa 0,#fff 100%);background:radial-gradient(circle at 20% 30%,var(--bg-secondary) 0,var(--bg-primary) 100%)}.react-flow__handle{background:linear-gradient(135deg,#333,#666);background:linear-gradient(135deg,var(--text-primary),var(--text-secondary));border:3px solid #f8f9fa;border:3px solid var(--bg-secondary);border-radius:50%;box-shadow:0 2px 4px #0000001a;box-shadow:var(--shadow-small);height:12px;opacity:.8;transition:all .3s cubic-bezier(.4,0,.2,1);width:12px}.react-flow__handle:hover{background:linear-gradient(135deg,#1976d2,#1565c0);background:linear-gradient(135deg,var(--accent-color),var(--accent-hover));box-shadow:0 8px 16px #0003;box-shadow:var(--shadow-large);opacity:1;transform:scale(1.4)}.react-flow__handle.source{background:linear-gradient(135deg,#2196f3,#17a2b8);background:linear-gradient(135deg,var(--status-cursando-border),var(--info-color))}.react-flow__handle.target{background:linear-gradient(135deg,#ffc107,#ffc107);background:linear-gradient(135deg,var(--status-puede-cursar-border),var(--warning-color))}.react-flow__handle-top{top:-6px}.react-flow__handle-bottom{bottom:-6px}.react-flow__edge.react-flow__edge-selected .react-flow__edge-path{stroke:#1976d2;stroke:var(--accent-color);stroke-width:5;animation:selected-edge-pulse 2s ease-in-out infinite;filter:drop-shadow(4px 4px 12px #1976d2);filter:drop-shadow(4px 4px 12px var(--accent-color))}@keyframes selected-edge-pulse{0%,to{stroke-width:5;opacity:.9}50%{stroke-width:6;opacity:1}}@media screen and (max-width:768px){.subject-node{font-size:.8em;min-height:70px}.react-flow__controls{bottom:130px!important;left:10px!important;scale:.9}.react-flow__controls button{height:36px;width:36px}.react-flow__controls button svg{height:18px;width:18px}.react-flow__handle{height:10px;width:10px}}[data-theme=dark] .subject-node:before{background:linear-gradient(135deg,#ffffff0d,#ffffff05 50%,#0000001a)}[data-theme=dark] .react-flow__renderer{background:radial-gradient(circle at 20% 30%,#f8f9fa 0,#fff 100%);background:radial-gradient(circle at 20% 30%,var(--bg-secondary) 0,var(--bg-primary) 100%)}[data-theme=dark] .react-flow__edge-path{filter:drop-shadow(2px 2px 6px rgba(0,0,0,.4))}[data-theme=dark] .react-flow__handle{box-shadow:0 2px 8px #0009}.welcome-modal-overlay{align-items:center!important;-webkit-backdrop-filter:blur(6px)!important;backdrop-filter:blur(6px)!important;bottom:0!important;display:flex!important;justify-content:center!important;left:0!important;position:fixed!important;right:0!important;top:0!important;z-index:15000!important}.welcome-modal-content{animation:modalFadeIn .4s ease-out!important;transform-origin:center center!important}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.9) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}@media screen and (max-width:768px){.welcome-modal-overlay{align-items:flex-start!important;padding:60px 10px 10px!important}.welcome-modal-content{border:3px solid #1976d2!important;border:3px solid var(--accent-color)!important;border-radius:20px!important;box-shadow:0 20px 60px #00000080!important;margin:0!important;max-height:calc(100vh - 120px)!important;max-width:95vw!important;min-height:350px!important;padding:30px 25px!important;width:95vw!important}.welcome-modal-content h3{font-size:1.5em!important;margin-bottom:25px!important;text-align:center!important}.welcome-modal-content p{font-size:1em!important;margin-bottom:20px!important;text-align:center!important}.welcome-modal-content button{border-radius:12px!important;box-shadow:0 4px 15px #1976d24d!important;font-size:1.1em!important;font-weight:700!important;margin-top:20px!important;padding:15px 25px!important}.welcome-modal-content button:hover{box-shadow:0 6px 20px #1976d266!important;transform:translateY(-2px)!important}}@media screen and (max-width:400px){.welcome-modal-overlay{padding:50px 8px 8px!important}.welcome-modal-content{border-radius:16px!important;min-height:320px!important;padding:25px 20px!important}.welcome-modal-content h3{font-size:1.3em!important}.welcome-modal-content p{font-size:.95em!important}.welcome-modal-content button{font-size:1em!important;padding:12px 20px!important}}[data-theme=dark] .welcome-modal-content{border-color:#1976d2!important;border-color:var(--accent-color)!important;box-shadow:0 20px 60px #000000b3!important}@media (hover:none) and (pointer:coarse){.welcome-modal-content button:active{transform:scale(.98)!important;transition:transform .1s ease!important}}.react-flow{direction:ltr}.react-flow__container{height:100%;left:0;position:absolute;top:0;width:100%}.react-flow__pane{cursor:grab;z-index:1}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:grabbing}.react-flow__viewport{pointer-events:none;transform-origin:0 0;z-index:2}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{overflow:visible;pointer-events:none}.react-flow__connection-path,.react-flow__edge-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{cursor:pointer;pointer-events:visibleStroke}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{box-sizing:border-box;cursor:grab;pointer-events:all;position:absolute;transform-origin:0 0;-webkit-user-select:none;user-select:none}.react-flow__node.dragging{cursor:grabbing}.react-flow__nodesselection{pointer-events:none;transform-origin:left top;z-index:3}.react-flow__nodesselection-rect{cursor:grab;pointer-events:all;position:absolute}.react-flow__handle{background:#1a192b;border:1px solid #fff;border-radius:100%;height:6px;min-height:5px;min-width:5px;pointer-events:none;position:absolute;width:6px}.react-flow__handle.connectionindicator{cursor:crosshair;pointer-events:all}.react-flow__handle-bottom{bottom:-4px;left:50%;top:auto;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{left:-4px;top:50%;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{margin:15px;position:absolute;z-index:5}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translateX(-50%)}.react-flow__attribution{background:#ffffff80;font-size:10px;margin:0;padding:2px 3px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{height:100%;pointer-events:none;position:absolute;-webkit-user-select:none;user-select:none;width:100%}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-group,.react-flow__node-input,.react-flow__node-output{background-color:#fff;border:1px solid #1a192b;border-radius:3px;color:#222;font-size:12px;padding:10px;text-align:center;width:150px}.react-flow__node-default.selectable:hover,.react-flow__node-group.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted #0059dccc}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{align-items:center;background:#fefefe;border:none;border-bottom:1px solid #eee;box-sizing:initial;cursor:pointer;display:flex;height:16px;justify-content:center;padding:5px;-webkit-user-select:none;user-select:none;width:16px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{max-height:12px;max-width:12px;width:100%}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.bottom,.react-flow__resize-control.top{cursor:ns-resize}.react-flow__resize-control.bottom.right,.react-flow__resize-control.top.left{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:#3367d9;border:1px solid #fff;border-radius:1px;height:4px;transform:translate(-50%,-50%);width:4px}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.bottom.left,.react-flow__resize-control.handle.top.left{left:0}.react-flow__resize-control.handle.bottom.right,.react-flow__resize-control.handle.top.right{left:100%}.react-flow__resize-control.line{border:0 solid #3367d9}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{height:100%;top:0;transform:translate(-50%);width:1px}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.bottom,.react-flow__resize-control.line.top{height:1px;left:0;transform:translateY(-50%);width:100%}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.theme-toggle{-webkit-tap-highlight-color:transparent;align-items:center;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:12px;box-shadow:var(--shadow-medium);cursor:pointer;display:flex;height:48px;justify-content:center;overflow:hidden;position:relative;touch-action:manipulation;transition:all .3s cubic-bezier(.4,0,.2,1);user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;width:48px}.theme-toggle:hover{background:var(--bg-hover);border-color:var(--accent-color);box-shadow:var(--shadow-large);transform:translateY(-2px)}.theme-toggle:active{background:var(--accent-color);box-shadow:var(--shadow-small);transform:translateY(0) scale(.95)}.theme-toggle:focus{box-shadow:var(--shadow-large),0 0 0 3px var(--accent-color-alpha);outline:none}.theme-toggle-inner{align-items:center;display:flex;height:24px;justify-content:center;pointer-events:none;position:relative;width:24px}.theme-icon{color:var(--text-secondary);pointer-events:none;position:absolute;transform-origin:center;transition:all .4s cubic-bezier(.4,0,.2,1)}.theme-icon.active{color:var(--accent-color);opacity:1;transform:scale(1) rotate(0deg)}.theme-icon:not(.active){opacity:0;transform:scale(.7) rotate(180deg)}.sun-icon{animation:none}.sun-icon.active{animation:sunRotate 2s ease-in-out}.moon-icon.active{animation:moonGlow 1.5s ease-in-out}@keyframes sunRotate{0%{opacity:0;transform:scale(.7) rotate(-90deg)}50%{opacity:1;transform:scale(1.1) rotate(0deg)}to{opacity:1;transform:scale(1) rotate(0deg)}}@keyframes moonGlow{0%{filter:brightness(.5);opacity:0;transform:scale(.7) rotate(90deg)}50%{filter:brightness(1.2);opacity:1;transform:scale(1.1) rotate(0deg)}to{filter:brightness(1);opacity:1;transform:scale(1) rotate(0deg)}}@media (max-width:768px){.theme-toggle{border-width:3px;height:52px;min-height:44px;min-width:44px;width:52px;z-index:1010}.theme-toggle:active{background:var(--accent-color);border-color:var(--accent-hover);transform:scale(.9)}.theme-toggle-inner{height:22px;width:22px}.theme-icon{height:20px;width:20px}.theme-toggle:hover{background:var(--bg-secondary);border-color:var(--border-color);box-shadow:var(--shadow-medium);transform:none}}@media (hover:none) and (pointer:coarse){.theme-toggle:hover{background:var(--bg-secondary);border-color:var(--border-color);box-shadow:var(--shadow-medium);transform:none}.theme-toggle:active{background:var(--accent-color);border-color:var(--accent-hover);transform:scale(.9)}}@media (max-width:480px){.theme-toggle{border-width:2px;height:48px;width:48px}.theme-toggle-inner{height:20px;width:20px}.theme-icon{height:18px;width:18px}}
/*# sourceMappingURL=main.f6d9c3ff.css.map*/