.cal_main {
--cal_lic-red:#B52A43;
    --cal_lic-red-dark:#7C1830;
    --cal_lic-red-soft:#FFF0F3;

    --cal_estudiantado:#E91E63;
    --cal_unidad:#6B7280;
    --cal_dae:#00ACC1;

    --cal_estado-expired-bg:#FFE3E8;
    --cal_estado-expired-fg:#C2185B;
    --cal_estado-expired-line:#FF3366;

    --cal_estado-active-bg:#FFF1B8;
    --cal_estado-active-fg:#9A6A00;
    --cal_estado-active-line:#FFC107;

    --cal_estado-upcoming-bg:#DDF8E8;
    --cal_estado-upcoming-fg:#1B8F3E;
    --cal_estado-upcoming-line:#00C853;

    --cal_ink:#22252a;
    --cal_muted:#6a7280;
    --cal_line:#e3e5e8;
    --cal_paper:#ffffff;
    --cal_page:#f5f6f8;
}

.cal_main * {
box-sizing:border-box
}

.cal_main button,
.cal_main input,
.cal_main select,
.cal_main textarea {
font-family:Helvetica, Arial, sans-serif;
}

.cal_main {
margin:0;
    font-family:Helvetica, Arial, sans-serif;
    color:var(--cal_ink);
    background:var(--cal_page);
}

.cal_main {
width:min(1180px, calc(100% - 34px));
    margin:auto;
}

.cal_main h1 {
margin:0;
    font-size:clamp(calc(1.38 * var(--cal_font)), 2.45vw, calc(2.02 * var(--cal_font)));
    font-weight:650;
    line-height:1.1;
    max-width:none;
}

.cal_main .cal_panel {
margin:22px auto 16px;
    background:var(--cal_paper);
    border:1px solid var(--cal_line);
    border-radius:16px;
    padding:18px;
    box-shadow:0 8px 26px rgba(0,0,0,.05);
}

.cal_main .cal_content {
display:block;
}





.cal_main .cal_field label {
display:block;
    font-size:calc(.72 * var(--cal_font));
    color:var(--cal_muted);
    text-transform:uppercase;
    letter-spacing:.04em;
    margin:0 0 6px 2px;
    font-weight:600;
}

.cal_main input[type="search"] {
width:100%;
    min-height:44px;
    border:1px solid #d6d9de;
    border-radius:10px;
    padding:11px 14px;
    background:#fff;
    color:#222;
    font-size:calc(.95 * var(--cal_font));
    font-weight:400;
    outline:none;
    box-shadow:0 1px 2px rgba(0,0,0,.02);
}

.cal_main input[type="search"]::placeholder {
color:#9299a3;
    opacity:1;
}

.cal_main input[type="search"]:focus {
border-color:var(--cal_lic-red);
    box-shadow:0 0 0 3px rgba(164,52,58,.09);
}

.cal_main .cal_toolbar {
display:grid;
    grid-template-columns:minmax(270px,1fr) auto;
    gap:14px;
    align-items:end;
    margin:16px auto;
}

.cal_main .cal_actions {
display:flex;
    flex-wrap:wrap;
    gap:8px;
    justify-content:flex-end;
}

.cal_main .cal_btn {
border:1px solid #d4d7dc;
    background:#fff;
    color:#30343b;
    border-radius:10px;
    padding:10px 14px;
    font-weight:600;
    cursor:pointer;
}

.cal_main .cal_btn_dark {
border-color:#23272b;
    background:#23272b;
    color:#fff;
}

.cal_main .cal_legend {
display:flex;
    flex-wrap:wrap;
    gap:10px 18px;
    margin:10px 0 18px;
    font-size:calc(.84 * var(--cal_font));
    color:#49515c;
}

.cal_main .cal_legend span {
display:inline-flex;
    align-items:center;
    gap:7px;
}

.cal_main .cal_swatch {
width:14px;
    height:14px;
    border-radius:4px;
}

.cal_main .cal_sw_estudiantado {
background:var(--cal_estudiantado)
}

.cal_main .cal_sw_dae {
background:var(--cal_dae)
}
.cal_main .cal_sw_unidad {
background:var(--cal_unidad)
}
.cal_main .cal_sw_expired {
background:var(--cal_estado-expired-line); border:1px solid #d81b60
}

.cal_main .cal_sw_active {
background:var(--cal_estado-active-line); border:1px solid #d89a00
}

.cal_main .cal_sw_upcoming {
background:var(--cal_estado-upcoming-line); border:1px solid #009b3a
}

.cal_main .cal_heading {
display:flex;
    justify-content:space-between;
    align-items:end;
    gap:16px;
    margin:20px 0 12px;
}

.cal_main .cal_heading h2 {
margin:0;
    font-size:calc(1.16 * var(--cal_font));
}

.cal_main .cal_heading p {
margin:0;
    color:var(--cal_muted);
    font-size:calc(.88 * var(--cal_font));
}

.cal_main .cal_cards {
display:grid;
    gap:14px;
    margin-bottom:28px;
}

.cal_main details.cal_proc {
background:#fff;
    border:1px solid var(--cal_line);
    border-radius:16px;
    overflow:hidden;
    box-shadow:0 3px 16px rgba(0,0,0,.04);
}

.cal_main details.cal_proc[open] {
box-shadow:0 14px 34px rgba(0,0,0,.10);
    border-color:#d7b8bc;
}

.cal_main details.cal_proc:not([open]) {
box-shadow:0 2px 8px rgba(0,0,0,.04);
}

.cal_main details.cal_proc:not([open]) summary {
background:#fff;
}

.cal_main details.cal_proc[open] summary {
background:linear-gradient(90deg, #faf6f6, #fff 68%);
    border-bottom:1px solid #e2c9cc;
}

.cal_main details.cal_proc[open] .cal_p_title {
color:var(--cal_lic-red-dark);
}

.cal_main details.cal_proc.cal_expired {
border-left:8px solid var(--cal_estado-expired-line)
}

.cal_main details.cal_proc.cal_active {
border-left:8px solid var(--cal_estado-active-line)
}

.cal_main details.cal_proc.cal_upcoming {
border-left:8px solid var(--cal_estado-upcoming-line)
}

.cal_main summary {
list-style:none;
    cursor:pointer;
    display:grid;
    grid-template-columns:32px minmax(0,1fr) auto;
    gap:12px;
    padding:16px;
    align-items:center;
}

.cal_main summary::-webkit-details-marker {
display:none
}

.cal_main .cal_select_box {
display:flex;
    align-items:center;
    justify-content:center;
}

.cal_main .cal_select_box input {
width:18px;
    height:18px;
    accent-color:var(--cal_lic-red);
}

.cal_main .cal_p_title {
font-weight:650;
    line-height:1.24;
    font-size:calc(1 * var(--cal_font));
}

.cal_main .cal_p_meta {
margin-top:7px;
    display:flex;
    flex-wrap:wrap;
    gap:8px 10px;
    align-items:center;
}

.cal_main .cal_pill {
display:inline-flex;
    align-items:center;
    gap:6px;
    padding:6px 9px;
    border-radius:999px;
    font-size:calc(.78 * var(--cal_font));
    font-weight:600;
    background:#f5f6f8;
    color:#4b5563;
    white-space:nowrap;
}

.cal_main .cal_pill .cal_dot {
width:8px;
    height:8px;
    border-radius:50%;
    display:inline-block;
}

.cal_main .cal_summary_side {
display:flex;
    align-items:center;
    gap:10px;
}

.cal_main .cal_toggle_cue {
display:inline-flex;
    align-items:center;
    gap:10px;
    padding:7px 8px 7px 12px;
    border-radius:999px;
    border:1px solid #5a6168;
    background:#5a6168;
    color:#fff;
    font-size:calc(.76 * var(--cal_font));
    font-weight:600;
    white-space:nowrap;
    box-shadow:0 2px 6px rgba(0,0,0,.08);
}

.cal_main .cal_toggle_cue .cal_toggle_text {
line-height:1;
}

.cal_main .cal_toggle_cue .cal_arrow_badge {
width:24px;
    height:24px;
    border-radius:50%;
    background:rgba(255,255,255,.18);
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 24px;
}

.cal_main .cal_toggle_cue .cal_chevron {
width:9px;
    height:9px;
    display:inline-block;
    border-right:2px solid #fff;
    border-bottom:2px solid #fff;
    transform:rotate(45deg) translateY(-1px);
    transition:transform .18s ease;
}

.cal_main details.cal_proc[open] .cal_toggle_cue {
background:var(--cal_lic-red-dark);
    border-color:var(--cal_lic-red-dark);
    color:#fff;
}

.cal_main details.cal_proc[open] .cal_toggle_cue .cal_arrow_badge {
background:rgba(255,255,255,.22);
}

.cal_main details.cal_proc[open] .cal_toggle_cue .cal_chevron {
transform:rotate(225deg) translateY(-1px);
}

.cal_main .cal_expanded {
display:none;
    align-items:center;
    gap:8px;
    margin:0 0 10px;
    padding:9px 11px;
    border-radius:10px;
    background:#fff4f5;
    border:1px solid #e8c8cc;
    color:#7a2f36;
    font-size:calc(.8 * var(--cal_font));
    font-weight:600;
}

.cal_main .cal_expanded_dot {
width:10px;
    height:10px;
    border-radius:50%;
    background:var(--cal_lic-red);
    flex:0 0 10px;
}

.cal_main details.cal_proc[open] .cal_expanded {
display:flex;
}

.cal_main .cal_intro {
display:none;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:12px;
    padding:9px 11px;
    border-radius:10px;
    background:#fff;
    border:1px solid #e6d5d7;
    color:#5f4c4e;
    font-size:calc(.8 * var(--cal_font));
}

.cal_main details.cal_proc[open] .cal_intro {
display:flex;
}

.cal_main .cal_range {
display:inline-flex;
    align-items:center;
    gap:8px;
    font-size:calc(.78 * var(--cal_font));
    font-weight:600;
    padding:8px 11px;
    border-radius:999px;
    white-space:nowrap;
    border:1px solid transparent;
}

.cal_main .cal_range .cal_tiny_dot {
width:9px;
    height:9px;
    border-radius:50%;
    display:inline-block;
}

.cal_main .cal_range.cal_expired {
background:var(--cal_estado-expired-bg);
    color:var(--cal_estado-expired-fg);
    border-color:#F2B8B5;
}

.cal_main .cal_range.cal_expired .cal_tiny_dot {
background:var(--cal_estado-expired-fg)
}

.cal_main .cal_range.cal_active {
background:var(--cal_estado-active-bg);
    color:var(--cal_estado-active-fg);
    border-color:#F3DA79;
}

.cal_main .cal_range.cal_active .cal_tiny_dot {
background:var(--cal_estado-active-fg)
}

.cal_main .cal_range.cal_upcoming {
background:var(--cal_estado-upcoming-bg);
    color:var(--cal_estado-upcoming-fg);
    border-color:#95D5A6;
}

.cal_main .cal_range.cal_upcoming .cal_tiny_dot {
background:var(--cal_estado-upcoming-fg)
}

.process-.cal_main {
padding:15px 16px 16px;
    background:linear-gradient(180deg, #fcf7f8 0%, #ffffff 100%);
    box-shadow:inset 0 4px 0 rgba(164,52,58,.10);
}

.cal_main .cal_route {
display:grid;
    gap:12px;
}

.cal_main .cal_step {
display:grid;
    grid-template-columns:168px minmax(0,1fr) 185px;
    gap:14px;
    align-items:start;
    background:#fff;
    border:1px solid #e4e6ea;
    border-radius:12px;
    padding:13px;
	margin-left: 20px;
    margin-right: 20px;
}

.cal_main .cal_step.cal_expired {
background:linear-gradient(180deg, #fff 0%, #fff5f5 100%); border-color:#F2C5C3
}

.cal_main .cal_step.cal_active {
background:linear-gradient(180deg, #fff 0%, #fffaf0 100%); border-color:#F3DE90
}

.cal_main .cal_step.cal_upcoming {
background:linear-gradient(180deg, #fff 0%, #f4fcf6 100%); border-color:#B7E2C2
}

.cal_main .cal_step[data-actor="Estudiantado"] {
box-shadow:inset 5px 0 0 var(--cal_estudiantado)
}

.cal_main .cal_step[data-actor="Unidad Académica"] {
box-shadow:inset 5px 0 0 var(--cal_unidad)
}

.cal_main .cal_step[data-actor="DAE"] {
box-shadow:inset 5px 0 0 var(--cal_dae)
}

.cal_main .cal_who {
font-weight:600;
    font-size:calc(.88 * var(--cal_font));
}

.cal_main .cal_who small {
display:block;
    color:var(--cal_muted);
    font-weight:400;
    margin-top:5px;
    line-height:1.35;
}

.cal_main .cal_step h3 {
margin:0 0 5px;
    font-size:calc(.96 * var(--cal_font));
}

.cal_main .cal_step p {
margin:0;
    line-height:1.5;
    font-size:calc(.89 * var(--cal_font));
    font-weight:400;
}

.cal_main .cal_detail_grid {
margin-top:9px;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
}

.cal_main .cal_detail_grid_two {
grid-template-columns:repeat(2,minmax(0,1fr));
}

.cal_main .cal_mini {
background:#f7f8fa;
    border-radius:8px;
    padding:8px 9px;
    font-size:calc(.8 * var(--cal_font));
    line-height:1.38;
}

.cal_main .cal_mini b {
display:block;
    margin-bottom:2px;
    font-weight:600;
}

.cal_main .cal_mini_label {
display:block;
    margin-bottom:2px;
    font-weight:600;
}

.cal_main .cal_note_label {
font-weight:600;
}

.cal_main .cal_note {
margin-top:10px;
    border-left:4px solid var(--cal_lic-red);
    background:var(--cal_lic-red-soft);
    padding:9px 11px;
    font-size:calc(.82 * var(--cal_font));
    line-height:1.4;
}

.cal_main .cal_step_side {
text-align:right;
}

.cal_main .cal_status_dot {
width:10px;
    height:10px;
    border-radius:50%;
    display:inline-block;
    margin-right:7px;
    vertical-align:middle;
    box-shadow:0 0 0 2px rgba(255,255,255,.55);
}

.cal_main .cal_step_status {
display:inline-flex;
    align-items:center;
    border-radius:999px;
    padding:7px 11px;
    font-size:calc(.78 * var(--cal_font));
    font-weight:600;
    margin-bottom:8px;
    border:1px solid transparent;
}

.cal_main .cal_step_status.cal_expired {
background:var(--cal_estado-expired-bg);
    color:var(--cal_estado-expired-fg);
    border-color:#F2B8B5;
}

.cal_main .cal_step_status.cal_active {
background:var(--cal_estado-active-bg);
    color:var(--cal_estado-active-fg);
    border-color:#F3DA79;
}

.cal_main .cal_step_status.cal_upcoming {
background:var(--cal_estado-upcoming-bg);
    color:var(--cal_estado-upcoming-fg);
    border-color:#95D5A6;
}

.cal_main .cal_date_box {
margin-top:3px;
}

.cal_main .cal_gcal {
display:inline-block;
    margin-top:8px;
    font-size:calc(.77 * var(--cal_font));
    color:var(--cal_lic-red);
    text-decoration:none;
    font-weight:600;
}

.cal_main .cal_gcal:hover {
text-decoration:underline
}

.cal_main .cal_period {
display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:4px;
}

.cal_main .cal_date_label {
font-size:calc(.68 * var(--cal_font));
    text-transform:uppercase;
    letter-spacing:.035em;
    font-weight:600;
    color:var(--cal_muted);
    line-height:1.2;
}

.cal_main .cal_stage_label {
display:block;
    font-size:calc(.69 * var(--cal_font));
    text-transform:uppercase;
    letter-spacing:.035em;
    font-weight:600;
    color:var(--cal_muted);
    margin-bottom:5px;
}

.cal_main .cal_date_value {
display:block;
    color:var(--cal_ink);
    font-size:calc(.83 * var(--cal_font));
    font-weight:600;
    line-height:1.35;
}

.cal_main .cal_anchor {
display:block;
    position:relative;
    top:-12px;
    visibility:hidden;
}

@media (max-width:700px) {
.cal_main .cal_anchor {
top:-58px;
}
}

.cal_main .cal_mob {
display:none;
}

@media (max-width:700px) {
.cal_main.cal_focus details.cal_proc.cal_focused {
border:1px solid #d9aeb4;
      border-left:7px solid var(--cal_lic-red) !important;
      box-shadow:0 14px 30px rgba(71,36,40,.16);
      background:#fff;
}

.cal_main.cal_focus details.cal_proc.cal_focused > summary {
background:linear-gradient(90deg, #f9ecee 0%, #fff 75%);
}

.cal_main.cal_focus details.cal_proc.cal_focused .cal_p_title::before {
content:"Consultando ahora";
      display:block;
      width:max-content;
      margin-bottom:5px;
      padding:3px 7px;
      border-radius:999px;
      background:var(--cal_lic-red-dark);
      color:#fff;
      font-size:calc(.60 * var(--cal_font));
      font-weight:700;
      letter-spacing:.04em;
      text-transform:uppercase;
}

.cal_main.cal_focus details.cal_proc:not(.cal_focused) {
border-left-color:#c9ced3 !important;
      background:#f5f6f7;
      box-shadow:none;
      opacity:.78;
}

.cal_main.cal_focus details.cal_proc:not(.cal_focused) > summary {
background:#f5f6f7;
      padding-top:10px;
      padding-bottom:10px;
}

.cal_main.cal_focus details.cal_proc:not(.cal_focused) .cal_p_title {
font-size:calc(.84 * var(--cal_font));
      color:#555d66;
      font-weight:600;
}

.cal_main.cal_focus details.cal_proc:not(.cal_focused) .cal_p_meta {
display:none;
}

.cal_main.cal_focus details.cal_proc:not(.cal_focused) .cal_date_label {
display:none;
}

.cal_main.cal_focus details.cal_proc:not(.cal_focused) .cal_range {
padding:4px 7px;
      font-size:calc(.64 * var(--cal_font));
      background:#fff;
      color:#686f77;
      border-color:#d7dade;
}

.cal_main.cal_focus details.cal_proc:not(.cal_focused) .cal_range::before {
opacity:.5;
}

.cal_main.cal_focus details.cal_proc:not(.cal_focused) .cal_toggle_cue {
min-height:36px;
      padding:5px 7px 5px 9px;
      font-size:calc(.67 * var(--cal_font));
      background:#767d84;
}

.cal_main.cal_focus details.cal_proc:not(.cal_focused) .cal_toggle_cue .cal_arrow_badge {
width:21px;
      height:21px;
      flex-basis:21px;
}

.cal_main.cal_focus details.cal_proc:not(.cal_focused) .cal_select_box {
opacity:.55;
}

.cal_main.cal_focus .cal_cards {
gap:11px;
}
}

@media (max-width:700px) {
.cal_main {
overflow-x:hidden;
}

.cal_main {
width:min(100% - 20px, 100%);
}

.cal_main h1 {
font-size:calc(1.28 * var(--cal_font));
      line-height:1.12;
      max-width:none;
}

.cal_main .cal_mob {
position:sticky;
      top:0;
      z-index:950;
      display:none;
      margin:0 -10px 10px;
      padding:8px 12px 9px;
      background:rgba(255,255,255,.97);
      border-bottom:1px solid #dfe2e6;
      box-shadow:0 4px 12px rgba(0,0,0,.08);
      backdrop-filter:blur(8px);
      -webkit-backdrop-filter:blur(8px);
      color:#4f5965;
}

.cal_main .cal_mob.cal_show {
display:block;
}

.cal_main .cal_mob_top {
display:flex;
      align-items:center;
      gap:5px;
      font-size:calc(.72 * var(--cal_font));
      line-height:1.15;
}

.cal_main .cal_mob_level {
font-weight:650;
      color:var(--cal_lic-red-dark);
}

.cal_main .cal_mob_period {
font-weight:500;
}

.cal_main .cal_mob_program {
margin-top:3px;
      font-size:calc(.84 * var(--cal_font));
      line-height:1.2;
      font-weight:700;
      color:#272b31;
}

.cal_main .cal_mob_proc,
.cal_main .cal_mob_stage {
display:grid;
      grid-template-columns:46px minmax(0,1fr);
      gap:6px;
      align-items:start;
      margin-top:5px;
      padding-top:5px;
      border-top:1px solid #eceef1;
      line-height:1.22;
}

.cal_main .cal_mob_stage {
margin-top:3px;
      padding-top:0;
      border-top:0;
}

.cal_main .cal_mob_label {
font-size:calc(.62 * var(--cal_font));
      font-weight:700;
      text-transform:uppercase;
      letter-spacing:.035em;
      color:#7a8189;
}

.cal_main .cal_mob_value {
font-size:calc(.73 * var(--cal_font));
      font-weight:650;
      color:#30343b;
      overflow:hidden;
      display:-webkit-box;
      -webkit-line-clamp:2;
      -webkit-box-orient:vertical;
}

.cal_main .cal_mob_stage .cal_mob_value {
color:var(--cal_lic-red-dark);
}

.cal_main .cal_mob_proc[hidden],
.cal_main .cal_mob_stage[hidden] {
display:none !important;
}

.cal_main .cal_panel {
margin:12px auto 12px;
      padding:13px;
      border-radius:12px;
}

.cal_main .cal_toolbar {
grid-template-columns:1fr !important;
      gap:9px;
      margin:12px auto;
}

.cal_main .cal_field label {
font-size:calc(.66 * var(--cal_font));
}

.cal_main input[type="search"] {
min-height:46px;
      font-size:calc(.92 * var(--cal_font));
      padding:12px 13px;
}

.cal_main .cal_actions {
width:100%;
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:8px;
}

.cal_main .cal_btn {
min-height:44px;
      width:100%;
      justify-content:center;
      border-radius:10px;
      font-size:calc(.8 * var(--cal_font));
}

.cal_main .cal_legend {
gap:7px 10px;
      margin:8px 0 13px;
      font-size:calc(.72 * var(--cal_font));
      line-height:1.25;
}

.cal_main .cal_swatch {
width:11px;
      height:11px;
}

.cal_main .cal_heading {
margin:15px 0 9px;
      align-items:flex-start;
}

.cal_main .cal_heading h2 {
font-size:calc(1 * var(--cal_font));
}

.cal_main .cal_heading p {
font-size:calc(.76 * var(--cal_font));
      margin-top:2px;
}

.cal_main .cal_cards {
gap:14px;
      margin-bottom:24px;
}

.cal_main details.cal_proc {
border-radius:14px;
      border-left-width:6px !important;
      overflow:hidden;
}

.cal_main details.cal_proc:not([open]) summary {
background:#ffffff;
}

.cal_main details.cal_proc[open] {
box-shadow:0 10px 24px rgba(0,0,0,.12);
      transform:translateY(-1px);
}

.cal_main details.cal_proc[open] summary {
background:linear-gradient(90deg, #fbf4f5, #fff 72%);
      border-bottom:1px solid #e6cfd2;
}

.cal_main summary {
grid-template-columns:28px minmax(0,1fr) !important;
      gap:8px;
      padding:12px 11px;
      align-items:start;
}

.cal_main summary .cal_summary_side {
grid-column:1 / -1;
      width:100%;
      display:grid;
      grid-template-columns:minmax(0,1fr) auto;
      align-items:center;
      gap:8px;
      margin-top:2px;
}

.cal_main .cal_select_box {
padding-top:1px;
}

.cal_main .cal_select_box input {
width:18px;
      height:18px;
}

.cal_main .cal_p_title {
font-size:calc(.91 * var(--cal_font));
      line-height:1.28;
}

.cal_main details.cal_proc:not([open]) .cal_p_title {
color:#2e333a;
}

.cal_main .cal_p_meta {
margin-top:6px;
      gap:5px;
}

.cal_main .cal_pill {
padding:5px 7px;
      font-size:calc(.68 * var(--cal_font));
}

.cal_main .cal_period {
min-width:0;
      align-items:flex-start !important;
}

.cal_main .cal_date_label {
font-size:calc(.59 * var(--cal_font));
}

.cal_main .cal_range {
max-width:100%;
      padding:6px 8px;
      font-size:calc(.68 * var(--cal_font));
}

.cal_main .cal_toggle_cue {
min-height:42px;
      padding:7px 8px 7px 10px;
      font-size:calc(.72 * var(--cal_font));
}

.cal_main .cal_toggle_cue .cal_arrow_badge {
width:25px;
      height:25px;
      flex-basis:25px;
}

.process-.cal_main {
padding:10px;
}

.cal_main .cal_expanded {
margin-bottom:8px;
      padding:8px 9px;
      font-size:calc(.73 * var(--cal_font));
      line-height:1.32;
}

.cal_main .cal_intro {
padding:8px 9px;
      margin-bottom:9px;
      font-size:calc(.72 * var(--cal_font));
      line-height:1.35;
}

.cal_main .cal_route {
gap:9px;
}

.cal_main .cal_step {
grid-template-columns:1fr !important;
      gap:8px;
      padding:11px 11px 12px;
      border-radius:10px;
}

.cal_main .cal_who {
display:flex;
      align-items:center;
      justify-content:space-between;
      gap:8px;
      font-size:calc(.8 * var(--cal_font));
}

.cal_main .cal_who small {
display:none;
}

.cal_main .cal_step_side {
text-align:left !important;
      display:grid;
      grid-template-columns:auto minmax(0,1fr);
      grid-template-areas:
        "status date"
        "calendar calendar";
      align-items:center;
      gap:6px 8px;
}

.cal_main .cal_step_status {
grid-area:status;
      margin:0;
      padding:6px 9px;
      font-size:calc(.71 * var(--cal_font));
      justify-self:start;
}

.cal_main .cal_date_box {
grid-area:date;
      margin:0;
      min-width:0;
}

.cal_main .cal_stage_label {
font-size:calc(.59 * var(--cal_font));
      margin-bottom:2px;
}

.cal_main .cal_date_value {
font-size:calc(.76 * var(--cal_font));
}

.cal_main .cal_gcal {
grid-area:calendar;
      margin-top:2px;
      min-height:40px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      border:1px solid #d9dde2;
      border-radius:9px;
      background:#fff;
      font-size:calc(.74 * var(--cal_font));
}

.cal_main .cal_step h3 {
font-size:calc(.88 * var(--cal_font));
      margin-bottom:4px;
}

.cal_main .cal_step p {
font-size:calc(.81 * var(--cal_font));
      line-height:1.42;
}

.cal_main .cal_detail_grid,
.cal_main .cal_detail_grid_two {
grid-template-columns:1fr !important;
      gap:6px;
      margin-top:8px;
}

.cal_main .cal_mini {
font-size:calc(.75 * var(--cal_font));
      padding:8px;
}

.cal_main .cal_note {
font-size:calc(.75 * var(--cal_font));
      padding:8px 9px;
      margin-top:8px;
}
}

@media (max-width:420px) {
.cal_main .cal_actions {
grid-template-columns:1fr;
}

.cal_main summary .cal_summary_side {
grid-template-columns:1fr;
}

.cal_main .cal_toggle_cue {
justify-self:start;
}

.cal_main .cal_step_side {
grid-template-columns:1fr;
      grid-template-areas:
        "status"
        "date"
        "calendar";
}
}

@media (max-width:920px) {
.cal_main .cal_period {
align-items:flex-start;
}

.cal_main .cal_summary_side {
flex-direction:column;
      align-items:flex-end;
      gap:6px;
}

.cal_main details.cal_proc[open] .cal_summary_side {
align-items:flex-start;
}

.cal_main .cal_intro {
align-items:flex-start;
      flex-direction:column;
}
}

.cal_main .cal_empty {
display:none;
    text-align:center;
    color:var(--cal_muted);
    background:#fff;
    border:1px dashed #cfd2d7;
    border-radius:12px;
    padding:28px;
}

.cal_main footer {
padding:12px 0 34px;
    color:#72767d;
    font-size:calc(.8 * var(--cal_font));
}

@media (max-width:920px) {
.cal_main .cal_toolbar {
grid-template-columns:1fr
}

.cal_main .cal_actions {
justify-content:flex-start
}

.cal_main .cal_step {
grid-template-columns:1fr
}

.cal_main .cal_step_side {
text-align:left
}

.cal_main .cal_detail_grid,
.cal_main .cal_detail_grid_two {
grid-template-columns:1fr
}

.cal_main .cal_range {
justify-self:start
}
}

@media print {
.cal_main {
background:#fff;
      font-size:9.6pt;
      line-height:1.32;
}

.cal_main {
width:100%;
      max-width:none;
}

.cal_main .cal_toolbar,
.cal_main .cal_legend,
.cal_main .cal_mob,
.cal_main footer {
display:none !important;
}

.cal_main .cal_panel {
box-shadow:none !important;
      border:1px solid #bbb !important;
      padding:3mm !important;
      margin:0 0 3mm !important;
      border-radius:4px !important;
}

.cal_main .cal_heading {
margin:3mm 0 2mm !important;
}

.cal_main .cal_heading h2 {
font-size:11pt !important;
}

.cal_main .cal_heading p {
display:none !important;
}

.cal_main details.cal_proc {
display:block !important;
      box-shadow:none !important;
      break-inside:auto !important;
      page-break-inside:auto !important;
      margin:0 0 2.5mm !important;
      border:1px solid #bbb !important;
      border-left:2px solid #777 !important;
      border-radius:3px !important;
      overflow:visible !important;
}



.cal_main summary {
padding:2.3mm 3mm !important;
      grid-template-columns:1fr auto;
      border-bottom:1px solid #aaa;
      background:#f8f8f8 !important;
      break-after:avoid-page !important;
      page-break-after:avoid !important;
}

.cal_main .cal_p_title {
font-size:9.5pt !important;
}

.cal_main .cal_p_meta {
margin-top:1mm !important;
      gap:1.5mm !important;
}

.cal_main .cal_pill {
padding:1mm 2mm !important;
      font-size:7.2pt !important;
}

.cal_main .cal_period,
.cal_main .cal_summary_side {
gap:1mm !important;
}

.cal_main .cal_date_label {
font-size:6.5pt !important;
}

.cal_main .cal_range {
padding:1.2mm 2.5mm !important;
      font-size:7.3pt !important;
      border:1px solid #999 !important;
      background:#fff !important;
      color:#111 !important;
}

.cal_main .cal_range .cal_tiny_dot {
background:#111 !important;
}

.cal_main .cal_select_box,
.cal_main .cal_gcal,
.cal_main .cal_toggle_cue,
.cal_main .cal_expanded,
.cal_main .cal_intro {
display:none !important;
}

.process-.cal_main {
display:block !important;
      padding:2mm !important;
      background:#fff !important;
      box-shadow:none !important;
      break-inside:auto !important;
      page-break-inside:auto !important;
}

.cal_main .cal_route {
display:block !important;
}

.cal_main .cal_step {
display:grid !important;
      grid-template-columns:26mm minmax(0,1fr) 31mm !important;
      gap:2.5mm !important;
      padding:2.3mm !important;
      margin:0 0 2mm !important;
      break-inside:avoid-page !important;
      page-break-inside:avoid !important;
      box-shadow:none !important;
      border:1px solid #ccc !important;
      background:#fff !important;
      border-radius:2px !important;
}

.cal_main .cal_step:last-child {
margin-bottom:0 !important;
}

.cal_main .cal_who {
font-size:8pt !important;
}

.cal_main .cal_who small {
margin-top:1mm !important;
      font-size:6.8pt !important;
}

.cal_main .cal_step h3 {
margin:0 0 1mm !important;
      font-size:8.8pt !important;
}

.cal_main .cal_step p {
font-size:8pt !important;
      line-height:1.3 !important;
}

.cal_main .cal_detail_grid,
.cal_main .cal_detail_grid_two {
margin-top:1.5mm !important;
      gap:1.5mm !important;
      grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}

.cal_main .cal_mini {
padding:1.5mm 2mm !important;
      font-size:7.2pt !important;
      line-height:1.25 !important;
      background:#fafafa !important;
}

.cal_main .cal_note {
margin-top:1.5mm !important;
      padding:1.5mm 2mm !important;
      font-size:7.2pt !important;
      line-height:1.25 !important;
      background:#fff !important;
      border-left:2px solid #777 !important;
}

.cal_main .cal_step_side {
text-align:right !important;
}

.cal_main .cal_step_status {
padding:1mm 2mm !important;
      font-size:7pt !important;
      border:1px solid #999 !important;
      background:#fff !important;
      color:#111 !important;
}

.cal_main .cal_status_dot {
width:6px !important;
      height:6px !important;
      box-shadow:none !important;
      background:#555 !important;
}

.cal_main .cal_date_box {
margin-top:1.5mm !important;
}

.cal_main .cal_stage_label {
font-size:6.5pt !important;
      margin-bottom:.5mm !important;
}

.cal_main .cal_date_value {
font-size:7.7pt !important;
}

.cal_main h1,
.cal_main h2,
.cal_main h3 {
break-after:avoid-page;
      page-break-after:avoid;
}

.cal_main p {
orphans:2;
      widows:2;
}
}

.cal_main .cal_resources {
margin-top:11px;
    padding:11px 12px;
    border-radius:10px;
    background:#f4f9fa;
    border:1px solid #d2e6e9;
}

.cal_main .cal_res_title {
display:block;
    margin-bottom:7px;
    font-size:calc(.72 * var(--cal_font));
    font-weight:750;
    text-transform:uppercase;
    letter-spacing:.035em;
    color:#39717a;
}

.cal_main .cal_res_list {
display:flex;
    flex-wrap:wrap;
    gap:7px;
}

.cal_main .cal_res_link {
display:inline-flex;
    align-items:center;
    gap:6px;
    padding:7px 9px;
    border-radius:8px;
    background:#fff;
    border:1px solid #cbdfe3;
    color:#086c78;
    text-decoration:none;
    font-size:calc(.76 * var(--cal_font));
    font-weight:650;
}

.cal_main .cal_res_link:hover {
text-decoration:underline;
    border-color:#8dc4cb;
}

.cal_main .cal_end {
display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    margin-top:13px;
    padding:9px 11px;
    border-radius:10px;
    border:1px dashed #d6b4ba;
    background:#fff7f8;
    color:#7C1830;
    font-size:calc(.78 * var(--cal_font));
    font-weight:700;
}

.cal_main details.cal_proc.cal_next {
position:relative;
    margin-top:25px;
}

.cal_main details.cal_proc.cal_next::before {
content:"Siguiente procedimiento";
    position:absolute;
    top:-20px;
    left:12px;
    z-index:2;
    padding:3px 8px;
    border-radius:999px;
    background:#59626d;
    color:#fff;
    font-size:calc(.62 * var(--cal_font));
    font-weight:700;
    letter-spacing:.035em;
    text-transform:uppercase;
}

.cal_main[data-audience="estudiantado"] .cal_heading h2 {
color:#B92249;
}

.cal_main[data-audience="unidad"] .cal_heading h2 {
color:#D76A18;
}

@media (max-width:700px) {
.cal_main .cal_res_list {
display:grid;
      grid-template-columns:1fr;
}

.cal_main .cal_res_link {
justify-content:center;
      min-height:39px;
}

.cal_main details.cal_proc.cal_next {
margin-top:27px;
}

.cal_main details.cal_proc.cal_next::before {
top:-21px;
      font-size:calc(.59 * var(--cal_font));
}
}

@media print {
.cal_main details.cal_proc.cal_next::before {
display:none !important;
}

.cal_main .cal_end {
border-color:#bbb;
      background:#fff;
      color:#333;
}
}

.cal_main {
--cal_audience-accent:#D6335C; --cal_audience-accent-dark:#A91F46;
}

.cal_main .cal_heading h2 {
color:var(--cal_audience-accent-dark) !important;
}

.cal_main .cal_select_box input {
accent-color:var(--cal_audience-accent);
}

.cal_main details.cal_proc[open] .cal_toggle_cue {
background:var(--cal_audience-accent-dark);
    border-color:var(--cal_audience-accent-dark);
}

.cal_main .cal_note {
border-left-color:var(--cal_audience-accent);
}

.cal_main .cal_gcal {
color:var(--cal_audience-accent-dark);
}

.cal_main .cal_range {
font-size:calc(.90 * var(--cal_font));
    font-weight:750;
    padding:9px 13px;
    gap:9px;
    box-shadow:0 2px 7px rgba(0,0,0,.07);
}

.cal_main .cal_range .cal_tiny_dot {
width:10px;
    height:10px;
}

.cal_main .cal_date_label {
font-size:calc(.72 * var(--cal_font));
    font-weight:700;
    letter-spacing:.045em;
}

.cal_main .cal_date_box {
margin-top:5px;
    padding:8px 10px;
    border-radius:9px;
    border:1px solid #dde2e7;
    background:#f7f8fa;
}

.cal_main .cal_step.cal_expired .cal_date_box {
background:#FFF0F3;
    border-color:#F4BEC9;
}

.cal_main .cal_step.cal_active .cal_date_box {
background:#FFF4C9;
    border-color:#EFCB55;
}

.cal_main .cal_step.cal_upcoming .cal_date_box {
background:#E7F9EC;
    border-color:#9ADBAD;
}

.cal_main .cal_stage_label {
font-size:calc(.70 * var(--cal_font));
    font-weight:700;
    margin-bottom:4px;
}

.cal_main .cal_date_value {
font-size:calc(1 * var(--cal_font));
    font-weight:750;
    line-height:1.25;
}

@media (max-width:700px) {
.cal_main .cal_date_label {
font-size:calc(.64 * var(--cal_font));
}

.cal_main .cal_range {
padding:7px 10px;
      font-size:calc(.79 * var(--cal_font));
}

.cal_main .cal_date_box {
padding:7px 8px;
      border-radius:8px;
}

.cal_main .cal_stage_label {
font-size:calc(.61 * var(--cal_font));
      margin-bottom:2px;
}

.cal_main .cal_date_value {
font-size:calc(.86 * var(--cal_font));
      font-weight:750;
}
}

.cal_main .cal_sel_guide {
min-height:44px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    padding:8px 11px;
    border:1px solid #d9dde2;
    border-radius:10px;
    background:#fff;
    color:#30353b;
    font-size:calc(.80 * var(--cal_font));
    font-weight:600;
    white-space:nowrap;
}

.cal_main .cal_sel_check {
width:18px;
    height:18px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1.5px solid #9aa1a9;
    border-radius:4px;
    color:#087F8C;
    font-size:calc(.72 * var(--cal_font));
    font-weight:800;
    background:#fff;
}

@media (max-width:700px) {
.cal_main .cal_sel_guide {
width:100%;
      justify-content:flex-start;
      white-space:normal;
      font-size:calc(.75 * var(--cal_font));
      min-height:42px;
}
}

.cal_main .cal_sel_below {
margin-top:8px;
    width:max-content;
    max-width:100%;
    min-height:0;
    padding:7px 10px;
    justify-content:flex-start;
    background:#f8fafb;
    border-color:#dfe4e8;
    font-size:calc(.76 * var(--cal_font));
    font-weight:600;
    color:#4a5159;
}

.cal_main .cal_sel_below .cal_sel_check {
width:17px;
    height:17px;
    flex:0 0 17px;
    font-size:calc(.66 * var(--cal_font));
}

@media (max-width:700px) {
.cal_main .cal_sel_below {
width:100%;
      margin-top:7px;
      padding:7px 9px;
      font-size:calc(.72 * var(--cal_font));
      line-height:1.35;
}
}

.cal_main .cal_guide {
margin:14px 0 12px;
}

.cal_main .cal_guide details {
border:1px solid #dfe3e7;
    border-radius:14px;
    background:#fff;
    box-shadow:0 5px 18px rgba(0,0,0,.045);
    overflow:hidden;
}

.cal_main .cal_guide summary {
list-style:none;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:13px 15px;
}

.cal_main .cal_guide summary::-webkit-details-marker {
display:none;
}

.cal_main .cal_guide summary strong {
font-size:calc(.94 * var(--cal_font));
    color:#2b3036;
}

.cal_main .cal_guide_btn {
display:inline-flex;
    align-items:center;
    gap:8px;
    padding:7px 10px;
    border-radius:999px;
    background:#f4f6f8;
    border:1px solid #d9dee3;
    color:#4e555d;
    font-size:calc(.74 * var(--cal_font));
    font-weight:700;
    white-space:nowrap;
}

.cal_main .cal_guide_open {
display:none;
}

.cal_main .cal_guide details[open] .cal_guide_open {
display:inline;
}

.cal_main .cal_guide details[open] .cal_guide_closed {
display:none;
}

.cal_main .cal_guide_arrow {
width:8px;
    height:8px;
    border-right:2px solid currentColor;
    border-bottom:2px solid currentColor;
    transform:rotate(45deg) translateY(-1px);
    transition:transform .18s ease;
}

.cal_main .cal_guide details[open] .cal_guide_arrow {
transform:rotate(225deg) translateY(-1px);
}

.nav-guide-.cal_main {
padding:14px 15px 16px;
    border-top:1px solid #edf0f2;
    background:linear-gradient(180deg,#fbfcfd 0%,#fff 100%);
}

.cal_main .cal_guide_intro {
margin:0 0 13px;
    color:#59616a;
    font-size:calc(.82 * var(--cal_font));
    line-height:1.5;
}

.cal_main .cal_guide_grid {
display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
}

.cal_main .cal_guide_item {
display:grid;
    grid-template-columns:28px minmax(0,1fr);
    gap:9px;
    align-items:start;
    padding:10px;
    border:1px solid #e4e8eb;
    border-radius:10px;
    background:#fff;
}

.cal_main .cal_guide_num {
width:26px;
    height:26px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:var(--cal_audience-accent, #B52A43);
    color:#fff;
    font-size:calc(.72 * var(--cal_font));
    font-weight:800;
}

.cal_main .cal_guide_item strong {
display:block;
    margin-bottom:2px;
    font-size:calc(.79 * var(--cal_font));
    color:#2d3238;
}

.cal_main .cal_guide_item p {
margin:0;
    color:#66707a;
    font-size:calc(.74 * var(--cal_font));
    line-height:1.38;
}

.cal_main .cal_guide_note {
margin-top:11px;
    padding:9px 11px;
    border-radius:9px;
    background:#f5f7f9;
    color:#59616a;
    font-size:calc(.75 * var(--cal_font));
    line-height:1.42;
    border-left:4px solid var(--cal_audience-accent, #B52A43);
}

@media (max-width:700px) {
.cal_main .cal_guide {
margin:10px 0;
}

.cal_main .cal_guide summary {
align-items:flex-start;
      padding:11px 12px;
}

.cal_main .cal_guide summary strong {
font-size:calc(.86 * var(--cal_font));
}

.cal_main .cal_guide_btn {
padding:6px 8px;
      font-size:calc(.68 * var(--cal_font));
}

.cal_main .cal_guide_grid {
grid-template-columns:1fr;
      gap:7px;
}

.nav-guide-.cal_main {
padding:11px 12px 13px;
}

.cal_main .cal_guide_intro {
font-size:calc(.76 * var(--cal_font));
}

.cal_main .cal_guide_item {
grid-template-columns:25px minmax(0,1fr);
      padding:9px;
}

.cal_main .cal_guide_num {
width:23px;
      height:23px;
      font-size:calc(.66 * var(--cal_font));
}
}

.cal_main .cal_panel_single {
padding:0 !important;
    overflow:hidden;
}

.cal_main .cal_ctx {
display:grid;
    grid-template-columns:minmax(230px,.85fr) minmax(360px,1.65fr);
    align-items:stretch;
}

.cal_main .cal_ctx_main {
display:flex;
    align-items:center;
    gap:9px;
    flex-wrap:wrap;
    padding:14px 16px;
    background:#fff7f9;
    border-left:5px solid var(--cal_estudiantado);
}

.cal_main .cal_ctx_label {
width:100%;
    margin-bottom:-3px;
    font-size:calc(.66 * var(--cal_font));
    text-transform:uppercase;
    letter-spacing:.055em;
    color:#777f88;
    font-weight:750;
}

.cal_main .cal_ctx_title {
font-size:calc(1 * var(--cal_font));
    color:#9e2148;
    line-height:1.2;
}

.cal_main .cal_ctx_period {
display:inline-flex;
    align-items:center;
    padding:4px 8px;
    border-radius:999px;
    background:#fde7ee;
    color:#9e2148;
    font-size:calc(.72 * var(--cal_font));
    font-weight:700;
}

.cal_main .cal_ctx_alert {
display:flex;
    align-items:center;
    gap:10px;
    padding:12px 15px;
    border-left:1px solid #efd7a0;
    background:#fff8e7;
    color:#684700;
    font-size:calc(.79 * var(--cal_font));
    line-height:1.4;
}

.cal_main .cal_ctx_icon {
width:24px;
    height:24px;
    flex:0 0 24px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:#f3a712;
    color:#fff;
    font-size:calc(.86 * var(--cal_font));
    font-weight:900;
}

@media (max-width:700px) {
.cal_main .cal_ctx {
grid-template-columns:1fr;
}

.cal_main .cal_ctx_main {
padding:11px 12px;
      border-left-width:4px;
}

.cal_main .cal_ctx_alert {
align-items:flex-start;
      padding:9px 11px;
      border-left:0;
      border-top:1px solid #efd7a0;
      font-size:calc(.74 * var(--cal_font));
}
}

@media print {
.cal_main .cal_ctx {
grid-template-columns:1fr 2fr !important;
}

.cal_main .cal_ctx_main,
.cal_main .cal_ctx_alert {
background:#fff !important;
      box-shadow:none !important;
}
}
/* Component defaults and accessibility. Institutional styles remain outside this root. */
.cal_main { width:100%; max-width:1180px; margin:0 auto; font-size:16px; line-height:1.5; background:#fff; }
.cal_main [hidden] { display:none !important; }
.cal_main .cal_content { display:block; }
.cal_main .cal_heading h2, .cal_main .cal_step h3 { text-align:left; font-family:inherit; }
.cal_main .cal_heading h2 { font-weight:700; font-size:1.2em; }
.cal_main .cal_step h3 { font-weight:700; font-size:1em; margin:0 0 8px; }
.cal_main .cal_field { min-width:0; }
.cal_main .cal_field input { width:100%; min-height:48px; margin:0; }
.cal_main .cal_btn { font:700 .9em/1.3 Helvetica,Arial,sans-serif; text-transform:none; margin:0; min-height:48px; }
.cal_main .cal_btn:disabled { opacity:.55; cursor:not-allowed; }
.cal_main :is(a,button,input,summary):focus-visible { outline:3px solid #006b80; outline-offset:3px; }
.cal_main .cal_message { padding:14px; border:1px solid #ddd; border-radius:10px; }
.cal_main .cal_sel_guide { font-size:.85em; }
.cal_main .cal_guide, .cal_main .cal_panel { margin-top:16px; }
.cal_main .cal_cards { gap:18px; }
.cal_main .cal_proc summary { text-align:left; }
.cal_main .cal_frame { position:fixed; width:1px; height:1px; bottom:0; left:0; border:0; opacity:0; pointer-events:none; }
.cal_main .cal_step, .cal_main .cal_mini, .cal_main .cal_res_link { overflow-wrap:anywhere; }
@media(max-width:700px) {
 .cal_main { width:100%; }
 .cal_main .cal_mob { position:sticky; top:0; }
 .cal_main .cal_toolbar { grid-template-columns:1fr; }
 .cal_main .cal_actions, .cal_main .cal_btn { width:100%; }
 .cal_main .cal_summary_side { min-width:0; }
}
@media(prefers-reduced-motion:reduce) {
 .cal_main *, .cal_main *::before, .cal_main *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}
/* This document is loaded only into the isolated print frame. */
.cal_main.cal_print { width:100%; max-width:none; font-size:11pt; color:#111; }
.cal_main.cal_print .cal_proc { display:block !important; box-shadow:none; margin:0 0 4mm; break-inside:auto; }
.cal_main.cal_print .cal_proc > summary { grid-template-columns:1fr auto; break-after:avoid; padding:3mm; }
.cal_main.cal_print .cal_proc_body { display:block !important; padding:3mm; }
.cal_main.cal_print .cal_step { grid-template-columns:90px minmax(0,1fr); padding:3mm; break-inside:avoid; box-shadow:none; }
.cal_main.cal_print .cal_step_side { grid-column:2; display:flex; flex-wrap:wrap; gap:8px; align-items:center; text-align:left; }
.cal_main.cal_print .cal_step h3 { font-size:11pt; }
.cal_main.cal_print .cal_step p, .cal_main.cal_print .cal_mini, .cal_main.cal_print .cal_note { font-size:10pt; }
.cal_main.cal_print .cal_ctx { grid-template-columns:1fr; }
.cal_main.cal_print .cal_intro, .cal_main.cal_print .cal_expanded, .cal_main.cal_print .cal_gcal, .cal_main.cal_print .cal_select_box, .cal_main.cal_print .cal_toggle_cue { display:none !important; }
.cal_main.cal_print .cal_date_box { padding:2mm; }
.cal_main.cal_print .cal_detail_grid { grid-template-columns:1fr 1fr; }
.cal_main.cal_print .cal_res_list { display:block; }
.cal_main.cal_print .cal_res_link { display:block; color:#111; }
@media print { .cal_main .cal_guide, .cal_main .cal_sel_guide, .cal_main .cal_frame { display:none !important; } }

.cal_main { --cal_font:16px; }

@media(max-width:700px) { .cal_main .cal_mob { top:56px; } }
.cal_main .cal_field label { position:static; transform:none; cursor:text; }

@media(max-width:700px) { .cal_main .cal_mob { top:56px; } }
.cal_main .cal_field label { position:static; transform:none; cursor:text; }

/* Keep the mobile context attached to the viewport inside the institutional layout. */
.cal_main { overflow:visible; }
@media(max-width:700px) { .cal_main .cal_mob { margin:0 0 10px; } }

.cal_main .cal_field input[type='search'] { box-sizing:border-box; }

/* Calendar heading: scoped independently because it precedes .cal_main. */
.cal_head {
  box-sizing:border-box;
  width:100%;
  max-width:1180px;
  margin:16px auto 0;
  padding:24px clamp(20px, 4vw, 48px);
  border-radius:10px;
  background:linear-gradient(105deg, #d52e5b 0%, #a31d42 100%);
  color:#fff;
  font-family:Helvetica, Arial, sans-serif;
  text-align:left;
}
.cal_head .cal_head-dir {
  margin:0 0 8px;
  color:#fff;
  font-size:14px;
  font-weight:500;
  line-height:1.4;
  letter-spacing:.12em;
}
.cal_head h1 {
  margin:0;
  padding:0;
  color:#fff;
  font-family:inherit;
  font-size:28px;
  font-weight:700;
  line-height:1.15;
  text-align:left;
  text-transform:none;
  overflow-wrap:break-word;
}
.cal_head .cal_head-subtitle {
  margin:16px 0 0;
  padding:0;
  color:#fff;
  font-family:inherit;
  font-size:16px;
  font-weight:400;
  line-height:1.5;
  text-align:left;
}
@media(max-width:700px) {
  .cal_head { padding:20px; border-radius:8px; }
  .cal_head .cal_head-dir { font-size:12px; letter-spacing:.08em; }
  .cal_head h1 { font-size:24px; line-height:1.2; }
  .cal_head .cal_head-subtitle { font-size:15px; margin-top:12px; }
}

@media print {
  .cal_head {
    max-width:none;
    margin:0 0 4mm;
    padding:4mm 5mm;
    border-radius:4px;
    break-inside:avoid;
    break-after:avoid;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  .cal_head .cal_head-dir { font-size:9pt; margin-bottom:2mm; }
  .cal_head h1 { font-size:18pt; line-height:1.2; }
  .cal_head .cal_head-subtitle { font-size:10pt; margin-top:2mm; }
}
.cal_head-unidad{
  box-sizing:border-box;
  width:100%;
  max-width:1180px;
  margin:16px auto 0;
  padding:24px clamp(20px, 4vw, 48px);
  border-radius:10px;
  background:linear-gradient(105deg, #7f7f7f 0%, #7f7f7f 100%)!important;
  color:#fff;
  font-family:Helvetica, Arial, sans-serif;
  text-align:left;
}
.cal_head-unidad .cal_head-dir {
  margin:0 0 8px;
  color:#fff;
  font-size:14px;
  font-weight:500;
  line-height:1.4;
  letter-spacing:.12em;
}
.cal_head-unidad h1 {
  margin:0;
  padding:0;
  color:#fff;
  font-family:inherit;
  font-size:28px;
  font-weight:700;
  line-height:1.15;
  text-align:left;
  text-transform:none;
  overflow-wrap:break-word;
}
.cal_head-unidad .cal_head-subtitle {
  margin:16px 0 0;
  padding:0;
  color:#fff;
  font-family:inherit;
  font-size:16px;
  font-weight:400;
  line-height:1.5;
  text-align:left;
}
@media(max-width:700px) {
  .cal_head-unidad { padding:20px; border-radius:8px; }
  .cal_head-unidad .cal_head-dir { font-size:12px; letter-spacing:.08em; }
  .cal_head-unidad h1 { font-size:24px; line-height:1.2; }
  .cal_head-unidad .cal_head-subtitle { font-size:15px; margin-top:12px; }
}

@media print {
  .cal_head-unidad {
    max-width:none;
    margin:0 0 4mm;
    padding:4mm 5mm;
    border-radius:4px;
    break-inside:avoid;
    break-after:avoid;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  .cal_head-unidad .cal_head-dir { font-size:9pt; margin-bottom:2mm; }
  .cal_head-unidad h1 { font-size:18pt; line-height:1.2; }
  .cal_head-unidad .cal_head-subtitle { font-size:10pt; margin-top:2mm; }
}

/* Clear search: Font Awesome 6.7.0 is already loaded by the institutional stylesheet. */
.cal_main .cal_searchbox {
  display:grid;
  grid-template-columns:52px minmax(0,1fr);
  align-items:stretch;
  gap:8px;
}
.cal_main .cal_clear {
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:52px;
  min-height:48px;
  margin:0;
  padding:10px;
  border:1px solid #d6d9de;
  border-radius:8px;
  background:#fff;
  color:#a31d42;
  font-size:18px;
  line-height:1;
  cursor:pointer;
  box-shadow:none;
}
.cal_main .cal_clear:hover:not(:disabled) {
  background:#fff0f3;
  border-color:#a31d42;
}
.cal_main .cal_clear:disabled {
  background:#f5f6f8;
  color:#9299a3;
  opacity:.65;
  cursor:default;
}
@media(max-width:700px) {
  .cal_main .cal_searchbox { grid-template-columns:46px minmax(0,1fr); }
  .cal_main .cal_clear { width:46px; font-size:17px; }
}

/* Margen contenido del procedimiento */
.cal_main .cal_proc_body {
    padding: 20px;
    box-sizing: border-box;
}

/* Evitar márgenes duplicados en las actividades */
.cal_main .cal_step {
    margin-left: 0;
    margin-right: 0;
}

/* Móviles */
@media (max-width: 700px) {
    .cal_main .cal_proc_body {
        padding: 10px;
    }
}

.cal_main .cal_step p,
.cal_main .cal_step .cal_mini,
.cal_main .cal_step .cal_note {
    text-align: justify;
    text-justify: inter-word;
    hyphens: auto;
}
/* Respetar saltos de línea del JSON */
.cal_main .cal_step p,
.cal_main .cal_step .cal_mini,
.cal_main .cal_step .cal_note {
    white-space: pre-line;
}
/* Stages without dates: preserve actor accents, omit temporal status colors. */
.cal_main details.cal_proc.cal_undated { border-left:8px solid #8a8f98; }
.cal_main .cal_step.cal_undated { background:#fff; border-color:#e4e6ea; }
@media(min-width:921px) {
  .cal_main .cal_step.cal_undated { grid-template-columns:168px minmax(0,1fr); }
}
@media print {
  .cal_main .cal_step.cal_undated { grid-template-columns:24mm minmax(0,1fr) !important; }
}
/* Ocultar aviso */
.cal_main .cal_ctx_alert[hidden] {
    display: none !important;
}

/* Permitir que el programa ocupe todo el ancho */
.cal_main.cal_program_full_width .cal_ctx {
    grid-template-columns: minmax(0, 1fr);
}
.cal_main.cal_program_full_width .cal_ctx_main {
    width: 100%;
    min-width: 0;
}
@media print {
    .cal_main.cal_program_full_width .cal_ctx {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}

/* Evitar restricciones de ancho en el título */
.cal_main.cal_program_full_width .cal_ctx_title {
    width: 100%;
    max-width: none;
}
