:root{color:#17202a;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:0;--app-orange:#d4621a;--app-orange-dark:#b84e10;--page-bg:#f4ece3;--panel:#fdf6f0;--panel-strong:#fff;--border:#ddc9b5;--border-strong:#c4a48a;--text:#17202a;--muted:#6b4f3a;--locked-bg:#d7d9dc;--locked-text:#343b44;--completed-bg:#cdebd6;--completed-border:#8bc89c;--planned-bg:#dbeafe;--planned-border:#60a5fa;--available-bg:#fff;--shadow:0 1px 3px #3c1e0a29;--course-card-height:120px;background:#261a0f;font-family:Aptos,Segoe UI,Tahoma,sans-serif;line-height:1.25}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;min-height:100%;margin:0}.login-screen{background:var(--page-bg);box-sizing:border-box;justify-content:center;align-items:center;width:100%;min-height:100dvh;padding:24px;display:flex}.login-card{background:var(--panel-strong);border:1px solid var(--border);text-align:center;border-radius:16px;width:100%;max-width:440px;padding:36px 32px;box-shadow:0 10px 30px #0f172a1f}.login-card__title{color:var(--app-orange);letter-spacing:-.01em;margin:0 0 10px;font-size:1.9rem;font-weight:800}.login-card__subtitle{color:var(--muted);margin:0 0 24px;font-size:.92rem;line-height:1.5}.login-card__google{justify-content:center;margin-bottom:22px;display:flex}.privacy-notice{text-align:left;color:var(--muted);border-top:1px solid var(--border);margin-top:8px;padding-top:14px;font-size:.78rem}.privacy-notice summary{cursor:pointer;color:var(--app-orange-dark);font-weight:700;list-style:none}.privacy-notice summary::-webkit-details-marker{display:none}.privacy-notice summary:before{content:"ⓘ "}.privacy-notice p{color:var(--muted);margin:10px 0 0;line-height:1.5}body{color:var(--text);background:#261a0f;overflow:hidden}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}code{color:#111827;background:#e7ebf0;border:1px solid #c7d0da;border-radius:3px;padding:1px 5px;font-family:Cascadia Code,Consolas,monospace;font-size:.86em}.page-shell{background:var(--page-bg);grid-template-rows:42px auto auto minmax(0,1fr);width:100vw;height:100dvh;display:grid;overflow:hidden}.top-bar{background:linear-gradient(180deg, #e07a30 0%, var(--app-orange) 100%);color:#fff;justify-content:space-between;align-items:center;gap:16px;min-width:0;padding:0 14px;display:flex;box-shadow:0 2px 5px #0f172a38}.view-toggle{border:1px solid #ffffff4d;border-radius:4px;flex:none;gap:2px;display:flex;overflow:hidden}.view-toggle__btn{color:#ffffffbf;cursor:pointer;background:0 0;border:0;height:26px;padding:0 12px;font-size:.78rem;font-weight:700;transition:background .1s,color .1s}.view-toggle__btn:hover{color:#fff;background:#ffffff1f}.view-toggle__btn--active{color:#fff;background:#0000002e}.history-view{scrollbar-width:thin;grid-row:2/5;padding:16px 24px;overflow-y:auto}.history-view--with-breakdown{padding-bottom:320px}.history-formula{border:1px solid var(--border);background:var(--panel-strong);box-shadow:var(--shadow);color:#374151;border-radius:5px;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin-bottom:16px;padding:10px 14px;font-size:.82rem;display:flex}.history-formula__lhs{color:#111827;font-style:italic;font-weight:700}.history-formula__fraction{flex-direction:column;align-items:center;gap:1px;font-style:italic;display:inline-flex}.history-formula__num,.history-formula__den{align-items:center;padding:2px 4px;font-size:.8rem;display:flex}.history-formula__bar{background:#374151;width:100%;height:1px;display:block}.history-formula__note{color:#64748b;border-left:1px solid var(--border);margin-left:4px;padding-left:10px;font-size:.72rem}.history-resources{border:1px solid var(--border);background:linear-gradient(180deg, #fffaf5 0%, var(--panel-strong) 100%);box-shadow:var(--shadow);border-radius:5px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:12px 14px;display:flex}.history-resources__title{letter-spacing:.02em;text-transform:uppercase;color:var(--muted);font-size:.8rem;font-weight:800}.history-resources__actions{flex-wrap:wrap;gap:10px;display:flex}.history-resource-btn{border:1px solid var(--app-orange);min-height:36px;color:var(--app-orange-dark);background:#d4621a14;border-radius:999px;justify-content:center;align-items:center;padding:0 14px;font-size:.8rem;font-weight:800;text-decoration:none;transition:background .12s,color .12s,border-color .12s,transform .12s,box-shadow .12s;display:inline-flex}.history-resource-btn:hover{background:var(--app-orange);border-color:var(--app-orange);color:#fff;transform:translateY(-1px)}.history-resource-btn:focus-visible{outline-offset:2px;outline:2px solid #d4621a4d;box-shadow:0 0 0 3px #ffffffe6}.sigma-wrap{vertical-align:middle;flex-direction:column;align-items:center;margin-right:1px;line-height:1;display:inline-flex}.sigma-sym{color:#111827;font-size:2rem;font-style:normal;line-height:1}.sigma-top,.sigma-bot{color:#374151;font-size:.58rem;font-style:italic;line-height:1.3}.formula-sub{font-size:.45em;font-style:italic;line-height:1;display:inline-block;transform:translateY(.7em)}.history-grid{align-items:flex-start;display:flex}.history-grid__col{flex-direction:column;flex:1 1 0;min-width:0;display:flex}.semester-card{border:1px solid var(--border);background:var(--panel-strong);width:100%;box-shadow:var(--shadow);border-radius:6px;overflow:hidden}.semester-card--verano{background:#fffbf0;border-color:#e8c47a}.semester-card__header{background:var(--panel);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:9px 12px;display:flex}.semester-card--verano .semester-card__header{background:#fef5d4;border-bottom-color:#e8c47a}.semester-card__label{color:#111827;font-size:.82rem;font-weight:800}.semester-card__header-right{align-items:center;gap:8px;display:flex}.semester-card__badges{gap:4px;display:flex}.semester-card__badge--done{color:#166534;background:#1665341f}.status-control{border:1px solid var(--border);background:#fff;border-radius:5px;flex:none;display:inline-flex;overflow:hidden}.status-control__btn{color:#64748b;cursor:pointer;background:0 0;border:none;padding:2px 7px;font-size:.62rem;font-weight:800;line-height:1.4;transition:background .1s,color .1s}.status-control__btn+.status-control__btn{border-left:1px solid var(--border)}.status-control__btn:hover{background:var(--page-bg)}.status-control__btn--active,.status-control__btn--active:hover{background:var(--app-orange);color:#fff}.status-control__btn:disabled{color:#b6c0cc;cursor:not-allowed}.status-control--stack{flex-direction:column;width:100%;display:flex}.status-control--stack .status-control__btn{text-align:center;width:100%;padding:6px 8px;font-size:.72rem}.status-control--stack .status-control__btn+.status-control__btn{border-left:none;border-top:1px solid var(--border)}.semester-card__badge{border-radius:3px;padding:1px 6px;font-size:.62rem;font-weight:800}.semester-card__badge--progress{color:var(--app-orange);background:#d4621a1f}.semester-card__badge--verano{color:#92400e;background:#fde68a}.semester-card__table{border-collapse:collapse;width:100%;font-size:.75rem}.semester-card__table thead tr{background:var(--page-bg)}.semester-card__table th{color:#64748b;text-align:left;padding:5px 10px;font-size:.65rem;font-weight:800}.semester-card__table th:nth-child(2),.semester-card__table th:nth-child(3){text-align:right;width:36px}.semester-card__table td{color:#1f2937;border-top:1px solid var(--border);padding:5px 10px}.semester-card__table td:nth-child(2),.semester-card__table td:nth-child(3){text-align:right;color:#374151;font-variant-numeric:tabular-nums}.semester-card__table tbody tr:hover{background:var(--panel)}.semester-card__empty{color:#94a3b8;text-align:center;margin:0;padding:16px 12px;font-size:.78rem}.semester-card__footer{border-top:1px solid var(--border);background:var(--panel);color:#475569;justify-content:space-between;align-items:center;padding:7px 12px;font-size:.75rem;display:flex}.semester-card__footer strong{color:#111827;font-weight:800}.semester-cumulative{color:#374151;border-top:1px solid #0000000f;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:8px 12px;font-size:.78rem;display:grid}.semester-cumulative__metrics{gap:2px;min-width:0;display:grid}.semester-cumulative__metric{align-items:baseline;gap:6px;display:flex}.semester-cumulative__metric-label{color:#6b7280;font-size:.7rem}.semester-cumulative__metric strong{color:#111827;font-weight:700}.semester-cumulative__ring{background:radial-gradient(circle at center, #fff 54%, transparent 56%), conic-gradient(var(--app-orange) var(--progress), #e8ddd5 0);color:#111827;border-radius:999px;place-items:center;width:44px;height:44px;font-size:.68rem;font-weight:800;display:grid}.grade--low{color:#c0392b!important}.top-bar__title,.top-bar__meta{align-items:center;gap:10px;min-width:0;display:flex}.top-bar__title h1{letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:1.08rem;font-weight:700;overflow:hidden}.app-mark{background:#0000001f;border:1px solid #ffffff52;border-radius:3px;place-items:center;width:34px;height:24px;font-size:.72rem;font-weight:800;display:inline-grid}.top-bar__meta{color:#ffffffe6;flex:none;font-size:.82rem}.migration-banner{color:#6f4e00;background:#fff3cd;border:1px solid #e5b75c;border-radius:4px;margin:8px 24px 0;padding:8px 12px;font-size:.84rem}.progress-card{border:1px solid var(--border);background:var(--panel-strong);box-shadow:var(--shadow);border-radius:5px;grid-template-columns:minmax(155px,.46fr) minmax(155px,.46fr) minmax(140px,.42fr) minmax(140px,.42fr) minmax(360px,2.3fr);align-items:center;gap:16px;margin:10px 24px 8px;padding:10px 14px;display:grid}.stat-card{text-align:center;border-right:1px solid #ddc9b5;align-content:center;min-height:62px;padding:0 10px;display:grid}.stat-card span{color:#334155;font-size:.82rem}.stat-card strong{color:#111827;letter-spacing:0;margin-top:3px;font-size:1.36rem;font-weight:500}.stat-card__avg--low{color:#c0392b!important}.stat-card--primary{text-align:center;grid-template-columns:minmax(0,1fr) 46px;column-gap:10px}.stat-card--primary span,.stat-card--primary strong{grid-column:1}.progress-ring{background:radial-gradient(circle at center, #fff 54%, transparent 56%), conic-gradient(var(--app-orange) var(--progress), #e8ddd5 0);color:#111827;border-radius:999px;grid-area:1/2/span 2;align-self:center;place-items:center;width:44px;height:44px;font-size:.68rem;font-weight:800;display:grid}.category-progress-list{grid-template-columns:repeat(auto-fit,minmax(76px,1fr));gap:10px;min-width:0;display:grid}.category-progress-row{text-align:center;align-content:center;gap:4px;min-width:0;display:grid}.category-progress-label{color:#111827;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;font-weight:700;overflow:hidden}.category-progress-copy{color:#334155;font-size:.68rem}.progress-meter{background:#e8ddd5;border-radius:2px;width:100%;height:12px;overflow:hidden}.progress-meter__fill{height:100%;display:block}.legend-strip{min-width:0;margin:0 24px 8px;overflow:hidden}.legend{scrollbar-width:thin;gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.legend-chip{color:#3d2b1a;white-space:nowrap;background:#fdf6f0;border:1px solid #ddc9b5;border-radius:3px;flex:none;align-items:center;gap:5px;height:22px;padding:0 7px;font-size:.72rem;display:inline-flex}.legend-swatch{border-radius:2px;width:8px;height:8px}.workspace{grid-template-columns:minmax(0,1fr) 278px;gap:10px;min-height:0;padding:0 24px;display:grid}.grid-section{grid-template-rows:auto minmax(0,1fr);gap:9px;min-width:0;min-height:0;display:grid;overflow:hidden}.external-section{min-width:0}.external-section__header{color:#111827;justify-content:space-between;align-items:center;height:22px;display:flex}.external-section__toggle{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:4px;width:100%;padding:0}.external-section__toggle:hover{background:#0000000a}.external-section__header h2{letter-spacing:0;margin:0;font-size:.86rem;font-weight:800}.external-section__header-right{color:#64748b;align-items:center;gap:6px;font-size:.75rem;font-weight:800;display:flex}.external-section__chevron{opacity:.6;font-size:.6rem}.external-grid{grid-template-columns:repeat(5,minmax(148px,1fr));gap:8px;min-width:0;display:grid}.semester-grid{scrollbar-width:thin;grid-template-columns:repeat(9,minmax(148px,1fr));gap:8px;width:100%;height:100%;min-height:0;padding:0 0 8px;display:grid;overflow:auto}.semester-column{grid-template-rows:24px minmax(0,1fr);min-width:148px;min-height:0;display:grid}.semester-column__header{color:#111827;justify-content:center;align-items:center;gap:6px;display:flex}.semester-column__header h2{letter-spacing:0;margin:0;font-size:.85rem;font-weight:700}.semester-column__header span{color:#64748b;font-size:.72rem;font-weight:700}.semester-column__cards{scrollbar-width:thin;flex-direction:column;gap:7px;min-height:0;padding:0 1px 4px;display:flex;overflow-y:auto}.curriculum-card{background:var(--available-bg);width:100%;min-height:0;color:var(--text);text-align:left;box-shadow:var(--shadow);border:1px solid #d4bfae;border-radius:6px;flex-shrink:0;grid-template-rows:auto auto auto auto;row-gap:5px;padding:7px 8px;transition:border-color .12s,box-shadow .12s,transform .12s;display:grid}.curriculum-card:hover,.curriculum-card:focus-visible{border-color:var(--border-strong);outline:none;transform:translateY(-1px);box-shadow:0 2px 7px #3c1e0a33}.curriculum-card.is-selected{border-color:var(--app-orange);box-shadow:0 0 0 2px #d4621a2e}.curriculum-card.is-completed{border-color:var(--completed-border);background:var(--completed-bg)}.curriculum-card.is-planned{border-color:var(--planned-border);background:var(--planned-bg)}.is-planned .curriculum-card__state{color:var(--planned-fg,#1d4ed8)}.curriculum-card.is-locked{background:var(--locked-bg);color:var(--locked-text);border-color:#c2c6cc}.curriculum-card.is-planned.is-locked{border-color:var(--planned-border,#60a5fa);background:var(--planned-bg,#dbeafe);color:var(--locked-text);border-style:dashed}.curriculum-card__topline,.curriculum-card__footer{justify-content:space-between;align-items:center;gap:5px;min-width:0;display:flex}.curriculum-card__state,.curriculum-card__category{text-overflow:ellipsis;text-transform:none;white-space:nowrap;font-size:.64rem;font-weight:800;overflow:hidden}.curriculum-card__state{color:#166534}.curriculum-card__grade-badge{letter-spacing:0;font-size:.64rem;font-weight:800;line-height:1}.is-locked .curriculum-card__state{color:#475569}.curriculum-card__category{color:color-mix(in srgb, var(--category-color) 76%, #111827)}.curriculum-card h3{color:#111827;letter-spacing:0;overflow-wrap:anywhere;margin:2px 0 0;font-size:.76rem;font-weight:800;line-height:14px}.curriculum-card__meta{color:#1f2937;grid-auto-rows:auto;align-content:start;gap:1px;min-height:0;font-size:.625rem;line-height:12px;display:grid}.curriculum-card__meta span{text-overflow:ellipsis;white-space:nowrap;min-height:12px;overflow:hidden}.completion-indicator{color:#166534;background:#fff;border:1px solid #7f8b98;flex:none;place-items:center;width:13px;height:13px;font-size:.58rem;font-weight:900;line-height:1;display:inline-grid}.lock-copy{color:#475569;text-overflow:ellipsis;white-space:nowrap;font-size:.62rem;font-weight:700;overflow:hidden}.details-section{flex-direction:column;gap:10px;min-height:0;display:flex;overflow:hidden}.details-card{border:1px solid var(--border);background:var(--panel-strong);height:100%;min-height:0;box-shadow:var(--shadow);border-radius:6px;align-content:start;gap:10px;padding:12px;display:grid;overflow:auto}.section-kicker{color:#475569;letter-spacing:0;text-transform:uppercase;margin:0;font-size:.68rem;font-weight:800}.details-card__header{gap:8px;display:grid}.details-card h2{color:#111827;letter-spacing:0;margin:0;font-size:1rem;font-weight:800;line-height:1.12}.details-subtitle{color:#475569;margin:6px 0 0;font-size:.78rem;font-weight:700}.details-category{border:1px solid;border-radius:4px;justify-self:start;max-width:100%;padding:4px 7px;font-size:.72rem;font-weight:800}.details-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:0;display:grid}.details-metrics div{background:#fef4ec;border:1px solid #ddc9b5;border-radius:4px;min-width:0;padding:7px}.details-metrics dt{color:#64748b;font-size:.62rem;font-weight:800}.details-metrics dd{color:#111827;margin:4px 0 0;font-size:.8rem;font-weight:800}.details-action{background:var(--app-orange);color:#fff;border:0;border-radius:4px;min-height:30px;font-size:.78rem;font-weight:800}.details-action:disabled{color:#edf2f7;background:#9aa8b8}.field-label{color:#111827;margin-bottom:5px;font-size:.76rem;font-weight:800;display:block}.details-select,.details-input{color:#111827;background:#fff;border:1px solid #ddc9b5;border-radius:4px;width:100%;min-height:30px;font-size:.78rem}.details-select{padding:0 8px}.details-input{padding:0 9px}.option-summary ul{gap:3px;display:grid}.details-block{min-width:0}.details-block h3{color:#111827;margin:0 0 5px;font-size:.82rem;font-weight:800}.details-block p,.details-block ul{color:#475569;margin:0;font-size:.76rem}.details-block ul{padding-left:17px}@media (width<=1180px){body{overflow:auto}.page-shell{height:auto;min-height:100dvh;overflow:visible}.progress-card{grid-template-columns:repeat(2,minmax(180px,1fr))}.category-progress-list{grid-column:1/-1}.external-grid{grid-template-columns:repeat(5,minmax(152px,1fr));overflow-x:auto}.workspace{grid-template-columns:1fr;min-height:680px}.details-section{min-height:280px;overflow:visible}}@media (width<=720px){.top-bar{flex-direction:column;align-items:stretch;gap:7px;padding:8px}.top-bar__meta{flex-wrap:wrap}.progress-card,.legend-strip,.workspace{margin-left:8px;margin-right:8px}.progress-card{grid-template-columns:1fr}.stat-card{border-bottom:1px solid #ddc9b5;border-right:0}.semester-grid{grid-template-columns:repeat(9,minmax(152px,72vw))}.external-grid{grid-template-columns:repeat(5,minmax(152px,72vw))}}.course-row--selected td{background:#d4621a14}.breakdown-panel{border:1px solid var(--border-strong);background:var(--panel-strong);z-index:1000;border-radius:10px 10px 0 0;flex-direction:column;width:92%;max-width:650px;max-height:85vh;display:flex;position:fixed;bottom:0;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 -6px 24px #0000002e}.breakdown-panel--collapsed{max-height:42px}.breakdown-panel__header{background:var(--panel);border-bottom:1px solid var(--border);box-sizing:border-box;justify-content:space-between;align-items:center;height:42px;padding:10px 14px;display:flex}.breakdown-panel__title{color:#111827;font-size:.82rem}.breakdown-panel__sem{color:#64748b;font-weight:400}.breakdown-panel__stored{font-size:.78rem;font-weight:800}.breakdown-panel__toggle{cursor:pointer;color:#64748b;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;padding:2px 6px;font-size:.75rem;line-height:1;display:inline-flex}.breakdown-panel__toggle:hover{background:var(--page-bg);color:#111827}.breakdown-panel__close{cursor:pointer;color:#64748b;background:0 0;border:none;border-radius:3px;padding:2px 6px;font-size:.85rem;line-height:1}.breakdown-panel__close:hover{background:var(--page-bg);color:#111827}.breakdown-panel__body{scrollbar-width:thin;flex-grow:1;padding:14px;overflow-y:auto}.breakdown-panel__empty{color:#64748b;margin:0;padding:16px 14px;font-size:.78rem}.breakdown-panel__empty code{background:var(--page-bg);border:1px solid var(--border);color:var(--app-orange-dark);border-radius:3px;padding:1px 4px;font-size:.75rem}.breakdown-parciales{flex-wrap:wrap;gap:0;display:flex}.breakdown-parcial{border-right:1px solid var(--border);flex:280px;min-width:0}.breakdown-parcial:last-child{border-right:none}.breakdown-parcial__label{color:#111827;border-bottom:1px solid var(--border);background:var(--page-bg);margin:0;padding:8px 12px;font-size:.78rem;font-weight:800}.breakdown-parcial__pct{color:#64748b;font-weight:400}.breakdown-table{border-collapse:collapse;width:100%;font-size:.75rem}.breakdown-table th{color:#64748b;text-align:left;background:var(--panel);border-bottom:1px solid var(--border);padding:5px 10px;font-size:.65rem;font-weight:800}.breakdown-table td{color:#1f2937;border-top:1px solid var(--border);padding:5px 10px}.breakdown-table__num{text-align:right;font-variant-numeric:tabular-nums;width:56px;font-weight:600}.breakdown-table__total td{background:var(--page-bg);border-top:2px solid var(--border-strong);font-weight:800}.breakdown-input{border:1px solid var(--border-strong);background:var(--panel-strong);color:#111827;text-align:right;font-variant-numeric:tabular-nums;border-radius:3px;width:64px;padding:2px 5px;font-family:inherit;font-size:.75rem}.breakdown-input:focus{border-color:var(--app-orange);outline:none;box-shadow:0 0 0 2px #d4621a2e}.breakdown-final{border-top:1px solid var(--border-strong);background:var(--panel);justify-content:flex-end;align-items:center;gap:12px;padding:10px 14px;display:flex}.breakdown-final__label{color:#64748b;font-size:.75rem;font-weight:600}.breakdown-final__grade{font-variant-numeric:tabular-nums;color:#111827;font-size:1.1rem;font-weight:800}.breakdown-notes{border-top:1px solid var(--border);color:#92400e;background:#fffbf0;margin:0;padding:8px 14px 8px 28px;font-size:.72rem;list-style:outside}.breakdown-notes li+li{margin-top:2px}.history-section{margin-bottom:24px}.history-section__title{color:var(--text-strong);border-bottom:1px solid var(--border);margin-bottom:12px;padding-bottom:4px;font-size:1.05rem;font-weight:700}.semester-card--planned{border:1px dashed var(--planned-border,#93c5fd);background:var(--planned-bg,#f8fbff)}.semester-card--planned .semester-card__header{background:var(--planned-bg,#eff6ff);border-bottom:1px dashed var(--planned-border,#93c5fd)}.semester-card--planned .semester-cumulative{color:var(--planned-fg);border-top-color:#ffffff40}.semester-card--planned .semester-cumulative__metric-label,.semester-card--planned .semester-cumulative__metric strong{color:var(--planned-fg)}.semester-card__badge--planned{background:var(--planned-badge-bg,#3b82f61f);color:var(--planned-badge-fg,#1d4ed8)}.semester-card__footer--planned{flex-direction:column;align-items:stretch;gap:4px}.semester-card__footer-row{justify-content:space-between;align-items:center;display:flex}.planned-breakdown{color:#64748b;border-top:1px solid #00000012;flex-direction:column;gap:2px;padding-top:4px;font-size:.69rem;display:flex}.planned-breakdown__row{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.planned-breakdown__row strong{color:#374151;font-variant-numeric:tabular-nums;font-weight:700}.planned-breakdown__row--discount strong{color:#15803d;font-weight:700}.planned-breakdown__row--total{color:#1e3a5f;border-top:1px solid #0000001a;margin-top:2px;padding-top:3px}.planned-breakdown__row--total strong{color:#1d4ed8;font-weight:800}.details-block--plan{border-top:1px solid var(--border);margin-top:12px;padding-top:12px}.plan-hint{color:#64748b;margin-top:4px;font-size:.72rem}.planned-row--selected td{background:#3b82f61a}.planned-row__actions{text-align:center;width:24px;padding:0 2px}.btn-unplan{color:#b91c1c;cursor:pointer;background:#fee2e2;border:1px solid #fca5a5;border-radius:3px;place-items:center;width:18px;height:18px;padding:0;font-size:.6rem;font-weight:900;line-height:1;display:inline-grid}.btn-unplan:hover{background:#fca5a5;border-color:#f87171}.credit-cost-bar{border:1px solid var(--border);background:var(--panel);border-radius:6px;align-items:center;gap:10px;margin-bottom:16px;padding:8px 12px;display:flex}.credit-cost-bar__label{color:#111827;white-space:nowrap;font-size:.76rem;font-weight:800}.credit-cost-bar__field{border:1px solid var(--border-strong);background:#fff;border-radius:4px;align-items:center;display:flex;overflow:hidden}.credit-cost-bar__prefix{color:#475569;background:var(--page-bg);border-right:1px solid var(--border);padding:0 6px;font-size:.78rem;font-weight:700;line-height:28px}.credit-cost-bar__input{color:#111827;font-variant-numeric:tabular-nums;background:0 0;border:none;width:90px;height:28px;padding:0 8px;font-family:inherit;font-size:.78rem}.credit-cost-bar__input:focus{outline:none;box-shadow:inset 0 0 0 2px #d4621a38}.credit-cost-bar__hint{color:#64748b;font-size:.68rem}.credit-cost-bar__beca{color:#374151;white-space:nowrap;font-size:.72rem}.credit-cost-bar__beca strong{color:#15803d;font-weight:800}.beca-toggle{color:#6b7280;cursor:pointer;white-space:nowrap;background:0 0;border:1.5px solid #9ca3af;border-radius:6px;align-items:center;gap:4px;height:28px;padding:0 10px;font-size:.72rem;font-weight:700;transition:border-color .15s,background .15s,color .15s;display:inline-flex}.beca-toggle:hover{color:#15803d;border-color:#15803d}.beca-toggle--active{color:#15803d;background:#dcfce7;border-color:#15803d}.beca-toggle--active:before{content:"✓ "}.caja-toggle{color:#6b7280;cursor:pointer;white-space:nowrap;background:0 0;border:1.5px solid #9ca3af;border-radius:6px;align-items:center;gap:4px;height:28px;padding:0 10px;font-size:.72rem;font-weight:700;transition:border-color .15s,background .15s,color .15s;display:inline-flex}.caja-toggle:hover{color:#1d4ed8;border-color:#1d4ed8}.caja-toggle--active{color:#1d4ed8;background:#dbeafe;border-color:#1d4ed8}.caja-toggle--active:before{content:"✓ "}.planned-breakdown__row--fixed{opacity:.7}.planned-breakdown__row--fixed strong{color:#64748b;font-weight:600}.planned-breakdown__row--conditional{color:#7c3aed}.planned-breakdown__row--conditional strong{color:#6d28d9;font-weight:700}.planned-course__name{display:block}.planned-course__code{color:#64748b;letter-spacing:.02em;font-size:.62rem;font-weight:700;display:block}.planned-cost{color:#1e3a5f;font-variant-numeric:tabular-nums;font-size:.76rem}.planned-cost strong{color:#1d4ed8;font-weight:800}.onboarding{background:radial-gradient(1200px 480px at 50% -10%, #fbf3ea 0%, transparent 70%), var(--page-bg);scrollbar-width:thin;width:100vw;min-height:100dvh;max-height:100dvh;overflow-y:auto}.onboarding__inner{box-sizing:border-box;width:100%;max-width:960px;margin:0 auto;padding:48px 24px 64px}.onboarding__hero{text-align:center;margin-bottom:32px}.onboarding__logo{object-fit:contain;width:auto;max-width:260px;height:auto;max-height:150px;margin-bottom:4px}.onboarding__title{color:var(--text);letter-spacing:-.02em;margin:0 0 10px;font-size:2rem;font-weight:800;line-height:1.15}.onboarding__subtitle{color:var(--muted);margin:0;font-size:1rem;line-height:1.5}.method-cards{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:22px;display:grid}.method-card{text-align:left;background:var(--panel-strong);border:1.5px solid var(--border);border-radius:16px;align-items:flex-start;gap:14px;padding:20px;transition:border-color .18s,box-shadow .18s,transform .18s,background .18s;display:flex;box-shadow:0 1px 2px #3c1e0a0a}.method-card:hover{border-color:var(--border-strong);transform:translateY(-2px);box-shadow:0 8px 20px #3c1e0a14}.method-card--active{border-color:var(--app-orange);background:#fffcf9;box-shadow:0 0 0 3px #d4621a24,0 8px 20px #d4621a1a}.method-card__icon{background:#d4621a1a;border-radius:12px;flex:none;place-items:center;width:44px;height:44px;font-size:1.4rem;line-height:1;display:grid}.method-card--active .method-card__icon{background:#d4621a2e}.method-card__body{flex-direction:column;gap:4px;min-width:0;display:flex}.method-card__title{color:var(--text);letter-spacing:-.01em;font-size:1rem;font-weight:800}.method-card__desc{color:var(--muted);font-size:.82rem;line-height:1.4}.onboarding__panel{background:var(--panel-strong);border:1px solid var(--border);border-radius:18px;padding:26px;box-shadow:0 10px 30px #3c1e0a12,0 1px 3px #00000008}.career-list__search{border:1.5px solid var(--border-strong);background:var(--panel);width:100%;color:var(--text);box-sizing:border-box;border-radius:10px;margin-bottom:16px;padding:11px 14px;font-size:.92rem;transition:border-color .18s,box-shadow .18s}.career-list__search:focus{border-color:var(--app-orange);outline:none;box-shadow:0 0 0 3px #d4621a26}.career-list__grid{grid-template-columns:repeat(2,1fr);gap:10px;margin:0;padding:0;list-style:none;display:grid}.career-list__item{background:var(--panel);border:1.5px solid var(--border);width:100%;color:var(--text);text-align:left;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;font-size:.92rem;font-weight:700;transition:border-color .18s,background .18s,transform .18s,box-shadow .18s;display:flex}.career-list__item:hover:not(:disabled){border-color:var(--app-orange);background:#fffcf9;transform:translateY(-2px);box-shadow:0 6px 14px #d4621a1a}.career-list__item:disabled{opacity:.6;cursor:not-allowed}.career-list__item-name{text-overflow:ellipsis;min-width:0;overflow:hidden}.career-list__item-arrow{color:var(--app-orange);opacity:0;flex:none;font-weight:800;transition:opacity .18s,transform .18s;transform:translate(-4px)}.career-list__item:hover:not(:disabled) .career-list__item-arrow{opacity:1;transform:translate(0)}.career-list__empty{text-align:center;color:var(--muted);margin:0;padding:24px 16px;font-size:.9rem;line-height:1.5}.upload-plan{text-align:left}.upload-plan__desc{color:var(--muted);margin:0 0 20px;font-size:.9rem;line-height:1.5}.upload-plan__group{margin-bottom:16px}.upload-plan__group label{color:var(--text);margin-bottom:7px;font-size:.82rem;font-weight:800;display:block}.upload-plan__group input[type=text]{border:1.5px solid var(--border-strong);background:var(--panel);width:100%;color:var(--text);box-sizing:border-box;border-radius:10px;padding:11px 13px;transition:border-color .18s,box-shadow .18s}.upload-plan__group input[type=text]:focus{border-color:var(--app-orange);outline:none;box-shadow:0 0 0 3px #d4621a26}.upload-plan__group input[type=file]{background:var(--panel);border:1.5px dashed var(--border-strong);cursor:pointer;box-sizing:border-box;border-radius:10px;width:100%;padding:12px;font-size:.85rem}.upload-plan__example-row{background:var(--panel);border:1px solid var(--border);border-radius:12px;align-items:center;gap:14px;margin-bottom:20px;padding:12px;display:flex}.upload-plan__example-thumb{border:1px solid var(--border-strong);cursor:zoom-in;background:#fff;border-radius:8px;flex:none;width:96px;height:64px;padding:0;transition:box-shadow .18s,transform .18s;position:relative;overflow:hidden}.upload-plan__example-thumb:hover{transform:translateY(-1px);box-shadow:0 6px 16px #00000029}.upload-plan__example-thumb img{object-fit:cover;object-position:top center;width:100%;height:100%;display:block}.upload-plan__example-zoom{background:#111827b3;border-radius:6px;place-items:center;width:20px;height:20px;font-size:.7rem;display:grid;position:absolute;bottom:4px;right:4px}.upload-plan__example-text{flex-direction:column;gap:3px;min-width:0;display:flex}.upload-plan__example-title{color:var(--text);font-size:.86rem;font-weight:800}.upload-plan__example-hint{color:var(--muted);font-size:.78rem;line-height:1.4}.upload-plan__submit{background:linear-gradient(135deg, var(--app-orange) 0%, var(--app-orange-dark) 100%);color:#fff;cursor:pointer;border:none;border-radius:10px;width:100%;padding:13px 18px;font-size:.95rem;font-weight:800;transition:transform .18s,box-shadow .18s;box-shadow:0 4px 12px #d4621a38}.upload-plan__submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #d4621a4d}.upload-plan__submit:disabled{opacity:.7;background:var(--muted);box-shadow:none;cursor:not-allowed}.upload-plan__error{color:#b91c1c;background:#fdf2f2;border:1px solid #fecaca;border-radius:8px;margin-top:14px;padding:10px 12px;font-size:.82rem;font-weight:600;line-height:1.4}.image-modal{z-index:2000;cursor:zoom-out;background:#110c06c7;place-items:center;padding:32px;animation:.18s image-modal-in;display:grid;position:fixed;inset:0}@keyframes image-modal-in{0%{opacity:0}to{opacity:1}}.image-modal__img{cursor:default;border-radius:10px;max-width:100%;max-height:90vh;box-shadow:0 20px 60px #00000080}.image-modal__close{color:#111827;cursor:pointer;background:#ffffffeb;border:none;border-radius:999px;place-items:center;width:40px;height:40px;font-size:1.1rem;font-weight:800;transition:background .15s,transform .15s;display:grid;position:absolute;top:18px;right:22px}.image-modal__close:hover{background:#fff;transform:scale(1.05)}@media (width<=640px){.onboarding__inner{padding:32px 16px 48px}.onboarding__title{font-size:1.6rem}.method-cards{grid-template-columns:1fr}.onboarding__panel{padding:20px 16px}.career-list__grid{grid-template-columns:1fr}}.external-card-container{flex-direction:column;gap:6px;width:100%;display:flex}.external-card__remove{color:#c0392b;cursor:pointer;text-align:center;background:0 0;border:1px solid #c0392b;border-radius:6px;width:100%;padding:5px 8px;font-size:.72rem;font-weight:600;transition:all .2s}.external-card__remove:hover{color:#fff;background:#c0392b;box-shadow:0 2px 5px #c0392b33}.details-section{flex-direction:column;display:flex}.add-course{border:1px solid var(--border);background:var(--panel-strong);box-shadow:var(--shadow);border-radius:12px;flex-direction:column;flex:none;gap:12px;padding:16px;display:flex}.add-course h3{color:var(--text);margin:0;font-size:1rem;font-weight:700}.add-course__desc{color:var(--muted);margin:0;font-size:.76rem;line-height:1.3}.add-course__grid{grid-template-columns:repeat(6,1fr);gap:8px;display:grid}.add-course__group{grid-column:span 3}.add-course__group--small{grid-column:span 2}.add-course__group label{color:var(--muted);margin-bottom:4px;font-size:.72rem;font-weight:700;display:block}.add-course__group input{border:1.5px solid var(--border);background:var(--panel);width:100%;color:var(--text);border-radius:6px;padding:6px 8px;font-size:.8rem}.add-course__group input:focus{border-color:var(--app-orange);outline:none}.add-course__submit{background:var(--app-orange);color:#fff;cursor:pointer;border:none;border-radius:6px;width:100%;padding:8px 12px;font-size:.8rem;font-weight:700;transition:background .2s}.add-course__submit:hover{background:var(--app-orange-dark)}.floating-notice{z-index:1000;background:#fffdf5;border:1.5px solid #e2a93e;border-radius:12px;max-width:340px;padding:16px;animation:.3s slide-in-up;position:fixed;bottom:24px;right:24px;box-shadow:0 10px 30px #0000001f}@keyframes slide-in-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.floating-notice p{color:#78350f;margin:0 0 12px;font-size:.82rem;line-height:1.45}.floating-notice__dismiss{color:#fff;cursor:pointer;background:#f59e0b;border:none;border-radius:6px;padding:6px 12px;font-size:.78rem;font-weight:700;transition:background .15s}.floating-notice__dismiss:hover{background:#d97706}.account-menu{margin-left:12px;display:inline-block;position:relative}.account-menu__trigger{background:var(--panel-strong);border:1.5px solid var(--border);color:var(--text);cursor:pointer;border-radius:20px;align-items:center;gap:8px;padding:4px 12px 4px 6px;font-size:.8rem;font-weight:600;transition:all .2s;display:flex}.account-menu__trigger:hover{border-color:var(--app-orange);background:var(--panel)}.account-menu__avatar{background:var(--app-orange);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:.76rem;font-weight:700;display:flex}.account-menu__trigger-name{text-overflow:ellipsis;white-space:nowrap;max-width:100px;overflow:hidden}.account-menu__caret{opacity:.6;font-size:.6rem}.account-menu__dropdown{background:var(--panel-strong);border:1px solid var(--border);z-index:1001;border-radius:8px;flex-direction:column;width:200px;padding:6px 0;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 10px 25px #00000026}.account-menu__header{flex-direction:column;align-items:flex-start;padding:8px 14px;display:flex}.account-menu__role{text-transform:uppercase;color:var(--app-orange);letter-spacing:.5px;font-size:.64rem;font-weight:700}.account-menu__full-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.82rem;font-weight:600;overflow:hidden}.account-menu__divider{background:var(--border);height:1px;margin:6px 0}.account-menu__item{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;padding:8px 14px;font-size:.78rem;font-weight:600;transition:background .15s}.account-menu__item:hover{background:var(--panel);color:var(--app-orange)}.account-menu__item--danger{color:#c0392b}.account-menu__item--danger:hover{color:#b91c1c;background:#fdf2f2}
