/* Malla y ramos v4 · pulido visual sin cambiar la identidad base */
:root{--area-ch:#d8ea35;--area-cse:#9ac441;--area-cb:#cf3638;--area-ci:#d3aa30;--area-esp:#6586c8;--area-cts:#c58cc1;--area-ele:#8455a6}.malla-page-wrap,.course-page-wrap{padding-bottom:88px}.malla-control-card{border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 94%,transparent);border-radius:24px;padding:18px;box-shadow:var(--shadow);margin-bottom:20px}.malla-filter-form.v4{display:grid;grid-template-columns:minmax(260px,1fr) minmax(210px,.36fr) auto auto;gap:12px;align-items:stretch}.malla-filter-form.v4 .filter-search,.malla-filter-form.v4 select,.malla-filter-form.v4 button{min-height:46px}.malla-filter-form.v4 .filter-search input{width:100%}.malla-legend.v4{display:flex;flex-wrap:wrap;gap:10px 14px;margin-top:16px}.malla-legend.v4 span{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-weight:900;font-size:12px}.legend-dot-v4{width:11px;height:11px;border-radius:4px;background:var(--area);box-shadow:0 0 0 3px color-mix(in srgb,var(--area) 18%,transparent)}.malla-status-line{display:flex;justify-content:space-between;gap:16px;align-items:center;margin:18px 0 14px;color:var(--muted);font-size:12px;font-weight:900}.malla-status-line strong{color:var(--text-strong)}.malla-board-v4{display:grid;grid-template-columns:repeat(10,minmax(218px,1fr));gap:14px;overflow-x:auto;padding:4px 2px 18px;scrollbar-color:var(--line-strong) transparent}.semester-v4{min-width:218px;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 88%,transparent);border-radius:24px;padding:14px;box-shadow:var(--shadow)}.semester-v4 header{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:12px}.semester-v4 header span{font-size:12px;color:var(--cyan);font-weight:1000;letter-spacing:.08em}.semester-v4 header strong{display:block;color:var(--text-strong);font-size:18px}.semester-v4 header small{color:var(--muted);font-size:10px;font-weight:1000;letter-spacing:.08em}.semester-cards-v4{display:grid;gap:10px}.course-card-v4{--area:#67a6ff;position:relative;display:grid;gap:8px;min-height:132px;padding:14px;border:1px solid color-mix(in srgb,var(--area) 52%,var(--line));border-left:5px solid var(--area);background:linear-gradient(145deg,color-mix(in srgb,var(--surface-solid) 92%,var(--area) 8%),color-mix(in srgb,var(--surface) 98%,transparent));border-radius:18px;box-shadow:0 10px 26px rgba(0,0,0,.12);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.course-card-v4:hover{transform:translateY(-3px);border-color:var(--area);box-shadow:0 18px 38px color-mix(in srgb,var(--area) 18%,rgba(0,0,0,.22))}.course-card-v4-top{display:flex;justify-content:space-between;gap:10px;align-items:start}.course-code-v4{color:var(--area);font-size:12px;font-weight:1000;letter-spacing:.04em}.course-sct-v4{color:var(--text);font-size:11px;font-weight:1000;white-space:nowrap}.course-card-v4 h2{font-size:14px;line-height:1.16;color:var(--text-strong);font-weight:1000;margin:0;text-transform:none}.course-card-v4 p{margin:0;color:var(--muted);font-size:11px;font-weight:850}.course-card-v4 .open{align-self:end;color:var(--cyan);font-size:11px;font-weight:1000}.malla-board-v4.semester-only{display:block;overflow:visible}.malla-board-v4.semester-only .semester-v4{max-width:980px;margin-inline:auto}.malla-board-v4.semester-only .semester-cards-v4{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.malla-board-v4.semester-only .course-card-v4{min-height:164px;padding:18px}.malla-board-v4.semester-only .course-card-v4 h2{font-size:18px}.practice-row-v4{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:14px;margin-top:20px}.practice-card-v4{border:1px dashed color-mix(in srgb,var(--area-esp) 70%,var(--line));background:var(--surface);border-radius:18px;padding:15px 18px;display:flex;justify-content:space-between;gap:16px;align-items:center;color:var(--muted);font-weight:900}.practice-card-v4 strong{color:var(--text-strong)}.malla-empty-v4{border:1px dashed var(--line-strong);border-radius:22px;padding:28px;color:var(--muted);text-align:center;background:var(--surface);margin-top:14px}.course-hero-v4{padding:56px 0 24px}.course-back-v4{display:inline-flex;margin-bottom:28px;color:var(--muted);font-size:12px;font-weight:1000}.course-hero-grid-v4{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,310px);gap:40px;align-items:end}.course-label-v4{display:flex;gap:9px;flex-wrap:wrap;margin:14px 0 18px}.course-label-v4 span{border:1px solid color-mix(in srgb,var(--area) 70%,var(--line));background:color-mix(in srgb,var(--area) 12%,var(--surface));color:var(--text-strong);border-radius:999px;padding:7px 10px;font-size:11px;font-weight:1000}.course-code-title-v4{display:inline-block;color:var(--area);font-size:16px;font-weight:1000;letter-spacing:.08em;margin-bottom:8px}.course-hero-v4 h1{font-size:clamp(42px,6vw,78px);line-height:.96;margin:0;color:var(--text-strong);letter-spacing:-.055em}.course-hero-v4 p{max-width:760px;color:var(--muted);font-size:16px;line-height:1.75}.course-card-info-v4{border:1px dashed color-mix(in srgb,var(--area) 75%,var(--line));background:var(--surface);border-radius:24px;padding:22px;box-shadow:var(--shadow)}.course-card-info-v4 small{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:1000}.course-card-info-v4 strong{display:block;color:var(--area);font-size:34px;line-height:1;margin:7px 0}.course-card-info-v4 p{font-size:13px;margin:0;color:var(--muted);line-height:1.5}.course-layout-v4{display:grid;grid-template-columns:minmax(0,1fr) minmax(310px,360px);gap:36px;align-items:start;padding-bottom:100px}.course-main-v4{min-width:0}.course-side-v4{position:sticky;top:92px;min-width:0}.progression-v4{display:grid;grid-template-columns:minmax(0,1fr) minmax(170px,.8fr) minmax(0,1fr);gap:12px;margin:8px 0 36px}.progress-card-v4{border:1px solid var(--line);background:var(--surface);border-radius:18px;padding:15px;min-width:0}.progress-card-v4 small{display:block;color:var(--muted);font-size:9px;letter-spacing:.1em;font-weight:1000;text-transform:uppercase}.progress-card-v4 strong{display:block;color:var(--text-strong);font-size:14px;line-height:1.25;margin-top:7px;overflow-wrap:anywhere}.progress-card-v4 span{color:var(--area);font-size:12px;font-weight:1000}.section-card-v4{border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 90%,transparent);border-radius:24px;padding:24px;margin-bottom:24px;box-shadow:var(--shadow)}.section-card-v4 h2{margin:0 0 10px;font-size:clamp(25px,3vw,36px);color:var(--text-strong)}.section-card-v4 .eyebrow{margin-bottom:10px}.resource-pills-v4{display:flex;flex-wrap:wrap;gap:9px;margin:16px 0}.resource-pills-v4 span{border:1px solid var(--line);background:var(--surface-solid);border-radius:999px;padding:8px 11px;font-size:11px;color:var(--muted);font-weight:900}.empty-note-v4{border:1px dashed var(--line-strong);border-radius:18px;padding:16px;color:var(--muted);font-size:13px;background:color-mix(in srgb,var(--surface) 82%,transparent)}.experience-head-v4{display:flex;justify-content:space-between;gap:22px;align-items:start}.sort-box-v4{min-width:210px;color:var(--muted);font-size:12px;font-weight:900}.sort-box-v4 select{width:100%;margin-top:6px}.stats-grid-v4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:18px}.stat-v4{border:1px solid var(--line);background:var(--surface-solid);border-radius:18px;padding:16px;min-width:0}.stat-v4 small{display:block;color:var(--muted);font-size:10px;font-weight:1000;text-transform:uppercase}.stat-v4 strong{display:block;color:var(--text-strong);font-size:23px;margin:8px 0}.stat-v4 .bar{height:5px;background:color-mix(in srgb,var(--line) 72%,transparent);border-radius:999px;overflow:hidden}.stat-v4 .bar i{display:block;height:100%;background:var(--area);width:0%;border-radius:inherit;transition:width .3s ease}.reviews-v4{display:grid;gap:14px;margin-top:20px}.review-v4{border:1px solid var(--line);background:var(--surface-solid);border-radius:20px;padding:18px}.review-v4 header,.review-v4 footer{display:flex;justify-content:space-between;gap:14px;align-items:start}.review-v4 strong{color:var(--text-strong)}.review-v4 small,.review-v4 .meta{color:var(--muted);font-size:11px;font-weight:850}.review-v4 .stars{color:var(--yellow);font-size:16px;white-space:nowrap}.review-v4 p{color:var(--text);line-height:1.65;margin:12px 0}.review-extra-v4{display:grid;gap:7px;margin-top:12px}.review-extra-v4 div{font-size:12px;color:var(--muted)}.review-extra-v4 b{color:var(--text-strong)}.like-v4{border:1px solid var(--line);background:var(--surface);border-radius:999px;color:var(--muted);font-size:12px;font-weight:1000;padding:8px 12px;cursor:pointer}.like-v4.is-liked{background:var(--area);border-color:var(--area);color:#071521}.opinion-form-v4{border:1px solid var(--line);background:var(--surface);border-radius:24px;padding:22px;box-shadow:var(--shadow)}.opinion-form-v4 h2{font-size:22px;margin:0 0 8px}.opinion-form-v4 p{color:var(--muted);font-size:13px;line-height:1.55;margin-bottom:18px}.form-grid-v4{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-field-v4{display:grid;gap:6px}.form-field-v4.full{grid-column:1/-1}.form-field-v4 label{color:var(--text-strong);font-size:11px;font-weight:1000}.form-field-v4 input,.form-field-v4 select,.form-field-v4 textarea{width:100%;border:1px solid var(--line);background:var(--surface-solid);color:var(--text);border-radius:12px;padding:10px 12px;font-size:13px}.form-field-v4 textarea{min-height:86px;resize:vertical}.checkbox-v4{grid-column:1/-1;display:flex;gap:10px;align-items:center;color:var(--muted);font-size:12px;font-weight:900}.checkbox-v4 input{width:16px;height:16px;accent-color:var(--area)}.form-submit-v4{grid-column:1/-1}.form-submit-v4 button{width:100%;justify-content:center}.form-note-v4{display:block;color:var(--muted);font-size:10px;line-height:1.5;margin-top:10px}.no-review-v4{text-align:center;padding:42px 22px;border:1px dashed var(--line-strong);border-radius:22px;color:var(--muted);background:color-mix(in srgb,var(--surface) 84%,transparent)}.no-review-v4 strong{display:block;color:var(--text-strong);font-size:20px;margin:8px 0}@media(max-width:1100px){.malla-board-v4{grid-template-columns:repeat(10,220px)}.course-hero-grid-v4,.course-layout-v4{grid-template-columns:1fr}.course-side-v4{position:static}.stats-grid-v4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:850px){.malla-filter-form.v4{grid-template-columns:1fr 1fr}.malla-filter-form.v4 .filter-search{grid-column:1/-1}.malla-board-v4.semester-only .semester-cards-v4{grid-template-columns:repeat(2,minmax(0,1fr))}.progression-v4{grid-template-columns:1fr}.practice-row-v4{grid-template-columns:1fr}.experience-head-v4{display:grid}.sort-box-v4{min-width:0}.course-hero-v4 h1{letter-spacing:-.035em}}@media(max-width:620px){.malla-filter-form.v4{grid-template-columns:1fr}.malla-board-v4.semester-only .semester-cards-v4,.stats-grid-v4,.form-grid-v4{grid-template-columns:1fr}.malla-board-v4{grid-template-columns:repeat(10,84vw)}.course-card-v4{min-height:124px}.review-v4 header,.review-v4 footer{display:grid}.course-label-v4 span{font-size:10px}.course-card-info-v4 strong{font-size:28px}}