@import"https://fonts.googleapis.com/css2?family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&family=Outfit:wght@300;400;500;600;700;800&display=swap";:root{--bg-deep: #06090f;--bg-base: #0b1120;--bg-surface: #111a2e;--bg-elevated: #162040;--bg-hover: #1a2748;--border-subtle: rgba(255,255,255,.06);--border-medium: rgba(255,255,255,.1);--border-accent: rgba(52,211,153,.25);--text-bright: #f0f4f8;--text-primary: #c9d6e3;--text-secondary: #7a8ba3;--text-muted: #4a5a72;--accent: #34d399;--accent-dim: rgba(52,211,153,.1);--accent-mid: rgba(52,211,153,.2);--accent2: #d4a853;--accent2-dim: rgba(212,168,83,.1);--accent3: #60a5fa;--accent3-dim: rgba(96,165,250,.1);--accent4: #f472b6;--accent4-dim: rgba(244,114,182,.1);--aprobada: #34d399;--aprobada-dim: rgba(52,211,153,.12);--regular: #60a5fa;--regular-dim: rgba(96,165,250,.12);--cursando: #a78bfa;--cursando-dim: rgba(167,139,250,.12);--pendiente: #d4a853;--pendiente-dim: rgba(212,168,83,.12);--bloqueada: #4a5a72;--bloqueada-dim: rgba(74,90,114,.12);--desaprobada: #f87171;--desaprobada-dim: rgba(248,113,113,.12);--r: 14px;--r-sm: 10px;--r-lg: 18px;--r-xl: 24px;--shadow: 0 8px 32px rgba(0,0,0,.4);--shadow-sm: 0 2px 8px rgba(0,0,0,.3);--shadow-glow: 0 0 60px rgba(52,211,153,.06);--font-display: "Libre Baskerville", Georgia, serif;--font-body: "Outfit", system-ui, sans-serif;--ease: cubic-bezier(.16, 1, .3, 1);--ease-out: cubic-bezier(0, 0, .2, 1)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-body);background:var(--bg-deep);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}@keyframes fadeUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleUp{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideRight{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes shimmer{0%{background-position:-300% 0}to{background-position:300% 0}}@keyframes pulse-soft{0%,to{opacity:1}50%{opacity:.6}}@keyframes glow-border{0%,to{border-color:#a78bfa4d}50%{border-color:#a78bfa99}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes gradient-move{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes count-in{0%{opacity:0;transform:scale(.5);filter:blur(4px)}to{opacity:1;transform:scale(1);filter:blur(0)}}@keyframes draw-line{0%{stroke-dashoffset:1000}to{stroke-dashoffset:0}}.anim-fade-up{animation:fadeUp .7s var(--ease) both}.anim-scale{animation:scaleUp .5s var(--ease) both}.anim-slide-r{animation:slideRight .6s var(--ease) both}.d1{animation-delay:.05s}.d2{animation-delay:.1s}.d3{animation-delay:.15s}.d4{animation-delay:.2s}.d5{animation-delay:.25s}.d6{animation-delay:.3s}.d7{animation-delay:.35s}.d8{animation-delay:.4s}.bg-mesh{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse 800px 600px at 15% 20%,rgba(52,211,153,.04),transparent),radial-gradient(ellipse 600px 600px at 85% 75%,rgba(212,168,83,.03),transparent),radial-gradient(ellipse 500px 400px at 50% 50%,rgba(96,165,250,.02),transparent)}.noise-overlay{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1;opacity:.015;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='1'/%3E%3C/svg%3E");background-repeat:repeat;background-size:128px}.auth-wrapper{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;position:relative;z-index:2}.auth-card{width:100%;max-width:440px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-xl);padding:48px 40px;box-shadow:var(--shadow);animation:scaleUp .6s var(--ease) both;position:relative;overflow:hidden}.auth-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent),var(--accent2),var(--accent));background-size:200% 100%;animation:gradient-move 4s ease infinite}.auth-logo{width:56px;height:56px;background:linear-gradient(135deg,var(--accent),var(--accent2));border-radius:16px;display:flex;align-items:center;justify-content:center;margin:0 auto 24px;font-family:var(--font-display);font-weight:700;font-size:20px;color:var(--bg-deep);box-shadow:0 4px 20px #34d3994d;animation:float 3s ease-in-out infinite}.auth-title{font-family:var(--font-display);font-size:26px;font-weight:700;text-align:center;color:var(--text-bright);letter-spacing:-.02em;margin-bottom:6px}.auth-sub{text-align:center;font-size:14px;color:var(--text-secondary);margin-bottom:32px}.auth-form{display:flex;flex-direction:column;gap:16px}.field-group{display:flex;flex-direction:column;gap:6px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field-label{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em}.field-input{width:100%;padding:12px 16px;background:var(--bg-base);border:1px solid var(--border-subtle);border-radius:var(--r-sm);color:var(--text-bright);font-size:15px;font-family:var(--font-body);outline:none;transition:all .3s ease}.field-input::placeholder{color:var(--text-muted)}.field-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.field-select{width:100%;padding:12px 40px 12px 16px;background:var(--bg-base);border:1px solid var(--border-subtle);border-radius:var(--r-sm);color:var(--text-bright);font-size:15px;font-family:var(--font-body);outline:none;cursor:pointer;transition:all .3s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%237a8ba3' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}.field-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.field-select option{background:var(--bg-surface);color:var(--text-bright)}.btn-primary{width:100%;padding:14px;background:linear-gradient(135deg,var(--accent),#2ab386);border:none;border-radius:var(--r-sm);color:var(--bg-deep);font-size:15px;font-weight:700;font-family:var(--font-body);cursor:pointer;transition:all .3s ease;margin-top:8px;letter-spacing:.01em}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 20px #34d39959}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.auth-toggle{text-align:center;margin-top:20px;font-size:13px;color:var(--text-secondary)}.auth-toggle span{color:var(--accent);cursor:pointer;font-weight:600;transition:color .2s}.auth-toggle span:hover{color:var(--text-bright)}.auth-forgot{text-align:right;margin-top:-4px;margin-bottom:4px}.auth-forgot span{font-size:12px;color:var(--text-muted);cursor:pointer;transition:color .2s}.auth-forgot span:hover{color:var(--accent)}.cascade-divider{position:relative;text-align:center;margin:8px 0 4px}.cascade-divider:before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:var(--border-subtle)}.cascade-divider-text{position:relative;background:var(--bg-surface);padding:0 14px;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}.cascade-loading{color:var(--accent);font-weight:400;font-size:10px;text-transform:none;letter-spacing:0;animation:pulse-soft 1.2s ease infinite}.cascade-summary{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--accent-dim);border:1px solid rgba(52,211,153,.15);border-radius:var(--r-sm);font-size:12px;color:var(--accent);font-weight:500;line-height:1.4}.cascade-check{width:22px;height:22px;border-radius:50%;background:var(--accent);color:var(--bg-deep);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}@keyframes slide-down-in{0%{opacity:0;transform:translateY(-8px);max-height:0}to{opacity:1;transform:translateY(0);max-height:200px}}.anim-slide-down{animation:slide-down-in .35s var(--ease) both}.auth-error{background:var(--desaprobada-dim);border:1px solid rgba(248,113,113,.2);border-radius:var(--r-sm);padding:10px 14px;font-size:13px;color:var(--desaprobada);animation:slideDown .3s var(--ease) both}.auth-info{background:var(--accent-dim);border:1px solid rgba(52,211,153,.2);border-radius:var(--r-sm);padding:10px 14px;font-size:13px;color:var(--accent);animation:slideDown .3s var(--ease) both;text-align:center}.loading-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;position:relative;z-index:2}.loading-spinner{width:40px;height:40px;border:3px solid var(--border-medium);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{color:var(--text-secondary);font-size:14px}.plan-pick-card{width:100%;max-width:460px;padding:40px 32px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);box-shadow:var(--shadow);animation:scaleUp .4s ease}.plan-pick-title{font-family:var(--font-display);color:var(--text-bright);font-size:1.4rem;margin-bottom:8px;text-align:center}.plan-pick-sub{color:var(--text-secondary);font-size:14px;margin-bottom:24px;text-align:center;line-height:1.5}.topbar{position:sticky;top:0;z-index:50;backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);background:#06090fc7;border-bottom:1px solid var(--border-subtle);height:68px;padding:0 32px;display:flex;align-items:center;justify-content:space-between;animation:fadeIn .6s ease both}.topbar-left{display:flex;align-items:center;gap:16px}.topbar-logo-mark{width:38px;height:38px;background:linear-gradient(135deg,var(--accent),var(--accent2));border-radius:11px;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--bg-deep);box-shadow:0 2px 12px #34d39933;flex-shrink:0}.topbar-text h1{font-family:var(--font-display);font-size:16px;font-weight:700;color:var(--text-bright);letter-spacing:-.01em;line-height:1.2}.topbar-text span{font-size:11px;color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-weight:500}.topbar-right{display:flex;align-items:center;gap:14px}.topbar-info{text-align:right;display:flex;flex-direction:column}.topbar-name{font-size:13px;font-weight:600;color:var(--text-bright)}.topbar-legajo{font-size:11px;color:var(--text-muted);font-weight:400}.topbar-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--accent2),var(--accent4));display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;color:#fff;cursor:pointer;transition:all .3s ease;flex-shrink:0}.topbar-avatar:hover{transform:scale(1.1);box-shadow:0 0 16px #d4a8534d}.topbar-logout{padding:6px 14px;border:1px solid var(--border-medium);border-radius:var(--r-sm);background:transparent;color:var(--text-secondary);font-size:12px;font-family:var(--font-body);font-weight:500;cursor:pointer;transition:all .3s ease}.topbar-logout:hover{border-color:var(--desaprobada);color:var(--desaprobada);background:var(--desaprobada-dim)}.nav{display:flex;gap:2px;padding:10px 32px;background:var(--bg-base);border-bottom:1px solid var(--border-subtle);overflow-x:auto;animation:fadeIn .6s ease .1s both}.nav-item{padding:10px 20px;border-radius:var(--r);font-size:13px;font-weight:500;color:var(--text-muted);cursor:pointer;transition:all .25s ease;white-space:nowrap;border:1px solid transparent;background:transparent;font-family:var(--font-body);position:relative}.nav-item:hover{color:var(--text-secondary);background:var(--bg-surface)}.nav-item.active{color:var(--accent);background:var(--accent-dim);border-color:#34d39926;font-weight:600}.main{position:relative;z-index:2;padding:32px;max-width:1440px;margin:0 auto}.hero-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:32px}.stat-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:24px;position:relative;overflow:hidden;transition:all .4s var(--ease)}.stat-card:hover{transform:translateY(-3px);border-color:var(--border-medium);box-shadow:var(--shadow)}.stat-card:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px}.stat-card.c1:after{background:linear-gradient(90deg,var(--accent),transparent)}.stat-card.c2:after{background:linear-gradient(90deg,var(--accent2),transparent)}.stat-card.c3:after{background:linear-gradient(90deg,var(--accent3),transparent)}.stat-card.c4:after{background:linear-gradient(90deg,var(--accent4),transparent)}.stat-icon-wrap{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:16px;font-size:20px}.stat-icon-wrap.c1{background:var(--accent-dim);color:var(--accent)}.stat-icon-wrap.c2{background:var(--accent2-dim);color:var(--accent2)}.stat-icon-wrap.c3{background:var(--accent3-dim);color:var(--accent3)}.stat-icon-wrap.c4{background:var(--accent4-dim);color:var(--accent4)}.stat-lbl{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-weight:600;margin-bottom:6px}.stat-val{font-family:var(--font-display);font-size:32px;font-weight:700;color:var(--text-bright);letter-spacing:-.03em;animation:count-in .6s var(--ease) both}.stat-sub{font-size:12px;color:var(--text-muted);margin-top:2px}.progress-wrap{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:28px;margin-bottom:32px}.progress-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:18px}.progress-title{font-family:var(--font-display);font-size:17px;font-weight:700;color:var(--text-bright)}.progress-pct{font-family:var(--font-display);font-size:28px;font-weight:700;color:var(--accent);animation:count-in .8s var(--ease) .3s both}.progress-track{height:10px;background:var(--bg-deep);border-radius:5px;overflow:hidden}.progress-fill{height:100%;border-radius:5px;background:linear-gradient(90deg,var(--accent),var(--accent2));transition:width 1.8s var(--ease);position:relative}.progress-fill:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);background-size:300% 100%;animation:shimmer 2.5s infinite}.progress-legend{display:flex;gap:20px;margin-top:16px;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary)}.legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.sec-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;flex-wrap:wrap;gap:16px}.sec-title{font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--text-bright);letter-spacing:-.02em}.sec-sub{font-size:13px;color:var(--text-muted);margin-top:4px}.filters{display:flex;gap:6px;flex-wrap:wrap}.filter-chip{padding:7px 16px;border-radius:24px;font-size:12px;font-weight:500;cursor:pointer;transition:all .25s ease;border:1px solid var(--border-subtle);background:transparent;color:var(--text-muted);font-family:var(--font-body)}.filter-chip:hover{border-color:var(--border-medium);color:var(--text-secondary)}.filter-chip.on{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.search-wrap{position:relative;margin-bottom:24px}.search-input{width:100%;padding:14px 18px 14px 48px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r);color:var(--text-bright);font-size:14px;font-family:var(--font-body);outline:none;transition:all .3s ease}.search-input::placeholder{color:var(--text-muted)}.search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.search-ico{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--text-muted)}.year-block{margin-bottom:28px}.year-head{display:flex;align-items:center;gap:14px;padding:10px 0;cursor:pointer;-webkit-user-select:none;user-select:none}.year-num{width:46px;height:46px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:18px;background:var(--accent-dim);color:var(--accent);border:1px solid rgba(52,211,153,.15);transition:all .3s var(--ease);flex-shrink:0}.year-head:hover .year-num{transform:scale(1.06);box-shadow:var(--shadow-glow)}.year-label{font-size:16px;font-weight:600;color:var(--text-bright)}.year-count{font-size:12px;color:var(--text-muted)}.year-chevron{margin-left:auto;color:var(--text-muted);transition:transform .4s var(--ease);font-size:18px}.year-chevron.open{transform:rotate(180deg)}.mat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;overflow:hidden;transition:max-height .6s var(--ease),opacity .4s ease,margin .4s ease}.mat-grid.closed{max-height:0;opacity:0;margin:0}.mat-grid.open{max-height:5000px;opacity:1;margin-top:12px}.mat-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r);padding:20px;cursor:pointer;transition:all .35s var(--ease);position:relative;overflow:hidden}.mat-card:hover{border-color:var(--border-medium);transform:translateY(-2px) scale(1.005);box-shadow:var(--shadow)}.mat-card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;border-radius:2px 0 0 2px}.mat-card.st-aprobada:before{background:var(--aprobada)}.mat-card.st-aprobada{background:var(--aprobada-dim);border-color:#34d3992e}.mat-card.st-regular:before{background:var(--regular)}.mat-card.st-regular{background:var(--regular-dim);border-color:#60a5fa2e}.mat-card.st-cursando:before{background:var(--cursando)}.mat-card.st-cursando{background:var(--cursando-dim);border-color:#a78bfa2e;animation:glow-border 3s ease infinite}.mat-card.st-pendiente:before{background:var(--pendiente)}.mat-card.st-bloqueada:before{background:var(--bloqueada)}.mat-card.st-bloqueada{opacity:.55}.mat-card.st-desaprobada:before{background:var(--desaprobada)}.mat-card.st-desaprobada{background:#f8717114;border-color:#f871712e}.mat-card.hl-requires{border-color:var(--pendiente)!important;box-shadow:0 0 0 2px var(--pendiente-dim),var(--shadow)!important}.mat-card.hl-enables{border-color:var(--aprobada)!important;box-shadow:0 0 0 2px var(--aprobada-dim),var(--shadow)!important}.mat-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px}.mat-name{font-size:14px;font-weight:600;color:var(--text-bright);line-height:1.35;flex:1}.mat-badge{padding:3px 10px;border-radius:20px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;flex-shrink:0}.mat-badge.aprobada{background:var(--aprobada-dim);color:var(--aprobada)}.mat-badge.regular{background:var(--regular-dim);color:var(--regular)}.mat-badge.cursando{background:var(--cursando-dim);color:var(--cursando)}.mat-badge.pendiente{background:var(--pendiente-dim);color:var(--pendiente)}.mat-badge.bloqueada{background:var(--bloqueada-dim);color:var(--bloqueada)}.mat-badge.desaprobada{background:var(--desaprobada-dim);color:var(--desaprobada)}.mat-meta{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.mat-meta-item{font-size:12px;color:var(--text-muted);display:flex;align-items:center;gap:5px}.mat-tipo-chip{padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;background:var(--accent2-dim);color:var(--accent2)}.mat-nota{font-family:var(--font-display);font-weight:700;font-size:14px;color:var(--accent);margin-left:auto}.group-box{background:var(--bg-surface);border:1px solid var(--border-accent);border-radius:var(--r-lg);padding:24px;margin-bottom:28px}.group-title{font-family:var(--font-display);font-size:16px;font-weight:700;color:var(--accent);margin-bottom:4px}.group-desc{font-size:13px;color:var(--text-secondary);margin-bottom:16px}.group-progress-text{font-size:12px;color:var(--text-muted);margin-bottom:8px}.group-bar{height:6px;background:var(--bg-deep);border-radius:3px;overflow:hidden;margin-bottom:16px}.group-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));border-radius:3px;transition:width 1s var(--ease)}.group-cuatri-section{margin-bottom:12px}.group-cuatri-label{font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid var(--border-subtle)}.group-cuatri-done{color:var(--aprobada);font-weight:500}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn .2s ease both}.modal-box{background:var(--bg-base);border:1px solid var(--border-medium);border-radius:var(--r-xl);width:100%;max-width:560px;max-height:90vh;overflow-y:auto;animation:scaleUp .35s var(--ease) both}.modal-head{padding:28px 28px 0;display:flex;justify-content:space-between;align-items:flex-start}.modal-close{width:34px;height:34px;border-radius:10px;border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-muted);cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}.modal-close:hover{background:var(--bg-hover);color:var(--text-bright)}.modal-mat-name{font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--text-bright);letter-spacing:-.02em;line-height:1.3}.modal-body{padding:20px 28px 28px}.modal-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.modal-info-box{background:var(--bg-surface);border-radius:var(--r-sm);padding:16px}.modal-info-lbl{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-weight:600;margin-bottom:6px}.modal-info-val{font-family:var(--font-display);font-size:20px;font-weight:700;color:var(--text-bright)}.modal-section-title{font-size:13px;font-weight:600;color:var(--text-secondary);margin:20px 0 10px}.modal-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:var(--r-sm);font-size:12px;margin:0 6px 6px 0;border:1px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-secondary)}.modal-chip-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.modal-req-type{font-size:10px;padding:1px 6px;border-radius:4px;background:var(--accent-dim);color:var(--accent);font-weight:600;text-transform:uppercase}.malla-scroll{overflow-x:auto;padding-bottom:20px}.malla-cols{display:flex;gap:16px;min-width:max-content}.malla-col{width:240px;flex-shrink:0}.malla-col-head{font-size:13px;font-weight:600;color:var(--text-secondary);padding:10px 14px;background:var(--bg-surface);border-radius:var(--r-sm);text-align:center;border:1px solid var(--border-subtle);margin-bottom:12px;font-family:var(--font-display)}.malla-node{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-sm);padding:14px;margin-bottom:8px;font-size:13px;font-weight:500;color:var(--text-bright);cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden}.malla-node:hover{border-color:var(--border-medium);transform:scale(1.02)}.malla-node:before{content:"";position:absolute;top:0;left:0;width:100%;height:3px}.malla-node.st-aprobada:before{background:var(--aprobada)}.malla-node.st-aprobada{background:var(--aprobada-dim);border-color:#34d3992e}.malla-node.st-regular:before{background:var(--regular)}.malla-node.st-regular{background:var(--regular-dim);border-color:#60a5fa2e}.malla-node.st-cursando:before{background:var(--cursando)}.malla-node.st-cursando{background:var(--cursando-dim);border-color:#a78bfa2e}.malla-node.st-pendiente:before{background:var(--pendiente)}.malla-node.st-bloqueada:before{background:var(--bloqueada)}.malla-node.st-bloqueada{opacity:.55}.malla-node.st-desaprobada:before{background:var(--desaprobada)}.malla-node.st-desaprobada{background:#f8717114;border-color:#f871712e}.malla-node.hl-requires{border-color:var(--pendiente)!important;box-shadow:0 0 0 2px var(--pendiente-dim)}.malla-node.hl-enables{border-color:var(--aprobada)!important;box-shadow:0 0 0 2px var(--aprobada-dim)}.malla-node-sub{display:flex;justify-content:space-between;margin-top:6px;font-size:10px;color:var(--text-muted)}.landing-nav{position:fixed;top:0;left:0;right:0;z-index:50;height:64px;padding:0 40px;display:flex;align-items:center;justify-content:space-between;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);background:#06090f99;border-bottom:1px solid var(--border-subtle);animation:fadeIn .6s ease both}.landing-nav-brand{display:flex;align-items:center;gap:12px}.landing-nav-logo{width:36px;height:36px;background:linear-gradient(135deg,var(--accent),var(--accent2));border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--bg-deep);box-shadow:0 2px 12px #34d39933}.landing-nav-name{font-family:var(--font-display);font-size:15px;font-weight:700;color:var(--text-bright)}.landing-nav-actions{display:flex;align-items:center;gap:10px}.landing-btn-ghost{padding:8px 18px;border:1px solid var(--border-medium);border-radius:var(--r-sm);background:transparent;color:var(--text-secondary);font-size:13px;font-family:var(--font-body);font-weight:500;cursor:pointer;transition:all .3s ease}.landing-btn-ghost:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.landing-btn-solid{padding:8px 20px;border:none;border-radius:var(--r-sm);background:linear-gradient(135deg,var(--accent),#2ab386);color:var(--bg-deep);font-size:13px;font-family:var(--font-body);font-weight:700;cursor:pointer;transition:all .3s ease}.landing-btn-solid:hover{transform:translateY(-1px);box-shadow:0 4px 20px #34d39959}.landing-hero{display:flex;flex-direction:column;align-items:center;text-align:center;padding:130px 40px 100px;position:relative;z-index:2}.landing-hero-inner{max-width:680px;width:100%;display:flex;flex-direction:column;align-items:center;margin-bottom:64px}.landing-hero-tagline{display:inline-flex;align-items:center;gap:8px;padding:8px 20px;border-radius:24px;background:#d4a85314;border:1px solid rgba(212,168,83,.15);font-size:13px;font-weight:500;color:var(--accent2);margin-bottom:36px;animation:blurReveal .8s var(--ease) .1s both;letter-spacing:.01em}.landing-hero h1{font-family:var(--font-display);font-size:clamp(36px,6vw,64px);font-weight:700;color:var(--text-bright);letter-spacing:-.03em;line-height:1.1;max-width:700px;margin-bottom:20px}.landing-hero-gradient{background:linear-gradient(135deg,var(--accent),var(--accent2),var(--accent3));background-size:200% 200%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:gradient-move 6s ease infinite}.landing-hero p{font-size:clamp(16px,2vw,19px);color:var(--text-secondary);max-width:520px;line-height:1.6;margin-bottom:40px}.landing-hero-ctas{display:flex;gap:14px;animation:blurReveal .8s var(--ease) .6s both}.landing-cta-primary{display:inline-flex;align-items:center;gap:8px;padding:14px 32px;border:none;border-radius:var(--r-sm);background:linear-gradient(135deg,var(--accent),#2ab386);color:var(--bg-deep);font-size:15px;font-family:var(--font-body);font-weight:700;cursor:pointer;transition:all .35s var(--ease);letter-spacing:.01em;position:relative;overflow:hidden}.landing-cta-primary:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transform:translate(-100%);transition:transform .6s ease}.landing-cta-primary:hover:before{transform:translate(100%)}.landing-cta-primary:hover{transform:translateY(-2px);box-shadow:0 6px 28px #34d39966}.landing-cta-secondary{padding:14px 32px;border:1px solid var(--border-medium);border-radius:var(--r-sm);background:transparent;color:var(--text-secondary);font-size:15px;font-family:var(--font-body);font-weight:600;cursor:pointer;transition:all .35s var(--ease)}.landing-cta-secondary:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}@keyframes blurReveal{0%{opacity:0;filter:blur(12px);transform:translateY(16px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}.landing-text-reveal{display:inline-block;animation:blurReveal .9s var(--ease) both}.landing-text-reveal.d2{animation-delay:.15s}.landing-text-reveal.d3{animation-delay:.3s}.landing-features{position:relative;z-index:2;padding:80px 40px;max-width:1100px;margin:0 auto}.landing-features .landing-features-title,.landing-features .landing-features-sub{opacity:0;transform:translateY(20px);filter:blur(8px);transition:all .7s var(--ease)}.landing-features.revealed .landing-features-title,.landing-features.revealed .landing-features-sub{opacity:1;transform:translateY(0);filter:blur(0)}.landing-features.revealed .landing-features-sub{transition-delay:.1s}.landing-features-title{font-family:var(--font-display);font-size:clamp(24px,3vw,32px);font-weight:700;color:var(--text-bright);text-align:center;letter-spacing:-.02em;margin-bottom:12px}.landing-features-sub{font-size:15px;color:var(--text-muted);text-align:center;margin-bottom:48px}.landing-features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.landing-feature-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:32px 28px;transition:all .6s var(--ease);position:relative;overflow:hidden;opacity:0;transform:translateY(30px) scale(.96);filter:blur(6px)}.landing-feature-card.revealed{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}.landing-feature-card:hover{transform:translateY(-6px) scale(1.02);border-color:var(--border-medium);box-shadow:0 12px 40px #0000004d,var(--shadow-glow)}.landing-feature-card:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;transform:scaleX(0);transition:transform .5s var(--ease)}.landing-feature-card:hover:after{transform:scaleX(1)}.landing-feature-card:nth-child(1):after{background:linear-gradient(90deg,var(--accent),transparent)}.landing-feature-card:nth-child(2):after{background:linear-gradient(90deg,var(--accent2),transparent)}.landing-feature-card:nth-child(3):after{background:linear-gradient(90deg,var(--accent3),transparent)}.landing-feature-icon{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:20px;font-size:22px;transition:transform .4s var(--ease)}.landing-feature-card:hover .landing-feature-icon{transform:scale(1.1) rotate(-3deg)}.landing-feature-card:nth-child(1) .landing-feature-icon{background:var(--accent-dim);color:var(--accent)}.landing-feature-card:nth-child(2) .landing-feature-icon{background:var(--accent2-dim);color:var(--accent2)}.landing-feature-card:nth-child(3) .landing-feature-icon{background:var(--accent3-dim);color:var(--accent3)}.landing-feature-card h3{font-family:var(--font-display);font-size:17px;font-weight:700;color:var(--text-bright);margin-bottom:8px}.landing-feature-card p{font-size:13px;color:var(--text-secondary);line-height:1.6}.landing-steps{position:relative;z-index:2;padding:80px 40px;max-width:1100px;margin:0 auto}.landing-steps .landing-steps-title,.landing-steps .landing-steps-sub{opacity:0;transform:translateY(20px);filter:blur(8px);transition:all .7s var(--ease)}.landing-steps.revealed .landing-steps-title,.landing-steps.revealed .landing-steps-sub{opacity:1;transform:translateY(0);filter:blur(0)}.landing-steps.revealed .landing-steps-sub{transition-delay:.1s}.landing-steps-title{font-family:var(--font-display);font-size:clamp(24px,3vw,32px);font-weight:700;color:var(--text-bright);text-align:center;letter-spacing:-.02em;margin-bottom:12px}.landing-steps-sub{font-size:15px;color:var(--text-muted);text-align:center;margin-bottom:48px}.landing-steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;counter-reset:step}.landing-step-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:32px 28px;text-align:center;position:relative;opacity:0;transform:translateY(30px) scale(.96);filter:blur(6px);transition:all .6s var(--ease)}.landing-step-card.revealed{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}.landing-step-card:hover{transform:translateY(-4px);border-color:var(--border-medium);box-shadow:0 8px 32px #00000040}.landing-step-num{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#2ab386);color:var(--bg-deep);font-family:var(--font-display);font-weight:800;font-size:18px;display:flex;align-items:center;justify-content:center;margin:0 auto 18px}.landing-step-card h3{font-family:var(--font-display);font-size:17px;font-weight:700;color:var(--text-bright);margin-bottom:8px}.landing-step-card p{font-size:13px;color:var(--text-secondary);line-height:1.6}.landing-unis{position:relative;z-index:2;padding:80px 40px;max-width:900px;margin:0 auto}.landing-unis .landing-unis-title,.landing-unis .landing-unis-sub{opacity:0;transform:translateY(20px);filter:blur(8px);transition:all .7s var(--ease)}.landing-unis.revealed .landing-unis-title,.landing-unis.revealed .landing-unis-sub{opacity:1;transform:translateY(0);filter:blur(0)}.landing-unis.revealed .landing-unis-sub{transition-delay:.1s}.landing-unis-title{font-family:var(--font-display);font-size:clamp(24px,3vw,32px);font-weight:700;color:var(--text-bright);text-align:center;letter-spacing:-.02em;margin-bottom:12px}.landing-unis-sub{font-size:15px;color:var(--text-muted);text-align:center;margin-bottom:48px}.landing-unis-grid{display:flex;flex-direction:column;gap:24px}.landing-uni-block{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:28px}.landing-uni-name{font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--text-bright);margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--border-subtle)}.landing-faculty{margin-bottom:16px}.landing-faculty:last-child{margin-bottom:0}.landing-faculty-name{font-size:14px;font-weight:600;color:var(--text-secondary);margin-bottom:10px}.landing-careers-list{display:flex;flex-wrap:wrap;gap:8px}.landing-career-chip{padding:6px 14px;border-radius:20px;background:var(--accent-dim);border:1px solid rgba(52,211,153,.15);color:var(--accent);font-size:12px;font-weight:500}.landing-cta-final{position:relative;z-index:2;text-align:center;padding:80px 40px;max-width:700px;margin:0 auto;opacity:0;transform:translateY(20px);transition:all .7s var(--ease)}.landing-cta-final.revealed{opacity:1;transform:translateY(0)}.landing-cta-final h2{font-family:var(--font-display);font-size:clamp(24px,3vw,36px);font-weight:700;color:var(--text-bright);letter-spacing:-.02em;margin-bottom:12px}.landing-cta-final p{font-size:16px;color:var(--text-secondary);line-height:1.6;margin-bottom:32px}.landing-footer{position:relative;z-index:2;text-align:center;padding:60px 40px;border-top:1px solid var(--border-subtle);opacity:0;transform:translateY(20px);transition:all .7s var(--ease)}.landing-footer.revealed{opacity:1;transform:translateY(0)}.landing-footer-logo{width:42px;height:42px;background:linear-gradient(135deg,var(--accent),var(--accent2));border-radius:12px;display:inline-flex;align-items:center;justify-content:center;color:var(--bg-deep);margin-bottom:16px}.landing-footer-tagline{font-size:14px;color:var(--text-secondary);margin-bottom:8px}.landing-footer-copy{font-size:12px;color:var(--text-muted)}@keyframes modalOverlayIn{0%{opacity:0;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}to{opacity:1;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}}@keyframes modalContentIn{0%{opacity:0;transform:scale(.92) translateY(20px);filter:blur(8px)}to{opacity:1;transform:scale(1) translateY(0);filter:blur(0)}}@keyframes modalGlow{0%,to{box-shadow:0 0 60px #34d39914,0 20px 60px #00000080}50%{box-shadow:0 0 80px #34d3991f,0 20px 60px #00000080}}.auth-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:20px;background:#06090fbf;backdrop-filter:blur(16px) saturate(120%);-webkit-backdrop-filter:blur(16px) saturate(120%);animation:modalOverlayIn .4s var(--ease) both}.auth-modal-content{position:relative;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;animation:modalContentIn .5s var(--ease) .1s both,modalGlow 4s ease 1s infinite;border-radius:var(--r-xl)}.auth-modal-content .auth-wrapper{min-height:auto;padding:0}.auth-modal-content .auth-card{animation:none;border-radius:var(--r-xl)}.auth-modal-close{position:absolute;top:16px;right:16px;z-index:10;width:36px;height:36px;border-radius:50%;border:1px solid var(--border-medium);background:var(--bg-base);color:var(--text-muted);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease}.auth-modal-close:hover{background:var(--bg-hover);color:var(--text-bright);border-color:var(--text-muted);transform:rotate(90deg)}.modal-estado-section{margin-top:20px;padding-top:16px;border-top:1px solid var(--border-subtle)}.modal-nota-row{display:flex;align-items:center;gap:12px;margin-bottom:12px}.modal-nota-label{font-size:13px;color:var(--text-muted);white-space:nowrap}.modal-nota-input{width:80px;padding:6px 10px;font-size:14px;text-align:center}.modal-save-btn{width:100%;padding:12px 18px;margin-top:8px;margin-bottom:8px;border-radius:var(--r-md);border:none;background:linear-gradient(135deg,var(--accent),#2ab386);color:var(--bg-deep);font-size:14px;font-weight:700;cursor:pointer;transition:all .2s ease;letter-spacing:.02em}.modal-save-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 16px #34d39959}.modal-save-btn:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}.modal-estado-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.modal-estado-btn{padding:8px 16px;border-radius:var(--r-md);border:1px solid var(--border-medium);background:var(--bg-card);color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.modal-estado-btn:hover:not(:disabled){border-color:var(--accent);color:var(--text-bright);background:#6366f11a}.modal-estado-btn.active{border-color:var(--accent);background:#6366f126;color:var(--accent)}.modal-estado-btn:disabled{opacity:.5;cursor:not-allowed}.modal-estado-btn.st-aprobada:hover:not(:disabled),.modal-estado-btn.st-aprobada.active{border-color:var(--aprobada);color:var(--aprobada);background:#10b9811a}.modal-estado-btn.st-regular:hover:not(:disabled),.modal-estado-btn.st-regular.active{border-color:var(--regular);color:var(--regular);background:#3b82f61a}.modal-estado-btn.st-cursando:hover:not(:disabled),.modal-estado-btn.st-cursando.active{border-color:var(--cursando);color:var(--cursando);background:#fbbf241a}.modal-estado-btn.st-desaprobada:hover:not(:disabled),.modal-estado-btn.st-desaprobada.active{border-color:var(--desaprobada);color:var(--desaprobada);background:#ef44441a}.modal-estado-btn.st-libre:hover:not(:disabled),.modal-estado-btn.st-libre.active{border-color:var(--text-muted);color:var(--text-muted);background:#ffffff0d}.modal-clear-btn{width:100%;padding:8px;border-radius:var(--r-md);border:1px dashed var(--border-medium);background:transparent;color:var(--text-muted);font-size:12px;cursor:pointer;transition:all .2s ease}.modal-clear-btn:hover:not(:disabled){border-color:var(--text-muted);color:var(--text-secondary)}.modal-clear-btn:disabled{opacity:.5;cursor:not-allowed}.modal-blocked-section{margin-top:16px;text-align:center}.modal-blocked-msg{padding:12px 16px;border-radius:var(--r-md);background:#ef444414;border:1px solid rgba(239,68,68,.2);color:var(--text-muted);font-size:13px;text-align:center}.modal-excepcion-btn{margin-top:10px;padding:8px 16px;border-radius:var(--r-md);border:1px dashed var(--border-medium);background:transparent;color:var(--text-muted);font-size:12px;cursor:pointer;transition:all .2s ease}.modal-excepcion-btn:hover{border-color:var(--accent);color:var(--accent)}.modal-excepcion-warn{padding:8px 12px;border-radius:var(--r-md);background:#fbbf241a;border:1px solid rgba(251,191,36,.3);color:#f59e0b;font-size:12px;margin-bottom:10px;text-align:center}.modal-pps-section{margin-top:16px}.pps-input-row{display:flex;align-items:center;gap:12px;margin-bottom:10px}.pps-progress-bar{height:10px;background:var(--bg-deep);border-radius:5px;overflow:hidden;margin-bottom:6px}.pps-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent3),var(--accent));border-radius:5px;transition:width .5s var(--ease)}.pps-progress-text{font-size:12px;color:var(--text-muted);text-align:center}.modal-notas-previas{margin-bottom:10px}.modal-notas-chips{display:flex;flex-wrap:wrap;gap:6px}.modal-nota-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:12px;font-size:12px;font-weight:600;font-family:var(--font-display)}.modal-nota-chip.pass{background:#22c55e26;color:#22c55e}.modal-nota-chip.fail{background:#ef444426;color:#ef4444}.modal-nota-chip button{background:none;border:none;color:inherit;cursor:pointer;font-size:14px;padding:0 2px;opacity:.6}.modal-nota-chip button:hover{opacity:1}.modal-add-nota-row{display:flex;gap:8px;margin-bottom:12px}.modal-add-nota-btn{padding:6px 12px;border-radius:var(--r-md);border:1px dashed var(--border-medium);background:transparent;color:var(--text-muted);font-size:12px;cursor:pointer;white-space:nowrap;transition:all .2s ease}.modal-add-nota-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.modal-add-nota-btn:disabled{opacity:.4;cursor:not-allowed}.modal-variante-section{margin-top:16px}.mat-variante-chip{font-size:10px;padding:2px 6px;border-radius:8px;background:#8b5cf626;color:#a78bfa;font-weight:500}.modal-orientacion-section{margin-top:16px}.orientacion-slots{display:flex;flex-direction:column;gap:8px}.orientacion-slot-input{font-size:13px!important}.landing-hero-proof{display:flex;align-items:center;gap:12px;margin-top:28px;animation:blurReveal .8s var(--ease) .9s both}.hero-proof-avatars{display:flex}.hero-proof-avatar{width:28px;height:28px;border-radius:50%;border:2px solid var(--bg-deep);display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:var(--bg-deep);margin-left:-8px}.hero-proof-avatar:first-child{margin-left:0}.hero-proof-text{font-size:12px;color:var(--text-muted);max-width:280px;line-height:1.5;text-align:left}.landing-mockup-wrap{position:relative;width:100%;max-width:960px;animation:blurReveal 1.1s var(--ease) 1s both}.landing-mockup-glow{position:absolute;top:-60px;right:-60px;bottom:-60px;left:-60px;background:radial-gradient(ellipse at center,rgba(52,211,153,.1) 0%,transparent 65%);pointer-events:none;z-index:-1}.landing-mockup-browser{background:var(--bg-surface);border:1px solid var(--border-medium);border-radius:var(--r-xl);overflow:hidden;box-shadow:0 40px 100px #00000080,0 0 0 1px #ffffff0a;transform:perspective(1200px) rotateX(2deg);transform-origin:top center}.landing-mockup-chrome{background:var(--bg-elevated);padding:10px 16px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--border-subtle)}.mockup-chrome-dots{display:flex;gap:6px}.mockup-chrome-dot{width:10px;height:10px;border-radius:50%}.mockup-chrome-dot.red{background:#ff5f57}.mockup-chrome-dot.yellow{background:#febc2e}.mockup-chrome-dot.green-dot{background:#28c840}.mockup-chrome-bar{flex:1;background:var(--bg-base);border-radius:6px;height:24px;display:flex;align-items:center;padding:0 10px;gap:6px}.mockup-chrome-icon{color:var(--text-muted);display:flex;align-items:center}.mockup-chrome-url{font-size:11px;color:var(--text-muted)}.landing-mockup-body{padding:16px;background:var(--bg-base)}.mockup-topbar-row{display:flex;align-items:center;gap:12px;margin-bottom:12px;padding:8px 12px;background:var(--bg-elevated);border-radius:var(--r-sm);border:1px solid var(--border-subtle)}.mockup-logo-chip{width:28px;height:28px;background:linear-gradient(135deg,var(--accent),var(--accent2));border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--bg-deep);flex-shrink:0}.mockup-nav-tabs{display:flex;gap:4px;flex:1;justify-content:center}.mockup-tab{padding:5px 12px;border-radius:8px;font-size:11px;color:var(--text-muted);font-family:var(--font-body)}.mockup-tab.active{color:var(--accent);background:var(--accent-dim);font-weight:600}.mockup-avatar-chip{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--accent2),var(--accent4));display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff}.mockup-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:10px}.mockup-stat{background:var(--bg-surface);border-radius:10px;padding:10px 12px;border:1px solid var(--border-subtle)}.mockup-stat-n{font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--text-bright);margin-bottom:2px}.mockup-stat-n.green{color:var(--accent)}.mockup-stat-n.blue{color:var(--accent3)}.mockup-stat-n.gold{color:var(--accent2)}.mockup-stat-n.pink{color:var(--accent4)}.mockup-stat-l{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.mockup-prog{background:var(--bg-surface);border-radius:10px;padding:12px 14px;margin-bottom:10px;border:1px solid var(--border-subtle)}.mockup-prog-head{display:flex;justify-content:space-between;margin-bottom:8px}.mockup-prog-title{font-size:11px;color:var(--text-secondary);font-weight:600}.mockup-prog-pct{font-family:var(--font-display);font-size:13px;font-weight:700;color:var(--accent)}.mockup-prog-track{height:6px;background:var(--bg-deep);border-radius:3px;overflow:hidden}.mockup-prog-fill{width:48%;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));border-radius:3px}.mockup-cards-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.mockup-mat{background:var(--bg-surface);border-radius:8px;padding:12px;border:1px solid var(--border-subtle);position:relative;overflow:hidden}.mockup-mat:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:2px 0 0 2px}.mockup-mat.approved{background:var(--aprobada-dim);border-color:#34d39933}.mockup-mat.approved:before{background:var(--aprobada)}.mockup-mat.current{background:var(--cursando-dim);border-color:#a78bfa33}.mockup-mat.current:before{background:var(--cursando)}.mockup-mat.pending:before{background:var(--pendiente)}.mockup-mat-name{width:75%;height:7px;background:var(--border-medium);border-radius:3px;margin-bottom:6px}.mockup-mat-sub{width:50%;height:5px;background:var(--border-subtle);border-radius:3px;margin-bottom:10px}.mockup-mat-badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.mockup-mat.approved .mockup-mat-badge{background:var(--aprobada-dim);color:var(--aprobada)}.mockup-mat.current .mockup-mat-badge{background:var(--cursando-dim);color:var(--cursando)}.mockup-mat.pending .mockup-mat-badge{background:var(--pendiente-dim);color:var(--pendiente)}.landing-social-proof{position:relative;z-index:2;display:flex;justify-content:center;padding:0 40px;background:var(--bg-surface);border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap}.landing-social-stat{display:flex;flex-direction:column;align-items:center;gap:4px;padding:20px 48px;border-right:1px solid var(--border-subtle)}.landing-social-stat:last-child{border-right:none}.landing-social-num{font-family:var(--font-display);font-size:26px;font-weight:700;color:var(--accent);letter-spacing:-.02em}.landing-social-lbl{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:500}.landing-grid-showcase{position:relative;z-index:2;padding:80px 40px;max-width:1100px;margin:0 auto}.landing-grid-showcase .landing-grid-showcase-title,.landing-grid-showcase .landing-grid-showcase-sub{opacity:0;transform:translateY(20px);filter:blur(8px);transition:all .7s var(--ease)}.landing-grid-showcase.revealed .landing-grid-showcase-title,.landing-grid-showcase.revealed .landing-grid-showcase-sub{opacity:1;transform:translateY(0);filter:blur(0)}.landing-grid-showcase.revealed .landing-grid-showcase-sub{transition-delay:.1s}.landing-grid-showcase-title{font-family:var(--font-display);font-size:clamp(24px,3vw,32px);font-weight:700;color:var(--text-bright);text-align:center;letter-spacing:-.02em;margin-bottom:12px}.landing-grid-showcase-sub{font-size:15px;color:var(--text-muted);text-align:center;margin-bottom:48px}.landing-grid-showcase .landing-mockup-wrap{animation:none;opacity:0;transform:translateY(30px);filter:blur(6px);transition:all .8s var(--ease) .2s}.landing-grid-showcase.revealed .landing-mockup-wrap{opacity:1;transform:translateY(0);filter:blur(0)}.mockup-grid-variant{max-width:800px;margin:0 auto}.mockup-grid-header{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.mockup-grid-year{font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;padding:4px 8px}.mockup-mats-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mockup-gmat{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:8px;padding:12px;position:relative;transition:all .3s ease}.mockup-gmat:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:2px 0 0 2px}.mockup-gmat.approved{background:#10b9810f;border-color:#10b98133}.mockup-gmat.approved:before{background:var(--aprobada)}.mockup-gmat.regular{background:#3b82f60f;border-color:#3b82f633}.mockup-gmat.regular:before{background:var(--regular)}.mockup-gmat.current{background:#fbbf240f;border-color:#fbbf2433}.mockup-gmat.current:before{background:var(--cursando)}.mockup-gmat.pending:before{background:var(--pendiente)}.mockup-gmat.blocked{background:#ffffff05;border-color:var(--border-subtle);opacity:.7}.mockup-gmat.blocked:before{background:var(--text-muted)}.mockup-gmat.hovered{border-color:var(--cursando);box-shadow:0 0 16px #fbbf2440;transform:translateY(-2px);z-index:2}.mockup-gmat.hl-requires{border-color:var(--desaprobada);box-shadow:0 0 12px #ef444433;background:#ef44440f;opacity:1}.mockup-gmat-name{font-size:11px;font-weight:600;color:var(--text-bright);margin-bottom:4px;line-height:1.3}.mockup-gmat-status{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.mockup-gmat.approved .mockup-gmat-status{color:var(--aprobada)}.mockup-gmat.regular .mockup-gmat-status{color:var(--regular)}.mockup-gmat.current .mockup-gmat-status{color:var(--cursando)}.mockup-gmat-tooltip{position:absolute;top:-6px;right:8px;background:var(--cursando);color:var(--bg-deep);font-size:8px;font-weight:700;padding:2px 8px;border-radius:4px;white-space:nowrap}.mockup-gmat-hl-label{position:absolute;top:-6px;right:8px;background:var(--desaprobada);color:#fff;font-size:8px;font-weight:700;padding:2px 8px;border-radius:4px;white-space:nowrap}.mockup-grid-legend{display:flex;justify-content:center;gap:16px;margin-top:12px;padding:8px}.mockup-legend-item{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--text-muted)}.mockup-legend-dot{width:8px;height:8px;border-radius:2px}.mockup-legend-dot.approved{background:var(--aprobada)}.mockup-legend-dot.regular{background:var(--regular)}.mockup-legend-dot.current{background:var(--cursando)}.mockup-legend-dot.pending{background:var(--pendiente)}.mockup-legend-dot.blocked{background:var(--text-muted)}.landing-uni-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:6px;background:var(--accent2-dim);color:var(--accent2);font-size:11px;font-weight:700;letter-spacing:.05em;margin-right:8px;flex-shrink:0}.landing-uni-name{display:flex;align-items:center;flex-wrap:wrap;gap:4px}.landing-faculty-tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:4px;background:var(--bg-elevated);color:var(--text-muted);font-size:10px;font-weight:600;letter-spacing:.05em;margin-right:6px}.landing-unis-link{color:var(--accent);cursor:pointer;font-weight:600;transition:color .2s;text-decoration:none}.landing-unis-link:hover{color:var(--text-bright)}.landing-cta-final-badge{display:inline-block;padding:6px 18px;border-radius:20px;background:var(--accent-dim);border:1px solid rgba(52,211,153,.2);color:var(--accent);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;margin-bottom:20px}.landing-cta-final-note{font-size:12px;color:var(--text-muted);margin-top:16px}@media (max-width: 1024px){.hero-stats,.landing-features-grid,.landing-steps-grid{grid-template-columns:repeat(2,1fr)}.mockup-stats-row{grid-template-columns:repeat(4,1fr)}}@media (max-width: 768px){.topbar{padding:0 16px}.nav{padding:8px 16px}.main{padding:20px 16px}.hero-stats{grid-template-columns:1fr 1fr;gap:10px}.stat-card{padding:18px}.stat-val{font-size:24px}.topbar-info{display:none}.mat-grid,.modal-info-grid{grid-template-columns:1fr}.sec-header{flex-direction:column}.field-row{grid-template-columns:1fr}.landing-nav{padding:0 20px}.landing-nav-name{display:none}.landing-hero{padding:100px 20px 60px}.landing-hero-inner{margin-bottom:24px}.landing-mockup-wrap{max-width:100%;overflow:hidden}.landing-mockup-browser{transform:none}.mockup-stats-row{grid-template-columns:repeat(2,1fr)}.mockup-cards-row{grid-template-columns:1fr;gap:6px}.landing-hero-tagline{font-size:11px;padding:6px 14px;text-align:center}.landing-hero-ctas{flex-direction:column;width:100%;max-width:300px}.landing-hero-ctas button{width:100%;justify-content:center}.landing-hero-proof{flex-direction:column;text-align:center}.hero-proof-text{text-align:center}.landing-social-proof{padding:0 20px}.landing-social-stat{padding:16px 20px}.landing-social-num{font-size:20px}.landing-features{padding:60px 20px}.landing-features-grid{grid-template-columns:1fr}.landing-steps{padding:60px 20px}.landing-steps-grid{grid-template-columns:1fr}.landing-grid-showcase{padding:60px 20px}.mockup-mats-grid,.mockup-grid-header{grid-template-columns:1fr}.mockup-grid-header .mockup-grid-year:last-child{display:none}.mockup-grid-legend{flex-wrap:wrap}.landing-unis{padding:60px 20px}.landing-uni-block{padding:20px}.landing-cta-final{padding:60px 20px}.landing-footer{padding:40px 20px}.auth-modal-content{max-width:100%;margin:0 10px}}
