/* /Components/Administrativo/CdmAdministrativo.razor.rz.scp.css */
/* ────────────────────────────────────────────────────────────────────
   CdmAdministrativo — inicio de la prefectura (2026-10-11).
   Maqueta aprobada: diseno/home-administrativos/ v3 (version web).
   Mismo canon que CdmDirectivo: crema, container 1280, grid 1fr + 340px.
   ──────────────────────────────────────────────────────────────────── */

.ad-page[b-lyl3q50e8k] {
    background:
        radial-gradient(circle at 15% 10%, rgba(110, 198, 200, 0.06) 0%, transparent 45%),
        var(--bg);
    min-height: 100%;
}

.ad-container[b-lyl3q50e8k] {
    max-width: 1280px;
    margin: 0 auto;
    padding: 26px 28px 60px;
    font-family: var(--font-sans);
    color: var(--text-primary);
    display: flex;
    flex-direction: column;
    gap: 18px;
}

/* ── encabezado + busqueda ── */
.ad-top[b-lyl3q50e8k] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.ad-top-text[b-lyl3q50e8k] { min-width: 0; }

.ad-top h1[b-lyl3q50e8k] {
    font-family: var(--font-serif);
    font-size: 28px;
    font-weight: 600;
    letter-spacing: -0.3px;
    margin: 0;
    line-height: 1.15;
}

.ad-top p[b-lyl3q50e8k] {
    font-size: 13.5px;
    color: var(--text-muted);
    margin: 4px 0 0;
}

.ad-search[b-lyl3q50e8k] {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    width: 320px;
    max-width: 100%;
    background: #fff;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    padding: 0 12px;
    height: 42px;
    box-shadow: var(--shadow-sm);
}

.ad-search > .material-symbols-rounded[b-lyl3q50e8k] { color: var(--text-muted); font-size: 20px; }

.ad-search input[b-lyl3q50e8k] {
    border: 0;
    outline: 0;
    background: transparent;
    flex: 1;
    min-width: 0;
    font: inherit;
    font-size: 14px;
    color: var(--text-primary);
}

.ad-search:focus-within[b-lyl3q50e8k] { border-color: var(--brand-teal-dark); }

.ad-results[b-lyl3q50e8k] {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    padding: 6px;
    z-index: 20;
    max-height: 360px;
    overflow-y: auto;
}

.ad-res[b-lyl3q50e8k] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    width: 100%;
    text-align: left;
    background: transparent;
    border: 0;
    border-radius: var(--radius-md);
    padding: 9px 10px;
    font: inherit;
    font-size: 13px;
    color: var(--text-primary);
    cursor: pointer;
}

.ad-res:hover[b-lyl3q50e8k], .ad-res:focus-visible[b-lyl3q50e8k] { background: rgba(110, 198, 200, 0.12); outline: 0; }
.ad-res small[b-lyl3q50e8k] { color: var(--text-muted); font-size: 12px; white-space: nowrap; }
.ad-res-empty[b-lyl3q50e8k] { padding: 10px; font-size: 13px; color: var(--text-muted); }

/* ── turnos ── */
.ad-turnos[b-lyl3q50e8k] { display: flex; gap: 8px; flex-wrap: wrap; }

.ad-turno[b-lyl3q50e8k] {
    border: 1px solid var(--border-soft);
    background: #fff;
    color: var(--text-secondary);
    border-radius: 999px;
    padding: 6px 14px;
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

.ad-turno[aria-pressed="true"][b-lyl3q50e8k] {
    background: var(--brand-teal-deep);
    border-color: var(--brand-teal-deep);
    color: #fff;
}

/* ── grid ── */
.ad-grid[b-lyl3q50e8k] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: 20px;
    align-items: start;
}

.ad-col[b-lyl3q50e8k] { display: flex; flex-direction: column; gap: 18px; min-width: 0; }

.ad-card[b-lyl3q50e8k], .sk-card[b-lyl3q50e8k] {
    background: #fff;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
    padding: 18px 20px;
}

.ad-card-h[b-lyl3q50e8k] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 10px;
    margin-bottom: 10px;
}

.ad-card-h h3[b-lyl3q50e8k] {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    margin: 0;
}

.ad-card-h a[b-lyl3q50e8k] {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--brand-teal-deep);
    text-decoration: none;
    white-space: nowrap;
}

.ad-card-h a:hover[b-lyl3q50e8k] { text-decoration: underline; }

/* ── hero: entrada de hoy (carbon, como la maqueta) ── */
.ad-hero[b-lyl3q50e8k] {
    background: linear-gradient(145deg, #23272D 0%, #1A1C1F 100%);
    color: #fff;
    border-radius: var(--radius-2xl);
    padding: 22px 24px;
    box-shadow: var(--shadow-md);
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 16px 24px;
}

.ad-hero-main[b-lyl3q50e8k] { min-width: 0; }

.ad-lbl[b-lyl3q50e8k] {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: rgba(255, 255, 255, 0.66);
}

.ad-lbl > span:first-child[b-lyl3q50e8k] { display: inline-flex; align-items: center; gap: 8px; color: var(--brand-teal-primary); }
.ad-lbl > span:last-child[b-lyl3q50e8k] { text-transform: none; letter-spacing: 0; font-weight: 600; }

.ad-dot[b-lyl3q50e8k] {
    position: relative;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--brand-teal-primary);
}

.ad-dot[b-lyl3q50e8k]::after {
    content: "";
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    border: 2px solid var(--brand-teal-primary);
    opacity: 0.5;
    animation: ad-pulse-b-lyl3q50e8k 1.8s ease-out infinite;
}

.ad-dot.off[b-lyl3q50e8k] { background: rgba(255, 255, 255, 0.5); }
.ad-dot.off[b-lyl3q50e8k]::after { display: none; }

@keyframes ad-pulse-b-lyl3q50e8k {
    0% { transform: scale(0.6); opacity: 0.7; }
    100% { transform: scale(1.6); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) { .ad-dot[b-lyl3q50e8k]::after { animation: none; } }

.ad-big[b-lyl3q50e8k] { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-top: 10px; }

.ad-big b[b-lyl3q50e8k] {
    font-family: var(--font-serif);
    font-size: 46px;
    font-weight: 600;
    line-height: 1;
}

.ad-big span[b-lyl3q50e8k] { font-size: 14px; color: rgba(255, 255, 255, 0.75); }

.ad-hero-empty[b-lyl3q50e8k] { margin: 12px 0 0; font-size: 14px; color: rgba(255, 255, 255, 0.8); }

.ad-bar[b-lyl3q50e8k] {
    display: flex;
    height: 8px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
    overflow: hidden;
    margin-top: 14px;
}

.ad-bar .on[b-lyl3q50e8k] { background: var(--brand-teal-primary); }
.ad-bar .late[b-lyl3q50e8k] { background: #E0A54A; }

.ad-cta[b-lyl3q50e8k] { display: flex; flex-direction: column; gap: 8px; align-self: center; }

.ad-kpis[b-lyl3q50e8k] {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding-top: 14px;
}

.ad-kpis small[b-lyl3q50e8k] { display: block; font-size: 11.5px; color: rgba(255, 255, 255, 0.6); }
.ad-kpis b[b-lyl3q50e8k] { font-family: var(--font-serif); font-size: 22px; font-weight: 600; }
.ad-kpis b.soft[b-lyl3q50e8k] { font-family: var(--font-sans); font-size: 13px; font-weight: 600; color: rgba(255, 255, 255, 0.55); }

/* ── botones ── */
.ad-btn[b-lyl3q50e8k] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border-radius: var(--radius-lg);
    padding: 10px 16px;
    font: inherit;
    font-size: 13.5px;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
    border: 1px solid transparent;
    white-space: nowrap;
}

.ad-btn .material-symbols-rounded[b-lyl3q50e8k] { font-size: 19px; }
.ad-btn.pri[b-lyl3q50e8k] { background: var(--brand-teal-primary); color: #10393A; }
.ad-btn.pri:hover[b-lyl3q50e8k] { background: #82D0D2; }
.ad-btn.ghost[b-lyl3q50e8k] { background: rgba(255, 255, 255, 0.08); color: #fff; border-color: rgba(255, 255, 255, 0.2); }
.ad-btn.ghost:hover[b-lyl3q50e8k] { background: rgba(255, 255, 255, 0.14); }
.ad-btn.ol[b-lyl3q50e8k] { background: #fff; color: var(--brand-teal-deep); border-color: var(--border-soft); }
.ad-btn.ol:hover[b-lyl3q50e8k] { border-color: var(--brand-teal-dark); }
.ad-btn.sm[b-lyl3q50e8k] { padding: 6px 12px; font-size: 12.5px; }

/* ── atender ahora ── */
.ad-row[b-lyl3q50e8k] {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 12px;
    padding: 10px 0;
    border-top: 1px solid var(--border-soft);
}

.ad-row:first-of-type[b-lyl3q50e8k] { border-top: 0; }

.ad-ic[b-lyl3q50e8k] {
    width: 36px;
    height: 36px;
    border-radius: var(--radius-md);
    display: grid;
    place-items: center;
}

.ad-ic .material-symbols-rounded[b-lyl3q50e8k] { font-size: 20px; }
.ad-ic.bad[b-lyl3q50e8k] { background: var(--error-bg); color: var(--danger); }
.ad-ic.warn[b-lyl3q50e8k] { background: var(--warn-bg); color: var(--warning); }

.ad-row-t[b-lyl3q50e8k] { min-width: 0; }
.ad-row-t b[b-lyl3q50e8k] { display: block; font-size: 14px; }
.ad-row-t small[b-lyl3q50e8k] { display: block; font-size: 12.5px; color: var(--text-muted); }

.ad-num[b-lyl3q50e8k] { font-family: var(--font-serif); font-size: 22px; font-weight: 600; }

.ad-calm[b-lyl3q50e8k] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-size: 13.5px;
    color: var(--text-muted);
}

.ad-calm .material-symbols-rounded[b-lyl3q50e8k] { color: var(--brand-teal-dark); font-size: 20px; }

/* ── mapa por grupo ── */
.ad-heat[b-lyl3q50e8k] { display: flex; flex-direction: column; gap: 8px; }
.ad-heat-row[b-lyl3q50e8k] { display: grid; grid-template-columns: 44px minmax(0, 1fr); align-items: center; gap: 10px; }
.ad-heat-g[b-lyl3q50e8k] { font-size: 12.5px; font-weight: 700; color: var(--text-secondary); }
.ad-heat-cells[b-lyl3q50e8k] { display: flex; flex-wrap: wrap; gap: 6px; }

.ad-cell[b-lyl3q50e8k] {
    min-width: 64px;
    padding: 7px 10px;
    border-radius: var(--radius-md);
    font-size: 12px;
    color: var(--text-secondary);
    background: rgba(110, 198, 200, 0.14);
    display: inline-flex;
    gap: 6px;
    align-items: baseline;
}

.ad-cell b[b-lyl3q50e8k] { font-size: 13.5px; color: var(--text-primary); }
.ad-cell.s1[b-lyl3q50e8k] { background: var(--warn-bg); }
.ad-cell.s2[b-lyl3q50e8k] { background: var(--error-bg); }
.ad-cell.s2 b[b-lyl3q50e8k] { color: var(--danger); }

/* ── acciones ── */
.ad-tiles[b-lyl3q50e8k] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }

.ad-tile[b-lyl3q50e8k] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 12px;
    border-radius: var(--radius-lg);
    border: 1px solid var(--border-soft);
    background: #FBFAF7;
    color: var(--text-primary);
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
}

.ad-tile .material-symbols-rounded[b-lyl3q50e8k] { color: var(--brand-teal-deep); font-size: 22px; }
.ad-tile:hover[b-lyl3q50e8k] { border-color: var(--brand-teal-dark); }
.ad-tile.hl[b-lyl3q50e8k] { background: rgba(110, 198, 200, 0.16); border-color: rgba(110, 198, 200, 0.5); }

/* ── agenda ── */
.ad-agenda[b-lyl3q50e8k] { display: flex; flex-direction: column; }

.ad-ag[b-lyl3q50e8k] {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 10px;
    padding: 9px 0;
    border-top: 1px solid var(--border-soft);
}

.ad-ag:first-child[b-lyl3q50e8k] { border-top: 0; }
.ad-ag time[b-lyl3q50e8k] { font-weight: 700; font-size: 13px; color: var(--brand-teal-deep); }
.ad-ag b[b-lyl3q50e8k] { display: block; font-size: 13px; }
.ad-ag small[b-lyl3q50e8k] { display: block; font-size: 12px; color: var(--text-muted); }

/* ── error ── */
.ad-error[b-lyl3q50e8k] {
    background: #fff;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    padding: 32px 20px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.ad-error > .material-symbols-rounded[b-lyl3q50e8k] { font-size: 32px; color: var(--text-muted); }
.ad-error-title[b-lyl3q50e8k] { font-family: var(--font-serif); font-size: 18px; font-weight: 600; }
.ad-error-sub[b-lyl3q50e8k] { font-size: 13px; color: var(--text-muted); max-width: 420px; }

/* ── responsive ── */
@media (max-width: 1100px) {
    .ad-grid[b-lyl3q50e8k] { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 640px) {
    .ad-container[b-lyl3q50e8k] { padding: 16px 16px 48px; gap: 14px; }
    .ad-top h1[b-lyl3q50e8k] { font-size: 23px; }
    .ad-search[b-lyl3q50e8k] { width: 100%; }
    .ad-hero[b-lyl3q50e8k] { grid-template-columns: minmax(0, 1fr); padding: 18px; }
    .ad-cta[b-lyl3q50e8k] { flex-direction: row; flex-wrap: wrap; }
    .ad-cta .ad-btn[b-lyl3q50e8k] { flex: 1 1 auto; }
    .ad-kpis[b-lyl3q50e8k] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ad-row[b-lyl3q50e8k] { grid-template-columns: 36px minmax(0, 1fr) auto; }
    .ad-row .ad-btn[b-lyl3q50e8k] { grid-column: 2 / -1; justify-self: start; }
    .ad-big b[b-lyl3q50e8k] { font-size: 38px; }
}
/* /Components/BitacoraIndividualPanel.razor.rz.scp.css */
/* Overlay */
.bpanel-overlay[b-rsuibg0mbv] {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0,0,0,0.3);
    z-index: 99;
}

/* Panel */
.bpanel-container[b-rsuibg0mbv] {
    position: fixed;
    right: 0; top: 0; bottom: 0;
    width: 480px;
    background: white;
    border-left: 1px solid #E0E0E0;
    z-index: 100;
    overflow-y: auto;
    transform: translateX(100%);
    transition: transform 0.3s ease;
}
.bpanel-open[b-rsuibg0mbv] { transform: translateX(0); }

/* Header teal */
.bpanel-header[b-rsuibg0mbv] {
    background: #4BA8AA;
    padding: 14px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: sticky;
    top: 0;
    z-index: 2;
}
.bpanel-header-left[b-rsuibg0mbv] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    min-width: 0;
}
.bpanel-close[b-rsuibg0mbv] {
    width: 32px; height: 32px;
    border-radius: 8px;
    background: rgba(255,255,255,0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    transition: background 0.2s;
}
.bpanel-close:hover[b-rsuibg0mbv] { background: rgba(255,255,255,0.3); }
.bpanel-subtitle[b-rsuibg0mbv] { font-size: 10px; color: rgba(255,255,255,0.7); text-transform: uppercase; letter-spacing: 0.5px; }
.bpanel-name[b-rsuibg0mbv] {
    font-size: 14px;
    font-weight: 500;
    color: white;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 300px;
}

/* Content */
.bpanel-content[b-rsuibg0mbv] { padding: 16px; }

/* Loading */
.bpanel-loading[b-rsuibg0mbv] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 40px 20px;
    gap: 12px;
    color: #999;
    font-size: 13px;
}
.bpanel-spinner[b-rsuibg0mbv] {
    width: 28px; height: 28px;
    border: 3px solid #E8F4F8;
    border-top: 3px solid #4BA8AA;
    border-radius: 50%;
    animation: bspin-b-rsuibg0mbv 0.8s linear infinite;
}
@keyframes bspin-b-rsuibg0mbv { to { transform: rotate(360deg); } }

/* Sections */
.bpanel-section[b-rsuibg0mbv] { margin-bottom: 14px; }
.bpanel-section-title[b-rsuibg0mbv] {
    font-size: 11px;
    color: #999;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 8px;
}

/* Visibility card: ¿Quién lo ve? (Privada = morado candado, Pública = verde familia; maqueta de Bitácora) */
.bpanel-visibility-card[b-rsuibg0mbv] {
    background: #FAF7F1;
    border: 1px solid #E8E4DD;
    border-radius: 12px;
    padding: 12px;
    margin-bottom: 16px;
}
.visibility-head[b-rsuibg0mbv] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
}
.visibility-title[b-rsuibg0mbv] { font-size: 13px; font-weight: 700; color: #1A1C1F; }
.visibility-toggle[b-rsuibg0mbv] {
    display: inline-flex;
    background: #FFFFFF;
    border: 1px solid #D4CFC5;
    border-radius: 10px;
    padding: 2px;
    gap: 2px;
}
.visibility-option[b-rsuibg0mbv] {
    padding: 6px 12px;
    min-height: 34px;
    border-radius: 8px;
    font: 600 12.5px inherit;
    font-family: inherit;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    cursor: pointer;
    transition: background .15s, color .15s;
    color: #5C6068;
    background: transparent;
    border: 0;
}
.visibility-option:focus-visible[b-rsuibg0mbv] { outline: 3px solid var(--brand-teal-deep); outline-offset: 2px; }
.visibility-option.active-private[b-rsuibg0mbv] { background: #ECEAF6; color: #4B4396; }
.visibility-option.active-public[b-rsuibg0mbv] { background: #E1F5EE; color: #1D9E75; }
.visibility-hint[b-rsuibg0mbv] {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    font-size: 12px;
    line-height: 1.4;
    color: #5C6068;
    margin-top: 10px;
}
.hint-priv[b-rsuibg0mbv] { color: #4B4396; }
.hint-pub[b-rsuibg0mbv] { color: #1D9E75; }

/* Textarea */
.bpanel-textarea[b-rsuibg0mbv] {
    width: 100%;
    min-height: 100px;
    padding: 12px;
    border: 1px solid #E8E8E8;
    border-radius: 10px;
    font-family: 'Poppins', sans-serif;
    font-size: 13px;
    color: #333;
    resize: vertical;
    background: #FBFBFB;
    outline: none;
    transition: border-color 0.2s;
}
.bpanel-textarea:focus[b-rsuibg0mbv] { border-color: #4BA8AA; }

/* Char counter */
.char-counter[b-rsuibg0mbv] {
    font-size: 11px;
    color: #BBB;
    text-align: right;
    margin-top: 4px;
}
.char-counter.near-limit[b-rsuibg0mbv] { color: #F0C56D; }
.char-counter.at-limit[b-rsuibg0mbv] { color: #D35D52; }

/* Smart chips */
.bpanel-chips[b-rsuibg0mbv] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 14px;
}
.bpanel-chip[b-rsuibg0mbv] {
    padding: 5px 12px;
    border-radius: 16px;
    font-size: 11px;
    cursor: pointer;
    background: rgba(75,168,170,0.08);
    border: 1px solid rgba(75,168,170,0.2);
    color: #4BA8AA;
    font-family: inherit;
    transition: opacity 0.2s;
}
.bpanel-chip:hover[b-rsuibg0mbv] { opacity: 0.7; }

/* Submit button */
.bpanel-btn-agregar[b-rsuibg0mbv] {
    width: 100%;
    background: #4BA8AA;
    color: white;
    padding: 10px;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border: none;
    font-family: inherit;
    transition: opacity 0.2s;
    margin-bottom: 12px;
}
.bpanel-btn-agregar:hover:not(:disabled)[b-rsuibg0mbv] { opacity: 0.9; }
.bpanel-btn-agregar:disabled[b-rsuibg0mbv] { opacity: 0.5; cursor: not-allowed; }

/* Toast */
.bpanel-toast[b-rsuibg0mbv] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 10px 14px;
    border-radius: 10px;
    font-size: 12px;
    font-weight: 500;
    background: rgba(75,168,170,0.12);
    color: #4BA8AA;
    border: 1px solid rgba(75,168,170,0.25);
    margin-bottom: 14px;
    animation: bslideUp-b-rsuibg0mbv 0.3s ease;
}
@keyframes bslideUp-b-rsuibg0mbv {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Historial */
.bpanel-historial[b-rsuibg0mbv] {
    background: #F7F7F7;
    border-radius: 12px;
    padding: 14px;
}
.bpanel-hist-item[b-rsuibg0mbv] {
    display: flex;
    gap: 10px;
    padding: 8px 0;
    border-bottom: 0.5px solid #EAEAEA;
}
.bpanel-hist-item:last-child[b-rsuibg0mbv] { border-bottom: none; }
.bpanel-hist-bar[b-rsuibg0mbv] {
    width: 3px;
    border-radius: 2px;
    flex-shrink: 0;
    min-height: 24px;
}
.bpanel-hist-content[b-rsuibg0mbv] { flex: 1; min-width: 0; }
.bpanel-hist-text[b-rsuibg0mbv] { font-size: 11px; color: #555; margin-top: 3px; }
.bpanel-hist-meta[b-rsuibg0mbv] { font-size: 10px; color: #BBB; margin-top: 3px; }

/* Badges */
.badge-public[b-rsuibg0mbv], .badge-private[b-rsuibg0mbv] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 10px;
    font-weight: 700;
    padding: 1px 8px;
    border-radius: 99px;
}
.badge-public[b-rsuibg0mbv] { color: #1D9E75; background: #E1F5EE; }
.badge-private[b-rsuibg0mbv] { color: #4B4396; background: #ECEAF6; }

/* Responsive */
@media (max-width: 1024px) {
    .bpanel-container[b-rsuibg0mbv] { width: 420px; }
}
@media (max-width: 768px) {
    .bpanel-container[b-rsuibg0mbv] { width: 100%; }
    .bpanel-name[b-rsuibg0mbv] { max-width: 180px; }
}
/* /Components/BlockToolbar.razor.rz.scp.css */
.block-toolbar[b-6ufv8q43u9] {
    position: absolute;
    background: white;
    border-radius: 10px;
    padding: 5px 8px;
    box-shadow: 0 4px 12px rgba(20,22,25,0.10),
                0 16px 40px rgba(20,22,25,0.14);
    z-index: 1199;
    display: flex;
    align-items: center;
    gap: 4px;
    user-select: none;
    font-family: 'Figtree', sans-serif;
}

.bt-group[b-6ufv8q43u9] {
    display: flex;
    gap: 1px;
}

.bt-btn[b-6ufv8q43u9] {
    min-width: 28px;
    height: 28px;
    padding: 0 7px;
    border: none;
    background: transparent;
    border-radius: 5px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--carbon-1);
    transition: background 0.1s;
    font-family: inherit;
    font-size: 12px;
}

.bt-btn:hover[b-6ufv8q43u9] { background: var(--cream); }
.bt-btn.active[b-6ufv8q43u9] {
    background: rgba(45, 127, 249, 0.15);
    color: #2D7FF9;
}
.bt-btn.bt-danger[b-6ufv8q43u9] { color: var(--carbon-5); }
.bt-btn.bt-danger:hover[b-6ufv8q43u9] {
    background: rgba(163, 45, 45, 0.08);
    color: var(--danger);
}

.bt-divider[b-6ufv8q43u9] {
    width: 1px;
    height: 18px;
    background: var(--cream-deep);
    margin: 0 2px;
}
/* /Components/Chat/ChannelRightPanel.razor.rz.scp.css */
.right-panel[b-zq9afh5fyn] {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: #fff;
    border-left: 1px solid #F0F0F0;
    width: 320px;
    min-width: 320px;
}

.rp-tabs[b-zq9afh5fyn] {
    display: flex;
    border-bottom: 1px solid #F0F0F0;
    padding: 0 4px;
}

.rp-tab[b-zq9afh5fyn] {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 12px 8px;
    border: none;
    background: none;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--text-muted);
    cursor: pointer;
    border-bottom: 2px solid transparent;
    transition: color 0.15s, border-color 0.15s;
}

.rp-tab .material-symbols-rounded[b-zq9afh5fyn] {
    font-size: 16px;
}

.rp-tab:hover[b-zq9afh5fyn] {
    color: var(--text-secondary);
}

.rp-tab.active[b-zq9afh5fyn] {
    color: var(--brand-teal);
    border-bottom-color: var(--brand-teal);
}

.rp-badge[b-zq9afh5fyn] {
    background: var(--brand-teal);
    color: var(--text-primary);
    font-size: 0.65rem;
    font-weight: 700;
    padding: 1px 5px;
    border-radius: 10px;
    min-width: 16px;
    text-align: center;
}

.rp-content[b-zq9afh5fyn] {
    flex: 1;
    overflow-y: auto;
    padding: 12px;
}

.rp-empty[b-zq9afh5fyn] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 40px 16px;
    color: var(--text-muted);
    text-align: center;
}

.rp-empty .material-symbols-rounded[b-zq9afh5fyn] {
    font-size: 36px;
    opacity: 0.5;
}

.rp-empty p[b-zq9afh5fyn] {
    font-size: 0.85rem;
    margin: 0;
}

.rp-pinned-item[b-zq9afh5fyn] {
    padding: 10px 12px;
    border-radius: 8px;
    background: #FFFDF5;
    border: 1px solid #F0E8D0;
    margin-bottom: 8px;
}

.rp-pinned-author[b-zq9afh5fyn] {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--text-primary);
    margin-bottom: 3px;
}

.rp-pinned-text[b-zq9afh5fyn] {
    font-size: 0.82rem;
    color: var(--text-secondary);
    line-height: 1.4;
    margin-bottom: 4px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.rp-pinned-time[b-zq9afh5fyn] {
    font-size: 0.7rem;
    color: var(--text-muted);
}

.rp-thread-item[b-zq9afh5fyn] {
    display: block;
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #F0F0F0;
    border-radius: 8px;
    background: none;
    margin-bottom: 8px;
    cursor: pointer;
    text-align: left;
    transition: background 0.12s, border-color 0.12s;
}

.rp-thread-item:hover[b-zq9afh5fyn] {
    background: #F8FCFC;
    border-color: var(--brand-teal);
}

.rp-thread-preview[b-zq9afh5fyn] {
    font-size: 0.82rem;
    color: var(--text-primary);
    line-height: 1.4;
    margin-bottom: 4px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.rp-thread-meta[b-zq9afh5fyn] {
    display: flex;
    gap: 12px;
    font-size: 0.7rem;
    color: var(--text-muted);
}

@media (max-width: 560px) {
    .right-panel[b-zq9afh5fyn] {
        width: 100vw;
        min-width: 100vw;
    }
}
/* /Components/Chat/ChannelSidebar.razor.rz.scp.css */
/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   ChannelSidebar â€” 276px Â· azul-verdoso oscuro
   Tokens propios, scoped al componente (no contaminan el sistema v2)
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */

.ch-sidebar[b-vreutqe1pb] {
    --sb-bg:           #16272A;
    --sb-bg-2:         #1E3437;
    --sb-hover:        #24434A;
    --sb-active:       #2A5560;
    --sb-text:         #A7BDC1;
    --sb-text-muted:   #6B8489;
    --sb-text-bright:  #E8F4F8;
    --sb-border:       rgba(255, 255, 255, 0.06);
    --teal:            var(--brand-teal);
    --teal-dark:       var(--brand-teal-dark);
    --sem-green:       var(--pz-green);
    --sem-yellow:      var(--warning);
    --danger:          #D64545;

    width: 276px;
    background: var(--sb-bg);
    color: var(--sb-text);
    display: flex;
    flex-direction: column;
    border-right: 1px solid var(--sb-border);
    overflow: hidden;
    font-family: var(--font-sans);
}

/* === Brand === */
.ch-brand[b-vreutqe1pb] {
    padding: 20px 18px 16px;
    display: flex;
    align-items: center;
    gap: 10px;
    border-bottom: 1px solid var(--sb-border);
    flex-shrink: 0;
}

.ch-brand-logo[b-vreutqe1pb] {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: linear-gradient(135deg, var(--teal), var(--teal-dark));
    display: grid;
    place-items: center;
    color: #FFFFFF;
    font-weight: 700;
    font-size: 15px;
    box-shadow: 0 2px 8px rgba(109, 199, 208, 0.25);
    flex-shrink: 0;
}

.ch-brand-name[b-vreutqe1pb] {
    display: flex;
    flex-direction: column;
    line-height: 1.15;
}

.ch-brand-name .mi[b-vreutqe1pb] {
    font-size: 15px;
    font-weight: 700;
    color: var(--teal);
    letter-spacing: -0.01em;
}

.ch-brand-name .esc[b-vreutqe1pb] {
    font-size: 11px;
    color: var(--sb-text);
    font-weight: 500;
    letter-spacing: 0.04em;
}

/* === School switcher === */
.ch-school-switcher[b-vreutqe1pb] {
    padding: 10px 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    border-bottom: 1px solid var(--sb-border);
    cursor: pointer;
    transition: background 0.15s;
    background: transparent;
    border: none;
    border-bottom: 1px solid var(--sb-border);
    width: 100%;
    text-align: left;
    font-family: inherit;
    color: inherit;
    flex-shrink: 0;
}

.ch-school-switcher:hover[b-vreutqe1pb] { background: var(--sb-hover); }

.ch-school-info[b-vreutqe1pb] { overflow: hidden; flex: 1; }

.ch-school-name[b-vreutqe1pb] {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--sb-text-bright);
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
}

.ch-school-sub[b-vreutqe1pb] {
    font-size: 10.5px;
    color: var(--sb-text-muted);
    margin-top: 1px;
}

.ch-school-switcher .material-icons[b-vreutqe1pb],
.ch-school-switcher .material-symbols-rounded[b-vreutqe1pb] {
    font-size: 16px;
    color: var(--sb-text-muted);
}

/* === Search === */
.ch-search[b-vreutqe1pb] {
    margin: 12px 14px 8px;
    background: var(--sb-bg-2);
    border-radius: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border: 1px solid transparent;
    transition: border-color 0.15s;
    flex-shrink: 0;
}

.ch-search:hover[b-vreutqe1pb] { border-color: var(--sb-hover); }

.ch-search .material-icons[b-vreutqe1pb],
.ch-search .material-symbols-rounded[b-vreutqe1pb] { font-size: 16px; color: var(--sb-text-muted); }

.ch-search input[b-vreutqe1pb] {
    flex: 1;
    background: transparent;
    border: none;
    outline: none;
    color: var(--sb-text-bright);
    font-family: inherit;
    font-size: 12.5px;
    min-width: 0;
}

.ch-search input[b-vreutqe1pb]::placeholder { color: var(--sb-text-muted); }

.ch-search kbd[b-vreutqe1pb] {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--sb-text-muted);
    background: var(--sb-bg);
    padding: 2px 5px;
    border-radius: 3px;
    border: 1px solid var(--sb-hover);
}

/* === Scroll de canales === */
.ch-scroll[b-vreutqe1pb] {
    flex: 1;
    overflow-y: auto;
    padding: 6px 0 12px;
}

.ch-scroll[b-vreutqe1pb]::-webkit-scrollbar { width: 6px; }
.ch-scroll[b-vreutqe1pb]::-webkit-scrollbar-track { background: transparent; }
.ch-scroll[b-vreutqe1pb]::-webkit-scrollbar-thumb { background: var(--sb-hover); border-radius: 3px; }

.ch-section[b-vreutqe1pb] { padding: 6px 0 2px; }

.ch-section-header[b-vreutqe1pb] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 18px 4px;
    cursor: pointer;
}

.ch-section-title[b-vreutqe1pb] {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--sb-text-muted);
    display: flex;
    align-items: center;
    gap: 4px;
}

.ch-section-title .material-icons[b-vreutqe1pb],
.ch-section-title .material-symbols-rounded[b-vreutqe1pb] {
    font-size: 14px;
    opacity: 0.7;
}

.ch-section-add[b-vreutqe1pb] {
    font-size: 14px !important;
    color: var(--sb-text-muted);
    opacity: 0;
    transition: opacity 0.15s;
}

.ch-section-header:hover .ch-section-add[b-vreutqe1pb] { opacity: 1; }

/* === Canal === */
.ch-channel[b-vreutqe1pb] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 5px 18px 5px 22px;
    font-size: 13px;
    color: var(--sb-text);
    cursor: pointer;
    transition: background 0.12s;
    position: relative;
    font-weight: 500;
    background: transparent;
    border: none;
    width: 100%;
    text-align: left;
    font-family: inherit;
}

.ch-channel:hover[b-vreutqe1pb] { background: var(--sb-hover); }

.ch-channel.active[b-vreutqe1pb] {
    background: var(--sb-active);
    color: var(--sb-text-bright);
    font-weight: 600;
}

.ch-channel.active[b-vreutqe1pb]::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: var(--teal);
}

.ch-channel-hash[b-vreutqe1pb] {
    font-family: var(--font-mono);
    color: var(--sb-text-muted);
    font-size: 13px;
    font-weight: 400;
}

.ch-channel.active .ch-channel-hash[b-vreutqe1pb] { color: var(--teal); }

.ch-channel-lock[b-vreutqe1pb] {
    font-size: 13px !important;
    color: var(--sb-text-muted);
    vertical-align: middle;
}

.ch-channel.unread[b-vreutqe1pb] {
    color: var(--sb-text-bright);
    font-weight: 700;
}

.ch-channel-name[b-vreutqe1pb] {
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ch-badge[b-vreutqe1pb] {
    background: var(--danger);
    color: #FFFFFF;
    font-size: 10px;
    font-weight: 700;
    border-radius: 10px;
    padding: 1px 6px;
    min-width: 18px;
    text-align: center;
}

.ch-badge.mention[b-vreutqe1pb] { background: var(--teal-dark); }

.ch-presence-dot[b-vreutqe1pb] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--sb-text-muted);
    flex-shrink: 0;
}

.ch-presence-dot.online[b-vreutqe1pb] { background: var(--sem-green); }
.ch-presence-dot.class[b-vreutqe1pb]  { background: var(--sem-yellow); }

/* === DM avatar === */
.ch-dm-avatar[b-vreutqe1pb] {
    width: 20px;
    height: 20px;
    border-radius: 5px;
    background: linear-gradient(135deg, #8FA8AB, #5B7A7D);
    display: grid;
    place-items: center;
    color: #FFFFFF;
    font-size: 9.5px;
    font-weight: 700;
    flex-shrink: 0;
    font-family: var(--font-sans);
}

.ch-dm-avatar.c2[b-vreutqe1pb] { background: linear-gradient(135deg, #C4826C, #965C44); }
.ch-dm-avatar.c3[b-vreutqe1pb] { background: linear-gradient(135deg, #6C91C4, #445E96); }

/* === User card === */
.ch-user-card[b-vreutqe1pb] {
    padding: 10px 14px;
    border-top: 1px solid var(--sb-border);
    display: flex;
    align-items: center;
    gap: 10px;
    background: var(--sb-bg-2);
    flex-shrink: 0;
}

.ch-user-avatar[b-vreutqe1pb] {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: linear-gradient(135deg, var(--teal), var(--teal-dark));
    display: grid;
    place-items: center;
    color: #FFFFFF;
    font-weight: 700;
    font-size: 12px;
    position: relative;
    flex-shrink: 0;
    font-family: var(--font-sans);
}

.ch-user-avatar[b-vreutqe1pb]::after {
    content: "";
    position: absolute;
    bottom: -2px;
    right: -2px;
    width: 10px;
    height: 10px;
    background: var(--sem-green);
    border: 2px solid var(--sb-bg-2);
    border-radius: 50%;
}

.ch-user-info[b-vreutqe1pb] { flex: 1; overflow: hidden; }

.ch-user-name[b-vreutqe1pb] {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--sb-text-bright);
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
}

.ch-user-role[b-vreutqe1pb] {
    font-size: 10.5px;
    color: var(--sb-text-muted);
    margin-top: 1px;
}

.ch-user-card .material-icons[b-vreutqe1pb],
.ch-user-card .material-symbols-rounded[b-vreutqe1pb] {
    font-size: 18px;
    color: var(--sb-text-muted);
    cursor: pointer;
}

/* Empty state del sidebar */
.ch-empty[b-vreutqe1pb] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 40px 16px;
    gap: 8px;
    color: rgba(255,255,255,0.4);
    font-size: 12px;
}

.ch-empty .material-icons[b-vreutqe1pb],
.ch-empty .material-symbols-rounded[b-vreutqe1pb] {
    font-size: 32px !important;
    color: rgba(255,255,255,0.25);
}

/* â”€â”€ Responsive: drawer en movil (<900px) â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   El sidebar se convierte en un panel deslizante que Chat.razor muestra
   via la clase .sidebar-open del contenedor (::deep porque la clase vive
   en el padre .chat-page). Ver Chat.razor.css para el layout de la pagina. */
@media (max-width: 900px) {
    .ch-sidebar[b-vreutqe1pb] {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        width: 82vw;
        max-width: 320px;
        z-index: 60;
        transform: translateX(-100%);
        transition: transform 0.22s ease;
        box-shadow: 2px 0 16px rgba(0, 0, 0, 0.28);
    }
}
/* /Components/Chat/ChatPanel.razor.rz.scp.css */
/* â”€â”€â”€ ChatPanel Layout â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.chat-panel[b-iekg3i95wf] {
    display: flex;
    height: 100%;
    overflow: hidden;
}

.chat-panel-main[b-iekg3i95wf] {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
}

/* â”€â”€â”€ Header â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.cp-header[b-iekg3i95wf] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 20px;
    border-bottom: 1px solid #F0F0F0;
    background: #fff;
    flex-shrink: 0;
}

.cp-header-left[b-iekg3i95wf] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.cp-title[b-iekg3i95wf] {
    display: flex;
    align-items: center;
    gap: 4px;
}

.cp-hash[b-iekg3i95wf] {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--brand-teal);
}

.cp-name[b-iekg3i95wf] {
    font-size: 1rem;
    font-weight: 700;
    color: var(--text-primary);
}

.cp-desc[b-iekg3i95wf] {
    font-size: 0.78rem;
    color: var(--text-secondary);
}

.cp-header-right[b-iekg3i95wf] {
    display: flex;
    align-items: center;
    gap: 6px;
}

.cp-hbtn[b-iekg3i95wf] {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 6px 10px;
    border: none;
    background: none;
    border-radius: 6px;
    font-size: 0.78rem;
    color: var(--text-secondary);
    cursor: pointer;
    transition: background 0.12s;
}

.cp-hbtn:hover[b-iekg3i95wf] {
    background: #F5F5F5;
}

.cp-hbtn .material-symbols-rounded[b-iekg3i95wf] {
    font-size: 16px;
}

.cp-members[b-iekg3i95wf] {
    display: flex;
    align-items: center;
    gap: 2px;
    padding: 4px 10px;
    border: 1px solid #E0E0E0;
    background: none;
    border-radius: 20px;
    cursor: pointer;
    transition: border-color 0.12s;
}

.cp-members:hover[b-iekg3i95wf] {
    border-color: var(--brand-teal);
}

.cp-avsm[b-iekg3i95wf] {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.55rem;
    font-weight: 700;
    color: var(--text-primary);
    background: var(--brand-teal);
    margin-left: -4px;
    border: 2px solid #fff;
}

.cp-avsm:first-child[b-iekg3i95wf] {
    margin-left: 0;
}

.cp-members-count[b-iekg3i95wf] {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--text-secondary);
    margin-left: 4px;
}

/* â”€â”€â”€ Messages Area â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.cp-messages[b-iekg3i95wf] {
    flex: 1;
    overflow-y: auto;
    padding: 16px 0;
    background: var(--bg-chat, #FCFAF5);
}

.cp-empty[b-iekg3i95wf] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    gap: 8px;
    color: var(--text-muted);
    text-align: center;
    padding: 40px;
}

.cp-empty .material-symbols-rounded[b-iekg3i95wf] {
    font-size: 48px;
    opacity: 0.4;
}

.cp-empty h3[b-iekg3i95wf] {
    margin: 0;
    font-size: 1.1rem;
    color: var(--text-primary);
}

.cp-empty p[b-iekg3i95wf] {
    margin: 0;
    font-size: 0.88rem;
}

.cp-empty-inline[b-iekg3i95wf] {
    height: auto;
    padding: 60px 20px;
}

/* â”€â”€â”€ Day separator â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.cp-day[b-iekg3i95wf] {
    display: flex;
    align-items: center;
    padding: 4px 20px;
    margin: 12px 0;
}

.cp-day[b-iekg3i95wf]::before,
.cp-day[b-iekg3i95wf]::after {
    content: '';
    flex: 1;
    height: 1px;
    background: #E8E4DC;
}

.cp-day-label[b-iekg3i95wf] {
    padding: 4px 12px;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: var(--text-muted);
    white-space: nowrap;
}

/* â”€â”€â”€ Message Blocks â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.cp-msg[b-iekg3i95wf] {
    display: flex;
    padding: 2px 20px;
    position: relative;
    transition: background 0.1s;
}

.cp-msg:hover[b-iekg3i95wf] {
    background: rgba(0, 0, 0, 0.02);
}

.cp-msg.is-new-block[b-iekg3i95wf] {
    padding-top: 10px;
}

.cp-avatar[b-iekg3i95wf] {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--text-primary);
    background: var(--brand-teal);
    flex-shrink: 0;
    margin-right: 10px;
}

.cp-avatar.sm[b-iekg3i95wf] {
    width: 26px;
    height: 26px;
    font-size: 0.6rem;
}

.cp-time-inline[b-iekg3i95wf] {
    width: 36px;
    margin-right: 10px;
    font-size: 0.65rem;
    color: transparent;
    text-align: center;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cp-msg:hover .cp-time-inline[b-iekg3i95wf] {
    color: var(--text-muted);
}

.cp-msg-body[b-iekg3i95wf] {
    flex: 1;
    min-width: 0;
}

.cp-msg-header[b-iekg3i95wf] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin-bottom: 2px;
}

.cp-author[b-iekg3i95wf] {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--text-primary);
}

.cp-author.is-lider[b-iekg3i95wf] {
    color: var(--gold);
}

.cp-author.is-directivo[b-iekg3i95wf] {
    color: var(--brand-teal-deep, #2C6D6F);
}

.cp-crown[b-iekg3i95wf] {
    font-size: 14px;
    color: var(--gold);
    vertical-align: middle;
    margin-right: 2px;
}

.cp-role-tag[b-iekg3i95wf] {
    font-size: 0.65rem;
    font-weight: 600;
    padding: 1px 6px;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.cp-role-tag.is-directivo[b-iekg3i95wf] {
    background: rgba(58, 143, 145, 0.1);
    color: var(--brand-teal-deep, #2C6D6F);
}

.cp-role-tag.is-lider[b-iekg3i95wf] {
    background: rgba(184, 134, 11, 0.1);
    color: var(--pin-gold);
}

.cp-role-tag.is-docente[b-iekg3i95wf] {
    background: rgba(109, 199, 208, 0.1);
    color: #5BA8B0;
}

.cp-time[b-iekg3i95wf] {
    font-size: 0.7rem;
    color: var(--text-muted);
}

.cp-content p[b-iekg3i95wf] {
    margin: 0;
    font-size: 0.88rem;
    line-height: 1.55;
    color: var(--text-primary);
}

/* â”€â”€â”€ Hover Actions â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.cp-actions[b-iekg3i95wf] {
    position: absolute;
    top: -8px;
    right: 20px;
    display: none;
    align-items: center;
    gap: 2px;
    padding: 2px 4px;
    background: #fff;
    border: 1px solid #E0E0E0;
    border-radius: 6px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    z-index: 10;
}

.cp-msg:hover .cp-actions[b-iekg3i95wf] {
    display: flex;
}

.cp-act[b-iekg3i95wf] {
    background: none;
    border: none;
    padding: 4px 6px;
    border-radius: 4px;
    cursor: pointer;
    color: var(--text-secondary);
    display: flex;
    align-items: center;
    transition: background 0.1s, color 0.1s;
}

.cp-act:hover[b-iekg3i95wf] {
    background: #F0F8F9;
    color: var(--brand-teal);
}

.cp-act .material-symbols-rounded[b-iekg3i95wf] {
    font-size: 16px;
}

/* â”€â”€â”€ Reactions â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.cp-reactions[b-iekg3i95wf] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
    margin-top: 6px;
    position: relative;
}

.cp-reaction[b-iekg3i95wf] {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 3px 8px;
    border: 1px solid #E0E0E0;
    border-radius: 12px;
    background: #FAFAFA;
    font-size: 0.72rem;
    cursor: pointer;
    transition: border-color 0.12s, background 0.12s;
}

.cp-reaction:hover[b-iekg3i95wf] {
    border-color: var(--brand-teal);
    background: #F0FAFB;
}

.cp-reaction.mine[b-iekg3i95wf] {
    border-color: var(--brand-teal);
    background: rgba(109, 199, 208, 0.1);
}

.cp-reaction .material-symbols-rounded[b-iekg3i95wf] {
    font-size: 14px;
}

.cp-reaction-add[b-iekg3i95wf] {
    border-style: dashed;
    color: var(--text-muted);
}

.cp-reaction-add:hover[b-iekg3i95wf] {
    color: var(--brand-teal);
}

.cp-emoji-picker[b-iekg3i95wf] {
    display: flex;
    gap: 2px;
    padding: 4px 6px;
    background: #fff;
    border: 1px solid #E0E0E0;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.cp-emoji-pick[b-iekg3i95wf] {
    background: none;
    border: none;
    padding: 4px 6px;
    border-radius: 4px;
    cursor: pointer;
    transition: background 0.1s;
}

.cp-emoji-pick:hover[b-iekg3i95wf] {
    background: #F0F8F9;
}

.cp-emoji-pick .material-symbols-rounded[b-iekg3i95wf] {
    font-size: 18px;
    color: var(--text-secondary);
}

/* â”€â”€â”€ Thread â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.cp-thread[b-iekg3i95wf] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 4px 8px;
    margin-top: 6px;
    border: none;
    background: none;
    border-radius: 6px;
    cursor: pointer;
    font-size: 0.78rem;
    color: var(--brand-teal);
    font-weight: 600;
    transition: background 0.12s;
}

.cp-thread:hover[b-iekg3i95wf] {
    background: rgba(109, 199, 208, 0.08);
}

.cp-thread .material-symbols-rounded[b-iekg3i95wf] {
    font-size: 14px;
}

.cp-thread-count[b-iekg3i95wf] {
    color: var(--brand-teal);
}

.cp-thread-last[b-iekg3i95wf] {
    color: var(--text-muted);
    font-weight: 400;
}

.cp-thread-panel[b-iekg3i95wf] {
    margin-top: 8px;
    padding: 12px;
    background: #F9FAFB;
    border-radius: 8px;
    border: 1px solid #F0F0F0;
}

.cp-thread-empty[b-iekg3i95wf] {
    font-size: 0.82rem;
    color: var(--text-muted);
    padding: 8px;
}

.cp-reply[b-iekg3i95wf] {
    display: flex;
    gap: 8px;
    margin-bottom: 10px;
}

.cp-reply-composer[b-iekg3i95wf] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #F0F0F0;
}

.cp-reply-input[b-iekg3i95wf] {
    flex: 1;
    padding: 6px 10px;
    border: 1px solid #E0E0E0;
    border-radius: 6px;
    font-size: 0.82rem;
    background: #fff;
    outline: none;
    transition: border-color 0.15s;
}

.cp-reply-input:focus[b-iekg3i95wf] {
    border-color: var(--brand-teal);
}

.cp-reply-send[b-iekg3i95wf] {
    background: var(--brand-teal);
    border: none;
    border-radius: 6px;
    padding: 6px;
    cursor: pointer;
    display: flex;
    align-items: center;
    color: var(--text-primary);
    transition: background 0.12s;
}

.cp-reply-send:hover:not(:disabled)[b-iekg3i95wf] {
    background: var(--brand-teal-dark);
}

.cp-reply-send:disabled[b-iekg3i95wf] {
    background: #E0E0E0;
    cursor: default;
}

.cp-reply-send .material-symbols-rounded[b-iekg3i95wf] {
    font-size: 16px;
}

/* â”€â”€â”€ Menu button (movil) â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.cp-menu-btn[b-iekg3i95wf] {
    display: none;
    background: none;
    border: none;
    padding: 6px;
    margin-right: 6px;
    border-radius: 6px;
    cursor: pointer;
    color: var(--text-secondary);
    align-items: center;
    justify-content: center;
}

.cp-menu-btn:hover[b-iekg3i95wf] {
    background: #F5F5F5;
}

.cp-menu-btn .material-symbols-rounded[b-iekg3i95wf] {
    font-size: 20px;
}

/* â”€â”€â”€ Pin activo (mensaje fijado) â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.cp-act .cp-act-active[b-iekg3i95wf] {
    color: var(--brand-teal);
    font-variation-settings: 'FILL' 1;
}

/* â”€â”€â”€ Typing indicator â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.cp-typing[b-iekg3i95wf] {
    padding: 6px 20px 4px;
    font-size: 0.76rem;
    color: var(--text-muted);
    font-style: italic;
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}

.cp-typing-dots[b-iekg3i95wf] {
    display: inline-flex;
    gap: 3px;
    align-items: center;
}

.cp-typing-dots span[b-iekg3i95wf] {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--brand-teal);
    animation: cp-typing-b-iekg3i95wf 1.2s infinite;
}

.cp-typing-dots span:nth-child(2)[b-iekg3i95wf] { animation-delay: 0.15s; }
.cp-typing-dots span:nth-child(3)[b-iekg3i95wf] { animation-delay: 0.3s; }

@keyframes cp-typing-b-iekg3i95wf {
    0%, 60%, 100% { opacity: 0.3; transform: translateY(0); }
    30%           { opacity: 1;   transform: translateY(-2px); }
}

/* â”€â”€â”€ Skeleton â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.skeleton[b-iekg3i95wf] {
    background: linear-gradient(90deg, #F0F0F0 25%, #E8E8E8 50%, #F0F0F0 75%);
    background-size: 200% 100%;
    animation: sk-shimmer-b-iekg3i95wf 1.5s infinite;
    border-radius: 4px;
}

@keyframes sk-shimmer-b-iekg3i95wf {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

.sk-avatar[b-iekg3i95wf] {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    flex-shrink: 0;
    margin-right: 10px;
}

.sk-h-16[b-iekg3i95wf] { height: 16px; }
.sk-h-12[b-iekg3i95wf] { height: 12px; }
.sk-h-10[b-iekg3i95wf] { height: 10px; }
.sk-w-90[b-iekg3i95wf] { width: 90%; }
.sk-w-75[b-iekg3i95wf] { width: 75%; }
.sk-w-50[b-iekg3i95wf] { width: 50%; }
/* /Components/Chat/Composer.razor.rz.scp.css */
/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Composer del Chat
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */

.cmp-wrap[b-r60s2hhebk] {
    --teal:        var(--brand-teal);
    --teal-dark:   var(--brand-teal-dark);
    --teal-darker: #2E7F82;
    --teal-soft:   #E8F4F8;
    --border:      #EAEEF0;
    --border-strong: #D8DEE1;
    --text:        #1A2B2D;
    --text-muted:  #5A6B6E;
    --text-dim:    #8A9699;
    --hover:       #F5F8F9;
    --main-bg:     #FFFFFF;
    --main-subtle: #FAFBFC;

    padding: 0 24px 20px;
    background: var(--main-bg);
    position: relative;
    flex-shrink: 0;
    font-family: var(--font-sans);
    color: var(--text);
}

.cmp[b-r60s2hhebk] {
    border: 1.5px solid var(--teal-dark);
    border-radius: 12px;
    background: #FFFFFF;
    box-shadow: 0 2px 14px rgba(75, 168, 170, 0.12);
    overflow: visible;
    position: relative;
}

.cmp-channel-hint[b-r60s2hhebk] {
    padding: 6px 14px 0;
    font-size: 11px;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    gap: 6px;
}

.cmp-channel-hint .material-icons[b-r60s2hhebk],
.cmp-channel-hint .material-symbols-rounded[b-r60s2hhebk] { font-size: 13px; }

.cmp-hash[b-r60s2hhebk] {
    font-family: var(--font-mono);
    color: var(--text);
    font-weight: 600;
}

.cmp-input[b-r60s2hhebk] {
    padding: 10px 14px 8px;
    min-height: 52px;
    font-size: 14px;
    line-height: 1.5;
    color: var(--text);
    outline: none;
}

.cmp-typed[b-r60s2hhebk] { background: transparent; }

.cmp-at[b-r60s2hhebk] {
    color: var(--teal-darker);
    font-weight: 700;
    font-family: var(--font-mono);
    background: var(--teal-soft);
    padding: 1px 5px;
    border-radius: 4px;
    border: 1px solid rgba(75, 168, 170, 0.3);
}

.cmp-cursor[b-r60s2hhebk] {
    display: inline-block;
    width: 2px;
    height: 18px;
    background: var(--teal-dark);
    vertical-align: middle;
    animation: cmp-blink-b-r60s2hhebk 1s infinite;
    margin-left: 1px;
}

@keyframes cmp-blink-b-r60s2hhebk {
    0%, 50% { opacity: 1; }
    51%, 100% { opacity: 0; }
}

/* === Toolbar === */
.cmp-toolbar[b-r60s2hhebk] {
    display: flex;
    align-items: center;
    gap: 2px;
    padding: 6px 10px;
    border-top: 1px solid var(--border);
}

.cmp-tb-btn[b-r60s2hhebk] {
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    cursor: pointer;
    border-radius: 6px;
    color: var(--text-muted);
    transition: background 0.12s;
    border: none;
    background: transparent;
}

.cmp-tb-btn:hover[b-r60s2hhebk] { background: var(--hover); color: var(--text); }
.cmp-tb-btn.active[b-r60s2hhebk] { background: var(--teal-soft); color: var(--teal-darker); }
.cmp-tb-btn .material-icons[b-r60s2hhebk],
.cmp-tb-btn .material-symbols-rounded[b-r60s2hhebk] { font-size: 18px; }

.cmp-tb-divider[b-r60s2hhebk] {
    width: 1px;
    height: 20px;
    background: var(--border);
    margin: 0 4px;
}

.cmp-send-btn[b-r60s2hhebk] {
    margin-left: auto;
    padding: 7px 14px;
    background: var(--teal-dark);
    color: #FFFFFF;
    border: none;
    border-radius: 6px;
    font-family: inherit;
    font-weight: 700;
    font-size: 12.5px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 6px;
    transition: background 0.15s;
}

.cmp-send-btn:hover[b-r60s2hhebk] { background: var(--teal-darker); }
.cmp-send-btn .material-icons[b-r60s2hhebk],
.cmp-send-btn .material-symbols-rounded[b-r60s2hhebk] { font-size: 15px; }

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Mention popover
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */

.cmp-popover[b-r60s2hhebk] {
    position: absolute;
    bottom: calc(100% + 6px);
    left: 8px;
    width: 440px;
    background: #FFFFFF;
    border: 1px solid var(--border);
    border-radius: 12px;
    box-shadow: 0 12px 40px rgba(16, 39, 42, 0.18), 0 2px 8px rgba(16, 39, 42, 0.08);
    overflow: hidden;
    z-index: 10;
}

.cmp-popover-header[b-r60s2hhebk] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    background: linear-gradient(to right, #F4FAFB, white);
    border-bottom: 1px solid var(--border);
    font-size: 11px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.cmp-hint[b-r60s2hhebk] {
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
    font-size: 11px;
    color: var(--text-dim);
}

.cmp-popover-header kbd[b-r60s2hhebk],
.cmp-popover-footer kbd[b-r60s2hhebk],
.cmp-channel-hint kbd[b-r60s2hhebk] {
    font-family: var(--font-mono);
    font-size: 10px;
    background: #FFFFFF;
    padding: 1px 5px;
    border-radius: 3px;
    border: 1px solid var(--border-strong);
    color: var(--text);
    margin: 0 1px;
}

.cmp-popover-group-label[b-r60s2hhebk] {
    padding: 8px 14px 4px;
    font-size: 10.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-dim);
    background: var(--main-subtle);
}

.cmp-popover-item[b-r60s2hhebk] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 9px 14px;
    cursor: pointer;
    border-left: 3px solid transparent;
    transition: background 0.1s;
    width: 100%;
    background: transparent;
    border: none;
    border-left: 3px solid transparent;
    text-align: left;
    font-family: inherit;
}

.cmp-popover-item:hover[b-r60s2hhebk] { background: var(--hover); }

.cmp-popover-item.selected[b-r60s2hhebk] {
    background: var(--teal-soft);
    border-left-color: var(--teal-dark);
}

.cmp-popover-icon[b-r60s2hhebk] {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: grid;
    place-items: center;
    color: #FFFFFF;
    font-weight: 700;
    font-size: 12px;
    flex-shrink: 0;
    font-family: var(--font-sans);
}

.cmp-popover-icon.grupo[b-r60s2hhebk]  { background: linear-gradient(135deg, #4F8A4F, #2D5F2D); }
.cmp-popover-icon.grado[b-r60s2hhebk]  { background: linear-gradient(135deg, #7B6BB8, #443B7A); }
.cmp-popover-icon.alumno[b-r60s2hhebk] { background: linear-gradient(135deg, #D69B57, #A06D2B); }

.cmp-popover-item-body[b-r60s2hhebk] { flex: 1; min-width: 0; }

.cmp-popover-item-name[b-r60s2hhebk] {
    font-family: var(--font-mono);
    font-size: 13px;
    font-weight: 600;
    color: var(--text);
}

.cmp-popover-item-name.is-alumno[b-r60s2hhebk] {
    font-family: var(--font-sans);
    font-weight: 600;
}

.cmp-match[b-r60s2hhebk] {
    background: #FFE68A;
    color: #4A3500;
    padding: 0 2px;
    border-radius: 2px;
}

.cmp-popover-item-desc[b-r60s2hhebk] {
    font-size: 11.5px;
    color: var(--text-muted);
    margin-top: 1px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cmp-popover-item-count[b-r60s2hhebk] {
    font-size: 10.5px;
    font-weight: 700;
    color: var(--teal-darker);
    background: var(--teal-soft);
    padding: 2px 7px;
    border-radius: 10px;
    font-family: var(--font-mono);
    flex-shrink: 0;
}

.cmp-popover-footer[b-r60s2hhebk] {
    padding: 8px 14px;
    border-top: 1px solid var(--border);
    background: var(--main-subtle);
    font-size: 11px;
    color: var(--text-muted);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* â”€â”€ Modo editable real â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.cmp-input-real[b-r60s2hhebk] {
    width: 100%;
    min-height: 60px;
    max-height: 200px;
    padding: 10px 12px;
    border: 1px solid #2A3640;
    border-radius: 8px;
    background: rgba(255,255,255,0.04);
    color: #E5E7EB;
    font-family: inherit;
    font-size: 13.5px;
    line-height: 1.5;
    resize: vertical;
    outline: none;
    transition: border-color 0.15s ease;
}

.cmp-input-real:focus[b-r60s2hhebk] {
    border-color: var(--brand-teal);
    background: rgba(255,255,255,0.06);
}

.cmp-input-real[b-r60s2hhebk]::placeholder {
    color: rgba(229, 231, 235, 0.35);
}

.cmp-input-real:disabled[b-r60s2hhebk] {
    opacity: 0.6;
    cursor: not-allowed;
}

.cmp-send-btn:disabled[b-r60s2hhebk] {
    opacity: 0.45;
    cursor: not-allowed;
}
/* /Components/Chat/PhaseSeparator.razor.rz.scp.css */
.phase-sep[b-mo63zc6if2] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 16px;
    margin: 8px 0;
}

.phase-line[b-mo63zc6if2] {
    flex: 1;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--brand-teal), #2C6D6F);
    border-radius: 1px;
}

.phase-sep .phase-line:first-child[b-mo63zc6if2] {
    background: linear-gradient(90deg, transparent, var(--brand-teal));
}

.phase-sep .phase-line:last-child[b-mo63zc6if2] {
    background: linear-gradient(90deg, #2C6D6F, var(--brand-teal), transparent);
}

.phase-pill[b-mo63zc6if2] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 4px 14px;
    background: linear-gradient(135deg, var(--brand-teal) 0%, #2C6D6F 100%);
    border-radius: 20px;
    color: #fff;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    white-space: nowrap;
    box-shadow: 0 2px 6px rgba(44, 109, 111, 0.25);
}

.phase-flag[b-mo63zc6if2] {
    font-size: 14px;
}

.phase-text[b-mo63zc6if2] {
    text-transform: uppercase;
}
/* /Components/Chat/PinnedBanner.razor.rz.scp.css */
.pinned-banner[b-5ksbvrttb0] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    background: linear-gradient(90deg, #FDF8E8 0%, #FFFDF5 100%);
    border-bottom: 1px solid #E8DFC0;
    font-size: 0.85rem;
    color: #5C4A1E;
}

.pinned-icon[b-5ksbvrttb0] {
    font-size: 16px;
    color: var(--pin-gold);
    transform: rotate(45deg);
}

.pinned-label[b-5ksbvrttb0] {
    font-weight: 600;
    color: var(--pin-gold);
    white-space: nowrap;
}

.pinned-preview[b-5ksbvrttb0] {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #5C4A1E;
}

.pinned-extra[b-5ksbvrttb0] {
    background: none;
    border: none;
    color: var(--pin-gold);
    font-weight: 600;
    font-size: 0.8rem;
    cursor: pointer;
    white-space: nowrap;
    padding: 2px 6px;
    border-radius: 4px;
    transition: background 0.15s;
}

.pinned-extra:hover[b-5ksbvrttb0] {
    background: rgba(184, 134, 11, 0.1);
}

.pinned-close[b-5ksbvrttb0] {
    background: none;
    border: none;
    cursor: pointer;
    padding: 2px;
    border-radius: 4px;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    transition: background 0.15s, color 0.15s;
}

.pinned-close:hover[b-5ksbvrttb0] {
    background: rgba(0, 0, 0, 0.06);
    color: var(--text-secondary);
}

.pinned-close .material-symbols-rounded[b-5ksbvrttb0] {
    font-size: 16px;
}
/* /Components/Chat/SlashCommandPopover.razor.rz.scp.css */
.slash-popover[b-6ollnk2qc0] {
    position: absolute;
    bottom: 100%;
    left: 16px;
    right: 16px;
    margin-bottom: 8px;
    background: #fff;
    border: 1px solid #E0E0E0;
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    z-index: 100;
    overflow: hidden;
}

.slash-header[b-6ollnk2qc0] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border-bottom: 1px solid #F0F0F0;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--text-secondary);
}

.slash-header .material-symbols-rounded[b-6ollnk2qc0] {
    font-size: 16px;
    color: var(--text-muted);
}

.slash-list[b-6ollnk2qc0] {
    max-height: 260px;
    overflow-y: auto;
    padding: 4px;
}

.slash-empty[b-6ollnk2qc0] {
    padding: 16px;
    text-align: center;
    color: var(--text-muted);
    font-size: 0.85rem;
}

.slash-item[b-6ollnk2qc0] {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 8px 10px;
    border: none;
    background: none;
    border-radius: 6px;
    cursor: pointer;
    text-align: left;
    transition: background 0.12s;
}

.slash-item:hover[b-6ollnk2qc0],
.slash-item.active[b-6ollnk2qc0] {
    background: #F0F8F9;
}

.slash-item-icon[b-6ollnk2qc0] {
    font-size: 18px;
    color: var(--brand-teal);
    flex-shrink: 0;
}

.slash-item-body[b-6ollnk2qc0] {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.slash-item-name[b-6ollnk2qc0] {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text-primary);
}

.slash-item-desc[b-6ollnk2qc0] {
    font-size: 0.78rem;
    color: var(--text-muted);
}

.slash-footer[b-6ollnk2qc0] {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 8px 14px;
    border-top: 1px solid #F0F0F0;
    font-size: 0.72rem;
    color: var(--text-muted);
}

.slash-footer kbd[b-6ollnk2qc0] {
    display: inline-block;
    padding: 1px 5px;
    background: #F5F5F5;
    border: 1px solid #E0E0E0;
    border-radius: 3px;
    font-size: 0.7rem;
    font-family: inherit;
}
/* /Components/Chat/SystemMessage.razor.rz.scp.css */
.sys-msg[b-hvc8rn57mq] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 16px;
    margin: 4px 0;
    font-size: 0.82rem;
    color: var(--text-secondary);
}

.sys-icon[b-hvc8rn57mq] {
    font-size: 16px;
    flex-shrink: 0;
}

.sys-text[b-hvc8rn57mq] {
    flex: 1;
    font-style: italic;
}

.sys-time[b-hvc8rn57mq] {
    font-size: 0.75rem;
    color: var(--text-muted);
    white-space: nowrap;
}

/* Variantes de color */
.sys-edit .sys-icon[b-hvc8rn57mq] {
    color: var(--brand-teal);
}

.sys-member .sys-icon[b-hvc8rn57mq] {
    color: #7C4DFF;
}

.sys-task .sys-icon[b-hvc8rn57mq] {
    color: #4CAF50;
}

.sys-evidence .sys-icon[b-hvc8rn57mq] {
    color: #FF9800;
}

.sys-gold .sys-icon[b-hvc8rn57mq] {
    color: var(--pin-gold);
}

.sys-default .sys-icon[b-hvc8rn57mq] {
    color: var(--text-muted);
}
/* /Components/Chat/ThreadView.razor.rz.scp.css */
.thread-view[b-kcobc93cd6] {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: #fff;
}

.thread-header[b-kcobc93cd6] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px;
    border-bottom: 1px solid #F0F0F0;
}

.thread-title[b-kcobc93cd6] {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--text-primary);
}

.thread-close[b-kcobc93cd6] {
    background: none;
    border: none;
    cursor: pointer;
    padding: 4px;
    border-radius: 6px;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    transition: background 0.15s;
}

.thread-close:hover[b-kcobc93cd6] {
    background: #F5F5F5;
    color: var(--text-secondary);
}

.thread-original[b-kcobc93cd6] {
    display: flex;
    gap: 10px;
    padding: 16px;
    border-bottom: 1px solid #F0F0F0;
}

.thread-avatar[b-kcobc93cd6] {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--text-primary);
    background: var(--brand-teal);
    flex-shrink: 0;
}

.thread-avatar.sm[b-kcobc93cd6] {
    width: 28px;
    height: 28px;
    font-size: 0.65rem;
}

.thread-original-body[b-kcobc93cd6] {
    flex: 1;
    min-width: 0;
}

.thread-original-header[b-kcobc93cd6] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin-bottom: 4px;
}

.thread-author[b-kcobc93cd6] {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--text-primary);
}

.thread-author.is-lider[b-kcobc93cd6] {
    color: var(--pin-gold);
}

.thread-time[b-kcobc93cd6] {
    font-size: 0.72rem;
    color: var(--text-muted);
}

.thread-original-text[b-kcobc93cd6] {
    font-size: 0.88rem;
    color: var(--text-primary);
    line-height: 1.5;
}

.thread-separator[b-kcobc93cd6] {
    display: flex;
    align-items: center;
    padding: 10px 16px;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--text-muted);
    border-bottom: 1px solid #F0F0F0;
}

.thread-replies[b-kcobc93cd6] {
    flex: 1;
    overflow-y: auto;
    padding: 8px 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.thread-reply[b-kcobc93cd6] {
    display: flex;
    gap: 8px;
}

.thread-reply-body[b-kcobc93cd6] {
    flex: 1;
    min-width: 0;
}

.thread-reply-header[b-kcobc93cd6] {
    display: flex;
    align-items: baseline;
    gap: 6px;
    margin-bottom: 2px;
}

.thread-reply-text[b-kcobc93cd6] {
    font-size: 0.85rem;
    color: var(--text-primary);
    line-height: 1.45;
}

.thread-composer[b-kcobc93cd6] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    border-top: 1px solid #F0F0F0;
}

.thread-input[b-kcobc93cd6] {
    flex: 1;
    padding: 8px 12px;
    border: 1px solid #E0E0E0;
    border-radius: 8px;
    font-size: 0.85rem;
    background: #F9F9F9;
    outline: none;
    transition: border-color 0.15s;
}

.thread-input:focus[b-kcobc93cd6] {
    border-color: var(--brand-teal);
    background: #fff;
}

.thread-send[b-kcobc93cd6] {
    background: var(--brand-teal);
    border: none;
    border-radius: 8px;
    padding: 8px;
    cursor: pointer;
    display: flex;
    align-items: center;
    color: var(--text-primary);
    transition: background 0.15s;
}

.thread-send:hover:not(:disabled)[b-kcobc93cd6] {
    background: var(--brand-teal-dark);
}

.thread-send:disabled[b-kcobc93cd6] {
    background: #E0E0E0;
    cursor: default;
}

.thread-send .material-symbols-rounded[b-kcobc93cd6] {
    font-size: 18px;
}
/* /Components/Citatorios/CitatorioDrawer.razor.rz.scp.css */
/* Panel de detalle del citatorio. Tokens de tokens.css + estados de citatorios.css. */

.cd-overlay[b-f5gvrrzjqa] { position: fixed; inset: 0; background: rgba(20, 22, 25, .38); backdrop-filter: blur(2px); z-index: var(--z-overlay); animation: cd-fade-b-f5gvrrzjqa 220ms var(--ease); }
.cd[b-f5gvrrzjqa] {
    position: fixed; top: 0; right: 0; bottom: 0; width: min(560px, 100vw); z-index: calc(var(--z-overlay) + 1);
    background: var(--bg-panel); box-shadow: var(--shadow-lg); display: flex; flex-direction: column;
    font-family: var(--font-sans); color: var(--text-primary); animation: cd-in-b-f5gvrrzjqa 320ms var(--ease);
}
@keyframes cd-in-b-f5gvrrzjqa { from { transform: translateX(40px); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes cd-fade-b-f5gvrrzjqa { from { opacity: 0; } }

.cd-load[b-f5gvrrzjqa] { flex: 1; display: grid; place-items: center; align-content: center; gap: 8px; color: var(--text-secondary); }
.cd-load .msr[b-f5gvrrzjqa] { font-size: 32px; }
.cd-spin[b-f5gvrrzjqa] { width: 34px; height: 34px; border-radius: 50%; border: 3px solid var(--border-soft); border-top-color: var(--brand-teal-dark); animation: cd-rot-b-f5gvrrzjqa .8s linear infinite; }
@keyframes cd-rot-b-f5gvrrzjqa { to { transform: rotate(360deg); } }

.cd-h[b-f5gvrrzjqa] { display: flex; align-items: center; gap: 12px; padding: 18px 20px; border-bottom: 1px solid var(--border-soft); background: var(--bg-cream); }
.cd-av[b-f5gvrrzjqa] { width: 46px; height: 46px; font-size: 15px; }
.cd-h-b[b-f5gvrrzjqa] { flex: 1; min-width: 0; }
.cd-h-b h3[b-f5gvrrzjqa] { margin: 0; font-family: var(--font-serif); font-size: 20px; font-weight: 600; line-height: 1.2; }
.cd-h-b small[b-f5gvrrzjqa] { font-size: 12.5px; color: var(--text-secondary); }
.cd-x[b-f5gvrrzjqa] { border: none; background: none; width: 36px; height: 36px; border-radius: 10px; cursor: pointer; color: var(--text-secondary); display: grid; place-items: center; }
.cd-x:hover[b-f5gvrrzjqa] { background: var(--bg-panel); color: var(--text-primary); }

.cd-body[b-f5gvrrzjqa] { flex: 1; overflow-y: auto; padding: 16px 20px 20px; display: flex; flex-direction: column; gap: 14px; }

.cd-facts[b-f5gvrrzjqa] { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.cd-fact[b-f5gvrrzjqa] { background: var(--bg-cream); border-radius: 12px; padding: 10px 12px; }
.cd-fact span[b-f5gvrrzjqa] { display: block; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 2px; }
.cd-fact b[b-f5gvrrzjqa] { font-size: 13.5px; }

.cd-tl[b-f5gvrrzjqa] { list-style: none; margin: 0; padding: 4px 0; display: grid; grid-template-columns: repeat(4, 1fr); position: relative; }
.cd-tl[b-f5gvrrzjqa]::before { content: ""; position: absolute; left: 12%; right: 12%; top: 19px; height: 2px; background: var(--border-soft); }
.cd-tl li[b-f5gvrrzjqa] { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; font-size: 12px; color: var(--text-muted); gap: 2px; }
.cd-tl li b[b-f5gvrrzjqa] { font-size: 12.5px; color: var(--text-secondary); }
.cd-dot[b-f5gvrrzjqa] { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: var(--bg-panel); border: 2px solid var(--border-med); color: var(--text-muted); z-index: 1; margin-bottom: 4px; }
.cd-dot .msr[b-f5gvrrzjqa] { font-size: 17px; }
.cd-tl li.done .cd-dot[b-f5gvrrzjqa] { background: var(--brand-teal-deep); border-color: var(--brand-teal-deep); color: #fff; }
.cd-tl li.done b[b-f5gvrrzjqa] { color: var(--text-primary); }
.cd-tl li.rep .cd-dot[b-f5gvrrzjqa] { background: var(--cit-rep-ink); border-color: var(--cit-rep-ink); }
.cd-tl li.no .cd-dot[b-f5gvrrzjqa] { background: var(--cit-no-ink); border-color: var(--cit-no-ink); color: #fff; }

.cd-rep[b-f5gvrrzjqa], .cd-motivo[b-f5gvrrzjqa], .cd-prop[b-f5gvrrzjqa] { display: flex; gap: 12px; align-items: flex-start; border-radius: 14px; padding: 12px 14px; }
.cd-rep[b-f5gvrrzjqa] { border: 1px solid var(--border-soft); }
.cd-rep-ic[b-f5gvrrzjqa] { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; flex: none; }
.cd-rep b[b-f5gvrrzjqa], .cd-motivo b[b-f5gvrrzjqa] { font-size: 13.5px; }
.cd-rep p[b-f5gvrrzjqa], .cd-motivo p[b-f5gvrrzjqa] { margin: 2px 0 0; font-size: 13px; color: var(--text-secondary); }
.cd-rep-desc[b-f5gvrrzjqa] { font-style: italic; }
.cd-motivo[b-f5gvrrzjqa] { background: var(--bg-light-teal); }
.cd-motivo > .msr[b-f5gvrrzjqa] { color: var(--brand-teal-deep); }
.cd-prop[b-f5gvrrzjqa] { background: var(--cit-rep-bg); color: var(--cit-rep-ink); flex-wrap: wrap; }
.cd-prop > div:first-of-type[b-f5gvrrzjqa] { flex: 1; min-width: 200px; display: flex; flex-direction: column; }
.cd-prop small[b-f5gvrrzjqa] { color: var(--text-secondary); }
.cd-prop-acc[b-f5gvrrzjqa] { display: flex; gap: 8px; }

.cd-msg[b-f5gvrrzjqa] { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-radius: 12px; font-size: 13px; font-weight: 600; }
.cd-msg.ok[b-f5gvrrzjqa] { background: var(--cit-ok-bg); color: var(--cit-ok-ink); }
.cd-msg.err[b-f5gvrrzjqa] { background: var(--cit-no-bg); color: var(--cit-no-ink); }

.cd-att[b-f5gvrrzjqa] { border: 1px solid var(--border-soft); border-radius: 16px; padding: 14px; display: flex; flex-direction: column; gap: 10px; animation: cd-fade-b-f5gvrrzjqa 220ms var(--ease); }
.cd-att.done[b-f5gvrrzjqa] { background: var(--bg-cream); }
.cd-att.warn[b-f5gvrrzjqa] { border-color: var(--cit-no-bg); background: var(--error-bg); }
.cd-att h4[b-f5gvrrzjqa] { margin: 0; font-family: var(--font-serif); font-size: 17px; font-weight: 600; }
.cd-choice[b-f5gvrrzjqa] { display: flex; gap: 8px; }
.cd-choice button[b-f5gvrrzjqa] {
    flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 40px; border-radius: 12px;
    border: 1px solid var(--border-med); background: var(--bg-panel); font: 600 13px/1 var(--font-sans); cursor: pointer; color: var(--text-secondary);
}
.cd-choice button.on[b-f5gvrrzjqa] { background: var(--cit-ok-bg); border-color: var(--cit-ok-ink); color: var(--cit-ok-ink); }
.cd-choice button.on.no[b-f5gvrrzjqa] { background: var(--cit-no-bg); border-color: var(--cit-no-ink); color: var(--cit-no-ink); }
.cd-fld[b-f5gvrrzjqa] { display: flex; flex-direction: column; gap: 4px; font-size: 12px; font-weight: 700; color: var(--text-secondary); }
.cd-fld textarea[b-f5gvrrzjqa], .cd-fld input[b-f5gvrrzjqa], .cd-fld select[b-f5gvrrzjqa] {
    font: 400 14px/1.4 var(--font-sans); color: var(--text-primary); padding: 9px 11px; border-radius: 10px;
    border: 1px solid var(--border-med); background: var(--bg-panel); resize: vertical;
}
.cd-fld textarea:focus[b-f5gvrrzjqa], .cd-fld input:focus[b-f5gvrrzjqa], .cd-fld select:focus[b-f5gvrrzjqa] { outline: 2px solid var(--brand-teal-primary); outline-offset: 0; border-color: transparent; }
.cd-two[b-f5gvrrzjqa] { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.cd-ro span[b-f5gvrrzjqa] { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--text-muted); }
.cd-ro p[b-f5gvrrzjqa] { margin: 2px 0 0; font-size: 13.5px; }
.cd-hint[b-f5gvrrzjqa] { display: flex; align-items: center; gap: 6px; margin: 0; font-size: 12.5px; color: var(--text-secondary); }
.cd-hint .msr[b-f5gvrrzjqa] { font-size: 17px; }
.cd-row[b-f5gvrrzjqa] { display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }

.cd-days[b-f5gvrrzjqa] { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 2px; }
.cd-days button[b-f5gvrrzjqa] {
    flex: none; display: flex; flex-direction: column; align-items: center; width: 52px; padding: 6px 0; border-radius: 12px;
    border: 1px solid var(--border-soft); background: var(--bg-panel); font: 600 11px/1.2 var(--font-sans); color: var(--text-muted); cursor: pointer;
}
.cd-days button b[b-f5gvrrzjqa] { font-family: var(--font-serif); font-size: 17px; color: var(--text-primary); }
.cd-days button.on[b-f5gvrrzjqa] { background: var(--bg-sidebar); border-color: var(--bg-sidebar); color: var(--text-sidebar); }
.cd-days button.on b[b-f5gvrrzjqa] { color: #fff; }
.cd-slots-load[b-f5gvrrzjqa] { font-size: 13px; color: var(--text-muted); }
.cd-slots[b-f5gvrrzjqa] { display: grid; grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); gap: 6px; }
.cd-slot[b-f5gvrrzjqa] { height: 34px; border-radius: 9px; border: 1px solid var(--border-soft); background: var(--bg-panel); font: 600 12.5px/1 var(--font-sans); cursor: pointer; color: var(--text-primary); }
.cd-slot.libre:hover[b-f5gvrrzjqa] { border-color: var(--brand-teal-primary); background: var(--bg-light-teal); }
.cd-slot.on[b-f5gvrrzjqa] { background: var(--brand-teal-deep); border-color: var(--brand-teal-deep); color: #fff; }
.cd-slot.clase[b-f5gvrrzjqa] { background: repeating-linear-gradient(135deg, var(--cit-clase-a) 0 3px, var(--cit-clase-b) 3px 7px); color: var(--text-muted); cursor: not-allowed; }
.cd-slot.citatorio[b-f5gvrrzjqa] { background: var(--cit-conf-bg); color: var(--cit-conf-ink); cursor: not-allowed; }
.cd-slot.pasado[b-f5gvrrzjqa] { color: var(--border-med); cursor: not-allowed; text-decoration: line-through; }

.cd-foot[b-f5gvrrzjqa] { display: flex; gap: 8px; padding: 12px 20px; border-top: 1px solid var(--border-soft); background: var(--bg-panel); flex-wrap: wrap; }
.cd-foot .push[b-f5gvrrzjqa] { margin-left: auto; }

.cd-btn[b-f5gvrrzjqa] {
    display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 38px; padding: 0 14px; border-radius: 10px;
    border: 1px solid transparent; font: 600 13.5px/1 var(--font-sans); cursor: pointer; text-decoration: none; white-space: nowrap;
    transition: transform 150ms var(--ease), box-shadow 150ms var(--ease);
}
.cd-btn .msr[b-f5gvrrzjqa] { font-size: 18px; }
.cd-btn.ghost[b-f5gvrrzjqa] { background: var(--bg-panel); border-color: var(--border-soft); color: var(--text-primary); }
.cd-btn.ghost:hover[b-f5gvrrzjqa] { background: var(--bg-light-teal); }
.cd-btn.ghost.danger-t[b-f5gvrrzjqa] { color: var(--danger); }
.cd-btn.primary[b-f5gvrrzjqa] { background: linear-gradient(135deg, var(--brand-teal-dark), var(--brand-teal-deep)); color: #fff; box-shadow: 0 6px 14px rgba(44, 109, 111, .28); }
.cd-btn.primary:hover:not(:disabled)[b-f5gvrrzjqa] { transform: translateY(-1px); }
.cd-btn.danger[b-f5gvrrzjqa] { background: var(--danger); color: #fff; }
.cd-btn:disabled[b-f5gvrrzjqa] { opacity: .5; cursor: not-allowed; box-shadow: none; }

@media (max-width: 560px) {
    .cd-facts[b-f5gvrrzjqa], .cd-two[b-f5gvrrzjqa] { grid-template-columns: 1fr; }
    .cd-tl[b-f5gvrrzjqa] { grid-template-columns: repeat(2, 1fr); row-gap: 12px; }
    .cd-tl[b-f5gvrrzjqa]::before { display: none; }
    .cd-foot .push[b-f5gvrrzjqa] { margin-left: 0; width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .cd[b-f5gvrrzjqa], .cd-overlay[b-f5gvrrzjqa], .cd-att[b-f5gvrrzjqa] { animation: none; }
}
/* /Components/ClasesAsignadas/AntesDespues.razor.rz.scp.css */
/* Clases asignadas con panel lateral — «Antes / Después» (mockup .ba). Solo tokens. */
.ba[b-yqt42omkrv] {
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    overflow: hidden;
    margin: 4px 0 18px;
    background: var(--bg-panel);
}

.ba-h[b-yqt42omkrv] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    background: var(--bg-cream);
    font-size: 12.5px;
    font-weight: 800;
    border-bottom: 1px solid var(--border-soft);
    color: var(--text-primary);
}

.ba-h .msr[b-yqt42omkrv] { font-size: 18px; color: var(--brand-teal-deep); }
.ba-etiqueta[b-yqt42omkrv] { margin-left: auto; }

table[b-yqt42omkrv] { width: 100%; border-collapse: collapse; font-size: 12.5px; }

thead th[b-yqt42omkrv] {
    font-size: 10.5px;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: var(--text-secondary);
    text-align: left;
    padding: 8px 12px 6px;
    font-weight: 800;
}

tbody th[b-yqt42omkrv],
tbody td[b-yqt42omkrv] {
    padding: 8px 12px;
    border-top: 1px solid var(--border-soft);
    vertical-align: top;
    text-align: left;
    color: var(--text-primary);
}

tbody th[b-yqt42omkrv] {
    color: var(--text-secondary);
    font-weight: 600;
    width: 30%;
}

tr.chg th[b-yqt42omkrv],
tr.chg td[b-yqt42omkrv] { background: color-mix(in srgb, var(--brand-teal-primary) 10%, transparent); }
tr.chg td:last-child[b-yqt42omkrv] { font-weight: 700; color: var(--text-primary); }
tr.chg td:nth-child(2)[b-yqt42omkrv] {
    color: var(--text-secondary);
    text-decoration: line-through;
    text-decoration-color: color-mix(in srgb, var(--text-secondary) 50%, transparent);
}

.ba-flecha[b-yqt42omkrv] { color: var(--brand-teal-deep); font-size: 16px; vertical-align: -3px; }

.ba-sr[b-yqt42omkrv] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

@media (max-width: 640px) {
    tbody th[b-yqt42omkrv] { width: 34%; }
}
/* /Components/ClasesAsignadas/PanelClase.razor.rz.scp.css */
/* =============================================================================
   Clases asignadas con panel lateral — estilos del panel (mockup aprobado).
   Solo var(--token); los tintes se derivan con color-mix sobre tokens.
   ============================================================================= */

/* ── Capa y contenedor ── */
.pl-scrim[b-1hr79kzkja] {
    position: fixed;
    inset: 0;
    z-index: 900;
    background: color-mix(in srgb, var(--bg-rail) 34%, transparent);
    animation: pl-fade-b-1hr79kzkja .2s var(--ease);
}

.pl[b-1hr79kzkja] {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: var(--z-overlay);
    width: min(580px, 100%);
    background: var(--bg-panel);
    box-shadow: -16px 0 48px color-mix(in srgb, var(--bg-rail) 22%, transparent);
    display: flex;
    flex-direction: column;
    outline: none;
    animation: pl-entra-b-1hr79kzkja .26s var(--ease);
}

@keyframes pl-entra-b-1hr79kzkja { from { transform: translateX(102%); } to { transform: none; } }
@keyframes pl-fade-b-1hr79kzkja { from { opacity: 0; } to { opacity: 1; } }

.pl-sr[b-1hr79kzkja] {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* ── Cabecera ── */
.pl-h[b-1hr79kzkja] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 18px 20px 14px;
    background: linear-gradient(180deg, var(--bg-cream), var(--bg-panel));
}

.pl-ico[b-1hr79kzkja] {
    width: 40px;
    height: 40px;
    border-radius: var(--radius-lg);
    display: grid;
    place-items: center;
    background: var(--bg-light-teal);
    color: var(--brand-teal-deep);
    flex: none;
}

.pl-ico.dng[b-1hr79kzkja] { background: color-mix(in srgb, var(--danger) 10%, transparent); color: var(--danger); }
.pl-h-txt[b-1hr79kzkja] { flex: 1; min-width: 0; }

.pl-h h2[b-1hr79kzkja] {
    font-family: var(--font-serif);
    font-weight: 600;
    font-size: 21px;
    letter-spacing: -.3px;
    line-height: 1.2;
    margin: 0;
    overflow-wrap: anywhere;
}

.pl-h p[b-1hr79kzkja] { margin: 3px 0 0; color: var(--text-secondary); font-size: 12.5px; }

.pl-x[b-1hr79kzkja]  .ui-btn.icon {
    width: 40px;
    height: 40px;
    border-color: transparent;
    background: transparent;
}

.pl-x[b-1hr79kzkja]  .ui-btn.icon .msr { font-size: 20px; }

/* ── Pestañas ── */
.pl-tabs[b-1hr79kzkja] {
    display: flex;
    gap: 4px;
    padding: 0 16px;
    border-bottom: 1px solid var(--border-soft);
    overflow-x: auto;
    scrollbar-width: none;
    flex: none;
}

.pl-tab[b-1hr79kzkja] {
    border: 0;
    background: transparent;
    padding: 11px 12px 10px;
    font-weight: 700;
    font-size: 13px;
    color: var(--text-secondary);
    border-bottom: 2.5px solid transparent;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
    min-height: 44px;
    cursor: pointer;
}

.pl-tab .msr[b-1hr79kzkja] { font-size: 18px; }
.pl-tab:hover[b-1hr79kzkja] { color: var(--text-primary); }
.pl-tab[aria-selected="true"][b-1hr79kzkja] { color: var(--brand-teal-deep); border-bottom-color: var(--brand-teal-deep); }
.pl-tab.dng[aria-selected="true"][b-1hr79kzkja] { color: var(--danger); border-bottom-color: var(--danger); }

/* ── Cuerpo y pie ── */
.pl-b[b-1hr79kzkja] {
    flex: 1;
    overflow-y: auto;
    padding: 18px 20px 24px;
    overscroll-behavior: contain;
}

fieldset[b-1hr79kzkja] { border: 0; margin: 0; padding: 0; min-width: 0; }
fieldset:disabled[b-1hr79kzkja] { opacity: .72; }

.pl-f[b-1hr79kzkja] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 20px;
    border-top: 1px solid var(--border-soft);
    background: var(--bg-panel);
    flex: none;
}

.pl-req-leg[b-1hr79kzkja] { font-size: 12px; color: var(--text-secondary); margin-right: auto; }
.pl-req-leg b[b-1hr79kzkja] { color: var(--danger); }

.pl-why[b-1hr79kzkja] {
    font-size: 12px;
    color: var(--text-secondary);
    margin-right: auto;
    display: flex;
    align-items: center;
    gap: 5px;
}

.pl-why .msr[b-1hr79kzkja] { font-size: 16px; }
.pl-f-btn[b-1hr79kzkja] { display: inline-flex; }
.pl-f-btn[b-1hr79kzkja]  .ui-btn { min-height: 40px; }

.pl-spin[b-1hr79kzkja] {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 2px solid currentColor;
    border-right-color: transparent;
    animation: pl-giro-b-1hr79kzkja .7s linear infinite;
    flex: none;
}

@keyframes pl-giro-b-1hr79kzkja { to { transform: rotate(360deg); } }

/* ── Contexto heredado ── */
.ctx[b-1hr79kzkja] {
    border: 1px solid var(--border-soft);
    background: var(--bg-cream);
    border-radius: var(--radius-lg);
    padding: 12px 14px;
    margin-bottom: 18px;
}

.ctx-top[b-1hr79kzkja] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 10.5px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .6px;
    color: var(--text-secondary);
    margin-bottom: 9px;
}

.ctx-top .msr[b-1hr79kzkja] { font-size: 15px; }
.ctx-who[b-1hr79kzkja] { display: flex; align-items: center; gap: 12px; }
.ctx-who > div[b-1hr79kzkja] { min-width: 0; }
.ctx-who > div > b[b-1hr79kzkja] { display: block; font-size: 15px; }
.ctx-who > div > span[b-1hr79kzkja] { font-size: 12.5px; color: var(--text-secondary); }
.ctx-grid[b-1hr79kzkja] { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }

.kv[b-1hr79kzkja] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: 99px;
    padding: 3px 10px;
}

.kv .msr[b-1hr79kzkja] { font-size: 15px; }
.kv b[b-1hr79kzkja] { color: var(--text-primary); }

.hist[b-1hr79kzkja] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
    font-size: 12.5px;
    padding: 8px 10px;
    border-radius: var(--radius-md);
}

.hist .msr[b-1hr79kzkja] { font-size: 18px; }
.hist.con[b-1hr79kzkja] { background: color-mix(in srgb, var(--info) 10%, transparent); color: var(--info-ink); }
.hist.sin[b-1hr79kzkja] { background: color-mix(in srgb, var(--success) 10%, transparent); color: var(--success-ink); }
.hist-sk[b-1hr79kzkja] { padding: 0; }

/* ── Campos ── */
.fld[b-1hr79kzkja] { margin-bottom: 18px; }

.fld-l[b-1hr79kzkja] {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 6px;
    font-size: 12.5px;
    font-weight: 700;
    color: var(--text-primary);
    margin-bottom: 7px;
}

.fld-l .req[b-1hr79kzkja] { color: var(--danger); }
/* Texto auxiliar de la etiqueta («· elige primero el grupo», «(opcional)»): clase propia para no
   heredar la tarjeta .opt (en el mockup chocaban y se pintaba como caja). */
.fld-opt[b-1hr79kzkja] { font-weight: 500; color: var(--text-secondary); font-size: 12px; }

.step[b-1hr79kzkja] {
    display: inline-grid;
    place-items: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--brand-teal-deep);
    color: var(--bg-panel);
    font-size: 11px;
    font-weight: 800;
    flex: none;
    align-self: center;
}

.step.done[b-1hr79kzkja] { background: var(--success-ink); }
.step.off[b-1hr79kzkja] { background: var(--border-med); color: var(--text-primary); }

.hint[b-1hr79kzkja] { font-size: 12px; color: var(--text-secondary); margin: 6px 0 0; line-height: 1.45; }
.hint a[b-1hr79kzkja] { color: var(--brand-teal-deep); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.hint-chk[b-1hr79kzkja] { display: block; margin: 2px 0 0; }

.ferr[b-1hr79kzkja] {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    font-weight: 600;
    color: var(--danger);
    margin: 7px 0 0;
}

.ferr .msr[b-1hr79kzkja] { font-size: 16px; }

.inp[b-1hr79kzkja] {
    width: 100%;
    min-height: 42px;
    border: 1px solid var(--border-med);
    border-radius: var(--radius-md);
    background: var(--bg-panel);
    padding: 9px 12px;
    font: inherit;
    color: var(--text-primary);
}

.inp[b-1hr79kzkja]::placeholder { color: var(--text-muted); }

.inp:focus[b-1hr79kzkja] {
    outline: none;
    border-color: var(--brand-teal-deep);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand-teal) 25%, transparent);
}

.inp:disabled[b-1hr79kzkja] { background: var(--bg-cream); cursor: not-allowed; }

.sub-srch[b-1hr79kzkja] { position: relative; margin-bottom: 8px; }

.sub-srch .msr[b-1hr79kzkja] {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 18px;
    color: var(--text-secondary);
    pointer-events: none;
}

.sub-srch .inp[b-1hr79kzkja] { padding-left: 34px; min-height: 38px; background: var(--bg-cream); }

.grp-h[b-1hr79kzkja] {
    font-size: 10.5px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .6px;
    color: var(--text-secondary);
    margin: 12px 0 7px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.grp-h .msr[b-1hr79kzkja] { font-size: 15px; }

/* ── Opciones radio-card ── */
.opts[b-1hr79kzkja] { display: grid; gap: 8px; }
.opts.g3[b-1hr79kzkja] { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.opt[b-1hr79kzkja] {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: 1.5px solid var(--border-soft);
    border-radius: 11px;
    background: var(--bg-panel);
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
    min-height: 48px;
}

.opt:hover[b-1hr79kzkja] { border-color: var(--border-med); }
.opt input[b-1hr79kzkja] { position: absolute; opacity: 0; pointer-events: none; }
.opt:has(input:focus-visible)[b-1hr79kzkja] { outline: 2px solid var(--brand-teal); outline-offset: 2px; }

.opt:has(input:checked)[b-1hr79kzkja] {
    border-color: var(--brand-teal-deep);
    background: color-mix(in srgb, var(--brand-teal-primary) 8%, var(--bg-panel));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand-teal-deep) 10%, transparent);
}

.opt.off[b-1hr79kzkja] { cursor: not-allowed; background: var(--bg-cream); border-style: dashed; }
.opt.off .opt-t[b-1hr79kzkja] { color: var(--text-secondary); }

.opt-ck[b-1hr79kzkja] {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 2px solid var(--border-med);
    display: grid;
    place-items: center;
    flex: none;
    background: var(--bg-panel);
    transition: all .15s ease;
}

.opt-ck .msr[b-1hr79kzkja] { font-size: 14px; color: var(--bg-panel); opacity: 0; }
.opt:has(input:checked) .opt-ck[b-1hr79kzkja] { background: var(--brand-teal-deep); border-color: var(--brand-teal-deep); }
.opt:has(input:checked) .opt-ck .msr[b-1hr79kzkja] { opacity: 1; }

.opt-body[b-1hr79kzkja] { flex: 1; min-width: 0; display: flex; flex-direction: column; }

.opt-t[b-1hr79kzkja] {
    font-weight: 700;
    font-size: 13.5px;
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
}

.opt-s[b-1hr79kzkja] { font-size: 12px; color: var(--text-secondary); margin-top: 1px; }
.opt-s.bloque[b-1hr79kzkja] { display: block; }

.opt-r[b-1hr79kzkja] {
    font-size: 11.5px;
    color: var(--text-secondary);
    text-align: right;
    flex: none;
    max-width: 48%;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
}

.opt.big[b-1hr79kzkja] { align-items: flex-start; padding: 13px 14px; }
.opt.big .opt-ck[b-1hr79kzkja] { margin-top: 1px; }

.opt.dng:has(input:checked)[b-1hr79kzkja] {
    border-color: var(--danger);
    background: color-mix(in srgb, var(--danger) 4%, var(--bg-panel));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--danger) 8%, transparent);
}

.opt.dng:has(input:checked) .opt-ck[b-1hr79kzkja] { background: var(--danger); border-color: var(--danger); }

.gopt[b-1hr79kzkja] { flex-direction: column; align-items: flex-start; gap: 2px; padding: 10px 12px; }
.gopt .gname[b-1hr79kzkja] { font-family: var(--font-serif); font-weight: 600; font-size: 19px; line-height: 1.1; }
.gopt .opt-s[b-1hr79kzkja] { font-size: 11.5px; }
.gopt .opt-ck[b-1hr79kzkja] { position: absolute; top: 9px; right: 9px; width: 18px; height: 18px; }
.gopt-chip[b-1hr79kzkja] { margin-top: 4px; }

.picker[b-1hr79kzkja] { max-height: 270px; overflow: auto; padding: 2px; border-radius: 11px; }
.pl-sk-lista[b-1hr79kzkja] { display: grid; gap: 8px; }

/* ── Checkbox, solo lectura, candado ── */
.chk[b-1hr79kzkja] {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 11px 12px;
    border: 1px solid var(--border-soft);
    border-radius: 11px;
    background: var(--bg-panel);
    cursor: pointer;
}

.chk input[b-1hr79kzkja] { width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--brand-teal-deep); flex: none; }
.chk b[b-1hr79kzkja] { font-size: 13px; }
.chk.off[b-1hr79kzkja] { background: var(--bg-cream); cursor: not-allowed; }

.ro[b-1hr79kzkja] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid var(--border-soft);
    border-radius: 11px;
    background: var(--bg-cream);
}

.ro .grow[b-1hr79kzkja] { flex: 1; min-width: 0; }
.ro .grow b[b-1hr79kzkja] { display: block; font-size: 13.5px; }
.ro .grow span[b-1hr79kzkja] { font-size: 12px; color: var(--text-secondary); }

.lock[b-1hr79kzkja] {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 11px 12px;
    border: 1px dashed var(--border-med);
    border-radius: 11px;
    background: var(--bg-cream);
    font-size: 12.5px;
    color: var(--text-secondary);
}

.lock .msr[b-1hr79kzkja] { color: var(--text-secondary); }
.lock b[b-1hr79kzkja] { color: var(--text-primary); }

.morebtn[b-1hr79kzkja] {
    border: 0;
    background: transparent;
    color: var(--brand-teal-deep);
    font-weight: 700;
    font-size: 12.5px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 6px 4px;
    min-height: 32px;
    cursor: pointer;
    white-space: nowrap;
}

.morebtn .msr[b-1hr79kzkja] { font-size: 17px; }
.morebtn-inline[b-1hr79kzkja] { padding: 0; min-height: 0; display: inline; }

details.adv[b-1hr79kzkja] { border-top: 1px dashed var(--border-med); padding-top: 12px; margin-top: 4px; margin-bottom: 14px; }

details.adv summary[b-1hr79kzkja] {
    cursor: pointer;
    font-size: 12.5px;
    font-weight: 700;
    color: var(--brand-teal-deep);
    list-style: none;
    display: flex;
    align-items: center;
    gap: 6px;
    min-height: 32px;
}

details.adv summary[b-1hr79kzkja]::-webkit-details-marker { display: none; }
details.adv summary .msr[b-1hr79kzkja] { transition: transform .15s ease; font-size: 18px; }
details.adv[open] summary .msr[b-1hr79kzkja] { transform: rotate(90deg); }
.fld-adv[b-1hr79kzkja] { margin-top: 10px; }

/* ── Avisos dentro del panel ── */
.al[b-1hr79kzkja] {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 11px 13px;
    border-radius: 11px;
    font-size: 12.5px;
    line-height: 1.5;
    margin: 0 0 14px;
    outline: none;
}

.al:focus-visible[b-1hr79kzkja] { outline: 2px solid var(--brand-teal); outline-offset: 2px; }
.al .msr[b-1hr79kzkja] { font-size: 19px; margin-top: 1px; }
.al b.t[b-1hr79kzkja] { display: block; font-size: 13px; margin-bottom: 1px; }
.al.info[b-1hr79kzkja] { background: color-mix(in srgb, var(--info) 10%, transparent); color: var(--info-ink); }
.al.warn[b-1hr79kzkja] { background: color-mix(in srgb, var(--warning) 12%, transparent); color: var(--warning-ink); }
.al.warn .msr[b-1hr79kzkja] { color: var(--warning-ink); }

.al.dng[b-1hr79kzkja] {
    background: color-mix(in srgb, var(--danger) 8%, transparent);
    color: var(--danger);
    border: 1px solid color-mix(in srgb, var(--danger) 25%, transparent);
}

.al.ok[b-1hr79kzkja] { background: color-mix(in srgb, var(--success) 10%, transparent); color: var(--success-ink); }
.al-quitar[b-1hr79kzkja] { background: color-mix(in srgb, var(--danger) 4%, var(--bg-panel)); }
.al-campo[b-1hr79kzkja] { margin-top: 10px; margin-bottom: 0; }
.al-act[b-1hr79kzkja] { margin-top: 7px; display: flex; gap: 8px; flex-wrap: wrap; }
.al-swap[b-1hr79kzkja] { animation: pl-al-b-1hr79kzkja .22s var(--ease); }

@keyframes pl-al-b-1hr79kzkja { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }

/* ── Qué va a pasar, vista previa, fecha de efecto ── */
.fx[b-1hr79kzkja] {
    list-style: none;
    margin: 0 0 18px;
    padding: 0;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
}

.fx li[b-1hr79kzkja] {
    display: flex;
    gap: 11px;
    padding: 11px 13px;
    border-top: 1px solid var(--border-soft);
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--text-secondary);
}

.fx li:first-child[b-1hr79kzkja] { border-top: 0; }
.fx li .msr[b-1hr79kzkja] { font-size: 19px; color: var(--brand-teal-deep); margin-top: 1px; }
.fx li b.t[b-1hr79kzkja] { display: block; color: var(--text-primary); font-size: 12.5px; }
.fx li strong[b-1hr79kzkja] { color: var(--text-primary); }

.sec-t[b-1hr79kzkja] {
    font-size: 10.5px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .6px;
    color: var(--text-secondary);
    margin: 4px 0 8px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.sec-t .msr[b-1hr79kzkja] { font-size: 15px; }
.sec-t-sep[b-1hr79kzkja] { margin-top: 16px; }

.preview[b-1hr79kzkja] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    padding: 12px 14px;
    border: 1.5px dashed color-mix(in srgb, var(--brand-teal-deep) 35%, transparent);
    background: color-mix(in srgb, var(--brand-teal-primary) 5%, var(--bg-panel));
    border-radius: var(--radius-lg);
    margin-bottom: 18px;
}

.preview-cambio[b-1hr79kzkja] { justify-content: space-between; }
.preview .flecha[b-1hr79kzkja] { color: var(--brand-teal-deep); }
.preview b[b-1hr79kzkja] { color: var(--text-primary); }

.efecto[b-1hr79kzkja] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    font-size: 12.5px;
    margin: -6px 0 18px;
    color: var(--text-secondary);
}

.efecto b[b-1hr79kzkja] { color: var(--text-primary); }
.efecto .msr[b-1hr79kzkja] { font-size: 18px; color: var(--brand-teal-deep); }

/* ── Piezas de lista reutilizadas en el panel ── */
.mat[b-1hr79kzkja] { font-weight: 700; font-size: 13.5px; display: inline-flex; align-items: center; gap: 7px; }
.mdot[b-1hr79kzkja] { width: 8px; height: 8px; border-radius: 50%; flex: none; display: inline-block; }

.gchip[b-1hr79kzkja] {
    font-size: 11.5px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 7px;
    background: var(--bg-light-teal);
    color: var(--brand-teal-deep);
    border: 1px solid color-mix(in srgb, var(--brand-teal-deep) 14%, transparent);
}

.gchip.v[b-1hr79kzkja] { background: var(--ev-cte-bg); color: var(--ev-cte); border-color: color-mix(in srgb, var(--ev-cte) 16%, transparent); }
.tag[b-1hr79kzkja] { font-size: 11px; font-weight: 600; color: var(--text-secondary); }
.dmini[b-1hr79kzkja] { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--text-secondary); font-weight: 600; }
.dmini-fin[b-1hr79kzkja] { margin-left: auto; }

.gb[b-1hr79kzkja] {
    width: 44px;
    height: 40px;
    border-radius: 11px;
    display: grid;
    place-items: center;
    font-family: var(--font-serif);
    font-weight: 600;
    font-size: 15px;
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
    border: 1px solid color-mix(in srgb, var(--brand-teal-deep) 15%, transparent);
    flex: none;
    overflow: hidden;
}

.gb.v[b-1hr79kzkja] { color: var(--ev-cte); background: var(--ev-cte-bg); border-color: color-mix(in srgb, var(--ev-cte) 18%, transparent); }
.gb-lg[b-1hr79kzkja] { width: 52px; height: 46px; font-size: 18px; }

.pl-av-vacio[b-1hr79kzkja] {
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: var(--cream-deep);
    color: var(--text-secondary);
    border: 1.5px dashed var(--border-med);
    flex: none;
}

.pl-av-vacio.sm[b-1hr79kzkja] { width: 28px; height: 28px; }
.pl-av-vacio.sm .msr[b-1hr79kzkja] { font-size: 16px; }
.pl-av-vacio.lg[b-1hr79kzkja] { width: 44px; height: 44px; }
.pl-av-vacio.lg .msr[b-1hr79kzkja] { font-size: 20px; }

/* ── Móvil (<1024): pantalla completa, sin cortes ni scroll horizontal ── */
@media (max-width: 1023.98px) {
    .pl[b-1hr79kzkja] { width: 100%; }
}

@media (max-width: 640px) {
    .opts.g3[b-1hr79kzkja] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pl-h[b-1hr79kzkja] { padding: 14px 14px 10px; }
    .pl-h h2[b-1hr79kzkja] { font-size: 19px; }
    .pl-b[b-1hr79kzkja] { padding: 14px 14px 22px; }
    .pl-f[b-1hr79kzkja] { padding: 10px 14px 14px; flex-wrap: wrap; }
    .pl-f .pl-req-leg[b-1hr79kzkja], .pl-f .pl-why[b-1hr79kzkja] { flex-basis: 100%; }
    .pl-f-btn[b-1hr79kzkja] { flex: 1; }
    .pl-f-btn[b-1hr79kzkja]  .ui-btn { width: 100%; }
    .pl-tabs[b-1hr79kzkja] { padding: 0 8px; }
    .opt-r[b-1hr79kzkja] { max-width: 44%; }
    .ro[b-1hr79kzkja] { flex-wrap: wrap; }
}

/* Objetivos táctiles >= 44 px (SISTEMA-DISENO §7 regla 4) */
@media (pointer: coarse) {
    .pl-f-btn[b-1hr79kzkja]  .ui-btn,
    .al-act[b-1hr79kzkja]  .ui-btn,
    .morebtn:not(.morebtn-inline)[b-1hr79kzkja],
    .inp[b-1hr79kzkja],
    .sub-srch .inp[b-1hr79kzkja],
    details.adv summary[b-1hr79kzkja] { min-height: 44px; }
    .pl-x[b-1hr79kzkja]  .ui-btn.icon { width: 44px; height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
    .pl[b-1hr79kzkja], .pl-scrim[b-1hr79kzkja], .al-swap[b-1hr79kzkja], .pl-spin[b-1hr79kzkja], .opt[b-1hr79kzkja], .opt-ck[b-1hr79kzkja], details.adv summary .msr[b-1hr79kzkja] {
        animation: none;
        transition: none;
    }
}
/* /Components/Clases/AgregarActividadDrawer.razor.rz.scp.css */
/* Agregar actividad v2 (spec 2026-10-08 R2; mockup docs/propuestas/agregar-actividad-v2/web.html).
   Solo tokens de tokens.css para la marca: ningun literal de marca (guard T-153).
   Contrastes (mockup, WCAG): carbon/BrandTealPrimary 8.60; blanco/BrandTealDeep 5.96; BrandTealDeep/blanco 5.96;
   success-ink/success-bg 6.52; danger/error-bg 6.46; warning-ink/warn-bg 5.77; text-muted/blanco 5.94. */

.act-drawer-overlay[b-8ilvvb6fbl] { position: fixed; inset: 0; background: rgba(20, 22, 25, 0.28); z-index: 300; }
.act-drawer[b-8ilvvb6fbl] {
    position: fixed; top: 0; right: 0; bottom: 0; width: 460px; max-width: 100vw;
    background: var(--bg-panel); border-left: 1px solid var(--border-soft);
    box-shadow: -16px 0 40px rgba(26, 28, 31, 0.18); z-index: 301;
    display: flex; flex-direction: column; font-family: var(--font-sans); color: var(--text-primary);
}
.aa-head[b-8ilvvb6fbl] {
    background: var(--bg); padding: 16px 20px; display: grid; grid-template-columns: 36px 40px 1fr;
    gap: 12px; align-items: center; border-bottom: 1px solid var(--border-soft); flex-shrink: 0;
}
.aa-close[b-8ilvvb6fbl] {
    width: 36px; height: 36px; border-radius: 10px; background: rgba(0, 0, 0, 0.04);
    border: 1px solid rgba(0, 0, 0, 0.08); color: var(--text-secondary);
    display: flex; align-items: center; justify-content: center; cursor: pointer;
}
.aa-close:disabled[b-8ilvvb6fbl] { opacity: 0.4; cursor: not-allowed; }
.aa-ico[b-8ilvvb6fbl] { width: 40px; height: 40px; border-radius: 10px; background: var(--bg-light-teal); color: var(--brand-teal-deep); display: flex; align-items: center; justify-content: center; }
.aa-ico .msr[b-8ilvvb6fbl] { font-size: 22px; }
.aa-title[b-8ilvvb6fbl] { font-family: var(--font-serif); font-size: 20px; font-weight: 600; letter-spacing: -0.3px; line-height: 1.1; margin: 0; }
.aa-sub[b-8ilvvb6fbl] { font-size: 12.5px; color: var(--text-secondary); margin: 3px 0 0; }
.aa-body[b-8ilvvb6fbl] { flex: 1; overflow-y: auto; padding: 20px; display: flex; flex-direction: column; gap: 18px; }
.aa-dim[b-8ilvvb6fbl] { opacity: 0.55; }
.aa-lbl[b-8ilvvb6fbl] { font-size: 11px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-muted); display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 30px; }
.modal-input[b-8ilvvb6fbl] { margin-top: 8px; width: 100%; height: 40px; box-sizing: border-box; border: 1px solid var(--border-soft); border-radius: 10px; padding: 0 12px; font-family: inherit; font-size: 14px; color: var(--text-primary); background: #FBFBFB; outline: none; }
.modal-input:focus[b-8ilvvb6fbl] { border-color: var(--brand-teal-dark); box-shadow: 0 0 0 3px rgba(109, 199, 208, 0.25); background: var(--bg-panel); }
.modal-input:disabled[b-8ilvvb6fbl] { color: var(--text-secondary); }
.criterio-chips[b-8ilvvb6fbl] { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.criterio-chip[b-8ilvvb6fbl] { padding: 0 16px; height: 34px; display: inline-flex; align-items: center; border-radius: 20px; font-family: inherit; font-size: 12.5px; background: var(--bg-panel); border: 1px solid #DDDDDD; color: var(--text-secondary); cursor: pointer; }
.criterio-chip:disabled[b-8ilvvb6fbl] { cursor: default; }
.criterio-chip-active[b-8ilvvb6fbl] { background: var(--brand-teal-dark); border-color: var(--brand-teal-dark); color: var(--text-primary); font-weight: 600; }
.aa-link[b-8ilvvb6fbl] { font-size: 12.5px; font-weight: 700; letter-spacing: 0; text-transform: none; color: var(--brand-teal-deep); background: var(--bg-light-teal); border: 0; border-radius: 8px; padding: 0 10px; height: 30px; display: inline-flex; align-items: center; gap: 4px; cursor: pointer; font-family: inherit; }
.aa-link.sk[b-8ilvvb6fbl] { width: 132px; color: transparent; animation: aa-sk-b-8ilvvb6fbl 1.4s ease-in-out infinite; }
.aa-status[b-8ilvvb6fbl] { font-size: 12.5px; font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--text-secondary); display: inline-flex; align-items: center; gap: 6px; }
.aa-hint[b-8ilvvb6fbl] { font-size: 12px; color: var(--text-secondary); margin: 6px 0 0; }
.aa-gchips[b-8ilvvb6fbl] { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.aa-gchip[b-8ilvvb6fbl] { height: 36px; padding: 0 14px 0 12px; border-radius: 18px; border: 1px solid var(--border-med); background: var(--bg-panel); display: inline-flex; align-items: center; gap: 6px; font-family: inherit; font-size: 13px; font-weight: 600; color: var(--text-primary); cursor: pointer; }
.aa-gchip:disabled[b-8ilvvb6fbl] { cursor: default; }
.aa-gchip em[b-8ilvvb6fbl] { font-style: normal; font-weight: 400; color: var(--text-secondary); font-size: 12px; }
.aa-gchip .msr[b-8ilvvb6fbl] { font-size: 16px; }
.aa-gchip.fixed[b-8ilvvb6fbl] { background: var(--brand-teal-deep); border-color: var(--brand-teal-deep); color: #FFFFFF; }
.aa-gchip.fixed em[b-8ilvvb6fbl] { color: rgba(255, 255, 255, 0.85); }
.aa-gchip.on[b-8ilvvb6fbl] { background: var(--brand-teal-primary); border-color: var(--brand-teal-primary); }
.aa-gchip.on em[b-8ilvvb6fbl] { color: rgba(26, 28, 31, 0.78); }
.aa-gchip.dis[b-8ilvvb6fbl] { background: var(--bg-cream); border-style: dashed; color: var(--text-muted); }
.aa-gchip.dis em[b-8ilvvb6fbl] { color: var(--text-muted); }
.aa-gchip.busy[b-8ilvvb6fbl] { background: var(--bg-light-teal); border-color: var(--bg-light-teal); color: var(--brand-teal-deep); }
.aa-gchip.ok[b-8ilvvb6fbl] { background: var(--success-bg); border-color: #B9E7C9; color: var(--success-ink); }
.aa-gchip.ok em[b-8ilvvb6fbl] { color: var(--success-ink); }
.aa-gchip.err[b-8ilvvb6fbl] { background: var(--error-bg); border-color: #F3C4C4; color: var(--danger); }
.aa-gchip.err em[b-8ilvvb6fbl] { color: var(--danger); }
.aa-gchip.info[b-8ilvvb6fbl] { background: #E6F1FB; border-color: #C5DCF3; color: var(--info-ink); }
.aa-gchip.info em[b-8ilvvb6fbl] { color: var(--info-ink); }
.aa-gchip.unk[b-8ilvvb6fbl] { background: var(--warn-bg); border-color: #EAD98A; color: var(--warning-ink); }
.aa-gchip.unk em[b-8ilvvb6fbl] { color: var(--warning-ink); }
.aa-gchip.sk[b-8ilvvb6fbl] { width: 112px; background: var(--border-soft); border-color: var(--border-soft); animation: aa-sk-b-8ilvvb6fbl 1.4s ease-in-out infinite; }
@keyframes aa-sk-b-8ilvvb6fbl { 50% { opacity: 0.5; } }
.aa-aviso[b-8ilvvb6fbl] { display: flex; align-items: center; gap: 6px; margin: 10px 0 0; font-size: 12.5px; color: var(--text-secondary); }
.aa-aviso .msr[b-8ilvvb6fbl] { font-size: 15px; color: var(--text-muted); }
.aa-razones[b-8ilvvb6fbl] { margin-top: 10px; display: flex; flex-direction: column; gap: 6px; }
.aa-razones div[b-8ilvvb6fbl] { display: flex; gap: 6px; align-items: flex-start; font-size: 12.5px; color: var(--text-secondary); line-height: 1.35; }
.aa-razones .msr[b-8ilvvb6fbl] { font-size: 15px; color: var(--text-muted); margin-top: 1px; }
.aa-razones b[b-8ilvvb6fbl] { color: var(--text-primary); font-weight: 600; }
.aa-switch-row[b-8ilvvb6fbl] { display: flex; align-items: center; gap: 12px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--border-soft); cursor: pointer; }
.aa-switch-txt[b-8ilvvb6fbl] { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.aa-sw-label[b-8ilvvb6fbl] { font-size: 13px; font-weight: 600; color: var(--text-primary); }
.aa-sw-sub[b-8ilvvb6fbl] { font-size: 12px; color: var(--text-secondary); margin-top: 2px; display: flex; align-items: center; gap: 4px; }
.aa-sw-sub .msr[b-8ilvvb6fbl] { font-size: 14px; color: var(--text-muted); }
.aa-switch[b-8ilvvb6fbl] { appearance: none; -webkit-appearance: none; width: 40px; height: 24px; border-radius: 12px; background: var(--border-med); position: relative; flex: none; margin: 0; cursor: pointer; transition: background 0.15s ease; }
.aa-switch[b-8ilvvb6fbl]::after { content: ""; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 9px; background: #FFFFFF; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); transition: left 0.15s ease; }
.aa-switch:checked[b-8ilvvb6fbl] { background: var(--brand-teal-deep); }
.aa-switch:checked[b-8ilvvb6fbl]::after { left: 19px; }
.aa-switch:focus-visible[b-8ilvvb6fbl] { outline: 2px solid var(--brand-teal-deep); outline-offset: 2px; }
.aa-issue[b-8ilvvb6fbl] { display: flex; gap: 10px; align-items: center; padding: 10px 12px; border-radius: 10px; font-size: 13px; line-height: 1.4; margin-top: 10px; }
.aa-issue .msr[b-8ilvvb6fbl] { font-size: 20px; flex: none; }
.aa-issue-txt[b-8ilvvb6fbl] { flex: 1; min-width: 0; }
.aa-issue-err[b-8ilvvb6fbl] { background: var(--error-bg); color: var(--danger); }
.aa-issue-warn[b-8ilvvb6fbl] { background: var(--warn-bg); color: var(--warning-ink); }
.aa-mini[b-8ilvvb6fbl] { height: 34px; padding: 0 14px; border-radius: 9px; border: 1.5px solid var(--brand-teal-deep); background: var(--bg-panel); color: var(--brand-teal-deep); font-family: inherit; font-size: 12.5px; font-weight: 700; display: inline-flex; align-items: center; gap: 6px; flex: none; white-space: nowrap; cursor: pointer; }
.aa-mini .msr[b-8ilvvb6fbl] { font-size: 15px; }
.aa-mini:disabled[b-8ilvvb6fbl] { opacity: 0.5; cursor: not-allowed; }
.aa-spin[b-8ilvvb6fbl] { width: 14px; height: 14px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: aa-giro-b-8ilvvb6fbl 0.8s linear infinite; flex: none; display: inline-block; }
@keyframes aa-giro-b-8ilvvb6fbl { to { transform: rotate(360deg); } }
.aa-foot[b-8ilvvb6fbl] { flex-shrink: 0; display: flex; align-items: center; justify-content: flex-end; gap: 10px; padding: 14px 20px; border-top: 1px solid var(--border-soft); background: var(--bg-panel); }
.btn-modal-cancel[b-8ilvvb6fbl] { height: 38px; padding: 0 16px; border-radius: 9px; border: 1px solid var(--border-med); background: var(--bg-panel); color: var(--text-secondary); font-family: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.btn-modal-cancel:disabled[b-8ilvvb6fbl] { opacity: 0.5; cursor: not-allowed; }
.btn-modal-ok[b-8ilvvb6fbl] { height: 38px; padding: 0 18px; border-radius: 9px; border: 0; background: var(--brand-teal-primary); color: var(--text-primary); font-family: inherit; font-size: 13px; font-weight: 700; box-shadow: 0 2px 6px rgba(110, 198, 200, 0.3); display: inline-flex; align-items: center; gap: 8px; cursor: pointer; }
.btn-modal-ok .msr[b-8ilvvb6fbl] { font-size: 16px; }
.btn-modal-ok:disabled[b-8ilvvb6fbl] { background: var(--border-soft); color: var(--text-muted); box-shadow: none; cursor: not-allowed; }
.btn-modal-ok.aa-busy:disabled[b-8ilvvb6fbl] { background: var(--brand-teal-primary); color: var(--text-primary); opacity: 0.9; }
.aa-btn-out[b-8ilvvb6fbl] { height: 38px; padding: 0 16px; border-radius: 9px; border: 1.5px solid var(--brand-teal-deep); background: var(--bg-panel); color: var(--brand-teal-deep); font-family: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }

@media (max-width: 768px) { .act-drawer[b-8ilvvb6fbl] { width: 100%; } }
@media (pointer: coarse) {
    .aa-gchip[b-8ilvvb6fbl], .criterio-chip[b-8ilvvb6fbl], .aa-link[b-8ilvvb6fbl], .aa-mini[b-8ilvvb6fbl], .aa-close[b-8ilvvb6fbl], .btn-modal-ok[b-8ilvvb6fbl], .btn-modal-cancel[b-8ilvvb6fbl], .aa-btn-out[b-8ilvvb6fbl] { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
    .aa-spin[b-8ilvvb6fbl], .aa-gchip.sk[b-8ilvvb6fbl], .aa-link.sk[b-8ilvvb6fbl] { animation: none; }
}

/* ===========================================================================
   T-111: Estado vacío, skeleton de carga y razón del botón en el drawer Agregar actividad.
   Anatomía = <EmptyState Size="Sm"> de §6.10 para UNA zona.
   =========================================================================== */
.ev-vacio[b-8ilvvb6fbl] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    background: var(--bg-cream);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
}
.ev-vacio-icon[b-8ilvvb6fbl] {
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: var(--bg-light-teal);
    color: var(--brand-teal-deep);
}
.ev-vacio-icon .msr[b-8ilvvb6fbl] {
    font-size: 22px;
}
.ev-vacio-body[b-8ilvvb6fbl] {
    flex: 1 1 auto;
    min-width: 0;
}
.ev-vacio-t[b-8ilvvb6fbl] {
    margin: 0;
    font-size: 14.5px;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.3;
}
.ev-vacio-p[b-8ilvvb6fbl] {
    margin: 3px 0 0;
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--text-secondary);
}
.ev-vacio-pasos[b-8ilvvb6fbl] {
    margin: 6px 0 0;
    padding-left: 18px;
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--text-secondary);
}
.ev-vacio-pasos strong[b-8ilvvb6fbl] {
    color: var(--text-primary);
    font-weight: 600;
}
.ev-vacio-acts[b-8ilvvb6fbl] {
    flex: 0 0 auto;
    display: flex;
    gap: 8px;
}

/* Variante error: icono en caja tintada danger 12% (5.87:1), borde y fondo apenas tintados */
.ev-vacio.error[b-8ilvvb6fbl] {
    background: rgba(163, 45, 45, 0.06);
    border-color: rgba(163, 45, 45, 0.22);
}
.ev-vacio.error .ev-vacio-icon[b-8ilvvb6fbl] {
    background: rgba(163, 45, 45, 0.12);
    color: var(--danger);
    border-radius: var(--radius-md);
}

/* Cargando: la MISMA silueta que los chips reales */
.ev-chips-sk[b-8ilvvb6fbl] {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.ev-chips-sk span[b-8ilvvb6fbl] {
    display: block;
    height: 31px;
    border-radius: 20px;
    background: linear-gradient(90deg, var(--border-soft) 25%, #F3F0EA 50%, var(--border-soft) 75%);
    background-size: 200% 100%;
    animation: ev-sh-b-8ilvvb6fbl 1.4s ease-in-out infinite;
}
@keyframes ev-sh-b-8ilvvb6fbl {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* La razón del botón apagado: vive en el footer, a la izquierda de los botones */
.ev-razon[b-8ilvvb6fbl] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-right: auto;
    font-size: 12.5px;
    color: var(--text-secondary);
    line-height: 1.3;
    min-width: 0;
}
.ev-razon .msr[b-8ilvvb6fbl] {
    font-size: 16px;
    flex: 0 0 auto;
    color: var(--text-secondary);
}
.ev-razon.ok[b-8ilvvb6fbl] {
    color: var(--success-ink);
}
.ev-razon.ok .msr[b-8ilvvb6fbl] {
    color: var(--success);
}

/* Estilos de botones casa para el CTA del vacío dentro de Evaluar */
.ev-vacio .ui-btn[b-8ilvvb6fbl] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border: 1px solid transparent;
    border-radius: var(--radius-md);
    font-family: var(--font-sans);
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s ease;
    white-space: nowrap;
    text-decoration: none;
}
.ev-vacio .ui-btn.sm[b-8ilvvb6fbl] {
    font-size: 12px;
    padding: 6px 12px;
}
.ev-vacio .ui-btn .msr[b-8ilvvb6fbl] {
    font-size: 16px;
}
.ev-vacio .ui-btn.sm .msr[b-8ilvvb6fbl] {
    font-size: 14px;
}
.ev-vacio .ui-btn.primary[b-8ilvvb6fbl] {
    background: var(--brand-teal-primary);
    color: var(--text-primary);
    font-weight: 700;
    box-shadow: 0 2px 6px rgba(110, 198, 200, 0.3);
}
.ev-vacio .ui-btn.primary:hover[b-8ilvvb6fbl] {
    background: var(--brand-teal-dark);
    transform: translateY(-1px);
}
.ev-vacio .ui-btn.secondary[b-8ilvvb6fbl] {
    background: var(--bg-panel);
    border-color: var(--border-soft);
    color: var(--text-secondary);
}
.ev-vacio .ui-btn.secondary:hover[b-8ilvvb6fbl] {
    border-color: var(--border-med);
    color: var(--text-primary);
}

/* Responsive (§9) y táctil (§12) */
@media (max-width: 480px) {
    .ev-vacio[b-8ilvvb6fbl] {
        flex-wrap: wrap;
    }
    .ev-vacio-acts[b-8ilvvb6fbl] {
        flex-basis: 100%;
        padding-left: 52px;
    }
    .act-drawer-footer[b-8ilvvb6fbl] {
        flex-wrap: wrap;
        gap: 10px;
    }
    .ev-razon[b-8ilvvb6fbl] {
        flex-basis: 100%;
        margin-right: 0;
    }
    .act-drawer-footer .btn-modal-cancel[b-8ilvvb6fbl],
    .act-drawer-footer .btn-modal-ok[b-8ilvvb6fbl] {
        flex: 1 1 0;
    }
}
@media (pointer: coarse) {
    .criterio-chip[b-8ilvvb6fbl] {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
    }
    .ev-vacio .ui-btn[b-8ilvvb6fbl],
    .act-drawer-footer button[b-8ilvvb6fbl] {
        min-height: 44px;
    }
    .act-drawer-close[b-8ilvvb6fbl] {
        width: 44px;
        height: 44px;
    }
}
@media (prefers-reduced-motion: reduce) {
    .ev-chips-sk span[b-8ilvvb6fbl] {
        animation: none;
    }
    .ev-vacio .ui-btn:hover[b-8ilvvb6fbl] {
        transform: none;
    }
}
/* /Components/Clases/AusenciasClaseAviso.razor.rz.scp.css */
.aca-overlay[b-f6xg3cu2jq] {
    position: fixed;
    inset: 0;
    background: rgba(20, 22, 25, 0.45);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 4000;
    padding: 16px;
}

.aca-modal[b-f6xg3cu2jq] {
    background: var(--bg-panel);
    border-radius: 20px;
    padding: 22px 22px 18px;
    width: min(100%, 420px);
    max-height: calc(100vh - 32px);
    overflow-y: auto;
    box-shadow: var(--pz-shadow-float);
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.aca-head[b-f6xg3cu2jq] {
    display: flex;
    gap: 12px;
    align-items: flex-start;
}

.aca-icono[b-f6xg3cu2jq] {
    flex: none;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--error-bg);
    color: var(--danger);
    display: grid;
    place-items: center;
}

.aca-titulo[b-f6xg3cu2jq] {
    font-family: var(--font-serif);
    font-size: 19px;
    font-weight: 600;
    line-height: 1.25;
    color: var(--text-primary);
    margin: 0;
    text-wrap: balance;
}

.aca-lista[b-f6xg3cu2jq] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-height: 190px;
    overflow-y: auto;
}

.aca-alumno[b-f6xg3cu2jq] {
    display: flex;
    align-items: center;
    gap: 8px;
    background: var(--error-bg);
    color: var(--danger);
    border-radius: 10px;
    padding: 8px 10px;
    font-size: 13px;
}

.aca-alumno .msr[b-f6xg3cu2jq] { font-size: 17px; }

.aca-nombre[b-f6xg3cu2jq] {
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    flex: 1;
    min-width: 0;
    overflow-wrap: anywhere;
}

.aca-dato[b-f6xg3cu2jq] {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    font-weight: 600;
}

.aca-pregunta[b-f6xg3cu2jq] {
    margin: 4px 0 0;
    font-size: 14px;
    color: var(--text-secondary);
}

.aca-opciones[b-f6xg3cu2jq] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.aca-opcion[b-f6xg3cu2jq] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    text-align: left;
    border: 1.5px solid var(--border-soft);
    background: var(--bg-panel);
    border-radius: 12px;
    padding: 10px 12px;
    font: 600 14px var(--font-sans);
    color: var(--text-primary);
    cursor: pointer;
}

.aca-opcion small[b-f6xg3cu2jq] {
    display: block;
    font-weight: 500;
    font-size: 12px;
    color: var(--text-secondary);
}

.aca-opcion .msr[b-f6xg3cu2jq] { color: var(--brand-teal-deep); }

.aca-opcion.on[b-f6xg3cu2jq] {
    border-color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
}

.aca-opcion:focus-visible[b-f6xg3cu2jq],
.aca-btn:focus-visible[b-f6xg3cu2jq] {
    outline: 2px solid var(--brand-teal-deep);
    outline-offset: 2px;
}

.aca-btn[b-f6xg3cu2jq] {
    border: 0;
    border-radius: 12px;
    padding: 12px;
    background: var(--brand-teal-deep);
    color: white;
    font: 600 14px var(--font-sans);
    cursor: pointer;
}

.aca-btn:disabled[b-f6xg3cu2jq] { opacity: 0.6; cursor: default; }

.aca-error[b-f6xg3cu2jq] {
    margin: 0;
    font-size: 13px;
    color: var(--danger);
}

.aca-nota[b-f6xg3cu2jq] {
    margin: 0;
    font-size: 12px;
    color: var(--text-muted);
    text-align: center;
}
/* /Components/Clases/CicloActivoDocente.razor.rz.scp.css */
/* CicloActivoDocente — chip inline que muestra y (si es individual) permite cambiar el ciclo activo. */
.cad-root[b-pg116050f2] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--bg-light-teal, #EBF6F6);
    border: 1px solid var(--brand-teal-primary, #6EC6C8);
    border-radius: 8px;
    padding: 4px 10px;
    font-size: 0.85rem;
    color: var(--brand-teal-deep, #2C6D6F);
}

.cad-icon[b-pg116050f2] {
    font-size: 1.1rem;
    flex-shrink: 0;
}

.cad-label[b-pg116050f2] {
    font-weight: 500;
    color: var(--text-secondary, #6B7280);
    white-space: nowrap;
}

.cad-valor[b-pg116050f2] {
    font-weight: 600;
    color: var(--brand-teal-deep, #2C6D6F);
    white-space: nowrap;
}

.cad-nota[b-pg116050f2] {
    font-size: 0.78rem;
    color: var(--text-secondary, #6B7280);
    font-style: italic;
    white-space: nowrap;
}

.cad-btn-cambiar[b-pg116050f2],
.cad-btn-ok[b-pg116050f2],
.cad-btn-cancel[b-pg116050f2] {
    background: none;
    border: none;
    cursor: pointer;
    padding: 2px;
    display: inline-flex;
    align-items: center;
    color: var(--brand-teal-deep, #2C6D6F);
    border-radius: 4px;
    transition: background 0.15s;
}

.cad-btn-cambiar:hover[b-pg116050f2],
.cad-btn-ok:hover[b-pg116050f2],
.cad-btn-cancel:hover[b-pg116050f2] {
    background: rgba(0,0,0,0.07);
}

.cad-btn-ok[b-pg116050f2] {
    color: var(--success, #0F6E56);
}

.cad-btn-cancel[b-pg116050f2] {
    color: var(--text-secondary, #6B7280);
}

.cad-btn-cambiar span[b-pg116050f2],
.cad-btn-ok span[b-pg116050f2],
.cad-btn-cancel span[b-pg116050f2] {
    font-size: 1rem;
}

.cad-select[b-pg116050f2] {
    border: 1px solid var(--brand-teal-primary, #6EC6C8);
    border-radius: 4px;
    padding: 2px 6px;
    font-size: 0.83rem;
    color: var(--text-primary, #1F2937);
    background: #fff;
    max-width: 140px;
}

.cad-spin[b-pg116050f2] {
    animation: cad-spin-kf-b-pg116050f2 1s linear infinite;
}

@keyframes cad-spin-kf-b-pg116050f2 {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}
/* /Components/Clases/ClaseFoco.razor.rz.scp.css */
/* Mis clases v6: tarjeta de la clase en la que se va a trabajar. */
.foco-v6[b-lci1c7j5go] { position:relative; overflow:hidden; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px 18px; align-items:center; padding:16px 18px; margin-bottom:14px; border-radius:14px; color:#fff; background:linear-gradient(120deg, #22282F, var(--a)); }
.foco-v6[b-lci1c7j5go]::after { content:""; position:absolute; right:-50px; top:-70px; width:220px; height:220px; border-radius:50%; background:rgba(255,255,255,.07); pointer-events:none; }
.foco-q[b-lci1c7j5go] { display:grid; gap:2px; min-width:0; position:relative; z-index:1; }
.foco-k[b-lci1c7j5go] { display:flex; align-items:center; gap:6px; font-size:.6875rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; opacity:.9; }
.foco-vivo[b-lci1c7j5go] { width:8px; height:8px; border-radius:50%; background:#9BF0C0; box-shadow:0 0 0 3px rgba(155,240,192,.25); }
.foco-g[b-lci1c7j5go] { font-family:var(--font-serif); font-size:2.25rem; font-weight:700; line-height:1.05; overflow-wrap:anywhere; }
.foco-m[b-lci1c7j5go] { font-size:.875rem; opacity:.92; overflow-wrap:anywhere; }
.foco-sig[b-lci1c7j5go] { font-size:.75rem; opacity:.8; margin-top:4px; }
.foco-acc[b-lci1c7j5go] { display:flex; flex-wrap:wrap; gap:8px; position:relative; z-index:1; }
.foco-b[b-lci1c7j5go] { display:inline-flex; align-items:center; gap:6px; min-height:44px; padding:8px 14px; border:0; border-radius:10px; background:#fff; color:#174446; font:inherit; font-weight:700; font-size:.8125rem; cursor:pointer; }
.foco-b.sec[b-lci1c7j5go] { background:rgba(255,255,255,.16); color:#fff; }
.foco-b .msr[b-lci1c7j5go] { font-size:18px !important; }
.foco-b:focus-visible[b-lci1c7j5go] { outline:3px solid #fff; outline-offset:2px; }
@media (max-width:720px) { .foco-acc .foco-b[b-lci1c7j5go] { flex:1; justify-content:center; } }
@media (prefers-reduced-motion:no-preference) { .foco-b[b-lci1c7j5go] { transition:transform .12s; } .foco-b:active[b-lci1c7j5go] { transform:scale(.97); } }
/* v7: reloj de la clase (llevas / faltan) y estado de la lista. */
.foco-v6.con-reloj[b-lci1c7j5go] { grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto; }
.foco-t[b-lci1c7j5go] { display:grid; gap:6px; position:relative; z-index:1; min-width:0; }
.foco-t-fila[b-lci1c7j5go] { display:flex; justify-content:space-between; align-items:flex-end; gap:12px; }
.foco-t-l[b-lci1c7j5go] { display:block; font-size:.6875rem; text-transform:uppercase; letter-spacing:.08em; opacity:.8; }
.foco-t-der[b-lci1c7j5go] { text-align:right; }
.foco-llevas[b-lci1c7j5go] { font-family:var(--font-serif); font-size:1.1rem; }
.foco-faltan[b-lci1c7j5go] { font-family:var(--font-serif); font-size:1.75rem; line-height:1; }
.foco-barra[b-lci1c7j5go] { display:block; height:6px; border-radius:99px; background:rgba(255,255,255,.2); overflow:hidden; }
.foco-barra i[b-lci1c7j5go] { display:block; height:100%; border-radius:99px; background:#fff; }
.foco-tag[b-lci1c7j5go] { margin-left:2px; padding:1px 7px; border-radius:99px; font-size:.625rem; font-weight:800; }
.foco-tag.pend[b-lci1c7j5go] { background:var(--warn-bg); color:var(--warning-ink); }
.foco-tag.ok[b-lci1c7j5go] { background:var(--success-bg); color:var(--success-ink); }
@media (max-width:900px) { .foco-v6[b-lci1c7j5go], .foco-v6.con-reloj[b-lci1c7j5go] { grid-template-columns:1fr; } }
/* /Components/Clases/PanelMulticlase.razor.rz.scp.css */
.multi-overlay[b-8aoblfgujb]{position:fixed;inset:0;margin:0;width:100%;height:100%;max-width:none;max-height:none;border:0;padding:0;background:#18262c88;z-index:1200;display:flex;justify-content:flex-end}.multi-panel[b-8aoblfgujb]{width:min(620px,100%);background:var(--ui-bg,#faf9f6);display:flex;flex-direction:column;box-shadow:-12px 0 50px #0003}.multi-panel header[b-8aoblfgujb],.multi-panel footer[b-8aoblfgujb]{padding:20px;border-bottom:1px solid #d5e5e4}.multi-panel h2[b-8aoblfgujb]{font-family:Fraunces,serif;margin:8px 0;font-size:1.6rem}.multi-marca[b-8aoblfgujb]{color:#126c70;font-weight:700}.multi-body[b-8aoblfgujb]{padding:20px;overflow:auto;flex:1}.multi-body input[type=search][b-8aoblfgujb]{width:100%;box-sizing:border-box;border:1px solid #9dbdbc;border-radius:12px;padding:12px;font:inherit}.multi-destino[b-8aoblfgujb]{display:flex;gap:12px;padding:16px 8px;border-bottom:1px solid #d5e5e4;overflow-wrap:anywhere}.multi-destino input[b-8aoblfgujb]{width:22px;height:22px;flex-shrink:0}.multi-destino small[b-8aoblfgujb]{display:block;margin-top:6px}.multi-panel footer[b-8aoblfgujb]{display:flex;gap:10px;flex-wrap:wrap;border-top:1px solid #d5e5e4}.multi-panel button[b-8aoblfgujb]{padding:12px;border-radius:10px;border:1px solid #9dbdbc;font:inherit}.multi-confirmar[b-8aoblfgujb]{background:#136e70;color:white}.multi-error[b-8aoblfgujb]{padding:12px;background:#fce8e5;color:#8b2520;border-radius:10px}.multi-panel :focus-visible[b-8aoblfgujb]{outline:3px solid #126c70;outline-offset:3px}.multi-panel button:disabled[b-8aoblfgujb]{opacity:.6}
/* /Components/Clases/PulsoClase.razor.rz.scp.css */
/* Mis clases v7 · ajuste 5: tarjetas compactas de la misma altura (~112 px), una columna por tarjeta; en celular, una
   bajo otra. Titulo en 2 renglones como maximo (el completo va en title) y la accion chica al pie. */
.pulso-v7[b-ia4dk87015] { display:grid; grid-template-columns:repeat(var(--pulso-n, 3), minmax(0,1fr)); gap:10px; margin:0 0 14px; }
.pulso-c[b-ia4dk87015] { display:grid; grid-template-rows:auto auto 1fr; gap:5px; min-height:112px; padding:10px 12px; border:1px solid var(--border-soft); border-radius:12px; background:var(--bg-panel); text-align:left; font:inherit; color:var(--text-primary); min-width:0; }
button.pulso-c[b-ia4dk87015] { cursor:pointer; }
button.pulso-c:hover[b-ia4dk87015] { border-color:var(--brand-teal); }
.pulso-hoy[b-ia4dk87015] { background:linear-gradient(135deg, var(--bg-light-teal), var(--bg-panel) 70%); }
.pulso-t[b-ia4dk87015] { display:flex; align-items:center; gap:6px; min-width:0; font-size:.6875rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--text-muted); }
.pulso-t .msr[b-ia4dk87015] { font-size:16px !important; color:var(--brand-teal-deep); }
.pulso-r[b-ia4dk87015] { margin-left:auto; display:inline-flex; align-items:center; letter-spacing:0; text-transform:none; font-weight:600; font-variant-numeric:tabular-nums; }
.pulso-h[b-ia4dk87015] { font-size:.9375rem; font-weight:700; line-height:1.3; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow-wrap:anywhere; }
.pulso-h.one[b-ia4dk87015] { -webkit-line-clamp:1; }
.pulso-h.vacia[b-ia4dk87015] { color:var(--text-secondary); font-weight:600; }
.pulso-num[b-ia4dk87015] { font-family:var(--font-serif); font-size:1.25rem; line-height:1; }
.pulso-f[b-ia4dk87015] { align-self:end; display:flex; align-items:center; gap:8px; min-width:0; font-size:.75rem; color:var(--text-secondary); font-variant-numeric:tabular-nums; }
.pulso-avance[b-ia4dk87015] { font-weight:700; color:var(--text-primary); white-space:nowrap; }
.pulso-barra[b-ia4dk87015] { flex:1; min-width:30px; height:6px; border-radius:99px; background:var(--border-soft); overflow:hidden; }
.pulso-barra i[b-ia4dk87015] { display:block; height:100%; background:var(--brand-teal-deep); border-radius:99px; }
.pulso-spark[b-ia4dk87015] { margin-left:auto; display:flex; align-items:flex-end; gap:3px; height:18px; }
.pulso-spark i[b-ia4dk87015] { width:7px; border-radius:2px 2px 0 0; background:var(--border-med); }
.pulso-spark i.ult[b-ia4dk87015] { background:var(--brand-teal-deep); }
.pulso-btn[b-ia4dk87015] { margin-left:auto; flex:none; display:inline-flex; align-items:center; gap:4px; min-height:32px; padding:0 10px; border:0; border-radius:9px; background:var(--brand-teal-deep); color:#fff; font:inherit; font-weight:700; font-size:.75rem; white-space:nowrap; cursor:pointer; }
.pulso-btn.alt[b-ia4dk87015] { background:var(--bg-panel); color:var(--brand-teal-deep); border:1px solid var(--border-med); }
.pulso-btn .msr[b-ia4dk87015] { font-size:15px !important; }
.pulso-tag[b-ia4dk87015] { font-size:.6875rem; font-weight:800; padding:2px 8px; border-radius:99px; background:var(--warn-bg); color:var(--warning-ink); }
.pulso-tag.ok[b-ia4dk87015] { background:var(--success-bg); color:var(--success-ink); }
.pulso-stk[b-ia4dk87015] { flex:1; min-width:40px; display:flex; height:8px; border-radius:99px; overflow:hidden; background:var(--border-soft); }
.pulso-stk i[b-ia4dk87015] { display:block; height:100%; }
.pulso-stk .ok[b-ia4dk87015] { background:var(--success-ink); }
.pulso-stk .ret[b-ia4dk87015] { background:var(--warning-ink); }
.pulso-stk .fal[b-ia4dk87015] { background:var(--danger); }
.pulso-btn:focus-visible[b-ia4dk87015], button.pulso-c:focus-visible[b-ia4dk87015] { outline:3px solid var(--brand-teal-deep); outline-offset:2px; }
@media (max-width:900px) { .pulso-v7[b-ia4dk87015] { grid-template-columns:1fr; } .pulso-c[b-ia4dk87015] { min-height:0; } }
/* /Components/Clases/SelectorClases.razor.rz.scp.css */
.selector-v2[b-mit5zxph3n] { container-type:inline-size; margin-bottom:16px; }
.selector-grid[b-mit5zxph3n] { display:grid; grid-template-columns:repeat(var(--columnas,1),minmax(0,1fr)); gap:8px; padding:3px; }
.selector-grid.expandido[b-mit5zxph3n] { max-height:18rem; overflow:auto; }
.selector-grid:not(.expandido)[b-mit5zxph3n]  .tarjeta-clase:nth-child(n+3) { display:none; }
.selector-footer[b-mit5zxph3n] { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 3px 0; }
.selector-actual[b-mit5zxph3n] { font-size:.75rem; line-height:1.4; overflow-wrap:anywhere; min-width:0; }
.selector-expandir[b-mit5zxph3n],.selector-busqueda button[b-mit5zxph3n] { min-height:44px; border:0; background:transparent; color:var(--brand-teal-deep,#2C6D6F); font:inherit; font-size:.75rem; cursor:pointer; text-decoration:underline; flex-shrink:0; }
.selector-expandir[b-mit5zxph3n] { display:none; }
.selector-grid:has(> :nth-child(3)) + .selector-footer .selector-expandir[b-mit5zxph3n],.selector-grid + .selector-footer.expandido .selector-expandir[b-mit5zxph3n] { display:block; }
.selector-busqueda[b-mit5zxph3n] { display:flex; flex-wrap:wrap; gap:8px; padding:3px 3px 10px; align-items:center; }
.selector-busqueda label[b-mit5zxph3n] { font-size:.75rem; width:100%; }
.selector-busqueda input[b-mit5zxph3n] { flex:1; min-width:0; min-height:44px; border:1px solid #d1cdc4; border-radius:6px; padding:8px 10px; font:inherit; background:#fff; }
.selector-expandir:focus-visible[b-mit5zxph3n],.selector-busqueda button:focus-visible[b-mit5zxph3n],.selector-busqueda input:focus-visible[b-mit5zxph3n] { outline:3px solid var(--brand-teal-deep); outline-offset:2px; }
@container(min-width:304px) {
 .selector-grid[b-mit5zxph3n] { --columnas:2; }
 .selector-grid:not(.expandido)[b-mit5zxph3n]  .tarjeta-clase:nth-child(n) { display:flex; }
 .selector-grid:not(.expandido)[b-mit5zxph3n]  .tarjeta-clase:nth-child(n+5) { display:none; }
 .selector-grid:has(> :nth-child(n)) + .selector-footer .selector-expandir[b-mit5zxph3n] { display:none; }
 .selector-grid:has(> :nth-child(5)) + .selector-footer .selector-expandir[b-mit5zxph3n],.selector-grid + .selector-footer.expandido .selector-expandir[b-mit5zxph3n] { display:block; }
}
@container(min-width:464px) {
 .selector-grid[b-mit5zxph3n] { --columnas:3; }
 .selector-grid:not(.expandido)[b-mit5zxph3n]  .tarjeta-clase:nth-child(n) { display:flex; }
 .selector-grid:not(.expandido)[b-mit5zxph3n]  .tarjeta-clase:nth-child(n+7) { display:none; }
 .selector-grid:has(> :nth-child(n)) + .selector-footer .selector-expandir[b-mit5zxph3n] { display:none; }
 .selector-grid:has(> :nth-child(7)) + .selector-footer .selector-expandir[b-mit5zxph3n],.selector-grid + .selector-footer.expandido .selector-expandir[b-mit5zxph3n] { display:block; }
}
@container(min-width:624px) {
 .selector-grid[b-mit5zxph3n] { --columnas:4; }
 .selector-grid:not(.expandido)[b-mit5zxph3n]  .tarjeta-clase:nth-child(n) { display:flex; }
 .selector-grid:not(.expandido)[b-mit5zxph3n]  .tarjeta-clase:nth-child(n+9) { display:none; }
 .selector-grid:has(> :nth-child(n)) + .selector-footer .selector-expandir[b-mit5zxph3n] { display:none; }
 .selector-grid:has(> :nth-child(9)) + .selector-footer .selector-expandir[b-mit5zxph3n],.selector-grid + .selector-footer.expandido .selector-expandir[b-mit5zxph3n] { display:block; }
}
@container(min-width:784px) {
 .selector-grid[b-mit5zxph3n] { --columnas:5; }
 .selector-grid:not(.expandido)[b-mit5zxph3n]  .tarjeta-clase:nth-child(n) { display:flex; }
 .selector-grid:not(.expandido)[b-mit5zxph3n]  .tarjeta-clase:nth-child(n+11) { display:none; }
 .selector-grid:has(> :nth-child(n)) + .selector-footer .selector-expandir[b-mit5zxph3n] { display:none; }
 .selector-grid:has(> :nth-child(11)) + .selector-footer .selector-expandir[b-mit5zxph3n],.selector-grid + .selector-footer.expandido .selector-expandir[b-mit5zxph3n] { display:block; }
}
@container(min-width:944px) {
 .selector-grid[b-mit5zxph3n] { --columnas:6; }
 .selector-grid:not(.expandido)[b-mit5zxph3n]  .tarjeta-clase:nth-child(n) { display:flex; }
 .selector-grid:not(.expandido)[b-mit5zxph3n]  .tarjeta-clase:nth-child(n+13) { display:none; }
 .selector-grid:has(> :nth-child(n)) + .selector-footer .selector-expandir[b-mit5zxph3n] { display:none; }
 .selector-grid:has(> :nth-child(13)) + .selector-footer .selector-expandir[b-mit5zxph3n],.selector-grid + .selector-footer.expandido .selector-expandir[b-mit5zxph3n] { display:block; }
}
/* /Components/Clases/SelectorDisciplina.razor.rz.scp.css */
.selector-disciplina[b-7sj4eu986q] {
    display: flex;
    flex-direction: column;
}

.selector-disciplina__label[b-7sj4eu986q] {
    font-size: 12px;
    color: #6B6354;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: 4px;
    font-weight: 500;
}

.selector-disciplina__select[b-7sj4eu986q] {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #D8D2C4;
    border-radius: 6px;
    background: #FFF;
    font-size: 14px;
    font-family: inherit;
    color: #2E2A24;
}

.selector-disciplina__select:focus[b-7sj4eu986q] {
    outline: none;
    border-color: #6B6354;
    box-shadow: 0 0 0 3px rgba(107, 99, 84, 0.12);
}
/* /Components/Clases/TableroClases.razor.rz.scp.css */
/* Mis clases v6: tablero con un boton por clase, un renglon por grado. */
.tablero-v6[b-8yekd2u8sv] { background:#fff; border-radius:12px; padding:12px 14px; display:grid; gap:10px; margin-bottom:16px; }
.tablero-h[b-8yekd2u8sv] { display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; }
.tablero-t[b-8yekd2u8sv] { font-weight:700; font-size:.8125rem; color:var(--text-primary,#1F2D40); }
.tablero-t small[b-8yekd2u8sv] { font-weight:500; color:var(--text-secondary,#5D6670); }
.tablero-ley[b-8yekd2u8sv] { display:inline-flex; align-items:center; gap:6px; font-size:.75rem; color:var(--text-secondary,#5D6670); }
.tablero-ley i[b-8yekd2u8sv] { width:7px; height:7px; border-radius:50%; background:#C98A1E; display:inline-block; }
.tablero-buscar[b-8yekd2u8sv] { margin-left:auto; flex:1 1 200px; max-width:280px; }
.tablero-buscar input[b-8yekd2u8sv] { width:100%; min-height:40px; border:1px solid #d1cdc4; border-radius:8px; padding:6px 10px; font:inherit; background:#F8F6F1; }
.tablero-buscar input:focus-visible[b-8yekd2u8sv] { outline:3px solid var(--brand-teal-deep,#2C6D6F); outline-offset:2px; }
.tablero-fila[b-8yekd2u8sv] { display:grid; grid-template-columns:40px 1fr; gap:8px; align-items:start; }
.tablero-grado[b-8yekd2u8sv] { font-size:.75rem; font-weight:800; color:var(--text-secondary,#5D6670); padding-top:11px; }
.tablero-grupos[b-8yekd2u8sv] { display:flex; flex-wrap:wrap; gap:6px; min-width:0; }
.tablero-clase[b-8yekd2u8sv] { position:relative; display:inline-grid; align-content:center; justify-items:start; min-width:48px; min-height:44px; padding:4px 11px; border:0; border-left:3px solid var(--a); border-radius:0 9px 9px 0; background:var(--f); color:#1F2D40; font:inherit; text-align:left; cursor:pointer; max-width:100%; }
.tablero-clase b[b-8yekd2u8sv] { font-size:.9375rem; line-height:1.15; overflow-wrap:anywhere; }
.tablero-clase small[b-8yekd2u8sv] { font-size:.6875rem; font-weight:600; color:#5D6670; line-height:1.15; overflow-wrap:anywhere; }
.tablero-clase:hover[b-8yekd2u8sv] { filter:brightness(.97); }
.tablero-clase.sel[b-8yekd2u8sv] { background:var(--a); color:#fff; }
.tablero-clase.sel small[b-8yekd2u8sv] { color:rgba(255,255,255,.88); }
.tablero-clase.hoy[b-8yekd2u8sv]::after { content:""; position:absolute; top:5px; right:5px; width:7px; height:7px; border-radius:50%; background:#C98A1E; box-shadow:0 0 0 2px #fff; }
.tablero-clase:focus-visible[b-8yekd2u8sv] { outline:3px solid var(--brand-teal-deep,#2C6D6F); outline-offset:2px; }
.tablero-vacio[b-8yekd2u8sv] { margin:0; font-size:.8125rem; color:var(--text-secondary,#5D6670); }
.sr-only[b-8yekd2u8sv] { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
@media (max-width:560px) { .tablero-fila[b-8yekd2u8sv] { grid-template-columns:28px 1fr; } }
@media (prefers-reduced-motion:no-preference) { .tablero-clase[b-8yekd2u8sv] { transition:background .12s, filter .12s; } }
/* /Components/Clases/TarjetaClase.razor.rz.scp.css */
.tarjeta-clase[b-r68at96bob] {
    border-radius: 8px;
    padding: 14px 16px;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
    cursor: pointer;
    user-select: none;
}

.tarjeta-clase:hover[b-r68at96bob] {
    transform: translateY(-1px);
}

.tarjeta-clase--seleccionada[b-r68at96bob] {
    box-shadow: 0 0 0 2px var(--acento);
    transform: translateY(-1px);
}

.tarjeta-clase__header[b-r68at96bob] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    opacity: 0.75;
    margin-bottom: 4px;
}

.tarjeta-clase__header[b-r68at96bob]  .material-symbols-rounded {
    font-size: 14px !important;
}

.tarjeta-clase__nombre[b-r68at96bob] {
    font-size: 16px;
    font-weight: 500;
    margin-bottom: 6px;
}

.tarjeta-clase__cta[b-r68at96bob] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    font-weight: 600;
    opacity: 0.65;
    padding: 3px 8px;
    border-radius: 6px;
    background: rgba(0, 0, 0, 0.06);
    margin-top: 4px;
}

.tarjeta-clase__cta[b-r68at96bob]  .material-symbols-rounded {
    font-size: 13px !important;
}

/* ============================================================
   MODO COMPACTO — densidad alta para Mis Clases hub
   ============================================================ */

.tarjeta-clase--compacta[b-r68at96bob] {
    border-radius: 0 4px 4px 0;
    padding: 4px 8px 4px 6px;
    display: flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    user-select: none;
    transition: transform 0.12s ease, box-shadow 0.12s ease;
    min-width: 0;
    min-height: 0;
}

.tarjeta-clase--compacta:hover[b-r68at96bob] {
    transform: translateY(-1px);
}

.tarjeta-clase--compacta.tarjeta-clase--seleccionada[b-r68at96bob] {
    box-shadow: 0 0 0 2px var(--acento);
    transform: translateY(-1px);
}

.tarjeta-clase__icono-box[b-r68at96bob] {
    width: 20px;
    height: 20px;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.tarjeta-clase__icono-box[b-r68at96bob]  .material-symbols-rounded {
    font-size: 13px !important;
    line-height: 1 !important;
}

.tarjeta-clase__nombre-compacto[b-r68at96bob] {
    font-size: 11.5px;
    font-weight: 500;
    line-height: 1.2;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
    flex: 1;
}

.tarjeta-clase__badge-ce[b-r68at96bob] {
    font-size: 9px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    opacity: 0.8;
    flex-shrink: 0;
    white-space: nowrap;
}

/* Opt-in exclusivo del selector V2; otros usos de TarjetaClase no cambian. */
/* Pulido 1.0.21: tarjeta de dos renglones (grupo arriba; materia · turno abajo) para que quepan
   mas clases a la vista. Los tres spans se conservan (busqueda, aria-label y pruebas los usan). */
.tarjeta-clase--grupo[b-r68at96bob] { display:flex; flex-direction:row; flex-wrap:wrap; align-items:baseline; column-gap:4px; row-gap:1px; width:100%; min-width:0; min-height:48px; padding:6px 10px; border:0; border-radius:0 6px 6px 0; font:inherit; text-align:left; align-content:center; }
.tarjeta-clase__grupo[b-r68at96bob] { flex-basis:100%; font-size:1.0625rem; font-weight:700; line-height:1.15; white-space:normal; overflow-wrap:anywhere; }
.tarjeta-clase__materia[b-r68at96bob] { font-size:.75rem; line-height:1.25; white-space:normal; overflow-wrap:anywhere; min-width:0; }
.tarjeta-clase__turno[b-r68at96bob] { font-size:.6875rem; line-height:1.25; opacity:.85; }
.tarjeta-clase__turno[b-r68at96bob]::before { content:"· "; }
.tarjeta-clase--grupo:focus-visible[b-r68at96bob] { outline:3px solid var(--acento); outline-offset:2px; }
@media(prefers-reduced-motion:reduce) { .tarjeta-clase--grupo[b-r68at96bob] { transition:none; transform:none; } }
/* /Components/Comunicacion/AvisoComposer.razor.rz.scp.css */
/* Fase 2C.2 — Composer de aviso oficial. Tokens del design system (tokens.css). */

.avc-overlay[b-4wzicdmcdq] {
    position: fixed;
    inset: 0;
    z-index: 3000;
    background: rgba(26, 28, 31, 0.42);
    backdrop-filter: blur(2px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    animation: avc-fade-b-4wzicdmcdq 0.14s ease;
}

.avc-card[b-4wzicdmcdq] {
    width: 100%;
    max-width: 520px;
    max-height: calc(100vh - 32px);
    overflow-y: auto;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-lg);
    animation: avc-pop-b-4wzicdmcdq 0.16s cubic-bezier(0.2, 0.8, 0.3, 1);
}

/* ── Header ── */
.avc-head[b-4wzicdmcdq] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 18px 20px;
    border-bottom: 1px solid var(--border-soft);
}

.avc-head-icon[b-4wzicdmcdq] {
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    border-radius: var(--radius-lg);
    display: grid;
    place-items: center;
    background: rgba(110, 198, 200, 0.16);
    color: var(--brand-teal-deep);
}
.avc-head-icon .material-symbols-rounded[b-4wzicdmcdq] { font-size: 22px; }

/* Fase 3D: variante "Proponer aviso" — ámbar cálido: es una solicitud, no una emisión. */
.avc-head-icon.proponer[b-4wzicdmcdq] {
    background: color-mix(in srgb, var(--warning) 14%, transparent);
    color: var(--warning);
}

.avc-head-txt[b-4wzicdmcdq] { flex: 1 1 auto; min-width: 0; }
.avc-title[b-4wzicdmcdq] {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.2;
}
.avc-sub[b-4wzicdmcdq] {
    font-family: var(--font-sans);
    font-size: 13px;
    color: var(--text-secondary);
    margin-top: 2px;
}

.avc-x[b-4wzicdmcdq] {
    flex: 0 0 auto;
    border: none;
    background: transparent;
    color: var(--text-muted);
    cursor: pointer;
    width: 32px;
    height: 32px;
    border-radius: var(--radius-md);
    display: grid;
    place-items: center;
    transition: background 0.12s, color 0.12s;
}
.avc-x:hover[b-4wzicdmcdq] { background: var(--bg-cream); color: var(--text-primary); }

/* ── Body ── */
.avc-body[b-4wzicdmcdq] {
    padding: 18px 20px;
    font-family: var(--font-sans);
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.avc-label-row[b-4wzicdmcdq] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-top: 8px;
}
.avc-label[b-4wzicdmcdq] {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
}
.avc-opt[b-4wzicdmcdq] { font-weight: 400; color: var(--text-muted); }
.avc-count[b-4wzicdmcdq] { font-size: 11px; color: var(--text-muted); }

.avc-input[b-4wzicdmcdq],
.avc-textarea[b-4wzicdmcdq] {
    width: 100%;
    box-sizing: border-box;
    font-family: var(--font-sans);
    font-size: 14px;
    color: var(--text-primary);
    background: var(--bg-cream);
    border: 1px solid var(--border-med);
    border-radius: var(--radius-md);
    padding: 10px 12px;
    transition: border-color 0.12s, box-shadow 0.12s;
}
.avc-input:focus[b-4wzicdmcdq],
.avc-textarea:focus[b-4wzicdmcdq] {
    outline: none;
    border-color: var(--brand-teal-primary);
    box-shadow: 0 0 0 3px rgba(110, 198, 200, 0.20);
    background: var(--bg-panel);
}
.avc-textarea[b-4wzicdmcdq] { resize: vertical; min-height: 84px; }

/* ── Segmented audience ── */
.avc-seg[b-4wzicdmcdq] {
    display: flex;
    gap: 8px;
    margin-top: 2px;
}
.avc-seg-btn[b-4wzicdmcdq] {
    flex: 1 1 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-family: var(--font-sans);
    font-size: 13px;
    font-weight: 500;
    color: var(--text-secondary);
    background: var(--bg-cream);
    border: 1px solid var(--border-med);
    border-radius: var(--radius-md);
    padding: 9px 10px;
    cursor: pointer;
    transition: all 0.12s;
}
.avc-seg-btn .material-symbols-rounded[b-4wzicdmcdq] { font-size: 18px; }
.avc-seg-btn:hover[b-4wzicdmcdq] { border-color: var(--brand-teal-primary); }
.avc-seg-btn.on[b-4wzicdmcdq] {
    color: var(--brand-teal-deep);
    background: rgba(110, 198, 200, 0.14);
    border-color: var(--brand-teal-primary);
    font-weight: 600;
}

/* ── Multi-escuela: chips "¿De cuál escuela?" ──
   Solo para emisores con >1 escuela; mismo lenguaje que .avc-seg-btn (crema,
   borde, acento teal al activarse) pero en píldoras que envuelven, porque las
   escuelas pueden ser 2..n y sus nombres largos. */
.avc-esc-label[b-4wzicdmcdq] { margin-top: 8px; }

.avc-esc[b-4wzicdmcdq] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 2px;
}

.avc-esc-chip[b-4wzicdmcdq] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-sans);
    font-size: 13px;
    font-weight: 500;
    color: var(--text-secondary);
    background: var(--bg-cream);
    border: 1px solid var(--border-med);
    border-radius: 99px;
    padding: 8px 14px;
    cursor: pointer;
    transition: all 0.12s;
}

.avc-esc-chip .material-symbols-rounded[b-4wzicdmcdq] { font-size: 17px; }

.avc-esc-chip:hover:not(:disabled)[b-4wzicdmcdq] { border-color: var(--brand-teal-primary); }

.avc-esc-chip.on[b-4wzicdmcdq] {
    color: var(--brand-teal-deep);
    background: rgba(110, 198, 200, 0.14);
    border-color: var(--brand-teal-primary);
    font-weight: 600;
}

.avc-esc-chip:disabled[b-4wzicdmcdq] { opacity: 0.55; cursor: default; }

.avc-esc-hint[b-4wzicdmcdq] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 4px;
    font-size: 12px;
    color: var(--text-muted);
}

.avc-esc-hint .material-symbols-rounded[b-4wzicdmcdq] { font-size: 15px; }

/* ── Toggle acuse ── */
.avc-toggle[b-4wzicdmcdq] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 12px;
    padding: 12px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-cream);
    cursor: pointer;
}
.avc-toggle input[b-4wzicdmcdq] { margin-top: 3px; width: 16px; height: 16px; accent-color: var(--brand-teal-deep); cursor: pointer; }
.avc-toggle-txt[b-4wzicdmcdq] { display: flex; flex-direction: column; }
.avc-toggle-txt strong[b-4wzicdmcdq] { font-size: 13px; color: var(--text-primary); }
.avc-toggle-txt span[b-4wzicdmcdq] { font-size: 12px; color: var(--text-secondary); }

/* ── Error ── */
.avc-error[b-4wzicdmcdq] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 10px;
    font-size: 13px;
    color: var(--danger);
    background: rgba(163, 45, 45, 0.08);
    border-radius: var(--radius-sm);
    padding: 8px 10px;
}
.avc-error .material-symbols-rounded[b-4wzicdmcdq] { font-size: 18px; }

/* ── Footer ── */
.avc-foot[b-4wzicdmcdq] {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 14px 20px 18px;
    border-top: 1px solid var(--border-soft);
}
.avc-btn[b-4wzicdmcdq] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-sans);
    font-size: 14px;
    font-weight: 600;
    border-radius: var(--radius-md);
    padding: 9px 16px;
    cursor: pointer;
    border: 1px solid var(--border-med);
    background: var(--bg-panel);
    color: var(--text-secondary);
    transition: all 0.12s;
}
.avc-btn:hover:not(:disabled)[b-4wzicdmcdq] { background: var(--bg-cream); }
.avc-btn .material-symbols-rounded[b-4wzicdmcdq] { font-size: 18px; }
.avc-btn:disabled[b-4wzicdmcdq] { opacity: 0.55; cursor: default; }

.avc-btn-primary[b-4wzicdmcdq] {
    background: var(--brand-teal-primary);
    border-color: var(--brand-teal-deep);
    color: var(--text-primary);
}
.avc-btn-primary:hover:not(:disabled)[b-4wzicdmcdq] { background: var(--brand-teal-dark); }

/* Fase 3D: nota del modo proponer (sustituye al selector de audiencia). */
.avc-nota-proponer[b-4wzicdmcdq] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-top: 8px;
    padding: 10px 12px;
    background: var(--bg-cream);
    border: 1px dashed var(--border-med);
    border-radius: var(--radius-md);
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--text-secondary);
}
.avc-nota-proponer .material-symbols-rounded[b-4wzicdmcdq] {
    font-size: 17px;
    color: var(--warning);
    flex-shrink: 0;
    margin-top: 1px;
}
.avc-nota-proponer strong[b-4wzicdmcdq] { color: var(--text-primary); }

/* ── Éxito ── */
.avc-exito[b-4wzicdmcdq] {
    align-items: center;
    text-align: center;
    gap: 10px;
    padding: 28px 20px;
}
.avc-ok[b-4wzicdmcdq] { font-size: 46px; color: var(--success); }

/* Fase 3D: éxito de propuesta — queda "en espera", no publicada. */
.avc-ok.espera[b-4wzicdmcdq] { color: var(--warning); }
.avc-exito-txt[b-4wzicdmcdq] { display: flex; flex-direction: column; gap: 2px; }
.avc-exito-txt strong[b-4wzicdmcdq] { font-family: var(--font-serif); font-size: 17px; color: var(--text-primary); }
.avc-exito-txt span[b-4wzicdmcdq] { font-size: 13px; color: var(--text-secondary); }
.avc-exito .avc-btn-primary[b-4wzicdmcdq] { margin-top: 10px; }

/* ── Spinner ── */
.avc-spin[b-4wzicdmcdq] {
    width: 15px;
    height: 15px;
    border: 2px solid rgba(255, 255, 255, 0.4);
    border-top-color: #fff;
    border-radius: 50%;
    animation: avc-spin-b-4wzicdmcdq 0.7s linear infinite;
}

@keyframes avc-spin-b-4wzicdmcdq { to { transform: rotate(360deg); } }
@keyframes avc-fade-b-4wzicdmcdq { from { opacity: 0; } to { opacity: 1; } }
@keyframes avc-pop-b-4wzicdmcdq { from { opacity: 0; transform: translateY(8px) scale(0.98); } to { opacity: 1; transform: none; } }

@media (max-width: 560px) {
    .avc-seg[b-4wzicdmcdq] { flex-direction: column; }
    .avc-foot[b-4wzicdmcdq] { flex-direction: column-reverse; }
    .avc-foot .avc-btn[b-4wzicdmcdq] { width: 100%; justify-content: center; }
}
/* /Components/Comunidad/ComentariosPanel.razor.rz.scp.css */
/* ComentariosPanel — hilo de comentarios + input, sobre fondo crema suave. */

.cmp-panel[b-qqnanwke80] {
    border-top: 1px solid var(--border-soft);
    background: var(--bg-cream);
    padding: 12px 16px 14px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    animation: cmp-abrir-b-qqnanwke80 0.2s var(--ease);
}

@keyframes cmp-abrir-b-qqnanwke80 {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ── Skeleton de carga ── */
.cmp-skeleton[b-qqnanwke80] {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 4px 0;
}

.cmp-skeleton-lines[b-qqnanwke80] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding-top: 2px;
}

/* ── Vacío ── */
.cmp-vacio[b-qqnanwke80] {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--text-muted);
    font-size: 13px;
    padding: 6px 2px;
}

.cmp-vacio .material-symbols-rounded[b-qqnanwke80] {
    font-size: 18px;
    color: var(--carbon-6);
}

/* ── Lista ── */
.cmp-lista[b-qqnanwke80] {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.cmp-item[b-qqnanwke80] {
    display: flex;
    gap: 10px;
    align-items: flex-start;
}

.cmp-avatar[b-qqnanwke80] {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10.5px;
    font-weight: 700;
    color: #fff;
    background: linear-gradient(135deg, var(--brand-teal), var(--brand-teal-deep));
    letter-spacing: 0.02em;
    user-select: none;
}

.cmp-avatar.propio[b-qqnanwke80] {
    background: linear-gradient(135deg, var(--carbon-4), var(--carbon-2));
}

.cmp-burbuja[b-qqnanwke80] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: 4px var(--radius-lg) var(--radius-lg) var(--radius-lg);
    padding: 8px 12px 9px;
    max-width: 100%;
    min-width: 0;
}

.cmp-meta[b-qqnanwke80] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin-bottom: 2px;
}

.cmp-autor[b-qqnanwke80] {
    font-size: 12.5px;
    font-weight: 700;
    color: var(--text-primary);
}

.cmp-tiempo[b-qqnanwke80] {
    font-size: 11px;
    color: var(--text-muted);
    white-space: nowrap;
}

.cmp-texto[b-qqnanwke80] {
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--text-primary);
    overflow-wrap: anywhere;
}

.cmp-texto[b-qqnanwke80]  a {
    color: var(--pz-green-deep);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* ── Input ── */
.cmp-input-row[b-qqnanwke80] {
    display: flex;
    gap: 10px;
    align-items: center;
}

.cmp-input-wrap[b-qqnanwke80] {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 4px;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: 99px;
    padding: 3px 4px 3px 14px;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.cmp-input-wrap.foco[b-qqnanwke80] {
    border-color: var(--brand-teal-dark);
    box-shadow: 0 0 0 3px var(--bg-light-teal);
}

.cmp-input[b-qqnanwke80] {
    flex: 1;
    min-width: 0;
    border: none;
    outline: none;
    background: transparent;
    font-family: var(--font-sans);
    font-size: 13.5px;
    color: var(--text-primary);
    padding: 6px 0;
}

.cmp-input[b-qqnanwke80]::placeholder { color: var(--text-muted); }
.cmp-input:disabled[b-qqnanwke80]     { opacity: 0.6; }

.cmp-enviar[b-qqnanwke80] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: none;
    background: var(--brand-teal-primary);
    color: var(--text-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    transition: background 0.15s ease, transform 0.15s ease;
}

.cmp-enviar .material-symbols-rounded[b-qqnanwke80] { font-size: 16px; }

.cmp-enviar:hover:not(:disabled)[b-qqnanwke80] {
    background: var(--brand-teal-dark);
    transform: scale(1.05);
}

.cmp-enviar:disabled[b-qqnanwke80] {
    background: var(--carbon-6);
    cursor: default;
}

.cmp-spinner[b-qqnanwke80] {
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255, 255, 255, 0.35);
    border-top-color: #fff;
    border-radius: 50%;
    animation: cmp-girar-b-qqnanwke80 0.7s linear infinite;
}

@keyframes cmp-girar-b-qqnanwke80 {
    to { transform: rotate(360deg); }
}

/* ── Error ── */
.cmp-error[b-qqnanwke80] {
    display: flex;
    align-items: center;
    gap: 6px;
    color: var(--danger);
    font-size: 12.5px;
    font-weight: 600;
}

.cmp-error .material-symbols-rounded[b-qqnanwke80] { font-size: 16px; }

.cmp-enviar[b-qqnanwke80] { min-width:44px; min-height:44px; }
.cmp-input[b-qqnanwke80] { min-height:44px; }
.cmp-enviar:focus-visible[b-qqnanwke80] { outline:3px solid var(--brand-teal); outline-offset:2px; }
/* /Components/Comunidad/MuroFamilias.razor.rz.scp.css */
.mf-wall[b-69gqsmo3u3]{max-width:760px;margin:0 auto;padding:8px 16px 40px;color:var(--text-primary);font-family:var(--font-sans)}
.mf-intro[b-69gqsmo3u3]{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:16px 0 24px}.mf-eyebrow[b-69gqsmo3u3]{font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--brand-teal-deep,#2c6d6f)}.mf-intro h2[b-69gqsmo3u3],.mf-detail h2[b-69gqsmo3u3]{font-family:var(--font-serif);font-size:28px;line-height:1.2;margin:8px 0}.mf-intro p[b-69gqsmo3u3],.mf-help[b-69gqsmo3u3]{color:var(--text-secondary);font-size:13px;line-height:1.55}.mf-composer[b-69gqsmo3u3],.mf-post[b-69gqsmo3u3]{background:var(--bg-panel,#fff);border:1px solid var(--border-soft,#e8e4dd);border-radius:18px;margin-bottom:18px;overflow:hidden;box-shadow:0 3px 16px rgba(20,22,25,.035)}
.mf-composer summary[b-69gqsmo3u3]{padding:20px;display:flex;justify-content:space-between;font-weight:600;cursor:pointer;min-height:56px;list-style:none}.mf-composer-body[b-69gqsmo3u3]{padding:0 20px 20px;display:grid;gap:10px}.mf-wall label[b-69gqsmo3u3],.mf-reply-compose label[b-69gqsmo3u3]{font-size:13px;font-weight:600}.mf-wall input:not([type=checkbox])[b-69gqsmo3u3],.mf-wall select[b-69gqsmo3u3],.mf-wall textarea[b-69gqsmo3u3],.mf-reply-compose textarea[b-69gqsmo3u3]{width:100%;box-sizing:border-box;border:1px solid var(--border-med,#d4cfc5);border-radius:10px;background:var(--bg-panel,#fff);color:inherit;padding:12px;font:inherit;font-size:15px;min-height:46px}.mf-wall textarea[b-69gqsmo3u3],.mf-reply-compose textarea[b-69gqsmo3u3]{resize:vertical;line-height:1.55}.mf-toggle[b-69gqsmo3u3]{display:flex;align-items:center;gap:10px;min-height:44px}.mf-toggle input[b-69gqsmo3u3]{width:20px;height:20px;accent-color:var(--brand-teal-deep,#2c6d6f)}.mf-preview[b-69gqsmo3u3]{padding:12px 14px;background:var(--bg-light-teal,#e8f4f8);border-radius:10px;font-size:13px;line-height:1.55;color:var(--brand-teal-deep,#2c6d6f)}
.mf-primary[b-69gqsmo3u3],.mf-secondary[b-69gqsmo3u3],.mf-close[b-69gqsmo3u3],.mf-error button[b-69gqsmo3u3]{font:inherit;font-size:14px;min-height:44px;padding:10px 16px;border-radius:10px;cursor:pointer;transition:background .16s ease,opacity .16s ease}.mf-primary[b-69gqsmo3u3]{background:var(--brand-teal-deep,#2c6d6f);color:white;border:1px solid transparent;font-weight:600}.mf-secondary[b-69gqsmo3u3]{border:1px solid var(--border-soft,#e8e4dd);background:var(--bg-panel,#fff);color:var(--text-primary);white-space:normal}.mf-wall button:disabled[b-69gqsmo3u3],.mf-detail button:disabled[b-69gqsmo3u3]{opacity:.55;cursor:default}.mf-compose-footer[b-69gqsmo3u3],.mf-post-footer[b-69gqsmo3u3]{display:flex;justify-content:space-between;align-items:center;gap:16px}.mf-post[b-69gqsmo3u3]{padding:22px}.mf-pin[b-69gqsmo3u3]{font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--brand-teal-deep,#2c6d6f);margin-bottom:16px}.mf-pinned[b-69gqsmo3u3]{border-top:3px solid var(--brand-teal-deep,#2c6d6f)}.mf-meta[b-69gqsmo3u3]{display:flex;align-items:center;gap:12px;font-size:13px}.mf-meta>div[b-69gqsmo3u3]{min-width:0;flex:1}.mf-meta strong[b-69gqsmo3u3],.mf-meta span:not(.mf-avatar)[b-69gqsmo3u3]{display:block;overflow-wrap:anywhere}.mf-meta time[b-69gqsmo3u3]{font-size:11px;color:var(--text-secondary);white-space:nowrap}.mf-avatar[b-69gqsmo3u3]{display:grid;place-items:center;flex:0 0 40px;height:40px;border-radius:12px;background:var(--bg-light-teal,#e8f4f8);color:var(--brand-teal-deep,#2c6d6f);font-weight:700}.mf-post h3[b-69gqsmo3u3]{font-size:19px;line-height:1.4;margin:20px 0 8px;overflow-wrap:anywhere}.mf-body[b-69gqsmo3u3]{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7;font-size:15px}.mf-post-footer[b-69gqsmo3u3]{border-top:1px solid var(--border-soft,#e8e4dd);padding-top:14px;margin-top:20px}.mf-status[b-69gqsmo3u3]{font-size:12px;color:var(--text-secondary)}.mf-empty[b-69gqsmo3u3]{text-align:center;padding:40px 24px;color:var(--text-secondary)}.mf-error[b-69gqsmo3u3]{background:var(--bg-panel,#fff);border-left:3px solid var(--danger,#a32d2d);padding:12px 16px;color:var(--danger,#a32d2d);font-size:14px;line-height:1.55;margin:12px 0}.mf-error button[b-69gqsmo3u3]{margin-left:8px;background:transparent;border:1px solid currentColor;color:inherit}.mf-more[b-69gqsmo3u3]{display:block;margin:20px auto}
.mf-overlay[b-69gqsmo3u3]{position:fixed;inset:0;background:rgba(20,22,25,.4);z-index:1100;display:flex;justify-content:flex-end}.mf-detail[b-69gqsmo3u3]{display:flex;flex-direction:column;width:min(560px,100%);height:100%;background:var(--bg-panel,#fff);box-shadow:-12px 0 50px rgba(20,22,25,.1);padding:24px;box-sizing:border-box;color:var(--text-primary);animation:mf-enter-b-69gqsmo3u3 .2s ease-out}.mf-detail-head[b-69gqsmo3u3]{display:flex;align-items:center;justify-content:space-between;gap:12px}.mf-close[b-69gqsmo3u3]{border:0;background:transparent;font-size:28px;min-width:44px;color:inherit}.mf-detail-scroll[b-69gqsmo3u3]{overflow-y:auto;flex:1;overscroll-behavior:contain;padding-right:4px}.mf-admin[b-69gqsmo3u3]{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.mf-reply[b-69gqsmo3u3]{padding:18px 0;border-top:1px solid var(--border-soft,#e8e4dd);font-size:14px}.mf-reply .mf-help[b-69gqsmo3u3]{display:block;font-size:11px}.mf-reply p[b-69gqsmo3u3]{margin:6px 0 0}.mf-reply-compose[b-69gqsmo3u3]{border-top:1px solid var(--border-soft,#e8e4dd);padding-top:16px;display:grid;gap:8px}.mf-reply-compose button[b-69gqsmo3u3]{justify-self:end}.mf-wall :focus-visible[b-69gqsmo3u3],.mf-detail :focus-visible[b-69gqsmo3u3]{outline:3px solid var(--brand-teal-deep,#2c6d6f);outline-offset:3px}@keyframes mf-enter-b-69gqsmo3u3{from{transform:translateX(24px);opacity:0}to{transform:translateX(0);opacity:1}}@media(hover:hover){.mf-secondary:hover[b-69gqsmo3u3]{background:var(--bg-light-teal,#e8f4f8)}.mf-primary:hover[b-69gqsmo3u3]{opacity:.9}}@media(max-width:540px){.mf-wall[b-69gqsmo3u3]{padding:0 8px 24px}.mf-intro[b-69gqsmo3u3]{align-items:flex-start}.mf-intro h2[b-69gqsmo3u3]{font-size:24px}.mf-intro>button[b-69gqsmo3u3]{font-size:12px;padding:8px}.mf-post[b-69gqsmo3u3]{padding:16px}.mf-meta[b-69gqsmo3u3]{flex-wrap:wrap}.mf-meta time[b-69gqsmo3u3]{margin-left:52px;flex-basis:100%}.mf-compose-footer[b-69gqsmo3u3],.mf-post-footer[b-69gqsmo3u3]{align-items:stretch;flex-direction:column;gap:8px}.mf-detail[b-69gqsmo3u3]{padding:16px}.mf-composer-body[b-69gqsmo3u3]{padding:0 16px 16px}.mf-primary[b-69gqsmo3u3]{width:100%}}@media(prefers-reduced-motion:reduce){.mf-detail[b-69gqsmo3u3]{animation:none}.mf-primary[b-69gqsmo3u3],.mf-secondary[b-69gqsmo3u3]{transition:none}}
/* /Components/Comunidad/PostCard.razor.rz.scp.css */
/* PostCard — tarjeta blanca del muro sobre el lienzo crema. */

.pc-card[b-1ogfir1rkg] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
    transition: box-shadow 0.2s ease;
}

.pc-card:hover[b-1ogfir1rkg] {
    box-shadow: var(--shadow-md);
}

/* Deep-link desde una notificación: anillo teal que se desvanece. */
.pc-card.resaltada[b-1ogfir1rkg] {
    animation: pc-resaltar-b-1ogfir1rkg 2.2s ease forwards;
}

@keyframes pc-resaltar-b-1ogfir1rkg {
    0%   { box-shadow: 0 0 0 3px var(--brand-teal), var(--shadow-md); }
    70%  { box-shadow: 0 0 0 3px var(--brand-teal), var(--shadow-md); }
    100% { box-shadow: var(--shadow-sm); }
}

/* ── Pill "Fijado" (premium carbón + pin dorado) ── */
.pc-fijado[b-1ogfir1rkg] {
    display: flex;
    align-items: center;
    gap: 6px;
    background: linear-gradient(135deg, var(--carbon-1), var(--carbon-2));
    color: var(--cream);
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 7px 16px;
}

.pc-fijado .material-symbols-rounded[b-1ogfir1rkg] {
    font-size: 15px;
    color: var(--pin-gold);
    transform: rotate(35deg);
}

/* ── Header ── */
.pc-header[b-1ogfir1rkg] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 16px 16px 0;
}

.pc-avatar[b-1ogfir1rkg] {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 700;
    color: #fff;
    letter-spacing: 0.02em;
    user-select: none;
}

/* Variantes de gradiente — mapean AutorVariant del API con tokens existentes. */
.pc-avatar.av-default[b-1ogfir1rkg]  { background: linear-gradient(135deg, var(--brand-teal), var(--brand-teal-deep)); }
.pc-avatar.av-c1[b-1ogfir1rkg]       { background: linear-gradient(135deg, var(--cf-etica), var(--warning)); }
.pc-avatar.av-c2[b-1ogfir1rkg]       { background: linear-gradient(135deg, var(--cf-lenguajes), var(--t-concurso)); }
.pc-avatar.av-c3[b-1ogfir1rkg]       { background: linear-gradient(135deg, var(--t-pmc), var(--t-comite)); }
.pc-avatar.av-c4[b-1ogfir1rkg]       { background: linear-gradient(135deg, var(--success), var(--pz-green-deep)); }
.pc-avatar.av-official[b-1ogfir1rkg] { background: linear-gradient(135deg, var(--text-primary), var(--bg-sidebar-hover)); }

.pc-autoria[b-1ogfir1rkg] {
    flex: 1;
    min-width: 0;
    padding-top: 2px;
}

.pc-autor-row[b-1ogfir1rkg] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.pc-autor[b-1ogfir1rkg] {
    font-family: var(--font-serif);
    font-size: 15.5px;
    font-weight: 700;
    color: var(--text-primary);
    letter-spacing: -0.01em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Badge "Oficial" — mismo carbón que el gradiente 'official' del API. */
.pc-badge-oficial[b-1ogfir1rkg] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: linear-gradient(135deg, var(--text-primary), var(--bg-sidebar-hover));
    color: #fff;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding: 3px 8px;
    border-radius: 99px;
    flex-shrink: 0;
}

.pc-badge-oficial .material-symbols-rounded[b-1ogfir1rkg] {
    font-size: 13px;
    color: var(--brand-teal);
}

.pc-meta[b-1ogfir1rkg] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
    color: var(--text-muted);
    margin-top: 2px;
}

.pc-meta-sep[b-1ogfir1rkg] { color: var(--border-med); }

.pc-audiencia[b-1ogfir1rkg] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    background: var(--cream-deep);
    color: var(--text-secondary);
    font-size: 11.5px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 99px;
}

.pc-audiencia .material-symbols-rounded[b-1ogfir1rkg] { font-size: 13px; }

/* Fase 3B: chip discreto "Tarea creada" — mismo tratamiento de pill que .pc-audiencia. */
.pc-chip-tarea[b-1ogfir1rkg] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    background: var(--bg-light-teal);
    color: var(--pz-green-deep);
    font-size: 11.5px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 99px;
}

.pc-chip-tarea .material-symbols-rounded[b-1ogfir1rkg] { font-size: 13px; }

/* Fase 3D: pill "Te mencionaron" — mismo tratamiento que .pc-chip-tarea pero con
   el teal de marca al frente (es un señalamiento personal, no un metadato). */
.pc-chip-mencionado[b-1ogfir1rkg] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    background: var(--brand-teal-primary);
    color: var(--text-primary);
    font-size: 11.5px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 99px;
}

.pc-chip-mencionado .material-symbols-rounded[b-1ogfir1rkg] { font-size: 13px; }

/* ── Menú ⋯ ── */
.pc-menu-zona[b-1ogfir1rkg] { position: relative; flex-shrink: 0; }

.pc-menu-btn[b-1ogfir1rkg] {
    width: 32px;
    height: 32px;
    border: none;
    border-radius: 50%;
    background: transparent;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}

.pc-menu-btn:hover[b-1ogfir1rkg] {
    background: var(--bg-light-teal);
    color: var(--brand-teal-deep);
}

.pc-menu-backdrop[b-1ogfir1rkg] {
    position: fixed;
    inset: 0;
    z-index: 5;
}

.pc-menu[b-1ogfir1rkg] {
    position: absolute;
    top: 36px;
    right: 0;
    z-index: 6;
    min-width: 210px;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-lg);
    padding: 6px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    animation: pc-menu-abrir-b-1ogfir1rkg 0.15s var(--ease);
}

@keyframes pc-menu-abrir-b-1ogfir1rkg {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}

.pc-menu-item[b-1ogfir1rkg] {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 9px 10px;
    border: none;
    border-radius: var(--radius-sm);
    background: transparent;
    color: var(--text-primary);
    font-family: var(--font-sans);
    font-size: 13px;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
    transition: background 0.15s ease;
}

.pc-menu-item .material-symbols-rounded[b-1ogfir1rkg] {
    font-size: 18px;
    color: var(--text-secondary);
}

.pc-menu-item:hover[b-1ogfir1rkg] { background: var(--bg-cream); }

.pc-menu-item.peligro[b-1ogfir1rkg],
.pc-menu-item.peligro .material-symbols-rounded[b-1ogfir1rkg] { color: var(--danger); }

.pc-menu-item:disabled[b-1ogfir1rkg] { opacity: 0.6; cursor: default; }

.pc-menu-confirm[b-1ogfir1rkg] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--text-primary);
}

.pc-confirm-si[b-1ogfir1rkg],
.pc-confirm-no[b-1ogfir1rkg] {
    border: none;
    border-radius: var(--radius-sm);
    padding: 5px 10px;
    font-family: var(--font-sans);
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    transition: opacity 0.15s ease;
}

.pc-confirm-si[b-1ogfir1rkg] { background: var(--danger); color: #fff; }
.pc-confirm-si:hover[b-1ogfir1rkg] { opacity: 0.88; }
.pc-confirm-si:disabled[b-1ogfir1rkg] { opacity: 0.6; cursor: default; }

.pc-confirm-no[b-1ogfir1rkg] { background: var(--cream-deep); color: var(--text-secondary); }
.pc-confirm-no:hover[b-1ogfir1rkg] { background: var(--border-soft); }

/* ── Cuerpo ── */
.pc-cuerpo[b-1ogfir1rkg] {
    padding: 12px 16px 4px;
    font-size: 14.5px;
    line-height: 1.65;
    color: var(--text-primary);
    overflow-wrap: anywhere;
    white-space: normal;
}

.pc-cuerpo[b-1ogfir1rkg]  a {
    color: var(--pz-green-deep);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
    transition: color 0.15s ease;
}

.pc-cuerpo[b-1ogfir1rkg]  a:hover { color: var(--brand-teal-deep); }

/* Fase 3D: chip de mención dentro del cuerpo (inyectado por LinkifyHelper vía
   MarkupString → necesita ::deep). Teal suave, redondeado, legible: el texto usa
   un teal OSCURECIDO #2E6F71 porque --brand-teal-deep sobre --bg-light-teal da
   3.4:1 y no pasa AA en texto de 14.5px (extensión de LEC-G007 a chips). */
.pc-cuerpo[b-1ogfir1rkg]  .mencion-chip {
    display: inline;
    background: var(--bg-light-teal);
    color: #2E6F71;
    font-weight: 700;
    padding: 1px 7px 2px;
    border-radius: 99px;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
    white-space: nowrap;
}

/* Colectivo: mismo chip con un delineado sutil que lo distingue de la persona. */
.pc-cuerpo[b-1ogfir1rkg]  .mencion-chip.colectivo {
    background: color-mix(in srgb, var(--brand-teal) 16%, transparent);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--brand-teal-deep) 35%, transparent);
}

/* ── Adjuntos ── */
.pc-adjuntos[b-1ogfir1rkg] {
    padding: 10px 16px 4px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.pc-imagen-wrap[b-1ogfir1rkg] {
    border-radius: var(--radius-md);
    overflow: hidden;
    border: 1px solid var(--border-soft);
}

.pc-imagen[b-1ogfir1rkg] {
    display: block;
    width: 100%;
    max-height: 480px;
    object-fit: cover;
}

.pc-imagen-skeleton[b-1ogfir1rkg] {
    width: 100%;
    height: 220px;
    border-radius: 0;
}

/* Chip de adjunto no-imagen: es un <button> (descarga autenticada, deuda v1 D2). */
.pc-archivo[b-1ogfir1rkg] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    width: 100%;
    background: var(--bg-cream);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    padding: 9px 12px;
    font-family: var(--font-sans);
    font-size: 13px;
    color: var(--text-secondary);
    min-width: 0;
    cursor: pointer;
    text-align: left;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.pc-archivo:hover:not(:disabled)[b-1ogfir1rkg] {
    background: var(--cream-deep);
    border-color: var(--brand-teal-deep);
}

.pc-archivo:disabled[b-1ogfir1rkg] {
    cursor: default;
    opacity: 0.75;
}

.pc-archivo .material-symbols-rounded[b-1ogfir1rkg] {
    font-size: 18px;
    color: var(--brand-teal-deep);
    flex-shrink: 0;
}

.pc-archivo .material-symbols-rounded.pc-archivo-spin[b-1ogfir1rkg] {
    animation: pc-archivo-spin-b-1ogfir1rkg 0.9s linear infinite;
}

@keyframes pc-archivo-spin-b-1ogfir1rkg {
    to { transform: rotate(360deg); }
}

.pc-archivo-nombre[b-1ogfir1rkg] {
    font-weight: 600;
    color: var(--text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pc-archivo-tam[b-1ogfir1rkg] {
    flex-shrink: 0;
    font-size: 11.5px;
    color: var(--text-muted);
}

.pc-archivo-error[b-1ogfir1rkg] {
    flex-basis: 100%;
    font-size: 11px;
    font-weight: 600;
    color: var(--danger);
}

/* ── Acuse de recibido ── */
.pc-acuse[b-1ogfir1rkg] { padding: 10px 16px 0; }

.pc-acuse-btn[b-1ogfir1rkg] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 1px solid var(--brand-teal-deep);
    background: var(--brand-teal-primary);
    color: var(--text-primary);
    font-family: var(--font-sans);
    font-size: 12.5px;
    font-weight: 600;
    padding: 7px 14px;
    border-radius: 99px;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.pc-acuse-btn .material-symbols-rounded[b-1ogfir1rkg] { font-size: 16px; }

.pc-acuse-btn:hover:not(:disabled)[b-1ogfir1rkg] {
    background: var(--brand-teal-dark);
    border-color: var(--brand-teal-dark);
}

.pc-acuse-btn.hecho[b-1ogfir1rkg] {
    background: var(--bg-light-teal);
    border-color: var(--brand-teal-dark);
    color: var(--pz-green-deep);
    cursor: default;
}

/* ── Resumen ── */
.pc-resumen[b-1ogfir1rkg] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px 8px;
    font-size: 12.5px;
    color: var(--text-secondary);
}

.pc-resumen-rx[b-1ogfir1rkg] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-weight: 600;
}

.pc-resumen-rx .material-symbols-rounded[b-1ogfir1rkg] {
    font-size: 15px;
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
    border-radius: 50%;
    padding: 3px;
}

.pc-resumen-flex[b-1ogfir1rkg] { flex: 1; }

.pc-resumen-com[b-1ogfir1rkg] {
    border: none;
    background: transparent;
    color: var(--text-secondary);
    font-family: var(--font-sans);
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
    padding: 2px 4px;
    border-radius: var(--radius-sm);
    transition: color 0.15s ease;
}

.pc-resumen-com:hover[b-1ogfir1rkg] {
    color: var(--brand-teal-deep);
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* ── Acciones ── */
.pc-acciones[b-1ogfir1rkg] {
    display: flex;
    align-items: center;
    gap: 4px;
    border-top: 1px solid var(--border-soft);
    margin: 6px 16px 0;
    padding: 6px 0;
}

.pc-acciones > :first-child[b-1ogfir1rkg] { flex: 1; display: flex; }

.pc-btn-comentar[b-1ogfir1rkg] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    flex: 1;
    padding: 8px 10px;
    border: none;
    border-radius: var(--radius-md);
    background: transparent;
    color: var(--text-secondary);
    font-family: var(--font-sans);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}

.pc-btn-comentar .material-symbols-rounded[b-1ogfir1rkg] { font-size: 19px; }

.pc-btn-comentar:hover[b-1ogfir1rkg],
.pc-btn-comentar.activo[b-1ogfir1rkg] {
    background: var(--bg-light-teal);
    color: var(--pz-green-deep);
}

/* ═══ Fase 3C: bloque interactivo (encuesta / evento / checklist) ═══ */

.pc-bloque[b-1ogfir1rkg] {
    margin: 10px 16px 2px;
    padding: 12px;
    background: var(--bg-cream);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.pc-bloque-head[b-1ogfir1rkg] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-secondary);
}

.pc-bloque-head .material-symbols-rounded[b-1ogfir1rkg] {
    font-size: 16px;
    color: var(--brand-teal-deep);
}

.pc-bloque-meta[b-1ogfir1rkg] {
    margin-left: auto;
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
}

.pc-bloque-pie[b-1ogfir1rkg] {
    font-size: 11.5px;
    color: var(--text-muted);
}

.pc-bloque-error[b-1ogfir1rkg] {
    display: flex;
    align-items: center;
    gap: 6px;
    color: var(--danger);
    font-size: 12px;
    font-weight: 600;
}

.pc-bloque-error .material-symbols-rounded[b-1ogfir1rkg] { font-size: 15px; }

/* ── Encuesta: opción con barra de porcentaje ── */
.pc-encuesta-ops[b-1ogfir1rkg] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.pc-op[b-1ogfir1rkg] {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 9px 12px;
    border: 1px solid var(--border-med);
    border-radius: var(--radius-md);
    background: var(--bg-panel);
    font-family: var(--font-sans);
    font-size: 13.5px;
    color: var(--text-primary);
    text-align: left;
    cursor: pointer;
    overflow: hidden;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.pc-op:hover:not(:disabled)[b-1ogfir1rkg] {
    border-color: var(--brand-teal);
    box-shadow: var(--shadow-sm);
}

.pc-op:focus-visible[b-1ogfir1rkg] {
    outline: 2px solid var(--brand-teal-deep);
    outline-offset: 2px;
}

.pc-op:disabled[b-1ogfir1rkg] { cursor: default; opacity: 0.75; }

.pc-op.mia[b-1ogfir1rkg] {
    border-color: var(--brand-teal-deep);
    box-shadow: 0 0 0 1px var(--brand-teal-deep) inset;
}

/* Barra de % detrás del contenido — crece con transición suave. */
.pc-op-fill[b-1ogfir1rkg] {
    position: absolute;
    inset: 0 auto 0 0;
    background: var(--bg-light-teal);
    transition: width 0.25s var(--ease);
    pointer-events: none;
}

.pc-op.mia .pc-op-fill[b-1ogfir1rkg] {
    background: color-mix(in srgb, var(--brand-teal) 26%, transparent);
}

.pc-op-icono[b-1ogfir1rkg],
.pc-op-texto[b-1ogfir1rkg],
.pc-op-datos[b-1ogfir1rkg] { position: relative; }

.pc-op-icono[b-1ogfir1rkg] {
    font-size: 18px;
    color: var(--text-muted);
    flex-shrink: 0;
}

.pc-op.mia .pc-op-icono[b-1ogfir1rkg] { color: var(--brand-teal-deep); }

.pc-op-texto[b-1ogfir1rkg] {
    flex: 1;
    min-width: 0;
    font-weight: 600;
    overflow-wrap: anywhere;
}

.pc-op-datos[b-1ogfir1rkg] {
    display: flex;
    align-items: baseline;
    gap: 6px;
    flex-shrink: 0;
    font-variant-numeric: tabular-nums;
}

.pc-op-pct[b-1ogfir1rkg] {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-primary);
}

.pc-op-conteo[b-1ogfir1rkg] {
    font-size: 11px;
    color: var(--text-muted);
}

/* ── Evento: fecha + lugar + RSVP ── */
.pc-evento-info[b-1ogfir1rkg] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.pc-evento-badge[b-1ogfir1rkg] {
    width: 48px;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    background: var(--bg-panel);
    border: 1px solid var(--border-med);
    border-radius: var(--radius-md);
    overflow: hidden;
    user-select: none;
}

.pc-evento-dia[b-1ogfir1rkg] {
    font-family: var(--font-serif);
    font-size: 19px;
    font-weight: 700;
    line-height: 1.35;
    color: var(--text-primary);
}

.pc-evento-mes[b-1ogfir1rkg] {
    width: 100%;
    text-align: center;
    background: var(--brand-teal-primary);
    color: var(--text-primary);
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 0.1em;
    padding: 2px 0;
}

.pc-evento-datos[b-1ogfir1rkg] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.pc-evento-cuando[b-1ogfir1rkg] {
    font-size: 13.5px;
    font-weight: 700;
    color: var(--text-primary);
}

.pc-evento-lugar[b-1ogfir1rkg] {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    color: var(--text-secondary);
    overflow-wrap: anywhere;
}

.pc-evento-lugar .material-symbols-rounded[b-1ogfir1rkg] {
    font-size: 14px;
    color: var(--brand-teal-deep);
    flex-shrink: 0;
}

.pc-evento-pasado[b-1ogfir1rkg] {
    flex-shrink: 0;
    align-self: flex-start;
    background: var(--cream-deep);
    color: var(--text-muted);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding: 3px 8px;
    border-radius: 99px;
}

.pc-rsvp[b-1ogfir1rkg] {
    display: flex;
    gap: 8px;
}

.pc-rsvp-btn[b-1ogfir1rkg] {
    flex: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px 12px;
    border: 1px solid var(--border-med);
    border-radius: 99px;
    background: var(--bg-panel);
    font-family: var(--font-sans);
    font-size: 12.5px;
    font-weight: 600;
    color: var(--text-secondary);
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.pc-rsvp-btn .material-symbols-rounded[b-1ogfir1rkg] { font-size: 17px; }

.pc-rsvp-btn:hover:not(:disabled)[b-1ogfir1rkg] {
    border-color: var(--brand-teal);
    background: var(--bg-light-teal);
}

.pc-rsvp-btn:focus-visible[b-1ogfir1rkg] {
    outline: 2px solid var(--brand-teal-deep);
    outline-offset: 2px;
}

.pc-rsvp-btn:disabled[b-1ogfir1rkg] { cursor: default; opacity: 0.75; }

.pc-rsvp-btn.si.mia[b-1ogfir1rkg] {
    background: var(--brand-teal-primary);
    border-color: var(--brand-teal-deep);
    color: var(--text-primary);
}

.pc-rsvp-btn.no.mia[b-1ogfir1rkg] {
    background: var(--carbon-1);
    border-color: var(--carbon-1);
    color: var(--cream);
}

.pc-rsvp-conteo[b-1ogfir1rkg] {
    font-size: 11px;
    font-weight: 700;
    background: var(--cream-deep);
    color: var(--text-secondary);
    border-radius: 99px;
    padding: 1px 7px;
    font-variant-numeric: tabular-nums;
}

.pc-rsvp-btn.mia .pc-rsvp-conteo[b-1ogfir1rkg] {
    background: rgba(255, 255, 255, 0.22);
    color: #fff;
}

/* ── Checklist: progreso + items compartidos ── */
.pc-check-progreso[b-1ogfir1rkg] {
    height: 4px;
    border-radius: 99px;
    background: var(--cream-deep);
    overflow: hidden;
}

.pc-check-progreso span[b-1ogfir1rkg] {
    display: block;
    height: 100%;
    border-radius: 99px;
    background: linear-gradient(90deg, var(--brand-teal), var(--brand-teal-deep));
    transition: width 0.25s var(--ease);
}

.pc-check-items[b-1ogfir1rkg] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.pc-check-item[b-1ogfir1rkg] {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 7px 8px;
    border: none;
    border-radius: var(--radius-sm);
    background: transparent;
    font-family: var(--font-sans);
    font-size: 13.5px;
    color: var(--text-primary);
    text-align: left;
    cursor: pointer;
    transition: background 0.15s ease;
}

.pc-check-item:hover:not(:disabled)[b-1ogfir1rkg] { background: var(--cream-deep); }

.pc-check-item:focus-visible[b-1ogfir1rkg] {
    outline: 2px solid var(--brand-teal-deep);
    outline-offset: -2px;
}

.pc-check-item:disabled[b-1ogfir1rkg] { cursor: default; opacity: 0.75; }

.pc-check-icono[b-1ogfir1rkg] {
    font-size: 19px;
    color: var(--text-muted);
    flex-shrink: 0;
    transition: color 0.15s ease;
}

.pc-check-item.marcado .pc-check-icono[b-1ogfir1rkg] { color: var(--brand-teal-deep); }

.pc-check-texto[b-1ogfir1rkg] {
    flex: 1;
    min-width: 0;
    font-weight: 600;
    overflow-wrap: anywhere;
    transition: color 0.15s ease;
}

.pc-check-item.marcado .pc-check-texto[b-1ogfir1rkg] {
    color: var(--text-muted);
    text-decoration: line-through;
    text-decoration-color: var(--border-med);
}

.pc-check-quien[b-1ogfir1rkg] {
    flex-shrink: 0;
    max-width: 40%;
    font-size: 11px;
    font-weight: 600;
    color: var(--pz-green-deep);
    background: var(--bg-light-teal);
    border-radius: 99px;
    padding: 2px 8px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Iconos rellenos (badge oficial, pin, resumen) */
.material-symbols-rounded.fill[b-1ogfir1rkg] {
    font-variation-settings: "FILL" 1, "wght" 500, "GRAD" 0, "opsz" 24;
}

/* ── Móvil ── */
@media (max-width: 640px) {
    .pc-card[b-1ogfir1rkg] { border-radius: var(--radius-md); }
    .pc-header[b-1ogfir1rkg] { padding: 14px 12px 0; }
    .pc-cuerpo[b-1ogfir1rkg] { padding: 10px 12px 4px; font-size: 14px; }
    .pc-adjuntos[b-1ogfir1rkg] { padding: 8px 12px 4px; }
    .pc-resumen[b-1ogfir1rkg] { padding: 8px 12px 6px; }
    .pc-acciones[b-1ogfir1rkg] { margin: 6px 12px 0; }
    .pc-btn-comentar .pc-btn-label[b-1ogfir1rkg] { display: none; }
    .pc-avatar[b-1ogfir1rkg] { width: 40px; height: 40px; font-size: 13px; }
    .pc-bloque[b-1ogfir1rkg] { margin: 8px 12px 2px; padding: 10px; }
    .pc-rsvp[b-1ogfir1rkg] { flex-direction: column; }
    .pc-check-quien[b-1ogfir1rkg] { max-width: 32%; }
}
/* /Components/Comunidad/PostComposer.razor.rz.scp.css */
/* PostComposer — card cálida e invitadora arriba del feed. */

.pcx-card[b-i77io1xxv7] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    transition: box-shadow 0.2s ease;
}

.pcx-card.expandido[b-i77io1xxv7] {
    box-shadow: var(--shadow-md);
}

/* ── Avatar ── */
.pcx-avatar[b-i77io1xxv7] {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13.5px;
    font-weight: 700;
    color: #fff;
    background: linear-gradient(135deg, var(--brand-teal), var(--brand-teal-deep));
    letter-spacing: 0.02em;
    user-select: none;
}

/* ── Colapsado ── */
.pcx-colapsado[b-i77io1xxv7] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
}

.pcx-fantasma[b-i77io1xxv7] {
    flex: 1;
    min-width: 0;
    text-align: left;
    border: 1px solid var(--border-soft);
    background: var(--bg-cream);
    color: var(--text-muted);
    font-family: var(--font-sans);
    font-size: 14px;
    padding: 11px 18px;
    border-radius: 99px;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.pcx-fantasma:hover[b-i77io1xxv7] {
    background: var(--bg-light-teal);
    border-color: var(--brand-teal);
    color: var(--text-secondary);
}

.pcx-icono-foto[b-i77io1xxv7] {
    width: 40px;
    height: 40px;
    border: none;
    border-radius: 50%;
    background: transparent;
    color: var(--brand-teal-deep);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    transition: background 0.15s ease;
}

.pcx-icono-foto:hover[b-i77io1xxv7] { background: var(--bg-light-teal); }
.pcx-icono-foto .material-symbols-rounded[b-i77io1xxv7] { font-size: 22px; }

/* ── Expandido ── */
.pcx-abierto[b-i77io1xxv7] {
    padding: 14px 16px 12px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    animation: pcx-abrir-b-i77io1xxv7 0.2s var(--ease);
}

@keyframes pcx-abrir-b-i77io1xxv7 {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}

.pcx-fila-autor[b-i77io1xxv7] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.pcx-autor-info[b-i77io1xxv7] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.pcx-autor-nombre[b-i77io1xxv7] {
    font-family: var(--font-serif);
    font-size: 15px;
    font-weight: 700;
    color: var(--text-primary);
    letter-spacing: -0.01em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pcx-autor-hint[b-i77io1xxv7] {
    font-size: 12px;
    color: var(--text-muted);
}

.pcx-cerrar[b-i77io1xxv7] {
    width: 32px;
    height: 32px;
    border: none;
    border-radius: 50%;
    background: transparent;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    transition: background 0.15s ease, color 0.15s ease;
}

.pcx-cerrar:hover[b-i77io1xxv7] { background: var(--cream-deep); color: var(--text-primary); }
.pcx-cerrar .material-symbols-rounded[b-i77io1xxv7] { font-size: 20px; }

.pcx-textarea[b-i77io1xxv7] {
    width: 100%;
    border: none;
    outline: none;
    resize: vertical;
    min-height: 96px;
    background: transparent;
    font-family: var(--font-sans);
    font-size: 15px;
    line-height: 1.6;
    color: var(--text-primary);
    padding: 0 2px;
}

.pcx-textarea[b-i77io1xxv7]::placeholder { color: var(--text-muted); }
.pcx-textarea:disabled[b-i77io1xxv7] { opacity: 0.6; }

/* ── Preview de imagen ── */
.pcx-preview[b-i77io1xxv7] {
    position: relative;
    border-radius: var(--radius-md);
    overflow: hidden;
    border: 1px solid var(--border-soft);
    max-height: 260px;
}

.pcx-preview img[b-i77io1xxv7] {
    display: block;
    width: 100%;
    max-height: 260px;
    object-fit: cover;
}

.pcx-preview-quitar[b-i77io1xxv7] {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 30px;
    height: 30px;
    border: none;
    border-radius: 50%;
    background: var(--carbon-1);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    opacity: 0.85;
    transition: opacity 0.15s ease;
}

.pcx-preview-quitar:hover[b-i77io1xxv7] { opacity: 1; }
.pcx-preview-quitar .material-symbols-rounded[b-i77io1xxv7] { font-size: 17px; }

/* ── Chips de audiencia ── */
.pcx-audiencia[b-i77io1xxv7] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.pcx-audiencia-label[b-i77io1xxv7] {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--text-muted);
    margin-right: 2px;
}

.pcx-chip[b-i77io1xxv7] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    border: 1px solid var(--border-med);
    background: var(--bg-panel);
    color: var(--text-secondary);
    font-family: var(--font-sans);
    font-size: 12.5px;
    font-weight: 600;
    padding: 6px 12px;
    border-radius: 99px;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.pcx-chip .material-symbols-rounded[b-i77io1xxv7] { font-size: 15px; }

.pcx-chip:hover[b-i77io1xxv7] {
    border-color: var(--brand-teal);
    background: var(--bg-light-teal);
}

.pcx-chip.activo[b-i77io1xxv7] {
    background: var(--brand-teal-primary);
    border-color: var(--brand-teal-deep);
    color: var(--text-primary);
}

.pcx-chip:disabled[b-i77io1xxv7] { opacity: 0.6; cursor: default; }

/* ── Multi-escuela: sub-chips "¿En cuál escuela?" ──
   Solo aparece para autores con >1 escuela; mismo lenguaje de chips (.pcx-chip,
   estado activo teal incluido) dentro de un panel crema que lo lee como detalle
   de "Mi escuela", no como una sección nueva. */
.pcx-escuelas[b-i77io1xxv7] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: -4px; /* pegado a la fila "Para:" (gap 12 → 8, escala 4/8) */
    padding: 10px 12px;
    background: var(--bg-cream);
    border: 1px dashed var(--border-med);
    border-radius: var(--radius-md);
    animation: pcx-abrir-b-i77io1xxv7 0.2s var(--ease);
}

.pcx-escuelas-label[b-i77io1xxv7] {
    flex-basis: 100%;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
    font-weight: 700;
    color: var(--text-secondary);
    letter-spacing: 0.01em;
}

.pcx-escuelas-label .material-symbols-rounded[b-i77io1xxv7] {
    font-size: 16px;
    color: var(--brand-teal-deep);
}

.pcx-escuelas-hint[b-i77io1xxv7] {
    flex-basis: 100%;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: var(--text-muted);
}

.pcx-escuelas-hint .material-symbols-rounded[b-i77io1xxv7] { font-size: 15px; }

/* ── Error ── */
.pcx-error[b-i77io1xxv7] {
    display: flex;
    align-items: center;
    gap: 6px;
    color: var(--danger);
    font-size: 12.5px;
    font-weight: 600;
}

.pcx-error .material-symbols-rounded[b-i77io1xxv7] { font-size: 16px; }

/* ── Acciones ── */
.pcx-acciones[b-i77io1xxv7] {
    display: flex;
    align-items: center;
    gap: 12px;
    border-top: 1px solid var(--border-soft);
    padding-top: 12px;
}

.pcx-adjuntar[b-i77io1xxv7] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--brand-teal-deep);
    font-size: 13px;
    font-weight: 600;
    padding: 7px 12px;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: background 0.15s ease;
    position: relative;
    overflow: hidden;
}

.pcx-adjuntar:hover[b-i77io1xxv7] { background: var(--bg-light-teal); }
.pcx-adjuntar.deshabilitado[b-i77io1xxv7] { opacity: 0.6; pointer-events: none; }
.pcx-adjuntar .material-symbols-rounded[b-i77io1xxv7] { font-size: 19px; }

/* input file invisible pero clicable via el label */
.pcx-adjuntar[b-i77io1xxv7]  .pcx-file-input {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
}

.pcx-contador[b-i77io1xxv7] {
    flex: 1;
    text-align: right;
    font-size: 11.5px;
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
}

.pcx-contador.alerta[b-i77io1xxv7] { color: var(--warning); font-weight: 700; }

.pcx-publicar[b-i77io1xxv7] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border: 1px solid var(--brand-teal-deep);
    background: var(--brand-teal-primary);
    color: var(--text-primary);
    font-family: var(--font-sans);
    font-size: 13.5px;
    font-weight: 700;
    padding: 9px 20px;
    border-radius: 99px;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}

.pcx-publicar .material-symbols-rounded[b-i77io1xxv7] { font-size: 17px; }

.pcx-publicar:hover:not(:disabled)[b-i77io1xxv7] {
    background: var(--brand-teal-dark);
    border-color: var(--brand-teal-dark);
    transform: translateY(-1px);
}

.pcx-publicar:active:not(:disabled)[b-i77io1xxv7] { transform: translateY(0); }

.pcx-publicar:disabled[b-i77io1xxv7] {
    background: var(--carbon-6);
    border-color: var(--carbon-6);
    cursor: default;
}

.pcx-spinner[b-i77io1xxv7] {
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255, 255, 255, 0.35);
    border-top-color: #fff;
    border-radius: 50%;
    animation: pcx-girar-b-i77io1xxv7 0.7s linear infinite;
}

@keyframes pcx-girar-b-i77io1xxv7 {
    to { transform: rotate(360deg); }
}

/* ── Fase 3C: selector de tipo ── */
.pcx-tipos[b-i77io1xxv7] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

/* Variante del chip de audiencia: mismo lenguaje, acento propio al activarse. */
.pcx-chip.pcx-tipo.activo[b-i77io1xxv7] {
    background: var(--bg-light-teal);
    border-color: var(--brand-teal-deep);
    color: var(--pz-green-deep);
}

/* ── Fase 3C: editor por tipo (panel crema suave) ── */
.pcx-bloque-editor[b-i77io1xxv7] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    background: var(--bg-cream);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    padding: 12px;
    animation: pcx-abrir-b-i77io1xxv7 0.2s var(--ease);
}

.pcx-bloque-head[b-i77io1xxv7] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
    font-weight: 700;
    color: var(--text-secondary);
    letter-spacing: 0.01em;
}

.pcx-bloque-head .material-symbols-rounded[b-i77io1xxv7] {
    font-size: 17px;
    color: var(--brand-teal-deep);
}

.pcx-bloque-contador[b-i77io1xxv7] {
    margin-left: auto;
    font-size: 11.5px;
    font-weight: 600;
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
}

/* Renglón de opción / pendiente */
.pcx-opcion[b-i77io1xxv7] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.pcx-opcion-num[b-i77io1xxv7] {
    width: 20px;
    flex-shrink: 0;
    text-align: right;
    font-size: 12px;
    font-weight: 700;
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
    user-select: none;
}

.pcx-opcion-input[b-i77io1xxv7] {
    flex: 1;
    min-width: 0;
    border: 1px solid var(--border-med);
    background: var(--bg-panel);
    border-radius: var(--radius-md);
    padding: 8px 12px;
    font-family: var(--font-sans);
    font-size: 13.5px;
    color: var(--text-primary);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.pcx-opcion-input[b-i77io1xxv7]::placeholder { color: var(--text-muted); }

.pcx-opcion-input:focus[b-i77io1xxv7] {
    outline: none;
    border-color: var(--brand-teal-deep);
    box-shadow: 0 0 0 3px var(--bg-light-teal);
}

.pcx-opcion-input:disabled[b-i77io1xxv7] { opacity: 0.6; }

/* Duplicada: borde ámbar discreto (la pista de texto explica el porqué). */
.pcx-opcion.duplicada .pcx-opcion-input[b-i77io1xxv7] {
    border-color: var(--warning);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--warning) 14%, transparent);
}

.pcx-opcion-acciones[b-i77io1xxv7] {
    display: flex;
    align-items: center;
    gap: 2px;
    flex-shrink: 0;
}

.pcx-opcion-btn[b-i77io1xxv7] {
    width: 28px;
    height: 28px;
    border: none;
    border-radius: 50%;
    background: transparent;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}

.pcx-opcion-btn .material-symbols-rounded[b-i77io1xxv7] { font-size: 16px; }

.pcx-opcion-btn:hover:not(:disabled)[b-i77io1xxv7] {
    background: var(--cream-deep);
    color: var(--text-primary);
}

.pcx-opcion-btn.quitar:hover:not(:disabled)[b-i77io1xxv7] {
    background: color-mix(in srgb, var(--danger) 12%, transparent);
    color: var(--danger);
}

.pcx-opcion-btn:disabled[b-i77io1xxv7] { opacity: 0.35; cursor: default; }

.pcx-agregar-opcion[b-i77io1xxv7] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    align-self: flex-start;
    margin-left: 28px;
    border: 1px dashed var(--border-med);
    background: transparent;
    color: var(--brand-teal-deep);
    font-family: var(--font-sans);
    font-size: 12.5px;
    font-weight: 600;
    padding: 7px 14px;
    border-radius: 99px;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.pcx-agregar-opcion .material-symbols-rounded[b-i77io1xxv7] { font-size: 16px; }

.pcx-agregar-opcion:hover:not(:disabled)[b-i77io1xxv7] {
    background: var(--bg-light-teal);
    border-color: var(--brand-teal-deep);
}

.pcx-agregar-opcion:disabled[b-i77io1xxv7] { opacity: 0.6; cursor: default; }

/* Campos del evento */
.pcx-evento-campos[b-i77io1xxv7] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 8px;
}

.pcx-campo[b-i77io1xxv7] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.pcx-campo-label[b-i77io1xxv7] {
    font-size: 11.5px;
    font-weight: 700;
    color: var(--text-secondary);
    letter-spacing: 0.02em;
}

.pcx-campo-opcional[b-i77io1xxv7] {
    font-weight: 500;
    color: var(--text-muted);
}

.pcx-campo-input[b-i77io1xxv7] {
    border: 1px solid var(--border-med);
    background: var(--bg-panel);
    border-radius: var(--radius-md);
    padding: 8px 12px;
    font-family: var(--font-sans);
    font-size: 13.5px;
    color: var(--text-primary);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.pcx-campo-input[b-i77io1xxv7]::placeholder { color: var(--text-muted); }

.pcx-campo-input:focus[b-i77io1xxv7] {
    outline: none;
    border-color: var(--brand-teal-deep);
    box-shadow: 0 0 0 3px var(--bg-light-teal);
}

.pcx-campo-input:disabled[b-i77io1xxv7] { opacity: 0.6; }

.pcx-bloque-nota[b-i77io1xxv7] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11.5px;
    color: var(--text-muted);
}

.pcx-bloque-nota .material-symbols-rounded[b-i77io1xxv7] { font-size: 15px; }

/* Pista de validación (guía, no error) */
.pcx-hint[b-i77io1xxv7] {
    display: flex;
    align-items: center;
    gap: 6px;
    color: var(--text-secondary);
    font-size: 12.5px;
    font-weight: 600;
}

.pcx-hint .material-symbols-rounded[b-i77io1xxv7] {
    font-size: 16px;
    color: var(--brand-teal-deep);
}

/* ═══ Fase 3D: menciones (@) ═══════════════════════════════════════ */

/* Ancla del menú flotante (el textarea vive dentro). */
.pcx-texto-zona[b-i77io1xxv7] { position: relative; }

.pcx-mencion-backdrop[b-i77io1xxv7] {
    position: fixed;
    inset: 0;
    z-index: 7;
}

/* Menú flotante — mismo lenguaje que .pc-menu del muro: panel blanco, sombra
   suave, radio medio; anclado bajo el textarea. */
.pcx-mencion-menu[b-i77io1xxv7] {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    z-index: 8;
    max-width: 440px;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
    animation: pcx-abrir-b-i77io1xxv7 0.18s var(--ease);
}

/* Buscador del menú (el teclado vive aquí: flechas/Enter/Esc sin JS). */
.pcx-mencion-buscar[b-i77io1xxv7] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    background: var(--bg-cream);
    border-bottom: 1px solid var(--border-soft);
}

.pcx-mencion-buscar > .material-symbols-rounded[b-i77io1xxv7] {
    font-size: 18px;
    color: var(--brand-teal-deep);
    flex-shrink: 0;
}

.pcx-mencion-input[b-i77io1xxv7] {
    flex: 1;
    min-width: 0;
    border: none;
    outline: none;
    background: transparent;
    font-family: var(--font-sans);
    font-size: 13.5px;
    color: var(--text-primary);
}

.pcx-mencion-input[b-i77io1xxv7]::placeholder { color: var(--text-muted); }

.pcx-mencion-teclas[b-i77io1xxv7] {
    flex-shrink: 0;
    font-size: 10.5px;
    font-weight: 600;
    color: var(--text-muted);
    white-space: nowrap;
    user-select: none;
}

.pcx-mencion-lista[b-i77io1xxv7] {
    max-height: 264px;
    overflow-y: auto;
    padding: 6px;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.pcx-mencion-seccion[b-i77io1xxv7] {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--text-muted);
    padding: 8px 10px 4px;
    user-select: none;
}

.pcx-mencion-item[b-i77io1xxv7] {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 7px 10px;
    border: none;
    border-radius: var(--radius-sm);
    background: transparent;
    font-family: var(--font-sans);
    font-size: 13.5px;
    color: var(--text-primary);
    text-align: left;
    cursor: pointer;
    transition: background 0.15s ease;
}

.pcx-mencion-item.resaltado[b-i77io1xxv7] { background: var(--bg-light-teal); }

.pcx-mencion-icono[b-i77io1xxv7] {
    width: 30px;
    height: 30px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--bg-light-teal);
    color: var(--brand-teal-deep);
}

.pcx-mencion-icono .material-symbols-rounded[b-i77io1xxv7] { font-size: 17px; }

.pcx-mencion-avatar[b-i77io1xxv7] {
    width: 30px;
    height: 30px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-size: 11px;
    font-weight: 700;
    color: #fff;
    background: linear-gradient(135deg, var(--brand-teal), var(--brand-teal-deep));
    letter-spacing: 0.02em;
    user-select: none;
}

.pcx-mencion-nombre[b-i77io1xxv7] {
    flex: 1;
    min-width: 0;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pcx-mencion-conteo[b-i77io1xxv7] {
    flex-shrink: 0;
    font-size: 11px;
    font-weight: 600;
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
}

/* Estados del menú: vacío / cargando / error — misma voz que pcx-hint. */
.pcx-mencion-vacio[b-i77io1xxv7],
.pcx-mencion-cargando[b-i77io1xxv7] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 14px 14px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--text-secondary);
}

.pcx-mencion-vacio .material-symbols-rounded[b-i77io1xxv7] {
    font-size: 17px;
    color: var(--brand-teal-deep);
}

.pcx-mencion-vacio.error[b-i77io1xxv7],
.pcx-mencion-vacio.error .material-symbols-rounded[b-i77io1xxv7] { color: var(--danger); }

/* Spinner reutilizado del botón Publicar, en tinta de marca para fondo claro. */
.pcx-spinner.oscuro[b-i77io1xxv7] {
    border-color: var(--bg-light-teal);
    border-top-color: var(--brand-teal-deep);
}

/* Chips de menciones activas bajo el textarea. */
.pcx-menciones[b-i77io1xxv7] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: -4px; /* pegado al textarea (escala 4/8) */
}

.pcx-menciones-label[b-i77io1xxv7] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    font-weight: 700;
    color: var(--text-muted);
}

.pcx-menciones-label .material-symbols-rounded[b-i77io1xxv7] {
    font-size: 14px;
    color: var(--brand-teal-deep);
}

/* Texto del chip en teal OSCURECIDO #2E6F71: --brand-teal-deep sobre
   --bg-light-teal da 3.4:1 y no pasa AA (extensión de LEC-G007). */
.pcx-mencion-chip[b-i77io1xxv7] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: var(--bg-light-teal);
    color: #2E6F71;
    font-size: 12px;
    font-weight: 700;
    padding: 3px 4px 3px 9px;
    border-radius: 99px;
}

.pcx-mencion-chip > .material-symbols-rounded[b-i77io1xxv7] { font-size: 14px; }

.pcx-mencion-chip.colectivo[b-i77io1xxv7] {
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--brand-teal-deep) 35%, transparent);
}

.pcx-mencion-chip-x[b-i77io1xxv7] {
    width: 18px;
    height: 18px;
    border: none;
    border-radius: 50%;
    background: transparent;
    color: inherit;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.15s ease;
}

.pcx-mencion-chip-x:hover[b-i77io1xxv7] { background: color-mix(in srgb, var(--brand-teal-deep) 18%, transparent); }
.pcx-mencion-chip-x .material-symbols-rounded[b-i77io1xxv7] { font-size: 13px; }
.pcx-mencion-chip-x:disabled[b-i77io1xxv7] { opacity: 0.5; cursor: default; }

/* Botón "Mencionar" de la barra de acciones — gemelo de .pcx-adjuntar. */
.pcx-btn-mencionar[b-i77io1xxv7] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: none;
    background: transparent;
    color: var(--brand-teal-deep);
    font-family: var(--font-sans);
    font-size: 13px;
    font-weight: 600;
    padding: 7px 12px;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: background 0.15s ease;
}

.pcx-btn-mencionar:hover:not(:disabled)[b-i77io1xxv7] { background: var(--bg-light-teal); }
.pcx-btn-mencionar:disabled[b-i77io1xxv7] { opacity: 0.6; cursor: default; }
.pcx-btn-mencionar .material-symbols-rounded[b-i77io1xxv7] { font-size: 19px; }

/* ── Móvil ── */
@media (max-width: 640px) {
    .pcx-card[b-i77io1xxv7] { border-radius: var(--radius-md); }
    .pcx-colapsado[b-i77io1xxv7] { padding: 12px; }
    .pcx-abierto[b-i77io1xxv7] { padding: 12px 12px 10px; }
    .pcx-adjuntar-label[b-i77io1xxv7] { display: none; }
    .pcx-publicar[b-i77io1xxv7] { padding: 9px 16px; }
    .pcx-evento-campos[b-i77io1xxv7] { grid-template-columns: 1fr; }
    .pcx-agregar-opcion[b-i77io1xxv7] { margin-left: 0; }
    .pcx-mencion-teclas[b-i77io1xxv7] { display: none; }  /* en touch no hay teclado físico */
    .pcx-mencion-menu[b-i77io1xxv7] { max-width: none; }
}

.pcx-adjunto-pendiente[b-i77io1xxv7] { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; padding: 16px; background: var(--bg-light-teal); border-bottom: 1px solid var(--border-soft); font-size: 13px; line-height: 1.5; }
.pcx-adjunto-pendiente button[b-i77io1xxv7], .pcx-adjunto-pendiente a[b-i77io1xxv7] { min-height: 44px; display: inline-flex; align-items: center; padding: 8px 12px; border-radius: 10px; color: var(--brand-teal-deep); background: var(--bg-panel); border: 1px solid var(--border-soft); }
/* /Components/Comunidad/ReaccionesBar.razor.rz.scp.css */
/* ReaccionesBar — 3 reacciones con la propia resaltada en teal. */

.rx-bar[b-owqj6v116g] {
    display: flex;
    align-items: center;
    gap: 4px;
}

.rx-btn[b-owqj6v116g] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    flex: 1;
    padding: 8px 10px;
    border: none;
    border-radius: var(--radius-md);
    background: transparent;
    color: var(--text-secondary);
    font-family: var(--font-sans);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
    user-select: none;
}

.rx-btn .material-symbols-rounded[b-owqj6v116g] {
    font-size: 19px;
    transition: transform 0.2s var(--ease);
}

.rx-btn .material-symbols-rounded.fill[b-owqj6v116g] {
    font-variation-settings: "FILL" 1, "wght" 500, "GRAD" 0, "opsz" 24;
}

.rx-btn:hover[b-owqj6v116g] {
    background: var(--bg-light-teal);
    color: var(--brand-teal-deep);
}

.rx-btn:hover .material-symbols-rounded[b-owqj6v116g] {
    transform: translateY(-1px);
}

.rx-btn:active .material-symbols-rounded[b-owqj6v116g] {
    transform: scale(0.9);
}

.rx-btn:disabled[b-owqj6v116g] {
    opacity: 0.65;
    cursor: default;
}

/* Reacción propia: teal, icono relleno. Label en el teal profundo de la
   familia pizarra (--pz-green-deep) para asegurar contraste AA sobre el chip. */
.rx-btn.activa[b-owqj6v116g] {
    background: var(--bg-light-teal);
    color: var(--pz-green-deep);
}

.rx-btn.activa .material-symbols-rounded[b-owqj6v116g] {
    color: var(--brand-teal-deep);
}

@media (max-width: 640px) {
    .rx-btn .rx-label[b-owqj6v116g] { display: none; }
    .rx-btn[b-owqj6v116g] { padding: 10px; }
    .rx-btn .material-symbols-rounded[b-owqj6v116g] { font-size: 21px; }
}
/* /Components/ConfirmDialog.razor.rz.scp.css */
.cd-overlay[b-rey1hcv3vu] {
    position: fixed;
    inset: 0;
    background: rgba(20, 22, 25, 0.45);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 4000;
    animation: cd-fade 0.15s ease;
}

@@keyframes cd-fade {
    from[b-rey1hcv3vu] { opacity: 0; }
    to[b-rey1hcv3vu] { opacity: 1; }
}

.cd-modal[b-rey1hcv3vu] {
    background: #FFFFFF;
    border-radius: 16px;
    padding: 26px 26px 20px;
    width: min(92vw, 380px);
    box-shadow: var(--pz-shadow-float);
    text-align: center;
    animation: cd-pop 0.18s ease;
}

@@keyframes cd-pop {
    from[b-rey1hcv3vu] { transform: scale(0.94); opacity: 0; }
    to[b-rey1hcv3vu] { transform: scale(1); opacity: 1; }
}

.cd-icon[b-rey1hcv3vu] {
    width: 52px;
    height: 52px;
    margin: 0 auto 12px;
    border-radius: 50%;
    background: var(--cream);
    color: var(--carbon-3);
    display: flex;
    align-items: center;
    justify-content: center;
}

.cd-icon .material-symbols-rounded[b-rey1hcv3vu] {
    font-size: 28px;
}

.cd-icon.peligro[b-rey1hcv3vu] {
    background: rgba(163, 45, 45, 0.1);
    color: var(--danger);
}

.cd-titulo[b-rey1hcv3vu] {
    font-family: var(--font-serif, 'Fraunces', serif);
    font-size: 18px;
    font-weight: 600;
    color: var(--carbon-1);
    margin: 0 0 6px;
}

.cd-mensaje[b-rey1hcv3vu] {
    font-family: var(--font-sans, 'Figtree', sans-serif);
    font-size: 14px;
    line-height: 1.5;
    color: var(--carbon-4);
    margin: 0 0 18px;
}

.cd-actions[b-rey1hcv3vu] {
    display: flex;
    gap: 8px;
    justify-content: center;
}

.cd-btn[b-rey1hcv3vu] {
    padding: 10px 20px;
    border-radius: 10px;
    font-family: var(--font-sans, 'Figtree', sans-serif);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    border: 1px solid transparent;
    transition: filter 0.12s, background 0.12s;
    min-width: 110px;
}

.cd-btn-sec[b-rey1hcv3vu] {
    background: var(--cream);
    color: var(--carbon-3);
    border-color: var(--cream-deep);
}

.cd-btn-sec:hover[b-rey1hcv3vu] {
    background: var(--cream-deep);
}

.cd-btn-pri[b-rey1hcv3vu] {
    background: var(--carbon-1);
    color: #FFFFFF;
}

.cd-btn-pri:hover[b-rey1hcv3vu] {
    filter: brightness(1.25);
}

.cd-btn-peligro[b-rey1hcv3vu] {
    background: var(--danger);
    color: #FFFFFF;
}

.cd-btn-peligro:hover[b-rey1hcv3vu] {
    filter: brightness(1.12);
}

.cd-btn[disabled][b-rey1hcv3vu] {
    opacity: 0.6;
    cursor: progress;
    filter: none;
}
/* /Components/ControlAcceso/CierreEntradaCard.razor.rz.scp.css */
/* Ingresos con retardo · tarjeta «Hoy» + confirmacion del cierre (pantalla B del mockup).
   Mismo lenguaje que Seguimiento de accesos (.sac-*): cards blancas 11px, tokens de tokens.css.
   Verde = abierta / a tiempo, ambar = cerrada / retardo, rojo = falta. */

.ce-card[b-rxyc99g2ul] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    margin-bottom: 12px;
    border-radius: 11px;
    border: 1px solid;
    background: var(--bg-panel);
}
.ce-abierta[b-rxyc99g2ul] {
    background: color-mix(in srgb, var(--success) 9%, white);
    border-color: color-mix(in srgb, var(--success) 30%, transparent);
}
.ce-cerrada[b-rxyc99g2ul], .ce-pendiente[b-rxyc99g2ul] {
    background: color-mix(in srgb, var(--warning) 10%, white);
    border-color: color-mix(in srgb, var(--warning) 30%, transparent);
}

.ce-icn[b-rxyc99g2ul] {
    width: 38px; height: 38px;
    border-radius: var(--radius-md);
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    background: rgba(255, 255, 255, 0.7);
}
.ce-icn .msr[b-rxyc99g2ul] { font-size: 21px; }
.ce-abierta .ce-icn[b-rxyc99g2ul] { color: var(--success-ink); }
.ce-cerrada .ce-icn[b-rxyc99g2ul], .ce-pendiente .ce-icn[b-rxyc99g2ul] { color: var(--warning-ink); }

.ce-body[b-rxyc99g2ul] { flex: 1; min-width: 0; }
.ce-title[b-rxyc99g2ul] {
    font-family: var(--font-serif);
    font-size: 16px;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.25;
}
.ce-sub[b-rxyc99g2ul] { font-size: 12.5px; color: var(--text-secondary); margin-top: 2px; }

.ce-btn[b-rxyc99g2ul] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 38px;
    padding: 8px 14px;
    border-radius: var(--radius-md);
    border: 1px solid transparent;
    font: 600 13px var(--font-sans);
    cursor: pointer;
    white-space: nowrap;
}
.ce-btn .msr[b-rxyc99g2ul] { font-size: 18px; }
.ce-btn:disabled[b-rxyc99g2ul] { opacity: 0.55; cursor: not-allowed; }
.ce-btn-primary[b-rxyc99g2ul] { background: var(--carbon-2); color: white; }
.ce-btn-primary:hover:not(:disabled)[b-rxyc99g2ul] { background: var(--carbon-1); }
.ce-btn-ghost[b-rxyc99g2ul] { background: var(--bg-panel); border-color: var(--carbon-7); color: var(--text-primary); }
.ce-btn-ghost:hover:not(:disabled)[b-rxyc99g2ul] { background: var(--bg-cream); }

.ce-nota[b-rxyc99g2ul], .ce-aviso[b-rxyc99g2ul] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 12px;
    font-size: 13px;
    color: var(--text-secondary);
}
.ce-nota .msr[b-rxyc99g2ul] { font-size: 18px; color: var(--carbon-5); }
.ce-aviso[b-rxyc99g2ul] {
    padding: 9px 12px;
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--warning) 10%, white);
    color: var(--warning-ink);
}
.ce-aviso.ok[b-rxyc99g2ul] { background: color-mix(in srgb, var(--success) 10%, white); color: var(--success-ink); }
.ce-aviso > span:nth-child(2)[b-rxyc99g2ul] { flex: 1; }
.ce-aviso .msr[b-rxyc99g2ul] { font-size: 18px; }

.ce-x[b-rxyc99g2ul] {
    border: none;
    background: transparent;
    color: inherit;
    cursor: pointer;
    padding: 4px;
    border-radius: var(--radius-sm);
    display: inline-flex;
}
.ce-x .msr[b-rxyc99g2ul] { font-size: 18px; }

.ce-skel[b-rxyc99g2ul] {
    min-height: 62px;
    border-color: var(--carbon-7);
    animation: ce-pulse-b-rxyc99g2ul 1.2s ease-in-out infinite;
}
.ce-skel span[b-rxyc99g2ul] { display: none; }
@keyframes ce-pulse-b-rxyc99g2ul { 0%, 100% { opacity: 0.45; } 50% { opacity: 0.9; } }

/* ── Confirmacion ─────────────────────────────────────────────────────── */
.ce-overlay[b-rxyc99g2ul] {
    position: fixed; inset: 0;
    background: rgba(20, 22, 25, 0.45);
    z-index: 1000;
}
.ce-modal[b-rxyc99g2ul] {
    position: fixed;
    z-index: 1001;
    left: 50%; top: 50%;
    transform: translate(-50%, -50%);
    width: min(520px, calc(100vw - 32px));
    max-height: calc(100vh - 32px);
    overflow-y: auto;
    background: var(--bg-panel);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    padding: 18px 18px 14px;
}
.ce-modal-h[b-rxyc99g2ul] { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.ce-modal-h h2[b-rxyc99g2ul] {
    font-family: var(--font-serif);
    font-size: 19px;
    font-weight: 600;
    margin: 0;
    color: var(--text-primary);
}
.ce-modal-h p[b-rxyc99g2ul] { margin: 3px 0 0; font-size: 12.5px; color: var(--text-secondary); }

.ce-efectos[b-rxyc99g2ul] { list-style: none; margin: 14px 0 10px; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.ce-efectos li[b-rxyc99g2ul] { display: flex; gap: 10px; align-items: flex-start; font-size: 13.5px; color: var(--text-primary); line-height: 1.4; }
.ce-efectos .msr[b-rxyc99g2ul] { font-size: 20px; flex-shrink: 0; }
.ce-e-falta[b-rxyc99g2ul] { color: var(--danger); }
.ce-e-retardo[b-rxyc99g2ul] { color: var(--warning); }
.ce-e-ok[b-rxyc99g2ul] { color: var(--success); }

.ce-nota-sm[b-rxyc99g2ul] { display: flex; gap: 6px; align-items: flex-start; font-size: 12px; color: var(--text-secondary); margin: 6px 0; }
.ce-nota-sm .msr[b-rxyc99g2ul] { font-size: 16px; }

.ce-estaciones[b-rxyc99g2ul] {
    margin: 10px 0;
    padding: 10px 12px;
    border-radius: var(--radius-md);
    background: var(--bg-cream);
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.ce-bloqueo[b-rxyc99g2ul] { background: color-mix(in srgb, var(--warning) 9%, white); }
.ce-est-t[b-rxyc99g2ul] {
    display: flex; align-items: center; gap: 6px;
    font-size: 11px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase;
    color: var(--text-muted);
}
.ce-bloqueo .ce-est-t[b-rxyc99g2ul] { color: var(--warning-ink); }
.ce-est-t .msr[b-rxyc99g2ul] { font-size: 16px; }
.ce-est[b-rxyc99g2ul] { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; font-size: 13px; }
.ce-est input[b-rxyc99g2ul] { width: 18px; height: 18px; accent-color: var(--carbon-2); }
.ce-est-n[b-rxyc99g2ul] { font-weight: 600; color: var(--text-primary); }
.ce-est-d[b-rxyc99g2ul] { font-size: 12px; color: var(--text-secondary); flex-basis: 100%; padding-left: 26px; }
.ce-est-icn[b-rxyc99g2ul] { font-size: 18px; color: var(--warning); }
.ce-est-s[b-rxyc99g2ul] { margin-left: auto; display: inline-flex; align-items: center; gap: 3px; font-size: 12px; font-weight: 600; }
.ce-est-s .msr[b-rxyc99g2ul] { font-size: 15px; }
.ce-est-s.ok[b-rxyc99g2ul] { color: var(--success-ink); }
.ce-est-s.pend[b-rxyc99g2ul] { color: var(--warning-ink); }

.ce-error[b-rxyc99g2ul] {
    display: flex; gap: 6px; align-items: flex-start;
    margin: 8px 0 0;
    padding: 9px 11px;
    border-radius: var(--radius-md);
    background: var(--error-bg);
    color: var(--danger);
    font-size: 13px;
}
.ce-error .msr[b-rxyc99g2ul] { font-size: 18px; }

.ce-modal-f[b-rxyc99g2ul] { display: flex; justify-content: flex-end; gap: 8px; margin-top: 14px; flex-wrap: wrap; }

.ce-spin[b-rxyc99g2ul] { animation: ce-spin-b-rxyc99g2ul 1s linear infinite; }
@keyframes ce-spin-b-rxyc99g2ul { to { transform: rotate(360deg); } }

@media (max-width: 575.98px) {
    .ce-card[b-rxyc99g2ul] { flex-wrap: wrap; }
    .ce-card .ce-btn[b-rxyc99g2ul] { width: 100%; justify-content: center; }
    .ce-modal-f .ce-btn[b-rxyc99g2ul] { flex: 1; justify-content: center; }
}
/* /Components/ControlAcceso/ListaIngresoHoy.razor.rz.scp.css */
/* Ingresos con retardo · Lista de ingreso web (pantalla F). Lenguaje de Seguimiento de accesos (.sac-*).
   Verde = a tiempo, ambar = retardo, rojo = falta, azul = justificado / en revision, gris = sin llegar. */

.li-card[b-7sibiw627d] {
    background: var(--bg-panel);
    border-radius: 11px;
    border: 0.5px solid rgba(0, 0, 0, 0.06);
    padding: 12px 14px;
    margin-bottom: 12px;
}

.li-h[b-7sibiw627d] { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.li-h-icn[b-7sibiw627d] {
    width: 34px; height: 34px;
    border-radius: var(--radius-sm);
    display: flex; align-items: center; justify-content: center;
    background: var(--bg-light-teal);
    color: var(--brand-teal-deep);
    flex-shrink: 0;
}
.li-h-icn .msr[b-7sibiw627d] { font-size: 19px; }
.li-h-b[b-7sibiw627d] { flex: 1; min-width: 0; }
.li-h-b h2[b-7sibiw627d] { font-family: var(--font-serif); font-size: 17px; font-weight: 600; margin: 0; color: var(--text-primary); }
.li-h-b p[b-7sibiw627d] { margin: 1px 0 0; font-size: 12.5px; color: var(--text-secondary); }
.li-refresh[b-7sibiw627d] {
    border: 1px solid var(--carbon-7);
    background: var(--bg-panel);
    border-radius: var(--radius-md);
    width: 36px; height: 36px;
    display: inline-flex; align-items: center; justify-content: center;
    cursor: pointer;
    color: var(--text-secondary);
}
.li-refresh .msr[b-7sibiw627d] { font-size: 19px; }

.li-tools[b-7sibiw627d] { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; }
.li-select[b-7sibiw627d], .li-search[b-7sibiw627d] {
    display: flex; align-items: center; gap: 6px;
    min-height: 38px;
    padding: 0 10px;
    border: 1px solid var(--carbon-7);
    border-radius: var(--radius-md);
    background: var(--bg-panel);
}
.li-select .msr[b-7sibiw627d], .li-search .msr[b-7sibiw627d] { font-size: 18px; color: var(--text-muted); }
.li-select select[b-7sibiw627d] {
    border: none; background: transparent; outline: none;
    font: 600 13px var(--font-sans); color: var(--text-primary);
    min-width: 130px;
    padding: 6px 0;
}
.li-search[b-7sibiw627d] { flex: 1; min-width: 220px; }
.li-search input[b-7sibiw627d] {
    flex: 1; min-width: 0;
    border: none; background: transparent; outline: none;
    font: 13px var(--font-sans); color: var(--text-primary);
    padding: 8px 0;
}
.li-select:focus-within[b-7sibiw627d], .li-search:focus-within[b-7sibiw627d] { border-color: var(--brand-teal-dark); }
.li-clear[b-7sibiw627d] { border: none; background: transparent; cursor: pointer; padding: 2px; display: inline-flex; }

.li-chips[b-7sibiw627d] { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; }
.li-chip[b-7sibiw627d] {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 6px 11px;
    border-radius: 99px;
    border: 1px solid var(--carbon-7);
    background: var(--bg-panel);
    font: 600 12px var(--font-sans);
    color: var(--text-secondary);
    cursor: pointer;
}
.li-chip-n[b-7sibiw627d] {
    font-variant-numeric: tabular-nums;
    padding: 0 6px;
    border-radius: 99px;
    background: var(--bg-cream);
    color: var(--text-primary);
}
.li-chip.on[b-7sibiw627d] { background: var(--carbon-2); border-color: var(--carbon-2); color: white; }
.li-chip.on .li-chip-n[b-7sibiw627d] { background: rgba(255, 255, 255, 0.18); color: white; }

.li-nota[b-7sibiw627d] { display: flex; gap: 6px; align-items: center; font-size: 12.5px; color: var(--warning-ink); margin: 0 0 10px; }
.li-nota .msr[b-7sibiw627d] { font-size: 17px; }

.li-vacio[b-7sibiw627d] {
    display: flex; align-items: center; justify-content: center; gap: 8px;
    padding: 28px 12px;
    color: var(--text-secondary);
    font-size: 13px;
}
.li-link[b-7sibiw627d] { border: none; background: none; color: var(--brand-teal-deep); font-weight: 600; cursor: pointer; text-decoration: underline; }

.li-tabla[b-7sibiw627d] { border-radius: 9px; border: 0.5px solid rgba(0, 0, 0, 0.06); overflow: hidden; }
.li-row[b-7sibiw627d] {
    display: grid;
    grid-template-columns: minmax(200px, 1.8fr) 90px 140px 70px;
    gap: 10px;
    padding: 8px 12px;
    align-items: center;
    font-size: 12.5px;
    border-bottom: 0.5px solid rgba(0, 0, 0, 0.04);
}
.li-head[b-7sibiw627d] {
    background: var(--bg-cream);
    font-size: 10px; font-weight: 600; letter-spacing: 0.04em;
    color: var(--text-muted);
}
.li-grupo-h[b-7sibiw627d] {
    display: flex; align-items: baseline; gap: 10px;
    padding: 8px 12px 6px;
    background: color-mix(in srgb, var(--bg-cream) 60%, white);
    border-bottom: 0.5px solid rgba(0, 0, 0, 0.05);
}
.li-grupo-n[b-7sibiw627d] { font-family: var(--font-serif); font-weight: 600; font-size: 14px; color: var(--text-primary); }
.li-grupo-r[b-7sibiw627d] { font-size: 12px; color: var(--text-secondary); }

.li-alumno[b-7sibiw627d] { display: flex; align-items: center; gap: 8px; min-width: 0; }
.li-avatar[b-7sibiw627d] {
    width: 28px; height: 28px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 10px; font-weight: 600; flex-shrink: 0;
}
.li-nombre-b[b-7sibiw627d] { display: flex; flex-direction: column; min-width: 0; }
/* Convencion de la casa: nombre en MAYUSCULAS + bold */
.li-nombre[b-7sibiw627d] {
    font-weight: 700; text-transform: uppercase; font-size: 12px; letter-spacing: 0.01em;
    color: var(--text-primary);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.li-meta[b-7sibiw627d] { font-size: 11px; color: var(--text-muted); }
.li-grupo[b-7sibiw627d] { font-weight: 600; color: var(--text-secondary); }
.li-hora[b-7sibiw627d] { font-family: var(--font-mono); font-weight: 600; font-variant-numeric: tabular-nums; color: var(--text-primary); }
.li-col-hora[b-7sibiw627d] { text-align: right; }

.li-pill[b-7sibiw627d] {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 3px 10px;
    border-radius: 99px;
    border: 1px solid;
    font-size: 11px; font-weight: 600;
    white-space: nowrap;
}
.li-pill .msr[b-7sibiw627d] { font-size: 13px; }
.li-pill.ok[b-7sibiw627d]      { background: color-mix(in srgb, var(--success) 12%, white); border-color: color-mix(in srgb, var(--success) 40%, white); color: var(--success-ink); }
.li-pill.retardo[b-7sibiw627d] { background: color-mix(in srgb, var(--warning) 12%, white); border-color: color-mix(in srgb, var(--warning) 40%, white); color: var(--warning-ink); }
.li-pill.falta[b-7sibiw627d]   { background: var(--error-bg); border-color: color-mix(in srgb, var(--danger) 35%, white); color: var(--danger); }
.li-pill.just[b-7sibiw627d],
.li-pill.rev[b-7sibiw627d]     { background: color-mix(in srgb, var(--info) 10%, white); border-color: color-mix(in srgb, var(--info) 35%, white); color: var(--info-ink); }
.li-pill.sin[b-7sibiw627d]     { background: var(--bg-cream); border-color: var(--carbon-7); color: var(--text-secondary); }

.li-spin[b-7sibiw627d] { animation: li-spin-b-7sibiw627d 1s linear infinite; }
@keyframes li-spin-b-7sibiw627d { to { transform: rotate(360deg); } }

@media (max-width: 767.98px) {
    .li-head[b-7sibiw627d] { display: none; }
    .li-row[b-7sibiw627d] {
        grid-template-columns: 1fr auto;
        grid-template-areas: "alumno hora" "alumno estado";
        row-gap: 4px;
    }
    .li-row > .li-alumno[b-7sibiw627d] { grid-area: alumno; }
    .li-row > .li-grupo[b-7sibiw627d] { display: none; }
    .li-row > div:nth-child(3)[b-7sibiw627d] { grid-area: estado; justify-self: end; }
    .li-row > .li-col-hora[b-7sibiw627d] { grid-area: hora; }
    .li-search[b-7sibiw627d] { min-width: 100%; }
    .li-select[b-7sibiw627d] { flex: 1; }
}
/* /Components/Dialogs/EditarReporteDrawer.razor.rz.scp.css */
.erd-overlay[b-x88rte4o8x] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    z-index: 1000;
    display: flex;
    justify-content: flex-end;
}

.erd-drawer[b-x88rte4o8x] {
    width: 60%;
    max-width: 640px;
    background: white;
    display: flex;
    flex-direction: column;
    animation: erd-slide-in-b-x88rte4o8x 0.25s ease-out;
    box-shadow: -4px 0 20px rgba(0, 0, 0, 0.12);
}

@keyframes erd-slide-in-b-x88rte4o8x {
    from { transform: translateX(100%); }
    to   { transform: translateX(0); }
}

@media (max-width: 767.98px) {
    .erd-drawer[b-x88rte4o8x] {
        width: 100%;
        max-width: 100%;
    }
}

/* ========================================================================
   HEADER
   ======================================================================== */

.erd-header[b-x88rte4o8x] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 10px;
    padding: 14px 18px;
    border-bottom: 0.5px solid rgba(0, 0, 0, 0.06);
}

.erd-header-main[b-x88rte4o8x] {
    display: flex;
    gap: 11px;
    align-items: center;
}

.erd-icon[b-x88rte4o8x] {
    width: 38px; height: 38px;
    border-radius: 10px;
    background: #E1F5EE;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.erd-icon .material-icons[b-x88rte4o8x] {
    font-size: 19px;
    color: #0F6E56;
}

.erd-header h2[b-x88rte4o8x] {
    font-size: 16px;
    color: #444;
    margin: 0 0 3px;
    font-weight: 500;
}

.erd-subtitle[b-x88rte4o8x] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    color: #888;
}

.erd-grade-badge[b-x88rte4o8x] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px; height: 18px;
    border-radius: 50%;
    font-size: 9px;
    font-weight: 500;
}

.erd-close[b-x88rte4o8x] {
    width: 30px; height: 30px;
    border-radius: 50%;
    background: #F5F7F9;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    padding: 0;
}

.erd-close .material-icons[b-x88rte4o8x] { font-size: 16px; color: #888; }

/* ========================================================================
   BODY
   ======================================================================== */

.erd-body[b-x88rte4o8x] {
    flex: 1;
    overflow-y: auto;
    padding: 16px 18px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.erd-field[b-x88rte4o8x] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.erd-field > label[b-x88rte4o8x] {
    font-size: 10px;
    color: #888;
    font-weight: 500;
    letter-spacing: 0.06em;
}

.erd-field-header[b-x88rte4o8x] {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.erd-count-badge[b-x88rte4o8x] {
    font-size: 10px;
    padding: 2px 8px;
    border-radius: 99px;
    font-weight: 500;
}

.erd-count-badge.leve[b-x88rte4o8x]  { background: #FAEEDA; color: #854F0B; }
.erd-count-badge.grave[b-x88rte4o8x] { background: #FCEBEB; color: #A32D2D; }

.erd-char-count[b-x88rte4o8x] { font-size: 10px; color: #888; }

.erd-loading-inline[b-x88rte4o8x] {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 14px;
    color: #888;
    font-size: 12px;
    justify-content: center;
}

.erd-loading-inline .material-icons[b-x88rte4o8x] { font-size: 14px; }

/* ========================================================================
   STUDENT (read-only)
   ======================================================================== */

.erd-student-readonly[b-x88rte4o8x] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 11px;
    background: #F5F7F9;
    border-radius: 8px;
    border: 0.5px solid rgba(0, 0, 0, 0.06);
}

.erd-avatar[b-x88rte4o8x] {
    width: 32px; height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 500;
    flex-shrink: 0;
}

.erd-student-info[b-x88rte4o8x] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.erd-student-info > div:first-child[b-x88rte4o8x] {
    font-size: 13px;
    color: #444;
    font-weight: 500;
}

.erd-student-hint[b-x88rte4o8x] {
    font-size: 10px;
    color: #888;
    font-style: italic;
}

/* ========================================================================
   FECHA
   ======================================================================== */

.erd-date-row[b-x88rte4o8x] {
    display: flex;
    gap: 6px;
}

.erd-date-row input[b-x88rte4o8x] {
    padding: 7px 10px;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 7px;
    font-size: 12px;
    color: #444;
    font-family: inherit;
    outline: none;
    background: white;
}

.erd-date-row input:focus[b-x88rte4o8x] { border-color: #4BA8AA; }
.erd-date-row input[type="date"][b-x88rte4o8x] { flex: 1.4; }
.erd-date-row input[type="time"][b-x88rte4o8x] { flex: 1; }

/* ========================================================================
   CHIPS DE INCIDENCIAS
   ======================================================================== */

.erd-chips-wrap[b-x88rte4o8x] {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.erd-chip[b-x88rte4o8x] {
    padding: 5px 11px;
    border-radius: 99px;
    background: white;
    border: 1px solid #DDD;
    font-size: 11px;
    color: #666;
    cursor: pointer;
    font-family: inherit;
    transition: all 0.15s ease;
}

.erd-chip.leve:hover[b-x88rte4o8x] {
    border-color: #FAC775;
    color: #854F0B;
}

.erd-chip.grave:hover[b-x88rte4o8x] {
    border-color: #F0B5B5;
    color: #A32D2D;
}

.erd-chip.leve.active[b-x88rte4o8x] {
    background: #FAEEDA;
    border-color: #BA7517;
    color: #854F0B;
    font-weight: 500;
}

.erd-chip.grave.active[b-x88rte4o8x] {
    background: #FCEBEB;
    border-color: #A32D2D;
    color: #A32D2D;
    font-weight: 500;
}

.erd-empty[b-x88rte4o8x] {
    font-size: 11px;
    color: #AAA;
    padding: 5px 0;
}

/* ========================================================================
   TEXTAREA
   ======================================================================== */

.erd-textarea[b-x88rte4o8x] {
    width: 100%;
    min-height: 90px;
    padding: 9px 11px;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 7px;
    font-size: 12px;
    color: #444;
    font-family: inherit;
    background: #F9F9F9;
    outline: none;
    resize: vertical;
    line-height: 1.5;
    box-sizing: border-box;
}

.erd-textarea:focus[b-x88rte4o8x] { border-color: #4BA8AA; }
.erd-textarea[b-x88rte4o8x]::placeholder { color: #AAA; }

/* ========================================================================
   FOOTER
   ======================================================================== */

.erd-footer[b-x88rte4o8x] {
    border-top: 0.5px solid rgba(0, 0, 0, 0.06);
    padding: 12px 18px;
    display: flex;
    gap: 8px;
    background: white;
}

.erd-btn-secondary[b-x88rte4o8x],
.erd-btn-primary[b-x88rte4o8x] {
    padding: 11px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
}

.erd-btn-secondary[b-x88rte4o8x] {
    flex: 1;
    background: white;
    color: #888;
    border: 1px solid #DDD;
}

.erd-btn-secondary:hover[b-x88rte4o8x] { background: #F5F7F9; }

.erd-btn-primary[b-x88rte4o8x] {
    flex: 2;
    background: #0F6E56;
    color: white;
    border: none;
}

.erd-btn-primary:hover:not(:disabled)[b-x88rte4o8x] { background: #0B5543; }
.erd-btn-primary:disabled[b-x88rte4o8x] { background: #B5D4C7; cursor: not-allowed; }
.erd-btn-primary .material-icons[b-x88rte4o8x] { font-size: 14px; }

.erd-spinning[b-x88rte4o8x] { animation: erd-spin-b-x88rte4o8x 1s linear infinite; }
@keyframes erd-spin-b-x88rte4o8x {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}
/* /Components/Dialogs/SelectorAlumnosDialog.razor.rz.scp.css */
.sa-overlay[b-44bu3zv33m] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.sa-dialog[b-44bu3zv33m] {
    background: white;
    border-radius: 14px;
    padding: 18px;
    width: 100%;
    max-width: 440px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
}

.sa-header[b-44bu3zv33m] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 12px;
    gap: 10px;
}

.sa-title[b-44bu3zv33m] {
    font-size: 15px;
    font-weight: 500;
    color: #444;
    margin-bottom: 4px;
}

.sa-subtitle[b-44bu3zv33m] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    color: #888;
}

.sa-grade-badge[b-44bu3zv33m] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    font-size: 10px;
    font-weight: 500;
}

.sa-close[b-44bu3zv33m] {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #F5F7F9;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    flex-shrink: 0;
}

.sa-close .material-icons[b-44bu3zv33m] {
    font-size: 15px;
    color: #888;
}

.sa-actions-row[b-44bu3zv33m] {
    display: flex;
    gap: 6px;
    margin-bottom: 8px;
    flex-wrap: wrap;
    align-items: center;
}

.sa-search[b-44bu3zv33m] {
    flex: 1;
    min-width: 180px;
    display: flex;
    align-items: center;
    gap: 6px;
    background: #F5F7F9;
    border-radius: 7px;
    padding: 7px 11px;
}

.sa-search .material-icons[b-44bu3zv33m] {
    font-size: 14px;
    color: #AAA;
}

.sa-search input[b-44bu3zv33m] {
    flex: 1;
    border: none;
    background: transparent;
    outline: none;
    font-size: 12px;
    color: #444;
    font-family: inherit;
    min-width: 0;
}

.sa-count-badge[b-44bu3zv33m] {
    font-size: 10px;
    color: #0F6E56;
    background: #E1F5EE;
    padding: 2px 8px;
    border-radius: 99px;
    font-weight: 500;
}

.sa-btn-toggle[b-44bu3zv33m] {
    padding: 7px 11px;
    border-radius: 7px;
    font-size: 11px;
    font-weight: 500;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-family: inherit;
    background: white;
    border: 1px solid #DDD;
    color: #666;
    transition: all 0.15s ease;
}

.sa-btn-toggle:hover[b-44bu3zv33m] { background: #F5F7F9; }

.sa-btn-toggle.sa-btn-todos[b-44bu3zv33m] {
    background: rgba(109, 199, 208, 0.1);
    border-color: rgba(109, 199, 208, 0.3);
    color: #0F6E56;
}

.sa-btn-toggle.sa-btn-todos:hover[b-44bu3zv33m] { background: rgba(109, 199, 208, 0.2); }

.sa-btn-toggle .material-icons[b-44bu3zv33m] { font-size: 12px; }

.sa-hint[b-44bu3zv33m] {
    margin-bottom: 8px;
    padding: 6px 10px;
    background: #E1F5EE;
    border-radius: 6px;
    display: flex;
    align-items: center;
    gap: 5px;
}

.sa-hint .material-icons[b-44bu3zv33m] { font-size: 11px; color: #0F6E56; }
.sa-hint span:last-child[b-44bu3zv33m] { font-size: 10px; color: #0F6E56; }

.sa-student-list[b-44bu3zv33m] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    max-height: 260px;
    overflow-y: auto;
    margin-bottom: 12px;
}

.sa-student-row[b-44bu3zv33m] {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 7px;
    border-radius: 6px;
    cursor: pointer;
    transition: background 0.15s ease;
}

.sa-student-row:hover[b-44bu3zv33m] { background: rgba(109, 199, 208, 0.05); }
.sa-student-row.selected[b-44bu3zv33m] { background: rgba(75, 168, 170, 0.08); }

.sa-checkbox[b-44bu3zv33m] {
    width: 16px;
    height: 16px;
    border-radius: 4px;
    border: 1.5px solid #CCC;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sa-checkbox.checked[b-44bu3zv33m] {
    background: #4BA8AA;
    border-color: #4BA8AA;
}

.sa-checkbox.checked .material-icons[b-44bu3zv33m] {
    font-size: 12px;
    color: white;
}

.sa-avatar[b-44bu3zv33m] {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    font-weight: 500;
    flex-shrink: 0;
}

.sa-name[b-44bu3zv33m] {
    flex: 1;
    font-size: 12px;
    color: #444;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sa-student-row.selected .sa-name[b-44bu3zv33m] { font-weight: 500; }

.sa-empty[b-44bu3zv33m] {
    text-align: center;
    padding: 20px;
    font-size: 11px;
    color: #AAA;
}

.sa-actions[b-44bu3zv33m] {
    display: flex;
    gap: 8px;
}

.sa-btn-secondary[b-44bu3zv33m], .sa-btn-primary[b-44bu3zv33m] {
    padding: 10px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
}

.sa-btn-secondary[b-44bu3zv33m] {
    flex: 1;
    background: white;
    color: #888;
    border: 1px solid #DDD;
}

.sa-btn-secondary:hover[b-44bu3zv33m] { background: #F5F7F9; }

.sa-btn-primary[b-44bu3zv33m] {
    flex: 2;
    background: #4BA8AA;
    color: white;
    border: none;
}

.sa-btn-primary:hover[b-44bu3zv33m] { background: #3B8D8F; }
/* /Components/Directivo/AgendaLiderazgoCard.razor.rz.scp.css */
/* ────────────────────────────────────────────────────────────────────
   AgendaLiderazgoCard — "Agenda de liderazgo" (Home v3 F11.3)
   Card canon + filas .agrow del mockup destiladas a tokens.
   Solo las filas con ruta se sienten clickeables (patrón .kpi[href]).
   ──────────────────────────────────────────────────────────────────── */

.card[b-3p5bsq389a] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
}

.card-h[b-3p5bsq389a] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 18px 20px 0;
}

.card-h h2[b-3p5bsq389a] {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
}

.cnt[b-3p5bsq389a] {
    font-size: 12px;
    font-weight: 700;
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
    border-radius: 999px;
    padding: 2px 9px;
}

.cnt.neutral[b-3p5bsq389a] {
    color: var(--text-secondary);
    background: var(--cream);
}

/* ── filas ── */
.ag[b-3p5bsq389a] {
    display: flex;
    flex-direction: column;
    gap: 9px;
    padding: 14px 20px 18px;
}

.agrow[b-3p5bsq389a] {
    display: flex;
    align-items: center;
    gap: 11px;
    width: 100%;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    padding: 10px 12px;
    background: transparent;
    font-family: var(--font-sans);
    text-align: left;
    color: var(--text-primary);
}

/* solo las filas navegables invitan al click */
.agrow.go[b-3p5bsq389a] {
    cursor: pointer;
    transition: border-color 0.18s var(--ease), background-color 0.18s var(--ease);
}

.agrow.go:hover[b-3p5bsq389a] {
    border-color: var(--brand-teal-dark);
    background: var(--bg-cream);
}

.agrow.go:hover .chev[b-3p5bsq389a] { color: var(--brand-teal-deep); }

.agrow.go:focus-visible[b-3p5bsq389a] {
    outline: 2px solid var(--brand-teal-dark);
    outline-offset: 2px;
}

.hh[b-3p5bsq389a] {
    font-family: var(--font-serif);
    font-size: 14px;
    font-weight: 600;
    color: var(--text-primary);
    width: 44px;
    flex: none;
    line-height: 1.25;
}

.ag-body[b-3p5bsq389a] {
    min-width: 0;
    display: block;
}

.ag-body b[b-3p5bsq389a] {
    display: block;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.35;
}

.ag-body small[b-3p5bsq389a] {
    display: block;
    font-size: 11.5px;
    color: var(--text-muted);
    line-height: 1.45;
    margin-top: 2px;
}

/* etiqueta chica del origen (Tarea/Proyecto) */
.org[b-3p5bsq389a] {
    display: inline-block;
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: 1px 7px;
    margin-right: 6px;
    vertical-align: 1px;
}

.org.tarea[b-3p5bsq389a]    { background: var(--bg-light-teal);        color: var(--brand-teal-deep); }
.org.proyecto[b-3p5bsq389a] { background: rgba(45, 110, 163, 0.10);    color: var(--info); }
.org.otro[b-3p5bsq389a]     { background: var(--cream);                color: var(--text-secondary); }

.chev[b-3p5bsq389a] {
    margin-left: auto;
    flex: none;
    color: var(--text-muted);
    font-size: 17px !important;
    transition: color 0.18s var(--ease);
}

/* ── vacío honesto (canon F3) ── */
.ag-empty[b-3p5bsq389a] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 4px;
    padding: 26px 24px 22px;
}

.ag-empty .material-symbols-rounded[b-3p5bsq389a] {
    font-size: 32px !important;
    color: var(--border-med);
    margin-bottom: 4px;
}

.ag-empty-title[b-3p5bsq389a] {
    font-family: var(--font-serif);
    font-size: 15px;
    font-weight: 600;
    color: var(--text-secondary);
}

.ag-empty-sub[b-3p5bsq389a] {
    font-size: 12px;
    color: var(--text-muted);
    max-width: 280px;
    line-height: 1.5;
}

/* ── responsive ── */
@media (max-width: 640px) {
    .card-h[b-3p5bsq389a] { padding: 16px 16px 0; }
    .ag[b-3p5bsq389a] { padding: 12px 16px 16px; }
    .agrow[b-3p5bsq389a] { min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
    .agrow.go[b-3p5bsq389a], .chev[b-3p5bsq389a] { transition: none; }
}
/* /Components/Directivo/BuscadorAlumnos.razor.rz.scp.css */
/* Buscador de alumnos del inicio del directivo: mismo look que el de prefectura (CdmAdministrativo.razor.css). */
.ad-search[b-cgze7qrut8] {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    width: 320px;
    max-width: 100%;
    background: #fff;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    padding: 0 12px;
    height: 42px;
    box-shadow: var(--shadow-sm);
}

.ad-search > .material-symbols-rounded[b-cgze7qrut8] { color: var(--text-muted); font-size: 20px; }

.ad-search input[b-cgze7qrut8] {
    border: 0;
    outline: 0;
    background: transparent;
    flex: 1;
    min-width: 0;
    font: inherit;
    font-size: 14px;
    color: var(--text-primary);
}

.ad-search:focus-within[b-cgze7qrut8] { border-color: var(--brand-teal-dark); }

.ad-results[b-cgze7qrut8] {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    padding: 6px;
    z-index: 20;
    max-height: 360px;
    overflow-y: auto;
}

.ad-res[b-cgze7qrut8] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    width: 100%;
    text-align: left;
    background: transparent;
    border: 0;
    border-radius: var(--radius-md);
    padding: 9px 10px;
    font: inherit;
    font-size: 13px;
    color: var(--text-primary);
    cursor: pointer;
}

.ad-res:hover[b-cgze7qrut8], .ad-res:focus-visible[b-cgze7qrut8] { background: rgba(110, 198, 200, 0.12); outline: 0; }
.ad-res small[b-cgze7qrut8] { color: var(--text-muted); font-size: 12px; white-space: nowrap; }
.ad-res-empty[b-cgze7qrut8] { padding: 10px; font-size: 13px; color: var(--text-muted); }

@media (max-width: 640px) { .ad-search[b-cgze7qrut8] { width: 100%; } }
/* /Components/Directivo/CdmDirectivo.razor.rz.scp.css */
/* ────────────────────────────────────────────────────────────────────
   CdmDirectivo — Centro de Mando Directivo (Home v3 F3)
   Shell de página paralelo al CdM Docente (mismo canon F2: crema con
   radiales suaves, container 1280, grid 1fr + 340px, gaps 20/22).
   ──────────────────────────────────────────────────────────────────── */

.dv-page[b-7mx820vaqk] {
    background:
        radial-gradient(circle at 15% 10%, rgba(110, 198, 200, 0.06) 0%, transparent 45%),
        radial-gradient(circle at 85% 30%, rgba(45, 110, 163, 0.04) 0%, transparent 50%),
        var(--bg);
    min-height: 100%;
}

.dv-container[b-7mx820vaqk] {
    max-width: 1280px;
    margin: 0 auto;
    padding: 26px 28px 60px;
    font-family: var(--font-sans);
    color: var(--text-primary);
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* ── header ── */
/* Inicio de directivos (2026-10-11): conmutador Directivo | Prefectura y buscador a la derecha. */
.dv-header[b-7mx820vaqk] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px 20px;
    flex-wrap: wrap;
}

.dv-header-tools[b-7mx820vaqk] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; min-width: 0; }

.dv-header-text[b-7mx820vaqk] { min-width: 0; }

.dv-header h1[b-7mx820vaqk] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    flex-wrap: wrap;
    font-family: var(--font-serif);
    font-size: 28px;
    font-weight: 600;
    letter-spacing: -0.3px;
    color: var(--text-primary);
    margin: 0;
    line-height: 1.15;
}

.dv-header p[b-7mx820vaqk] {
    font-size: 13.5px;
    color: var(--text-muted);
    margin: 4px 0 0;
}

/* "corte HH:MM" en vivo */
.dv-live[b-7mx820vaqk] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-family: var(--font-sans);
    font-size: 11.5px;
    font-weight: 700;
    color: var(--brand-teal-deep);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.dv-dot[b-7mx820vaqk] {
    position: relative;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--success);
}

.dv-dot[b-7mx820vaqk]::after {
    content: "";
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    border: 2px solid var(--success);
    opacity: 0.5;
    animation: dv-pulse-b-7mx820vaqk 1.8s var(--ease) infinite;
}

@keyframes dv-pulse-b-7mx820vaqk {
    0%   { transform: scale(0.6);  opacity: 0.7; }
    70%  { transform: scale(1.25); opacity: 0; }
    100% { opacity: 0; }
}

/* ── grid 2 columnas ── */
.dv-grid[b-7mx820vaqk] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: 22px;
    align-items: start;
}

.dv-colL[b-7mx820vaqk],
.dv-colR[b-7mx820vaqk] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* entrada sutil (canon F2) */
@keyframes dv-up-b-7mx820vaqk {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: none; }
}

.dv-colL[b-7mx820vaqk] { animation: dv-up-b-7mx820vaqk 0.45s var(--ease) both; }
.dv-colR[b-7mx820vaqk] { animation: dv-up-b-7mx820vaqk 0.45s var(--ease) 0.08s both; }

/* ── skeletons ── */
.dv-pulse-sk[b-7mx820vaqk] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 13px;
}

.sk-card[b-7mx820vaqk] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
    padding: 16px;
}

/* ── error ── */
.dv-error[b-7mx820vaqk] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 5px;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
    padding: 44px 24px;
}

.dv-error .material-symbols-rounded[b-7mx820vaqk] {
    font-size: 36px !important;
    color: var(--border-med);
    margin-bottom: 4px;
}

.dv-error-title[b-7mx820vaqk] {
    font-family: var(--font-serif);
    font-size: 17px;
    font-weight: 600;
    color: var(--text-secondary);
}

.dv-error-sub[b-7mx820vaqk] {
    font-size: 12.5px;
    color: var(--text-muted);
    max-width: 380px;
    line-height: 1.5;
}

/* mini-btn canon (F2) para el Reintentar */
.mini-btn[b-7mx820vaqk] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 12px;
    font-family: var(--font-sans);
    font-size: 12.5px;
    font-weight: 600;
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
    border: 0;
    border-radius: 999px;
    padding: 8px 16px;
    min-height: 36px;
    cursor: pointer;
    transition: all 0.15s var(--ease);
}

.mini-btn .material-symbols-rounded[b-7mx820vaqk] {
    font-size: 15px !important;
    color: inherit;
    margin: 0;
}

.mini-btn:hover[b-7mx820vaqk] {
    background: var(--brand-teal);
    color: var(--carbon-1);
}

.mini-btn:focus-visible[b-7mx820vaqk] {
    outline: 2px solid var(--brand-teal-dark);
    outline-offset: 2px;
}

/* ── responsive ── */
@media (max-width: 1080px) {
    .dv-grid[b-7mx820vaqk] { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
    .dv-container[b-7mx820vaqk] { padding: 18px 14px 40px; gap: 16px; }
    .dv-header h1[b-7mx820vaqk] { font-size: 24px; }
    .dv-header-tools[b-7mx820vaqk] { width: 100%; }
    .dv-grid[b-7mx820vaqk] { gap: 16px; }
    .dv-colL[b-7mx820vaqk], .dv-colR[b-7mx820vaqk] { gap: 16px; }
    .mini-btn[b-7mx820vaqk] { min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
    .dv-colL[b-7mx820vaqk], .dv-colR[b-7mx820vaqk] { animation: none; }
    .dv-dot[b-7mx820vaqk]::after { animation: none; opacity: 0; }
    .mini-btn[b-7mx820vaqk] { transition: none; }
}
/* /Components/Directivo/ConmutadorVista.razor.rz.scp.css */
.cv[b-z1iqyl7q6n] {
    display: inline-flex;
    gap: 4px;
    padding: 4px;
    background: var(--bg-card, #fff);
    border: 1px solid var(--border-soft, #E8E4DD);
    border-radius: 12px;
    flex: none;
}

.cv-op[b-z1iqyl7q6n] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 0;
    background: transparent;
    color: var(--text-secondary);
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    padding: 7px 12px;
    border-radius: 9px;
    cursor: pointer;
}

.cv-op .material-symbols-rounded[b-z1iqyl7q6n] { font-size: 18px; }
.cv-op:hover[b-z1iqyl7q6n] { color: var(--text-primary); }
.cv-op[aria-pressed="true"][b-z1iqyl7q6n] { background: var(--brand-teal-deep, #2C6D6F); color: #fff; }
.cv-op:focus-visible[b-z1iqyl7q6n] { outline: 2px solid var(--brand-teal-dark); outline-offset: 2px; }
/* /Components/Directivo/DecisionesCard.razor.rz.scp.css */
/* ────────────────────────────────────────────────────────────────────
   DecisionesCard — "Decisiones pendientes" + drawer de justificantes
   (Home v3 F11.1). Card canon + .qrow del mockup destilada a tokens;
   drawer = patrón RadarAlumnos (scrim, dialog, focus). CERO hex nuevos:
   fondos semánticos con rgba-de-token (canon F2) y texto warning con la
   variante AA de F8W.
   ──────────────────────────────────────────────────────────────────── */

.card[b-onxo9tb4jr] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
}

.card-h[b-onxo9tb4jr] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 18px 20px 0;
}

.card-h h2[b-onxo9tb4jr] {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
}

.cnt[b-onxo9tb4jr] {
    font-size: 12px;
    font-weight: 700;
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
    border-radius: 999px;
    padding: 2px 9px;
}

.cnt.neutral[b-onxo9tb4jr] {
    color: var(--text-secondary);
    background: var(--cream);
}

/* ── cola ── */
.queue[b-onxo9tb4jr] { margin-top: 12px; }

.qrow[b-onxo9tb4jr] {
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 12px 20px;
    border-top: 1px solid var(--border-soft);
    transition: background-color 0.15s var(--ease);
}

.qrow:first-of-type[b-onxo9tb4jr] { border-top: 0; }
.qrow:hover[b-onxo9tb4jr] { background: var(--bg-cream); }

.qic[b-onxo9tb4jr] {
    width: 32px;
    height: 32px;
    border-radius: var(--radius-md);
    display: grid;
    place-items: center;
    background: var(--cream);
    color: var(--text-secondary);
    flex: none;
}

.qic .material-symbols-rounded[b-onxo9tb4jr] { font-size: 17px !important; }

.qtx[b-onxo9tb4jr] { min-width: 0; }

.qtx p[b-onxo9tb4jr] {
    font-size: 13.5px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
    line-height: 1.35;
}

.qtx small[b-onxo9tb4jr] {
    display: block;
    font-size: 11.5px;
    color: var(--text-muted);
    margin-top: 1px;
}

.qrow .mini-btn[b-onxo9tb4jr] {
    flex: none;
    margin-left: auto;
}

.qfoot[b-onxo9tb4jr] {
    padding: 11px 20px 16px;
    font-size: 12px;
    color: var(--text-muted);
}

/* mini-btn canon F2 + variantes ghost/danger */
.mini-btn[b-onxo9tb4jr] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-family: var(--font-sans);
    font-size: 12.5px;
    font-weight: 600;
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
    border: 1px solid transparent;
    border-radius: 999px;
    padding: 7px 14px;
    cursor: pointer;
    white-space: nowrap;
    transition: background-color 0.15s var(--ease), color 0.15s var(--ease), border-color 0.15s var(--ease);
}

.mini-btn .material-symbols-rounded[b-onxo9tb4jr] { font-size: 15px !important; }

.mini-btn:hover:not(:disabled)[b-onxo9tb4jr] {
    background: var(--brand-teal);
    color: var(--carbon-1);
}

.mini-btn:focus-visible[b-onxo9tb4jr] {
    outline: 2px solid var(--brand-teal-dark);
    outline-offset: 2px;
}

.mini-btn:disabled[b-onxo9tb4jr] {
    color: var(--text-muted);
    background: var(--cream);
    cursor: not-allowed;
}

.mini-btn.ghost[b-onxo9tb4jr] {
    background: var(--bg-panel);
    border-color: var(--border-soft);
    color: var(--text-secondary);
}

.mini-btn.ghost:hover:not(:disabled)[b-onxo9tb4jr] {
    background: var(--bg-panel);
    border-color: var(--brand-teal-dark);
    color: var(--brand-teal-deep);
}

.mini-btn.danger[b-onxo9tb4jr] {
    background: rgba(163, 45, 45, 0.10);
    color: var(--danger);
}

.mini-btn.danger:hover:not(:disabled)[b-onxo9tb4jr] {
    background: var(--danger);
    color: var(--bg-panel);
}

.mini-btn.danger:focus-visible[b-onxo9tb4jr] { outline-color: var(--danger); }

/* ── vacío honesto (canon F3) ── */
.q-empty[b-onxo9tb4jr] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 4px;
    padding: 26px 24px 22px;
}

.q-empty .material-symbols-rounded[b-onxo9tb4jr] {
    font-size: 32px !important;
    color: var(--border-med);
    margin-bottom: 4px;
}

.q-empty-title[b-onxo9tb4jr] {
    font-family: var(--font-serif);
    font-size: 15px;
    font-weight: 600;
    color: var(--text-secondary);
}

.q-empty-sub[b-onxo9tb4jr] {
    font-size: 12px;
    color: var(--text-muted);
    max-width: 340px;
    line-height: 1.5;
}

/* ── drawer sobrepuesto (patrón RadarAlumnos) ── */
.q-scrim[b-onxo9tb4jr] {
    position: fixed;
    inset: 0;
    background: rgba(20, 22, 25, 0.45); /* carbon-1 con alpha */
    z-index: var(--z-overlay);
    animation: q-scrim-in-b-onxo9tb4jr 0.2s var(--ease) both;
}

@keyframes q-scrim-in-b-onxo9tb4jr {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.q-drawer[b-onxo9tb4jr] {
    position: fixed;
    top: 0; right: 0; bottom: 0;
    width: min(440px, 92vw);
    background: var(--bg-cream);
    border-left: 1px solid var(--border-soft);
    box-shadow: var(--shadow-lg);
    z-index: calc(var(--z-overlay) + 1);
    display: flex;
    flex-direction: column;
    animation: q-drawer-in-b-onxo9tb4jr 0.22s var(--ease) both;
}

@keyframes q-drawer-in-b-onxo9tb4jr {
    from { transform: translateX(24px); opacity: 0; }
    to   { transform: none; opacity: 1; }
}

.q-drawer-head[b-onxo9tb4jr] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 18px 20px 14px;
    border-bottom: 1px solid var(--border-soft);
    background: var(--bg-panel);
}

.q-drawer-head h3[b-onxo9tb4jr] {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
}

.q-drawer-head small[b-onxo9tb4jr] {
    font-size: 12px;
    color: var(--text-muted);
}

.q-close[b-onxo9tb4jr] {
    margin-left: auto;
    width: 34px; height: 34px;
    border-radius: var(--radius-md);
    border: 1px solid var(--border-soft);
    background: var(--bg-panel);
    color: var(--text-secondary);
    display: grid;
    place-items: center;
    cursor: pointer;
    transition: border-color 0.15s var(--ease), color 0.15s var(--ease);
    flex: none;
}

.q-close:hover[b-onxo9tb4jr] {
    border-color: var(--brand-teal-dark);
    color: var(--brand-teal-deep);
}

.q-close:focus-visible[b-onxo9tb4jr] {
    outline: 2px solid var(--brand-teal-dark);
    outline-offset: 2px;
}

.q-close .material-symbols-rounded[b-onxo9tb4jr] { font-size: 18px !important; }

.q-drawer-body[b-onxo9tb4jr] {
    flex: 1;
    overflow-y: auto;
    padding: 16px 20px 24px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* ── card de justificante dentro del drawer ── */
.jcard[b-onxo9tb4jr] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    padding: 13px 14px;
}

.j-head[b-onxo9tb4jr] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    flex-wrap: wrap;
}

.j-quien[b-onxo9tb4jr] { min-width: 0; margin-right: auto; }

.j-quien b[b-onxo9tb4jr] {
    display: block;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.3;
}

.j-quien small[b-onxo9tb4jr] {
    display: block;
    font-size: 11.5px;
    color: var(--text-muted);
    margin-top: 1px;
}

.j-chip[b-onxo9tb4jr] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: 2px 8px;
    flex: none;
}

.j-chip .material-symbols-rounded[b-onxo9tb4jr] { font-size: 12px !important; }

.j-chip.doc[b-onxo9tb4jr]  { background: var(--bg-light-teal);        color: var(--brand-teal-deep); }
.j-chip.late[b-onxo9tb4jr] { background: rgba(186, 117, 23, 0.12);    color: color-mix(in srgb, var(--warning) 75%, var(--carbon-1)); }

/* Emisor tutor (F11): distintivo informativo, tono violeta "familia" (mismo matiz
   que el violeta del expediente). Va inline junto a "envió …", sin gritar. */
.j-chip.fam[b-onxo9tb4jr]  { background: rgba(139, 123, 184, 0.14);   color: #5C4F8C; margin-left: 2px; vertical-align: text-bottom; }

.j-rango[b-onxo9tb4jr] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
    margin-top: 8px;
}

.j-rango .material-symbols-rounded[b-onxo9tb4jr] { font-size: 14px !important; color: var(--text-muted); }

.j-motivo[b-onxo9tb4jr] {
    font-size: 12.5px;
    color: var(--text-secondary);
    line-height: 1.5;
    margin: 6px 0 0;
}

.j-acts[b-onxo9tb4jr] {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 11px;
}

/* rechazo con comentario opcional, en línea */
.j-rechazo[b-onxo9tb4jr] { margin-top: 11px; }

.j-com[b-onxo9tb4jr] {
    width: 100%;
    font-family: var(--font-sans);
    font-size: 12.5px;
    color: var(--text-primary);
    background: var(--bg-cream);
    border: 1px solid var(--border-med);
    border-radius: var(--radius-md);
    padding: 8px 11px;
    margin-bottom: 8px;
    transition: border-color 0.15s var(--ease);
}

.j-com[b-onxo9tb4jr]::placeholder { color: var(--text-muted); }

.j-com:focus[b-onxo9tb4jr] {
    outline: none;
    border-color: var(--brand-teal-dark);
}

.j-com:disabled[b-onxo9tb4jr] {
    color: var(--text-muted);
    cursor: not-allowed;
}

.j-error[b-onxo9tb4jr] {
    font-size: 12px;
    font-weight: 600;
    color: var(--danger);
    background: rgba(163, 45, 45, 0.10);
    border-radius: var(--radius-md);
    padding: 7px 11px;
    margin-top: 10px;
}

/* skeleton del drawer (usa .skeleton global de base.css) */
.j-sk[b-onxo9tb4jr] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    padding: 13px 14px;
}

/* vacío / error dentro del drawer */
.j-vacio[b-onxo9tb4jr] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 4px;
    padding: 34px 18px;
}

.j-vacio .material-symbols-rounded[b-onxo9tb4jr] {
    font-size: 32px !important;
    color: var(--border-med);
    margin-bottom: 4px;
}

.j-vacio-title[b-onxo9tb4jr] {
    font-family: var(--font-serif);
    font-size: 15px;
    font-weight: 600;
    color: var(--text-secondary);
}

.j-vacio-sub[b-onxo9tb4jr] {
    font-size: 12px;
    color: var(--text-muted);
    max-width: 280px;
    line-height: 1.5;
}

.j-vacio .mini-btn[b-onxo9tb4jr] { margin-top: 10px; }

/* ── responsive ── */
@media (max-width: 640px) {
    .card-h[b-onxo9tb4jr] { padding: 16px 16px 0; }
    .qrow[b-onxo9tb4jr] { padding: 12px 16px; flex-wrap: wrap; }
    .qrow .mini-btn[b-onxo9tb4jr] { margin-left: 45px; } /* alinea bajo el texto al envolver */
    .qfoot[b-onxo9tb4jr] { padding: 11px 16px 16px; }
    .mini-btn[b-onxo9tb4jr] { min-height: 44px; }
    .q-close[b-onxo9tb4jr] { width: 44px; height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
    .q-scrim[b-onxo9tb4jr], .q-drawer[b-onxo9tb4jr] { animation: none; }
    .qrow[b-onxo9tb4jr], .mini-btn[b-onxo9tb4jr], .q-close[b-onxo9tb4jr], .j-com[b-onxo9tb4jr] { transition: none; }
}
/* /Components/Directivo/DimensionesCard.razor.rz.scp.css */
/* ────────────────────────────────────────────────────────────────────
   DimensionesCard — semáforo por dimensión (Home v3 F3)
   Card canon de franja (F2): radius-xl, border-soft, shadow-sm,
   header Fraunces 18px + pill cnt.
   ──────────────────────────────────────────────────────────────────── */

.card[b-mwwtwwjgtq] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
}

.card-h[b-mwwtwwjgtq] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 18px 20px 0;
}

.card-h h2[b-mwwtwwjgtq] {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
}

.cnt[b-mwwtwwjgtq] {
    font-size: 12px;
    font-weight: 700;
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
    border-radius: 999px;
    padding: 2px 9px;
}

.dims[b-mwwtwwjgtq] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 11px;
    padding: 14px 20px 6px;
}

.dim[b-mwwtwwjgtq] {
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    padding: 12px 13px;
}

.dim .t[b-mwwtwwjgtq] {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--text-secondary);
}

.st[b-mwwtwwjgtq] {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    flex: none;
}

.st.ok[b-mwwtwwjgtq]    { background: var(--success); }
.st.watch[b-mwwtwwjgtq] { background: var(--warning); }
.st.bad[b-mwwtwwjgtq]   { background: var(--danger); }
.st.na[b-mwwtwwjgtq]    { background: var(--border-med); }

.dim p[b-mwwtwwjgtq] {
    margin: 5px 0 0;
    font-size: 11.5px;
    color: var(--text-muted);
    line-height: 1.4;
}

.dims-foot[b-mwwtwwjgtq] {
    padding: 6px 20px 16px;
    font-size: 11.5px;
    color: var(--text-muted);
}

/* ── vacío ── */
.dim-empty[b-mwwtwwjgtq] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 4px;
    padding: 26px 24px 22px;
}

.dim-empty .material-symbols-rounded[b-mwwtwwjgtq] {
    font-size: 32px !important;
    color: var(--border-med);
    margin-bottom: 4px;
}

.dim-empty-title[b-mwwtwwjgtq] {
    font-family: var(--font-serif);
    font-size: 15px;
    font-weight: 600;
    color: var(--text-secondary);
}

.dim-empty-sub[b-mwwtwwjgtq] {
    font-size: 12px;
    color: var(--text-muted);
    max-width: 300px;
    line-height: 1.5;
}

@media (max-width: 640px) {
    .card-h[b-mwwtwwjgtq] { padding: 16px 16px 0; }
    .dims[b-mwwtwwjgtq] { padding: 12px 16px 6px; }
    .dims-foot[b-mwwtwwjgtq] { padding: 6px 16px 14px; }
}
/* /Components/Directivo/EntradaDirectivo.razor.rz.scp.css */
/* Entrada en el inicio del directivo: mismas reglas visuales que la prefectura (CdmAdministrativo.razor.css). */

.ad-card[b-0uyzvns3p5], .sk-card[b-0uyzvns3p5] {
    background: #fff;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
    padding: 18px 20px;
}

.ad-card-h[b-0uyzvns3p5] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 10px;
    margin-bottom: 10px;
}

.ad-card-h h3[b-0uyzvns3p5] {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    margin: 0;
}

.ad-card-h a[b-0uyzvns3p5] {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--brand-teal-deep);
    text-decoration: none;
    white-space: nowrap;
}



/* ── hero: entrada de hoy (carbon, como la maqueta) ── */
.ad-hero[b-0uyzvns3p5] {
    background: linear-gradient(145deg, #23272D 0%, #1A1C1F 100%);
    color: #fff;
    border-radius: var(--radius-2xl);
    padding: 22px 24px;
    box-shadow: var(--shadow-md);
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 16px 24px;
}

.ad-hero-main[b-0uyzvns3p5] { min-width: 0; }

.ad-lbl[b-0uyzvns3p5] {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: rgba(255, 255, 255, 0.66);
}

.ad-lbl > span:first-child[b-0uyzvns3p5] { display: inline-flex; align-items: center; gap: 8px; color: var(--brand-teal-primary); }
.ad-lbl > span:last-child[b-0uyzvns3p5] { text-transform: none; letter-spacing: 0; font-weight: 600; }

.ad-dot[b-0uyzvns3p5] {
    position: relative;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--brand-teal-primary);
}

.ad-dot[b-0uyzvns3p5]::after {
    content: "";
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    border: 2px solid var(--brand-teal-primary);
    opacity: 0.5;
    animation: ad-pulse-b-0uyzvns3p5 1.8s ease-out infinite;
}

.ad-dot.off[b-0uyzvns3p5] { background: rgba(255, 255, 255, 0.5); }
.ad-dot.off[b-0uyzvns3p5]::after { display: none; }

@keyframes ad-pulse-b-0uyzvns3p5 {
    0% { transform: scale(0.6); opacity: 0.7; }
    100% { transform: scale(1.6); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) { .ad-dot[b-0uyzvns3p5]::after { animation: none; } }

.ad-big[b-0uyzvns3p5] { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-top: 10px; }

.ad-big b[b-0uyzvns3p5] {
    font-family: var(--font-serif);
    font-size: 46px;
    font-weight: 600;
    line-height: 1;
}

.ad-big span[b-0uyzvns3p5] { font-size: 14px; color: rgba(255, 255, 255, 0.75); }

.ad-hero-empty[b-0uyzvns3p5] { margin: 12px 0 0; font-size: 14px; color: rgba(255, 255, 255, 0.8); }

.ad-bar[b-0uyzvns3p5] {
    display: flex;
    height: 8px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
    overflow: hidden;
    margin-top: 14px;
}

.ad-bar .on[b-0uyzvns3p5] { background: var(--brand-teal-primary); }
.ad-bar .late[b-0uyzvns3p5] { background: #E0A54A; }

.ad-cta[b-0uyzvns3p5] { display: flex; flex-direction: column; gap: 8px; align-self: center; }

.ad-kpis[b-0uyzvns3p5] {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding-top: 14px;
}

.ad-kpis small[b-0uyzvns3p5] { display: block; font-size: 11.5px; color: rgba(255, 255, 255, 0.6); }
.ad-kpis b[b-0uyzvns3p5] { font-family: var(--font-serif); font-size: 22px; font-weight: 600; }
.ad-kpis b.soft[b-0uyzvns3p5] { font-family: var(--font-sans); font-size: 13px; font-weight: 600; color: rgba(255, 255, 255, 0.55); }

/* ── botones ── */
.ad-btn[b-0uyzvns3p5] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border-radius: var(--radius-lg);
    padding: 10px 16px;
    font: inherit;
    font-size: 13.5px;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
    border: 1px solid transparent;
    white-space: nowrap;
}

.ad-btn .material-symbols-rounded[b-0uyzvns3p5] { font-size: 19px; }
.ad-btn.pri[b-0uyzvns3p5] { background: var(--brand-teal-primary); color: #10393A; }
.ad-btn.pri:hover[b-0uyzvns3p5] { background: #82D0D2; }
.ad-btn.ghost[b-0uyzvns3p5] { background: rgba(255, 255, 255, 0.08); color: #fff; border-color: rgba(255, 255, 255, 0.2); }
.ad-btn.ghost:hover[b-0uyzvns3p5] { background: rgba(255, 255, 255, 0.14); }
.ad-btn.ol[b-0uyzvns3p5] { background: #fff; color: var(--brand-teal-deep); border-color: var(--border-soft); }
.ad-btn.ol:hover[b-0uyzvns3p5] { border-color: var(--brand-teal-dark); }
.ad-btn.sm[b-0uyzvns3p5] { padding: 6px 12px; font-size: 12.5px; }

/* ── atender ahora ── */
.ad-row[b-0uyzvns3p5] {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 12px;
    padding: 10px 0;
    border-top: 1px solid var(--border-soft);
}

.ad-row:first-of-type[b-0uyzvns3p5] { border-top: 0; }

.ad-ic[b-0uyzvns3p5] {
    width: 36px;
    height: 36px;
    border-radius: var(--radius-md);
    display: grid;
    place-items: center;
}

.ad-ic .material-symbols-rounded[b-0uyzvns3p5] { font-size: 20px; }
.ad-ic.bad[b-0uyzvns3p5] { background: var(--error-bg); color: var(--danger); }
.ad-ic.warn[b-0uyzvns3p5] { background: var(--warn-bg); color: var(--warning); }

.ad-row-t[b-0uyzvns3p5] { min-width: 0; }
.ad-row-t b[b-0uyzvns3p5] { display: block; font-size: 14px; }
.ad-row-t small[b-0uyzvns3p5] { display: block; font-size: 12.5px; color: var(--text-muted); }

.ad-num[b-0uyzvns3p5] { font-family: var(--font-serif); font-size: 22px; font-weight: 600; }

.ad-calm[b-0uyzvns3p5] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-size: 13.5px;
    color: var(--text-muted);
}

.ad-calm .material-symbols-rounded[b-0uyzvns3p5] { color: var(--brand-teal-dark); font-size: 20px; }

/* ── mapa por grupo ── */
.ad-heat[b-0uyzvns3p5] { display: flex; flex-direction: column; gap: 8px; }
.ad-heat-row[b-0uyzvns3p5] { display: grid; grid-template-columns: 44px minmax(0, 1fr); align-items: center; gap: 10px; }
.ad-heat-g[b-0uyzvns3p5] { font-size: 12.5px; font-weight: 700; color: var(--text-secondary); }
.ad-heat-cells[b-0uyzvns3p5] { display: flex; flex-wrap: wrap; gap: 6px; }

.ad-cell[b-0uyzvns3p5] {
    min-width: 64px;
    padding: 7px 10px;
    border-radius: var(--radius-md);
    font-size: 12px;
    color: var(--text-secondary);
    background: rgba(110, 198, 200, 0.14);
    display: inline-flex;
    gap: 6px;
    align-items: baseline;
}

.ad-cell b[b-0uyzvns3p5] { font-size: 13.5px; color: var(--text-primary); }
.ad-cell.s1[b-0uyzvns3p5] { background: var(--warn-bg); }
.ad-cell.s2[b-0uyzvns3p5] { background: var(--error-bg); }
.ad-cell.s2 b[b-0uyzvns3p5] { color: var(--danger); }

/* ── renglon: entrada cerrada o delegada ── */
.ed-strip[b-0uyzvns3p5] {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    background: #fff;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
    padding: 12px 16px;
}

.ed-strip .ad-ic[b-0uyzvns3p5] { width: 40px; height: 40px; }
.ad-ic.ok[b-0uyzvns3p5] { background: rgba(110, 198, 200, 0.18); color: var(--brand-teal-deep); }
.ad-ic.tl[b-0uyzvns3p5] { background: rgba(110, 198, 200, 0.18); color: var(--brand-teal-deep); }
.ed-strip-t[b-0uyzvns3p5] { min-width: 0; }
.ed-strip-t b[b-0uyzvns3p5] { display: block; font-size: 14px; }
.ed-strip-t small[b-0uyzvns3p5] { display: block; font-size: 12.5px; color: var(--text-muted); }
.ed-mini[b-0uyzvns3p5] { height: 5px; border-radius: 99px; background: var(--border-soft); overflow: hidden; margin-top: 6px; max-width: 360px; }
.ed-mini i[b-0uyzvns3p5] { display: block; height: 100%; background: var(--brand-teal-primary); }
.ed-strip-acts[b-0uyzvns3p5] { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }

.ed-link[b-0uyzvns3p5] {
    border: 0;
    background: transparent;
    padding: 4px 2px;
    font: inherit;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--brand-teal-deep);
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.ad-hero .ed-link[b-0uyzvns3p5] { color: rgba(255, 255, 255, 0.75); }
.ed-hero-foot[b-0uyzvns3p5] { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; font-size: 12.5px; color: rgba(255, 255, 255, 0.65); }
.ed-cierre[b-0uyzvns3p5] { margin-top: -4px; }
.ed-heat-card[b-0uyzvns3p5] { margin-top: 0; }
.ad-btn:focus-visible[b-0uyzvns3p5], .ed-link:focus-visible[b-0uyzvns3p5] { outline: 2px solid var(--brand-teal-primary); outline-offset: 2px; }

@media (max-width: 640px) {
    .ad-hero[b-0uyzvns3p5] { grid-template-columns: minmax(0, 1fr); padding: 18px; }
    .ad-cta[b-0uyzvns3p5] { flex-direction: row; flex-wrap: wrap; }
    .ad-cta .ad-btn[b-0uyzvns3p5] { flex: 1 1 auto; }
    .ad-kpis[b-0uyzvns3p5] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ad-big b[b-0uyzvns3p5] { font-size: 38px; }
    .ed-strip[b-0uyzvns3p5] { grid-template-columns: 40px minmax(0, 1fr); }
    .ed-strip-acts[b-0uyzvns3p5] { grid-column: 2 / -1; justify-content: flex-start; }
}
/* /Components/Directivo/FamiliasComunicado.razor.rz.scp.css */
/* ────────────────────────────────────────────────────────────────────
   FamiliasComunicado — acuse del último comunicado (Home v3 F3)
   ──────────────────────────────────────────────────────────────────── */

.card[b-67eutvnfea] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
}

.card-h[b-67eutvnfea] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 18px 20px 0;
}

.card-h h2[b-67eutvnfea] {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
}

.fam[b-67eutvnfea] { padding: 12px 20px 18px; }

.fam-com[b-67eutvnfea] {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-bottom: 4px;
}

.bar[b-67eutvnfea] {
    height: 9px;
    border-radius: 6px;
    background: var(--cream-deep);
    overflow: hidden;
    margin: 8px 0 6px;
}

.bar i[b-67eutvnfea] {
    display: block;
    height: 100%;
    border-radius: 6px;
    background: linear-gradient(90deg, var(--brand-teal), var(--brand-teal-deep));
    transition: width 0.25s var(--ease);
}

.fam p[b-67eutvnfea] {
    margin: 0;
    font-size: 12.5px;
    color: var(--text-secondary);
    line-height: 1.5;
}

.fam p b[b-67eutvnfea] { color: var(--text-primary); }

/* mini-btn canon (F2) — pill teal claro; aquí nace disabled */
.mini-btn[b-67eutvnfea] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 12px;
    font-family: var(--font-sans);
    font-size: 12.5px;
    font-weight: 600;
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
    border: 0;
    border-radius: 999px;
    padding: 7px 14px;
    cursor: pointer;
    transition: all 0.15s var(--ease);
    white-space: nowrap;
}

.mini-btn .material-symbols-rounded[b-67eutvnfea] { font-size: 15px !important; }

.mini-btn:disabled[b-67eutvnfea] {
    color: var(--text-muted);
    background: var(--cream);
    cursor: not-allowed;
}

.fam-note[b-67eutvnfea] {
    display: block;
    margin-top: 6px;
    font-size: 11px;
    color: var(--text-muted);
}

/* ── vacío ── */
.fm-empty[b-67eutvnfea] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 4px;
    padding: 26px 24px 22px;
}

.fm-empty .material-symbols-rounded[b-67eutvnfea] {
    font-size: 32px !important;
    color: var(--border-med);
    margin-bottom: 4px;
}

.fm-empty-title[b-67eutvnfea] {
    font-family: var(--font-serif);
    font-size: 15px;
    font-weight: 600;
    color: var(--text-secondary);
}

.fm-empty-sub[b-67eutvnfea] {
    font-size: 12px;
    color: var(--text-muted);
    max-width: 280px;
    line-height: 1.5;
}

@media (max-width: 640px) {
    .card-h[b-67eutvnfea] { padding: 16px 16px 0; }
    .fam[b-67eutvnfea] { padding: 10px 16px 16px; }
    .mini-btn[b-67eutvnfea] { min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
    .bar i[b-67eutvnfea], .mini-btn[b-67eutvnfea] { transition: none; }
}
/* /Components/Directivo/PrioridadesCard.razor.rz.scp.css */
/* ────────────────────────────────────────────────────────────────────
   PrioridadesCard — "Lo que pide tu intervención" (Home v3 F11.2)
   Card canon F2/F3 + filas .pr del mockup destiladas a tokens.
   Fondos semánticos = patrón rgba-de-token (F2); texto warning con la
   variante AA de F8W. CERO hex nuevos.
   ──────────────────────────────────────────────────────────────────── */

.card[b-dz4qz97c3u] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
}

.card-h[b-dz4qz97c3u] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 18px 20px 0;
    flex-wrap: wrap;
}

.card-h h2[b-dz4qz97c3u] {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
}

.cnt[b-dz4qz97c3u] {
    font-size: 12px;
    font-weight: 700;
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
    border-radius: 999px;
    padding: 2px 9px;
}

/* pill neutral "Al día": estado tranquilo, sin gritar (canon vacío honesto) */
.cnt.neutral[b-dz4qz97c3u] {
    color: var(--text-secondary);
    background: var(--cream);
}

.lnk[b-dz4qz97c3u] {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-family: var(--font-sans);
    font-size: 12.5px;
    font-weight: 600;
    color: var(--brand-teal-deep);
    background: transparent;
    border: 0;
    padding: 4px 6px;
    border-radius: var(--radius-sm);
    cursor: pointer;
}

.lnk:hover[b-dz4qz97c3u] { text-decoration: underline; }
.lnk:focus-visible[b-dz4qz97c3u] { outline: 2px solid var(--brand-teal-dark); outline-offset: 2px; }
.lnk .material-symbols-rounded[b-dz4qz97c3u] { font-size: 14px !important; }

/* nota "¿cómo se eligen?" — misma voz que los diferidos honestos */
.como[b-dz4qz97c3u] {
    margin: 12px 20px 0;
    padding: 10px 13px;
    background: var(--bg-cream);
    border: 1px dashed var(--border-med);
    border-radius: var(--radius-md);
    font-size: 12px;
    color: var(--text-secondary);
    line-height: 1.55;
}

/* ── filas ── */
.prio[b-dz4qz97c3u] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 14px 20px 18px;
}

.pr[b-dz4qz97c3u] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 14px;
    align-items: start;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    padding: 14px 16px;
}

.sev[b-dz4qz97c3u] {
    width: 38px;
    height: 38px;
    border-radius: var(--radius-lg);
    display: grid;
    place-items: center;
    flex: none;
}

.sev .material-symbols-rounded[b-dz4qz97c3u] { font-size: 20px !important; }

/* fondos rgba-de-token (canon F2); ámbar de texto/icono = variante AA F8W */
.sev.crit[b-dz4qz97c3u] { background: rgba(163, 45, 45, 0.10);  color: var(--danger); }
.sev.high[b-dz4qz97c3u] { background: rgba(186, 117, 23, 0.12); color: color-mix(in srgb, var(--warning) 75%, var(--carbon-1)); }
.sev.med[b-dz4qz97c3u]  { background: rgba(45, 110, 163, 0.10); color: var(--info); }

.pr-body[b-dz4qz97c3u] { min-width: 0; }

.pr h3[b-dz4qz97c3u] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    font-family: var(--font-sans);
    font-size: 14.5px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
    line-height: 1.35;
}

.spill[b-dz4qz97c3u] {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: 2px 8px;
    flex: none;
}

.spill.crit[b-dz4qz97c3u] { background: rgba(163, 45, 45, 0.10);  color: var(--danger); }
.spill.high[b-dz4qz97c3u] { background: rgba(186, 117, 23, 0.12); color: color-mix(in srgb, var(--warning) 75%, var(--carbon-1)); }
.spill.med[b-dz4qz97c3u]  { background: rgba(45, 110, 163, 0.10); color: var(--info); }

.ev[b-dz4qz97c3u] {
    font-size: 12.5px;
    color: var(--text-secondary);
    line-height: 1.5;
    margin: 4px 0 0;
}

.meta[b-dz4qz97c3u] {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    font-size: 11.5px;
    color: var(--text-muted);
    margin-top: 6px;
}

.meta span[b-dz4qz97c3u] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.meta .material-symbols-rounded[b-dz4qz97c3u] { font-size: 14px !important; }

.acts[b-dz4qz97c3u] {
    display: flex;
    flex-direction: column;
    gap: 7px;
    flex: none;
}

/* mini-btn canon F2 (pill teal claro) */
.mini-btn[b-dz4qz97c3u] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-family: var(--font-sans);
    font-size: 12.5px;
    font-weight: 600;
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
    border: 0;
    border-radius: 999px;
    padding: 7px 14px;
    cursor: pointer;
    white-space: nowrap;
    transition: background-color 0.15s var(--ease), color 0.15s var(--ease);
}

.mini-btn:hover[b-dz4qz97c3u] {
    background: var(--brand-teal);
    color: var(--carbon-1);
}

.mini-btn:focus-visible[b-dz4qz97c3u] {
    outline: 2px solid var(--brand-teal-dark);
    outline-offset: 2px;
}

/* ── vacío honesto (canon F3) ── */
.pr-empty[b-dz4qz97c3u] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 4px;
    padding: 26px 24px 22px;
}

.pr-empty .material-symbols-rounded[b-dz4qz97c3u] {
    font-size: 32px !important;
    color: var(--border-med);
    margin-bottom: 4px;
}

.pr-empty-title[b-dz4qz97c3u] {
    font-family: var(--font-serif);
    font-size: 15px;
    font-weight: 600;
    color: var(--text-secondary);
}

.pr-empty-sub[b-dz4qz97c3u] {
    font-size: 12px;
    color: var(--text-muted);
    max-width: 340px;
    line-height: 1.5;
}

/* ── responsive ── */
@media (max-width: 1080px) {
    .pr[b-dz4qz97c3u] { grid-template-columns: auto minmax(0, 1fr); }
    .acts[b-dz4qz97c3u] { grid-column: 2; flex-direction: row; }
}

@media (max-width: 640px) {
    .card-h[b-dz4qz97c3u] { padding: 16px 16px 0; }
    .como[b-dz4qz97c3u] { margin: 12px 16px 0; }
    .prio[b-dz4qz97c3u] { padding: 12px 16px 16px; gap: 10px; }
    .pr[b-dz4qz97c3u] { padding: 12px 13px; gap: 11px; }
    .lnk[b-dz4qz97c3u] { min-height: 44px; }
    .mini-btn[b-dz4qz97c3u] { min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
    .mini-btn[b-dz4qz97c3u] { transition: none; }
}

/* ── pendientes de prefectura (inicio de directivos 2026-10-11): mismas reglas que CdmAdministrativo ── */
.pd[b-dz4qz97c3u] { margin-bottom: 12px; }
/* ── botones ── */
.ad-btn[b-dz4qz97c3u] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border-radius: var(--radius-lg);
    padding: 10px 16px;
    font: inherit;
    font-size: 13.5px;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
    border: 1px solid transparent;
    white-space: nowrap;
}

.ad-btn .material-symbols-rounded[b-dz4qz97c3u] { font-size: 19px; }
.ad-btn.pri[b-dz4qz97c3u] { background: var(--brand-teal-primary); color: #10393A; }
.ad-btn.pri:hover[b-dz4qz97c3u] { background: #82D0D2; }
.ad-btn.ghost[b-dz4qz97c3u] { background: rgba(255, 255, 255, 0.08); color: #fff; border-color: rgba(255, 255, 255, 0.2); }
.ad-btn.ghost:hover[b-dz4qz97c3u] { background: rgba(255, 255, 255, 0.14); }
.ad-btn.ol[b-dz4qz97c3u] { background: #fff; color: var(--brand-teal-deep); border-color: var(--border-soft); }
.ad-btn.ol:hover[b-dz4qz97c3u] { border-color: var(--brand-teal-dark); }
.ad-btn.sm[b-dz4qz97c3u] { padding: 6px 12px; font-size: 12.5px; }

/* ── atender ahora ── */
.ad-row[b-dz4qz97c3u] {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 12px;
    padding: 10px 0;
    border-top: 1px solid var(--border-soft);
}

.ad-row:first-of-type[b-dz4qz97c3u] { border-top: 0; }

.ad-ic[b-dz4qz97c3u] {
    width: 36px;
    height: 36px;
    border-radius: var(--radius-md);
    display: grid;
    place-items: center;
}

.ad-ic .material-symbols-rounded[b-dz4qz97c3u] { font-size: 20px; }
.ad-ic.bad[b-dz4qz97c3u] { background: var(--error-bg); color: var(--danger); }
.ad-ic.warn[b-dz4qz97c3u] { background: var(--warn-bg); color: var(--warning); }

.ad-row-t[b-dz4qz97c3u] { min-width: 0; }
.ad-row-t b[b-dz4qz97c3u] { display: block; font-size: 14px; }
.ad-row-t small[b-dz4qz97c3u] { display: block; font-size: 12.5px; color: var(--text-muted); }

.ad-num[b-dz4qz97c3u] { font-family: var(--font-serif); font-size: 22px; font-weight: 600; }
@media (max-width: 640px) { .ad-row[b-dz4qz97c3u] { grid-template-columns: 36px minmax(0, 1fr) auto; } .ad-row .ad-btn[b-dz4qz97c3u] { grid-column: 2 / -1; justify-self: start; } }
/* /Components/Directivo/PulsoDirectivo.razor.rz.scp.css */
/* ────────────────────────────────────────────────────────────────────
   PulsoDirectivo — grid de KPIs school-wide (Home v3 F3)
   Fondos semánticos con el patrón rgba-de-token documentado en F2
   (docs/notas-home-v3.md) — CERO hex nuevos.
   ──────────────────────────────────────────────────────────────────── */

.pulse[b-2bf7j83hky] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 13px;
}

.kpi[b-2bf7j83hky] {
    position: relative;
    overflow: hidden;
    display: block;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    padding: 15px 16px;
    box-shadow: var(--shadow-sm);
    text-decoration: none;
    color: var(--text-primary);
    cursor: default;
    transition: transform 0.18s var(--ease), box-shadow 0.18s var(--ease), border-color 0.18s var(--ease);
}

/* solo los KPI con ruta real se sienten clickeables */
.kpi[href][b-2bf7j83hky] { cursor: pointer; }

.kpi[href]:hover[b-2bf7j83hky] {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
    border-color: var(--brand-teal-dark);
}

.kpi[href]:focus-visible[b-2bf7j83hky] {
    outline: 2px solid var(--brand-teal-dark);
    outline-offset: 2px;
}

.kpi small[b-2bf7j83hky] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11.5px;
    font-weight: 600;
    color: var(--text-muted);
}

.kpi small .material-symbols-rounded[b-2bf7j83hky] { font-size: 15px !important; }

.kpi b[b-2bf7j83hky] {
    display: block;
    margin: 5px 0 3px;
    font-family: var(--font-serif);
    font-size: 27px;
    font-weight: 600;
    line-height: 1.1;
}

.kpi b em[b-2bf7j83hky] {
    font-style: normal;
    font-family: var(--font-sans);
    font-size: 13px;
    font-weight: 500;
    color: var(--text-muted);
}

/* pill de tendencia/estado */
.tr[b-2bf7j83hky] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 11.5px;
    font-weight: 600;
    border-radius: 999px;
    padding: 2px 8px;
    max-width: 100%;
}

.tr .material-symbols-rounded[b-2bf7j83hky] { font-size: 13px !important; }

/* Texto semántico sobre fondo claro: variante oscurecida SOLO con tokens
   para cumplir AA 4.5:1 (success/warning puros quedan en ~3.2-3.5:1). */
.tr.down[b-2bf7j83hky] { background: rgba(163, 45, 45, 0.10);  color: var(--danger); }
.tr.up[b-2bf7j83hky]   { background: rgba(29, 158, 117, 0.12); color: var(--pz-green-deep); }
.tr.warn[b-2bf7j83hky] { background: rgba(186, 117, 23, 0.12); color: color-mix(in srgb, var(--warning) 75%, var(--carbon-1)); }
.tr.flat[b-2bf7j83hky] { background: var(--cream);             color: var(--text-secondary); }

/* nota secundaria (ej. título del comunicado), 1 línea */
.kpi-note[b-2bf7j83hky] {
    display: block;
    margin-top: 6px;
    font-size: 11px;
    color: var(--text-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* borde de alerta a la izquierda */
.kpi.alert[b-2bf7j83hky]::before,
.kpi.watch[b-2bf7j83hky]::before {
    content: "";
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
}

.kpi.alert[b-2bf7j83hky]::before { background: var(--danger); }
.kpi.watch[b-2bf7j83hky]::before { background: var(--warning); }

/* métrica diferida / protegida: presencia honesta, sin gritar */
.kpi.off[b-2bf7j83hky] {
    background: var(--bg-cream);
    border-style: dashed;
    border-color: var(--border-med);
    box-shadow: none;
}

.kpi.off b[b-2bf7j83hky] { color: var(--text-muted); }

/* candado de permiso (Cobranza bloqueada) */
.lock[b-2bf7j83hky] {
    position: absolute;
    top: 12px; right: 12px;
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 10px;
    font-weight: 700;
    color: var(--text-muted);
    background: var(--cream);
    border-radius: 999px;
    padding: 2px 8px;
}

.lock .material-symbols-rounded[b-2bf7j83hky] { font-size: 12px !important; }

@media (max-width: 640px) {
    .pulse[b-2bf7j83hky] { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
    .kpi[b-2bf7j83hky] { padding: 13px 14px; }
    .kpi b[b-2bf7j83hky] { font-size: 24px; }
}

@media (prefers-reduced-motion: reduce) {
    .kpi[b-2bf7j83hky] { transition: none; }
    .kpi[href]:hover[b-2bf7j83hky] { transform: none; }
}
/* /Components/Directivo/SeccionDiferida.razor.rz.scp.css */
/* ────────────────────────────────────────────────────────────────────
   SeccionDiferida — card de estado vacío honesto (Home v3 F3)
   ──────────────────────────────────────────────────────────────────── */

.card[b-7y6xrhhj6w] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
}

.card-h[b-7y6xrhhj6w] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 18px 20px 0;
}

.card-h h2[b-7y6xrhhj6w] {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
}

.cnt[b-7y6xrhhj6w] {
    font-size: 12px;
    font-weight: 700;
    color: var(--text-muted);
    background: var(--cream);
    border-radius: 999px;
    padding: 2px 9px;
}

.sd-empty[b-7y6xrhhj6w] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 4px;
    padding: 26px 24px 22px;
}

.sd-empty .material-symbols-rounded[b-7y6xrhhj6w] {
    font-size: 32px !important;
    color: var(--border-med);
    margin-bottom: 4px;
}

.sd-title[b-7y6xrhhj6w] {
    font-family: var(--font-serif);
    font-size: 15px;
    font-weight: 600;
    color: var(--text-secondary);
}

.sd-sub[b-7y6xrhhj6w] {
    font-size: 12px;
    color: var(--text-muted);
    max-width: 320px;
    line-height: 1.5;
}

@media (max-width: 640px) {
    .card-h[b-7y6xrhhj6w] { padding: 16px 16px 0; }
    .sd-empty[b-7y6xrhhj6w] { padding: 22px 18px 18px; }
}
/* /Components/Directorio/DirectorioBusqueda.razor.rz.scp.css */
.dir-busca[b-j1qg32gxhx] {
    display: flex;
    align-items: center;
    gap: 6px;
    flex: 1 1 260px;
    min-width: 0;
    min-height: 40px;
    padding: 0 10px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-panel);
}

.dir-busca:focus-within[b-j1qg32gxhx] {
    border-color: var(--brand-teal);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand-teal) 25%, transparent);
}

.dir-busca .msr[b-j1qg32gxhx] {
    font-size: 18px;
    color: var(--text-secondary);
}

.dir-busca input[b-j1qg32gxhx] {
    flex: 1;
    min-width: 0;
    min-height: 38px;
    border: 0;
    outline: 0;
    background: transparent;
    font-family: var(--font-sans);
    font-size: 14px;
    color: var(--text-primary);
}

.dir-busca input[b-j1qg32gxhx]::placeholder { color: var(--text-secondary); }

.dir-busca kbd[b-j1qg32gxhx] {
    font-family: var(--font-mono);
    font-size: 11px;
    padding: 1px 6px;
    border: 1px solid var(--border-med);
    border-bottom-width: 2px;
    border-radius: 5px;
    background: var(--bg-cream);
    color: var(--text-secondary);
}

.dir-sr[b-j1qg32gxhx] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

@media (max-width: 640px) {
    /* 16 px para que iOS no haga zoom al enfocar. */
    .dir-busca input[b-j1qg32gxhx] { font-size: 16px; }
    .dir-busca kbd[b-j1qg32gxhx] { display: none; }
}

@media (pointer: coarse) {
    .dir-busca[b-j1qg32gxhx] { min-height: 44px; }
}
/* /Components/Directorio/DirectorioCarta.razor.rz.scp.css */
.dir-carta[b-7f0du5uiu6] {
    display: grid;
    grid-template-columns: 200px minmax(0, 1fr);
    width: min(720px, calc(100% - 32px));
    height: 100%;
    overflow: hidden;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-2xl);
    background: var(--bg-panel);
    box-shadow: var(--shadow-md);
    transition: transform .22s var(--ease), opacity .22s var(--ease), box-shadow .22s var(--ease);
}

.dir-carta--lejos[b-7f0du5uiu6] { transform: scale(.94); opacity: .55; }
.dir-carta--cerca[b-7f0du5uiu6] { transform: scale(.97); opacity: .8; }
.dir-carta--actual[b-7f0du5uiu6] { transform: none; opacity: 1; box-shadow: var(--shadow-lg); }

.dir-carta--sel[b-7f0du5uiu6] {
    outline: 3px solid var(--brand-teal-deep);
    outline-offset: -3px;
}

.dir-carta-franja[b-7f0du5uiu6] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 22px 18px;
    background: linear-gradient(160deg, var(--dir-from), var(--dir-to));
    color: var(--text-sidebar-active);
}

.dir-carta-av[b-7f0du5uiu6] {
    display: grid;
    place-items: center;
    width: 72px;
    height: 72px;
    border: 2px solid color-mix(in srgb, var(--text-sidebar-active) 50%, transparent);
    border-radius: 50%;
    background: color-mix(in srgb, var(--text-sidebar-active) 18%, transparent);
    font-family: var(--font-sans);
    font-size: 24px;
    font-weight: 700;
}

.dir-carta-franja small[b-7f0du5uiu6] {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.dir-carta-grupo[b-7f0du5uiu6] {
    font-family: var(--font-serif);
    font-size: 40px;
    font-weight: 600;
    line-height: 1.05;
    letter-spacing: -1px;
    overflow-wrap: anywhere;
}

.dir-carta-turno[b-7f0du5uiu6] { font-size: 13px; }

.dir-carta-pos[b-7f0du5uiu6] {
    margin-top: auto;
    font-family: var(--font-mono);
    font-size: 11.5px;
    font-variant-numeric: tabular-nums;
}

.dir-carta-cuerpo[b-7f0du5uiu6] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-width: 0;
    padding: 20px 22px;
    overflow-y: auto;
}

.dir-carta-nombre[b-7f0du5uiu6] {
    margin: 0;
    font-family: var(--font-serif);
    font-size: 24px;
    font-weight: 600;
    letter-spacing: -.4px;
    line-height: 1.15;
    color: var(--text-primary);
    text-wrap: balance;
    overflow-wrap: anywhere;
}

.dir-carta-meta[b-7f0du5uiu6] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 6px;
}

.dir-carta-mat[b-7f0du5uiu6] {
    font-family: var(--font-mono);
    font-size: 12.5px;
    color: var(--text-secondary);
}

.dir-carta-contactos[b-7f0du5uiu6] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.dir-carta-nota[b-7f0du5uiu6] {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    padding: 8px 10px;
    border-radius: var(--radius-sm);
    background: color-mix(in srgb, var(--danger) 12%, transparent);
    color: var(--danger);
    font-size: 12.5px;
}

.dir-carta-nota .msr[b-7f0du5uiu6] { font-size: 16px; }

.dir-carta-pie[b-7f0du5uiu6] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: auto;
}

.dir-carta-sel[b-7f0du5uiu6] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 34px;
    padding: 0 12px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-panel);
    color: var(--text-secondary);
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
}

.dir-carta-sel input[b-7f0du5uiu6] {
    width: 18px;
    height: 18px;
    accent-color: var(--brand-teal-deep);
}

@media (max-width: 1023.98px) {
    .dir-carta[b-7f0du5uiu6] { grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr); }
    .dir-carta-franja[b-7f0du5uiu6] { flex-direction: row; align-items: center; padding: 14px 16px; }
    .dir-carta-av[b-7f0du5uiu6] { width: 48px; height: 48px; font-size: 17px; }
    .dir-carta-grupo[b-7f0du5uiu6] { font-size: 28px; }
    .dir-carta-pos[b-7f0du5uiu6] { margin: 0 0 0 auto; }
    .dir-carta-cuerpo[b-7f0du5uiu6] { padding: 16px; }
    .dir-carta-nombre[b-7f0du5uiu6] { font-size: 20px; }
}

@media (pointer: coarse) {
    .dir-carta-sel[b-7f0du5uiu6],
    .dir-carta-pie[b-7f0du5uiu6]  .ui-btn { min-height: 44px; }
    .dir-carta-sel input[b-7f0du5uiu6] { width: 24px; height: 24px; }
}

@media (prefers-reduced-motion: reduce) {
    .dir-carta[b-7f0du5uiu6] { transition: none; }
}
/* /Components/Directorio/DirectorioComparar.razor.rz.scp.css */
.dir-modal-fondo[b-43mf0qn7ya] {
    position: fixed;
    inset: 0;
    z-index: var(--z-overlay);
    background: color-mix(in srgb, var(--bg-rail) 50%, transparent);
}

.dir-modal[b-43mf0qn7ya] {
    position: fixed;
    inset: 4vh 0 auto;
    z-index: calc(var(--z-overlay) + 1);
    width: min(1040px, calc(100% - 32px));
    max-height: 92vh;
    margin: 0 auto;
    overflow: auto;
    border-radius: var(--radius-xl);
    background: var(--bg-panel);
    box-shadow: var(--shadow-lg);
    animation: dir-entrar-b-43mf0qn7ya .2s var(--ease);
}

.dir-modal:focus-visible[b-43mf0qn7ya] { outline: 2px solid var(--brand-teal); outline-offset: 2px; }

.dir-modal-h[b-43mf0qn7ya] {
    position: sticky;
    top: 0;
    z-index: 1;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 18px 20px 14px;
    border-bottom: 1px solid var(--border-soft);
    background: var(--bg-panel);
}

.dir-modal-ic[b-43mf0qn7ya] {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: var(--radius-md);
    background: var(--bg-light-teal);
    color: var(--brand-teal-deep);
}

.dir-modal-h-txt[b-43mf0qn7ya] { flex: 1; min-width: 0; }

.dir-modal-h h2[b-43mf0qn7ya] {
    margin: 0;
    font-family: var(--font-serif);
    font-size: 21px;
    font-weight: 600;
    color: var(--text-primary);
}

.dir-modal-h p[b-43mf0qn7ya] {
    margin: 2px 0 0;
    font-size: 13px;
    color: var(--text-secondary);
}

.dir-cmp[b-43mf0qn7ya] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 12px;
    padding: 14px;
}

.dir-cmp-col[b-43mf0qn7ya] {
    overflow: hidden;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
}

@keyframes dir-entrar-b-43mf0qn7ya {
    from { opacity: 0; transform: translateY(8px) scale(.98); }
    to { opacity: 1; transform: none; }
}

@media (max-width: 640px) {
    .dir-modal[b-43mf0qn7ya] { inset: 0; width: 100%; max-height: 100vh; border-radius: 0; }
    .dir-cmp[b-43mf0qn7ya] { padding: 10px; }
}

@media (pointer: coarse) {
    .dir-modal-h[b-43mf0qn7ya]  .ui-btn.icon { width: 44px; height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
    .dir-modal[b-43mf0qn7ya] { animation: none; }
}
/* /Components/Directorio/DirectorioContacto.razor.rz.scp.css */
.dir-ct[b-yl0voeennn] {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    padding: 10px 12px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-panel);
}

.dir-ct--compacto[b-yl0voeennn] { padding: 8px 10px; }

.dir-ct-n[b-yl0voeennn] {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--brand-teal-deep);
    color: var(--text-sidebar-active);
    display: grid;
    place-items: center;
    font-weight: 700;
    font-size: 12px;
}

.dir-ct-n--off[b-yl0voeennn] {
    background: var(--border-med);
    color: var(--text-secondary);
}

.dir-ct-datos[b-yl0voeennn] { min-width: 0; }

.dir-ct-quien[b-yl0voeennn] {
    font-weight: 600;
    font-size: 13.5px;
    color: var(--text-primary);
    overflow-wrap: anywhere;
}

.dir-ct-quien--off[b-yl0voeennn] { color: var(--text-secondary); }

.dir-ct-rel[b-yl0voeennn] {
    font-size: 12px;
    color: var(--text-secondary);
}

.dir-ct-parentesco[b-yl0voeennn] { font-style: italic; }

/* D4: parentesco capturado (etapa 2): dato real, sin cursiva. */
.dir-ct-parentesco--dato[b-yl0voeennn] {
    font-style: normal;
    font-weight: 600;
    color: var(--text-primary);
}

.dir-ct-tel[b-yl0voeennn] {
    margin-top: 2px;
    font-family: var(--font-mono);
    font-size: 13.5px;
    font-weight: 500;
    letter-spacing: .02em;
    color: var(--text-primary);
    font-variant-numeric: tabular-nums;
    user-select: all;
}

.dir-ct-estado[b-yl0voeennn] { margin-top: 4px; }

.dir-ct-acc[b-yl0voeennn] {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.dir-llamar[b-yl0voeennn] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-panel);
    color: var(--text-secondary);
    font-family: var(--font-sans);
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}

.dir-llamar .msr[b-yl0voeennn] { font-size: 14px; }

.dir-llamar:hover[b-yl0voeennn] {
    border-color: var(--brand-teal);
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
}

.dir-sr[b-yl0voeennn] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

@media (max-width: 480px) {
    .dir-ct[b-yl0voeennn] { grid-template-columns: 28px minmax(0, 1fr); }
    .dir-ct-acc[b-yl0voeennn] { grid-column: 2; justify-content: flex-start; }
}

@media (pointer: coarse) {
    .dir-llamar[b-yl0voeennn],
    .dir-ct-acc[b-yl0voeennn]  .ui-btn { min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
    .dir-llamar[b-yl0voeennn] { transition: none; }
}
/* /Components/Directorio/DirectorioFicha.razor.rz.scp.css */
.dir-ficha[b-elu1gi7abu] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    background: var(--bg-panel);
}

.dir-ficha-h[b-elu1gi7abu] {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    padding: 18px 18px 14px;
    border-bottom: 1px solid var(--border-soft);
    background: linear-gradient(180deg, var(--bg-cream), var(--bg-panel));
}

.dir-ficha-h-txt[b-elu1gi7abu] { min-width: 0; }

.dir-ficha-nombre[b-elu1gi7abu] {
    margin: 0;
    font-family: var(--font-serif);
    font-size: 20px;
    font-weight: 600;
    letter-spacing: -.3px;
    line-height: 1.2;
    color: var(--text-primary);
    text-wrap: balance;
    overflow-wrap: anywhere;
}

.dir-ficha-meta[b-elu1gi7abu] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
}

.dir-tag[b-elu1gi7abu] {
    display: inline-flex;
    align-items: center;
    padding: 2px 9px;
    border: 1px solid var(--border-soft);
    border-radius: 99px;
    background: var(--bg-cream);
    color: var(--text-secondary);
    font-size: 11.5px;
    font-weight: 700;
    white-space: nowrap;
}

.dir-tag--grupo[b-elu1gi7abu] {
    border-color: transparent;
    background: var(--bg-sidebar);
    color: var(--text-sidebar-active);
}

.dir-ficha-matricula[b-elu1gi7abu] {
    margin-top: 8px;
    min-height: 18px;
    font-family: var(--font-mono);
    font-size: 12.5px;
    color: var(--text-secondary);
}

.dir-sec[b-elu1gi7abu] {
    padding: 14px 18px;
    border-bottom: 1px solid var(--border-soft);
}

.dir-sec:last-child[b-elu1gi7abu] { border-bottom: 0; }

.dir-sec--apretada[b-elu1gi7abu] { padding-block: 10px; }

.dir-lab[b-elu1gi7abu] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 10px;
    font-family: var(--font-sans);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--text-secondary);
}

.dir-lab .msr[b-elu1gi7abu] { font-size: 16px; }

.dir-contactos[b-elu1gi7abu] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.dir-pie[b-elu1gi7abu] {
    margin: 8px 0 0;
    font-size: 11.5px;
    line-height: 1.45;
    color: var(--text-secondary);
}

.dir-nota[b-elu1gi7abu] {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    padding: 8px 10px;
    border-radius: var(--radius-sm);
    background: color-mix(in srgb, var(--warning) 14%, transparent);
    color: var(--warning-ink);
    font-size: 12.5px;
    line-height: 1.45;
}

.dir-nota .msr[b-elu1gi7abu] { font-size: 16px; margin-top: 1px; }

.dir-nota--info[b-elu1gi7abu] {
    background: color-mix(in srgb, var(--info) 12%, transparent);
    color: var(--info-ink);
}

.dir-nota--mal[b-elu1gi7abu] {
    background: color-mix(in srgb, var(--danger) 12%, transparent);
    color: var(--danger);
}

.dir-cuentas[b-elu1gi7abu] {
    margin: 0;
    padding: 0;
    list-style: none;
}

.dir-cuenta[b-elu1gi7abu] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 0;
    border-top: 1px dashed var(--border-soft);
    font-size: 12.5px;
}

.dir-cuenta:first-child[b-elu1gi7abu] { border-top: 0; }

.dir-cuenta-quien[b-elu1gi7abu] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-width: 0;
    color: var(--text-secondary);
}

.dir-cuenta-quien b[b-elu1gi7abu] {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
    overflow-wrap: anywhere;
}

.dir-acciones-fila[b-elu1gi7abu] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.dir-enlace[b-elu1gi7abu] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 12px;
    border-radius: var(--radius-md);
    color: var(--brand-teal-deep);
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
}

.dir-enlace .msr[b-elu1gi7abu] { font-size: 16px; }

.dir-enlace:hover[b-elu1gi7abu] { background: var(--bg-light-teal); }

.dir-ficha--compacta .dir-ficha-h[b-elu1gi7abu] { padding: 16px 16px 12px; }
.dir-ficha--compacta .dir-ficha-nombre[b-elu1gi7abu] { font-size: 18px; }
.dir-ficha--compacta .dir-sec[b-elu1gi7abu] { padding: 12px 16px; }

@media (pointer: coarse) {
    .dir-enlace[b-elu1gi7abu],
    .dir-acciones-fila[b-elu1gi7abu]  .ui-btn { min-height: 44px; }
}
/* /Components/Directorio/DirectorioFichas.razor.rz.scp.css */
.dir-deck-wrap[b-i8p7phno2y] {
    --dir-carta-h: 440px;
    --dir-deck-h: 640px;
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}

.dir-deck-idx[b-i8p7phno2y] {
    position: sticky;
    top: 12px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    max-height: var(--dir-deck-h);
    overflow: auto;
    padding-right: 4px;
}

.dir-deck-idx-btn[b-i8p7phno2y] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    min-height: 36px;
    padding: 6px 10px;
    border: 1px solid transparent;
    border-radius: var(--radius-sm);
    background: none;
    font-family: var(--font-sans);
    font-size: 13px;
    font-weight: 700;
    color: var(--text-secondary);
    text-align: left;
    cursor: pointer;
}

.dir-deck-idx-btn span[b-i8p7phno2y] {
    font-size: 11.5px;
    font-weight: 500;
    color: var(--text-secondary);
    font-variant-numeric: tabular-nums;
}

.dir-deck-idx-btn:hover[b-i8p7phno2y] { background: var(--bg-panel); }

.dir-deck-idx-btn[aria-current="true"][b-i8p7phno2y] {
    border-color: var(--border-soft);
    background: var(--bg-panel);
    color: var(--text-primary);
    box-shadow: var(--shadow-sm);
}

.dir-deck-col[b-i8p7phno2y] { min-width: 0; }

.dir-deck[b-i8p7phno2y] {
    position: relative;
    height: var(--dir-deck-h);
    overflow-y: auto;
    overscroll-behavior: contain;
    scroll-snap-type: y mandatory;
    border-radius: var(--radius-xl);
    background:
        radial-gradient(1200px 400px at 50% -10%, color-mix(in srgb, var(--brand-teal-primary) 18%, transparent), transparent 60%),
        var(--bg);
}

.dir-deck:focus-visible[b-i8p7phno2y] {
    outline: 2px solid var(--brand-teal);
    outline-offset: 2px;
}

.dir-deck-in[b-i8p7phno2y] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 28px;
    padding-block: max(16px, calc((var(--dir-deck-h) - var(--dir-carta-h)) / 2));
}

.dir-slot[b-i8p7phno2y] {
    display: flex;
    justify-content: center;
    flex: none;
    width: 100%;
    height: var(--dir-carta-h);
    scroll-snap-align: center;
}

.dir-deck-pista[b-i8p7phno2y] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
    padding: 8px 2px 0;
    font-size: 12px;
    color: var(--text-secondary);
}

.dir-deck-teclas[b-i8p7phno2y] {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
}

.dir-deck-pista .msr[b-i8p7phno2y] { font-size: 18px; }

.dir-deck-pista kbd[b-i8p7phno2y] {
    font-family: var(--font-mono);
    font-size: 11px;
    padding: 1px 5px;
    border: 1px solid var(--border-med);
    border-bottom-width: 2px;
    border-radius: 5px;
    background: var(--bg-cream);
    color: var(--text-secondary);
}

.dir-deck-pos[b-i8p7phno2y] {
    margin-left: auto;
    font-variant-numeric: tabular-nums;
}

.dir-lote[b-i8p7phno2y] {
    position: sticky;
    bottom: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-top: 12px;
    padding: 10px 14px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    background: var(--bg-panel);
    box-shadow: var(--shadow-md);
}

.dir-lote-n[b-i8p7phno2y] {
    font-size: 13.5px;
    color: var(--text-primary);
    font-variant-numeric: tabular-nums;
}

.dir-lote-fuera[b-i8p7phno2y],
.dir-lote-razon[b-i8p7phno2y] {
    font-size: 12.5px;
    color: var(--text-secondary);
}

.dir-lote-aviso[b-i8p7phno2y] {
    font-size: 12.5px;
    color: var(--warning-ink);
}

.dir-lote-sp[b-i8p7phno2y] { flex: 1; }

@media (max-width: 1023.98px) {
    .dir-deck-wrap[b-i8p7phno2y] {
        --dir-carta-h: 520px;
        --dir-deck-h: min(80vh, 600px);
        grid-template-columns: 1fr;
    }

    .dir-deck-idx[b-i8p7phno2y] {
        position: static;
        flex-direction: row;
        max-height: none;
        overflow-x: auto;
        padding: 0 0 4px;
    }

    .dir-deck-idx-btn[b-i8p7phno2y] { flex: none; }
}

@media (pointer: coarse) {
    .dir-deck-idx-btn[b-i8p7phno2y] { min-height: 44px; }
    .dir-lote[b-i8p7phno2y]  .ui-btn { min-height: 44px; }
    .dir-deck-teclas[b-i8p7phno2y] { display: none; }
}
/* /Components/Directorio/DirectorioLista.razor.rz.scp.css */
.dir-lista-h[b-kqkvq8s1lb] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    padding: 10px 14px;
    border-bottom: 1px solid var(--border-soft);
    font-size: 12.5px;
    color: var(--text-secondary);
}

.dir-lista-resumen[b-kqkvq8s1lb] {
    font-weight: 600;
    color: var(--text-primary);
}

.dir-lista-orden[b-kqkvq8s1lb] { margin-left: auto; }

.dir-vp[b-kqkvq8s1lb] {
    height: min(64vh, 640px);
    overflow-y: auto;
    position: relative;
    overscroll-behavior: contain;
}

.dir-fila[b-kqkvq8s1lb],
.dir-gh[b-kqkvq8s1lb] {
    height: 56px;
    box-sizing: border-box;
}

.dir-fila[b-kqkvq8s1lb] {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr) 20px;
    gap: 12px;
    align-items: center;
    width: 100%;
    padding: 0 14px;
    border: 0;
    border-bottom: 1px solid var(--border-soft);
    background: var(--bg-panel);
    font-family: var(--font-sans);
    text-align: left;
    color: var(--text-primary);
    cursor: pointer;
    transition: background .12s ease;
}

.dir-fila:hover[b-kqkvq8s1lb] { background: var(--bg-cream); }

.dir-fila:focus-visible[b-kqkvq8s1lb] {
    outline: 2px solid var(--brand-teal);
    outline-offset: -2px;
}

.dir-fila--activa[b-kqkvq8s1lb] {
    background: var(--bg-light-teal);
    box-shadow: inset 3px 0 0 var(--brand-teal-deep);
}

.dir-fila--activa:hover[b-kqkvq8s1lb] { background: var(--bg-light-teal); }

.dir-fila-texto[b-kqkvq8s1lb] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.dir-fila-nombre[b-kqkvq8s1lb] {
    font-size: 14px;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dir-fila-meta[b-kqkvq8s1lb] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: var(--text-secondary);
    white-space: nowrap;
    overflow: hidden;
}

.dir-fila-ir[b-kqkvq8s1lb] {
    font-size: 20px;
    color: var(--text-secondary);
}

.dir-gh[b-kqkvq8s1lb] {
    display: flex;
    align-items: flex-end;
    gap: 10px;
    padding: 0 14px 8px;
    border-bottom: 1px solid var(--border-soft);
    background: var(--bg-cream);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--text-secondary);
}

.dir-gh b[b-kqkvq8s1lb] {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
    color: var(--text-primary);
}

.dir-gh-n[b-kqkvq8s1lb] {
    margin-left: auto;
    font-variant-numeric: tabular-nums;
}

@media (max-width: 1023.98px) {
    .dir-vp[b-kqkvq8s1lb] { height: min(58vh, 520px); }
}

@media (prefers-reduced-motion: reduce) {
    .dir-fila[b-kqkvq8s1lb] { transition: none; }
}
/* /Components/Directorio/DirectorioResaltado.razor.rz.scp.css */
.dir-mark[b-qaq967hejd] {
    background: color-mix(in srgb, var(--brand-teal) 38%, transparent);
    color: inherit;
    border-radius: 3px;
    padding: 0 1px;
}
/* /Components/Equipos/AlumnoChip.razor.rz.scp.css */
/* === AlumnoChip — chip horizontal de alumno (modulo Equipos) === */

.al-chip[b-hnti95vfpj] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    padding: 6px 6px 6px 10px;
    background: var(--bg-cream);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}

.al-chip.draggable[b-hnti95vfpj] { cursor: grab; }

.al-chip:hover[b-hnti95vfpj] {
    background: var(--bg-panel);
    border-color: var(--border-med);
    box-shadow: var(--shadow-sm);
}

.al-chip.fijado[b-hnti95vfpj] {
    background: rgba(184, 134, 11, 0.06);
    border-color: rgba(184, 134, 11, 0.35);
}

/* Avatar con inicial; color sutil segun sexo (H/M/sin dato) */
.al-avatar[b-hnti95vfpj] {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.3px;
    flex-shrink: 0;
}

.al-avatar.sexo-h[b-hnti95vfpj] { background: rgba(45, 110, 163, 0.14); color: var(--info); }
.al-avatar.sexo-m[b-hnti95vfpj] { background: var(--cf-lenguajes-bg); color: var(--cf-lenguajes-ink); }
.al-avatar.sexo-x[b-hnti95vfpj] { background: var(--cream-deep); color: var(--carbon-4); }

.al-nombre[b-hnti95vfpj] {
    flex: 1;
    min-width: 0;
    font-size: 13px;
    font-weight: 500;
    color: var(--text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.al-prom[b-hnti95vfpj] {
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 700;
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
    border-radius: 999px;
    padding: 2px 7px;
    flex-shrink: 0;
}

/* Botones de accion del chip */
.al-btn[b-hnti95vfpj] {
    width: 30px;
    height: 30px;
    border: none;
    background: transparent;
    border-radius: var(--radius-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-muted);
    cursor: pointer;
    flex-shrink: 0;
    padding: 0;
    transition: background 0.15s ease, color 0.15s ease;
}

.al-btn:hover:not(:disabled)[b-hnti95vfpj] { background: var(--cream-deep); color: var(--text-primary); }
.al-btn:disabled[b-hnti95vfpj] { opacity: 0.45; cursor: default; }
.al-btn:focus-visible[b-hnti95vfpj] { outline: 2px solid var(--brand-teal-dark); outline-offset: 1px; }
.al-btn .material-symbols-rounded[b-hnti95vfpj] { font-size: 18px; }

/* Candado: relleno + acento dorado cuando fijado */
.al-lock.on[b-hnti95vfpj] { color: var(--pin-gold); }
.al-lock.on .material-symbols-rounded[b-hnti95vfpj] { font-variation-settings: 'FILL' 1; }
.al-lock.on:hover:not(:disabled)[b-hnti95vfpj] { color: var(--pin-gold); background: rgba(184, 134, 11, 0.12); }

/* Menu contextual (fallback movil de "Mover a...") */
.al-menu-wrap[b-hnti95vfpj] { position: relative; flex-shrink: 0; }

.al-backdrop[b-hnti95vfpj] {
    position: fixed;
    inset: 0;
    z-index: 1500;
    background: transparent;
}

.al-menu[b-hnti95vfpj] {
    position: absolute;
    right: 0;
    top: calc(100% + 4px);
    z-index: 1501;
    min-width: 220px;
    max-height: 300px;
    overflow-y: auto;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    padding: 6px;
    animation: al-menu-pop-b-hnti95vfpj 0.16s ease;
}

@keyframes al-menu-pop-b-hnti95vfpj {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
}

.al-menu-title[b-hnti95vfpj] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--text-muted);
    padding: 6px 8px 4px;
}

.al-menu-title .material-symbols-rounded[b-hnti95vfpj] { font-size: 14px; }

.al-menu-item[b-hnti95vfpj] {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    min-height: 38px;
    border: none;
    background: transparent;
    cursor: pointer;
    padding: 8px;
    border-radius: var(--radius-md);
    font-family: var(--font-sans);
    font-size: 13px;
    color: var(--text-primary);
    text-align: left;
    transition: background 0.15s ease;
}

.al-menu-item:hover[b-hnti95vfpj] { background: var(--bg-light-teal); }
.al-menu-item:focus-visible[b-hnti95vfpj] { outline: 2px solid var(--brand-teal-dark); outline-offset: -2px; }
.al-menu-item .material-symbols-rounded[b-hnti95vfpj] { font-size: 16px; color: var(--brand-teal-deep); flex-shrink: 0; }

.al-menu-txt[b-hnti95vfpj] {
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.al-menu-empty[b-hnti95vfpj] {
    font-size: 12px;
    color: var(--text-muted);
    padding: 6px 8px 8px;
}

.al-menu-sep[b-hnti95vfpj] {
    height: 1px;
    background: var(--border-soft);
    margin: 4px 6px;
}

/* Objetivos tactiles >=44px en pantallas touch */
@media (pointer: coarse) {
    .al-chip[b-hnti95vfpj] { padding-right: 4px; gap: 6px; }
    .al-btn[b-hnti95vfpj] { width: 44px; height: 44px; }
    .al-menu-item[b-hnti95vfpj] { min-height: 44px; }
}
/* /Components/Equipos/CapturaSexoModal.razor.rz.scp.css */
/* ============================================================
   CapturaSexoModal — helper 4.8 (tokens de tokens.css)
   Colores de sexo alineados con AlumnoChip/EquipoZona:
   H = --info, M = --cf-lenguajes, sin dato = --carbon-4.
   ============================================================ */

.csx-overlay[b-su8qkrd9i2] {
    position: fixed;
    inset: 0;
    background: rgba(20, 22, 25, 0.45);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 4000;
    padding: 16px;
    animation: csx-fade-b-su8qkrd9i2 0.15s ease;
}

@keyframes csx-fade-b-su8qkrd9i2 {
    from { opacity: 0; }
    to { opacity: 1; }
}

.csx-modal[b-su8qkrd9i2] {
    display: flex;
    flex-direction: column;
    width: min(94vw, 520px);
    max-height: min(86vh, 680px);
    background: var(--bg-panel);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
    font-family: var(--font-sans);
    color: var(--text-primary);
    animation: csx-pop-b-su8qkrd9i2 0.18s ease;
}

@keyframes csx-pop-b-su8qkrd9i2 {
    from { transform: scale(0.95); opacity: 0; }
    to { transform: scale(1); opacity: 1; }
}

.fill[b-su8qkrd9i2] { font-variation-settings: 'FILL' 1; }

/* === Head === */
.csx-head[b-su8qkrd9i2] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 18px 20px 0;
}

.csx-head-icon[b-su8qkrd9i2] {
    width: 40px;
    height: 40px;
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, var(--brand-teal), var(--brand-teal-dark));
    color: #FFFFFF;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(110, 198, 200, 0.3);
}

.csx-head-icon .material-symbols-rounded[b-su8qkrd9i2] { font-size: 22px; }

.csx-head-txt[b-su8qkrd9i2] { flex: 1; min-width: 0; }

.csx-head-txt h3[b-su8qkrd9i2] {
    margin: 0;
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    letter-spacing: -0.3px;
    color: var(--text-primary);
}

.csx-head-txt p[b-su8qkrd9i2] {
    margin: 2px 0 0;
    font-size: 12px;
    color: var(--text-secondary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.csx-x[b-su8qkrd9i2] {
    width: 32px;
    height: 32px;
    border: none;
    background: transparent;
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-muted);
    cursor: pointer;
    padding: 0;
    flex-shrink: 0;
    transition: background 0.15s ease, color 0.15s ease;
}

.csx-x:hover[b-su8qkrd9i2] { background: var(--cream-deep); color: var(--text-primary); }
.csx-x:focus-visible[b-su8qkrd9i2] { outline: 2px solid var(--brand-teal-dark); outline-offset: 1px; }
.csx-x .material-symbols-rounded[b-su8qkrd9i2] { font-size: 19px; }

/* === Progreso vivo === */
.csx-progreso[b-su8qkrd9i2] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 20px 0;
}

.csx-prog-track[b-su8qkrd9i2] {
    flex: 1;
    height: 6px;
    border-radius: 999px;
    background: var(--cream-deep);
    overflow: hidden;
}

.csx-prog-fill[b-su8qkrd9i2] {
    height: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--brand-teal-dark), var(--brand-teal-deep));
    transition: width 0.25s ease;
}

.csx-prog-fill.completo[b-su8qkrd9i2] { background: var(--success); }

.csx-prog-txt[b-su8qkrd9i2] {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    color: var(--text-secondary);
    white-space: nowrap;
}

.csx-prog-txt strong[b-su8qkrd9i2] { color: var(--text-primary); font-weight: 700; }
.csx-prog-txt.completo[b-su8qkrd9i2] { color: var(--success); font-weight: 600; }
.csx-prog-txt .material-symbols-rounded[b-su8qkrd9i2] { font-size: 16px; }

/* === Tools: buscador + filtro === */
.csx-tools[b-su8qkrd9i2] {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
    padding: 12px 20px;
    border-bottom: 1px solid var(--border-soft);
}

.csx-search[b-su8qkrd9i2] {
    flex: 1;
    min-width: 170px;
    position: relative;
    display: flex;
    align-items: center;
}

.csx-search > .material-symbols-rounded[b-su8qkrd9i2] {
    position: absolute;
    left: 10px;
    font-size: 17px;
    color: var(--text-muted);
    pointer-events: none;
}

.csx-search input[b-su8qkrd9i2] {
    width: 100%;
    min-height: 38px;
    padding: 8px 34px;
    border: 1px solid var(--border-med);
    border-radius: var(--radius-md);
    font-family: var(--font-sans);
    font-size: 13px;
    color: var(--text-primary);
    background: var(--bg-panel);
    box-sizing: border-box;
}

.csx-search input[b-su8qkrd9i2]::placeholder { color: var(--text-muted); }
.csx-search input:focus[b-su8qkrd9i2] { outline: none; border-color: var(--brand-teal-dark); box-shadow: 0 0 0 3px rgba(110, 198, 200, 0.2); }

.csx-clear[b-su8qkrd9i2] {
    position: absolute;
    right: 6px;
    width: 26px;
    height: 26px;
    border: none;
    background: transparent;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-muted);
    cursor: pointer;
    padding: 0;
    transition: background 0.15s ease, color 0.15s ease;
}

.csx-clear:hover[b-su8qkrd9i2] { background: var(--cream-deep); color: var(--text-primary); }
.csx-clear:focus-visible[b-su8qkrd9i2] { outline: 2px solid var(--brand-teal-dark); outline-offset: 1px; }
.csx-clear .material-symbols-rounded[b-su8qkrd9i2] { font-size: 15px; }

.csx-filtro[b-su8qkrd9i2] {
    display: inline-flex;
    background: var(--cream);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    padding: 3px;
    gap: 2px;
    flex-shrink: 0;
}

.csx-filtro button[b-su8qkrd9i2] {
    min-height: 32px;
    padding: 4px 12px;
    border: none;
    background: transparent;
    border-radius: var(--radius-sm);
    font-family: var(--font-sans);
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.csx-filtro button:hover[b-su8qkrd9i2] { color: var(--text-primary); }
.csx-filtro button.on[b-su8qkrd9i2] { background: var(--bg-panel); color: var(--brand-teal-deep); box-shadow: var(--shadow-sm); }
.csx-filtro button:focus-visible[b-su8qkrd9i2] { outline: 2px solid var(--brand-teal-dark); outline-offset: 1px; }

/* === Aviso de error (revert) === */
.csx-error[b-su8qkrd9i2] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 10px 20px 0;
    padding: 8px 12px;
    background: rgba(163, 45, 45, 0.07);
    border: 1px solid rgba(163, 45, 45, 0.25);
    border-radius: var(--radius-md);
    animation: csx-fade-b-su8qkrd9i2 0.15s ease;
}

.csx-error > .material-symbols-rounded[b-su8qkrd9i2] { font-size: 17px; color: var(--danger); flex-shrink: 0; }

.csx-error-txt[b-su8qkrd9i2] { flex: 1; font-size: 12px; color: var(--danger); line-height: 1.4; }

.csx-error-x[b-su8qkrd9i2] {
    width: 24px;
    height: 24px;
    border: none;
    background: transparent;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--danger);
    cursor: pointer;
    padding: 0;
    flex-shrink: 0;
    transition: background 0.15s ease;
}

.csx-error-x:hover[b-su8qkrd9i2] { background: rgba(163, 45, 45, 0.12); }
.csx-error-x .material-symbols-rounded[b-su8qkrd9i2] { font-size: 14px; }

/* === Lista scrolleable === */
.csx-list[b-su8qkrd9i2] {
    flex: 1;
    overflow-y: auto;
    padding: 8px 12px;
    min-height: 180px;
}

.csx-row[b-su8qkrd9i2] {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 52px;
    padding: 6px 8px;
    border-radius: var(--radius-md);
    transition: background 0.15s ease, opacity 0.15s ease;
}

.csx-row:hover[b-su8qkrd9i2] { background: var(--bg-cream); }
.csx-row.guardando[b-su8qkrd9i2] { opacity: 0.75; }

.csx-avatar[b-su8qkrd9i2] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 700;
    flex-shrink: 0;
    transition: background 0.2s ease, color 0.2s ease;
}

.csx-avatar.sexo-h[b-su8qkrd9i2] { background: rgba(45, 110, 163, 0.14); color: var(--info); }
.csx-avatar.sexo-m[b-su8qkrd9i2] { background: var(--cf-lenguajes-bg); color: var(--cf-lenguajes-ink); }
.csx-avatar.sexo-x[b-su8qkrd9i2] { background: var(--cream-deep); color: var(--carbon-4); }

.csx-nombre[b-su8qkrd9i2] {
    flex: 1;
    min-width: 0;
    font-size: 13px;
    font-weight: 500;
    color: var(--text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.csx-spin[b-su8qkrd9i2] {
    width: 14px;
    height: 14px;
    border: 2px solid rgba(110, 198, 200, 0.3);
    border-top-color: var(--brand-teal-deep);
    border-radius: 50%;
    animation: csx-girar-b-su8qkrd9i2 0.8s linear infinite;
    flex-shrink: 0;
}

.csx-spin.chica[b-su8qkrd9i2] { width: 12px; height: 12px; }

@keyframes csx-girar-b-su8qkrd9i2 {
    to { transform: rotate(360deg); }
}

/* === Segmented H / M / — === */
.csx-seg[b-su8qkrd9i2] {
    display: inline-flex;
    background: var(--cream);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    padding: 3px;
    gap: 2px;
    flex-shrink: 0;
}

.csx-seg button[b-su8qkrd9i2] {
    min-width: 40px;
    min-height: 32px;
    border: none;
    background: transparent;
    border-radius: var(--radius-sm);
    font-family: var(--font-sans);
    font-size: 12px;
    font-weight: 700;
    color: var(--text-secondary);
    cursor: pointer;
    padding: 0;
    transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.csx-seg button:hover:not(:disabled)[b-su8qkrd9i2] { background: var(--bg-panel); color: var(--text-primary); }
.csx-seg button:disabled[b-su8qkrd9i2] { cursor: default; opacity: 0.7; }
.csx-seg button:focus-visible[b-su8qkrd9i2] { outline: 2px solid var(--brand-teal-dark); outline-offset: 1px; }

/* estados activos (blanco sobre color: contraste AA) — el hover no los desviste */
.csx-seg button.on-h[b-su8qkrd9i2],
.csx-seg button.on-h:hover:not(:disabled)[b-su8qkrd9i2] { background: var(--info); color: #FFFFFF; box-shadow: var(--shadow-sm); }
.csx-seg button.on-m[b-su8qkrd9i2],
.csx-seg button.on-m:hover:not(:disabled)[b-su8qkrd9i2] { background: var(--cf-lenguajes); color: #FFFFFF; box-shadow: var(--shadow-sm); }
.csx-seg button.on-x[b-su8qkrd9i2],
.csx-seg button.on-x:hover:not(:disabled)[b-su8qkrd9i2] { background: var(--carbon-4); color: #FFFFFF; box-shadow: var(--shadow-sm); }

/* === Estados vacios === */
.csx-empty[b-su8qkrd9i2] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 36px 20px;
    text-align: center;
    color: var(--text-secondary);
}

.csx-empty .material-symbols-rounded[b-su8qkrd9i2] { font-size: 34px; color: var(--text-muted); }
.csx-empty.listo .material-symbols-rounded[b-su8qkrd9i2] { color: var(--success); }
.csx-empty p[b-su8qkrd9i2] { margin: 0; font-size: 13px; line-height: 1.5; max-width: 300px; }

.csx-link[b-su8qkrd9i2] {
    border: none;
    background: transparent;
    color: var(--brand-teal-deep);
    font-family: var(--font-sans);
    font-size: 13px;
    font-weight: 600;
    text-decoration: underline;
    cursor: pointer;
    padding: 4px 6px;
    border-radius: var(--radius-sm);
}

.csx-link:hover[b-su8qkrd9i2] { color: var(--brand-teal-dark); }
.csx-link:focus-visible[b-su8qkrd9i2] { outline: 2px solid var(--brand-teal-dark); outline-offset: 1px; }

/* === Footer === */
.csx-foot[b-su8qkrd9i2] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 20px 16px;
    border-top: 1px solid var(--border-soft);
}

.csx-foot-hint[b-su8qkrd9i2] {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 12px;
    color: var(--text-muted);
    min-width: 0;
}

.csx-btn[b-su8qkrd9i2] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 38px;
    padding: 8px 18px;
    border: none;
    border-radius: var(--radius-md);
    background: var(--brand-teal-primary);
    color: var(--text-primary);
    font-family: var(--font-sans);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: filter 0.15s ease;
}

.csx-btn:hover[b-su8qkrd9i2] { filter: brightness(0.92); }
.csx-btn:active[b-su8qkrd9i2] { transform: translateY(1px); }
.csx-btn:focus-visible[b-su8qkrd9i2] { outline: 2px solid var(--brand-teal-dark); outline-offset: 2px; }
.csx-btn .material-symbols-rounded[b-su8qkrd9i2] { font-size: 17px; }

/* === Responsive: bottom sheet en movil === */
@media (max-width: 768px) {
    .csx-overlay[b-su8qkrd9i2] { padding: 0; align-items: flex-end; }

    .csx-modal[b-su8qkrd9i2] {
        width: 100%;
        max-height: 92vh;
        border-radius: var(--radius-xl) var(--radius-xl) 0 0;
    }

    .csx-head[b-su8qkrd9i2] { padding: 14px 14px 0; }
    .csx-progreso[b-su8qkrd9i2] { padding: 12px 14px 0; }
    .csx-tools[b-su8qkrd9i2] { padding: 10px 14px; }
    .csx-error[b-su8qkrd9i2] { margin: 10px 14px 0; }
    .csx-list[b-su8qkrd9i2] { padding: 6px 8px; }
    .csx-foot[b-su8qkrd9i2] { padding: 10px 14px 14px; }

    /* objetivo tactil 44px en captura rapida */
    .csx-seg button[b-su8qkrd9i2] { min-width: 44px; min-height: 36px; }
}

/* Objetivos tactiles >=44px en pantallas touch (independiente del ancho) */
@media (pointer: coarse) {
    .csx-x[b-su8qkrd9i2] { width: 44px; height: 44px; }
    .csx-clear[b-su8qkrd9i2] { width: 36px; height: 36px; }
    .csx-search input[b-su8qkrd9i2] { min-height: 44px; padding-right: 44px; }
    .csx-filtro button[b-su8qkrd9i2] { min-height: 38px; }
    .csx-seg button[b-su8qkrd9i2] { min-width: 44px; min-height: 38px; }
    .csx-btn[b-su8qkrd9i2] { min-height: 44px; }
    .csx-row[b-su8qkrd9i2] { min-height: 56px; }
}
/* /Components/Equipos/EquipoZona.razor.rz.scp.css */
/* === EquipoZona — card de equipo (modulo Equipos) === */

.ez-card[b-w5trvikxlk] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
    display: flex;
    flex-direction: column;
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.ez-card:hover[b-w5trvikxlk] { box-shadow: var(--shadow-md); }

/* --- Header --- */
.ez-head[b-w5trvikxlk] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 14px 14px 10px;
    border-bottom: 1px solid var(--border-soft);
}

.ez-titulo[b-w5trvikxlk] {
    display: flex;
    align-items: center;
    gap: 4px;
    min-height: 30px;
}

.ez-nombre[b-w5trvikxlk] {
    margin: 0;
    font-family: var(--font-serif);
    font-size: 16px;
    font-weight: 600;
    letter-spacing: -0.2px;
    color: var(--text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

.ez-icon-btn[b-w5trvikxlk] {
    width: 28px;
    height: 28px;
    border: none;
    background: transparent;
    border-radius: var(--radius-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-muted);
    cursor: pointer;
    padding: 0;
    flex-shrink: 0;
    transition: background 0.15s ease, color 0.15s ease, opacity 0.15s ease;
}

.ez-icon-btn:hover:not(:disabled)[b-w5trvikxlk] { background: var(--cream-deep); color: var(--text-primary); }
.ez-icon-btn:disabled[b-w5trvikxlk] { opacity: 0.45; cursor: default; }
.ez-icon-btn:focus-visible[b-w5trvikxlk] { outline: 2px solid var(--brand-teal-dark); outline-offset: 1px; }
.ez-icon-btn .material-symbols-rounded[b-w5trvikxlk] { font-size: 17px; }
.ez-icon-btn.ok[b-w5trvikxlk] { color: var(--success); }
.ez-icon-btn.ok:hover:not(:disabled)[b-w5trvikxlk] { background: rgba(29, 158, 117, 0.12); color: var(--success); }

/* Boton editar discreto hasta pasar el mouse por la card */
.ez-edit-btn[b-w5trvikxlk] { opacity: 0.35; }
.ez-card:hover .ez-edit-btn[b-w5trvikxlk],
.ez-edit-btn:focus-visible[b-w5trvikxlk] { opacity: 1; }

/* En touch no hay hover: el boton editar queda siempre visible */
@media (hover: none) {
    .ez-edit-btn[b-w5trvikxlk] { opacity: 1; }
}

/* --- Edicion inline del nombre --- */
.ez-edit[b-w5trvikxlk] {
    display: flex;
    align-items: center;
    gap: 4px;
    min-height: 30px;
}

.ez-edit-input[b-w5trvikxlk] {
    flex: 1;
    min-width: 0;
    padding: 5px 10px;
    border: 1px solid var(--brand-teal-dark);
    border-radius: var(--radius-md);
    font-family: var(--font-sans);
    font-size: 13px;
    color: var(--text-primary);
    background: var(--bg-panel);
}

.ez-edit-input:focus[b-w5trvikxlk] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(110, 198, 200, 0.25);
}

/* --- Badges de estadisticas --- */
.ez-badges[b-w5trvikxlk] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.ez-badge[b-w5trvikxlk] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 11px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 999px;
    background: var(--cream);
    color: var(--text-secondary);
    line-height: 1.6;
}

.ez-badge .material-symbols-rounded[b-w5trvikxlk] { font-size: 13px; }
.ez-badge.h[b-w5trvikxlk] { background: rgba(45, 110, 163, 0.12); color: var(--info); }
.ez-badge.m[b-w5trvikxlk] { background: var(--cf-lenguajes-bg); color: var(--cf-lenguajes-ink); }
.ez-badge.x[b-w5trvikxlk] { background: var(--cream-deep); color: var(--carbon-4); }
.ez-badge.prom[b-w5trvikxlk] { background: var(--bg-light-teal); color: var(--brand-teal-deep); font-family: var(--font-mono); }

/* --- Cuerpo / zona de drop --- */
.ez-body[b-w5trvikxlk] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 12px;
    flex: 1;
    min-height: 64px;
    border-radius: 0 0 var(--radius-xl) var(--radius-xl);
}

.ez-vacio[b-w5trvikxlk] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 18px 10px;
    font-size: 12px;
    color: var(--text-muted);
    border: 1.5px dashed var(--border-med);
    border-radius: var(--radius-lg);
}

.ez-vacio .material-symbols-rounded[b-w5trvikxlk] { font-size: 16px; }

/* --- Highlight de la zona bajo el puntero durante el DnD (equipos-dnd.js) --- */
.ez-body.eq-dropzone.drop-activa[b-w5trvikxlk] {
    background: var(--bg-light-teal);
    outline: 2px dashed var(--brand-teal-deep);
    outline-offset: -4px;
}

/* El chip que se esta arrastrando queda atenuado en su hueco original */
.ez-body[b-w5trvikxlk]  .al-chip.al-chip-arrastrando {
    opacity: 0.35;
}

/* Objetivos tactiles >=44px en pantallas touch */
@media (pointer: coarse) {
    .ez-icon-btn[b-w5trvikxlk] { width: 44px; height: 44px; }
    .ez-edit-input[b-w5trvikxlk] { min-height: 44px; }
}
/* /Components/Equipos/EvaluarEquipoCard.razor.rz.scp.css */
/* ============================================================
   EvaluarEquipoCard — mismo lenguaje visual que la botonera
   individual de Evaluar (grade-btn / selected / unreviewed /
   inactive). Se replican las reglas porque el CSS scoped de
   Evaluar.razor no cruza al componente hijo; los breakpoints
   espejean los de Evaluar.razor.css (1000 / 768 / 550).
   Ambar de "ajustadas": fondo/borde #F39C12 translucido,
   tinta AA #8A6D1E (misma familia que badge-pending).
   ============================================================ */

.eeq-card[b-8ygrq5ifu0] {
    background: white;
    border-radius: 12px;
    border: 1.5px solid #EBEBEB;
    padding: 8px 18px;
    margin-bottom: 8px;
}

/* Encabezado del equipo (toda la fila expande/colapsa) */
.eeq-head[b-8ygrq5ifu0] {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    flex-wrap: wrap;
    border-radius: 8px;
}
.eeq-head:focus-visible[b-8ygrq5ifu0] {
    outline: 2px solid #4BA8AA;
    outline-offset: 2px;
}
.eeq-head-left[b-8ygrq5ifu0] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1;
    min-width: 0;
}
.eeq-chevron[b-8ygrq5ifu0] {
    font-size: 20px;
    color: #999;
    transition: transform 0.2s ease, color 0.15s ease;
    flex-shrink: 0;
}
.eeq-head:hover .eeq-chevron[b-8ygrq5ifu0] { color: #555; }
.eeq-chevron-open[b-8ygrq5ifu0] { transform: rotate(180deg); }
.eeq-nombre[b-8ygrq5ifu0] {
    font-size: 14px;
    font-weight: 600;
    color: #333;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.eeq-count[b-8ygrq5ifu0] {
    font-size: 11px;
    color: var(--text-secondary, #5C6068);
    white-space: nowrap;
}

/* Badge sutil: integrantes con nota distinta a la del equipo */
.eeq-badge-ajustadas[b-8ygrq5ifu0] {
    font-size: 10px;
    padding: 2px 8px;
    border-radius: 10px;
    font-weight: 500;
    background: rgba(243, 156, 18, 0.1);
    color: #8A6D1E;
    border: 1px solid rgba(243, 156, 18, 0.25);
    white-space: nowrap;
}

/* Chip informativo: el equipo quedo mixto (notas guardadas distintas).
   Teal suave (familia "graded") para comunicar "SI hay notas", no una
   advertencia. Aparece solo con NotaEquipo=null y notas visibles mixtas. */
.eeq-badge-mixtas[b-8ygrq5ifu0] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 10px;
    padding: 2px 8px 2px 6px;
    border-radius: 10px;
    font-weight: 500;
    background: rgba(75, 168, 170, 0.1);
    color: #33787A;
    border: 1px solid rgba(75, 168, 170, 0.28);
    white-space: nowrap;
}
.eeq-mixtas-icon[b-8ygrq5ifu0] { font-size: 13px; }

/* Botonera del equipo */
.eeq-head-grades[b-8ygrq5ifu0] {
    display: flex;
    gap: 6px;
    flex-shrink: 0;
    overflow-x: auto;
}

/* Aviso inline de overrides */
.eeq-aviso[b-8ygrq5ifu0] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 8px;
    padding: 8px 12px;
    border-radius: 10px;
    background: rgba(243, 156, 18, 0.06);
    border: 1px solid rgba(243, 156, 18, 0.2);
    flex-wrap: wrap;
    animation: eeq-fade-in-b-8ygrq5ifu0 0.2s ease;
}
@keyframes eeq-fade-in-b-8ygrq5ifu0 {
    from { opacity: 0; transform: translateY(-2px); }
    to   { opacity: 1; transform: translateY(0); }
}
.eeq-aviso-icon[b-8ygrq5ifu0] { font-size: 16px; color: #C99A2E; }
.eeq-aviso-txt[b-8ygrq5ifu0] { font-size: 12px; color: #8A6D1E; flex: 1; min-width: 0; }
.eeq-aviso-btn[b-8ygrq5ifu0] {
    padding: 5px 12px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    background: rgba(243, 156, 18, 0.12);
    border: 1px solid rgba(243, 156, 18, 0.35);
    color: #8A6D1E;
    font-family: inherit;
    white-space: nowrap;
    transition: background 0.15s ease, border-color 0.15s ease;
}
.eeq-aviso-btn:hover[b-8ygrq5ifu0] { background: rgba(243, 156, 18, 0.22); border-color: rgba(243, 156, 18, 0.5); }
.eeq-aviso-btn:focus-visible[b-8ygrq5ifu0] { outline: 2px solid #C99A2E; outline-offset: 2px; }

/* Integrantes expandidos */
.eeq-integrantes[b-8ygrq5ifu0] {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 0.5px solid #F0F0F0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

/* Estado vacio: equipo sin integrantes visibles */
.eeq-vacio[b-8ygrq5ifu0] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 0 6px 28px;
    font-size: 12px;
    color: var(--text-secondary, #5C6068);
}
.eeq-vacio .material-icons[b-8ygrq5ifu0] { font-size: 16px; color: #B4B2A9; flex-shrink: 0; }

.eeq-int-row[b-8ygrq5ifu0] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 4px 0 4px 28px;
    flex-wrap: wrap;
}
.eeq-int-name[b-8ygrq5ifu0] {
    flex: 1;
    min-width: 120px;
    font-size: 13px;
    color: #444;
    display: flex;
    align-items: center;
    gap: 8px;
}
.eeq-int-ajustada[b-8ygrq5ifu0] {
    font-size: 10px;
    padding: 2px 8px;
    border-radius: 10px;
    font-weight: 500;
    background: rgba(243, 156, 18, 0.1);
    color: #8A6D1E;
    border: 1px solid rgba(243, 156, 18, 0.25);
    white-space: nowrap;
}
.eeq-int-grades[b-8ygrq5ifu0] {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
    overflow-x: auto;
}
.eeq-undo[b-8ygrq5ifu0] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4px;
    border: none;
    background: transparent;
    border-radius: 6px;
    color: #8A6D1E;
    cursor: pointer;
    flex-shrink: 0;
    transition: background 0.15s ease;
}
.eeq-undo .material-icons[b-8ygrq5ifu0] { font-size: 18px; }
.eeq-undo:hover[b-8ygrq5ifu0] { background: rgba(243, 156, 18, 0.1); }
.eeq-undo:focus-visible[b-8ygrq5ifu0] { outline: 2px solid #C99A2E; outline-offset: 2px; }

/* === Botonera 5-10 (mismo lenguaje que Evaluar individual) === */
.grade-btn[b-8ygrq5ifu0] {
    width: 40px;
    height: 28px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 13px;
    transition: all 0.15s;
    user-select: none;
    flex-shrink: 0;
}
.grade-inactive[b-8ygrq5ifu0] {
    background: #FAFAFA;
    color: #CCC;
    border: 0.5px solid #EAEAEA;
}
.grade-inactive:hover[b-8ygrq5ifu0] { border-color: #BBB; color: #999; }
.grade-selected[b-8ygrq5ifu0] {
    background: rgba(75, 168, 170, 0.15);
    color: #4BA8AA;
    font-weight: 500;
    border: 1.5px solid #4BA8AA;
}
.grade-unreviewed[b-8ygrq5ifu0] {
    background: rgba(243, 156, 18, 0.1);
    color: #C99A2E;
    font-weight: 500;
    border: 1px solid rgba(243, 156, 18, 0.3);
}

/* ===== Responsive: espejo de los breakpoints de Evaluar ===== */
@media (max-width: 1000px) {
    .grade-btn[b-8ygrq5ifu0] { width: 36px; height: 34px; font-size: 12px; }
}
@media (max-width: 768px) {
    .grade-btn[b-8ygrq5ifu0] { width: 34px; height: 32px; font-size: 12px; }
    .eeq-card[b-8ygrq5ifu0] { padding: 10px 14px; }
    .eeq-head-grades[b-8ygrq5ifu0], .eeq-int-grades[b-8ygrq5ifu0] {
        width: 100%;
        gap: 4px;
        padding-bottom: 4px;
    }
    .eeq-int-row[b-8ygrq5ifu0] { padding-left: 12px; }
    .eeq-vacio[b-8ygrq5ifu0] { padding-left: 12px; }
}
@media (max-width: 550px) {
    .eeq-card[b-8ygrq5ifu0] { padding: 8px 12px; }
    .grade-btn[b-8ygrq5ifu0] { width: 32px; height: 30px; font-size: 11px; border-radius: 6px; }
    .eeq-head-grades[b-8ygrq5ifu0], .eeq-int-grades[b-8ygrq5ifu0] { gap: 3px; }
}

/* ===== Touch: targets de 44px cuando el puntero es coarse ===== */
@media (pointer: coarse) {
    .eeq-head[b-8ygrq5ifu0] { min-height: 44px; }
    .grade-btn[b-8ygrq5ifu0] { min-width: 44px; min-height: 44px; }
    .eeq-head-grades[b-8ygrq5ifu0], .eeq-int-grades[b-8ygrq5ifu0] { gap: 6px; }
    .eeq-undo[b-8ygrq5ifu0] { min-width: 44px; min-height: 44px; }
    .eeq-aviso-btn[b-8ygrq5ifu0] { min-height: 44px; padding: 8px 16px; }
}
/* /Components/Escuela/ContextoEscuelaGate.razor.rz.scp.css */
/* FILTROS-ESCUELA-TURNO · compuerta de contexto de escuela. Tokens de wwwroot/css/tokens.css. */
.ctx-gate[b-dt03176ll4] {
    display: flex;
    justify-content: center;
    padding: 48px 16px;
}

.ctx-gate-card[b-dt03176ll4] {
    width: 100%;
    max-width: 520px;
    padding: 28px 24px;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-md, 0 4px 16px rgba(0, 0, 0, 0.06));
    text-align: center;
}

.ctx-gate-ic[b-dt03176ll4] {
    font-size: 32px;
    color: var(--brand-teal-deep);
}

.ctx-gate-title[b-dt03176ll4] {
    margin: 8px 0 6px;
    font-family: var(--font-serif);
    font-size: 22px;
    color: var(--text-primary);
}

.ctx-gate-sub[b-dt03176ll4] {
    margin: 0 0 18px;
    font-size: 14px;
    line-height: 1.5;
    color: var(--text-secondary);
}

.ctx-gate-list[b-dt03176ll4] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.ctx-gate-opt[b-dt03176ll4] {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    min-height: 48px;
    padding: 10px 14px;
    background: var(--bg-cream);
    border: 1px solid var(--border-med);
    border-radius: var(--radius-lg);
    color: var(--text-primary);
    font: inherit;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
}

.ctx-gate-opt:hover:not(:disabled)[b-dt03176ll4] {
    border-color: var(--brand-teal-dark);
    background: var(--bg-light-teal);
}

.ctx-gate-opt:focus-visible[b-dt03176ll4] {
    outline: 2px solid var(--brand-teal);
    outline-offset: 2px;
}

.ctx-gate-opt:disabled[b-dt03176ll4] {
    opacity: 0.6;
    cursor: progress;
}

.ctx-gate-name[b-dt03176ll4] {
    flex: 1;
    white-space: normal;
    overflow-wrap: break-word;
}

.ctx-gate-error[b-dt03176ll4] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin: 14px 0 0;
    font-size: 13px;
    color: var(--danger, #B42318);
}

.ctx-gate-cargando[b-dt03176ll4] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 64px 16px;
    color: var(--text-secondary);
    font-size: 14px;
}

.ctx-gate-spin[b-dt03176ll4] {
    width: 16px;
    height: 16px;
    border: 2px solid var(--border-med);
    border-top-color: var(--brand-teal-deep);
    border-radius: 50%;
    animation: ctx-gate-giro-b-dt03176ll4 0.8s linear infinite;
}

@keyframes ctx-gate-giro-b-dt03176ll4 {
    to { transform: rotate(360deg); }
}

.ctx-gate-errwrap[b-dt03176ll4] {
    max-width: 720px;
    margin: 32px auto;
    padding: 0 16px;
}
/* /Components/Escuela/ErrorContextoEscuela.razor.rz.scp.css */
/* FILTROS-ESCUELA-TURNO · error de contexto de escuela con reintento. */
.ctx-err[b-5enohdge85] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
    margin: 0 0 16px;
    padding: 14px 16px;
    background: var(--bg-panel);
    border: 1px solid var(--border-med);
    border-left: 4px solid var(--danger, #B42318);
    border-radius: var(--radius-lg);
}

.ctx-err > .msr[b-5enohdge85] {
    font-size: 22px;
    color: var(--danger, #B42318);
}

.ctx-err-txt[b-5enohdge85] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
    min-width: 200px;
    font-size: 13.5px;
    color: var(--text-secondary);
}

.ctx-err-txt b[b-5enohdge85] {
    color: var(--text-primary);
}

.ctx-err-btn[b-5enohdge85] {
    min-height: 44px;
    padding: 0 18px;
    border: 1px solid var(--brand-teal-dark);
    border-radius: var(--radius-md);
    background: var(--bg-light-teal);
    color: var(--text-primary);
    font: inherit;
    font-weight: 600;
    cursor: pointer;
}

.ctx-err-btn:focus-visible[b-5enohdge85] {
    outline: 2px solid var(--brand-teal);
    outline-offset: 2px;
}

.ctx-err-btn:disabled[b-5enohdge85] {
    opacity: 0.6;
    cursor: progress;
}
/* /Components/Escuela/SelectorCicloEscolar.razor.rz.scp.css */
.grp-ciclo-hint[b-yfrx04bfnh]{font-size:12.5px;color:var(--text-secondary);margin-top:6px;line-height:1.45}
.grp-ciclo-chip[b-yfrx04bfnh]{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700;
  text-transform:uppercase;letter-spacing:.3px;background:rgba(186,117,23,.14);color:var(--warning-ink);margin-bottom:6px}
.grp-ciclo-chip .msr[b-yfrx04bfnh]{font-size:13px}
.grp-ciclo-otro[b-yfrx04bfnh]{margin-top:10px;padding:12px 13px;background:var(--bg-cream);border:1px solid var(--border-soft);border-radius:var(--radius-md)}
.grp-ciclo-otro .mice-label[b-yfrx04bfnh]{margin-bottom:5px}
.grp-ciclo-anio[b-yfrx04bfnh]{max-width:150px}
.grp-ciclo-prev[b-yfrx04bfnh]{font-family:var(--font-mono);font-size:13px;font-weight:500;color:var(--text-primary);
  background:#fff;border:1px solid var(--border-soft);border-radius:var(--radius-sm);padding:3px 8px;margin-left:8px}
.grp-ciclo-sug[b-yfrx04bfnh]{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.grp-sug-btn[b-yfrx04bfnh]{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;font-size:12.5px;font-weight:600;font-family:inherit;
  background:#fff;border:1px solid var(--border-med);color:var(--text-primary);border-radius:var(--radius-md);cursor:pointer}
.grp-sug-btn .msr[b-yfrx04bfnh]{font-size:16px;color:var(--brand-teal-deep)}
.grp-sug-btn:hover[b-yfrx04bfnh]{background:var(--bg-light-teal);border-color:var(--brand-teal)}
.grp-sug-btn:focus-visible[b-yfrx04bfnh]{outline:2px solid var(--brand-teal);outline-offset:2px}
.grp-ciclo-legend[b-yfrx04bfnh]{font-size:12px;color:var(--text-secondary);margin-top:2px}
@media (pointer:coarse){
  .grp-ciclo-select[b-yfrx04bfnh],.grp-ciclo-anio[b-yfrx04bfnh]{min-height:44px}
  .grp-sug-btn[b-yfrx04bfnh]{min-height:44px}
}
/* /Components/EvaluacionIndividualPanel.razor.rz.scp.css */
/* ════════════════════════════════════════════════════════════════════════
   Evaluación individual — panel lateral (prefijo eip-)
   Sistema de diseño v2: tokens, Fraunces para números, gradiente teal.
   ════════════════════════════════════════════════════════════════════════ */

.eip-overlay[b-e7m3whincx] {
    position: fixed;
    inset: 0;
    background: rgba(26, 28, 31, 0.45);
    backdrop-filter: blur(2px);
    z-index: 1099;
    animation: eip-fade-in-b-e7m3whincx 0.18s ease;
}

@keyframes eip-fade-in-b-e7m3whincx { from { opacity: 0; } to { opacity: 1; } }

.eip-panel[b-e7m3whincx] {
    position: fixed;
    top: 0; right: 0; bottom: 0;
    width: 480px;
    background: var(--bg);
    z-index: 1100;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    box-shadow: -16px 0 40px rgba(26, 28, 31, 0.18);
    font-family: var(--font-sans);
    color: var(--text-primary);
    animation: eip-slide-in-b-e7m3whincx 0.28s cubic-bezier(0.32, 0.72, 0.32, 1);
}

@keyframes eip-slide-in-b-e7m3whincx {
    from { transform: translateX(100%); }
    to   { transform: translateX(0); }
}

/* ── HEADER ──────────────────────────────────────────────────────── */
/* Header light theme — fondo crema, texto oscuro (matchea Mis Clases / Expediente). */
.eip-header[b-e7m3whincx] {
    background: var(--cream, #F4F0E6);
    padding: 16px 20px 18px;
    display: grid;
    grid-template-columns: 36px 44px 1fr auto;
    align-items: center;
    gap: 12px;
    color: var(--ink, #1A1D22);
    flex-shrink: 0;
    border-bottom: 1px solid var(--line, #E8E2D2);
}

.eip-close[b-e7m3whincx] {
    width: 36px; height: 36px;
    border-radius: 10px;
    background: rgba(0, 0, 0, 0.04);
    border: 1px solid rgba(0, 0, 0, 0.08);
    color: var(--ink-2, #4A4F58);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s ease;
    padding: 0;
}

.eip-close:hover[b-e7m3whincx] { background: rgba(0, 0, 0, 0.07); }
.eip-close .material-symbols-rounded[b-e7m3whincx] { font-size: 20px; }

.eip-avatar[b-e7m3whincx] {
    width: 44px; height: 44px;
    border-radius: 12px;
    background: linear-gradient(135deg, #6EC6C8, #2E8B92);
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-serif);
    font-size: 16px;
    font-weight: 600;
    color: #FFFFFF;
    letter-spacing: -0.3px;
    box-shadow: 0 4px 12px rgba(46, 139, 146, 0.25);
}

.eip-id[b-e7m3whincx] {
    min-width: 0;
}

.eip-eyebrow[b-e7m3whincx] {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: var(--teal-deep, #2E8B92);
    font-weight: 700;
    margin-bottom: 2px;
}

.eip-name[b-e7m3whincx] {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    color: var(--ink, #1A1D22);
    letter-spacing: -0.2px;
    line-height: 1.15;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.eip-promedio[b-e7m3whincx] {
    text-align: center;
    background: var(--paper, #FFFFFF);
    border: 1px solid var(--line, #E8E2D2);
    border-radius: 12px;
    padding: 6px 14px 7px;
    flex-shrink: 0;
    min-width: 64px;
    box-shadow: 0 1px 2px rgba(20, 22, 25, 0.04);
}

.eip-promedio-value[b-e7m3whincx] {
    font-family: var(--font-serif);
    font-size: 24px;
    font-weight: 600;
    color: var(--teal-deep, #2E8B92);
    line-height: 1;
    letter-spacing: -0.5px;
}

.eip-promedio-label[b-e7m3whincx] {
    font-size: 9.5px;
    color: var(--ink-3, #7C828B);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: 3px;
    font-weight: 600;
}

/* ── BODY ────────────────────────────────────────────────────────── */
.eip-body[b-e7m3whincx] {
    flex: 1;
    overflow-y: auto;
    padding: 18px 18px 32px;
    background: var(--bg);
}

.eip-body[b-e7m3whincx]::-webkit-scrollbar { width: 8px; }
.eip-body[b-e7m3whincx]::-webkit-scrollbar-thumb {
    background: #C7C0B1;
    border-radius: 4px;
    border: 2px solid transparent;
    background-clip: padding-box;
}

/* ── LOADING ─────────────────────────────────────────────────────── */
.eip-loading[b-e7m3whincx] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 80px 20px;
    gap: 14px;
    color: var(--text-muted);
    font-size: 13px;
}

.eip-spin[b-e7m3whincx] {
    font-size: 32px !important;
    color: var(--brand-teal);
    animation: eip-rotate-b-e7m3whincx 1s linear infinite;
}

@keyframes eip-rotate-b-e7m3whincx { to { transform: rotate(360deg); } }

/* ── DONUTS ──────────────────────────────────────────────────────── */
.eip-donuts[b-e7m3whincx] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-bottom: 12px;
}

.eip-donut-card[b-e7m3whincx] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: 14px;
    padding: 14px;
    display: flex;
    align-items: center;
    gap: 12px;
    box-shadow: var(--shadow-sm);
    transition: border-color 0.15s ease;
}

.eip-donut-card:hover[b-e7m3whincx] { border-color: var(--brand-teal); }

.eip-donut-wrap[b-e7m3whincx] {
    position: relative;
    width: 64px; height: 64px;
    flex-shrink: 0;
}

.eip-donut[b-e7m3whincx] {
    width: 64px; height: 64px;
    transform: rotate(-90deg);
}

.eip-donut-pct[b-e7m3whincx] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-serif);
    font-size: 16px;
    font-weight: 600;
    color: var(--text-primary);
    letter-spacing: -0.4px;
}

.eip-donut-pct span[b-e7m3whincx] {
    font-size: 9px;
    color: var(--text-muted);
    margin-left: 1px;
    margin-top: 4px;
    font-weight: 500;
}

.eip-donut-info[b-e7m3whincx] {
    min-width: 0;
    flex: 1;
}

.eip-donut-title[b-e7m3whincx] {
    font-size: 11px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 700;
    margin-bottom: 6px;
}

.eip-donut-detail[b-e7m3whincx] {
    font-size: 11px;
    color: var(--text-secondary);
    line-height: 1.5;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 8px;
}

.eip-dot[b-e7m3whincx] {
    display: inline-block;
    width: 6px; height: 6px;
    border-radius: 50%;
    margin-right: 1px;
}

.eip-dot-teal[b-e7m3whincx]    { background: var(--brand-teal); }
.eip-dot-amber[b-e7m3whincx]   { background: var(--warning); }
.eip-dot-success[b-e7m3whincx] { background: var(--success); }
.eip-dot-danger[b-e7m3whincx]  { background: var(--danger); }

/* ── METRICS (4 tiles) ───────────────────────────────────────────── */
.eip-metrics[b-e7m3whincx] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
    margin-bottom: 18px;
}

.eip-metric[b-e7m3whincx] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: 12px;
    padding: 10px 8px 9px;
    text-align: center;
    transition: transform 0.15s ease;
    cursor: default;
    position: relative;
    overflow: hidden;
}

.eip-metric:hover[b-e7m3whincx] { transform: translateY(-1px); }

.eip-metric-icon[b-e7m3whincx] {
    width: 28px; height: 28px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #FFFFFF;
    margin-bottom: 5px;
}

.eip-metric-icon .material-symbols-rounded[b-e7m3whincx] { font-size: 16px !important; }

.eip-metric-num[b-e7m3whincx] {
    font-family: var(--font-serif);
    font-size: 20px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: -0.4px;
    color: var(--text-primary);
}

.eip-metric-lbl[b-e7m3whincx] {
    font-size: 9.5px;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    margin-top: 3px;
    color: var(--text-muted);
    font-weight: 700;
}

.eip-metric-teal[b-e7m3whincx]   { background: linear-gradient(180deg, #E8F4F8 0%, var(--bg-panel) 70%); border-color: rgba(110, 198, 200, 0.3); }
.eip-metric-teal   .eip-metric-icon[b-e7m3whincx] { background: linear-gradient(135deg, var(--brand-teal), var(--brand-teal-dark)); }

.eip-metric-amber[b-e7m3whincx]  { background: linear-gradient(180deg, #FEF3C7 0%, var(--bg-panel) 70%); border-color: rgba(186, 117, 23, 0.3); }
.eip-metric-amber  .eip-metric-icon[b-e7m3whincx] { background: linear-gradient(135deg, #F59E0B, #D97706); }

.eip-metric-violet[b-e7m3whincx] { background: linear-gradient(180deg, #EDE9FE 0%, var(--bg-panel) 70%); border-color: rgba(124, 58, 237, 0.3); }
.eip-metric-violet .eip-metric-icon[b-e7m3whincx] { background: linear-gradient(135deg, #8B5CF6, #6D28D9); }

.eip-metric-danger[b-e7m3whincx] { background: linear-gradient(180deg, #FEE2E2 0%, var(--bg-panel) 70%); border-color: rgba(163, 45, 45, 0.3); }
.eip-metric-danger .eip-metric-icon[b-e7m3whincx] { background: linear-gradient(135deg, #DC2626, #991B1B); }

/* ── SECTION LABEL ───────────────────────────────────────────────── */
.eip-section-label[b-e7m3whincx] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.7px;
    margin: 4px 2px 10px;
}

.eip-section-label .material-symbols-rounded[b-e7m3whincx] {
    font-size: 14px !important;
    color: var(--brand-teal);
}

/* ── CRITERIO ────────────────────────────────────────────────────── */
.eip-criterio[b-e7m3whincx] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: 12px;
    margin-bottom: 10px;
    overflow: hidden;
}

.eip-criterio-head[b-e7m3whincx] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px 14px;
    background: linear-gradient(180deg, var(--bg-cream) 0%, var(--bg-panel) 100%);
    border-bottom: 1px solid var(--border-soft);
}

.eip-criterio-name[b-e7m3whincx] {
    flex: 1;
    min-width: 0;
    font-family: var(--font-serif);
    font-size: 13.5px;
    font-weight: 600;
    color: var(--text-primary);
    letter-spacing: -0.1px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    line-height: 1.25;
}

.eip-criterio-badges[b-e7m3whincx] {
    display: flex;
    gap: 5px;
    flex-shrink: 0;
}

.eip-badge[b-e7m3whincx] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 10.5px;
    font-weight: 700;
    padding: 3px 8px;
    border-radius: 8px;
    letter-spacing: 0;
}

.eip-badge .material-symbols-rounded[b-e7m3whincx] { font-size: 12px !important; }

.eip-badge-teal[b-e7m3whincx] {
    background: rgba(110, 198, 200, 0.14);
    color: var(--brand-teal-deep);
}

.eip-badge-violet[b-e7m3whincx] {
    background: rgba(124, 58, 237, 0.12);
    color: var(--t-pmc);
}

/* ── ACTIVIDADES ─────────────────────────────────────────────────── */
.eip-acts[b-e7m3whincx] {
    padding: 4px 0;
}

.eip-act[b-e7m3whincx] {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 10px;
    padding: 8px 14px;
    border-bottom: 1px solid var(--border-soft);
    transition: background 0.12s ease;
}

.eip-act:last-child[b-e7m3whincx] { border-bottom: none; }
.eip-act:hover[b-e7m3whincx]      { background: var(--bg-cream); }

.eip-act-name[b-e7m3whincx] {
    font-size: 12px;
    color: var(--text-secondary);
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    line-height: 1.3;
}

.eip-grades[b-e7m3whincx] {
    display: flex;
    gap: 3px;
    flex-shrink: 0;
}

/* Grade buttons (5 = no calificado, 6-10 = nota) */
.eip-grade[b-e7m3whincx] {
    width: 28px;
    height: 26px;
    border-radius: 6px;
    border: 1px solid var(--border-soft);
    background: var(--bg-panel);
    color: var(--text-muted);
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.12s ease;
    padding: 0;
    line-height: 1;
}

.eip-grade:hover:not(.selected)[b-e7m3whincx] {
    border-color: var(--brand-teal);
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
}

.eip-grade.selected[b-e7m3whincx] {
    background: var(--brand-teal);
    border-color: var(--brand-teal);
    color: var(--text-primary);
    font-weight: 700;
    box-shadow: 0 2px 6px rgba(110, 198, 200, 0.4);
}

.eip-grade.selected.ungraded[b-e7m3whincx] {
    background: linear-gradient(135deg, #F59E0B, #D97706);
    border-color: #D97706;
    color: #FFFFFF;
    box-shadow: 0 2px 6px rgba(245, 158, 11, 0.4);
}

/* ── RESPONSIVE ──────────────────────────────────────────────────── */
@media (max-width: 1024px) {
    .eip-panel[b-e7m3whincx] { width: 440px; }
}

@media (max-width: 768px) {
    .eip-panel[b-e7m3whincx] { width: 100%; }
    .eip-header[b-e7m3whincx] {
        grid-template-columns: 36px 40px 1fr auto;
        padding: 14px 16px 16px;
    }
    .eip-avatar[b-e7m3whincx] { width: 40px; height: 40px; }
    .eip-name[b-e7m3whincx] { font-size: 15px; }
    .eip-promedio-value[b-e7m3whincx] { font-size: 22px; }
    .eip-body[b-e7m3whincx] { padding: 14px 14px 28px; }
    .eip-grade[b-e7m3whincx] { width: 26px; height: 24px; }
}
/* /Components/Expediente/ExpedienteReconocimientos.razor.rz.scp.css */
/* ExpedienteReconocimientos.razor.css
   Familia rx-* — spec §5.3 + mockups/reconocimientos/expediente.html
   Tokens: hereda --paper, --line, --ink-*, --recon-tint, --gold-soft, etc. de expediente-digital.css
   Sistema de diseno: docs/agentes/diseno/SISTEMA-DISENO.md
   Contraste AA verificado con los tokens del mockup (script WCAG).
*/

/* ---- Card contenedor ---- */
.rx-card[b-j04cwk4k8i] {
    margin-bottom: 18px;
}

/* ---- Chip de total ---- */
.rx-total[b-j04cwk4k8i] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--recon-tint, #F5EDD8);
    color: var(--recon-ink, #8A5510);
    font-size: 12px;
    font-weight: 700;
    padding: 5px 11px;
    border-radius: 99px;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.rx-total .material-symbols-outlined[b-j04cwk4k8i] {
    font-size: 15px;
}

/* ---- Etiqueta de seccion ---- */
.rx-label[b-j04cwk4k8i] {
    font-size: 10.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .6px;
    color: var(--ink-2, #4A4F58);
    margin: 10px 0 10px;
}

/* ---- Franja de nivel ---- */
.rx-nivel[b-j04cwk4k8i] {
    display: grid;
    grid-template-columns: 44px 1fr auto;
    gap: 12px;
    align-items: center;
    padding: 12px 14px;
    margin: 8px 0 14px;
    border: 1px solid var(--line, #E8E2D2);
    border-radius: 12px;
    background: var(--paper-soft, #FBF8F1);
}

.rx-nivel-titulo[b-j04cwk4k8i] {
    font-size: 14px;
    font-weight: 700;
    color: var(--ink, #1A1D22);
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.rx-nivel-titulo small[b-j04cwk4k8i] {
    font-weight: 500;
    color: var(--ink-2, #4A4F58);
    font-size: 12px;
}

.rx-nivel-meta[b-j04cwk4k8i] {
    font-size: 12px;
    color: var(--ink-2, #4A4F58);
    margin-top: 3px;
}

/* Barra de progreso */
.rx-pb[b-j04cwk4k8i] {
    margin-top: 8px;
    height: 6px;
    border-radius: 99px;
    background: var(--line, #E8E2D2);
    overflow: hidden;
}

.rx-pb i[b-j04cwk4k8i] {
    display: block;
    height: 100%;
    background: var(--gold, #C8A55B);
    border-radius: 99px;
    transition: width .3s ease;
}

.rx-pb.max i[b-j04cwk4k8i] {
    background: var(--brand-teal-primary, #6EC6C8);
}

.rx-nivel-cuando[b-j04cwk4k8i] {
    font-size: 11.5px;
    color: var(--ink-3, #7C828B);
    white-space: nowrap;
    text-align: right;
    font-variant-numeric: tabular-nums;
}

/* ---- Grilla de stickers (coleccion agrupada) ---- */
.rx-grid[b-j04cwk4k8i] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(112px, 1fr));
    gap: 10px;
}

.rx-cell[b-j04cwk4k8i] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 12px 8px 10px;
    border: 1px solid var(--line, #E8E2D2);
    border-radius: 12px;
    background: var(--paper-soft, #FBF8F1);
    text-align: center;
    position: relative;
}

.rx-cell .x[b-j04cwk4k8i] {
    position: absolute;
    top: 8px;
    right: 8px;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    border-radius: 99px;
    background: var(--paper, #FFFFFF);
    border: 1px solid var(--line, #E8E2D2);
    color: var(--ink, #1A1D22);
    font-size: 11px;
    font-weight: 700;
    display: grid;
    place-items: center;
    font-variant-numeric: tabular-nums;
}

.rx-cell .n[b-j04cwk4k8i] {
    font-size: 12px;
    font-weight: 600;
    color: var(--ink-2, #4A4F58);
    line-height: 1.2;
}

.rx-sticker-ph[b-j04cwk4k8i] {
    font-size: 44px;
    color: var(--ink-4, #B5BAC1);
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ---- Lista de items (historial) ---- */
.rx-list[b-j04cwk4k8i] {
    display: flex;
    flex-direction: column;
}

.rx-item[b-j04cwk4k8i] {
    display: grid;
    grid-template-columns: 44px 1fr auto;
    gap: 12px;
    align-items: start;
    padding: 12px 0;
    border-top: 1px solid var(--line-soft, #F0EBDE);
}

.rx-item:first-child[b-j04cwk4k8i] {
    border-top: 0;
}

.rx-item img[b-j04cwk4k8i] {
    width: 44px;
    height: 44px;
    object-fit: contain;
}

.rx-sticker-ph-sm[b-j04cwk4k8i] {
    font-size: 28px;
    color: var(--ink-4, #B5BAC1);
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.rx-item .t[b-j04cwk4k8i] {
    font-size: 13.5px;
    font-weight: 600;
    color: var(--ink, #1A1D22);
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.rx-item .m[b-j04cwk4k8i] {
    font-size: 12px;
    color: var(--ink-2, #4A4F58);
    margin-top: 2px;
    line-height: 1.45;
}

.rx-item .side[b-j04cwk4k8i] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 6px;
    white-space: nowrap;
}

.rx-when[b-j04cwk4k8i] {
    font-size: 11.5px;
    color: var(--ink-2, #4A4F58);
    font-variant-numeric: tabular-nums;
}

/* Chips de estado */
/* rx-chip base (Solo escuela): tinte info 12% + tinta info-ink (5.81:1) + icono lock */
.rx-chip[b-j04cwk4k8i] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 10.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .3px;
    padding: 2px 8px;
    border-radius: 99px;
    background: rgba(45, 110, 163, .12);
    color: var(--info-ink, #215681);
}

.rx-chip .material-symbols-outlined[b-j04cwk4k8i] {
    font-size: 12px;
}

/* Chip Avance: tinte gold-soft + tinta warning-ink (5.31:1 sobre #F5EDD8) */
.rx-chip-avance[b-j04cwk4k8i] {
    background: var(--gold-soft, #F5EDD8);
    color: var(--recon-ink, #8A5510);
}

/* Link Retirar */
.rx-link[b-j04cwk4k8i] {
    background: none;
    border: 0;
    padding: 0;
    font: 600 12px var(--font-sans, 'Figtree', system-ui, sans-serif);
    color: var(--brand-teal-deep, #2C6D6F);
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 3px;
}

.rx-link .material-symbols-outlined[b-j04cwk4k8i] {
    font-size: 14px;
}

.rx-link:focus-visible[b-j04cwk4k8i] {
    outline: 2px solid var(--brand-teal, #6DC7D0);
    outline-offset: 2px;
}

/* ---- Estado vacio y error (reutiliza .ui-empty global) ---- */
/* .ui-empty ya definido en expediente-digital.css; no se redeclara aqui. */

/* ---- Responsive ---- */
@media (max-width: 600px) {
    .rx-nivel[b-j04cwk4k8i] {
        grid-template-columns: 36px 1fr;
    }

    .rx-nivel-cuando[b-j04cwk4k8i] {
        display: none;
    }

    .rx-grid[b-j04cwk4k8i] {
        grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
    }
}

@media print {
    .rx-nivel[b-j04cwk4k8i] { break-inside: avoid; }
    .rx-item[b-j04cwk4k8i] { break-inside: avoid; }
    .rx-link[b-j04cwk4k8i] { display: none; }
}
/* /Components/Expediente/ExpedienteReconocimientosAlumno.razor.rz.scp.css */
/* ExpedienteReconocimientosAlumno.razor.css
   Estilos scoped para la seccion "Mis reconocimientos" en la pagina del QR del alumno.
   Fuente visual: docs/mockups/reconocimientos/qr-alumno.html (familia mr-* + nb + pb).
   Tokens: portal-estudiante.css (--cream, --recon-tint, --recon-ink, etc.)
   Sin clase .q (cita del docente): la frase NO viaja a esta pagina (spec D5/4.5). */

/* ------------------------------------------------------------------
   Contenedor principal
   ------------------------------------------------------------------ */
.mr[b-lu4rwfu3xx] {
    margin: 0 24px 8px;
    background: var(--bg-panel, #FFFFFF);
    border: 1px solid var(--line, #E8E1D2);
    border-radius: 16px;
    padding: 16px;
    box-shadow: 0 1px 2px rgba(20,22,25,.04);
}

/* ------------------------------------------------------------------
   Hero de nivel (spec §5.4)
   ------------------------------------------------------------------ */
.mr-nivel[b-lu4rwfu3xx] {
    display: grid;
    grid-template-columns: 72px 1fr;
    gap: 12px;
    align-items: center;
    padding: 12px 12px 14px;
    margin: 0 0 12px;
    border-radius: 14px;
    background: var(--yellow-soft, #FBF1E0);
}

.mr-nivel.sin[b-lu4rwfu3xx] {
    background: var(--bg-cream, #FAF7F1);
}

.mr-nivel .t[b-lu4rwfu3xx] {
    font-family: var(--font-serif, 'Fraunces', serif);
    font-size: 18px;
    font-weight: 600;
    color: var(--ink, #2A2A2A);
    line-height: 1.1;
}

.mr-nivel .m[b-lu4rwfu3xx] {
    font-size: 12.5px;
    color: var(--recon-ink, #8A5510);
    font-weight: 600;
    margin-top: 3px;
}

.mr-nivel .m2[b-lu4rwfu3xx] {
    font-size: 11.5px;
    color: var(--gray, #555555);
    margin-top: 2px;
}

/* ------------------------------------------------------------------
   Barra de progreso (accesible; FILL = --recon-ink sobre --border-soft)
   ------------------------------------------------------------------ */
.pb[b-lu4rwfu3xx] {
    height: 8px;
    border-radius: 99px;
    background: var(--border-soft, #E8E4DD);
    overflow: hidden;
    width: 100%;
    margin-top: 8px;
    background: rgba(255,255,255,.7);
}

.pb > i[b-lu4rwfu3xx] {
    display: block;
    height: 100%;
    border-radius: 99px;
    background: #8A5510;
    transition: width .25s;
}

.pb.max > i[b-lu4rwfu3xx] {
    background: var(--teal-deep, #4BA8AA);
}

/* ------------------------------------------------------------------
   Grid de stickers (coleccion agrupada)
   ------------------------------------------------------------------ */
.mr-grid[b-lu4rwfu3xx] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}

.mr-cell[b-lu4rwfu3xx] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 12px 6px 10px;
    border-radius: 14px;
    background: var(--yellow-soft, #FBF1E0);
    text-align: center;
    position: relative;
}

.mr-cell img[b-lu4rwfu3xx] {
    width: 64px;
    height: 64px;
    object-fit: contain;
}

.mr-cell .n[b-lu4rwfu3xx] {
    font-size: 12px;
    font-weight: 600;
    color: var(--recon-ink, #8A5510);
    line-height: 1.2;
}

.mr-cell .x[b-lu4rwfu3xx] {
    position: absolute;
    top: 8px;
    right: 8px;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    border-radius: 99px;
    background: var(--bg-panel, #FFFFFF);
    color: var(--ink, #2A2A2A);
    font-size: 11px;
    font-weight: 700;
    display: grid;
    place-items: center;
    font-variant-numeric: tabular-nums;
    box-shadow: 0 1px 2px rgba(0,0,0,.08);
}

/* ------------------------------------------------------------------
   Label y lista de items recientes
   ------------------------------------------------------------------ */
.mr-label[b-lu4rwfu3xx] {
    font-size: 10.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .6px;
    color: var(--gray, #555555);
    margin: 16px 0 8px;
}

.mr-list[b-lu4rwfu3xx] {
    display: flex;
    flex-direction: column;
}

.mr-item[b-lu4rwfu3xx] {
    display: grid;
    grid-template-columns: 44px 1fr;
    gap: 12px;
    align-items: start;
    padding: 11px 0;
    border-top: 1px solid var(--line-soft, #F0EBDF);
}

.mr-item:first-child[b-lu4rwfu3xx] {
    border-top: 0;
}

.mr-item img[b-lu4rwfu3xx] {
    width: 44px;
    height: 44px;
    object-fit: contain;
}

.mr-item .t[b-lu4rwfu3xx] {
    font-size: 14px;
    font-weight: 600;
    color: var(--ink, #2A2A2A);
}

.mr-item .m[b-lu4rwfu3xx] {
    font-size: 12.5px;
    color: var(--gray, #555555);
    margin-top: 2px;
    line-height: 1.45;
}

.mr-item .w[b-lu4rwfu3xx] {
    font-size: 11.5px;
    color: var(--gray, #555555);
    margin-top: 4px;
}

/* ------------------------------------------------------------------
   Chip Avance en la lista (trending_up + texto)
   ------------------------------------------------------------------ */
.cat[b-lu4rwfu3xx] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .3px;
    padding: 2px 7px;
    border-radius: 99px;
    background: var(--yellow-soft, #FBF1E0);
    color: var(--recon-ink, #8A5510);
    vertical-align: 2px;
    margin-left: 6px;
}

/* ------------------------------------------------------------------
   "Ver todos" (details/summary nativo — sin JS, accesible)
   ------------------------------------------------------------------ */
.mr-more[b-lu4rwfu3xx] {
    margin-top: 8px;
}

.mr-more summary[b-lu4rwfu3xx] {
    list-style: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font: 600 13px var(--font-sans, 'Figtree', sans-serif);
    color: var(--teal-deep, #4BA8AA);
    text-decoration: underline;
    text-underline-offset: 2px;
    padding: 6px 0;
    min-height: 44px; /* touch target */
}

.mr-more summary[b-lu4rwfu3xx]::-webkit-details-marker {
    display: none;
}

.mr-more summary:focus-visible[b-lu4rwfu3xx] {
    outline: 2px solid var(--teal, #6DC7D0);
    outline-offset: 2px;
    border-radius: 4px;
}

/* ------------------------------------------------------------------
   Estado vacio motivador (GATE-7: invita, no reprocha)
   ------------------------------------------------------------------ */
.mr-empty[b-lu4rwfu3xx] {
    text-align: center;
    padding: 26px 12px 18px;
}

.mr-empty .tt[b-lu4rwfu3xx] {
    font-family: var(--font-serif, 'Fraunces', serif);
    font-size: 18px;
    font-weight: 600;
    margin-top: 8px;
}

.mr-empty .hh[b-lu4rwfu3xx] {
    font-size: 13px;
    color: var(--gray, #555555);
    margin-top: 4px;
    line-height: 1.5;
}

/* ------------------------------------------------------------------
   Responsive
   ------------------------------------------------------------------ */
@media (max-width: 640px) {
    .mr[b-lu4rwfu3xx] {
        margin-left: 16px;
        margin-right: 16px;
    }
}

@media (min-width: 900px) {
    .mr-grid[b-lu4rwfu3xx] {
        grid-template-columns: repeat(4, 1fr);
    }
}

@media (prefers-reduced-motion: reduce) {
    .pb > i[b-lu4rwfu3xx] {
        transition: none;
    }
}
/* /Components/FormatToolbar.razor.rz.scp.css */
.format-toolbar[b-y0h0zf1wsm] {
    position: absolute;
    background: white;
    border-radius: 10px;
    padding: 6px 8px;
    box-shadow: 0 4px 12px rgba(20,22,25,0.10),
                0 16px 40px rgba(20,22,25,0.14);
    z-index: 1200;
    display: flex;
    flex-direction: column;
    gap: 4px;
    user-select: none;
    font-family: 'Figtree', sans-serif;
}

.ft-row[b-y0h0zf1wsm] {
    display: flex;
    align-items: center;
    gap: 2px;
}

.ft-btn[b-y0h0zf1wsm] {
    min-width: 30px;
    height: 30px;
    padding: 0 8px;
    border: none;
    background: transparent;
    border-radius: 6px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: inherit;
    font-size: 13px;
    color: var(--carbon-1);
    transition: background 0.1s;
    gap: 1px;
}
.ft-btn:hover[b-y0h0zf1wsm] { background: var(--cream); }
.ft-btn.active[b-y0h0zf1wsm] {
    background: rgba(45, 127, 249, 0.15);
    color: #2D7FF9;
}

.ft-icon-btn[b-y0h0zf1wsm] { padding: 0 6px; }

.ft-select[b-y0h0zf1wsm] {
    height: 30px;
    border: 1px solid var(--cream-deep);
    border-radius: 6px;
    padding: 0 6px;
    font-family: inherit;
    font-size: 12px;
    background: white;
    cursor: pointer;
    color: var(--carbon-1);
}
.ft-font[b-y0h0zf1wsm] { width: 110px; }
.ft-size[b-y0h0zf1wsm] { width: 60px; }

.ft-divider[b-y0h0zf1wsm] {
    width: 1px;
    height: 20px;
    background: var(--cream-deep);
    margin: 0 3px;
    flex-shrink: 0;
}

/* Color buttons */
.ft-color-wrap[b-y0h0zf1wsm] { position: relative; }
.ft-color-btn[b-y0h0zf1wsm] {
    flex-direction: column;
    gap: 1px;
    padding: 0 5px;
}
.ft-color-bar[b-y0h0zf1wsm] {
    width: 16px;
    height: 3px;
    border-radius: 1px;
    margin-top: 1px;
    display: block;
}

.ft-palette[b-y0h0zf1wsm] {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    background: white;
    border-radius: 8px;
    padding: 6px;
    box-shadow: 0 4px 12px rgba(20,22,25,0.12),
                0 12px 28px rgba(20,22,25,0.16);
    display: grid;
    grid-template-columns: repeat(6, 22px);
    gap: 4px;
    z-index: 1300;
}

.ft-color-swatch[b-y0h0zf1wsm] {
    width: 22px;
    height: 22px;
    border: 1.5px solid white;
    border-radius: 4px;
    cursor: pointer;
    box-shadow: 0 0 0 1px rgba(0,0,0,0.1);
    transition: transform 0.1s;
    background: transparent;
    padding: 0;
    font-size: 11px;
    color: #888;
    display: flex;
    align-items: center;
    justify-content: center;
}
.ft-color-swatch:hover[b-y0h0zf1wsm] { transform: scale(1.15); }
.ft-color-none[b-y0h0zf1wsm] { background: white; }

.ft-clear[b-y0h0zf1wsm] { color: var(--carbon-5); }
.ft-clear:hover[b-y0h0zf1wsm] { color: var(--carbon-1); }
/* /Components/Fotos/AutorizacionDialogo.razor.rz.scp.css */
/* AutorizacionDialogo — mismo patron Modal (§6.11) que FotoDialogo. Solo tokens. */
.ad-overlay[b-prbu3517zm] {
    position: fixed;
    inset: 0;
    z-index: var(--z-overlay);
    display: grid;
    place-items: center;
    padding: 16px;
    background: color-mix(in srgb, var(--bg-rail) 50%, transparent);
}

.ad-modal[b-prbu3517zm] {
    width: min(100%, 540px);
    max-height: min(92vh, 860px);
    display: flex;
    flex-direction: column;
    background: var(--bg-panel);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-lg);
    font-family: var(--font-sans);
    color: var(--text-primary);
    outline: none;
}

.ad-h[b-prbu3517zm] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 18px 20px 12px;
    border-bottom: 1px solid var(--border-soft);
}

.ad-ico[b-prbu3517zm] {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: var(--radius-md);
    background: var(--bg-light-teal);
    color: var(--brand-teal-deep);
    flex-shrink: 0;
}

.ad-h-txt[b-prbu3517zm] { flex: 1; min-width: 0; }

.ad-titulo[b-prbu3517zm] {
    margin: 0;
    font-family: var(--font-serif);
    font-weight: 600;
    font-size: 20px;
    letter-spacing: -0.3px;
}

.ad-sub[b-prbu3517zm] { margin: 4px 0 0; font-size: 13px; font-weight: 700; color: var(--text-secondary); }

.ad-x[b-prbu3517zm] {
    display: inline-grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-panel);
    color: var(--text-secondary);
    cursor: pointer;
}

.ad-x:disabled[b-prbu3517zm] { opacity: 0.5; cursor: not-allowed; }

.ad-b[b-prbu3517zm] {
    padding: 16px 20px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 14px;
    font-size: 13.5px;
}

.ad-f[b-prbu3517zm] {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
    padding: 12px 20px 16px;
    border-top: 1px solid var(--border-soft);
}

.ad-estados[b-prbu3517zm] {
    margin: 0;
    padding: 0;
    border: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.ad-estados legend[b-prbu3517zm] {
    margin-bottom: 6px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: var(--text-secondary);
}

.ad-opcion[b-prbu3517zm] {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 40px;
    padding: 6px 10px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    cursor: pointer;
}

.ad-opcion.sel[b-prbu3517zm] { border-color: var(--brand-teal-deep); background: var(--bg-light-teal); }
.ad-opcion input[b-prbu3517zm] { accent-color: var(--brand-teal-deep); width: 18px; height: 18px; }
.ad-actual[b-prbu3517zm] { color: var(--text-secondary); font-size: 12px; }

.ad-resumen[b-prbu3517zm] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.ad-resumen li[b-prbu3517zm] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ad-resumen b[b-prbu3517zm] { font-variant-numeric: tabular-nums; }

.ad-nota[b-prbu3517zm] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    font-size: 12.5px;
    color: var(--text-secondary);
}

.ad-nota .msr[b-prbu3517zm] { font-size: 16px; color: var(--brand-teal-deep); }

.ad-declaracion[b-prbu3517zm] {
    padding: 12px 14px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    background: var(--bg-cream);
}

.ad-decl-label[b-prbu3517zm] {
    margin: 0 0 6px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    color: var(--text-secondary);
}

.ad-decl-texto[b-prbu3517zm] {
    margin: 0 0 10px;
    padding: 0 0 0 12px;
    border-left: 3px solid var(--brand-teal-deep);
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--text-primary);
}

.ad-check[b-prbu3517zm] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-weight: 600;
    cursor: pointer;
}

.ad-check input[b-prbu3517zm] { width: 20px; height: 20px; margin-top: 1px; accent-color: var(--brand-teal-deep); flex-shrink: 0; }

.ad-nota-campo[b-prbu3517zm] { display: flex; flex-direction: column; gap: 4px; font-size: 12.5px; font-weight: 600; color: var(--text-secondary); }

.ad-nota-campo input[b-prbu3517zm] {
    min-height: 38px;
    padding: 7px 10px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-cream);
    font: 400 13.5px var(--font-sans);
    color: var(--text-primary);
}

.ad-nota-campo input:focus[b-prbu3517zm] { border-color: var(--brand-teal-deep); box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand-teal) 25%, transparent); outline: none; }
.ad-nota-campo small[b-prbu3517zm] { font-weight: 400; }

.ad-confirmacion[b-prbu3517zm] {
    display: flex;
    gap: 10px;
    padding: 12px;
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--warning) 14%, transparent);
    color: var(--warning-ink);
    font-weight: 600;
    line-height: 1.5;
}

.ad-confirmacion p[b-prbu3517zm] { margin: 0; }

.ad-resultado[b-prbu3517zm] {
    display: flex;
    gap: 10px;
    padding: 12px;
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--success) 12%, transparent);
    color: var(--success-ink);
}

.ad-resultado p[b-prbu3517zm] { margin: 0 0 2px; }

.ad-error[b-prbu3517zm] {
    display: flex;
    gap: 8px;
    margin: 0;
    padding: 10px 12px;
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--danger) 12%, transparent);
    color: var(--danger);
    font-weight: 600;
}

.ad-spin[b-prbu3517zm] {
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 2px solid var(--border-med);
    border-top-color: var(--brand-teal-deep);
    border-radius: 50%;
    animation: ad-gira-b-prbu3517zm 0.9s linear infinite;
}

@keyframes ad-gira-b-prbu3517zm { to { transform: rotate(360deg); } }

@media (max-width: 560px) {
    .ad-overlay[b-prbu3517zm] { padding: 0; place-items: end stretch; }
    .ad-modal[b-prbu3517zm] { width: 100%; max-height: 96vh; border-radius: var(--radius-xl) var(--radius-xl) 0 0; }
    .ad-h[b-prbu3517zm], .ad-b[b-prbu3517zm], .ad-f[b-prbu3517zm] { padding-left: 16px; padding-right: 16px; }
    .ad-f[b-prbu3517zm]  .ui-btn { flex: 1 1 auto; justify-content: center; }
}

@media (pointer: coarse) {
    .ad-x[b-prbu3517zm] { width: 44px; height: 44px; }
    .ad-opcion[b-prbu3517zm] { min-height: 44px; }
    .ad-f[b-prbu3517zm]  .ui-btn { min-height: 44px; }
    .ad-nota-campo input[b-prbu3517zm] { min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
    .ad-spin[b-prbu3517zm] { animation-duration: 2.4s; }
}
/* /Components/Fotos/FotoAlumno.razor.rz.scp.css */
/* FotoAlumno — avatar de lista y retrato 4:5 (SISTEMA-DISENO §6.7, enmienda fotos).
   Solo tokens. Persona = circulo en listas; retrato 4:5 con --radius-lg en ficha/foto grupal. */

.fa[b-x82ftyfo8x] {
    position: relative;
    flex-shrink: 0;
}

.fa-lista[b-x82ftyfo8x] {
    display: inline-flex;
    line-height: 1;
    vertical-align: middle;
}

/* Concentrado: flota a la izquierda de las dos lineas de la celda sin cambiar su ancho. */
.fa-flotante[b-x82ftyfo8x] {
    float: left;
    margin: 2px 6px 0 0;
}

/* ── Retrato 4:5 ─────────────────────────────────────────────────────────── */
.fa-retrato[b-x82ftyfo8x] {
    display: block;
    aspect-ratio: 4 / 5;
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, var(--fa-from, var(--av-1-from)), var(--fa-to, var(--av-1-to)));
    overflow: hidden;
    isolation: isolate;
}

.fa-ini[b-x82ftyfo8x] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--bg-panel);
    font-family: var(--font-sans);
    font-weight: 700;
    font-size: clamp(16px, 28cqi, 44px);
    letter-spacing: 0.02em;
    user-select: none;
}

.fa-retrato[b-x82ftyfo8x] {
    container-type: inline-size;
}

.fa-img[b-x82ftyfo8x] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    z-index: 1;
    animation: fa-entra-b-x82ftyfo8x 160ms var(--ease) both;
}

@keyframes fa-entra-b-x82ftyfo8x {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* Variante de cabecera del expediente: el retrato hereda la sombra de .hero-avatar pero
   no su cuadro de 96×96 ni su degradado. */
.fa-retrato.hero-avatar[b-x82ftyfo8x] {
    width: 96px;
    height: auto;
    border-radius: var(--radius-lg);
    font-family: var(--font-sans);
    overflow: visible;
}

.fa-retrato.hero-avatar .fa-ini[b-x82ftyfo8x],
.fa-retrato.hero-avatar .fa-img[b-x82ftyfo8x] {
    border-radius: var(--radius-lg);
}

@media (prefers-reduced-motion: reduce) {
    .fa-img[b-x82ftyfo8x] { animation: none; }
}

@media print {
    .fa-noprint[b-x82ftyfo8x] { display: none !important; }
}

/* Evaluacion individual: el avatar de 56 px vive en la columna de 44 px de .eip-header (40 px en
   movil) sin tocar ese CSS: el margen negativo deja la caja en el ancho de la pista y lo centra. */
.fa-eip[b-x82ftyfo8x] { margin: 0 -6px; justify-self: center; }

@media (max-width: 768px) {
    .fa-eip[b-x82ftyfo8x] { margin: 0 -8px; }
}
/* /Components/Fotos/FotoDialogo.razor.rz.scp.css */
/* FotoDialogo — patron Modal de la casa (§6.11): overlay, panel blanco --radius-xl, header
   Fraunces, footer con acciones a la derecha. Solo tokens. Movil ≤560: ancho completo. */

.fd-overlay[b-8aut4156cy] {
    position: fixed;
    inset: 0;
    z-index: var(--z-overlay);
    display: grid;
    place-items: center;
    padding: 16px;
    background: color-mix(in srgb, var(--bg-rail) 50%, transparent);
}

.fd-modal[b-8aut4156cy] {
    width: min(100%, 560px);
    max-height: min(92vh, 860px);
    display: flex;
    flex-direction: column;
    background: var(--bg-panel);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-lg);
    font-family: var(--font-sans);
    color: var(--text-primary);
    outline: none;
}

.fd-h[b-8aut4156cy] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 18px 20px 12px;
    border-bottom: 1px solid var(--border-soft);
}

.fd-h-txt[b-8aut4156cy] { flex: 1; min-width: 0; }

.fd-titulo[b-8aut4156cy] {
    margin: 0;
    font-family: var(--font-serif);
    font-weight: 600;
    font-size: 20px;
    letter-spacing: -0.3px;
}

/* Identidad del alumno: SIEMPRE visible en todos los pasos. */
.fd-quien[b-8aut4156cy] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 6px;
    margin: 6px 0 0;
    font-size: 13px;
    color: var(--text-secondary);
}

.fd-quien b[b-8aut4156cy] { color: var(--text-primary); font-weight: 700; }
.fd-quien .msr[b-8aut4156cy] { font-size: 17px; color: var(--brand-teal-deep); }
.fd-sep[b-8aut4156cy] { color: var(--text-secondary); }

.fd-x[b-8aut4156cy] {
    display: inline-grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-panel);
    color: var(--text-secondary);
    cursor: pointer;
}

.fd-x:hover:not(:disabled)[b-8aut4156cy] { border-color: var(--brand-teal-deep); color: var(--brand-teal-deep); }
.fd-x:disabled[b-8aut4156cy] { opacity: 0.5; cursor: not-allowed; }

.fd-b[b-8aut4156cy] {
    padding: 18px 20px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.fd-f[b-8aut4156cy] {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
    padding: 12px 20px 16px;
    border-top: 1px solid var(--border-soft);
}

/* ── Paso elegir: zona de arrastre con InputFile superpuesto (patron Configuracion) ── */
.fd-drop[b-8aut4156cy] {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 30px 16px;
    border: 2px dashed var(--border-med);
    border-radius: var(--radius-lg);
    background: var(--bg-cream);
    text-align: center;
    font-size: 13.5px;
    transition: border-color 0.15s ease, background-color 0.15s ease;
}

.fd-drop:hover[b-8aut4156cy],
.fd-drop.fd-drag-over[b-8aut4156cy] {
    border-color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
}

.fd-drop:focus-within[b-8aut4156cy] {
    outline: 2px solid var(--brand-teal);
    outline-offset: 2px;
}

.fd-drop.fd-drop-error[b-8aut4156cy] { border-color: var(--danger); }

.fd-drop-ico[b-8aut4156cy] { font-size: 34px !important; color: var(--brand-teal-deep); }
.fd-drop-o[b-8aut4156cy] { color: var(--text-secondary); font-size: 12.5px; }
.fd-drop small[b-8aut4156cy] { color: var(--text-secondary); font-size: 12px; }
/* Apariencia de boton secundario: el control real es el InputFile que cubre la zona. */
.fd-drop-btn[b-8aut4156cy] {
    pointer-events: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-panel);
    color: var(--text-secondary);
    font: 600 13px/1.2 var(--font-sans);
}

.fd-drop-btn .msr[b-8aut4156cy] { font-size: 16px; }

.fd-drop:hover .fd-drop-btn[b-8aut4156cy],
.fd-drop:focus-within .fd-drop-btn[b-8aut4156cy] {
    border-color: var(--brand-teal-deep);
    color: var(--brand-teal-deep);
}

[b-8aut4156cy] .fd-input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
    z-index: 2;
}

.fd-nota[b-8aut4156cy] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0;
    font-size: 12.5px;
    color: var(--text-secondary);
}

.fd-nota .msr[b-8aut4156cy] { font-size: 16px; color: var(--brand-teal-deep); }

.fd-nota kbd[b-8aut4156cy],
.fd-b kbd[b-8aut4156cy] {
    display: inline-block;
    min-width: 20px;
    padding: 1px 5px;
    border: 1px solid var(--border-med);
    border-bottom-width: 2px;
    border-radius: var(--radius-sm);
    background: var(--bg-panel);
    font: 600 11.5px/1.4 var(--font-mono);
    color: var(--text-primary);
    text-align: center;
}

.fd-error[b-8aut4156cy] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 0;
    padding: 10px 12px;
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--danger) 12%, transparent);
    color: var(--danger);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.45;
}

.fd-error .msr[b-8aut4156cy] { font-size: 18px; flex-shrink: 0; }

/* ── Paso recortar ── */
.fd-marco[b-8aut4156cy] {
    position: relative;
    width: min(100%, 300px);
    aspect-ratio: 4 / 5;
    margin: 0 auto;
    border-radius: var(--radius-lg);
    overflow: hidden;
    background: var(--carbon-2);
}

.fd-canvas[b-8aut4156cy] {
    display: block;
    width: 100%;
    height: 100%;
    cursor: grab;
    touch-action: none;
}

.fd-canvas:active[b-8aut4156cy] { cursor: grabbing; }

.fd-canvas:focus-visible[b-8aut4156cy] {
    outline: 3px solid var(--brand-teal);
    outline-offset: -3px;
}

/* Guia de encuadre: tercios + ovalo, encima del canvas y sin capturar el puntero. */
.fd-guia[b-8aut4156cy] {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(to right, transparent calc(33.33% - 0.5px), color-mix(in srgb, var(--bg-panel) 45%, transparent) calc(33.33% - 0.5px), color-mix(in srgb, var(--bg-panel) 45%, transparent) calc(33.33% + 0.5px), transparent calc(33.33% + 0.5px), transparent calc(66.66% - 0.5px), color-mix(in srgb, var(--bg-panel) 45%, transparent) calc(66.66% - 0.5px), color-mix(in srgb, var(--bg-panel) 45%, transparent) calc(66.66% + 0.5px), transparent calc(66.66% + 0.5px)),
        linear-gradient(to bottom, transparent calc(33.33% - 0.5px), color-mix(in srgb, var(--bg-panel) 45%, transparent) calc(33.33% - 0.5px), color-mix(in srgb, var(--bg-panel) 45%, transparent) calc(33.33% + 0.5px), transparent calc(33.33% + 0.5px), transparent calc(66.66% - 0.5px), color-mix(in srgb, var(--bg-panel) 45%, transparent) calc(66.66% - 0.5px), color-mix(in srgb, var(--bg-panel) 45%, transparent) calc(66.66% + 0.5px), transparent calc(66.66% + 0.5px));
}

.fd-ovalo[b-8aut4156cy] {
    position: absolute;
    left: 22%;
    right: 22%;
    top: 14%;
    bottom: 24%;
    border: 2px dashed color-mix(in srgb, var(--bg-panel) 80%, transparent);
    border-radius: 50%;
}

.fd-zoom[b-8aut4156cy] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.fd-zoom > .msr[b-8aut4156cy] { font-size: 20px; color: var(--text-secondary); }

.fd-slider[b-8aut4156cy] {
    width: min(200px, 50vw);
    accent-color: var(--brand-teal-deep);
}

/* ── Paso confirmar / comparacion ── */
.fd-compare[b-8aut4156cy] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
}

.fd-compare figure[b-8aut4156cy],
.fd-nueva-sola[b-8aut4156cy] {
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}

.fd-compare figure[b-8aut4156cy] { width: min(42%, 170px); }
.fd-nueva-sola[b-8aut4156cy] { width: min(70%, 220px); margin: 0 auto; }

.fd-frame[b-8aut4156cy] {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 5;
    border-radius: var(--radius-lg);
    overflow: hidden;
    background: var(--bg-cream);
    border: 1px solid var(--border-soft);
}

.fd-frame img[b-8aut4156cy] {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.fd-frame-actual[b-8aut4156cy] { opacity: 0.92; }

.fd-ver-actual[b-8aut4156cy] {
    position: absolute;
    left: 50%;
    bottom: 8px;
    transform: translateX(-50%);
    z-index: 3;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-height: 32px;
    padding: 4px 10px;
    border: 0;
    border-radius: 99px;
    background: var(--bg-panel);
    color: var(--brand-teal-deep);
    font: 700 12px/1 var(--font-sans);
    box-shadow: var(--shadow-sm);
    cursor: pointer;
    white-space: nowrap;
}

.fd-ver-actual .msr[b-8aut4156cy] { font-size: 16px; }

.fd-compare figcaption[b-8aut4156cy],
.fd-nueva-sola figcaption[b-8aut4156cy] {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.4px;
    text-transform: uppercase;
    color: var(--text-secondary);
}

.fd-flecha[b-8aut4156cy] { color: var(--text-secondary); font-size: 22px; }

.fd-confirma[b-8aut4156cy] {
    margin: 0;
    font-size: 13px;
    color: var(--text-secondary);
    text-align: center;
    line-height: 1.5;
}

.fd-confirma b[b-8aut4156cy] { color: var(--text-primary); }

/* ── Paso subiendo / comprobando ── */
.fd-estado[b-8aut4156cy] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 18px 0;
    text-align: center;
    font-size: 14px;
}

.fd-estado p[b-8aut4156cy] { margin: 0; color: var(--text-secondary); }
.fd-num[b-8aut4156cy] { font-variant-numeric: tabular-nums; font-weight: 700; color: var(--text-primary); }

.fd-barra[b-8aut4156cy] {
    width: min(100%, 320px);
    height: 8px;
    border-radius: 99px;
    background: var(--border-soft);
    overflow: hidden;
}

.fd-barra i[b-8aut4156cy] {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--brand-teal-deep);
    transition: width 0.2s var(--ease);
}

.fd-spin[b-8aut4156cy] {
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 2px solid var(--border-med);
    border-top-color: var(--brand-teal-deep);
    border-radius: 50%;
    animation: fd-gira-b-8aut4156cy 0.9s linear infinite;
}

.fd-spin.grande[b-8aut4156cy] { width: 34px; height: 34px; border-width: 3px; }

@keyframes fd-gira-b-8aut4156cy { to { transform: rotate(360deg); } }

/* ── Paso exito ── */
.fd-exito[b-8aut4156cy] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 8px 0;
    text-align: center;
}

.fd-check[b-8aut4156cy] {
    display: grid;
    place-items: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: color-mix(in srgb, var(--success) 14%, transparent);
    color: var(--success-ink);
    animation: fd-aparece-b-8aut4156cy 0.32s var(--ease) both;
}

.fd-check .msr[b-8aut4156cy] { font-size: 30px; }

@keyframes fd-aparece-b-8aut4156cy {
    from { transform: scale(0.6); opacity: 0; }
    to   { transform: scale(1); opacity: 1; }
}

.fd-exito-t[b-8aut4156cy] {
    margin: 8px 0 0;
    font-family: var(--font-serif);
    font-weight: 600;
    font-size: 18px;
}

.fd-exito-n[b-8aut4156cy] {
    margin: 0;
    font-size: 13px;
    font-weight: 700;
    color: var(--text-secondary);
}

.fd-quitar-confirma[b-8aut4156cy] {
    margin-top: 12px;
    padding: 12px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-cream);
    font-size: 13px;
}

.fd-quitar-confirma p[b-8aut4156cy] { margin: 0 0 10px; }

.fd-acciones-inline[b-8aut4156cy] {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
}

.fd-err-bloque[b-8aut4156cy] {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

@media (max-width: 560px) {
    .fd-overlay[b-8aut4156cy] { padding: 0; place-items: end stretch; }
    .fd-modal[b-8aut4156cy] {
        width: 100%;
        max-height: 96vh;
        border-radius: var(--radius-xl) var(--radius-xl) 0 0;
    }
    .fd-h[b-8aut4156cy], .fd-b[b-8aut4156cy], .fd-f[b-8aut4156cy] { padding-left: 16px; padding-right: 16px; }
    .fd-f[b-8aut4156cy] { justify-content: stretch; }
    .fd-f[b-8aut4156cy]  .ui-btn { flex: 1 1 auto; justify-content: center; }
}

@media (pointer: coarse) {
    .fd-x[b-8aut4156cy] { width: 44px; height: 44px; }
    .fd-f[b-8aut4156cy]  .ui-btn { min-height: 44px; }
    .fd-zoom[b-8aut4156cy]  .ui-btn { min-width: 44px; min-height: 44px; }
    .fd-slider[b-8aut4156cy] { min-height: 44px; }
    .fd-ver-actual[b-8aut4156cy] { min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
    .fd-check[b-8aut4156cy] { animation: none; }
    .fd-spin[b-8aut4156cy] { animation-duration: 2.4s; }
    .fd-barra i[b-8aut4156cy], .fd-drop[b-8aut4156cy] { transition: none; }
}
/* /Components/Fotos/FotoEstadoAutorizacion.razor.rz.scp.css */
/* Chip de autorizacion de imagen: tinte + tinta -ink (§1.5), icono siempre presente. */
.fea[b-0hr7n2h0u6] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 9px;
    border-radius: 99px;
    font: 700 11.5px/1.2 var(--font-sans);
    white-space: nowrap;
}

.fea .msr[b-0hr7n2h0u6] { font-size: 14px; }

.fea.autorizado[b-0hr7n2h0u6] {
    background: color-mix(in srgb, var(--success) 12%, transparent);
    color: var(--success-ink);
}

.fea.pendiente[b-0hr7n2h0u6] {
    background: color-mix(in srgb, var(--warning) 14%, transparent);
    color: var(--warning-ink);
}

.fea.no_autorizado[b-0hr7n2h0u6] {
    background: color-mix(in srgb, var(--danger) 12%, transparent);
    color: var(--danger);
}

.fea-plazo[b-0hr7n2h0u6] { font-weight: 600; }
/* /Components/Fotos/FotoFicha.razor.rz.scp.css */
/* FotoFicha — cabecera del panel de Editar alumnos: retrato 4:5 de 120 px + chip + acciones. */
.ff[b-t6nsybgcd0] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    margin: 0 auto 14px;
    font-family: var(--font-sans);
    text-align: center;
}

.ff-retrato[b-t6nsybgcd0] {
    position: relative;
    width: 120px;
}

.ff-ampliar[b-t6nsybgcd0] {
    position: absolute;
    right: 6px;
    bottom: 6px;
    z-index: 2;
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 50%;
    background: var(--bg-panel);
    color: var(--brand-teal-deep);
    box-shadow: var(--shadow-sm);
    cursor: pointer;
}

.ff-ampliar .msr[b-t6nsybgcd0] { font-size: 18px; }

.ff-aut[b-t6nsybgcd0] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: center;
}

.ff-link[b-t6nsybgcd0] {
    border: 0;
    background: none;
    padding: 2px 4px;
    color: var(--brand-teal-deep);
    font: 700 12.5px var(--font-sans);
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
}

.ff-acciones[b-t6nsybgcd0] {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px;
}

.ff-nota[b-t6nsybgcd0] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    margin: 0;
    max-width: 280px;
    font-size: 12px;
    color: var(--text-secondary);
}

.ff-nota .msr[b-t6nsybgcd0] { font-size: 15px; color: var(--brand-teal-deep); }

.ff-error[b-t6nsybgcd0] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: center;
    gap: 5px;
    margin: 0;
    padding: 6px 10px;
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--danger) 12%, transparent);
    color: var(--danger);
    font-size: 12.5px;
    font-weight: 600;
}

.ff-error .msr[b-t6nsybgcd0] { font-size: 16px; }

.ff-confirma[b-t6nsybgcd0] {
    width: 100%;
    padding: 10px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-cream);
    font-size: 12.5px;
}

.ff-confirma p[b-t6nsybgcd0] { margin: 0 0 8px; }

.ff-zoom[b-t6nsybgcd0] {
    position: fixed;
    inset: 0;
    z-index: var(--z-overlay);
    display: grid;
    place-items: center;
    padding: 16px;
    background: color-mix(in srgb, var(--bg-rail) 60%, transparent);
}

.ff-zoom-panel[b-t6nsybgcd0] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 16px;
    border-radius: var(--radius-xl);
    background: var(--bg-panel);
    box-shadow: var(--shadow-lg);
    max-width: 100%;
}

.ff-zoom-nombre[b-t6nsybgcd0] { margin: 0; font-weight: 700; font-size: 14px; }

@media (pointer: coarse) {
    .ff-ampliar[b-t6nsybgcd0] { width: 44px; height: 44px; }
    .ff-link[b-t6nsybgcd0] { min-height: 44px; }
    .ff-acciones[b-t6nsybgcd0]  .ui-btn { min-height: 44px; }
}
/* /Components/Fotos/FotoHeroExpediente.razor.rz.scp.css */
/* Boton «Cambiar foto» sobre el retrato del expediente (markup de este componente: lleva su scope). */
.fhe-cambiar[b-qy5xt4xo39] {
    position: absolute;
    left: -6px;
    bottom: -6px;
    z-index: 3;
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border: 2px solid var(--bg-panel);
    border-radius: 50%;
    background: var(--brand-teal-deep);
    color: var(--bg-panel);
    box-shadow: var(--shadow-sm);
    cursor: pointer;
}

.fhe-cambiar .msr[b-qy5xt4xo39] { font-size: 16px; }

@media (pointer: coarse) {
    .fhe-cambiar[b-qy5xt4xo39] { width: 44px; height: 44px; }
}

@media print {
    .fhe-cambiar[b-qy5xt4xo39] { display: none; }
}
/* /Components/Fotos/SwitchFotos.razor.rz.scp.css */
/* SwitchFotos — interruptor de la casa (sin Telerik). Solo tokens; foco visible global. */
.fs[b-m0fs4q863u] {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px 10px;
    font-family: var(--font-sans);
}

.fs-switch[b-m0fs4q863u] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 36px;
    padding: 4px 10px 4px 6px;
    border: 1px solid var(--border-soft);
    border-radius: 99px;
    background: var(--bg-panel);
    color: var(--text-primary);
    font: 600 13px/1 var(--font-sans);
    cursor: pointer;
    transition: border-color 0.15s ease, background-color 0.15s ease;
}

.fs-switch:hover[b-m0fs4q863u] {
    border-color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
}

.fs-track[b-m0fs4q863u] {
    position: relative;
    width: 34px;
    height: 20px;
    border-radius: 99px;
    background: var(--border-med);
    transition: background-color 0.15s ease;
    flex-shrink: 0;
}

.fs-thumb[b-m0fs4q863u] {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--bg-panel);
    box-shadow: var(--shadow-sm);
    transition: transform 0.18s var(--ease);
}

.fs.on .fs-track[b-m0fs4q863u] { background: var(--brand-teal-deep); }
.fs.on .fs-thumb[b-m0fs4q863u] { transform: translateX(14px); }

/* Apagado: el riel lleva un borde para no depender solo del color (§7 regla 2). */
.fs.off .fs-track[b-m0fs4q863u] { box-shadow: inset 0 0 0 1.5px var(--text-secondary); background: var(--bg-cream); }
.fs.off .fs-thumb[b-m0fs4q863u] { background: var(--text-secondary); }

.fs-ayuda[b-m0fs4q863u] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 12.5px;
    color: var(--text-secondary);
}

.fs-ayuda .msr[b-m0fs4q863u] { font-size: 16px; color: var(--brand-teal-deep); }

/* Encendido: la ayuda sigue disponible para el lector de pantalla (aria-describedby). */
.fs-sr[b-m0fs4q863u] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.fs-pendiente[b-m0fs4q863u] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 9px;
    border-radius: var(--radius-sm);
    background: color-mix(in srgb, var(--warning) 14%, transparent);
    color: var(--warning-ink);
    font-size: 12px;
    font-weight: 600;
}

.fs-pendiente .msr[b-m0fs4q863u] { font-size: 15px; }

/* Barra dentro de paneles (evaluacion individual). */
.fs.fs-barra[b-m0fs4q863u] {
    display: flex;
    padding: 8px 20px;
    border-bottom: 1px solid var(--border-soft);
    background: var(--bg-cream);
}

@media (pointer: coarse) {
    .fs-switch[b-m0fs4q863u] { min-height: 44px; padding-right: 14px; }
}

@media (prefers-reduced-motion: reduce) {
    .fs-thumb[b-m0fs4q863u], .fs-track[b-m0fs4q863u], .fs-switch[b-m0fs4q863u] { transition: none; }
}

@media print {
    .fs[b-m0fs4q863u] { display: none !important; }
}
/* /Components/GaleriaFondosModal.razor.rz.scp.css */
/* GaleriaFondosModal · Scoped CSS */

.gf-overlay[b-vn1zxq9wdr] {
    position: fixed;
    inset: 0;
    background: rgba(20, 22, 25, 0.6);
    backdrop-filter: blur(4px);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    animation: gf-fade-in-b-vn1zxq9wdr 0.2s ease;
}

.gf-modal[b-vn1zxq9wdr] {
    background: #FFFFFF;
    border-radius: 16px;
    width: 100%;
    max-width: 960px;
    max-height: 85vh;
    display: flex;
    flex-direction: column;
    box-shadow: 0 24px 64px rgba(20, 22, 25, 0.25);
    animation: gf-modal-in-b-vn1zxq9wdr 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes gf-fade-in-b-vn1zxq9wdr {
    from { opacity: 0; }
    to { opacity: 1; }
}
@keyframes gf-modal-in-b-vn1zxq9wdr {
    from { opacity: 0; transform: scale(0.96) translateY(8px); }
    to { opacity: 1; transform: scale(1) translateY(0); }
}

/* Header */
.gf-header[b-vn1zxq9wdr] {
    padding: 20px 24px 16px;
    border-bottom: 1px solid var(--cream-deep);
    display: flex;
    align-items: center;
    gap: 16px;
    flex-shrink: 0;
}
.gf-title[b-vn1zxq9wdr] {
    font-family: 'Fraunces', serif;
    font-size: 20px;
    font-weight: 500;
    color: var(--carbon-1);
    margin: 0;
    letter-spacing: -0.01em;
}
.gf-search[b-vn1zxq9wdr] {
    flex: 1;
    max-width: 320px;
    margin-left: auto;
    position: relative;
    display: flex;
    align-items: center;
    background: var(--cream);
    border-radius: 8px;
    padding: 0 10px;
    height: 36px;
}
.gf-search svg[b-vn1zxq9wdr] {
    width: 14px;
    height: 14px;
    color: var(--carbon-5);
    flex-shrink: 0;
}
.gf-search input[b-vn1zxq9wdr] {
    flex: 1;
    border: none;
    background: transparent;
    padding: 0 8px;
    font-family: 'Figtree', sans-serif;
    font-size: 13px;
    color: var(--carbon-1);
    outline: none;
}
.gf-search input[b-vn1zxq9wdr]::placeholder {
    color: var(--carbon-6);
}
.gf-close[b-vn1zxq9wdr] {
    width: 36px;
    height: 36px;
    border: none;
    background: var(--cream);
    border-radius: 8px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--carbon-3);
    transition: all 0.12s ease;
    flex-shrink: 0;
}
.gf-close:hover[b-vn1zxq9wdr] {
    background: var(--cream-deep);
    color: var(--carbon-1);
}

/* Tabs */
.gf-tabs[b-vn1zxq9wdr] {
    display: flex;
    gap: 2px;
    padding: 0 20px;
    border-bottom: 1px solid var(--cream-deep);
    flex-shrink: 0;
}
.gf-tab[b-vn1zxq9wdr] {
    padding: 12px 16px;
    background: transparent;
    border: none;
    font-family: 'Figtree', sans-serif;
    font-size: 13.5px;
    font-weight: 500;
    color: var(--carbon-5);
    cursor: pointer;
    position: relative;
    transition: color 0.12s;
    display: flex;
    align-items: center;
    gap: 6px;
}
.gf-tab:hover[b-vn1zxq9wdr] {
    color: var(--carbon-3);
}
.gf-tab.active[b-vn1zxq9wdr] {
    color: var(--brand-teal-dark);
}
.gf-tab.active[b-vn1zxq9wdr]::after {
    content: '';
    position: absolute;
    bottom: -1px;
    left: 16px;
    right: 16px;
    height: 2px;
    background: var(--brand-teal-dark);
    border-radius: 2px 2px 0 0;
}
.gf-tab-count[b-vn1zxq9wdr] {
    background: var(--cream-deep);
    color: var(--carbon-3);
    font-size: 11px;
    font-weight: 600;
    padding: 1px 6px;
    border-radius: 999px;
}
.gf-tab.active .gf-tab-count[b-vn1zxq9wdr] {
    background: rgba(75, 168, 170, 0.16);
    color: var(--brand-teal-dark);
}

/* Subcategorías */
.gf-subcats[b-vn1zxq9wdr] {
    padding: 12px 20px;
    display: flex;
    gap: 6px;
    overflow-x: auto;
    flex-shrink: 0;
    border-bottom: 1px solid var(--cream-deep);
}
.gf-subcat[b-vn1zxq9wdr] {
    padding: 6px 12px;
    border: 1px solid var(--cream-deep);
    background: #FFFFFF;
    border-radius: 999px;
    font-family: 'Figtree', sans-serif;
    font-size: 12.5px;
    font-weight: 500;
    color: var(--carbon-3);
    cursor: pointer;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: all 0.12s;
}
.gf-subcat:hover[b-vn1zxq9wdr] {
    background: var(--cream);
}
.gf-subcat.active[b-vn1zxq9wdr] {
    background: var(--carbon-1);
    color: #FFFFFF;
    border-color: var(--carbon-1);
}
.gf-subcat.destacada[b-vn1zxq9wdr] {
    border-color: var(--brand-teal);
    color: var(--brand-teal-dark);
}
.gf-subcat.active.destacada[b-vn1zxq9wdr] {
    background: var(--brand-teal-dark);
    border-color: var(--brand-teal-dark);
    color: var(--text-primary);
}
.gf-badge-tu[b-vn1zxq9wdr] {
    background: rgba(109, 199, 208, 0.18);
    color: var(--brand-teal-dark);
    font-size: 9.5px;
    font-weight: 600;
    padding: 1px 5px;
    border-radius: 3px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.gf-subcat.active .gf-badge-tu[b-vn1zxq9wdr] {
    background: rgba(255, 255, 255, 0.22);
    color: #FFFFFF;
}

/* Favorite star on subcategory */
.gf-subcat-fav[b-vn1zxq9wdr] {
    width: 18px;
    height: 18px;
    border: none;
    background: transparent;
    color: rgba(0, 0, 0, 0.25);
    cursor: pointer;
    font-size: 13px;
    padding: 0;
    margin-left: 2px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: color 0.12s, transform 0.12s;
    line-height: 1;
}
.gf-subcat-fav:hover[b-vn1zxq9wdr] {
    color: var(--carbon-1);
    transform: scale(1.15);
}
.gf-subcat-fav.on[b-vn1zxq9wdr] {
    color: #F59E0B;
}
.gf-subcat-fav.on:hover[b-vn1zxq9wdr] {
    color: #F59E0B;
}
.gf-subcat.active .gf-subcat-fav[b-vn1zxq9wdr] {
    color: rgba(255, 255, 255, 0.4);
}
.gf-subcat.active .gf-subcat-fav:hover[b-vn1zxq9wdr] {
    color: #FFFFFF;
}
.gf-subcat.active .gf-subcat-fav.on[b-vn1zxq9wdr] {
    color: #FCD34D;
}

/* Body / Grid */
.gf-body[b-vn1zxq9wdr] {
    flex: 1;
    overflow-y: auto;
    padding: 20px;
}
.gf-grid[b-vn1zxq9wdr] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}

.gf-thumb[b-vn1zxq9wdr] {
    position: relative;
    aspect-ratio: 16/9;
    background: var(--cream);
    border-radius: 8px;
    overflow: hidden;
    cursor: pointer;
    border: 2px solid transparent;
    transition: all 0.15s ease;
}
.gf-thumb:hover[b-vn1zxq9wdr] {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(20, 22, 25, 0.10);
}
.gf-thumb.selected[b-vn1zxq9wdr] {
    border-color: var(--brand-teal-dark);
    box-shadow: 0 0 0 3px rgba(75, 168, 170, 0.18);
}
.gf-thumb.locked[b-vn1zxq9wdr] {
    opacity: 0.7;
    cursor: not-allowed;
}
.gf-thumb.locked[b-vn1zxq9wdr]::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(20, 22, 25, 0.3);
    z-index: 1;
}
.gf-thumb img[b-vn1zxq9wdr] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.gf-badge-pro[b-vn1zxq9wdr] {
    position: absolute;
    top: 6px;
    right: 6px;
    background: linear-gradient(135deg, #FCD34D, #F59E0B);
    color: #78350F;
    font-size: 10px;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 999px;
    letter-spacing: 0.03em;
    z-index: 2;
}
.gf-thumb-check[b-vn1zxq9wdr] {
    position: absolute;
    bottom: 8px;
    right: 8px;
    width: 26px;
    height: 26px;
    background: var(--brand-teal-dark);
    color: var(--text-primary);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
}
.gf-thumb-name[b-vn1zxq9wdr] {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: linear-gradient(to top, rgba(20, 22, 25, 0.7), transparent);
    color: #FFFFFF;
    padding: 16px 8px 6px;
    font-family: 'Figtree', sans-serif;
    font-size: 11px;
    font-weight: 500;
    z-index: 1;
    pointer-events: none;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
}

/* Empty / Loading */
.gf-empty[b-vn1zxq9wdr],
.gf-loading[b-vn1zxq9wdr] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 60px 20px;
    color: var(--carbon-5);
    text-align: center;
    font-family: 'Figtree', sans-serif;
    font-size: 14px;
}
.gf-empty-icon[b-vn1zxq9wdr] {
    color: var(--carbon-6);
    margin-bottom: 12px;
}
.gf-empty h3[b-vn1zxq9wdr] {
    font-family: 'Fraunces', serif;
    font-size: 17px;
    font-weight: 500;
    color: var(--carbon-3);
    margin: 0 0 6px;
}
.gf-empty p[b-vn1zxq9wdr] {
    font-size: 13px;
    margin: 0;
    max-width: 320px;
}

/* Footer */
.gf-footer[b-vn1zxq9wdr] {
    padding: 14px 20px;
    border-top: 1px solid var(--cream-deep);
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}
.gf-footer-spacer[b-vn1zxq9wdr] {
    flex: 1;
}
.gf-btn[b-vn1zxq9wdr] {
    padding: 9px 18px;
    border-radius: 8px;
    font-family: 'Figtree', sans-serif;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    border: 1px solid transparent;
    transition: all 0.12s ease;
}
.gf-btn-secondary[b-vn1zxq9wdr] {
    background: var(--cream);
    color: var(--carbon-3);
    border-color: var(--cream-deep);
}
.gf-btn-secondary:hover[b-vn1zxq9wdr] {
    background: var(--cream-deep);
}
.gf-btn-primary[b-vn1zxq9wdr] {
    background: var(--brand-teal-dark);
    color: var(--text-primary);
}
.gf-btn-primary:hover[b-vn1zxq9wdr] {
    background: var(--brand-teal-dark);
}
.gf-btn-primary:disabled[b-vn1zxq9wdr] {
    background: var(--carbon-6);
    cursor: not-allowed;
    opacity: 0.6;
}
/* Upgrade modal */
.gf-overlay-upgrade[b-vn1zxq9wdr] {
    z-index: 1100;
}
.gf-modal-upgrade[b-vn1zxq9wdr] {
    background: #FFFFFF;
    border-radius: 16px;
    padding: 28px;
    max-width: 400px;
    text-align: center;
    box-shadow: 0 24px 64px rgba(20, 22, 25, 0.3);
}
.gf-upgrade-icon[b-vn1zxq9wdr] {
    margin-bottom: 14px;
}
.gf-modal-upgrade h3[b-vn1zxq9wdr] {
    font-family: 'Fraunces', serif;
    font-size: 18px;
    font-weight: 500;
    color: var(--carbon-1);
    margin: 0 0 8px;
}
.gf-modal-upgrade p[b-vn1zxq9wdr] {
    font-family: 'Figtree', sans-serif;
    font-size: 13.5px;
    color: var(--carbon-5);
    margin: 0 0 22px;
    line-height: 1.5;
}
.gf-upgrade-actions[b-vn1zxq9wdr] {
    display: flex;
    gap: 8px;
    justify-content: center;
}

/* Responsive */
@media (max-width: 720px) {
    .gf-overlay[b-vn1zxq9wdr] {
        padding: 12px;
    }
    .gf-modal[b-vn1zxq9wdr] {
        max-height: 92vh;
    }
    .gf-grid[b-vn1zxq9wdr] {
        grid-template-columns: repeat(2, 1fr);
    }
    .gf-header[b-vn1zxq9wdr] {
        flex-wrap: wrap;
    }
    .gf-search[b-vn1zxq9wdr] {
        max-width: none;
        order: 3;
        flex-basis: 100%;
        margin-left: 0;
    }
}

/* === Estrella Material (reemplaza los caracteres unicode) === */
.gf-tab-star[b-vn1zxq9wdr] {
    font-size: 15px;
    line-height: 1;
    vertical-align: -2px;
    margin-right: 2px;
}

.gf-subcat-fav .material-symbols-rounded[b-vn1zxq9wdr] {
    font-size: 15px;
    line-height: 1;
    font-variation-settings: "FILL" 0, "wght" 500;
}

.gf-subcat-fav.on .material-symbols-rounded[b-vn1zxq9wdr],
.gf-tab-star.icon-filled[b-vn1zxq9wdr] {
    font-variation-settings: "FILL" 1, "wght" 500;
}

/* === Reordenar favoritas (chevrons en los chips del tab Favoritas) === */
.gf-subcat-move[b-vn1zxq9wdr] {
    width: 16px;
    height: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: rgba(0, 0, 0, 0.3);
    cursor: pointer;
    border-radius: 4px;
    transition: color 0.12s, background 0.12s;
}

.gf-subcat-move .material-symbols-rounded[b-vn1zxq9wdr] {
    font-size: 16px;
    line-height: 1;
}

.gf-subcat-move:hover[b-vn1zxq9wdr] {
    color: var(--carbon-1);
    background: rgba(20, 22, 25, 0.08);
}

.gf-subcat-move.off[b-vn1zxq9wdr] {
    visibility: hidden;
    pointer-events: none;
}

.gf-subcat.active .gf-subcat-move[b-vn1zxq9wdr] {
    color: rgba(255, 255, 255, 0.6);
}

.gf-subcat.active .gf-subcat-move:hover[b-vn1zxq9wdr] {
    color: #FFFFFF;
    background: rgba(255, 255, 255, 0.15);
}

/* === Boton quitar fondo (footer) === */
.gf-btn-quitar[b-vn1zxq9wdr] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: transparent;
    border: 1px solid var(--cream-deep);
    color: var(--danger);
}

.gf-btn-quitar .material-symbols-rounded[b-vn1zxq9wdr] {
    font-size: 17px;
    line-height: 1;
}

.gf-btn-quitar:hover[b-vn1zxq9wdr] {
    background: rgba(163, 45, 45, 0.07);
    border-color: rgba(163, 45, 45, 0.35);
}
/* /Components/GaleriaImagenesModal.razor.rz.scp.css */
/* Overlay y modal centrado, mismo patrón visual que GaleriaFondosModal */
.gi-overlay[b-myt6hljgd8] {
    position: fixed;
    inset: 0;
    background: rgba(20, 22, 25, 0.55);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    backdrop-filter: blur(2px);
}

.gi-modal[b-myt6hljgd8] {
    background: #FFFFFF;
    border-radius: 12px;
    width: 90vw;
    max-width: 1100px;
    height: 78vh;
    max-height: 720px;
    display: flex;
    flex-direction: column;
    box-shadow: 0 20px 60px rgba(0,0,0,0.25);
    overflow: hidden;
    position: relative;
}

/* Header */
.gi-header[b-myt6hljgd8] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 20px;
    border-bottom: 1px solid #E5E7EB;
}

.gi-title[b-myt6hljgd8] {
    font-family: 'Fraunces', serif;
    font-size: 20px;
    font-weight: 600;
    color: var(--carbon-2);
    margin: 0;
    flex: 0 0 auto;
}

.gi-search[b-myt6hljgd8] {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 8px;
    background: #F5F5F5;
    border: 1px solid #E0E0E0;
    border-radius: 8px;
    padding: 8px 12px;
    color: #999;
}

.gi-search input[b-myt6hljgd8] {
    border: none;
    background: transparent;
    outline: none;
    flex: 1;
    font-size: 14px;
    color: #333;
}

.gi-btn[b-myt6hljgd8] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    border: none;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.15s;
}

.gi-btn-primary[b-myt6hljgd8] {
    background: var(--brand-teal-primary);
    color: var(--text-primary);
}

.gi-btn-primary:hover:not(.disabled)[b-myt6hljgd8] {
    background: var(--brand-teal-dark);
}

.gi-btn.disabled[b-myt6hljgd8] {
    opacity: 0.5;
    cursor: not-allowed;
}

.gi-close[b-myt6hljgd8] {
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 6px;
    color: #999;
    border-radius: 6px;
}

.gi-close:hover[b-myt6hljgd8] {
    background: #F5F5F5;
    color: #333;
}

/* Tabs */
.gi-tabs[b-myt6hljgd8] {
    display: flex;
    gap: 4px;
    padding: 0 20px;
    border-bottom: 1px solid #E5E7EB;
}

.gi-tab[b-myt6hljgd8] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 14px;
    border: none;
    background: transparent;
    color: #777;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    border-bottom: 2px solid transparent;
    transition: color 0.15s, border-color 0.15s;
}

.gi-tab .material-symbols-rounded[b-myt6hljgd8] { font-size: 16px; }

.gi-tab:hover[b-myt6hljgd8] { color: var(--carbon-2); }

.gi-tab.active[b-myt6hljgd8] {
    color: var(--brand-teal-dark);
    border-bottom-color: var(--brand-teal-primary);
}

/* Alertas */
.gi-alert[b-myt6hljgd8] {
    padding: 10px 20px;
    font-size: 13px;
    text-align: center;
}

.gi-alert-warning[b-myt6hljgd8] {
    background: #FEF3C7;
    color: #92400E;
    border-bottom: 1px solid #FCD34D;
}

.gi-alert-danger[b-myt6hljgd8] {
    background: #FEE2E2;
    color: #991B1B;
    border-bottom: 1px solid #FCA5A5;
}

/* Body */
.gi-body[b-myt6hljgd8] {
    flex: 1;
    overflow-y: auto;
    padding: 20px;
    position: relative;
}

.gi-grid[b-myt6hljgd8] {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 12px;
}

@media (max-width: 900px) {
    .gi-grid[b-myt6hljgd8] { grid-template-columns: repeat(4, 1fr); }
}

@media (max-width: 700px) {
    .gi-grid[b-myt6hljgd8] { grid-template-columns: repeat(3, 1fr); }
}

.gi-thumb[b-myt6hljgd8] {
    aspect-ratio: 1;
    border-radius: 8px;
    overflow: hidden;
    position: relative;
    cursor: pointer;
    background: #F5F5F5;
    border: 2px solid transparent;
    transition: border-color 0.15s, transform 0.1s;
}

.gi-thumb:hover[b-myt6hljgd8] {
    border-color: var(--brand-teal-primary);
    transform: translateY(-1px);
}

.gi-thumb img[b-myt6hljgd8] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.gi-thumb-name[b-myt6hljgd8] {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 4px 6px;
    background: linear-gradient(to top, rgba(0,0,0,0.7), transparent);
    color: white;
    font-size: 11px;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    opacity: 0;
    transition: opacity 0.15s;
}

.gi-thumb:hover .gi-thumb-name[b-myt6hljgd8] { opacity: 1; }

.gi-thumb-delete[b-myt6hljgd8] {
    position: absolute;
    top: 6px;
    right: 6px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: rgba(163, 45, 45, 0.85);
    color: white;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.15s;
}

.gi-thumb:hover .gi-thumb-delete[b-myt6hljgd8] { opacity: 1; }

.gi-confirm-delete[b-myt6hljgd8] {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.75);
    color: white;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    z-index: 2;
}

.gi-confirm-delete p[b-myt6hljgd8] {
    margin: 0;
    font-size: 13px;
    font-weight: 600;
}

.gi-btn-mini[b-myt6hljgd8] {
    padding: 4px 12px;
    border-radius: 4px;
    font-size: 12px;
    border: 1px solid #999;
    background: white;
    color: #333;
    cursor: pointer;
}

.gi-btn-mini-danger[b-myt6hljgd8] {
    background: var(--danger);
    color: white;
    border-color: var(--danger);
}

.gi-thumb-placeholder[b-myt6hljgd8] {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #F5F5F5;
}

.gi-thumb-placeholder .material-symbols-rounded[b-myt6hljgd8] {
    font-size: 32px;
    color: #B0B0B0;
}

/* Skeleton */
.gi-skeleton[b-myt6hljgd8] {
    background: linear-gradient(90deg, #F5F5F5 0%, #EBEBEB 50%, #F5F5F5 100%);
    background-size: 200% 100%;
    animation: gi-skeleton-pulse-b-myt6hljgd8 1.4s ease-in-out infinite;
    border: none;
}

@keyframes gi-skeleton-pulse-b-myt6hljgd8 {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

.gi-uploading-placeholder[b-myt6hljgd8] {
    background: #F0FDFA;
    border: 2px dashed var(--brand-teal-primary);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    cursor: default;
}

.gi-spinner[b-myt6hljgd8] {
    width: 28px;
    height: 28px;
    border: 3px solid var(--brand-teal-primary);
    border-top-color: transparent;
    border-radius: 50%;
    animation: gi-spin-b-myt6hljgd8 0.8s linear infinite;
}

@keyframes gi-spin-b-myt6hljgd8 {
    to { transform: rotate(360deg); }
}

.gi-uploading-placeholder .gi-thumb-name[b-myt6hljgd8] {
    position: static;
    opacity: 1;
    background: transparent;
    color: var(--pz-green);
    font-size: 11px;
}

/* Empty state */
.gi-empty[b-myt6hljgd8] {
    text-align: center;
    padding: 60px 20px;
    color: #999;
}

.gi-empty-icon[b-myt6hljgd8] { color: #CCC; margin-bottom: 12px; }

.gi-empty h3[b-myt6hljgd8] {
    font-family: 'Fraunces', serif;
    color: #555;
    margin: 0 0 6px 0;
    font-size: 17px;
}

.gi-empty p[b-myt6hljgd8] { font-size: 14px; max-width: 380px; margin: 0 auto; }

/* Footer cuota */
.gi-footer[b-myt6hljgd8] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 20px;
    border-top: 1px solid #E5E7EB;
    background: #FAFAFA;
    font-size: 13px;
    color: #555;
}

.gi-cuota-label[b-myt6hljgd8] { flex: 0 0 auto; font-weight: 500; }

.gi-cuota-bar[b-myt6hljgd8] {
    flex: 1;
    height: 8px;
    background: #E5E7EB;
    border-radius: 4px;
    overflow: hidden;
}

.gi-cuota-bar-fill[b-myt6hljgd8] {
    height: 100%;
    background: var(--pz-green);
    transition: width 0.3s, background 0.3s;
}

.gi-cuota-bar-fill.warning[b-myt6hljgd8] { background: #BA7517; }
.gi-cuota-bar-fill.danger[b-myt6hljgd8] { background: var(--danger); }

.gi-cuota-pct[b-myt6hljgd8] { flex: 0 0 auto; min-width: 36px; text-align: right; font-weight: 500; }
/* /Components/Horario/AgendaDrawer.razor.rz.scp.css */
/* AgendaDrawer — tarea o evento de la agenda. */

.ag-overlay[b-rx8uncxmh4] {
    position: fixed; inset: 0;
    background: rgba(0,0,0,.4);
    z-index: 300; cursor: pointer;
}

.ag-panel[b-rx8uncxmh4] {
    position: fixed; top: 0; right: 0; bottom: 0;
    width: 380px; max-width: 100vw;
    background: var(--bg-base);
    border-left: 1px solid var(--border-soft);
    box-shadow: var(--shadow-xl);
    z-index: 301;
    display: flex; flex-direction: column;
    overflow: hidden; outline: none;
}

.ag-header[b-rx8uncxmh4] {
    display: flex; align-items: center;
    padding: 16px 16px 12px;
    border-bottom: 1px solid var(--border-soft);
    background: var(--bg-panel);
    gap: 8px;
    flex-shrink: 0;
}

.ag-tipo-badge[b-rx8uncxmh4] {
    display: inline-flex; align-items: center; gap: 5px;
    padding: 4px 10px; border-radius: 8px;
    font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .07em;
    background: var(--bg-base); color: var(--text-secondary);
    border: 1px solid var(--border-soft);
}
.ag-tipo-badge .msr[b-rx8uncxmh4] { font-size: 14px; }
.badge-tarea[b-rx8uncxmh4]  { color: var(--brand-teal-deep); border-color: var(--brand-teal-deep); }
.badge-evento[b-rx8uncxmh4] { color: var(--ev-com); border-color: var(--ev-com); }

.ag-close[b-rx8uncxmh4] {
    margin-left: auto;
    width: 30px; height: 30px; border-radius: 50%;
    border: 1px solid var(--border-soft);
    background: var(--bg-base);
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; color: var(--text-secondary);
}
.ag-close:hover[b-rx8uncxmh4] { background: var(--bg-hover); }
.ag-close:focus-visible[b-rx8uncxmh4] { outline: 2px solid var(--brand-teal-dark); outline-offset: 2px; }
.ag-close .msr[b-rx8uncxmh4] { font-size: 18px; }

.ag-body[b-rx8uncxmh4] { flex: 1; overflow-y: auto; padding: 20px; }

.ag-titulo[b-rx8uncxmh4] {
    font-family: var(--font-serif);
    font-size: 20px; font-weight: 600; letter-spacing: -.2px;
    color: var(--text-primary); margin: 0 0 14px;
}

.ag-meta[b-rx8uncxmh4] { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; }
.ag-meta-row[b-rx8uncxmh4] { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--text-secondary); font-weight: 600; }
.ag-meta-row .msr[b-rx8uncxmh4] { font-size: 16px; color: var(--text-muted); }

.ag-empalme[b-rx8uncxmh4] {
    display: flex; align-items: center; gap: 5px;
    font-size: 12px; color: var(--ev-com); font-weight: 600;
    background: var(--warn-bg);
    border-radius: var(--radius-md); padding: 6px 10px; margin-bottom: 10px;
}
.ag-empalme .msr[b-rx8uncxmh4] { font-size: 14px; }

.ag-semaforo[b-rx8uncxmh4] {
    display: flex; align-items: center; gap: 6px;
    padding: 8px 12px; border-radius: var(--radius-md);
    font-size: 12px; font-weight: 700; margin-bottom: 12px;
}
.ag-semaforo .msr[b-rx8uncxmh4] { font-size: 16px; }
.ag-semaforo-urgent[b-rx8uncxmh4] { background: var(--error-bg); color: var(--error); }
.ag-semaforo-soon[b-rx8uncxmh4]   { background: var(--warn-bg); color: var(--ev-com); }
.ag-semaforo-ok[b-rx8uncxmh4]     { background: var(--success-bg); color: var(--success); }

.ag-btn-ver[b-rx8uncxmh4] { width: 100%; justify-content: center; }

@media (max-width: 700px) {
    .ag-panel[b-rx8uncxmh4] { width: 100vw; }
}
/* /Components/Horario/AhoraCard.razor.rz.scp.css */
/* AhoraCard — hero "Ahora / siguiente clase" (ADENDA 2 A2.4, H8).
   Color por clase via --disc (nunca hex literal en .razor.css — H-GUARD1). */

.ahora-card[b-gohot3zbnd] {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 16px;
    min-height: 76px;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-md);
    position: relative;
    overflow: hidden;
    cursor: pointer;
    transition: box-shadow var(--t-fast) var(--ease);
}

/* Barra lateral con el color de la clase */
.ahora-card[b-gohot3zbnd]::before {
    content: "";
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 5px;
    background: var(--disc);
}

.ahora-card:hover[b-gohot3zbnd] { box-shadow: var(--shadow-lg); }
.ahora-card:focus-visible[b-gohot3zbnd] { outline: 2px solid var(--brand-teal-dark); outline-offset: 2px; }

/* Estado: en curso */
.ahora-card.live[b-gohot3zbnd]::before { background: var(--success); }

/* Estado: inhabil / sin sesiones */
.ahora-card.off[b-gohot3zbnd]::before { background: var(--ev-nc); }

/* Zona de texto */
.ahora-aw[b-gohot3zbnd] { min-width: 0; flex: 1; }

.ahora-eyebrow[b-gohot3zbnd] {
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    gap: 5px;
    margin-bottom: 2px;
}

.ahora-eyebrow .msr[b-gohot3zbnd] { font-size: 14px; color: var(--brand-teal-deep); }
.ahora-card.live .ahora-eyebrow[b-gohot3zbnd] { color: var(--success-ink); }
.ahora-card.live .ahora-eyebrow .msr[b-gohot3zbnd] { color: var(--success); }
.ahora-eyebrow.ahora-off .msr[b-gohot3zbnd] { color: var(--ev-nc); }

/* Punto latiendo (sesion en curso, se apaga con prefers-reduced-motion) */
.live-dot[b-gohot3zbnd] {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--success);
    display: inline-block;
    animation: ahora-latido-b-gohot3zbnd 1.8s ease infinite;
}

@keyframes ahora-latido-b-gohot3zbnd {
    0%, 100% { opacity: 1; }
    50%       { opacity: .35; }
}

@media (prefers-reduced-motion: reduce) {
    .live-dot[b-gohot3zbnd] { animation: none; }
}

/* Titulo de la sesion */
.ahora-titulo[b-gohot3zbnd] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-serif);
    font-size: 20px;
    font-weight: 600;
    letter-spacing: -.2px;
    line-height: 1.15;
    margin: 2px 0 3px;
}

.ahora-titulo-off[b-gohot3zbnd] {
    font-size: 14px;
    color: var(--text-secondary);
    font-weight: 600;
    margin: 4px 0;
}

/* Chip de grupo con color de clase */
.gchip[b-gohot3zbnd] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    height: 22px;
    padding: 0 8px;
    border-radius: 7px;
    color: var(--bg-panel);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .02em;
    line-height: 1;
    flex-shrink: 0;
}

.ahora-materia[b-gohot3zbnd] { color: var(--text-primary); }

/* Meta: horario, alumnos, empalme */
.ahora-meta[b-gohot3zbnd] {
    font-size: 12px;
    color: var(--text-secondary);
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 5px;
    flex-wrap: wrap;
}

.ahora-meta .dot[b-gohot3zbnd] {
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: var(--text-muted);
    display: inline-block;
}

.ahora-meta .flagx[b-gohot3zbnd] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    color: var(--ev-com);
    font-weight: 700;
}

.ahora-meta .flagx .msr[b-gohot3zbnd] { font-size: 14px; }

/* Sin sesiones */
.ahora-sin[b-gohot3zbnd] {
    font-size: 13px;
    color: var(--text-secondary);
    margin: 4px 0 0;
}

/* Zona de acciones */
.ahora-aacc[b-gohot3zbnd] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

/* visual:accion-del-hero-siempre-visible — decision sellada de Cesar: la accion NO sale
   por default; aparece al hover o al enfocar la tarjeta. El boton se quedaba SIEMPRE
   visible porque :global(.ui-btn) no aplicaba el scope al padre; el idiom probado de la
   casa para alcanzar el <Button> hijo es ::deep .ui-btn (ver EmptyState/UiBtnGuionGuard).
   Sigue enfocable y anunciable por teclado/lector: opacity solo oculta visualmente. */
.ahora-card .ahora-aacc[b-gohot3zbnd]  .ui-btn {
    opacity: 0;
    transform: translateX(4px);
    transition: opacity var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);
}

.ahora-card:hover .ahora-aacc[b-gohot3zbnd]  .ui-btn,
.ahora-card:focus-within .ahora-aacc[b-gohot3zbnd]  .ui-btn {
    opacity: 1;
    transform: none;
}

/* Chevron tactil (H8): oculto por defecto, visible en pointer:coarse */
.ahora-go[b-gohot3zbnd] {
    display: none;
    color: var(--text-muted);
}

.ahora-go .msr[b-gohot3zbnd] { font-size: 22px; }

@media (pointer: coarse) {
    .ahora-card .ahora-aacc[b-gohot3zbnd]  .ui-btn {
        display: none;
    }
    .ahora-go[b-gohot3zbnd] {
        display: inline-flex;
    }
}

/* Cuenta regresiva */
.ahora-cd[b-gohot3zbnd] {
    text-align: right;
    font-size: 12px;
    color: var(--text-muted);
    font-weight: 700;
    white-space: nowrap;
    flex-shrink: 0;
}

.ahora-cd b[b-gohot3zbnd] {
    display: block;
    font-family: var(--font-serif);
    font-size: 17px;
    font-weight: 600;
    color: var(--text-primary);
}

/* visual:hero-desarmado-en-movil — a <=639px el hero se apila limpio (columna, ancho
   completo), la accion baja abajo y la cuenta se alinea a la izquierda; el separador que
   colgaba tras el empalme (flagx) se suprime. Replica el mockup (@media 640px). */
@media (max-width: 639px) {
    .ahora-card[b-gohot3zbnd] {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
        padding: 13px 15px;
        border-radius: var(--radius-lg);
    }

    .ahora-aacc[b-gohot3zbnd] {
        justify-content: space-between;
    }

    .ahora-aacc[b-gohot3zbnd]  .ui-btn {
        flex: 1;
        justify-content: center;
    }

    .ahora-cd[b-gohot3zbnd] {
        text-align: left;
    }

    .ahora-meta .flagx[b-gohot3zbnd] {
        flex-basis: 100%;
    }

    .ahora-meta .flagx + .dot[b-gohot3zbnd] {
        display: none;
    }
}
/* /Components/Horario/MesGrid.razor.rz.scp.css */
/*
 * MesGrid.razor.css — estilos de la rejilla mensual del /horario.
 * NO contiene hex literales de paleta de marca (guard H-GUARD1).
 * Todos los colores vienen de tokens.css via var(--...).
 * Tarea 2.3 (W2).
 */

/* Tarjeta contenedora del mes */
.mo-card[b-bet2pep6hg] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-2xl);
    box-shadow: var(--shadow-md);
    overflow: hidden;
}

/* Banda superior del periodo */
.mo-band[b-bet2pep6hg] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
    background: var(--ev-eval-bg);
    color: var(--ev-eval);
    font-size: 12.5px;
    font-weight: 600;
    border-bottom: 1px solid var(--border-soft);
}

    .mo-band .msr[b-bet2pep6hg] {
        font-size: 16px;
    }

    .mo-band .lim[b-bet2pep6hg] {
        margin-left: auto;
        display: inline-flex;
        align-items: center;
        gap: 5px;
        font-weight: 700;
    }

        .mo-band .lim .msr[b-bet2pep6hg] {
            font-size: 15px;
        }

/* Tabla del mes */
.mo[b-bet2pep6hg] {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

    .mo th[b-bet2pep6hg] {
        padding: 10px 6px;
        font-size: 10.5px;
        font-weight: 700;
        letter-spacing: .08em;
        text-transform: uppercase;
        color: var(--text-muted);
        text-align: center;
        background: var(--bg-cream);
        border-bottom: 1px solid var(--border-soft);
    }

    .mo td[b-bet2pep6hg] {
        height: 112px;
        vertical-align: top;
        padding: 0;
        border-right: 1px solid var(--border-soft);
        border-bottom: 1px solid var(--border-soft);
    }

        .mo td:last-child[b-bet2pep6hg] {
            border-right: 0;
        }

    .mo tr:last-child td[b-bet2pep6hg] {
        border-bottom: 0;
    }

/* Boton de celda del dia */
.day[b-bet2pep6hg] {
    width: 100%;
    height: 100%;
    text-align: left;
    padding: 7px 8px 8px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    background: transparent;
    border: none;
    cursor: pointer;
    transition: background var(--t-fast, 120ms) var(--ease);
}

    .day:hover[b-bet2pep6hg] {
        background: var(--bg-cream);
    }

    .day:focus-visible[b-bet2pep6hg] {
        outline: 2px solid var(--brand-teal-dark);
        outline-offset: -3px;
    }

    .day .top[b-bet2pep6hg] {
        display: flex;
        align-items: center;
        gap: 6px;
    }

    /* Numero del dia */
    .day .n[b-bet2pep6hg] {
        font-size: 13px;
        font-weight: 600;
        color: var(--text-secondary);
        font-variant-numeric: tabular-nums;
        min-width: 22px;
        height: 22px;
        display: inline-grid;
        place-items: center;
        border-radius: 7px;
    }

    .day.today .n[b-bet2pep6hg] {
        background: var(--brand-teal-primary);
        color: var(--text-primary);
    }

    .day.other .n[b-bet2pep6hg] {
        color: var(--text-muted);
        opacity: .6;
    }

    .day .mring-w[b-bet2pep6hg] {
        margin-left: auto;
    }

/* Mini-anillo SVG */
.mring[b-bet2pep6hg] {
    position: relative;
    width: 26px;
    height: 26px;
    display: grid;
    place-items: center;
}

    .mring svg[b-bet2pep6hg] {
        position: absolute;
        inset: 0;
        transform: rotate(-90deg);
    }

    .mring circle[b-bet2pep6hg] {
        fill: none;
        stroke-width: 3;
    }

    .mring .track[b-bet2pep6hg] {
        stroke: var(--cream-deep);
    }

    .mring .prog[b-bet2pep6hg] {
        stroke: var(--success);
        stroke-linecap: round;
        stroke-dasharray: 63;
        /* stroke-dashoffset viene por inline style */
        transition: stroke-dashoffset 700ms var(--ease, ease);
    }

    .mring.partial .prog[b-bet2pep6hg] {
        stroke: var(--warning);
    }

    .mring .lbl[b-bet2pep6hg] {
        font-size: 8.5px;
        font-weight: 700;
        color: var(--text-secondary);
        position: relative;
        z-index: 1;
    }

/* Puntos de sesion */
.dots[b-bet2pep6hg] {
    display: flex;
    gap: 3px;
    flex-wrap: wrap;
    align-items: center;
}

    .dots i[b-bet2pep6hg] {
        width: 6px;
        height: 6px;
        border-radius: 50%;
        background: var(--disc);
        opacity: .75;
        font-style: normal;
    }

    .dots i.pend[b-bet2pep6hg] {
        /* Sin lista: ambar — no usa --disc */
        background: var(--warning);
        opacity: 1;
    }

    .dots i.off[b-bet2pep6hg] {
        background: var(--border-med);
    }

    .dots small[b-bet2pep6hg] {
        font-size: 10px;
        color: var(--text-muted);
        font-weight: 600;
        margin-left: 2px;
    }

/* Fondos de dias especiales */
.day.nc[b-bet2pep6hg] {
    background: repeating-linear-gradient(
        -45deg,
        transparent 0 9px,
        rgba(51, 65, 85, .06) 9px 10px
    );
}

.day.cte[b-bet2pep6hg] {
    background: repeating-linear-gradient(
        -45deg,
        transparent 0 9px,
        rgba(67, 56, 202, .07) 9px 10px
    );
}

.day.fuera[b-bet2pep6hg] {
    background: repeating-linear-gradient(
        -45deg,
        transparent 0 9px,
        rgba(139, 144, 152, .08) 9px 10px
    );
}

/* Chips de agenda/calendario */
.chips[b-bet2pep6hg] {
    display: flex;
    flex-direction: column;
    gap: 3px;
    margin-top: auto;
}

.ev-bar[b-bet2pep6hg] {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    font-weight: 600;
    padding: 3px 6px;
    border-radius: 5px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    line-height: 1.3;
}

    .ev-bar .msr[b-bet2pep6hg] {
        font-size: 12px;
        flex-shrink: 0;
    }

    .ev-bar .t[b-bet2pep6hg] {
        overflow: hidden;
        text-overflow: ellipsis;
    }

.ev-nc[b-bet2pep6hg]    { background: var(--ev-nc-bg);    color: var(--ev-nc); }
.ev-eval[b-bet2pep6hg]  { background: var(--ev-eval-bg);  color: var(--ev-eval); }
.ev-cte[b-bet2pep6hg]   { background: var(--ev-cte-bg);   color: var(--ev-cte); }
.ev-com[b-bet2pep6hg]   { background: var(--ev-com-bg);   color: var(--ev-com); }
.ev-ciclo[b-bet2pep6hg] { background: var(--ev-ciclo-bg); color: var(--ev-ciclo); }
.ev-tram[b-bet2pep6hg]  { background: var(--ev-tram-bg, var(--bg-cream)); color: var(--ev-tram, var(--text-secondary)); }

.ev-tarea[b-bet2pep6hg] {
    background: var(--bg-cream);
    color: var(--text-secondary);
    border: 1px solid var(--border-soft);
}

    .ev-tarea.urgent[b-bet2pep6hg] {
        background: rgba(163, 45, 45, .08);
        color: var(--danger);
        border-color: transparent;
    }

    .ev-tarea.soon[b-bet2pep6hg] {
        background: rgba(186, 117, 23, .10);
        color: var(--warning-ink);
        border-color: transparent;
    }

.ev-more[b-bet2pep6hg] {
    font-size: 10.5px;
    font-weight: 700;
    color: var(--text-muted);
    padding: 1px 6px;
}

/* Badges movil (mo-m) */
.badges[b-bet2pep6hg] {
    display: flex;
    gap: 3px;
    margin-top: auto;
}

    .badges i[b-bet2pep6hg] {
        width: 12px;
        height: 4px;
        border-radius: 2px;
        font-style: normal;
    }

/* Leyenda */
.legend[b-bet2pep6hg] {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    font-size: 12px;
    color: var(--text-secondary);
    margin-top: 12px;
    padding: 11px 14px;
    background: var(--bg-cream);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
}

    .legend .it[b-bet2pep6hg] {
        display: flex;
        align-items: center;
        gap: 5px;
    }

    .legend .msr[b-bet2pep6hg] {
        font-size: 15px;
    }

    .legend .def[b-bet2pep6hg] {
        margin-left: auto;
        color: var(--text-muted);
    }

/* Vista compacta movil (oculta en desktop, visible en <=640px via Horario.razor.css) */
.mo-m[b-bet2pep6hg] {
    display: none;
}

    .mo-m table[b-bet2pep6hg] {
        width: 100%;
        border-collapse: collapse;
        table-layout: fixed;
    }

    .mo-m th[b-bet2pep6hg] {
        padding: 8px 4px;
        font-size: 10px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: .06em;
        color: var(--text-muted);
        background: var(--bg-cream);
        border-bottom: 1px solid var(--border-soft);
    }

    .mo-m td[b-bet2pep6hg] {
        height: 76px;
        border-right: 1px solid var(--border-soft);
        border-bottom: 1px solid var(--border-soft);
        padding: 0;
        vertical-align: top;
    }

        .mo-m td:last-child[b-bet2pep6hg] {
            border-right: 0;
        }

    .mo-m .day[b-bet2pep6hg] {
        height: 76px;
        padding: 6px 4px;
        gap: 2px;
    }

/* prefers-reduced-motion: quitar transiciones del anillo */
@media (prefers-reduced-motion: reduce) {
    .mring .prog[b-bet2pep6hg] {
        transition: none !important;
    }

    .day[b-bet2pep6hg] {
        transition: none !important;
    }
}

/* Movil: tabla compacta visible, tabla normal oculta */
@media (max-width: 640px) {
    .mo-card > .mo[b-bet2pep6hg] {
        display: none;
    }

    .mo-m[b-bet2pep6hg] {
        display: block;
    }
}

/* Touch targets minimos 44px */
@media (pointer: coarse) {
    .day[b-bet2pep6hg] {
        min-height: 44px;
    }
}
/* /Components/Horario/ResumenSemana.razor.rz.scp.css */
/* ResumenSemana — KPI cinta + pendientes separados (H6, ADENDA 2 A2.3). */

/* KPI cinta */
.rs-kpis[b-omnflmhzgl] {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin: 12px 0;
}

.rs-kpi[b-omnflmhzgl] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 12px;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    font-size: 13px;
    color: var(--text-secondary);
    font-weight: 600;
}

.rs-kpi-icon[b-omnflmhzgl] { font-size: 17px; color: var(--brand-teal-deep); }
.rs-kpi-val[b-omnflmhzgl]  { font-family: var(--font-serif); font-size: 22px; font-weight: 600; color: var(--text-primary); line-height: 1; }
.rs-kpi-lbl[b-omnflmhzgl]  { font-size: 12px; color: var(--text-secondary); }

/* Celdas de dos lineas (listas, por vencer, fecha clave) */
.rs-kpi-aw[b-omnflmhzgl] { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.rs-kpi-eyebrow[b-omnflmhzgl] {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--text-muted);
}
.rs-kpi-bar[b-omnflmhzgl] {
    display: block;
    height: 5px;
    border-radius: 999px;
    background: var(--cream-deep);
    overflow: hidden;
    margin-top: 4px;
}
.rs-kpi-bar i[b-omnflmhzgl] {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: var(--success);
    transition: width var(--t-slow, .5s) var(--ease);
}
.rs-kpi-chip[b-omnflmhzgl] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    align-self: flex-start;
    margin-top: 2px;
    font-size: 11px;
    font-weight: 700;
    padding: 1px 8px;
    border-radius: 999px;
    background: var(--error-bg);
    color: var(--danger);
}
.rs-kpi-chip .msr[b-omnflmhzgl] { font-size: 12px; }
.rs-kpi-keyttl[b-omnflmhzgl] {
    font-family: var(--font-serif);
    font-size: 15px;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.2;
}

@media (max-width: 700px) {
    .rs-kpi[b-omnflmhzgl] { flex: 1 1 calc(50% - 8px); }
    .rs-kpi-key[b-omnflmhzgl] { flex-basis: 100%; }
}

.rs-kpi-warn .rs-kpi-icon[b-omnflmhzgl] { color: var(--ev-com); }
.rs-kpi-warn .rs-kpi-val[b-omnflmhzgl]  { color: var(--ev-com); }

.rs-kpi-ok .rs-kpi-icon[b-omnflmhzgl] { color: var(--success); }
.rs-kpi-ok .rs-kpi-val[b-omnflmhzgl]  { color: var(--success); }

/* Lista de evaluados por calificar */
.rs-eval-list[b-omnflmhzgl] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-bottom: 12px;
}

.rs-eval-row[b-omnflmhzgl] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
}

.rs-eval-icon[b-omnflmhzgl] { font-size: 18px; color: var(--text-muted); flex-shrink: 0; }
.rs-eval-aw[b-omnflmhzgl]   { flex: 1; min-width: 0; }
.rs-eval-txt[b-omnflmhzgl]  { display: block; font-size: 13px; font-weight: 600; color: var(--text-primary); }
.rs-eval-sub[b-omnflmhzgl]  { display: block; font-size: 11px; color: var(--text-muted); }
.rs-eval-pct[b-omnflmhzgl]  { font-size: 12px; font-weight: 700; color: var(--ev-com); white-space: nowrap; flex-shrink: 0; }

/* Contenedor de dos columnas */
.rs-pendientes[b-omnflmhzgl] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-top: 12px;
}

@media (max-width: 700px) {
    .rs-pendientes[b-omnflmhzgl] { grid-template-columns: 1fr; }
}

.pcol[b-omnflmhzgl] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    padding: 12px;
}

.pcol-heading[b-omnflmhzgl] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--text-muted);
    margin: 0 0 10px;
}

.pcol-heading .msr[b-omnflmhzgl] { font-size: 15px; }

.pcol-list[b-omnflmhzgl] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.pcol-item[b-omnflmhzgl] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 8px 0;
    border-bottom: 1px solid var(--border-soft);
}

.pcol-item:last-child[b-omnflmhzgl] { border-bottom: none; }

.pitem-icon[b-omnflmhzgl] { font-size: 17px; color: var(--text-muted); margin-top: 1px; flex-shrink: 0; }
.pitem-aw[b-omnflmhzgl]   { flex: 1; min-width: 0; }
.pitem-txt[b-omnflmhzgl]  { display: block; font-size: 13px; font-weight: 600; color: var(--text-primary); }
.pitem-sub[b-omnflmhzgl]  { display: block; font-size: 11px; color: var(--text-muted); margin-top: 2px; }

.pitem-accion[b-omnflmhzgl] {
    font-size: 11px;
    padding: 3px 8px;
    flex-shrink: 0;
    align-self: flex-start;
}

.pitem-warn .pitem-icon[b-omnflmhzgl] { color: var(--ev-com); }
.pitem-urgent .pitem-icon[b-omnflmhzgl] { color: var(--error); }
/* /Components/Horario/SemanaGrid.razor.rz.scp.css */
/* SemanaGrid.razor.css — rejilla horaria de la vista Semana
   Todos los colores via tokens. Ningun hex literal (H-GUARD1).
   ================================================================= */

/* ------------------------------------------------------------------
   Contenedor de la rejilla
   ------------------------------------------------------------------ */
.wk-grid[b-a64tnu8heo] {
    display: grid;
    grid-template-rows: auto auto 1fr;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* ------------------------------------------------------------------
   Filas de estructura
   ------------------------------------------------------------------ */
.wk-head-row[b-a64tnu8heo],
.wk-all-row[b-a64tnu8heo],
.wk-body-row[b-a64tnu8heo] {
    display: grid;
    grid-template-columns: var(--wk-time-w, 56px) repeat(5, minmax(0, 1fr));
}

/* D4: solo cuando hay sesiones en sabado/domingo la semana se pinta con 7 pistas */
.wk-grid.wk-7 .wk-head-row[b-a64tnu8heo],
.wk-grid.wk-7 .wk-all-row[b-a64tnu8heo],
.wk-grid.wk-7 .wk-body-row[b-a64tnu8heo] {
    grid-template-columns: var(--wk-time-w, 56px) repeat(7, minmax(0, 1fr));
}

/* ------------------------------------------------------------------
   Encabezados de dia
   ------------------------------------------------------------------ */
.wk-hcorner[b-a64tnu8heo],
.wk-allcorner[b-a64tnu8heo] {
    background: var(--bg-cream);
    border-bottom: 1px solid var(--border-soft);
    padding: 8px 0;
}

.wk-allcorner[b-a64tnu8heo] {
    font-size: 10px;
    font-weight: 700;
    color: var(--text-muted);
    letter-spacing: .06em;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding-right: 8px;
}

.wk-h[b-a64tnu8heo] {
    padding: 8px 12px 8px;
    border-left: 1px solid var(--border-soft);
    border-bottom: 1px solid var(--border-soft);
    display: grid;
    grid-template-columns: auto 1fr auto;
    grid-template-rows: auto auto;
    gap: 2px;
    background: var(--bg-cream);
    cursor: default;
    transition: background var(--t-fast) var(--ease);
}

.wk-h:hover[b-a64tnu8heo] {
    background: var(--bg-light-teal);
}

.wk-h .dow[b-a64tnu8heo] {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--text-muted);
    grid-column: 1;
}

.wk-h .dn[b-a64tnu8heo] {
    font-family: var(--font-serif);
    font-size: 24px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: -.3px;
    grid-column: 1;
}

.wk-h .dn .today-mark[b-a64tnu8heo] {
    display: inline-grid;
    place-items: center;
    min-width: 34px;
    height: 34px;
    padding: 0 6px;
    border-radius: 10px;
    background: var(--brand-teal-primary, var(--brand-teal));
    color: var(--text-primary);
}

.wk-h .ring[b-a64tnu8heo] {
    grid-row: 1 / span 2;
    grid-column: 3;
    display: flex;
    align-items: center;
}

.wk-h .sub[b-a64tnu8heo] {
    grid-column: 1 / -1;
    margin-top: 6px;
    font-size: 11.5px;
    color: var(--text-secondary);
    display: flex;
    align-items: center;
    gap: 5px;
    min-height: 16px;
    flex-wrap: wrap;
}

.wk-h .sub .msr[b-a64tnu8heo] {
    font-size: 14px;
}

.wk-h.today .dow[b-a64tnu8heo] {
    color: var(--brand-teal-deep);
}

/* ------------------------------------------------------------------
   Mini-anillo (mring)
   ------------------------------------------------------------------ */
.mring[b-a64tnu8heo] {
    position: relative;
    width: 26px;
    height: 26px;
    display: grid;
    place-items: center;
}

.mring svg[b-a64tnu8heo] {
    position: absolute;
    inset: 0;
    transform: rotate(-90deg);
    width: 26px;
    height: 26px;
}

.mring .track[b-a64tnu8heo] {
    stroke: var(--cream-deep);
}

.mring .prog[b-a64tnu8heo] {
    stroke: var(--success);
    stroke-linecap: round;
    stroke-dasharray: 63;
    stroke-dashoffset: 63;
    transition: stroke-dashoffset 700ms var(--ease);
}

.mring.partial .prog[b-a64tnu8heo] {
    stroke: var(--warning);
}

.mring .lbl[b-a64tnu8heo] {
    font-size: 8.5px;
    font-weight: 700;
    color: var(--text-secondary);
}

/* ------------------------------------------------------------------
   Franja "Todo el dia"
   ------------------------------------------------------------------ */
.wk-all[b-a64tnu8heo] {
    border-left: 1px solid var(--border-soft);
    border-bottom: 1px solid var(--border-soft);
    padding: 4px 6px;
    display: flex;
    gap: 4px;
    align-items: center;
    flex-wrap: wrap;
    min-height: 32px;
    background: var(--bg-panel);
}

/* Chips de agenda */
.achip[b-a64tnu8heo] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 11px;
    font-weight: 600;
    padding: 2px 7px;
    border-radius: 5px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 120px;
}

.achip .msr[b-a64tnu8heo] {
    font-size: 12px;
    flex-shrink: 0;
}

.achip.urgent[b-a64tnu8heo] {
    background: rgba(163, 45, 45, .1);
    color: var(--danger);
}

.achip.soon[b-a64tnu8heo] {
    background: rgba(186, 117, 23, .1);
    color: var(--warning-ink);
}

.achip.com[b-a64tnu8heo] {
    background: var(--ev-com-bg);
    color: var(--ev-com);
}

.achip.ev-chip[b-a64tnu8heo] {
    background: var(--bg-light-teal);
    color: var(--info-ink, var(--info));
}

.achip.more[b-a64tnu8heo] {
    background: var(--bg-cream);
    color: var(--text-muted);
    font-weight: 700;
}

/* ------------------------------------------------------------------
   Columna de horas (wk-times)
   ------------------------------------------------------------------ */
.wk-times[b-a64tnu8heo] {
    position: relative;
    border-right: 1px solid var(--border-soft);
    background: var(--bg-cream);
}

.wk-time[b-a64tnu8heo] {
    position: absolute;
    right: 8px;
    font-size: 10.5px;
    font-weight: 700;
    color: var(--text-muted);
    transform: translateY(-50%);
    white-space: nowrap;
}

/* Etiqueta de la linea de ahora en wk-times */
.now-lbl[b-a64tnu8heo] {
    position: absolute;
    right: 8px;
    transform: translateY(-50%);
    font-size: 10.5px;
    font-weight: 800;
    color: #fff;
    background: var(--danger);
    padding: 1px 6px;
    border-radius: 5px;
    z-index: 6;
}

/* ------------------------------------------------------------------
   Columnas de dia
   ------------------------------------------------------------------ */
.wk-col[b-a64tnu8heo] {
    position: relative;
    border-left: 1px solid var(--border-soft);
}

.wk-col.today[b-a64tnu8heo] {
    background: rgba(109, 199, 208, .06);
}

.wk-col.nc[b-a64tnu8heo],
.wk-col.cte[b-a64tnu8heo] {
    background-image: repeating-linear-gradient(
        -45deg,
        transparent 0 9px,
        rgba(51, 65, 85, .06) 9px 10px
    );
}

.wk-col.cte[b-a64tnu8heo] {
    background-image: repeating-linear-gradient(
        -45deg,
        transparent 0 9px,
        rgba(67, 56, 202, .07) 9px 10px
    );
}

.wk-col.fuera[b-a64tnu8heo] {
    background: repeating-linear-gradient(
        -45deg,
        transparent 0 9px,
        rgba(139, 144, 152, .08) 9px 10px
    );
}

/* Lineas de hora (30 min) */
.wk-col .hl[b-a64tnu8heo] {
    position: absolute;
    left: 0;
    right: 0;
    border-top: 1px solid var(--border-soft);
    pointer-events: none;
}

.wk-col .hl.half[b-a64tnu8heo] {
    border-top-style: dashed;
    border-top-color: var(--cream-deep);
}

/* Nota de columna en escritorio (fuera-ciclo).
   Solo se usa para dias fuera del ciclo escolar, que no tienen sesiones: la nota
   ocupa el espacio vacio con z-index sobre la trama y deja pasar el clic (pointer-events:none). */
.wk-col .nota[b-a64tnu8heo] {
    position: absolute;
    left: 8px;
    right: 8px;
    top: 12px;
    z-index: 6;
    pointer-events: none;
    text-align: center;
    font-size: 12px;
    color: var(--text-secondary);
    font-weight: 500;
    padding: 8px 10px;
    background: rgba(255, 255, 255, .96);
    border: 1px dashed var(--border-med);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
}

/* ------------------------------------------------------------------
   Banda de receso
   ------------------------------------------------------------------ */
.receso[b-a64tnu8heo] {
    position: absolute;
    left: 0;
    right: 0;
    background: var(--bg-cream);
    border-top: 1px dashed var(--border-med);
    border-bottom: 1px dashed var(--border-med);
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}

.receso span[b-a64tnu8heo] {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.wk-times .receso[b-a64tnu8heo] {
    justify-content: flex-end;
    padding-right: 8px;
    border-left: 0;
}

/* ------------------------------------------------------------------
   Linea de ahora
   ------------------------------------------------------------------ */
.now-line[b-a64tnu8heo] {
    position: absolute;
    left: 0;
    right: 0;
    height: 0;
    border-top: 2px solid var(--danger);
    z-index: 5;
    pointer-events: none;
}

.now-line[b-a64tnu8heo]::before {
    content: "";
    position: absolute;
    left: -1px;
    top: -5px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--danger);
}

/* ------------------------------------------------------------------
   Evento del muro con hora (.evb)
   ------------------------------------------------------------------ */
.evb[b-a64tnu8heo] {
    position: absolute;
    right: 6px;
    width: 55%;
    z-index: 4;
    text-align: left;
    padding: 5px 8px;
    border-radius: var(--radius-md);
    background: var(--ev-com-bg);
    border: 1.5px dashed var(--ev-com);
    color: var(--ev-com);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    gap: 1px;
    box-shadow: var(--shadow-sm);
    cursor: pointer;
    transition: transform var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);
}

.evb:hover[b-a64tnu8heo] {
    transform: translateY(-1px);
    box-shadow: var(--shadow-md);
}

.evb .l1[b-a64tnu8heo] {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.15;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.evb .l1 .msr[b-a64tnu8heo] {
    font-size: 14px;
}

.evb .l2[b-a64tnu8heo] {
    font-size: 10.5px;
    font-weight: 600;
    opacity: .9;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* visual:evento-tapa-el-bloque — el carril del evento (55%) se encimaba con el texto de
   la sesion. En columna angosta el evento se vuelve chip: solo su hora (.sm), el titulo
   completo queda en el aria-label y en el panel. Replica el mockup (@media 1366px). */
.evb .l1 .sm[b-a64tnu8heo] {
    display: none;
}

@media (max-width: 1366px) {
    .evb .l1 .lg[b-a64tnu8heo] {
        display: none;
    }

    .evb .l1 .sm[b-a64tnu8heo] {
        display: inline;
    }

    .evb .l2[b-a64tnu8heo] {
        display: none;
    }
}

/* ------------------------------------------------------------------
   Leyenda (al pie de la semana — se puede usar externamente)
   ------------------------------------------------------------------ */
.legend[b-a64tnu8heo] {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    font-size: 12px;
    color: var(--text-secondary);
    margin-top: 12px;
    padding: 11px 14px;
    background: var(--bg-cream);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
}

.legend .it[b-a64tnu8heo] {
    display: flex;
    align-items: center;
    gap: 5px;
}

.legend .msr[b-a64tnu8heo] {
    font-size: 15px;
}

.legend .sw[b-a64tnu8heo] {
    width: 10px;
    height: 10px;
    border-radius: 3px;
}

.legend .lg-pct[b-a64tnu8heo] { font-weight: 800; font-size: 11px; }
.legend .lg-stars[b-a64tnu8heo] { font-size: 12px; letter-spacing: -0.5px; }

/* ------------------------------------------------------------------
   Vista movil (R7, spec 3.8): chips de dia + lista vertical del dia.
   Oculta en escritorio; sustituye la rejilla y la leyenda < 640 px.
   ------------------------------------------------------------------ */
.wk-m[b-a64tnu8heo] { display: none; }

@media (max-width: 639px) {
    .wk-grid[b-a64tnu8heo]   { display: none; }
    .wk-legend[b-a64tnu8heo] { display: none; }
    .wk-m[b-a64tnu8heo]      { display: block; }
}

.daychips[b-a64tnu8heo] {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 6px;
    padding: 4px 0 8px;
}

.dchip[b-a64tnu8heo] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    padding: 8px 4px 6px;
    border-radius: var(--radius-lg);
    border: 1px solid var(--border-soft);
    background: var(--bg-cream);
    min-height: 44px;
    cursor: pointer;
    transition: background var(--t-fast) var(--ease);
}

.dchip .dow[b-a64tnu8heo] { font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--text-muted); }
.dchip .dn[b-a64tnu8heo]  { font-family: var(--font-serif); font-size: 18px; font-weight: 600; line-height: 1; color: var(--text-primary); }
.dchip[aria-selected="true"][b-a64tnu8heo] { background: var(--text-primary); border-color: var(--text-primary); }
.dchip[aria-selected="true"] .dow[b-a64tnu8heo],
.dchip[aria-selected="true"] .dn[b-a64tnu8heo] { color: #fff; }
.dchip[aria-selected="true"] .mring .lbl[b-a64tnu8heo] { color: #fff; }
.dchip.today[b-a64tnu8heo] { border-color: var(--brand-teal); }
.dchip .fl[b-a64tnu8heo] { font-size: 16px; color: var(--ev-nc); }
.dchip .mring[b-a64tnu8heo] { width: 22px; height: 22px; }
.dchip .mring svg[b-a64tnu8heo] { width: 22px; height: 22px; }
.dchip .mring .lbl[b-a64tnu8heo] { font-size: 7.5px; }
.dchip:focus-visible[b-a64tnu8heo] { outline: 2px solid var(--brand-teal-dark); outline-offset: 2px; }

.dlist[b-a64tnu8heo] { padding: 8px 0 4px; display: flex; flex-direction: column; gap: 8px; }
.dlist .dh[b-a64tnu8heo] { display: flex; align-items: baseline; gap: 8px; padding: 6px 2px 2px; flex-wrap: wrap; }
.dlist .dh b[b-a64tnu8heo] { font-family: var(--font-serif); font-size: 20px; font-weight: 600; color: var(--text-primary); }
.dlist .dh span[b-a64tnu8heo] { font-size: 12px; color: var(--text-muted); display: inline-flex; align-items: center; gap: 4px; }
.dlist .nota[b-a64tnu8heo] {
    font-size: 13px;
    color: var(--text-secondary);
    padding: 14px 12px;
    text-align: center;
    border: 1px dashed var(--border-med);
    border-radius: var(--radius-md);
}

.mallday[b-a64tnu8heo] { display: flex; flex-wrap: wrap; gap: 6px; }

/* Sesion en flujo vertical: ::deep alcanza el .ses del componente hijo (que es
   position:absolute en la rejilla). En la lista movil va estatico, apilado. */
.mses-row[b-a64tnu8heo] { position: relative; min-height: 64px; }
.mses-row[b-a64tnu8heo]  .ses {
    position: static;
    left: auto;
    right: auto;
    min-height: 64px;
    animation: none;
}

.mevb[b-a64tnu8heo] {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    text-align: left;
    padding: 10px 12px;
    border-radius: var(--radius-md);
    background: var(--ev-com-bg);
    border: 1.5px dashed var(--ev-com);
    color: var(--ev-com);
    min-height: 52px;
    cursor: pointer;
}
.mevb .msr[b-a64tnu8heo] { font-size: 18px; flex-shrink: 0; }
.mevb-tx[b-a64tnu8heo] { font-size: 13px; font-weight: 700; flex: 1; min-width: 0; }
.mevb-h[b-a64tnu8heo]  { font-size: 11.5px; font-weight: 600; opacity: .9; white-space: nowrap; }

/* ------------------------------------------------------------------
   Animaciones (solo si el usuario lo acepta)
   ------------------------------------------------------------------ */
@media (prefers-reduced-motion: no-preference) {
    .now-line[b-a64tnu8heo]::before {
        animation: latido-b-a64tnu8heo 2.2s var(--ease) infinite;
    }

    .now-line[b-a64tnu8heo]::after {
        content: "";
        position: absolute;
        left: -1px;
        top: -5px;
        width: 8px;
        height: 8px;
        border-radius: 50%;
        background: var(--danger);
        opacity: .35;
        animation: onda-b-a64tnu8heo 2.2s var(--ease) infinite;
    }

    @keyframes latido-b-a64tnu8heo {
        0%, 100% { transform: scale(1); }
        50% { transform: scale(1.3); }
    }

    @keyframes onda-b-a64tnu8heo {
        0% { transform: scale(1); opacity: .35; }
        100% { transform: scale(3.2); opacity: 0; }
    }
}

.daychips.wk-7[b-a64tnu8heo] {
    grid-template-columns: repeat(7, minmax(0, 1fr));
}
/* /Components/Horario/SesionBloque.razor.rz.scp.css */
/* SesionBloque.razor.css — bloque de sesion en la rejilla semanal
   Todos los colores salen de tokens. Ningun hex literal fuera del :root
   de tokens.css (H-GUARD1). El color de clase viaja en --disc.
   ========================================================================= */

/* ------------------------------------------------------------------
   Bloque base (.ses — position:absolute es responsabilidad del padre SemanaGrid)
   ------------------------------------------------------------------ */
.ses[b-q2bzn1smzl] {
    position: absolute;
    left: 6px;
    right: 6px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    text-align: left;
    padding: 6px 9px 6px 11px;
    border-radius: var(--radius-md);
    overflow: hidden;
    background: color-mix(in srgb, var(--disc) 9%, var(--bg-panel));
    border: 1px solid color-mix(in srgb, var(--disc) 22%, var(--border-soft));
    box-shadow: var(--shadow-sm);
    cursor: pointer;
    transition:
        transform var(--t-fast) var(--ease),
        box-shadow var(--t-fast) var(--ease),
        border-color var(--t-fast) var(--ease);
}

/* Barra izquierda de color */
.ses[b-q2bzn1smzl]::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: var(--disc);
}

.ses:hover[b-q2bzn1smzl] {
    transform: translateY(-1px);
    box-shadow: var(--shadow-md);
    border-color: color-mix(in srgb, var(--disc) 45%, var(--border-soft));
    z-index: 3;
}

.ses:focus-visible[b-q2bzn1smzl] {
    outline: 2px solid var(--brand-teal-dark);
    outline-offset: 1px;
    z-index: 3;
}

/* ------------------------------------------------------------------
   Linea 1: chip de grupo + materia
   ------------------------------------------------------------------ */
.ses .l1[b-q2bzn1smzl] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex-shrink: 0;
    min-height: 15px;
}

.ses .l1 .g[b-q2bzn1smzl] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 26px;
    height: 17px;
    padding: 0 6px;
    border-radius: 6px;
    background: var(--disc);
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .02em;
    line-height: 1;
    flex-shrink: 0;
    box-shadow: 0 1px 2px color-mix(in srgb, var(--disc) 35%, transparent);
}

.ses .l1 .m[b-q2bzn1smzl] {
    color: var(--text-secondary);
    font-weight: 600;
    margin-left: -1px;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Sesion futura: chip sin fondo solido */
.ses.futura .l1 .g[b-q2bzn1smzl] {
    background: color-mix(in srgb, var(--disc) 14%, var(--bg-panel));
    color: var(--disc);
    box-shadow: none;
    border: 1px solid color-mix(in srgb, var(--disc) 35%, transparent);
}

/* Sesion suprimida: chip gris */
.ses.off .l1 .g[b-q2bzn1smzl] {
    background: var(--cream-deep);
    color: var(--text-muted);
    box-shadow: none;
}

/* Con banderita: padding para que no solape */
.ses.tiene-flag .l1[b-q2bzn1smzl] {
    padding-right: 16px;
}

/* ------------------------------------------------------------------
   Linea 2: hora y alumnos
   ------------------------------------------------------------------ */
.ses .l2[b-q2bzn1smzl] {
    font-size: 11px;
    color: var(--text-muted);
    font-weight: 600;
    letter-spacing: .01em;
    flex-shrink: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* .sm solo aparece en columnas angostas (via media query en padre) */
.ses .l2 .sm[b-q2bzn1smzl] {
    display: none;
}

.ses.off .l2[b-q2bzn1smzl] {
    color: var(--text-secondary);
}

/* ------------------------------------------------------------------
   Fila de senales (.sig) — max 3, NUNCA mas
   ------------------------------------------------------------------ */
.ses .sig[b-q2bzn1smzl] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: auto;
    font-size: 11px;
    font-weight: 700;
    flex-wrap: nowrap;
    overflow: hidden;
    min-height: 16px;
}

.ses .sig span[b-q2bzn1smzl] {
    display: inline-flex;
    align-items: center;
    gap: 2px;
}

.ses .sig .msr[b-q2bzn1smzl] {
    font-size: 15px;
}

/* Senal 1: lista */
.ses .sig .ok[b-q2bzn1smzl] {
    color: var(--success);
}

.ses .sig .pend[b-q2bzn1smzl] {
    color: var(--warning-ink);
}

/* Senal 2: cobertura evaluacion */
.ses .sig .ev[b-q2bzn1smzl] {
    color: var(--ev-eval);
    gap: 4px;
    min-width: 0;
    overflow: hidden;
}

.ses .sig .ev .pc[b-q2bzn1smzl] {
    font-size: 11px;
    font-weight: 800;
    color: var(--ev-eval);
    flex-shrink: 0;
}

.ses .sig .ev.full .pc[b-q2bzn1smzl] {
    color: var(--gold);
}

.ses .sig .ev .actn[b-q2bzn1smzl] {
    font-weight: 600;
    color: var(--text-secondary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

/* Senal 3: incidencias */
.ses .sig .warn[b-q2bzn1smzl] {
    color: var(--danger);
}

/* Chip de estado: dia suprimido (nc o cte) */
.ses .sig .bit[b-q2bzn1smzl] {
    color: var(--text-secondary);
}

/* Chip de evidencia en dia suprimido: "Lista registrada" (fix ALTA
   permisos:evidencia-en-dia-suprimido, D21). Tinte teal claro, DISTINTO
   de la palomita verde de lista normal: "quedo registrado, aunque este
   dia no cuenta". */
.ses .sig .bit.reg[b-q2bzn1smzl] {
    background: var(--bg-light-teal);
    color: var(--brand-teal-deep);
    border-radius: 6px;
    padding: 1px 6px;
}

/* ------------------------------------------------------------------
   Reconocimiento "Sesion estrella" (H3)
   Renglon propio, dorado, SOLO cuando se gana.
   El bloque reconocido oculta .l2 para caber en 68px.
   ------------------------------------------------------------------ */
.ses.reconocido[b-q2bzn1smzl] {
    padding-top: 5px;
    padding-bottom: 5px;
    gap: 2px;
}

/* Barra izquierda dorada en el reconocido */
.ses.reconocido[b-q2bzn1smzl]::before {
    width: 5px;
    background: linear-gradient(180deg, var(--gold-light), var(--gold) 55%, var(--gold-deep));
    box-shadow: 0 0 6px color-mix(in srgb, var(--gold) 55%, transparent);
}

.ses .reco[b-q2bzn1smzl] {
    position: relative;
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 1px 0 0;
    overflow: visible;
    color: var(--gold);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .03em;
    text-transform: uppercase;
    line-height: 1.4;
}

.ses .reco .stars[b-q2bzn1smzl] {
    display: inline-flex;
    gap: 1px;
    font-size: 13px;
    line-height: 1;
    color: var(--gold);
    letter-spacing: -.5px;
}

.ses .reco .rtx[b-q2bzn1smzl] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

.ses .reco .spark[b-q2bzn1smzl] {
    position: absolute;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: #fff;
    opacity: 0;
    pointer-events: none;
    box-shadow: 0 0 6px 2px rgba(255, 241, 190, .9);
}

.ses .reco .spark.a[b-q2bzn1smzl] {
    left: 4px;
    top: -1px;
}

.ses .reco .spark.b[b-q2bzn1smzl] {
    left: 26px;
    top: 9px;
}

/* ------------------------------------------------------------------
   Banderita de empalme (fuera de .sig — esquina superior derecha)
   ------------------------------------------------------------------ */
.ses .flagcorner[b-q2bzn1smzl] {
    position: absolute;
    top: 4px;
    right: 5px;
    display: inline-flex;
    color: var(--ev-com);
}

.ses .flagcorner .msr[b-q2bzn1smzl] {
    font-size: 14px;
}

/* ------------------------------------------------------------------
   Variantes de estado
   ------------------------------------------------------------------ */
/* Pendiente (pasada sin lista) */
.ses.pend[b-q2bzn1smzl] {
    background: rgba(186, 117, 23, .09);
    border-color: rgba(186, 117, 23, .35);
}

.ses.pend[b-q2bzn1smzl]::before {
    background: var(--warning);
}

/* Futura */
.ses.futura[b-q2bzn1smzl] {
    background: var(--bg-panel);
    border-style: dashed;
    box-shadow: none;
}

.ses.futura[b-q2bzn1smzl]::before {
    opacity: .55;
}

/* En curso */
.ses.live[b-q2bzn1smzl] {
    background: var(--bg-panel);
    border-color: var(--brand-teal);
    box-shadow: 0 0 0 3px rgba(109, 199, 208, .25), var(--shadow-md);
}

.ses.live .live-pill[b-q2bzn1smzl] {
    font-size: 9.5px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--brand-teal-deep);
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.ses.live .live-pill i[b-q2bzn1smzl] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--success);
    display: inline-block;
}

/* Suprimida */
.ses.off[b-q2bzn1smzl] {
    opacity: .45;
    background: var(--bg-panel);
    border-style: dashed;
    box-shadow: none;
    filter: grayscale(.6);
}

.ses.off:hover[b-q2bzn1smzl] {
    transform: none;
    box-shadow: none;
}

/* ------------------------------------------------------------------
   Animaciones (se apagan con prefers-reduced-motion — H11)
   ------------------------------------------------------------------ */
@media (prefers-reduced-motion: no-preference) {
    .ses[b-q2bzn1smzl] {
        animation: ses-in-b-q2bzn1smzl var(--t-slow) var(--ease) both;
    }

    @keyframes ses-in-b-q2bzn1smzl {
        from {
            opacity: 0;
            transform: translateY(6px) scale(.985);
        }

        to {
            opacity: 1;
            transform: none;
        }
    }

    .ses.live .live-pill i[b-q2bzn1smzl] {
        animation: latido-pill-b-q2bzn1smzl 1.4s ease infinite;
    }

    @keyframes latido-pill-b-q2bzn1smzl {
        0%, 100% { transform: scale(1); opacity: 1; }
        50% { transform: scale(1.3); opacity: .7; }
    }

    .ses .reco[b-q2bzn1smzl] {
        animation: reco-in-b-q2bzn1smzl 600ms var(--ease) 240ms both;
    }

    @keyframes reco-in-b-q2bzn1smzl {
        0% { opacity: 0; transform: translateY(5px) scale(.94); }
        60% { transform: translateY(-1px) scale(1.03); }
        100% { opacity: 1; transform: none; }
    }

    .ses .reco .spark[b-q2bzn1smzl] {
        animation: spark-b-q2bzn1smzl 2.8s var(--ease) infinite;
    }

    .ses .reco .spark.b[b-q2bzn1smzl] {
        animation-delay: 1.4s;
    }

    @keyframes spark-b-q2bzn1smzl {
        0%, 70%, 100% { opacity: 0; transform: scale(.4); }
        78% { opacity: 1; transform: scale(1.2); }
        88% { opacity: 0; transform: scale(.4); }
    }
}
/* /Components/Horario/SesionDrawer.razor.rz.scp.css */
/* SesionDrawer — panel lateral de detalle de sesion. */

.sd-overlay[b-gyprd3u2g2] {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.45);
    z-index: 300;
    cursor: pointer;
    animation: sd-fade-in-b-gyprd3u2g2 var(--t-fast) var(--ease);
}

@keyframes sd-fade-in-b-gyprd3u2g2 { from { opacity: 0; } to { opacity: 1; } }

@media (prefers-reduced-motion: reduce) {
    .sd-overlay[b-gyprd3u2g2] { animation: none; }
    .sd-panel[b-gyprd3u2g2]   { animation: none; }
}

.sd-panel[b-gyprd3u2g2] {
    position: fixed;
    top: 0; right: 0; bottom: 0;
    width: 420px;
    max-width: 100vw;
    background: var(--bg-base);
    border-left: 1px solid var(--border-soft);
    box-shadow: var(--shadow-xl);
    z-index: 301;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    animation: sd-slide-in-b-gyprd3u2g2 var(--t-normal) var(--ease);
    outline: none;
}

@keyframes sd-slide-in-b-gyprd3u2g2 { from { transform: translateX(100%); } to { transform: none; } }

/* Cabecera */
.sd-header[b-gyprd3u2g2] {
    position: relative;
    padding: 20px 20px 14px 25px;
    background: var(--bg-panel);
    border-bottom: 1px solid var(--border-soft);
    flex-shrink: 0;
}

.sd-header-bar[b-gyprd3u2g2] {
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 5px;
    background: var(--disc);
}

.sd-header-top[b-gyprd3u2g2] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px;
}

.sd-gchip[b-gyprd3u2g2] {
    display: inline-flex;
    align-items: center;
    height: 20px;
    padding: 0 7px;
    border-radius: 6px;
    color: var(--bg-panel);
    font-size: 11px;
    font-weight: 800;
}

.sd-estado-badge[b-gyprd3u2g2] {
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
    padding: 2px 6px;
    border-radius: 5px;
    background: var(--bg-base);
    color: var(--text-muted);
    border: 1px solid var(--border-soft);
}

.badge-live[b-gyprd3u2g2]    { background: var(--success-bg); color: var(--success); border-color: var(--success); }
.badge-futura[b-gyprd3u2g2]  { background: var(--bg-base); color: var(--brand-teal-deep); border-color: var(--brand-teal-deep); }
.badge-nc[b-gyprd3u2g2]      { background: var(--ev-nc-bg); color: var(--ev-nc); border-color: var(--ev-nc); }

.sd-materia[b-gyprd3u2g2] {
    font-family: var(--font-serif);
    font-size: 22px;
    font-weight: 600;
    letter-spacing: -.2px;
    margin: 4px 0 3px;
    color: var(--text-primary);
}

.sd-meta[b-gyprd3u2g2] {
    font-size: 12px;
    color: var(--text-secondary);
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 5px;
}

.sd-meta .dot[b-gyprd3u2g2] {
    width: 3px; height: 3px; border-radius: 50%;
    background: var(--text-muted); display: inline-block;
}

.sd-close[b-gyprd3u2g2] {
    position: absolute;
    top: 16px; right: 16px;
    width: 32px; height: 32px;
    border-radius: 50%;
    border: 1px solid var(--border-soft);
    background: var(--bg-base);
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    color: var(--text-secondary);
    transition: background var(--t-fast) var(--ease);
}

.sd-close:hover[b-gyprd3u2g2]   { background: var(--bg-hover); }
.sd-close:focus-visible[b-gyprd3u2g2] { outline: 2px solid var(--brand-teal-dark); outline-offset: 2px; }
.sd-close .msr[b-gyprd3u2g2] { font-size: 20px; }

/* Cuerpo scrollable */
.sd-body[b-gyprd3u2g2] {
    flex: 1;
    overflow-y: auto;
    padding: 12px 20px 32px;
}

/* Secciones */
.sd-section[b-gyprd3u2g2] {
    padding: 14px 0;
    border-bottom: 1px solid var(--border-soft);
}

.sd-section:last-child[b-gyprd3u2g2] { border-bottom: none; }

.sd-section-heading[b-gyprd3u2g2] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--text-muted);
    margin: 0 0 10px;
}

.sd-section-heading .msr[b-gyprd3u2g2] { font-size: 15px; }

/* Asistencia */
.sd-asist-resumen[b-gyprd3u2g2] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }
.sd-asist-chip[b-gyprd3u2g2] {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 3px 8px; border-radius: 8px; font-size: 12px; font-weight: 700;
}
.sd-asist-chip.ok[b-gyprd3u2g2]   { background: var(--success-bg); color: var(--success); }
.sd-asist-chip.warn[b-gyprd3u2g2] { background: var(--warn-bg); color: var(--ev-com); }
.sd-asist-chip .msr[b-gyprd3u2g2] { font-size: 14px; }
.sd-asist-num[b-gyprd3u2g2]   { font-size: 12px; color: var(--text-secondary); font-weight: 600; }
.sd-asist-falta[b-gyprd3u2g2] { color: var(--error); margin-left: 3px; }
.sd-asist-ret[b-gyprd3u2g2]   { color: var(--ev-com); margin-left: 3px; }
.sd-asist-accion[b-gyprd3u2g2] { margin-top: 6px; }

/* Lo trabajado */
.sd-tema[b-gyprd3u2g2] { font-size: 14px; font-weight: 700; color: var(--text-primary); margin: 0 0 6px; }
.sd-puntos[b-gyprd3u2g2] {
    padding-left: 18px;
    margin: 0 0 8px;
    list-style: disc;
    font-size: 13px;
    color: var(--text-secondary);
    display: flex; flex-direction: column; gap: 3px;
}
.sd-actividad[b-gyprd3u2g2] {
    display: flex; align-items: center; gap: 5px;
    font-size: 12px; color: var(--text-muted); font-weight: 600;
}
.sd-actividad .msr[b-gyprd3u2g2] { font-size: 14px; }

/* Evaluaciones */
.sd-eval-fila[b-gyprd3u2g2] { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.sd-eval-aw[b-gyprd3u2g2]   { flex: 1; min-width: 0; }
.sd-eval-nombre[b-gyprd3u2g2]  { display: block; font-size: 13px; font-weight: 600; color: var(--text-primary); }
.sd-eval-criterio[b-gyprd3u2g2] { display: block; font-size: 11px; color: var(--text-muted); }
.sd-eval-frase-inline[b-gyprd3u2g2] {
    font-size: 12px; color: var(--text-secondary); font-weight: 600; white-space: nowrap; flex-shrink: 0;
}
.sd-eval-frase-inline strong[b-gyprd3u2g2] { color: var(--text-primary); }

/* Eval para sesion futura */
.sd-eval-frase[b-gyprd3u2g2] {
    font-size: 14px; color: var(--text-secondary);
    margin: 0 0 4px;
}
.sd-eval-frase strong[b-gyprd3u2g2] { color: var(--text-primary); }
.sd-eval-pct[b-gyprd3u2g2] { font-size: 12px; color: var(--text-muted); }
.sd-eval-faltan[b-gyprd3u2g2] { font-size: 12px; color: var(--ev-com); font-weight: 600; margin: 2px 0 0; }

/* Bitacora */
.sd-nota[b-gyprd3u2g2] { background: var(--bg-base); border-radius: var(--radius-md); padding: 8px 10px; margin-bottom: 6px; }
.sd-nota-txt[b-gyprd3u2g2] { font-size: 13px; color: var(--text-secondary); margin: 0 0 4px; }
.sd-nota-rec[b-gyprd3u2g2] { display: flex; align-items: center; gap: 4px; font-size: 11px; color: var(--brand-teal-deep); font-weight: 700; margin: 0; }
.sd-nota-rec .msr[b-gyprd3u2g2] { font-size: 14px; }

/* Pizarron */
.sd-pizarra[b-gyprd3u2g2] { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--text-secondary); font-weight: 600; margin-bottom: 6px; }
.sd-pizarra .msr[b-gyprd3u2g2] { font-size: 17px; color: var(--brand-teal-deep); }

/* Reportes */
.sd-reporte[b-gyprd3u2g2] { background: var(--bg-base); border-radius: var(--radius-md); padding: 8px 10px; margin-bottom: 6px; }
.sd-rep-alumno[b-gyprd3u2g2] { font-size: 13px; font-weight: 700; color: var(--text-primary); }
.sd-rep-tipo[b-gyprd3u2g2]   { font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--ev-com); margin-left: 6px; }
.sd-rep-desc[b-gyprd3u2g2]   { font-size: 12px; color: var(--text-secondary); margin: 4px 0 0; }

/* Empalmes */
.sd-empalme[b-gyprd3u2g2] { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--text-secondary); font-weight: 600; margin-bottom: 4px; }
.sd-empalme .msr[b-gyprd3u2g2] { font-size: 16px; color: var(--ev-com); }
.sd-empalme-hora[b-gyprd3u2g2] { font-size: 11px; color: var(--text-muted); margin-left: 4px; }

/* Ultimo con grupo */
.sd-ultimo[b-gyprd3u2g2] { display: flex; flex-direction: column; gap: 4px; }
.sd-ultimo-fecha[b-gyprd3u2g2] { font-size: 13px; font-weight: 700; color: var(--text-primary); }
.sd-ultimo-tema[b-gyprd3u2g2]  { font-size: 12px; color: var(--text-secondary); }
.sd-ultimo-asist[b-gyprd3u2g2] { display: flex; align-items: center; gap: 4px; font-size: 12px; color: var(--ev-com); font-weight: 600; }
.sd-ultimo-asist .msr[b-gyprd3u2g2] { font-size: 14px; }

/* Seguimientos */
.sd-seg-count[b-gyprd3u2g2] { font-size: 13px; color: var(--ev-com); font-weight: 700; margin: 0; }

/* Proximo paso (A2.6 #4) */
.sd-prox[b-gyprd3u2g2] { display: flex; align-items: flex-start; gap: 6px; font-size: 13px; color: var(--text-secondary); line-height: 1.4; margin: 0; }
.sd-prox .msr[b-gyprd3u2g2] { font-size: 16px; flex: none; margin-top: 1px; color: var(--brand-teal-deep); }
.sd-prox-vacio[b-gyprd3u2g2] { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }

/* Acciones */
.sd-acciones[b-gyprd3u2g2] { display: flex; flex-direction: column; gap: 8px; border-bottom: none !important; }

/* Sesion estrella */
.sd-estrella[b-gyprd3u2g2] {
    display: flex;
    align-items: center;
    gap: 8px;
    background: linear-gradient(135deg, var(--gold-bg), var(--gold-bg-deep));
    border: 1px solid var(--gold-border);
    border-radius: var(--radius-lg);
    padding: 10px 14px;
    margin-top: 12px;
    font-size: 13px;
    font-weight: 700;
    color: var(--gold-text);
}

.sd-estrella .msr[b-gyprd3u2g2] { font-size: 20px; color: var(--gold-icon); }
.sd-estrella-sub[b-gyprd3u2g2]  { font-size: 11px; font-weight: 600; color: var(--gold-text); opacity: .8; margin-left: auto; }

/* Estrellas por nivel (1/2/3) — mismo criterio que el bloque (H3) */
.sd-estrella-stars[b-gyprd3u2g2] { display: inline-flex; gap: 1px; font-size: 16px; letter-spacing: -1px; line-height: 1; }
.sd-estrella-stars span[b-gyprd3u2g2] { color: var(--border-med); }
.sd-estrella-stars span.on[b-gyprd3u2g2] { color: var(--pin-gold); }

/* Nota "cobertura de captura" en Evaluaciones (H4/A5) */
.sd-eval-nota[b-gyprd3u2g2] {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    margin-top: 8px;
    font-size: 11.5px;
    line-height: 1.4;
    color: var(--text-muted);
}
.sd-eval-nota .msr[b-gyprd3u2g2] { font-size: 15px; flex: none; margin-top: 1px; }

/* Panel de sesion suprimida / fuera de ciclo (H2, D21) */
.sd-nc-note[b-gyprd3u2g2] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 14px;
    border-radius: var(--radius-md);
    background: var(--ev-nc-bg);
    color: var(--ev-nc);
    font-size: 13px;
}
.sd-nc-note .msr[b-gyprd3u2g2] { font-size: 20px; flex: none; }
.sd-nc-titulo[b-gyprd3u2g2] { display: block; font-weight: 700; }
.sd-nc-sub[b-gyprd3u2g2] { display: block; font-size: 11.5px; opacity: .85; margin-top: 2px; line-height: 1.4; }
.sd-nc-evidencia[b-gyprd3u2g2] { font-size: 12.5px; color: var(--text-secondary); line-height: 1.4; }

/* Empty */
.sd-empty[b-gyprd3u2g2] { font-size: 13px; color: var(--text-muted); font-style: italic; }

/* Movil */
@media (max-width: 700px) {
    .sd-panel[b-gyprd3u2g2] { width: 100vw; }
}
/* /Components/Impresion/TarjetaQr.razor.rz.scp.css */
/* V6 labels / V7 credential. Physical sizes are identical in preview and print. */
.print-card[b-4mae34k71m] { box-sizing:border-box; position:relative; width:63mm; height:60mm; background:#fff; color:#161a1c; outline:.12mm solid #9da09e; font-family:var(--font-sans,Figtree,Arial,sans-serif); }
.print-face[b-4mae34k71m] { box-sizing:border-box; width:100%; height:100%; padding:2.2mm; display:flex; flex-direction:column; }
.print-school[b-4mae34k71m] { flex:none; text-align:left; padding-bottom:1.2mm; border-bottom:.3mm solid #161a1c; }
.print-school-caption[b-4mae34k71m] { display:block; font-size:5.5pt; line-height:1.2; text-transform:uppercase; letter-spacing:.12em; }
.print-school--branded[b-4mae34k71m] { display:flex; align-items:center; gap:1.5mm; }
.print-school-text[b-4mae34k71m] { min-width:0; flex:1; }
.print-school-logo[b-4mae34k71m] { width:9mm; height:9mm; object-fit:contain; flex:none; }
.print-school-name[b-4mae34k71m] { font-size:12.5pt; font-weight:700; line-height:1.02; letter-spacing:-.025em; margin-top:.6mm; text-transform:uppercase; overflow-wrap:anywhere; }
.print-identity[b-4mae34k71m] { flex:none; padding-top:1.2mm; }
.print-name[b-4mae34k71m] { font-family:inherit; font-size:10pt; font-weight:600; line-height:1.08; margin:0 0 1mm; overflow-wrap:anywhere; }
.print-details[b-4mae34k71m] { display:grid; grid-template-columns:auto auto; column-gap:3mm; row-gap:.6mm; line-height:1.15; }
.print-details div[b-4mae34k71m] { display:flex; flex-wrap:wrap; column-gap:1.4mm; align-items:baseline; min-width:0; overflow-wrap:anywhere; }
.print-details span[b-4mae34k71m] { font-size:4.8pt; letter-spacing:.05em; text-transform:uppercase; color:#626867; }
.print-details strong[b-4mae34k71m] { font-size:6.4pt; font-weight:500; min-width:0; }
.print-cycle[b-4mae34k71m] { grid-column:1/-1; }
.print-codes[b-4mae34k71m] { display:flex; flex:none; justify-content:space-between; gap:2mm; margin-top:auto; }
.print-code-block[b-4mae34k71m] { flex:none; text-align:center; }
/* Telerik draws a 512px SVG; uniform scaling avoids module pixel-rounding artifacts. */
.print-qr[b-4mae34k71m] { box-sizing:content-box; width:18mm; height:18mm; padding:3.5mm; flex:none; background:white; }
.print-symbol[b-4mae34k71m] { display:block; width:18mm; height:18mm; overflow:hidden; }
.print-symbol[b-4mae34k71m]  .k-qrcode { width:512px !important; height:512px !important; transform:scale(.1328740157); transform-origin:top left; }
.print-symbol[b-4mae34k71m]  svg { width:512px !important; height:512px !important; display:block; }
.print-code-label[b-4mae34k71m] { font-size:5.2pt; font-weight:600; letter-spacing:.05em; text-transform:uppercase; line-height:1.1; }
.print-footer[b-4mae34k71m] { display:flex; flex:none; justify-content:space-between; gap:1mm; font-size:4.8pt; color:#626867; line-height:1.1; margin-top:1mm; }
.print-brand[b-4mae34k71m] { letter-spacing:.015em; }
.print-id[b-4mae34k71m] { white-space:nowrap; }
.print-card--publico[b-4mae34k71m] { width:38mm; height:40mm; }
.print-card--interno[b-4mae34k71m] { width:31mm; height:38mm; }
.print-card--label .print-face[b-4mae34k71m] { align-items:center; padding:1mm; }
.print-card--label .print-school[b-4mae34k71m] { border:0; padding:0; text-align:center; width:100%; }
.print-card--label .print-school-name[b-4mae34k71m] { font-size:5.7pt; line-height:1.15; font-weight:600; letter-spacing:.025em; margin:0; }
.print-card--interno .print-school-name[b-4mae34k71m] { font-size:5pt; }
.print-card--label .print-name[b-4mae34k71m] { font-size:7.3pt; line-height:1.08; text-align:center; width:100%; margin:0; flex:none; }
.print-label-group[b-4mae34k71m] { font-size:5.5pt; line-height:1.05; margin-top:.35mm; flex:none; color:#525b5e; text-align:center; overflow-wrap:anywhere; }
.print-card--label .print-footer[b-4mae34k71m] { margin-top:auto; font-size:4.5pt; justify-content:center; width:100%; text-align:center; }
.print-card--interno .print-qr[b-4mae34k71m] { width:14mm; height:14mm; padding:3mm; }
.print-card--interno .print-symbol[b-4mae34k71m] { width:14mm; height:14mm; }
.print-card--interno .print-symbol[b-4mae34k71m]  .k-qrcode { transform:scale(.1033464567); }
.print-unavailable[b-4mae34k71m] { position:absolute; inset:0; display:flex; flex-direction:column; gap:2mm; align-items:center; justify-content:center; background:#ffffffed; font-size:7pt; text-align:center; }
.print-unavailable span[b-4mae34k71m] { font-size:6pt; }
@media print { .print-card[b-4mae34k71m] { break-inside:avoid; page-break-inside:avoid; } }
.print-school-number[b-4mae34k71m] { display:block; white-space:nowrap; text-transform:none; letter-spacing:-.025em; }
.print-card--label .print-school-number[b-4mae34k71m] { font-size:7.5pt; line-height:1.15; font-weight:700; }

/* Approved compact credential. All coordinates use the physical card, not screen pixels. */
.print-card--credencial[b-4mae34k71m] { height:51mm; font-family:Arial,sans-serif; }
.print-card--credencial .print-face[b-4mae34k71m] { position:relative; padding:0; }
.print-card--credencial .print-school[b-4mae34k71m] { position:absolute; top:1.2mm; left:2.4mm; right:2.4mm; height:8.3mm; padding:0 0 .8mm; box-sizing:border-box; display:flex; align-items:center; gap:1.5mm; border-bottom-width:.15mm; }
.print-card--credencial .print-school-logo[b-4mae34k71m] { width:7.4mm; height:7.4mm; }
.print-card--credencial .print-school-caption[b-4mae34k71m] { font-size:3.8pt; color:#626867; letter-spacing:.04em; }
.print-card--credencial .print-school-name[b-4mae34k71m] { font-size:8.9pt; line-height:1.08; margin-top:.4mm; }
.print-card--credencial .print-school-number[b-4mae34k71m] { display:inline; }
.print-card--credencial .print-identity[b-4mae34k71m] { position:absolute; left:2mm; top:10mm; width:25mm; height:10mm; padding:0; display:flex; align-items:center; justify-content:center; }
.print-student[b-4mae34k71m] { width:fit-content; max-width:100%; }
.print-student-label[b-4mae34k71m] { display:block; text-align:left; color:#626867; font-size:4.8pt; line-height:1.1; margin-bottom:.8mm; }
.print-card--credencial .print-name[b-4mae34k71m] { font-size:7.35pt; line-height:1.12; font-weight:700; text-align:center; margin:0; }
.print-card--credencial .print-details[b-4mae34k71m] { position:absolute; top:35mm; left:36mm; width:25mm; height:9.8mm; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.6mm; }
.print-card--credencial .print-details div[b-4mae34k71m] { display:flex; justify-content:center; flex-wrap:nowrap; gap:.8mm; white-space:nowrap; }
.print-card--credencial .print-details span[b-4mae34k71m] { font-size:6.2pt; letter-spacing:0; text-transform:none; }
.print-card--credencial .print-details strong[b-4mae34k71m] { font-size:6.2pt; font-weight:700; }
.print-card--credencial .print-codes[b-4mae34k71m] { display:contents; }
.print-card--credencial .print-code-block[b-4mae34k71m] { position:absolute; width:25mm; }
.print-card--credencial .print-code-block--familiar[b-4mae34k71m] { left:36mm; top:9.8mm; }
.print-card--credencial .print-code-block--acceso[b-4mae34k71m] { left:2mm; top:19.8mm; }
.print-card--credencial .print-code-label[b-4mae34k71m] { position:relative; margin-top:-2.5mm; font-size:4.25pt; font-weight:400; letter-spacing:0; text-transform:none; color:#626867; line-height:1.1; }
.print-phrase[b-4mae34k71m] { position:absolute; left:2.4mm; right:2.4mm; bottom:2.1mm; height:3.9mm; display:block; align-content:center; white-space:normal; overflow-wrap:anywhere; text-align:center; font-size:5.7pt; line-height:1.1; color:#626867; }
.print-card--credencial .print-footer[b-4mae34k71m] { position:absolute; left:2.4mm; right:2.4mm; bottom:.8mm; margin:0; font-size:3.7pt; }
/* /Components/Incorporacion/BandejaSolicitudes.razor.rz.scp.css */
/* Incorporacion · bandeja de solicitudes (prefijo bnd-). Solo tokens. Tabla en escritorio y
   tarjetas en <= 991.98px con el MISMO DOM (sin scroll horizontal). Breakpoints de Control Escolar. */
.bnd-cab[b-mvtnvjtxjj] { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.bnd-h[b-mvtnvjtxjj] {
    margin: 0;
    font-family: var(--font-serif);
    font-size: 20px;
    font-weight: 600;
    color: var(--text-primary);
}
.bnd-h:focus[b-mvtnvjtxjj] { outline: none; }
.bnd-h:focus-visible[b-mvtnvjtxjj] { outline: 2px solid var(--brand-teal); outline-offset: 2px; border-radius: var(--radius-sm); }
.bnd-sub[b-mvtnvjtxjj] { margin: 4px 0 0; font-size: 13.5px; color: var(--text-secondary); }

/* ---- chips de estado ---- */
.bnd-estados[b-mvtnvjtxjj] { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.bnd-estado[b-mvtnvjtxjj] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 36px;
    padding: 6px 12px;
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    color: var(--text-secondary);
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: 99px;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.bnd-estado .msr[b-mvtnvjtxjj] { font-size: 17px; }
.bnd-estado:hover[b-mvtnvjtxjj] { border-color: var(--brand-teal-deep); color: var(--brand-teal-deep); }
.bnd-estado--on[b-mvtnvjtxjj] {
    background: var(--bg-light-teal);
    border-color: var(--brand-teal-deep);
    color: var(--brand-teal-deep);
}
.bnd-estado-n[b-mvtnvjtxjj] {
    min-width: 22px;
    padding: 1px 7px;
    border-radius: 99px;
    background: var(--bg-cream);
    color: var(--text-primary);
    font-size: 12px;
    font-weight: 700;
    text-align: center;
    font-variant-numeric: tabular-nums;
}
.bnd-estado--on .bnd-estado-n[b-mvtnvjtxjj] { background: var(--bg-panel); }

/* ---- filtros ---- */
.bnd-filtros[b-mvtnvjtxjj] {
    display: grid;
    grid-template-columns: minmax(220px, 1.4fr) auto;
    gap: 12px;
    align-items: end;
    padding: 14px 16px;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
}
.bnd-mas[b-mvtnvjtxjj] {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
    gap: 12px;
    align-items: end;
}
.bnd-mas-btn[b-mvtnvjtxjj] { display: none; }
.bnd-campo[b-mvtnvjtxjj] { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.bnd-campo label[b-mvtnvjtxjj] { font-size: 12px; font-weight: 700; color: var(--text-secondary); }
.bnd-campo input[b-mvtnvjtxjj],
.bnd-campo select[b-mvtnvjtxjj] {
    width: 100%;
    box-sizing: border-box;
    min-height: 40px;
    padding: 8px 11px;
    font: inherit;
    font-size: 14px;
    color: var(--text-primary);
    background: var(--bg-panel);
    border: 1px solid var(--border-med);
    border-radius: var(--radius-md);
}
.bnd-campo input:focus[b-mvtnvjtxjj],
.bnd-campo select:focus[b-mvtnvjtxjj] { outline: none; border-color: var(--brand-teal-deep); box-shadow: 0 0 0 3px rgba(109, 199, 208, 0.25); }
.bnd-campo input[aria-invalid="true"][b-mvtnvjtxjj] { border-color: var(--danger); }
.bnd-buscar[b-mvtnvjtxjj] { position: relative; grid-column: 1 / -1; }
.bnd-buscar .msr[b-mvtnvjtxjj] { position: absolute; left: 10px; bottom: 10px; font-size: 20px; color: var(--text-secondary); }
.bnd-buscar input[b-mvtnvjtxjj] { padding-left: 38px; }
.bnd-limpiar[b-mvtnvjtxjj] { justify-content: flex-end; }
.bnd-err[b-mvtnvjtxjj] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 8px 0 0;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--danger);
}
.bnd-err .msr[b-mvtnvjtxjj] { font-size: 16px; }

.bnd-cuenta[b-mvtnvjtxjj] { margin: 14px 2px 10px; font-size: 13px; color: var(--text-secondary); }

/* ---- tabla ---- */
.bnd-tabla[b-mvtnvjtxjj] {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
    table-layout: fixed;
}
.bnd-tabla th[b-mvtnvjtxjj] {
    padding: 10px 12px;
    font-size: 12px;
    font-weight: 700;
    text-align: left;
    color: var(--text-secondary);
    border-bottom: 2px solid var(--border-soft);
    background: var(--bg-cream);
}
.bnd-tabla th:nth-child(1)[b-mvtnvjtxjj] { width: 26%; }
.bnd-tabla th:nth-child(2)[b-mvtnvjtxjj] { width: 27%; }
.bnd-tabla th:nth-child(3)[b-mvtnvjtxjj] { width: 15%; }
.bnd-tabla th:nth-child(4)[b-mvtnvjtxjj] { width: 13%; }
.bnd-tabla th:nth-child(5)[b-mvtnvjtxjj] { width: 9%; }
.bnd-tabla th:nth-child(6)[b-mvtnvjtxjj] { width: 10%; }
.bnd-tabla td[b-mvtnvjtxjj] {
    padding: 12px;
    font-size: 13.5px;
    color: var(--text-primary);
    vertical-align: top;
    border-bottom: 1px solid var(--border-soft);
}
.bnd-tabla tbody tr:last-child td[b-mvtnvjtxjj] { border-bottom: 0; }
.bnd-tabla tbody tr:hover td[b-mvtnvjtxjj] { background: var(--bg-cream); }

.bnd-persona[b-mvtnvjtxjj] { display: flex; gap: 10px; align-items: flex-start; min-width: 0; }
.bnd-persona[b-mvtnvjtxjj]  .ui-avatar { flex: 0 0 auto; }
.bnd-persona-txt[b-mvtnvjtxjj] { display: flex; flex-direction: column; gap: 4px; min-width: 0; overflow: hidden; }
.bnd-nombre[b-mvtnvjtxjj] {
    font-size: 14px;
    font-weight: 700;
    overflow-wrap: anywhere;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.bnd-marcas[b-mvtnvjtxjj] { display: flex; flex-wrap: wrap; gap: 4px; }

.bnd-linea[b-mvtnvjtxjj] { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; margin-bottom: 4px; }
.bnd-linea:last-child[b-mvtnvjtxjj] { margin-bottom: 0; }
.bnd-largo[b-mvtnvjtxjj] { min-width: 0; overflow-wrap: anywhere; }

/* En la tabla de escritorio el encabezado de columna ya dice "Pidio": la etiqueta solo vive en la tarjeta movil. */
.bnd-pidio-k[b-mvtnvjtxjj] {
    display: none;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-secondary);
}
.bnd-meta[b-mvtnvjtxjj] { display: block; margin-top: 3px; font-size: 12px; color: var(--text-secondary); }
.bnd-campana .bnd-largo[b-mvtnvjtxjj] { display: block; margin-bottom: 4px; }
.bnd-fecha[b-mvtnvjtxjj] { font-variant-numeric: tabular-nums; }
.bnd-accion[b-mvtnvjtxjj] { text-align: right; }
.bnd-accion-wrap[b-mvtnvjtxjj] { display: inline-flex; }

.bnd-mas-fila[b-mvtnvjtxjj] { display: flex; justify-content: center; margin-top: 14px; }

/* ---- esqueletos ---- */
.bnd-lista[b-mvtnvjtxjj] { display: grid; gap: 8px; margin-top: 14px; }
.bnd-sk[b-mvtnvjtxjj] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
}
.bnd-sk-av[b-mvtnvjtxjj] { flex: 0 0 36px; width: 36px; height: 36px; }
.bnd-sk-txt[b-mvtnvjtxjj] { flex: 1; display: grid; gap: 8px; }
.bnd-sk-btn[b-mvtnvjtxjj] { flex: 0 0 90px; border-radius: var(--radius-md); }

.bnd-sr[b-mvtnvjtxjj] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

/* ---- tablet y telefono: tarjetas ---- */
@media (max-width: 991.98px) {
    .bnd-mas[b-mvtnvjtxjj] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .bnd-limpiar[b-mvtnvjtxjj] { grid-column: 1 / -1; align-items: flex-start; }

    .bnd-tabla[b-mvtnvjtxjj], .bnd-tabla tbody[b-mvtnvjtxjj], .bnd-tabla tr[b-mvtnvjtxjj], .bnd-tabla td[b-mvtnvjtxjj] { display: block; width: auto; }
    .bnd-tabla[b-mvtnvjtxjj] { background: transparent; border: 0; box-shadow: none; overflow: visible; }
    .bnd-tabla thead[b-mvtnvjtxjj] { display: none; }
    .bnd-tabla tbody[b-mvtnvjtxjj] { display: grid; gap: 10px; }
    .bnd-tabla tr[b-mvtnvjtxjj] {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 8px 12px;
        padding: 14px;
        background: var(--bg-panel);
        border: 1px solid var(--border-soft);
        border-radius: var(--radius-lg);
        box-shadow: var(--shadow-sm);
    }
    .bnd-tabla tbody tr:hover td[b-mvtnvjtxjj] { background: transparent; }
    .bnd-tabla td[b-mvtnvjtxjj] { padding: 0; border: 0; }
    .bnd-tabla td.bnd-persona-td[b-mvtnvjtxjj] { grid-column: 1; grid-row: 1; }
    .bnd-tabla td.bnd-accion[b-mvtnvjtxjj] { grid-column: 2; grid-row: 1; text-align: right; }
    .bnd-tabla td.bnd-contacto[b-mvtnvjtxjj],
    .bnd-tabla td.bnd-pidio[b-mvtnvjtxjj],
    .bnd-tabla td.bnd-campana[b-mvtnvjtxjj],
    .bnd-tabla td.bnd-fecha[b-mvtnvjtxjj] { grid-column: 1 / -1; display: block; }
    .bnd-pidio-k[b-mvtnvjtxjj] { display: block; }
    .bnd-tabla td.bnd-campana[b-mvtnvjtxjj]::before,
    .bnd-tabla td.bnd-fecha[b-mvtnvjtxjj]::before {
        content: attr(data-label);
        display: block;
        font-size: 11px;
        font-weight: 700;
        letter-spacing: 0.04em;
        text-transform: uppercase;
        color: var(--text-secondary);
    }
    .bnd-campana .bnd-largo[b-mvtnvjtxjj] { display: inline; margin: 0 6px 0 0; }
    .bnd-fecha .bnd-meta[b-mvtnvjtxjj] { display: inline; margin-left: 6px; }
}

@media (max-width: 575.98px) {
    .bnd-filtros[b-mvtnvjtxjj] { grid-template-columns: 1fr; padding: 12px; }
    .bnd-mas-btn[b-mvtnvjtxjj] {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 6px;
        min-height: 40px;
        padding: 8px 12px;
        font: inherit;
        font-size: 13px;
        font-weight: 600;
        color: var(--text-primary);
        background: var(--bg-cream);
        border: 1px solid var(--border-soft);
        border-radius: var(--radius-md);
        cursor: pointer;
    }
    .bnd-mas-btn .msr[b-mvtnvjtxjj] { font-size: 18px; }
    .bnd-mas[b-mvtnvjtxjj] { grid-template-columns: 1fr; }
    .bnd-mas:not(.bnd-mas--abierto)[b-mvtnvjtxjj] { display: none; }
    .bnd-estado[b-mvtnvjtxjj] { padding: 6px 10px; }
    .bnd-tabla tr[b-mvtnvjtxjj] { grid-template-columns: 1fr; }
    .bnd-tabla td.bnd-accion[b-mvtnvjtxjj] { grid-column: 1; grid-row: auto; text-align: left; }
    .bnd-accion-wrap[b-mvtnvjtxjj], .bnd-accion-wrap[b-mvtnvjtxjj]  .ui-btn { width: 100%; }
    .bnd-mas-fila[b-mvtnvjtxjj]  .ui-btn { width: 100%; }
}

@media (pointer: coarse) {
    .bnd-estado[b-mvtnvjtxjj], .bnd-campo input[b-mvtnvjtxjj], .bnd-campo select[b-mvtnvjtxjj], .bnd-mas-btn[b-mvtnvjtxjj] { min-height: 44px; }
    .bnd[b-mvtnvjtxjj]  .ui-btn { min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
    .bnd-estado[b-mvtnvjtxjj] { transition: none; }
}
/* /Components/Incorporacion/CampanasPanel.razor.rz.scp.css */
/* Incorporacion · Enlaces y codigos (prefijo cam-). Solo tokens; breakpoints de Control Escolar
   (575.98 / 991.98, S9). Chips de estado con icono + texto (S6.15, S7 regla 2). */
.cam-toolbar[b-l0exta67tj] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
}
.cam-h[b-l0exta67tj] {
    margin: 0;
    font-family: var(--font-serif);
    font-size: 20px;
    font-weight: 600;
    color: var(--text-primary);
}
.cam-h:focus[b-l0exta67tj] { outline: none; }
.cam-h:focus-visible[b-l0exta67tj] { outline: 2px solid var(--brand-teal); outline-offset: 2px; border-radius: var(--radius-sm); }
.cam-sub[b-l0exta67tj] {
    margin: 4px 0 0;
    max-width: 640px;
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--text-secondary);
}
.cam-nuevo-wrap[b-l0exta67tj] { display: inline-flex; flex: 0 0 auto; }

.cam-lista[b-l0exta67tj] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 14px;
}

.cam-item[b-l0exta67tj] {
    padding: 16px 18px;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
}
.cam-item--activa[b-l0exta67tj] { border-left: 3px solid var(--brand-teal-deep); }
.cam-item--inactiva[b-l0exta67tj] { background: var(--bg-cream); box-shadow: none; }
.cam-item--sk[b-l0exta67tj] { display: grid; gap: 10px; }

.cam-item-h[b-l0exta67tj] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 10px;
}
.cam-nombre[b-l0exta67tj] {
    margin: 0;
    min-width: 0;
    font-family: var(--font-serif);
    font-size: 17px;
    font-weight: 600;
    color: var(--text-primary);
    overflow-wrap: anywhere;
}
.cam-meta[b-l0exta67tj] {
    margin: 4px 0 0;
    font-size: 13px;
    color: var(--text-secondary);
}

.cam-cifras[b-l0exta67tj] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 12px 0 0;
}
.cam-cifras > div[b-l0exta67tj] {
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 99px;
    background: var(--bg-cream);
    border: 1px solid var(--border-soft);
}
.cam-item--inactiva .cam-cifras > div[b-l0exta67tj] { background: var(--bg-panel); }
.cam-cifras dt[b-l0exta67tj] { font-size: 12px; font-weight: 600; color: var(--text-secondary); }
.cam-cifras dd[b-l0exta67tj] {
    margin: 0;
    font-size: 14px;
    font-weight: 700;
    color: var(--text-primary);
    font-variant-numeric: tabular-nums;
}

.cam-enlace[b-l0exta67tj] { margin-top: 14px; }
.cam-k[b-l0exta67tj] {
    display: inline-block;
    margin-bottom: 4px;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-secondary);
}
.cam-enlace-fila[b-l0exta67tj] { display: flex; gap: 8px; align-items: stretch; }
.cam-enlace-v[b-l0exta67tj] {
    flex: 1;
    min-width: 0;
    padding: 8px 11px;
    font-family: var(--font-mono);
    font-size: 12.5px;
    color: var(--text-primary);
    background: var(--bg-cream);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    text-overflow: ellipsis;
}
.cam-enlace-v:focus[b-l0exta67tj] { outline: none; border-color: var(--brand-teal-deep); box-shadow: 0 0 0 3px rgba(109, 199, 208, 0.25); }

.cam-codigo[b-l0exta67tj] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 12px;
    font-size: 13.5px;
    color: var(--text-secondary);
}
.cam-codigo .msr[b-l0exta67tj] { font-size: 18px; color: var(--text-secondary); }
.cam-codigo .cam-k[b-l0exta67tj] { margin: 0 6px 0 0; }

.cam-acciones[b-l0exta67tj] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px dashed var(--border-soft);
}
.cam-acciones[b-l0exta67tj]  .cam-revocar:hover:not(:disabled) {
    color: var(--danger);
    border-color: var(--danger);
    background: rgba(163, 45, 45, 0.08);
}

.cam-inactiva-nota[b-l0exta67tj] {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    margin: 12px 0 0;
    font-size: 13px;
    color: var(--text-secondary);
}
.cam-inactiva-nota .msr[b-l0exta67tj] { font-size: 17px; margin-top: 1px; }

/* ---- confirmacion (contenido dentro de ConfirmDialog) ---- */
.cam-conf-msg[b-l0exta67tj] {
    margin: 0 0 12px;
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--text-secondary);
    text-align: left;
}
.cam-conf-err[b-l0exta67tj] {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    margin: 0 0 12px;
    padding: 10px 12px;
    border-radius: var(--radius-md);
    background: rgba(163, 45, 45, 0.12);
    color: var(--danger);
    font-size: 13px;
    text-align: left;
}
.cam-conf-err .msr[b-l0exta67tj] { font-size: 18px; }

/* ---- drawer: nuevo enlace (patron S6.11 / CargaAcademica) ---- */
.cam-overlay[b-l0exta67tj] {
    position: fixed;
    inset: 0;
    z-index: var(--z-overlay);
    display: flex;
    justify-content: flex-end;
    background: rgba(20, 22, 25, 0.48);
    animation: cam-fade-b-l0exta67tj 0.18s var(--ease);
}
.cam-drawer[b-l0exta67tj] {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 460px;
    height: 100%;
    background: var(--bg-panel);
    box-shadow: var(--shadow-lg);
    animation: cam-slide-b-l0exta67tj 0.24s var(--ease);
}
.cam-dr-h[b-l0exta67tj] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 20px 22px;
    border-bottom: 1px solid var(--border-soft);
    background: linear-gradient(180deg, var(--bg-cream), var(--bg-panel));
}
.cam-dr-ico[b-l0exta67tj] {
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border-radius: var(--radius-lg);
    background: var(--bg-light-teal);
    color: var(--brand-teal-deep);
}
.cam-dr-tit[b-l0exta67tj] { flex: 1; min-width: 0; }
.cam-dr-tit h2[b-l0exta67tj] { margin: 0; font-family: var(--font-serif); font-size: 21px; font-weight: 600; }
.cam-dr-tit p[b-l0exta67tj] { margin: 3px 0 0; font-size: 12.5px; color: var(--text-secondary); }
.cam-dr-body[b-l0exta67tj] { flex: 1; overflow: auto; padding: 22px; }
.cam-dr-f[b-l0exta67tj] {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 16px 22px;
    border-top: 1px solid var(--border-soft);
}

.cam-campo[b-l0exta67tj] { margin: 0 0 18px; padding: 0; border: 0; }
.cam-campo > label[b-l0exta67tj],
.cam-campo legend[b-l0exta67tj],
.cam-otro label[b-l0exta67tj] {
    display: block;
    margin-bottom: 6px;
    padding: 0;
    font-size: 13px;
    font-weight: 700;
    color: var(--text-primary);
}
.cam-input[b-l0exta67tj] {
    width: 100%;
    box-sizing: border-box;
    min-height: 40px;
    padding: 9px 12px;
    font: inherit;
    font-size: 14px;
    color: var(--text-primary);
    background: var(--bg-panel);
    border: 1px solid var(--border-med);
    border-radius: var(--radius-md);
}
.cam-input:focus[b-l0exta67tj] { outline: none; border-color: var(--brand-teal-deep); box-shadow: 0 0 0 3px rgba(109, 199, 208, 0.25); }
.cam-input--err[b-l0exta67tj] { border-color: var(--danger); }
.cam-input--num[b-l0exta67tj] { max-width: 140px; }
.cam-hint[b-l0exta67tj] { margin: 6px 0 0; font-size: 12.5px; line-height: 1.5; color: var(--text-secondary); }
.cam-err[b-l0exta67tj] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 6px 0 0;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--danger);
}
.cam-err .msr[b-l0exta67tj] { font-size: 16px; }

.cam-chips[b-l0exta67tj] { display: flex; flex-wrap: wrap; gap: 8px; }
.cam-chip[b-l0exta67tj] { position: relative; display: inline-flex; cursor: pointer; }
.cam-chip input[b-l0exta67tj] {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
}
.cam-chip span[b-l0exta67tj] {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 6px 14px;
    font-size: 13px;
    font-weight: 600;
    color: var(--text-secondary);
    background: var(--bg-panel);
    border: 1px solid var(--border-med);
    border-radius: 99px;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.cam-chip:hover span[b-l0exta67tj] { border-color: var(--brand-teal-deep); color: var(--brand-teal-deep); }
.cam-chip input:checked + span[b-l0exta67tj] {
    background: var(--bg-light-teal);
    border-color: var(--brand-teal-deep);
    color: var(--brand-teal-deep);
}
.cam-chip input:focus-visible + span[b-l0exta67tj] { outline: 2px solid var(--brand-teal); outline-offset: 2px; }
.cam-otro[b-l0exta67tj] { margin-top: 12px; }

.cam-nota[b-l0exta67tj] {
    display: flex;
    gap: 9px;
    margin-top: 6px;
    padding: 12px 13px;
    border-radius: var(--radius-md);
    background: rgba(45, 110, 163, 0.12);
    color: var(--info-ink);
    font-size: 13px;
    line-height: 1.5;
}
.cam-nota p[b-l0exta67tj] { margin: 0; }
.cam-nota .msr[b-l0exta67tj] { font-size: 19px; }

.cam-sr[b-l0exta67tj] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

@keyframes cam-slide-b-l0exta67tj { from { transform: translateX(100%); } to { transform: translateX(0); } }
@keyframes cam-fade-b-l0exta67tj { from { opacity: 0; } to { opacity: 1; } }

@media (max-width: 991.98px) {
    .cam-drawer[b-l0exta67tj] { max-width: 100%; }
}

@media (max-width: 575.98px) {
    .cam-toolbar[b-l0exta67tj] { flex-direction: column; align-items: stretch; }
    .cam-nuevo-wrap[b-l0exta67tj]  .ui-btn { width: 100%; }
    .cam-item[b-l0exta67tj] { padding: 14px; }
    .cam-enlace-fila[b-l0exta67tj] { flex-direction: column; }
    .cam-acciones[b-l0exta67tj]  .ui-btn { flex: 1 1 calc(50% - 8px); }
    .cam-dr-body[b-l0exta67tj] { padding: 18px 16px; }
    .cam-dr-h[b-l0exta67tj], .cam-dr-f[b-l0exta67tj] { padding-left: 16px; padding-right: 16px; }
    .cam-dr-f[b-l0exta67tj]  .ui-btn { flex: 1; }
}

@media (pointer: coarse) {
    .cam[b-l0exta67tj]  .ui-btn,
    .cam-drawer[b-l0exta67tj]  .ui-btn,
    .cam-input[b-l0exta67tj],
    .cam-enlace-v[b-l0exta67tj],
    .cam-chip span[b-l0exta67tj] { min-height: 44px; }
    .cam-drawer[b-l0exta67tj]  .ui-btn.icon { min-width: 44px; }
}

@media (prefers-reduced-motion: reduce) {
    .cam-overlay[b-l0exta67tj], .cam-drawer[b-l0exta67tj] { animation: none; }
    .cam-chip span[b-l0exta67tj] { transition: none; }
}
/* /Components/Incorporacion/CorreosTiendasPanel.razor.rz.scp.css */
/* Incorporacion · Correos para dar acceso a la app (prefijo ct-). Solo tokens; breakpoints de Control Escolar. */
.ct[b-zmqx0jrn4x] {
    margin-top: 22px;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
}
.ct-cab[b-zmqx0jrn4x] {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 14px 16px;
    border: 0;
    background: transparent;
    color: var(--text-primary);
    text-align: left;
    cursor: pointer;
    border-radius: var(--radius-lg);
    font: inherit;
}
.ct-cab > .msr:first-child[b-zmqx0jrn4x] { font-size: 24px; color: var(--brand-teal-deep); }
.ct-cab:hover[b-zmqx0jrn4x] { background: var(--bg-light-teal); }
.ct-cab:focus-visible[b-zmqx0jrn4x] { outline: 2px solid var(--brand-teal); outline-offset: 2px; }
.ct-cab-txt[b-zmqx0jrn4x] { display: grid; gap: 2px; min-width: 0; flex: 1 1 auto; }
.ct-h[b-zmqx0jrn4x] { font-family: var(--font-serif); font-size: 17px; font-weight: 600; }
.ct-sub[b-zmqx0jrn4x] { font-size: 13px; line-height: 1.45; color: var(--text-secondary); }
.ct-flecha[b-zmqx0jrn4x] { color: var(--text-secondary); transition: transform 0.18s var(--ease); }

.ct-cuerpo[b-zmqx0jrn4x] {
    display: grid;
    gap: 12px;
    padding: 0 16px 16px;
    animation: ct-entra-b-zmqx0jrn4x 0.2s var(--ease);
}
@keyframes ct-entra-b-zmqx0jrn4x { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }

.ct-tiendas[b-zmqx0jrn4x] { display: flex; flex-wrap: wrap; gap: 8px; }
.ct-tienda[b-zmqx0jrn4x] {
    position: relative;
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 6px 14px;
    border: 1px solid var(--border-med);
    border-radius: 999px;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--text-primary);
    background: var(--bg-panel);
    cursor: pointer;
}
.ct-tienda input[b-zmqx0jrn4x] { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ct-tienda--on[b-zmqx0jrn4x] { background: var(--bg-light-teal); border-color: var(--brand-teal-deep); color: var(--brand-teal-deep); }
.ct-tienda:has(:focus-visible)[b-zmqx0jrn4x] { outline: 2px solid var(--brand-teal); outline-offset: 2px; }

.ct-cuenta[b-zmqx0jrn4x] { margin: 0; font-size: 14px; color: var(--text-primary); font-variant-numeric: tabular-nums; }
.ct-label[b-zmqx0jrn4x] { font-size: 13px; font-weight: 600; color: var(--text-secondary); }
.ct-lista[b-zmqx0jrn4x] {
    width: 100%;
    box-sizing: border-box;
    padding: 10px 12px;
    border: 1px solid var(--border-med);
    border-radius: var(--radius-md);
    background: var(--bg-cream);
    color: var(--text-primary);
    font-family: var(--font-mono);
    font-size: 13px;
    line-height: 1.5;
    resize: vertical;
    overflow-wrap: anywhere;
}
.ct-lista:focus-visible[b-zmqx0jrn4x] { outline: 2px solid var(--brand-teal); outline-offset: 2px; }
.ct-acciones[b-zmqx0jrn4x] { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.ct-aviso[b-zmqx0jrn4x] { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--warning-ink); }

.ct-nota[b-zmqx0jrn4x] {
    display: flex;
    gap: 8px;
    margin: 0;
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--text-secondary);
}
.ct-nota .msr[b-zmqx0jrn4x] { font-size: 18px; color: var(--brand-teal-deep); flex: 0 0 auto; }
.ct-sk[b-zmqx0jrn4x] { display: grid; gap: 8px; }
.ct-sr[b-zmqx0jrn4x] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

@media (pointer: coarse) {
    .ct-cab[b-zmqx0jrn4x] { min-height: 56px; }
    .ct-tienda[b-zmqx0jrn4x] { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
    .ct-cuerpo[b-zmqx0jrn4x] { animation: none; }
    .ct-flecha[b-zmqx0jrn4x] { transition: none; }
}
/* /Components/Incorporacion/RevisionSolicitudDrawer.razor.rz.scp.css */
/* Incorporacion · drawer de revision individual (prefijo rev-). Patron S6.11 / CargaAcademica, solo
   tokens. Texto sobre tintes con su -ink (S7 regla 6); objetivos de 44px en pointer:coarse. */
.rev-overlay[b-94cx4kjcpf] {
    position: fixed;
    inset: 0;
    z-index: var(--z-overlay);
    display: flex;
    justify-content: flex-end;
    background: rgba(20, 22, 25, 0.48);
    animation: rev-fade-b-94cx4kjcpf 0.18s var(--ease);
}
.rev-drawer[b-94cx4kjcpf] {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 520px;
    height: 100%;
    background: var(--bg-panel);
    box-shadow: var(--shadow-lg);
    animation: rev-slide-b-94cx4kjcpf 0.24s var(--ease);
}
.rev-drawer:focus[b-94cx4kjcpf] { outline: none; }

.rev-h[b-94cx4kjcpf] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 20px 22px;
    border-bottom: 1px solid var(--border-soft);
    background: linear-gradient(180deg, var(--bg-cream), var(--bg-panel));
}
.rev-ico[b-94cx4kjcpf] {
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border-radius: var(--radius-lg);
    background: var(--bg-light-teal);
    color: var(--brand-teal-deep);
}
.rev-tit[b-94cx4kjcpf] { flex: 1; min-width: 0; }
.rev-tit h2[b-94cx4kjcpf] { margin: 0; font-family: var(--font-serif); font-size: 21px; font-weight: 600; color: var(--text-primary); }
.rev-tit p[b-94cx4kjcpf] { margin: 3px 0 0; font-size: 12.5px; color: var(--text-secondary); overflow-wrap: anywhere; }

.rev-body[b-94cx4kjcpf] { flex: 1; overflow: auto; padding: 18px 22px 22px; }
.rev-sk[b-94cx4kjcpf] { display: grid; gap: 14px; }

.rev-estado[b-94cx4kjcpf] { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }

.rev-sec[b-94cx4kjcpf] { padding: 14px 0; border-top: 1px solid var(--border-soft); }
.rev-sec:first-of-type[b-94cx4kjcpf] { border-top: 0; padding-top: 0; }
.rev-sec h3[b-94cx4kjcpf] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0 0 10px;
    font-family: var(--font-serif);
    font-size: 16px;
    font-weight: 600;
    color: var(--text-primary);
}
.rev-sec h3 .msr[b-94cx4kjcpf] { font-size: 19px; color: var(--warning-ink); }

.rev-dl[b-94cx4kjcpf] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 16px;
    margin: 0;
}
.rev-dl > div[b-94cx4kjcpf] { min-width: 0; }
.rev-dl-ancho[b-94cx4kjcpf] { grid-column: 1 / -1; }
.rev-dl dt[b-94cx4kjcpf] {
    margin-bottom: 2px;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-secondary);
}
.rev-dl dd[b-94cx4kjcpf] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 8px;
    margin: 0;
    font-size: 14px;
    color: var(--text-primary);
}
.rev-largo[b-94cx4kjcpf] { overflow-wrap: anywhere; min-width: 0; }

.rev-nota-sm[b-94cx4kjcpf] {
    flex-basis: 100%;
    margin: 0 0 8px;
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--text-secondary);
}
.rev-dl dd .rev-nota-sm[b-94cx4kjcpf] { margin: 0; }
.rev-nota-sm a[b-94cx4kjcpf], .rev-motivo a[b-94cx4kjcpf] { color: var(--brand-teal-deep); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.rev-nota-sm .msr[b-94cx4kjcpf] { font-size: 15px; vertical-align: -3px; margin-right: 4px; }

.rev-aviso-sm[b-94cx4kjcpf] {
    display: flex;
    gap: 6px;
    align-items: flex-start;
    margin: 10px 0 0;
    padding: 9px 11px;
    border-radius: var(--radius-md);
    background: rgba(45, 110, 163, 0.12);
    color: var(--info-ink);
    font-size: 12.5px;
    line-height: 1.5;
}
.rev-aviso-sm .msr[b-94cx4kjcpf] { font-size: 16px; margin-top: 1px; }

/* ---- duplicados ---- */
.rev-dup[b-94cx4kjcpf] {
    margin: 4px 0;
    padding: 14px;
    border: 1px solid var(--border-med);
    border-left: 3px solid var(--warning);
    border-radius: var(--radius-md);
    background: var(--bg-cream);
}
.rev-dup-lista[b-94cx4kjcpf] { list-style: none; margin: 0 0 10px; padding: 0; display: grid; gap: 8px; }
.rev-dup-lista li[b-94cx4kjcpf] { display: flex; gap: 8px; align-items: flex-start; font-size: 13.5px; color: var(--text-primary); }
.rev-dup-lista .msr[b-94cx4kjcpf] { font-size: 18px; color: var(--text-secondary); margin-top: 1px; }
.rev-dup-nota[b-94cx4kjcpf] { margin: 0; font-size: 12.5px; font-weight: 600; color: var(--warning-ink); }

/* ---- decision ---- */
.rev-fs[b-94cx4kjcpf] { margin: 0 0 14px; padding: 0; border: 0; min-width: 0; }
.rev-fs legend[b-94cx4kjcpf] {
    margin-bottom: 8px;
    padding: 0;
    font-size: 13.5px;
    font-weight: 700;
    color: var(--text-primary);
}
.rev-legend-sub[b-94cx4kjcpf] { font-weight: 500; color: var(--text-secondary); }

.rev-roles[b-94cx4kjcpf] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.rev-rol[b-94cx4kjcpf] { position: relative; display: block; cursor: pointer; }
.rev-rol-input[b-94cx4kjcpf] {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
}
.rev-rol-card[b-94cx4kjcpf] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    height: 100%;
    box-sizing: border-box;
    padding: 12px;
    border: 1px solid var(--border-med);
    border-radius: var(--radius-lg);
    background: var(--bg-panel);
    transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}
.rev-rol:hover .rev-rol-card[b-94cx4kjcpf] { border-color: var(--brand-teal-deep); }
.rev-rol-input:checked + .rev-rol-card[b-94cx4kjcpf] {
    border-color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
    box-shadow: inset 0 0 0 1px var(--brand-teal-deep);
}
.rev-rol-input:focus-visible + .rev-rol-card[b-94cx4kjcpf] { outline: 2px solid var(--brand-teal); outline-offset: 2px; }
.rev-rol-tile[b-94cx4kjcpf] {
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    border-radius: var(--radius-md);
    background: var(--bg-cream);
    color: var(--brand-teal-deep);
    font-size: 19px;
}
.rev-rol-txt[b-94cx4kjcpf] { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.rev-rol-txt b[b-94cx4kjcpf] { font-size: 14px; color: var(--text-primary); }
.rev-rol-txt span[b-94cx4kjcpf] { font-size: 12px; line-height: 1.4; color: var(--text-secondary); }
.rev-rol-check[b-94cx4kjcpf] { font-size: 20px; color: var(--text-secondary); }
.rev-rol-input:checked + .rev-rol-card .rev-rol-check[b-94cx4kjcpf] { color: var(--brand-teal-deep); }
.rev-directivo[b-94cx4kjcpf] { margin: 8px 0 0; }

.rev-modos[b-94cx4kjcpf], .rev-checks[b-94cx4kjcpf] { display: flex; flex-wrap: wrap; gap: 8px 14px; }
.rev-modos[b-94cx4kjcpf] { flex-direction: column; gap: 6px; margin-bottom: 10px; }
.rev-radio[b-94cx4kjcpf], .rev-check[b-94cx4kjcpf] {
    display: inline-flex;
    align-items: flex-start;
    gap: 8px;
    min-height: 32px;
    font-size: 14px;
    color: var(--text-primary);
    cursor: pointer;
}
.rev-radio input[b-94cx4kjcpf], .rev-check input[b-94cx4kjcpf] { width: 18px; height: 18px; margin-top: 1px; accent-color: var(--brand-teal-deep); }
.rev-radio small[b-94cx4kjcpf] { display: block; font-size: 12px; color: var(--text-secondary); }
.rev-radio--compacto[b-94cx4kjcpf] { align-items: center; }
.rev-pidio[b-94cx4kjcpf] {
    padding: 1px 7px;
    border-radius: 99px;
    background: rgba(45, 110, 163, 0.12);
    color: var(--info-ink);
    font-size: 11px;
    font-weight: 700;
}
.rev-principal[b-94cx4kjcpf] { margin: 12px 0 0; padding: 10px 12px; border-radius: var(--radius-md); background: var(--bg-cream); }

.rev-preview[b-94cx4kjcpf] {
    display: flex;
    gap: 9px;
    align-items: flex-start;
    margin-top: 4px;
    padding: 12px 13px;
    border-radius: var(--radius-md);
    background: var(--bg-light-teal);
    color: var(--text-primary);
    font-size: 13.5px;
    line-height: 1.5;
    animation: rev-aparece-b-94cx4kjcpf 0.2s var(--ease);
}
.rev-preview p[b-94cx4kjcpf] { margin: 0; }
.rev-preview .msr[b-94cx4kjcpf] { font-size: 19px; color: var(--brand-teal-deep); margin-top: 1px; }

/* ---- no decidible ---- */
.rev-motivo[b-94cx4kjcpf] {
    display: flex;
    gap: 9px;
    align-items: flex-start;
    margin-bottom: 10px;
    padding: 12px 13px;
    border-radius: var(--radius-md);
    background: rgba(186, 117, 23, 0.14);
    color: var(--warning-ink);
    font-size: 13.5px;
    line-height: 1.5;
}
.rev-motivo p[b-94cx4kjcpf] { margin: 0; }
.rev-motivo .msr[b-94cx4kjcpf] { font-size: 19px; margin-top: 1px; }
.rev-decidida[b-94cx4kjcpf] { margin-top: 6px; }

/* ---- rechazo ---- */
.rev-rechazo[b-94cx4kjcpf] {
    margin-top: 6px;
    padding: 14px;
    border: 1px solid var(--border-med);
    border-left: 3px solid var(--danger);
    border-radius: var(--radius-md);
    background: var(--bg-cream);
}
.rev-label[b-94cx4kjcpf] { display: block; margin: 8px 0 6px; font-size: 13px; font-weight: 700; color: var(--text-primary); }
.rev-textarea[b-94cx4kjcpf] {
    width: 100%;
    box-sizing: border-box;
    padding: 9px 12px;
    font: inherit;
    font-size: 14px;
    color: var(--text-primary);
    background: var(--bg-panel);
    border: 1px solid var(--border-med);
    border-radius: var(--radius-md);
    resize: vertical;
}
.rev-textarea:focus[b-94cx4kjcpf] { outline: none; border-color: var(--brand-teal-deep); box-shadow: 0 0 0 3px rgba(109, 199, 208, 0.25); }

/* ---- footer ---- */
.rev-f[b-94cx4kjcpf] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    padding: 14px 22px;
    border-top: 1px solid var(--border-soft);
    background: var(--bg-panel);
}
.rev-razon[b-94cx4kjcpf] {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    flex: 1 1 200px;
    margin: 0;
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--text-secondary);
}
.rev-razon .msr[b-94cx4kjcpf] { font-size: 16px; margin-top: 1px; }

.rev-sr[b-94cx4kjcpf] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

@keyframes rev-slide-b-94cx4kjcpf { from { transform: translateX(100%); } to { transform: translateX(0); } }
@keyframes rev-fade-b-94cx4kjcpf { from { opacity: 0; } to { opacity: 1; } }
@keyframes rev-aparece-b-94cx4kjcpf { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }

@media (max-width: 991.98px) {
    .rev-drawer[b-94cx4kjcpf] { max-width: 100%; }
}

@media (max-width: 575.98px) {
    .rev-h[b-94cx4kjcpf] { padding: 16px; }
    .rev-body[b-94cx4kjcpf] { padding: 16px; }
    .rev-dl[b-94cx4kjcpf] { grid-template-columns: 1fr; }
    .rev-roles[b-94cx4kjcpf] { grid-template-columns: 1fr; }
    .rev-f[b-94cx4kjcpf] { padding: 12px 16px; }
    .rev-f[b-94cx4kjcpf]  .ui-btn { flex: 1 1 40%; }
    .rev-razon[b-94cx4kjcpf] { flex-basis: 100%; }
}

@media (pointer: coarse) {
    .rev-drawer[b-94cx4kjcpf]  .ui-btn { min-height: 44px; }
    .rev-drawer[b-94cx4kjcpf]  .ui-btn.icon { min-width: 44px; }
    .rev-radio[b-94cx4kjcpf], .rev-check[b-94cx4kjcpf] { min-height: 44px; align-items: center; }
    .rev-rol-card[b-94cx4kjcpf] { min-height: 64px; }
}

@media (prefers-reduced-motion: reduce) {
    .rev-overlay[b-94cx4kjcpf], .rev-drawer[b-94cx4kjcpf], .rev-preview[b-94cx4kjcpf] { animation: none; }
    .rev-rol-card[b-94cx4kjcpf] { transition: none; }
}
/* /Components/Incorporacion/SecretoCampanaModal.razor.rz.scp.css */
/* Incorporacion · entrega del codigo de un solo uso (prefijo sec-). Patron cred-* de T-058 (S6.11),
   solo tokens. Tintes semanticos con su tinta -ink (S7 regla 6). */
.sec-backdrop[b-24zul0vxer] {
    position: fixed;
    inset: 0;
    z-index: 1050;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    background: rgba(20, 22, 25, 0.5);
    animation: sec-fade-b-24zul0vxer 0.18s var(--ease);
}

.sec-modal[b-24zul0vxer] {
    width: 540px;
    max-width: 100%;
    max-height: calc(100vh - 32px);
    overflow: auto;
    background: var(--bg-panel);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-lg);
    animation: sec-pop-b-24zul0vxer 0.22s var(--ease);
}
.sec-modal:focus[b-24zul0vxer] { outline: none; }
.sec-modal:focus-visible[b-24zul0vxer] { outline: 2px solid var(--brand-teal); outline-offset: 2px; }

.sec-head[b-24zul0vxer] {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 22px 24px 16px;
    border-bottom: 1px solid var(--border-soft);
}
.sec-ico[b-24zul0vxer] {
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border-radius: var(--radius-md);
    background: rgba(29, 158, 117, 0.12);
    color: var(--success-ink);
    font-size: 24px;
}
.sec-titulo[b-24zul0vxer] {
    margin: 0;
    font-family: var(--font-serif);
    font-size: 20px;
    font-weight: 600;
    line-height: 1.3;
    color: var(--text-primary);
}
.sec-sub[b-24zul0vxer] {
    margin: 6px 0 0;
    font-size: 13px;
    line-height: 1.55;
    color: var(--text-secondary);
}

.sec-body[b-24zul0vxer] { padding: 20px 24px; }

.sec-card[b-24zul0vxer] {
    margin: 0;
    background: var(--bg-cream);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    overflow: hidden;
}
.sec-row[b-24zul0vxer] {
    padding: 12px 14px;
    border-bottom: 1px solid var(--border-soft);
}
.sec-row:last-child[b-24zul0vxer] { border-bottom: none; }
.sec-row-codigo[b-24zul0vxer] { background: var(--bg-panel); }
.sec-k[b-24zul0vxer] {
    margin-bottom: 3px;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-secondary);
}
.sec-v[b-24zul0vxer] {
    margin: 0;
    font-size: 14px;
    color: var(--text-primary);
}
.sec-enlace[b-24zul0vxer] {
    font-family: var(--font-mono);
    font-size: 13px;
    overflow-wrap: anywhere;
    user-select: all;
    -webkit-user-select: all;
}
.sec-codigo[b-24zul0vxer] {
    margin: 0;
    font-family: var(--font-mono);
    font-size: 30px;
    font-weight: 600;
    letter-spacing: 0.12em;
    line-height: 1.2;
    color: var(--text-primary);
    font-variant-numeric: tabular-nums;
    user-select: all;
    -webkit-user-select: all;
}

.sec-acciones[b-24zul0vxer] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 16px;
}
.sec-acciones[b-24zul0vxer]  .sec-copiado {
    background: rgba(29, 158, 117, 0.12);
    border-color: transparent;
    color: var(--success-ink);
}
.sec-hint[b-24zul0vxer] {
    margin: 8px 0 0;
    font-size: 12.5px;
    color: var(--text-secondary);
}

.sec-err[b-24zul0vxer],
.sec-aviso[b-24zul0vxer],
.sec-info[b-24zul0vxer] {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    margin-top: 14px;
    padding: 11px 13px;
    border-radius: var(--radius-md);
    font-size: 12.5px;
    line-height: 1.6;
}
.sec-err .msr[b-24zul0vxer],
.sec-aviso .msr[b-24zul0vxer],
.sec-info .msr[b-24zul0vxer] { flex: 0 0 19px; font-size: 19px; margin-top: 1px; }
.sec-err[b-24zul0vxer] { background: rgba(163, 45, 45, 0.12); color: var(--danger); }
.sec-aviso[b-24zul0vxer] { background: rgba(186, 117, 23, 0.14); color: var(--warning-ink); }
.sec-info[b-24zul0vxer] { background: rgba(45, 110, 163, 0.12); color: var(--info-ink); margin-top: 8px; }

.sec-foot[b-24zul0vxer] {
    display: flex;
    justify-content: flex-end;
    padding: 14px 24px;
    border-top: 1px solid var(--border-soft);
    background: var(--bg-cream);
}
.sec-confirm[b-24zul0vxer] {
    padding: 14px 24px;
    border-top: 1px solid var(--border-soft);
    background: rgba(186, 117, 23, 0.14);
}
.sec-confirm-txt[b-24zul0vxer] {
    margin: 0 0 10px;
    font-size: 13px;
    font-weight: 600;
    color: var(--warning-ink);
}
.sec-confirm-btns[b-24zul0vxer] {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

@keyframes sec-fade-b-24zul0vxer { from { opacity: 0; } to { opacity: 1; } }
@keyframes sec-pop-b-24zul0vxer { from { opacity: 0; transform: translateY(8px) scale(0.98); } to { opacity: 1; transform: none; } }

@media (max-width: 575.98px) {
    .sec-backdrop[b-24zul0vxer] { align-items: flex-end; padding: 0; }
    .sec-modal[b-24zul0vxer] { max-height: 100vh; border-radius: var(--radius-xl) var(--radius-xl) 0 0; }
    .sec-head[b-24zul0vxer], .sec-body[b-24zul0vxer] { padding-left: 16px; padding-right: 16px; }
    .sec-foot[b-24zul0vxer], .sec-confirm[b-24zul0vxer] { padding-left: 16px; padding-right: 16px; }
    .sec-codigo[b-24zul0vxer] { font-size: 26px; }
    .sec-acciones[b-24zul0vxer]  .ui-btn { flex: 1 1 100%; }
    .sec-confirm-btns[b-24zul0vxer]  .ui-btn { flex: 1 1 100%; }
}

@media (pointer: coarse) {
    .sec-modal[b-24zul0vxer]  .ui-btn { min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
    .sec-backdrop[b-24zul0vxer], .sec-modal[b-24zul0vxer] { animation: none; }
}
/* /Components/Inicio/AgendaHoyCard.razor.rz.scp.css */
/* ────────────────────────────────────────────────────────────────────
   AgendaHoyCard — timeline compacta "Hoy" (columna lateral)
   ──────────────────────────────────────────────────────────────────── */

.card[b-wkbtl1wz6v] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
}

.agenda[b-wkbtl1wz6v] { padding-bottom: 8px; }

.card-h[b-wkbtl1wz6v] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 18px 20px 0;
}

.card-h h2[b-wkbtl1wz6v] {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
}

.cnt[b-wkbtl1wz6v] {
    font-size: 12px;
    font-weight: 700;
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
    border-radius: 999px;
    padding: 2px 9px;
}

.lnk[b-wkbtl1wz6v] {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--brand-teal-deep);
    text-decoration: none;
    padding: 4px 6px;
    border-radius: var(--radius-sm);
}

.lnk:hover[b-wkbtl1wz6v] { text-decoration: underline; }
.lnk:focus-visible[b-wkbtl1wz6v] { outline: 2px solid var(--brand-teal-dark); outline-offset: 2px; }
.lnk .material-symbols-rounded[b-wkbtl1wz6v] { font-size: 14px !important; }

/* ── timeline ── */
.tl[b-wkbtl1wz6v] {
    position: relative;
    margin: 14px 0 6px;
    padding: 0 20px;
}

.tl[b-wkbtl1wz6v]::before {
    content: "";
    position: absolute;
    left: 74px;
    top: 6px; bottom: 6px;
    width: 2px;
    background: var(--cream-deep);
    border-radius: 2px;
}

.slot[b-wkbtl1wz6v] {
    position: relative;
    display: flex;
    gap: 16px;
    padding: 9px 0;
}

.slot .hh[b-wkbtl1wz6v] {
    width: 42px;
    text-align: right;
    font-size: 12px;
    color: var(--text-muted);
    font-weight: 600;
    flex: none;
    padding-top: 3px;
}

.slot .pt[b-wkbtl1wz6v] {
    position: absolute;
    left: 69px;
    top: 14px;
    width: 12px; height: 12px;
    border-radius: 50%;
    background: var(--bg-panel);
    border: 2.5px solid var(--border-med);
    z-index: 1;
}

.slot.done .pt[b-wkbtl1wz6v] { border-color: var(--success); background: var(--success); }
.slot.live .pt[b-wkbtl1wz6v] { border-color: var(--brand-teal-deep); background: var(--brand-teal); }

.slot .bx[b-wkbtl1wz6v] {
    flex: 1;
    min-width: 0;
    background: var(--bg-cream);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    padding: 10px 12px;
    margin-left: 12px;
    transition: border-color 0.15s var(--ease);
}

.slot .bx:hover[b-wkbtl1wz6v] { border-color: var(--border-med); }
.slot.live .bx[b-wkbtl1wz6v] { background: var(--bg-panel); border-color: var(--brand-teal); box-shadow: var(--shadow-sm); }
.slot.done .bx-name[b-wkbtl1wz6v] { color: var(--text-secondary); }

.slot b[b-wkbtl1wz6v] {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-primary);
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
}

.slot small[b-wkbtl1wz6v] {
    font-size: 11.5px;
    color: var(--text-muted);
    display: block;
    margin-top: 1px;
}

.pill[b-wkbtl1wz6v] {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.05em;
    border-radius: 999px;
    padding: 2px 7px;
    text-transform: uppercase;
    white-space: nowrap;
}

/* rgba de tokens — sin hex nuevos. success puro da ~3.2:1 sobre el tinte:
   se usa el token verde profundo (pz-green-deep) para AA 4.5:1. */
.pill.ok[b-wkbtl1wz6v]   { background: rgba(29, 158, 117, 0.12); color: var(--pz-green-deep); }
.pill.go[b-wkbtl1wz6v]   { background: var(--bg-light-teal);     color: var(--brand-teal-deep); }
.pill.wait[b-wkbtl1wz6v] { background: var(--cream-deep);        color: var(--text-secondary); }

.quick[b-wkbtl1wz6v] { margin-top: 7px; }

.mini-btn[b-wkbtl1wz6v] {
    display: inline-flex;
    align-items: center;
    font-family: var(--font-sans);
    font-size: 12px;
    font-weight: 600;
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
    border: 0;
    border-radius: 999px;
    padding: 6px 12px;
    min-height: 30px;
    cursor: pointer;
    text-decoration: none;
    transition: all 0.15s var(--ease);
}

.mini-btn:hover[b-wkbtl1wz6v] { background: var(--brand-teal); color: var(--carbon-1); }
.mini-btn:focus-visible[b-wkbtl1wz6v] { outline: 2px solid var(--brand-teal-dark); outline-offset: 2px; }

/* ── vacío ── */
.ag-empty[b-wkbtl1wz6v] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 4px;
    padding: 26px 24px 22px;
}

.ag-empty .material-symbols-rounded[b-wkbtl1wz6v] {
    font-size: 32px !important;
    color: var(--border-med);
    margin-bottom: 4px;
}

.ag-empty-title[b-wkbtl1wz6v] {
    font-family: var(--font-serif);
    font-size: 15px;
    font-weight: 600;
    color: var(--text-secondary);
}

.ag-empty-sub[b-wkbtl1wz6v] {
    font-size: 12px;
    color: var(--text-muted);
    max-width: 260px;
    line-height: 1.5;
}

@media (max-width: 640px) {
    .card-h[b-wkbtl1wz6v] { padding: 16px 16px 0; }
    .tl[b-wkbtl1wz6v] { padding: 0 16px; }
    .tl[b-wkbtl1wz6v]::before { left: 70px; }
    .slot .pt[b-wkbtl1wz6v] { left: 65px; }
    .mini-btn[b-wkbtl1wz6v] { min-height: 44px; padding: 10px 16px; }
    .lnk[b-wkbtl1wz6v] { min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
    .slot .bx[b-wkbtl1wz6v], .mini-btn[b-wkbtl1wz6v] { transition: none; }
}
/* /Components/Inicio/AhoraHero.razor.rz.scp.css */
/* ────────────────────────────────────────────────────────────────────
   AhoraHero — hero "AHORA" del Centro de Mando (tokens de tokens.css)
   ──────────────────────────────────────────────────────────────────── */

.now[b-pk265azorn] {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-2xl);
    background: linear-gradient(115deg, var(--bg-panel) 58%, var(--bg-light-teal));
    box-shadow: var(--shadow-md);
}

.now[b-pk265azorn]::before {
    content: "";
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 5px;
    background: linear-gradient(var(--brand-teal), var(--brand-teal-deep));
}

.now-in[b-pk265azorn] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 250px;
    gap: 20px;
    padding: 22px 24px;
}

.now-main[b-pk265azorn] { min-width: 0; }

/* ── badge live ── */
.live[b-pk265azorn] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--brand-teal-deep);
}

.live .dot[b-pk265azorn] {
    width: 9px; height: 9px;
    border-radius: 50%;
    background: var(--success);
    position: relative;
    flex: none;
}

.live .dot[b-pk265azorn]::after {
    content: "";
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    border: 2px solid var(--success);
    opacity: 0.5;
    animation: hero-pulse-b-pk265azorn 1.8s var(--ease) infinite;
}

.live .dot.still[b-pk265azorn] { background: var(--brand-teal-dark); }
.live .dot.still[b-pk265azorn]::after { animation: none; opacity: 0; }

@keyframes hero-pulse-b-pk265azorn {
    0%   { transform: scale(0.6); opacity: 0.7; }
    70%  { transform: scale(1.25); opacity: 0; }
    100% { opacity: 0; }
}

.now h1[b-pk265azorn] {
    font-family: var(--font-serif);
    font-size: 30px;
    font-weight: 600;
    letter-spacing: -0.3px;
    color: var(--text-primary);
    margin: 8px 0 4px;
    line-height: 1.15;
}

.now .meta[b-pk265azorn] {
    color: var(--text-secondary);
    font-size: 14px;
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
}

.now .meta span[b-pk265azorn] {
    display: inline-flex;
    gap: 5px;
    align-items: center;
}

.now .meta .material-symbols-rounded[b-pk265azorn] {
    font-size: 16px !important;
    color: var(--text-muted);
}

/* ── chip estado de lista (F13) — fondos rgba-de-token canon F2, texto AA F8W ── */
.lchip[b-pk265azorn] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    font-weight: 600;
    border-radius: 999px;
    padding: 3px 11px;
}

.lchip.done[b-pk265azorn] { background: rgba(29, 158, 117, 0.12); color: var(--pz-green-deep); }
.lchip.todo[b-pk265azorn] { background: rgba(186, 117, 23, 0.12); color: color-mix(in srgb, var(--warning) 75%, var(--carbon-1)); }

.now .meta .lchip .material-symbols-rounded[b-pk265azorn] {
    font-size: 15px !important;
    color: inherit;
}

/* ── bloque compacto "Para retomar" (FASE 2, amplía el strip F13) ── */
.ret[b-pk265azorn] {
    margin-top: 14px;
    max-width: 640px;
    padding: 10px 14px 11px;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
}

.ret-head[b-pk265azorn] {
    display: flex;
    align-items: center;
    gap: 7px;
}

.ret-head > .material-symbols-rounded[b-pk265azorn] {
    font-size: 16px !important;
    color: var(--brand-teal-deep);
    flex: none;
}

.ret-kicker[b-pk265azorn] {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.ret-more[b-pk265azorn] {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-family: var(--font-sans);
    font-size: 12.5px;
    font-weight: 600;
    color: var(--brand-teal-deep);
    background: transparent;
    border: 0;
    padding: 4px 6px;
    border-radius: var(--radius-sm);
    cursor: pointer;
}

.ret-more:hover[b-pk265azorn] { text-decoration: underline; }
.ret-more:focus-visible[b-pk265azorn] { outline: 2px solid var(--brand-teal-dark); outline-offset: 2px; }
.ret-more .material-symbols-rounded[b-pk265azorn] { font-size: 14px !important; }

.ret-rows[b-pk265azorn] {
    list-style: none;
    margin: 6px 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
}

.ret-rows li[b-pk265azorn] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 30px;
    min-width: 0;
    font-size: 13px;
    color: var(--text-secondary);
}

.ret-rows li > .material-symbols-rounded[b-pk265azorn] {
    font-size: 16px !important;
    color: var(--text-muted);
    flex: none;
}

.ret-txt[b-pk265azorn] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--text-secondary);
    text-decoration: none;
    border-radius: var(--radius-sm);
    transition: color 0.18s var(--ease);
}

.ret-txt b[b-pk265azorn] {
    font-weight: 600;
    color: var(--text-primary);
}

.ret-txt small[b-pk265azorn] {
    font-size: 12px;
    color: var(--text-muted);
}

a.ret-txt:hover[b-pk265azorn],
a.ret-txt:hover b[b-pk265azorn] { color: var(--brand-teal-deep); }
a.ret-txt:hover[b-pk265azorn] { text-decoration: underline; }

a.ret-txt:focus-visible[b-pk265azorn] {
    outline: 2px solid var(--brand-teal-dark);
    outline-offset: 2px;
}

/* ── CTAs ── */
.cta[b-pk265azorn] {
    display: flex;
    gap: 10px;
    margin-top: 18px;
    flex-wrap: wrap;
}

.btn[b-pk265azorn] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-sans);
    font-size: 14px;
    font-weight: 600;
    border-radius: var(--radius-lg);
    padding: 10px 18px;
    min-height: 44px;
    cursor: pointer;
    border: 1px solid transparent;
    text-decoration: none;
    transition: all 0.18s var(--ease);
}

.btn .material-symbols-rounded[b-pk265azorn] { font-size: 18px !important; }

.btn-p[b-pk265azorn] {
    background: var(--text-primary);
    color: var(--bg-panel);
}

.btn-p:hover[b-pk265azorn] {
    transform: translateY(-1px);
    box-shadow: var(--shadow-md);
    color: var(--bg-panel);
}

.btn-g[b-pk265azorn] {
    background: var(--bg-panel);
    border-color: var(--border-med);
    color: var(--text-primary);
}

.btn-g:hover[b-pk265azorn] {
    border-color: var(--brand-teal-dark);
    color: var(--brand-teal-deep);
    transform: translateY(-1px);
}

.btn:focus-visible[b-pk265azorn] {
    outline: 2px solid var(--brand-teal-dark);
    outline-offset: 2px;
}

/* ── lateral ── */
.now-side[b-pk265azorn] {
    border-left: 1px solid var(--border-soft);
    padding-left: 18px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    font-size: 13px;
    min-width: 0;
}

.kv[b-pk265azorn] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
}

.kv .k[b-pk265azorn] { color: var(--text-muted); }
.kv .v[b-pk265azorn] { font-weight: 600; color: var(--text-primary); }

.prog-block .kv[b-pk265azorn] { margin-bottom: 6px; }

.prog[b-pk265azorn] {
    height: 6px;
    border-radius: 4px;
    background: var(--cream-deep);
    overflow: hidden;
}

.prog i[b-pk265azorn] {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, var(--brand-teal), var(--brand-teal-deep));
    border-radius: 4px;
    transition: width 0.25s var(--ease);
}

.nextc[b-pk265azorn] {
    margin-top: auto;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    padding: 11px 13px;
}

.nextc small[b-pk265azorn] {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.nextc b[b-pk265azorn] {
    display: block;
    font-family: var(--font-serif);
    font-size: 15px;
    font-weight: 600;
    color: var(--text-primary);
    margin-top: 2px;
}

.nextc span[b-pk265azorn] {
    font-size: 12px;
    color: var(--text-secondary);
}

.nextc.is-last b[b-pk265azorn] { color: var(--text-secondary); }

/* ── estado vacío ── */
.now.is-empty[b-pk265azorn] { background: var(--bg-panel); }

.now-empty[b-pk265azorn] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 6px;
    padding: 36px 24px 32px;
}

.now-empty > .material-symbols-rounded[b-pk265azorn] {
    font-size: 40px !important;
    color: var(--border-med);
    margin-bottom: 4px;
}

.now-empty-title[b-pk265azorn] {
    font-family: var(--font-serif);
    font-size: 19px;
    font-weight: 600;
    color: var(--text-primary);
}

.now-empty-sub[b-pk265azorn] {
    font-size: 13px;
    color: var(--text-muted);
    max-width: 340px;
    line-height: 1.5;
    margin-bottom: 10px;
}

/* ── responsive ── */
@media (max-width: 1080px) {
    .now-in[b-pk265azorn] { grid-template-columns: 1fr; }
    .now-side[b-pk265azorn] {
        border-left: 0;
        padding-left: 0;
        border-top: 1px solid var(--border-soft);
        padding-top: 14px;
    }
    .nextc[b-pk265azorn] { margin-top: 0; }
}

@media (max-width: 640px) {
    .now-in[b-pk265azorn] { padding: 18px 16px; }
    .now h1[b-pk265azorn] { font-size: 25px; }
    .cta[b-pk265azorn] { gap: 8px; }
    .btn[b-pk265azorn] { flex: 1 1 calc(50% - 8px); justify-content: center; padding: 10px 12px; }
    .ret[b-pk265azorn] { max-width: none; padding: 10px 12px 11px; }
    .ret-head[b-pk265azorn] { flex-wrap: wrap; }
    .ret-more[b-pk265azorn] { margin-left: auto; min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
    .live .dot[b-pk265azorn]::after { animation: none; }
    .btn[b-pk265azorn], .prog i[b-pk265azorn], .ret-txt[b-pk265azorn] { transition: none; }
}
/* /Components/Inicio/AsiVaTuDia.razor.rz.scp.css */
/* ────────────────────────────────────────────────────────────────────
   AsiVaTuDia — mini-grid de stats del día
   ──────────────────────────────────────────────────────────────────── */

.card[b-4jr5j96utc] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
}

.card-h[b-4jr5j96utc] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 18px 20px 0;
}

.card-h h2[b-4jr5j96utc] {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
}

.eod[b-4jr5j96utc] {
    padding: 14px 20px 18px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.eodi[b-4jr5j96utc] {
    background: var(--bg-cream);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    padding: 11px 12px;
    min-height: 44px;
    text-decoration: none;
    transition: all 0.15s var(--ease);
    display: block;
}

.eodi:hover[b-4jr5j96utc] {
    border-color: var(--brand-teal-dark);
    background: var(--bg-panel);
}

.eodi:focus-visible[b-4jr5j96utc] {
    outline: 2px solid var(--brand-teal-dark);
    outline-offset: 2px;
}

.eodi small[b-4jr5j96utc] {
    font-size: 11px;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    gap: 4px;
}

.eodi small .material-symbols-rounded[b-4jr5j96utc] {
    font-size: 14px !important;
    flex: none;
}

.eodi b[b-4jr5j96utc] {
    font-family: var(--font-serif);
    font-size: 19px;
    font-weight: 600;
    color: var(--text-primary);
}

.eodi b em[b-4jr5j96utc] {
    font-style: normal;
    font-size: 12px;
    color: var(--text-muted);
    font-family: var(--font-sans);
}

/* AA 4.5:1 sobre bg-cream: success/warning puros quedan cortos (~3.2/3.5);
   variantes oscurecidas solo con tokens existentes. */
.eodi.ok b[b-4jr5j96utc]   { color: var(--pz-green-deep); }
.eodi.warn b[b-4jr5j96utc] { color: color-mix(in srgb, var(--warning) 75%, var(--carbon-1)); }

/* F13: stat informativo sin destino (Por calificar en 0) — sin affordance de click */
.eodi.is-static[b-4jr5j96utc] { cursor: default; }
.eodi.is-static:hover[b-4jr5j96utc] {
    border-color: var(--border-soft);
    background: var(--bg-cream);
}

@media (max-width: 640px) {
    .card-h[b-4jr5j96utc] { padding: 16px 16px 0; }
    .eod[b-4jr5j96utc] { padding: 12px 16px 16px; }
}

@media (prefers-reduced-motion: reduce) {
    .eodi[b-4jr5j96utc] { transition: none; }
}
/* /Components/Inicio/BriefDia.razor.rz.scp.css */
/* ────────────────────────────────────────────────────────────────────
   BriefDia — "Tu día en 20 segundos"
   ──────────────────────────────────────────────────────────────────── */

.card[b-a7l69ifogu] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
}

.card-h[b-a7l69ifogu] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 18px 20px 0;
}

.card-h h2[b-a7l69ifogu] {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
}

.cnt[b-a7l69ifogu] {
    font-size: 12px;
    font-weight: 700;
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
    border-radius: 999px;
    padding: 2px 9px;
}

/* ── filas ── */
.row[b-a7l69ifogu] {
    display: flex;
    gap: 13px;
    align-items: flex-start;
    padding: 13px 20px;
    border-top: 1px solid var(--border-soft);
}

.row:first-of-type[b-a7l69ifogu] { border-top: 0; margin-top: 12px; }

.ic[b-a7l69ifogu] {
    width: 34px; height: 34px;
    border-radius: 10px;
    display: grid;
    place-items: center;
    flex: none;
}

.ic .material-symbols-rounded[b-a7l69ifogu] { font-size: 19px !important; }

/* tonos con rgba de tokens (success/warning/info) — sin hex nuevos */
.ic.t1[b-a7l69ifogu] { background: rgba(29, 158, 117, 0.12);  color: var(--success); }
.ic.t2[b-a7l69ifogu] { background: rgba(186, 117, 23, 0.12);  color: var(--warning); }
.ic.t3[b-a7l69ifogu] { background: rgba(45, 110, 163, 0.10);  color: var(--info); }

.txt[b-a7l69ifogu] { min-width: 0; flex: 1; }

.row p[b-a7l69ifogu] {
    font-size: 14px;
    line-height: 1.5;
    color: var(--text-primary);
    margin: 0;
}

.row p b[b-a7l69ifogu] { font-weight: 600; }

.why[b-a7l69ifogu] {
    font-size: 12px;
    color: var(--text-muted);
    margin-top: 2px;
    line-height: 1.45;
}

.act[b-a7l69ifogu] { margin-left: auto; flex: none; }

.mini-btn[b-a7l69ifogu] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-sans);
    font-size: 12.5px;
    font-weight: 600;
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
    border: 0;
    border-radius: 999px;
    padding: 8px 14px;
    min-height: 34px;
    cursor: pointer;
    text-decoration: none;
    white-space: nowrap;
    transition: all 0.15s var(--ease);
}

.mini-btn:hover[b-a7l69ifogu] {
    background: var(--brand-teal);
    color: var(--carbon-1);
}

.mini-btn:focus-visible[b-a7l69ifogu] {
    outline: 2px solid var(--brand-teal-dark);
    outline-offset: 2px;
}

.brief-foot[b-a7l69ifogu] {
    padding: 10px 20px 16px;
    font-size: 12px;
    color: var(--text-muted);
}

/* ── vacío ── */
.brief-empty[b-a7l69ifogu] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 4px;
    padding: 26px 24px 8px;
}

.brief-empty .material-symbols-rounded[b-a7l69ifogu] {
    font-size: 34px !important;
    color: var(--border-med);
    margin-bottom: 4px;
}

.brief-empty-title[b-a7l69ifogu] {
    font-family: var(--font-serif);
    font-size: 15px;
    font-weight: 600;
    color: var(--text-secondary);
}

.brief-empty-sub[b-a7l69ifogu] {
    font-size: 12px;
    color: var(--text-muted);
    max-width: 320px;
    line-height: 1.5;
}

/* ── responsive ── */
@media (max-width: 640px) {
    .row[b-a7l69ifogu] { flex-wrap: wrap; padding: 13px 16px; }
    .act[b-a7l69ifogu] { margin-left: 47px; }
    .mini-btn[b-a7l69ifogu] { min-height: 44px; padding: 10px 18px; }
    .card-h[b-a7l69ifogu] { padding: 16px 16px 0; }
    .brief-foot[b-a7l69ifogu] { padding: 10px 16px 14px; }
}

@media (prefers-reduced-motion: reduce) {
    .mini-btn[b-a7l69ifogu] { transition: none; }
}
/* /Components/Inicio/CdmDocente.razor.rz.scp.css */
/* ────────────────────────────────────────────────────────────────────
   CdmDocente — Centro de Mando Docente (Home v3 F2)
   Movido VERBATIM desde Pages/Inicio.razor.css en F3 (el markup vive
   ahora en este componente; Inicio.razor es solo router).
   Layout de página: header + grid 2 columnas. Las franjas viven en
   Components/Inicio/* con su propio CSS scoped.
   ──────────────────────────────────────────────────────────────────── */

.cm-page[b-5g1h7d68e8] {
    background:
        radial-gradient(circle at 15% 10%, rgba(110, 198, 200, 0.06) 0%, transparent 45%),
        radial-gradient(circle at 85% 30%, rgba(217, 119, 6, 0.04) 0%, transparent 50%),
        var(--bg);
    min-height: 100%;
}

.cm-container[b-5g1h7d68e8] {
    max-width: 1280px;
    margin: 0 auto;
    padding: 26px 28px 60px;
    font-family: var(--font-sans);
    color: var(--text-primary);
}

/* ── header de página (no sticky) ── */
.cm-header[b-5g1h7d68e8] {
    display: flex;
    align-items: flex-end;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 22px;
}

.cm-header-text[b-5g1h7d68e8] { flex: 1; min-width: 0; }

.cm-header h1[b-5g1h7d68e8] {
    font-family: var(--font-serif);
    font-size: 28px;
    font-weight: 600;
    letter-spacing: -0.3px;
    color: var(--text-primary);
    margin: 0;
    line-height: 1.15;
}

.cm-header p[b-5g1h7d68e8] {
    font-size: 13.5px;
    color: var(--text-muted);
    margin: 4px 0 0;
}

/* ── grid 2 columnas ── */
.cm-grid[b-5g1h7d68e8] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: 22px;
    align-items: start;
}

.cm-colL[b-5g1h7d68e8],
.cm-colR[b-5g1h7d68e8] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* entrada sutil */
@keyframes cm-up-b-5g1h7d68e8 {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: none; }
}

.cm-colL[b-5g1h7d68e8] { animation: cm-up-b-5g1h7d68e8 0.45s var(--ease) both; }
.cm-colR[b-5g1h7d68e8] { animation: cm-up-b-5g1h7d68e8 0.45s var(--ease) 0.08s both; }

/* ── skeletons de carga ── */
.sk-card[b-5g1h7d68e8] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
    padding: 20px;
}

.sk-hero[b-5g1h7d68e8] {
    border-radius: var(--radius-2xl);
    padding: 24px;
}

.sk-row[b-5g1h7d68e8] {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

/* ── responsive ── */
@media (max-width: 1080px) {
    .cm-grid[b-5g1h7d68e8] { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
    .cm-container[b-5g1h7d68e8] { padding: 18px 14px 40px; }
    .cm-header h1[b-5g1h7d68e8] { font-size: 24px; }
    .cm-grid[b-5g1h7d68e8] { gap: 16px; }
    .cm-colL[b-5g1h7d68e8], .cm-colR[b-5g1h7d68e8] { gap: 16px; }
}

@media (prefers-reduced-motion: reduce) {
    .cm-colL[b-5g1h7d68e8], .cm-colR[b-5g1h7d68e8] { animation: none; }
}
/* /Components/Inicio/ColaRapida.razor.rz.scp.css */
/* ────────────────────────────────────────────────────────────────────
   ColaRapida — "Para resolver rápido"
   ──────────────────────────────────────────────────────────────────── */

.card[b-vl4gki5i1q] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
}

.card-h[b-vl4gki5i1q] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 18px 20px 0;
}

.card-h h2[b-vl4gki5i1q] {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
}

.cnt[b-vl4gki5i1q] {
    font-size: 12px;
    font-weight: 700;
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
    border-radius: 999px;
    padding: 2px 9px;
}

.lnk[b-vl4gki5i1q] {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--brand-teal-deep);
    text-decoration: none;
    padding: 4px 6px;
    border-radius: var(--radius-sm);
}

.lnk:hover[b-vl4gki5i1q] { text-decoration: underline; }
.lnk:focus-visible[b-vl4gki5i1q] { outline: 2px solid var(--brand-teal-dark); outline-offset: 2px; }
.lnk .material-symbols-rounded[b-vl4gki5i1q] { font-size: 14px !important; }

/* ── filas ── */
.qrow[b-vl4gki5i1q] {
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 12px 20px;
    border-top: 1px solid var(--border-soft);
    cursor: pointer;
    transition: background 0.15s var(--ease);
}

.qrow:hover[b-vl4gki5i1q] { background: var(--bg-cream); }
.qrow:focus-visible[b-vl4gki5i1q] { outline: 2px solid var(--brand-teal-dark); outline-offset: -2px; }
.qrow:first-of-type[b-vl4gki5i1q] { border-top: 0; margin-top: 12px; }

.qic[b-vl4gki5i1q] {
    width: 32px; height: 32px;
    border-radius: var(--radius-md);
    display: grid;
    place-items: center;
    background: var(--cream);
    color: var(--text-secondary);
    flex: none;
}

.qic .material-symbols-rounded[b-vl4gki5i1q] { font-size: 17px !important; }

.qtxt[b-vl4gki5i1q] { min-width: 0; flex: 1; }

.qrow p[b-vl4gki5i1q] {
    font-size: 13.5px;
    color: var(--text-primary);
    margin: 0;
    line-height: 1.4;
}

.qrow p b[b-vl4gki5i1q] { font-weight: 600; }

.qrow small[b-vl4gki5i1q] {
    display: block;
    font-size: 11.5px;
    color: var(--text-muted);
    margin-top: 1px;
}

.est[b-vl4gki5i1q] {
    margin-left: auto;
    font-size: 11px;
    font-weight: 600;
    color: var(--text-muted);
    background: var(--cream);
    border-radius: 999px;
    padding: 3px 9px;
    flex: none;
    white-space: nowrap;
}

.mini-btn[b-vl4gki5i1q] {
    font-family: var(--font-sans);
    font-size: 12.5px;
    font-weight: 600;
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
    border: 0;
    border-radius: 999px;
    padding: 7px 14px;
    min-height: 32px;
    cursor: pointer;
    white-space: nowrap;
    flex: none;
    transition: all 0.15s var(--ease);
}

.mini-btn:hover[b-vl4gki5i1q] {
    background: var(--brand-teal);
    color: var(--carbon-1);
}

.mini-btn:focus-visible[b-vl4gki5i1q] {
    outline: 2px solid var(--brand-teal-dark);
    outline-offset: 2px;
}

.qfoot[b-vl4gki5i1q] {
    padding: 11px 20px 16px;
    font-size: 12px;
    color: var(--text-muted);
}

/* ── vacío ── */
.queue-empty[b-vl4gki5i1q] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 4px;
    padding: 28px 24px 24px;
}

.queue-empty .material-symbols-rounded[b-vl4gki5i1q] {
    font-size: 34px !important;
    color: var(--border-med);
    margin-bottom: 4px;
}

.queue-empty-title[b-vl4gki5i1q] {
    font-family: var(--font-serif);
    font-size: 15px;
    font-weight: 600;
    color: var(--text-secondary);
}

.queue-empty-sub[b-vl4gki5i1q] {
    font-size: 12px;
    color: var(--text-muted);
    max-width: 340px;
    line-height: 1.5;
}

/* ── responsive ── */
@media (max-width: 640px) {
    .qrow[b-vl4gki5i1q] { flex-wrap: wrap; padding: 12px 16px; }
    .qtxt[b-vl4gki5i1q] { flex: 1 1 calc(100% - 45px); }
    .est[b-vl4gki5i1q] { margin-left: 45px; }
    .mini-btn[b-vl4gki5i1q] { min-height: 44px; padding: 10px 18px; }
    .lnk[b-vl4gki5i1q] { min-height: 44px; }
    .card-h[b-vl4gki5i1q] { padding: 16px 16px 0; }
    .qfoot[b-vl4gki5i1q] { padding: 11px 16px 14px; }
}

@media (prefers-reduced-motion: reduce) {
    .qrow[b-vl4gki5i1q], .mini-btn[b-vl4gki5i1q] { transition: none; }
}
/* /Components/Inicio/ComunidadTeaser.razor.rz.scp.css */
/* ────────────────────────────────────────────────────────────────────
   ComunidadTeaser — vista previa estática del Muro
   ──────────────────────────────────────────────────────────────────── */

.card[b-gydnansgt9] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
}

.card-h[b-gydnansgt9] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 18px 20px 0;
}

.card-h h2[b-gydnansgt9] {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
}

.cnt[b-gydnansgt9] {
    font-size: 12px;
    font-weight: 700;
    color: var(--text-secondary);
    background: var(--cream-deep);
    border-radius: 999px;
    padding: 2px 9px;
}

.mc[b-gydnansgt9] {
    display: flex;
    flex-direction: column;
    gap: 9px;
    padding: 14px 20px 0;
}

.mcrow[b-gydnansgt9] {
    display: flex;
    align-items: center;
    gap: 11px;
    border: 1px dashed var(--border-med);
    border-radius: var(--radius-lg);
    padding: 10px 12px;
    opacity: 0.85;
}

.sq[b-gydnansgt9] {
    width: 34px; height: 34px;
    border-radius: var(--radius-md);
    display: grid;
    place-items: center;
    font-family: var(--font-serif);
    font-weight: 600;
    font-size: 13px;
    flex: none;
}

.sq.b[b-gydnansgt9] { background: var(--cf-saberes-bg); color: var(--cf-saberes-ink); }
.sq.c[b-gydnansgt9] { background: var(--cf-etica-bg);   color: var(--cf-etica-ink); }

.mcinfo[b-gydnansgt9] { min-width: 0; }

.mcrow b[b-gydnansgt9] {
    font-size: 13.5px;
    font-weight: 700;
    color: var(--text-primary);
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.mcrow small[b-gydnansgt9] {
    font-size: 11.5px;
    color: var(--text-muted);
}

.teaser-foot[b-gydnansgt9] {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
    padding: 12px 20px 16px;
}

.teaser-foot small[b-gydnansgt9] {
    font-size: 11.5px;
    color: var(--text-muted);
}

.mini-btn[b-gydnansgt9] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--font-sans);
    font-size: 12.5px;
    font-weight: 600;
    color: var(--text-muted);
    background: var(--cream);
    border: 0;
    border-radius: 999px;
    padding: 7px 14px;
    min-height: 32px;
    cursor: not-allowed;
}

.mini-btn .material-symbols-rounded[b-gydnansgt9] { font-size: 15px !important; }

/* ── F12: estado LIVE (Muro 3A desplegado) ─────────────────────────── */

/* Link "Ir al muro →" en el header de la card. */
.lnk[b-gydnansgt9] {
    margin-left: auto;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--brand-teal-deep);
    cursor: pointer;
    background: none;
    border: 0;
}
.lnk:hover[b-gydnansgt9] { text-decoration: underline; }
.lnk:focus-visible[b-gydnansgt9] {
    outline: 2px solid var(--brand-teal-dark);
    outline-offset: 2px;
    border-radius: 4px;
}

/* Filas reales: solidas y clickeables (a diferencia del ejemplo, dashed/atenuado). */
.mcrow.live[b-gydnansgt9] {
    border: 1px solid var(--border-soft);
    opacity: 1;
    cursor: pointer;
    transition: border-color 0.15s var(--ease), box-shadow 0.15s var(--ease), transform 0.15s var(--ease);
}
.mcrow.live:hover[b-gydnansgt9] {
    border-color: var(--brand-teal-dark);
    box-shadow: var(--shadow-sm);
    transform: translateY(-1px);
}
.mcrow.live:focus-visible[b-gydnansgt9] {
    outline: 2px solid var(--brand-teal-dark);
    outline-offset: 2px;
}

/* Boton "Publicar al muro" activo. */
.mini-btn.live[b-gydnansgt9] {
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
    cursor: pointer;
    transition: background 0.15s var(--ease), color 0.15s var(--ease);
}
.mini-btn.live:hover[b-gydnansgt9] {
    background: var(--brand-teal);
    color: var(--carbon-1);
}
.mini-btn.live:focus-visible[b-gydnansgt9] {
    outline: 2px solid var(--brand-teal-dark);
    outline-offset: 2px;
}

/* ── 3E: card en vivo (opción c del gate) ──────────────────────────── */

/* CTA principal "Ir al muro" - acceso 1-clic mas prominente. Solido sobre
   brand-teal-deep (#2C6D6F): pasa AA con texto blanco (5.96:1, AA, LEC-G007);
   hover oscurece con brightness (patron finanzas.css), sin inventar colores
   fuera de tokens. */
.btn-muro[b-gydnansgt9] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-sans);
    font-size: 12.5px;
    font-weight: 700;
    color: var(--text-primary);
    background: var(--brand-teal-primary);
    border: 0;
    border-radius: 999px;
    padding: 7px 16px;
    min-height: 32px;
    cursor: pointer;
    transition: filter 0.15s var(--ease), box-shadow 0.15s var(--ease), transform 0.15s var(--ease);
}
.btn-muro:hover[b-gydnansgt9] {
    filter: brightness(0.94);
    box-shadow: var(--shadow-sm);
    transform: translateY(-1px);
}
.btn-muro:active[b-gydnansgt9] {
    filter: brightness(0.88);
    transform: translateY(0);
}
.btn-muro:focus-visible[b-gydnansgt9] {
    outline: 2px solid var(--brand-teal-dark);
    outline-offset: 2px;
}
.btn-muro .material-symbols-rounded[b-gydnansgt9] { font-size: 15px !important; }

/* Post recién llegado EN VIVO: entrada sutil + tinte que se disipa (una sola vez). */
.mcrow.live.nuevo[b-gydnansgt9] {
    animation: cmty-post-nuevo-b-gydnansgt9 1.6s var(--ease) both;
}
@keyframes cmty-post-nuevo-b-gydnansgt9 {
    0%   { opacity: 0; transform: translateY(-3px); background: var(--bg-light-teal); border-color: var(--brand-teal-dark); }
    18%  { opacity: 1; transform: translateY(0); }
    100% { background: transparent; border-color: var(--border-soft); }
}

@media (prefers-reduced-motion: reduce) {
    .mcrow.live.nuevo[b-gydnansgt9] { animation: none; }
    .btn-muro:hover[b-gydnansgt9], .mcrow.live:hover[b-gydnansgt9] { transform: none; }
}

@media (max-width: 640px) {
    .card-h[b-gydnansgt9] { padding: 16px 16px 0; }
    .mc[b-gydnansgt9] { padding: 12px 16px 0; }
    .teaser-foot[b-gydnansgt9] { padding: 12px 16px 14px; }
    .mini-btn.live[b-gydnansgt9], .btn-muro[b-gydnansgt9] { min-height: 44px; }   /* target táctil AA */
}
/* /Components/Inicio/MisClasesCard.razor.rz.scp.css */
/* ────────────────────────────────────────────────────────────────────
   MisClasesCard — pulso por grupo (columna lateral)
   ──────────────────────────────────────────────────────────────────── */

.card[b-f4rw5dw5zg] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
}

.card-h[b-f4rw5dw5zg] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 18px 20px 0;
}

.card-h h2[b-f4rw5dw5zg] {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
}

.lnk[b-f4rw5dw5zg] {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--brand-teal-deep);
    text-decoration: none;
    padding: 4px 6px;
    border-radius: var(--radius-sm);
}

.lnk:hover[b-f4rw5dw5zg] { text-decoration: underline; }
.lnk:focus-visible[b-f4rw5dw5zg] { outline: 2px solid var(--brand-teal-dark); outline-offset: 2px; }
.lnk .material-symbols-rounded[b-f4rw5dw5zg] { font-size: 14px !important; }

.mc[b-f4rw5dw5zg] {
    display: flex;
    flex-direction: column;
    gap: 9px;
    padding: 14px 20px 18px;
}

.mcrow[b-f4rw5dw5zg] {
    display: flex;
    align-items: center;
    gap: 11px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    padding: 10px 12px;
    min-height: 44px;
    cursor: pointer;
    text-decoration: none;
    transition: all 0.15s var(--ease);
}

.mcrow:hover[b-f4rw5dw5zg] {
    transform: translateX(2px);
    border-color: var(--brand-teal-dark);
}

.mcrow:focus-visible[b-f4rw5dw5zg] {
    outline: 2px solid var(--brand-teal-dark);
    outline-offset: 2px;
}

.sq[b-f4rw5dw5zg] {
    width: 34px; height: 34px;
    border-radius: var(--radius-md);
    display: grid;
    place-items: center;
    font-family: var(--font-serif);
    font-weight: 600;
    font-size: 13px;
    flex: none;
}

/* paleta NEM de tokens.css */
.sq.a[b-f4rw5dw5zg] { background: var(--cf-lenguajes-bg); color: var(--cf-lenguajes-ink); }
.sq.b[b-f4rw5dw5zg] { background: var(--cf-saberes-bg);   color: var(--cf-saberes-ink); }
.sq.c[b-f4rw5dw5zg] { background: var(--cf-etica-bg);     color: var(--cf-etica-ink); }
.sq.d[b-f4rw5dw5zg] { background: var(--cf-humano-bg);    color: var(--cf-humano-ink); }

.mcinfo[b-f4rw5dw5zg] { min-width: 0; }

.mcrow b[b-f4rw5dw5zg] {
    font-size: 13.5px;
    font-weight: 700;
    color: var(--text-primary);
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.mcrow small[b-f4rw5dw5zg] {
    font-size: 11.5px;
    color: var(--text-muted);
}

.st[b-f4rw5dw5zg] {
    margin-left: auto;
    text-align: right;
    font-size: 11px;
    color: var(--text-muted);
    flex: none;
}

.st i[b-f4rw5dw5zg] {
    font-style: normal;
    display: block;
    font-weight: 700;
    color: var(--text-secondary);
    font-size: 13px;
}

/* ── vacío ── */
.mc-empty[b-f4rw5dw5zg] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 4px;
    padding: 26px 24px 22px;
}

.mc-empty .material-symbols-rounded[b-f4rw5dw5zg] {
    font-size: 32px !important;
    color: var(--border-med);
    margin-bottom: 4px;
}

.mc-empty-title[b-f4rw5dw5zg] {
    font-family: var(--font-serif);
    font-size: 15px;
    font-weight: 600;
    color: var(--text-secondary);
}

.mc-empty-sub[b-f4rw5dw5zg] {
    font-size: 12px;
    color: var(--text-muted);
    max-width: 260px;
    line-height: 1.5;
}

@media (max-width: 640px) {
    .card-h[b-f4rw5dw5zg] { padding: 16px 16px 0; }
    .mc[b-f4rw5dw5zg] { padding: 12px 16px 16px; }
    .lnk[b-f4rw5dw5zg] { min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
    .mcrow[b-f4rw5dw5zg] { transition: none; }
    .mcrow:hover[b-f4rw5dw5zg] { transform: none; }
}
/* /Components/Inicio/RadarAlumnoCard.razor.rz.scp.css */
/* ────────────────────────────────────────────────────────────────────
   RadarAlumnoCard — card de alumno en seguimiento
   ──────────────────────────────────────────────────────────────────── */

.al[b-38eze9i534] {
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    padding: 14px;
    background: var(--bg-panel);
    transition: all 0.18s var(--ease);
}

.al:hover[b-38eze9i534] {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
    border-color: var(--border-med);
}

.head[b-38eze9i534] {
    display: flex;
    gap: 10px;
    align-items: center;
    margin-bottom: 9px;
}

.ava[b-38eze9i534] {
    width: 36px; height: 36px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-size: 12.5px;
    font-weight: 700;
    color: var(--bg-panel);
    flex: none;
    background: var(--brand-teal-deep);
}

.ava.warn[b-38eze9i534] { background: var(--warning); }
.ava.dang[b-38eze9i534] { background: var(--danger); }

.who[b-38eze9i534] { min-width: 0; }

.who b[b-38eze9i534] {
    font-size: 14px;
    font-weight: 700;
    display: block;
    color: var(--text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.who small[b-38eze9i534] {
    font-size: 12px;
    color: var(--text-muted);
}

.tags[b-38eze9i534] {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-bottom: 9px;
}

.tag[b-38eze9i534] {
    font-size: 11px;
    font-weight: 600;
    border-radius: 999px;
    padding: 2.5px 8px;
}

/* rgba de tokens danger/warning/info — sin hex nuevos.
   warning puro da ~3.3:1 sobre el tinte claro: se oscurece con carbon-1
   (mezcla de tokens) para cumplir AA 4.5:1. */
.tag.d[b-38eze9i534] { background: rgba(163, 45, 45, 0.10);  color: var(--danger); }
.tag.w[b-38eze9i534] { background: rgba(186, 117, 23, 0.12); color: color-mix(in srgb, var(--warning) 75%, var(--carbon-1)); }
.tag.i[b-38eze9i534] { background: rgba(45, 110, 163, 0.10); color: var(--info); }

.why[b-38eze9i534] {
    font-size: 12px;
    color: var(--text-secondary);
    line-height: 1.45;
    margin: 0 0 11px;
}

.acts[b-38eze9i534] {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.chipb[b-38eze9i534] {
    display: inline-flex;
    gap: 5px;
    align-items: center;
    font-family: var(--font-sans);
    font-size: 11.5px;
    font-weight: 600;
    border: 1px solid var(--border-soft);
    background: var(--bg-panel);
    color: var(--text-secondary);
    border-radius: 999px;
    padding: 6px 10px;
    min-height: 30px;
    cursor: pointer;
    text-decoration: none;
    transition: all 0.15s var(--ease);
}

.chipb:hover[b-38eze9i534] {
    border-color: var(--brand-teal-dark);
    color: var(--brand-teal-deep);
}

.chipb:focus-visible[b-38eze9i534] {
    outline: 2px solid var(--brand-teal-dark);
    outline-offset: 2px;
}

.chipb .material-symbols-rounded[b-38eze9i534] { font-size: 14px !important; }

@media (max-width: 640px) {
    .chipb[b-38eze9i534] { min-height: 44px; padding: 10px 14px; flex: 1; justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
    .al[b-38eze9i534], .chipb[b-38eze9i534] { transition: none; }
    .al:hover[b-38eze9i534] { transform: none; }
}
/* /Components/Inicio/RadarAlumnos.razor.rz.scp.css */
/* ────────────────────────────────────────────────────────────────────
   RadarAlumnos — grid del radar + drawer "ver todos"
   ──────────────────────────────────────────────────────────────────── */

.card[b-d4jthn19me] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
}

.card-h[b-d4jthn19me] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 18px 20px 0;
    flex-wrap: wrap;
}

.card-h h2[b-d4jthn19me] {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
}

.cnt[b-d4jthn19me] {
    font-size: 12px;
    font-weight: 700;
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
    border-radius: 999px;
    padding: 2px 9px;
}

.lnk[b-d4jthn19me] {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-family: var(--font-sans);
    font-size: 12.5px;
    font-weight: 600;
    color: var(--brand-teal-deep);
    background: transparent;
    border: 0;
    padding: 4px 6px;
    border-radius: var(--radius-sm);
    cursor: pointer;
}

.lnk:hover[b-d4jthn19me] { text-decoration: underline; }
.lnk:focus-visible[b-d4jthn19me] { outline: 2px solid var(--brand-teal-dark); outline-offset: 2px; }
.lnk .material-symbols-rounded[b-d4jthn19me] { font-size: 14px !important; }

.radar-grid[b-d4jthn19me] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(215px, 1fr));
    gap: 13px;
    padding: 14px 20px 18px;
}

/* ── vacío ── */
.radar-empty[b-d4jthn19me] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 4px;
    padding: 28px 24px 24px;
}

.radar-empty .material-symbols-rounded[b-d4jthn19me] {
    font-size: 34px !important;
    color: var(--border-med);
    margin-bottom: 4px;
}

.radar-empty-title[b-d4jthn19me] {
    font-family: var(--font-serif);
    font-size: 15px;
    font-weight: 600;
    color: var(--text-secondary);
}

.radar-empty-sub[b-d4jthn19me] {
    font-size: 12px;
    color: var(--text-muted);
    max-width: 340px;
    line-height: 1.5;
}

/* ── drawer sobrepuesto ── */
.radar-scrim[b-d4jthn19me] {
    position: fixed;
    inset: 0;
    background: rgba(20, 22, 25, 0.45); /* carbon-1 con alpha */
    z-index: var(--z-overlay);
    animation: scrim-in-b-d4jthn19me 0.2s var(--ease) both;
}

@keyframes scrim-in-b-d4jthn19me {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.radar-drawer[b-d4jthn19me] {
    position: fixed;
    top: 0; right: 0; bottom: 0;
    width: min(420px, 92vw);
    background: var(--bg-cream);
    border-left: 1px solid var(--border-soft);
    box-shadow: var(--shadow-lg);
    z-index: calc(var(--z-overlay) + 1);
    display: flex;
    flex-direction: column;
    animation: drawer-in-b-d4jthn19me 0.22s var(--ease) both;
}

@keyframes drawer-in-b-d4jthn19me {
    from { transform: translateX(24px); opacity: 0; }
    to   { transform: none; opacity: 1; }
}

.radar-drawer-head[b-d4jthn19me] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 18px 20px 14px;
    border-bottom: 1px solid var(--border-soft);
    background: var(--bg-panel);
}

.radar-drawer-head h3[b-d4jthn19me] {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
}

.radar-drawer-head small[b-d4jthn19me] {
    font-size: 12px;
    color: var(--text-muted);
}

.radar-close[b-d4jthn19me] {
    margin-left: auto;
    width: 34px; height: 34px;
    border-radius: var(--radius-md);
    border: 1px solid var(--border-soft);
    background: var(--bg-panel);
    color: var(--text-secondary);
    display: grid;
    place-items: center;
    cursor: pointer;
    transition: all 0.15s var(--ease);
    flex: none;
}

.radar-close:hover[b-d4jthn19me] {
    border-color: var(--brand-teal-dark);
    color: var(--brand-teal-deep);
}

.radar-close:focus-visible[b-d4jthn19me] {
    outline: 2px solid var(--brand-teal-dark);
    outline-offset: 2px;
}

.radar-close .material-symbols-rounded[b-d4jthn19me] { font-size: 18px !important; }

.radar-drawer-body[b-d4jthn19me] {
    flex: 1;
    overflow-y: auto;
    padding: 16px 20px 24px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* ── responsive ── */
@media (max-width: 640px) {
    .radar-grid[b-d4jthn19me] { grid-template-columns: 1fr; padding: 14px 16px 16px; }
    .card-h[b-d4jthn19me] { padding: 16px 16px 0; }
    .lnk[b-d4jthn19me] { margin-left: 0; min-height: 44px; }
    .radar-close[b-d4jthn19me] { width: 44px; height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
    .radar-scrim[b-d4jthn19me], .radar-drawer[b-d4jthn19me] { animation: none; }
}
/* /Components/Inicio/RetomarDrawer.razor.rz.scp.css */
/* ────────────────────────────────────────────────────────────────────
   RetomarDrawer — "Resumen para retomar" (calca del drawer RadarAlumnos)
   Tokens de tokens.css; fondos rgba-de-token canon F2, texto AA F8W.
   ──────────────────────────────────────────────────────────────────── */

.ret-scrim[b-oxrpjygaj4] {
    position: fixed;
    inset: 0;
    background: rgba(20, 22, 25, 0.45); /* carbon-1 con alpha */
    z-index: var(--z-overlay);
    animation: ret-scrim-in-b-oxrpjygaj4 0.2s var(--ease) both;
}

@keyframes ret-scrim-in-b-oxrpjygaj4 {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.ret-drawer[b-oxrpjygaj4] {
    position: fixed;
    top: 0; right: 0; bottom: 0;
    width: min(440px, 92vw);
    background: var(--bg-cream);
    border-left: 1px solid var(--border-soft);
    box-shadow: var(--shadow-lg);
    z-index: calc(var(--z-overlay) + 1);
    display: flex;
    flex-direction: column;
    animation: ret-drawer-in-b-oxrpjygaj4 0.22s var(--ease) both;
}

@keyframes ret-drawer-in-b-oxrpjygaj4 {
    from { transform: translateX(24px); opacity: 0; }
    to   { transform: none; opacity: 1; }
}

.ret-drawer-head[b-oxrpjygaj4] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 18px 20px 14px;
    border-bottom: 1px solid var(--border-soft);
    background: var(--bg-panel);
}

.ret-drawer-head h3[b-oxrpjygaj4] {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
}

.ret-drawer-head small[b-oxrpjygaj4] {
    font-size: 12px;
    color: var(--text-muted);
}

.ret-close[b-oxrpjygaj4] {
    margin-left: auto;
    width: 34px; height: 34px;
    border-radius: var(--radius-md);
    border: 1px solid var(--border-soft);
    background: var(--bg-panel);
    color: var(--text-secondary);
    display: grid;
    place-items: center;
    cursor: pointer;
    transition: all 0.15s var(--ease);
    flex: none;
}

.ret-close:hover[b-oxrpjygaj4] {
    border-color: var(--brand-teal-dark);
    color: var(--brand-teal-deep);
}

.ret-close:focus-visible[b-oxrpjygaj4] {
    outline: 2px solid var(--brand-teal-dark);
    outline-offset: 2px;
}

.ret-close .material-symbols-rounded[b-oxrpjygaj4] { font-size: 18px !important; }

.ret-drawer-body[b-oxrpjygaj4] {
    flex: 1;
    overflow-y: auto;
    padding: 16px 20px 24px;
    display: flex;
    flex-direction: column;
    gap: 18px;
}

/* ── secciones ── */
.ret-sec[b-oxrpjygaj4] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    padding: 13px 15px 14px;
}

.ret-sec-h[b-oxrpjygaj4] {
    display: flex;
    align-items: baseline;
    gap: 7px;
    margin-bottom: 10px;
}

.ret-sec-h .material-symbols-rounded[b-oxrpjygaj4] {
    font-size: 17px !important;
    color: var(--brand-teal-deep);
    align-self: center;
    flex: none;
}

.ret-sec-h h4[b-oxrpjygaj4] {
    font-family: var(--font-serif);
    font-size: 15px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
}

.ret-cnt[b-oxrpjygaj4] {
    font-size: 11.5px;
    font-weight: 700;
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
    border-radius: 999px;
    padding: 1px 8px;
}

.ret-sec-sub[b-oxrpjygaj4] {
    margin-left: auto;
    font-size: 11.5px;
    color: var(--text-muted);
}

.ret-empty[b-oxrpjygaj4] {
    font-size: 12.5px;
    color: var(--text-muted);
    margin: 0;
}

/* ── evaluaciones a medias ── */
.ret-evals[b-oxrpjygaj4] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.ret-eval[b-oxrpjygaj4] {
    display: block;
    padding: 9px 11px 11px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    text-decoration: none;
    transition: border-color 0.18s var(--ease), box-shadow 0.18s var(--ease);
}

.ret-eval:hover[b-oxrpjygaj4] {
    border-color: var(--brand-teal-dark);
    box-shadow: var(--shadow-sm);
}

.ret-eval:focus-visible[b-oxrpjygaj4] {
    outline: 2px solid var(--brand-teal-dark);
    outline-offset: 2px;
}

.ret-eval-top[b-oxrpjygaj4] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 7px;
}

.ret-eval-top b[b-oxrpjygaj4] {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ret-eval:hover .ret-eval-top b[b-oxrpjygaj4] { color: var(--brand-teal-deep); }

.ret-eval-top small[b-oxrpjygaj4] {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
    flex: none;
}

.ret-bar[b-oxrpjygaj4] {
    display: block;
    height: 6px;
    border-radius: 4px;
    background: var(--cream-deep);
    overflow: hidden;
}

.ret-bar i[b-oxrpjygaj4] {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, var(--brand-teal), var(--brand-teal-deep));
    border-radius: 4px;
}

/* ── chips F/R última sesión (fondos rgba-de-token, texto AA F8W) ── */
.ret-chips[b-oxrpjygaj4] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.ret-chip[b-oxrpjygaj4] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 600;
    border-radius: 999px;
    padding: 3px 11px 3px 5px;
    min-height: 24px;
}

.ret-chip b[b-oxrpjygaj4] {
    width: 16px; height: 16px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    font-size: 10px;
    font-weight: 800;
    background: var(--bg-panel);
    flex: none;
}

.ret-chip.f[b-oxrpjygaj4] { background: rgba(163, 45, 45, 0.10);  color: var(--danger); }                                            /* --danger */
.ret-chip.r[b-oxrpjygaj4] { background: rgba(186, 117, 23, 0.12); color: color-mix(in srgb, var(--warning) 75%, var(--carbon-1)); }  /* --warning AA */

.ret-chip .baja[b-oxrpjygaj4] {
    font-size: 11px;
    font-weight: 500;
    font-style: italic;
    opacity: 0.8;
}

/* ── listas de reportes / bitácora ── */
.ret-list[b-oxrpjygaj4] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
}

.ret-item[b-oxrpjygaj4] {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 9px 0;
    border-top: 1px solid var(--border-soft);
}

.ret-item:first-child[b-oxrpjygaj4] { border-top: 0; padding-top: 2px; }
.ret-item:last-child[b-oxrpjygaj4]  { padding-bottom: 0; }

.ret-item-top[b-oxrpjygaj4] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
}

.ret-item-top b[b-oxrpjygaj4] {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
}

.ret-item-top small[b-oxrpjygaj4],
.ret-item-meta small[b-oxrpjygaj4] {
    font-size: 11.5px;
    color: var(--text-muted);
    flex: none;
}

.ret-item-txt[b-oxrpjygaj4] {
    font-size: 12.5px;
    color: var(--text-secondary);
    line-height: 1.45;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.ret-item-txt.is-note[b-oxrpjygaj4] { color: var(--text-primary); }

.ret-item-meta[b-oxrpjygaj4] {
    display: flex;
    align-items: center;
    gap: 5px;
    flex-wrap: wrap;
}

.ret-badge[b-oxrpjygaj4] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: 1px 8px;
    background: rgba(184, 134, 11, 0.12); /* --pin-gold */
    color: color-mix(in srgb, var(--pin-gold) 80%, var(--carbon-1));
}

.ret-badge .material-symbols-rounded[b-oxrpjygaj4] { font-size: 12px !important; }

/* ── skeleton de carga ── */
.ret-skel[b-oxrpjygaj4] {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.ret-skel-sec[b-oxrpjygaj4] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    padding: 14px 15px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.ret-skel-line[b-oxrpjygaj4] {
    height: 12px;
    border-radius: 6px;
    background: var(--cream-deep);
    animation: ret-skel-pulse-b-oxrpjygaj4 1.4s var(--ease) infinite;
}

.ret-skel-line.w40[b-oxrpjygaj4] { width: 40%; }
.ret-skel-line.w75[b-oxrpjygaj4] { width: 75%; }
.ret-skel-line.w90[b-oxrpjygaj4] { width: 90%; }

@keyframes ret-skel-pulse-b-oxrpjygaj4 {
    0%, 100% { opacity: 1; }
    50%      { opacity: 0.45; }
}

/* ── error ── */
.ret-error[b-oxrpjygaj4] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 4px;
    padding: 32px 20px;
}

.ret-error .material-symbols-rounded[b-oxrpjygaj4] {
    font-size: 34px !important;
    color: var(--border-med);
    margin-bottom: 4px;
}

.ret-error-title[b-oxrpjygaj4] {
    font-family: var(--font-serif);
    font-size: 15px;
    font-weight: 600;
    color: var(--text-secondary);
}

.ret-error-sub[b-oxrpjygaj4] {
    font-size: 12px;
    color: var(--text-muted);
    margin-bottom: 10px;
}

.ret-retry[b-oxrpjygaj4] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-sans);
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
    background: var(--bg-panel);
    border: 1px solid var(--border-med);
    border-radius: var(--radius-md);
    padding: 8px 16px;
    min-height: 38px;
    cursor: pointer;
    transition: all 0.18s var(--ease);
}

.ret-retry:hover[b-oxrpjygaj4] {
    border-color: var(--brand-teal-dark);
    color: var(--brand-teal-deep);
}

.ret-retry:focus-visible[b-oxrpjygaj4] {
    outline: 2px solid var(--brand-teal-dark);
    outline-offset: 2px;
}

.ret-retry .material-symbols-rounded[b-oxrpjygaj4] { font-size: 16px !important; }

/* ── visually hidden (a11y de los chips F/R) ── */
.vh[b-oxrpjygaj4] {
    position: absolute;
    width: 1px; height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

/* ── responsive / motion ── */
@media (max-width: 640px) {
    .ret-close[b-oxrpjygaj4] { width: 44px; height: 44px; }
    .ret-drawer-body[b-oxrpjygaj4] { padding: 14px 16px 20px; }
}

@media (prefers-reduced-motion: reduce) {
    .ret-scrim[b-oxrpjygaj4], .ret-drawer[b-oxrpjygaj4] { animation: none; }
    .ret-skel-line[b-oxrpjygaj4] { animation: none; }
    .ret-close[b-oxrpjygaj4], .ret-eval[b-oxrpjygaj4], .ret-retry[b-oxrpjygaj4] { transition: none; }
}
/* /Components/PlantillasPanel.razor.rz.scp.css */
/* ── PlantillasPanel — contenido del WidgetSidePanel de plantillas NEM ──────
   Sistema de diseno miCE: Fraunces titulos / Figtree contenido, tokens de
   tokens.css, Material Symbols, escala de espaciado 4/8px. */

/* ── Skeletons de carga ── */
.plp-skeletons[b-0knjdimuv6] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 8px 0;
}
.plp-skeleton[b-0knjdimuv6] {
    height: 120px;
    border-radius: var(--radius-md, 10px);
    background: linear-gradient(90deg, var(--bg-cream, #F4F0E6) 25%, #ede9de 50%, var(--bg-cream, #F4F0E6) 75%);
    background-size: 200% 100%;
    animation: plp-shimmer-b-0knjdimuv6 1.4s infinite linear;
}
@keyframes plp-shimmer-b-0knjdimuv6 {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* ── Estado de error ── */
.plp-error[b-0knjdimuv6] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 32px 0;
    text-align: center;
}
.plp-error-icon[b-0knjdimuv6] {
    font-size: 36px;
    color: var(--text-muted, #9CA3AF);
}
.plp-error-texto[b-0knjdimuv6] {
    margin: 0;
    font-family: var(--font-sans, 'Figtree', sans-serif);
    font-size: 14px;
    color: var(--text-secondary, #6B7280);
}
.plp-btn-reintentar[b-0knjdimuv6] {
    padding: 8px 16px;
    border-radius: 8px;
    border: 1.5px solid var(--border-med, #D1D5DB);
    background: transparent;
    font-family: var(--font-sans, 'Figtree', sans-serif);
    font-size: 13px;
    cursor: pointer;
    color: var(--text-primary, #1F2937);
    transition: background 0.15s;
}
.plp-btn-reintentar:hover[b-0knjdimuv6] {
    background: var(--bg-cream, #F4F0E6);
}

/* ── Busqueda ── */
.plp-busqueda[b-0knjdimuv6] {
    position: relative;
    display: flex;
    align-items: center;
    margin-bottom: 12px;
    border: 1.5px solid var(--border-light, #E5E7EB);
    border-radius: 8px;
    background: #fff;
    transition: border-color 0.15s;
}
.plp-busqueda:focus-within[b-0knjdimuv6] {
    border-color: var(--brand-teal, #6EC6C8);
}
.plp-busqueda-icono[b-0knjdimuv6] {
    font-size: 18px;
    color: var(--text-muted, #9CA3AF);
    padding: 0 8px 0 10px;
    pointer-events: none;
    flex-shrink: 0;
}
.plp-busqueda-input[b-0knjdimuv6] {
    flex: 1;
    border: none;
    background: transparent;
    font-family: var(--font-sans, 'Figtree', sans-serif);
    font-size: 13px;
    color: var(--text-primary, #1F2937);
    padding: 8px 0;
    outline: none;
}
.plp-busqueda-input[b-0knjdimuv6]::placeholder {
    color: var(--text-muted, #9CA3AF);
}
.plp-busqueda-limpiar[b-0knjdimuv6] {
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: transparent;
    cursor: pointer;
    color: var(--text-muted, #9CA3AF);
    padding: 0 8px;
    font-size: 16px;
}
.plp-busqueda-limpiar:hover[b-0knjdimuv6] {
    color: var(--text-secondary, #6B7280);
}

/* ── Chips de momento didactico ── */
.plp-momentos[b-0knjdimuv6] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 16px;
}
.plp-chip[b-0knjdimuv6] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 5px 10px;
    border-radius: 20px;
    border: 1.5px solid var(--border-light, #E5E7EB);
    background: #fff;
    font-family: var(--font-sans, 'Figtree', sans-serif);
    font-size: 12px;
    font-weight: 500;
    color: var(--text-secondary, #6B7280);
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, color 0.15s;
    white-space: nowrap;
}
.plp-chip:hover[b-0knjdimuv6] {
    border-color: var(--brand-teal, #6EC6C8);
    color: var(--carbon-1, #1F2937);
}
.plp-chip.activo[b-0knjdimuv6] {
    border-color: var(--brand-teal, #6EC6C8);
    background: var(--brand-teal-bg, #F0FAFA);
    color: var(--carbon-1, #1F2937);
    font-weight: 600;
}
.plp-chip-icon[b-0knjdimuv6] {
    font-size: 14px;
}

/* ── Estado vacio ── */
.plp-vacio[b-0knjdimuv6] {
    font-family: var(--font-sans, 'Figtree', sans-serif);
    font-size: 13px;
    color: var(--text-secondary, #6B7280);
    text-align: center;
    margin: 20px 0 0;
    line-height: 1.5;
}

/* ── Lista de plantillas — grid 2 columnas (spec 7.2 punto 4) ── */
.plp-lista[b-0knjdimuv6] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

@media (max-width: 480px) {
    .plp-lista[b-0knjdimuv6] {
        grid-template-columns: 1fr;
    }
}

/* ── Tarjeta de plantilla ── */
.plp-card[b-0knjdimuv6] {
    border: 1.5px solid var(--border-light, #E5E7EB);
    border-radius: var(--radius-md, 10px);
    overflow: hidden;
    background: #fff;
    cursor: pointer;
    text-align: left;
    width: 100%;
    padding: 0;
    transition: border-color 0.15s, box-shadow 0.15s;
}
.plp-card:hover[b-0knjdimuv6] {
    border-color: var(--brand-teal, #6EC6C8);
    box-shadow: 0 2px 10px rgba(0,0,0,0.06);
}
.plp-card[aria-pressed="true"][b-0knjdimuv6] {
    border-color: var(--brand-teal-deep, #2C6D6F);
    box-shadow: 0 0 0 3px rgba(110, 198, 200, 0.25);
}
.plp-card:focus-visible[b-0knjdimuv6] {
    outline: 2px solid var(--brand-teal, #6EC6C8);
    outline-offset: 2px;
}

/* ── Mini-lienzo CSS de previsualizacion ──
   Lienzo proporcional 16:9. Widgets posicionados en %. Color solido por tipo.
   No imagenes, no encargos (regla 11). */
.plp-preview[b-0knjdimuv6] {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    background: #1A1C22;
    overflow: hidden;
}
.plp-widget[b-0knjdimuv6] {
    position: absolute;
    border-radius: 3px;
    opacity: 0.82;
}
.plp-widget--texto[b-0knjdimuv6]   { background: #6EC6C8; } /* teal */
.plp-widget--encuesta[b-0knjdimuv6] { background: #1D9E75; } /* verde */
.plp-widget--timer[b-0knjdimuv6]   { background: #E09614; } /* ambar */
.plp-widget--reloj[b-0knjdimuv6]   { background: #6366F1; } /* indigo */
.plp-widget--semaforo[b-0knjdimuv6] { background: #D04040; } /* rojo */

/* ── Indicador de seleccion en esquina superior derecha ── */
.plp-card-check[b-0knjdimuv6] {
    position: absolute;
    top: 6px;
    right: 6px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--brand-teal-deep, #2C6D6F);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 1px 4px rgba(0,0,0,0.18);
}
.plp-card-check .material-symbols-rounded[b-0knjdimuv6] {
    font-size: 14px;
}

/* ── Cuerpo de la tarjeta ── */
.plp-card-body[b-0knjdimuv6] {
    padding: 10px 10px 12px;
}
.plp-card-nombre[b-0knjdimuv6] {
    margin: 0 0 4px;
    font-family: 'Fraunces', serif;
    font-size: 13px;
    font-weight: 600;
    color: var(--carbon-1, #1F2937);
    line-height: 1.3;
}
.plp-card-desc[b-0knjdimuv6] {
    margin: 0;
    font-family: var(--font-sans, 'Figtree', sans-serif);
    font-size: 12px;
    line-height: 1.4;
    color: var(--text-secondary, #6B7280);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ── Footer sticky — aparece solo con seleccion (spec 7.2 punto 6) ── */
.plp-footer[b-0knjdimuv6] {
    position: sticky;
    bottom: -20px;
    margin: 12px -24px -20px;
    padding: 12px 24px 16px;
    background: #fff;
    border-top: 1px solid var(--border-light, #E5E7EB);
    box-shadow: 0 -8px 24px rgba(20, 22, 25, 0.08);
    display: flex;
    align-items: center;
    gap: 12px;
    animation: plp-footer-up-b-0knjdimuv6 0.18s ease;
}

@keyframes plp-footer-up-b-0knjdimuv6 {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: none; }
}

.plp-footer-info[b-0knjdimuv6] {
    min-width: 0;
    flex: 1;
}
.plp-footer-nombre[b-0knjdimuv6] {
    margin: 0 0 2px;
    font-family: 'Fraunces', serif;
    font-size: 13px;
    font-weight: 600;
    color: var(--carbon-1, #1F2937);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.plp-footer-sub[b-0knjdimuv6] {
    margin: 0;
    font-family: var(--font-sans, 'Figtree', sans-serif);
    font-size: 12px;
    color: var(--text-secondary, #6B7280);
}

/* ── CTA del footer ── */
.plp-btn-usar[b-0knjdimuv6] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 16px;
    border: none;
    border-radius: var(--radius-md, 9px);
    background: var(--brand-teal, #6EC6C8);
    color: var(--carbon-1, #1F2937);
    font-family: var(--font-sans, 'Figtree', sans-serif);
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
    box-shadow: 0 2px 6px rgba(110, 198, 200, 0.3);
    transition: background 0.15s, transform 0.15s;
}
.plp-btn-usar:hover[b-0knjdimuv6] {
    background: var(--brand-teal-deep, #2C6D6F);
    color: #fff;
    transform: translateY(-1px);
}
.plp-btn-usar:active[b-0knjdimuv6] {
    transform: none;
}
.plp-btn-usar:focus-visible[b-0knjdimuv6] {
    outline: 2px solid var(--brand-teal, #6EC6C8);
    outline-offset: 2px;
}
.plp-btn-usar .material-symbols-rounded[b-0knjdimuv6] {
    font-size: 16px;
}
/* /Components/Proyectos/AgregarIntegrantesModal.razor.rz.scp.css */
.aim-backdrop[b-ya70lcrach] {
    position: fixed;
    inset: 0;
    background: rgba(26, 28, 31, 0.45);
    backdrop-filter: blur(2px);
    z-index: 50;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.aim-modal[b-ya70lcrach] {
    background: #FFFFFF;
    border-radius: 16px;
    box-shadow: 0 24px 64px rgba(26, 28, 31, 0.20), 0 8px 16px rgba(26, 28, 31, 0.10);
    width: 100%;
    max-width: 620px;
    overflow: hidden;
    border: 1px solid var(--border-soft);
}

.aim-header[b-ya70lcrach] {
    padding: 20px 24px 16px;
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    align-items: flex-start;
    gap: 16px;
}

.aim-header-text[b-ya70lcrach] { flex: 1; }

.aim-title[b-ya70lcrach] {
    font-family: 'Fraunces', Georgia, serif;
    font-size: 20px;
    font-weight: 600;
    color: #3A3D42;
    letter-spacing: -0.01em;
    margin-bottom: 4px;
}

.aim-subtitle[b-ya70lcrach] {
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.5;
}

.aim-close[b-ya70lcrach] {
    width: 32px; height: 32px;
    border-radius: 8px;
    border: none;
    background: transparent;
    cursor: pointer;
    color: var(--text-secondary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.aim-close:hover[b-ya70lcrach] { background: var(--cream); color: var(--text-primary); }

.aim-body[b-ya70lcrach] {
    padding: 16px 24px;
    max-height: 540px;
    overflow-y: auto;
}

/* Suggest banner */
.aim-suggest-banner[b-ya70lcrach] {
    background: linear-gradient(135deg, #FFF8E7, #FAEFD9);
    border: 1px solid #F1D9A6;
    border-radius: 10px;
    padding: 14px 16px;
    margin-bottom: 16px;
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.aim-suggest-icon[b-ya70lcrach] {
    width: 32px; height: 32px;
    border-radius: 8px;
    background: var(--pin-gold);
    color: white;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.aim-suggest-icon .material-symbols-rounded[b-ya70lcrach] {
    font-size: 18px;
    font-variation-settings: 'FILL' 1;
}

.aim-suggest-text[b-ya70lcrach] { flex: 1; }

.aim-suggest-title[b-ya70lcrach] {
    font-size: 13px;
    font-weight: 600;
    color: #5A4309;
    margin-bottom: 2px;
}

.aim-suggest-body[b-ya70lcrach] {
    font-size: 12px;
    color: #6B5511;
    line-height: 1.5;
}

.aim-suggest-body strong[b-ya70lcrach] { color: #5A4309; }

/* Search */
.aim-search[b-ya70lcrach] { margin-bottom: 14px; }

.aim-search input[b-ya70lcrach] {
    width: 100%;
    padding: 10px 14px 10px 40px;
    border: 1px solid var(--border-med);
    border-radius: 9px;
    background: #FAF7F1;
    font-family: inherit;
    font-size: 14px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%2360646C' viewBox='0 0 16 16'%3E%3Cpath d='M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001c.03.04.062.078.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1.007 1.007 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: 14px center;
}

.aim-search input:focus[b-ya70lcrach] {
    outline: none;
    border-color: var(--brand-teal);
    box-shadow: 0 0 0 3px rgba(110, 198, 200, 0.15);
}

/* Selected counter */
.aim-selected[b-ya70lcrach] {
    background: var(--cream);
    border: 1px solid var(--border-soft);
    border-radius: 9px;
    padding: 10px 12px;
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
}

.aim-selected strong[b-ya70lcrach] { color: var(--text-primary); font-weight: 600; }

.aim-pills[b-ya70lcrach] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    flex: 1;
}

.aim-pill[b-ya70lcrach] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: #FFFFFF;
    border: 1px solid var(--border-soft);
    border-radius: 999px;
    padding: 2px 8px;
    font-size: 11px;
    color: var(--text-primary);
}

.aim-pill .material-symbols-rounded[b-ya70lcrach] {
    font-size: 12px;
    cursor: pointer;
    color: var(--text-muted);
}

/* Results */
.aim-results-title[b-ya70lcrach] {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
    padding: 8px 4px 6px;
    margin-top: 10px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.aim-results-title.suggested[b-ya70lcrach] { color: var(--pin-gold); }
.aim-results-title.suggested .material-symbols-rounded[b-ya70lcrach] {
    font-size: 14px;
    color: var(--pin-gold);
    font-variation-settings: 'FILL' 1;
}

.aim-result-row[b-ya70lcrach] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px;
    border-radius: 8px;
    cursor: pointer;
}

.aim-result-row:hover[b-ya70lcrach] { background: #FAF7F1; }
.aim-result-row.disabled[b-ya70lcrach] { opacity: 0.5; cursor: not-allowed; }
.aim-result-row.suggested[b-ya70lcrach] { background: rgba(184, 134, 11, 0.05); border: 1px solid rgba(184, 134, 11, 0.15); }
.aim-result-row.suggested:hover[b-ya70lcrach] { background: rgba(184, 134, 11, 0.08); }

.aim-check[b-ya70lcrach] {
    width: 20px; height: 20px;
    border: 2px solid var(--border-med);
    border-radius: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: #FFFFFF;
}

.aim-result-row.checked .aim-check[b-ya70lcrach] {
    background: #2C6D6F;
    border-color: #2C6D6F;
    color: white;
}

.aim-result-row.checked .aim-check .material-symbols-rounded[b-ya70lcrach] {
    font-size: 14px;
    color: white;
    font-variation-settings: 'wght' 700;
}



.aim-result-info[b-ya70lcrach] { flex: 1; }

.aim-result-name[b-ya70lcrach] {
    font-size: 13px;
    font-weight: 500;
    color: var(--text-primary);
    margin-bottom: 1px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.aim-result-meta[b-ya70lcrach] {
    font-size: 11px;
    color: var(--text-muted);
}

.aim-suggest-tag[b-ya70lcrach] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 10px;
    font-weight: 600;
    padding: 1px 6px;
    background: var(--pin-gold);
    color: white;
    border-radius: 999px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.aim-suggest-tag .material-symbols-rounded[b-ya70lcrach] { font-size: 11px; color: white; }

.aim-already[b-ya70lcrach] { font-size: 11px; color: var(--text-muted); font-style: italic; }

/* Footer */
.aim-footer[b-ya70lcrach] {
    padding: 14px 24px;
    border-top: 1px solid var(--border-soft);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    background: #FAF7F1;
}

.aim-footer-left[b-ya70lcrach] { font-size: 12px; color: var(--text-muted); }
.aim-footer-right[b-ya70lcrach] { display: flex; gap: 8px; }

.aim-btn-secondary[b-ya70lcrach] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    background: #FFFFFF;
    color: var(--text-primary);
    border: 1px solid var(--border-med);
    border-radius: 10px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
}

.aim-btn-secondary:hover[b-ya70lcrach] { background: var(--cream); }

.aim-btn-primary[b-ya70lcrach] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    background: #3A3D42;
    color: white;
    border: none;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
}

.aim-btn-primary:hover[b-ya70lcrach] { background: #2A2D32; }
.aim-btn-primary:disabled[b-ya70lcrach] { opacity: 0.4; cursor: not-allowed; }

@media (max-width: 560px) {
    .aim-modal[b-ya70lcrach] {
        width: 94vw;
        max-width: 94vw;
        padding: 16px;
    }
}
/* /Components/Proyectos/ArchivarProyectoModal.razor.rz.scp.css */
.apm-backdrop[b-09r1y44nye] {
    position: fixed;
    inset: 0;
    background: rgba(26, 28, 31, 0.45);
    backdrop-filter: blur(2px);
    z-index: 50;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.apm-modal[b-09r1y44nye] {
    background: var(--bg-panel, #FFFFFF);
    border-radius: 16px;
    box-shadow: 0 24px 64px rgba(26, 28, 31, 0.20), 0 8px 16px rgba(26, 28, 31, 0.10);
    width: 100%;
    max-width: 440px;
    overflow: hidden;
    border: 1px solid var(--border-soft);
}

.apm-header[b-09r1y44nye] {
    padding: 20px 24px 16px;
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    align-items: flex-start;
    gap: 16px;
}

.apm-icon-danger[b-09r1y44nye] {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: #FBEAEA;
    color: var(--danger);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.apm-icon-danger .material-symbols-rounded[b-09r1y44nye] { font-size: 24px; }

.apm-header-text[b-09r1y44nye] { flex: 1; }

.apm-title[b-09r1y44nye] {
    font-family: 'Fraunces', Georgia, serif;
    font-size: 20px;
    font-weight: 600;
    color: #3A3D42;
    letter-spacing: -0.01em;
    margin-bottom: 4px;
}

.apm-subtitle[b-09r1y44nye] {
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.5;
}

.apm-body[b-09r1y44nye] {
    padding: 20px 24px;
}

.apm-detail[b-09r1y44nye] {
    background: #FAF7F1;
    border: 1px solid var(--border-soft);
    border-radius: 9px;
    padding: 12px;
    font-size: 13px;
    line-height: 1.5;
    color: var(--text-secondary);
}

.apm-detail + .apm-detail[b-09r1y44nye] {
    margin-top: 8px;
}

.apm-detail strong[b-09r1y44nye] {
    color: var(--text-primary);
    display: block;
    margin-bottom: 4px;
}

.apm-detail p[b-09r1y44nye] {
    margin-top: 4px;
}

.apm-detail-warning[b-09r1y44nye] {
    background: #FFFAF0;
    border-color: #F1D9A6;
}

.apm-detail-warning strong[b-09r1y44nye] {
    color: #8B5E13;
}

.apm-list[b-09r1y44nye] {
    list-style: none;
    padding: 0;
    margin: 8px 0 0;
}

.apm-list li[b-09r1y44nye] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 0;
    font-size: 13px;
    color: var(--text-secondary);
}

.apm-list li .material-symbols-rounded[b-09r1y44nye] {
    font-size: 16px;
    color: var(--brand-teal);
}

.apm-checkbox-area[b-09r1y44nye] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 16px;
    padding: 12px;
    background: var(--cream);
    border-radius: 9px;
    border: 1px solid var(--border-soft);
}

.apm-checkbox-area input[type="checkbox"][b-09r1y44nye] {
    margin-top: 2px;
    accent-color: var(--danger);
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

.apm-checkbox-area label[b-09r1y44nye] {
    font-size: 13px;
    color: var(--text-primary);
    cursor: pointer;
    line-height: 1.5;
}

.apm-footer[b-09r1y44nye] {
    padding: 14px 24px;
    border-top: 1px solid var(--border-soft);
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    background: #FAF7F1;
}

.apm-btn-secondary[b-09r1y44nye] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    background: #FFFFFF;
    color: var(--text-primary);
    border: 1px solid var(--border-med);
    border-radius: 10px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
}

.apm-btn-secondary:hover[b-09r1y44nye] { background: var(--cream); }

.apm-btn-danger[b-09r1y44nye] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    background: var(--danger);
    color: white;
    border: none;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
}

.apm-btn-danger:hover[b-09r1y44nye] { background: #8C2424; }
.apm-btn-danger:disabled[b-09r1y44nye] { opacity: 0.4; cursor: not-allowed; }
/* /Components/Proyectos/CoberturaNEMMatrix.razor.rz.scp.css */
.nem-coverage[b-xplmi5lb85] {
    background: #FAF7F1;
    border: 1px solid var(--border-soft);
    border-radius: 12px;
    padding: 16px;
    margin-bottom: 20px;
}

.nem-header[b-xplmi5lb85] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}

.nem-header-icon[b-xplmi5lb85] {
    width: 32px; height: 32px;
    border-radius: 8px;
    background: linear-gradient(135deg, var(--brand-teal), #2C6D6F);
    color: white;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.nem-header-icon .material-symbols-rounded[b-xplmi5lb85] { font-size: 18px; color: white; }

.nem-header-text[b-xplmi5lb85] { flex: 1; }

.nem-title[b-xplmi5lb85] {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: 2px;
}

.nem-subtitle[b-xplmi5lb85] {
    font-size: 11px;
    color: var(--text-secondary);
}

.nem-badge-warning[b-xplmi5lb85] {
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
    background: #FFF4E1;
    color: var(--warning);
    border: 1px solid #F1D9A6;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.nem-badge-warning .material-symbols-rounded[b-xplmi5lb85] { font-size: 12px; }

.nem-matrix[b-xplmi5lb85] {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: #FFFFFF;
    border-radius: 10px;
    overflow: hidden;
    font-size: 12px;
}

.nem-matrix th[b-xplmi5lb85] {
    padding: 8px 10px;
    font-size: 11px;
    font-weight: 600;
    color: var(--text-secondary);
    background: #FAF7F1;
    border-bottom: 1px solid var(--border-soft);
    text-align: center;
    vertical-align: bottom;
}

.nem-matrix th.nem-col[b-xplmi5lb85] { position: relative; }

.nem-matrix th.nem-col.required[b-xplmi5lb85] {
    color: var(--text-primary);
    background: white;
    font-weight: 700;
}

.nem-matrix th.nem-col.uncovered[b-xplmi5lb85] {
    background: #FFF4E1;
    color: var(--warning);
}

.nem-matrix th.nem-col-color[b-xplmi5lb85] {
    height: 4px;
    padding: 0;
}

.nem-matrix th.uncovered-color[b-xplmi5lb85] { opacity: 0.5; }

.nem-matrix td[b-xplmi5lb85] {
    padding: 8px 10px;
    border-bottom: 1px solid var(--border-soft);
    vertical-align: middle;
}

.nem-matrix tr:last-child td[b-xplmi5lb85] { border-bottom: none; }

.nem-name-cell[b-xplmi5lb85] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 180px;
}



.nem-name[b-xplmi5lb85] {
    font-size: 12px;
    font-weight: 500;
    color: var(--text-primary);
}

.nem-name.lider[b-xplmi5lb85] {
    color: var(--pin-gold);
    font-weight: 600;
}

.nem-check-cell[b-xplmi5lb85] { text-align: center; }

.nem-check[b-xplmi5lb85] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px; height: 22px;
    border-radius: 6px;
    background: #E2F4EE;
    color: var(--pz-green);
    border: 1px solid #B5DECC;
}

.nem-check .material-symbols-rounded[b-xplmi5lb85] {
    font-size: 14px;
    font-variation-settings: 'wght' 700;
}

.nem-empty[b-xplmi5lb85] {
    display: inline-block;
    width: 22px; height: 22px;
    color: var(--text-muted);
    opacity: 0.3;
    font-size: 16px;
    line-height: 22px;
    text-align: center;
}
/* /Components/Proyectos/CrearProyectoDialog.razor.rz.scp.css */
/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   CrearProyectoDialog v2 â€” modal para crear proyectos (8 tipos)
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */

.cpd-overlay[b-0p8vvjy3cy] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    z-index: 1000;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 32px 16px;
    overflow-y: auto;
    font-family: var(--font-sans);
}

.cpd-overlay-modal[b-0p8vvjy3cy] {
    width: 100%;
    max-width: 600px;
}

/* â•â•â•â• Modal box â•â•â•â• */
.cpd-modal[b-0p8vvjy3cy] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: 16px;
    box-shadow: 0 24px 56px rgba(26, 28, 31, 0.18), 0 8px 16px rgba(26, 28, 31, 0.08);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    position: relative;
    color: var(--text-primary);
}

/* â•â•â•â• Ribbon (top color bar per type) â•â•â•â• */
.cpd-ribbon[b-0p8vvjy3cy] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    z-index: 1;
    background: var(--border-med);
}

.cpd-ribbon.nem[b-0p8vvjy3cy]      { background: linear-gradient(90deg, var(--brand-teal), #2C6D6F, var(--brand-teal)); }
.cpd-ribbon.pmc[b-0p8vvjy3cy]      { background: linear-gradient(90deg, #8B5CF6, #6D28D9, #8B5CF6); }
.cpd-ribbon.evento[b-0p8vvjy3cy]   { background: linear-gradient(90deg, #EC4899, #9D174D, #EC4899); }
.cpd-ribbon.concurso[b-0p8vvjy3cy] { background: linear-gradient(90deg, #F59E0B, var(--t-nem), #F59E0B); }
.cpd-ribbon.mural[b-0p8vvjy3cy]    { background: linear-gradient(90deg, #10B981, #047857, #10B981); }
.cpd-ribbon.comite[b-0p8vvjy3cy]   { background: linear-gradient(90deg, #3B82F6, #1D4ED8, #3B82F6); }
.cpd-ribbon.mejora[b-0p8vvjy3cy]   { background: linear-gradient(90deg, #EF4444, #B91C1C, #EF4444); }
.cpd-ribbon.admin[b-0p8vvjy3cy]    { background: linear-gradient(90deg, var(--t-proceso), #374151, var(--t-proceso)); }

/* â•â•â•â• Header â•â•â•â• */
.cpd-header[b-0p8vvjy3cy] {
    padding: 16px 22px;
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    align-items: center;
    gap: 12px;
}

.cpd-header-icon[b-0p8vvjy3cy] {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #FFFFFF;
    flex-shrink: 0;
    background: var(--border-med);
}

.cpd-header-icon.nem[b-0p8vvjy3cy]      { background: linear-gradient(135deg, var(--brand-teal), #2C6D6F); }
.cpd-header-icon.pmc[b-0p8vvjy3cy]      { background: linear-gradient(135deg, #8B5CF6, #6D28D9); }
.cpd-header-icon.evento[b-0p8vvjy3cy]   { background: linear-gradient(135deg, #EC4899, #9D174D); }
.cpd-header-icon.concurso[b-0p8vvjy3cy] { background: linear-gradient(135deg, #F59E0B, var(--t-nem)); }
.cpd-header-icon.mural[b-0p8vvjy3cy]    { background: linear-gradient(135deg, #10B981, #047857); }
.cpd-header-icon.comite[b-0p8vvjy3cy]   { background: linear-gradient(135deg, #3B82F6, #1D4ED8); }
.cpd-header-icon.mejora[b-0p8vvjy3cy]   { background: linear-gradient(135deg, #EF4444, #B91C1C); }
.cpd-header-icon.admin[b-0p8vvjy3cy]    { background: linear-gradient(135deg, var(--t-proceso), #374151); }

.cpd-header-icon .material-symbols-rounded[b-0p8vvjy3cy] { font-size: 22px !important; }

.cpd-title-block[b-0p8vvjy3cy] { flex: 1; min-width: 0; }

.cpd-pretitle[b-0p8vvjy3cy] {
    font-size: 10.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 1px;
    color: var(--text-muted);
}

.cpd-pretitle.nem[b-0p8vvjy3cy]      { color: #2C6D6F; }
.cpd-pretitle.pmc[b-0p8vvjy3cy]      { color: #6D28D9; }
.cpd-pretitle.evento[b-0p8vvjy3cy]   { color: #9D174D; }
.cpd-pretitle.concurso[b-0p8vvjy3cy] { color: var(--t-nem); }
.cpd-pretitle.mural[b-0p8vvjy3cy]    { color: #047857; }
.cpd-pretitle.comite[b-0p8vvjy3cy]   { color: #1D4ED8; }
.cpd-pretitle.mejora[b-0p8vvjy3cy]   { color: #B91C1C; }
.cpd-pretitle.admin[b-0p8vvjy3cy]    { color: #374151; }

.cpd-title[b-0p8vvjy3cy] {
    font-family: var(--font-serif);
    font-size: 17px;
    font-weight: 600;
    color: var(--text-primary);
    letter-spacing: -0.2px;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cpd-close[b-0p8vvjy3cy] {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    border: none;
    background: transparent;
    color: var(--text-muted);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cpd-close:hover[b-0p8vvjy3cy] { background: #F3EFE7; color: var(--text-primary); }

/* â•â•â•â• Stepper â•â•â•â• */
.cpd-stepper[b-0p8vvjy3cy] {
    padding: 12px 22px;
    background: #FBFAF6;
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.cpd-step[b-0p8vvjy3cy] {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 4px 10px;
    border-radius: 14px;
    font-size: 11.5px;
    font-weight: 600;
    color: var(--text-muted);
}

.cpd-step.done[b-0p8vvjy3cy] {
    background: rgba(29, 158, 117, 0.1);
    color: var(--success);
}

.cpd-step.active[b-0p8vvjy3cy] {
    background: rgba(110, 198, 200, 0.18);
    color: var(--brand-teal-deep);
}

.cpd-step-num[b-0p8vvjy3cy] {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--border-soft);
    color: var(--text-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 700;
}

.cpd-step.done .cpd-step-num[b-0p8vvjy3cy] {
    background: var(--success);
    color: #FFFFFF;
}

.cpd-step.done .cpd-step-num .material-symbols-rounded[b-0p8vvjy3cy] {
    font-size: 11px !important;
}

.cpd-step.active .cpd-step-num[b-0p8vvjy3cy] {
    background: var(--brand-teal);
    color: var(--text-primary);
}

.cpd-step-arrow[b-0p8vvjy3cy] {
    color: var(--border-med);
    font-size: 14px !important;
}

/* â•â•â•â• Body â•â•â•â• */
.cpd-body[b-0p8vvjy3cy] {
    padding: 20px 22px 18px;
    max-height: 520px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--border-med) transparent;
}

.cpd-body[b-0p8vvjy3cy]::-webkit-scrollbar { width: 6px; }
.cpd-body[b-0p8vvjy3cy]::-webkit-scrollbar-thumb { background: var(--border-med); border-radius: 3px; }

/* â”€â”€ Section â”€â”€ */
.cpd-section[b-0p8vvjy3cy] { margin-bottom: 18px; }

.cpd-section-title[b-0p8vvjy3cy] {
    font-size: 11px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.6px;
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.cpd-section-title .material-symbols-rounded[b-0p8vvjy3cy] { font-size: 13px !important; }

/* â•â•â•â• TYPE GRID (Paso 1) â•â•â•â• */
.cpd-type-grid[b-0p8vvjy3cy] {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
}

.cpd-type-card[b-0p8vvjy3cy] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 14px 14px 12px;
    border: 1.5px solid var(--border-soft);
    border-radius: 12px;
    background: var(--bg-panel);
    cursor: pointer;
    transition: all 0.15s;
    text-align: left;
    font-family: inherit;
}

.cpd-type-card:hover[b-0p8vvjy3cy] {
    border-color: var(--brand-teal);
    background: rgba(110, 198, 200, 0.04);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
}

.cpd-type-card.selected[b-0p8vvjy3cy] {
    border-color: var(--brand-teal);
    background: rgba(110, 198, 200, 0.08);
    box-shadow: 0 0 0 3px rgba(110, 198, 200, 0.15);
}

.cpd-type-icon[b-0p8vvjy3cy] {
    width: 34px;
    height: 34px;
    border-radius: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #FFFFFF;
    margin-bottom: 8px;
}

.cpd-type-icon.nem[b-0p8vvjy3cy]      { background: linear-gradient(135deg, var(--brand-teal), #2C6D6F); }
.cpd-type-icon.pmc[b-0p8vvjy3cy]      { background: linear-gradient(135deg, #8B5CF6, #6D28D9); }
.cpd-type-icon.evento[b-0p8vvjy3cy]   { background: linear-gradient(135deg, #EC4899, #9D174D); }
.cpd-type-icon.concurso[b-0p8vvjy3cy] { background: linear-gradient(135deg, #F59E0B, var(--t-nem)); }
.cpd-type-icon.mural[b-0p8vvjy3cy]    { background: linear-gradient(135deg, #10B981, #047857); }
.cpd-type-icon.comite[b-0p8vvjy3cy]   { background: linear-gradient(135deg, #3B82F6, #1D4ED8); }
.cpd-type-icon.mejora[b-0p8vvjy3cy]   { background: linear-gradient(135deg, #EF4444, #B91C1C); }
.cpd-type-icon.admin[b-0p8vvjy3cy]    { background: linear-gradient(135deg, var(--t-proceso), #374151); }

.cpd-type-icon .material-symbols-rounded[b-0p8vvjy3cy] { font-size: 18px !important; }

.cpd-type-name[b-0p8vvjy3cy] {
    font-size: 12.5px;
    font-weight: 700;
    color: var(--text-primary);
    margin-bottom: 2px;
}

.cpd-type-desc[b-0p8vvjy3cy] {
    font-size: 10.5px;
    color: var(--text-muted);
    line-height: 1.35;
}

/* â•â•â•â• Fields (Paso 2) â•â•â•â• */
.cpd-field[b-0p8vvjy3cy] { margin-bottom: 12px; }

.cpd-label[b-0p8vvjy3cy] {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
    margin-bottom: 5px;
    display: flex;
    align-items: center;
    gap: 4px;
}

.cpd-required[b-0p8vvjy3cy] { color: var(--danger); font-weight: 700; }

.cpd-hint[b-0p8vvjy3cy] {
    font-size: 10.5px;
    color: var(--text-muted);
    font-weight: 400;
    margin-left: auto;
}

.cpd-input[b-0p8vvjy3cy],
.cpd-textarea[b-0p8vvjy3cy],
.cpd-select[b-0p8vvjy3cy] {
    width: 100%;
    padding: 9px 12px;
    border: 1px solid var(--border-med);
    border-radius: 8px;
    font-family: inherit;
    font-size: 13px;
    color: var(--text-primary);
    background: var(--bg-panel);
    transition: all 0.15s;
    outline: none;
}

.cpd-input:focus[b-0p8vvjy3cy],
.cpd-textarea:focus[b-0p8vvjy3cy],
.cpd-select:focus[b-0p8vvjy3cy] {
    border-color: var(--brand-teal);
    box-shadow: 0 0 0 3px rgba(110, 198, 200, 0.15);
}

.cpd-textarea[b-0p8vvjy3cy] {
    resize: vertical;
    min-height: 60px;
    line-height: 1.5;
}

.cpd-row-2[b-0p8vvjy3cy] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

/* â”€â”€ Phases preview â”€â”€ */
.cpd-phases-info[b-0p8vvjy3cy] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    color: var(--text-muted);
    margin-bottom: 10px;
    padding: 8px 10px;
    background: rgba(110, 198, 200, 0.06);
    border-radius: 8px;
    border: 1px solid rgba(110, 198, 200, 0.15);
}

.cpd-phases-info .material-symbols-rounded[b-0p8vvjy3cy] { font-size: 14px !important; color: var(--brand-teal-deep); }

.cpd-phases-preview[b-0p8vvjy3cy] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 6px;
    margin-top: 4px;
}

.cpd-phase-mini[b-0p8vvjy3cy] {
    padding: 8px 10px;
    border: 1px dashed var(--border-med);
    border-radius: 7px;
    font-size: 10.5px;
    background: #FBFAF6;
}

.cpd-phase-mini-num[b-0p8vvjy3cy] {
    font-family: var(--font-serif);
    font-size: 14px;
    color: var(--text-muted);
    line-height: 1;
}

.cpd-phase-mini-name[b-0p8vvjy3cy] {
    font-weight: 700;
    color: var(--text-primary);
    margin-top: 2px;
    font-size: 11px;
}

/* â•â•â•â• Footer â•â•â•â• */
.cpd-footer[b-0p8vvjy3cy] {
    padding: 14px 22px;
    border-top: 1px solid var(--border-soft);
    background: #FBFAF6;
    display: flex;
    align-items: center;
    gap: 10px;
}

.cpd-footer-info[b-0p8vvjy3cy] {
    font-size: 11.5px;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    gap: 5px;
    flex: 1;
}

.cpd-footer-info.error[b-0p8vvjy3cy] {
    color: var(--danger);
}

.cpd-footer-info .material-symbols-rounded[b-0p8vvjy3cy] { font-size: 14px !important; }

.cpd-btn[b-0p8vvjy3cy] {
    padding: 8px 16px;
    font-size: 12.5px;
    font-weight: 600;
    border-radius: 8px;
    cursor: pointer;
    font-family: inherit;
    border: 1px solid transparent;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: all 0.15s;
    white-space: nowrap;
}

.cpd-btn:disabled[b-0p8vvjy3cy] {
    opacity: 0.5;
    cursor: not-allowed;
}

.cpd-btn .material-symbols-rounded[b-0p8vvjy3cy] { font-size: 15px !important; }

.cpd-btn-secondary[b-0p8vvjy3cy] {
    border-color: var(--border-med);
    background: var(--bg-panel);
    color: var(--text-secondary);
}

.cpd-btn-secondary:hover:not(:disabled)[b-0p8vvjy3cy] {
    border-color: var(--text-secondary);
    color: var(--text-primary);
}

.cpd-btn-primary[b-0p8vvjy3cy] {
    background: var(--brand-teal-primary);
    color: var(--text-primary);
    border-color: var(--brand-teal-primary);
    box-shadow: 0 2px 6px rgba(110, 198, 200, 0.3);
    font-weight: 700;
}

.cpd-btn-primary:hover:not(:disabled)[b-0p8vvjy3cy] {
    background: var(--brand-teal-dark, #4BA8AA);
    border-color: var(--brand-teal-dark, #4BA8AA);
}

/* â•â•â•â• Responsive â•â•â•â• */
@media (max-width: 720px) {
    .cpd-body[b-0p8vvjy3cy] { padding: 16px; }
    .cpd-header[b-0p8vvjy3cy] { padding: 14px 16px; }
    .cpd-stepper[b-0p8vvjy3cy] { padding: 10px 16px; }
    .cpd-footer[b-0p8vvjy3cy] { padding: 12px 16px; flex-wrap: wrap; }
    .cpd-row-2[b-0p8vvjy3cy] { grid-template-columns: 1fr; }
    .cpd-type-grid[b-0p8vvjy3cy] { grid-template-columns: 1fr; }
    .cpd-phases-preview[b-0p8vvjy3cy] { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 560px) {
    .cpd-modal[b-0p8vvjy3cy] {
        width: 94vw;
        max-width: 94vw;
    }
}
/* /Components/Proyectos/EditarProyectoModal.razor.rz.scp.css */
.epm-backdrop[b-vq3epck62r] {
    position: fixed;
    inset: 0;
    background: rgba(26, 28, 31, 0.45);
    backdrop-filter: blur(2px);
    z-index: 50;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.epm-modal[b-vq3epck62r] {
    background: var(--bg-panel, #FFFFFF);
    border-radius: 16px;
    box-shadow: 0 24px 64px rgba(26, 28, 31, 0.20), 0 8px 16px rgba(26, 28, 31, 0.10);
    width: 100%;
    max-width: 560px;
    overflow: hidden;
    border: 1px solid var(--border-soft);
}

.epm-header[b-vq3epck62r] {
    padding: 20px 24px 16px;
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    align-items: flex-start;
    gap: 16px;
}

.epm-header-text[b-vq3epck62r] { flex: 1; }

.epm-title[b-vq3epck62r] {
    font-family: 'Fraunces', Georgia, serif;
    font-size: 20px;
    font-weight: 600;
    color: #3A3D42;
    letter-spacing: -0.01em;
    margin-bottom: 4px;
}

.epm-subtitle[b-vq3epck62r] {
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.5;
}

.epm-close[b-vq3epck62r] {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    border: none;
    background: transparent;
    cursor: pointer;
    color: var(--text-secondary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.epm-close:hover[b-vq3epck62r] {
    background: var(--cream);
    color: var(--text-primary);
}

.epm-body[b-vq3epck62r] {
    padding: 20px 24px;
    max-height: 70vh;
    overflow-y: auto;
}

.epm-group[b-vq3epck62r] {
    margin-bottom: 16px;
}

.epm-row[b-vq3epck62r] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.epm-label[b-vq3epck62r] {
    display: block;
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
    margin-bottom: 6px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.epm-input[b-vq3epck62r],
.epm-textarea[b-vq3epck62r] {
    width: 100%;
    padding: 9px 12px;
    border: 1px solid var(--border-med);
    border-radius: 9px;
    background: #FFFFFF;
    font-family: inherit;
    font-size: 14px;
    color: var(--text-primary);
    transition: border-color 0.1s ease, box-shadow 0.1s ease;
}

.epm-input:focus[b-vq3epck62r],
.epm-textarea:focus[b-vq3epck62r] {
    outline: none;
    border-color: var(--brand-teal);
    box-shadow: 0 0 0 3px rgba(110, 198, 200, 0.15);
}

.epm-input-error[b-vq3epck62r] {
    border-color: var(--danger);
}

.epm-textarea[b-vq3epck62r] {
    resize: vertical;
    min-height: 80px;
}

.epm-helper[b-vq3epck62r] {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 4px;
    display: block;
    line-height: 1.4;
}

.epm-error[b-vq3epck62r] {
    font-size: 11px;
    color: var(--danger);
    margin-top: 4px;
    display: block;
}

.epm-chips[b-vq3epck62r] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 8px;
    border: 1px solid var(--border-med);
    border-radius: 9px;
    background: #FAF7F1;
    min-height: 48px;
}

.epm-chip[b-vq3epck62r] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    border: 1px solid var(--border-soft);
    background: #FFFFFF;
    color: var(--text-secondary);
    transition: all 0.12s ease;
}

.epm-chip:hover[b-vq3epck62r] {
    border-color: #BCDFE2;
}

.epm-chip-selected[b-vq3epck62r] {
    background: #EAF5F6;
    color: #2C6D6F;
    border-color: #BCDFE2;
}

.epm-locked[b-vq3epck62r] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 9px 12px;
    background: #FAF7F1;
    border: 1px dashed var(--border-med);
    border-radius: 9px;
    font-size: 13px;
    color: var(--text-muted);
}

.epm-locked .material-symbols-rounded[b-vq3epck62r] {
    margin-right: 4px;
}

.epm-footer[b-vq3epck62r] {
    padding: 14px 24px;
    border-top: 1px solid var(--border-soft);
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    background: #FAF7F1;
}

.epm-btn-secondary[b-vq3epck62r] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    background: #FFFFFF;
    color: var(--text-primary);
    border: 1px solid var(--border-med);
    border-radius: 10px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
}

.epm-btn-secondary:hover[b-vq3epck62r] { background: var(--cream); }

.epm-btn-primary[b-vq3epck62r] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    background: #3A3D42;
    color: white;
    border: none;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
}

.epm-btn-primary:hover[b-vq3epck62r] { background: #2A2D32; }
.epm-btn-primary:disabled[b-vq3epck62r] { opacity: 0.5; cursor: not-allowed; }

@media (max-width: 560px) {
    .epm-modal[b-vq3epck62r] {
        width: 94vw;
        max-width: 94vw;
        padding: 16px;
    }
}
/* /Components/Proyectos/EvidenciaAudio.razor.rz.scp.css */
.evm-skeleton-audio[b-hnwv8riek4] {
    width: 240px;
    height: 32px;
    border-radius: var(--radius-sm, 6px);
    background: linear-gradient(90deg, rgba(255,255,255,0.08) 25%, rgba(255,255,255,0.16) 37%, rgba(255,255,255,0.08) 63%);
    background-size: 400% 100%;
    animation: evm-shimmer-b-hnwv8riek4 1.4s ease infinite;
}

@keyframes evm-shimmer-b-hnwv8riek4 {
    0% { background-position: 100% 50%; }
    100% { background-position: 0 50%; }
}

.evm-btn-reintentar[b-hnwv8riek4] {
    background: rgba(255, 255, 255, 0.15);
    border: none;
    border-radius: 50%;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.evm-btn-reintentar span[b-hnwv8riek4] {
    font-size: 18px;
    color: #fff;
}

.evm-btn-reintentar:hover[b-hnwv8riek4] {
    background: rgba(255, 255, 255, 0.3);
}
/* /Components/Proyectos/EvidenciaCard.razor.rz.scp.css */
.ev-card[b-490rc2dmaq] {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    cursor: pointer;
    transition: transform 0.15s, box-shadow 0.15s;
    background: #fff;
    border: 1px solid var(--border-soft);
    display: flex;
    flex-direction: column;
}

.ev-card:hover[b-490rc2dmaq] {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08);
}

.ev-card-star[b-490rc2dmaq] {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 2;
    background: rgba(255, 255, 255, 0.9);
    border: none;
    border-radius: 50%;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.2s;
}

.ev-card:hover .ev-card-star[b-490rc2dmaq],
.ev-card-star.active[b-490rc2dmaq] {
    opacity: 1;
}

.ev-card-star.active span[b-490rc2dmaq] {
    color: var(--gold);
}

.ev-card-star span[b-490rc2dmaq] {
    font-size: 18px;
    color: var(--text-muted);
}

/* Visual area */
.ev-card-visual[b-490rc2dmaq] {
    flex: 1;
    min-height: 120px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.ev-card-img[b-490rc2dmaq] {
    width: 100%;
    height: 100%;
    min-height: 120px;
    max-height: 200px;
    object-fit: cover;
}

.ev-card-video-placeholder[b-490rc2dmaq] {
    width: 100%;
    height: 140px;
    background: #1a1a2e;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ev-card-video-placeholder span[b-490rc2dmaq] {
    font-size: 48px;
    color: rgba(255, 255, 255, 0.85);
}

.ev-card-file-placeholder[b-490rc2dmaq] {
    width: 100%;
    height: 120px;
    background: #f8f9fa;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

.ev-card-file-placeholder span.material-symbols-rounded[b-490rc2dmaq] {
    font-size: 36px;
    color: var(--text-secondary);
}

.ev-card-filename[b-490rc2dmaq] {
    font-size: 11px;
    color: var(--text-muted);
    max-width: 90%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ev-card-link-placeholder[b-490rc2dmaq] {
    width: 100%;
    height: 120px;
    background: #f0f4f8;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

.ev-card-link-placeholder span.material-symbols-rounded[b-490rc2dmaq] {
    font-size: 36px;
    color: var(--brand-teal);
}

.ev-card-link-preview[b-490rc2dmaq] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ev-card-domain[b-490rc2dmaq] {
    font-size: 11px;
    color: var(--text-muted);
}

/* Nota style */
.ev-card--nota .ev-card-visual[b-490rc2dmaq] {
    min-height: 100px;
    padding: 16px;
    align-items: flex-start;
}

.ev-card--nota-amarillo[b-490rc2dmaq] { background: var(--note-yellow, #FFF8DC); }
.ev-card--nota-rosa[b-490rc2dmaq] { background: var(--note-pink, #FCE8EA); }
.ev-card--nota-menta[b-490rc2dmaq] { background: var(--note-mint, #E5F5EC); }
.ev-card--nota-cielo[b-490rc2dmaq] { background: var(--note-sky, #E5F1F8); }

.ev-card-nota-body[b-490rc2dmaq] {
    font-family: 'Caveat', cursive;
    font-size: 16px;
    line-height: 1.4;
    color: var(--text-primary);
}

/* Info footer */
.ev-card-info[b-490rc2dmaq] {
    padding: 10px 12px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    border-top: 1px solid var(--border-soft);
}

.ev-card--nota .ev-card-info[b-490rc2dmaq] {
    border-top: none;
}

.ev-card-title[b-490rc2dmaq] {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-primary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ev-card-campo[b-490rc2dmaq] {
    font-size: 10px;
    font-weight: 500;
    padding: 2px 6px;
    border-radius: 4px;
    background: color-mix(in srgb, var(--campo-color) 15%, transparent);
    color: var(--campo-color);
    width: fit-content;
}

.ev-card-meta[b-490rc2dmaq] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    color: var(--text-muted);
}

.ev-card-author[b-490rc2dmaq] {
    font-weight: 600;
    color: var(--text-secondary);
}
/* /Components/Proyectos/EvidenciaLightbox.razor.rz.scp.css */
.ev-lb-backdrop[b-3tn3at7jsh] {
    position: fixed;
    inset: 0;
    z-index: 9000;
    background: rgba(0, 0, 0, 0.85);
    display: flex;
    align-items: center;
    justify-content: center;
    outline: none;
}

.ev-lb-container[b-3tn3at7jsh] {
    position: relative;
    width: 92vw;
    max-width: 1100px;
    height: 80vh;
    display: flex;
    flex-direction: column;
}

.ev-lb-close[b-3tn3at7jsh] {
    position: absolute;
    top: -40px;
    right: 0;
    background: none;
    border: none;
    color: #fff;
    cursor: pointer;
    font-size: 28px;
    z-index: 10;
}

.ev-lb-close span[b-3tn3at7jsh] { font-size: 28px; }

.ev-lb-nav[b-3tn3at7jsh] {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255, 255, 255, 0.15);
    border: none;
    border-radius: 50%;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: #fff;
    z-index: 10;
    transition: background 0.2s;
}

.ev-lb-nav:hover[b-3tn3at7jsh] { background: rgba(255, 255, 255, 0.3); }
.ev-lb-prev[b-3tn3at7jsh] { left: -56px; }
.ev-lb-next[b-3tn3at7jsh] { right: -56px; }
.ev-lb-nav span[b-3tn3at7jsh] { font-size: 28px; }

.ev-lb-main[b-3tn3at7jsh] {
    flex: 1;
    display: grid;
    grid-template-columns: 1fr 280px;
    gap: 0;
    background: #1a1a1a;
    border-radius: 12px;
    overflow: hidden;
}

.ev-lb-preview[b-3tn3at7jsh] {
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: #111;
}

.ev-lb-img[b-3tn3at7jsh] {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.ev-lb-video[b-3tn3at7jsh] {
    width: 100%;
    max-height: 100%;
}

.ev-lb-pdf[b-3tn3at7jsh] {
    width: 100%;
    height: 100%;
    border: none;
}

.ev-lb-audio-wrap[b-3tn3at7jsh] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    color: #fff;
}

.ev-lb-audio-wrap span[b-3tn3at7jsh] { font-size: 64px; opacity: 0.6; }

.ev-lb-link-wrap[b-3tn3at7jsh] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 24px;
}

.ev-lb-link-img[b-3tn3at7jsh] {
    max-width: 80%;
    max-height: 60%;
    border-radius: 8px;
}

.ev-lb-link-info[b-3tn3at7jsh] {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--brand-teal);
}

.ev-lb-link-info a[b-3tn3at7jsh] {
    color: inherit;
    text-decoration: underline;
    word-break: break-all;
    font-size: 13px;
}

.ev-lb-nota[b-3tn3at7jsh] {
    padding: 32px;
    font-family: 'Caveat', cursive;
    font-size: 22px;
    line-height: 1.5;
    color: var(--text-primary);
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ev-lb-nota--amarillo[b-3tn3at7jsh] { background: var(--note-yellow, #FFF8DC); }
.ev-lb-nota--rosa[b-3tn3at7jsh] { background: var(--note-pink, #FCE8EA); }
.ev-lb-nota--menta[b-3tn3at7jsh] { background: var(--note-mint, #E5F5EC); }
.ev-lb-nota--cielo[b-3tn3at7jsh] { background: var(--note-sky, #E5F1F8); }

.ev-lb-generic[b-3tn3at7jsh] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    color: #aaa;
    font-size: 14px;
}

.ev-lb-generic span.material-symbols-rounded[b-3tn3at7jsh] { font-size: 48px; }

/* Meta panel */
.ev-lb-meta[b-3tn3at7jsh] {
    background: #fff;
    padding: 24px 20px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    overflow-y: auto;
}

.ev-lb-title[b-3tn3at7jsh] {
    font-size: 16px;
    font-weight: 700;
    color: var(--text-primary);
    margin: 0;
}

.ev-lb-author[b-3tn3at7jsh] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--text-secondary);
}



.ev-lb-date[b-3tn3at7jsh] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: var(--text-muted);
}

.ev-lb-date span[b-3tn3at7jsh] { font-size: 16px; }

.ev-lb-desc[b-3tn3at7jsh] {
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.5;
    border-top: 1px solid var(--border-soft);
    padding-top: 12px;
}

.ev-lb-field[b-3tn3at7jsh] {
    display: flex;
    flex-direction: column;
    gap: 3px;
    font-size: 13px;
}

.ev-lb-field-label[b-3tn3at7jsh] {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: var(--text-muted);
}

.ev-lb-campo[b-3tn3at7jsh] {
    padding: 2px 8px;
    border-radius: 4px;
    background: color-mix(in srgb, var(--campo-color) 15%, transparent);
    color: var(--campo-color);
    font-weight: 500;
    width: fit-content;
}

@media (max-width: 560px) {
    .ev-lb-img[b-3tn3at7jsh],
    .ev-lb-link-img[b-3tn3at7jsh] {
        max-width: 94vw;
        height: auto;
    }
}
/* /Components/Proyectos/EvidenciaMedia.razor.rz.scp.css */
.evm-estado[b-xy29d7tzs3] {
    width: 100%;
    height: 100%;
    min-height: 120px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f8f9fa;
}

.evm-skeleton[b-xy29d7tzs3] {
    width: 100%;
    height: 100%;
    min-height: 120px;
    background: linear-gradient(90deg, #eceff1 25%, #f5f6f7 37%, #eceff1 63%);
    background-size: 400% 100%;
    animation: evm-shimmer-b-xy29d7tzs3 1.4s ease infinite;
}

@keyframes evm-shimmer-b-xy29d7tzs3 {
    0% { background-position: 100% 50%; }
    100% { background-position: 0 50%; }
}

.evm-estado-error[b-xy29d7tzs3] {
    flex-direction: column;
    gap: 8px;
    color: var(--text-muted);
}

.evm-estado-error span.material-symbols-rounded[b-xy29d7tzs3] {
    font-size: 36px;
    color: var(--text-muted);
}

.evm-btn-reintentar[b-xy29d7tzs3] {
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid var(--border-soft);
    border-radius: 50%;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.evm-btn-reintentar span[b-xy29d7tzs3] {
    font-size: 18px;
    color: var(--text-secondary);
}

.evm-btn-reintentar:hover[b-xy29d7tzs3] {
    background: #fff;
}

.evm-archivo[b-xy29d7tzs3] {
    width: 100%;
    height: 100%;
    min-height: 120px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 12px;
}

.evm-archivo span.material-symbols-rounded[b-xy29d7tzs3] {
    font-size: 36px;
    color: var(--text-secondary);
}

.evm-archivo-nombre[b-xy29d7tzs3] {
    font-size: 11px;
    color: var(--text-muted);
    max-width: 90%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.evm-btn-descargar[b-xy29d7tzs3] {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    font-weight: 600;
    color: var(--brand-teal);
    text-decoration: none;
    padding: 4px 10px;
    border-radius: var(--radius-sm, 6px);
    border: 1px solid var(--brand-teal);
}

.evm-btn-descargar:hover[b-xy29d7tzs3] {
    background: color-mix(in srgb, var(--brand-teal) 10%, transparent);
}

.evm-btn-descargar span.material-symbols-rounded[b-xy29d7tzs3] {
    font-size: 14px;
    color: inherit;
}

/* Variantes de tamano por contexto de uso */
.evm-estado--lightbox[b-xy29d7tzs3],
.evm-archivo.evm-estado--lightbox[b-xy29d7tzs3] {
    min-height: 300px;
    background: #111;
}

.evm-estado--lightbox .evm-skeleton[b-xy29d7tzs3] { background: linear-gradient(90deg, #1a1a1a 25%, #2a2a2a 37%, #1a1a1a 63%); }

.evm-estado--presentacion[b-xy29d7tzs3],
.evm-archivo.evm-estado--presentacion[b-xy29d7tzs3] {
    min-height: 60vh;
    background: #000;
    color: #ccc;
}

.evm-estado--presentacion .evm-skeleton[b-xy29d7tzs3] { background: linear-gradient(90deg, #111 25%, #222 37%, #111 63%); }

.evm-estado--highlight[b-xy29d7tzs3],
.evm-archivo.evm-estado--highlight[b-xy29d7tzs3] {
    position: absolute;
    inset: 0;
    min-height: 0;
}

.evm-skeleton-audio[b-xy29d7tzs3] {
    width: 240px;
    height: 32px;
    border-radius: var(--radius-sm, 6px);
}
/* /Components/Proyectos/EvidenciaPdf.razor.rz.scp.css */
.evm-estado[b-aogxgv3kyu] {
    width: 100%;
    height: 100%;
    min-height: 120px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f8f9fa;
}

.evm-skeleton[b-aogxgv3kyu] {
    width: 100%;
    height: 100%;
    min-height: 120px;
    background: linear-gradient(90deg, #eceff1 25%, #f5f6f7 37%, #eceff1 63%);
    background-size: 400% 100%;
    animation: evm-shimmer-b-aogxgv3kyu 1.4s ease infinite;
}

@keyframes evm-shimmer-b-aogxgv3kyu {
    0% { background-position: 100% 50%; }
    100% { background-position: 0 50%; }
}

.evm-estado-error[b-aogxgv3kyu] {
    flex-direction: column;
    gap: 8px;
    color: var(--text-muted);
}

.evm-estado-error span.material-symbols-rounded[b-aogxgv3kyu] {
    font-size: 36px;
    color: var(--text-muted);
}

.evm-btn-reintentar[b-aogxgv3kyu] {
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid var(--border-soft);
    border-radius: 50%;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.evm-btn-reintentar span[b-aogxgv3kyu] {
    font-size: 18px;
    color: var(--text-secondary);
}

.evm-btn-reintentar:hover[b-aogxgv3kyu] {
    background: #fff;
}

.evm-estado--lightbox[b-aogxgv3kyu] {
    min-height: 300px;
    background: #111;
}

.evm-estado--lightbox .evm-skeleton[b-aogxgv3kyu] { background: linear-gradient(90deg, #1a1a1a 25%, #2a2a2a 37%, #1a1a1a 63%); }
/* /Components/Proyectos/EvidenciasHighlightReel.razor.rz.scp.css */
.ev-hl-reel[b-3b68d4f7kn] {
    margin-bottom: 20px;
}

.ev-hl-title[b-3b68d4f7kn] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: 12px;
}

.ev-hl-title span[b-3b68d4f7kn] {
    font-size: 18px;
    color: var(--gold);
}

.ev-hl-grid[b-3b68d4f7kn] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    max-height: 260px;
}

.ev-hl-large[b-3b68d4f7kn] {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    cursor: pointer;
    min-height: 240px;
}

.ev-hl-small-grid[b-3b68d4f7kn] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr 1fr;
    gap: 8px;
}

.ev-hl-small[b-3b68d4f7kn] {
    position: relative;
    border-radius: 10px;
    overflow: hidden;
    cursor: pointer;
    min-height: 116px;
}

.ev-hl-thumb[b-3b68d4f7kn] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    inset: 0;
}

.ev-hl-icon-bg[b-3b68d4f7kn] {
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, #f0f4f8, #e8ecf0);
    display: flex;
    align-items: center;
    justify-content: center;
}

.ev-hl-icon-bg span[b-3b68d4f7kn] {
    font-size: 36px;
    color: var(--text-muted);
}

.ev-hl-overlay[b-3b68d4f7kn] {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 8px 10px;
    background: linear-gradient(transparent, rgba(0, 0, 0, 0.6));
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.ev-hl-overlay-title[b-3b68d4f7kn] {
    font-size: 12px;
    font-weight: 600;
    color: #fff;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ev-hl-overlay-author[b-3b68d4f7kn] {
    font-size: 11px;
    color: rgba(255, 255, 255, 0.8);
}

.ev-hl-empty[b-3b68d4f7kn] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 16px 20px;
    background: #f8f9fa;
    border-radius: 10px;
    margin-bottom: 20px;
    color: var(--text-muted);
    font-size: 13px;
}

.ev-hl-empty span.material-symbols-rounded[b-3b68d4f7kn] {
    font-size: 20px;
}
/* /Components/Proyectos/EvidenciaVideo.razor.rz.scp.css */
.evm-estado[b-b1uzxv858g] {
    width: 100%;
    height: 100%;
    min-height: 120px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f8f9fa;
}

.evm-skeleton[b-b1uzxv858g] {
    width: 100%;
    height: 100%;
    min-height: 120px;
    background: linear-gradient(90deg, #eceff1 25%, #f5f6f7 37%, #eceff1 63%);
    background-size: 400% 100%;
    animation: evm-shimmer-b-b1uzxv858g 1.4s ease infinite;
}

@keyframes evm-shimmer-b-b1uzxv858g {
    0% { background-position: 100% 50%; }
    100% { background-position: 0 50%; }
}

.evm-estado-error[b-b1uzxv858g] {
    flex-direction: column;
    gap: 8px;
    color: var(--text-muted);
}

.evm-estado-error span.material-symbols-rounded[b-b1uzxv858g] {
    font-size: 36px;
    color: var(--text-muted);
}

.evm-btn-reintentar[b-b1uzxv858g] {
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid var(--border-soft);
    border-radius: 50%;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.evm-btn-reintentar span[b-b1uzxv858g] {
    font-size: 18px;
    color: var(--text-secondary);
}

.evm-btn-reintentar:hover[b-b1uzxv858g] {
    background: #fff;
}

.evm-estado--lightbox[b-b1uzxv858g] {
    min-height: 300px;
    background: #111;
}

.evm-estado--lightbox .evm-skeleton[b-b1uzxv858g] { background: linear-gradient(90deg, #1a1a1a 25%, #2a2a2a 37%, #1a1a1a 63%); }

.evm-estado--presentacion[b-b1uzxv858g] {
    min-height: 60vh;
    background: #000;
    color: #ccc;
}

.evm-estado--presentacion .evm-skeleton[b-b1uzxv858g] { background: linear-gradient(90deg, #111 25%, #222 37%, #111 63%); }
/* /Components/Proyectos/HealthCardsRow.razor.rz.scp.css */
.hcr-grid[b-96rvh3286v] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    margin-bottom: 20px;
}

.hcr-card[b-96rvh3286v] {
    background: #FAF7F1;
    border: 1px solid var(--border-soft);
    border-radius: 12px;
    padding: 14px 16px;
    position: relative;
    overflow: hidden;
}

.hcr-card[b-96rvh3286v]::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: var(--brand-teal);
}

.hcr-card.warning[b-96rvh3286v]::before { background: var(--warning); }
.hcr-card.danger[b-96rvh3286v]::before { background: var(--danger); }
.hcr-card.success[b-96rvh3286v]::before { background: var(--pz-green); }

.hcr-card.warning[b-96rvh3286v] { background: #FFF4E1; border-color: #F1D9A6; }
.hcr-card.danger[b-96rvh3286v] { background: #FBEAEA; border-color: #F1C0C0; }
.hcr-card.success[b-96rvh3286v] { background: #E2F4EE; border-color: #B5DECC; }

.hcr-label[b-96rvh3286v] {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-muted);
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 5px;
}

.hcr-label .material-symbols-rounded[b-96rvh3286v] { font-size: 14px; }

.hcr-value[b-96rvh3286v] {
    font-family: 'Fraunces', Georgia, serif;
    font-size: 26px;
    font-weight: 600;
    color: var(--text-primary);
    letter-spacing: -0.01em;
    display: flex;
    align-items: baseline;
    gap: 6px;
}

.hcr-suffix[b-96rvh3286v] {
    font-family: 'Figtree', sans-serif;
    font-size: 13px;
    font-weight: 500;
    color: var(--text-secondary);
}

.hcr-detail[b-96rvh3286v] {
    font-size: 11px;
    color: var(--text-secondary);
    margin-top: 6px;
    line-height: 1.4;
}

.hcr-detail strong[b-96rvh3286v] { color: var(--text-primary); font-weight: 600; }

.hcr-bar[b-96rvh3286v] {
    height: 4px;
    background: rgba(0,0,0,0.06);
    border-radius: 999px;
    overflow: hidden;
    margin-top: 8px;
}

.hcr-fill[b-96rvh3286v] {
    height: 100%;
    background: linear-gradient(90deg, var(--brand-teal), #2C6D6F);
    border-radius: 999px;
}

.hcr-card.warning .hcr-fill[b-96rvh3286v] { background: linear-gradient(90deg, #E0A648, var(--warning)); }
.hcr-card.danger .hcr-fill[b-96rvh3286v] { background: linear-gradient(90deg, #C95252, var(--danger)); }
.hcr-card.success .hcr-fill[b-96rvh3286v] { background: linear-gradient(90deg, #4BC093, var(--pz-green)); }

.hcr-mini-bars[b-96rvh3286v] {
    display: flex;
    gap: 2px;
    align-items: flex-end;
    height: 26px;
    margin-top: 6px;
}

.hcr-bar-item[b-96rvh3286v] {
    flex: 1;
    border-radius: 2px;
    min-height: 4px;
}

.hcr-bar-item.load-light[b-96rvh3286v] { background: var(--pz-green); }
.hcr-bar-item.load-balanced[b-96rvh3286v] { background: var(--warning); }
.hcr-bar-item.load-heavy[b-96rvh3286v] { background: var(--danger); }
.hcr-bar-item.load-empty[b-96rvh3286v] { background: #BBB6AC; }

.hcr-dots[b-96rvh3286v] {
    display: flex;
    gap: 3px;
    margin-top: 8px;
}

.hcr-dot[b-96rvh3286v] {
    width: 14px;
    height: 14px;
    border-radius: 4px;
    background: var(--pz-green);
}

.hcr-dot.muted[b-96rvh3286v] { background: rgba(29, 158, 117, 0.2); }

@media (max-width: 900px) {
    .hcr-grid[b-96rvh3286v] { grid-template-columns: repeat(2, 1fr); }
}
/* /Components/Proyectos/MemberRow.razor.rz.scp.css */
.mr-row[b-3vql7r3o0z] {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px;
    border-radius: 10px;
    position: relative;
    transition: background 0.1s ease;
}

.mr-row:hover[b-3vql7r3o0z] { background: #FAF7F1; }

.mr-row + .mr-row[b-3vql7r3o0z] { border-top: 1px solid var(--border-soft); }

.mr-row.lider[b-3vql7r3o0z] {
    background: linear-gradient(90deg, #FAF1D6 0%, transparent 60%);
    border: 1px solid #E8D7A0;
    margin-bottom: 4px;
}

/* Avatar with ring */
.mr-avatar-ring[b-3vql7r3o0z] {
    position: relative;
    width: 48px; height: 48px;
    flex-shrink: 0;
}

.mr-ring[b-3vql7r3o0z] {
    position: absolute;
    inset: 0;
    width: 48px; height: 48px;
    transform: rotate(-90deg);
}

.mr-ring circle[b-3vql7r3o0z] { fill: none; stroke-width: 3; }
.mr-ring .mr-ring-bg[b-3vql7r3o0z] { stroke: rgba(0,0,0,0.06); }
.mr-ring .mr-ring-fill[b-3vql7r3o0z] { stroke-linecap: round; }
.mr-ring .mr-ring-fill.load-light[b-3vql7r3o0z] { stroke: var(--pz-green); }
.mr-ring .mr-ring-fill.load-balanced[b-3vql7r3o0z] { stroke: var(--warning); }
.mr-ring .mr-ring-fill.load-heavy[b-3vql7r3o0z] { stroke: var(--danger); }

.mr-avatar[b-3vql7r3o0z] {
    position: absolute;
    top: 4px;
    left: 4px;
}

/* Info */
.mr-info[b-3vql7r3o0z] { flex: 1; min-width: 0; }

.mr-name-row[b-3vql7r3o0z] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px;
    flex-wrap: wrap;
}

.mr-name[b-3vql7r3o0z] {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-primary);
}

.mr-name.is-you[b-3vql7r3o0z] { color: #2C6D6F; }

.mr-you-tag[b-3vql7r3o0z] {
    font-size: 10px;
    font-weight: 600;
    padding: 1px 6px;
    background: var(--brand-teal);
    color: var(--text-primary);
    border-radius: 999px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.mr-role[b-3vql7r3o0z] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    font-size: 11px;
    font-weight: 600;
    border-radius: 999px;
}

.mr-role.role-lider[b-3vql7r3o0z] {
    background: #FAF1D6;
    color: var(--pin-gold);
    border: 1px solid #E8D7A0;
}

.mr-role.role-lider .material-symbols-rounded[b-3vql7r3o0z] {
    font-size: 12px;
    font-variation-settings: 'FILL' 1;
}

.mr-role.role-colaborador[b-3vql7r3o0z] {
    background: var(--cream);
    color: var(--text-secondary);
    border: 1px solid var(--border-soft);
}

/* Field tags (NEM) */
.mr-field-tag[b-3vql7r3o0z] {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    font-size: 11px;
    font-weight: 500;
    border-radius: 999px;
    border: 1px solid;
}

.mr-field-tag.lenguajes[b-3vql7r3o0z] { background: #FCE8EA; color: #E63946; border-color: rgba(230, 57, 70, 0.25); }
.mr-field-tag.saberes[b-3vql7r3o0z] { background: #E8F1F8; color: var(--info); border-color: rgba(45, 110, 163, 0.25); }
.mr-field-tag.etica[b-3vql7r3o0z] { background: #EEF7E8; color: #4F8E2F; border-color: rgba(107, 175, 68, 0.3); }
.mr-field-tag.humano[b-3vql7r3o0z] { background: #FAEFD9; color: #D4870E; border-color: rgba(212, 135, 14, 0.3); }

/* Workload pill */
.mr-workload[b-3vql7r3o0z] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
}

.mr-workload.light[b-3vql7r3o0z] { background: #E2F4EE; color: var(--pz-green); }
.mr-workload.balanced[b-3vql7r3o0z] { background: #FFF4E1; color: var(--warning); }
.mr-workload.heavy[b-3vql7r3o0z] { background: #FBEAEA; color: var(--danger); }
.mr-workload.empty[b-3vql7r3o0z] { background: var(--cream); color: var(--text-muted); }
.mr-workload .material-symbols-rounded[b-3vql7r3o0z] { font-size: 12px; }

/* Meta */
.mr-meta[b-3vql7r3o0z] {
    font-size: 12px;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.mr-dot[b-3vql7r3o0z] { opacity: 0.5; }
.mr-vencidas[b-3vql7r3o0z] { color: var(--warning); }

/* Actions */
.mr-actions[b-3vql7r3o0z] {
    display: flex;
    gap: 4px;
    align-items: center;
    opacity: 0;
    transition: opacity 0.15s;
}

.mr-row:hover .mr-actions[b-3vql7r3o0z] { opacity: 1; }

.mr-btn-icon[b-3vql7r3o0z] {
    width: 34px; height: 34px;
    border-radius: 9px;
    background: transparent;
    border: 1px solid transparent;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: var(--text-secondary);
}

.mr-btn-icon:hover[b-3vql7r3o0z] {
    background: var(--cream);
    border-color: var(--border-soft);
    color: var(--brand-teal-deep, #2C6D6F);
}

.mr-btn-icon.mr-btn-danger:hover[b-3vql7r3o0z] {
    background: #FBEAEA;
    border-color: rgba(163, 45, 45, 0.25);
    color: var(--danger);
}
/* /Components/Proyectos/ModoPresentacion.razor.rz.scp.css */
.ev-pres-backdrop[b-gtmcegtda9] {
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: #000;
    display: flex;
    align-items: center;
    justify-content: center;
    outline: none;
}

.ev-pres-close[b-gtmcegtda9] {
    position: absolute;
    top: 16px;
    right: 20px;
    background: rgba(255, 255, 255, 0.15);
    border: none;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: #fff;
    z-index: 10;
}

.ev-pres-close:hover[b-gtmcegtda9] { background: rgba(255, 255, 255, 0.3); }
.ev-pres-close span[b-gtmcegtda9] { font-size: 24px; }

.ev-pres-counter[b-gtmcegtda9] {
    position: absolute;
    top: 20px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 13px;
    color: rgba(255, 255, 255, 0.7);
    z-index: 10;
}

.ev-pres-nav[b-gtmcegtda9] {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255, 255, 255, 0.1);
    border: none;
    border-radius: 50%;
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: #fff;
    z-index: 10;
    transition: background 0.2s;
}

.ev-pres-nav:hover[b-gtmcegtda9] { background: rgba(255, 255, 255, 0.25); }
.ev-pres-prev[b-gtmcegtda9] { left: 20px; }
.ev-pres-next[b-gtmcegtda9] { right: 20px; }
.ev-pres-nav span[b-gtmcegtda9] { font-size: 32px; }

.ev-pres-content[b-gtmcegtda9] {
    max-width: 85vw;
    max-height: 75vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

.ev-pres-img[b-gtmcegtda9] {
    max-width: 85vw;
    max-height: 75vh;
    object-fit: contain;
    border-radius: 4px;
}

.ev-pres-video[b-gtmcegtda9] {
    max-width: 85vw;
    max-height: 75vh;
}

.ev-pres-nota[b-gtmcegtda9] {
    padding: 48px;
    border-radius: 12px;
    max-width: 600px;
    font-family: 'Caveat', cursive;
    text-align: center;
}

.ev-pres-nota h2[b-gtmcegtda9] { font-size: 28px; margin-bottom: 16px; }
.ev-pres-nota p[b-gtmcegtda9] { font-size: 22px; line-height: 1.5; }

.ev-pres-nota--amarillo[b-gtmcegtda9] { background: var(--note-yellow, #FFF8DC); color: #333; }
.ev-pres-nota--rosa[b-gtmcegtda9] { background: var(--note-pink, #FCE8EA); color: #333; }
.ev-pres-nota--menta[b-gtmcegtda9] { background: var(--note-mint, #E5F5EC); color: #333; }
.ev-pres-nota--cielo[b-gtmcegtda9] { background: var(--note-sky, #E5F1F8); color: #333; }

.ev-pres-link[b-gtmcegtda9] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    color: #fff;
}

.ev-pres-link-img[b-gtmcegtda9] {
    max-width: 70vw;
    max-height: 50vh;
    border-radius: 8px;
}

.ev-pres-link span.material-symbols-rounded[b-gtmcegtda9] { font-size: 48px; color: var(--brand-teal); }
.ev-pres-link span:last-child[b-gtmcegtda9] { font-size: 16px; }

.ev-pres-generic[b-gtmcegtda9] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    color: #aaa;
}

.ev-pres-generic span.material-symbols-rounded[b-gtmcegtda9] { font-size: 64px; }
.ev-pres-generic span:last-child[b-gtmcegtda9] { font-size: 16px; }

.ev-pres-info[b-gtmcegtda9] {
    position: absolute;
    bottom: 60px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    z-index: 10;
}

.ev-pres-info-title[b-gtmcegtda9] {
    font-size: 15px;
    font-weight: 600;
    color: #fff;
}

.ev-pres-info-author[b-gtmcegtda9] {
    font-size: 12px;
    color: rgba(255, 255, 255, 0.7);
}

.ev-pres-info-phase[b-gtmcegtda9] {
    font-size: 11px;
    color: rgba(255, 255, 255, 0.5);
}

.ev-pres-dots[b-gtmcegtda9] {
    position: absolute;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 6px;
    z-index: 10;
}

.ev-pres-dot[b-gtmcegtda9] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    border: none;
    background: rgba(255, 255, 255, 0.35);
    cursor: pointer;
    transition: background 0.2s;
}

.ev-pres-dot.active[b-gtmcegtda9] {
    background: #fff;
}
/* /Components/Proyectos/ProjectsSidebar.razor.rz.scp.css */
/* ────────────────────────────────────────────────────────────────────
   ProjectsSidebar — 300px · oscuro (mismo paradigma que ChannelSidebar)
   ──────────────────────────────────────────────────────────────────── */

.ps-sidebar[b-l7nv8ossh1] {
    width: 300px;
    background: var(--bg-sidebar);
    color: var(--text-sidebar);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-right: 1px solid var(--border-sidebar);
    font-family: var(--font-sans);
}

/* Header */
.ps-header[b-l7nv8ossh1] {
    padding: 18px 18px 14px;
    border-bottom: 1px solid var(--border-sidebar);
    flex-shrink: 0;
}

.ps-title[b-l7nv8ossh1] {
    font-family: var(--font-serif);
    font-weight: 600;
    font-size: 19px;
    color: #FFFFFF;
    letter-spacing: -0.3px;
    margin-bottom: 2px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.ps-title .material-symbols-rounded[b-l7nv8ossh1] {
    color: var(--brand-teal);
    font-size: 22px !important;
}

.ps-subtitle[b-l7nv8ossh1] {
    font-size: 12px;
    color: var(--text-sidebar-muted);
    letter-spacing: 0.2px;
}

/* New button */
.ps-new-btn[b-l7nv8ossh1] {
    margin: 12px 14px 10px;
    padding: 10px 14px;
    background: var(--brand-teal-primary);
    color: #0F3A3C;
    border: none;
    border-radius: 10px;
    font-weight: 700;
    font-size: 13px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: all 0.15s;
    font-family: inherit;
    box-shadow: 0 2px 8px rgba(110, 198, 200, 0.25);
}

.ps-new-btn:hover[b-l7nv8ossh1] {
    background: var(--brand-teal);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(110, 198, 200, 0.35);
}

.ps-new-btn .material-symbols-rounded[b-l7nv8ossh1] { font-size: 18px !important; }

/* Search */
.ps-search[b-l7nv8ossh1] {
    margin: 0 14px 6px;
    padding: 8px 12px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

.ps-search .material-symbols-rounded[b-l7nv8ossh1] {
    font-size: 16px;
    color: var(--text-sidebar-muted);
}

.ps-search input[b-l7nv8ossh1] {
    background: none;
    border: none;
    color: var(--text-sidebar);
    font-family: inherit;
    font-size: 13px;
    outline: none;
    flex: 1;
    min-width: 0;
}

.ps-search input[b-l7nv8ossh1]::placeholder { color: var(--text-sidebar-muted); }

/* Chips superiores */
.ps-chips[b-l7nv8ossh1] {
    display: flex;
    gap: 4px;
    padding: 6px 14px 8px;
    flex-wrap: wrap;
    flex-shrink: 0;
}

.ps-filter-chip[b-l7nv8ossh1] {
    font-size: 11px;
    font-weight: 600;
    padding: 4px 9px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.06);
    color: var(--text-sidebar-muted);
    cursor: pointer;
    transition: all 0.15s;
    border: 1px solid transparent;
}

.ps-filter-chip:hover[b-l7nv8ossh1] {
    background: rgba(255, 255, 255, 0.1);
    color: var(--text-sidebar);
}

.ps-filter-chip.active[b-l7nv8ossh1] {
    background: rgba(110, 198, 200, 0.2);
    color: var(--brand-teal);
    border-color: rgba(110, 198, 200, 0.4);
}

/* Scroll */
.ps-scroll[b-l7nv8ossh1] {
    flex: 1;
    overflow-y: auto;
    padding: 4px 0 14px;
    scrollbar-width: thin;
    scrollbar-color: #3A3F47 transparent;
}

.ps-scroll[b-l7nv8ossh1]::-webkit-scrollbar { width: 6px; }
.ps-scroll[b-l7nv8ossh1]::-webkit-scrollbar-thumb { background: #3A3F47; border-radius: 3px; }

/* Type group */
.ps-type-group[b-l7nv8ossh1] { padding: 2px 8px; }

.ps-type-header[b-l7nv8ossh1] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px 4px;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.6px;
    text-transform: uppercase;
}

.ps-type-dot[b-l7nv8ossh1] {
    width: 10px;
    height: 10px;
    border-radius: 3px;
    flex-shrink: 0;
}

.ps-type-name[b-l7nv8ossh1] { color: var(--text-sidebar); }

.ps-type-count[b-l7nv8ossh1] {
    margin-left: auto;
    font-size: 10px;
    color: var(--text-sidebar-muted);
    padding: 1px 7px;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 10px;
    text-transform: none;
    letter-spacing: 0;
    font-weight: 500;
}

/* Project item */
.ps-proj[b-l7nv8ossh1] {
    padding: 8px 10px;
    margin: 1px 0;
    border-radius: 7px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 10px;
    transition: background 0.1s;
    position: relative;
    background: transparent;
    border: none;
    width: 100%;
    text-align: left;
    color: inherit;
    font-family: inherit;
}

.ps-proj:hover[b-l7nv8ossh1] { background: var(--bg-sidebar-hover); }

.ps-proj.active[b-l7nv8ossh1] { background: var(--bg-sidebar-active); }

.ps-proj.active[b-l7nv8ossh1]::before {
    content: "";
    position: absolute;
    left: -8px;
    top: 8px;
    bottom: 8px;
    width: 3px;
    background: var(--brand-teal);
    border-radius: 0 2px 2px 0;
}

.ps-proj-accent[b-l7nv8ossh1] {
    width: 4px;
    align-self: stretch;
    border-radius: 2px;
    flex-shrink: 0;
}

.ps-proj-info[b-l7nv8ossh1] { flex: 1; min-width: 0; }

.ps-proj-name[b-l7nv8ossh1] {
    font-size: 13px;
    font-weight: 500;
    color: var(--text-sidebar);
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    margin-bottom: 3px;
}

.ps-proj.active .ps-proj-name[b-l7nv8ossh1] {
    color: var(--text-sidebar-active);
    font-weight: 600;
}

.ps-proj:hover .ps-proj-name[b-l7nv8ossh1] { color: var(--text-sidebar-active); }

.ps-proj-meta[b-l7nv8ossh1] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 10.5px;
    color: var(--text-sidebar-muted);
}

.ps-proj-bar[b-l7nv8ossh1] {
    flex: 1;
    height: 3px;
    background: rgba(255, 255, 255, 0.08);
    border-radius: 2px;
    overflow: hidden;
}

.ps-proj-fill[b-l7nv8ossh1] {
    height: 100%;
    border-radius: 2px;
}

.ps-proj-val[b-l7nv8ossh1] {
    font-size: 10px;
    font-weight: 700;
    color: var(--text-sidebar-muted);
    font-variant-numeric: tabular-nums;
}

.ps-proj.active .ps-proj-val[b-l7nv8ossh1] { color: var(--brand-teal); }

.ps-proj-check[b-l7nv8ossh1] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.ps-proj-check .material-symbols-rounded[b-l7nv8ossh1] {
    font-size: 12px !important;
    font-weight: 700;
}

/* Footer user */
.ps-user[b-l7nv8ossh1] {
    padding: 10px 12px;
    border-top: 1px solid var(--border-sidebar);
    display: flex;
    align-items: center;
    gap: 10px;
    background: rgba(0, 0, 0, 0.15);
    flex-shrink: 0;
}



.ps-user-info[b-l7nv8ossh1] { flex: 1; overflow: hidden; }

.ps-user-name[b-l7nv8ossh1] {
    color: var(--text-sidebar-active);
    font-weight: 600;
    font-size: 12.5px;
    line-height: 1.1;
}

.ps-user-status[b-l7nv8ossh1] {
    font-size: 10.5px;
    color: var(--text-sidebar-muted);
    margin-top: 2px;
}

/* Empty state del sidebar */
.ps-empty[b-l7nv8ossh1] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 40px 16px;
    gap: 8px;
    color: rgba(255,255,255,0.45);
    font-size: 12px;
}

.ps-empty .material-symbols-rounded[b-l7nv8ossh1] {
    font-size: 32px !important;
    color: rgba(255,255,255,0.25);
}

/* ── Responsive ──────────────────────────────────────────────────── */
/* En móvil el padre (Proyectos.razor.css) decide cuándo mostrar/ocultar
   este sidebar (::deep); cuando está visible debe ocupar todo el ancho
   en vez de los 300px fijos de escritorio. */
@media (max-width: 900px) {
    .ps-sidebar[b-l7nv8ossh1] { width: 100%; }
}
/* /Components/Proyectos/ProyectoMenuDropdown.razor.rz.scp.css */
.pmd-dropdown[b-ftehxf0s0l] {
    position: absolute;
    top: 44px;
    right: 0;
    width: 220px;
    background: var(--bg-panel, #FFFFFF);
    border: 1px solid var(--border-soft);
    border-radius: 12px;
    box-shadow: 0 16px 40px rgba(26, 28, 31, 0.15), 0 4px 12px rgba(26, 28, 31, 0.08);
    padding: 6px;
    z-index: 100;
}

.pmd-item[b-ftehxf0s0l] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 12px;
    font-size: 13px;
    color: var(--text-primary);
    border-radius: 8px;
    cursor: pointer;
    transition: background 0.1s ease;
}

.pmd-item:hover[b-ftehxf0s0l] {
    background: var(--bg-cream);
}

.pmd-item .material-symbols-rounded[b-ftehxf0s0l] {
    font-size: 18px;
}

.pmd-shortcut[b-ftehxf0s0l] {
    margin-left: auto;
    font-size: 11px;
    color: var(--text-muted);
    font-family: 'SF Mono', Menlo, monospace;
}

.pmd-badge-soon[b-ftehxf0s0l] {
    margin-left: auto;
    font-size: 10px;
    background: var(--bg-cream);
    color: var(--text-muted);
    padding: 1px 6px;
    border-radius: 999px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.pmd-disabled[b-ftehxf0s0l] {
    color: var(--text-muted);
    cursor: not-allowed;
    pointer-events: none;
}

.pmd-divider[b-ftehxf0s0l] {
    height: 1px;
    background: var(--border-soft);
    margin: 4px 6px;
}

.pmd-danger[b-ftehxf0s0l] {
    color: var(--danger);
}

.pmd-danger:hover[b-ftehxf0s0l] {
    background: #FBEAEA;
}
/* /Components/Proyectos/SubirEvidenciaModal.razor.rz.scp.css */
.ev-modal-backdrop[b-gvtaoq9l8q] {
    position: fixed;
    inset: 0;
    z-index: 8000;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
}

.ev-modal[b-gvtaoq9l8q] {
    background: #fff;
    border-radius: 14px;
    width: 520px;
    max-width: 95vw;
    max-height: 85vh;
    display: flex;
    flex-direction: column;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2);
}

.ev-modal-header[b-gvtaoq9l8q] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 24px 0;
}

.ev-modal-header h3[b-gvtaoq9l8q] {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
    color: var(--text-primary);
}

.ev-modal-close[b-gvtaoq9l8q] {
    background: none;
    border: none;
    cursor: pointer;
    color: var(--text-muted);
    font-size: 22px;
}

.ev-modal-tabs[b-gvtaoq9l8q] {
    display: flex;
    gap: 4px;
    padding: 14px 24px 0;
}

.ev-modal-tab[b-gvtaoq9l8q] {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 8px 14px;
    border: none;
    background: none;
    border-radius: 8px;
    font-size: 13px;
    color: var(--text-secondary);
    cursor: pointer;
    transition: background 0.15s;
}

.ev-modal-tab:hover[b-gvtaoq9l8q] { background: #f3f4f6; }
.ev-modal-tab.active[b-gvtaoq9l8q] {
    background: color-mix(in srgb, var(--brand-teal) 12%, transparent);
    color: var(--brand-teal-deep, #2C6D6F);
    font-weight: 600;
}

.ev-modal-tab span[b-gvtaoq9l8q] { font-size: 18px; }

.ev-modal-body[b-gvtaoq9l8q] {
    padding: 18px 24px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.ev-modal-dropzone[b-gvtaoq9l8q] {
    position: relative;
    border: 2px dashed var(--border-soft);
    border-radius: 10px;
    padding: 32px 16px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    transition: border-color 0.15s;
}

.ev-modal-dropzone:hover[b-gvtaoq9l8q] {
    border-color: var(--brand-teal);
}

.ev-modal-dropzone span.material-symbols-rounded[b-gvtaoq9l8q] {
    font-size: 36px;
    color: var(--brand-teal);
}

.ev-modal-dropzone-text[b-gvtaoq9l8q] {
    font-size: 13px;
    color: var(--text-muted);
}

.ev-modal-file-input[b-gvtaoq9l8q] {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
}

.ev-modal-field[b-gvtaoq9l8q] {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.ev-modal-field label[b-gvtaoq9l8q] {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
}

.ev-modal-field input[b-gvtaoq9l8q],
.ev-modal-field select[b-gvtaoq9l8q],
.ev-modal-field textarea[b-gvtaoq9l8q] {
    padding: 9px 12px;
    border: 1px solid var(--border-soft);
    border-radius: 8px;
    font-size: 13px;
    color: var(--text-primary);
    outline: none;
    transition: border-color 0.15s;
}

.ev-modal-field input:focus[b-gvtaoq9l8q],
.ev-modal-field select:focus[b-gvtaoq9l8q],
.ev-modal-field textarea:focus[b-gvtaoq9l8q] {
    border-color: var(--brand-teal);
}

.ev-modal-nota-text[b-gvtaoq9l8q] {
    font-family: 'Caveat', cursive;
    font-size: 18px;
    min-height: 100px;
    resize: vertical;
}

.ev-modal-colors[b-gvtaoq9l8q] {
    display: flex;
    gap: 8px;
}

.ev-modal-color-btn[b-gvtaoq9l8q] {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: 2px solid transparent;
    cursor: pointer;
    transition: border-color 0.15s, transform 0.15s;
}

.ev-modal-color-btn:hover[b-gvtaoq9l8q] { transform: scale(1.15); }
.ev-modal-color-btn.active[b-gvtaoq9l8q] { border-color: var(--text-primary); }

.ev-modal-color--amarillo[b-gvtaoq9l8q] { background: var(--note-yellow, #FFF8DC); }
.ev-modal-color--rosa[b-gvtaoq9l8q] { background: var(--note-pink, #FCE8EA); }
.ev-modal-color--menta[b-gvtaoq9l8q] { background: var(--note-mint, #E5F5EC); }
.ev-modal-color--cielo[b-gvtaoq9l8q] { background: var(--note-sky, #E5F1F8); }

.ev-modal-toggle-field label[b-gvtaoq9l8q] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    cursor: pointer;
}

.ev-modal-footer[b-gvtaoq9l8q] {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 14px 24px 18px;
    border-top: 1px solid var(--border-soft);
}

.ev-modal-btn-cancel[b-gvtaoq9l8q] {
    padding: 9px 16px;
    border: 1px solid var(--border-soft);
    border-radius: 8px;
    background: #fff;
    font-size: 13px;
    cursor: pointer;
    color: var(--text-secondary);
}

.ev-modal-btn-submit[b-gvtaoq9l8q] {
    padding: 9px 18px;
    border: none;
    border-radius: 8px;
    background: var(--brand-teal);
    color: var(--text-primary);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 6px;
    transition: background 0.15s;
}

.ev-modal-btn-submit:hover:not(:disabled)[b-gvtaoq9l8q] { background: var(--brand-teal-dark); }
.ev-modal-btn-submit:disabled[b-gvtaoq9l8q] { opacity: 0.5; cursor: not-allowed; }
.ev-modal-btn-submit span[b-gvtaoq9l8q] { font-size: 18px; }

.ev-spin[b-gvtaoq9l8q] {
    animation: ev-spin-anim-b-gvtaoq9l8q 1s linear infinite;
}

@keyframes ev-spin-anim-b-gvtaoq9l8q {
    to { transform: rotate(360deg); }
}
/* /Components/Proyectos/TabCanal.razor.rz.scp.css */
.tab-canal-empty[b-b07imhw1g8] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 64px 24px;
    text-align: center;
    color: var(--text-muted);
}

.tab-canal-empty .material-symbols-rounded[b-b07imhw1g8] {
    font-size: 48px;
    margin-bottom: 16px;
    opacity: 0.5;
}

.tab-canal-empty h3[b-b07imhw1g8] {
    font-size: 16px;
    font-weight: 600;
    color: var(--text-secondary);
    margin-bottom: 6px;
}

.tab-canal-empty p[b-b07imhw1g8] {
    font-size: 13px;
    color: var(--text-muted);
}
/* /Components/Proyectos/TabEvidencias.razor.rz.scp.css */
.te-loading[b-1ct1vamhoe] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 32px 20px;
    color: var(--text-muted);
    font-size: 14px;
}

.te-spin[b-1ct1vamhoe] {
    animation: te-spin-anim-b-1ct1vamhoe 1s linear infinite;
}

@keyframes te-spin-anim-b-1ct1vamhoe {
    to { transform: rotate(360deg); }
}

/* Metrics row */
.te-metrics[b-1ct1vamhoe] {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 20px;
}

.te-chip[b-1ct1vamhoe] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    background: #f8f9fa;
    border-radius: 10px;
    border: 1px solid var(--border-soft);
}

.te-chip span.material-symbols-rounded[b-1ct1vamhoe] {
    font-size: 18px;
    color: var(--brand-teal);
}

.te-chip-value[b-1ct1vamhoe] {
    font-size: 15px;
    font-weight: 700;
    color: var(--text-primary);
}

.te-chip-label[b-1ct1vamhoe] {
    font-size: 12px;
    color: var(--text-muted);
}

/* Toolbar */
.te-toolbar[b-1ct1vamhoe] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 18px;
    flex-wrap: wrap;
}

.te-filters[b-1ct1vamhoe] {
    display: flex;
    gap: 4px;
}

.te-filter[b-1ct1vamhoe] {
    padding: 6px 12px;
    border: 1px solid var(--border-soft);
    border-radius: 20px;
    background: #fff;
    font-size: 12px;
    color: var(--text-secondary);
    cursor: pointer;
    transition: all 0.15s;
}

.te-filter:hover[b-1ct1vamhoe] {
    border-color: var(--brand-teal);
}

.te-filter.active[b-1ct1vamhoe] {
    background: var(--brand-teal);
    border-color: var(--brand-teal);
    color: var(--text-primary);
    font-weight: 600;
}

.te-search[b-1ct1vamhoe] {
    flex: 1;
    min-width: 160px;
    max-width: 260px;
    padding: 7px 12px;
    border: 1px solid var(--border-soft);
    border-radius: 8px;
    font-size: 13px;
    outline: none;
    transition: border-color 0.15s;
}

.te-search:focus[b-1ct1vamhoe] {
    border-color: var(--brand-teal);
}

.te-actions[b-1ct1vamhoe] {
    display: flex;
    gap: 8px;
    margin-left: auto;
}

.te-btn-presentacion[b-1ct1vamhoe] {
    padding: 7px 10px;
    border: 1px solid var(--border-soft);
    border-radius: 8px;
    background: #fff;
    cursor: pointer;
    display: flex;
    align-items: center;
}

.te-btn-presentacion span[b-1ct1vamhoe] {
    font-size: 20px;
    color: var(--text-secondary);
}

.te-btn-presentacion:hover[b-1ct1vamhoe] {
    border-color: var(--brand-teal);
}

.te-btn-subir[b-1ct1vamhoe] {
    padding: 7px 14px;
    border: none;
    border-radius: 8px;
    background: var(--brand-teal);
    color: var(--text-primary);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 4px;
    transition: background 0.15s;
}

.te-btn-subir:hover[b-1ct1vamhoe] {
    background: var(--brand-teal-dark);
}

.te-btn-subir span[b-1ct1vamhoe] {
    font-size: 18px;
}

/* Gallery */
.te-gallery[b-1ct1vamhoe] {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.te-gallery-group-title[b-1ct1vamhoe] {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-secondary);
    margin-bottom: 10px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.te-gallery-grid[b-1ct1vamhoe] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 12px;
}

/* Empty state */
.te-empty[b-1ct1vamhoe] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 48px 20px;
    color: var(--text-muted);
    font-size: 14px;
}

.te-empty span.material-symbols-rounded[b-1ct1vamhoe] {
    font-size: 40px;
    opacity: 0.5;
}
/* /Components/Proyectos/TabIntegrantes.razor.rz.scp.css */
.ti-loading[b-0azmz9hc2x] {
    display: flex;
    align-items: center;
    gap: 10px;
    justify-content: center;
    padding: 48px 24px;
    color: var(--text-secondary);
    font-size: 14px;
}

.ti-spin[b-0azmz9hc2x] {
    animation: spin-b-0azmz9hc2x 1s linear infinite;
}

@keyframes spin-b-0azmz9hc2x { to { transform: rotate(360deg); } }

.ti-toolbar[b-0azmz9hc2x] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
}

.ti-search[b-0azmz9hc2x] {
    flex: 1;
    max-width: 320px;
    padding: 8px 12px 8px 36px;
    border: 1px solid var(--border-med);
    border-radius: 9px;
    background: #FAF7F1;
    font-family: inherit;
    font-size: 13px;
    color: var(--text-primary);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%2360646C' viewBox='0 0 16 16'%3E%3Cpath d='M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001c.03.04.062.078.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1.007 1.007 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: 12px center;
}

.ti-search:focus[b-0azmz9hc2x] {
    outline: none;
    border-color: var(--brand-teal);
    box-shadow: 0 0 0 3px rgba(110, 198, 200, 0.15);
}

.ti-filter-chips[b-0azmz9hc2x] {
    display: flex;
    gap: 6px;
}

.ti-chip[b-0azmz9hc2x] {
    padding: 6px 12px;
    border: 1px solid var(--border-med);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 500;
    color: var(--text-secondary);
    background: #FFFFFF;
    cursor: pointer;
}

.ti-chip.active[b-0azmz9hc2x] {
    background: #3A3D42;
    color: white;
    border-color: #3A3D42;
}

.ti-spacer[b-0azmz9hc2x] { flex: 1; }

.ti-btn-primary[b-0azmz9hc2x] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    background: #3A3D42;
    color: white;
    border: none;
    border-radius: 9px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
}

.ti-btn-primary:hover[b-0azmz9hc2x] { background: #2A2D32; }

.ti-section-title[b-0azmz9hc2x] {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
    padding: 12px 4px 8px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.ti-count[b-0azmz9hc2x] {
    background: var(--cream);
    color: var(--text-secondary);
    padding: 1px 7px;
    border-radius: 999px;
    font-size: 10px;
}

.ti-empty[b-0azmz9hc2x] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 48px 24px;
    color: var(--text-muted);
}

.ti-empty .material-symbols-rounded[b-0azmz9hc2x] { font-size: 40px; }

/* â”€â”€ Toast local â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.ti-toast[b-0azmz9hc2x] {
    position: fixed;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--text-primary);
    color: #fff;
    padding: 10px 18px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 600;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
    z-index: 1000;
    animation: ti-toast-in-b-0azmz9hc2x 0.2s ease;
}

.ti-toast .material-symbols-rounded[b-0azmz9hc2x] {
    font-size: 18px;
    color: var(--brand-teal);
}

@keyframes ti-toast-in-b-0azmz9hc2x {
    from { opacity: 0; transform: translate(-50%, 8px); }
    to   { opacity: 1; transform: translate(-50%, 0); }
}
/* /Components/Proyectos/WorkloadRing.razor.rz.scp.css */
.wlr-ring[b-tlozm5vjpc] {
    transform: rotate(-90deg);
}

.wlr-ring circle[b-tlozm5vjpc] {
    fill: none;
    stroke-width: 3;
}

.wlr-bg[b-tlozm5vjpc] { stroke: rgba(0,0,0,0.06); }
.wlr-fill[b-tlozm5vjpc] { stroke-linecap: round; }
.wlr-fill.load-light[b-tlozm5vjpc] { stroke: var(--pz-green); }
.wlr-fill.load-balanced[b-tlozm5vjpc] { stroke: var(--warning); }
.wlr-fill.load-heavy[b-tlozm5vjpc] { stroke: var(--danger); }
/* /Components/Reconocimientos/CierreDeClase.razor.rz.scp.css */
/* Cierre de clase: muro a pantalla completa dentro de .pp-canvas (16:9), bajo la barra pp-ui. */
.cc-root[b-i85070z6y2] {
    position: absolute;
    inset: 0;
    z-index: 940;
    container-type: size;
    background: radial-gradient(ellipse at 50% 0%, #FFF7E0 0%, #FBFAF6 55%);
    display: flex;
    flex-direction: column;
    gap: 2.6cqh;
    padding: 4cqh 4cqw;
    color: var(--carbon-1);
    animation: cc-in-b-i85070z6y2 .35s ease;
}

@keyframes cc-in-b-i85070z6y2 { from { opacity: 0; } }

.cc-canvas[b-i85070z6y2] { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }

.cc-head[b-i85070z6y2] { position: relative; display: flex; align-items: flex-end; justify-content: space-between; gap: 2cqw; }

    .cc-head small[b-i85070z6y2] {
        display: block;
        font-family: var(--font-sans);
        font-size: 2.4cqh;
        font-weight: 700;
        letter-spacing: .2em;
        text-transform: uppercase;
        color: var(--brand-teal-dark);
    }

    .cc-head h2[b-i85070z6y2] {
        margin: 0;
        font-family: "Bricolage Grotesque", var(--font-sans);
        font-weight: 800;
        font-size: 8cqh;
        line-height: 1;
        letter-spacing: -.02em;
    }

        .cc-head h2 em[b-i85070z6y2] { font-style: normal; color: #8A5510; /* = var(--warning-ink) */ }

.cc-x[b-i85070z6y2] {
    border: 0;
    background: #EFECE3;
    color: var(--carbon-1);
    border-radius: 999px;
    padding: 1cqh 2cqh;
    font-family: var(--font-sans);
    font-weight: 700;
    font-size: 2.4cqh;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: .8cqh;
}

    .cc-x .material-symbols-rounded[b-i85070z6y2] { font-size: 3cqh; }

.cc-grid[b-i85070z6y2] {
    position: relative;
    flex: 1;
    display: grid;
    grid-template-columns: repeat(var(--cols, 4), minmax(0, 1fr));
    gap: 2.4cqh 2cqw;
    align-content: center;
}

.cc-card[b-i85070z6y2] {
    background: var(--bg-panel);
    border-radius: 3cqh;
    box-shadow: 0 1.6cqh 4cqh -2cqh rgba(60, 40, 0, .25);
    padding: 2.4cqh 1.4cqw 2.6cqh;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1cqh;
    text-align: center;
    min-width: 0;
    opacity: 0;
    transform: translateY(6cqh) scale(.6) rotate(var(--rot, 0deg));
    animation: cc-card-in-b-i85070z6y2 .7s cubic-bezier(.2, 1.5, .4, 1) forwards;
    animation-delay: calc(var(--i) * 260ms + 300ms);
}

@keyframes cc-card-in-b-i85070z6y2 { to { opacity: 1; transform: translateY(0) scale(1) rotate(var(--rot, 0deg)); } }

.cc-stk[b-i85070z6y2] { display: flex; justify-content: center; height: var(--stk, 18cqh); }
    .cc-stk img[b-i85070z6y2] { height: var(--stk, 18cqh); width: var(--stk, 18cqh); object-fit: contain; }
.cc-dos img[b-i85070z6y2] { height: calc(var(--stk, 18cqh) * .8); width: calc(var(--stk, 18cqh) * .8); align-self: center; }

.cc-card b[b-i85070z6y2] {
    font-family: "Bricolage Grotesque", var(--font-sans);
    font-weight: 800;
    font-size: var(--nom, 4.4cqh);
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: -.01em;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cc-card span[b-i85070z6y2] { font-family: var(--font-sans); font-size: 2.2cqh; color: var(--text-muted); }

.cc-vacio[b-i85070z6y2] {
    flex: 1;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 2cqh;
    color: var(--text-muted);
    font-size: 3cqh;
}

    .cc-vacio .material-symbols-rounded[b-i85070z6y2] { font-size: 12cqh; color: #E8D9B5; font-variation-settings: 'FILL' 1; }

@media (prefers-reduced-motion: reduce) {
    .cc-card[b-i85070z6y2] { animation: cc-aparece-b-i85070z6y2 .3s forwards; animation-delay: 0s; }
    @keyframes cc-aparece-b-i85070z6y2 { to { opacity: 1; transform: none; } }
}
/* /Components/Reconocimientos/CoberturaPanel.razor.rz.scp.css */
/* CoberturaPanel — estilos del cajon privado "Reconocer al grupo".
   Sistema de diseno: docs/agentes/diseno/SISTEMA-DISENO.md
   GATE-7: privado del docente, jamas proyectado. */

.cob-overlay[b-ceuup6rnrx] {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.35);
    z-index: 1090;
}

.cob-drawer[b-ceuup6rnrx] {
    position: fixed;
    top: 0;
    right: -440px;
    width: 420px;
    max-width: 100vw;
    height: 100dvh;
    background: #fff;
    box-shadow: -4px 0 24px rgba(0,0,0,.18);
    z-index: 1091;
    display: flex;
    flex-direction: column;
    transition: right .22s cubic-bezier(.4,0,.2,1);
    overflow: hidden;
}

.cob-drawer-open[b-ceuup6rnrx] {
    right: 0;
}

/* Header */
.cob-header[b-ceuup6rnrx] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px;
    border-bottom: 1px solid #eee;
    background: #1E2126;
    color: #fff;
    flex-shrink: 0;
}

.cob-header-left[b-ceuup6rnrx] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.cob-header-icon[b-ceuup6rnrx] {
    font-size: 24px;
    color: #CFB87C;
}

.cob-header-titulo[b-ceuup6rnrx] {
    font-family: 'Figtree', sans-serif;
    font-weight: 600;
    font-size: 15px;
}

.cob-header-sub[b-ceuup6rnrx] {
    font-size: 12px;
    color: rgba(255,255,255,.7);
}

.cob-close[b-ceuup6rnrx] {
    background: none;
    border: none;
    cursor: pointer;
    color: #fff;
    padding: 4px;
    border-radius: 4px;
    display: flex;
    align-items: center;
}

.cob-close:hover[b-ceuup6rnrx] {
    background: rgba(255,255,255,.15);
}

/* Body */
.cob-body[b-ceuup6rnrx] {
    flex: 1;
    overflow-y: auto;
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 0;
}

/* Loading */
.cob-loading[b-ceuup6rnrx] {
    display: flex;
    justify-content: center;
    padding: 40px 0;
    color: #888;
    font-size: 32px;
}

/* Secciones */
.cob-section[b-ceuup6rnrx] {
    padding: 14px 0;
    border-bottom: 1px solid #f0f0f0;
}

.cob-titulo-seccion[b-ceuup6rnrx] {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #888;
    font-family: 'Figtree', sans-serif;
    margin-bottom: 10px;
}

/* Cobertura completa */
.cob-completo[b-ceuup6rnrx] {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #2E7D32;
    font-size: 14px;
    font-family: 'Figtree', sans-serif;
    font-weight: 500;
}

.cob-completo-icon[b-ceuup6rnrx] {
    font-size: 22px;
    color: #43A047;
}

/* Stats de cobertura */
.cob-stats[b-ceuup6rnrx] {
    margin-bottom: 8px;
}

.cob-conteo[b-ceuup6rnrx] {
    font-size: 15px;
    font-weight: 600;
    color: #222;
    font-family: 'Figtree', sans-serif;
}

.cob-barra-wrap[b-ceuup6rnrx] {
    margin-bottom: 6px;
}

.cob-barra-fondo[b-ceuup6rnrx] {
    height: 6px;
    background: #eee;
    border-radius: 3px;
    overflow: hidden;
}

.cob-barra-prog[b-ceuup6rnrx] {
    height: 100%;
    background: #4BA8AA;
    border-radius: 3px;
    transition: width .4s ease;
}

.cob-por-alguien[b-ceuup6rnrx] {
    font-size: 12px;
    color: #777;
}

/* Sugerencias de Avance */
.cob-sug-item[b-ceuup6rnrx] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 8px 0;
    border-bottom: 1px solid #f5f5f5;
}

.cob-sug-item:last-child[b-ceuup6rnrx] {
    border-bottom: none;
}

.cob-sug-icon[b-ceuup6rnrx] {
    font-size: 20px;
    color: #1976D2;
    flex-shrink: 0;
    margin-top: 2px;
}

.cob-sug-info[b-ceuup6rnrx] {
    flex: 1;
    min-width: 0;
}

.cob-sug-nombre[b-ceuup6rnrx] {
    font-size: 13px;
    font-weight: 600;
    color: #222;
    font-family: 'Figtree', sans-serif;
}

.cob-sug-detalle[b-ceuup6rnrx] {
    font-size: 12px;
    color: #555;
    line-height: 1.4;
}

/* Pendientes */
.cob-pendiente-item[b-ceuup6rnrx] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 0;
    border-bottom: 1px solid #f5f5f5;
}

.cob-pendiente-item:last-child[b-ceuup6rnrx] {
    border-bottom: none;
}

.cob-pendiente-info[b-ceuup6rnrx] {
    flex: 1;
    min-width: 0;
}

.cob-pendiente-nombre[b-ceuup6rnrx] {
    font-size: 13px;
    font-weight: 500;
    color: #222;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cob-pendiente-ultimo[b-ceuup6rnrx] {
    font-size: 11px;
    color: #999;
}

/* Boton Reconocer */
.cob-btn-reconocer[b-ceuup6rnrx] {
    background: #4BA8AA;
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 5px 10px;
    font-size: 12px;
    font-family: 'Figtree', sans-serif;
    cursor: pointer;
    white-space: nowrap;
    flex-shrink: 0;
    transition: background .15s;
}

.cob-btn-reconocer:hover[b-ceuup6rnrx] {
    background: #3A8E90;
}

/* Vacio */
.cob-vacio[b-ceuup6rnrx] {
    font-size: 13px;
    color: #888;
    line-height: 1.4;
    margin: 0;
}

/* Footer */
.cob-footer[b-ceuup6rnrx] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    border-top: 1px solid #eee;
    background: #FAFAFA;
    font-size: 12px;
    color: #777;
    flex-shrink: 0;
}

.cob-footer-icon[b-ceuup6rnrx] {
    font-size: 16px;
    color: #aaa;
    flex-shrink: 0;
}

/* Mobile */
@media (max-width: 480px) {
    .cob-drawer[b-ceuup6rnrx] {
        width: 100vw;
    }
}
/* /Components/Reconocimientos/MotivoReconocimiento.razor.rz.scp.css */
/* MotivoReconocimiento · chips compactos (28 px / 11.5 / padding 9, notas 4b). Ratios WCAG calculados. */
.mo[b-p1d21fxfou] { display: flex; flex-direction: column; gap: 8px; }
.mo-lbl[b-p1d21fxfou] { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.mo-lbl h3[b-p1d21fxfou] { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--text-secondary); margin: 0; } /* 6.31 */
.mo-link[b-p1d21fxfou] { background: none; border: 0; padding: 4px 2px; font: inherit; font-size: 12px; font-weight: 700; color: var(--brand-teal-deep); cursor: pointer; } /* 5.96 */
.mo-chips[b-p1d21fxfou] { display: flex; gap: 6px; flex-wrap: wrap; }
.mo-chip[b-p1d21fxfou] { min-height: 28px; padding: 0 9px; border-radius: 999px; border: 1px solid var(--border-med); background: var(--bg-panel); color: var(--text-secondary);
    font: inherit; font-size: 11.5px; font-weight: 600; display: inline-flex; align-items: center; gap: 4px; cursor: pointer; text-align: left; } /* 6.31 */
.mo-chip.on[b-p1d21fxfou] { background: var(--brand-teal-primary); border-color: var(--brand-teal-primary); color: var(--text-primary); font-weight: 700; } /* 8.60 */
.mo-chip.mo-escribir[b-p1d21fxfou] { border-style: dashed; }
.mo-chip:disabled[b-p1d21fxfou] { cursor: default; opacity: .55; }
.mo-chip .msr[b-p1d21fxfou] { font-size: 14px; }
.mo-campo[b-p1d21fxfou] { height: 40px; border-radius: 10px; background: var(--bg-panel); border: 1.5px solid var(--border-med); display: flex; align-items: center; gap: 6px; padding: 0 12px; }
.mo-campo:focus-within[b-p1d21fxfou] { border-color: var(--brand-teal-deep); box-shadow: 0 0 0 3px rgba(44, 109, 111, .18); }
.mo-campo input[b-p1d21fxfou] { flex: 1; min-width: 0; border: 0; outline: none; background: transparent; font: inherit; font-size: 13.5px; color: var(--text-primary); }
.mo-cnt[b-p1d21fxfou] { font-size: 11px; color: var(--text-muted); font-variant-numeric: tabular-nums; } /* 5.94 */
.mo-campo.mal[b-p1d21fxfou] { border-color: var(--danger); box-shadow: 0 0 0 3px rgba(163, 45, 45, .14); }
.mo-campo.mal .mo-cnt[b-p1d21fxfou] { color: var(--danger); } /* 7.07 */
.mo-err[b-p1d21fxfou] { margin: 0; font-size: 11.5px; color: var(--danger); font-weight: 600; display: flex; align-items: center; gap: 4px; } /* 7.07 */
.mo-err .msr[b-p1d21fxfou] { font-size: 14px; }
.mo button:focus-visible[b-p1d21fxfou] { outline: none; box-shadow: 0 0 0 2px var(--bg-panel), 0 0 0 4px var(--brand-teal-deep); }
/* /Components/Reconocimientos/NivelBadge.razor.rz.scp.css */
/* NivelBadge — estilos del componente aislado.
   Fallback CSS: circulo con contraste AA sobre crema (#F5F5F5) y blanco (#FFFFFF).
   Los PNG de 512 px vienen de Codex (wwwroot/img/niveles/); hasta entonces el fallback es la UI real.
   Spec: docs/spec-reconocimientos-v1.1.md §5.3, §5.4.
*/

/* ---- Contenedor del badge ---- */

.nivel-badge[b-uc5mxgcltj] {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}

/* ---- Imagen PNG (cuando llega de Codex) ---- */

.nivel-badge__img[b-uc5mxgcltj] {
    display: block;
    object-fit: contain;
}

/* ---- Fallback CSS: circulo con inicial ---- */

.nivel-badge__fallback[b-uc5mxgcltj] {
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-weight: 700;
    line-height: 1;
    user-select: none;
    flex-shrink: 0;
}

.nivel-badge__inicial[b-uc5mxgcltj] {
    font-weight: 700;
    color: inherit;
    line-height: 1;
}

/* Colores por nivel (contraste AA verificado: texto blanco sobre cada color)
   Bronce  #7B4B20 — ratio ~7.5:1
   Plata   #5A6472 — ratio ~5.3:1
   Oro     #92400E — ratio ~6.3:1
   Diamante #1D4ED8 — ratio ~6.2:1
*/

.nivel-badge__fallback--bronce[b-uc5mxgcltj] {
    background-color: #7B4B20;
    color: #FFFFFF;
}

.nivel-badge__fallback--plata[b-uc5mxgcltj] {
    background-color: #5A6472;
    color: #FFFFFF;
}

.nivel-badge__fallback--oro[b-uc5mxgcltj] {
    background-color: #92400E;
    color: #FFFFFF;
}

.nivel-badge__fallback--diamante[b-uc5mxgcltj] {
    background-color: #1D4ED8;
    color: #FFFFFF;
}

/* Sin nivel: circulo gris neutro, sin texto */

.nivel-badge__fallback--sin-nivel[b-uc5mxgcltj] {
    background-color: #CBD5E0;
    color: #4A5568;
    border: 2px dashed #A0AEC0;
}

.nivel-badge__sin-nivel-icon[b-uc5mxgcltj] {
    font-size: inherit;
    opacity: 0.6;
}

/* ---- Puntos opcionales ---- */

.nivel-badge__puntos[b-uc5mxgcltj] {
    font-size: 0.75rem;
    color: var(--color-text-light, #666666);
    font-weight: 500;
    line-height: 1;
}

/* ---- Tamaños ---- */

/* sm: 24 px */
.nivel-badge-sm .nivel-badge__img[b-uc5mxgcltj],
.nivel-badge-sm .nivel-badge__fallback[b-uc5mxgcltj] {
    width: 24px;
    height: 24px;
    font-size: 0.7rem;
}

.nivel-badge-sm .nivel-badge__puntos[b-uc5mxgcltj] {
    font-size: 0.65rem;
}

/* md: 44 px (default) */
.nivel-badge-md .nivel-badge__img[b-uc5mxgcltj],
.nivel-badge-md .nivel-badge__fallback[b-uc5mxgcltj] {
    width: 44px;
    height: 44px;
    font-size: 1rem;
}

/* lg: 72 px */
.nivel-badge-lg .nivel-badge__img[b-uc5mxgcltj],
.nivel-badge-lg .nivel-badge__fallback[b-uc5mxgcltj] {
    width: 72px;
    height: 72px;
    font-size: 1.75rem;
}

.nivel-badge-lg .nivel-badge__puntos[b-uc5mxgcltj] {
    font-size: 0.875rem;
}
/* /Components/Reconocimientos/ReconocerComposer.razor.rz.scp.css */
/* ReconocerComposer · Reconocer v2 «Exprés en clase». Solo tokens de wwwroot/css/tokens.css (+ --rc-*).
   Cada par texto/fondo lleva su ratio WCAG CALCULADO (LEC-G007): 4.5:1 = texto normal; 3:1 = texto grande y UI. */
.rx[b-nx8h93md31] { font-family: var(--font-sans); color: var(--text-primary); }
.rx button[b-nx8h93md31] { font-family: inherit; }
.rx button:focus-visible[b-nx8h93md31], .rx input:focus-visible[b-nx8h93md31] { outline: none; box-shadow: 0 0 0 2px var(--bg-panel), 0 0 0 4px var(--brand-teal-deep); }

/* ---------- Drawer: overlay fijo; la página detrás NO se re-diagrama (notas, patrón 8) ---------- */
.rx-scrim[b-nx8h93md31] { position: fixed; inset: 0; background: var(--rc-scrim); backdrop-filter: blur(1.5px); z-index: var(--z-overlay); }
.rx-drawer[b-nx8h93md31] { position: fixed; top: 0; right: 0; bottom: 0; width: min(460px, 100vw); background: var(--bg-panel); z-index: calc(var(--z-overlay) + 1);
    display: flex; flex-direction: column; box-shadow: -16px 0 40px rgba(26, 28, 31, .18); animation: rx-entra-b-nx8h93md31 220ms var(--ease) both; outline: none; }
@keyframes rx-entra-b-nx8h93md31 { from { transform: translateX(24px); opacity: 0; } to { transform: none; opacity: 1; } }

/* Encabezado del drawer: 68 px (R2) */
.rx-head[b-nx8h93md31] { height: 68px; flex: 0 0 68px; box-sizing: border-box; display: flex; align-items: center; gap: 12px; padding: 14px 20px;
    border-bottom: 1px solid var(--border-soft); background: var(--bg-cream); }
.rx-head-ico[b-nx8h93md31], .rx-ph-ico[b-nx8h93md31] { display: grid; place-items: center; border-radius: 12px; background: var(--gold-bg); color: var(--gold-text); flex: 0 0 auto; } /* 6.37 */
.rx-head-ico[b-nx8h93md31] { width: 40px; height: 40px; font-size: 22px; }
.rx-head-t[b-nx8h93md31] { flex: 1; min-width: 0; }
.rx-head-t h2[b-nx8h93md31] { font-family: var(--font-serif); font-size: 22px; font-weight: 600; letter-spacing: -.4px; line-height: 1.1; margin: 0; }
.rx-head-s[b-nx8h93md31] { margin: 3px 0 0; font-size: 12.5px; color: var(--text-secondary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } /* 5.90 sobre bg-cream */
.rx-x[b-nx8h93md31] { width: 36px; height: 36px; border-radius: 10px; border: 1px solid var(--border-soft); background: var(--bg-panel); color: var(--text-secondary);
    display: grid; place-items: center; cursor: pointer; flex: 0 0 auto; }
.rx-cupo[b-nx8h93md31] { font-weight: 700; color: var(--text-muted); } /* 5.55 sobre bg-cream */
.rx-cupo.bajo[b-nx8h93md31] { background: var(--gold-bg); color: var(--gold-text); padding: 2px 8px; border-radius: 999px; } /* 6.37 */

/* Cuerpo del drawer: el ÚNICO scroll del drawer; sus hijos nunca se aplastan */
.rx-drawer .rx-body[b-nx8h93md31] { flex: 1; min-height: 0; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; scrollbar-gutter: stable;
    padding: 16px 20px; display: flex; flex-direction: column; gap: 12px; }
.rx-drawer .rx-body > *[b-nx8h93md31] { flex-shrink: 0; }
.rx-drawer .rx-body[b-nx8h93md31]::-webkit-scrollbar { width: 6px; }
.rx-drawer .rx-body[b-nx8h93md31]::-webkit-scrollbar-thumb { background: rgba(26, 28, 31, .22); border-radius: 3px; }
.rx-drawer .rx-avisos > *[b-nx8h93md31] { margin: 10px 20px 0; }

/* ---------- Página (directivo / deep-link): encabezado <= 96 px (R2) ---------- */
.rx-pagina[b-nx8h93md31] { max-width: 1200px; margin: 0 auto; padding: 22px 32px 24px; }
.rx-bc[b-nx8h93md31] { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--text-muted); margin-bottom: 12px; } /* 5.22 lienzo */
.rx-bc a[b-nx8h93md31] { color: var(--text-muted); text-decoration: none; }
.rx-bc .cur[b-nx8h93md31] { color: var(--text-primary); font-weight: 600; }
.rx-ph[b-nx8h93md31] { display: flex; align-items: center; gap: 14px; max-height: 96px; overflow: hidden; margin-bottom: 12px; }
.rx-ph-ico[b-nx8h93md31] { width: 44px; height: 44px; font-size: 24px; }
.rx-ph-t[b-nx8h93md31] { flex: 1; min-width: 0; }
.rx-ph-t h1[b-nx8h93md31] { font-family: var(--font-serif); font-size: 28px; font-weight: 600; letter-spacing: -.5px; line-height: 1.1; margin: 0; }
.rx-ph-s[b-nx8h93md31] { margin: 4px 0 0; font-size: 13px; color: var(--text-secondary); display: flex; align-items: center; gap: 10px; flex-wrap: wrap; } /* 5.54 lienzo */
.rx-ph-r[b-nx8h93md31] { display: flex; align-items: center; gap: 10px; }
.rx-turno[b-nx8h93md31] { border: 0; margin: 0 0 12px; padding: 0; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; min-width: 0; }
.rx-turno legend[b-nx8h93md31] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.rx-pagina .rx-avisos > *[b-nx8h93md31] { margin: 0 0 12px; }
.rx-pagina .rx-body[b-nx8h93md31] { display: flex; flex-direction: column; gap: 16px; }
.rx-pagina .rx-body.rx-cols[b-nx8h93md31] { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); grid-template-areas: "quien sello" "quien motivo" "quien hist"; align-items: start; }
.rx-cols .rx-quien[b-nx8h93md31] { grid-area: quien; }
.rx-cols .rx-sello[b-nx8h93md31] { grid-area: sello; }
.rx-cols .rx-motivo[b-nx8h93md31] { grid-area: motivo; }
.rx-cols .rx-hist[b-nx8h93md31] { grid-area: hist; }
.rx-pagina .rx-quien[b-nx8h93md31], .rx-pagina .rx-sello[b-nx8h93md31], .rx-pagina .rx-motivo[b-nx8h93md31], .rx-pagina .rx-hist[b-nx8h93md31] { background: var(--bg-panel); border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl); padding: 16px 20px; box-shadow: var(--shadow-sm); }
@media (max-width: 1023px) {
    .rx-pagina[b-nx8h93md31] { padding: 16px 16px 24px; }
    .rx-ph[b-nx8h93md31] { max-height: none; flex-wrap: wrap; }
    .rx-pagina .rx-body.rx-cols[b-nx8h93md31] { grid-template-columns: minmax(0, 1fr); grid-template-areas: "sello" "quien" "motivo" "hist"; }
}

/* ---------- Secciones ---------- */
.rx-sello[b-nx8h93md31], .rx-quien[b-nx8h93md31], .rx-motivo[b-nx8h93md31], .rx-hist[b-nx8h93md31] { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.rx-lbl[b-nx8h93md31] { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.rx-lbl h3[b-nx8h93md31] { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--text-secondary); margin: 0; } /* 6.31 blanco */
.rx-link[b-nx8h93md31] { background: none; border: 0; padding: 4px 2px; font-size: 12px; font-weight: 700; color: var(--brand-teal-deep); cursor: pointer; } /* 5.96 blanco */
.rx-link:disabled[b-nx8h93md31] { color: var(--text-muted); cursor: default; } /* 5.94 */
.rx-muted[b-nx8h93md31] { margin: 0; font-size: 12px; color: var(--text-secondary); line-height: 1.4; } /* 6.31 */
.rx-alerta[b-nx8h93md31] { margin: 0; padding: 10px 12px; border-radius: 10px; background: var(--error-bg); color: var(--danger); font-size: 12.5px; font-weight: 600; } /* 6.46 */
.rx-aviso[b-nx8h93md31], .rx-nota[b-nx8h93md31] { margin: 0; padding: 8px 12px; border-radius: 10px; background: var(--warn-bg); color: var(--warning-ink); font-size: 12px; line-height: 1.35; } /* 5.77 */

/* Sello actual: pastilla con «Cambiar» siempre visible (R3, notas patrón 3) */
.rx-pill[b-nx8h93md31] { background: var(--bg-cream); border: 1px solid var(--border-soft); border-radius: 14px; padding: 6px 8px 6px 6px; display: flex; align-items: center; gap: 10px; }
.rx-pill img[b-nx8h93md31] { width: 40px; height: 40px; object-fit: contain; }
.rx-pill-t[b-nx8h93md31] { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.rx-pill-t em[b-nx8h93md31] { font-style: normal; font-size: 9.5px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--gold-text); } /* 6.63 sobre bg-cream */
.rx-pill-t b[b-nx8h93md31] { font-size: 13.5px; line-height: 1.15; }
.rx-pill-t small[b-nx8h93md31] { font-size: 11.5px; color: var(--text-secondary); } /* 5.90 */
.rx-cambiar[b-nx8h93md31] { display: inline-flex; align-items: center; gap: 4px; padding: 7px 10px; border-radius: 8px; border: 0; background: var(--bg-light-teal);
    color: var(--brand-teal-deep); font-size: 12px; font-weight: 700; cursor: pointer; } /* 5.31 */
.rx-cambiar .msr[b-nx8h93md31] { font-size: 14px; }

/* Alumnos: buscador, atajos y lista con scroll PROPIO acotado (R4, notas patrón 8) */
.rx-srch[b-nx8h93md31] { height: 40px; border-radius: 10px; background: var(--bg-cream); border: 1px solid var(--border-soft); display: flex; align-items: center; gap: 8px; padding: 0 12px; }
.rx-srch .msr[b-nx8h93md31] { font-size: 18px; color: var(--text-secondary); }
.rx-srch input[b-nx8h93md31] { flex: 1; min-width: 0; border: 0; outline: none; background: transparent; font: inherit; font-size: 13px; color: var(--text-primary); }
.rx-atajos[b-nx8h93md31] { display: flex; gap: 6px; flex-wrap: wrap; }
.rx-chip[b-nx8h93md31] { min-height: 32px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--border-med); background: var(--bg-panel); color: var(--text-secondary);
    font-size: 12.5px; font-weight: 600; display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; cursor: pointer; } /* 6.31 */
.rx-chip.on[b-nx8h93md31] { background: var(--brand-teal-primary); border-color: var(--brand-teal-primary); color: var(--text-primary); font-weight: 700; } /* 8.60 */
.rx-chip:disabled[b-nx8h93md31] { cursor: default; opacity: .55; }
.rx-chip .msr[b-nx8h93md31] { font-size: 14px; }
.rx-chip .n[b-nx8h93md31] { font-size: 11px; font-weight: 700; background: rgba(26, 28, 31, .08); padding: 1px 6px; border-radius: 8px; }
/* 7 filas de 40 px en página; 4 en el drawer para que motivo y vista previa sigan a la vista (notas 4b) */
.rx-lista-wrap[b-nx8h93md31] { position: relative; border: 1px solid var(--border-soft); border-radius: 12px; background: var(--bg-panel); max-height: 296px; overflow-y: auto; overscroll-behavior: contain; }
.rx-drawer .rx-lista-wrap[b-nx8h93md31] { max-height: 176px; }
.rx-lista[b-nx8h93md31] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 8px; padding: 6px 8px; }
.rx-alumno[b-nx8h93md31] { display: flex; align-items: center; gap: 8px; min-height: 40px; padding: 4px 8px; border-radius: 10px; border: 0; background: transparent;
    color: inherit; text-align: left; cursor: pointer; min-width: 0; }
.rx-alumno:hover:not(:disabled)[b-nx8h93md31] { background: var(--bg-cream); }
.rx-alumno.on[b-nx8h93md31] { background: var(--bg-light-teal); box-shadow: inset 0 0 0 1.5px var(--brand-teal-deep); } /* anillo 5.31 */
.rx-alumno:disabled[b-nx8h93md31] { cursor: default; }
.rx-alumno.hoy[b-nx8h93md31] { opacity: .6; }
.rx-lista.agotado .rx-alumno[b-nx8h93md31] { opacity: .45; }
.rx-ck[b-nx8h93md31] { width: 20px; height: 20px; border-radius: 6px; border: 1.5px solid var(--text-secondary); background: var(--bg-panel); display: grid; place-items: center;
    flex: 0 0 auto; color: var(--bg-panel); } /* borde 6.31: componente de UI >= 3:1 */
.rx-alumno.on .rx-ck[b-nx8h93md31] { background: var(--brand-teal-deep); border-color: var(--brand-teal-deep); } /* check blanco 5.96 */
.rx-ck .msr[b-nx8h93md31] { font-size: 14px; }
.rx-nm[b-nx8h93md31] { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.1; }
.rx-nm b[b-nx8h93md31] { font-size: 12px; letter-spacing: .2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rx-nm small[b-nx8h93md31] { font-size: 10px; font-weight: 600; color: var(--text-secondary); letter-spacing: .2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } /* 6.31 blanco / 5.63 light-teal */
.rx-hoy[b-nx8h93md31] { height: 18px; padding: 0 6px; border-radius: 9px; background: var(--gold-bg); color: var(--gold-text); font-size: 9.5px; font-weight: 700;
    display: inline-flex; align-items: center; gap: 3px; flex: 0 0 auto; } /* 6.37 */
.rx-hoy .msr[b-nx8h93md31] { font-size: 11px; }
.rx-vacio[b-nx8h93md31] { margin: 0; padding: 10px 12px; font-size: 12px; color: var(--text-secondary); }
.rx-mas[b-nx8h93md31] { position: sticky; bottom: 0; margin: 0; height: 40px; display: flex; align-items: flex-end; justify-content: center; padding-bottom: 5px;
    background: linear-gradient(rgba(255, 255, 255, 0), var(--bg-panel) 60%); font-size: 11px; font-weight: 700; color: var(--text-muted); pointer-events: none; } /* 5.94 */
@media (max-width: 479px) { .rx-lista[b-nx8h93md31] { grid-template-columns: minmax(0, 1fr); } }

/* Avatares: paleta de la casa --av-1..8 sembrada por IdAlumno (misma regla que Components/UI/Avatar); iniciales blancas 4.60-4.71 */
.rx-avatar[b-nx8h93md31] { width: 28px; height: 28px; border-radius: 50%; display: inline-grid; place-items: center; flex: 0 0 auto; color: var(--bg-panel); font-size: 10px;
    font-weight: 700; letter-spacing: .2px; background: linear-gradient(145deg, var(--f), var(--t)); }
.rx-c1[b-nx8h93md31] { --f: var(--av-1-from); --t: var(--av-1-to); }
.rx-c2[b-nx8h93md31] { --f: var(--av-2-from); --t: var(--av-2-to); }
.rx-c3[b-nx8h93md31] { --f: var(--av-3-from); --t: var(--av-3-to); }
.rx-c4[b-nx8h93md31] { --f: var(--av-4-from); --t: var(--av-4-to); }
.rx-c5[b-nx8h93md31] { --f: var(--av-5-from); --t: var(--av-5-to); }
.rx-c6[b-nx8h93md31] { --f: var(--av-6-from); --t: var(--av-6-to); }
.rx-c7[b-nx8h93md31] { --f: var(--av-7-from); --t: var(--av-7-to); }
.rx-c8[b-nx8h93md31] { --f: var(--av-8-from); --t: var(--av-8-to); }

/* ---------- Pie fijo (R5): solo con >= 1 elegido ---------- */
.rx-pie[b-nx8h93md31] { flex: 0 0 auto; display: flex; align-items: center; gap: 12px; padding: 12px 20px 14px; border-top: 1px solid var(--border-soft);
    background: var(--bg-panel); box-shadow: var(--rc-tray-shadow); }
.rx-pagina .rx-pie[b-nx8h93md31] { position: sticky; bottom: 0; margin-top: 16px; border: 1px solid var(--border-soft); border-radius: var(--radius-xl) var(--radius-xl) 0 0; z-index: 2; }
.rx-pie-c[b-nx8h93md31] { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.rx-pie-n[b-nx8h93md31] { display: flex; align-items: center; gap: 8px; min-width: 0; white-space: nowrap; }
.rx-pie-nombre[b-nx8h93md31] { font-size: 13px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; }
.rx-pie-cuenta[b-nx8h93md31] { font-family: var(--font-serif); font-size: 18px; font-weight: 600; font-variant-numeric: tabular-nums; }
.rx-stack[b-nx8h93md31] { display: inline-flex; align-items: center; }
.rx-av[b-nx8h93md31] { margin-left: -8px; padding: 0; border: 2px solid var(--bg-panel); cursor: pointer; }
.rx-av:first-child[b-nx8h93md31] { margin-left: 0; }
.rx-av:disabled[b-nx8h93md31] { cursor: default; }
.rx-mas-n[b-nx8h93md31] { width: 28px; height: 28px; margin-left: -8px; box-sizing: border-box; border-radius: 50%; border: 2px solid var(--bg-panel); background: var(--carbon-1);
    color: var(--bg-panel); font-size: 10px; font-weight: 700; display: grid; place-items: center; } /* 18.13 */
.rx-fam[b-nx8h93md31] { display: inline-flex; align-items: center; gap: 6px; padding: 0; border: 0; background: none; font-size: 12px; color: var(--text-secondary); cursor: pointer; text-align: left; } /* 6.31 */
.rx-sw[b-nx8h93md31] { width: 32px; height: 18px; border-radius: 9px; background: var(--border-med); position: relative; flex: 0 0 auto; transition: background .15s var(--ease); }
.rx-sw[b-nx8h93md31]::after { content: ""; position: absolute; top: 2px; left: 2px; width: 14px; height: 14px; border-radius: 50%; background: var(--bg-panel);
    box-shadow: 0 1px 2px rgba(0, 0, 0, .2); transition: left .15s var(--ease); }
.rx-fam[aria-checked="true"] .rx-sw[b-nx8h93md31] { background: var(--brand-teal-deep); }
.rx-fam[aria-checked="true"] .rx-sw[b-nx8h93md31]::after { left: 16px; }
/* Razón del CTA apagado (W4a): última línea de la columna, a lo ancho; nunca al lado del CTA para no aplastar la leyenda */
.rx-razon[b-nx8h93md31] { font-size: 12px; font-weight: 600; line-height: 1.3; color: var(--warning-ink); } /* 6.20 blanco */
.rx-cta[b-nx8h93md31] { height: 44px; min-width: 150px; padding: 0 18px; border-radius: 10px; border: 0; background: var(--brand-teal-primary); color: var(--text-primary);
    font-size: 14px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; gap: 8px; white-space: nowrap; cursor: pointer; } /* 8.60 */
.rx-cta:disabled[b-nx8h93md31] { background: var(--cream-deep); color: var(--text-secondary); cursor: default; } /* 4.93 */
.rx-btn[b-nx8h93md31] { height: 44px; padding: 0 16px; border-radius: 10px; border: 1px solid var(--border-med); background: var(--bg-panel); color: var(--text-secondary);
    font-size: 14px; font-weight: 600; display: inline-flex; align-items: center; gap: 6px; cursor: pointer; white-space: nowrap; } /* 6.31 */
.rx-btn:disabled[b-nx8h93md31] { opacity: .55; cursor: default; }
.rx-btn .msr[b-nx8h93md31] { font-size: 18px; }
.rx-pie-res[b-nx8h93md31] { flex-wrap: wrap; justify-content: flex-end; }
.rx-pie-ayuda[b-nx8h93md31] { flex: 1 1 100%; margin: 0; font-size: 11.5px; color: var(--text-muted); text-align: center; } /* 5.94 */
@media (max-width: 479px) { .rx-pie[b-nx8h93md31] { flex-wrap: wrap; } .rx-cta[b-nx8h93md31] { flex: 1 1 100%; } }

/* ---------- Estados ---------- */
.rx-agotado[b-nx8h93md31] { display: flex; gap: 12px; align-items: flex-start; background: var(--warn-bg); border-radius: 14px; padding: 14px 16px; color: var(--warning-ink); } /* 5.77 */
.rx-agotado b[b-nx8h93md31] { display: block; font-size: 14px; }
.rx-agotado p[b-nx8h93md31] { margin: 4px 0 0; font-size: 12.5px; line-height: 1.4; }
.rx-agotado-ico[b-nx8h93md31] { font-size: 24px; }
.rx-descartar[b-nx8h93md31] { display: flex; flex-direction: column; gap: 10px; background: var(--error-bg); border-radius: 12px; padding: 12px 14px; color: var(--danger); font-size: 12.5px; } /* 6.46 */
.rx-descartar p[b-nx8h93md31] { margin: 0; line-height: 1.4; }
.rx-acciones[b-nx8h93md31] { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.rx-hist-l[b-nx8h93md31] { margin: 0; padding-left: 18px; font-size: 12.5px; color: var(--text-secondary); line-height: 1.6; }
@media (prefers-reduced-motion: reduce) { .rx-drawer[b-nx8h93md31] { animation: none; } .rx-sw[b-nx8h93md31], .rx-sw[b-nx8h93md31]::after { transition: none; } }
/* /Components/Reconocimientos/ReconocerPanel.razor.rz.scp.css */
/* ReconocerPanel — estilos del panel de reconocimientos.
   Sistema de diseno: docs/agentes/diseno/SISTEMA-DISENO.md
   Tokens: --bg-panel, --carbon-2, --teal, Material Icons, sin emojis, responsive, AA. */

/* Overlay */
.rec-panel-overlay[b-f6rcy90be1] {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.4);
    z-index: 1100;
}

/* Panel lateral derecho */
.rec-panel[b-f6rcy90be1] {
    position: fixed;
    top: 0;
    right: -420px;
    width: 400px;
    max-width: 100vw;
    height: 100dvh;
    background: #fff;
    box-shadow: -4px 0 24px rgba(0,0,0,.18);
    z-index: 1101;
    display: flex;
    flex-direction: column;
    transition: right .22s cubic-bezier(.4,0,.2,1);
    overflow: hidden;
}

.rec-panel-open[b-f6rcy90be1] {
    right: 0;
}

/* Header */
.rec-panel-header[b-f6rcy90be1] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px;
    border-bottom: 1px solid #eee;
    background: #1E2126;
    color: #fff;
    flex-shrink: 0;
}

.rec-panel-header-info[b-f6rcy90be1] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.rec-panel-header-icon[b-f6rcy90be1] {
    font-size: 20px;
    color: #CFB87C;
}

.rec-panel-nombre[b-f6rcy90be1] {
    font-family: 'Figtree', sans-serif;
    font-weight: 600;
    font-size: 15px;
}

.rec-panel-close[b-f6rcy90be1] {
    background: none;
    border: none;
    cursor: pointer;
    color: #fff;
    padding: 4px;
    border-radius: 4px;
    display: flex;
    align-items: center;
}

.rec-panel-close:hover[b-f6rcy90be1] {
    background: rgba(255,255,255,.15);
}

/* Body scrollable */
.rec-panel-body[b-f6rcy90be1] {
    flex: 1;
    overflow-y: auto;
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

/* Loading */
.rec-loading[b-f6rcy90be1] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 32px 0;
    color: #888;
    font-size: 14px;
}

.rec-spinner-icon[b-f6rcy90be1] {
    font-size: 32px;
    animation: spin-b-f6rcy90be1 1.2s linear infinite;
}

@keyframes spin-b-f6rcy90be1 {
    to { transform: rotate(360deg); }
}

/* Error */
.rec-error[b-f6rcy90be1] {
    padding: 10px 12px;
    background: #FFF0F0;
    border: 1px solid #F5C6C6;
    border-radius: 6px;
    color: #C0392B;
    font-size: 13px;
    line-height: 1.4;
}

/* Sugerencia de Avance */
.rec-sug-card[b-f6rcy90be1] {
    background: #F0F7FF;
    border: 1px solid #BDD8FF;
    border-radius: 8px;
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.rec-sug-card-header[b-f6rcy90be1] {
    display: flex;
    align-items: center;
    gap: 6px;
    color: #1976D2;
    font-weight: 600;
    font-size: 13px;
}

.rec-sug-icon[b-f6rcy90be1] {
    font-size: 18px;
}

.rec-sug-titulo[b-f6rcy90be1] {
    font-family: 'Figtree', sans-serif;
}

.rec-sug-detalle[b-f6rcy90be1] {
    font-size: 13px;
    color: #444;
    line-height: 1.4;
    margin: 0;
}

.rec-btn-usar-sug[b-f6rcy90be1] {
    align-self: flex-start;
    background: #1976D2;
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 6px 12px;
    font-size: 13px;
    font-family: 'Figtree', sans-serif;
    cursor: pointer;
    transition: background .15s;
}

.rec-btn-usar-sug:hover[b-f6rcy90be1] {
    background: #1565C0;
}

/* Tabs */
.rec-tabs[b-f6rcy90be1] {
    display: flex;
    gap: 4px;
    flex-wrap: wrap;
    border-bottom: 1px solid #eee;
    padding-bottom: 8px;
}

.rec-tab[b-f6rcy90be1] {
    display: flex;
    align-items: center;
    gap: 4px;
    background: none;
    border: 1px solid #ddd;
    border-radius: 6px;
    padding: 5px 10px;
    font-size: 12px;
    font-family: 'Figtree', sans-serif;
    cursor: pointer;
    color: #555;
    transition: all .15s;
}

.rec-tab:hover[b-f6rcy90be1] {
    border-color: #4BA8AA;
    color: #4BA8AA;
}

.rec-tab-active[b-f6rcy90be1] {
    background: #4BA8AA;
    border-color: #4BA8AA;
    color: #fff;
}

.rec-tab-avance-icon[b-f6rcy90be1] {
    font-size: 15px;
}

/* Grilla de stickers */
.rec-sticker-grid[b-f6rcy90be1] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(72px, 1fr));
    gap: 8px;
}

.rec-sticker-btn[b-f6rcy90be1] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    background: #f9f9f9;
    border: 2px solid transparent;
    border-radius: 8px;
    padding: 6px 4px;
    cursor: pointer;
    transition: all .15s;
    min-height: 82px;
}

.rec-sticker-btn:hover[b-f6rcy90be1] {
    border-color: #4BA8AA;
    background: #F0FAF9;
}

.rec-sticker-sel[b-f6rcy90be1] {
    border-color: #4BA8AA !important;
    background: #E0F5F5 !important;
    box-shadow: 0 0 0 2px rgba(75,168,170,.3);
}

.rec-sticker-img[b-f6rcy90be1] {
    width: 56px;
    height: 56px;
    object-fit: contain;
}

.rec-sticker-fallback[b-f6rcy90be1] {
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #bbb;
    font-size: 28px;
}

.rec-sticker-nombre[b-f6rcy90be1] {
    font-size: 10px;
    text-align: center;
    color: #555;
    line-height: 1.2;
    max-width: 70px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Mensaje */
.rec-mensaje-section[b-f6rcy90be1] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.rec-label[b-f6rcy90be1] {
    font-size: 12px;
    font-weight: 600;
    color: #666;
    font-family: 'Figtree', sans-serif;
}

.rec-mensaje-input[b-f6rcy90be1],
.rec-motivo-input[b-f6rcy90be1] {
    width: 100%;
    padding: 8px;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 13px;
    font-family: 'Figtree', sans-serif;
    resize: vertical;
    min-height: 60px;
    box-sizing: border-box;
}

.rec-mensaje-input:focus[b-f6rcy90be1],
.rec-motivo-input:focus[b-f6rcy90be1] {
    outline: none;
    border-color: #4BA8AA;
    box-shadow: 0 0 0 2px rgba(75,168,170,.2);
}

.rec-char-count[b-f6rcy90be1] {
    font-size: 11px;
    color: #999;
    text-align: right;
}

/* Boton Otorgar */
.rec-btn-otorgar[b-f6rcy90be1] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 100%;
    padding: 10px;
    background: #4BA8AA;
    color: #fff;
    border: none;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    font-family: 'Figtree', sans-serif;
    cursor: pointer;
    transition: background .15s;
}

.rec-btn-otorgar:hover:not(:disabled)[b-f6rcy90be1] {
    background: #3A8E90;
}

.rec-btn-otorgar:disabled[b-f6rcy90be1] {
    opacity: .5;
    cursor: not-allowed;
}

/* Toast de exito */
.rec-toast[b-f6rcy90be1] {
    background: #E8F5E9;
    border: 1px solid #A5D6A7;
    border-radius: 8px;
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.rec-toast-line1[b-f6rcy90be1] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-weight: 600;
    font-size: 13px;
    color: #2E7D32;
}

.rec-toast-icon[b-f6rcy90be1] {
    font-size: 18px;
    color: #43A047;
}

.rec-toast-line2[b-f6rcy90be1] {
    font-size: 12px;
    color: #388E3C;
    padding-left: 24px;
}

.rec-toast-line3[b-f6rcy90be1] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: #1B5E20;
    font-weight: 600;
    padding-left: 24px;
}

/* Recientes */
.rec-recientes[b-f6rcy90be1] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.rec-recientes-titulo[b-f6rcy90be1] {
    font-size: 12px;
    font-weight: 600;
    color: #888;
    text-transform: uppercase;
    letter-spacing: .04em;
    font-family: 'Figtree', sans-serif;
    padding-top: 4px;
    border-top: 1px solid #eee;
}

.rec-reciente-item[b-f6rcy90be1] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 0;
    border-bottom: 1px solid #f0f0f0;
}

.rec-reciente-img[b-f6rcy90be1] {
    width: 36px;
    height: 36px;
    object-fit: contain;
    flex-shrink: 0;
}

.rec-reciente-img-fb[b-f6rcy90be1] {
    width: 36px;
    height: 36px;
    font-size: 22px;
    color: #ccc;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.rec-reciente-info[b-f6rcy90be1] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.rec-reciente-nombre[b-f6rcy90be1] {
    font-size: 13px;
    font-weight: 500;
    color: #333;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rec-chip-avance[b-f6rcy90be1] {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    font-size: 11px;
    color: #1976D2;
    background: #E3F2FD;
    border-radius: 10px;
    padding: 2px 6px;
    width: fit-content;
}

.rec-chip-avance .material-icons[b-f6rcy90be1] {
    font-size: 13px;
}

.rec-reciente-fecha[b-f6rcy90be1] {
    font-size: 11px;
    color: #999;
}

.rec-btn-retirar[b-f6rcy90be1] {
    background: none;
    border: none;
    cursor: pointer;
    color: #D35D52;
    padding: 4px;
    border-radius: 4px;
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.rec-btn-retirar:hover[b-f6rcy90be1] {
    background: #FFF0F0;
}

.rec-btn-retirar .material-icons[b-f6rcy90be1] {
    font-size: 18px;
}

/* Dialogo retiro */
.rec-retiro-dialog[b-f6rcy90be1] {
    background: #FFF3E0;
    border: 1px solid #FFB74D;
    border-radius: 8px;
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rec-retiro-titulo[b-f6rcy90be1] {
    font-weight: 600;
    font-size: 14px;
    color: #E65100;
    font-family: 'Figtree', sans-serif;
}

.rec-retiro-botones[b-f6rcy90be1] {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
}

.rec-btn-cancel[b-f6rcy90be1] {
    background: none;
    border: 1px solid #ddd;
    border-radius: 6px;
    padding: 6px 14px;
    font-size: 13px;
    cursor: pointer;
    font-family: 'Figtree', sans-serif;
}

.rec-btn-cancel:hover[b-f6rcy90be1] {
    background: #f0f0f0;
}

.rec-btn-confirm-retiro[b-f6rcy90be1] {
    background: #D35D52;
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 6px 14px;
    font-size: 13px;
    cursor: pointer;
    font-family: 'Figtree', sans-serif;
}

.rec-btn-confirm-retiro:disabled[b-f6rcy90be1] {
    opacity: .5;
    cursor: not-allowed;
}

/* Mobile */
@media (max-width: 480px) {
    .rec-panel[b-f6rcy90be1] {
        width: 100vw;
    }
}

/* Selector de alumno del grupo (modo widget). Faltaba estilo: los botones salian crudos. */
.rec-alumno-selector[b-f6rcy90be1] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 12px;
}

.rec-alumno-busqueda[b-f6rcy90be1] {
    width: 100%;
    box-sizing: border-box;
    padding: 8px 10px;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-size: 14px;
    font-family: 'Figtree', sans-serif;
}

.rec-alumno-busqueda:focus[b-f6rcy90be1] {
    outline: none;
    border-color: var(--brand-teal-dark);
    box-shadow: 0 0 0 2px rgba(75,168,170,.2);
}

.rec-alumno-lista[b-f6rcy90be1] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    max-height: 210px;
    overflow-y: auto;
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 4px;
}

.rec-alumno-opcion[b-f6rcy90be1] {
    display: block;
    width: 100%;
    text-align: left;
    border: none;
    background: transparent;
    padding: 8px 10px;
    border-radius: 6px;
    font-family: 'Figtree', sans-serif;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    color: #333;
    cursor: pointer;
}

.rec-alumno-opcion:hover[b-f6rcy90be1] {
    background: #F4F0E6;
}

.rec-alumno-opcion.rec-alumno-sel[b-f6rcy90be1] {
    background: rgba(75,168,170,.16);
    color: var(--brand-teal-dark);
    box-shadow: inset 3px 0 0 var(--brand-teal-dark);
}

.rec-alumno-opcion:focus-visible[b-f6rcy90be1] {
    outline: 2px solid var(--brand-teal-dark);
    outline-offset: -2px;
}

.rec-alumno-vacio[b-f6rcy90be1] {
    padding: 10px;
    font-size: 13px;
    color: #999;
    font-family: 'Figtree', sans-serif;
}
/* /Components/Reconocimientos/ReconocimientoCelebracion.razor.rz.scp.css */
/* Celebracion proyectada v2 (2026-10-12). Overlay dentro de .pp-canvas (16:9), z-index 950
   (sobre widgets, bajo pp-ui 2000). pointer-events:none: no bloquea timer, teclado ni dibujo.
   Las clases de estado (rc-on, rc-stk, rc-imp, rc-frase-in, rc-rodando, rc-out; rc-in y rc-shine
   en el nombre) las pone wwwroot/js/pizarron-celebracion.js. rc-estatico = sin JS: todo visible. */

.rc-cel[b-yeae1un3r8] {
    position: absolute;
    inset: 0;
    z-index: 950;
    pointer-events: none;
    display: grid;
    place-items: center;
    overflow: hidden;
    container-type: size;
}

.rc-bg[b-yeae1un3r8] {
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at 50% 46%, #1D4A57 0%, #0C1E28 45%, #05090D 100%);
    opacity: 0;
    transition: opacity .35s ease;
}

.rc-on .rc-bg[b-yeae1un3r8], .rc-estatico .rc-bg[b-yeae1un3r8] { opacity: .96; }

.rc-rays[b-yeae1un3r8] {
    position: absolute;
    left: 50%;
    top: 44%;
    width: 240cqw;
    height: 240cqw;
    translate: -50% -50%;
    background: repeating-conic-gradient(from 0deg, rgba(255, 214, 110, .16) 0deg 7deg, transparent 7deg 18deg);
    -webkit-mask: radial-gradient(circle, #000 0%, rgba(0, 0, 0, .5) 22%, transparent 46%);
    mask: radial-gradient(circle, #000 0%, rgba(0, 0, 0, .5) 22%, transparent 46%);
    opacity: 0;
    scale: .4;
    transition: opacity .5s ease .2s, scale 1.2s cubic-bezier(.2, .9, .3, 1) .2s;
    animation: rc-gira-b-yeae1un3r8 22s linear infinite;
}

.rc-on .rc-rays[b-yeae1un3r8] { opacity: 1; scale: 1; }

@keyframes rc-gira-b-yeae1un3r8 { to { rotate: 360deg; } }

.rc-flash[b-yeae1un3r8] { position: absolute; inset: 0; background: #fff; opacity: 0; }
.rc-imp .rc-flash[b-yeae1un3r8] { animation: rc-flash-b-yeae1un3r8 .5s ease-out; }
@keyframes rc-flash-b-yeae1un3r8 { 0% { opacity: .75; } 100% { opacity: 0; } }

.rc-canvas[b-yeae1un3r8] { position: absolute; inset: 0; width: 100%; height: 100%; }

.rc-centro[b-yeae1un3r8] {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.4cqh;
    text-align: center;
    margin-top: -2cqh;
}

.rc-chip[b-yeae1un3r8] {
    display: inline-flex;
    align-items: center;
    gap: 1cqh;
    background: rgba(255, 197, 61, .14);
    border: .25cqh solid rgba(255, 197, 61, .55);
    color: #FFC53D;
    border-radius: 999px;
    padding: .9cqh 2.4cqh;
    font-family: var(--font-sans);
    font-weight: 800;
    font-size: 2.6cqh;
    letter-spacing: .22em;
    text-transform: uppercase;
    opacity: 0;
    translate: 0 -6cqh;
}

    .rc-chip .rc-chip-ico[b-yeae1un3r8] {
        font-size: 3.6cqh;
        letter-spacing: 0;
        font-variation-settings: 'FILL' 1;
    }

.rc-on .rc-chip[b-yeae1un3r8] { animation: rc-baja-b-yeae1un3r8 .6s cubic-bezier(.2, 1.4, .4, 1) .2s forwards; }
@keyframes rc-baja-b-yeae1un3r8 { to { opacity: 1; translate: 0 0; } }

.rc-sticker-wrap[b-yeae1un3r8] {
    position: relative;
    width: 46cqh;
    height: 46cqh;
    display: grid;
    place-items: center;
}

.rc-sticker[b-yeae1un3r8] {
    width: 100%;
    height: 100%;
    object-fit: contain;
    opacity: 0;
    filter: drop-shadow(0 2.4cqh 4cqh rgba(0, 0, 0, .5));
}

.rc-sticker-ph[b-yeae1un3r8] {
    display: grid;
    place-items: center;
    color: #fff;
    font-family: var(--font-sans);
    font-weight: 800;
    font-size: 5cqh;
    border: .3cqh dashed rgba(255, 255, 255, .4);
    border-radius: 3cqh;
}

.rc-stk .rc-sticker[b-yeae1un3r8] { animation: rc-slam-b-yeae1un3r8 .75s cubic-bezier(.18, 1.5, .4, 1) forwards, rc-flota-b-yeae1un3r8 2.6s ease-in-out .9s infinite; }

@keyframes rc-slam-b-yeae1un3r8 {
    0% { opacity: 0; transform: scale(3.4) rotate(-14deg); filter: blur(1.4cqh) drop-shadow(0 2.4cqh 4cqh rgba(0, 0, 0, .5)); }
    60% { opacity: 1; }
    100% { opacity: 1; transform: scale(1) rotate(0); filter: blur(0) drop-shadow(0 2.4cqh 4cqh rgba(0, 0, 0, .5)); }
}

@keyframes rc-flota-b-yeae1un3r8 { 50% { transform: translateY(-1.6cqh) rotate(1.5deg); } }

.rc-onda[b-yeae1un3r8] { position: absolute; inset: 8%; border-radius: 50%; border: 1cqh solid #FFC53D; opacity: 0; }
.rc-onda.b[b-yeae1un3r8] { border-color: var(--brand-teal-primary); }
.rc-imp .rc-onda[b-yeae1un3r8] { animation: rc-onda-b-yeae1un3r8 .9s cubic-bezier(.1, .7, .3, 1) forwards; }
.rc-imp .rc-onda.b[b-yeae1un3r8] { animation-delay: .12s; }
@keyframes rc-onda-b-yeae1un3r8 { 0% { opacity: .9; transform: scale(.6); } 100% { opacity: 0; transform: scale(2.6); } }

.rc-nombre[b-yeae1un3r8] {
    position: relative;
    margin: 0;
    font-family: "Bricolage Grotesque", var(--font-sans);
    font-weight: 800;
    font-size: min(17cqh, 11cqw);
    line-height: .95;
    letter-spacing: -.02em;
    white-space: nowrap;
    text-transform: uppercase;
}

.rc-l[b-yeae1un3r8] {
    display: inline-block;
    background: linear-gradient(180deg, #FFF6D6 0%, #FFD978 38%, #F5A623 70%, #C77700 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    filter: drop-shadow(0 .7cqh 0 #6B3D00) drop-shadow(0 0 3cqh rgba(255, 190, 70, .45));
    opacity: 0;
    transform: translateY(7cqh) scale(.4) rotate(-12deg);
}

.rc-esp[b-yeae1un3r8] { width: .32em; }

.rc-in .rc-l[b-yeae1un3r8] { animation: rc-letra-b-yeae1un3r8 .55s cubic-bezier(.2, 1.7, .4, 1) forwards; animation-delay: calc(var(--i) * 55ms); }
@keyframes rc-letra-b-yeae1un3r8 { to { opacity: 1; transform: none; } }

.rc-in.rc-shine .rc-l[b-yeae1un3r8] { opacity: 1; transform: none; animation: rc-destello-b-yeae1un3r8 .9s ease-in-out both; animation-delay: calc(var(--i) * 45ms); }
@keyframes rc-destello-b-yeae1un3r8 {
    50% { filter: brightness(1.55) drop-shadow(0 .7cqh 0 #6B3D00) drop-shadow(0 0 5cqh rgba(255, 220, 120, .9)); transform: translateY(-1.2cqh) scale(1.06); }
}

.rc-frase[b-yeae1un3r8] {
    margin: 0;
    font-family: var(--font-sans);
    font-weight: 700;
    font-size: 3.6cqh;
    color: #EEF2F4;
    opacity: 0;
    translate: 0 2cqh;
    display: flex;
    align-items: center;
    gap: 1.4cqh;
}

.rc-sep[b-yeae1un3r8] { width: .9cqh; height: .9cqh; border-radius: 50%; background: var(--brand-teal-primary); }
.rc-clase[b-yeae1un3r8] { color: var(--brand-teal-primary); font-weight: 600; }
.rc-frase-in .rc-frase[b-yeae1un3r8] { transition: opacity .5s, translate .5s cubic-bezier(.2, 1.2, .4, 1); opacity: 1; translate: 0 0; }

.rc-out .rc-centro[b-yeae1un3r8] { transition: opacity .5s ease, scale .6s cubic-bezier(.5, 0, .8, .4), filter .5s; opacity: 0; scale: 1.35; filter: blur(1cqh); }
.rc-out .rc-bg[b-yeae1un3r8], .rc-out .rc-rays[b-yeae1un3r8], .rc-out .rc-grid[b-yeae1un3r8], .rc-out .rc-foco[b-yeae1un3r8] { transition: opacity .6s ease; opacity: 0; }

/* --- Ruleta de suspenso (herencia del sorteo) --- */
.rc-roll[b-yeae1un3r8] {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2.4cqh;
    opacity: 0;
}

    .rc-roll small[b-yeae1un3r8] {
        font-family: var(--font-sans);
        font-size: 3.6cqh;
        font-weight: 700;
        color: #A7B2BB;
        letter-spacing: .04em;
    }

.rc-roll-nom[b-yeae1un3r8] {
    font-family: "Bricolage Grotesque", var(--font-sans);
    font-weight: 800;
    font-size: min(14cqh, 10cqw);
    text-transform: uppercase;
    color: #fff;
    white-space: nowrap;
    line-height: 1;
    text-shadow: 0 0 4cqh rgba(255, 255, 255, .35);
}

.rc-rodando .rc-roll[b-yeae1un3r8] { opacity: 1; transition: opacity .2s; }
.rc-roll-nom.rc-tic[b-yeae1un3r8] { animation: rc-tic-b-yeae1un3r8 .14s ease-out; }
@keyframes rc-tic-b-yeae1un3r8 { from { transform: translateY(-35%); opacity: .25; filter: blur(.7cqh); } }
.rc-imp .rc-roll[b-yeae1un3r8] { opacity: 0; transform: scale(1.7); transition: opacity .25s, transform .3s; }

/* --- Estilo gamer: logro desbloqueado --- */
.rc-grid[b-yeae1un3r8] {
    display: none;
    position: absolute;
    left: -60%;
    right: -60%;
    bottom: -6%;
    height: 52%;
    background-image: linear-gradient(rgba(110, 198, 200, .6) .35cqh, transparent .35cqh), linear-gradient(90deg, rgba(255, 79, 216, .55) .35cqh, transparent .35cqh);
    background-size: 7cqw 7cqw;
    transform: perspective(40cqh) rotateX(64deg);
    transform-origin: 50% 0;
    opacity: 0;
    animation: rc-avanza-b-yeae1un3r8 .5s linear infinite;
    -webkit-mask: linear-gradient(transparent, #000 45%);
    mask: linear-gradient(transparent, #000 45%);
}

@keyframes rc-avanza-b-yeae1un3r8 { to { background-position: 0 7cqw; } }

.rc-e-gamer .rc-grid[b-yeae1un3r8] { display: block; }
.rc-e-gamer.rc-on .rc-grid[b-yeae1un3r8] { opacity: 1; transition: opacity .5s; }
.rc-e-gamer .rc-bg[b-yeae1un3r8] { background: linear-gradient(180deg, #120A2C 0%, #2B0F52 52%, #0A2A3A 100%); }
.rc-e-gamer .rc-bg[b-yeae1un3r8]::after { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(0deg, rgba(0, 0, 0, .22) 0 .3cqh, transparent .3cqh .8cqh); }
.rc-e-gamer .rc-rays[b-yeae1un3r8] { display: none; }
.rc-e-gamer .rc-chip[b-yeae1un3r8] { color: #A8F6F7; background: rgba(110, 198, 200, .14); border-color: rgba(110, 198, 200, .75); box-shadow: 0 0 3cqh rgba(110, 198, 200, .45); }
.rc-e-gamer .rc-onda[b-yeae1un3r8] { border-color: #FF4FD8; }
.rc-e-gamer .rc-onda.b[b-yeae1un3r8] { border-color: var(--brand-teal-primary); }
.rc-e-gamer .rc-l[b-yeae1un3r8] {
    background: linear-gradient(180deg, #FFFFFF 0%, #A8F6F7 38%, var(--brand-teal-primary) 62%, #FF4FD8 100%);
    -webkit-background-clip: text;
    background-clip: text;
    filter: drop-shadow(.55cqh 0 0 rgba(255, 79, 216, .85)) drop-shadow(-.55cqh 0 0 rgba(80, 240, 255, .85)) drop-shadow(0 0 3cqh rgba(110, 198, 200, .6));
}
.rc-e-gamer .rc-in.rc-shine .rc-l[b-yeae1un3r8] { animation-name: rc-destello-g-b-yeae1un3r8; }
@keyframes rc-destello-g-b-yeae1un3r8 {
    50% { filter: brightness(1.5) drop-shadow(1.2cqh 0 0 rgba(255, 79, 216, .9)) drop-shadow(-1.2cqh 0 0 rgba(80, 240, 255, .9)) drop-shadow(0 0 5cqh rgba(110, 198, 200, .9)); transform: translateY(-1.2cqh) skewX(-8deg); }
}
.rc-e-gamer .rc-sep[b-yeae1un3r8] { background: #FF4FD8; }

/* --- Estilo estadio: ovacion --- */
.rc-focos[b-yeae1un3r8] { display: none; position: absolute; inset: 0; }
.rc-e-estadio .rc-focos[b-yeae1un3r8] { display: block; }
.rc-foco[b-yeae1un3r8] {
    position: absolute;
    bottom: -8%;
    width: 70cqw;
    height: 140cqh;
    background: conic-gradient(from -14deg at 50% 100%, rgba(255, 248, 215, 0) 0deg, rgba(255, 248, 215, .34) 14deg, rgba(255, 248, 215, 0) 28deg, transparent 28deg);
    transform-origin: 50% 100%;
    opacity: 0;
    mix-blend-mode: screen;
}
.rc-foco.a[b-yeae1un3r8] { left: -30cqw; animation: rc-barre-b-yeae1un3r8 2.3s ease-in-out infinite alternate; }
.rc-foco.b[b-yeae1un3r8] { right: -30cqw; animation: rc-barre-b-yeae1un3r8 2.3s ease-in-out -1.1s infinite alternate-reverse; }
.rc-foco.c[b-yeae1un3r8] { left: 15cqw; background: conic-gradient(from -12deg at 50% 100%, rgba(110, 198, 200, 0) 0deg, rgba(110, 198, 200, .38) 12deg, rgba(110, 198, 200, 0) 24deg, transparent 24deg); animation: rc-barre-b-yeae1un3r8 3.1s ease-in-out -.7s infinite alternate; }
@keyframes rc-barre-b-yeae1un3r8 { from { rotate: -30deg; } to { rotate: 30deg; } }
.rc-e-estadio.rc-on .rc-foco[b-yeae1un3r8] { opacity: 1; transition: opacity .4s; }
.rc-e-estadio .rc-bg[b-yeae1un3r8] { background: radial-gradient(ellipse at 50% 115%, #173A44 0%, #080D12 58%, #020304 100%); }
.rc-e-estadio .rc-rays[b-yeae1un3r8] { display: none; }
.rc-e-estadio .rc-l[b-yeae1un3r8] {
    background: linear-gradient(180deg, #FFFFFF 0%, #FFFFFF 45%, #CFEFF0 100%);
    -webkit-background-clip: text;
    background-clip: text;
    filter: drop-shadow(0 .7cqh 0 #0E3F40) drop-shadow(0 0 4cqh rgba(255, 255, 255, .5));
}
.rc-e-estadio .rc-in.rc-shine .rc-l[b-yeae1un3r8] { animation-name: rc-destello-e-b-yeae1un3r8; }
@keyframes rc-destello-e-b-yeae1un3r8 {
    50% { filter: brightness(1.3) drop-shadow(0 .7cqh 0 #0E3F40) drop-shadow(0 0 6cqh rgba(110, 198, 200, 1)); transform: translateY(-1.6cqh) scale(1.08); }
}

/* --- Sin JS: tarjeta completa, sin secuencia --- */
.rc-estatico .rc-chip[b-yeae1un3r8], .rc-estatico .rc-sticker[b-yeae1un3r8], .rc-estatico .rc-l[b-yeae1un3r8], .rc-estatico .rc-frase[b-yeae1un3r8] { opacity: 1; transform: none; translate: 0 0; }

/* --- Modo discreto: tarjeta chica en la esquina --- */
.rc-toast[b-yeae1un3r8] {
    position: absolute;
    right: 3%;
    bottom: 5%;
    z-index: 950;
    pointer-events: none;
    background: var(--bg-panel);
    border-radius: 18px;
    box-shadow: var(--shadow-lg);
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 22px 12px 12px;
    animation: rc-toast-in-b-yeae1un3r8 .5s cubic-bezier(.2, 1.4, .4, 1);
}

    .rc-toast .rc-sticker[b-yeae1un3r8] {
        width: clamp(56px, 11vh, 120px);
        height: clamp(56px, 11vh, 120px);
        opacity: 1;
        filter: none;
    }

.rc-toast-txt[b-yeae1un3r8] { display: flex; flex-direction: column; }
.rc-toast-nom[b-yeae1un3r8] { font-family: "Bricolage Grotesque", var(--font-sans); font-weight: 800; font-size: clamp(20px, 4.2vh, 44px); text-transform: uppercase; line-height: 1; color: var(--carbon-1); }
.rc-toast-frase[b-yeae1un3r8] { font-family: var(--font-sans); font-size: clamp(13px, 2.3vh, 24px); color: var(--text-muted); }
.rc-toast-sale[b-yeae1un3r8] { transition: opacity .35s, transform .35s; opacity: 0; transform: translateY(20px); }
@keyframes rc-toast-in-b-yeae1un3r8 { from { opacity: 0; transform: translateY(40px) scale(.8); } }

@media (prefers-reduced-motion: reduce) {
    .rc-rays[b-yeae1un3r8], .rc-grid[b-yeae1un3r8], .rc-foco[b-yeae1un3r8] { animation: none; }
    .rc-stk .rc-sticker[b-yeae1un3r8], .rc-in .rc-l[b-yeae1un3r8] { animation: rc-aparece-b-yeae1un3r8 .3s forwards; animation-delay: 0s; }
    .rc-imp .rc-onda[b-yeae1un3r8], .rc-imp .rc-flash[b-yeae1un3r8], .rc-in.rc-shine .rc-l[b-yeae1un3r8] { animation: none; }
    @keyframes rc-aparece-b-yeae1un3r8 { to { opacity: 1; transform: none; filter: none; } }
}
/* /Components/Reconocimientos/ReconocimientosHoyWidget.razor.rz.scp.css */
/* Widget Reconocimientos de hoy: compacto (caben 5 renglones, lo normal son 3). */
.rw-root[b-2en1tra6e1] {
    width: 100%;
    box-sizing: border-box;
    height: 100%;
    container-type: size;
    background: var(--bg-panel);
    border-radius: 3.5cqh;
    padding: 3.5cqh 3cqh;
    display: flex;
    flex-direction: column;
    gap: 2.2cqh;
    min-width: 0;
    overflow: hidden;
    box-shadow: var(--shadow-sm);
}

.rw-head[b-2en1tra6e1] {
    display: flex;
    align-items: center;
    gap: 1.4cqh;
    min-width: 0;
}

.rw-ico[b-2en1tra6e1] {
    font-size: 5.5cqh;
    color: #8A5510; /* = var(--warning-ink) */
    font-variation-settings: 'FILL' 1;
}

.rw-titulo[b-2en1tra6e1] {
    flex: 1;
    min-width: 0;
    font-family: var(--font-sans);
    font-weight: 700;
    font-size: 3.7cqh;
    color: var(--carbon-1);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rw-exp[b-2en1tra6e1] {
    border: 0;
    background: #F1F6F6;
    color: var(--brand-teal-dark);
    border-radius: 2cqh;
    width: 7.4cqh;
    height: 7.4cqh;
    display: grid;
    place-items: center;
    cursor: pointer;
    flex: none;
}

    .rw-exp .material-symbols-rounded[b-2en1tra6e1] {
        font-size: 4.8cqh;
    }

.rw-sinclase[b-2en1tra6e1] {
    flex: 1;
    display: grid;
    place-items: center;
    color: var(--text-muted);
    font-size: 3.5cqh;
    text-align: center;
}

.rw-cta[b-2en1tra6e1] {
    border: 0;
    background: var(--brand-teal-primary);
    color: var(--brand-teal-deep);
    font: inherit;
    font-weight: 700;
    border-radius: 2cqh;
    padding: 1.6cqh 3.2cqh;
    cursor: pointer;
}
/* /Components/Reconocimientos/ReconocimientosTiraHoy.razor.rz.scp.css */
/* Tira de reconocimientos del dia (v1.2, §5.3). Al pie del widget de actividad.
   Sticker 40 px + nombre corto, cronologica (el mas reciente al final), scroll horizontal.
   Paridad con aw-chips-label del widget (deuda 3.5:1 del label compartida, §6.2). */

.rt-root[b-1s7p7vyw7m] {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-height: 0;
    position: relative;
}

.rt-label[b-1s7p7vyw7m] {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--carbon-5);
    display: flex;
    align-items: center;
    gap: 4px;
}

    .rt-label .material-symbols-rounded[b-1s7p7vyw7m] {
        font-size: 13px;
        color: #8A5510; /* familia ambar del reconocimiento (README pt.1) = var(--warning-ink) */
    }

.rt-scroll[b-1s7p7vyw7m] {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 2px 2px 4px;
    scrollbar-width: thin;
    scroll-behavior: smooth;
    list-style: none;
    margin: 0;
}

.rt-item[b-1s7p7vyw7m] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 10px 3px 4px;
    border-radius: 999px;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    box-shadow: var(--shadow-sm);
    white-space: nowrap;
}

    .rt-item img[b-1s7p7vyw7m],
    .rt-item .rt-ph[b-1s7p7vyw7m] {
        width: 40px;
        height: 40px;
        object-fit: contain;
        display: block;
        flex: 0 0 auto;
    }

    .rt-item .rt-ph[b-1s7p7vyw7m] {
        border-radius: 8px;
        border: 1px dashed var(--border-med);
        display: grid;
        place-items: center;
        color: var(--text-muted);
        font-size: 8.5px;
        text-align: center;
        line-height: 1.1;
        padding: 2px;
    }

    .rt-item .rt-n[b-1s7p7vyw7m] {
        font-size: 12px;
        font-weight: 600;
        color: var(--carbon-2); /* 15:1 sobre blanco (§6.2) */
    }

    .rt-item.rt-nuevo[b-1s7p7vyw7m] {
        animation: rt-in-b-1s7p7vyw7m .35s cubic-bezier(.34, 1.56, .64, 1) both;
    }

@keyframes rt-in-b-1s7p7vyw7m {
    0% {
        opacity: 0;
        transform: translateY(4px) scale(.85);
    }

    100% {
        opacity: 1;
        transform: none;
    }
}

/* Degradado de borde derecho: dice "hay mas" sin flecha; solo con overflow real. */
.rt-root.rt-overflow[b-1s7p7vyw7m]::after {
    content: "";
    position: absolute;
    right: 0;
    top: 18px;
    bottom: 4px;
    width: 34px;
    background: linear-gradient(90deg, transparent, #fff 80%);
    pointer-events: none;
}

/* A11y (§6.1): sin animacion de entrada ni auto-scroll animado. */
@media (prefers-reduced-motion: reduce) {
    .rt-item.rt-nuevo[b-1s7p7vyw7m] {
        animation: none;
    }

    .rt-scroll[b-1s7p7vyw7m] {
        scroll-behavior: auto;
    }
}

/* Tactil (§6.1): fila mas alta y agarrable. */
@media (pointer: coarse) {
    .rt-scroll[b-1s7p7vyw7m] {
        min-height: 44px;
        align-items: center;
        padding-bottom: 6px;
    }
}

/* ===== Vista "lista" (widget Reconocimientos de hoy, 2026-10-12) =====
   Un renglon por alumno; caben 5, lo normal son 3. Unidades cqh del widget (container-type en .rw-root): escala si el docente lo agranda. */
.rl-lista[b-1s7p7vyw7m] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 1.45cqh;
}

.rl-item[b-1s7p7vyw7m] {
    display: flex;
    align-items: center;
    gap: 2cqh;
    min-width: 0;
    height: 13.5cqh;
    padding: 1cqh 2.2cqh;
    border-radius: 2.2cqh;
    background: #FAF8F2;
}

.rl-nuevo[b-1s7p7vyw7m] {
    background: #FFF6DD;
    animation: rl-pop-b-1s7p7vyw7m .6s cubic-bezier(.2, 1.5, .4, 1);
}

@keyframes rl-pop-b-1s7p7vyw7m {
    from { transform: scale(.6); opacity: 0; }
}

.rl-n[b-1s7p7vyw7m] {
    flex: 1;
    min-width: 0;
    font-family: var(--font-sans);
    font-weight: 700;
    font-size: 4cqh;
    line-height: 1.1;
    text-transform: uppercase;
    color: var(--carbon-1);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rl-stk[b-1s7p7vyw7m] {
    display: flex;
    flex: none;
    gap: .8cqh;
}

    .rl-stk img[b-1s7p7vyw7m] {
        width: 11.3cqh;
        height: 11.3cqh;
        object-fit: contain;
    }

.rl-mas[b-1s7p7vyw7m] {
    border: 0;
    background: none;
    padding: 0;
    font: inherit;
    font-size: 3.4cqh;
    font-weight: 700;
    color: var(--brand-teal-dark);
    cursor: pointer;
    align-self: center;
}

.rl-vacio[b-1s7p7vyw7m] {
    display: grid;
    place-items: center;
    gap: 1.6cqh;
    text-align: center;
    min-height: 38cqh;
    padding: 3cqh 2cqh;
    color: var(--text-muted);
    font-size: 3.5cqh;
    line-height: 1.3;
}

    .rl-vacio .material-symbols-rounded[b-1s7p7vyw7m] {
        font-size: 11cqh;
        color: #E8D9B5;
        font-variation-settings: 'FILL' 1;
    }

@media (prefers-reduced-motion: reduce) {
    .rl-nuevo[b-1s7p7vyw7m] { animation: none; }
}
/* /Components/Reconocimientos/ResultadoLote.razor.rz.scp.css */
/* ResultadoLote · tres colores (R9). Ratios WCAG calculados: tinte / chip blanco. */
.lr[b-j1x0d7b58f] { display: flex; flex-direction: column; gap: 10px; }
.lr-hero[b-j1x0d7b58f] { position: relative; display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 12px 0 4px; }
.lr-hero-im[b-j1x0d7b58f] { width: 150px; height: 150px; display: grid; place-items: center; border-radius: 50%; background: radial-gradient(circle at 50% 55%, var(--rc-glow), transparent 70%); }
.lr-hero-im img[b-j1x0d7b58f] { width: 140px; height: 140px; object-fit: contain; animation: lr-pop-b-j1x0d7b58f 240ms cubic-bezier(.34, 1.56, .64, 1) both; }
.lr-hero h3[b-j1x0d7b58f] { font-family: var(--font-serif); font-size: 28px; font-weight: 600; letter-spacing: -.4px; margin: 0; text-align: center; }
.lr-hero p[b-j1x0d7b58f] { margin: 0; font-size: 13px; color: var(--text-secondary); text-align: center; } /* 6.31 */
.lr-h h3[b-j1x0d7b58f] { font-family: var(--font-serif); font-size: 22px; font-weight: 600; letter-spacing: -.4px; margin: 0; }
.lr-h p[b-j1x0d7b58f] { margin: 4px 0 0; font-size: 13px; color: var(--text-secondary); }
.lr-confeti[b-j1x0d7b58f] { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.lr-confeti span[b-j1x0d7b58f] { position: absolute; top: -14px; width: 8px; height: 12px; border-radius: 2px; opacity: .9; animation: lr-caer-b-j1x0d7b58f 2.4s var(--ease) both; }
.lr-confeti span:nth-child(4n+1)[b-j1x0d7b58f] { background: var(--brand-teal-dark); }
.lr-confeti span:nth-child(4n+2)[b-j1x0d7b58f] { background: var(--gold); }
.lr-confeti span:nth-child(4n+3)[b-j1x0d7b58f] { background: var(--cf-lenguajes); }
.lr-confeti span:nth-child(4n+4)[b-j1x0d7b58f] { background: var(--success); }
.lr-confeti span:nth-child(1)[b-j1x0d7b58f] { left: 6%; } .lr-confeti span:nth-child(2)[b-j1x0d7b58f] { left: 13%; animation-delay: .1s; }
.lr-confeti span:nth-child(3)[b-j1x0d7b58f] { left: 20%; animation-delay: .25s; } .lr-confeti span:nth-child(4)[b-j1x0d7b58f] { left: 27%; animation-delay: .05s; }
.lr-confeti span:nth-child(5)[b-j1x0d7b58f] { left: 34%; animation-delay: .3s; } .lr-confeti span:nth-child(6)[b-j1x0d7b58f] { left: 41%; animation-delay: .15s; }
.lr-confeti span:nth-child(7)[b-j1x0d7b58f] { left: 48%; animation-delay: .35s; } .lr-confeti span:nth-child(8)[b-j1x0d7b58f] { left: 55%; animation-delay: .2s; }
.lr-confeti span:nth-child(9)[b-j1x0d7b58f] { left: 62%; animation-delay: .4s; } .lr-confeti span:nth-child(10)[b-j1x0d7b58f] { left: 69%; animation-delay: .1s; }
.lr-confeti span:nth-child(11)[b-j1x0d7b58f] { left: 76%; animation-delay: .3s; } .lr-confeti span:nth-child(12)[b-j1x0d7b58f] { left: 83%; animation-delay: .05s; }
.lr-confeti span:nth-child(13)[b-j1x0d7b58f] { left: 90%; animation-delay: .25s; } .lr-confeti span:nth-child(14)[b-j1x0d7b58f] { left: 95%; animation-delay: .45s; }
@keyframes lr-caer-b-j1x0d7b58f { 0% { transform: translateY(0) rotate(0); opacity: 0; } 10% { opacity: .9; } 100% { transform: translateY(190px) rotate(260deg); opacity: 0; } }
@keyframes lr-pop-b-j1x0d7b58f { 0% { transform: scale(.8); } 100% { transform: scale(1); } }
.lr-lista[b-j1x0d7b58f] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.lr-r[b-j1x0d7b58f] { display: flex; align-items: center; gap: 10px; min-height: 42px; padding: 6px 10px; border-radius: 10px; }
.lr-t[b-j1x0d7b58f] { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.lr-t b[b-j1x0d7b58f] { font-size: 12.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lr-t span[b-j1x0d7b58f] { font-size: 11px; line-height: 1.3; }
.lr-st[b-j1x0d7b58f] { font-size: 10px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; padding: 2px 7px; border-radius: 8px; background: var(--bg-panel); flex: 0 0 auto; }
.lr-r.ok[b-j1x0d7b58f] { background: var(--success-bg); }
.lr-r.ok .lr-t span[b-j1x0d7b58f], .lr-r.ok .lr-st[b-j1x0d7b58f] { color: var(--success-ink); } /* 6.52 tinte / 7.16 blanco */
.lr-r.def[b-j1x0d7b58f] { background: var(--warn-bg); }
.lr-r.def .lr-t span[b-j1x0d7b58f], .lr-r.def .lr-st[b-j1x0d7b58f] { color: var(--warning-ink); } /* 5.77 tinte / 6.20 blanco */
.lr-r.pen[b-j1x0d7b58f] { background: var(--error-bg); }
.lr-r.pen .lr-t span[b-j1x0d7b58f], .lr-r.pen .lr-st[b-j1x0d7b58f] { color: var(--danger); } /* 6.46 tinte / 7.07 blanco */
.lr-help[b-j1x0d7b58f] { margin: 0; font-size: 11.5px; color: var(--text-muted); line-height: 1.35; text-align: center; } /* 5.94 */
@media (prefers-reduced-motion: reduce) { .lr-confeti[b-j1x0d7b58f] { display: none; } .lr-hero-im img[b-j1x0d7b58f] { animation: none; } }
/* /Components/Reconocimientos/SelloPicker.razor.rz.scp.css */
/* SelloPicker · tokens de wwwroot/css/tokens.css. 4.5:1 = texto normal; 3:1 = componentes de UI. */
.sp[b-n7xo3ww077] { display: flex; flex-direction: column; gap: 10px; }
.sp-ulti[b-n7xo3ww077] { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.sp-ulti-l[b-n7xo3ww077] { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--text-secondary); } /* 6.31 blanco */
.sp-u[b-n7xo3ww077] { display: inline-flex; align-items: center; gap: 6px; background: var(--bg-cream); border: 1px solid var(--border-soft); border-radius: 999px;
    padding: 3px 10px 3px 3px; font: inherit; font-size: 11.5px; font-weight: 600; color: var(--text-primary); cursor: pointer; } /* 15.97 sobre bg-cream */
.sp-u img[b-n7xo3ww077] { width: 26px; height: 26px; object-fit: contain; }
.sp-tabs[b-n7xo3ww077] { display: flex; gap: 4px; overflow-x: auto; white-space: nowrap; scrollbar-width: none;
    -webkit-mask-image: linear-gradient(90deg, black 88%, transparent); mask-image: linear-gradient(90deg, black 88%, transparent); }
.sp-tab[b-n7xo3ww077] { height: 30px; padding: 0 12px; border-radius: 999px; border: 0; background: transparent; font: inherit; font-size: 12.5px; font-weight: 600;
    color: var(--text-secondary); white-space: nowrap; cursor: pointer; flex: 0 0 auto; } /* 6.31 */
.sp-tab.on[b-n7xo3ww077] { background: var(--text-primary); color: var(--bg-panel); } /* 17.08 */
.sp-grid[b-n7xo3ww077] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.sp-tile[b-n7xo3ww077] { position: relative; min-height: 100px; padding: 8px 4px; border-radius: 14px; border: 1px solid var(--border-soft); background: var(--bg-panel);
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; text-align: center; font: inherit; cursor: pointer;
    transition: transform .15s var(--ease), box-shadow .15s var(--ease); }
.sp-tile:hover:not(:disabled)[b-n7xo3ww077] { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.sp-tile.on[b-n7xo3ww077] { background: var(--bg-light-teal); box-shadow: 0 0 0 2px var(--brand-teal-deep); animation: sp-pop-b-n7xo3ww077 160ms cubic-bezier(.34, 1.56, .64, 1) both; } /* anillo 5.31 sobre light-teal */
.sp-tile:disabled[b-n7xo3ww077] { cursor: default; opacity: .6; }
.sp-im[b-n7xo3ww077] { width: 62px; height: 62px; display: grid; place-items: center; border-radius: 50%; background: radial-gradient(circle at 50% 55%, var(--rc-glow), transparent 70%); }
.sp-im img[b-n7xo3ww077] { width: 56px; height: 56px; object-fit: contain; display: block; }
.sp-im .msr[b-n7xo3ww077] { font-size: 32px; color: var(--text-muted); }
.sp-n[b-n7xo3ww077] { font-size: 11px; font-weight: 600; line-height: 1.2; color: var(--text-primary); max-width: 100%; padding: 0 6px; } /* 17.08 */
.sp-chk[b-n7xo3ww077] { position: absolute; top: 6px; right: 6px; width: 20px; height: 20px; border-radius: 50%; background: var(--brand-teal-deep); color: var(--bg-panel);
    display: grid; place-items: center; font-size: 13px; } /* blanco sobre teal-deep 5.96 */
.sp button:focus-visible[b-n7xo3ww077] { outline: none; box-shadow: 0 0 0 2px var(--bg-panel), 0 0 0 4px var(--brand-teal-deep); }
@keyframes sp-pop-b-n7xo3ww077 { 0% { transform: scale(.96); } 100% { transform: scale(1); } }
@media (max-width: 479px) { .sp-grid[b-n7xo3ww077] { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (prefers-reduced-motion: reduce) { .sp-tile[b-n7xo3ww077], .sp-tile.on[b-n7xo3ww077] { animation: none; transition: none; } }
/* /Components/Reconocimientos/VistaPreviaFamilia.razor.rz.scp.css */
/* VistaPreviaFamilia · injerto B de la maqueta. Ratios WCAG calculados (LEC-G007; umbral 4.5:1 de texto normal, medidos con script). */
.vp[b-qt8xzuzzff] { background: var(--bg-panel); border: 1px solid var(--border-soft); border-radius: 14px; padding: 10px 12px; display: flex; flex-direction: column; gap: 8px; }
.vp-h[b-qt8xzuzzff] { display: flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--text-secondary); } /* 6.31 sobre blanco */
.vp-h .msr[b-qt8xzuzzff] { font-size: 15px; color: var(--brand-teal-deep); }
.vp-x[b-qt8xzuzzff] { margin-left: auto; font-size: 11px; font-weight: 700; color: var(--brand-teal-deep); text-transform: none; letter-spacing: 0; } /* 5.96 sobre blanco */
.vp-notif[b-qt8xzuzzff] { display: flex; gap: 10px; align-items: flex-start; background: var(--bg-cream); border-radius: 12px; padding: 9px 10px; border: 1px solid var(--border-soft); }
.vp-notif img[b-qt8xzuzzff] { width: 40px; height: 40px; object-fit: contain; flex: 0 0 auto; }
.vp-tx[b-qt8xzuzzff] { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.vp-tx b[b-qt8xzuzzff] { font-size: 12.5px; line-height: 1.2; color: var(--text-primary); } /* >15 sobre bg-cream */
.vp-tx p[b-qt8xzuzzff] { margin: 0; font-size: 12px; color: var(--text-secondary); line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } /* 5.90 sobre bg-cream */
.vp-tx small[b-qt8xzuzzff] { font-size: 10px; color: var(--text-muted); } /* 5.55 sobre bg-cream */
.vp-fn[b-qt8xzuzzff] { margin: 0; display: flex; gap: 6px; align-items: flex-start; font-size: 11px; color: var(--text-muted); line-height: 1.35; } /* 5.94 sobre blanco */
.vp-fn .msr[b-qt8xzuzzff] { font-size: 14px; margin-top: 1px; }
/* /Components/ReporteRapidoPanel.razor.rz.scp.css */
/* Overlay */
.rpanel-overlay[b-f5btd28fit] {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0,0,0,0.3);
    z-index: 99;
}

/* Panel */
.rpanel-container[b-f5btd28fit] {
    position: fixed;
    right: 0; top: 0; bottom: 0;
    width: 480px;
    background: white;
    border-left: 1px solid #E0E0E0;
    z-index: 100;
    overflow-y: auto;
    transform: translateX(100%);
    transition: transform 0.3s ease;
}
.rpanel-open[b-f5btd28fit] { transform: translateX(0); }

/* Header rojo */
.rpanel-header[b-f5btd28fit] {
    background: #D35D52;
    padding: 14px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: sticky;
    top: 0;
    z-index: 2;
}
.rpanel-header-left[b-f5btd28fit] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    min-width: 0;
}
.rpanel-close[b-f5btd28fit] {
    width: 32px; height: 32px;
    border-radius: 8px;
    background: rgba(255,255,255,0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    transition: background 0.2s;
}
.rpanel-close:hover[b-f5btd28fit] { background: rgba(255,255,255,0.3); }
.rpanel-subtitle[b-f5btd28fit] { font-size: 10px; color: rgba(255,255,255,0.7); text-transform: uppercase; letter-spacing: 0.5px; }
.rpanel-name[b-f5btd28fit] {
    font-size: 14px;
    font-weight: 500;
    color: white;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 300px;
}

/* Content */
.rpanel-content[b-f5btd28fit] { padding: 16px; }

/* Loading */
.rpanel-loading[b-f5btd28fit] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 40px 20px;
    gap: 12px;
    color: #999;
    font-size: 13px;
}
.rpanel-spinner[b-f5btd28fit] {
    width: 28px; height: 28px;
    border: 3px solid #FDEAEA;
    border-top: 3px solid #D35D52;
    border-radius: 50%;
    animation: rspin-b-f5btd28fit 0.8s linear infinite;
}
@keyframes rspin-b-f5btd28fit { to { transform: rotate(360deg); } }

/* Sections */
.rpanel-section[b-f5btd28fit] { margin-bottom: 16px; }
.rpanel-section-title[b-f5btd28fit] {
    font-size: 11px;
    color: #999;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 8px;
}

/* Falta chips */
.falta-chips[b-f5btd28fit] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.falta-chip[b-f5btd28fit] {
    padding: 7px 14px;
    border-radius: 20px;
    font-size: 12px;
    cursor: pointer;
    transition: all 0.15s;
    user-select: none;
}
.falta-chip-inactive[b-f5btd28fit] {
    background: white;
    border: 1px solid #DDD;
    color: #666;
}
.falta-chip-inactive:hover[b-f5btd28fit] { border-color: #BBB; }
.falta-chip-active[b-f5btd28fit] {
    background: rgba(211,93,82,0.1);
    border: 1.5px solid #D35D52;
    color: #D35D52;
    font-weight: 500;
}

/* Grave dropdown */
.grave-select-wrapper[b-f5btd28fit] {
    display: flex;
    align-items: center;
    gap: 8px;
    background: white;
    border: 1px solid #E8E8E8;
    border-radius: 10px;
    padding: 8px 14px;
}
.grave-select[b-f5btd28fit] {
    flex: 1;
    border: none;
    outline: none;
    font-family: inherit;
    font-size: 13px;
    color: #333;
    background: transparent;
    cursor: pointer;
}

/* Textarea */
.rpanel-textarea[b-f5btd28fit] {
    width: 100%;
    min-height: 80px;
    padding: 12px;
    border: 1px solid #E8E8E8;
    border-radius: 10px;
    font-family: 'Poppins', sans-serif;
    font-size: 13px;
    color: #333;
    resize: vertical;
    background: #FBFBFB;
    outline: none;
    transition: border-color 0.2s;
}
.rpanel-textarea:focus[b-f5btd28fit] { border-color: #D35D52; }

/* Notifications card */
.rpanel-notif-card[b-f5btd28fit] {
    background: #F7F7F7;
    border-radius: 12px;
    padding: 14px;
    margin-bottom: 16px;
}
.rpanel-notif-title[b-f5btd28fit] {
    font-size: 10px;
    color: #999;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 10px;
}
.rpanel-notif-row[b-f5btd28fit] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 6px 0;
}
.rpanel-notif-info[b-f5btd28fit] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #444;
}

/* Toggle switch */
.toggle-switch[b-f5btd28fit] {
    width: 40px;
    height: 22px;
    border-radius: 11px;
    background: #CCC;
    position: relative;
    cursor: pointer;
    transition: background 0.2s;
    flex-shrink: 0;
}
.toggle-switch.active[b-f5btd28fit] { background: #4BA8AA; }
.toggle-switch[b-f5btd28fit]::after {
    content: '';
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: white;
    position: absolute;
    top: 2px;
    left: 2px;
    transition: transform 0.2s;
    box-shadow: 0 1px 3px rgba(0,0,0,0.15);
}
.toggle-switch.active[b-f5btd28fit]::after { transform: translateX(18px); }

/* WhatsApp card */
.rpanel-wa-card[b-f5btd28fit] {
    display: flex;
    align-items: center;
    gap: 10px;
    background: rgba(37,211,102,0.06);
    border: 1px solid rgba(37,211,102,0.2);
    border-radius: 10px;
    padding: 10px 12px;
    margin-top: 10px;
}

/* Historial */
.rpanel-historial[b-f5btd28fit] {
    background: #F7F7F7;
    border-radius: 12px;
    padding: 14px;
    margin-bottom: 16px;
}
.rpanel-hist-item[b-f5btd28fit] {
    display: flex;
    gap: 10px;
    padding: 8px 0;
    border-bottom: 0.5px solid #EAEAEA;
}
.rpanel-hist-item:last-child[b-f5btd28fit] { border-bottom: none; }
.rpanel-hist-bar[b-f5btd28fit] {
    width: 3px;
    border-radius: 2px;
    background: #E88D8D;
    flex-shrink: 0;
    min-height: 24px;
}
.rpanel-hist-content[b-f5btd28fit] { flex: 1; min-width: 0; }
.rpanel-hist-faltas[b-f5btd28fit] { font-size: 11px; font-weight: 500; color: #D35D52; margin-bottom: 2px; }
.rpanel-hist-desc[b-f5btd28fit] { font-size: 11px; color: #555; }
.rpanel-hist-meta[b-f5btd28fit] { font-size: 10px; color: #BBB; margin-top: 3px; }

/* Submit button */
.rpanel-btn-agregar[b-f5btd28fit] {
    width: 100%;
    background: #D35D52;
    color: white;
    padding: 10px;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border: none;
    font-family: inherit;
    transition: opacity 0.2s;
    margin-bottom: 12px;
}
.rpanel-btn-agregar:hover:not(:disabled)[b-f5btd28fit] { opacity: 0.9; }
.rpanel-btn-agregar:disabled[b-f5btd28fit] { opacity: 0.5; cursor: not-allowed; }

/* Toast */
.rpanel-toast[b-f5btd28fit] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 10px 14px;
    border-radius: 10px;
    font-size: 12px;
    font-weight: 500;
    background: rgba(75,168,170,0.12);
    color: #4BA8AA;
    border: 1px solid rgba(75,168,170,0.25);
    animation: rslideUp-b-f5btd28fit 0.3s ease;
}
@keyframes rslideUp-b-f5btd28fit {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Responsive */
@media (max-width: 1024px) {
    .rpanel-container[b-f5btd28fit] { width: 420px; }
}
@media (max-width: 768px) {
    .rpanel-container[b-f5btd28fit] { width: 100%; }
    .rpanel-name[b-f5btd28fit] { max-width: 180px; }
}
/* /Components/ReportesIncidencia/SelectorAlumnosBuscador.razor.rz.scp.css */
/* Reportes de incidencia v1 · «¿A quién?» (spec diseno/reportes-incidencia §3.1-3.2, maqueta-v1).
   Color por grupo via --gc/--gb/--gi/--gl (GruposHelper: 1° verde, 2° ambar, 3° indigo). */

.sab-card[b-9zkn9meix0] {
    background: var(--bg-panel);
    border-radius: 16px;
    padding: 14px 16px;
    box-shadow: var(--pz-shadow-soft);
    display: grid;
    gap: 10px;
    min-width: 0;
}

.sab-h[b-9zkn9meix0] { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.sab-h b[b-9zkn9meix0] { display: flex; align-items: center; gap: 7px; font-size: 14px; font-weight: 800; color: var(--text-primary); }
.sab-h b .msr[b-9zkn9meix0] { font-size: 18px; color: var(--brand-teal-deep); }
.sab-h small[b-9zkn9meix0] { color: var(--text-muted); font-size: 11px; font-weight: 600; }

/* Buscador */
.sab-campo[b-9zkn9meix0] {
    display: flex; align-items: center; gap: 8px;
    height: 42px; padding: 0 10px;
    border: 1.5px solid var(--border-soft);
    background: var(--cream);
    border-radius: 12px;
}
.sab-campo:focus-within[b-9zkn9meix0] { border-color: var(--brand-teal-primary); background: var(--bg-panel); box-shadow: 0 0 0 4px var(--bg-light-teal); }
.sab-campo > .msr[b-9zkn9meix0] { font-size: 19px; color: var(--text-muted); }
.sab-campo input[b-9zkn9meix0] {
    flex: 1; min-width: 0; border: 0; outline: 0; background: transparent;
    font: inherit; font-size: 14px; font-weight: 600; color: var(--text-primary);
}
.sab-campo input[b-9zkn9meix0]::placeholder { color: var(--text-muted); font-weight: 500; }
.sab-campo input[b-9zkn9meix0]::-webkit-search-cancel-button { display: none; }
.sab-x[b-9zkn9meix0] { border: 0; background: transparent; cursor: pointer; padding: 0; color: var(--text-muted); display: grid; }
.sab-x .msr[b-9zkn9meix0] { font-size: 18px; }

/* Chips de grupo: filtran, no son un paso */
.sab-grupos[b-9zkn9meix0] { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; }
.sab-gchip[b-9zkn9meix0] {
    border: 1px solid transparent; background: var(--gb); color: var(--gi);
    border-radius: 999px; padding: 4px 10px;
    font: inherit; font-size: 12px; font-weight: 800; cursor: pointer;
}
.sab-gchip[aria-pressed="true"][b-9zkn9meix0] { background: var(--gc); color: #FFFFFF; }
.sab-gchip.todos[b-9zkn9meix0] { background: var(--cream); color: var(--text-secondary); }
.sab-gchip.todos[aria-pressed="true"][b-9zkn9meix0] { background: var(--carbon-2); color: #FFFFFF; }

/* Resultados */
.sab-res[b-9zkn9meix0] { display: grid; gap: 2px; max-height: 300px; overflow: auto; margin: 0 -4px; padding: 0 4px; }
.sab-al[b-9zkn9meix0] {
    display: grid; grid-template-columns: 32px minmax(0, 1fr) auto 26px; gap: 9px; align-items: center;
    padding: 6px; border-radius: 10px; border: 0; background: transparent;
    font: inherit; color: inherit; text-align: left; cursor: pointer;
}
.sab-al:hover[b-9zkn9meix0] { background: var(--cream); }
.sab-al[aria-pressed="true"][b-9zkn9meix0] { background: var(--bg-light-teal); }
.sab-av[b-9zkn9meix0] {
    width: 32px; height: 32px; border-radius: 50%;
    display: grid; place-items: center;
    font-size: 11px; font-weight: 800;
    background: var(--gb); color: var(--gi);
}
.sab-n[b-9zkn9meix0] {
    font-weight: 800; font-size: 12.5px; letter-spacing: .01em; color: var(--text-primary);
    min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.sab-n mark[b-9zkn9meix0] { background: #FFE9A8; color: inherit; border-radius: 3px; padding: 0 1px; }
.sab-gp[b-9zkn9meix0] { font-size: 10.5px; font-weight: 800; border-radius: 6px; padding: 1px 7px; background: var(--gb); color: var(--gi); }
.sab-tick[b-9zkn9meix0] {
    width: 22px; height: 22px; border-radius: 50%;
    border: 2px solid var(--border-soft);
    display: grid; place-items: center; color: #FFFFFF;
}
.sab-tick .msr[b-9zkn9meix0] { font-size: 15px; visibility: hidden; }
.sab-al[aria-pressed="true"] .sab-tick[b-9zkn9meix0] { background: var(--brand-teal-deep); border-color: var(--brand-teal-deep); }
.sab-al[aria-pressed="true"] .sab-tick .msr[b-9zkn9meix0] { visibility: visible; }
.sab-mas[b-9zkn9meix0] { font-size: 11px; color: var(--text-muted); padding: 4px 6px; }
.sab-vacio[b-9zkn9meix0] { color: var(--text-secondary); font-size: 12px; padding: 10px 6px; display: flex; gap: 8px; align-items: center; }
.sab-vacio .msr[b-9zkn9meix0] { font-size: 18px; color: var(--text-muted); }
.sab-girando[b-9zkn9meix0] { animation: sab-gira-b-9zkn9meix0 1s linear infinite; }
@keyframes sab-gira-b-9zkn9meix0 { to { transform: rotate(360deg); } }

/* Bandeja «En el reporte · N», agrupada por grupo */
.sab-bandeja[b-9zkn9meix0] { border-top: 1px dashed var(--border-med); padding-top: 10px; display: grid; gap: 8px; }
.sab-band-h[b-9zkn9meix0] { display: flex; justify-content: space-between; align-items: center; }
.sab-band-h b[b-9zkn9meix0] { font-size: 12px; font-weight: 800; color: var(--text-primary); }
.sab-band-h button[b-9zkn9meix0] {
    border: 0; background: transparent; color: var(--text-secondary);
    font: inherit; font-size: 11px; font-weight: 700; cursor: pointer;
}
.sab-bg[b-9zkn9meix0] { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; align-items: start; }
.sab-bg-tag[b-9zkn9meix0] {
    justify-self: start; min-width: 30px; text-align: center;
    font-size: 11px; font-weight: 800; border-radius: 7px; padding: 3px 7px;
    background: var(--gc); color: #FFFFFF;
}
.sab-bg > div[b-9zkn9meix0] { display: flex; flex-wrap: wrap; gap: 5px; min-width: 0; }
.sab-sel[b-9zkn9meix0] {
    display: inline-flex; align-items: center; gap: 5px; max-width: 100%;
    border: 1px solid var(--gl); background: var(--gb); color: var(--gi);
    border-radius: 999px; padding: 2px 4px 2px 3px;
    font-size: 11.5px; font-weight: 800;
}
.sab-sel .sab-av[b-9zkn9meix0] { width: 20px; height: 20px; font-size: 8.5px; background: var(--bg-panel); }
.sab-sel-n[b-9zkn9meix0] { min-width: 0; max-width: 170px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sab-sel button[b-9zkn9meix0] { border: 0; background: transparent; color: var(--gi); cursor: pointer; padding: 0; display: grid; opacity: .7; }
.sab-sel button:hover[b-9zkn9meix0] { opacity: 1; }
.sab-sel button .msr[b-9zkn9meix0] { font-size: 15px; }

@media (prefers-reduced-motion: no-preference) {
    .sab-sel.nuevo[b-9zkn9meix0] { animation: sab-pop-b-9zkn9meix0 .35s cubic-bezier(.3, 1.6, .5, 1); }
    @keyframes sab-pop-b-9zkn9meix0 { from { transform: scale(.6); opacity: 0; } }
}

.sab-card button:focus-visible[b-9zkn9meix0],
.sab-card input:focus-visible[b-9zkn9meix0] { outline: 2.5px solid var(--brand-teal-deep); outline-offset: 1px; }

@media (max-width: 575.98px) {
    .sab-card[b-9zkn9meix0] { padding: 12px 14px; }
    .sab-grupos[b-9zkn9meix0] { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
    .sab-gchip[b-9zkn9meix0] { flex: none; }
    .sab-res[b-9zkn9meix0] { max-height: 260px; }
}
/* /Components/Sala/SalaRaiz.razor.rz.scp.css */
/* Sala de maestros — estilos compartidos de Components/Sala/* (todos con ::deep bajo .sala-raiz).
   Tokens de wwwroot/css/tokens.css, adaptación por contenedor (@container sala) y
   prefers-reduced-motion. Traducción del prototipo aprobado docs/sala-de-maestros/prototipo.html. */

.sala-raiz[b-bdv9a7mmz2] {
    --sala-tint-ink: var(--av-tint-ink, var(--brand-teal-deep));
    --sala-info-bg: rgba(45, 110, 163, 0.12);
    --sala-scrim: rgba(20, 22, 25, 0.48);
    container: sala / inline-size;
    position: relative;
    height: 100dvh;
    overflow: hidden;
    background: var(--bg);
    color: var(--text-primary);
    font-family: var(--font-sans);
    font-size: 14px;
    line-height: 1.5;
}
.sala-raiz.pagina[b-bdv9a7mmz2] {
    height: auto;
    min-height: 100dvh;
    overflow: visible;
}
.sala-raiz[b-bdv9a7mmz2]  :where(h1, h2, h3) {
    font-family: var(--font-serif);
    font-weight: 600;
    letter-spacing: -0.4px;
    margin: 0;
}
.sala-raiz[b-bdv9a7mmz2]  :where(p) {
    margin: 0;
}
.sala-raiz[b-bdv9a7mmz2]  :where(button:not(.ui-btn)) {
    font: inherit;
    color: inherit;
    background: none;
    border: 0;
    padding: 0;
    cursor: pointer;
    text-align: inherit;
}
.sala-raiz[b-bdv9a7mmz2]  input,
.sala-raiz[b-bdv9a7mmz2]  textarea,
.sala-raiz[b-bdv9a7mmz2]  select {
    font: inherit;
    color: inherit;
}
.sala-raiz[b-bdv9a7mmz2]  :where(.msr) {
    vertical-align: middle;
    flex: none;
}
.sala-raiz[b-bdv9a7mmz2]  .msr.ok {
    color: var(--success-ink);
}
.sala-raiz[b-bdv9a7mmz2]  .tnum {
    font-variant-numeric: tabular-nums;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-sr {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-eyebrow {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--text-secondary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    font-size: 13px;
    font-weight: 700;
    border-radius: var(--radius-md);
    padding: 9px 14px;
    border: 1px solid var(--border-med);
    background: var(--bg-panel);
    color: var(--text-primary);
    min-height: 38px;
    white-space: nowrap;
    text-decoration: none;
    transition: border-color .15s ease, background .15s ease;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-btn:hover {
    border-color: var(--text-secondary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-btn .msr {
    font-size: 18px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-btn.pri {
    background: var(--brand-teal-primary);
    border-color: var(--brand-teal-primary);
    color: var(--text-primary);
    box-shadow: 0 2px 6px rgba(110, 198, 200, 0.3);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-btn.pri:hover {
    background: var(--brand-teal-dark);
    border-color: var(--brand-teal-dark);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-btn.ghost {
    border-color: transparent;
    background: transparent;
    color: var(--text-secondary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-btn.ghost:hover {
    background: var(--bg-cream);
    color: var(--text-primary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-btn.danger {
    background: var(--danger);
    border-color: var(--danger);
    color: var(--bg-panel);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-btn.sm {
    min-height: 30px;
    padding: 5px 10px;
    font-size: 12.5px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-btn.full {
    width: 100%;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-btn[disabled] {
    opacity: .5;
    cursor: not-allowed;
    box-shadow: none;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-ib {
    width: 38px;
    height: 38px;
    border-radius: var(--radius-md);
    display: grid;
    place-items: center;
    color: var(--text-secondary);
    flex: none;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-ib:hover {
    background: var(--bg-cream);
    color: var(--text-primary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-ib.sm {
    width: 32px;
    height: 32px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-ib.send {
    background: var(--brand-teal-primary);
    color: var(--text-primary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-ib.send:hover {
    background: var(--brand-teal-dark);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-ib[disabled] {
    opacity: .45;
    cursor: not-allowed;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-link {
    color: var(--brand-teal-deep);
    font-weight: 700;
    text-decoration: underline;
    margin-left: 4px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-why {
    display: flex;
    gap: 6px;
    align-items: flex-start;
    font-size: 12px;
    color: var(--text-secondary);
    margin-top: 4px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-why .msr {
    font-size: 16px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-hint {
    font-size: 12px;
    color: var(--text-secondary);
    display: flex;
    gap: 6px;
    align-items: center;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-hint .msr {
    font-size: 15px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-hint.pad {
    padding: 6px 10px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-err {
    color: var(--danger);
    font-size: 12.5px;
    font-weight: 600;
    display: flex;
    gap: 6px;
    align-items: center;
    flex-wrap: wrap;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-err .msr {
    font-size: 16px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 11.5px;
    font-weight: 700;
    border-radius: 99px;
    padding: 2px 9px;
    white-space: nowrap;
    border: 1px solid var(--border-med);
    color: var(--text-secondary);
    background: var(--bg-panel);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-chip .msr {
    font-size: 14px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-chip.esp {
    background: var(--ev-cte-bg);
    border-color: transparent;
    color: var(--ev-cte);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-chip.sens {
    background: var(--warn-bg);
    border-color: transparent;
    color: var(--warning-ink);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-chip.proy {
    background: var(--gold-bg);
    border-color: transparent;
    color: var(--gold-text);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-chip.dm {
    background: var(--bg-light-teal);
    border-color: transparent;
    color: var(--sala-tint-ink);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-pill {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 11.5px;
    font-weight: 700;
    border-radius: 99px;
    padding: 2px 9px;
    white-space: nowrap;
    border: 1px solid transparent;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-pill.todo,
.sala-raiz[b-bdv9a7mmz2]  .sala-pill.curso {
    background: var(--bg-cream);
    border-color: var(--border-med);
    color: var(--text-secondary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-pill.entg {
    background: var(--sala-info-bg);
    color: var(--info-ink);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-pill.adj {
    background: var(--warn-bg);
    color: var(--warning-ink);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-pill.ok {
    background: var(--success-bg);
    color: var(--success-ink);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-kind {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-kind .msr {
    font-size: 15px;
}
.sala-raiz[b-bdv9a7mmz2]  .k-pend {
    color: var(--brand-teal-deep);
}
.sala-raiz[b-bdv9a7mmz2]  .k-entr {
    color: var(--info-ink);
}
.sala-raiz[b-bdv9a7mmz2]  .k-acu {
    color: var(--gold-text);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-card {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-ent {
    width: 38px;
    height: 38px;
    border-radius: var(--radius-lg);
    display: grid;
    place-items: center;
    background: var(--bg-light-teal);
    color: var(--sala-tint-ink);
    flex: none;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-ent.esp {
    background: var(--ev-cte-bg);
    color: var(--ev-cte);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-ent.sens {
    background: var(--warn-bg);
    color: var(--warning-ink);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-ent.proy {
    background: var(--gold-bg);
    color: var(--gold-text);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-stack {
    display: inline-flex;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-stack > * + * {
    margin-left: -7px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-bd {
    margin-left: auto;
    font-size: 10.5px;
    font-weight: 700;
    background: var(--brand-teal-primary);
    color: var(--text-primary);
    border-radius: 99px;
    padding: 1px 7px;
    min-width: 20px;
    text-align: center;
}
.sala-raiz[b-bdv9a7mmz2]  .sala {
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr) 340px;
    height: 100%;
    min-height: 0;
    position: relative;
}
.sala-raiz[b-bdv9a7mmz2]  .pane {
    min-height: 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    background: var(--bg);
}
.sala-raiz[b-bdv9a7mmz2]  .pane.list {
    border-right: 1px solid var(--border-soft);
    background: var(--bg-cream);
}
.sala-raiz[b-bdv9a7mmz2]  .pane.side {
    border-left: 1px solid var(--border-soft);
    background: var(--bg-panel);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-lh {
    padding: 14px 14px 10px;
    display: grid;
    gap: 10px;
    flex: none;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-lh-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    flex-wrap: wrap;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-lh-top h1 {
    font-size: 21px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-srch {
    display: flex;
    align-items: center;
    gap: 8px;
    border: 1px solid var(--border-med);
    background: var(--bg-panel);
    border-radius: 10px;
    padding: 0 10px;
    color: var(--text-secondary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-srch input {
    border: 0;
    outline: 0;
    background: transparent;
    padding: 8px 0;
    flex: 1;
    min-width: 0;
    font-size: 13.5px;
    color: var(--text-primary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-srch:focus-within {
    border-color: var(--brand-teal);
    box-shadow: 0 0 0 3px rgba(109, 199, 208, .25);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-filt {
    display: flex;
    gap: 4px;
    overflow-x: auto;
    scrollbar-width: none;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-filt button {
    font-size: 12px;
    font-weight: 700;
    color: var(--text-secondary);
    padding: 4px 10px;
    border-radius: 99px;
    border: 1px solid var(--border-med);
    white-space: nowrap;
    background: var(--bg-panel);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-filt button[aria-pressed="true"] {
    background: var(--text-primary);
    border-color: var(--text-primary);
    color: var(--bg-panel);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-mytasks {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 14px 8px;
    padding: 9px 12px;
    border-radius: var(--radius-lg);
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    font-size: 13px;
    font-weight: 700;
    flex: none;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-mytasks > .msr {
    color: var(--brand-teal-deep);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-mytasks small {
    display: block;
    font-size: 11.5px;
    font-weight: 500;
    color: var(--text-secondary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-cl {
    overflow-y: auto;
    flex: 1;
    padding: 2px 8px 16px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-cl h2 {
    font-family: var(--font-sans);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--text-secondary);
    padding: 12px 8px 4px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-ci {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    padding: 8px;
    border-radius: var(--radius-lg);
    width: 100%;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-ci:hover {
    background: var(--bg-panel);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-ci[aria-current="true"] {
    background: var(--bg-panel);
    box-shadow: var(--shadow-sm);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-ci-txt {
    min-width: 0;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-ci b {
    display: block;
    font-size: 13.5px;
    line-height: 1.25;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-weight: 600;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-ci small {
    display: block;
    font-size: 12px;
    color: var(--text-secondary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-ci.un b {
    font-weight: 800;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-ci.un small {
    color: var(--text-primary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-lock {
    font-size: 14px;
    color: var(--warning-ink);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-ci-rt {
    display: grid;
    justify-items: end;
    gap: 3px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-ci time {
    font-size: 11px;
    color: var(--text-secondary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-n {
    font-size: 10.5px;
    font-weight: 800;
    background: var(--brand-teal-primary);
    color: var(--text-primary);
    border-radius: 99px;
    padding: 0 6px;
    min-width: 18px;
    text-align: center;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-nota-dir {
    display: flex;
    gap: 6px;
    padding: 12px 8px;
    font-size: 12px;
    color: var(--text-secondary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-nota-dir .msr {
    font-size: 16px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-empty-l {
    padding: 24px 12px;
    text-align: center;
    color: var(--text-secondary);
    font-size: 13px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-skel {
    display: grid;
    gap: 12px;
    padding: 12px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-skel-row {
    display: flex;
    gap: 10px;
    align-items: center;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-skel-row > div {
    flex: 1;
    display: grid;
    gap: 6px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-skel-av {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--border-soft);
    flex: none;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-sk {
    height: 12px;
    border-radius: 6px;
    background: linear-gradient(90deg, var(--border-soft) 0%, var(--bg-panel) 50%, var(--border-soft) 100%);
    background-size: 200% 100%;
    animation: sala-shim-b-bdv9a7mmz2 1.4s linear infinite;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-sk.w45 {
    width: 45%;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-ch {
    padding: 12px 16px;
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    align-items: center;
    gap: 12px;
    flex: none;
    background: var(--bg-panel);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-ch .back {
    display: none;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-ch-t {
    min-width: 0;
    flex: 1;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-ch h2 {
    font-size: 19px;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-ch-sub {
    display: flex;
    gap: 6px;
    align-items: center;
    flex-wrap: wrap;
    margin-top: 3px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-aud {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
    border: 1px solid var(--border-med);
    border-radius: 99px;
    padding: 2px 9px 2px 3px;
    background: var(--bg-panel);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-aud:hover {
    border-color: var(--text-secondary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-feed {
    flex: 1;
    overflow-y: auto;
    display: flex;
    flex-direction: column-reverse;
    min-height: 0;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-feed-in {
    padding: 6px 8px 10px;
    display: flex;
    flex-direction: column;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-day {
    align-self: center;
    font-size: 11.5px;
    font-weight: 700;
    color: var(--text-secondary);
    background: var(--bg-cream);
    border: 1px solid var(--border-soft);
    border-radius: 99px;
    padding: 2px 10px;
    margin: 10px 0;
    text-transform: capitalize;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-sysm {
    align-self: center;
    font-size: 12px;
    color: var(--text-secondary);
    display: flex;
    gap: 6px;
    align-items: center;
    padding: 6px 12px;
    text-align: center;
    max-width: 90%;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-sysm .msr {
    font-size: 16px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-msg {
    position: relative;
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 10px;
    padding: 9px 10px;
    border-radius: var(--radius-lg);
    scroll-margin-top: 80px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-msg:hover,
.sala-raiz[b-bdv9a7mmz2]  .sala-msg:focus-within {
    background: var(--bg-cream);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-msg.hl {
    background: var(--bg-light-teal);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-msg-body {
    min-width: 0;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-hd {
    display: flex;
    gap: 8px;
    align-items: baseline;
    flex-wrap: wrap;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-hd b {
    font-size: 14px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-hd small {
    font-size: 12px;
    color: var(--text-secondary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-tx {
    font-size: 15px;
    line-height: 1.55;
    margin-top: 1px;
    overflow-wrap: anywhere;
    white-space: pre-wrap;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-mention {
    font-weight: 700;
    color: var(--sala-tint-ink);
    background: var(--bg-light-teal);
    border-radius: 5px;
    padding: 0 4px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-mact {
    position: absolute;
    top: 6px;
    right: 8px;
    display: flex;
    gap: 2px;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: 10px;
    box-shadow: var(--shadow-sm);
    padding: 2px;
    opacity: 0;
    pointer-events: none;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-msg:hover .sala-mact,
.sala-raiz[b-bdv9a7mmz2]  .sala-msg:focus-within .sala-mact {
    opacity: 1;
    pointer-events: auto;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-mact button {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: grid;
    place-items: center;
    color: var(--text-secondary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-mact button:hover {
    background: var(--bg-cream);
    color: var(--text-primary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-mact .msr {
    font-size: 18px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-thr {
    display: inline-flex;
    gap: 6px;
    align-items: center;
    margin-top: 6px;
    font-size: 12.5px;
    font-weight: 700;
    color: var(--brand-teal-deep);
    padding: 3px 8px 3px 4px;
    border-radius: 8px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-thr:hover {
    background: var(--bg-panel);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-thr .msr {
    font-size: 17px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-thr small {
    font-weight: 500;
    color: var(--text-secondary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-file {
    display: inline-flex;
    gap: 10px;
    align-items: center;
    margin-top: 8px;
    border: 1px solid var(--border-soft);
    background: var(--bg-panel);
    border-radius: var(--radius-md);
    padding: 7px 11px;
    max-width: 100%;
    text-align: left;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-file > .msr {
    color: var(--danger);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-file b {
    font-size: 13px;
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-file small {
    font-size: 11.5px;
    color: var(--text-secondary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-item {
    margin-top: 8px;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    border: 1px solid var(--border-soft);
    border-left: 3px solid var(--brand-teal-deep);
    background: var(--bg-panel);
    border-radius: var(--radius-md);
    padding: 8px 11px;
    max-width: 520px;
    width: 100%;
    text-align: left;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-item > .msr {
    color: var(--brand-teal-deep);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-item.entr {
    border-left-color: var(--info-ink);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-item.entr > .msr {
    color: var(--info-ink);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-item.acu {
    border-left-color: var(--pin-gold);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-item.acu > .msr {
    color: var(--pin-gold);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-item.en-panel {
    margin: 8px 10px 0;
    width: calc(100% - 20px);
    max-width: none;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-item-txt {
    min-width: 0;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-item b {
    font-size: 13.5px;
    display: block;
    line-height: 1.3;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-item small {
    font-size: 12px;
    color: var(--text-secondary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-item:hover {
    border-color: var(--border-med);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-sendst {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-top: 6px;
    font-size: 12.5px;
    flex-wrap: wrap;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-sendst.e {
    color: var(--danger);
    font-weight: 600;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-sendst.w {
    color: var(--text-secondary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-spin {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 2px solid var(--border-med);
    border-top-color: var(--brand-teal-deep);
    animation: sala-spin-b-bdv9a7mmz2 .8s linear infinite;
    flex: none;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-banner {
    display: flex;
    gap: 10px;
    align-items: center;
    padding: 9px 12px;
    border-radius: var(--radius-md);
    font-size: 13px;
    margin: 8px 10px 0;
    flex: none;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-banner.off {
    background: var(--warn-bg);
    color: var(--warning-ink);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-banner.info {
    background: var(--sala-info-bg);
    color: var(--info-ink);
    margin: 0;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-comp {
    border-top: 1px solid var(--border-soft);
    padding: 9px 12px 12px;
    position: relative;
    flex: none;
    background: var(--bg-panel);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-towho {
    display: flex;
    gap: 6px;
    align-items: center;
    font-size: 12px;
    color: var(--text-secondary);
    margin-bottom: 7px;
    flex-wrap: wrap;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-towho .msr {
    font-size: 16px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-towho b {
    color: var(--text-primary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-towho.sens {
    background: var(--warn-bg);
    color: var(--warning-ink);
    border-radius: var(--radius-md);
    padding: 6px 9px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-towho.sens b {
    color: var(--warning-ink);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-cbox {
    display: flex;
    gap: 6px;
    align-items: flex-end;
    border: 1px solid var(--border-med);
    border-radius: var(--radius-lg);
    background: var(--bg-panel);
    padding: 5px 5px 5px 8px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-cbox:focus-within {
    border-color: var(--brand-teal);
    box-shadow: 0 0 0 3px rgba(109, 199, 208, .25);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-cbox textarea {
    flex: 1;
    border: 0;
    outline: 0;
    resize: none;
    background: transparent;
    font-size: 15px;
    line-height: 1.45;
    padding: 7px 0;
    min-height: 36px;
    max-height: 120px;
    min-width: 0;
    field-sizing: content;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-adj-btn {
    position: relative;
    cursor: pointer;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-file-input {
    position: absolute;
    inset: 0;
    opacity: 0;
    width: 100%;
    height: 100%;
    cursor: pointer;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-adjs {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-top: 7px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-adj-chip {
    display: inline-flex;
    gap: 8px;
    align-items: center;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    padding: 4px 6px 4px 9px;
    font-size: 12.5px;
    background: var(--bg-cream);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-adj-chip small {
    display: block;
    font-size: 11px;
    color: var(--text-secondary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-adj-chip.error {
    border-color: var(--danger);
    color: var(--danger);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-x {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    display: grid;
    place-items: center;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-x .msr {
    font-size: 16px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-x:hover {
    background: var(--border-soft);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-mlist {
    position: absolute;
    left: 12px;
    bottom: calc(100% - 4px);
    width: min(320px, calc(100% - 24px));
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    padding: 6px;
    z-index: 5;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-mlist button {
    display: flex;
    gap: 10px;
    align-items: center;
    width: 100%;
    padding: 7px 8px;
    border-radius: 8px;
    font-size: 13.5px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-mlist button:hover,
.sala-raiz[b-bdv9a7mmz2]  .sala-mlist button:focus-visible {
    background: var(--bg-cream);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-mlist small {
    display: block;
    font-size: 11.5px;
    color: var(--text-secondary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-ft {
    font-size: 11.5px;
    color: var(--text-secondary);
    padding: 6px 8px 2px;
    border-top: 1px solid var(--border-soft);
    margin-top: 4px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-ft.sin-borde {
    border: 0;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-sh {
    padding: 12px 14px;
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    gap: 10px;
    align-items: flex-start;
    flex: none;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-sh-t {
    flex: 1;
    min-width: 0;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-sh h2 {
    font-size: 17px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-sh p {
    font-size: 12.5px;
    color: var(--text-secondary);
    display: flex;
    gap: 6px;
    align-items: center;
    margin-top: 2px;
    flex-wrap: wrap;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-sh p .msr {
    font-size: 16px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-sbody {
    overflow-y: auto;
    flex: 1;
    padding: 8px 6px 14px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-sec {
    padding: 10px 10px 4px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-sec.mt {
    margin-top: 8px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-sec h3 {
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--text-secondary);
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-th-sep {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 11.5px;
    color: var(--text-secondary);
    font-weight: 700;
    padding: 6px 12px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-th-sep::before,
.sala-raiz[b-bdv9a7mmz2]  .sala-th-sep::after {
    content: "";
    height: 1px;
    background: var(--border-soft);
    flex: 1;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-mem {
    display: flex;
    gap: 10px;
    align-items: center;
    padding: 6px 10px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-mem-txt {
    min-width: 0;
    flex: 1;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-mem b {
    font-size: 13.5px;
    display: block;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-mem small {
    font-size: 12px;
    color: var(--text-secondary);
    display: block;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-tag {
    font-size: 10.5px;
    font-weight: 700;
    color: var(--text-secondary);
    border: 1px solid var(--border-med);
    border-radius: 99px;
    padding: 0 7px;
    white-space: nowrap;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-rule {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr);
    gap: 8px;
    padding: 6px 10px;
    font-size: 12.5px;
    color: var(--text-secondary);
    line-height: 1.45;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-rule .msr {
    font-size: 18px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-rule b {
    color: var(--text-primary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-rule.caja {
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-cream);
    padding: 9px 11px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-pad {
    padding: 8px 10px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-inline-form {
    margin: 4px 10px 8px;
    padding: 10px 12px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    background: var(--bg-cream);
    display: grid;
    gap: 10px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-nota {
    position: relative;
    background: var(--gold-bg);
    border-radius: 10px;
    padding: 11px 12px 10px;
    margin: 10px 10px 0;
    border: 1px solid var(--gold-border, var(--pin-gold));
    width: calc(100% - 20px);
    display: block;
    text-align: left;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-nota::before {
    content: "";
    position: absolute;
    top: -5px;
    left: 18px;
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: var(--pin-gold);
    box-shadow: 0 2px 0 rgba(0, 0, 0, .18);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-nota p {
    font-size: 13.5px;
    line-height: 1.45;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-by {
    font-size: 11.5px;
    color: var(--gold-text);
    margin-top: 5px;
    display: flex;
    gap: 6px;
    align-items: center;
    flex-wrap: wrap;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-by .msr {
    font-size: 15px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-ov {
    position: absolute;
    inset: 0;
    background: var(--sala-scrim);
    z-index: var(--z-overlay, 1000);
    display: grid;
    place-items: center;
    padding: 20px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-modal {
    background: var(--bg-panel);
    border-radius: var(--radius-2xl);
    box-shadow: var(--shadow-lg);
    width: min(600px, 100%);
    max-height: 100%;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    animation: sala-rise-b-bdv9a7mmz2 .22s var(--ease);
    outline: none;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-mh {
    padding: 16px 18px 10px;
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
    flex: none;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-mh h2 {
    font-size: 20px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-mb {
    padding: 0 18px 12px;
    overflow-y: auto;
    display: grid;
    gap: 14px;
    align-content: start;
    min-height: 0;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-mf {
    padding: 12px 18px;
    border-top: 1px solid var(--border-soft);
    display: flex;
    gap: 10px;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    background: var(--bg-cream);
    flex: none;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-who {
    font-size: 12.5px;
    color: var(--text-secondary);
    display: flex;
    gap: 6px;
    align-items: center;
    min-width: 0;
    flex: 1 1 200px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-who .msr {
    font-size: 16px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-btns {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-seg {
    display: inline-flex;
    background: var(--bg-cream);
    border: 1px solid var(--border-soft);
    border-radius: 11px;
    padding: 3px;
    gap: 2px;
    flex-wrap: wrap;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-seg button {
    font-size: 12.5px;
    font-weight: 700;
    color: var(--text-secondary);
    padding: 6px 11px;
    border-radius: 8px;
    display: inline-flex;
    gap: 6px;
    align-items: center;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-seg button[aria-pressed="true"] {
    background: var(--bg-panel);
    color: var(--text-primary);
    box-shadow: var(--shadow-sm);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-seg button[disabled] {
    opacity: .45;
    cursor: not-allowed;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-seg .msr {
    font-size: 17px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-quote {
    border-left: 3px solid var(--border-med);
    background: var(--bg-cream);
    border-radius: 0 9px 9px 0;
    padding: 9px 11px;
    font-size: 13.5px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-quote.mt {
    margin-top: 14px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-quote.acu {
    border-left-color: var(--pin-gold);
    background: var(--gold-bg);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-quote p.grande {
    font-size: 15px;
    line-height: 1.5;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-q-h {
    display: flex;
    gap: 8px;
    align-items: center;
    font-size: 12px;
    color: var(--text-secondary);
    margin-bottom: 4px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-q-h .msr {
    font-size: 16px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-lk {
    font-size: 12px;
    color: var(--text-secondary);
    margin-top: 6px;
    display: flex;
    gap: 6px;
    align-items: center;
    flex-wrap: wrap;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-lk .msr {
    font-size: 15px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-f {
    display: grid;
    gap: 6px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-f.sin-borde,
.sala-raiz[b-bdv9a7mmz2]  fieldset.sin-borde {
    border: 0;
    padding: 0;
    margin: 0;
    min-width: 0;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-f label,
.sala-raiz[b-bdv9a7mmz2]  .sala-lab {
    font-size: 12.5px;
    font-weight: 700;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-f legend {
    padding: 0;
    margin-bottom: 6px;
}
.sala-raiz[b-bdv9a7mmz2]  .opt {
    font-weight: 500;
    color: var(--text-secondary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-inp {
    border: 1px solid var(--border-med);
    background: var(--bg-panel);
    border-radius: var(--radius-md);
    padding: 9px 11px;
    font-size: 14.5px;
    width: 100%;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-inp:focus {
    outline: 0;
    border-color: var(--brand-teal);
    box-shadow: 0 0 0 3px rgba(109, 199, 208, .25);
}
.sala-raiz[b-bdv9a7mmz2]  textarea.sala-inp {
    resize: vertical;
    min-height: 64px;
    line-height: 1.45;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-pick {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-pk {
    display: inline-flex;
    gap: 7px;
    align-items: center;
    border: 1px solid var(--border-med);
    border-radius: 99px;
    padding: 3px 10px 3px 3px;
    font-size: 13px;
    font-weight: 600;
    background: var(--bg-panel);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-pk.solo {
    padding: 5px 11px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-pk .msr {
    font-size: 16px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-pk[aria-pressed="true"] {
    border-color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
    color: var(--sala-tint-ink);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-pk[disabled] {
    opacity: .45;
    cursor: not-allowed;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-chosen {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    min-height: 30px;
    align-items: center;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-chosen .sala-pk {
    padding-right: 4px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-people {
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    max-height: 260px;
    overflow-y: auto;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-prow {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    padding: 8px 10px;
    border-top: 1px solid var(--border-soft);
    width: 100%;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-prow:first-child {
    border-top: 0;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-prow:hover {
    background: var(--bg-cream);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-prow-txt {
    min-width: 0;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-prow b {
    font-size: 13.5px;
    display: block;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-prow small {
    font-size: 12px;
    color: var(--text-secondary);
    display: block;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-ck {
    width: 22px;
    height: 22px;
    border-radius: 7px;
    border: 2px solid var(--border-med);
    display: grid;
    place-items: center;
    color: transparent;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-ck .msr {
    font-size: 16px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-prow[aria-pressed="true"] {
    background: var(--bg-light-teal);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-prow[aria-pressed="true"] .sala-ck {
    background: var(--brand-teal-deep);
    border-color: var(--brand-teal-deep);
    color: var(--bg-panel);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-tcards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-tcard {
    border: 1px solid var(--border-med);
    border-radius: var(--radius-lg);
    padding: 10px 12px;
    display: grid;
    gap: 3px;
    align-content: start;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-tcard[aria-pressed="true"] {
    border-color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-tcard b {
    font-size: 13.5px;
    display: flex;
    gap: 6px;
    align-items: center;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-tcard small {
    font-size: 12px;
    color: var(--text-secondary);
    line-height: 1.35;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-radios {
    display: grid;
    gap: 8px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-radios label {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    border: 1px solid var(--border-med);
    border-radius: 10px;
    padding: 10px 12px;
    cursor: pointer;
    background: var(--bg-panel);
    font-weight: 400;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-radios label:has(input:checked) {
    border-color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-radios input {
    margin-top: 3px;
    accent-color: var(--brand-teal-deep);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-radios b {
    font-size: 13.5px;
    display: block;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-radios small {
    font-size: 12px;
    color: var(--text-secondary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-tg {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    border: 1px solid var(--border-soft);
    border-radius: 10px;
    padding: 9px 11px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-tg b {
    font-size: 13.5px;
    display: block;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-tg small {
    font-size: 12px;
    color: var(--text-secondary);
    display: block;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-tgl {
    appearance: none;
    width: 38px;
    height: 22px;
    border-radius: 99px;
    background: var(--border-med);
    position: relative;
    flex: none;
    cursor: pointer;
    margin: 0;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-tgl::after {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--bg-panel);
    box-shadow: var(--shadow-sm);
    transition: transform .15s var(--ease);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-tgl:checked {
    background: var(--brand-teal-deep);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-tgl:checked::after {
    transform: translateX(16px);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-tgl[disabled] {
    opacity: .5;
    cursor: not-allowed;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-warnbox {
    border-radius: 10px;
    padding: 10px 12px;
    background: var(--warn-bg);
    color: var(--warning-ink);
    font-size: 13px;
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr);
    gap: 8px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-warnbox .msr {
    font-size: 18px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-warnbox.gold {
    background: var(--gold-bg);
    color: var(--gold-text);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-menu {
    display: grid;
    padding: 2px 0 6px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-menu button {
    display: flex;
    gap: 12px;
    align-items: center;
    padding: 11px 12px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 600;
    width: 100%;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-menu button:hover,
.sala-raiz[b-bdv9a7mmz2]  .sala-menu button:focus-visible {
    background: var(--bg-cream);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-menu button[disabled] {
    opacity: .5;
    cursor: not-allowed;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-menu button small {
    display: block;
    font-size: 12px;
    font-weight: 500;
    color: var(--text-secondary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-menu .msr {
    color: var(--text-secondary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-menu.compacto button {
    padding: 8px 10px;
    font-size: 13px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-hist {
    list-style: none;
    margin: 4px 0 0;
    padding: 0;
    display: grid;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-hist li {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    gap: 9px;
    padding: 8px 0;
    border-top: 1px solid var(--border-soft);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-hist li:first-child {
    border-top: 0;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-hist li p {
    font-size: 13px;
    line-height: 1.4;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-hist li small {
    font-size: 11.5px;
    color: var(--text-secondary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-hist li .q {
    font-size: 12.5px;
    color: var(--text-secondary);
    background: var(--bg-cream);
    border-radius: 8px;
    padding: 5px 8px;
    margin-top: 4px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-hist .msr {
    font-size: 19px;
    color: var(--text-secondary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-facts {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-top: 14px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-fact small {
    display: block;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--text-secondary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-fact div {
    display: flex;
    gap: 7px;
    align-items: center;
    margin-top: 4px;
    font-size: 13.5px;
    font-weight: 600;
    min-width: 0;
    overflow-wrap: anywhere;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-fact .msr {
    font-size: 18px;
    color: var(--warning-ink);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-inter {
    height: 100%;
    display: grid;
    place-items: center;
    padding: 24px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-es {
    text-align: center;
    display: grid;
    gap: 8px;
    justify-items: center;
    max-width: 340px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-es > .msr {
    font-size: 40px;
    color: var(--text-secondary);
    opacity: .7;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-es b {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-es small {
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.45;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-page {
    padding: 22px 26px 40px;
    max-width: 1100px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-migas {
    margin-bottom: 10px;
    font-size: 12.5px;
    color: var(--text-secondary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-migas a {
    color: var(--brand-teal-deep);
    font-weight: 700;
    text-decoration: none;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-det {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 16px;
    align-items: start;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-det-main {
    min-width: 0;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-det-side {
    padding: 14px 16px;
    min-width: 0;
    display: grid;
    gap: 6px;
    align-content: start;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-papel {
    font-weight: 700;
    margin-bottom: 8px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-dh {
    padding: 18px 20px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-dh-tags {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-dh h1 {
    font-size: 23px;
    line-height: 1.2;
    margin-top: 6px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-steps {
    display: flex;
    align-items: center;
    margin: 16px 0 2px;
    flex-wrap: wrap;
    row-gap: 8px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-st {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12.5px;
    font-weight: 700;
    color: var(--text-secondary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-st .c {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    border: 2px solid var(--border-med);
    background: var(--bg-panel);
    font-size: 12px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-st .c .msr {
    font-size: 16px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-st.done .c {
    background: var(--brand-teal-deep);
    border-color: var(--brand-teal-deep);
    color: var(--bg-panel);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-st.now {
    color: var(--text-primary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-st.now .c {
    border-color: var(--brand-teal-deep);
    color: var(--brand-teal-deep);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-st.warn .c {
    border-color: var(--warning-ink);
    color: var(--warning-ink);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-stl {
    width: 30px;
    height: 2px;
    background: var(--border-med);
    margin: 0 8px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-stl.done {
    background: var(--brand-teal-deep);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-actbox {
    border-top: 1px solid var(--border-soft);
    padding: 16px 20px;
    display: grid;
    gap: 12px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-asrow {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
    justify-content: space-between;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-asrow .sala-lab {
    font-size: 13px;
    display: flex;
    gap: 6px;
    align-items: center;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-drop {
    border: 1.5px dashed var(--border-med);
    border-radius: var(--radius-lg);
    padding: 12px;
    display: grid;
    gap: 10px;
    background: var(--bg-cream);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-row small {
    font-size: 12px;
    color: var(--text-secondary);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-row label.sala-btn {
    position: relative;
    cursor: pointer;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-attached {
    display: flex;
    gap: 10px;
    align-items: center;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    padding: 8px 10px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-attached > .msr {
    color: var(--danger);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-attached-txt {
    min-width: 0;
    flex: 1;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-attached b {
    font-size: 13px;
    overflow-wrap: anywhere;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-attached small {
    display: block;
    font-size: 11.5px;
    color: var(--text-secondary);
}
@keyframes sala-rise-b-bdv9a7mmz2 {
from {
    transform: translateY(8px);
    opacity: 0;
}
to {
    transform: none;
    opacity: 1;
}
}
@keyframes sala-spin-b-bdv9a7mmz2 {
to {
    transform: rotate(360deg);
}
}
@keyframes sala-shim-b-bdv9a7mmz2 {
from {
    background-position: 200% 0;
}
to {
    background-position: -200% 0;
}
}
@media (prefers-reduced-motion: reduce) {
.sala-raiz[b-bdv9a7mmz2]  .sala-modal,
.sala-raiz[b-bdv9a7mmz2]  .sala-sk,
.sala-raiz[b-bdv9a7mmz2]  .sala-spin {
    animation: none;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-btn,
.sala-raiz[b-bdv9a7mmz2]  .sala-tgl::after {
    transition: none;
}
}
@media (pointer: coarse) {
.sala-raiz[b-bdv9a7mmz2]  .sala-btn,
.sala-raiz[b-bdv9a7mmz2]  .sala-ib,
.sala-raiz[b-bdv9a7mmz2]  .sala-ci,
.sala-raiz[b-bdv9a7mmz2]  .sala-pk,
.sala-raiz[b-bdv9a7mmz2]  .sala-seg button,
.sala-raiz[b-bdv9a7mmz2]  .sala-prow,
.sala-raiz[b-bdv9a7mmz2]  .sala-menu button,
.sala-raiz[b-bdv9a7mmz2]  .sala-mact button,
.sala-raiz[b-bdv9a7mmz2]  .sala-filt button {
    min-height: 44px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-mact button {
    min-width: 44px;
}
}
@media (max-width: 1023.98px) {
.sala-raiz[b-bdv9a7mmz2] {
    height: calc(100dvh - 52px);
}
.sala-raiz.pagina[b-bdv9a7mmz2] {
    height: auto;
    min-height: calc(100dvh - 52px);
}
}
@container sala (max-width: 1099px) {
.sala-raiz[b-bdv9a7mmz2]  .sala {
    grid-template-columns: 280px minmax(0, 1fr);
}
.sala-raiz[b-bdv9a7mmz2]  .pane.side {
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    width: min(380px, 100%);
    z-index: 30;
    box-shadow: var(--shadow-lg);
}
.sala-raiz[b-bdv9a7mmz2]  .sala:not(.side-open) .pane.side {
    display: none;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-det {
    grid-template-columns: minmax(0, 1fr);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@container sala (max-width: 759px) {
.sala-raiz[b-bdv9a7mmz2]  .sala {
    grid-template-columns: minmax(0, 1fr);
}
.sala-raiz[b-bdv9a7mmz2]  .pane.side {
    position: static;
    width: auto;
    box-shadow: none;
    border-left: 0;
}
.sala-raiz[b-bdv9a7mmz2]  .sala[data-pane="lista"] .pane.conv,
.sala-raiz[b-bdv9a7mmz2]  .sala[data-pane="lista"] .pane.side {
    display: none;
}
.sala-raiz[b-bdv9a7mmz2]  .sala[data-pane="conv"] .pane.list,
.sala-raiz[b-bdv9a7mmz2]  .sala[data-pane="conv"] .pane.side {
    display: none;
}
.sala-raiz[b-bdv9a7mmz2]  .sala[data-pane="panel"] .pane.list,
.sala-raiz[b-bdv9a7mmz2]  .sala[data-pane="panel"] .pane.conv {
    display: none;
}
.sala-raiz[b-bdv9a7mmz2]  .sala[data-pane="panel"] .pane.side {
    display: flex;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-ch {
    padding: 10px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-ch .back {
    display: grid;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-ch .hide-n {
    display: none;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-lh-top h1 {
    font-size: 19px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-mact {
    position: static;
    opacity: 1;
    pointer-events: auto;
    box-shadow: none;
    border: 0;
    background: transparent;
    padding: 0;
    grid-column: 2;
    justify-self: start;
    margin-top: 2px;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-mact .hide-n {
    display: none;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-ov {
    padding: 0;
    place-items: end stretch;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-modal {
    width: 100%;
    max-height: 94%;
    border-radius: var(--radius-2xl) var(--radius-2xl) 0 0;
}
.sala-raiz[b-bdv9a7mmz2]  .sala-tcards {
    grid-template-columns: minmax(0, 1fr);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-facts {
    grid-template-columns: minmax(0, 1fr);
}
.sala-raiz[b-bdv9a7mmz2]  .sala-page {
    padding: 16px 16px 32px;
}
}
/* /Components/StickersPanel.razor.rz.scp.css */
/* ── StickersPanel — contenido del WidgetSidePanel de stickers ─────────────
   Sistema de diseno miCE: Fraunces titulos / Figtree contenido, tokens de
   tokens.css, Material Symbols, escala de espaciado 4/8px. */

/* ── Recientes ── */
.stp-recientes[b-l6b3ob9pbc] {
    margin-bottom: 16px;
}

.stp-subtitulo[b-l6b3ob9pbc] {
    margin: 0 0 8px;
    font-family: var(--font-sans);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--text-muted);
}

.stp-fila-recientes[b-l6b3ob9pbc] {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 4px;
    scrollbar-width: thin;
}

.stp-vacio-recientes[b-l6b3ob9pbc] {
    margin: 0;
    padding: 12px;
    border: 1.5px dashed var(--border-med);
    border-radius: var(--radius-md);
    background: var(--bg-cream);
}

/* ── Estados vacios / mensajes ── */
.stp-vacio[b-l6b3ob9pbc] {
    font-family: var(--font-sans);
    font-size: 13px;
    line-height: 1.5;
    color: var(--text-secondary);
    margin: 16px 0 0;
    text-align: center;
}

.stp-vacio-recientes[b-l6b3ob9pbc] {
    text-align: left;
    margin: 0;
}

/* ── Busqueda ── */
.stp-busqueda[b-l6b3ob9pbc] {
    position: relative;
    display: flex;
    align-items: center;
    margin-bottom: 12px;
}

.stp-busqueda-icono[b-l6b3ob9pbc] {
    position: absolute;
    left: 12px;
    font-size: 18px;
    color: var(--text-muted);
    pointer-events: none;
}

.stp-busqueda-input[b-l6b3ob9pbc] {
    width: 100%;
    height: 40px;
    padding: 0 40px 0 38px;
    font-family: var(--font-sans);
    font-size: 14px;
    color: var(--text-primary);
    background: var(--bg-cream);
    border: 1.5px solid var(--border-soft);
    border-radius: var(--radius-md);
    outline: none;
    transition: border-color 0.18s var(--ease), background 0.18s var(--ease);
}

.stp-busqueda-input[b-l6b3ob9pbc]::placeholder {
    color: var(--text-muted);
}

.stp-busqueda-input:hover[b-l6b3ob9pbc] {
    border-color: var(--border-med);
}

.stp-busqueda-input:focus[b-l6b3ob9pbc] {
    background: #FFFFFF;
    border-color: var(--brand-teal-dark);
    box-shadow: 0 0 0 3px rgba(110, 198, 200, 0.25);
}

.stp-busqueda-limpiar[b-l6b3ob9pbc] {
    position: absolute;
    right: 8px;
    width: 26px;
    height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 50%;
    background: transparent;
    color: var(--text-muted);
    cursor: pointer;
    transition: background 0.15s var(--ease), color 0.15s var(--ease);
}

.stp-busqueda-limpiar:hover[b-l6b3ob9pbc] {
    background: var(--cream-deep);
    color: var(--text-primary);
}

.stp-busqueda-limpiar .material-symbols-rounded[b-l6b3ob9pbc] {
    font-size: 16px;
}

/* ── Selector horizontal de sheets ── */
.stp-sheets[b-l6b3ob9pbc] {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 8px;
    margin-bottom: 12px;
    scrollbar-width: thin;
}

.stp-sheet-chip[b-l6b3ob9pbc] {
    flex-shrink: 0;
    padding: 6px 14px;
    font-family: var(--font-sans);
    font-size: 13px;
    font-weight: 600;
    color: var(--text-secondary);
    background: #FFFFFF;
    border: 1.5px solid var(--border-soft);
    border-radius: 999px;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.18s var(--ease), border-color 0.18s var(--ease), color 0.18s var(--ease);
}

.stp-sheet-chip:hover[b-l6b3ob9pbc] {
    border-color: var(--brand-teal-dark);
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
}

.stp-sheet-chip.activo[b-l6b3ob9pbc] {
    background: var(--carbon-2);
    border-color: var(--carbon-2);
    color: #FFFFFF;
}

/* ── Grid de fichas ── */
.stp-grid[b-l6b3ob9pbc] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(112px, 1fr));
    gap: 12px;
}

.stp-ficha[b-l6b3ob9pbc] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 12px 8px 10px;
    background: #FFFFFF;
    border: 1.5px solid var(--border-soft);
    border-radius: var(--radius-lg);
    cursor: pointer;
    transition: transform 0.16s var(--ease), border-color 0.16s var(--ease), box-shadow 0.16s var(--ease);
}

.stp-ficha:hover[b-l6b3ob9pbc] {
    border-color: var(--brand-teal-dark);
    box-shadow: var(--pz-shadow-soft);
    transform: translateY(-2px);
}

.stp-ficha:active[b-l6b3ob9pbc] {
    transform: translateY(0);
    box-shadow: none;
}

.stp-thumb[b-l6b3ob9pbc] {
    width: 72px;
    height: 72px;
    object-fit: contain;
    /* Cuadricula sutil para que la transparencia del PNG se lea sin ensuciar la ficha */
    background:
        linear-gradient(45deg, var(--bg-cream) 25%, transparent 25%, transparent 75%, var(--bg-cream) 75%),
        linear-gradient(45deg, var(--bg-cream) 25%, transparent 25%, transparent 75%, var(--bg-cream) 75%);
    background-size: 16px 16px;
    background-position: 0 0, 8px 8px;
    border-radius: var(--radius-sm);
}

.stp-thumb-fallida[b-l6b3ob9pbc] {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--bg-cream);
    color: var(--carbon-6);
}

.stp-thumb-fallida .material-symbols-rounded[b-l6b3ob9pbc] {
    font-size: 30px;
}

.stp-ficha-nombre[b-l6b3ob9pbc] {
    font-family: var(--font-sans);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.3;
    color: var(--text-primary);
    text-align: center;
    overflow-wrap: anywhere;
}

/* Fichas compactas de Recientes: solo miniatura */
.stp-ficha-mini[b-l6b3ob9pbc] {
    flex-shrink: 0;
    padding: 8px;
}

.stp-ficha-mini .stp-thumb[b-l6b3ob9pbc] {
    width: 52px;
    height: 52px;
}

/* ── Foco visible (teclado) ── */
.stp-ficha:focus-visible[b-l6b3ob9pbc],
.stp-sheet-chip:focus-visible[b-l6b3ob9pbc],
.stp-busqueda-limpiar:focus-visible[b-l6b3ob9pbc],
.stp-btn-reintentar:focus-visible[b-l6b3ob9pbc] {
    outline: 2px solid var(--brand-teal-dark);
    outline-offset: 2px;
}

/* ── Esqueletos de carga ── */
.stp-skeletons[b-l6b3ob9pbc] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(112px, 1fr));
    gap: 12px;
}

.stp-skeleton[b-l6b3ob9pbc] {
    height: 128px;
    border-radius: var(--radius-lg);
    background: linear-gradient(90deg, var(--cream-deep) 25%, var(--bg-cream) 50%, var(--cream-deep) 75%);
    background-size: 200% 100%;
    animation: stp-shimmer-b-l6b3ob9pbc 1.4s ease-in-out infinite;
}

@keyframes stp-shimmer-b-l6b3ob9pbc {
    from { background-position: 200% 0; }
    to { background-position: -200% 0; }
}

/* ── Estado de error del manifiesto ── */
.stp-error[b-l6b3ob9pbc] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 40px 16px;
    text-align: center;
}

.stp-error-icon[b-l6b3ob9pbc] {
    font-size: 40px;
    color: var(--carbon-6);
}

.stp-error-texto[b-l6b3ob9pbc] {
    margin: 0;
    font-family: var(--font-sans);
    font-size: 14px;
    font-weight: 600;
    color: var(--text-secondary);
}

.stp-btn-reintentar[b-l6b3ob9pbc] {
    margin-top: 8px;
    padding: 8px 20px;
    font-family: var(--font-sans);
    font-size: 14px;
    font-weight: 700;
    color: #FFFFFF;
    background: var(--brand-teal-deep);
    border: none;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: background 0.18s var(--ease);
}

.stp-btn-reintentar:hover[b-l6b3ob9pbc] {
    background: var(--brand-teal-dark);
}

/* ── Movil: panel angosto ── */
@media (max-width: 480px) {
    .stp-grid[b-l6b3ob9pbc],
    .stp-skeletons[b-l6b3ob9pbc] {
        grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
    }
}
/* /Components/Tareas/RepetirAviso.razor.rz.scp.css */
/* Bloque «Repetir y aviso» (prefijo ra-). Look del mockup aprobado 2026-10-11 con los tokens de wwwroot/css/tokens.css. */

.ra[b-ckdmddiydp] {
    border: 1px solid var(--border-soft);
    background: var(--bg-cream);
    border-radius: var(--radius-lg);
    padding: 14px;
    display: grid;
    gap: 12px;
    min-width: 0;
}

.ra-ocupado[b-ckdmddiydp] { opacity: .7; }

.ra-h[b-ckdmddiydp] {
    display: flex;
    align-items: center;
    gap: 8px;
    font: 700 13.5px/1.2 var(--font-sans);
    color: var(--text-primary);
}

.ra-h .material-symbols-rounded[b-ckdmddiydp] { font-size: 20px; color: var(--brand-teal-deep); font-variation-settings: 'FILL' 1; }

.ra-f[b-ckdmddiydp] { display: grid; gap: 6px; min-width: 0; align-content: start; }

.ra-lbl[b-ckdmddiydp] {
    font: 700 11.5px/1.2 var(--font-sans);
    color: var(--text-secondary);
    letter-spacing: .02em;
}

.ra-inp[b-ckdmddiydp] {
    width: 100%;
    min-height: 40px;
    padding: 8px 12px;
    border: 1px solid var(--border-med);
    border-radius: var(--radius-md);
    background: var(--bg-panel);
    color: var(--text-primary);
    font: 500 13.5px/1.2 var(--font-sans);
    box-sizing: border-box;
}

.ra-inp:focus-visible[b-ckdmddiydp],
.ra-chip:focus-visible[b-ckdmddiydp] { outline: 3px solid var(--brand-teal-deep); outline-offset: 2px; }

.ra-row2[b-ckdmddiydp] { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }

.ra-chips[b-ckdmddiydp] { display: flex; flex-wrap: wrap; gap: 6px; }

.ra-chip[b-ckdmddiydp] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 34px;
    padding: 6px 12px;
    border: 1px solid var(--border-med);
    border-radius: 999px;
    background: var(--bg-panel);
    color: var(--text-secondary);
    font: 600 12.5px/1 var(--font-sans);
    cursor: pointer;
    transition: background .12s var(--ease), border-color .12s var(--ease);
}

.ra-chip .material-symbols-rounded[b-ckdmddiydp] { font-size: 16px; }
.ra-chip:hover:not(:disabled)[b-ckdmddiydp] { border-color: var(--brand-teal-deep); }

.ra-chip-on[b-ckdmddiydp] {
    background: var(--bg-light-teal);
    border-color: var(--brand-teal-deep);
    color: var(--brand-teal-deep);
}

.ra-chip:disabled[b-ckdmddiydp] { opacity: .45; cursor: not-allowed; }
.ra-chip-on:disabled[b-ckdmddiydp] { opacity: 1; cursor: default; }

.ra-dis[b-ckdmddiydp] { opacity: .45; }

.ra-ayuda[b-ckdmddiydp] { font: 500 12px/1.3 var(--font-sans); color: var(--text-muted); }

.ra-error[b-ckdmddiydp] {
    display: flex;
    gap: 6px;
    align-items: flex-start;
    font: 600 12.5px/1.35 var(--font-sans);
    color: var(--danger);
}

.ra-error .material-symbols-rounded[b-ckdmddiydp] { font-size: 17px; }

.ra-prev[b-ckdmddiydp] {
    display: grid;
    gap: 6px;
    border-top: 1px dashed var(--border-med);
    padding-top: 10px;
}

.ra-prev-l[b-ckdmddiydp] {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    font: 400 13px/1.45 var(--font-sans);
    color: var(--text-primary);
    min-width: 0;
}

.ra-prev-l > span:last-child[b-ckdmddiydp] { min-width: 0; overflow-wrap: anywhere; }
.ra-prev-l .material-symbols-rounded[b-ckdmddiydp] { font-size: 18px; color: var(--brand-teal-deep); margin-top: 1px; flex: none; }
.ra-prev-l b[b-ckdmddiydp] { font-weight: 700; font-variant-numeric: tabular-nums; }
.ra-warn .material-symbols-rounded[b-ckdmddiydp] { color: var(--warning); }

.ra-muted[b-ckdmddiydp] { color: var(--text-muted); }

@media (max-width: 600px) {
    .ra-row2[b-ckdmddiydp] { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
    .ra-chip[b-ckdmddiydp] { transition: none; }
}
/* /Components/Tareas/TareaCrearModal.razor.rz.scp.css */
/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   TareaCrearModal â€” modal de creaciÃ³n (prefijo tcm-).
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.tcm-overlay[b-ugow8ayb3e] {
    position: fixed;
    inset: 0;
    z-index: 950;
    background: rgba(0, 0, 0, 0.4);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    animation: tcm-fade-b-ugow8ayb3e 0.15s ease forwards;
}

@keyframes tcm-fade-b-ugow8ayb3e { to { opacity: 1; } }

.tcm-modal[b-ugow8ayb3e] {
    width: 520px;
    max-width: 95vw;
    max-height: 90vh;
    background: var(--bg-card, #fff);
    border-radius: 14px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18);
    display: flex;
    flex-direction: column;
    transform: translateY(12px);
    animation: tcm-slide-b-ugow8ayb3e 0.2s ease forwards;
    overflow: hidden;
}

@keyframes tcm-slide-b-ugow8ayb3e { to { transform: translateY(0); } }

/* â”€â”€ Header â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.tcm-header[b-ugow8ayb3e] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 16px 20px;
    border-bottom: 1px solid var(--border-soft);
}

.tcm-header .material-symbols-rounded[b-ugow8ayb3e] { font-size: 22px; color: var(--brand-teal); }

.tcm-header h2[b-ugow8ayb3e] {
    font: 600 16px/1 var(--font-sans);
    color: var(--text-primary);
    margin: 0;
}

.tcm-spacer[b-ugow8ayb3e] { flex: 1; }

.tcm-close[b-ugow8ayb3e] {
    padding: 4px;
    border: none;
    background: transparent;
    color: var(--text-muted);
    cursor: pointer;
    border-radius: 6px;
    transition: all 0.12s ease;
}

.tcm-close:hover[b-ugow8ayb3e] { background: var(--bg-hover, #f5f4f1); color: var(--text-primary); }
.tcm-close .material-symbols-rounded[b-ugow8ayb3e] { font-size: 22px; }

/* â”€â”€ Body â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.tcm-body[b-ugow8ayb3e] {
    padding: 20px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.tcm-field[b-ugow8ayb3e] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.tcm-label[b-ugow8ayb3e] {
    display: flex;
    align-items: center;
    gap: 4px;
    font: 600 11px/1 var(--font-sans);
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.tcm-label .material-symbols-rounded[b-ugow8ayb3e] { font-size: 15px; }

.tcm-input[b-ugow8ayb3e],
.tcm-textarea[b-ugow8ayb3e] {
    font: 400 14px/1.4 var(--font-sans);
    color: var(--text-primary);
    background: var(--bg-card, #fff);
    border: 1px solid var(--border-soft);
    border-radius: 8px;
    padding: 8px 12px;
    outline: none;
    transition: border-color 0.15s ease;
}

.tcm-input:focus[b-ugow8ayb3e],
.tcm-textarea:focus[b-ugow8ayb3e] {
    border-color: var(--brand-teal);
}

.tcm-textarea[b-ugow8ayb3e] {
    resize: vertical;
    min-height: 60px;
}

.tcm-textarea[b-ugow8ayb3e]::placeholder,
.tcm-input[b-ugow8ayb3e]::placeholder {
    color: var(--text-muted);
}

.tcm-row[b-ugow8ayb3e] {
    display: flex;
    gap: 12px;
}

.tcm-half[b-ugow8ayb3e] { flex: 1; min-width: 0; }

/* â”€â”€ Priority buttons â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.tcm-priority-btns[b-ugow8ayb3e] {
    display: flex;
    gap: 4px;
}

.tcm-priority-btn[b-ugow8ayb3e] {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 3px;
    padding: 6px 4px;
    border: 1px solid var(--border-soft);
    border-radius: 6px;
    background: var(--bg-card, #fff);
    color: var(--text-muted);
    cursor: pointer;
    transition: all 0.12s ease;
}

.tcm-priority-btn .material-symbols-rounded[b-ugow8ayb3e] { font-size: 16px; }
.tcm-priority-label[b-ugow8ayb3e] { font: 500 11px/1 var(--font-sans); }

.tcm-priority-btn:hover[b-ugow8ayb3e] { border-color: var(--text-muted); }

.tcm-priority-1.active[b-ugow8ayb3e] { background: #DBEAFE; border-color: #3B82F6; color: #3B82F6; }
.tcm-priority-2.active[b-ugow8ayb3e] { background: #E0E7FF; border-color: #6366F1; color: #6366F1; }
.tcm-priority-3.active[b-ugow8ayb3e] { background: #FEF3C7; border-color: #F59E0B; color: var(--t-nem); }
.tcm-priority-4.active[b-ugow8ayb3e] { background: #FEE2E2; border-color: #EF4444; color: #EF4444; }

/* â”€â”€ Footer â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.tcm-footer[b-ugow8ayb3e] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 12px 20px;
    border-top: 1px solid var(--border-soft);
}

.tcm-btn-cancel[b-ugow8ayb3e] {
    padding: 8px 16px;
    border: 1px solid var(--border-soft);
    border-radius: 8px;
    background: transparent;
    color: var(--text-secondary);
    font: 500 13px/1 var(--font-sans);
    cursor: pointer;
    transition: all 0.12s ease;
}

.tcm-btn-cancel:hover[b-ugow8ayb3e] { background: var(--bg-hover, #f5f4f1); }

.tcm-btn-crear[b-ugow8ayb3e] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 18px;
    border: none;
    border-radius: 8px;
    background: var(--brand-teal);
    color: var(--text-primary);
    font: 600 13px/1 var(--font-sans);
    cursor: pointer;
    transition: all 0.15s ease;
}

.tcm-btn-crear:hover[b-ugow8ayb3e] { opacity: 0.9; box-shadow: 0 2px 8px rgba(110, 198, 200, 0.3); }
.tcm-btn-crear:disabled[b-ugow8ayb3e] { opacity: 0.5; cursor: not-allowed; }
.tcm-btn-crear .material-symbols-rounded[b-ugow8ayb3e] { font-size: 18px; }

@keyframes tcm-spin-anim-b-ugow8ayb3e { to { transform: rotate(360deg); } }
.tcm-spin[b-ugow8ayb3e] { animation: tcm-spin-anim-b-ugow8ayb3e 0.8s linear infinite; }

/* â”€â”€ Responsive â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
@media (max-width: 560px) {
    .tcm-row[b-ugow8ayb3e] { flex-direction: column; gap: 14px; }
    .tcm-modal[b-ugow8ayb3e] { max-width: 100vw; border-radius: 14px 14px 0 0; margin-top: auto; }
}

/* Fecha + hora opcional (paridad con la app: sin hora = vence ese dia) */
.tcm-fecha-hora[b-ugow8ayb3e] { display: flex; gap: 8px; min-width: 0; }
.tcm-fecha-hora .tcm-input[b-ugow8ayb3e] { flex: 1 1 0; min-width: 0; }
.tcm-fecha-hora .tcm-hora[b-ugow8ayb3e] { flex: 0 0 104px; }
.tcm-fecha-hora .tcm-hora:disabled[b-ugow8ayb3e] { opacity: .5; }
.tcm-ayuda[b-ugow8ayb3e] { display: block; margin-top: 4px; font-size: 12px; color: var(--text-muted); }

/* Error al crear (antes el modal fallaba en silencio). */
.tcm-error[b-ugow8ayb3e] { display: flex; gap: 6px; align-items: flex-start; font-size: 12.5px; font-weight: 600; color: var(--danger); }
.tcm-error .material-symbols-rounded[b-ugow8ayb3e] { font-size: 17px; }
/* /Components/Tareas/TareaDrawer.razor.rz.scp.css */
/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   TareaDrawer â€” drawer lateral derecho (prefijo td-).
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

/* â”€â”€ Overlay + slide animation â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.td-overlay[b-353d9cmc8p] {
    position: fixed;
    inset: 0;
    z-index: 900;
    background: rgba(0, 0, 0, 0.35);
    display: flex;
    justify-content: flex-end;
    opacity: 0;
    animation: td-fade-in-b-353d9cmc8p 0.2s ease forwards;
}

@keyframes td-fade-in-b-353d9cmc8p {
    to { opacity: 1; }
}

.td-drawer[b-353d9cmc8p] {
    width: 420px;
    max-width: 100vw;
    height: 100%;
    background: var(--bg-card, #fff);
    box-shadow: -4px 0 24px rgba(0, 0, 0, 0.12);
    display: flex;
    flex-direction: column;
    transform: translateX(100%);
    animation: td-slide-in-b-353d9cmc8p 0.25s ease forwards;
}

@keyframes td-slide-in-b-353d9cmc8p {
    to { transform: translateX(0); }
}

/* â”€â”€ Loading â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.td-loading[b-353d9cmc8p] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    height: 200px;
    color: var(--text-muted);
    font: 400 14px/1 var(--font-sans);
}

.td-loading .material-symbols-rounded[b-353d9cmc8p] { font-size: 32px; }

@keyframes td-spin-anim-b-353d9cmc8p {
    to { transform: rotate(360deg); }
}
.td-spin[b-353d9cmc8p] { animation: td-spin-anim-b-353d9cmc8p 0.8s linear infinite; }

/* â”€â”€ Header â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.td-header[b-353d9cmc8p] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--border-soft);
    flex-shrink: 0;
}

.td-close[b-353d9cmc8p] {
    padding: 4px;
    border: none;
    background: transparent;
    color: var(--text-muted);
    cursor: pointer;
    border-radius: 6px;
    transition: all 0.12s ease;
}

.td-close:hover[b-353d9cmc8p] {
    background: var(--bg-hover, #f5f4f1);
    color: var(--text-primary);
}

.td-close .material-symbols-rounded[b-353d9cmc8p] { font-size: 22px; }

.td-id[b-353d9cmc8p] {
    font: 600 12px/1 var(--font-mono, monospace);
    color: var(--text-muted);
    background: var(--bg-hover, #f5f4f1);
    padding: 2px 8px;
    border-radius: 4px;
}

.td-header-spacer[b-353d9cmc8p] { flex: 1; }

.td-icon-btn[b-353d9cmc8p] {
    padding: 4px;
    border: none;
    background: transparent;
    color: var(--text-muted);
    cursor: pointer;
    border-radius: 6px;
    transition: all 0.12s ease;
}

.td-icon-btn:hover[b-353d9cmc8p] {
    background: var(--bg-hover, #f5f4f1);
    color: var(--text-primary);
}

.td-icon-btn .material-symbols-rounded[b-353d9cmc8p] { font-size: 20px; }

/* â”€â”€ Body (scrollable) â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.td-body[b-353d9cmc8p] {
    flex: 1;
    overflow-y: auto;
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.td-body[b-353d9cmc8p]::-webkit-scrollbar { width: 6px; }
.td-body[b-353d9cmc8p]::-webkit-scrollbar-thumb { background: var(--border-soft); border-radius: 3px; }

/* â”€â”€ Complete button â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.td-complete-btn[b-353d9cmc8p] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    border: 2px solid var(--brand-teal);
    border-radius: 10px;
    background: rgba(110, 198, 200, 0.06);
    color: var(--brand-teal);
    font: 600 14px/1 var(--font-sans);
    cursor: pointer;
    transition: all 0.15s ease;
    width: 100%;
}

.td-complete-btn:hover[b-353d9cmc8p] {
    background: rgba(110, 198, 200, 0.12);
}

.td-complete-btn .material-symbols-rounded[b-353d9cmc8p] { font-size: 22px; }

.td-complete-btn.td-completed[b-353d9cmc8p] {
    border-color: var(--success, #22C55E);
    background: rgba(34, 197, 94, 0.08);
    color: var(--success, #22C55E);
}

/* â”€â”€ Title â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.td-title-section[b-353d9cmc8p] { min-height: 32px; }

.td-title[b-353d9cmc8p] {
    font: 600 18px/1.3 var(--font-sans);
    color: var(--text-primary);
    margin: 0;
    cursor: pointer;
    padding: 4px 0;
    border-radius: 4px;
    transition: background 0.12s ease;
}

.td-title:hover[b-353d9cmc8p] {
    background: var(--bg-hover, #f5f4f1);
}

.td-title-done[b-353d9cmc8p] {
    text-decoration: line-through;
    color: var(--text-muted);
}

.td-title-input[b-353d9cmc8p] {
    width: 100%;
    font: 600 18px/1.3 var(--font-sans);
    color: var(--text-primary);
    border: 2px solid var(--brand-teal);
    border-radius: 6px;
    padding: 4px 8px;
    background: var(--bg-card, #fff);
    outline: none;
}

/* â”€â”€ Meta grid â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.td-meta-grid[b-353d9cmc8p] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 12px;
    background: var(--bg-hover, #f5f4f1);
    border-radius: 10px;
}

.td-meta-row[b-353d9cmc8p] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 32px;
}

.td-meta-icon[b-353d9cmc8p] {
    font-size: 18px;
    color: var(--text-muted);
    width: 20px;
    text-align: center;
}

.td-meta-label[b-353d9cmc8p] {
    font: 500 12px/1 var(--font-sans);
    color: var(--text-muted);
    width: 80px;
    flex-shrink: 0;
}

.td-meta-input[b-353d9cmc8p],
.td-meta-select[b-353d9cmc8p] {
    flex: 1;
    min-width: 0;
    font: 400 13px/1 var(--font-sans);
    color: var(--text-primary);
    background: var(--bg-card, #fff);
    border: 1px solid var(--border-soft);
    border-radius: 6px;
    padding: 5px 8px;
    outline: none;
    transition: border-color 0.15s ease;
}

.td-meta-input:focus[b-353d9cmc8p],
.td-meta-select:focus[b-353d9cmc8p] {
    border-color: var(--brand-teal);
}

/* â”€â”€ Priority buttons â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.td-priority-btns[b-353d9cmc8p] {
    display: flex;
    gap: 4px;
    flex: 1;
}

.td-priority-btn[b-353d9cmc8p] {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4px;
    border: 1px solid var(--border-soft);
    border-radius: 6px;
    background: var(--bg-card, #fff);
    color: var(--text-muted);
    cursor: pointer;
    transition: all 0.12s ease;
}

.td-priority-btn .material-symbols-rounded[b-353d9cmc8p] { font-size: 18px; }

.td-priority-btn:hover[b-353d9cmc8p] { border-color: var(--text-muted); }

.td-priority-1.active[b-353d9cmc8p] { background: #DBEAFE; border-color: #3B82F6; color: #3B82F6; }
.td-priority-2.active[b-353d9cmc8p] { background: #E0E7FF; border-color: #6366F1; color: #6366F1; }
.td-priority-3.active[b-353d9cmc8p] { background: #FEF3C7; border-color: #F59E0B; color: var(--t-nem); }
.td-priority-4.active[b-353d9cmc8p] { background: #FEE2E2; border-color: #EF4444; color: #EF4444; }

/* â”€â”€ Sections â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.td-section[b-353d9cmc8p] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.td-section-header[b-353d9cmc8p] {
    display: flex;
    align-items: center;
    gap: 6px;
    font: 600 13px/1 var(--font-sans);
    color: var(--text-secondary);
}

.td-section-header .material-symbols-rounded[b-353d9cmc8p] { font-size: 18px; }

/* â”€â”€ Description textarea â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.td-description[b-353d9cmc8p] {
    font: 400 13px/1.5 var(--font-sans);
    color: var(--text-primary);
    border: 1px solid var(--border-soft);
    border-radius: 8px;
    padding: 10px 12px;
    background: var(--bg-card, #fff);
    resize: vertical;
    min-height: 60px;
    outline: none;
    transition: border-color 0.15s ease;
}

.td-description:focus[b-353d9cmc8p] {
    border-color: var(--brand-teal);
}

.td-description[b-353d9cmc8p]::placeholder {
    color: var(--text-muted);
}

/* â”€â”€ Subtasks â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.td-subtask-counter[b-353d9cmc8p] {
    margin-left: auto;
    font: 500 11px/1 var(--font-sans);
    color: var(--text-muted);
    background: var(--bg-hover, #f5f4f1);
    padding: 2px 8px;
    border-radius: 10px;
}

.td-subtask-progress[b-353d9cmc8p] { margin-bottom: 4px; }

.td-subtask-bar[b-353d9cmc8p] {
    height: 4px;
    background: var(--bg-skeleton, #eae7de);
    border-radius: 4px;
    overflow: hidden;
}

.td-subtask-bar-fill[b-353d9cmc8p] {
    height: 100%;
    background: var(--brand-teal);
    border-radius: 4px;
    transition: width 0.3s ease;
}

.td-subtask-item[b-353d9cmc8p] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 4px 0;
}

.td-subtask-check[b-353d9cmc8p] {
    padding: 0;
    border: none;
    background: transparent;
    color: var(--text-muted);
    cursor: pointer;
    display: flex;
    transition: color 0.12s ease;
}

.td-subtask-check:hover[b-353d9cmc8p] { color: var(--brand-teal); }

.td-subtask-check .material-symbols-rounded[b-353d9cmc8p] { font-size: 20px; }

.td-subtask-done .td-subtask-check[b-353d9cmc8p] { color: var(--success, #22C55E); }

.td-subtask-title[b-353d9cmc8p] {
    font: 400 13px/1.4 var(--font-sans);
    color: var(--text-primary);
}

.td-subtask-done .td-subtask-title[b-353d9cmc8p] {
    text-decoration: line-through;
    color: var(--text-muted);
}

.td-subtask-new[b-353d9cmc8p] {
    display: flex;
    align-items: center;
    gap: 4px;
}

.td-subtask-input[b-353d9cmc8p] {
    flex: 1;
    font: 400 13px/1 var(--font-sans);
    color: var(--text-primary);
    border: 1px solid var(--brand-teal);
    border-radius: 6px;
    padding: 6px 10px;
    outline: none;
    background: var(--bg-card, #fff);
}

.td-subtask-add-btn[b-353d9cmc8p],
.td-subtask-cancel-btn[b-353d9cmc8p] {
    padding: 4px;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    display: flex;
    transition: all 0.12s ease;
}

.td-subtask-add-btn[b-353d9cmc8p] {
    background: var(--brand-teal);
    color: var(--text-primary);
}

.td-subtask-add-btn:hover[b-353d9cmc8p] { opacity: 0.85; }

.td-subtask-cancel-btn[b-353d9cmc8p] {
    background: transparent;
    color: var(--text-muted);
}

.td-subtask-cancel-btn:hover[b-353d9cmc8p] {
    background: var(--bg-hover, #f5f4f1);
}

.td-subtask-add-btn .material-symbols-rounded[b-353d9cmc8p],
.td-subtask-cancel-btn .material-symbols-rounded[b-353d9cmc8p] { font-size: 18px; }

.td-add-subtask-btn[b-353d9cmc8p] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border: 1px dashed var(--border-soft);
    border-radius: 6px;
    background: transparent;
    color: var(--text-muted);
    font: 500 12px/1 var(--font-sans);
    cursor: pointer;
    transition: all 0.12s ease;
}

.td-add-subtask-btn:hover[b-353d9cmc8p] {
    border-color: var(--brand-teal);
    color: var(--brand-teal);
}

.td-add-subtask-btn .material-symbols-rounded[b-353d9cmc8p] { font-size: 16px; }

/* â”€â”€ Comments â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.td-comment-count[b-353d9cmc8p] {
    margin-left: auto;
    font: 500 11px/1 var(--font-sans);
    color: var(--text-muted);
    background: var(--bg-hover, #f5f4f1);
    padding: 2px 8px;
    border-radius: 10px;
}

.td-comment[b-353d9cmc8p] {
    display: flex;
    gap: 10px;
    padding: 8px 0;
    border-bottom: 1px solid var(--bg-hover, #f5f4f1);
}

.td-comment:last-of-type[b-353d9cmc8p] { border-bottom: none; }

.td-comment-avatar[b-353d9cmc8p] {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font: 700 11px/1 var(--font-sans);
    color: #fff;
    flex-shrink: 0;
}

.td-comment-body[b-353d9cmc8p] {
    flex: 1;
    min-width: 0;
}

.td-comment-header-row[b-353d9cmc8p] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin-bottom: 2px;
}

.td-comment-name[b-353d9cmc8p] {
    font: 600 12px/1 var(--font-sans);
    color: var(--text-primary);
}

.td-comment-time[b-353d9cmc8p] {
    font: 400 11px/1 var(--font-sans);
    color: var(--text-muted);
}

.td-comment-text[b-353d9cmc8p] {
    font: 400 13px/1.5 var(--font-sans);
    color: var(--text-secondary);
    word-break: break-word;
}

.td-comment-input-row[b-353d9cmc8p] {
    display: flex;
    gap: 6px;
    align-items: center;
    margin-top: 4px;
}

.td-comment-input[b-353d9cmc8p] {
    flex: 1;
    font: 400 13px/1 var(--font-sans);
    color: var(--text-primary);
    border: 1px solid var(--border-soft);
    border-radius: 8px;
    padding: 8px 12px;
    background: var(--bg-card, #fff);
    outline: none;
    transition: border-color 0.15s ease;
}

.td-comment-input:focus[b-353d9cmc8p] {
    border-color: var(--brand-teal);
}

.td-comment-send[b-353d9cmc8p] {
    padding: 6px;
    border: none;
    border-radius: 8px;
    background: var(--brand-teal);
    color: var(--text-primary);
    cursor: pointer;
    display: flex;
    transition: opacity 0.12s ease;
}

.td-comment-send:hover[b-353d9cmc8p] { opacity: 0.85; }
.td-comment-send:disabled[b-353d9cmc8p] { opacity: 0.4; cursor: not-allowed; }
.td-comment-send .material-symbols-rounded[b-353d9cmc8p] { font-size: 18px; }

/* â”€â”€ History â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.td-history[b-353d9cmc8p] {
    border: 1px solid var(--border-soft);
    border-radius: 8px;
    overflow: hidden;
}

.td-history-summary[b-353d9cmc8p] {
    padding: 10px 12px;
    cursor: pointer;
    list-style: none;
    user-select: none;
    background: var(--bg-hover, #f5f4f1);
    border-radius: 8px;
}

.td-history-summary[b-353d9cmc8p]::-webkit-details-marker { display: none; }

.td-history[open] .td-history-summary[b-353d9cmc8p] {
    border-radius: 8px 8px 0 0;
    border-bottom: 1px solid var(--border-soft);
}

.td-history-list[b-353d9cmc8p] {
    padding: 8px 12px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-height: 200px;
    overflow-y: auto;
}

.td-history-item[b-353d9cmc8p] {
    font: 400 12px/1.5 var(--font-sans);
    color: var(--text-secondary);
}

.td-history-user[b-353d9cmc8p] {
    font-weight: 600;
    color: var(--text-primary);
}

.td-history-time[b-353d9cmc8p] {
    color: var(--text-muted);
}

/* â”€â”€ Responsive: fullscreen on mobile â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
@media (max-width: 640px) {
    .td-drawer[b-353d9cmc8p] {
        width: 100vw;
    }
}

.td-close[b-353d9cmc8p], .td-icon-btn[b-353d9cmc8p], .td-comment-send[b-353d9cmc8p], .td-subtask-check[b-353d9cmc8p] { min-width:44px; min-height:44px; }
.td-drawer :is(button,input,textarea,select):focus-visible[b-353d9cmc8p] { outline:3px solid var(--brand-teal); outline-offset:2px; }

/* Fecha + hora opcional (paridad con la app: sin hora = vence ese dia) */
.td-meta-hora[b-353d9cmc8p] { flex: 0 0 96px; }
.td-meta-hora:disabled[b-353d9cmc8p] { opacity: .5; }

/* Repetir y aviso (contrato v1 2026-10-11): chip de la serie, acciones y la linea del aviso */
.td-repetir[b-353d9cmc8p] { flex: 1; min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.td-rep-chip[b-353d9cmc8p] {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 2px 8px; border-radius: 999px;
    background: var(--bg-light-teal); color: var(--brand-teal-deep);
    font: 700 12px/1.4 var(--font-sans);
}
.td-rep-chip .material-symbols-rounded[b-353d9cmc8p] { font-size: 14px; }
.td-rep-no[b-353d9cmc8p] { font: 400 13px/1 var(--font-sans); color: var(--text-muted); }
.td-rep-btn[b-353d9cmc8p] {
    display: inline-flex; align-items: center; gap: 4px;
    min-height: 32px; padding: 4px 10px;
    border: 1px solid var(--border-med); border-radius: 8px;
    background: var(--bg-card, #fff); color: var(--text-secondary);
    font: 600 12px/1 var(--font-sans); cursor: pointer;
}
.td-rep-btn .material-symbols-rounded[b-353d9cmc8p] { font-size: 16px; }
.td-rep-btn:hover:not(:disabled)[b-353d9cmc8p] { border-color: var(--brand-teal-deep); color: var(--brand-teal-deep); }
.td-rep-btn:disabled[b-353d9cmc8p] { opacity: .5; cursor: not-allowed; }
.td-rep-stop:hover:not(:disabled)[b-353d9cmc8p] { border-color: var(--danger); color: var(--danger); }
.td-aviso-linea[b-353d9cmc8p] {
    display: flex; gap: 6px; align-items: flex-start;
    padding-left: 28px;
    font: 400 12.5px/1.4 var(--font-sans); color: var(--text-secondary);
}
.td-aviso-linea .material-symbols-rounded[b-353d9cmc8p] { font-size: 16px; color: var(--brand-teal-deep); margin-top: 1px; }
/* /Components/Tareas/TareasFiltrosDrawer.razor.rz.scp.css */
/* TareasFiltrosDrawer (prefijo tfd-) */

.tfd-overlay[b-kncp3q04y1] {
    position: fixed;
    inset: 0;
    z-index: 900;
    background: rgba(0, 0, 0, 0.35);
    display: flex;
    justify-content: flex-end;
    opacity: 0;
    animation: tfd-fade-b-kncp3q04y1 0.15s ease forwards;
}
@keyframes tfd-fade-b-kncp3q04y1 { to { opacity: 1; } }

.tfd-drawer[b-kncp3q04y1] {
    width: 340px;
    max-width: 100vw;
    height: 100%;
    background: var(--bg-card, #fff);
    box-shadow: -4px 0 24px rgba(0, 0, 0, 0.12);
    display: flex;
    flex-direction: column;
    transform: translateX(100%);
    animation: tfd-slide-b-kncp3q04y1 0.25s ease forwards;
}
@keyframes tfd-slide-b-kncp3q04y1 { to { transform: translateX(0); } }

.tfd-header[b-kncp3q04y1] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--border-soft);
}
.tfd-header .material-symbols-rounded[b-kncp3q04y1] { font-size: 20px; color: var(--brand-teal); }
.tfd-header h2[b-kncp3q04y1] { font: 600 15px/1 var(--font-sans); color: var(--text-primary); margin: 0; }
.tfd-spacer[b-kncp3q04y1] { flex: 1; }
.tfd-close[b-kncp3q04y1] {
    padding: 4px; border: none; background: transparent;
    color: var(--text-muted); cursor: pointer; border-radius: 6px;
}
.tfd-close:hover[b-kncp3q04y1] { background: var(--bg-hover, #f5f4f1); }
.tfd-close .material-symbols-rounded[b-kncp3q04y1] { font-size: 20px; }

.tfd-body[b-kncp3q04y1] {
    flex: 1; overflow-y: auto; padding: 16px;
    display: flex; flex-direction: column; gap: 20px;
}

.tfd-section[b-kncp3q04y1] { display: flex; flex-direction: column; gap: 8px; }

.tfd-label[b-kncp3q04y1] {
    display: flex; align-items: center; gap: 6px;
    font: 600 12px/1 var(--font-sans); color: var(--text-muted);
    text-transform: uppercase; letter-spacing: 0.3px;
}
.tfd-label .material-symbols-rounded[b-kncp3q04y1] { font-size: 16px; }

.tfd-check-row[b-kncp3q04y1] {
    display: flex; align-items: center; gap: 8px;
    padding: 6px 8px; border-radius: 6px; cursor: pointer;
    transition: background 0.12s;
}
.tfd-check-row:hover[b-kncp3q04y1] { background: var(--bg-hover, #f5f4f1); }
.tfd-check-row input[type="checkbox"][b-kncp3q04y1] { accent-color: var(--brand-teal); width: 16px; height: 16px; }
.tfd-check-name[b-kncp3q04y1] { flex: 1; font: 400 13px/1.3 var(--font-sans); color: var(--text-primary); }
.tfd-check-role[b-kncp3q04y1] { font: 400 11px/1 var(--font-sans); color: var(--text-muted); }

.tfd-empty[b-kncp3q04y1] { font: 400 12px/1 var(--font-sans); color: var(--text-muted); padding: 4px 0; }

.tfd-prio-grid[b-kncp3q04y1] { display: flex; gap: 4px; }
.tfd-prio-item[b-kncp3q04y1] {
    flex: 1; display: flex; align-items: center; justify-content: center; gap: 3px;
    padding: 6px 4px; border: 1px solid var(--border-soft); border-radius: 6px;
    background: var(--bg-card, #fff); color: var(--text-muted);
    cursor: pointer; font: 500 11px/1 var(--font-sans); transition: all 0.12s;
}
.tfd-prio-item input[b-kncp3q04y1] { display: none; }
.tfd-prio-item .material-symbols-rounded[b-kncp3q04y1] { font-size: 16px; }
.tfd-prio-item:hover[b-kncp3q04y1] { border-color: var(--text-muted); }
.tfd-prio-1.active[b-kncp3q04y1] { background: #DBEAFE; border-color: #3B82F6; color: #3B82F6; }
.tfd-prio-2.active[b-kncp3q04y1] { background: #E0E7FF; border-color: #6366F1; color: #6366F1; }
.tfd-prio-3.active[b-kncp3q04y1] { background: #FEF3C7; border-color: #F59E0B; color: var(--t-nem); }
.tfd-prio-4.active[b-kncp3q04y1] { background: #FEE2E2; border-color: #EF4444; color: #EF4444; }

.tfd-date-row[b-kncp3q04y1] { display: flex; gap: 8px; }
.tfd-date-field[b-kncp3q04y1] { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.tfd-date-hint[b-kncp3q04y1] { font: 400 11px/1 var(--font-sans); color: var(--text-muted); }
.tfd-input[b-kncp3q04y1] {
    font: 400 13px/1 var(--font-sans); color: var(--text-primary);
    background: var(--bg-card, #fff); border: 1px solid var(--border-soft);
    border-radius: 6px; padding: 6px 8px; outline: none;
}
.tfd-input:focus[b-kncp3q04y1] { border-color: var(--brand-teal); }

.tfd-footer[b-kncp3q04y1] {
    display: flex; justify-content: space-between; gap: 8px;
    padding: 12px 16px; border-top: 1px solid var(--border-soft);
}
.tfd-btn-ghost[b-kncp3q04y1] {
    display: flex; align-items: center; gap: 4px;
    padding: 8px 12px; border: 1px solid var(--border-soft); border-radius: 8px;
    background: transparent; color: var(--text-secondary);
    font: 500 13px/1 var(--font-sans); cursor: pointer;
}
.tfd-btn-ghost:hover[b-kncp3q04y1] { background: var(--bg-hover, #f5f4f1); }
.tfd-btn-ghost .material-symbols-rounded[b-kncp3q04y1] { font-size: 16px; }

.tfd-btn-primary[b-kncp3q04y1] {
    display: flex; align-items: center; gap: 4px;
    padding: 8px 16px; border: none; border-radius: 8px;
    background: var(--brand-teal); color: var(--text-primary);
    font: 600 13px/1 var(--font-sans); cursor: pointer;
}
.tfd-btn-primary:hover[b-kncp3q04y1] { opacity: 0.9; }
.tfd-btn-primary .material-symbols-rounded[b-kncp3q04y1] { font-size: 16px; }

@media (max-width: 640px) { .tfd-drawer[b-kncp3q04y1] { width: 100vw; } }
/* /Components/Turnos/SelectorTurno.razor.rz.scp.css */
/* TURNOS-01 · Selector de turno (segmentado). Solo tokens. */
.st[b-rtoix5fe0y] {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px;
    padding: 4px;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
    font-family: var(--font-sans);
    max-width: 100%;
}

.st-label[b-rtoix5fe0y] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 0 8px 0 6px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .3px;
    text-transform: uppercase;
    color: var(--text-secondary);
}

.st-label .msr[b-rtoix5fe0y] { font-size: 16px; color: var(--brand-teal-deep); }

.st-opt[b-rtoix5fe0y] {
    min-height: 34px;
    padding: 6px 14px;
    border: 1px solid transparent;
    border-radius: var(--radius-lg);
    background: transparent;
    color: var(--text-secondary);
    font: 600 13px var(--font-sans);
    cursor: pointer;
    transition: background .15s var(--ease), color .15s var(--ease), border-color .15s var(--ease);
}

.st-opt:hover:not(:disabled)[b-rtoix5fe0y] { background: var(--bg-light-teal); color: var(--brand-teal-deep); }

.st-opt--on[b-rtoix5fe0y],
.st-opt--on:hover:not(:disabled)[b-rtoix5fe0y] {
    background: var(--brand-teal-deep);
    color: var(--bg-panel); /* blanco sobre teal deep: 5.96:1 AA (SISTEMA-DISENO 1.1) */
    border-color: var(--brand-teal-deep);
}

.st-opt:disabled[b-rtoix5fe0y] { cursor: progress; opacity: .7; }

.st-chip[b-rtoix5fe0y] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: var(--radius-xl);
    background: var(--bg-light-teal);
    color: var(--brand-teal-deep);
    font: 700 12.5px var(--font-sans);
}

.st-chip .msr[b-rtoix5fe0y] { font-size: 16px; }

.st-msg[b-rtoix5fe0y] {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    padding: 8px 12px;
    border-radius: var(--radius-md);
    font-size: 13px;
    color: var(--text-secondary);
    background: var(--bg-cream);
    border: 1px solid var(--border-soft);
}

.st-msg .msr[b-rtoix5fe0y] { font-size: 18px; }
.st-msg--error[b-rtoix5fe0y] { color: var(--danger); background: var(--error-bg); border-color: var(--border-med); }
.st-msg--warn[b-rtoix5fe0y] { color: var(--warning-ink); background: var(--bg-cream); border-color: var(--border-med); }

.st-link[b-rtoix5fe0y] {
    border: none;
    background: none;
    padding: 0;
    color: var(--brand-teal-deep);
    font: 700 13px var(--font-sans);
    text-decoration: underline;
    cursor: pointer;
}

.st-nota[b-rtoix5fe0y] { margin: 6px 2px 0; font-size: 12.5px; color: var(--text-secondary); }
.st-nota--error[b-rtoix5fe0y] { color: var(--danger); }

.st-skel[b-rtoix5fe0y] { display: inline-flex; gap: 6px; padding: 4px; }
.st-skel span[b-rtoix5fe0y] {
    width: 86px;
    height: 34px;
    border-radius: var(--radius-lg);
    background: linear-gradient(90deg, var(--border-soft), var(--bg-cream), var(--border-soft));
    background-size: 200% 100%;
    animation: st-shimmer-b-rtoix5fe0y 1.2s infinite linear;
}

@keyframes st-shimmer-b-rtoix5fe0y { to { background-position: -200% 0; } }

@media (pointer: coarse) {
    .st-opt[b-rtoix5fe0y] { min-height: 44px; padding: 8px 16px; }
}

@media (max-width: 480px) {
    .st[b-rtoix5fe0y] { display: flex; width: 100%; }
    .st-label[b-rtoix5fe0y] { width: 100%; padding: 2px 6px 4px; }
    .st-opt[b-rtoix5fe0y] { flex: 1 1 0; }
}

@media (prefers-reduced-motion: reduce) {
    .st-skel span[b-rtoix5fe0y] { animation: none; }
    .st-opt[b-rtoix5fe0y] { transition: none; }
}
/* /Components/UI/AuthShell.razor.rz.scp.css */
/* =====================================================================
   AuthShell v2.0 — Un solo shell para las pantallas anónimas de miCE
   (Login · Recuperar · Registro · Activar)
   Tokens semánticos de la casa, WCAG AA medido y soporte móvil 44px.
   ===================================================================== */

.auth-shell[b-nwzrx7s1eg] {
    min-height: 100vh;
    min-height: 100dvh;
    box-sizing: border-box;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 18px;
    padding: 24px;
    background: var(--bg, #F4F0E6);
    color: var(--text-primary, #1A1C1F);
    font-family: var(--font-sans, "Figtree", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);
}

.auth-shell--lateral[b-nwzrx7s1eg] {
    grid-template-columns: minmax(220px, 300px) 1fr;
    place-items: stretch;
    align-content: stretch;
    gap: 0;
    padding: 0;
}

.auth-shell--lateral .auth-main[b-nwzrx7s1eg] {
    display: grid;
    place-items: center;
    align-content: center;
    gap: 18px;
    padding: 24px;
    min-width: 0;
}

/* ==================== PANEL LATERAL (CARBÓN) ==================== */

.auth-side[b-nwzrx7s1eg] {
    background: var(--bg-sidebar, #1E2126);
    color: #FFFFFF;
    padding: clamp(22px, 2.6vw, 36px);
    display: flex;
    flex-direction: column;
    gap: clamp(24px, 3.5vh, 40px);
    min-height: 100%;
    box-sizing: border-box;
}

.auth-side[b-nwzrx7s1eg]  .auth-word {
    color: #FFFFFF;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.auth-side[b-nwzrx7s1eg]  .auth-word-ico {
    width: 42px;
    height: 42px;
    border-radius: var(--radius-md, 9px);
    background: var(--brand-teal-primary, #6EC6C8);
    color: var(--brand-teal-deep, #2C6D6F);
    display: grid;
    place-items: center;
    flex: none;
}

.auth-side[b-nwzrx7s1eg]  .auth-word-ico .msr {
    font-size: 26px;
}

.auth-side[b-nwzrx7s1eg]  .auth-word-t {
    font-family: var(--font-serif, "Fraunces", Georgia, serif);
    font-size: 22px;
    font-weight: 650;
    letter-spacing: -.2px;
    color: #FFFFFF;
}

.auth-side[b-nwzrx7s1eg]  .auth-word-t .mi {
    font-style: italic;
    font-weight: 400;
    color: var(--brand-teal, #6DC7D0);
}

.auth-side[b-nwzrx7s1eg]  .auth-side-head {
    font-family: var(--font-serif, "Fraunces", Georgia, serif);
    font-size: 22px;
    font-weight: 500;
    line-height: 1.25;
    margin: 0;
    color: #FFFFFF;
}

.auth-side[b-nwzrx7s1eg]  .auth-side-sub {
    font-size: 13px;
    line-height: 1.6;
    color: var(--text-sidebar, #C7CBD1);
    margin: 8px 0 0;
}

.auth-side[b-nwzrx7s1eg]  .auth-kpis {
    display: grid;
    gap: 12px;
    margin-top: auto;
}

.auth-side[b-nwzrx7s1eg]  .auth-kpi {
    border-top: 1px solid var(--border-sidebar, #2F343B);
    padding-top: 10px;
}

.auth-side[b-nwzrx7s1eg]  .auth-kpi-v {
    font-family: var(--font-serif, "Fraunces", Georgia, serif);
    font-size: 16px;
    font-weight: 600;
    color: #FFFFFF;
}

.auth-side[b-nwzrx7s1eg]  .auth-kpi-l {
    font-size: 12px;
    color: var(--text-sidebar, #C7CBD1);
    margin-top: 2px;
}

.auth-side[b-nwzrx7s1eg]  .auth-side-sign {
    font-size: 11.5px;
    color: var(--text-sidebar-muted, #8B9098);
    margin: 0;
}

/* ==================== WORDMARK (LIENZO CREMA) ==================== */

.auth-word[b-nwzrx7s1eg] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    color: var(--text-primary, #1A1C1F);
}

.auth-word-ico[b-nwzrx7s1eg] {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: var(--radius-md, 9px);
    background: var(--brand-teal-primary, #6EC6C8);
    color: var(--brand-teal-deep, #2C6D6F);
    flex: none;
}

.auth-word-ico .msr[b-nwzrx7s1eg] {
    font-size: 26px;
}

.auth-word-t[b-nwzrx7s1eg] {
    font-family: var(--font-serif, "Fraunces", Georgia, serif);
    font-size: 22px;
    font-weight: 650;
    letter-spacing: -.2px;
}

.auth-word-t .mi[b-nwzrx7s1eg] {
    font-style: italic;
    font-weight: 400;
}

/* ==================== TARJETA (CARD) ==================== */

.auth-card[b-nwzrx7s1eg] {
    width: min(100%, 440px);
    box-sizing: border-box;
    padding: 30px;
    border: 1px solid var(--border-soft, #E8E4DD);
    border-radius: var(--radius-xl, 16px);
    background: var(--bg-panel, #FFFFFF);
    box-shadow: var(--shadow-md, 0 4px 10px rgba(26,28,31,.06), 0 12px 32px rgba(26,28,31,.08));
}

.auth-card--ancha[b-nwzrx7s1eg] {
    width: min(100%, 480px);
}

/* ==================== BARRA SUPERIOR (SUPERIOR) ==================== */

.auth-top[b-nwzrx7s1eg] {
    width: min(100%, 440px);
    display: flex;
    justify-content: flex-end;
    font-size: 13px;
    color: var(--text-secondary, #5C6068);
    margin-bottom: -6px;
}

.auth-top[b-nwzrx7s1eg]  .auth-link {
    color: var(--brand-teal-deep, #2C6D6F);
    font-weight: 600;
    text-decoration: none;
}

.auth-top[b-nwzrx7s1eg]  .auth-link:hover {
    text-decoration: underline;
}

/* ==================== BARRAS DE PASOS ==================== */

.auth-steps[b-nwzrx7s1eg] {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 1fr;
    gap: 7px;
    margin-bottom: 22px;
}

.auth-step[b-nwzrx7s1eg] {
    height: 4px;
    border-radius: var(--radius-pill, 999px);
    background: var(--border-soft, #E8E4DD);
}

.auth-step--on[b-nwzrx7s1eg] {
    background: var(--brand-teal-deep, #2C6D6F);
}

/* ==================== DESCENDIENTES DE LA CARD (::deep) ==================== */

.auth-card[b-nwzrx7s1eg]  .auth-eyebrow {
    font-size: 12px;
    font-weight: 750;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--brand-teal-deep, #2C6D6F);
    margin: 0 0 6px;
}

.auth-card[b-nwzrx7s1eg]  .auth-t {
    font-family: var(--font-serif, "Fraunces", Georgia, serif);
    font-size: 27px;
    font-weight: 600;
    line-height: 1.15;
    margin: 0 0 8px;
    letter-spacing: -.3px;
    color: var(--text-primary, #1A1C1F);
}

/* FocusOnNavigate (App.razor) enfoca el h1 al navegar: sin anillo negro alrededor del titulo */
.auth-card[b-nwzrx7s1eg]  .auth-t:focus,
.auth-card[b-nwzrx7s1eg]  .auth-t:focus-visible {
    outline: none;
}

.auth-card[b-nwzrx7s1eg]  .auth-s {
    font-size: 14px;
    line-height: 1.6;
    color: var(--text-secondary, #5C6068);
    margin: 0 0 20px;
}

.auth-card[b-nwzrx7s1eg]  .auth-foot {
    margin-top: 18px;
    font-size: 13px;
    color: var(--text-secondary, #5C6068);
    text-align: center;
}

.auth-card[b-nwzrx7s1eg]  .auth-link {
    color: var(--brand-teal-deep, #2C6D6F);
    font-weight: 600;
    text-decoration: none;
}

.auth-card[b-nwzrx7s1eg]  .auth-link:hover {
    text-decoration: underline;
}

/* Campos pf-* */
.auth-card[b-nwzrx7s1eg]  .pf-field {
    display: grid;
    gap: 6px;
    margin-bottom: 14px;
}

.auth-card[b-nwzrx7s1eg]  .pf-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 8px;
}

.auth-card[b-nwzrx7s1eg]  .pf-label {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary, #1A1C1F);
    margin-bottom: 0;
}

.auth-card[b-nwzrx7s1eg]  .pf-inputwrap {
    position: relative;
}

.auth-card[b-nwzrx7s1eg]  .pf-input {
    width: 100%;
    min-height: 44px;
    box-sizing: border-box;
    border: 1px solid var(--border-soft, #E8E4DD);
    border-radius: var(--radius-md, 9px);
    background: var(--bg-cream, #FAF7F1);
    padding: 11px 13px;
    font: inherit;
    font-size: 14px;
    color: var(--text-primary, #1A1C1F);
    transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

.auth-card[b-nwzrx7s1eg]  .pf-input.has-eye {
    padding-right: 44px;
}

.auth-card[b-nwzrx7s1eg]  .pf-input::placeholder {
    color: var(--text-secondary, #5C6068);
    opacity: 1;
}

.auth-card[b-nwzrx7s1eg]  .pf-input:focus {
    outline: none;
    border-color: var(--brand-teal-deep, #2C6D6F);
    background: var(--bg-panel, #FFFFFF);
    box-shadow: 0 0 0 3px rgba(110, 198, 200, .35);
}

.auth-card[b-nwzrx7s1eg]  .pf-input[aria-invalid="true"],
.auth-card[b-nwzrx7s1eg]  .pf-input.pf-input--error {
    border-color: var(--danger, #A32D2D);
}

.auth-card[b-nwzrx7s1eg]  .pf-input:disabled {
    cursor: wait;
    opacity: .7;
}

.auth-card[b-nwzrx7s1eg]  .pf-eye {
    position: absolute;
    right: 6px;
    top: 50%;
    transform: translateY(-50%);
    width: 32px;
    height: 32px;
    border: 0;
    background: transparent;
    border-radius: var(--radius-sm, 6px);
    color: var(--text-secondary, #5C6068);
    display: grid;
    place-items: center;
    cursor: pointer;
    padding: 0;
}

.auth-card[b-nwzrx7s1eg]  .pf-eye:hover,
.auth-card[b-nwzrx7s1eg]  .pf-eye:focus-visible {
    outline: none;
    background: var(--bg-light-teal, #E8F4F8);
    color: var(--brand-teal-deep, #2C6D6F);
}

.auth-card[b-nwzrx7s1eg]  .pf-eye .msr {
    font-size: 20px;
}

.auth-card[b-nwzrx7s1eg]  .pf-fielderr {
    color: var(--danger, #A32D2D);
    font-size: 12.5px;
    display: flex;
    gap: 6px;
    align-items: flex-start;
    margin: 6px 0 10px;
    line-height: 1.45;
}

.auth-card[b-nwzrx7s1eg]  .pf-fielderr .msr {
    font-size: 16px;
    flex: none;
    margin-top: 1px;
}

.auth-card[b-nwzrx7s1eg]  .pf-reqs {
    display: grid;
    gap: 6px;
    margin: 8px 0 0;
    padding: 0;
    list-style: none;
}

.auth-card[b-nwzrx7s1eg]  .pf-req {
    font-size: 12.5px;
    color: var(--text-secondary, #5C6068);
    display: flex;
    gap: 6px;
    align-items: center;
}

.auth-card[b-nwzrx7s1eg]  .pf-req .msr {
    font-size: 16px;
}

.auth-card[b-nwzrx7s1eg]  .pf-req--ok {
    color: var(--success-ink, #0B6449);
    font-weight: 650;
}

/* Checkbox nativo con accent-color */
.auth-card[b-nwzrx7s1eg]  .pf-check {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 13px;
    color: var(--text-primary, #1A1C1F);
    margin: 2px 0 16px;
    min-height: 24px;
    cursor: pointer;
}

.auth-card[b-nwzrx7s1eg]  .pf-check input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: var(--brand-teal-deep, #2C6D6F);
    cursor: pointer;
}

/* Código OTP (Recuperar) */
.auth-card[b-nwzrx7s1eg]  .auth-code {
    width: 100%;
    min-height: 44px;
    box-sizing: border-box;
    border: 1px solid var(--border-soft, #E8E4DD);
    border-radius: var(--radius-md, 9px);
    background: var(--bg-cream, #FAF7F1);
    padding: 13px;
    font-family: var(--font-mono, "JetBrains Mono", Consolas, monospace);
    font-size: 24px;
    font-weight: 700;
    letter-spacing: .28em;
    text-align: center;
    color: var(--text-primary, #1A1C1F);
    transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

.auth-card[b-nwzrx7s1eg]  .auth-code:focus {
    outline: none;
    border-color: var(--brand-teal-deep, #2C6D6F);
    background: var(--bg-panel, #FFFFFF);
    box-shadow: 0 0 0 3px rgba(110, 198, 200, .35);
}

.auth-card[b-nwzrx7s1eg]  .auth-code[aria-invalid="true"],
.auth-card[b-nwzrx7s1eg]  .auth-code.pf-input--error {
    border-color: var(--danger, #A32D2D);
}

.auth-card[b-nwzrx7s1eg]  .auth-hint {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
    color: var(--text-secondary, #5C6068);
    margin: 6px 0 0;
}

/* Alerta de servidor */
.auth-card[b-nwzrx7s1eg]  .auth-alert {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    background: var(--danger-bg, #FCEBEB);
    color: var(--danger, #A32D2D);
    border-radius: var(--radius-md, 9px);
    padding: 10px 12px;
    font-size: 13px;
    margin-bottom: 14px;
    line-height: 1.45;
}

.auth-card[b-nwzrx7s1eg]  .auth-alert .msr {
    font-size: 18px;
    flex: none;
    margin-top: 1px;
}

/* Botón primario y clases del botón */
.auth-card[b-nwzrx7s1eg]  .auth-btn-full {
    width: 100%;
    min-height: 44px;
    justify-content: center;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.auth-card[b-nwzrx7s1eg]  .auth-spin,
.auth-card[b-nwzrx7s1eg]  .spin {
    width: 16px;
    height: 16px;
    border: 2px solid rgba(26, 28, 31, .25);
    border-top-color: var(--text-primary, #1A1C1F);
    border-radius: 50%;
    animation: auth-spin-b-nwzrx7s1eg .7s linear infinite;
    display: inline-block;
    vertical-align: middle;
}

@keyframes auth-spin-b-nwzrx7s1eg {
    to { transform: rotate(360deg); }
}

/* Enlaces auxiliares y seguridad (Login) */
.auth-card[b-nwzrx7s1eg]  .auth-aside-links {
    display: flex;
    gap: 14px;
    justify-content: center;
    align-items: center;
    font-size: 12.5px;
    color: var(--text-secondary, #5C6068);
    margin-top: 16px;
}

.auth-card[b-nwzrx7s1eg]  .auth-aside-links .msr {
    font-size: 16px;
    vertical-align: -3px;
}

.auth-card[b-nwzrx7s1eg]  .auth-aside-security {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: var(--text-secondary, #5C6068);
    font-size: 12.5px;
}

.auth-card[b-nwzrx7s1eg]  .auth-aside-security .msr {
    color: var(--success, #1D9E75);
    font-size: 16px;
}

.auth-card[b-nwzrx7s1eg]  .auth-copyright {
    margin-top: 14px;
    text-align: center;
    color: var(--text-secondary, #5C6068);
    font-size: 11.5px;
    margin-bottom: 0;
}

/* Paso final éxito (Recuperar / Activar) */
.auth-card[b-nwzrx7s1eg]  .auth-done-ico {
    display: grid;
    place-items: center;
    width: 64px;
    height: 64px;
    border-radius: var(--radius-pill, 999px);
    background: var(--bg-light-teal, #E8F4F8);
    color: var(--success-ink, #0B6449);
    margin: 0 auto 14px;
}

.auth-card[b-nwzrx7s1eg]  .auth-done-ico .msr {
    font-size: 42px;
}

.auth-card:has(.auth-done-ico)[b-nwzrx7s1eg] {
    text-align: center;
}

/* Reenvío de código (Recuperar) */
.auth-card[b-nwzrx7s1eg]  .auth-resend {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    margin-top: 14px;
}

.auth-card[b-nwzrx7s1eg]  .auth-resend-why {
    color: var(--text-secondary, #5C6068);
    font-size: 12px;
    line-height: 1.4;
}

/* ==================== RESPONSIVE & ACCESIBILIDAD ==================== */

@media (max-width: 1024px) {
    .auth-shell--lateral[b-nwzrx7s1eg] {
        grid-template-columns: 1fr;
        grid-template-rows: auto 1fr;
        align-content: start;
    }
    .auth-side[b-nwzrx7s1eg] {
        padding: 20px 24px;
        gap: 12px;
        min-height: auto;
    }
    .auth-side[b-nwzrx7s1eg]  .auth-kpis,
    .auth-side[b-nwzrx7s1eg]  .auth-side-sub,
    .auth-side[b-nwzrx7s1eg]  .auth-side-sign {
        display: none;
    }
    .auth-side[b-nwzrx7s1eg]  .auth-side-head {
        font-size: 18px;
        margin: 0;
    }
}

@media (max-width: 640px) {
    .auth-shell[b-nwzrx7s1eg] {
        padding: 18px 14px;
        align-content: start;
    }
    .auth-shell--lateral[b-nwzrx7s1eg] {
        grid-template-columns: 1fr;
    }
    .auth-shell--lateral .auth-main[b-nwzrx7s1eg] {
        padding: 18px 14px;
    }
    .auth-side[b-nwzrx7s1eg] {
        padding: 16px 18px;
        gap: 10px;
        min-height: 0;
    }
    .auth-side[b-nwzrx7s1eg]  .auth-kpis,
    .auth-side[b-nwzrx7s1eg]  .auth-side-sub,
    .auth-side[b-nwzrx7s1eg]  .auth-side-sign {
        display: none;
    }
    .auth-side[b-nwzrx7s1eg]  .auth-side-head {
        font-size: 16px;
        margin: 0;
    }
    .auth-card[b-nwzrx7s1eg] {
        padding: 24px 20px;
        width: 100%;
    }
    .auth-card[b-nwzrx7s1eg]  .auth-t {
        font-size: 24px;
    }
    .auth-card[b-nwzrx7s1eg]  .auth-resend {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (pointer: coarse) {
    .auth-card[b-nwzrx7s1eg]  .pf-input,
    .auth-card[b-nwzrx7s1eg]  .auth-code,
    .auth-card[b-nwzrx7s1eg]  .ui-btn,
    .auth-card[b-nwzrx7s1eg]  .auth-btn-full {
        min-height: 44px;
    }
    .auth-card[b-nwzrx7s1eg]  .pf-eye {
        width: 44px;
        height: 44px;
        right: 1px;
    }
    .auth-card[b-nwzrx7s1eg]  .pf-check {
        min-height: 44px;
    }
    .auth-word[b-nwzrx7s1eg] {
        min-height: 44px;
    }
    .auth-card[b-nwzrx7s1eg]  .auth-link,
    .auth-top[b-nwzrx7s1eg]  .auth-link {
        display: inline-block;
        padding: 6px 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .auth-card[b-nwzrx7s1eg]  .spin,
    .auth-card[b-nwzrx7s1eg]  .auth-spin {
        animation: none;
    }
    .auth-card[b-nwzrx7s1eg]  .ui-btn {
        transition: none;
    }
}
/* /Components/UI/Avatar.razor.rz.scp.css */
.ui-avatar[b-u83zg2vflj] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #FFFFFF;
    font-family: var(--font-sans);
    font-weight: 700;
    border-radius: var(--avatar-radius, 50%);
    position: relative;
    flex-shrink: 0;
    user-select: none;
}

.ui-avatar.xs[b-u83zg2vflj] { width: 22px; height: 22px; font-size: 9.5px; }
.ui-avatar.sm[b-u83zg2vflj] { width: 28px; height: 28px; font-size: 11px; }
.ui-avatar.md[b-u83zg2vflj] { width: 36px; height: 36px; font-size: 13px; }
.ui-avatar.lg[b-u83zg2vflj] { width: 44px; height: 44px; font-size: 15px; }
.ui-avatar.xl[b-u83zg2vflj] { width: 56px; height: 56px; font-size: 18px; }

/* === Tono Tinte === */
.ui-avatar.tinte[b-u83zg2vflj] {
    background: var(--av-tint-bg, #E8F4F8) !important;
    color: var(--av-tint-ink, #215A5E) !important;
}

/* === Dot de presencia === */
.ui-avatar-dot[b-u83zg2vflj] {
    position: absolute;
    bottom: -2px;
    right: -2px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 2px solid var(--bg-panel, #FFFFFF);
}

.ui-avatar.xs .ui-avatar-dot[b-u83zg2vflj] { width: 8px; height: 8px; bottom: -1px; right: -1px; border-width: 1.5px; }
.ui-avatar.sm .ui-avatar-dot[b-u83zg2vflj] { width: 9px; height: 9px; bottom: -1px; right: -1px; }
.ui-avatar.lg .ui-avatar-dot[b-u83zg2vflj] { width: 12px; height: 12px; }
.ui-avatar.xl .ui-avatar-dot[b-u83zg2vflj] { width: 14px; height: 14px; }

.ui-avatar-dot.online[b-u83zg2vflj]  { background: var(--success, #16A34A); }
.ui-avatar-dot.away[b-u83zg2vflj]    { background: #E0A800; }
.ui-avatar-dot.offline[b-u83zg2vflj] { background: #9CA3AF; }

/* === OnDark === */
.ui-avatar.on-dark .ui-avatar-dot[b-u83zg2vflj] {
    border-color: var(--bg-sidebar, #1A1C1F);
}

/* === Badge opcional === */
.ui-avatar-badge[b-u83zg2vflj] {
    position: absolute;
    bottom: -2px;
    right: -2px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* === Foto opcional (Fotos de estudiantes, contrato v1 §9) ===
   La imagen cubre el circulo encima de las iniciales; no recorta el dot ni el badge
   (el avatar no lleva overflow:hidden) y entra con un fundido de 160 ms. */
.ui-avatar-foto[b-u83zg2vflj] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border-radius: inherit;
    object-fit: cover;
    display: block;
    animation: ui-avatar-foto-entra-b-u83zg2vflj 160ms var(--ease, ease) both;
}

@keyframes ui-avatar-foto-entra-b-u83zg2vflj {
    from { opacity: 0; }
    to   { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    .ui-avatar-foto[b-u83zg2vflj] { animation: none; }
}
/* /Components/UI/Breadcrumb.razor.rz.scp.css */
.ui-breadcrumb[b-tz7wi8l3ot] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-sans);
    font-size: 12.5px;
    color: var(--text-muted);
    flex-wrap: wrap;
}

.ui-breadcrumb-home[b-tz7wi8l3ot] {
    font-size: 16px !important;
    color: var(--text-muted);
    margin-right: 2px;
}

.ui-breadcrumb-link[b-tz7wi8l3ot] {
    color: var(--text-secondary);
    text-decoration: none;
    transition: color 0.15s ease;
}

.ui-breadcrumb-link:hover[b-tz7wi8l3ot] { color: var(--brand-teal-deep); }

.ui-breadcrumb-current[b-tz7wi8l3ot] {
    color: var(--text-primary);
    font-weight: 600;
}

.ui-breadcrumb-sep[b-tz7wi8l3ot] {
    font-size: 14px !important;
    color: var(--text-muted);
}
/* /Components/UI/Button.razor.rz.scp.css */
.ui-btn[b-svm6kteyd7] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border-radius: var(--radius-md);
    font-family: var(--font-sans);
    font-weight: 700;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease, transform 0.1s ease, box-shadow 0.15s ease;
    border: 1px solid transparent;
    white-space: nowrap;
}

.ui-btn.md[b-svm6kteyd7] { font-size: 13px; padding: 8px 16px; }
.ui-btn.sm[b-svm6kteyd7] { font-size: 12px; padding: 6px 12px; }

.ui-btn .msr[b-svm6kteyd7] { font-size: 16px; }
.ui-btn.sm .msr[b-svm6kteyd7] { font-size: 14px; }

.ui-btn:disabled[b-svm6kteyd7] { opacity: 0.5; cursor: not-allowed; }
.ui-btn:not(:disabled):active[b-svm6kteyd7] { transform: translateY(0); }

/* === Primary === */
.ui-btn.primary[b-svm6kteyd7] {
    background: var(--brand-teal-primary);
    color: var(--text-primary);
    box-shadow: 0 2px 6px rgba(110, 198, 200, 0.3);
}
.ui-btn.primary:hover:not(:disabled)[b-svm6kteyd7] {
    background: var(--brand-teal-dark);
    transform: translateY(-1px);
}

/* === Secondary === */
.ui-btn.secondary[b-svm6kteyd7] {
    background: var(--bg-panel);
    color: var(--text-secondary);
    border-color: var(--border-soft);
    font-weight: 600;
}
.ui-btn.secondary.md[b-svm6kteyd7] { padding: 7px 14px; }
.ui-btn.secondary:hover:not(:disabled)[b-svm6kteyd7] {
    border-color: var(--brand-teal);
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
}

/* === Ghost === */
.ui-btn.ghost[b-svm6kteyd7] {
    background: transparent;
    color: var(--text-secondary);
    border-color: transparent;
    font-weight: 600;
}
.ui-btn.ghost.md[b-svm6kteyd7] { padding: 7px 12px; }
.ui-btn.ghost:hover:not(:disabled)[b-svm6kteyd7] {
    background: var(--bg-light-teal);
    color: var(--brand-teal-deep);
}

/* === Danger === */
.ui-btn.danger[b-svm6kteyd7] {
    background: var(--danger);
    color: #FFFFFF;
}
.ui-btn.danger:hover:not(:disabled)[b-svm6kteyd7] {
    background: #862525;
    transform: translateY(-1px);
}

/* === Icon === */
.ui-btn.icon[b-svm6kteyd7] {
    padding: 0;
    width: 36px;
    height: 36px;
    background: var(--bg-panel);
    border-color: var(--border-soft);
    color: var(--text-secondary);
}
.ui-btn.icon.sm[b-svm6kteyd7] { width: 30px; height: 30px; }
.ui-btn.icon .msr[b-svm6kteyd7] { font-size: 18px; }
.ui-btn.icon.sm .msr[b-svm6kteyd7] { font-size: 15px; }
.ui-btn.icon:hover:not(:disabled)[b-svm6kteyd7] {
    border-color: var(--brand-teal);
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
}
/* /Components/UI/Card.razor.rz.scp.css */
.ui-card[b-wa5d3qtm3l] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    transition: box-shadow 0.15s ease, transform 0.15s ease, border-color 0.15s ease;
}

.ui-card.elevated[b-wa5d3qtm3l]  { box-shadow: var(--shadow-md); }
.ui-card.hoverable[b-wa5d3qtm3l] { cursor: pointer; }
.ui-card.hoverable:hover[b-wa5d3qtm3l] {
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
    border-color: var(--border-med);
}

.ui-card.p-none[b-wa5d3qtm3l] { padding: 0; }
.ui-card.p-sm[b-wa5d3qtm3l]   { padding: 12px 14px; }
.ui-card.p-md[b-wa5d3qtm3l]   { padding: 18px 20px; }
.ui-card.p-lg[b-wa5d3qtm3l]   { padding: 24px 28px; }
/* /Components/UI/Chip.razor.rz.scp.css */
.ui-chip[b-o56nz3n87b] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    border-radius: 12px;
    font-family: var(--font-sans);
    font-weight: 700;
    letter-spacing: 0.3px;
    text-transform: uppercase;
    line-height: 1;
}

.ui-chip.md[b-o56nz3n87b] { padding: 3px 9px; font-size: 11px; }
.ui-chip.sm[b-o56nz3n87b] { padding: 2px 7px; font-size: 9.5px; }

.ui-chip .msr[b-o56nz3n87b] { font-size: 11px !important; }
.ui-chip.sm .msr[b-o56nz3n87b] { font-size: 10px !important; }

.ui-chip.success[b-o56nz3n87b] { background: rgba(29, 158, 117, 0.12); color: var(--success-ink); }
.ui-chip.warning[b-o56nz3n87b] { background: rgba(186, 117, 23, 0.14); color: var(--warning-ink); }
.ui-chip.danger[b-o56nz3n87b]  { background: rgba(163, 45, 45, 0.12);  color: var(--danger); }
.ui-chip.info[b-o56nz3n87b]    { background: rgba(45, 110, 163, 0.12); color: var(--info-ink); }
.ui-chip.muted[b-o56nz3n87b]   { background: #F0ECE2;                  color: var(--text-secondary); }
/* /Components/UI/EmptyState.razor.rz.scp.css */
.ui-empty[b-lmln7yihbw] {
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 440px;
    margin: 0 auto;
    padding: 48px 20px;
    text-align: center;
}

.ui-empty-icon[b-lmln7yihbw] {
    margin-bottom: 12px;
    color: var(--text-muted);
    font-size: 48px;
    line-height: 1;
    opacity: .55;
}

.ui-empty-title[b-lmln7yihbw] {
    margin: 0;
    color: var(--text-primary);
    font-family: var(--font-serif);
    font-size: 19px;
    font-weight: 600;
    line-height: 1.3;
}

.ui-empty-term[b-lmln7yihbw] {
    color: var(--text-primary);
    font-weight: 600;
    overflow-wrap: anywhere;
}

.ui-empty-help[b-lmln7yihbw] {
    margin: 6px 0 0;
    color: var(--text-secondary);
    font-family: var(--font-sans);
    font-size: 13px;
    line-height: 1.55;
    max-width: 380px;
}

.ui-empty-actions[b-lmln7yihbw] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 16px;
}

.ui-empty.error .ui-empty-icon[b-lmln7yihbw] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    margin-bottom: 12px;
    border-radius: var(--radius-lg);
    background: rgba(163, 45, 45, .12);
    color: var(--danger);
    font-size: 30px;
    opacity: 1;
}

.ui-empty.error .ui-empty-title[b-lmln7yihbw] {
    color: var(--text-primary);
}

.ui-empty.sm[b-lmln7yihbw] {
    flex-direction: row;
    justify-content: flex-start;
    gap: 12px;
    max-width: none;
    padding: 16px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-cream);
    text-align: left;
}

.ui-empty.sm .ui-empty-icon[b-lmln7yihbw] {
    flex: 0 0 auto;
    margin: 0;
    font-size: 22px;
}

.ui-empty.sm .ui-empty-body[b-lmln7yihbw] {
    flex: 1 1 auto;
    min-width: 0;
}

.ui-empty.sm .ui-empty-title[b-lmln7yihbw] {
    font-family: var(--font-sans);
    font-size: 14.5px;
    font-weight: 600;
}

.ui-empty.sm .ui-empty-help[b-lmln7yihbw] {
    margin-top: 2px;
    font-size: 12.5px;
    max-width: none;
}

.ui-empty.sm .ui-empty-actions[b-lmln7yihbw] {
    flex: 0 0 auto;
    margin-top: 0;
}

.ui-empty.sm.error[b-lmln7yihbw] {
    border-color: rgba(163, 45, 45, .22);
    background: rgba(163, 45, 45, .06);
}

.ui-empty.sm.error .ui-empty-icon[b-lmln7yihbw] {
    width: 40px;
    height: 40px;
    font-size: 22px;
}

@media (max-width: 640px) {
    .ui-empty[b-lmln7yihbw] {
        padding: 32px 16px;
    }

    .ui-empty-icon[b-lmln7yihbw] {
        font-size: 44px;
    }

    .ui-empty-title[b-lmln7yihbw] {
        font-size: 18px;
    }

    .ui-empty-actions[b-lmln7yihbw] {
        flex-direction: column;
        align-items: stretch;
        width: 100%;
        max-width: 280px;
    }

    .ui-empty.md .ui-empty-actions[b-lmln7yihbw]  .ui-btn,
    .ui-empty.md .ui-empty-actions[b-lmln7yihbw]  .mice-btn {
        width: 100%;
    }

    .ui-empty.sm[b-lmln7yihbw] {
        flex-direction: column;
        align-items: flex-start;
    }

    .ui-empty.sm .ui-empty-actions[b-lmln7yihbw] {
        width: 100%;
        max-width: none;
        margin: 12px 0 0;
    }

    .ui-empty.sm .ui-empty-actions[b-lmln7yihbw]  .ui-btn,
    .ui-empty.sm .ui-empty-actions[b-lmln7yihbw]  .mice-btn {
        width: 100%;
    }
}

@media (pointer: coarse) {
    .ui-empty-actions[b-lmln7yihbw]  .ui-btn,
    .ui-empty-actions[b-lmln7yihbw]  .mice-btn {
        min-height: 44px;
    }
}
/* /Components/UI/FeedbackHost.razor.rz.scp.css */
.fb-stack[b-ooczscuktl] {
    position: fixed;
    left: 20px;
    bottom: 20px;
    z-index: 2000;
    display: flex;
    flex-direction: column;
    gap: 10px;
    max-width: min(420px, calc(100vw - 40px));
    pointer-events: none;
}

.fb-msg[b-ooczscuktl] {
    pointer-events: auto;
    display: flex;
    align-items: flex-start;
    gap: 11px;
    padding: 12px 14px;
    background: var(--bg-panel);
    border: 1px solid var(--border-med);
    border-left: 3px solid var(--info);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    animation: fbIn-b-ooczscuktl .22s var(--ease) both;
}

@keyframes fbIn-b-ooczscuktl {
    from { opacity: 0; transform: translateY(10px) scale(.98); }
    to   { opacity: 1; transform: none; }
}

.fb-msg.is-error[b-ooczscuktl] { border-left-color: var(--danger); }
.fb-msg.is-exito[b-ooczscuktl] { border-left-color: var(--success); }
.fb-msg.is-aviso[b-ooczscuktl] { border-left-color: var(--warning); }

.fb-ico[b-ooczscuktl] {
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    display: grid;
    place-items: center;
}

.fb-msg.is-error .fb-ico[b-ooczscuktl] { background: rgba(163, 45, 45, .12); color: var(--danger); }
.fb-msg.is-exito .fb-ico[b-ooczscuktl] { background: rgba(29, 158, 117, .14); color: var(--success-ink); }
.fb-msg.is-aviso .fb-ico[b-ooczscuktl] { background: rgba(186, 117, 23, .14); color: var(--warning-ink); }

.fb-body[b-ooczscuktl] { flex: 1 1 auto; min-width: 0; }
.fb-tit[b-ooczscuktl] { font-size: 13.5px; font-weight: 700; line-height: 1.35; color: var(--text-primary); }
.fb-txt[b-ooczscuktl] { font-size: 12.5px; line-height: 1.45; color: var(--text-secondary); margin-top: 2px; }
.fb-acc[b-ooczscuktl] { margin-top: 9px; display: flex; gap: 8px; flex-wrap: wrap; }

.fb-btn[b-ooczscuktl] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    border: 1px solid var(--border-med);
    background: var(--bg-panel);
    color: var(--text-primary);
    padding: 6px 11px;
    border-radius: var(--radius-md);
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
    font-family: inherit;
    text-decoration: none;
}

.fb-btn:hover[b-ooczscuktl] { background: var(--bg-cream); }
.fb-btn .msr[b-ooczscuktl] { font-size: 15px; }

.fb-cerrar[b-ooczscuktl] {
    flex: 0 0 auto;
    background: none;
    border: none;
    cursor: pointer;
    color: var(--text-muted);
    padding: 2px;
    border-radius: var(--radius-sm);
}

.fb-cerrar:hover[b-ooczscuktl] { color: var(--text-primary); background: var(--bg-cream); }

.fb-msg :focus-visible[b-ooczscuktl],
.fb-btn:focus-visible[b-ooczscuktl],
.fb-cerrar:focus-visible[b-ooczscuktl] {
    outline: 2px solid var(--brand-teal);
    outline-offset: 2px;
}

@media (max-width: 640px) {
    .fb-stack[b-ooczscuktl] { left: 12px; right: 12px; bottom: auto; top: 12px; max-width: none; }
    .fb-msg[b-ooczscuktl] { animation-name: fbInTop-b-ooczscuktl; }
    @keyframes fbInTop-b-ooczscuktl {
        from { opacity: 0; transform: translateY(-10px) scale(.98); }
        to   { opacity: 1; transform: none; }
    }
}

@media (prefers-reduced-motion: reduce) {
    .fb-msg[b-ooczscuktl] { animation: none !important; }
}

/* al final del archivo: una regla base posterior con la misma especificidad
   pisaria esto (leccion del revisor, T-052, patron legal.css) */
@media (pointer: coarse) {
    .fb-btn[b-ooczscuktl], .fb-cerrar[b-ooczscuktl] { min-height: 44px; }
}
/* /Components/UI/FeedbackInline.razor.rz.scp.css */
.fbi[b-51ql6ii2bq] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-top: 8px;
    padding: 9px 11px;
    border-radius: var(--radius-md);
    background: rgba(163, 45, 45, .08);
    border: 1px solid rgba(163, 45, 45, .22);
}

.fbi .msr[b-51ql6ii2bq] { font-size: 17px; color: var(--danger); flex: 0 0 auto; margin-top: 1px; }
.fbi-body[b-51ql6ii2bq] { min-width: 0; }
.fbi-tit[b-51ql6ii2bq] { font-size: 12.5px; font-weight: 700; color: var(--danger); line-height: 1.35; }
.fbi-txt[b-51ql6ii2bq] { font-size: 12.5px; color: var(--text-secondary); line-height: 1.45; margin-top: 1px; }
.fbi-acc[b-51ql6ii2bq] { margin-top: 7px; }

.fbi .fb-btn[b-51ql6ii2bq] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    border: 1px solid var(--border-med);
    background: var(--bg-panel);
    color: var(--text-primary);
    padding: 6px 11px;
    border-radius: var(--radius-md);
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
    font-family: inherit;
}

.fbi .fb-btn:hover[b-51ql6ii2bq] { background: var(--bg-cream); }
.fbi .fb-btn:focus-visible[b-51ql6ii2bq] { outline: 2px solid var(--brand-teal); outline-offset: 2px; }

@media (prefers-reduced-motion: reduce) {
    .fbi[b-51ql6ii2bq] { animation: none !important; }
}

@media (pointer: coarse) {
    .fbi .fb-btn[b-51ql6ii2bq] { min-height: 44px; }
}
/* /Components/UI/GuardaDeCambios.razor.rz.scp.css */
.modal-backdrop[b-kcto6aawf4] {
    position: fixed;
    inset: 0;
    background: rgba(20, 22, 25, 0.5);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.as-guarda[b-kcto6aawf4] {
    background: var(--bg-panel, #FFFFFF);
    border-radius: var(--radius-xl, 16px);
    width: 100%;
    max-width: 480px;
    box-shadow: var(--shadow-lg, 0 12px 32px rgba(26,28,31,.12));
    overflow: hidden;
    font-family: var(--font-sans, 'Figtree', system-ui, sans-serif);
}

.as-guarda-h[b-kcto6aawf4] {
    display: flex;
    align-items: flex-start;
    gap: 13px;
    padding: 20px 22px 0;
}

.as-guarda-h-icon[b-kcto6aawf4] {
    width: 40px;
    height: 40px;
    border-radius: 11px;
    background: rgba(186, 117, 23, 0.14);
    color: var(--warning-ink, #8A5510);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.as-guarda-h-icon .material-symbols-rounded[b-kcto6aawf4] {
    font-size: 22px !important;
}

.as-guarda-t[b-kcto6aawf4] {
    font-family: var(--font-serif, 'Fraunces', Georgia, serif);
    font-size: 20px;
    font-weight: 600;
    margin: 0;
    line-height: 1.25;
    letter-spacing: -0.2px;
    color: var(--text-primary, #1A1C1F);
}

.as-guarda-b[b-kcto6aawf4] {
    padding: 12px 22px 4px;
    font-size: 14px;
    color: var(--text-secondary, #5C6068);
    line-height: 1.55;
}

.as-guarda-b p[b-kcto6aawf4] {
    margin: 0 0 10px;
}

.as-guarda-b b[b-kcto6aawf4] {
    color: var(--text-primary, #1A1C1F);
    font-weight: 600;
}

[b-kcto6aawf4] .as-guarda-nota {
    font-size: 12.5px;
    color: var(--text-secondary, #5C6068);
    background: var(--bg-cream, #FAF7F1);
    border-radius: var(--radius-md, 9px);
    padding: 9px 12px;
    display: flex;
    gap: 8px;
    align-items: flex-start;
    margin: 0 0 4px;
}

[b-kcto6aawf4] .as-guarda-nota .material-symbols-rounded {
    font-size: 16px !important;
    color: var(--text-muted, #8B9098);
    flex-shrink: 0;
}

.as-guarda-error[b-kcto6aawf4] {
    margin-top: 10px;
    font-size: 12.5px;
    color: var(--danger, #A32D2D);
    background: rgba(163, 45, 45, 0.08);
    border-radius: var(--radius-md, 9px);
    padding: 9px 12px;
    display: flex;
    gap: 8px;
    align-items: flex-start;
}

.as-guarda-error .material-symbols-rounded[b-kcto6aawf4] {
    font-size: 16px !important;
    flex-shrink: 0;
}

.as-guarda-f[b-kcto6aawf4] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 16px 22px 20px;
    flex-wrap: wrap;
}


.as-draft-spin[b-kcto6aawf4] {
    width: 11px;
    height: 11px;
    border-radius: 50%;
    border: 2px solid rgba(26, 28, 31, 0.28);
    border-top-color: var(--text-primary, #1A1C1F);
    animation: as-spin-b-kcto6aawf4 0.7s linear infinite;
}

@keyframes as-spin-b-kcto6aawf4 {
    to { transform: rotate(360deg); }
}

@media (max-width: 640px) {
    .as-guarda-f[b-kcto6aawf4] {
        flex-direction: column-reverse;
    }
    .as-guarda-f[b-kcto6aawf4]  .ui-btn {
        width: 100%;
        justify-content: center;
    }
}

@media (pointer: coarse) {
    [b-kcto6aawf4] .ui-btn {
        min-height: 44px;
        padding-top: 11px;
        padding-bottom: 11px;
    }
}
/* /Components/UI/NotifToastHost.razor.rz.scp.css */
/* Fase 2A — toasts globales de notificación (tokens del design system) */

.notif-toast-stack[b-ibqaff4bqr] {
    position: fixed;
    right: 20px;
    bottom: 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    z-index: 1200; /* sobre contenido y aside; debajo de modales full-screen */
    pointer-events: none;
    max-width: min(380px, calc(100vw - 40px));
}

.notif-toast[b-ibqaff4bqr] {
    pointer-events: auto;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 14px;
    background: var(--bg-panel, #ffffff);
    border: 1px solid var(--border-med, #e3e6ea);
    border-left: 3px solid var(--brand-teal-primary, var(--brand-teal, #4ba8aa));
    border-radius: var(--radius-lg, 14px);
    box-shadow: var(--shadow-lg, 0 12px 32px rgba(26, 28, 31, .16));
    cursor: pointer;
    animation: notifToastIn-b-ibqaff4bqr .22s var(--ease, cubic-bezier(.2, .8, .2, 1)) both;
}

.notif-toast.out[b-ibqaff4bqr] {
    opacity: 0;
    transform: translateY(6px);
    transition: opacity .18s ease, transform .18s ease;
}

@keyframes notifToastIn-b-ibqaff4bqr {
    from { opacity: 0; transform: translateY(10px) scale(.98); }
    to   { opacity: 1; transform: translateY(0)    scale(1); }
}

.notif-toast-avatar[b-ibqaff4bqr] {
    flex: 0 0 auto;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: var(--bg-light-teal, #e8f4f8);
    color: var(--brand-teal-deep, var(--brand-teal-dark, #2f7a7c));
    font-weight: 700;
    font-size: 12px;
}

.notif-toast-body[b-ibqaff4bqr] {
    min-width: 0;
    flex: 1 1 auto;
}

.notif-toast-title[b-ibqaff4bqr] {
    font-weight: 700;
    font-size: 13.5px;
    color: var(--text-primary, #1a1c1f);
    line-height: 1.25;
}

.notif-toast-text[b-ibqaff4bqr] {
    margin-top: 2px;
    font-size: 12.5px;
    color: var(--text-secondary, #5a6068);
    line-height: 1.35;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.notif-toast-ctx[b-ibqaff4bqr] {
    margin-top: 4px;
    font-size: 11px;
    font-weight: 600;
    color: var(--text-muted, #8b9098);
}

.notif-toast-close[b-ibqaff4bqr] {
    flex: 0 0 auto;
    border: 0;
    background: transparent;
    color: var(--text-muted, #8b9098);
    cursor: pointer;
    padding: 2px;
    border-radius: var(--radius-sm, 8px);
    line-height: 0;
}

.notif-toast-close:hover[b-ibqaff4bqr] {
    color: var(--text-primary, #1a1c1f);
    background: var(--bg-cream, #f5f1e8);
}

.notif-toast-close .msr[b-ibqaff4bqr] {
    font-size: 16px;
}

@media (max-width: 640px) {
    .notif-toast-stack[b-ibqaff4bqr] {
        right: 12px;
        left: 12px;
        bottom: 12px;
        max-width: none;
    }
}
/* /Components/UI/PaginaNoEncontrada.razor.rz.scp.css */
.nf[b-g7cg687n6i] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 64px 24px;
    min-height: 340px;
}

.nf-icon[b-g7cg687n6i] {
    width: 64px;
    height: 64px;
    border-radius: var(--radius-xl, 16px);
    background: var(--bg-cream, #FAF7F1);
    border: 1px solid var(--border-soft, #E8E4DD);
    color: var(--text-muted, #8B9098);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
}

.nf-icon .msr[b-g7cg687n6i] {
    font-size: 32px;
}

.nf-title[b-g7cg687n6i] {
    font-family: var(--font-serif, 'Fraunces', Georgia, serif);
    font-size: 22px;
    font-weight: 600;
    color: var(--text-primary, #1A1C1F);
    margin: 0 0 8px;
    letter-spacing: -0.2px;
}

.nf-text[b-g7cg687n6i] {
    font-size: 13.5px;
    color: var(--text-secondary, #5C6068);
    margin: 0;
    max-width: 440px;
    line-height: 1.55;
}

.nf-path[b-g7cg687n6i] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    max-width: 100%;
    margin-top: 14px;
    font-family: var(--font-mono, 'JetBrains Mono', monospace);
    font-size: 11.5px;
    color: var(--text-secondary, #5C6068);
    background: var(--bg-cream, #FAF7F1);
    border: 1px solid var(--border-soft, #E8E4DD);
    border-radius: 7px;
    padding: 5px 10px;
}

.nf-path .msr[b-g7cg687n6i] {
    font-size: 14px;
    color: var(--text-muted, #8B9098);
    flex-shrink: 0;
}

.nf-path span:last-child[b-g7cg687n6i] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.nf-actions[b-g7cg687n6i] {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: center;
    margin-top: 24px;
}

/* Acciones (.cep-cta) */
.cep-cta[b-g7cg687n6i] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-sans, system-ui, sans-serif);
    font-size: 13px;
    font-weight: 600;
    padding: 9px 16px;
    border-radius: var(--radius-md, 9px);
    border: 1px solid transparent;
    cursor: pointer;
    text-decoration: none;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
}

.cep-cta .msr[b-g7cg687n6i] {
    font-size: 16px;
}

.cep-cta--primary[b-g7cg687n6i] {
    background: var(--brand-teal-deep, #3A8F91);
    color: #FFFFFF;
    font-weight: 700;
    box-shadow: 0 2px 6px rgba(58, 143, 145, 0.3);
}

.cep-cta--primary:hover[b-g7cg687n6i] {
    transform: translateY(-1px);
    box-shadow: 0 4px 10px rgba(58, 143, 145, 0.4);
}

.cep-cta:focus-visible[b-g7cg687n6i] {
    outline: 2px solid var(--brand-teal-deep, #3A8F91);
    outline-offset: 2px;
}

/* Responsive <= 575.98px */
@media (max-width: 575.98px) {
    .nf[b-g7cg687n6i] {
        padding: 44px 18px;
    }

    .nf-icon[b-g7cg687n6i] {
        width: 54px;
        height: 54px;
        border-radius: 14px;
    }

    .nf-icon .msr[b-g7cg687n6i] {
        font-size: 28px;
    }

    .nf-title[b-g7cg687n6i] {
        font-size: 19px;
    }

    .nf-text[b-g7cg687n6i] {
        font-size: 13px;
    }

    .nf-actions[b-g7cg687n6i] {
        flex-direction: column;
        width: 100%;
        align-items: stretch;
    }

    .cep-cta[b-g7cg687n6i] {
        justify-content: center;
        padding: 11px 16px;
        min-height: 44px;
    }
}
/* /Components/UI/SectionHeader.razor.rz.scp.css */
.ui-section-header[b-o14e2q5kvq] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 18px;
}

.ui-section-num[b-o14e2q5kvq] {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--brand-teal-primary);
    color: var(--text-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-serif);
    font-weight: 600;
    font-size: 13px;
    flex-shrink: 0;
}

.ui-section-icon[b-o14e2q5kvq] {
    width: 32px;
    height: 32px;
    border-radius: var(--radius-md);
    background: var(--bg-light-teal);
    color: var(--brand-teal-deep);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.ui-section-icon .msr[b-o14e2q5kvq] { font-size: 19px; }

.ui-section-titleblock[b-o14e2q5kvq] {
    display: flex;
    align-items: baseline;
    gap: 6px;
    flex: 1;
    min-width: 0;
    flex-wrap: wrap;
}

.ui-section-title[b-o14e2q5kvq] {
    font-family: var(--font-serif);
    font-size: 22px;
    font-weight: 600;
    letter-spacing: -0.4px;
    color: var(--text-primary);
    margin: 0;
}

.ui-section-sub[b-o14e2q5kvq] {
    font-family: var(--font-sans);
    font-size: 13px;
    color: var(--text-muted);
}

.ui-section-action[b-o14e2q5kvq] {
    margin-left: auto;
    display: inline-flex;
    gap: 6px;
}
/* /Components/UI/SmartMention.razor.rz.scp.css */
.ui-mention[b-shjd7s5ids] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 1px 8px 2px;
    border-radius: 5px;
    font-family: var(--font-sans);
    font-size: 12.5px;
    font-weight: 600;
    line-height: 1.4;
}

.ui-mention .msr[b-shjd7s5ids] { font-size: 12px !important; }

.ui-mention.grupo[b-shjd7s5ids]                { background: rgba(110, 198, 200, 0.18); color: var(--brand-teal-deep); }
.ui-mention.grado[b-shjd7s5ids]                { background: rgba(29, 158, 117, 0.14);  color: #0F6E56; }
.ui-mention.alumno[b-shjd7s5ids]               { background: rgba(186, 117, 23, 0.14);  color: #8B5A10; }
.ui-mention.disciplina-saberes[b-shjd7s5ids]   { background: var(--cf-saberes-bg);      color: var(--cf-saberes-ink); }
.ui-mention.disciplina-lenguajes[b-shjd7s5ids] { background: var(--cf-lenguajes-bg);    color: var(--cf-lenguajes-ink); }
.ui-mention.disciplina-etica[b-shjd7s5ids]     { background: var(--cf-etica-bg);        color: var(--cf-etica-ink); }
.ui-mention.disciplina-humano[b-shjd7s5ids]    { background: var(--cf-humano-bg);       color: var(--cf-humano-ink); }
.ui-mention.rol[b-shjd7s5ids]                  { background: rgba(45, 110, 163, 0.14);  color: #1D4D7A; }
.ui-mention.me[b-shjd7s5ids]                   { background: rgba(245, 158, 11, 0.18);  color: #854D0E; }
/* /Components/UI/StatCard.razor.rz.scp.css */
.ui-stat[b-fv506prcgu] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    padding: 12px 14px;
    flex: 1;
    min-width: 130px;
    box-shadow: var(--shadow-sm);
    transition: transform 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.ui-stat.clickeable[b-fv506prcgu] {
    cursor: pointer;
}

.ui-stat.clickeable:hover[b-fv506prcgu] {
    border-color: var(--brand-teal);
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.ui-stat-icon[b-fv506prcgu] {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #FFFFFF;
    margin-bottom: 6px;
}

.ui-stat-icon .msr[b-fv506prcgu] { font-size: 16px !important; }

.ui-stat-icon.teal[b-fv506prcgu]    { background: linear-gradient(135deg, var(--brand-teal), var(--brand-teal-dark)); }
.ui-stat-icon.amber[b-fv506prcgu]   { background: linear-gradient(135deg, #F59E0B, #D97706); }
.ui-stat-icon.pink[b-fv506prcgu]    { background: linear-gradient(135deg, #EC4899, #BE185D); }
.ui-stat-icon.violet[b-fv506prcgu]  { background: linear-gradient(135deg, #8B5CF6, #6D28D9); }
.ui-stat-icon.emerald[b-fv506prcgu] { background: linear-gradient(135deg, #10B981, #047857); }
.ui-stat-icon.indigo[b-fv506prcgu]  { background: linear-gradient(135deg, #6366F1, #4338CA); }

.ui-stat-value[b-fv506prcgu] {
    font-family: var(--font-serif);
    font-size: 22px;
    font-weight: 600;
    letter-spacing: -0.3px;
    line-height: 1;
    color: var(--text-primary);
}

.ui-stat-label[b-fv506prcgu] {
    font-family: var(--font-sans);
    font-size: 11.5px;
    color: var(--text-secondary);
    font-weight: 600;
    margin-top: 4px;
}
/* /Components/Widgets/ActividadWidget.razor.rz.scp.css */
/* === Widget Actividad (W7) — tarjeta con porcentaje protagonista + barra horizontal ===
   Mismo lenguaje que Encuesta/Marcador: card blanca, Fraunces para el dato protagonista,
   Figtree para el resto, tokens del sistema, container queries con pisos max(px, cq*). */

.aw-root[b-5zopw8sg7q] {
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 12px 14px;
    background: #FFFFFF;
    color: var(--carbon-2, #1E2126);
    border-radius: 14px;
    box-shadow: var(--pz-shadow-soft);
    position: relative;
    overflow: hidden;
    font-family: 'Figtree', sans-serif;
}

/* === Estados vacío / sin grupo / error === */
.aw-empty[b-5zopw8sg7q] {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 6px;
    color: var(--carbon-5, #888780);
    padding: 8px;
}
.aw-empty-ico[b-5zopw8sg7q] { font-size: 44px; opacity: .55; color: var(--brand-teal-dark, #4BA8AA); }
.aw-empty-title[b-5zopw8sg7q] { font-family: 'Fraunces', serif; font-size: 17px; font-weight: 600; color: var(--carbon-2, #1E2126); }
.aw-empty-hint[b-5zopw8sg7q] { font-size: 12.5px; line-height: 1.4; max-width: 240px; }

.aw-cta[b-5zopw8sg7q], .aw-retry[b-5zopw8sg7q] {
    display: inline-flex; align-items: center; gap: 6px;
    border: none; cursor: pointer; margin-top: 4px;
    padding: 7px 14px; border-radius: 999px;
    font-family: 'Figtree', sans-serif; font-size: 12.5px; font-weight: 600;
    background: var(--cream, #F4F0E6); color: var(--carbon-2, #1E2126);
    transition: background .15s ease, transform .15s ease;
}
.aw-cta:hover[b-5zopw8sg7q], .aw-retry:hover[b-5zopw8sg7q] { background: var(--cream-deep, #E9E3D2); transform: translateY(-1px); }
.aw-cta:focus-visible[b-5zopw8sg7q], .aw-retry:focus-visible[b-5zopw8sg7q] { outline: 2px solid var(--brand-teal-dark, #4BA8AA); outline-offset: 2px; }
.aw-cta .material-symbols-rounded[b-5zopw8sg7q], .aw-retry .material-symbols-rounded[b-5zopw8sg7q] { font-size: 16px; }

/* === Skeleton (carga inicial) === */
.aw-skeleton[b-5zopw8sg7q] { flex: 1; display: flex; flex-direction: column; justify-content: center; gap: 10px; padding: 4px 0; }
.aw-skel-line[b-5zopw8sg7q], .aw-skel-num[b-5zopw8sg7q] {
    border-radius: 8px;
    background: linear-gradient(90deg,
        color-mix(in srgb, var(--cream, #F4F0E6) 70%, #FFFFFF) 25%,
        color-mix(in srgb, var(--cream, #F4F0E6) 30%, #FFFFFF) 50%,
        color-mix(in srgb, var(--cream, #F4F0E6) 70%, #FFFFFF) 75%);
    background-size: 200% 100%; animation: aw-shimmer-b-5zopw8sg7q 1.3s infinite;
}
.aw-skel-line[b-5zopw8sg7q] { height: 14px; }
.aw-skel-corta[b-5zopw8sg7q] { width: 55%; }
.aw-skel-num[b-5zopw8sg7q] { height: 44px; width: 38%; border-radius: 12px; }
@keyframes aw-shimmer-b-5zopw8sg7q { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

/* === Header discreto: nombre + clase·criterio + punto "en vivo" === */
.aw-head[b-5zopw8sg7q] { display: flex; align-items: flex-start; gap: 8px; flex-shrink: 0; }
.aw-head-txt[b-5zopw8sg7q] { flex: 1; min-width: 0; }
.aw-nombre[b-5zopw8sg7q] {
    font-size: 13px; font-weight: 700; line-height: 1.25;
    color: var(--carbon-2, #1E2126);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.aw-sub[b-5zopw8sg7q] {
    font-size: 11px; font-weight: 500; color: var(--carbon-5, #888780);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    margin-top: 1px;
}
.aw-live[b-5zopw8sg7q] {
    width: 8px; height: 8px; border-radius: 50%; margin-top: 4px; flex-shrink: 0;
    background: var(--brand-teal-dark, #4BA8AA);
    animation: aw-pulso-b-5zopw8sg7q 2.4s ease-in-out infinite;
}
.aw-live-off[b-5zopw8sg7q] { background: var(--carbon-6, #B4B2A9); animation: none; }
@keyframes aw-pulso-b-5zopw8sg7q {
    0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--brand-teal-dark, #4BA8AA) 45%, transparent); }
    55%      { box-shadow: 0 0 0 5px transparent; }
}

/* === Protagonista: porcentaje grande + barra === */
.aw-main[b-5zopw8sg7q] {
    flex: 1; min-height: 0;
    display: flex; align-items: center; gap: 14px;
}
.aw-pct[b-5zopw8sg7q] { display: flex; align-items: baseline; flex-shrink: 0; color: var(--carbon-1, #141619); }
.aw-pct-num[b-5zopw8sg7q] {
    font-family: 'Fraunces', serif; font-weight: 600;
    font-size: 44px; line-height: 1; letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
}
.aw-pct-sim[b-5zopw8sg7q] { font-family: 'Fraunces', serif; font-weight: 600; font-size: 20px; margin-left: 2px; color: var(--carbon-4, #5F5E5A); }

.aw-avance[b-5zopw8sg7q] { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; position: relative; }
.aw-barra[b-5zopw8sg7q] {
    height: 12px; border-radius: 999px; overflow: hidden;
    background: var(--cream, #F4F0E6);
}
.aw-barra-fill[b-5zopw8sg7q] {
    height: 100%; border-radius: 999px;
    background: linear-gradient(90deg, var(--brand-teal-dark, #4BA8AA), #3D9C9E);
    transition: width .6s cubic-bezier(.22, 1, .36, 1);
    min-width: 0;
    position: relative; overflow: hidden;
}
.aw-full .aw-barra-fill[b-5zopw8sg7q] { background: linear-gradient(90deg, #10B981, #0E9F6E); }

/* === Estado PERSISTENTE por nivel de hito (refleja siempre el % actual) ===
   La emoción crece con el nivel: glow cálido → sheen lento → barra brillante viva → verde pleno. */
.aw-n50 .aw-barra-fill[b-5zopw8sg7q] {
    box-shadow: 0 0 8px color-mix(in srgb, var(--brand-teal-dark, #4BA8AA) 45%, transparent);
}
.aw-n75 .aw-barra-fill[b-5zopw8sg7q],
.aw-n90 .aw-barra-fill[b-5zopw8sg7q],
.aw-full .aw-barra-fill[b-5zopw8sg7q] {
    box-shadow: 0 0 10px color-mix(in srgb, var(--brand-teal-dark, #4BA8AA) 55%, transparent);
}
/* Sheen: destello diagonal que recorre la barra (sutil en 75, más vivo en 90). */
.aw-n75 .aw-barra-fill[b-5zopw8sg7q]::after,
.aw-n90 .aw-barra-fill[b-5zopw8sg7q]::after {
    content: ""; position: absolute; inset: 0;
    background: linear-gradient(105deg, transparent 30%, rgba(255, 255, 255, .38) 50%, transparent 70%);
    background-size: 240% 100%;
    animation: aw-sheen-b-5zopw8sg7q 5.5s ease-in-out infinite;
    pointer-events: none;
}
.aw-n90 .aw-barra-fill[b-5zopw8sg7q] {
    background: linear-gradient(90deg, var(--brand-teal-dark, #4BA8AA), #10B981);
    box-shadow: 0 0 14px color-mix(in srgb, #10B981 55%, transparent);
}
.aw-n90 .aw-barra-fill[b-5zopw8sg7q]::after { animation-duration: 2.8s; }
.aw-full .aw-barra-fill[b-5zopw8sg7q] { box-shadow: 0 0 14px color-mix(in srgb, #10B981 50%, transparent); }
@keyframes aw-sheen-b-5zopw8sg7q { 0% { background-position: 130% 0; } 55%, 100% { background-position: -110% 0; } }

.aw-meta[b-5zopw8sg7q] { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.aw-conteo[b-5zopw8sg7q] { font-size: 12px; color: var(--carbon-4, #5F5E5A); white-space: nowrap; }
.aw-conteo b[b-5zopw8sg7q] { color: var(--carbon-1, #141619); font-weight: 700; font-variant-numeric: tabular-nums; }
.aw-ultima[b-5zopw8sg7q] { font-size: 11px; color: var(--carbon-5, #888780); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* === Badge de hito (persistente): color y texto según el nivel actual ===
   Ratios AA CALCULADOS con script WCAG (LEC-G007, texto 11px = umbral 4.5:1):
   #1F6E70/#E8F4F4 = 5.30 · #4338CA/#EBEBFD = 6.71 · #92400E/#FDEFD6 = 6.24 · #0E7A57/#DEF5ED = 4.67 */
.aw-badge-hito[b-5zopw8sg7q] {
    display: inline-flex; align-items: center; gap: 3px;
    font-size: 11px; font-weight: 700;
    border-radius: 999px; padding: 2px 8px; white-space: nowrap;
}
.aw-badge-hito .material-symbols-rounded[b-5zopw8sg7q] { font-size: 13px; }
.aw-bh-50[b-5zopw8sg7q]  { color: #1F6E70; background: color-mix(in srgb, var(--brand-teal-dark, #4BA8AA) 13%, #FFFFFF); }
.aw-bh-75[b-5zopw8sg7q]  { color: #4338CA; background: color-mix(in srgb, #6366F1 13%, #FFFFFF); }
.aw-bh-90[b-5zopw8sg7q]  { color: #92400E; background: color-mix(in srgb, #F59E0B 17%, #FFFFFF); }
.aw-bh-100[b-5zopw8sg7q] { color: #0E7A57; background: color-mix(in srgb, #10B981 14%, #FFFFFF); }
/* Entrada del badge sólo durante SU celebración (pop con rebote suave y se integra). */
.aw-bh-entra[b-5zopw8sg7q] { animation: aw-badge-in-b-5zopw8sg7q .45s cubic-bezier(.34, 1.56, .64, 1) both; }
@keyframes aw-badge-in-b-5zopw8sg7q {
    0% { opacity: 0; transform: translateY(4px) scale(.7); }
    100% { opacity: 1; transform: translateY(0) scale(1); }
}

/* === Banda de dato viejo: discreta pero legible a 3-8 m (el punto solo no basta) ===
   Texto carbon sobre tinte ámbar muy claro (≈#FDF0DC): contraste ≈ 13:1, AA holgado (LEC-G007). */
.aw-stale[b-5zopw8sg7q] {
    flex-shrink: 0;
    display: flex; align-items: center; justify-content: center; gap: 6px;
    font-size: 11.5px; font-weight: 600; line-height: 1.2;
    color: var(--carbon-2, #1E2126);
    background: color-mix(in srgb, #F59E0B 16%, #FFFFFF);
    border-radius: 8px; padding: 4px 10px;
    white-space: nowrap; overflow: hidden;
}
.aw-stale-ico[b-5zopw8sg7q] { font-size: 14px; color: #B45309; flex-shrink: 0; }

/* === Chips de quienes YA terminaron (patrón Encuesta; nunca faltantes) === */
.aw-chips-zona[b-5zopw8sg7q] { flex-shrink: 0; display: flex; flex-direction: column; gap: 4px; min-height: 0; }
.aw-chips-label[b-5zopw8sg7q] {
    font-size: 10.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
    color: var(--carbon-5, #888780);
}
.aw-chips-nadie[b-5zopw8sg7q] { text-transform: none; letter-spacing: 0; font-weight: 500; font-size: 11.5px; }
.aw-chips[b-5zopw8sg7q] {
    display: flex; flex-wrap: wrap; gap: 5px;
    max-height: 74px; overflow-y: auto; padding-right: 2px;
}
.aw-chip[b-5zopw8sg7q] {
    display: inline-flex; align-items: center; gap: 3px;
    font-size: 11.5px; font-weight: 600; color: var(--carbon-2, #1E2126);
    background: color-mix(in srgb, var(--brand-teal-dark, #4BA8AA) 11%, #FFFFFF);
    border: 1px solid color-mix(in srgb, var(--brand-teal-dark, #4BA8AA) 28%, #FFFFFF);
    border-radius: 999px; padding: 3px 9px 3px 6px;
    white-space: nowrap; max-width: 100%; overflow: hidden; text-overflow: ellipsis;
}
.aw-chip-ico[b-5zopw8sg7q] { font-size: 13px; color: var(--brand-teal-dark, #4BA8AA); }

/* === Confeti (clímax del 100%, nivel 4 de la escalera) === */
.aw-confeti[b-5zopw8sg7q] {
    position: absolute; inset: 0; width: 100%; height: 100%;
    pointer-events: none; z-index: 3;
}

/* === Celebración TRANSITORIA por hito (clase aw-cele-N mientras dura la animación) ===
   Emoción creciente: 50 pulso cálido · 75 onda + partículas · 90 latido + ráfaga · 100 clímax. */

/* 50%: pulso/glow cálido de la barra + micro-pop del número. */
.aw-cele-50 .aw-barra-fill[b-5zopw8sg7q] { animation: aw-glow-beat-b-5zopw8sg7q 1s ease-in-out 2; }
.aw-cele-50 .aw-pct-num[b-5zopw8sg7q] { animation: aw-pop-b-5zopw8sg7q .55s cubic-bezier(.34, 1.56, .64, 1); }
@keyframes aw-glow-beat-b-5zopw8sg7q {
    0%, 100% { box-shadow: 0 0 6px color-mix(in srgb, var(--brand-teal-dark, #4BA8AA) 40%, transparent); }
    50%      { box-shadow: 0 0 18px color-mix(in srgb, var(--brand-teal-dark, #4BA8AA) 85%, transparent); }
}
@keyframes aw-pop-b-5zopw8sg7q {
    0% { transform: scale(1); } 40% { transform: scale(1.14); } 100% { transform: scale(1); }
}

/* 75%: onda de brillo que recorre la barra + doble pop del número. */
.aw-cele-75 .aw-barra-fill[b-5zopw8sg7q]::after { animation: aw-sheen-b-5zopw8sg7q 1.1s ease-in-out 2; }
.aw-cele-75 .aw-barra-fill[b-5zopw8sg7q] { animation: aw-glow-beat-b-5zopw8sg7q .9s ease-in-out 2; }
.aw-cele-75 .aw-pct-num[b-5zopw8sg7q] { animation: aw-pop-b-5zopw8sg7q .5s cubic-bezier(.34, 1.56, .64, 1) 2; }

/* 90%: barra brillante, número con latido y ráfaga de partículas. */
.aw-cele-90 .aw-barra-fill[b-5zopw8sg7q] { animation: aw-glow-beat-b-5zopw8sg7q .7s ease-in-out 3; }
.aw-cele-90 .aw-barra-fill[b-5zopw8sg7q]::after { animation: aw-sheen-b-5zopw8sg7q .9s ease-in-out 3; }
.aw-cele-90 .aw-pct-num[b-5zopw8sg7q] { animation: aw-latido-b-5zopw8sg7q 1.5s ease-in-out; }
@keyframes aw-latido-b-5zopw8sg7q {
    0%, 100% { transform: scale(1); }
    18% { transform: scale(1.16); } 36% { transform: scale(1.02); }
    54% { transform: scale(1.16); } 72% { transform: scale(1); }
}

/* 100%: el clímax — confeti pleno + destello verde en la tarjeta + número que estalla en verde. */
.aw-cele-100 .aw-pct-num[b-5zopw8sg7q] { animation: aw-pop-100-b-5zopw8sg7q 1.1s cubic-bezier(.34, 1.56, .64, 1); }
.aw-cele-100 .aw-barra-fill[b-5zopw8sg7q] { animation: aw-glow-beat-b-5zopw8sg7q .8s ease-in-out 3; }
.aw-cele-100.aw-root[b-5zopw8sg7q]::after {
    content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none;
    background: radial-gradient(circle at 28% 55%, color-mix(in srgb, #10B981 26%, transparent), transparent 62%);
    animation: aw-destello-b-5zopw8sg7q 1.8s ease-out both;
}
@keyframes aw-pop-100-b-5zopw8sg7q {
    0% { transform: scale(1); color: inherit; }
    35% { transform: scale(1.22); color: #0E9F6E; }
    70% { transform: scale(1.04); color: #0E9F6E; }
    100% { transform: scale(1); color: inherit; }
}
@keyframes aw-destello-b-5zopw8sg7q {
    0% { opacity: 0; } 22% { opacity: 1; } 100% { opacity: 0; }
}

/* === Partículas discretas (75: 4, 90: 8): suben desde la barra y se desvanecen === */
.aw-parts[b-5zopw8sg7q] { position: absolute; inset: 0; pointer-events: none; overflow: visible; }
.aw-part[b-5zopw8sg7q] {
    position: absolute; top: 40%;
    width: 6px; height: 6px; border-radius: 50%;
    opacity: 0;
    animation: aw-part-sube-b-5zopw8sg7q 1.6s ease-out both;
}
.aw-part-0[b-5zopw8sg7q] { left: 12%; background: #4BA8AA; animation-delay: 0s; }
.aw-part-1[b-5zopw8sg7q] { left: 34%; background: #F59E0B; animation-delay: .12s; }
.aw-part-2[b-5zopw8sg7q] { left: 58%; background: #6366F1; animation-delay: .05s; }
.aw-part-3[b-5zopw8sg7q] { left: 80%; background: #10B981; animation-delay: .18s; }
.aw-part-4[b-5zopw8sg7q] { left: 22%; background: #10B981; animation-delay: .22s; }
.aw-part-5[b-5zopw8sg7q] { left: 46%; background: #4BA8AA; animation-delay: .3s; }
.aw-part-6[b-5zopw8sg7q] { left: 68%; background: #F59E0B; animation-delay: .26s; }
.aw-part-7[b-5zopw8sg7q] { left: 90%; background: #6366F1; animation-delay: .34s; }
@keyframes aw-part-sube-b-5zopw8sg7q {
    0% { opacity: 0; transform: translateY(0) scale(.6); }
    15% { opacity: .95; }
    100% { opacity: 0; transform: translateY(-34px) scale(1); }
}

/* === Escala con el tamaño real del widget (pisos max(px, cq*) por el gotcha del lienzo) === */
@supports (container-type: size) {
    .aw-root[b-5zopw8sg7q] { container-type: size; }

    .aw-root[b-5zopw8sg7q] { gap: max(8px, 2cqh); padding: max(10px, 3cqmin) max(12px, 3.5cqmin); }

    .aw-empty-ico[b-5zopw8sg7q] { font-size: max(34px, 16cqmin); }
    .aw-empty-title[b-5zopw8sg7q] { font-size: max(15px, 5cqmin); }
    .aw-empty-hint[b-5zopw8sg7q] { font-size: max(11.5px, 3.4cqmin); max-width: 78cqw; }

    .aw-nombre[b-5zopw8sg7q] { font-size: max(12px, 4cqmin); }
    .aw-sub[b-5zopw8sg7q] { font-size: max(10px, 3.2cqmin); }

    .aw-main[b-5zopw8sg7q] { gap: max(10px, 4cqw); }
    .aw-pct-num[b-5zopw8sg7q] { font-size: max(34px, 30cqmin); }
    .aw-pct-sim[b-5zopw8sg7q] { font-size: max(15px, 11cqmin); }
    .aw-barra[b-5zopw8sg7q] { height: max(9px, 4.5cqh); }
    .aw-conteo[b-5zopw8sg7q] { font-size: max(11px, 3.6cqmin); }
    .aw-ultima[b-5zopw8sg7q], .aw-badge-hito[b-5zopw8sg7q] { font-size: max(10px, 3cqmin); }

    .aw-stale[b-5zopw8sg7q] { font-size: max(11px, 3.4cqmin); gap: max(5px, 1.4cqmin); padding: max(4px, 1.2cqmin) max(9px, 2.6cqmin); }
    .aw-stale-ico[b-5zopw8sg7q] { font-size: max(13px, 4cqmin); }

    .aw-chips[b-5zopw8sg7q] { max-height: max(56px, 26cqh); gap: max(4px, 1.2cqmin); }
    .aw-chip[b-5zopw8sg7q] { font-size: max(10.5px, 3.2cqmin); }
}

/* Fallback sin container queries: los tamaños base en px ya son legibles. */
@supports not (container-type: size) {
    .aw-pct-num[b-5zopw8sg7q] { font-size: clamp(30px, 6vw, 52px); }
}

@media (prefers-reduced-motion: reduce) {
    .aw-live[b-5zopw8sg7q] { animation: none; }
    .aw-barra-fill[b-5zopw8sg7q] { transition: none; }
    .aw-skel-line[b-5zopw8sg7q], .aw-skel-num[b-5zopw8sg7q] { animation: none; }
    /* Escalera calmada: sin partículas, sin sheen ni pulsos; el badge sólo aparece (fade). */
    .aw-parts[b-5zopw8sg7q] { display: none; }
    .aw-n75 .aw-barra-fill[b-5zopw8sg7q]::after, .aw-n90 .aw-barra-fill[b-5zopw8sg7q]::after { animation: none; content: none; }
    .aw-cele-50 .aw-barra-fill[b-5zopw8sg7q], .aw-cele-75 .aw-barra-fill[b-5zopw8sg7q],
    .aw-cele-90 .aw-barra-fill[b-5zopw8sg7q], .aw-cele-100 .aw-barra-fill[b-5zopw8sg7q] { animation: none; }
    .aw-cele-50 .aw-pct-num[b-5zopw8sg7q], .aw-cele-75 .aw-pct-num[b-5zopw8sg7q],
    .aw-cele-90 .aw-pct-num[b-5zopw8sg7q], .aw-cele-100 .aw-pct-num[b-5zopw8sg7q] { animation: none; }
    .aw-cele-100.aw-root[b-5zopw8sg7q]::after { animation: none; opacity: 0; }
    .aw-bh-entra[b-5zopw8sg7q] { animation: aw-fade-sencillo-b-5zopw8sg7q .25s ease-out both; }
}
@keyframes aw-fade-sencillo-b-5zopw8sg7q { 0% { opacity: 0; } 100% { opacity: 1; } }
/* /Components/Widgets/AlarmasList.razor.rz.scp.css */
.al-root[b-iu63rs7bnt] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.al-item[b-iu63rs7bnt] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 0;
}

.al-left[b-iu63rs7bnt] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.al-toggle[b-iu63rs7bnt] {
    width: 44px;
    height: 24px;
    background: #E0E0E0;
    border-radius: 12px;
    position: relative;
    cursor: pointer;
    transition: background 0.15s;
    flex-shrink: 0;
}

.al-toggle.on[b-iu63rs7bnt] { background: #6366F1; }

.al-toggle[b-iu63rs7bnt]::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: 20px;
    height: 20px;
    background: #fff;
    border-radius: 50%;
    transition: left 0.15s;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}

.al-toggle.on[b-iu63rs7bnt]::after { left: 22px; }

.al-hora[b-iu63rs7bnt] {
    font-family: var(--font-sans, 'Figtree', sans-serif);
    font-weight: 500;
    font-size: 18px;
    color: var(--carbon-2);
}

.al-hora.off[b-iu63rs7bnt] { color: #999; }

.al-dots[b-iu63rs7bnt] {
    background: transparent;
    border: none;
    cursor: pointer;
    color: #888;
    padding: 4px 8px;
    display: flex;
    align-items: center;
}

.al-dots:hover[b-iu63rs7bnt] { color: var(--danger); }

.al-time-input[b-iu63rs7bnt] {
    padding: 8px 12px;
    border: 1.5px solid #D0D0D0;
    border-radius: 8px;
    font-size: 16px;
    font-family: inherit;
}

.al-add-actions[b-iu63rs7bnt] { display: flex; gap: 6px; }

.al-btn-mini[b-iu63rs7bnt] {
    padding: 6px 12px;
    border-radius: 6px;
    border: 1.5px solid #D0D0D0;
    background: white;
    cursor: pointer;
    font-size: 13px;
    color: #555;
}

.al-btn-confirm[b-iu63rs7bnt] { background: #6366F1; color: white; border-color: #6366F1; }

.al-btn-add[b-iu63rs7bnt] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 18px;
    border: 1.5px solid #D0D0D0;
    border-radius: 22px;
    background: #fff;
    cursor: pointer;
    font-size: 14px;
    color: var(--carbon-2);
    margin-top: 8px;
    align-self: flex-start;
}

.al-btn-add:hover[b-iu63rs7bnt] { background: #F5F5F5; }
/* /Components/Widgets/CaritaRuido.razor.rz.scp.css */
.cr-root[b-huqmkr4yu7] {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cr-svg[b-huqmkr4yu7] {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    overflow: visible;
}

/* Cara base: tinte por zona */
.cr-cara[b-huqmkr4yu7] {
    fill: var(--success);
    stroke: rgba(0, 0, 0, 0.12);
    stroke-width: 2;
    transition: fill 0.4s ease;
}

.cr-root.cr-ambar .cr-cara[b-huqmkr4yu7] { fill: var(--warning); }
.cr-root.cr-rojo .cr-cara[b-huqmkr4yu7] { fill: var(--danger); }

/* Trazos de ojos/boca */
.cr-linea[b-huqmkr4yu7] {
    fill: none;
    stroke: #23262B;
    stroke-width: 5;
    stroke-linecap: round;
}

.cr-ceja[b-huqmkr4yu7] { stroke-width: 4; }

.cr-punto[b-huqmkr4yu7] { fill: #23262B; }

.cr-boca[b-huqmkr4yu7] {
    fill: none;
    stroke: #23262B;
    stroke-width: 5;
    stroke-linecap: round;
}

.cr-boca-rojo[b-huqmkr4yu7] { fill: #23262B; }

/* ===== Morph entre expresiones =====
   Todas las capas existen; la zona activa hace fade-in de la suya. */
.cr-ojos[b-huqmkr4yu7],
.cr-boca-verde[b-huqmkr4yu7],
.cr-boca-ambar[b-huqmkr4yu7],
.cr-boca-rojo[b-huqmkr4yu7] {
    opacity: 0;
    transition: opacity 0.28s ease, transform 0.28s ease;
    transform-origin: center;
}

.cr-root.cr-verde .cr-ojos-verde[b-huqmkr4yu7],
.cr-root.cr-verde .cr-boca-verde[b-huqmkr4yu7],
.cr-root.cr-ambar .cr-ojos-ambar[b-huqmkr4yu7],
.cr-root.cr-ambar .cr-boca-ambar[b-huqmkr4yu7],
.cr-root.cr-rojo .cr-ojos-rojo[b-huqmkr4yu7],
.cr-root.cr-rojo .cr-boca-rojo[b-huqmkr4yu7] {
    opacity: 1;
}

/* Manos tapando oidos: solo en rojo, entran desde los lados */
.cr-mano[b-huqmkr4yu7] {
    fill: color-mix(in srgb, var(--danger) 55%, #23262B);
    opacity: 0;
    transition: opacity 0.28s ease, transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.cr-manos[b-huqmkr4yu7] { transform-origin: center; }

.cr-root.cr-rojo .cr-mano[b-huqmkr4yu7] {
    opacity: 1;
}

.cr-root .cr-manos .cr-mano:first-child[b-huqmkr4yu7] { transform: translateX(14px); }
.cr-root .cr-manos .cr-mano:last-child[b-huqmkr4yu7] { transform: translateX(-14px); }

.cr-root.cr-rojo .cr-manos .cr-mano:first-child[b-huqmkr4yu7] { transform: translateX(0); }
.cr-root.cr-rojo .cr-manos .cr-mano:last-child[b-huqmkr4yu7] { transform: translateX(0); }

/* Sonrisa verde con un pop sutil al entrar */
.cr-root.cr-verde .cr-boca-verde[b-huqmkr4yu7] { transform: scale(1.04); }
/* /Components/Widgets/DadoWidget.razor.rz.scp.css */
/* Dado 3D: escala con el tamano REAL del widget via container queries.
   --dw-size gobierna escena, translateZ de caras, perspective y sombra elipse.
   CONTRATO: transition transform 1.2s esta sincronizada con Task.Delay(1200)
   en el .razor — no cambiar duraciones ni el mecanismo de rotacion acumulativa. */

.dw-root[b-893w3dihd7] {
    --dw-size: 72px; /* fallback base; se sobreescribe con cq* cuando hay soporte */
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6%;
    padding: 6%;
    background: var(--carbon-1, #141619);
    border-radius: 14px;
    box-shadow: var(--pz-shadow-soft);
    cursor: pointer;
    user-select: none;
}

.dw-fila[b-893w3dihd7] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10%;
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
}

.dw-escena[b-893w3dihd7] {
    position: relative;
    width: var(--dw-size);
    height: var(--dw-size);
    perspective: calc(var(--dw-size) * 7);
    flex: 0 0 auto;
}

/* Sombra elipse sutil bajo cada dado: lo asienta sobre la card oscura. */
.dw-escena[b-893w3dihd7]::after {
    content: "";
    position: absolute;
    left: 50%;
    top: calc(100% + var(--dw-size) / 10);
    width: 84%;
    height: calc(var(--dw-size) / 6);
    transform: translateX(-50%);
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.45);
    filter: blur(calc(var(--dw-size) / 18));
    pointer-events: none;
}

.dw-cubo[b-893w3dihd7] {
    position: relative;
    width: 100%;
    height: 100%;
    transform-style: preserve-3d;
    transition: transform 1.2s cubic-bezier(0.34, 1.15, 0.35, 1);
}

.dw-cara[b-893w3dihd7] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--cream, #F4F0E6);
    border: 1px solid var(--cream-deep, #EAE3D2);
    border-radius: 12%;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.03);
}

/* Media distancia = mitad de --dw-size: una sola definicion para todo tamano. */
.dw-f1[b-893w3dihd7] { transform: translateZ(calc(var(--dw-size) / 2)); }
.dw-f6[b-893w3dihd7] { transform: rotateY(180deg) translateZ(calc(var(--dw-size) / 2)); }
.dw-f2[b-893w3dihd7] { transform: rotateY(90deg) translateZ(calc(var(--dw-size) / 2)); }
.dw-f5[b-893w3dihd7] { transform: rotateY(-90deg) translateZ(calc(var(--dw-size) / 2)); }
.dw-f3[b-893w3dihd7] { transform: rotateX(90deg) translateZ(calc(var(--dw-size) / 2)); }
.dw-f4[b-893w3dihd7] { transform: rotateX(-90deg) translateZ(calc(var(--dw-size) / 2)); }

.dw-grid[b-893w3dihd7] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(3, 1fr);
    width: 70%;
    height: 70%;
    place-items: center;
}

.dw-punto[b-893w3dihd7] {
    width: 62%;
    height: 62%;
    border-radius: 50%;
    background: var(--carbon-1, #141619);
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.35);
}

.dw-total[b-893w3dihd7] {
    flex: 0 0 auto;
    font-family: var(--font-mono, "JetBrains Mono", Consolas, monospace);
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    font-size: clamp(13px, 3.4vh, 20px); /* fallback; cqmin abajo */
    color: var(--cream, #F4F0E6);
    letter-spacing: 0.02em;
}

.dw-total.dw-pop[b-893w3dihd7] {
    animation: dw-pop-anim-b-893w3dihd7 0.4s ease;
}

@keyframes dw-pop-anim-b-893w3dihd7 {
    0% { transform: scale(1); }
    35% { transform: scale(1.28); }
    100% { transform: scale(1); }
}

.dw-btn-tirar[b-893w3dihd7] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 18px;
    border: none;
    border-radius: 999px;
    background: var(--brand-teal, #6DC7D0);
    color: var(--carbon-1, #141619);
    font-family: var(--font-sans, 'Figtree', sans-serif);
    font-weight: 600;
    font-size: clamp(11px, 2.6vh, 14px);
    cursor: pointer;
    transition: transform 0.15s ease, filter 0.2s ease, opacity 0.2s ease;
}
.dw-btn-tirar:hover[b-893w3dihd7] {
    transform: translateY(-1px);
    filter: brightness(1.08);
}
.dw-btn-tirar:active[b-893w3dihd7] {
    transform: translateY(0);
    filter: brightness(0.95);
}
.dw-btn-tirar:focus-visible[b-893w3dihd7] {
    outline: 2px solid var(--brand-teal, #6DC7D0);
    outline-offset: 3px;
}
/* Estado visual durante el tiro (enlaza _tirando existente; la logica no cambia). */
.dw-btn-tirar.dw-tirando[b-893w3dihd7] {
    pointer-events: none;
    cursor: default;
    opacity: 0.55;
}
.dw-btn-tirar .material-symbols-rounded[b-893w3dihd7] { font-size: 18px; }

/* === Escalado con el contenedor real ==================================== */
@supports (container-type: size) {
    .dw-root[b-893w3dihd7] { container-type: size; }

    /* --dw-size vive en .dw-fila (descendiente): las unidades cq* de un
       elemento contenedor resuelven contra su ANCESTRO, no contra si mismo. */
    .dw-fila[b-893w3dihd7] { --dw-size: min(46cqmin, 30cqw); }
    .dw-n1 .dw-fila[b-893w3dihd7] { --dw-size: min(50cqmin, 44cqw); }
    .dw-n2 .dw-fila[b-893w3dihd7] { --dw-size: min(42cqmin, 30cqw); }
    .dw-n3 .dw-fila[b-893w3dihd7] { --dw-size: min(38cqmin, 22cqw); }

    .dw-total[b-893w3dihd7] { font-size: max(13px, 8cqmin); }

    .dw-btn-tirar[b-893w3dihd7] {
        gap: max(4px, 1.4cqmin);
        padding: max(6px, 2.2cqmin) max(14px, 5.5cqmin);
        font-size: max(12px, 4.2cqmin);
    }
    .dw-btn-tirar .material-symbols-rounded[b-893w3dihd7] { font-size: max(14px, 5cqmin); }
}

/* === Fallback sin container queries: conserva los px previos ============= */
@supports not (container-type: size) {
    @media (max-width: 560px) {
        .dw-root[b-893w3dihd7] { --dw-size: 52px; }
        .dw-total[b-893w3dihd7] { font-size: clamp(11px, 2.8vh, 15px); }
        .dw-btn-tirar[b-893w3dihd7] { padding: 6px 14px; font-size: 11px; }
    }
}

@media (prefers-reduced-motion: reduce) {
    .dw-cubo[b-893w3dihd7] { transition: none; }
    .dw-total.dw-pop[b-893w3dihd7] { animation: none; }
    .dw-btn-tirar[b-893w3dihd7] { transition: none; }
    .dw-btn-tirar:hover[b-893w3dihd7],
    .dw-btn-tirar:active[b-893w3dihd7] { transform: none; }
}
/* /Components/Widgets/DibujoWidget.razor.rz.scp.css */
.dw-svg[b-vid6fr4lil] {
    width: 100%;
    height: 100%;
    display: block;
}
/* /Components/Widgets/EncuestaWidget.razor.rz.scp.css */
.ew-root[b-anrgtd468z] {
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 12px 14px;
    background: #FFFFFF;
    color: var(--carbon-2, #1E2126);
    border-radius: 14px;
    box-shadow: var(--pz-shadow-soft);
    position: relative;
    overflow: hidden;
    font-family: 'Figtree', sans-serif;
}

/* === Estado vacío === */
.ew-empty[b-anrgtd468z] {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 6px;
    color: var(--carbon-5, #888780);
    padding: 8px;
}
.ew-empty-ico[b-anrgtd468z] { font-size: 46px; opacity: .55; color: var(--brand-teal-dark, #4BA8AA); }
.ew-empty-title[b-anrgtd468z] { font-family: 'Fraunces', serif; font-size: 18px; font-weight: 600; color: var(--carbon-2, #1E2126); }
.ew-empty-hint[b-anrgtd468z] { font-size: 12.5px; line-height: 1.4; max-width: 240px; }

/* === Aviso / skeleton === */
.ew-aviso[b-anrgtd468z] {
    display: flex; align-items: center; gap: 8px;
    font-size: 12.5px; color: var(--carbon-4, #5F5E5A);
    background: var(--cream, #F4F0E6); border-radius: 10px; padding: 10px 12px;
}
.ew-aviso .material-symbols-rounded[b-anrgtd468z] { font-size: 20px; opacity: .7; }

.ew-skeleton[b-anrgtd468z] { display: flex; flex-direction: column; gap: 8px; padding: 8px 0; }
.ew-skel-line[b-anrgtd468z] {
    height: 26px; border-radius: 8px;
    background: linear-gradient(90deg,
        color-mix(in srgb, var(--cream, #F4F0E6) 70%, #FFFFFF) 25%,
        color-mix(in srgb, var(--cream, #F4F0E6) 30%, #FFFFFF) 50%,
        color-mix(in srgb, var(--cream, #F4F0E6) 70%, #FFFFFF) 75%);
    background-size: 200% 100%; animation: ew-shimmer-b-anrgtd468z 1.3s infinite;
}
@keyframes ew-shimmer-b-anrgtd468z { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

/* === Pregunta === */
.ew-pregunta[b-anrgtd468z] {
    font-family: 'Fraunces', serif; font-weight: 600;
    font-size: clamp(15px, 2.4vw, 22px); line-height: 1.2;
    color: var(--carbon-1, #141619); flex-shrink: 0;
}

/* === Modo conteo === */
/* flex 0 1 auto + overflow-y: la zona de captura cede y scrollea en widgets muy
   bajos en vez de quedar recortada por el overflow:hidden del root. El par
   padding/margin 6px da aire interno para el hover-pop sin mover el layout. */
.ew-modo-conteo[b-anrgtd468z] {
    display: flex; flex-direction: column; gap: 8px;
    flex: 0 1 auto; min-height: 0; overflow-y: auto;
    padding: 6px; margin: -6px;
}
.ew-tap-grid[b-anrgtd468z] {
    display: grid; gap: 8px;
    grid-template-columns: repeat(auto-fit, minmax(90px, 1fr));
}
.ew-tap-btn[b-anrgtd468z] {
    position: relative; border: none; cursor: pointer;
    border-radius: 14px; padding: 12px 10px 10px;
    background: color-mix(in srgb, var(--ew-op) 12%, #FFFFFF);
    border: 2px solid color-mix(in srgb, var(--ew-op) 40%, #FFFFFF);
    color: var(--carbon-2, #1E2126);
    display: flex; flex-direction: column; align-items: center; gap: 2px;
    transition: transform .1s ease, box-shadow .12s ease;
    font-family: 'Figtree', sans-serif; min-height: 74px;
}
.ew-tap-btn:hover[b-anrgtd468z] { transform: translateY(-1px); box-shadow: var(--pz-shadow-pop); }
.ew-tap-btn:active[b-anrgtd468z] { transform: scale(.97); }
.ew-tap-num[b-anrgtd468z] { font-family: 'Fraunces', serif; font-weight: 600; font-size: clamp(22px, 4vw, 34px); color: var(--ew-op); line-height: 1; }
.ew-tap-txt[b-anrgtd468z] { font-size: 12px; font-weight: 600; text-align: center; line-height: 1.15; word-break: break-word; }
.ew-tap-plus[b-anrgtd468z] { position: absolute; top: 6px; right: 6px; font-size: 16px; color: var(--ew-op); opacity: .8; }

.ew-deshacer[b-anrgtd468z] {
    align-self: flex-start; border: none; cursor: pointer;
    background: var(--cream, #F4F0E6); color: var(--carbon-3, #444441);
    border-radius: 999px; padding: 5px 12px; font-size: 11.5px; font-weight: 600;
    display: inline-flex; align-items: center; gap: 4px; font-family: 'Figtree', sans-serif;
    flex-shrink: 0;
}
.ew-deshacer:hover[b-anrgtd468z] { background: var(--cream-deep, #EAE3D2); }
.ew-deshacer .material-symbols-rounded[b-anrgtd468z] { font-size: 15px; }

/* === Modo alumnos === */
/* flex-shrink 1 + min-height 0: si falta alto, el shrink se concentra en
   .ew-chips (que ya scrollea); meta y opciones nunca se comprimen. */
.ew-modo-alumnos[b-anrgtd468z] { display: flex; flex-direction: column; gap: 7px; min-height: 0; flex-shrink: 1; }
.ew-meta[b-anrgtd468z] { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; flex-wrap: wrap; flex-shrink: 0; }
.ew-faltantes[b-anrgtd468z] { font-size: 11.5px; font-weight: 700; color: var(--carbon-4, #5F5E5A); }
.ew-instr[b-anrgtd468z] { font-size: 11.5px; color: var(--carbon-5, #888780); }
.ew-instr b[b-anrgtd468z] { color: var(--carbon-2, #1E2126); }

.ew-chips[b-anrgtd468z] { display: flex; flex-wrap: wrap; gap: 5px; max-height: 90px; min-height: 0; overflow-y: auto; padding: 2px; }
.ew-chip[b-anrgtd468z] {
    position: relative; border: 1.5px solid var(--cream-deep, #EAE3D2);
    background: #FFFFFF; color: var(--carbon-3, #444441);
    border-radius: 999px; padding: 4px 10px; font-size: 11.5px; font-weight: 600;
    cursor: pointer; display: inline-flex; align-items: center; gap: 5px;
    font-family: 'Figtree', sans-serif; transition: border-color .12s ease, background .12s ease;
}
.ew-chip:hover[b-anrgtd468z] { border-color: var(--carbon-5, #888780); }
.ew-chip.sel[b-anrgtd468z] { border-color: var(--brand-teal-dark, #4BA8AA); background: color-mix(in srgb, var(--brand-teal, #6DC7D0) 14%, #FFFFFF); box-shadow: 0 0 0 2px color-mix(in srgb, var(--brand-teal, #6DC7D0) 30%, transparent); }
.ew-chip.respondido[b-anrgtd468z] { border-color: var(--ew-chip, var(--cream-deep, #EAE3D2)); }
.ew-chip-op[b-anrgtd468z] { width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0; }

.ew-opts[b-anrgtd468z] { display: flex; flex-wrap: wrap; gap: 6px; flex-shrink: 0; }
.ew-opt-btn[b-anrgtd468z] {
    flex: 1 1 auto; border: 2px solid color-mix(in srgb, var(--ew-op) 45%, #FFFFFF);
    background: color-mix(in srgb, var(--ew-op) 10%, #FFFFFF);
    color: var(--carbon-2, #1E2126); border-radius: 10px; padding: 8px 10px;
    cursor: pointer; display: inline-flex; align-items: center; gap: 6px; justify-content: center;
    font-size: 12.5px; font-weight: 600; font-family: 'Figtree', sans-serif;
    transition: transform .1s ease; min-width: 80px;
}
.ew-opt-btn:hover:not(:disabled)[b-anrgtd468z] { transform: translateY(-1px); }
.ew-opt-btn:disabled[b-anrgtd468z] { opacity: .5; cursor: default; }
.ew-op-dot[b-anrgtd468z] { width: 11px; height: 11px; border-radius: 50%; flex-shrink: 0; }
.ew-op-txt[b-anrgtd468z] { line-height: 1.15; }

/* === Barras de resultado === */
.ew-resultados[b-anrgtd468z] {
    display: flex; flex-direction: column; gap: 5px;
    margin-top: auto; padding-top: 8px;
    border-top: 1px solid var(--cream-deep, #EAE3D2);
    flex-shrink: 0;
}
.ew-barra-row[b-anrgtd468z] { display: grid; grid-template-columns: minmax(56px, 30%) 1fr auto; align-items: center; gap: 8px; }
.ew-barra-label[b-anrgtd468z] { display: flex; align-items: center; gap: 5px; min-width: 0; }
.ew-barra-dot[b-anrgtd468z] { width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0; }
.ew-barra-nom[b-anrgtd468z] { font-size: 11.5px; font-weight: 600; color: var(--carbon-3, #444441); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ew-barra-track[b-anrgtd468z] { height: 12px; border-radius: 999px; background: var(--cream, #F4F0E6); overflow: hidden; transition: box-shadow .25s ease; }
.ew-barra-fill[b-anrgtd468z] { height: 100%; border-radius: 999px; width: 0; transition: width .5s cubic-bezier(.2, .8, .2, 1); }
.ew-barra-cifras[b-anrgtd468z] { font-size: 11px; color: var(--carbon-4, #5F5E5A); white-space: nowrap; }
.ew-barra-cifras b[b-anrgtd468z] { color: var(--carbon-1, #141619); font-size: 12px; }
.ew-barra-row.lider .ew-barra-nom[b-anrgtd468z] { color: var(--carbon-1, #141619); font-weight: 700; }
.ew-barra-row.lider .ew-barra-track[b-anrgtd468z] { box-shadow: 0 0 0 2px color-mix(in srgb, var(--brand-teal, #6DC7D0) 28%, transparent); }

/* === Guardar al expediente === */
.ew-guardar-zona[b-anrgtd468z] { display: flex; flex-direction: column; gap: 6px; flex-shrink: 0; }
.ew-cta[b-anrgtd468z] {
    border: none; cursor: pointer; border-radius: 999px; padding: 8px 16px;
    background: var(--pz-green, #1D9E75); color: #FFFFFF; font-weight: 700; font-size: 12.5px;
    display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    font-family: 'Figtree', sans-serif; box-shadow: var(--pz-shadow-soft); transition: transform .1s ease;
}
.ew-cta:hover[b-anrgtd468z] { transform: translateY(-1px); }
.ew-cta .material-symbols-rounded[b-anrgtd468z] { font-size: 17px; }
.ew-cta-sm[b-anrgtd468z] { padding: 7px 14px; font-size: 12px; margin-top: 4px; }
.ew-guardar-btn[b-anrgtd468z] { align-self: flex-start; }

.ew-badge[b-anrgtd468z] {
    align-self: flex-start; display: inline-flex; align-items: center; gap: 5px;
    font-size: 11.5px; font-weight: 700; color: var(--pz-green-deep, #0F6E56);
    background: color-mix(in srgb, var(--pz-green, #1D9E75) 12%, #FFFFFF);
    border: 1px solid color-mix(in srgb, var(--pz-green, #1D9E75) 30%, #FFFFFF);
    border-radius: 999px; padding: 4px 10px;
}
.ew-badge .material-symbols-rounded[b-anrgtd468z] { font-size: 15px; }

.ew-progreso[b-anrgtd468z] { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; color: var(--carbon-4, #5F5E5A); }
.ew-spin[b-anrgtd468z] { animation: ew-rot-b-anrgtd468z 1s linear infinite; }
@keyframes ew-rot-b-anrgtd468z { to { transform: rotate(360deg); } }

.ew-resultado-guardado[b-anrgtd468z] { font-size: 12px; color: var(--carbon-3, #444441); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ew-con-fallo[b-anrgtd468z] { color: var(--danger, #A32D2D); font-weight: 600; }
.ew-reintentar[b-anrgtd468z] {
    border: 1px solid var(--danger, #A32D2D); background: #FFFFFF; color: var(--danger, #A32D2D);
    border-radius: 999px; padding: 3px 10px; font-size: 11.5px; font-weight: 700; cursor: pointer;
    display: inline-flex; align-items: center; gap: 4px; font-family: 'Figtree', sans-serif;
}
.ew-reintentar:hover[b-anrgtd468z] { background: color-mix(in srgb, var(--danger, #A32D2D) 8%, #FFFFFF); }
.ew-reintentar .material-symbols-rounded[b-anrgtd468z] { font-size: 14px; }

/* === Foco visible (teclado) === */
/* --brand-teal-deep y no --brand-teal: el card es blanco y el teal claro no
   alcanza 3:1 como indicador; el deep (5.96:1) si. En Dado/Scoreboard el ring
   claro funciona porque sus cards son oscuras. */
.ew-tap-btn:focus-visible[b-anrgtd468z],
.ew-chip:focus-visible[b-anrgtd468z],
.ew-opt-btn:focus-visible[b-anrgtd468z],
.ew-cta:focus-visible[b-anrgtd468z],
.ew-deshacer:focus-visible[b-anrgtd468z],
.ew-reintentar:focus-visible[b-anrgtd468z] {
    outline: 2px solid var(--brand-teal-deep, #2C6D6F);
    outline-offset: 2px;
}

/* === Escalado con el contenedor real ==================================== */
@supports (container-type: size) {
    .ew-root[b-anrgtd468z] { container-type: size; }
    /* cq* SOLO en descendientes: en el propio contenedor resolverian contra
       un ancestro, no contra .ew-root. Pisos legibles con max(px, cq*). */

    .ew-empty-ico[b-anrgtd468z] { font-size: max(46px, 18cqmin); }
    .ew-empty-title[b-anrgtd468z] { font-size: max(18px, 7cqmin); }
    .ew-empty-hint[b-anrgtd468z] { font-size: max(12.5px, 3.6cqmin); max-width: 72cqw; }

    .ew-aviso[b-anrgtd468z] {
        font-size: max(12.5px, 3.6cqmin);
        gap: max(8px, 2cqmin);
        padding: max(10px, 2.4cqmin) max(12px, 3cqmin);
        border-radius: max(10px, 2.4cqmin);
    }
    .ew-aviso .material-symbols-rounded[b-anrgtd468z] { font-size: max(20px, 5cqmin); }

    .ew-skeleton[b-anrgtd468z] { gap: max(8px, 2cqh); }
    .ew-skel-line[b-anrgtd468z] { height: max(26px, 8cqh); border-radius: max(8px, 2cqmin); }

    .ew-pregunta[b-anrgtd468z] { font-size: max(15px, 7cqmin); }

    .ew-modo-conteo[b-anrgtd468z] { gap: max(8px, 1.8cqmin); }
    .ew-tap-grid[b-anrgtd468z] {
        gap: max(8px, 1.8cqmin);
        grid-template-columns: repeat(auto-fit, minmax(max(90px, 24cqw), 1fr));
    }
    .ew-tap-btn[b-anrgtd468z] {
        border-radius: max(14px, 3cqmin);
        padding: max(12px, 3cqmin) max(10px, 2.4cqmin) max(10px, 2.4cqmin);
        gap: max(2px, .8cqmin);
        min-height: max(74px, 22cqh);
        border-width: max(2px, .5cqmin);
    }
    .ew-tap-num[b-anrgtd468z] { font-size: max(22px, 10cqmin); }
    .ew-tap-txt[b-anrgtd468z] { font-size: max(12px, 3.6cqmin); }
    .ew-tap-plus[b-anrgtd468z] { top: max(6px, 1.4cqmin); right: max(6px, 1.4cqmin); font-size: max(16px, 4cqmin); }

    .ew-deshacer[b-anrgtd468z] { font-size: max(11.5px, 3.2cqmin); padding: max(5px, 1.2cqmin) max(12px, 3cqmin); gap: max(4px, 1cqmin); }
    .ew-deshacer .material-symbols-rounded[b-anrgtd468z] { font-size: max(15px, 3.8cqmin); }

    .ew-modo-alumnos[b-anrgtd468z] { gap: max(7px, 1.6cqmin); }
    .ew-faltantes[b-anrgtd468z], .ew-instr[b-anrgtd468z] { font-size: max(11.5px, 3.2cqmin); }
    .ew-chips[b-anrgtd468z] { max-height: max(56px, 28cqh); gap: max(5px, 1.2cqmin); }
    .ew-chip[b-anrgtd468z] { font-size: max(11.5px, 3.4cqmin); padding: max(4px, 1cqmin) max(10px, 2.6cqmin); gap: max(5px, 1.2cqmin); }
    .ew-chip-op[b-anrgtd468z] { width: max(9px, 2.4cqmin); height: max(9px, 2.4cqmin); }

    .ew-opts[b-anrgtd468z] { gap: max(6px, 1.4cqmin); }
    .ew-opt-btn[b-anrgtd468z] {
        font-size: max(12.5px, 3.8cqmin);
        padding: max(8px, 2cqmin) max(10px, 2.6cqmin);
        border-radius: max(10px, 2.4cqmin);
        border-width: max(2px, .5cqmin);
        gap: max(6px, 1.4cqmin);
        min-width: max(80px, 20cqw);
    }
    .ew-op-dot[b-anrgtd468z] { width: max(11px, 2.8cqmin); height: max(11px, 2.8cqmin); }

    /* Barras: el payoff visual proyectado. Alto en cqh, pill 999px conserva
       el radio proporcional a cualquier alto. */
    .ew-resultados[b-anrgtd468z] { gap: max(5px, 1.2cqh); padding-top: max(8px, 2cqh); }
    .ew-barra-row[b-anrgtd468z] { gap: max(8px, 2cqmin); grid-template-columns: minmax(max(56px, 16cqw), 30%) 1fr auto; }
    .ew-barra-label[b-anrgtd468z] { gap: max(5px, 1.2cqmin); }
    .ew-barra-dot[b-anrgtd468z] { width: max(9px, 2.4cqmin); height: max(9px, 2.4cqmin); }
    .ew-barra-nom[b-anrgtd468z] { font-size: max(11.5px, 4cqmin); }
    .ew-barra-track[b-anrgtd468z] { height: max(10px, 3cqh); }
    .ew-barra-cifras[b-anrgtd468z] { font-size: max(11px, 3.6cqmin); }
    .ew-barra-cifras b[b-anrgtd468z] { font-size: max(12px, 4.2cqmin); }
    .ew-barra-row.lider .ew-barra-track[b-anrgtd468z] { box-shadow: 0 0 0 max(2px, .5cqmin) color-mix(in srgb, var(--brand-teal, #6DC7D0) 28%, transparent); }

    .ew-guardar-zona[b-anrgtd468z] { gap: max(6px, 1.4cqmin); }
    .ew-cta[b-anrgtd468z] { font-size: max(12.5px, 3.8cqmin); padding: max(8px, 2cqmin) max(16px, 4.5cqmin); gap: max(6px, 1.4cqmin); }
    .ew-cta .material-symbols-rounded[b-anrgtd468z] { font-size: max(17px, 4.6cqmin); }
    .ew-cta-sm[b-anrgtd468z] { font-size: max(12px, 3.6cqmin); padding: max(7px, 1.8cqmin) max(14px, 4cqmin); }
    .ew-badge[b-anrgtd468z] { font-size: max(11.5px, 3.4cqmin); padding: max(4px, 1cqmin) max(10px, 2.6cqmin); gap: max(5px, 1.2cqmin); }
    .ew-badge .material-symbols-rounded[b-anrgtd468z] { font-size: max(15px, 3.8cqmin); }
    .ew-progreso[b-anrgtd468z] { font-size: max(12px, 3.6cqmin); gap: max(6px, 1.4cqmin); }
    .ew-resultado-guardado[b-anrgtd468z] { font-size: max(12px, 3.6cqmin); gap: max(8px, 2cqmin); }
    .ew-reintentar[b-anrgtd468z] { font-size: max(11.5px, 3.4cqmin); padding: max(3px, .8cqmin) max(10px, 2.6cqmin); gap: max(4px, 1cqmin); }
    .ew-reintentar .material-symbols-rounded[b-anrgtd468z] { font-size: max(14px, 3.6cqmin); }
}

/* === Fallback sin container queries: conserva los px/clamps previos ====== */
@supports not (container-type: size) {
    .ew-pregunta[b-anrgtd468z] { font-size: clamp(15px, 2.4vw, 22px); }
    .ew-tap-num[b-anrgtd468z] { font-size: clamp(22px, 4vw, 34px); }
    .ew-chips[b-anrgtd468z] { max-height: 90px; }
    .ew-barra-track[b-anrgtd468z] { height: 12px; }
}

@media (prefers-reduced-motion: reduce) {
    .ew-barra-fill[b-anrgtd468z], .ew-skel-line[b-anrgtd468z], .ew-spin[b-anrgtd468z],
    .ew-barra-track[b-anrgtd468z], .ew-tap-btn[b-anrgtd468z], .ew-opt-btn[b-anrgtd468z], .ew-chip[b-anrgtd468z], .ew-cta[b-anrgtd468z] { transition: none !important; animation: none !important; }
}
/* /Components/Widgets/ImagenWidget.razor.rz.scp.css */
.iw-root[b-v7brg8gojp] {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.iw-empty[b-v7brg8gojp] {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #999;
    background: #F5F5F5;
}

.iw-estado[b-v7brg8gojp] {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: color-mix(in srgb, var(--carbon-1, #141619) 4%, transparent);
}

.iw-spinner[b-v7brg8gojp] {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    border: 3px solid var(--cream-deep, #EAE3D2);
    border-top-color: var(--brand-teal-dark, #2E7D82);
    animation: iw-spin-b-v7brg8gojp 0.8s linear infinite;
}

@keyframes iw-spin-b-v7brg8gojp {
    to { transform: rotate(360deg); }
}

.iw-estado-error[b-v7brg8gojp] {
    color: var(--danger, #A32D2D);
}

.iw-error-icon[b-v7brg8gojp] {
    font-size: clamp(24px, 8vh, 36px);
}

.iw-btn-reintentar[b-v7brg8gojp] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    border: none;
    border-radius: 999px;
    background: var(--brand-teal, #6DC7D0);
    color: #14332F;
    font-family: var(--font-sans, 'Figtree', sans-serif);
    font-weight: 600;
    font-size: clamp(10px, 2.6vh, 13px);
    cursor: pointer;
    transition: transform 0.15s ease, filter 0.2s ease;
}

.iw-btn-reintentar:hover[b-v7brg8gojp] {
    transform: translateY(-1px);
    filter: brightness(1.05);
}

.iw-btn-reintentar .material-symbols-rounded[b-v7brg8gojp] { font-size: 16px; }

@media (prefers-reduced-motion: reduce) {
    .iw-spinner[b-v7brg8gojp] { animation: none; }
}
/* /Components/Widgets/PdfWidget.razor.rz.scp.css */
.pw-root[b-cn4tmvhy13] {
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    border-radius: 14px;
    overflow: hidden;
    background: #FFFFFF;
    box-shadow: var(--pz-shadow-soft);
    position: relative;
    display: flex;
    flex-direction: column;
}

.pw-frame[b-cn4tmvhy13] {
    width: 100%;
    height: 100%;
    border: none;
    flex: 1 1 auto;
    background: #525659;
}

/* ===== Estado vacio / carga / error ===== */
.pw-empty[b-cn4tmvhy13] {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 8% 10%;
    box-sizing: border-box;
    text-align: center;
    height: 100%;
}

.pw-empty-icon[b-cn4tmvhy13] {
    font-size: clamp(32px, 10vh, 56px);
    color: var(--brand-teal-dark, #2E7D82);
}

.pw-empty-title[b-cn4tmvhy13] {
    font-family: var(--font-serif, 'Fraunces', serif);
    font-weight: 600;
    font-size: clamp(13px, 3.6vh, 18px);
    color: var(--carbon-1, #141619);
}

.pw-empty-hint[b-cn4tmvhy13] {
    font-family: var(--font-sans, 'Figtree', sans-serif);
    font-size: clamp(10px, 2.6vh, 13px);
    color: var(--carbon-4, #63666B);
}

.pw-btn-elegir[b-cn4tmvhy13], .pw-btn-cambiar[b-cn4tmvhy13] {
    margin-top: 4px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 18px;
    border: none;
    border-radius: 999px;
    background: var(--brand-teal, #6DC7D0);
    color: #14332F;
    font-family: var(--font-sans, 'Figtree', sans-serif);
    font-weight: 600;
    font-size: clamp(11px, 2.8vh, 14px);
    cursor: pointer;
    transition: transform 0.15s ease, filter 0.2s ease;
}
.pw-btn-elegir:hover[b-cn4tmvhy13], .pw-btn-cambiar:hover[b-cn4tmvhy13] {
    transform: translateY(-1px);
    filter: brightness(1.05);
}
.pw-btn-elegir .material-symbols-rounded[b-cn4tmvhy13],
.pw-btn-cambiar .material-symbols-rounded[b-cn4tmvhy13] { font-size: 18px; }

.pw-error[b-cn4tmvhy13] {
    margin-top: 6px;
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: 8px;
    background: color-mix(in srgb, var(--danger, #A32D2D) 12%, transparent);
    color: var(--danger, #A32D2D);
    font-size: clamp(10px, 2.4vh, 12px);
    max-width: 32ch;
}
.pw-error .material-symbols-rounded[b-cn4tmvhy13] { font-size: 16px; flex: 0 0 auto; }

/* Skeleton de subida */
.pw-skeleton[b-cn4tmvhy13] {
    width: 70%;
    max-width: 220px;
    height: 12px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--cream-deep, #EAE3D2) 25%, #F7F4EA 50%, var(--cream-deep, #EAE3D2) 75%);
    background-size: 200% 100%;
    animation: pw-shimmer-b-cn4tmvhy13 1.3s ease-in-out infinite;
}

.spinner[b-cn4tmvhy13] {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: 3px solid var(--cream-deep, #EAE3D2);
    border-top-color: var(--brand-teal-dark, #2E7D82);
    animation: pw-spin-b-cn4tmvhy13 0.8s linear infinite;
}

@keyframes pw-shimmer-b-cn4tmvhy13 {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

@keyframes pw-spin-b-cn4tmvhy13 {
    to { transform: rotate(360deg); }
}

/* ===== Header discreto (solo editor, hover del widget seleccionado) ===== */
.pw-header[b-cn4tmvhy13] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 6px 10px;
    background: linear-gradient(to bottom, rgba(20, 22, 25, 0.72), rgba(20, 22, 25, 0));
    opacity: 0;
    transition: opacity 0.15s ease;
    pointer-events: none;
}

.pw-root:hover .pw-header[b-cn4tmvhy13] {
    opacity: 1;
    pointer-events: auto;
}

.pw-header-nombre[b-cn4tmvhy13] {
    color: #F4F0E6;
    font-family: var(--font-sans, 'Figtree', sans-serif);
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pw-header .pw-btn-cambiar[b-cn4tmvhy13] {
    margin-top: 0;
    flex: 0 0 auto;
    padding: 5px 12px;
    font-size: 11px;
}

@media (prefers-reduced-motion: reduce) {
    .pw-skeleton[b-cn4tmvhy13] { animation: none; }
    .spinner[b-cn4tmvhy13] { animation: none; }
}
/* /Components/Widgets/QrWidget.razor.rz.scp.css */
/* QrWidget — card blanca, el QR llena el area (SVG 100%/100% + crispEdges: NO tocar).
   Sizing por container queries: base mode-agnostic, bloque @supports (container-type: size)
   con cq* SOLO en descendientes, y @supports not con los px/vh previos.
   El fondo blanco tras el QR es requisito de escaneo, no estetica. */

.qw-root[b-7ldxaqbprn] {
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4%;
    padding: 6%;
    background: #FFFFFF;
    border-radius: 14px;
    box-shadow: var(--pz-shadow-soft);
}

/* Marco opcional: vive en ::before (pseudo-descendiente) para poder escalarlo en cqmin
   — cq* no resuelve contra el propio contenedor. */
.qw-marco[b-7ldxaqbprn]::before {
    content: "";
    position: absolute;
    inset: 0;
    border: 3px solid var(--carbon-2, #1E2126);
    border-radius: inherit;
    pointer-events: none;
}

.qw-caja[b-7ldxaqbprn] {
    flex: 1 1 auto;
    width: 100%;
    min-height: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.qw-qr[b-7ldxaqbprn] {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* El SVG de la lib viene sin viewBox amigable a escalado; forzamos su comportamiento aqui. */
.qw-qr :deep(svg)[b-7ldxaqbprn] {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    shape-rendering: crispEdges;
}

/* QR fantasma: visible solo mientras el modulo JS genera el SVG la primera vez */
.qw-ghost[b-7ldxaqbprn] {
    color: var(--carbon-1, #141619);
    opacity: 0.08;
    line-height: 1;
    user-select: none;
}

/* Titulo: el "para que" del QR proyectado — serif con jerarquia propia */
.qw-titulo[b-7ldxaqbprn] {
    flex: 0 0 auto;
    font-family: var(--font-serif, 'Fraunces', serif);
    font-weight: 600;
    color: var(--carbon-1, #141619);
    text-align: center;
    line-height: 1.25;
    max-width: 100%;
    overflow-wrap: break-word;
}

/* ===== Estados vacio / error ===== */
.qw-empty[b-7ldxaqbprn] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 4%;
}

.qw-empty-icon[b-7ldxaqbprn] {
    color: var(--brand-teal-dark, #2E7D82);
    line-height: 1;
}

.qw-empty-title[b-7ldxaqbprn] {
    font-family: var(--font-serif, 'Fraunces', serif);
    font-weight: 600;
    color: var(--carbon-1, #141619);
}

.qw-empty-hint[b-7ldxaqbprn] {
    font-family: var(--font-sans, 'Figtree', sans-serif);
    color: var(--carbon-4, #5F5E5A);
    max-width: 28ch;
}

/* Icono del estado de error: danger del sistema (no teal, el error debe leerse como error) */
.qw-error-icon[b-7ldxaqbprn] {
    color: var(--danger, #A32D2D);
}

/* Fila de acciones del estado de error (Reintentar + Configurar) */
.qw-error-acciones[b-7ldxaqbprn] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
}

.qw-btn-config[b-7ldxaqbprn] {
    display: inline-flex;
    align-items: center;
    border: none;
    border-radius: 999px;
    background: var(--brand-teal, #6DC7D0);
    color: var(--carbon-1, #141619);
    font-family: var(--font-sans, 'Figtree', sans-serif);
    font-weight: 600;
    cursor: pointer;
    transition: transform 0.15s ease, filter 0.2s ease;
}

.qw-btn-config:hover[b-7ldxaqbprn] {
    transform: translateY(-1px);
    filter: brightness(1.05);
}

.qw-btn-config:active[b-7ldxaqbprn] {
    transform: translateY(0);
    filter: brightness(0.97);
}

/* Variante secundaria: cuando Reintentar es la accion primaria, Configurar baja de jerarquia */
.qw-btn-sec[b-7ldxaqbprn] {
    background: transparent;
    box-shadow: inset 0 0 0 1.5px var(--brand-teal-deep, #2C6D6F);
    color: var(--brand-teal-dark, #2E7D82);
}

.qw-btn-sec:hover[b-7ldxaqbprn] {
    filter: none;
    background: rgba(109, 199, 208, 0.14);
}

.qw-btn-sec:active[b-7ldxaqbprn] {
    background: rgba(109, 199, 208, 0.22);
}

/* Card blanca: ring en teal-deep (5.96:1), mismo criterio que Encuesta/Simbolos */
.qw-btn-config:focus-visible[b-7ldxaqbprn] {
    outline: 2px solid var(--brand-teal-deep, #2C6D6F);
    outline-offset: 2px;
}

/* === Sizing container-aware === */
@supports (container-type: size) {
    .qw-root[b-7ldxaqbprn] {
        container-type: size;
        /* padding/gap del root quedan en %: cq* no resuelve contra si mismo */
    }

    .qw-marco[b-7ldxaqbprn]::before {
        border-width: max(2px, 1cqmin);
    }

    .qw-ghost[b-7ldxaqbprn] {
        font-size: max(48px, 60cqmin);
    }

    .qw-titulo[b-7ldxaqbprn] {
        font-size: max(13px, 8cqmin);
    }

    .qw-empty[b-7ldxaqbprn] {
        gap: max(6px, 2.5cqmin);
    }

    .qw-empty-icon[b-7ldxaqbprn] {
        font-size: max(32px, 18cqmin);
    }

    .qw-empty-title[b-7ldxaqbprn] {
        font-size: max(13px, 6cqmin);
    }

    .qw-empty-hint[b-7ldxaqbprn] {
        font-size: max(10px, 4cqmin);
    }

    .qw-error-acciones[b-7ldxaqbprn] {
        gap: max(6px, 2cqmin);
    }

    .qw-btn-config[b-7ldxaqbprn] {
        margin-top: max(4px, 1.5cqmin);
        gap: max(5px, 1.5cqmin);
        padding: max(8px, 2.4cqmin) max(16px, 5cqmin);
        font-size: max(11px, 4.4cqmin);
    }

    .qw-btn-config .material-symbols-rounded[b-7ldxaqbprn] {
        font-size: max(15px, 5cqmin);
    }
}

@supports not (container-type: size) {
    /* px/vh previos; el marco conserva sus 3px de base */
    .qw-ghost[b-7ldxaqbprn] {
        font-size: clamp(48px, 30vh, 160px);
    }

    .qw-titulo[b-7ldxaqbprn] {
        font-size: clamp(11px, 3vh, 18px);
    }

    .qw-empty[b-7ldxaqbprn] {
        gap: 8px;
    }

    .qw-empty-icon[b-7ldxaqbprn] {
        font-size: clamp(32px, 10vh, 56px);
    }

    .qw-empty-title[b-7ldxaqbprn] {
        font-size: clamp(13px, 3.6vh, 18px);
    }

    .qw-empty-hint[b-7ldxaqbprn] {
        font-size: clamp(10px, 2.6vh, 13px);
    }

    .qw-error-acciones[b-7ldxaqbprn] {
        gap: 8px;
    }

    .qw-btn-config[b-7ldxaqbprn] {
        margin-top: 4px;
        gap: 6px;
        padding: 9px 18px;
        font-size: clamp(11px, 2.8vh, 14px);
    }

    .qw-btn-config .material-symbols-rounded[b-7ldxaqbprn] {
        font-size: 18px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .qw-btn-config[b-7ldxaqbprn] {
        transition: none;
    }

    .qw-btn-config:hover[b-7ldxaqbprn],
    .qw-btn-config:active[b-7ldxaqbprn] {
        transform: none;
    }
}
/* /Components/Widgets/RandomizerWidget.razor.rz.scp.css */
/* === RandomizerWidget (Sorteo) — escalado por container queries ===
   .rw-root es container-type:size; la tipografia/espaciado del widget chico usa
   cqmin/cqw con PISOS en px (patron max(px, cq*)) por el gotcha del lienzo:
   el canvas aplica ZOOM y las unidades cq resuelven sobre el tamano de LAYOUT,
   no el visual — los pisos evitan texto microscopico si el layout es chico.
   KNOBS runtime:
     --rw-escala   multiplicador tipografico global del widget chico (default 1)
     --rw-hub-pct  diametro del boton-hub (lo fija C# segun densidad: 26/30/34%)
   La rueda es SVG con viewBox 200x200: sus textos escalan proporcionales al
   tamano renderizado del SVG, sin depender de px del viewport. */
.rw-root[b-jxcpzoqm5b] {
    --rw-hub: #1E2126;
    --rw-escala: 1;
    container-type: size;
    container-name: rwx;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: max(6px, 1.6cqmin);
    padding: max(10px, 2.4cqmin) max(12px, 2.8cqmin);
    background: #FFFFFF;
    color: var(--carbon-1, #1E2126);
    border-radius: 14px;
    position: relative;
    overflow: hidden;
    font-family: 'Figtree', sans-serif;
}

@supports not (container-type: size) {
    .rw-root[b-jxcpzoqm5b] { gap: 8px; padding: 12px 14px; }
}

.rw-root button:focus-visible[b-jxcpzoqm5b] {
    outline: 2px solid var(--carbon-5, #888780);
    outline-offset: 2px;
}

/* === Empty / skeleton === */
.rw-empty[b-jxcpzoqm5b] {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 6px;
    color: var(--carbon-3, #6B7280);
    padding: 8px;
}
/* Rueda fantasma decorativa: gradiente conico (espejo de Paleta en C#, via inline
   style) muy tenue + hub blanco; invita a girar en vez de verse "rota". */
.rw-empty-wheel[b-jxcpzoqm5b] {
    position: relative;
    width: clamp(64px, 34cqmin, 150px);
    aspect-ratio: 1;
    border-radius: 50%;
    display: grid;
    place-items: center;
    flex-shrink: 0;
}
.rw-empty-disc[b-jxcpzoqm5b] { position: absolute; inset: 0; border-radius: 50%; opacity: .22; }
.rw-empty-wheel[b-jxcpzoqm5b]::after {
    content: "";
    position: absolute;
    inset: 31%;
    border-radius: 50%;
    background: #FFFFFF;
    box-shadow: 0 1px 5px rgba(20, 22, 25, .12);
}
.rw-empty-ico[b-jxcpzoqm5b] {
    position: relative;
    z-index: 1;
    font-size: clamp(26px, 13cqmin, 46px);
    color: var(--carbon-3, #6B7280);
    opacity: .85;
}
.rw-empty-title[b-jxcpzoqm5b] {
    font-family: 'Fraunces', serif;
    font-size: max(16px, calc(4.6cqmin * var(--rw-escala)));
    font-weight: 600;
    color: var(--carbon-1, #1E2126);
}
.rw-empty-hint[b-jxcpzoqm5b] {
    font-size: max(11.5px, calc(3.1cqmin * var(--rw-escala)));
    line-height: 1.45;
    max-width: 240px;
}

.rw-skeleton[b-jxcpzoqm5b] { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; }
.rw-skel-wheel[b-jxcpzoqm5b], .rw-skel-btn[b-jxcpzoqm5b] {
    background: linear-gradient(90deg, #EEE 25%, #F6F6F6 50%, #EEE 75%);
    background-size: 200% 100%;
    animation: rw-shimmer-b-jxcpzoqm5b 1.3s infinite;
    border-radius: 999px;
}
.rw-skel-wheel[b-jxcpzoqm5b] { width: min(62cqmin, 72%); aspect-ratio: 1; }
@supports not (container-type: size) { .rw-skel-wheel[b-jxcpzoqm5b] { width: min(58%, 180px); } }
.rw-skel-btn[b-jxcpzoqm5b] { width: 120px; height: 34px; border-radius: 999px; }
@keyframes rw-shimmer-b-jxcpzoqm5b { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

/* === Header: contador protagonista al centro, controles discretos a los lados === */
.rw-header[b-jxcpzoqm5b] { display: flex; align-items: center; gap: max(4px, 1cqmin); flex-shrink: 0; }
.rw-modes[b-jxcpzoqm5b] { display: flex; background: var(--cream, #F4F0E6); border-radius: 8px; padding: 2px; }
.rw-modes button[b-jxcpzoqm5b] {
    border: none; background: transparent; cursor: pointer;
    width: 30px; height: 26px; border-radius: 6px;
    display: grid; place-items: center; color: var(--carbon-3, #6B7280);
    transition: color .15s ease, background .15s ease;
}
.rw-modes button:hover:not(.active)[b-jxcpzoqm5b] { color: var(--carbon-2, #374151); }
.rw-modes button .material-symbols-rounded[b-jxcpzoqm5b] { font-size: 18px; }
.rw-modes button.active[b-jxcpzoqm5b] { background: #FFFFFF; color: #6366F1; box-shadow: 0 1px 3px rgba(0,0,0,.12); }
.rw-count[b-jxcpzoqm5b] {
    flex: 1; min-width: 0;
    display: flex; align-items: center; justify-content: center; gap: 4px;
    color: var(--carbon-3, #6B7280);
    cursor: default;
}
.rw-count > .material-symbols-rounded[b-jxcpzoqm5b] { font-size: max(13px, 3.4cqmin); opacity: .75; }
.rw-count-num[b-jxcpzoqm5b] {
    font-family: 'Fraunces', serif; font-weight: 700; line-height: 1;
    font-size: max(15px, calc(4.6cqmin * var(--rw-escala)));
    color: var(--carbon-1, #1E2126);
}
.rw-count-de[b-jxcpzoqm5b] {
    font-size: max(10.5px, calc(2.9cqmin * var(--rw-escala)));
    font-weight: 600;
    white-space: nowrap;
}
.rw-refresh[b-jxcpzoqm5b], .rw-mute[b-jxcpzoqm5b] {
    border: none; background: transparent; cursor: pointer; color: var(--carbon-3, #6B7280);
    width: 28px; height: 28px; border-radius: 8px; display: grid; place-items: center; flex-shrink: 0;
    transition: background .15s ease;
}
.rw-refresh:hover[b-jxcpzoqm5b], .rw-mute:hover[b-jxcpzoqm5b] { background: var(--cream, #F4F0E6); }
.rw-refresh .material-symbols-rounded[b-jxcpzoqm5b], .rw-mute .material-symbols-rounded[b-jxcpzoqm5b] { font-size: 18px; }

/* === Stage === */
.rw-stage[b-jxcpzoqm5b] { flex: 1; min-height: 0; display: flex; align-items: center; justify-content: center; }

/* Ruleta (preview chico): la rueda es LA protagonista de la card */
.rw-wheel-wrap[b-jxcpzoqm5b] { position: relative; height: 100%; aspect-ratio: 1; max-width: 100%; display: grid; place-items: center; }
.rw-wheel[b-jxcpzoqm5b] {
    width: 100%; height: 100%;
    filter: drop-shadow(0 2px 5px rgba(20,22,25,.16)) drop-shadow(0 10px 26px rgba(20,22,25,.22));
}
/* ::deep obligatorio: los <text> de la rueda nacen de un MarkupString (RuedaSvg),
   NO llevan el atributo de scope de Blazor; el selector directo .rw-seg-txt jamas
   les aplicaria. Se ancla en .rw-wheel/.rw-foco-wheel, que si estan en el markup. */
.rw-wheel[b-jxcpzoqm5b]  .rw-seg-txt,
.rw-foco-wheel[b-jxcpzoqm5b]  .rw-seg-txt {
    font-weight: 700; font-family: 'Figtree', sans-serif;
    text-shadow: 0 1px 2px rgba(0,0,0,.6), 0 0 4px rgba(0,0,0,.38);
}
.rw-pointer[b-jxcpzoqm5b] {
    position: absolute; top: -2px; left: 50%; transform: translateX(-50%);
    width: 0; height: 0; z-index: 3;
    border-left: 10px solid transparent; border-right: 10px solid transparent;
    border-top: 18px solid var(--danger, #DC2626);
    filter: drop-shadow(0 2px 3px rgba(0,0,0,.3));
}
/* Boton-hub: su diametro sigue al hub del SVG via --rw-hub-pct (C# lo fija por
   densidad; en ruedas densas crece y muestra el conteo grande + "Sortear"). */
.rw-spin[b-jxcpzoqm5b] {
    position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
    width: var(--rw-hub-pct, 26%); min-width: 54px; aspect-ratio: 1; border-radius: 50%;
    box-sizing: border-box;
    border: 3px solid #FFFFFF; background: var(--rw-hub, #1E2126); color: #FFFFFF;
    cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 1px; z-index: 2;
    box-shadow: 0 4px 14px rgba(20,22,25,.35), inset 0 1px 0 rgba(255,255,255,.14);
    transition: transform .15s ease, box-shadow .15s ease; font-family: 'Figtree', sans-serif;
}
.rw-spin span:last-child[b-jxcpzoqm5b] { font-size: max(9px, 2.4cqmin); font-weight: 700; letter-spacing: .3px; }
.rw-spin .material-symbols-rounded[b-jxcpzoqm5b] { font-size: max(16px, 4.6cqmin); }
.rw-spin-num[b-jxcpzoqm5b] {
    font-family: 'Fraunces', serif; font-weight: 700; line-height: 1;
    font-size: max(15px, 5.4cqmin);
}
.rw-spin:hover:not(:disabled)[b-jxcpzoqm5b] {
    transform: translate(-50%, -50%) scale(1.06);
    box-shadow: 0 6px 20px rgba(20,22,25,.42), inset 0 1px 0 rgba(255,255,255,.14);
}
.rw-spin:active:not(:disabled)[b-jxcpzoqm5b] { transform: translate(-50%, -50%) scale(.98); }
.rw-spin:disabled[b-jxcpzoqm5b] { cursor: default; opacity: .92; }
.rw-spin:disabled .material-symbols-rounded[b-jxcpzoqm5b] { animation: rw-spin-ico-b-jxcpzoqm5b 1s linear infinite; }
@keyframes rw-spin-ico-b-jxcpzoqm5b { to { transform: rotate(360deg); } }

/* Tarjetas (preview chico) */
.rw-cards-wrap[b-jxcpzoqm5b] { display: flex; flex-direction: column; align-items: center; gap: 14px; width: 100%; }
.rw-card[b-jxcpzoqm5b] {
    width: min(80%, 260px); aspect-ratio: 16 / 9; border-radius: 16px;
    background: linear-gradient(135deg, #6366F1, #8B5CF6); color: #FFFFFF;
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
    box-shadow: 0 8px 24px rgba(99,102,241,.32); padding: 12px;
}
.rw-card.shuffling[b-jxcpzoqm5b] { animation: rw-shuffle-b-jxcpzoqm5b .18s ease-in-out infinite; }
@keyframes rw-shuffle-b-jxcpzoqm5b {
    0% { transform: translateY(0) rotate(-1.5deg); }
    50% { transform: translateY(-6px) rotate(1.5deg); }
    100% { transform: translateY(0) rotate(-1.5deg); }
}
.rw-card-ico[b-jxcpzoqm5b] { font-size: max(24px, 7cqmin); opacity: .85; }
/* cq y no vw: dentro del lienzo con zoom, vw escala con el viewport y rompe la
   proporcion; cqw sigue al layout del propio widget (piso en px de respaldo). */
.rw-card-name[b-jxcpzoqm5b] { font-family: 'Fraunces', serif; font-size: clamp(15px, 9cqw, 30px); font-weight: 600; text-align: center; }

/* CTA genérico */
.rw-cta[b-jxcpzoqm5b] {
    border: none; cursor: pointer; border-radius: 999px; padding: 9px 20px;
    background: var(--rw-hub, #1E2126); color: #FFFFFF; font-weight: 700; font-size: 13px;
    display: inline-flex; align-items: center; gap: 6px; font-family: 'Figtree', sans-serif;
    box-shadow: 0 3px 10px rgba(0,0,0,.22); transition: transform .12s ease;
}
.rw-cta:hover:not(:disabled)[b-jxcpzoqm5b] { transform: translateY(-1px); }
.rw-cta:disabled[b-jxcpzoqm5b] { opacity: .6; cursor: default; }
.rw-cta .material-symbols-rounded[b-jxcpzoqm5b] { font-size: 18px; }
.rw-cta-ghost[b-jxcpzoqm5b] { background: transparent; color: #FFFFFF; box-shadow: none; border: 1.5px solid rgba(255,255,255,.5); }
.rw-cta-sm[b-jxcpzoqm5b] { padding: 7px 16px; font-size: 12px; margin-top: 6px; }

/* === Bandeja "ya participaron" === */
.rw-tray[b-jxcpzoqm5b] { flex-shrink: 0; border-top: 1px solid var(--cream-deep, #E5DFD0); padding-top: 6px; }
.rw-tray-head[b-jxcpzoqm5b] { display: flex; align-items: center; justify-content: space-between; font-size: 11px; font-weight: 700; color: var(--carbon-3, #6B7280); margin-bottom: 4px; }
.rw-tray-reset[b-jxcpzoqm5b] { border: none; background: transparent; cursor: pointer; color: var(--carbon-3, #6B7280); display: grid; place-items: center; padding: 2px; border-radius: 6px; }
.rw-tray-reset:hover[b-jxcpzoqm5b] { background: var(--cream, #F4F0E6); color: var(--danger, #DC2626); }
.rw-tray-reset .material-symbols-rounded[b-jxcpzoqm5b] { font-size: 16px; }
.rw-chips[b-jxcpzoqm5b] { display: flex; flex-wrap: wrap; gap: 4px; max-height: 46px; overflow-y: auto; }
.rw-chip[b-jxcpzoqm5b] {
    font-size: 10px; font-weight: 700; letter-spacing: .3px;
    background: var(--cream, #F4F0E6); color: var(--carbon-2, #374151);
    border-radius: 999px; padding: 3px 8px; line-height: 1.2;
}

/* === Mini-ganador (widget chico, tras cerrar el dialog) === */
.rw-mini-ganador[b-jxcpzoqm5b] {
    flex-shrink: 0; display: flex; align-items: center; gap: 6px;
    background: linear-gradient(135deg, #1E2126, #374151); color: #FFFFFF;
    border-radius: 10px; padding: 7px 10px; font-size: 12.5px; font-weight: 700;
    font-family: 'Fraunces', serif;
}
.rw-mini-ganador .material-symbols-rounded:first-child[b-jxcpzoqm5b] { font-size: 16px; color: #F59E0B; }
.rw-mini-ganador span:nth-child(2)[b-jxcpzoqm5b] { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rw-mini-ganador-cerrar[b-jxcpzoqm5b] {
    border: none; background: rgba(255,255,255,.14); color: #FFFFFF; cursor: pointer;
    width: 20px; height: 20px; border-radius: 50%; display: grid; place-items: center; flex-shrink: 0;
}
.rw-mini-ganador-cerrar .material-symbols-rounded[b-jxcpzoqm5b] { font-size: 13px; }

/* ======================================================================= */
/* === Modo foco: <dialog> nativo, top layer del navegador === */
/* ======================================================================= */

.rw-dialog[b-jxcpzoqm5b] {
    border: none; padding: 0; background: transparent; max-width: none; max-height: none;
    width: 100vw; height: 100vh; margin: 0; overflow: visible;
}
.rw-dialog[b-jxcpzoqm5b]::backdrop { background: rgba(15, 17, 20, .88); backdrop-filter: blur(4px); }
.rw-dialog[open][b-jxcpzoqm5b] { display: flex; align-items: center; justify-content: center; }

.rw-foco[b-jxcpzoqm5b] {
    position: relative;
    width: min(85vw, 85vh);
    height: min(85vw, 85vh);
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 28px;
    animation: rw-foco-in-b-jxcpzoqm5b .3s cubic-bezier(.2, 1.1, .4, 1);
}
@keyframes rw-foco-in-b-jxcpzoqm5b { from { opacity: 0; transform: scale(.94); } to { opacity: 1; transform: scale(1); } }

.rw-foco-close[b-jxcpzoqm5b], .rw-foco-mute[b-jxcpzoqm5b] {
    position: absolute; top: -4px; z-index: 10;
    width: 44px; height: 44px; border-radius: 50%;
    border: none; cursor: pointer; display: grid; place-items: center;
    background: rgba(255,255,255,.12); color: #FFFFFF;
    transition: background .15s ease;
}
.rw-foco-close[b-jxcpzoqm5b] { right: -4px; }
.rw-foco-mute[b-jxcpzoqm5b] { left: -4px; }
.rw-foco-close:hover[b-jxcpzoqm5b], .rw-foco-mute:hover[b-jxcpzoqm5b] { background: rgba(255,255,255,.22); }
.rw-foco-close .material-symbols-rounded[b-jxcpzoqm5b], .rw-foco-mute .material-symbols-rounded[b-jxcpzoqm5b] { font-size: 24px; }

/* --- Ruleta modo foco --- */
.rw-foco-wheel-wrap[b-jxcpzoqm5b] { position: relative; width: min(70vw, 62vh); aspect-ratio: 1; display: grid; place-items: center; }
.rw-foco-wheel[b-jxcpzoqm5b] {
    width: 100%; height: 100%;
    filter: drop-shadow(0 14px 40px rgba(0,0,0,.5));
    transition: transform 4.6s cubic-bezier(.13, .82, .1, 1);
}
.rw-foco-pointer[b-jxcpzoqm5b] {
    position: absolute; top: -8px; left: 50%; transform: translateX(-50%);
    width: 0; height: 0; z-index: 3;
    border-left: 20px solid transparent; border-right: 20px solid transparent;
    border-top: 34px solid var(--danger, #DC2626);
    filter: drop-shadow(0 4px 8px rgba(0,0,0,.4));
}

/* --- Tarjetas modo foco: abanico completo con nombres, spotlight y flip de la ganadora --- */
.rw-foco-abanico[b-jxcpzoqm5b] {
    --rw-abanico-cols: 6;
    display: grid;
    grid-template-columns: repeat(var(--rw-abanico-cols), 1fr);
    gap: clamp(6px, 1.1vw, 14px);
    width: min(84vw, 76vh);
    max-height: min(64vh, 64vw);
    overflow: visible;
    place-items: center;
    perspective: 1200px;
}

.rw-foco-mini[b-jxcpzoqm5b] {
    position: relative;
    width: 100%; aspect-ratio: 3 / 4;
    border-radius: 12px;
    transform-style: preserve-3d;
    transition: transform .5s cubic-bezier(.2, 1, .3, 1), box-shadow .25s ease;
    box-shadow: 0 6px 16px rgba(0,0,0,.28);
}

/* Barajado: cada mini-carta se cruza/mezcla con stagger via --rw-mini-stagger (0..11). */
.rw-foco-abanico-riffle .rw-foco-mini[b-jxcpzoqm5b] {
    animation: rw-mini-riffle-b-jxcpzoqm5b .55s ease-in-out calc(var(--rw-mini-stagger) * 0.035s) 2;
}
@keyframes rw-mini-riffle-b-jxcpzoqm5b {
    0% { transform: translateY(0) rotate(0deg); }
    50% { transform: translateY(-14px) rotate(calc((var(--rw-mini-stagger) - 5.5) * 2.2deg)) translateX(calc((var(--rw-mini-stagger) - 5.5) * 3px)); }
    100% { transform: translateY(0) rotate(0deg); }
}

/* Spotlight: clase que agrega/quita JS al saltar de carta en carta (pizarron-sorteo.js). */
.rw-foco-mini.rw-foco-card--spot[b-jxcpzoqm5b] {
    transform: scale(1.14);
    z-index: 4;
    box-shadow: 0 0 0 3px #FFFFFF, 0 0 28px 6px var(--rw-mini-color, #6366F1), 0 10px 26px rgba(0,0,0,.4);
}

.rw-foco-mini-face[b-jxcpzoqm5b] {
    position: absolute; inset: 0; border-radius: 12px; backface-visibility: hidden;
    display: flex; align-items: center; justify-content: center;
    padding: 6%; box-sizing: border-box; text-align: center;
}
.rw-foco-mini-back[b-jxcpzoqm5b] {
    background: linear-gradient(135deg, var(--rw-mini-color, #6366F1), #1E2126 165%);
    color: rgba(255,255,255,.9);
}
.rw-foco-mini-back .material-symbols-rounded[b-jxcpzoqm5b] { font-size: clamp(16px, 2.4vw, 28px); opacity: .8; }
.rw-foco-mini-front[b-jxcpzoqm5b] {
    background: #FFFFFF; color: var(--carbon-1, #1E2126);
    transform: rotateY(180deg);
}
.rw-foco-mini-nombre[b-jxcpzoqm5b] { font-family: 'Fraunces', serif; font-weight: 700; line-height: 1.15; word-break: break-word; }
.rw-foco-mini-nombre-lg[b-jxcpzoqm5b] { font-size: clamp(11px, 1.7vw, 20px); }
.rw-foco-mini-nombre-md[b-jxcpzoqm5b] { font-size: clamp(9px, 1.3vw, 15px); }
.rw-foco-mini-nombre-sm[b-jxcpzoqm5b] { font-size: clamp(7.5px, 1vw, 12px); }

/* Revelacion: la ganadora hace flip 3D, crece y salta al frente (patron DadoWidget). */
.rw-foco-mini.ganadora[b-jxcpzoqm5b] {
    z-index: 8;
    transition: transform .6s cubic-bezier(.2, 1, .3, 1), box-shadow .3s ease;
}
.rw-foco-mini.flip[b-jxcpzoqm5b] {
    transform: scale(1.9) rotateY(180deg);
    box-shadow: 0 20px 50px rgba(0,0,0,.55);
}
.rw-foco-mini:not(.ganadora)[b-jxcpzoqm5b] {
    transition: opacity .35s ease, transform .35s ease;
}
.rw-foco-abanico-revelando .rw-foco-mini:not(.ganadora)[b-jxcpzoqm5b] {
    opacity: 0;
    pointer-events: none;
}

/* --- Boton de accion principal del modo foco --- */
.rw-foco-spin[b-jxcpzoqm5b] {
    border: none; cursor: pointer; border-radius: 999px; padding: 16px 36px;
    background: #FFFFFF; color: var(--rw-hub, #1E2126); font-weight: 800; font-size: 18px;
    display: inline-flex; align-items: center; gap: 10px; font-family: 'Figtree', sans-serif;
    box-shadow: 0 8px 24px rgba(0,0,0,.35); transition: transform .12s ease;
}
.rw-foco-spin:hover:not(:disabled)[b-jxcpzoqm5b] { transform: translateY(-2px) scale(1.03); }
.rw-foco-spin:disabled[b-jxcpzoqm5b] { opacity: .5; cursor: default; }
.rw-foco-spin .material-symbols-rounded[b-jxcpzoqm5b] { font-size: 24px; }

/* --- Celebración modo foco --- */
.rw-foco-celebra[b-jxcpzoqm5b] {
    position: absolute; inset: -6vh -6vw; z-index: 6;
    display: flex; align-items: center; justify-content: center;
    pointer-events: none;
}
.rw-foco-confeti[b-jxcpzoqm5b] { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.rw-foco-celebra-card[b-jxcpzoqm5b] {
    position: relative; z-index: 2; text-align: center; padding: 24px;
    display: flex; flex-direction: column; align-items: center; gap: 18px;
    pointer-events: auto;
    animation: rw-foco-pop-b-jxcpzoqm5b .5s cubic-bezier(.2, 1.4, .35, 1);
}
@keyframes rw-foco-pop-b-jxcpzoqm5b { from { transform: scale(.55); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.rw-foco-label[b-jxcpzoqm5b] { font-size: 16px; font-weight: 800; letter-spacing: 3px; text-transform: uppercase; color: #F59E0B; text-shadow: 0 2px 10px rgba(0,0,0,.5); }
.rw-foco-nombre[b-jxcpzoqm5b] {
    font-family: 'Fraunces', serif; font-weight: 700; color: #FFFFFF;
    font-size: clamp(36px, 8vw, 96px); line-height: 1.05; max-width: 90vw;
    text-shadow: 0 6px 24px rgba(0,0,0,.55);
}
.rw-foco-actions[b-jxcpzoqm5b] { display: flex; gap: 12px; margin-top: 4px; }

@media (max-width: 640px) {
    .rw-foco[b-jxcpzoqm5b] { gap: 18px; }
    .rw-foco-close[b-jxcpzoqm5b], .rw-foco-mute[b-jxcpzoqm5b] { width: 38px; height: 38px; }
    .rw-foco-spin[b-jxcpzoqm5b] { padding: 13px 26px; font-size: 15px; }
}

@media (prefers-reduced-motion: reduce) {
    .rw-card.shuffling[b-jxcpzoqm5b], .rw-foco-wheel[b-jxcpzoqm5b], .rw-foco-mini[b-jxcpzoqm5b], .rw-foco-abanico-riffle .rw-foco-mini[b-jxcpzoqm5b] {
        animation: none !important; transition: opacity .3s linear, transform .3s linear !important;
    }
}
/* /Components/Widgets/RelojWidget.razor.rz.scp.css */
/* === RelojWidget — arquitectura de escalado por container queries ===
   El wrapper .rw-root es el "contenedor de tamaño" (container-type: size):
   TODA tipografia/grosor/padding interior usa cqw/cqmin/cqh, nunca vw/vh ni px fijos.
   Esto hace que el widget escale 100% con su propio tamano (editor redimensionable
   de 10% a 100% del canvas, y fullscreen en presentacion) sin depender de AltoPx
   (que solo se usa como heuristica inicial en C#, ver comentario en RelojWidget.razor). */

.rw-root[b-g9522496vu] {
    container-type: size;
    container-name: rw;
    /* --- Knobs S2 (afinar en runtime): el lienzo aplica ZOOM y las unidades cq
       resuelven sobre el content-box de LAYOUT, no el visual. Ajustar aqui, no
       en las reglas de abajo. --- */
    --rw-pad: 1.8cqmin;                    /* respiracion minima al borde de la card */
    --rw-gap: 1cqmin;                      /* aire caratula <-> digital */
    --rw-analog-size: min(102cqw, 88cqh);  /* diametro caja SVG de la caratula; el aro ocupa ~93.6% de la caja, por eso puede pasar de 100cqw sin recortar el circulo. flex-shrink + preserveAspectRatio amortiguan si topa. */
    --rw-digital-escala: 15cqmin;          /* digital protagonista (modo solo-digital) */
    --rw-digital-escala-mix: 10.5cqmin;    /* digital compacto bajo la caratula */
    width: 100%;
    height: 100%;
    background: linear-gradient(155deg, color-mix(in srgb, var(--bg) 100%, transparent) 0%, color-mix(in srgb, var(--bg) 92%, var(--text) 8%) 100%);
    color: var(--text);
    border-radius: 12px;
    padding: var(--rw-pad);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--rw-gap);
    box-sizing: border-box;
    overflow: hidden;
    position: relative;
}

/* Fallback para navegadores sin soporte de container queries (raro en 2026):
   se conserva un layout razonable basado en flex, sin escalado fino. */
@supports not (container-type: size) {
    .rw-root[b-g9522496vu] { padding: 12px; gap: 10px; }
}

.rw-analog[b-g9522496vu] {
    width: var(--rw-analog-size);
    aspect-ratio: 1;
    flex-shrink: 1;
    min-height: 0;
    filter: drop-shadow(0 0.6cqmin 1.4cqmin rgba(0, 0, 0, 0.18));
}

.rw-face-bg[b-g9522496vu] {
    fill: color-mix(in srgb, var(--bg) 100%, transparent);
}

.rw-tick-hour[b-g9522496vu] {
    stroke: var(--text);
    opacity: 0.55;
}

.rw-tick-minute[b-g9522496vu] {
    stroke: var(--text);
    opacity: 0.22;
}

.rw-hand-hour[b-g9522496vu] {
    stroke: var(--text);
    stroke-linecap: round;
}

.rw-hand-minute[b-g9522496vu] {
    stroke: var(--text);
    stroke-linecap: round;
    opacity: 0.92;
}

.rw-hand-second[b-g9522496vu] {
    stroke: var(--accent);
    stroke-linecap: round;
    transition: transform 0.18s cubic-bezier(0.4, 2.2, 0.6, 1);
}

.rw-pivot-outer[b-g9522496vu] {
    fill: var(--text);
}

.rw-pivot-inner[b-g9522496vu] {
    fill: var(--accent);
}

.rw-index-label[b-g9522496vu] {
    fill: var(--text);
    font-family: var(--font-sans, 'Figtree', sans-serif);
    font-weight: 600;
    opacity: 0.8;
}

/* === Digital ===
   El tamano vive en el CONTENEDOR (.rw-digital) y los hijos usan em: una sola
   perilla mueve toda la fila (digitos + colon + meridiano) sin desincronizarse. */
.rw-digital[b-g9522496vu] {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 1.2cqmin;
    flex-wrap: wrap;
    line-height: 1;
    flex-shrink: 0;
    font-size: clamp(16px, var(--rw-digital-escala), 300px);
}

/* Con la caratula visible el digital cede protagonismo y se compacta pegado a
   ella: la caratula toma casi toda la altura y muere la franja vacia de abajo.
   (Clase puesta por markup en vez de :has(): el rewriter de CSS scoped de
   Blazor no garantiza selectores con argumento y fallaria en silencio.) */
.rw-root.rw-con-analog .rw-digital[b-g9522496vu] {
    font-size: clamp(13px, var(--rw-digital-escala-mix), 220px);
}

.rw-time-main[b-g9522496vu] {
    font-family: var(--font-mono, 'JetBrains Mono', monospace);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    font-size: 1em;
    letter-spacing: 0.01em;
    color: var(--text);
}

.rw-colon[b-g9522496vu] {
    font-family: var(--font-mono, 'JetBrains Mono', monospace);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    font-size: 1em;
    color: var(--accent);
    animation: rw-colon-blink-b-g9522496vu 1s steps(1, end) infinite;
}

.rw-meridiem[b-g9522496vu] {
    font-family: var(--font-sans, 'Figtree', sans-serif);
    font-weight: 600;
    font-size: max(9px, 0.42em);
    color: var(--accent);
    align-self: center;
    opacity: 0.9;
}

.rw-caption[b-g9522496vu] {
    font-family: var(--font-sans, 'Figtree', sans-serif);
    font-weight: 500;
    font-size: clamp(8px, 4.2cqmin, 60px);
    color: var(--text);
    opacity: 0.62;
    text-transform: capitalize;
    letter-spacing: 0.02em;
}

@keyframes rw-colon-blink-b-g9522496vu {
    0%, 45% { opacity: 1; }
    50%, 95% { opacity: 0.25; }
    100% { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    .rw-colon[b-g9522496vu] { animation: none; opacity: 1; }
    .rw-hand-second[b-g9522496vu] { transition: none; }
}

/* === Badge de alarma ===
   Overlay superior (no participa en el flujo): la caratula y el digital ya no
   le reservan altura. La franja alta es la zona menos densa de ambos modos
   (arriba del aro solo hay ticks; en solo-digital la fila esta centrada). */
.rw-badge[b-g9522496vu] {
    position: absolute;
    top: max(3px, 1.2cqmin);
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
    width: max-content;
    background: var(--accent);
    color: #fff;
    padding: 1.6cqmin 3.2cqmin;
    border-radius: 999px;
    font-size: clamp(9px, 4.6cqmin, 15px);
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    gap: 1.4cqmin;
    cursor: default;
    white-space: nowrap;
    box-shadow: var(--pz-shadow-soft, 0 1px 2px rgba(20, 22, 25, 0.04), 0 4px 12px rgba(20, 22, 25, 0.06));
    max-width: 92%;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rw-badge svg[b-g9522496vu] {
    width: clamp(10px, 4cqmin, 16px);
    height: clamp(10px, 4cqmin, 16px);
    flex-shrink: 0;
}

.rw-badge.ringing[b-g9522496vu] {
    background: var(--danger, #A32D2D);
    animation: rw-blink-b-g9522496vu 0.7s infinite;
    cursor: pointer;
}

.rw-badge.ringing svg[b-g9522496vu] {
    animation: rw-shake-b-g9522496vu 0.6s infinite;
}

@keyframes rw-blink-b-g9522496vu {
    0%, 50% { opacity: 1; }
    51%, 100% { opacity: 0.55; }
}

@keyframes rw-shake-b-g9522496vu {
    0%, 100% { transform: rotate(0deg); }
    25% { transform: rotate(-15deg); }
    75% { transform: rotate(15deg); }
}

@media (prefers-reduced-motion: reduce) {
    .rw-badge.ringing[b-g9522496vu] { animation: none; }
    .rw-badge.ringing svg[b-g9522496vu] { animation: none; }
}
/* /Components/Widgets/RuidometroWidget.razor.rz.scp.css */
.rd-root[b-ryxa8warws] {
    --nivel: 0;
    position: relative;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    border-radius: 16px;
    overflow: hidden;
    background: var(--carbon-1, #1E2126);
    box-shadow: var(--pz-shadow-soft);
    font-family: var(--font-sans, 'Figtree', sans-serif);
    color: #F4F0E6;
    display: flex;
    flex-direction: column;
    /* Tinte sutil del fondo hacia la zona activa */
    transition: background 0.5s ease;
}

.rd-root.zona-verde[b-ryxa8warws] { background: color-mix(in srgb, var(--success) 12%, var(--carbon-1, #1E2126)); }
.rd-root.zona-ambar[b-ryxa8warws] { background: color-mix(in srgb, var(--warning) 15%, var(--carbon-1, #1E2126)); }
.rd-root.zona-rojo[b-ryxa8warws] { background: color-mix(in srgb, var(--danger) 18%, var(--carbon-1, #1E2126)); }

/* Shake sutil cuando esta en rojo */
.rd-root.zona-rojo .rd-live[b-ryxa8warws] { animation: rd-shake-b-ryxa8warws 0.5s ease-in-out infinite; }

/* Flash del borde al disparar alarma (rojo sostenido reinicia la racha) */
.rd-root.racha-reset[b-ryxa8warws] { animation: rd-flash-b-ryxa8warws 0.7s ease-out; }

/* ===== Estado activo ===== */
.rd-live[b-ryxa8warws] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3%;
    height: 100%;
    padding: 7% 6% 6%;
    box-sizing: border-box;
}

/* Carita: protagonista, ocupa el grueso vertical */
.rd-live > :global(.cr-root)[b-ryxa8warws] {
    flex: 1 1 auto;
    min-height: 0;
    width: 62%;
    max-width: 180px;
}

/* Medidor: barra vertical delgada a la derecha, superpuesta */
.rd-medidor[b-ryxa8warws] {
    position: absolute;
    top: 8%;
    right: 6%;
    bottom: 24%;
    width: 13%;
    max-width: 34px;
    min-width: 16px;
}

.rd-barra[b-ryxa8warws] {
    position: relative;
    width: 100%;
    height: 100%;
    border-radius: 999px;
    overflow: hidden;
    background: rgba(0, 0, 0, 0.28);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}

/* Zonas de fondo del medidor (apiladas de abajo hacia arriba) */
.rd-zona-verde[b-ryxa8warws], .rd-zona-ambar[b-ryxa8warws], .rd-zona-rojo[b-ryxa8warws] {
    position: absolute;
    left: 0;
    right: 0;
    opacity: 0.32;
}
.rd-zona-verde[b-ryxa8warws] { bottom: 0; height: 57%; background: var(--success); }
.rd-zona-ambar[b-ryxa8warws] { bottom: 57%; height: 18%; background: var(--warning); }
.rd-zona-rojo[b-ryxa8warws] { bottom: 75%; height: 25%; background: var(--danger); }

/* Fill que sube con --nivel (0..1). Transicion corta = fluido pero no nervioso */
.rd-fill[b-ryxa8warws] {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: calc(var(--nivel) * 100%);
    background: linear-gradient(to top,
        var(--success) 0%,
        var(--success) 55%,
        var(--warning) 72%,
        var(--danger) 90%);
    border-radius: 999px;
    transition: height 0.09s linear;
    box-shadow: 0 0 12px 2px rgba(255, 255, 255, 0.12);
}

.rd-marca-umbral[b-ryxa8warws] {
    position: absolute;
    left: -2px;
    right: -2px;
    height: 2px;
    background: #F4F0E6;
    opacity: 0.7;
    box-shadow: 0 0 4px rgba(0, 0, 0, 0.4);
}

/* ===== Racha ===== */
.rd-racha[b-ryxa8warws] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    flex: 0 0 auto;
    text-align: center;
    line-height: 1.1;
}

.rd-racha-actual[b-ryxa8warws] {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: clamp(11px, 3.2vh, 16px);
    font-weight: 600;
}
.rd-racha-actual b[b-ryxa8warws] { font-variant-numeric: tabular-nums; }

.rd-record[b-ryxa8warws] {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: clamp(9px, 2.4vh, 13px);
    opacity: 0.85;
}
.rd-record b[b-ryxa8warws] { font-variant-numeric: tabular-nums; }

.rd-racha-ico[b-ryxa8warws] { color: var(--success); font-size: 18px; }
.rd-record-ico[b-ryxa8warws] { color: var(--warning); font-size: 15px; }

.rd-stop[b-ryxa8warws] {
    position: absolute;
    top: 6px;
    right: 6px;
    width: 30px;
    height: 30px;
    border: none;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.35);
    color: #F4F0E6;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    opacity: 0.55;
    transition: opacity 0.2s ease, background 0.2s ease;
    z-index: 3;
}
.rd-stop:hover[b-ryxa8warws] { opacity: 1; background: rgba(0, 0, 0, 0.5); }
.rd-stop .material-symbols-rounded[b-ryxa8warws] { font-size: 18px; }

/* ===== Overlay de estados (detenido/permiso/error) ===== */
.rd-overlay[b-ryxa8warws] {
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 8% 10%;
    box-sizing: border-box;
    text-align: center;
}

.rd-ov-icon[b-ryxa8warws] {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.08);
}
.rd-ov-icon .material-symbols-rounded[b-ryxa8warws] { font-size: 30px; color: #F4F0E6; }

.rd-ov-title[b-ryxa8warws] {
    font-size: clamp(14px, 4vh, 20px);
    font-weight: 700;
    font-family: var(--font-serif, 'Fraunces', serif);
}

.rd-ov-hint[b-ryxa8warws] {
    font-size: clamp(11px, 2.8vh, 14px);
    opacity: 0.78;
    line-height: 1.3;
    max-width: 24ch;
}

.rd-cta[b-ryxa8warws] {
    margin-top: 4px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 18px;
    border: none;
    border-radius: 999px;
    background: var(--brand-teal, #1F8A8A);
    color: #fff;
    font-weight: 600;
    font-size: clamp(12px, 3vh, 15px);
    font-family: var(--font-sans, 'Figtree', sans-serif);
    cursor: pointer;
    transition: transform 0.15s ease, filter 0.2s ease;
}
.rd-cta:hover[b-ryxa8warws] { transform: translateY(-1px); filter: brightness(1.08); }
.rd-cta .material-symbols-rounded[b-ryxa8warws] { font-size: 20px; }

.rd-cta-go[b-ryxa8warws] { background: var(--success); }

.estado-denegado .rd-ov-icon[b-ryxa8warws],
.estado-sin-dispositivo .rd-ov-icon[b-ryxa8warws],
.estado-error .rd-ov-icon[b-ryxa8warws] { background: color-mix(in srgb, var(--danger) 30%, transparent); }

/* Animaciones */
.rd-ov-spin .material-symbols-rounded[b-ryxa8warws] { animation: rd-pulse-b-ryxa8warws 1.1s ease-in-out infinite; }
.rd-ov-wave .material-symbols-rounded[b-ryxa8warws] { animation: rd-pulse-b-ryxa8warws 1.6s ease-in-out infinite; }

@keyframes rd-pulse-b-ryxa8warws {
    0%, 100% { opacity: 0.55; transform: scale(0.94); }
    50% { opacity: 1; transform: scale(1.06); }
}

@keyframes rd-shake-b-ryxa8warws {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-2px); }
    75% { transform: translateX(2px); }
}

@keyframes rd-flash-b-ryxa8warws {
    0% { box-shadow: var(--pz-shadow-soft), inset 0 0 0 4px var(--danger); }
    100% { box-shadow: var(--pz-shadow-soft), inset 0 0 0 0 transparent; }
}

@media (prefers-reduced-motion: reduce) {
    .rd-root.zona-rojo .rd-live[b-ryxa8warws] { animation: none; }
    .rd-ov-spin .material-symbols-rounded[b-ryxa8warws],
    .rd-ov-wave .material-symbols-rounded[b-ryxa8warws] { animation: none; }
    .rd-fill[b-ryxa8warws] { transition: height 0.2s linear; }
}
/* /Components/Widgets/ScoreboardWidget.razor.rz.scp.css */
/* Scoreboard: marcador de competencia proyectada. Escala con el tamano REAL del
   widget via container queries (patron Dado/Reloj: container-type: size en el root,
   unidades cq* SOLO en descendientes — en el propio contenedor resolverian contra
   un ancestro, no contra si mismo). Digitos en --font-mono + tabular-nums: mismo
   lenguaje numerico que Reloj/Timer/Dado, y el pop no baila de ancho. */

.sb-root[b-4s4in2v09p] {
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 12px;
    background: var(--carbon-2, #1E2126);
    border-radius: 14px;
    box-shadow: var(--pz-shadow-soft);
    overflow: auto;
}

.sb-fila[b-4s4in2v09p] {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: center;
    gap: 10px;
    width: 100%;
}

.sb-card[b-4s4in2v09p] {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    flex: 1 1 120px;
    max-width: 190px;
    min-width: 100px;
    padding: 12px 10px 10px;
    border-radius: 12px;
    background: var(--carbon-1, #141619);
    border: 1.5px solid color-mix(in srgb, var(--cream, #F4F0E6) 8%, transparent);
    /* Transicion del glow/borde al cambiar de lider (250ms, sutil). */
    transition: box-shadow 0.25s ease, border-color 0.25s ease;
}

.sb-card.sb-lider[b-4s4in2v09p] {
    border-color: var(--sb-color, var(--brand-teal));
    box-shadow: 0 0 0 1px var(--sb-color, var(--brand-teal)),
                0 0 18px -2px var(--sb-color, var(--brand-teal));
}

.sb-trofeo[b-4s4in2v09p] {
    position: absolute;
    /* Offsets/padding en em: siguen al font-size del trofeo en cualquier escala. */
    top: -0.5em;
    right: -0.3em;
    font-size: 20px;
    color: var(--sb-color, var(--brand-teal));
    background: var(--carbon-1, #141619);
    border-radius: 50%;
    padding: 0.1em;
}

.sb-nombre[b-4s4in2v09p] {
    font-family: var(--font-sans, 'Figtree', sans-serif);
    font-weight: 600;
    font-size: clamp(11px, 2.6vh, 14px); /* fallback; cqmin abajo */
    color: var(--cream, #F4F0E6);
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-align: center;
}

.sb-puntos[b-4s4in2v09p] {
    font-family: var(--font-mono, 'JetBrains Mono', monospace);
    font-weight: 600; /* JetBrains Mono carga 400/500/600 (index.html); 600 = Reloj/Timer */
    font-variant-numeric: tabular-nums;
    font-size: clamp(28px, 8vh, 52px); /* fallback; cqmin sin tope abajo */
    line-height: 1;
    color: var(--sb-color, var(--brand-teal));
    letter-spacing: -0.01em;
}

.sb-puntos.sb-pop[b-4s4in2v09p] {
    animation: sb-pop-anim-b-4s4in2v09p 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes sb-pop-anim-b-4s4in2v09p {
    0% { transform: scale(1); }
    40% { transform: scale(1.35); }
    100% { transform: scale(1); }
}

.sb-botones[b-4s4in2v09p] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 2px;
}

.sb-btn[b-4s4in2v09p] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border: none;
    border-radius: 50%;
    background: color-mix(in srgb, var(--cream, #F4F0E6) 10%, transparent);
    color: var(--cream, #F4F0E6);
    cursor: pointer;
    transition: transform 0.15s ease, background 0.2s ease;
}
.sb-btn:hover:not(:disabled)[b-4s4in2v09p] {
    background: color-mix(in srgb, var(--cream, #F4F0E6) 18%, transparent);
    transform: translateY(-1px);
}
.sb-btn:active:not(:disabled)[b-4s4in2v09p] {
    transform: translateY(0) scale(0.96);
}
.sb-btn:focus-visible[b-4s4in2v09p] {
    outline: 2px solid var(--brand-teal, #6DC7D0);
    outline-offset: 2px;
}
.sb-btn:disabled[b-4s4in2v09p] {
    opacity: 0.35;
    cursor: not-allowed;
}
.sb-btn .material-symbols-rounded[b-4s4in2v09p] { font-size: 18px; }

.sb-btn-mas[b-4s4in2v09p] {
    background: var(--sb-color, var(--brand-teal));
    color: var(--carbon-1, #141619);
}
.sb-btn-mas:hover[b-4s4in2v09p] { filter: brightness(1.1); }

.sb-reset[b-4s4in2v09p] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 16px;
    border: 1px solid color-mix(in srgb, var(--cream, #F4F0E6) 16%, transparent);
    border-radius: 999px;
    background: transparent;
    color: color-mix(in srgb, var(--cream, #F4F0E6) 80%, var(--carbon-2, #1E2126));
    font-family: var(--font-sans, 'Figtree', sans-serif);
    font-weight: 600;
    font-size: clamp(11px, 2.4vh, 13px); /* fallback; cqmin abajo */
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease;
}
.sb-reset:hover[b-4s4in2v09p] {
    background: color-mix(in srgb, var(--danger, #A32D2D) 16%, transparent);
    color: var(--danger, #A32D2D);
}
.sb-reset:focus-visible[b-4s4in2v09p] {
    outline: 2px solid var(--brand-teal, #6DC7D0);
    outline-offset: 2px;
}
.sb-reset .material-symbols-rounded[b-4s4in2v09p] { font-size: 16px; }

/* === Escalado con el contenedor real ==================================== */
@supports (container-type: size) {
    .sb-root[b-4s4in2v09p] {
        container-type: size;
        /* El contenedor NO usa cq*: % resuelve contra el padre (mismo tamano). */
        padding: max(10px, 2.5%);
        gap: max(8px, 2%);
    }

    .sb-fila[b-4s4in2v09p] { gap: max(8px, 2.5cqmin); }

    .sb-card[b-4s4in2v09p] {
        /* Basis proporcional al ancho real: ~3 cards por fila con 6 equipos,
           crecen a llenar con 2-3; el numero cqmin no desborda el card. */
        flex-basis: 24cqw;
        min-width: min(100px, 30cqw);
        max-width: 46cqw;
        gap: max(3px, 1.2cqmin);
        padding: max(9px, 3cqmin) max(7px, 2.4cqmin) max(7px, 2.4cqmin);
        border-radius: max(10px, 2.6cqmin);
        border-width: max(1.5px, 0.35cqmin);
    }
    .sb-card.sb-lider[b-4s4in2v09p] {
        box-shadow: 0 0 0 max(1px, 0.35cqmin) var(--sb-color, var(--brand-teal)),
                    0 0 max(18px, 7cqmin) calc(-1 * max(2px, 0.8cqmin)) var(--sb-color, var(--brand-teal));
    }

    .sb-trofeo[b-4s4in2v09p] { font-size: max(18px, 7cqmin); }
    .sb-nombre[b-4s4in2v09p] { font-size: max(11px, 6cqmin); }
    /* Sin tope px: el marcador ES el heroe proyectado, legible desde el fondo. */
    .sb-puntos[b-4s4in2v09p] { font-size: max(28px, 26cqmin); }

    .sb-botones[b-4s4in2v09p] {
        gap: max(6px, 2.2cqmin);
        margin-top: max(2px, 0.8cqmin);
    }
    .sb-btn[b-4s4in2v09p] {
        width: max(26px, 8cqmin);
        height: max(26px, 8cqmin);
    }
    .sb-btn .material-symbols-rounded[b-4s4in2v09p] { font-size: max(16px, 5cqmin); }

    .sb-reset[b-4s4in2v09p] {
        gap: max(4px, 1.4cqmin);
        padding: max(6px, 1.8cqmin) max(13px, 4.5cqmin);
        font-size: max(11px, 4cqmin);
    }
    .sb-reset .material-symbols-rounded[b-4s4in2v09p] { font-size: max(14px, 4.5cqmin); }
}

/* === Fallback sin container queries: conserva los px/media previos ======= */
@supports not (container-type: size) {
    @media (max-width: 560px) {
        .sb-card[b-4s4in2v09p] { flex: 1 1 90px; padding: 9px 6px 8px; }
        .sb-puntos[b-4s4in2v09p] { font-size: clamp(22px, 7vh, 36px); }
        .sb-nombre[b-4s4in2v09p] { font-size: 11px; }
        .sb-btn[b-4s4in2v09p] { width: 26px; height: 26px; }
        .sb-reset[b-4s4in2v09p] { padding: 6px 12px; font-size: 11px; }
    }
}

@media (prefers-reduced-motion: reduce) {
    .sb-puntos.sb-pop[b-4s4in2v09p] { animation: none; }
    .sb-card[b-4s4in2v09p] { transition: none; } /* cubre tambien la transicion del glow lider */
    .sb-btn[b-4s4in2v09p] { transition: none; }
    .sb-btn:hover:not(:disabled)[b-4s4in2v09p],
    .sb-btn:active:not(:disabled)[b-4s4in2v09p] { transform: none; }
    .sb-reset[b-4s4in2v09p] { transition: none; }
}
/* /Components/Widgets/SemaforoWidget.razor.rz.scp.css */
/* === SemaforoWidget v2 — "aviso de permisos" premium ==================
   Rediseno (feedback owner): la card deja de ser un slab negro. Ahora es una
   card CLARA de la familia (blanco -> crema, sombra suave, borde --border-soft,
   mismo lenguaje que Reloj/Timer) con:
     - housing oscuro COMPACTO (pill carbon) que conserva la metafora semaforo
       (3 lentes apiladas, glow rico en la activa, apagadas discretas), y
     - la ETIQUETA ACTIVA como protagonista: Fraunces bold, color del estado
       (mezclado a AA sobre fondo claro), legible desde el fondo del salon.

   Layout ADAPTATIVO por proporcion del contenedor:
     - alto (default): housing arriba, etiqueta abajo;
     - ancho (aspect >= 6/5): housing vertical a la IZQUIERDA + etiqueta grande
       a la derecha (letrero de puerta). El switch vive en .sw-lay (descendiente)
       porque @container NO puede re-estilar al propio contenedor (.sw-root).

   Arquitectura de escalado (patron Reloj/Dado/Scoreboard): container-type: size
   en .sw-root dentro de @supports; unidades cq* SOLO en descendientes; pisos
   max(px, cq*). El root se mide en px/% (cq* ahi resolveria contra un ancestro).

   GOTCHA lienzo (LEC-G146 + memoria de sesion): el canvas aplica ZOOM y las cq
   resuelven sobre el tamano de LAYOUT, no el visual; y los min(cqh, cqw) pueden
   topar antes de lo esperado. Por eso los tamanos protagonistas quedan detras
   de KNOBS para iterar midiendo en runtime (se pueden fijar desde fuera, p.ej.
   en .w-semaforo-host o inline en el host):
     --sf-escala-luz       multiplica el diametro de las luces (default 1)
     --sf-escala-etiqueta  multiplica el font de la etiqueta activa (default 1)
   El corte vertical/horizontal es literal en el @container de abajo
   (min-aspect-ratio: 6/5) — no puede ser variable; se ajusta editando ese bloque. */

.sw-root[b-7riidgygdw] {
    /* KNOBS --sf-escala-luz / --sf-escala-etiqueta: a proposito NO se declaran
       aqui — se consumen con var(--sf-*, 1) para que un override desde fuera
       (.w-semaforo-host, inline style del host) HEREDE sin que este root lo pise. */
    /* medidas base (fallback sin container queries; los @container las pisan) */
    --sw-luz-d: 34px;
    --sw-housing-pad: 9px;
    --sw-housing-gap: 8px;
    --sw-etiqueta-fs: clamp(15px, 3.4vh, 26px);
    --sw-estado-color: var(--success, #1D9E75);

    position: relative;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    /* padding/radius del root en px (no cq: es el contenedor, criterio Dado/
       Encuesta; y no %: el % vertical resuelve contra el ANCHO y en banners
       anchos se comeria la altura). El zoom del lienzo escala px parejo. */
    padding: 12px 14px;
    background: linear-gradient(160deg, var(--bg-panel, #FFFFFF) 0%, var(--cream, #F4F0E6) 100%);
    border: 1px solid var(--border-soft, #E8E4DD);
    border-radius: 14px;
    box-shadow: var(--pz-shadow-soft);
    overflow: hidden;
    cursor: pointer;
    transition: box-shadow 0.2s ease;
}

/* Lavado sutil del color del estado sobre la card: capa aparte porque los
   gradientes no interpolan — background-color de un ::before SI transiciona
   suave al cambiar --sw-estado-color (250ms). */
.sw-root[b-7riidgygdw]::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: var(--sw-estado-color);
    opacity: 0.07;
    pointer-events: none;
    transition: background-color 0.25s ease;
}

.sw-root:hover[b-7riidgygdw] {
    box-shadow: var(--pz-shadow-pop, 0 2px 4px rgba(20, 22, 25, 0.05), 0 8px 24px rgba(20, 22, 25, 0.08));
}

.sw-estado-verde[b-7riidgygdw]    { --sw-estado-color: var(--success, #1D9E75); }
.sw-estado-amarillo[b-7riidgygdw] { --sw-estado-color: var(--warning, #BA7517); }
.sw-estado-rojo[b-7riidgygdw]     { --sw-estado-color: var(--danger, #A32D2D); }

/* Wrapper de layout: aqui vive el switch vertical/horizontal (es descendiente
   del container, asi que los @container SI le aplican). */
.sw-lay[b-7riidgygdw] {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
}

/* Housing: pill carbon compacto — conserva la metafora sin oscurecer la card. */
.sw-housing[b-7riidgygdw] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    gap: var(--sw-housing-gap);
    padding: var(--sw-housing-pad);
    background: linear-gradient(180deg, var(--carbon-2, #1E2126) 0%, var(--carbon-1, #141619) 100%);
    border-radius: 999px;
    box-shadow:
        inset 0 1px 0 color-mix(in srgb, var(--cream, #F4F0E6) 14%, transparent),
        0 3px 12px color-mix(in srgb, var(--carbon-1, #141619) 28%, transparent);
}

/* Luz apagada: su color al 26% sobre el carbon (se lee "semaforo" aun apagada)
   con bisel embutido. Diametro = base * knob. */
.sw-luz[b-7riidgygdw] {
    --sw-color: var(--success, #1D9E75);
    --sw-glow-blur: 16px;
    --sw-glow-spread: 4px;
    width: calc(var(--sw-luz-d) * var(--sf-escala-luz, 1));
    height: calc(var(--sw-luz-d) * var(--sf-escala-luz, 1));
    flex: 0 0 auto;
    border-radius: 50%;
    border: none;
    padding: 0;
    cursor: pointer;
    background: color-mix(in srgb, var(--sw-color) 26%, var(--carbon-1, #141619));
    box-shadow:
        inset 0 2px 4px color-mix(in srgb, var(--carbon-1, #141619) 60%, transparent),
        inset 0 -1px 2px color-mix(in srgb, var(--cream, #F4F0E6) 8%, transparent);
    transition: background-color 0.2s ease, box-shadow 0.25s ease, transform 0.15s ease;
}

.sw-verde[b-7riidgygdw]    { --sw-color: var(--success, #1D9E75); }
.sw-amarillo[b-7riidgygdw] { --sw-color: var(--warning, #BA7517); }
.sw-rojo[b-7riidgygdw]     { --sw-color: var(--danger, #A32D2D); }

.sw-luz:hover[b-7riidgygdw] {
    background: color-mix(in srgb, var(--sw-color) 44%, var(--carbon-1, #141619));
    transform: scale(1.05);
}

.sw-luz:focus-visible[b-7riidgygdw] {
    outline: 2px solid var(--brand-teal, #6DC7D0);
    outline-offset: 2px;
}

/* .activa DESPUES de :hover a proposito: a igual especificidad gana el orden
   y la luz encendida no se atenua al pasar el mouse. Lente "vidrio": brillo
   especular arriba-izquierda + glow doble (halo cerrado + difuso). */
.sw-luz.activa[b-7riidgygdw] {
    background: radial-gradient(circle at 32% 28%,
        color-mix(in srgb, var(--cream, #F4F0E6) 45%, var(--sw-color)) 0%,
        var(--sw-color) 52%,
        color-mix(in srgb, var(--sw-color) 72%, var(--carbon-1, #141619)) 100%);
    transform: scale(1.06);
    box-shadow:
        inset 0 1px 2px color-mix(in srgb, var(--cream, #F4F0E6) 30%, transparent),
        0 0 4px 1px color-mix(in srgb, var(--sw-color) 80%, transparent),
        0 0 var(--sw-glow-blur) var(--sw-glow-spread) color-mix(in srgb, var(--sw-color) 55%, transparent);
    animation: sw-pulso-b-7riidgygdw 0.22s ease-out;
}

/* Micro-pulso al encender: .activa solo se agrega a la luz que cambia, asi que
   no se re-dispara en re-renders del resto del widget. */
@keyframes sw-pulso-b-7riidgygdw {
    0%   { transform: scale(1); }
    60%  { transform: scale(1.1); }
    100% { transform: scale(1.06); }
}

/* === Etiqueta activa: LA protagonista ================================== */
.sw-etiqueta[b-7riidgygdw] {
    flex: 0 1 auto;
    min-width: 0;
    max-width: 100%;
    font-family: var(--font-serif, 'Fraunces', Georgia, serif);
    font-weight: 600;
    font-size: calc(var(--sw-etiqueta-fs) * var(--sf-escala-etiqueta, 1));
    line-height: 1.08;
    letter-spacing: -0.015em;
    text-align: center;
    text-wrap: balance;
    overflow-wrap: break-word;
    color: var(--text-primary, #1A1C1F);
    transition: color 0.25s ease;
}

/* Color por estado mezclado hacia carbon hasta contraste AA sobre la card
   clara (H3: medido con el tinte ::before el 75/78 previo quedaba en ~4.3:1;
   bajar el mix a 70/74 sube el contraste a ~4.5:1 AA estricto — rojo ya pasa puro). */
.sw-etiqueta-verde[b-7riidgygdw] {
    color: color-mix(in srgb, var(--success, #1D9E75) 70%, var(--carbon-1, #141619));
    animation: sw-et-in-v-b-7riidgygdw 0.22s ease-out;
}
.sw-etiqueta-amarillo[b-7riidgygdw] {
    color: color-mix(in srgb, var(--warning, #BA7517) 74%, var(--carbon-1, #141619));
    animation: sw-et-in-a-b-7riidgygdw 0.22s ease-out;
}
.sw-etiqueta-rojo[b-7riidgygdw] {
    color: var(--danger, #A32D2D);
    animation: sw-et-in-r-b-7riidgygdw 0.22s ease-out;
}

/* 3 keyframes IDENTICOS a proposito: el animation-name distinto por estado hace
   que la entrada se re-dispare al cambiar la clase (con el mismo nombre el
   navegador no reinicia la animacion). */
@keyframes sw-et-in-v-b-7riidgygdw { from { opacity: 0; transform: translateY(14%); } to { opacity: 1; transform: none; } }
@keyframes sw-et-in-a-b-7riidgygdw { from { opacity: 0; transform: translateY(14%); } to { opacity: 1; transform: none; } }
@keyframes sw-et-in-r-b-7riidgygdw { from { opacity: 0; transform: translateY(14%); } to { opacity: 1; transform: none; } }

/* === Escalado real por container queries =============================== */
@supports (container-type: size) {
    .sw-root[b-7riidgygdw] { container-type: size; }

    .sw-lay[b-7riidgygdw] { gap: max(10px, 3.5cqmin); }

    /* VERTICAL (default, caja alta): semaforo arriba, etiqueta abajo.
       El torso debe LLENAR la card (es el modo por defecto y se proyecta en el
       salon): las luces toman ~20cqh cada una -> housing ~2/3 del alto, etiqueta
       grande debajo. El tope por cqw evita que en cajas MUY angostas la luz se
       salga de ancho (el min() elige el limite que muerda primero). */
    .sw-luz[b-7riidgygdw] {
        --sw-luz-d: max(24px, min(20cqh, 40cqw));
        --sw-glow-blur: max(14px, 8cqmin);
        --sw-glow-spread: max(3px, 2cqmin);
    }

    .sw-housing[b-7riidgygdw] {
        --sw-housing-pad: max(7px, 2.6cqmin);
        --sw-housing-gap: max(6px, 2cqmin);
    }

    .sw-etiqueta[b-7riidgygdw] { --sw-etiqueta-fs: max(16px, min(15cqw, 11cqh)); }

    /* Sin etiqueta (MostrarEtiquetas = false): el housing es hijo unico y las
       luces respiran mas grandes. */
    .sw-housing:only-child .sw-luz[b-7riidgygdw] { --sw-luz-d: max(26px, min(26cqh, 48cqw)); }

    /* CAJA BAJA (el resize del lienzo llega hasta el 5% del canvas: ~36px de
       alto): con los pisos en px de arriba el housing suma mas que la altura
       disponible (3*22 + gaps + pads = 92px) y se recortaba contra el
       overflow:hidden del root. Aqui mandan las cq y el piso baja al minimo.
       VA ANTES del bloque horizontal A PROPOSITO: en cajas anchas-y-bajas (el
       banner default 28x20) el bloque de abajo re-declara EXACTAMENTE estas
       mismas variables y gana por orden de cascada, asi que este bloque solo
       actua en cajas verticales chicas. No toca --sw-glow-* (el halo no ocupa
       layout y el bloque horizontal no lo redeclara). */
    @container (max-height: 130px) {
        .sw-lay[b-7riidgygdw] { gap: max(4px, 2.5cqmin); }

        .sw-luz[b-7riidgygdw] { --sw-luz-d: max(8px, min(19cqh, 30cqw)); }

        .sw-housing[b-7riidgygdw] {
            --sw-housing-pad: max(3px, 2cqmin);
            --sw-housing-gap: max(2px, 1.6cqmin);
        }

        .sw-etiqueta[b-7riidgygdw] { --sw-etiqueta-fs: max(10px, min(11cqw, 13cqh)); }

        .sw-housing:only-child .sw-luz[b-7riidgygdw] { --sw-luz-d: max(10px, min(26cqh, 36cqw)); }
    }

    /* HORIZONTAL (caja ancha): mini-semaforo vertical a la izquierda +
       etiqueta protagonista a la derecha (letrero de puerta). */
    @container (min-aspect-ratio: 6/5) {
        .sw-lay[b-7riidgygdw] {
            flex-direction: row;
            gap: max(14px, 4cqw);
        }

        .sw-luz[b-7riidgygdw] { --sw-luz-d: max(18px, min(18cqh, 11cqw)); }

        .sw-housing[b-7riidgygdw] {
            --sw-housing-pad: max(6px, 3.2cqh);
            --sw-housing-gap: max(5px, 2.4cqh);
        }

        .sw-etiqueta[b-7riidgygdw] {
            flex: 1 1 auto;
            --sw-etiqueta-fs: max(17px, min(9.5cqw, 26cqh));
        }

        .sw-housing:only-child .sw-luz[b-7riidgygdw] { --sw-luz-d: max(22px, min(22cqh, 16cqw)); }
    }
}

/* Fallback sin container queries (raro en 2026): columna con clamps en vh. */
@supports not (container-type: size) {
    @media (max-width: 560px) {
        .sw-etiqueta[b-7riidgygdw] { --sw-etiqueta-fs: clamp(13px, 2.8vh, 20px); }
        .sw-luz[b-7riidgygdw] { --sw-luz-d: 26px; }
    }
}

@media (prefers-reduced-motion: reduce) {
    .sw-root[b-7riidgygdw]::before,
    .sw-luz[b-7riidgygdw],
    .sw-etiqueta[b-7riidgygdw] { transition: none; }
    .sw-luz.activa[b-7riidgygdw],
    .sw-etiqueta-verde[b-7riidgygdw],
    .sw-etiqueta-amarillo[b-7riidgygdw],
    .sw-etiqueta-rojo[b-7riidgygdw] { animation: none; }
    .sw-luz:hover[b-7riidgygdw],
    .sw-luz.activa[b-7riidgygdw] { transform: none; }
}
/* /Components/Widgets/SimbolosWidget.razor.rz.scp.css */
/* SimbolosWidget — card blanca con icono protagonista sobre backdrop circular.
   Sizing por container queries: reglas base mode-agnostic, bloque
   @supports (container-type: size) con cq*, y @supports not con los px/vh previos.
   El picker es overlay position:fixed a nivel viewport: sus px se quedan A PROPOSITO. */

.sm-root[b-rio7adpcy4] {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #FFFFFF;
    border-radius: 14px;
    box-shadow: var(--pz-shadow-soft);
    box-sizing: border-box;
    cursor: pointer;
    position: relative;
    transition: box-shadow 0.2s ease, transform 0.12s ease;
}

.sm-root:hover[b-rio7adpcy4] {
    box-shadow: var(--pz-shadow-pop);
}

/* Card blanca: ring en teal-deep (5.96:1), igual que Encuesta */
.sm-root:focus-visible[b-rio7adpcy4] {
    outline: 2px solid var(--brand-teal-deep, #2C6D6F);
    outline-offset: 2px;
}

/* Backdrop circular: jerarquia icono > titulo inmediata */
.sm-visual[b-rio7adpcy4] {
    flex: 0 1 auto;
    min-height: 0;
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: color-mix(in srgb, var(--brand-teal, #6DC7D0) 12%, #FFFFFF);
    animation: sm-swap-in-b-rio7adpcy4 0.18s ease;
}

.sm-icono[b-rio7adpcy4] {
    color: var(--brand-teal-dark, #2E7D82);
    line-height: 1;
}

.sm-titulo[b-rio7adpcy4] {
    font-family: var(--font-sans, 'Figtree', sans-serif);
    font-weight: 600;
    color: var(--carbon-1, #141619);
    text-align: center;
    line-height: 1.2;
    animation: sm-swap-in-b-rio7adpcy4 0.18s ease;
}

/* Cross-fade de entrada al cambiar de simbolo (@key recrea .sm-visual/.sm-titulo) */
@keyframes sm-swap-in-b-rio7adpcy4 {
    from { opacity: 0; transform: scale(0.92); }
    to { opacity: 1; transform: scale(1); }
}

/* === Sizing container-aware === */
@supports (container-type: size) {
    .sm-root[b-rio7adpcy4] {
        container-type: size;
        /* padding/gap del root en px/%: cq* no resuelve contra si mismo */
        padding: 14px;
        gap: max(10px, 3%);
    }

    /* .sm-visual es a su vez container: el icono escala CON el circulo
       aunque el flex lo encoja en formatos muy anchos y bajos */
    .sm-visual[b-rio7adpcy4] {
        container-type: size;
        height: max(56px, 70cqmin);
    }

    .sm-icono[b-rio7adpcy4] {
        /* 74cqmin del circulo ~= 52cqmin del widget; piso, sin tope */
        font-size: max(36px, 74cqmin);
    }

    .sm-titulo[b-rio7adpcy4] {
        font-size: max(11px, 11cqmin);
    }
}

@supports not (container-type: size) {
    .sm-root[b-rio7adpcy4] {
        padding: 8%;
        gap: 6%;
    }

    .sm-visual[b-rio7adpcy4] {
        height: clamp(52px, 34vh, 168px);
    }

    .sm-icono[b-rio7adpcy4] {
        font-size: clamp(36px, 24vh, 120px);
    }

    .sm-titulo[b-rio7adpcy4] {
        font-size: clamp(11px, 3.4vh, 20px);
    }

    @media (max-width: 560px) {
        .sm-visual[b-rio7adpcy4] { height: clamp(42px, 28vh, 128px); }
        .sm-icono[b-rio7adpcy4] { font-size: clamp(28px, 20vh, 90px); }
    }
}

/* === Mini-picker overlay (nivel viewport: px a proposito) === */
.sm-picker-overlay[b-rio7adpcy4] {
    position: fixed;
    inset: 0;
    background: rgba(20, 22, 25, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 5000;
    cursor: default;
    animation: sm-fade-in-b-rio7adpcy4 0.15s ease;
}

/* El overlay se enfoca programaticamente para recibir Escape: sin ring propio */
.sm-picker-overlay:focus[b-rio7adpcy4],
.sm-picker-overlay:focus-visible[b-rio7adpcy4] {
    outline: none;
}

@keyframes sm-fade-in-b-rio7adpcy4 {
    from { opacity: 0; }
    to { opacity: 1; }
}

.sm-picker[b-rio7adpcy4] {
    background: #FFFFFF;
    border-radius: 16px;
    box-shadow: var(--pz-shadow-float);
    padding: 20px;
    width: min(480px, 90vw);
    cursor: default;
    animation: sm-pop-in-b-rio7adpcy4 0.18s ease;
}

@keyframes sm-pop-in-b-rio7adpcy4 {
    from { opacity: 0; transform: scale(0.94); }
    to { opacity: 1; transform: scale(1); }
}

.sm-picker-head[b-rio7adpcy4] {
    font-family: var(--font-serif, 'Fraunces', serif);
    font-size: 16px;
    font-weight: 600;
    color: var(--carbon-1, #141619);
    margin-bottom: 14px;
}

.sm-picker-grid[b-rio7adpcy4] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
}

.sm-picker-item[b-rio7adpcy4] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    border: 1.5px solid var(--cream-deep, #E5DFCF);
    background: var(--cream, #F4F0E6);
    border-radius: 12px;
    padding: 12px 6px;
    cursor: pointer;
    transition: all 0.15s ease;
}

.sm-picker-item:hover[b-rio7adpcy4] {
    background: #FFFFFF;
    border-color: var(--brand-teal, #6DC7D0);
    transform: translateY(-2px);
}

/* Items sobre picker blanco: mismo ring teal-deep que el root */
.sm-picker-item:focus-visible[b-rio7adpcy4] {
    outline: 2px solid var(--brand-teal-deep, #2C6D6F);
    outline-offset: 2px;
    border-color: var(--brand-teal-dark, #2E7D82);
}

.sm-picker-item.activo[b-rio7adpcy4] {
    background: color-mix(in srgb, var(--brand-teal, #6DC7D0) 18%, #FFFFFF);
    border-color: var(--brand-teal-dark, #2E7D82);
}

.sm-picker-item .material-symbols-rounded[b-rio7adpcy4] {
    font-size: 26px;
    color: var(--brand-teal-dark, #2E7D82);
}

.sm-picker-label[b-rio7adpcy4] {
    font-family: var(--font-sans, 'Figtree', sans-serif);
    font-size: 10.5px;
    font-weight: 500;
    color: var(--carbon-2, #2A2E33);
    text-align: center;
    line-height: 1.15;
}

@media (max-width: 560px) {
    .sm-picker-grid[b-rio7adpcy4] { grid-template-columns: repeat(3, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
    .sm-visual[b-rio7adpcy4],
    .sm-titulo[b-rio7adpcy4],
    .sm-picker-overlay[b-rio7adpcy4],
    .sm-picker[b-rio7adpcy4] {
        animation: none;
    }

    .sm-root[b-rio7adpcy4],
    .sm-picker-item[b-rio7adpcy4] {
        transition: none;
    }

    .sm-picker-item:hover[b-rio7adpcy4] {
        transform: none;
    }
}
/* /Components/Widgets/ThemePicker.razor.rz.scp.css */
.tp-grid[b-5l2pwxcwbd] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
}

.tp-card[b-5l2pwxcwbd] {
    aspect-ratio: 1.2;
    border: 2.5px solid transparent;
    border-radius: 10px;
    padding: 12px;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: relative;
    transition: border-color 0.15s, transform 0.1s;
}

.tp-card:hover[b-5l2pwxcwbd] {
    border-color: #D0D0D0;
    transform: translateY(-1px);
}

.tp-card.selected[b-5l2pwxcwbd] {
    border-color: #6366F1;
}

.tp-card.selected[b-5l2pwxcwbd]::after {
    content: "✓";
    position: absolute;
    top: 6px;
    right: 8px;
    background: #6366F1;
    color: white;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    font-size: 13px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
}

.tp-bar1[b-5l2pwxcwbd] {
    width: 32px;
    height: 6px;
    border-radius: 3px;
    margin-bottom: 5px;
}

.tp-row[b-5l2pwxcwbd] {
    display: flex;
    align-items: center;
    gap: 4px;
}

.tp-bar2[b-5l2pwxcwbd] {
    width: 22px;
    height: 5px;
    border-radius: 3px;
}

.tp-dot[b-5l2pwxcwbd] {
    width: 5px;
    height: 5px;
    border-radius: 50%;
}
/* /Components/Widgets/TimerWidget.razor.rz.scp.css */
/* === TimerWidget — arquitectura de escalado por container queries ===
   .tw-root es container-type: size; toda tipografia/grosor usa cqmin/cqw.
   Elimina dependencia de vw/vh y de "modo compacto" basado en px fijos para
   tipografia (el modo compacto en C# solo decide ocultar el anillo SVG). */

.tw-root[b-cipf7h7fou] {
    container-type: size;
    container-name: tw;
    /* --- Knobs S2 (afinar en runtime): el lienzo aplica ZOOM y las unidades cq
       resuelven sobre el content-box de LAYOUT, no el visual. Ajustar aqui. --- */
    --tw-pad: 1.5cqmin;   /* respiracion minima al borde de la card */
    /* Caja del SVG del anillo. La circunferencia (r44 + stroke) ocupa ~92.5% de
       la caja: se puede subir hasta ~106 (y sus topes cqw/cqh a la par) antes de
       que el trazo toque el borde del contenido. */
    --tw-ring-size: min(100cqmin, 104cqw, 104cqh);
    --tw-digit-escala: 21cqmin;   /* tipografia de la fila de digitos (colon hereda en em) */
    /* Halo color-de-fondo bajo Play/Stop: donde el boton invade el anillo lo
       "recorta" limpio en vez de encimarse al trazo. */
    --tw-halo: 0 0 0 max(2px, 0.5cqmin) color-mix(in srgb, var(--bg) 94%, var(--text) 6%);
    width: 100%;
    height: 100%;
    background: linear-gradient(155deg, color-mix(in srgb, var(--bg) 100%, transparent) 0%, color-mix(in srgb, var(--bg) 92%, var(--text) 8%) 100%);
    color: var(--text);
    border-radius: 12px;
    padding: var(--tw-pad);
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    box-sizing: border-box;
    overflow: hidden;
}

@supports not (container-type: size) {
    .tw-root[b-cipf7h7fou] { padding: 14px 20px; }
}

/* Chip flotante DENTRO de la card (esquina sup-der = zona muerta del circulo).
   FIX: antes vivia en top:-36px, pero .tw-root tiene overflow:hidden, asi que
   el bloque quedaba recortado por completo (invisible al seleccionar). Solo se
   renderiza cuando Seleccionado y es absolute: nunca reserva espacio de layout. */
.tw-mode-tabs[b-cipf7h7fou] {
    position: absolute;
    top: max(4px, 1cqmin);
    right: max(4px, 1cqmin);
    z-index: 3;
    display: flex;
    background: var(--cream, #FFFFFF);
    border-radius: 6px;
    padding: 2px;
    font-size: 11px;
    box-shadow: var(--pz-shadow-pop, 0 2px 4px rgba(20,22,25,0.05), 0 8px 24px rgba(20,22,25,0.08));
}

.tw-mode-tabs button[b-cipf7h7fou] {
    border: none;
    background: transparent;
    padding: 4px 10px;
    border-radius: 4px;
    cursor: pointer;
    color: var(--carbon-4, #5F5E5A);
    font-weight: 500;
}

.tw-mode-tabs button.active[b-cipf7h7fou] {
    background: var(--accent);
    color: white;
}

.tw-body[b-cipf7h7fou] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4cqw;
    width: 100%;
    height: 100%;
    position: relative;
}

/* === Anillo de progreso: SVG detras/alrededor de los digitos === */
.tw-ring-wrap[b-cipf7h7fou] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    z-index: 0;
}

.tw-ring-svg[b-cipf7h7fou] {
    width: var(--tw-ring-size);
    height: var(--tw-ring-size);
    /* Sombra corta y tenue: drop-shadow no ocupa layout, y si el aro llega al
       borde el recorte de esta sombra por overflow:hidden es imperceptible —
       no hay que reservarle margen. */
    filter: drop-shadow(0 0.4cqmin 1cqmin rgba(0, 0, 0, 0.10));
}

.tw-ring-track[b-cipf7h7fou] {
    fill: none;
    stroke: color-mix(in srgb, var(--text) 12%, transparent);
    stroke-width: 4.5;
}

.tw-ring-progress[b-cipf7h7fou] {
    fill: none;
    stroke: var(--accent);
    stroke-width: 4.5;
    stroke-linecap: round;
    transition: stroke-dashoffset 0.95s linear, stroke 0.3s ease;
}

.tw-ring-progress.tw-urgencia-media[b-cipf7h7fou] { stroke: var(--warning, #BA7517); }
.tw-ring-progress.tw-urgencia-alta[b-cipf7h7fou] { stroke: var(--danger, #A32D2D); }

.tw-ring-progress.tw-indeterminado[b-cipf7h7fou] {
    stroke-dasharray: 40 220;
    animation: tw-ring-spin-b-cipf7h7fou 2.4s linear infinite;
}

@keyframes tw-ring-spin-b-cipf7h7fou {
    to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
    .tw-ring-progress.tw-indeterminado[b-cipf7h7fou] { animation-duration: 6s; }
}

/* === Digitos === */
.tw-time-control[b-cipf7h7fou] {
    flex: 1;
    display: flex;
    justify-content: center;
    position: relative;
    z-index: 1;
}

/* La escala vive en la FILA y los hijos usan em: una sola perilla
   (--tw-digit-escala) mueve digitos + colon sin desincronizarse. */
.tw-time-row[b-cipf7h7fou] {
    display: flex;
    align-items: center;
    font-size: clamp(20px, var(--tw-digit-escala), 400px);
}

.tw-digit-col[b-cipf7h7fou] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0;
}

.tw-pm-btn[b-cipf7h7fou] {
    background: transparent;
    border: none;
    color: var(--text);
    opacity: 0.55;
    cursor: pointer;
    padding: 0.4cqmin;
    line-height: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.tw-pm-btn:hover[b-cipf7h7fou] { opacity: 1; }

.tw-pm-btn svg[b-cipf7h7fou] {
    width: clamp(9px, 3.6cqmin, 20px);
    height: clamp(9px, 3.6cqmin, 20px);
}

.tw-pm-spacer[b-cipf7h7fou] {
    height: clamp(9px, 3.6cqmin, 20px);
}

.tw-digit[b-cipf7h7fou],
.tw-digit-input[b-cipf7h7fou] {
    font-family: var(--font-mono, 'JetBrains Mono', monospace);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    font-size: 1em;
    color: var(--text);
    line-height: 1;
    width: 1.05ch;
    text-align: center;
    line-height: 1;
}

.tw-digit[b-cipf7h7fou] {
    cursor: pointer;
    user-select: none;
    padding: 0 0.2ch;
    transition: transform 0.15s ease;
}

.tw-digit-input[b-cipf7h7fou] {
    background: color-mix(in srgb, var(--accent) 12%, transparent);
    border: max(1.5px, 0.3cqmin) solid var(--accent);
    border-radius: 0.15em;
    padding: 0;
    outline: none;
}

.tw-colon[b-cipf7h7fou] {
    font-family: var(--font-mono, 'JetBrains Mono', monospace);
    font-weight: 600;
    font-size: 0.9em;
    color: var(--accent);
    line-height: 1;
    padding: 0 0.15ch;
}

.tw-actions[b-cipf7h7fou] {
    display: flex;
    flex-direction: column;
    gap: 1.6cqmin;
    align-items: center;
    /* Fuera del flujo: pegados a la derecha, centrados vertical. Asi los digitos
       (tw-time-control, flex:1) quedan centrados en el cuerpo y el anillo -que se
       centra sobre el cuerpo- los rodea simetricamente, en vez de que los botones
       empujen los digitos a la izquierda y el circulo pegue en los numeros. */
    position: absolute;
    right: 1.5cqw;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    opacity: 0.85;
    transition: opacity 0.2s ease;
}

.tw-root:hover .tw-actions[b-cipf7h7fou],
.tw-actions:focus-within[b-cipf7h7fou] {
    opacity: 1;
}

.tw-btn-play[b-cipf7h7fou],
.tw-btn-stop[b-cipf7h7fou] {
    width: clamp(26px, 11cqmin, 52px);
    height: clamp(26px, 11cqmin, 52px);
    border-radius: 50%;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--tw-halo);
}

.tw-btn-play svg[b-cipf7h7fou],
.tw-btn-stop svg[b-cipf7h7fou] {
    width: 45%;
    height: 45%;
}

.tw-btn-play[b-cipf7h7fou] { background: var(--accent); color: white; }
.tw-btn-stop[b-cipf7h7fou] { background: var(--cream, #FFFFFF); color: var(--text); border: 1.5px solid var(--carbon-7, #D3D1C7); }

/* === Alarma / fin de cuenta regresiva === */
.tw-root.tw-alarm .tw-digit[b-cipf7h7fou],
.tw-root.tw-alarm .tw-colon[b-cipf7h7fou] {
    color: var(--danger, #A32D2D);
    animation: tw-blink-b-cipf7h7fou 0.7s infinite;
}

.tw-root.tw-flash[b-cipf7h7fou] {
    animation: tw-flash-b-cipf7h7fou 0.6s ease-out;
}

@keyframes tw-blink-b-cipf7h7fou {
    0%, 50% { opacity: 1; }
    51%, 100% { opacity: 0.45; }
}

@keyframes tw-flash-b-cipf7h7fou {
    0% { background-color: color-mix(in srgb, var(--danger, #A32D2D) 55%, transparent); }
    100% { background-color: transparent; }
}

/* Ultimos 10s de countdown: pulso sutil de los digitos + anillo en rojo (clase ya cubierta arriba) */
.tw-root.tw-urgente .tw-digit[b-cipf7h7fou],
.tw-root.tw-urgente .tw-digit-input[b-cipf7h7fou],
.tw-root.tw-urgente .tw-colon[b-cipf7h7fou] {
    animation: tw-pulso-b-cipf7h7fou 1s ease-in-out infinite;
}

@keyframes tw-pulso-b-cipf7h7fou {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.04); }
}

@media (prefers-reduced-motion: reduce) {
    .tw-root.tw-alarm .tw-digit[b-cipf7h7fou],
    .tw-root.tw-alarm .tw-colon[b-cipf7h7fou] { animation: none; }
    .tw-root.tw-flash[b-cipf7h7fou] { animation: none; }
    .tw-root.tw-urgente .tw-digit[b-cipf7h7fou],
    .tw-root.tw-urgente .tw-digit-input[b-cipf7h7fou],
    .tw-root.tw-urgente .tw-colon[b-cipf7h7fou] { animation: none; }
}

/* === Modo presentacion (EnPresentacion): solo Play/Pausa y Reset ===
   La config (tabs, +/-, edicion de digitos) vive en el editor. Botones con
   target tactil >= 40px (proyector tactil); en reposo discretos, al pasar el
   cursor o enfocar suben a opacidad plena (regla .tw-root:hover ya existente). */
.tw-pres .tw-digit[b-cipf7h7fou] { cursor: default; }

.tw-pres .tw-actions[b-cipf7h7fou] {
    opacity: 0.65;
}

.tw-pres .tw-btn-play[b-cipf7h7fou],
.tw-pres .tw-btn-stop[b-cipf7h7fou] {
    width: clamp(40px, 12cqmin, 64px);
    height: clamp(40px, 12cqmin, 64px);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.tw-pres .tw-btn-play:hover[b-cipf7h7fou],
.tw-pres .tw-btn-stop:hover[b-cipf7h7fou] {
    /* Conserva el halo (recorte limpio sobre el anillo) y suma la sombra pop */
    box-shadow: var(--tw-halo), var(--pz-shadow-pop, 0 2px 4px rgba(20,22,25,0.05), 0 8px 24px rgba(20,22,25,0.08));
}

.tw-pres .tw-btn-play:active[b-cipf7h7fou],
.tw-pres .tw-btn-stop:active[b-cipf7h7fou] {
    transform: scale(0.94);
}

.tw-pres .tw-btn-play:focus-visible[b-cipf7h7fou],
.tw-pres .tw-btn-stop:focus-visible[b-cipf7h7fou] {
    outline: max(2px, 0.5cqmin) solid var(--accent);
    outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
    .tw-pres .tw-btn-play[b-cipf7h7fou],
    .tw-pres .tw-btn-stop[b-cipf7h7fou] { transition: none; }
    .tw-pres .tw-btn-play:active[b-cipf7h7fou],
    .tw-pres .tw-btn-stop:active[b-cipf7h7fou] { transform: none; }
}

/* === Modo compacto: AltoPx < 220px (heuristica inicial del padre) ===
   El anillo SVG se oculta (por @if en el render). El layout queda
   horizontal con display digital + acciones a la derecha. La tipografia
   sigue escalando por cqmin, no por breakpoints de px. */
.tw-root.tw-compacto[b-cipf7h7fou] {
    padding: 1.6cqh 3cqw;
}

.tw-compacto .tw-body[b-cipf7h7fou] {
    gap: 3cqw;
}

/* La escala compacta tambien vive en la fila (digitos/colon heredan en em). */
.tw-compacto .tw-time-row[b-cipf7h7fou] {
    font-size: clamp(16px, 34cqh, 200px);
}

.tw-compacto .tw-mode-tabs[b-cipf7h7fou] {
    font-size: 10px;
}

.tw-compacto .tw-mode-tabs button[b-cipf7h7fou] {
    padding: 3px 7px;
}
/* /Components/Widgets/TimetableWidget.razor.rz.scp.css */
.tt-root[b-00idjmj29b] {
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    background: #FFFFFF;
    color: var(--carbon-2, #1E2126);
    border-radius: 14px;
    overflow: hidden;
    font-family: 'Figtree', sans-serif;
    box-shadow: var(--pz-shadow-soft, 0 1px 2px rgba(20,22,25,.04));
}

/* === Header === */
.tt-header[b-00idjmj29b] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 10px 12px 8px;
    flex-shrink: 0;
    border-bottom: 1px solid var(--cream-deep, #EAE3D2);
}
.tt-titulo[b-00idjmj29b] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-family: 'Fraunces', serif;
    font-weight: 600;
    font-size: 14px;
    color: var(--carbon-2, #1E2126);
    min-width: 0;
}
.tt-titulo .material-symbols-rounded[b-00idjmj29b] { font-size: 18px; color: var(--brand-teal-dark, #4BA8AA); }
.tt-titulo span:last-child[b-00idjmj29b] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.tt-tabs[b-00idjmj29b] {
    display: flex;
    background: var(--cream, #F4F0E6);
    border-radius: 8px;
    padding: 2px;
    flex-shrink: 0;
}
.tt-tabs button[b-00idjmj29b] {
    border: none;
    background: transparent;
    cursor: pointer;
    font-family: 'Figtree', sans-serif;
    font-size: 11px;
    font-weight: 600;
    color: var(--carbon-4, #5F5E5A);
    padding: 4px 10px;
    border-radius: 6px;
}
.tt-tabs button.active[b-00idjmj29b] {
    background: #FFFFFF;
    color: var(--brand-teal-dark, #4BA8AA);
    box-shadow: 0 1px 3px rgba(0,0,0,.12);
}

/* === Body === */
.tt-body[b-00idjmj29b] {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--carbon-6, #B4B2A9) transparent;
}
.tt-body[b-00idjmj29b]::-webkit-scrollbar { width: 6px; }
.tt-body[b-00idjmj29b]::-webkit-scrollbar-thumb { background: var(--carbon-6, #B4B2A9); border-radius: 999px; }

/* === Vista Hoy: lista === */
.tt-lista[b-00idjmj29b] {
    display: flex;
    flex-direction: column;
    padding: 8px 10px 10px;
    gap: 6px;
}
.tt-item[b-00idjmj29b] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    border-radius: 10px;
    background: var(--cream, #F4F0E6);
    border: 1px solid transparent;
    min-width: 0;
}
.tt-item.tt-ahora[b-00idjmj29b] {
    background: rgba(109, 199, 208, 0.14);
    border-color: var(--brand-teal, #6DC7D0);
}
.tt-item.tt-sigue[b-00idjmj29b] {
    border-color: var(--cream-deep, #EAE3D2);
    background: #FFFFFF;
}
.tt-item-hora[b-00idjmj29b] {
    flex-shrink: 0;
    font-variant-numeric: tabular-nums;
    font-size: 11px;
    font-weight: 600;
    color: var(--carbon-4, #5F5E5A);
    width: 78px;
}
.tt-item.tt-ahora .tt-item-hora[b-00idjmj29b] { color: var(--brand-teal-deep, #2C6D6F); }
.tt-item-info[b-00idjmj29b] {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: baseline;
    gap: 6px;
    overflow: hidden;
}
.tt-dot[b-00idjmj29b] { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.tt-item-grupo[b-00idjmj29b] {
    font-weight: 600;
    font-size: 12.5px;
    color: var(--carbon-2, #1E2126);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.tt-item-disciplina[b-00idjmj29b] {
    font-size: 11px;
    color: var(--carbon-4, #5F5E5A);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.tt-badge[b-00idjmj29b] {
    flex-shrink: 0;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
    padding: 3px 8px;
    border-radius: 999px;
}
.tt-badge-ahora[b-00idjmj29b] { background: var(--brand-teal, #6DC7D0); color: #0F3F41; }
.tt-badge-sigue[b-00idjmj29b] { background: var(--cream-deep, #EAE3D2); color: var(--carbon-4, #5F5E5A); }

/* === Vista Semana: mini-grid === */
.tt-semana[b-00idjmj29b] {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 6px;
    padding: 8px 10px 10px;
    height: 100%;
    box-sizing: border-box;
}
.tt-semana.tt-sem-7[b-00idjmj29b] { grid-template-columns: repeat(7, 1fr); }
.tt-sem-col[b-00idjmj29b] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
    border-radius: 8px;
    padding: 4px;
}
.tt-sem-col.tt-sem-hoy[b-00idjmj29b] { background: rgba(109, 199, 208, 0.10); }
.tt-sem-dia-header[b-00idjmj29b] {
    font-size: 10.5px;
    font-weight: 700;
    text-align: center;
    color: var(--carbon-4, #5F5E5A);
    text-transform: uppercase;
    letter-spacing: .02em;
    padding-bottom: 2px;
}
.tt-sem-hoy .tt-sem-dia-header[b-00idjmj29b] { color: var(--brand-teal-deep, #2C6D6F); }
.tt-sem-vacio[b-00idjmj29b] {
    text-align: center;
    color: var(--carbon-6, #B4B2A9);
    font-size: 11px;
    padding: 6px 0;
}
.tt-sem-bloque[b-00idjmj29b] {
    background: var(--cream, #F4F0E6);
    border-left: 3px solid var(--brand-teal, #6DC7D0);
    border-radius: 6px;
    padding: 4px 6px;
    min-width: 0;
}
.tt-sem-bloque.tt-ahora[b-00idjmj29b] {
    background: rgba(109, 199, 208, 0.18);
}
.tt-sem-hora[b-00idjmj29b] {
    font-size: 9.5px;
    font-weight: 600;
    color: var(--carbon-4, #5F5E5A);
    font-variant-numeric: tabular-nums;
}
.tt-sem-grupo[b-00idjmj29b] {
    font-size: 10.5px;
    font-weight: 600;
    color: var(--carbon-2, #1E2126);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* === Empty / error === */
.tt-empty[b-00idjmj29b] {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 6px;
    color: var(--carbon-3, #6B7280);
    padding: 16px 10px;
    height: 100%;
}
.tt-empty-ico[b-00idjmj29b] { font-size: 40px; opacity: .5; color: var(--carbon-5, #888780); }
.tt-empty-title[b-00idjmj29b] { font-family: 'Fraunces', serif; font-size: 14px; font-weight: 600; color: var(--carbon-2, #1E2126); }
.tt-retry[b-00idjmj29b] {
    margin-top: 4px;
    display: flex;
    align-items: center;
    gap: 4px;
    border: 1px solid var(--cream-deep, #EAE3D2);
    background: #FFFFFF;
    color: var(--carbon-3, #444441);
    font-size: 11.5px;
    font-weight: 600;
    padding: 6px 12px;
    border-radius: 999px;
    cursor: pointer;
}
.tt-retry .material-symbols-rounded[b-00idjmj29b] { font-size: 15px; }
.tt-retry:hover[b-00idjmj29b] { background: var(--cream, #F4F0E6); }

/* === Skeleton === */
.tt-skeleton[b-00idjmj29b] {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
    padding: 12px;
}
.tt-skel-row[b-00idjmj29b] {
    height: 32px;
    border-radius: 10px;
    background: linear-gradient(90deg, #EEE 25%, #F6F6F6 50%, #EEE 75%);
    background-size: 200% 100%;
    animation: tt-shimmer-b-00idjmj29b 1.3s infinite;
}
@keyframes tt-shimmer-b-00idjmj29b { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

@media (prefers-reduced-motion: reduce) {
    .tt-skel-row[b-00idjmj29b] { animation: none; }
}
/* /Components/Widgets/WidgetSidePanel.razor.rz.scp.css */
.wsp-overlay[b-cfx8oriw1d] {
    position: fixed;
    inset: 0;
    background: rgba(20, 22, 25, 0.35);
    z-index: 999;
    cursor: pointer;
}

.wsp-panel[b-cfx8oriw1d] {
    position: fixed;
    top: 0;
    right: 0;
    height: 100vh;
    width: 460px;
    max-width: 90vw;
    background: white;
    box-shadow: -8px 0 32px rgba(0, 0, 0, 0.18);
    z-index: 1000;
    display: flex;
    flex-direction: column;
    animation: wsp-slide-in-b-cfx8oriw1d 0.22s ease-out;
    outline: none;
}

@keyframes wsp-slide-in-b-cfx8oriw1d {
    from { transform: translateX(100%); }
    to { transform: translateX(0); }
}

.wsp-header[b-cfx8oriw1d] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 24px;
    border-bottom: 1px solid #E5E7EB;
    background: #F9FAFB;
    flex-shrink: 0;
}

.wsp-title[b-cfx8oriw1d] {
    margin: 0;
    font-family: 'Fraunces', serif;
    font-size: 20px;
    color: var(--carbon-2);
    display: flex;
    align-items: center;
    gap: 10px;
}

.wsp-title-icon[b-cfx8oriw1d] {
    color: #6366F1;
}

.wsp-close[b-cfx8oriw1d] {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: 1.5px solid #E0E0E0;
    background: white;
    cursor: pointer;
    color: #555;
    display: flex;
    align-items: center;
    justify-content: center;
}

.wsp-close:hover[b-cfx8oriw1d] {
    background: #F5F5F5;
    color: var(--carbon-2);
}

.wsp-body[b-cfx8oriw1d] {
    flex: 1;
    overflow-y: auto;
    padding: 20px 24px;
}
/* /Layout/Aside.razor.rz.scp.css */
.aside-shell[b-zo3mbpookg] {
    grid-column: 4 / 5;
    background: var(--bg-cream);
    border-left: 1px solid var(--border-soft);
    overflow-y: auto;
    overflow-x: hidden;
    padding: 18px;
    z-index: var(--z-aside);
}
/* /Layout/MainLayout.razor.rz.scp.css */
/* ============================================================================
   MainLayout — Grid maestro v3 (sidebar único, sin rail)
   Anchos y easing tokenizados: --sidebar-w / --sidebar-w-collapsed / --ease
   ============================================================================ */

.app-shell[b-7jg3phn3b1] {
    display: grid;
    grid-template-columns: var(--sidebar-w, 264px) 1fr;
    grid-template-rows: 100vh;
    height: 100vh;
    overflow: hidden;
    background: var(--bg);
    transition: grid-template-columns 0.24s var(--ease);
}

.app-shell.with-aside[b-7jg3phn3b1] {
    grid-template-columns: var(--sidebar-w, 264px) 1fr 320px;
}

/* Sidebar colapsado (manual o auto-colapso en Chat/Proyectos) */
.app-shell.sidebar-collapsed[b-7jg3phn3b1] {
    grid-template-columns: var(--sidebar-w-collapsed, 68px) 1fr;
}

.app-shell.sidebar-collapsed.with-aside[b-7jg3phn3b1] {
    grid-template-columns: var(--sidebar-w-collapsed, 68px) 1fr 320px;
}

.main-shell[b-7jg3phn3b1] {
    grid-column: 2 / 3;
    overflow-y: auto;
    overflow-x: hidden;
    background: var(--bg);
    min-width: 0;
}

/* Topbar móvil — solo existe bajo el breakpoint */
.mobile-topbar[b-7jg3phn3b1] { display: none; }

/* ============================================================================
   <1024px — el sidebar se vuelve drawer overlay; topbar con hamburguesa
   ============================================================================ */
@media (max-width: 1023.98px) {

    .app-shell[b-7jg3phn3b1],
    .app-shell.with-aside[b-7jg3phn3b1],
    .app-shell.sidebar-collapsed[b-7jg3phn3b1],
    .app-shell.sidebar-collapsed.with-aside[b-7jg3phn3b1] {
        grid-template-columns: 1fr;
        grid-template-rows: 52px 1fr;
    }

    .mobile-topbar[b-7jg3phn3b1] {
        display: flex;
        align-items: center;
        gap: 6px;
        grid-column: 1 / 2;
        grid-row: 1 / 2;
        height: 52px;
        padding: 0 10px;
        background: var(--bg-sidebar);
        border-bottom: 1px solid var(--border-sidebar);
        z-index: var(--z-sidebar);
    }

    .mobile-topbar-menu[b-7jg3phn3b1] {
        width: 38px;
        height: 38px;
        border: none;
        border-radius: var(--radius-md);
        background: transparent;
        color: var(--text-sidebar);
        cursor: pointer;
        display: grid;
        place-items: center;
        transition: background 0.15s var(--ease), color 0.15s var(--ease);
    }

    .mobile-topbar-menu:hover[b-7jg3phn3b1],
    .mobile-topbar-menu:focus-visible[b-7jg3phn3b1] {
        background: var(--bg-sidebar-hover);
        color: var(--text-sidebar-active);
    }

    .mobile-topbar-menu .msr[b-7jg3phn3b1] { font-size: 22px; }

    .mobile-topbar-brand[b-7jg3phn3b1] {
        font-family: var(--font-serif);
        font-weight: 600;
        font-size: 15.5px;
        letter-spacing: -0.2px;
        color: var(--text-sidebar-active);
        text-decoration: none;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .mobile-topbar-brand .mi[b-7jg3phn3b1] { color: var(--brand-teal); font-style: italic; }

    .main-shell[b-7jg3phn3b1] {
        grid-column: 1 / 2;
        grid-row: 2 / 3;
    }

    /* Sidebar como drawer: el MISMO <Sidebar>, fijo y fuera de pantalla;
       entra al agregar .mobile-nav-open al app-shell. Siempre expandido
       (el colapso — manual o contextual — es solo de desktop). */
    /* Selector prefijado con .app-shell (=> .app-shell[b] .sidebar-shell, spec 0,3,0)
       para GANARLE a la regla scoped de Sidebar (.sidebar-shell[b], spec 0,2,0) que,
       por empatar en especificidad y bundlearse DESPUES, si no le sube la especificidad
       impone z-index:40 (drawer queda debajo del scrim 999) y transition:width (sin
       slide). Ver notas-shell-v3-verificacion. */
    .app-shell[b-7jg3phn3b1]  .sidebar-shell {
        position: fixed;
        top: 0;
        left: 0;
        width: var(--sidebar-w, 264px);
        max-width: 86vw;
        height: 100vh;
        z-index: var(--z-overlay);
        transform: translateX(-105%);
        transition: transform 0.24s var(--ease);
        box-shadow: 8px 0 32px rgba(0, 0, 0, 0.45);
    }

    .app-shell.mobile-nav-open[b-7jg3phn3b1]  .sidebar-shell {
        transform: translateX(0);
    }

    /* En el drawer no hay colapso: se oculta el botón */
    .app-shell[b-7jg3phn3b1]  .sidebar-collapse-btn {
        display: none;
    }

    .app-shell[b-7jg3phn3b1]  .aside-shell {
        display: none;
    }

    .mobile-nav-backdrop[b-7jg3phn3b1] {
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, 0.5);
        z-index: calc(var(--z-overlay) - 1);
        border: 0;
    }
}
/* /Layout/Sidebar.razor.rz.scp.css */
.sidebar-shell[b-thi63l4anr] {
    grid-column: 1 / 2;
    background: var(--bg-sidebar);
    color: var(--text-sidebar);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-right: 1px solid var(--border-sidebar);
    z-index: var(--z-sidebar);
    min-width: 0;                  /* CRÍTICO: vence el min-content de grid item */
    transition: width 0.24s var(--ease);
}

/* FILTROS-ESCUELA-TURNO: el popover del conmutador de escuela vive a la derecha del sidebar.
   Con overflow:hidden quedaba recortado (invisible al clic; solo "aparecia" con Tab porque el
   navegador desplazaba el sidebar para mostrar el boton enfocado). Mientras esta abierto, el
   sidebar deja ver lo que sobresale, igual que ya hace el modo colapsado con sus tooltips. */
.sidebar-shell.esc-abierto[b-thi63l4anr] {
    overflow: visible;
}

/* === Header: logo + wordmark + collapse === */
.sidebar-header[b-thi63l4anr] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 14px 12px;
    min-height: 64px;
    border-bottom: 1px solid var(--border-sidebar);
}

.sidebar-logo[b-thi63l4anr] {
    width: 34px;
    height: 34px;
    border-radius: var(--radius-md);
    background: linear-gradient(135deg, var(--brand-teal), var(--brand-teal-deep));
    color: var(--carbon-1);
    border: none;
    display: grid;
    place-items: center;
    cursor: pointer;
    flex-shrink: 0;
    position: relative;
    transition: transform 0.15s var(--ease);
}

.sidebar-logo:hover[b-thi63l4anr] { transform: scale(1.05); }

.sidebar-logo .msr[b-thi63l4anr] {
    font-size: 20px !important;
}

.sidebar-word[b-thi63l4anr] {
    font-family: var(--font-serif);
    font-weight: 600;
    font-size: 16px;
    line-height: 1.12;
    letter-spacing: -0.2px;
    color: var(--text-sidebar-active);
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    min-width: 0;
    transition: opacity 0.18s var(--ease);
}

.sidebar-word .mi[b-thi63l4anr] { color: var(--brand-teal); font-style: italic; }

/* Botón colapsar */
.sidebar-collapse-btn[b-thi63l4anr] {
    margin-left: auto;
    width: 26px;
    height: 26px;
    border-radius: var(--radius-sm);
    background: transparent;
    border: none;
    color: var(--text-sidebar-muted);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s var(--ease), color 0.15s var(--ease);
    flex-shrink: 0;
}

.sidebar-collapse-btn:hover[b-thi63l4anr] {
    background: var(--bg-sidebar-hover);
    color: var(--text-sidebar-active);
}

.sidebar-collapse-btn .msr[b-thi63l4anr] {
    font-size: 18px !important;
}

/* Las reglas del estado colapsado viven en wwwroot/css/sidebar-collapse.css
   (CSS global, no scoped). Esto garantiza que los selectores cross-component
   (.app-shell.sidebar-collapsed → .sidebar-word / .nav-text / .user-menu)
   funcionen sin gotchas de scoped CSS. */

/* === Scroll area === */
.sidebar-scroll[b-thi63l4anr] {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 10px 0 14px;
    scrollbar-width: thin;
    scrollbar-color: var(--border-sidebar) transparent;
}

.sidebar-scroll[b-thi63l4anr]::-webkit-scrollbar { width: 6px; }
.sidebar-scroll[b-thi63l4anr]::-webkit-scrollbar-thumb { background: var(--border-sidebar); border-radius: 3px; }

.nav-section[b-thi63l4anr] { padding: 6px 10px; }

.nav-section-label[b-thi63l4anr] {
    padding: 14px 12px 6px;
    font-size: 10.5px;
    font-weight: 700;
    color: var(--text-sidebar-muted);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-family: var(--font-sans);
    white-space: nowrap;
}

/* === Items principales === */
.nav-item[b-thi63l4anr] {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 9px 12px;
    margin: 1px 0;
    border-radius: var(--radius-md);
    cursor: pointer;
    color: var(--text-sidebar);
    font-family: var(--font-sans);
    font-size: 13.5px;
    font-weight: 500;
    transition: background 0.15s var(--ease), color 0.15s var(--ease);
    position: relative;
    text-decoration: none;
    border: none;
    background: transparent;
    width: 100%;
    text-align: left;
    white-space: nowrap;
}

.nav-item:hover[b-thi63l4anr] {
    background: var(--bg-sidebar-hover);
    color: var(--text-sidebar-active);
}

.nav-item:focus-visible[b-thi63l4anr] {
    outline: 2px solid var(--brand-teal);
    outline-offset: -2px;
}

.nav-item.active[b-thi63l4anr] {
    background: var(--bg-sidebar-active);
    color: var(--text-sidebar-active);
    font-weight: 600;
}

/* Barra teal de item activo (asoma en el padding del .nav-section) */
.nav-item.active[b-thi63l4anr]::before {
    content: "";
    position: absolute;
    left: -10px;
    top: 8px;
    bottom: 8px;
    width: 3px;
    background: var(--brand-teal);
    border-radius: 0 3px 3px 0;
}

.nav-item.active .nav-icon[b-thi63l4anr] { color: var(--brand-teal); }

.nav-icon[b-thi63l4anr] {
    font-size: 20px !important;
    color: var(--text-sidebar-muted);
    flex-shrink: 0;
}

.nav-item:hover .nav-icon[b-thi63l4anr] { color: var(--text-sidebar); }
.nav-item.active:hover .nav-icon[b-thi63l4anr] { color: var(--brand-teal); }

.nav-text[b-thi63l4anr] {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nav-arrow[b-thi63l4anr] {
    font-size: 16px !important;
    color: var(--text-sidebar-muted);
    transition: transform 0.2s var(--ease);
}

.nav-item.has-children.expanded .nav-arrow[b-thi63l4anr] { transform: rotate(180deg); }

/* === Badges: teal por default, rojo suave para menciones (Chat) === */
.nav-badge[b-thi63l4anr] {
    margin-left: auto;
    font-size: 10.5px;
    font-weight: 700;
    padding: 1px 7px;
    border-radius: 999px;
    background: var(--brand-teal);
    color: var(--carbon-1);
    letter-spacing: 0.3px;
    flex-shrink: 0;
}

.nav-badge.tone-red[b-thi63l4anr] {
    background: color-mix(in srgb, var(--danger) 22%, #FFFFFF);
    color: var(--danger);
}

/* Dot de "hay pendientes" — solo visible en colapsado (sidebar-collapse.css) */
.nav-dot[b-thi63l4anr] { display: none; }

/* === Sub-items (Control escolar / Finanzas) === */
.nav-children[b-thi63l4anr] {
    padding: 4px 0 8px 8px;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.nav-child[b-thi63l4anr] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 7px 12px 7px 30px;
    border-radius: var(--radius-sm);
    cursor: pointer;
    color: var(--text-sidebar-muted);
    font-family: var(--font-sans);
    font-size: 12.5px;
    font-weight: 500;
    transition: background 0.15s var(--ease), color 0.15s var(--ease);
    position: relative;
    text-decoration: none;
}

.nav-child[b-thi63l4anr]::before {
    content: "";
    position: absolute;
    left: 16px;
    top: 0;
    bottom: 0;
    width: 1px;
    background: var(--border-sidebar);
}

.nav-child:hover[b-thi63l4anr] {
    background: var(--bg-sidebar-hover);
    color: var(--text-sidebar);
}

.nav-child.active[b-thi63l4anr] {
    background: var(--bg-sidebar-active);
    color: var(--text-sidebar-active);
    font-weight: 600;
}

.nav-child.active[b-thi63l4anr]::after {
    content: "";
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--brand-teal);
    box-shadow: 0 0 0 2px var(--bg-sidebar-active);
}

.nav-child .msr[b-thi63l4anr] { font-size: 15px !important; }

/* === Footer del usuario === */
.sidebar-user[b-thi63l4anr] {
    padding: 12px 14px;
    border-top: 1px solid var(--border-sidebar);
    display: flex;
    align-items: center;
    gap: 10px;
    background: rgba(0, 0, 0, 0.15);
    cursor: pointer;
    border: none;
    width: 100%;
    text-align: left;
    transition: background 0.15s var(--ease);
    position: relative;
}

.sidebar-user:hover[b-thi63l4anr] { background: rgba(0, 0, 0, 0.3); }

.sidebar-user.menu-open[b-thi63l4anr] {
    background: rgba(0, 0, 0, 0.4);
    border-top-color: var(--brand-teal-dark);
}

.sidebar-user-avatar[b-thi63l4anr] {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--brand-teal-primary);
    color: var(--text-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-sans);
    font-weight: 700;
    font-size: 12.5px;
    position: relative;
    flex-shrink: 0;
}

.sidebar-user-avatar[b-thi63l4anr]::after {
    content: "";
    position: absolute;
    bottom: -2px;
    right: -2px;
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: var(--success);
    border: 2px solid var(--bg-sidebar);
}

.sidebar-user-info[b-thi63l4anr] { flex: 1; overflow: hidden; min-width: 0; }

.sidebar-user-name[b-thi63l4anr] {
    color: var(--text-sidebar-active);
    font-family: var(--font-sans);
    font-weight: 700;
    font-size: 12.5px;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sidebar-user-status[b-thi63l4anr] {
    font-size: 10.5px;
    color: var(--text-sidebar-muted);
    font-family: var(--font-sans);
    display: flex;
    align-items: center;
    gap: 4px;
    margin-top: 2px;
}

.sidebar-user-status .msr[b-thi63l4anr] {
    font-size: 12px !important;
    color: var(--brand-teal);
}

.sidebar-user-chevron[b-thi63l4anr] {
    color: var(--text-sidebar-muted);
    flex-shrink: 0;
    transition: transform 0.2s var(--ease);
}

.sidebar-user.menu-open .sidebar-user-chevron[b-thi63l4anr] {
    transform: rotate(180deg);
    color: var(--brand-teal);
}

.sidebar-user-chevron .msr[b-thi63l4anr] { font-size: 16px !important; }

/* Los estilos de .user-menu* viven en Layout/UserMenu.razor.css.
   Blazor scoped CSS no atraviesa fronteras de componente, así que las reglas
   tienen que residir en el componente que renderiza ese DOM. */
/* /Layout/UserMenu.razor.rz.scp.css */
/* ============================================================================
   UserMenu — dropdown flotante anclado al .sidebar-user del Sidebar.

   Estos estilos viven aquí (no en Sidebar.razor.css) porque el div .user-menu
   está renderizado por este componente. Blazor scoped CSS no atraviesa
   fronteras de componente, por lo que ponerlos en el padre los dejaba sin
   efecto.

   Anclaje: position: absolute con bottom: 64px se posiciona contra el
   .sidebar-user del padre, que ya tiene position: relative.
   ============================================================================ */

.user-menu[b-w41b3r7j9v] {
    position: absolute;            /* CRÍTICO — sin esto se mete en el flujo */
    bottom: 64px;                  /* Por encima del bloque de usuario (~64px alto) */
    left: 14px;
    right: 14px;
    background: #16181C;
    border: 1px solid #2F343B;
    border-radius: 12px;
    box-shadow: 0 20px 48px rgba(0, 0, 0, 0.45),
                0 8px 16px rgba(0, 0, 0, 0.25);
    overflow: hidden;
    display: none;
    z-index: 50;
}

.user-menu.open[b-w41b3r7j9v] {
    display: block;
    animation: user-menu-slide-up-b-w41b3r7j9v 0.2s ease-out;
}

@keyframes user-menu-slide-up-b-w41b3r7j9v {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Cuando el sidebar está colapsado, ocultar el menú aunque el flag local
   IsOpen=true persista. */
:global(.app-shell.sidebar-collapsed) .user-menu[b-w41b3r7j9v] {
    display: none !important;
}

/* === Header de identidad === */
.user-menu-identity[b-w41b3r7j9v] {
    padding: 14px 14px 12px;
    border-bottom: 1px solid #2F343B;
    background: linear-gradient(180deg, rgba(110, 198, 200, 0.04) 0%, transparent 100%);
}

.user-menu-identity-row[b-w41b3r7j9v] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
}

.user-menu-avatar[b-w41b3r7j9v] {
    width: 40px;
    height: 40px;
    border-radius: 11px;
    background: linear-gradient(135deg, #F4B860, #E89B3C);
    color: #FFFFFF;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-sans);
    font-weight: 700;
    font-size: 14px;
    flex-shrink: 0;                /* No se encoge si nombre es largo */
}

.user-menu-info[b-w41b3r7j9v] {
    flex: 1;
    min-width: 0;                  /* Permite que el texto se trunque con ellipsis */
    overflow: hidden;
}

.user-menu-name[b-w41b3r7j9v] {
    color: #FFFFFF;
    font-family: var(--font-sans);
    font-weight: 700;
    font-size: 13px;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.user-menu-email[b-w41b3r7j9v] {
    color: var(--text-sidebar-muted);
    font-family: var(--font-sans);
    font-size: 11px;
    margin-top: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.user-menu-school[b-w41b3r7j9v] {
    display: flex;
    align-items: center;
    gap: 5px;
    font-family: var(--font-sans);
    font-size: 11px;
    color: var(--text-sidebar);
    padding: 5px 8px;
    background: rgba(255, 255, 255, 0.04);
    border-radius: 6px;
    margin-top: 4px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.user-menu-school .msr[b-w41b3r7j9v] {
    font-size: 12px !important;
    color: var(--brand-teal);
    flex-shrink: 0;
}

.user-menu-school > span:last-child[b-w41b3r7j9v] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

/* === Secciones === */
.user-menu-section[b-w41b3r7j9v] { padding: 4px; }
.user-menu-section + .user-menu-section[b-w41b3r7j9v] { border-top: 1px solid #2F343B; }

/* === Items individuales === */
/* A11y F8W: los items accionables son <button> reales (foco por teclado);
   este reset los deja idénticos a los divs informativos. */
.user-menu-item[b-w41b3r7j9v] {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 8px 10px;
    border: 0;
    background: transparent;
    text-align: left;
    border-radius: 7px;
    cursor: pointer;
    color: var(--text-sidebar);
    font-family: var(--font-sans);
    font-size: 13px;
    font-weight: 500;
    line-height: 1.5;
    text-decoration: none;
    transition: background 0.12s ease, color 0.12s ease;
    min-width: 0;                  /* Para que el texto largo se pueda truncar */
}

.user-menu-item:visited[b-w41b3r7j9v] {
    color: var(--text-sidebar);
}

.user-menu-item:hover[b-w41b3r7j9v] {
    background: rgba(255, 255, 255, 0.06);
    color: #FFFFFF;
}

.user-menu-item:focus-visible[b-w41b3r7j9v] {
    outline: 2px solid var(--brand-teal);
    outline-offset: -2px;          /* anillo hacia adentro: el menú recorta con overflow:hidden */
}

/* Filas informativas (Tema, No molestar, Atajos): sin señal de click */
.user-menu-item-static[b-w41b3r7j9v] { cursor: default; }
.user-menu-item-static:hover[b-w41b3r7j9v] { background: transparent; color: var(--text-sidebar); }
.user-menu-item-static:hover .msr[b-w41b3r7j9v] { color: var(--text-sidebar-muted); }

/* NUEVO T-061 — variante B: item anunciado como no disponible */
.user-menu-item-soon[b-w41b3r7j9v] { cursor: default; color: var(--text-sidebar-muted); }
.user-menu-item-soon:hover[b-w41b3r7j9v] { background: transparent; color: var(--text-sidebar-muted); }
.user-menu-item-soon:hover .msr[b-w41b3r7j9v] { color: var(--text-sidebar-muted); }
.user-menu-item-soon .msr[b-w41b3r7j9v] { opacity: .6; }
.user-menu-chip-soon[b-w41b3r7j9v] {
    flex-shrink: 0; margin-left: auto;
    display: inline-flex; align-items: center; gap: 4px;
    font-size: 10px; font-weight: 600;
    color: #9DC4E8; background: rgba(45, 110, 163, .22);
    padding: 1px 7px; border-radius: 8px;
}
.user-menu-chip-soon .msr[b-w41b3r7j9v] { font-size: 12px !important; color: #9DC4E8 !important; opacity: 1; }

.user-menu-item .msr[b-w41b3r7j9v] {
    font-size: 17px !important;
    color: var(--text-sidebar-muted);
    flex-shrink: 0;                /* El icono nunca se encoge */
}

.user-menu-item:hover .msr[b-w41b3r7j9v] { color: var(--brand-teal); }

.user-menu-item-text[b-w41b3r7j9v] {
    flex: 1;
    min-width: 0;                  /* Permite ellipsis en flex item */
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.user-menu-item-shortcut[b-w41b3r7j9v],
.user-menu-item-current[b-w41b3r7j9v] {
    flex-shrink: 0;                /* Chips/badges nunca se encogen */
    margin-left: auto;             /* Se anclan a la derecha aunque el text falle */
}

.user-menu-item-shortcut[b-w41b3r7j9v] {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--text-sidebar-muted);
    padding: 1px 6px;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 4px;
}

.user-menu-item-current[b-w41b3r7j9v] {
    font-size: 10.5px;
    font-weight: 600;
    color: var(--brand-teal);
    background: rgba(110, 198, 200, 0.12);
    padding: 1px 7px;
    border-radius: 8px;
}

.user-menu-item-theme[b-w41b3r7j9v] {
    background: rgba(255, 255, 255, 0.02);
}

/* === Logout — color rojo suave === */
.user-menu-item.logout[b-w41b3r7j9v] { color: #FCA5A5; }
.user-menu-item.logout .msr[b-w41b3r7j9v] { color: #FCA5A5; }

.user-menu-item.logout:hover[b-w41b3r7j9v] {
    background: rgba(163, 45, 45, 0.15);
    color: #FECACA;
}

.user-menu-item.logout:hover .msr[b-w41b3r7j9v] { color: #FECACA; }

/* Target táctil >=44px en móvil (F8W) */
@media (max-width: 640px) {
    .user-menu-item[b-w41b3r7j9v] { min-height: 44px; }
}
/* /Pages/Actividades.razor.rz.scp.css */
/* === Actividades · v2 wrapper (Fase D) === */
.act-container[b-ycbmso5zob] {
    padding: 22px 28px 36px;
    max-width: 100%;
    margin: 0 auto;
    font-family: var(--font-sans);
    color: var(--text-primary);
}

/* === Breadcrumb v2 === */
.ac-bc[b-ycbmso5zob] {
    display: flex; align-items: center; gap: 6px;
    margin-bottom: 14px; font-size: 12px;
    color: var(--text-muted); flex-wrap: wrap;
}
.ac-bc .msr[b-ycbmso5zob] { font-size: 14px !important; }
.ac-bc a[b-ycbmso5zob] { color: var(--text-secondary); text-decoration: none; cursor: pointer; transition: color 0.15s ease; }
.ac-bc a:hover[b-ycbmso5zob] { color: var(--brand-teal-deep); }
.ac-sep[b-ycbmso5zob] { color: var(--text-muted); }
.ac-clase[b-ycbmso5zob] { color: var(--text-secondary); font-weight: 500; }
.ac-current[b-ycbmso5zob] { color: var(--text-primary); font-weight: 600; }

/* === Header v2 === */
.ac-h[b-ycbmso5zob] {
    display: flex; align-items: center; gap: 14px;
    margin-bottom: 10px;
}
.ac-h-icon[b-ycbmso5zob] {
    width: 44px; height: 44px; border-radius: 12px;
    background: linear-gradient(135deg, #0891B2, #0E7490);
    color: #FFFFFF;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(8, 145, 178, 0.25);
}
.ac-h-icon .msr[b-ycbmso5zob] { font-size: 24px !important; }
.ac-h-block[b-ycbmso5zob] { flex: 1; min-width: 0; }
.ac-h-title[b-ycbmso5zob] {
    font-family: var(--font-serif);
    font-size: 28px; font-weight: 600;
    color: var(--text-primary);
    letter-spacing: -0.5px; line-height: 1.1;
    margin: 0;
}
.ac-h-sub[b-ycbmso5zob] { font-size: 13px; color: var(--text-secondary); margin: 4px 0 0; }

.act-periodo[b-ycbmso5zob] {
    font-size: 12px; color: #666; display: flex; align-items: center;
    gap: 4px; margin-bottom: 14px;
}

/* Pills */
.class-pills[b-ycbmso5zob] { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 16px; }
.pill[b-ycbmso5zob] {
    padding: 6px 14px; border-radius: 16px; font-size: 12px; cursor: pointer;
    border: 1px solid #ddd; color: #666; background: transparent; transition: all 0.15s;
}
.pill:hover[b-ycbmso5zob] { border-color: #4BA8AA; color: #4BA8AA; }
.pill.active[b-ycbmso5zob] { background: #4BA8AA; color: #fff; border-color: #4BA8AA; }

/* Loading */
.loading-state[b-ycbmso5zob] { display: flex; flex-direction: column; align-items: center; padding: 60px 20px; gap: 16px; color: #999; font-size: 14px; }
.spinner[b-ycbmso5zob] { width: 36px; height: 36px; border: 3px solid #E8F4F8; border-top: 3px solid #4BA8AA; border-radius: 50%; animation: spin-b-ycbmso5zob 0.8s linear infinite; }
@keyframes spin-b-ycbmso5zob { to { transform: rotate(360deg); } }

/* Dashboard */
.act-dash[b-ycbmso5zob] {
    display: grid; grid-template-columns: repeat(4, 1fr);
    gap: 8px; margin-bottom: 14px;
}
.act-dc[b-ycbmso5zob] { text-align: center; padding: 10px; border-radius: 8px; }
.act-dc-n[b-ycbmso5zob] { font-size: 20px; font-weight: 500; }
.act-dc-l[b-ycbmso5zob] { font-size: 10px; margin-top: 2px; }
.act-dc-teal[b-ycbmso5zob]  { background: #E8F4F8; color: #3A8E90; }
.act-dc-green[b-ycbmso5zob] { background: #EAF3DE; color: #3B6D11; }
.act-dc-amber[b-ycbmso5zob] { background: #FAEEDA; color: #854F0B; }
.act-dc-red[b-ycbmso5zob]   { background: #FCEBEB; color: #A32D2D; }

/* Avance por criterio */
.act-avance-card[b-ycbmso5zob] {
    background: #fff; border: 1px solid #e0e0e0; border-radius: 10px;
    padding: 14px 16px; margin-bottom: 14px;
}
.act-avance-title[b-ycbmso5zob] {
    font-size: 13px; font-weight: 500; color: #888; margin-bottom: 10px;
    display: flex; align-items: center; gap: 4px;
}
.act-avance-title .msr[b-ycbmso5zob] { font-size: 14px; color: #4BA8AA; }

.act-av-row[b-ycbmso5zob] { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; }
.act-av-label[b-ycbmso5zob] {
    font-size: 12px; color: #666; min-width: 120px; text-align: right;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.act-av-bar[b-ycbmso5zob] {
    flex: 1; height: 8px; background: #eee; border-radius: 4px; overflow: hidden;
}
.act-av-fill[b-ycbmso5zob] { height: 100%; border-radius: 4px; background: #4BA8AA; }
.act-av-pct[b-ycbmso5zob] { font-size: 12px; font-weight: 500; color: #3B6D11; min-width: 40px; }

/* Toolbar */
.act-toolbar[b-ycbmso5zob] {
    display: flex; gap: 8px; align-items: center;
    margin-bottom: 12px; flex-wrap: wrap;
}
.act-search[b-ycbmso5zob] {
    display: flex; align-items: center; gap: 5px;
    border: 1px solid #ddd; border-radius: 8px; padding: 6px 10px;
    flex: 1; max-width: 250px;
}
.act-search input[b-ycbmso5zob] {
    border: none; outline: none; font-size: 12px;
    width: 100%; background: transparent;
}
.act-btn[b-ycbmso5zob] {
    display: flex; align-items: center; gap: 4px;
    border: 1px solid #ddd; border-radius: 8px; padding: 6px 12px;
    font-size: 12px; cursor: pointer; background: #fff; color: #666;
    font-family: inherit;
}
.act-btn:hover[b-ycbmso5zob] { border-color: #4BA8AA; color: #4BA8AA; }
.act-btn:disabled[b-ycbmso5zob] { opacity: 0.6; cursor: not-allowed; }
.act-btn .msr[b-ycbmso5zob] { font-size: 14px; }
.act-btn-add[b-ycbmso5zob] {
    background: #4BA8AA; color: #fff; border-color: #4BA8AA; margin-left: auto;
}
.act-btn-add:hover[b-ycbmso5zob] { background: #3A8E90; color: #fff; }

/* Filter chips */
.act-filter-chips[b-ycbmso5zob] {
    display: flex; gap: 6px; margin-bottom: 14px; flex-wrap: wrap;
}
.act-fchip[b-ycbmso5zob] {
    padding: 5px 12px; border-radius: 16px; font-size: 12px; cursor: pointer;
    border: 1px solid #ddd; color: #666; background: transparent;
}
.act-fchip.active[b-ycbmso5zob] {
    background: #E8F4F8; border-color: #4BA8AA; color: #3A8E90;
}
.act-fchip-cnt[b-ycbmso5zob] { opacity: 0.6; margin-left: 2px; }

/* Empty states */
.act-empty[b-ycbmso5zob] {
    padding: 40px 20px; background: #fafafa; border: 1px dashed #ddd;
    border-radius: 10px; text-align: center; color: #999; font-size: 13px;
    display: flex; flex-direction: column; align-items: center; gap: 8px;
}
.act-empty .msr[b-ycbmso5zob] { font-size: 36px; color: #ccc; }
.act-empty-mini[b-ycbmso5zob] {
    padding: 10px 14px; background: #fafafa; border-radius: 8px;
    color: #aaa; font-size: 12px; margin-bottom: 8px;
    display: flex; align-items: center; gap: 6px;
}
.act-empty-mini .msr[b-ycbmso5zob] { font-size: 16px; color: #ccc; }

/* Separador criterio */
.act-crit-sep[b-ycbmso5zob] {
    display: flex; align-items: center; justify-content: space-between;
    margin: 16px 0 8px;
}
.act-crit-name[b-ycbmso5zob] {
    font-size: 13px; font-weight: 500; color: #4BA8AA;
    display: flex; align-items: center; gap: 4px;
}
.act-crit-name .msr[b-ycbmso5zob] { font-size: 14px; }
.act-crit-count[b-ycbmso5zob] { font-size: 12px; color: #888; }
.act-crit-tipo[b-ycbmso5zob] {
    font-size: 10px; padding: 2px 6px; border-radius: 6px;
    margin-left: 6px; font-weight: 500;
}
.tipo-simple[b-ycbmso5zob] { background: #eee; color: #888; }
.tipo-pond[b-ycbmso5zob]   { background: #E8F4F8; color: #3A8E90; }

.act-pond-info[b-ycbmso5zob] {
    padding: 6px 14px; background: #E8F4F8; border-radius: 6px;
    font-size: 11px; color: #3A8E90; margin-bottom: 8px;
    display: flex; align-items: center; gap: 4px;
}

/* Card actividad */
.act-card[b-ycbmso5zob] {
    background: #fff; border: 1px solid #e0e0e0;
    padding: 14px 16px; margin-bottom: 8px;
    border-left: 3px solid #4BA8AA;
    border-radius: 0 10px 10px 0;
}
.act-card-top[b-ycbmso5zob] {
    display: flex; align-items: flex-start; justify-content: space-between;
    gap: 10px; margin-bottom: 6px;
}
.act-card-name[b-ycbmso5zob] { font-size: 14px; font-weight: 500; flex: 1; color: #333; }
.act-card-badge[b-ycbmso5zob] {
    font-size: 10px; padding: 2px 8px; border-radius: 8px;
    font-weight: 500; flex-shrink: 0;
}
.act-card-mid[b-ycbmso5zob] {
    display: flex; align-items: center; gap: 10px; margin-bottom: 8px;
}
.act-card-bar[b-ycbmso5zob] {
    flex: 1; height: 6px; background: #eee;
    border-radius: 3px; overflow: hidden;
}
.act-card-fill[b-ycbmso5zob] { height: 100%; border-radius: 3px; }
.fill-green[b-ycbmso5zob] { background: #639922; }
.fill-amber[b-ycbmso5zob] { background: #EF9F27; }
.fill-red[b-ycbmso5zob]   { background: #E24B4A; }

.act-card-pct[b-ycbmso5zob] { font-size: 12px; font-weight: 500; min-width: 35px; text-align: right; }
.pct-green[b-ycbmso5zob] { color: #639922; }
.pct-amber[b-ycbmso5zob] { color: #854F0B; }
.pct-red[b-ycbmso5zob]   { color: #A32D2D; }

.act-card-bottom[b-ycbmso5zob] {
    display: flex; align-items: center; justify-content: space-between;
}
.act-card-count[b-ycbmso5zob] {
    font-size: 12px; color: #888;
    display: flex; align-items: center; gap: 3px;
}
.act-card-actions[b-ycbmso5zob] { display: flex; gap: 6px; }

.act-card-eval[b-ycbmso5zob] {
    display: flex; align-items: center; gap: 3px;
    padding: 5px 12px; border-radius: 6px;
    font-size: 11px; font-weight: 500; cursor: pointer;
    background: #4BA8AA; color: #fff; border: none;
    font-family: inherit;
}
.act-card-eval:hover[b-ycbmso5zob] { background: #3A8E90; }
.act-card-eval .msr[b-ycbmso5zob] { font-size: 13px; }

.act-card-del[b-ycbmso5zob] {
    display: flex; align-items: center; justify-content: center;
    width: 28px; height: 28px; border-radius: 6px;
    border: 1px solid #eee; background: #fff; cursor: pointer; color: #ccc;
}
.act-card-del:hover[b-ycbmso5zob] {
    color: #E24B4A; border-color: #F7C1C1; background: #FCEBEB;
}
.act-card-del .msr[b-ycbmso5zob] { font-size: 16px; }

/* Peso */
.act-card-peso[b-ycbmso5zob] {
    display: flex; align-items: center; gap: 8px;
    margin-top: 8px; padding-top: 8px; border-top: 1px solid #f0f0f0;
}
.act-peso-label[b-ycbmso5zob] {
    font-size: 11px; color: #888;
    display: flex; align-items: center; gap: 3px;
}
.act-peso-label .msr[b-ycbmso5zob] { font-size: 13px; }
.act-peso-bar[b-ycbmso5zob] {
    flex: 1; height: 4px; background: #eee;
    border-radius: 2px; overflow: hidden;
}
.act-peso-fill[b-ycbmso5zob] { height: 100%; background: #4BA8AA; border-radius: 2px; }
.act-peso-ctrl[b-ycbmso5zob] { display: flex; align-items: center; gap: 3px; }
.act-peso-btn[b-ycbmso5zob] {
    width: 26px; height: 26px; border-radius: 50%;
    border: 1.5px solid #4BA8AA;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; background: transparent; color: #4BA8AA;
    font-family: inherit;
}
.act-peso-btn:hover[b-ycbmso5zob] { background: #E8F4F8; }
.act-peso-btn.plus[b-ycbmso5zob] { background: #4BA8AA; color: #fff; }
.act-peso-btn.plus:hover[b-ycbmso5zob] { background: #3A8E90; }
.act-peso-val[b-ycbmso5zob] {
    min-width: 32px; height: 26px; border-radius: 4px;
    background: #E8F4F8; color: #3A8E90;
    display: flex; align-items: center; justify-content: center;
    font-size: 12px; font-weight: 500;
}

/* Resumen */
.act-resumen[b-ycbmso5zob] {
    padding: 12px 14px; background: #EAF3DE;
    border-left: 3px solid #639922;
    font-size: 12px; color: #3B6D11;
    margin-top: 14px; line-height: 1.4;
}

/* Panel overlay */
.act-panel-overlay[b-ycbmso5zob] {
    position: fixed; inset: 0; background: rgba(0,0,0,0.3);
    z-index: 50; display: flex; justify-content: flex-end;
}
.act-panel[b-ycbmso5zob] {
    width: 400px; background: #fff; height: 100%;
    overflow-y: auto; animation: slideIn-b-ycbmso5zob 0.2s ease;
}
@keyframes slideIn-b-ycbmso5zob {
    from { transform: translateX(100%); }
    to   { transform: translateX(0); }
}
.act-panel-header[b-ycbmso5zob] {
    display: flex; align-items: center; justify-content: space-between;
    padding: 16px 20px; border-bottom: 1px solid #eee;
    position: sticky; top: 0; background: #fff; z-index: 5;
}
.act-panel-title[b-ycbmso5zob] {
    font-size: 16px; font-weight: 500;
    display: flex; align-items: center; gap: 6px;
}
.act-panel-title .msr[b-ycbmso5zob] { font-size: 20px; color: #4BA8AA; }
.act-panel-close[b-ycbmso5zob] { cursor: pointer; color: #aaa; }
.act-panel-close:hover[b-ycbmso5zob] { color: #333; }

.act-panel-body[b-ycbmso5zob] { padding: 16px 20px; }

.act-panel-info[b-ycbmso5zob] {
    padding: 8px 10px; background: #E8F4F8;
    border-left: 3px solid #4BA8AA;
    font-size: 11px; color: #3A8E90;
    margin-bottom: 12px; line-height: 1.4;
    display: flex; align-items: flex-start; gap: 4px;
}

.act-pgroup[b-ycbmso5zob] { margin-bottom: 12px; }
.act-plabel[b-ycbmso5zob] {
    font-size: 11px; font-weight: 500; color: #888;
    text-transform: uppercase; letter-spacing: 0.3px;
    margin-bottom: 4px; display: block;
}
.act-pinput[b-ycbmso5zob], .act-pselect[b-ycbmso5zob] {
    width: 100%; padding: 8px 12px;
    border: 1px solid #ddd; border-radius: 8px;
    font-size: 13px; font-family: inherit;
    box-sizing: border-box;
}
.act-pinput:focus[b-ycbmso5zob], .act-pselect:focus[b-ycbmso5zob] { outline: none; border-color: #4BA8AA; }

.act-pdivider[b-ycbmso5zob] { height: 1px; background: #eee; margin: 14px 0; }

.act-palso-label[b-ycbmso5zob] { font-size: 11px; color: #888; margin-bottom: 6px; }
.act-palso-chips[b-ycbmso5zob] {
    display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 14px;
}
.act-palso-chip[b-ycbmso5zob] {
    font-size: 11px; padding: 3px 10px;
    border-radius: 12px; border: 1px solid #ddd;
    cursor: pointer; color: #888;
}
.act-palso-chip:hover[b-ycbmso5zob] { border-color: #4BA8AA; color: #4BA8AA; }
.act-palso-chip.selected[b-ycbmso5zob] {
    background: #E8F4F8; border-color: #4BA8AA; color: #3A8E90;
}

.act-psave[b-ycbmso5zob] {
    width: 100%; padding: 10px; border: none; border-radius: 8px;
    font-size: 13px; font-weight: 500; cursor: pointer;
    background: #6EC6C8; color: #fff;
    display: flex; align-items: center; justify-content: center; gap: 4px;
    font-family: inherit;
}
.act-psave:hover[b-ycbmso5zob] { background: #4BA8AA; }
.act-psave:disabled[b-ycbmso5zob] { opacity: 0.6; cursor: not-allowed; }

/* Criterio drawer extras */
.crit-total-bar[b-ycbmso5zob] {
    padding: 6px 12px; border-radius: 8px;
    font-size: 12px; font-weight: 500; margin-bottom: 14px;
    display: flex; align-items: center;
}
.crit-total-bar.ok[b-ycbmso5zob]   { background: #EAF3DE; color: #3B6D11; }
.crit-total-bar.warn[b-ycbmso5zob] { background: #FCEBEB; color: #A32D2D; }

.crit-toggle-row[b-ycbmso5zob] {
    display: flex; align-items: center; justify-content: space-between;
    padding: 8px 0;
}
.crit-toggle-label[b-ycbmso5zob] {
    font-size: 13px; display: flex; align-items: center; gap: 4px;
}
.crit-tipo-desc[b-ycbmso5zob] { margin-top: 4px; }

.cc-toggle[b-ycbmso5zob] {
    width: 40px; height: 22px; border-radius: 11px; background: #ccc;
    position: relative; cursor: pointer; transition: background 0.2s;
}
.cc-toggle.on[b-ycbmso5zob] { background: #4BA8AA; }
.cc-toggle[b-ycbmso5zob]::after {
    content: ''; position: absolute; width: 18px; height: 18px; border-radius: 50%;
    background: #fff; top: 2px; left: 2px; transition: left 0.2s;
}
.cc-toggle.on[b-ycbmso5zob]::after { left: 20px; }

.crit-existing-label[b-ycbmso5zob] { font-size: 11px; color: #888; margin-bottom: 6px; }
.crit-existing-list[b-ycbmso5zob] { margin-bottom: 14px; }
.crit-existing-item[b-ycbmso5zob] {
    display: flex; align-items: center; gap: 6px;
    padding: 4px 0; font-size: 12px;
}
.crit-existing-dot[b-ycbmso5zob] {
    width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;
}
.crit-existing-name[b-ycbmso5zob] { flex: 1; color: #555; }
.crit-existing-pct[b-ycbmso5zob] {
    font-weight: 500; color: #4BA8AA; min-width: 50px; text-align: right;
}
.crit-existing-tipo[b-ycbmso5zob] {
    font-size: 10px; padding: 1px 6px; border-radius: 6px; font-weight: 500;
}

/* Responsive */
@media (max-width: 768px) {
    .act-toolbar[b-ycbmso5zob] { flex-direction: column; align-items: stretch; }
    .act-search[b-ycbmso5zob]  { max-width: 100%; }
    .act-btn-add[b-ycbmso5zob] { margin-left: 0; justify-content: center; }
}
@media (max-width: 600px) {
    .act-dash[b-ycbmso5zob] { grid-template-columns: repeat(2, 1fr); }
    .act-av-label[b-ycbmso5zob] { min-width: 80px; }
}
@media (max-width: 480px) {
    .act-panel[b-ycbmso5zob] { width: 100%; }
    .act-card-top[b-ycbmso5zob]    { flex-direction: column; gap: 4px; }
    .act-card-bottom[b-ycbmso5zob] { flex-direction: column; align-items: flex-start; gap: 8px; }
    .act-card-actions[b-ycbmso5zob] { width: 100%; justify-content: flex-end; }
}
/* /Pages/Asistencia.razor.rz.scp.css */
/* === Asistencia · v2 wrapper (Fase D) === */
.asistencia-container[b-ppsowu0b0l] {
    padding: 22px 28px 36px;
    max-width: 100%;
    font-family: var(--font-sans);
    color: var(--text-primary);
}

/* === Breadcrumb v2 === */
.as-bc[b-ppsowu0b0l] {
    display: flex; align-items: center; gap: 6px;
    margin-bottom: 14px; font-size: 12px;
    color: var(--text-muted); flex-wrap: wrap;
}
.as-bc .msr[b-ppsowu0b0l], .as-bc .material-symbols-rounded[b-ppsowu0b0l] { font-size: 14px !important; }
.as-bc a[b-ppsowu0b0l] { color: var(--text-secondary); text-decoration: none; cursor: pointer; transition: color 0.15s ease; }
.as-bc a:hover[b-ppsowu0b0l] { color: var(--brand-teal-deep); }
.as-sep[b-ppsowu0b0l] { color: var(--text-muted); }
.as-clase[b-ppsowu0b0l] { color: var(--text-secondary); font-weight: 500; }
.as-current[b-ppsowu0b0l] { color: var(--text-primary); font-weight: 600; }

/* === Header v2 === */
.as-h[b-ppsowu0b0l] {
    display: flex; align-items: center; gap: 14px;
    margin-bottom: 20px;
}
.as-h-icon[b-ppsowu0b0l] {
    width: 44px; height: 44px; border-radius: 12px;
    background: linear-gradient(135deg, var(--brand-teal), var(--brand-teal-dark));
    color: #FFFFFF;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(110, 198, 200, 0.25);
}
.as-h-icon .msr[b-ppsowu0b0l], .as-h-icon .material-symbols-rounded[b-ppsowu0b0l] { font-size: 24px !important; }
.as-h-block[b-ppsowu0b0l] { flex: 1; min-width: 0; }
.as-h-title[b-ppsowu0b0l] {
    font-family: var(--font-serif);
    font-size: 28px; font-weight: 600;
    color: var(--text-primary);
    letter-spacing: -0.5px; line-height: 1.1;
    margin: 0;
}
.as-h-sub[b-ppsowu0b0l] { font-size: 13px; color: var(--text-secondary); margin: 4px 0 0; }

/* Toolbar */
.toolbar[b-ppsowu0b0l] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
    flex-wrap: wrap;
    gap: 12px;
}
.date-selector[b-ppsowu0b0l] {
    display: flex;
    align-items: center;
    gap: 8px;
}
.date-arrow[b-ppsowu0b0l] {
    font-size: 20px;
    color: var(--text-muted);
    cursor: pointer;
    padding: 4px;
    border-radius: var(--radius-sm, 6px);
    border: none;
    background: transparent;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s, color 0.2s;
    font-family: inherit;
}
.date-arrow:hover[b-ppsowu0b0l] { background: var(--bg-light-teal); color: var(--brand-teal-deep); }
.date-arrow:focus-visible[b-ppsowu0b0l] {
    outline: 2px solid var(--brand-teal-deep);
    outline-offset: 2px;
}
.date-display[b-ppsowu0b0l] {
    display: flex;
    align-items: center;
    gap: 8px;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md, 10px);
    padding: 8px 16px;
    cursor: pointer;
}
.date-text[b-ppsowu0b0l] { font-size: 14px; color: var(--text-primary); font-weight: 500; }
.btn-guardar[b-ppsowu0b0l] {
    background: var(--brand-teal-primary);
    color: var(--text-primary);
    padding: 8px 20px;
    border-radius: var(--radius-md, 10px);
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 1px solid transparent;
    font-family: inherit;
    box-shadow: 0 2px 6px rgba(110, 198, 200, 0.3);
    transition: background 0.15s ease, transform 0.1s ease, box-shadow 0.15s ease, opacity 0.2s;
}
.btn-guardar:hover:not(:disabled)[b-ppsowu0b0l] {
    background: var(--brand-teal-dark);
    transform: translateY(-1px);
}
.btn-guardar:disabled[b-ppsowu0b0l] { opacity: 0.6; cursor: not-allowed; }
.btn-guardar:focus-visible[b-ppsowu0b0l] {
    outline: 2px solid var(--brand-teal-deep);
    outline-offset: 2px;
}

/* Loading */
.loading-state[b-ppsowu0b0l] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 60px 20px;
    gap: 16px;
    color: var(--text-muted);
    font-size: 14px;
}
.spinner[b-ppsowu0b0l] {
    width: 36px; height: 36px;
    border: 3px solid var(--bg-light-teal);
    border-top: 3px solid var(--brand-teal-dark);
    border-radius: 50%;
    animation: spin-b-ppsowu0b0l 0.8s linear infinite;
}
@keyframes spin-b-ppsowu0b0l { to { transform: rotate(360deg); } }

/* Stats row */
.stats-row[b-ppsowu0b0l] {
    display: flex;
    gap: 16px;
    margin-bottom: 20px;
}
.stats-card[b-ppsowu0b0l] {
    background: var(--bg-panel);
    border-radius: var(--radius-lg, 14px);
    border: 1px solid var(--border-soft);
    padding: 20px 24px;
}
.stats-donut[b-ppsowu0b0l] {
    display: flex;
    align-items: center;
    gap: 20px;
    flex: 1;
}
.stats-summary[b-ppsowu0b0l] {
    min-width: 200px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.donut-wrapper[b-ppsowu0b0l] {
    position: relative;
    width: 90px;
    height: 90px;
    flex-shrink: 0;
}
.donut-svg[b-ppsowu0b0l] {
    width: 90px;
    height: 90px;
    transform: rotate(-90deg);
}
.donut-center[b-ppsowu0b0l] {
    position: absolute;
    top: 0; left: 0;
    width: 90px; height: 90px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.donut-pct[b-ppsowu0b0l] { font-size: 20px; font-weight: 600; color: var(--success-ink); }
.legend-title[b-ppsowu0b0l] {
    font-size: 11px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 8px;
}
.legend-items[b-ppsowu0b0l] { display: flex; flex-direction: column; gap: 5px; }
.legend-item[b-ppsowu0b0l] { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--text-secondary); }
.legend-dot[b-ppsowu0b0l] { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.summary-title[b-ppsowu0b0l] {
    font-size: 11px; color: var(--text-muted);
    text-transform: uppercase; letter-spacing: 0.5px;
}
.summary-row[b-ppsowu0b0l] {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.summary-label[b-ppsowu0b0l] { font-size: 13px; color: var(--text-secondary); }
.summary-value[b-ppsowu0b0l] { font-size: 15px; font-weight: 600; color: var(--text-primary); }
.summary-sin-marcar[b-ppsowu0b0l] { color: var(--warning-ink) !important; font-weight: 700; }
.progress-bar[b-ppsowu0b0l] {
    height: 6px;
    background: var(--border-soft);
    border-radius: 3px;
    overflow: hidden;
    display: flex;
    margin-top: 4px;
}
.progress-segment[b-ppsowu0b0l] { height: 100%; transition: width 0.3s; }

/* Chips upper zone */
.chips-upper[b-ppsowu0b0l] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px;
}

/* Student table (card layout) */
.student-table[b-ppsowu0b0l] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    margin-bottom: 20px;
}

/* Student card */
.student-card[b-ppsowu0b0l] {
    background: var(--bg-panel);
    border-radius: var(--radius-lg, 12px);
    padding: 6px 18px;
    transition: border-color 0.3s;
}
.student-presente[b-ppsowu0b0l] {
    border: 1.5px solid var(--border-soft);
}
.student-incidencia[b-ppsowu0b0l] {
    animation: pulse-border-b-ppsowu0b0l 2s ease-in-out infinite;
    border: 1.5px solid rgba(163, 45, 45, 0.35);
    background: rgba(163, 45, 45, 0.03);
}
.student-unmarked[b-ppsowu0b0l] {
    border: 1.5px solid var(--border-soft);
}
.student-justificada[b-ppsowu0b0l] {
    border: 1.5px solid rgba(29, 158, 117, 0.45);
    background: rgba(29, 158, 117, 0.05);
}
.student-retardo[b-ppsowu0b0l] {
    border: 1.5px solid rgba(45, 110, 163, 0.35);
    background: rgba(45, 110, 163, 0.04);
}
.nota-justificada[b-ppsowu0b0l] {
    font-size: 11px;
    color: var(--success-ink);
}
@keyframes pulse-border-b-ppsowu0b0l {
    0%, 100% { border-color: rgba(163, 45, 45, 0.25); }
    50% { border-color: rgba(163, 45, 45, 0.6); }
}

/* Row 1 */
.student-row1[b-ppsowu0b0l] {
    display: flex;
    align-items: center;
    gap: 8px;
}
.col-num[b-ppsowu0b0l] {
    width: 30px;
    text-align: center;
    font-size: 12px;
    color: var(--text-muted);
    flex-shrink: 0;
}
.col-name[b-ppsowu0b0l] {
    flex: 1;
    font-size: 13px;
    font-weight: 500;
    color: var(--text-primary);
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 8px;
}
.col-buttons[b-ppsowu0b0l] {
    display: flex;
    gap: 6px;
    flex-shrink: 0;
}

/* Badges */
.badge[b-ppsowu0b0l] {
    font-size: 10px;
    padding: 2px 8px;
    border-radius: 10px;
    font-weight: 600;
    white-space: nowrap;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    gap: 3px;
}
.badge-presente[b-ppsowu0b0l] {
    background: rgba(29, 158, 117, 0.12);
    color: var(--success-ink);
    border: 1px solid rgba(29, 158, 117, 0.25);
}
.badge-falta[b-ppsowu0b0l] {
    background: rgba(163, 45, 45, 0.10);
    color: var(--danger);
    border: 1px solid rgba(163, 45, 45, 0.25);
}
.badge-justificada[b-ppsowu0b0l] {
    background: rgba(29, 158, 117, 0.12);
    color: var(--success-ink);
    border: 1px solid rgba(29, 158, 117, 0.30);
}
.badge-retardo[b-ppsowu0b0l] {
    background: rgba(45, 110, 163, 0.12);
    color: var(--info-ink);
    border: 1px solid rgba(45, 110, 163, 0.25);
}

/* Row 2 */
.student-row2[b-ppsowu0b0l] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 2px;
    padding-left: 38px;
    flex-wrap: wrap;
}
.row2-left[b-ppsowu0b0l] {
    display: flex;
    gap: 6px;
    align-items: center;
    flex-wrap: wrap;
}
.row2-right[b-ppsowu0b0l] {
    display: flex;
    gap: 10px;
    align-items: center;
    margin-left: auto;
}
.row2-actions[b-ppsowu0b0l] {
    display: flex;
    gap: 8px;
}
.action-icon[b-ppsowu0b0l] {
    font-size: 18px;
    cursor: pointer;
    padding: 4px;
    border-radius: var(--radius-sm, 6px);
    border: none;
    background: transparent;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s, color 0.15s;
    font-family: inherit;
}
.action-icon:focus-visible[b-ppsowu0b0l] {
    outline: 2px solid var(--brand-teal-deep);
    outline-offset: 2px;
}
.action-note[b-ppsowu0b0l] { color: var(--info-ink); }
.action-note:hover[b-ppsowu0b0l] { background: var(--bg-light-teal); color: var(--brand-teal-deep); }

/* Bulk actions */
.bulk-actions[b-ppsowu0b0l] {
    display: flex;
    gap: 8px;
    margin-bottom: 10px;
}

/* Attendance buttons */
.att-btn[b-ppsowu0b0l] {
    width: 60px;
    height: 36px;
    border-radius: var(--radius-md, 8px);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 13px;
    font-family: inherit;
    transition: all 0.15s ease;
    user-select: none;
    padding: 0;
}
.att-btn:focus-visible[b-ppsowu0b0l] {
    outline: 2px solid var(--brand-teal-deep);
    outline-offset: 2px;
}
.att-inactive[b-ppsowu0b0l] {
    background: var(--bg-panel);
    color: var(--text-muted);
    border: 1px solid var(--border-soft);
}
.att-inactive:hover[b-ppsowu0b0l] {
    border-color: var(--border-med);
    color: var(--text-secondary);
    background: var(--bg-cream);
}

.att-a.active[b-ppsowu0b0l] {
    background: rgba(29, 158, 117, 0.14);
    color: var(--success-ink);
    font-weight: 700;
    border: 1.5px solid var(--success);
}
.att-f.active[b-ppsowu0b0l] {
    background: rgba(163, 45, 45, 0.14);
    color: var(--danger);
    font-weight: 700;
    border: 1.5px solid var(--danger);
}
.att-j.active[b-ppsowu0b0l] {
    background: rgba(29, 158, 117, 0.14);
    color: var(--success-ink);
    font-weight: 700;
    border: 1.5px solid var(--success);
}
.att-r.active[b-ppsowu0b0l] {
    background: rgba(45, 110, 163, 0.14);
    color: var(--info-ink);
    font-weight: 700;
    border: 1.5px solid var(--info);
}

/* Bitácora section */
.bitacora-section[b-ppsowu0b0l] {
    background: var(--bg-panel);
    border-radius: var(--radius-lg, 14px);
    border: 1px solid var(--border-soft);
    padding: 20px;
}
.bitacora-header[b-ppsowu0b0l] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 14px;
    flex-wrap: wrap;
}
.bitacora-title[b-ppsowu0b0l] { font-size: 14px; font-weight: 600; color: var(--text-primary); }
.bitacora-subtitle[b-ppsowu0b0l] { font-size: 12px; color: var(--text-secondary); }

/* Smart chips */
.chips-container[b-ppsowu0b0l] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 14px;
}
.smart-chip[b-ppsowu0b0l] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 12px;
    font-family: inherit;
    cursor: pointer;
    transition: opacity 0.2s, background 0.15s;
    border: 1px solid transparent;
}
.smart-chip:hover[b-ppsowu0b0l] { opacity: 0.85; }
.smart-chip:focus-visible[b-ppsowu0b0l] {
    outline: 2px solid var(--brand-teal-deep);
    outline-offset: 2px;
}
.chip-teal[b-ppsowu0b0l] {
    background: rgba(29, 158, 117, 0.10);
    border: 1px solid rgba(29, 158, 117, 0.30);
    color: var(--success-ink);
}
.chip-red[b-ppsowu0b0l] {
    background: rgba(163, 45, 45, 0.10);
    border: 1px solid rgba(163, 45, 45, 0.25);
    color: var(--danger);
}
.chip-orange[b-ppsowu0b0l] {
    background: rgba(186, 117, 23, 0.10);
    border: 1px solid rgba(186, 117, 23, 0.30);
    color: var(--warning-ink);
}
.chip-blue[b-ppsowu0b0l] {
    background: rgba(45, 110, 163, 0.10);
    border: 1px solid rgba(45, 110, 163, 0.25);
    color: var(--info-ink);
}

/* Bitácora input */
.bitacora-input[b-ppsowu0b0l] { margin-bottom: 12px; }
.bitacora-textarea[b-ppsowu0b0l] {
    width: 100%;
    min-height: 70px;
    padding: 14px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md, 10px);
    font-family: var(--font-sans);
    font-size: 13px;
    color: var(--text-primary);
    resize: vertical;
    background: var(--bg-cream);
    outline: none;
    transition: border-color 0.2s;
}
.bitacora-textarea:focus[b-ppsowu0b0l] { border-color: var(--brand-teal-deep); }
.bitacora-actions[b-ppsowu0b0l] { display: flex; justify-content: flex-end; }
.btn-agregar-nota[b-ppsowu0b0l] {
    background: var(--brand-teal-primary);
    color: var(--text-primary);
    padding: 8px 20px;
    border-radius: var(--radius-md, 10px);
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 1px solid transparent;
    font-family: inherit;
    box-shadow: 0 2px 6px rgba(110, 198, 200, 0.3);
    transition: background 0.15s ease, transform 0.1s ease, box-shadow 0.15s ease, opacity 0.2s;
}
.btn-agregar-nota:hover:not(:disabled)[b-ppsowu0b0l] {
    background: var(--brand-teal-dark);
    transform: translateY(-1px);
}
.btn-agregar-nota:disabled[b-ppsowu0b0l] { opacity: 0.5; cursor: not-allowed; }
.btn-agregar-nota:focus-visible[b-ppsowu0b0l] {
    outline: 2px solid var(--brand-teal-deep);
    outline-offset: 2px;
}

/* Bitácora historial */
.bitacora-historial[b-ppsowu0b0l] {
    border-top: 1px solid var(--border-soft);
    margin-top: 18px;
    padding-top: 16px;
}
.historial-title[b-ppsowu0b0l] {
    font-size: 11px; color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 12px;
}
.historial-item[b-ppsowu0b0l] {
    display: flex;
    gap: 12px;
    padding: 10px 14px;
    background: var(--bg-cream);
    border-radius: var(--radius-md, 10px);
    margin-bottom: 8px;
}
.historial-item:last-child[b-ppsowu0b0l] { margin-bottom: 0; }
.historial-bar[b-ppsowu0b0l] {
    width: 3px;
    border-radius: 2px;
    flex-shrink: 0;
    min-height: 30px;
}
.historial-content[b-ppsowu0b0l] { flex: 1; }
.historial-nota[b-ppsowu0b0l] { font-size: 12px; color: var(--text-primary); }
.historial-fecha[b-ppsowu0b0l] { font-size: 11px; color: var(--text-muted); margin-top: 3px; }

/* ========== RESPONSIVE ========== */

@media (max-width: 900px) {
    .stats-row[b-ppsowu0b0l] {
        flex-direction: column;
    }
    .stats-summary[b-ppsowu0b0l] {
        min-width: unset;
    }
    .att-btn[b-ppsowu0b0l] {
        width: 48px;
        height: 34px;
        font-size: 12px;
    }
}

@media (max-width: 700px) {
    .asistencia-container[b-ppsowu0b0l] {
        padding: 16px;
    }
    .toolbar[b-ppsowu0b0l] {
        flex-direction: column;
        align-items: stretch;
    }
    .date-selector[b-ppsowu0b0l] {
        justify-content: center;
    }
    .btn-guardar[b-ppsowu0b0l] {
        justify-content: center;
        width: 100%;
    }
    .stats-donut[b-ppsowu0b0l] {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }
    .donut-legend[b-ppsowu0b0l] {
        text-align: left;
    }
    .att-btn[b-ppsowu0b0l] {
        width: 40px;
        height: 32px;
        font-size: 11px;
        border-radius: var(--radius-sm, 6px);
    }
    .col-name[b-ppsowu0b0l] { font-size: 12px; }
    .student-card[b-ppsowu0b0l] { padding: 12px 14px; }
    .student-row2[b-ppsowu0b0l] { padding-left: 30px; }
    .action-icon[b-ppsowu0b0l] { font-size: 16px; }
    .smart-chip[b-ppsowu0b0l] { font-size: 11px; padding: 5px 10px; }
}

@media (max-width: 480px) {
    .asistencia-container[b-ppsowu0b0l] {
        padding: 12px;
    }
    .date-text[b-ppsowu0b0l] { font-size: 12px; }
    .col-num[b-ppsowu0b0l] { width: 24px; font-size: 11px; }
    .col-buttons[b-ppsowu0b0l] { gap: 3px; }
    .att-btn[b-ppsowu0b0l] {
        width: 36px;
        height: 30px;
        font-size: 11px;
        border-radius: var(--radius-sm, 6px);
    }
    .col-name[b-ppsowu0b0l] {
        font-size: 11px;
        /* Fotos de estudiantes: con el avatar de 40 px el nombre completo se cortaba («ROMERO DOMING»).
           En telefono se permite una segunda linea para que el docente lea el nombre entero al pasar lista. */
        white-space: normal;
        flex-wrap: wrap;
        row-gap: 2px;
        line-height: 1.25;
        overflow-wrap: anywhere;
    }
    .student-row2[b-ppsowu0b0l] { padding-left: 24px; gap: 8px; }
    .row2-actions[b-ppsowu0b0l] { gap: 6px; }
    .bitacora-section[b-ppsowu0b0l] { padding: 14px; }
    .smart-chip[b-ppsowu0b0l] { font-size: 11px; padding: 5px 10px; }
}

/* === T-072: Red de seguridad de pase de lista (.as-draft, .as-recuperar, etc.) === */
.tb-right[b-ppsowu0b0l] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.as-draft[b-ppsowu0b0l] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 11px;
    border-radius: 99px;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.2px;
    white-space: nowrap;
    font-family: var(--font-sans, system-ui);
}

.as-draft .msr[b-ppsowu0b0l],
.as-draft .material-symbols-rounded[b-ppsowu0b0l] {
    font-size: 15px !important;
}

.as-draft-sucio[b-ppsowu0b0l] {
    background: rgba(186, 117, 23, 0.14);
    color: var(--warning-ink, #8A5510);
}

.as-draft-guardado[b-ppsowu0b0l] {
    background: rgba(29, 158, 117, 0.12);
    color: var(--success-ink, #0B6449);
}

.as-draft-guardando[b-ppsowu0b0l] {
    background: rgba(45, 110, 163, 0.12);
    color: var(--info-ink, #215681);
}

.as-draft-fallo[b-ppsowu0b0l] {
    background: rgba(163, 45, 45, 0.12);
    color: var(--danger, #A32D2D);
}

.as-draft-spin[b-ppsowu0b0l] {
    width: 11px;
    height: 11px;
    border-radius: 50%;
    border: 2px solid rgba(33, 86, 129, 0.28);
    border-top-color: var(--info-ink, #215681);
    animation: as-spin-b-ppsowu0b0l 0.7s linear infinite;
}

@keyframes as-spin-b-ppsowu0b0l {
    to { transform: rotate(360deg); }
}

.as-recuperar[b-ppsowu0b0l] {
    display: flex;
    align-items: flex-start;
    gap: 13px;
    background: rgba(45, 110, 163, 0.10);
    border: 1px solid rgba(45, 110, 163, 0.28);
    border-left: 3px solid var(--info, #2D6EA3);
    border-radius: var(--radius-lg, 12px);
    padding: 14px 16px;
    margin-bottom: 18px;
}

.as-recuperar-icon[b-ppsowu0b0l] {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: rgba(45, 110, 163, 0.16);
    color: var(--info-ink, #215681);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.as-recuperar-icon .msr[b-ppsowu0b0l],
.as-recuperar-icon .material-symbols-rounded[b-ppsowu0b0l] {
    font-size: 20px !important;
}

.as-recuperar-body[b-ppsowu0b0l] {
    flex: 1;
    min-width: 0;
}

.as-recuperar-t[b-ppsowu0b0l] {
    font-family: var(--font-serif, Georgia, serif);
    font-size: 17px;
    font-weight: 600;
    color: var(--text-primary, #1A1C1F);
    margin: 0 0 3px;
    line-height: 1.25;
}

.as-recuperar-p[b-ppsowu0b0l] {
    font-size: 13px;
    color: var(--info-ink, #215681);
    margin: 0;
    line-height: 1.5;
}

.as-recuperar-p b[b-ppsowu0b0l] {
    font-weight: 700;
}

.as-recuperar-acts[b-ppsowu0b0l] {
    display: flex;
    gap: 8px;
    flex-shrink: 0;
    align-items: center;
    flex-wrap: wrap;
}

.student-card.cambiado[b-ppsowu0b0l] {
    border-left: 3px solid var(--warning, #BA7517) !important;
    padding-left: 11px;
}


@media (max-width: 640px) {
    .as-recuperar[b-ppsowu0b0l] {
        flex-direction: column;
        gap: 10px;
    }
    .as-recuperar-acts[b-ppsowu0b0l] {
        width: 100%;
    }
    .as-recuperar-acts[b-ppsowu0b0l]  .ui-btn {
        flex: 1;
        justify-content: center;
    }
}

@media (pointer: coarse) {
    [b-ppsowu0b0l] .ui-btn {
        min-height: 44px;
        padding-top: 11px;
        padding-bottom: 11px;
    }
    .date-arrow[b-ppsowu0b0l] {
        min-width: 44px;
        min-height: 44px;
    }
    .att-btn[b-ppsowu0b0l] {
        min-width: 44px;
        min-height: 44px;
    }
    .smart-chip[b-ppsowu0b0l] {
        min-height: 44px;
        padding-top: 10px;
        padding-bottom: 10px;
    }
    .action-icon[b-ppsowu0b0l] {
        min-width: 44px;
        min-height: 44px;
    }
    .btn-guardar[b-ppsowu0b0l] {
        min-height: 44px;
    }
    .btn-agregar-nota[b-ppsowu0b0l] {
        min-height: 44px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .as-draft-spin[b-ppsowu0b0l] {
        animation: none !important;
        border-top-color: var(--info-ink, #215681);
    }
}

/* T-115: estado vacío de una clase sin alumnos (append-only por concurrencia). */
.as-vacio-card[b-ppsowu0b0l] {
    padding: 24px;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
}

.as-vacio-nota[b-ppsowu0b0l] {
    margin: 12px 0 0;
    color: var(--text-secondary);
    text-align: center;
}

@media (max-width: 600px) {
    .as-vacio-card[b-ppsowu0b0l] { padding: 16px; }
}
/* /Pages/Bitacora.razor.rz.scp.css */
/* === Bitácora · v2 wrapper (Fase D) ===
   Solo chrome con tokens v2; el resto del CSS preservado. */
.bitacora-container[b-ms8zm5dtve] {
    padding: 22px 28px 36px;
    max-width: 100%;
    font-family: var(--font-sans);
    color: var(--text-primary);
}

/* === Breadcrumb v2 === */
.bi-breadcrumb[b-ms8zm5dtve] {
    display: flex; align-items: center; gap: 6px;
    margin-bottom: 14px; font-size: 12px;
    color: var(--text-muted); flex-wrap: wrap;
}
.bi-breadcrumb .msr[b-ms8zm5dtve] { font-size: 14px !important; }
.bi-breadcrumb a[b-ms8zm5dtve] { color: var(--text-secondary); text-decoration: none; cursor: pointer; transition: color 0.15s ease; }
.bi-breadcrumb a:hover[b-ms8zm5dtve] { color: var(--brand-teal-deep); }
.bi-sep[b-ms8zm5dtve] { color: var(--text-muted); }
.bi-clase[b-ms8zm5dtve] { color: var(--text-secondary); font-weight: 500; }
.bi-current[b-ms8zm5dtve] { color: var(--text-primary); font-weight: 600; }

/* === Header v2 === */
.bi-header[b-ms8zm5dtve] {
    display: flex; align-items: center; gap: 14px;
    margin-bottom: 20px;
}
.bi-header-icon[b-ms8zm5dtve] {
    width: 44px; height: 44px; border-radius: 12px;
    background: linear-gradient(135deg, #A32D2D, #7F1D1D);
    color: #FFFFFF;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(163, 45, 45, 0.25);
}
.bi-header-icon .msr[b-ms8zm5dtve] { font-size: 24px !important; }
.bi-title-block[b-ms8zm5dtve] { flex: 1; min-width: 0; }
.bi-title[b-ms8zm5dtve] {
    font-family: var(--font-serif);
    font-size: 28px; font-weight: 600;
    color: var(--text-primary);
    letter-spacing: -0.5px; line-height: 1.1;
    margin: 0;
}
.bi-sub[b-ms8zm5dtve] { font-size: 13px; color: var(--text-secondary); margin: 4px 0 0; }

/* Class pills */
.class-pills[b-ms8zm5dtve] { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 16px; }
.pill[b-ms8zm5dtve] {
    padding: 6px 14px; border-radius: 16px; font-size: 12px; cursor: pointer;
    border: 1px solid #ddd; color: #666; background: transparent; transition: all 0.15s;
}
.pill:hover[b-ms8zm5dtve] { border-color: #4BA8AA; color: #4BA8AA; }
.pill.active[b-ms8zm5dtve] { background: #4BA8AA; color: #fff; border-color: #4BA8AA; }

/* Loading */
.loading-state[b-ms8zm5dtve] { display: flex; flex-direction: column; align-items: center; padding: 60px 20px; gap: 16px; color: #999; font-size: 14px; }
.spinner[b-ms8zm5dtve] { width: 36px; height: 36px; border: 3px solid #E8F4F8; border-top: 3px solid #4BA8AA; border-radius: 50%; animation: spin-b-ms8zm5dtve 0.8s linear infinite; }
@keyframes spin-b-ms8zm5dtve { to { transform: rotate(360deg); } }

/* Layout 2 columnas */
.bitacora-layout[b-ms8zm5dtve] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
    gap: 20px;
    align-items: start;
}

/* ========== REGISTRO CARD ========== */
.registro-card[b-ms8zm5dtve] {
    background: #fff; border: 1px solid #e0e0e0; border-radius: 12px; padding: 16px 20px;
}
.registro-title[b-ms8zm5dtve] {
    font-size: 14px; font-weight: 500; color: #888; margin-bottom: 12px;
    display: flex; align-items: center; gap: 6px;
}
.registro-title .msr[b-ms8zm5dtve] { font-size: 16px; color: #4BA8AA; }

.registro-chips[b-ms8zm5dtve] { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.registro-chip[b-ms8zm5dtve] {
    padding: 5px 12px; border-radius: 16px; font-size: 12px; cursor: pointer;
    border: 1px solid #ddd; color: #666; background: transparent; transition: all 0.15s;
}
.registro-chip:hover[b-ms8zm5dtve] { border-color: #4BA8AA; color: #4BA8AA; }
.registro-chip.selected[b-ms8zm5dtve] { background: #E8F4F8; border-color: #4BA8AA; color: #3A8E90; }
.chip-incidencia[b-ms8zm5dtve] { border-color: #F7C1C1; color: #A32D2D; }
.chip-incidencia:hover[b-ms8zm5dtve], .chip-incidencia.selected[b-ms8zm5dtve] { background: #FCEBEB; border-color: #E24B4A; color: #791F1F; }

.registro-nota[b-ms8zm5dtve] {
    width: 100%; min-height: 80px; border: 1px solid #ddd; border-radius: 8px;
    padding: 10px 12px; font-size: 13px; font-family: inherit; resize: vertical; color: #333;
    box-sizing: border-box;
}
.registro-nota:focus[b-ms8zm5dtve] { outline: none; border-color: #4BA8AA; }

.registro-asignar[b-ms8zm5dtve] {
    display: flex; align-items: center; justify-content: space-between;
    margin: 12px 0; font-size: 13px; color: #888;
}
.asignar-label[b-ms8zm5dtve] { display: flex; align-items: center; gap: 4px; }
.asignar-botones[b-ms8zm5dtve] { display: flex; gap: 6px; }
.asignar-btn[b-ms8zm5dtve] {
    padding: 5px 12px; border-radius: 6px; font-size: 12px; border: 1px solid #ccc;
    cursor: pointer; background: #fff; color: #666; transition: all 0.15s; font-family: inherit;
}
.asignar-btn:hover[b-ms8zm5dtve] { border-color: #4BA8AA; color: #4BA8AA; }
.asignar-btn.active[b-ms8zm5dtve] { background: #4BA8AA; color: #fff; border-color: #4BA8AA; }

.alumnos-seleccionados[b-ms8zm5dtve] { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 8px; }
.alumno-chip[b-ms8zm5dtve] {
    font-size: 11px; padding: 2px 8px; border-radius: 10px; background: #E8F4F8;
    color: #3A8E90; display: flex; align-items: center; gap: 3px;
}
.chip-remove[b-ms8zm5dtve] { font-size: 12px !important; cursor: pointer; }
.chip-remove:hover[b-ms8zm5dtve] { color: #E24B4A; }
.grupo-label[b-ms8zm5dtve] { font-size: 11px; color: #aaa; padding: 2px 0; }

.selector-alumnos[b-ms8zm5dtve] { border: 1px solid #ddd; border-radius: 8px; margin-bottom: 10px; max-height: 200px; overflow-y: auto; }
.selector-search[b-ms8zm5dtve] {
    width: 100%; padding: 8px 10px; border: none; border-bottom: 1px solid #eee;
    font-size: 12px; outline: none; box-sizing: border-box; font-family: inherit;
}
.selector-lista[b-ms8zm5dtve] { max-height: 160px; overflow-y: auto; }
.selector-item[b-ms8zm5dtve] {
    display: flex; align-items: center; gap: 6px; padding: 6px 10px;
    font-size: 12px; cursor: pointer; color: #555;
}
.selector-item:hover[b-ms8zm5dtve] { background: #f5f5f5; }
.selector-item.checked[b-ms8zm5dtve] { color: #4BA8AA; font-weight: 500; }

.registro-guardar[b-ms8zm5dtve] {
    width: 100%; padding: 12px; border: none; border-radius: 8px; font-size: 14px;
    font-weight: 500; cursor: pointer; background: #6EC6C8; color: #fff;
    display: flex; align-items: center; justify-content: center; gap: 6px;
    margin-top: 4px; transition: background 0.15s; font-family: inherit;
}
.registro-guardar:hover[b-ms8zm5dtve] { background: #4BA8AA; }
.registro-guardar:disabled[b-ms8zm5dtve] { opacity: 0.6; cursor: not-allowed; }

/* ========== STATS ========== */
.bitacora-stats[b-ms8zm5dtve] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 12px; }
.bstat[b-ms8zm5dtve] { text-align: center; padding: 8px; border-radius: 8px; }
.bstat-num[b-ms8zm5dtve] { font-size: 18px; font-weight: 500; }
.bstat-label[b-ms8zm5dtve] { font-size: 10px; margin-top: 2px; }
.bstat-total[b-ms8zm5dtve] { background: #E8F4F8; color: #3A8E90; }
.bstat-manual[b-ms8zm5dtve] { background: #F3F0F8; color: #7B68A8; }
.bstat-asist[b-ms8zm5dtve] { background: #EAF3DE; color: #3B6D11; }
.bstat-eval[b-ms8zm5dtve] { background: #FAEEDA; color: #854F0B; }

/* ========== HISTORIAL ========== */
.historial-card[b-ms8zm5dtve] { background: #fff; border: 1px solid #e0e0e0; border-radius: 12px; padding: 16px 20px; }
.historial-title[b-ms8zm5dtve] {
    font-size: 14px; font-weight: 500; color: #888; margin-bottom: 12px;
    display: flex; align-items: center; gap: 6px;
}
.historial-title .msr[b-ms8zm5dtve] { font-size: 16px; color: #4BA8AA; }

.historial-toolbar[b-ms8zm5dtve] { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; gap: 8px; }
.historial-search[b-ms8zm5dtve] {
    display: flex; align-items: center; gap: 5px; border: 1px solid #ddd;
    border-radius: 8px; padding: 5px 10px; flex: 1; max-width: 220px;
}
.historial-search input[b-ms8zm5dtve] { border: none; outline: none; font-size: 12px; width: 100%; background: transparent; font-family: inherit; }
.historial-filtros[b-ms8zm5dtve] { display: flex; gap: 4px; }
.hfiltro[b-ms8zm5dtve] {
    padding: 4px 10px; border-radius: 6px; font-size: 11px; border: 1px solid #ddd;
    cursor: pointer; background: transparent; color: #888; transition: all 0.15s; font-family: inherit;
}
.hfiltro:hover[b-ms8zm5dtve] { border-color: #4BA8AA; color: #4BA8AA; }
.hfiltro.active[b-ms8zm5dtve] { background: #4BA8AA; color: #fff; border-color: #4BA8AA; }

.historial-vacio[b-ms8zm5dtve] {
    display: flex; flex-direction: column; align-items: center; padding: 40px 20px;
    gap: 8px; color: #ccc; font-size: 13px;
}

.historial-entry[b-ms8zm5dtve] {
    border: 1px solid #e8e8e8; border-radius: 10px; padding: 12px 14px;
    margin-bottom: 8px; transition: border-color 0.15s;
}
.historial-entry:hover[b-ms8zm5dtve] { border-color: #ccc; }
.entry-auto[b-ms8zm5dtve] { opacity: 0.6; border-style: dashed; }

.entry-top[b-ms8zm5dtve] { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; flex-wrap: wrap; gap: 4px; }
.entry-fecha[b-ms8zm5dtve] { font-size: 12px; font-weight: 500; color: #555; }
.entry-badges[b-ms8zm5dtve] { display: flex; gap: 4px; align-items: center; }
.entry-badge[b-ms8zm5dtve] { font-size: 10px; padding: 2px 8px; border-radius: 10px; font-weight: 500; }
.badge-manual[b-ms8zm5dtve] { background: #E8F4F8; color: #3A8E90; }
.badge-asistencia[b-ms8zm5dtve] { background: #EAF3DE; color: #3B6D11; }
.badge-evaluacion[b-ms8zm5dtve] { background: #FAEEDA; color: #854F0B; }

.entry-texto[b-ms8zm5dtve] { font-size: 13px; margin-bottom: 4px; color: #333; }
.entry-asignado[b-ms8zm5dtve] { font-size: 11px; color: #aaa; display: flex; align-items: center; gap: 3px; }

.entry-delete[b-ms8zm5dtve] {
    border: none; background: transparent; cursor: pointer; color: #ccc;
    padding: 2px; display: flex; align-items: center;
}
.entry-delete .msr[b-ms8zm5dtve] { font-size: 16px; }
.entry-delete:hover[b-ms8zm5dtve] { color: #E24B4A; }

/* ========== RESPONSIVE ========== */
@media (max-width: 768px) {
    .bitacora-container[b-ms8zm5dtve] { padding: 12px; }
    .bitacora-layout[b-ms8zm5dtve] { grid-template-columns: 1fr; }
    .historial-toolbar[b-ms8zm5dtve] { flex-direction: column; align-items: stretch; }
    .historial-search[b-ms8zm5dtve] { max-width: 100%; }
    .historial-filtros[b-ms8zm5dtve] { justify-content: flex-end; }
    .registro-asignar[b-ms8zm5dtve] { flex-direction: column; align-items: flex-start; gap: 8px; }
}

@media (max-width: 480px) {
    .bitacora-stats[b-ms8zm5dtve] { grid-template-columns: repeat(2, 1fr); }
    .registro-chips[b-ms8zm5dtve] { gap: 4px; }
    .registro-chip[b-ms8zm5dtve] { padding: 4px 8px; font-size: 11px; }
    .entry-top[b-ms8zm5dtve] { flex-direction: column; align-items: flex-start; }
}
/* /Pages/Calificaciones.razor.rz.scp.css */
/* === Calificaciones · v2 wrapper (Fase D) === */
.cal-container[b-bw1s9aaqba] {
    padding: 22px 28px 36px;
    max-width: 100%;
    font-family: var(--font-sans);
    color: var(--text-primary);
}

/* === Breadcrumb v2 === */
.cl-breadcrumb[b-bw1s9aaqba] {
    display: flex; align-items: center; gap: 6px;
    margin-bottom: 14px; font-size: 12px;
    color: var(--text-muted); flex-wrap: wrap;
}
.cl-breadcrumb .msr[b-bw1s9aaqba] { font-size: 14px !important; }
.cl-breadcrumb a[b-bw1s9aaqba] { color: var(--text-secondary); text-decoration: none; cursor: pointer; transition: color 0.15s ease; }
.cl-breadcrumb a:hover[b-bw1s9aaqba] { color: var(--brand-teal-deep); }
.cl-sep[b-bw1s9aaqba] { color: var(--text-muted); }
.cl-clase[b-bw1s9aaqba] { color: var(--text-secondary); font-weight: 500; }
.cl-current[b-bw1s9aaqba] { color: var(--text-primary); font-weight: 600; }

/* === Header v2 === */
.cl-header[b-bw1s9aaqba] {
    display: flex; align-items: center; gap: 14px;
    margin-bottom: 20px;
}
.cl-header-icon[b-bw1s9aaqba] {
    width: 44px; height: 44px; border-radius: 12px;
    background: linear-gradient(135deg, #7C3AED, #5B21B6);
    color: #FFFFFF;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(124, 58, 237, 0.25);
}
.cl-header-icon .msr[b-bw1s9aaqba] { font-size: 24px !important; }
.cl-title-block[b-bw1s9aaqba] { flex: 1; min-width: 0; }
.cl-title[b-bw1s9aaqba] {
    font-family: var(--font-serif);
    font-size: 28px; font-weight: 600;
    color: var(--text-primary);
    letter-spacing: -0.5px; line-height: 1.1;
    margin: 0;
}
.cl-sub[b-bw1s9aaqba] { font-size: 13px; color: var(--text-secondary); margin: 4px 0 0; }

/* Pills */
.class-pills[b-bw1s9aaqba] { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 16px; }
.pill[b-bw1s9aaqba] {
    padding: 6px 14px; border-radius: 16px; font-size: 12px; cursor: pointer;
    border: 1px solid #ddd; color: #666; background: transparent; transition: all 0.15s;
}
.pill:hover[b-bw1s9aaqba] { border-color: #4BA8AA; color: #4BA8AA; }
.pill.active[b-bw1s9aaqba] { background: #4BA8AA; color: #fff; border-color: #4BA8AA; }

/* Loading */
.loading-state[b-bw1s9aaqba] { display: flex; flex-direction: column; align-items: center; padding: 60px 20px; gap: 16px; color: #999; font-size: 14px; }
.spinner[b-bw1s9aaqba] { width: 36px; height: 36px; border: 3px solid #E8F4F8; border-top: 3px solid #4BA8AA; border-radius: 50%; animation: spin-b-bw1s9aaqba 0.8s linear infinite; }
@keyframes spin-b-bw1s9aaqba { to { transform: rotate(360deg); } }

/* Toolbar */
.cal-toolbar[b-bw1s9aaqba] { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; flex-wrap: wrap; }
.cal-toolbar-left[b-bw1s9aaqba] { display: flex; gap: 8px; align-items: center; flex: 1; }
.cal-toolbar-right[b-bw1s9aaqba] { display: flex; gap: 6px; }
.cal-search[b-bw1s9aaqba] { display: flex; align-items: center; gap: 5px; border: 1px solid #ddd; border-radius: 8px; padding: 6px 10px; width: 200px; }
.cal-search input[b-bw1s9aaqba] { border: none; outline: none; font-size: 12px; width: 100%; background: transparent; font-family: inherit; }
.cal-periodo-select[b-bw1s9aaqba] { padding: 6px 12px; border: 1px solid #ddd; border-radius: 8px; font-size: 12px; color: #333; background: #fff; font-family: inherit; }
.cal-btn[b-bw1s9aaqba] {
    display: flex; align-items: center; gap: 4px; border: 1px solid #ddd; border-radius: 8px;
    padding: 6px 12px; font-size: 12px; cursor: pointer; background: #fff; color: #666;
    transition: all 0.15s; font-family: inherit;
}
.cal-btn:hover[b-bw1s9aaqba] { border-color: #4BA8AA; color: #4BA8AA; }
.cal-btn .msr[b-bw1s9aaqba] { font-size: 14px; }

/* Dashboard */
.cal-dashboard[b-bw1s9aaqba] { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; margin-bottom: 14px; }
.cal-stat[b-bw1s9aaqba] { text-align: center; padding: 10px; border-radius: 8px; }
.cal-stat-num[b-bw1s9aaqba] { font-size: 20px; font-weight: 500; }
.cal-stat-label[b-bw1s9aaqba] { font-size: 10px; margin-top: 2px; }
.cal-stat-teal[b-bw1s9aaqba] { background: #E8F4F8; color: #3A8E90; }
.cal-stat-green[b-bw1s9aaqba] { background: #EAF3DE; color: #3B6D11; }
.cal-stat-red[b-bw1s9aaqba] { background: #FCEBEB; color: #A32D2D; }
.cal-stat-amber[b-bw1s9aaqba] { background: #FAEEDA; color: #854F0B; }
.cal-stat-purple[b-bw1s9aaqba] { background: #F3F0F8; color: #7B68A8; }

/* Distribution chart */
.cal-dist-section[b-bw1s9aaqba] { margin-bottom: 16px; }
.cal-dist-chart[b-bw1s9aaqba] { position: relative; height: 120px; margin-bottom: 8px; }
.cal-dist-legend[b-bw1s9aaqba] { display: flex; flex-wrap: wrap; gap: 12px; font-size: 11px; color: #888; }
.cal-dist-item[b-bw1s9aaqba] { display: flex; align-items: center; gap: 3px; }
.cal-dist-dot[b-bw1s9aaqba] { width: 8px; height: 8px; border-radius: 2px; display: inline-block; }

/* Table */
.cal-table-wrap[b-bw1s9aaqba] { border: 1px solid #ddd; border-radius: 12px; overflow: hidden; }
.cal-table-scroll[b-bw1s9aaqba] { overflow-x: auto; }
.cal-table[b-bw1s9aaqba] { border-collapse: separate; border-spacing: 0; width: 100%; min-width: 900px; }
.cal-table th[b-bw1s9aaqba] {
    background: #E8F4F8; font-weight: 500; font-size: 12px; padding: 10px 8px;
    text-align: center; border-bottom: 2px solid #6EC6C8; white-space: nowrap;
}
.cal-th-alumno[b-bw1s9aaqba] {
    text-align: left !important; padding-left: 14px !important; min-width: 230px;
    position: sticky; left: 0; z-index: 15; background: #E8F4F8; cursor: pointer;
    box-shadow: 4px 0 6px -2px rgba(0,0,0,0.08);
}
.cal-th-sort[b-bw1s9aaqba] { cursor: pointer; min-width: 90px; }
.cal-table td[b-bw1s9aaqba] { padding: 8px; text-align: center; font-size: 13px; border-bottom: 1px solid #eee; }
.cal-td-alumno[b-bw1s9aaqba] {
    text-align: left !important; padding-left: 14px !important; min-width: 230px;
    position: sticky; left: 0; z-index: 5; background: #fff;
    box-shadow: 4px 0 6px -2px rgba(0,0,0,0.05);
}
.cal-table tr:hover td[b-bw1s9aaqba] { background: rgba(75,168,170,0.04); }
.cal-table tr:hover .cal-td-alumno[b-bw1s9aaqba] { background: #EFF8F8; }
.cal-alumno-name[b-bw1s9aaqba] { font-weight: 500; font-size: 13px; }

/* Nota colors */
.cal-nota[b-bw1s9aaqba] { border-radius: 6px; padding: 3px 8px; font-size: 13px; font-weight: 500; display: inline-block; min-width: 36px; }
.cal-nota-10[b-bw1s9aaqba] { background: #E8F8E0; color: #2D7A06; }
.cal-nota-9[b-bw1s9aaqba] { background: #E8F8E0; color: #4A8C1A; }
.cal-nota-8[b-bw1s9aaqba] { background: #EAF3DE; color: #5A9A2E; }
.cal-nota-7[b-bw1s9aaqba] { background: #FAEEDA; color: #856404; }
.cal-nota-6[b-bw1s9aaqba] { background: #FFF0D0; color: #9A6B09; }
.cal-nota-5[b-bw1s9aaqba] { background: #F8D7DA; color: #A32D2D; }

/* Faltas */
.cal-faltas[b-bw1s9aaqba] { font-size: 12px; font-weight: 500; }
.cal-faltas-ok[b-bw1s9aaqba] { color: #639922; }
.cal-faltas-warn[b-bw1s9aaqba] { color: #EF9F27; }
.cal-faltas-bad[b-bw1s9aaqba] { color: #E24B4A; }

/* Puntos extra */
.cal-pe-pos[b-bw1s9aaqba] { color: #639922; font-size: 12px; font-weight: 500; }
.cal-pe-zero[b-bw1s9aaqba] { color: #ccc; font-size: 12px; }

/* Category header */
.cal-cat-header[b-bw1s9aaqba] { font-size: 11px; line-height: 1.2; }
.cal-cat-pct[b-bw1s9aaqba] { font-size: 10px; opacity: 0.6; font-weight: 400; }

/* Responsive */
@media (max-width: 768px) {
    .cal-container[b-bw1s9aaqba] { padding: 12px; }
    .cal-th-alumno[b-bw1s9aaqba], .cal-td-alumno[b-bw1s9aaqba] { min-width: 170px; }
}
@media (max-width: 600px) {
    .cal-toolbar[b-bw1s9aaqba] { flex-direction: column; align-items: stretch; }
    .cal-toolbar-left[b-bw1s9aaqba] { flex-direction: column; }
    .cal-search[b-bw1s9aaqba] { width: 100%; }
    .cal-toolbar-right[b-bw1s9aaqba] { justify-content: flex-end; }
    .cal-dashboard[b-bw1s9aaqba] { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 480px) {
    .cal-th-alumno[b-bw1s9aaqba], .cal-td-alumno[b-bw1s9aaqba] { min-width: 140px; }
    .cal-alumno-name[b-bw1s9aaqba] { font-size: 12px; }
    .cal-dashboard[b-bw1s9aaqba] { grid-template-columns: repeat(2, 1fr); }
}

.cal-vacio-card[b-bw1s9aaqba] {
    padding: 24px;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
}

.cal-vacio-nota[b-bw1s9aaqba] {
    margin: 12px 0 0;
    color: var(--text-secondary);
    text-align: center;
}

@media (max-width: 600px) {
    .cal-vacio-card[b-bw1s9aaqba] { padding: 16px; }
}
/* /Pages/CitatorioEnlace.razor.rz.scp.css */
/* Liga personal del citatorio (familias sin app). Movil primero; tokens de tokens.css. */

.ce-page[b-bcbosgvbnr] {
    max-width: 520px; margin: 0 auto; padding: 16px 16px 40px;
    display: flex; flex-direction: column; gap: 14px;
    font-family: var(--font-sans); color: var(--text-primary);
}

.ce-page .ce-brand[b-bcbosgvbnr] { padding: 6px 2px 2px; font-size: 20px; }
.ce-page .ce-mi[b-bcbosgvbnr] { font-family: var(--font-serif); font-style: italic; color: var(--brand-teal-dark); }
.ce-page .ce-escolar[b-bcbosgvbnr] { font-weight: 800; color: var(--text-primary); }

.ce-page .ce-center[b-bcbosgvbnr] { display: grid; place-items: center; padding: 64px 0; }
.ce-page .ce-center.small[b-bcbosgvbnr] { padding: 16px 0; }
.ce-page .ce-spin[b-bcbosgvbnr] { width: 34px; height: 34px; border-radius: 50%; border: 3px solid var(--border-soft); border-top-color: var(--brand-teal-dark); animation: ce-rot-b-bcbosgvbnr .8s linear infinite; }
@keyframes ce-rot-b-bcbosgvbnr { to { transform: rotate(360deg); } }

.ce-page .ce-hero[b-bcbosgvbnr] {
    border-radius: 24px; padding: 20px 20px 18px; color: #fff;
    background: linear-gradient(135deg, var(--bg-sidebar), var(--bg-sidebar-hover));
    box-shadow: var(--shadow-lg); position: relative; overflow: hidden;
    animation: ce-in-b-bcbosgvbnr 360ms var(--ease);
}
.ce-page .ce-hero[b-bcbosgvbnr]::after {
    pointer-events: none;
    content: ""; position: absolute; right: -60px; top: -60px; width: 180px; height: 180px; border-radius: 50%;
    background: radial-gradient(circle, rgba(110, 198, 200, .35), transparent 70%);
}
.ce-page .ce-hero-top[b-bcbosgvbnr] { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.ce-page .ce-kicker[b-bcbosgvbnr] { font-size: 11px; font-weight: 700; letter-spacing: .12em; color: var(--brand-teal-primary); }
.ce-page .ce-count[b-bcbosgvbnr] { background: var(--brand-teal-primary); color: var(--bg-sidebar); font-size: 12px; font-weight: 700; padding: 5px 12px; border-radius: 999px; }
.ce-page .ce-hero > *[b-bcbosgvbnr] { position: relative; z-index: 1; }
.ce-page .ce-hero h1[b-bcbosgvbnr] { color: #fff; margin: 12px 0 0; font-family: var(--font-serif); font-size: 30px; font-weight: 600; line-height: 1.1; }
.ce-page .ce-hora[b-bcbosgvbnr] { margin: 4px 0 0; font-size: 19px; font-weight: 700; color: var(--brand-teal-primary); }
.ce-page .ce-alumno[b-bcbosgvbnr] { margin: 10px 0 0; font-size: 13.5px; color: rgba(255, 255, 255, .72); }
.ce-page .ce-alumno b[b-bcbosgvbnr] { color: #fff; }
@keyframes ce-in-b-bcbosgvbnr { from { transform: translateY(8px); opacity: 0; } }

.ce-page .ce-card[b-bcbosgvbnr] { background: var(--bg-panel); border: 1px solid var(--border-soft); border-radius: 20px; padding: 16px 18px; box-shadow: var(--shadow-sm); }
.ce-page .ce-card h2[b-bcbosgvbnr] { margin: 0 0 6px; font-family: var(--font-serif); font-size: 18px; font-weight: 600; }
.ce-page .ce-motivo[b-bcbosgvbnr] { margin: 0; font-size: 14.5px; line-height: 1.45; color: var(--text-secondary); }
.ce-page .ce-help[b-bcbosgvbnr] { margin: 0 0 12px; font-size: 13px; color: var(--text-secondary); }

.ce-page .ce-empty[b-bcbosgvbnr] { text-align: center; padding: 32px 22px; margin-top: 24px; }
.ce-page .ce-empty > .msr[b-bcbosgvbnr] { font-size: 40px; color: var(--brand-teal-dark); }
.ce-page .ce-empty h1[b-bcbosgvbnr] { font-family: var(--font-serif); font-size: 22px; margin: 8px 0 6px; }
.ce-page .ce-empty p[b-bcbosgvbnr] { margin: 0 0 14px; font-size: 14px; color: var(--text-secondary); }

.ce-page .ce-facts[b-bcbosgvbnr] { display: flex; flex-direction: column; gap: 12px; }
.ce-page .ce-fact[b-bcbosgvbnr] { display: flex; align-items: center; gap: 12px; }
.ce-page .ce-fact > .msr[b-bcbosgvbnr] { width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; background: var(--bg-light-teal); color: var(--brand-teal-deep); font-size: 21px; flex: none; }
.ce-page .ce-fact small[b-bcbosgvbnr] { display: block; font-size: 11.5px; color: var(--text-muted); }
.ce-page .ce-fact b[b-bcbosgvbnr] { font-size: 15px; }

.ce-page .ce-msg[b-bcbosgvbnr] { display: flex; align-items: center; gap: 8px; padding: 12px 14px; border-radius: 14px; font-size: 13.5px; font-weight: 600; }
.ce-page .ce-msg .msr[b-bcbosgvbnr] { font-size: 20px; flex: none; }
.ce-page .ce-msg.ok[b-bcbosgvbnr] { background: var(--cit-ok-bg); color: var(--cit-ok-ink); }
.ce-page .ce-msg.err[b-bcbosgvbnr] { background: var(--cit-no-bg); color: var(--cit-no-ink); }
.ce-page .ce-msg.info[b-bcbosgvbnr] { background: var(--cit-rep-bg); color: var(--cit-rep-ink); }
.ce-page .ce-msg.warn[b-bcbosgvbnr] { background: var(--cit-pend-bg); color: var(--cit-pend-ink); }
.ce-page .ce-msg.neutral[b-bcbosgvbnr] { background: var(--cit-can-bg); color: var(--cit-can-ink); }

.ce-page .ce-slots[b-bcbosgvbnr] { display: flex; flex-direction: column; gap: 8px; }
.ce-page .ce-slot[b-bcbosgvbnr] {
    display: flex; justify-content: space-between; align-items: center; width: 100%; padding: 13px 16px;
    border-radius: 14px; border: 1px solid var(--border-soft); background: var(--bg-cream);
    font: 600 14px/1.2 var(--font-sans); color: var(--text-primary); cursor: pointer; text-align: left;
    transition: border-color 150ms var(--ease), background 150ms var(--ease);
}
.ce-page .ce-slot b[b-bcbosgvbnr] { font-family: var(--font-serif); font-size: 18px; color: var(--brand-teal-deep); }
.ce-page .ce-slot.on[b-bcbosgvbnr] { border: 2px solid var(--brand-teal-deep); background: var(--bg-light-teal); padding: 12px 15px; }

.ce-page .ce-actions[b-bcbosgvbnr] { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; }
.ce-page .ce-actions.stack[b-bcbosgvbnr] { flex-direction: column; margin-top: 2px; }
.ce-page .ce-btn[b-bcbosgvbnr] {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 44px; padding: 0 18px;
    border-radius: 14px; border: 1px solid transparent; font: 700 14.5px/1 var(--font-sans); cursor: pointer;
    transition: transform 150ms var(--ease), box-shadow 150ms var(--ease);
}
.ce-page .ce-btn .msr[b-bcbosgvbnr] { font-size: 20px; }
.ce-page .ce-btn.big[b-bcbosgvbnr] { height: 54px; width: 100%; font-size: 16px; }
.ce-page .ce-btn.primary[b-bcbosgvbnr] { background: linear-gradient(135deg, var(--brand-teal-dark), var(--brand-teal-deep)); color: #fff; box-shadow: 0 8px 18px rgba(44, 109, 111, .28); }
.ce-page .ce-btn.primary:hover:not(:disabled)[b-bcbosgvbnr] { transform: translateY(-1px); }
.ce-page .ce-btn.ghost[b-bcbosgvbnr] { background: var(--bg-panel); border-color: var(--border-med); color: var(--brand-teal-deep); }
.ce-page .ce-btn:disabled[b-bcbosgvbnr] { opacity: .5; cursor: not-allowed; box-shadow: none; }

.ce-page .ce-foot[b-bcbosgvbnr] { text-align: center; font-size: 12px; color: var(--text-muted); margin: 8px 0 0; }

@media (prefers-reduced-motion: reduce) {
    .ce-page .ce-hero[b-bcbosgvbnr], .ce-page .ce-spin[b-bcbosgvbnr] { animation: none; }
}
/* /Pages/Comunicacion/Bandeja.razor.rz.scp.css */
/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Bandeja â€” replica de `micomunidad-bandeja-v3.html`
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */

.bdj-page[b-oic1eygpda] {
    display: grid;
    grid-template-columns: 1fr 320px;
    height: 100vh;
    overflow: hidden;
    font-family: var(--font-sans);
    color: var(--text-primary);
    background: var(--bg);
}

.bdj-main[b-oic1eygpda] {
    overflow-y: auto;
    background:
        radial-gradient(circle at 15% 10%, rgba(110, 198, 200, 0.06) 0%, transparent 45%),
        radial-gradient(circle at 90% 90%, rgba(217, 119, 6, 0.03) 0%, transparent 50%),
        var(--bg);
    display: flex;
    flex-direction: column;
}

.bdj-main[b-oic1eygpda]::-webkit-scrollbar { width: 10px; }
.bdj-main[b-oic1eygpda]::-webkit-scrollbar-thumb {
    background: #C7C0B1;
    border-radius: 5px;
    border: 2px solid transparent;
    background-clip: padding-box;
}

/* â•â•â•â• Page header sticky â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.bdj-page-header[b-oic1eygpda] {
    padding: 22px 32px 0;
    background: var(--bg);
    position: sticky;
    top: 0;
    z-index: 4;
}

.bdj-breadcrumb[b-oic1eygpda] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 500;
    color: var(--text-muted);
    margin-bottom: 8px;
}

.bdj-breadcrumb .material-symbols-rounded[b-oic1eygpda] { font-size: 14px !important; }
.bdj-breadcrumb a[b-oic1eygpda] { color: var(--text-secondary); text-decoration: none; }
.bdj-sep[b-oic1eygpda] { color: var(--text-muted); }
.bdj-current[b-oic1eygpda] { color: var(--text-primary); font-weight: 700; }

.bdj-title-row[b-oic1eygpda] {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 4px;
}

.bdj-title-icon[b-oic1eygpda] {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--brand-teal), var(--brand-teal-dark));
    color: #FFFFFF;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(110, 198, 200, 0.25);
}

.bdj-title-icon .material-symbols-rounded[b-oic1eygpda] { font-size: 24px !important; }

.bdj-title-block[b-oic1eygpda] { flex: 1; }

.bdj-title[b-oic1eygpda] {
    font-family: var(--font-serif);
    font-size: 28px;
    font-weight: 600;
    color: var(--text-primary);
    letter-spacing: -0.5px;
    line-height: 1.1;
}

.bdj-sub[b-oic1eygpda] {
    font-size: 13px;
    color: var(--text-secondary);
    margin-top: 4px;
}

.bdj-actions[b-oic1eygpda] {
    display: flex;
    gap: 6px;
    align-items: center;
}

/* Fase 2C.2: boton primario "Nuevo aviso" (solo directivos). */
.bdj-nuevo-aviso[b-oic1eygpda] {
    padding: 8px 14px;
    font-size: 12.5px;
    font-weight: 600;
    border-radius: 9px;
    border: 1px solid var(--brand-teal-deep);
    background: var(--brand-teal-primary);
    color: var(--text-primary);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: all 0.15s;
    font-family: inherit;
}
.bdj-nuevo-aviso:hover[b-oic1eygpda] { background: var(--brand-teal-dark); border-color: var(--brand-teal-dark); }
.bdj-nuevo-aviso .material-symbols-rounded[b-oic1eygpda] { font-size: 18px !important; }

.bdj-icon-btn[b-oic1eygpda] {
    width: 36px;
    height: 36px;
    border-radius: 9px;
    border: 1px solid var(--border-soft);
    background: var(--bg-panel);
    color: var(--text-secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.15s;
    font-family: inherit;
}

.bdj-icon-btn:hover[b-oic1eygpda] {
    border-color: var(--brand-teal);
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
}

.bdj-icon-btn .material-symbols-rounded[b-oic1eygpda] { font-size: 18px !important; }

.bdj-mark-all[b-oic1eygpda] {
    padding: 8px 14px;
    font-size: 12.5px;
    font-weight: 600;
    border-radius: 9px;
    border: 1px solid var(--border-soft);
    background: var(--bg-panel);
    color: var(--text-secondary);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: all 0.15s;
    font-family: inherit;
}

.bdj-mark-all:hover[b-oic1eygpda] {
    border-color: var(--brand-teal);
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
}

.bdj-mark-all .material-symbols-rounded[b-oic1eygpda] { font-size: 16px !important; }

/* â•â•â•â• Tabs â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.bdj-tabs[b-oic1eygpda] {
    display: flex;
    gap: 4px;
    padding: 18px 32px 0;
    border-bottom: 1px solid var(--border-soft);
    position: sticky;
    top: 110px;
    background: var(--bg);
    z-index: 3;
}

.bdj-tab[b-oic1eygpda] {
    padding: 10px 18px;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--text-secondary);
    cursor: pointer;
    border: none;
    border-bottom: 2.5px solid transparent;
    margin-bottom: -1px;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: all 0.15s;
    background: transparent;
    font-family: inherit;
}

.bdj-tab:hover[b-oic1eygpda] { color: var(--text-primary); }

.bdj-tab.active[b-oic1eygpda] {
    color: var(--brand-teal-deep);
    border-bottom-color: var(--brand-teal);
}

.bdj-tab .material-symbols-rounded[b-oic1eygpda] { font-size: 16px !important; }

.bdj-tab-count[b-oic1eygpda] {
    font-size: 10.5px;
    font-weight: 700;
    padding: 1px 7px;
    background: #F0ECE2;
    color: var(--text-secondary);
    border-radius: 10px;
}

.bdj-tab.active .bdj-tab-count[b-oic1eygpda] {
    background: var(--bg-light-teal);
    color: var(--brand-teal-deep);
}

.bdj-tab-count.urgent[b-oic1eygpda] { background: #FEE2E2; color: var(--danger); }

.bdj-tab.active .bdj-tab-count.urgent[b-oic1eygpda] {
    background: rgba(163, 45, 45, 0.15);
    color: var(--danger);
}

/* â•â•â•â• Filter bar â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.bdj-filter-bar[b-oic1eygpda] {
    padding: 14px 32px 12px;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.bdj-filter-chips[b-oic1eygpda] {
    display: flex;
    gap: 5px;
    align-items: center;
    flex-wrap: wrap;
}

.bdj-filter-chip[b-oic1eygpda] {
    padding: 5px 12px;
    font-family: inherit;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
    border-radius: 16px;
    border: 1px solid var(--border-soft);
    background: var(--bg-panel);
    color: var(--text-secondary);
    cursor: pointer;
    transition: all 0.15s;
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.bdj-filter-chip:focus-visible[b-oic1eygpda] {
    outline: 2px solid var(--brand-teal);
    outline-offset: 2px;
}

.bdj-filter-chip:hover[b-oic1eygpda] {
    border-color: var(--brand-teal);
    color: var(--brand-teal-deep);
}

.bdj-filter-chip.active[b-oic1eygpda] {
    background: var(--bg-light-teal);
    border-color: var(--brand-teal);
    color: var(--brand-teal-deep);
}

.bdj-filter-chip.priority-urgent[b-oic1eygpda] {
    background: #FEE2E2;
    border-color: #FCA5A5;
    color: var(--danger);
}

.bdj-filter-chip .material-symbols-rounded[b-oic1eygpda] { font-size: 13px !important; }

.bdj-filter-chip-count[b-oic1eygpda] {
    font-size: 10px;
    font-weight: 700;
    padding: 1px 6px;
    background: #F0ECE2;
    border-radius: 8px;
    color: var(--text-muted);
}

.bdj-filter-chip.active .bdj-filter-chip-count[b-oic1eygpda] {
    background: rgba(110, 198, 200, 0.2);
    color: var(--brand-teal-deep);
}

.bdj-filter-divider[b-oic1eygpda] {
    width: 1px;
    height: 18px;
    background: var(--border-soft);
    margin: 0 4px;
}

/* Resaltado temporal (botÃ³n "tune" del header) */
.bdj-filter-bar-highlight[b-oic1eygpda] {
    animation: bdj-filter-pulse-b-oic1eygpda 2s ease-out 1;
    border-radius: 10px;
}

@keyframes bdj-filter-pulse-b-oic1eygpda {
    0%   { background: rgba(110, 198, 200, 0.28); box-shadow: 0 0 0 3px rgba(110, 198, 200, 0.35); }
    70%  { background: rgba(110, 198, 200, 0.12); box-shadow: 0 0 0 0 rgba(110, 198, 200, 0); }
    100% { background: transparent; box-shadow: 0 0 0 0 rgba(110, 198, 200, 0); }
}

/* â•â•â•â• Content / dÃ­as / notifs â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.bdj-content[b-oic1eygpda] {
    padding: 8px 32px 40px;
    flex: 1;
}

.bdj-day-group[b-oic1eygpda] { margin-bottom: 20px; }

.bdj-day-header[b-oic1eygpda] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 4px 12px;
    position: sticky;
    top: 218px;
    background: var(--bg);
    z-index: 2;
}

.bdj-day-label[b-oic1eygpda] {
    font-family: var(--font-serif);
    font-size: 16px;
    font-weight: 600;
    color: var(--text-primary);
    letter-spacing: -0.2px;
}

.bdj-day-date[b-oic1eygpda] {
    font-size: 11.5px;
    color: var(--text-muted);
    font-weight: 500;
}

.bdj-day-line[b-oic1eygpda] {
    flex: 1;
    height: 1px;
    background: var(--border-soft);
}

.bdj-day-count[b-oic1eygpda] {
    font-size: 10.5px;
    font-weight: 700;
    color: var(--text-muted);
    padding: 2px 8px;
    background: var(--bg-panel);
    border-radius: 10px;
    border: 1px solid var(--border-soft);
}

/* â•â•â•â• Notif card â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.bdj-notif[b-oic1eygpda] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: 12px;
    padding: 14px 16px;
    margin-bottom: 8px;
    cursor: pointer;
    display: grid;
    grid-template-columns: 44px 1fr auto;
    gap: 14px;
    transition: all 0.15s;
    position: relative;
    align-items: flex-start;
}

.bdj-notif:hover[b-oic1eygpda] {
    border-color: var(--border-med);
    box-shadow: var(--shadow-sm);
    transform: translateY(-1px);
}

.bdj-notif.unread[b-oic1eygpda] {
    border-left: 3px solid var(--brand-teal);
    padding-left: 13px;
    background: linear-gradient(90deg, rgba(110, 198, 200, 0.04) 0%, var(--bg-panel) 30%);
}

.bdj-notif.urgent[b-oic1eygpda] {
    border-color: #FCA5A5;
    background: linear-gradient(90deg, #FEF2F2 0%, var(--bg-panel) 40%);
    border-left: 3px solid var(--danger);
    padding-left: 13px;
}

.bdj-notif.urgent[b-oic1eygpda]::before {
    content: "URGENTE";
    position: absolute;
    top: 12px;
    right: 60px;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.5px;
    color: var(--danger);
    padding: 2px 6px;
    background: rgba(163, 45, 45, 0.1);
    border-radius: 4px;
}

.bdj-notif-icon[b-oic1eygpda] {
    width: 40px;
    height: 40px;
    border-radius: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #FFFFFF;
    flex-shrink: 0;
}

.bdj-notif-icon.alumno[b-oic1eygpda]   { background: linear-gradient(135deg, var(--t-concurso), #991B1B); }
.bdj-notif-icon.task[b-oic1eygpda]     { background: linear-gradient(135deg, #F59E0B, var(--t-nem)); }
.bdj-notif-icon.approval[b-oic1eygpda] { background: linear-gradient(135deg, #10B981, #047857); }
.bdj-notif-icon.aviso[b-oic1eygpda]    { background: linear-gradient(135deg, var(--pin-gold), #92400E); }
.bdj-notif-icon.deadline[b-oic1eygpda] { background: linear-gradient(135deg, var(--warning), #92400E); }
.bdj-notif-icon.system[b-oic1eygpda]   { background: linear-gradient(135deg, var(--t-proceso), #374151); }

.bdj-notif-icon .material-symbols-rounded[b-oic1eygpda] { font-size: 22px !important; }

.bdj-notif-avatar[b-oic1eygpda] {
    width: 40px;
    height: 40px;
    border-radius: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #FFFFFF;
    font-weight: 700;
    font-size: 14px;
    flex-shrink: 0;
    position: relative;
    font-family: var(--font-sans);
}

.bdj-notif-source[b-oic1eygpda] {
    position: absolute;
    bottom: -4px;
    right: -4px;
    width: 18px;
    height: 18px;
    border-radius: 6px;
    border: 2px solid var(--bg-panel);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #FFFFFF;
}

.bdj-notif-source.chat[b-oic1eygpda]    { background: var(--brand-teal-dark); }
.bdj-notif-source.project[b-oic1eygpda] { background: var(--t-nem); }

.bdj-notif-source .material-symbols-rounded[b-oic1eygpda] {
    font-size: 10px !important;
    font-variation-settings: "FILL" 1 !important;
}

.bdj-notif-body[b-oic1eygpda] { min-width: 0; }

.bdj-notif-head[b-oic1eygpda] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 3px;
}

.bdj-notif-title[b-oic1eygpda] {
    font-size: 14px;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.3;
}

.bdj-notif-tag[b-oic1eygpda] {
    font-size: 10px;
    font-weight: 700;
    padding: 1px 6px;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    white-space: nowrap;
}

.bdj-notif-tag.chat[b-oic1eygpda]     { background: rgba(75, 168, 170, 0.15); color: var(--brand-teal-deep); }
.bdj-notif-tag.proyecto[b-oic1eygpda] { background: rgba(217, 119, 6, 0.12); color: var(--t-nem); }
.bdj-notif-tag.proceso[b-oic1eygpda]  { background: rgba(107, 114, 128, 0.15); color: #4B5563; }
.bdj-notif-tag.evento[b-oic1eygpda]   { background: rgba(219, 39, 119, 0.12); color: var(--t-evento); }

.bdj-notif-desc[b-oic1eygpda] {
    font-size: 12.5px;
    color: var(--text-secondary);
    line-height: 1.5;
    margin-top: 3px;
}

.bdj-notif-desc strong[b-oic1eygpda] { color: var(--text-primary); font-weight: 700; }

.bdj-smart-mention[b-oic1eygpda] {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 1px 6px;
    border-radius: 4px;
    font-size: 11.5px;
    font-weight: 600;
}

.bdj-smart-mention .material-symbols-rounded[b-oic1eygpda] {
    font-size: 11px !important;
    font-variation-settings: "FILL" 1 !important;
}

.bdj-smart-mention.alumno[b-oic1eygpda] { background: rgba(186, 117, 23, 0.14); color: #8B5A10; }
.bdj-smart-mention.grupo[b-oic1eygpda]  { background: rgba(110, 198, 200, 0.18); color: var(--brand-teal-deep); }
.bdj-smart-mention.me[b-oic1eygpda]     { background: rgba(245, 158, 11, 0.18); color: #854D0E; }

.bdj-notif-meta[b-oic1eygpda] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 8px;
    font-size: 11px;
    color: var(--text-muted);
}

.bdj-notif-meta-item[b-oic1eygpda] { display: inline-flex; align-items: center; gap: 3px; }
.bdj-notif-meta-item .material-symbols-rounded[b-oic1eygpda] { font-size: 12px !important; }

.bdj-notif-meta-divider[b-oic1eygpda] {
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: var(--text-muted);
}

.bdj-notif-actions[b-oic1eygpda] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 6px;
    flex-shrink: 0;
}

.bdj-notif-time[b-oic1eygpda] {
    font-size: 11px;
    color: var(--text-muted);
    font-weight: 500;
    white-space: nowrap;
}

.bdj-notif-quick-actions[b-oic1eygpda] { display: flex; gap: 4px; }

.bdj-notif-action-btn[b-oic1eygpda] {
    padding: 5px 10px;
    font-size: 11px;
    font-weight: 700;
    border-radius: 6px;
    border: 1px solid var(--border-soft);
    background: var(--bg-panel);
    color: var(--text-secondary);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: all 0.15s;
    font-family: inherit;
    white-space: nowrap;
}

.bdj-notif-action-btn:hover[b-oic1eygpda] {
    border-color: var(--brand-teal);
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
}

.bdj-notif-action-btn.primary[b-oic1eygpda] {
    background: var(--brand-teal-primary);
    border-color: var(--brand-teal-primary);
    color: var(--text-primary);
}

.bdj-notif-action-btn.primary:hover[b-oic1eygpda] {
    background: var(--brand-teal-dark);
    border-color: var(--brand-teal-dark);
}

.bdj-notif-action-btn.success[b-oic1eygpda] {
    background: rgba(29, 158, 117, 0.1);
    border-color: rgba(29, 158, 117, 0.3);
    color: var(--success);
}

.bdj-notif-action-btn.success:hover[b-oic1eygpda] {
    background: var(--success);
    color: #FFFFFF;
    border-color: var(--success);
}

.bdj-notif-action-btn .material-symbols-rounded[b-oic1eygpda] { font-size: 13px !important; }

/* â•â•â•â• Aside â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.bdj-aside[b-oic1eygpda] {
    background: var(--bg-cream);
    border-left: 1px solid var(--border-soft);
    overflow-y: auto;
    padding: 20px 18px;
    scrollbar-width: thin;
    scrollbar-color: var(--border-med) transparent;
}

.bdj-aside[b-oic1eygpda]::-webkit-scrollbar { width: 6px; }
.bdj-aside[b-oic1eygpda]::-webkit-scrollbar-thumb {
    background: var(--border-med);
    border-radius: 3px;
}

.bdj-aside-card[b-oic1eygpda] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: 14px;
    padding: 16px;
    margin-bottom: 14px;
    box-shadow: var(--shadow-sm);
}

.bdj-aside-title[b-oic1eygpda] {
    font-size: 11px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.6px;
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.bdj-aside-title .material-symbols-rounded[b-oic1eygpda] { font-size: 13px !important; }

/* â”€â”€ Summary stats â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */

.bdj-summary-stat[b-oic1eygpda] {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 9px 0;
}

.bdj-summary-stat + .bdj-summary-stat[b-oic1eygpda] {
    border-top: 1px solid var(--border-soft);
}

.bdj-summary-icon[b-oic1eygpda] {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #FFFFFF;
    flex-shrink: 0;
}

.bdj-summary-icon .material-symbols-rounded[b-oic1eygpda] { font-size: 16px !important; }

.bdj-summary-icon.notif[b-oic1eygpda]   { background: linear-gradient(135deg, var(--brand-teal), var(--brand-teal-dark)); }
.bdj-summary-icon.mention[b-oic1eygpda] { background: linear-gradient(135deg, #EC4899, #BE185D); }
.bdj-summary-icon.aviso[b-oic1eygpda]   { background: linear-gradient(135deg, var(--pin-gold), #92400E); }
.bdj-summary-icon.urgent[b-oic1eygpda]  { background: linear-gradient(135deg, var(--t-concurso), #991B1B); }

.bdj-summary-info[b-oic1eygpda] { flex: 1; min-width: 0; }

.bdj-summary-label[b-oic1eygpda] {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-primary);
}

.bdj-summary-sub[b-oic1eygpda] {
    font-size: 10.5px;
    color: var(--text-muted);
    margin-top: 1px;
}

.bdj-summary-value[b-oic1eygpda] {
    font-family: var(--font-serif);
    font-size: 22px;
    font-weight: 600;
    color: var(--text-primary);
    letter-spacing: -0.4px;
    line-height: 1;
}

/* â”€â”€ Focus mini â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */

.bdj-focus[b-oic1eygpda] {
    background: linear-gradient(135deg, var(--carbon-2) 0%, #2A2E35 100%);
    border-radius: 14px;
    padding: 16px;
    color: #FFFFFF;
    margin-bottom: 14px;
    position: relative;
    overflow: hidden;
}

.bdj-focus[b-oic1eygpda]::before {
    content: "";
    position: absolute;
    top: -30px;
    right: -30px;
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(110, 198, 200, 0.25), transparent 65%);
}

.bdj-focus-content[b-oic1eygpda] { position: relative; }

.bdj-focus-icon[b-oic1eygpda] {
    width: 32px;
    height: 32px;
    border-radius: 9px;
    background: rgba(110, 198, 200, 0.18);
    color: var(--brand-teal);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 10px;
}

.bdj-focus-icon .material-symbols-rounded[b-oic1eygpda] { font-size: 18px !important; }

.bdj-focus-title[b-oic1eygpda] {
    font-family: var(--font-serif);
    font-size: 15px;
    font-weight: 600;
    color: #FFFFFF;
    letter-spacing: -0.2px;
    margin-bottom: 4px;
}

.bdj-focus-desc[b-oic1eygpda] {
    font-size: 11.5px;
    color: rgba(255, 255, 255, 0.7);
    line-height: 1.45;
    margin-bottom: 11px;
}

.bdj-focus-btn[b-oic1eygpda] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 6px 12px;
    background: var(--brand-teal);
    color: #0F3A3C;
    border: none;
    border-radius: 7px;
    font-family: inherit;
    font-size: 11.5px;
    font-weight: 700;
    cursor: pointer;
}

.bdj-focus-btn .material-symbols-rounded[b-oic1eygpda] { font-size: 13px !important; }

.bdj-focus-badge[b-oic1eygpda] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 10px;
    background: rgba(110, 198, 200, 0.18);
    color: var(--brand-teal);
    border-radius: 8px;
    font-size: 11.5px;
    font-weight: 700;
    margin-bottom: 10px;
}

.bdj-focus-badge .material-symbols-rounded[b-oic1eygpda] { font-size: 14px !important; }

.bdj-focus-dur-row[b-oic1eygpda] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.bdj-focus-dur-chip[b-oic1eygpda] {
    padding: 6px 12px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.14);
    color: #FFFFFF;
    border-radius: 7px;
    font-family: inherit;
    font-size: 11.5px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s;
}

.bdj-focus-dur-chip:hover[b-oic1eygpda] {
    background: var(--brand-teal);
    border-color: var(--brand-teal);
    color: #0F3A3C;
}

/* â”€â”€ Toggles â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */

.bdj-toggle[b-oic1eygpda] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 0;
    cursor: pointer;
}

.bdj-toggle + .bdj-toggle[b-oic1eygpda] { border-top: 1px solid var(--border-soft); }

/* T-052: el control que no se guardo queda marcado hasta que el mensaje se resuelva */
.bdj-toggle.fb-fallo[b-oic1eygpda] {
    box-shadow: 0 0 0 2px rgba(163, 45, 45, .35);
    border-radius: var(--radius-md);
}

.bdj-toggle-switch[b-oic1eygpda] {
    width: 30px;
    height: 18px;
    background: var(--border-med);
    border-radius: 9px;
    position: relative;
    flex-shrink: 0;
    transition: background 0.2s;
}

.bdj-toggle-switch[b-oic1eygpda]::after {
    content: "";
    position: absolute;
    width: 14px;
    height: 14px;
    background: #FFFFFF;
    border-radius: 50%;
    top: 2px;
    left: 2px;
    transition: transform 0.2s;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

.bdj-toggle.on .bdj-toggle-switch[b-oic1eygpda] { background: var(--brand-teal); }
.bdj-toggle.on .bdj-toggle-switch[b-oic1eygpda]::after { transform: translateX(12px); }

.bdj-toggle-info[b-oic1eygpda] { flex: 1; }

.bdj-toggle-label[b-oic1eygpda] {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--text-primary);
}

.bdj-toggle-desc[b-oic1eygpda] {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 1px;
    line-height: 1.35;
}

/* â”€â”€ Devices â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */

.bdj-device[b-oic1eygpda] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 0;
}

.bdj-device + .bdj-device[b-oic1eygpda] { border-top: 1px solid var(--border-soft); }

.bdj-device-icon[b-oic1eygpda] {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: #F3EFE7;
    color: var(--text-secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.bdj-device-icon.active[b-oic1eygpda] {
    background: var(--bg-light-teal);
    color: var(--brand-teal-deep);
}

.bdj-device-icon .material-symbols-rounded[b-oic1eygpda] { font-size: 17px !important; }

.bdj-device-info[b-oic1eygpda] { flex: 1; min-width: 0; }

.bdj-device-name[b-oic1eygpda] {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--text-primary);
}

.bdj-device-meta[b-oic1eygpda] {
    font-size: 10.5px;
    color: var(--text-muted);
    margin-top: 1px;
    display: flex;
    align-items: center;
    gap: 4px;
}

.bdj-device-dot[b-oic1eygpda] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--success);
}

.bdj-device-dot.idle[b-oic1eygpda] { background: #E0A800; }

/* â•â•â•â• Responsive â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

@media (max-width: 1100px) {
    .bdj-page[b-oic1eygpda] { grid-template-columns: 1fr; }
    .bdj-aside[b-oic1eygpda] { display: none; }
}

@media (max-width: 720px) {
    .bdj-page-header[b-oic1eygpda] { padding: 16px 16px 0; }
    .bdj-tabs[b-oic1eygpda] { padding: 14px 16px 0; }
    .bdj-filter-bar[b-oic1eygpda] { padding: 12px 16px; }
    .bdj-content[b-oic1eygpda] { padding: 4px 16px 30px; }
    .bdj-title[b-oic1eygpda] { font-size: 22px; }
    .bdj-mark-all[b-oic1eygpda] { display: none; }
    .bdj-notif[b-oic1eygpda] {
        grid-template-columns: 40px 1fr;
        gap: 10px;
    }
    .bdj-notif-actions[b-oic1eygpda] {
        grid-column: 2;
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        margin-top: 4px;
    }
}

/* â”€â”€ Loading / Empty states â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.bdj-loading[b-oic1eygpda] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 80px 20px;
    gap: 14px;
    color: var(--text-muted);
    font-size: 13px;
}

.bdj-spin[b-oic1eygpda] {
    font-size: 32px !important;
    color: var(--brand-teal);
    animation: bdj-rotate-b-oic1eygpda 1s linear infinite;
}

@keyframes bdj-rotate-b-oic1eygpda { to { transform: rotate(360deg); } }

.bdj-empty[b-oic1eygpda] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 60px 24px;
    color: var(--text-muted);
}

.bdj-empty .material-symbols-rounded[b-oic1eygpda] {
    font-size: 48px !important;
    color: var(--border-med);
    margin-bottom: 14px;
}

.bdj-empty h3[b-oic1eygpda] {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0 0 6px;
    letter-spacing: -0.2px;
}

.bdj-empty p[b-oic1eygpda] {
    font-size: 13px;
    color: var(--text-secondary);
    margin: 0;
    max-width: 360px;
    line-height: 1.5;
}

.bdj-empty-btn[b-oic1eygpda] {
    margin-top: 18px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    border-radius: 999px;
    border: 1px solid var(--border-med);
    background: white;
    color: var(--text-primary);
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s;
}

.bdj-empty-btn:hover[b-oic1eygpda] {
    border-color: var(--brand);
    color: var(--brand);
    background: var(--brand-tint);
}

.bdj-empty-btn .material-symbols-rounded[b-oic1eygpda] {
    font-size: 16px !important;
    color: inherit;
    margin: 0 !important;
}

.bdj-mark-all:disabled[b-oic1eygpda] {
    opacity: 0.45;
    cursor: not-allowed;
}

.bdj-notif[b-oic1eygpda] {
    cursor: pointer;
}

/* â”€â”€ Bulk selection â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.bdj-notif-select[b-oic1eygpda] {
    width: 22px;
    height: 22px;
    border-radius: 6px;
    border: 1.5px solid var(--border-med);
    background: var(--bg-panel);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-right: 4px;
    opacity: 0;
    transition: all 0.12s ease;
}

.bdj-notif:hover .bdj-notif-select[b-oic1eygpda],
.bdj-notif.has-selection .bdj-notif-select[b-oic1eygpda],
.bdj-notif.selected .bdj-notif-select[b-oic1eygpda] {
    opacity: 1;
}

.bdj-notif-select:hover[b-oic1eygpda] { border-color: var(--brand-teal); }

.bdj-notif-select.checked[b-oic1eygpda] {
    background: var(--brand-teal);
    border-color: var(--brand-teal);
}

.bdj-notif-select.checked .material-symbols-rounded[b-oic1eygpda] {
    color: white;
    font-size: 14px !important;
    font-variation-settings: 'FILL' 1, 'wght' 700 !important;
}

.bdj-notif.selected[b-oic1eygpda] {
    border-color: var(--brand-teal);
    background: rgba(110, 198, 200, 0.06);
}

/* â”€â”€ Bulk banner â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.bdj-bulk-banner[b-oic1eygpda] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 16px;
    margin: 0 0 12px;
    background: linear-gradient(90deg, rgba(110, 198, 200, 0.12) 0%, rgba(110, 198, 200, 0.04) 100%);
    border: 1px solid rgba(110, 198, 200, 0.4);
    border-radius: 10px;
    font-family: var(--font-sans);
    font-size: 12.5px;
    color: var(--brand-teal-deep);
    animation: bdj-bulk-slide-b-oic1eygpda 0.15s ease-out;
}

@keyframes bdj-bulk-slide-b-oic1eygpda {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}

.bdj-bulk-banner > .material-symbols-rounded[b-oic1eygpda] {
    color: var(--brand-teal-dark);
    font-size: 18px;
}

.bdj-bulk-count[b-oic1eygpda] { flex: 1; }
.bdj-bulk-count strong[b-oic1eygpda] { color: var(--text-primary); }

.bdj-bulk-actions[b-oic1eygpda] {
    display: flex;
    gap: 6px;
}

.bdj-bulk-btn[b-oic1eygpda] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 11px;
    border-radius: 7px;
    border: 1px solid var(--border-soft);
    background: var(--bg-panel);
    color: var(--text-secondary);
    font-family: var(--font-sans);
    font-size: 11.5px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.12s ease;
}

.bdj-bulk-btn:hover[b-oic1eygpda] {
    border-color: var(--brand-teal);
    color: var(--brand-teal-deep);
}

.bdj-bulk-btn.ghost[b-oic1eygpda] {
    background: transparent;
    border-color: transparent;
}

.bdj-bulk-btn .material-symbols-rounded[b-oic1eygpda] { font-size: 13px !important; }

/* â”€â”€ Chip "Acusado" â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.bdj-notif-acusada[b-oic1eygpda] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    background: rgba(29, 158, 117, 0.12);
    color: var(--success);
    border-radius: 6px;
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.4px;
}

.bdj-notif-acusada .material-symbols-rounded[b-oic1eygpda] {
    font-size: 13px !important;
    font-variation-settings: 'FILL' 1 !important;
}

/* â”€â”€ Toggles del aside (cursor pointer + hover) â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.bdj-toggle[b-oic1eygpda] {
    cursor: pointer;
    user-select: none;
}

.bdj-toggle:hover[b-oic1eygpda] {
    background: var(--bg-cream);
}

/* Selection, identity, message and actions occupy independent columns. */
.bdj-notif[b-oic1eygpda] { grid-template-columns:44px 44px minmax(0,1fr) auto; }
.bdj-notif-select[b-oic1eygpda] { width:44px; height:44px; margin:0; opacity:1; }
.bdj-notif-action-btn[b-oic1eygpda] { min-height:44px; }
.bdj-notif:focus-visible[b-oic1eygpda], .bdj-notif-select:focus-visible[b-oic1eygpda] { outline:3px solid var(--brand-teal); outline-offset:3px; }
@media (max-width: 640px) {
    .bdj-notif[b-oic1eygpda] { grid-template-columns:44px 40px minmax(0,1fr); gap:10px; padding:14px 12px; }
    .bdj-notif-body[b-oic1eygpda] { grid-column:3; }
    .bdj-notif-actions[b-oic1eygpda] { grid-column:2 / -1; width:100%; align-items:flex-start; }
    .bdj-notif-quick-actions[b-oic1eygpda] { flex-wrap:wrap; }
    .bdj-notif-desc[b-oic1eygpda] { font-size:14px; overflow-wrap:anywhere; }
}
/* /Pages/Comunicacion/Chat.razor.rz.scp.css */
/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Chat â€” pantalla principal del mÃ³dulo ComunicaciÃ³n.
   Tokens propios scoped a .chat-page (no contaminan v2).
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */

.chat-page[b-g645okq53e] {
    --teal:          var(--brand-teal);
    --teal-dark:     var(--brand-teal-dark);
    --teal-darker:   #2E7F82;
    --teal-soft:     #E8F4F8;
    --main-bg:       #FFFFFF;
    --main-subtle:   #FAFBFC;
    --hover:         #F5F8F9;
    --border:        #EAEEF0;
    --border-strong: #D8DEE1;
    --text:          #1A2B2D;
    --text-muted:    #5A6B6E;
    --text-dim:      #8A9699;
    --sem-green:     var(--pz-green);
    --sem-yellow:    var(--warning);
    --sem-red:       var(--danger);
    --official-border: var(--pin-gold);
    --official-bg:     #FDF8EC;

    display: grid;
    grid-template-columns: 276px 1fr;
    height: 100dvh;              /* F12 (§70): dvh evita el desborde por el chrome del navegador movil */
    overflow: hidden;
    background: var(--main-bg);
    font-family: var(--font-sans);
    color: var(--text);
}

.chat-main[b-g645okq53e] {
    display: flex;
    flex-direction: column;
    height: 100%;               /* F12: sigue a .chat-page (antes 100vh -> desbordaba bajo la topbar movil) */
    background: var(--main-bg);
    overflow: hidden;
    min-width: 0;
}

/* === Channel header === */
.chh[b-g645okq53e] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 24px;
    border-bottom: 1px solid var(--border);
    background: var(--main-bg);
    flex-shrink: 0;
    gap: 16px;
}

.chh-left[b-g645okq53e] { display: flex; align-items: center; gap: 14px; min-width: 0; }

.chh-title[b-g645okq53e] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    font-size: 16px;
    font-weight: 700;
    color: var(--text);
    min-width: 0;
}

.chh-hash[b-g645okq53e] {
    font-family: var(--font-mono);
    color: var(--text-muted);
    font-weight: 500;
    font-size: 17px;
}

.chh-name[b-g645okq53e] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.chh-desc[b-g645okq53e] {
    font-size: 12.5px;
    color: var(--text-muted);
    padding-left: 14px;
    border-left: 1px solid var(--border);
    margin-left: 4px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.chh-right[b-g645okq53e] {
    display: flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
}

.chh-btn[b-g645okq53e] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border-radius: 6px;
    cursor: pointer;
    color: var(--text-muted);
    font-size: 12.5px;
    font-weight: 500;
    transition: background 0.12s;
    background: transparent;
    border: none;
    font-family: inherit;
}

.chh-btn:hover[b-g645okq53e] { background: var(--hover); color: var(--text); }
.chh-btn .material-icons[b-g645okq53e] { font-size: 17px; }

.chh-members[b-g645okq53e] {
    display: flex;
    align-items: center;
    padding: 4px 10px 4px 4px;
    border-radius: 20px;
    border: 1px solid var(--border);
    cursor: pointer;
    gap: 6px;
    transition: background 0.12s;
    background: var(--main-bg);
    font-family: inherit;
}

.chh-members:hover[b-g645okq53e] { background: var(--hover); }

.chh-avsm[b-g645okq53e] {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: linear-gradient(135deg, #8FA8AB, #5B7A7D);
    border: 2px solid #FFFFFF;
    margin-left: -8px;
    display: grid;
    place-items: center;
    color: #FFFFFF;
    font-size: 9px;
    font-weight: 700;
}
.chh-avsm:first-child[b-g645okq53e] { margin-left: 0; }
.chh-avsm.c1[b-g645okq53e] { background: linear-gradient(135deg, #C4826C, #965C44); }
.chh-avsm.c2[b-g645okq53e] { background: linear-gradient(135deg, #6C91C4, #445E96); }
.chh-avsm.c3[b-g645okq53e] { background: linear-gradient(135deg, #8BC48B, #4F8A4F); }

.chh-members-count[b-g645okq53e] {
    font-size: 12px;
    font-weight: 600;
    color: var(--text);
}

/* === Pinned banner === */
.chp[b-g645okq53e] {
    background: linear-gradient(90deg, rgba(109, 199, 208, 0.08), rgba(109, 199, 208, 0.02));
    border-bottom: 1px solid var(--border);
    padding: 10px 24px;
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 12.5px;
    cursor: pointer;
    transition: background 0.15s;
    flex-shrink: 0;
}

.chp:hover[b-g645okq53e] {
    background: linear-gradient(90deg, rgba(109, 199, 208, 0.15), rgba(109, 199, 208, 0.04));
}

.chp .material-icons[b-g645okq53e] { font-size: 16px; color: var(--teal-dark); }

.chp-label[b-g645okq53e] {
    font-weight: 700;
    color: var(--teal-darker);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.chp-preview[b-g645okq53e] {
    color: var(--text);
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.chp-count[b-g645okq53e] {
    color: var(--text-muted);
    font-weight: 600;
}

/* === Messages === */
.chm[b-g645okq53e] {
    flex: 1;
    overflow-y: auto;
    padding: 8px 0 20px;
    background: var(--main-bg);
}

.chm[b-g645okq53e]::-webkit-scrollbar { width: 10px; }
.chm[b-g645okq53e]::-webkit-scrollbar-track { background: transparent; }
.chm[b-g645okq53e]::-webkit-scrollbar-thumb {
    background: var(--border-strong);
    border-radius: 5px;
}

.chm-day[b-g645okq53e] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 24px 10px;
    position: sticky;
    top: 0;
    background: linear-gradient(to bottom, var(--main-bg) 70%, rgba(255, 255, 255, 0));
    z-index: 1;
}

.chm-day[b-g645okq53e]::before, .chm-day[b-g645okq53e]::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--border);
}

.chm-day-label[b-g645okq53e] {
    font-size: 11px;
    font-weight: 700;
    color: var(--text-muted);
    padding: 3px 10px;
    background: #FFFFFF;
    border: 1px solid var(--border);
    border-radius: 12px;
    letter-spacing: 0.04em;
}

/* === Mensaje === */
.chm-msg[b-g645okq53e] {
    display: grid;
    grid-template-columns: 52px 1fr;
    gap: 0;
    padding: 6px 24px;
    position: relative;
    transition: background 0.08s;
}

.chm-msg:hover[b-g645okq53e] { background: var(--hover); }
.chm-msg:hover .chm-actions[b-g645okq53e] { opacity: 1; }
.chm-msg.is-new-block[b-g645okq53e] { padding-top: 12px; }

.chm-avatar[b-g645okq53e] {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: linear-gradient(135deg, #8FA8AB, #5B7A7D);
    display: grid;
    place-items: center;
    color: #FFFFFF;
    font-weight: 700;
    font-size: 13px;
}

.chm-avatar.c1[b-g645okq53e] { background: linear-gradient(135deg, #C4826C, #965C44); }
.chm-avatar.c2[b-g645okq53e] { background: linear-gradient(135deg, #6C91C4, #445E96); }
.chm-avatar.c3[b-g645okq53e] { background: linear-gradient(135deg, #8BC48B, #4F8A4F); }
.chm-avatar.c4[b-g645okq53e] { background: linear-gradient(135deg, #B89B70, #826D47); }

.chm-avatar.official[b-g645okq53e] {
    background: linear-gradient(135deg, #2E5A8F, #1A3D66);
    position: relative;
}

.chm-avatar.official[b-g645okq53e]::after {
    content: "verified";
    font-family: "Material Icons";
    position: absolute;
    bottom: -3px;
    right: -3px;
    font-size: 14px;
    color: var(--teal-dark);
    background: #FFFFFF;
    border-radius: 50%;
    width: 16px;
    height: 16px;
    display: grid;
    place-items: center;
}

.chm-time-inline[b-g645okq53e] {
    font-size: 10.5px;
    color: var(--text-dim);
    font-family: var(--font-mono);
    text-align: center;
    padding-top: 4px;
    visibility: hidden;
}

.chm-msg:hover .chm-time-inline[b-g645okq53e] { visibility: visible; }

.chm-body[b-g645okq53e] { min-width: 0; padding-left: 4px; }

.chm-header[b-g645okq53e] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin-bottom: 2px;
}

.chm-author[b-g645okq53e] {
    font-size: 14px;
    font-weight: 700;
    color: var(--text);
}

.chm-author.directivo[b-g645okq53e] { color: #1A3D66; }

.chm-role-tag[b-g645okq53e] {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
    padding: 1px 7px;
    border-radius: 4px;
    text-transform: uppercase;
}

.chm-role-tag.directivo[b-g645okq53e] {
    background: #E6EEF7;
    color: #1A3D66;
}

.chm-role-tag.docente[b-g645okq53e] {
    background: var(--teal-soft);
    color: var(--teal-darker);
}

.chm-time[b-g645okq53e] {
    font-size: 11px;
    color: var(--text-dim);
    font-family: var(--font-mono);
    font-weight: 500;
}

.chm-content[b-g645okq53e] {
    font-size: 14px;
    line-height: 1.55;
    color: var(--text);
    word-wrap: break-word;
}

.chm-content p[b-g645okq53e] { margin: 0; }
.chm-content p + p[b-g645okq53e] { margin-top: 6px; }

/* === Mentions inline === */
.chm-mention[b-g645okq53e] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 1px 7px;
    border-radius: 4px;
    background: var(--teal-soft);
    color: var(--teal-darker);
    font-weight: 600;
    font-size: 13px;
    cursor: pointer;
    transition: background 0.12s;
    border: 1px solid rgba(75, 168, 170, 0.2);
}

.chm-mention:hover[b-g645okq53e] { background: #D4EBF0; }

.chm-mention .material-icons[b-g645okq53e] { font-size: 13px; opacity: 0.75; }

.chm-mention-alumno[b-g645okq53e] {
    background: #FFF2E4;
    color: #7A4518;
    border-color: rgba(186, 117, 23, 0.25);
}

.chm-mention-alumno:hover[b-g645okq53e] { background: #FEE6CE; }

.chm-mention-grupo[b-g645okq53e] {
    background: #E7F1E7;
    color: #2D5F2D;
    border-color: rgba(29, 158, 117, 0.22);
}

.chm-mention-grado[b-g645okq53e] {
    background: #EAE8F4;
    color: #443B7A;
    border-color: rgba(68, 59, 122, 0.2);
}

.chm-mention-meta[b-g645okq53e] {
    display: inline-block;
    font-size: 11px;
    color: var(--text-dim);
    margin-left: 4px;
    font-style: italic;
}

.chm-inline-grupo[b-g645okq53e] {
    font-size: 12px;
    color: var(--text-muted);
}

/* === Reactions === */
.chm-reactions[b-g645okq53e] {
    display: flex;
    gap: 4px;
    margin-top: 6px;
    flex-wrap: wrap;
}

.chm-reaction[b-g645okq53e] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    border: 1px solid var(--border-strong);
    border-radius: 14px;
    background: var(--main-bg);
    font-size: 12px;
    font-weight: 600;
    color: var(--text);
    cursor: pointer;
    transition: all 0.12s;
    font-family: inherit;
}

.chm-reaction:hover[b-g645okq53e] {
    border-color: var(--teal-dark);
    background: var(--teal-soft);
}

.chm-reaction.mine[b-g645okq53e] {
    background: var(--teal-soft);
    border-color: var(--teal-dark);
    color: var(--teal-darker);
}

.chm-reaction .material-icons[b-g645okq53e] { font-size: 14px; color: inherit; }

.chm-reaction-add[b-g645okq53e] {
    width: 26px;
    padding: 2px 0;
    justify-content: center;
    color: var(--text-muted);
}

/* === Thread indicator === */
.chm-thread[b-g645okq53e] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 6px;
    padding: 4px 10px 4px 4px;
    border-radius: 8px;
    cursor: pointer;
    transition: background 0.12s;
    max-width: fit-content;
    background: transparent;
    border: none;
    font-family: inherit;
}

.chm-thread:hover[b-g645okq53e] {
    background: var(--hover);
    outline: 1px solid var(--border);
}

.chm-thread-avatars[b-g645okq53e] { display: flex; }

.chm-thread-av[b-g645okq53e] {
    width: 22px;
    height: 22px;
    border-radius: 5px;
    margin-left: -5px;
    border: 2px solid #FFFFFF;
    display: grid;
    place-items: center;
    color: #FFFFFF;
    font-size: 9px;
    font-weight: 700;
    background: linear-gradient(135deg, #8FA8AB, #5B7A7D);
}

.chm-thread-av:first-child[b-g645okq53e] { margin-left: 0; }
.chm-thread-av.c1[b-g645okq53e] { background: linear-gradient(135deg, #C4826C, #965C44); }
.chm-thread-av.c2[b-g645okq53e] { background: linear-gradient(135deg, #6C91C4, #445E96); }
.chm-thread-av.c3[b-g645okq53e] { background: linear-gradient(135deg, #8BC48B, #4F8A4F); }
.chm-thread-av.c4[b-g645okq53e] { background: linear-gradient(135deg, #B89B70, #826D47); }

.chm-thread-count[b-g645okq53e] {
    color: var(--teal-darker);
    font-weight: 700;
    font-size: 12.5px;
}

.chm-thread-last[b-g645okq53e] {
    color: var(--text-muted);
    font-size: 12px;
}

.chm-thread .material-icons[b-g645okq53e] {
    font-size: 14px;
    color: var(--text-muted);
    margin-left: auto;
}

/* === Attachment === */
.chm-attach[b-g645okq53e] {
    margin-top: 8px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--main-subtle);
    max-width: 380px;
    cursor: pointer;
    transition: border-color 0.15s;
}

.chm-attach:hover[b-g645okq53e] { border-color: var(--teal-dark); }

.chm-attach-icon[b-g645okq53e] {
    width: 36px;
    height: 36px;
    border-radius: 6px;
    display: grid;
    place-items: center;
    color: #FFFFFF;
    background: #1D7A46;
    flex-shrink: 0;
}

.chm-attach-icon.pdf[b-g645okq53e]  { background: #B93B3B; }
.chm-attach-icon.xlsx[b-g645okq53e] { background: #1D7A46; }

.chm-attach-icon .material-icons[b-g645okq53e] { font-size: 18px; color: #FFFFFF; }

.chm-attach-info[b-g645okq53e] { flex: 1; min-width: 0; }

.chm-attach-name[b-g645okq53e] {
    font-weight: 600;
    font-size: 13px;
    color: var(--text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.chm-attach-meta[b-g645okq53e] {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: 2px;
}

/* === Official document === */
.chm-official[b-g645okq53e] {
    margin-top: 10px;
    border: 1.5px solid var(--official-border);
    border-radius: 12px;
    background: var(--official-bg);
    overflow: hidden;
    max-width: 560px;
}

.chm-official-header[b-g645okq53e] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    background: linear-gradient(to right, #F0DDA8, #E9D28F);
    border-bottom: 1.5px solid var(--official-border);
}

.chm-official-header .material-icons[b-g645okq53e] { font-size: 18px; color: #7A5A0E; }

.chm-official-type[b-g645okq53e] {
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    color: #7A5A0E;
    letter-spacing: 0.08em;
}

.chm-official-ref[b-g645okq53e] {
    font-family: var(--font-mono);
    font-size: 11px;
    color: #7A5A0E;
    margin-left: auto;
}

.chm-official-body[b-g645okq53e] { padding: 14px; }

.chm-official-subject[b-g645okq53e] {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 500;
    color: var(--text);
    margin-bottom: 8px;
    line-height: 1.2;
    font-style: italic;
}

.chm-official-text[b-g645okq53e] {
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--text);
}

.chm-official-text strong[b-g645okq53e] { font-weight: 700; }

.chm-official-auto[b-g645okq53e] {
    margin-top: 12px;
    padding: 10px 12px;
    background: rgba(255, 255, 255, 0.6);
    border-radius: 8px;
    font-size: 12px;
    color: var(--text-muted);
    display: flex;
    align-items: center;
    gap: 8px;
}

.chm-official-auto .material-icons[b-g645okq53e] { font-size: 16px; color: var(--teal-dark); }
.chm-official-auto strong[b-g645okq53e] { color: var(--text); font-weight: 700; }

.chm-official-actions[b-g645okq53e] {
    display: flex;
    gap: 8px;
    padding: 10px 14px;
    border-top: 1px solid rgba(184, 134, 11, 0.25);
    background: rgba(255, 255, 255, 0.4);
}

.chm-official-btn[b-g645okq53e] {
    flex: 1;
    padding: 8px 12px;
    border-radius: 6px;
    border: 1px solid var(--official-border);
    background: #FFFFFF;
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 600;
    color: #7A5A0E;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    transition: all 0.15s;
}

.chm-official-btn:hover[b-g645okq53e] { background: #FFF8E8; }

.chm-official-btn.primary[b-g645okq53e] {
    background: #7A5A0E;
    color: #FFFFFF;
    border-color: #7A5A0E;
}

.chm-official-btn.primary:hover[b-g645okq53e] { background: #9A7615; }
.chm-official-btn .material-icons[b-g645okq53e] { font-size: 15px; }

/* === Hover actions === */
.chm-actions[b-g645okq53e] {
    position: absolute;
    top: -14px;
    right: 24px;
    display: flex;
    gap: 2px;
    background: #FFFFFF;
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 2px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    opacity: 0;
    transition: opacity 0.15s;
}

.chm-act[b-g645okq53e] {
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    cursor: pointer;
    border-radius: 4px;
    color: var(--text-muted);
    transition: background 0.12s;
    background: transparent;
    border: none;
}

.chm-act:hover[b-g645okq53e] { background: var(--hover); color: var(--text); }
.chm-act .material-icons[b-g645okq53e] { font-size: 17px; }

/* === Typing indicator === */
.chm-typing[b-g645okq53e] {
    padding: 8px 24px 4px;
    font-size: 11.5px;
    color: var(--text-muted);
    font-style: italic;
}

.chm-typing-dots[b-g645okq53e] {
    display: inline-flex;
    gap: 2px;
    margin-right: 4px;
    vertical-align: middle;
}

.chm-typing-dots span[b-g645okq53e] {
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--teal-dark);
    animation: chm-typing-b-g645okq53e 1.2s infinite;
}

.chm-typing-dots span:nth-child(2)[b-g645okq53e] { animation-delay: 0.15s; }
.chm-typing-dots span:nth-child(3)[b-g645okq53e] { animation-delay: 0.3s; }

@keyframes chm-typing-b-g645okq53e {
    0%, 60%, 100% { opacity: 0.3; transform: translateY(0); }
    30%           { opacity: 1;   transform: translateY(-2px); }
}

/* === Backdrop del drawer (movil) === */
.chat-sidebar-backdrop[b-g645okq53e] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    z-index: 55;
    animation: chat-backdrop-in-b-g645okq53e 0.18s ease;
}

@keyframes chat-backdrop-in-b-g645okq53e {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* F12 (§70): bajo el shell movil (<1024px) hay una topbar de 52px (grid row 1).
   El 100dvh del chat debe descontarla o el composer queda bajo el fold. */
@media (max-width: 1023.98px) {
    .chat-page[b-g645okq53e] { height: calc(100dvh - 52px); }
}

/* === Responsive === */
@media (max-width: 900px) {
    /* El sidebar sale del flujo (queda position:fixed en su propio scoped css);
       el chat ocupa todo el ancho. */
    .chat-page[b-g645okq53e] { grid-template-columns: 1fr; }
    .chh-desc[b-g645okq53e] { display: none; }
    .chh-members[b-g645okq53e] { display: none; }

    /* Mostrar el drawer cuando la pagina lo marca abierto.
       ::deep porque .ch-sidebar pertenece al componente hijo ChannelSidebar. */
    .chat-page.sidebar-open[b-g645okq53e]  .ch-sidebar {
        transform: translateX(0);
    }

    /* Revelar el boton hamburguesa del header del ChatPanel (hijo). */
    .chat-main[b-g645okq53e]  .cp-menu-btn {
        display: flex;
    }
}

/* En desktop nunca mostramos el backdrop ni el boton menu. */
@media (min-width: 901px) {
    .chat-sidebar-backdrop[b-g645okq53e] { display: none; }
    .chat-main[b-g645okq53e]  .cp-menu-btn { display: none; }
}

/* â”€â”€ Empty / Loading states â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.chat-empty[b-g645okq53e] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 80px 24px;
    gap: 14px;
    color: var(--text-muted);
    flex: 1;
}

.chat-empty-inline[b-g645okq53e] {
    flex: 0;
    padding: 60px 24px;
}

.chat-empty .material-symbols-rounded[b-g645okq53e] {
    font-size: 48px !important;
    color: var(--border-med);
}

.chat-empty h3[b-g645okq53e] {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
    letter-spacing: -0.2px;
}

.chat-empty p[b-g645okq53e] {
    font-size: 13px;
    color: var(--text-secondary);
    margin: 0;
    max-width: 360px;
    line-height: 1.5;
}

.chat-spin[b-g645okq53e] {
    color: var(--brand-teal);
    animation: chat-rotate-b-g645okq53e 1s linear infinite;
}

@keyframes chat-rotate-b-g645okq53e { to { transform: rotate(360deg); } }

/* â”€â”€ Reactions picker â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.chm-emoji-picker[b-g645okq53e] {
    display: inline-flex;
    gap: 4px;
    padding: 4px 6px;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: 18px;
    box-shadow: var(--shadow-md);
    margin-left: 4px;
    align-items: center;
}

.chm-emoji-pick[b-g645okq53e] {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: none;
    background: transparent;
    color: var(--text-secondary);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.12s ease;
    padding: 0;
}

.chm-emoji-pick:hover[b-g645okq53e] {
    background: var(--bg-light-teal);
    color: var(--brand-teal-deep);
    transform: scale(1.15);
}

.chm-emoji-pick .material-icons[b-g645okq53e] { font-size: 18px; }

/* â”€â”€ Thread panel inline â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.chm-thread-panel[b-g645okq53e] {
    margin-top: 8px;
    padding: 12px;
    background: var(--bg-cream);
    border-left: 3px solid var(--brand-teal);
    border-radius: 0 8px 8px 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.chm-thread-empty[b-g645okq53e] {
    color: var(--text-muted);
    font-size: 12px;
    font-style: italic;
}

.chm-reply[b-g645okq53e] {
    display: grid;
    grid-template-columns: 32px 1fr;
    gap: 10px;
    align-items: flex-start;
}

.chm-reply .chm-avatar[b-g645okq53e] {
    width: 32px;
    height: 32px;
    font-size: 11px;
}

.chm-reply-composer[b-g645okq53e] {
    display: flex;
    gap: 6px;
    margin-top: 4px;
    padding-top: 8px;
    border-top: 1px solid var(--border-soft);
}

.chm-reply-input[b-g645okq53e] {
    flex: 1;
    padding: 7px 10px;
    border: 1px solid var(--border-soft);
    border-radius: 6px;
    font-family: var(--font-sans);
    font-size: 12.5px;
    outline: none;
    transition: border-color 0.12s ease;
    background: var(--bg-panel);
}

.chm-reply-input:focus[b-g645okq53e] { border-color: var(--brand-teal); }

.chm-reply-send[b-g645okq53e] {
    width: 32px;
    height: 32px;
    border-radius: 6px;
    border: none;
    background: var(--brand-teal);
    color: var(--text-primary);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.chm-reply-send:hover:not(:disabled)[b-g645okq53e] { background: var(--brand-teal-dark); }
.chm-reply-send:disabled[b-g645okq53e] { opacity: 0.5; cursor: not-allowed; }
.chm-reply-send .material-icons[b-g645okq53e] { font-size: 16px; }

/* â”€â”€ Thread indicator mÃ¡s prominente cuando es clickeable â”€â”€â”€â”€â”€â”€â”€â”€ */
.chm-thread[b-g645okq53e] {
    cursor: pointer;
    transition: background 0.12s ease;
}

.chm-thread:hover[b-g645okq53e] { background: var(--bg-light-teal); }
/* /Pages/Comunicacion/Comunidad.razor.rz.scp.css */
/* Comunidad — muro escolar: una columna centrada sobre el lienzo crema. */

.cmu-page[b-ibuvux9s3d] {
    min-height: 100%;
    padding: 24px 24px 64px;
    background: var(--bg);
}

/* ── Header ── */
.cmu-head[b-ibuvux9s3d] {
    max-width: 640px;
    margin: 0 auto 20px;
}

.cmu-breadcrumb[b-ibuvux9s3d] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: var(--text-muted);
    margin-bottom: 12px;
}

.cmu-breadcrumb .material-symbols-rounded[b-ibuvux9s3d] { font-size: 15px; }
.cmu-sep[b-ibuvux9s3d] { color: var(--border-med); }
.cmu-current[b-ibuvux9s3d] { color: var(--text-secondary); font-weight: 600; }

.cmu-title-row[b-ibuvux9s3d] {
    display: flex;
    align-items: center;
    gap: 14px;
}

.cmu-title-icon[b-ibuvux9s3d] {
    width: 46px;
    height: 46px;
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, var(--brand-teal), var(--brand-teal-deep));
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--shadow-sm);
    flex-shrink: 0;
}

.cmu-title-icon .material-symbols-rounded[b-ibuvux9s3d] { font-size: 26px; }

.cmu-title[b-ibuvux9s3d] {
    font-family: var(--font-serif);
    font-size: 24px;
    font-weight: 700;
    color: var(--text-primary);
    letter-spacing: -0.02em;
    margin: 0;
    line-height: 1.15;
}

.cmu-sub[b-ibuvux9s3d] {
    font-size: 13px;
    color: var(--text-secondary);
    margin-top: 2px;
}

/* ── Pill "hay nuevas" (sticky, flotante sobre el feed) ── */
.cmu-pill-zona[b-ibuvux9s3d] {
    position: sticky;
    top: 12px;
    z-index: 20;
    height: 0;
    display: flex;
    justify-content: center;
    overflow: visible;
}

.cmu-pill-nuevas[b-ibuvux9s3d] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border: none;
    background: var(--brand-teal-primary);
    color: var(--text-primary);
    font-family: var(--font-sans);
    font-size: 13px;
    font-weight: 700;
    padding: 9px 18px;
    border-radius: 99px;
    cursor: pointer;
    box-shadow: var(--shadow-lg);
    animation: cmu-pill-entrar-b-ibuvux9s3d 0.25s var(--ease);
    transition: background 0.15s ease, transform 0.15s ease;
}

.cmu-pill-nuevas .material-symbols-rounded[b-ibuvux9s3d] { font-size: 17px; }

.cmu-pill-nuevas:hover[b-ibuvux9s3d] {
    background: var(--brand-teal-dark);
    transform: translateY(-1px);
}

@keyframes cmu-pill-entrar-b-ibuvux9s3d {
    from { opacity: 0; transform: translateY(-10px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ── Feed ── */
.cmu-feed[b-ibuvux9s3d] {
    max-width: 640px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* ── Skeleton de tarjeta ── */
.cmu-sk-card[b-ibuvux9s3d] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.cmu-sk-head[b-ibuvux9s3d] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 4px;
}

.cmu-sk-lines[b-ibuvux9s3d] {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

/* ── Estados (vacío / error) ── */
.cmu-estado[b-ibuvux9s3d] {
    background: var(--bg-panel);
    border: 1px dashed var(--border-med);
    border-radius: var(--radius-lg);
    padding: 48px 24px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}

.cmu-estado-icono[b-ibuvux9s3d] {
    font-size: 44px;
    color: var(--brand-teal-dark);
    background: var(--bg-light-teal);
    border-radius: 50%;
    padding: 16px;
    margin-bottom: 8px;
}

.cmu-estado-icono.error[b-ibuvux9s3d] {
    color: var(--danger);
    background: var(--cream-deep);
}

.cmu-estado-titulo[b-ibuvux9s3d] {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 700;
    color: var(--text-primary);
    letter-spacing: -0.01em;
}

.cmu-estado-sub[b-ibuvux9s3d] {
    font-size: 13.5px;
    color: var(--text-secondary);
}

.cmu-btn-reintentar[b-ibuvux9s3d] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 14px;
    border: 1px solid var(--border-soft);
    background: var(--bg-panel);
    color: var(--text-secondary);
    font-family: var(--font-sans);
    font-size: 12.5px;
    font-weight: 600;
    padding: 8px 16px;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}

.cmu-btn-reintentar:hover[b-ibuvux9s3d] {
    border-color: var(--brand-teal);
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
}

.cmu-btn-reintentar .material-symbols-rounded[b-ibuvux9s3d] { font-size: 16px; }

/* ── Cargando más / fin ── */
.cmu-cargando-mas[b-ibuvux9s3d] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 18px 0 6px;
    color: var(--text-muted);
    font-size: 13px;
}

.cmu-spinner[b-ibuvux9s3d] {
    width: 18px;
    height: 18px;
    border: 2px solid var(--border-med);
    border-top-color: var(--brand-teal-deep);
    border-radius: 50%;
    animation: cmu-girar-b-ibuvux9s3d 0.7s linear infinite;
}

@keyframes cmu-girar-b-ibuvux9s3d {
    to { transform: rotate(360deg); }
}

.cmu-fin[b-ibuvux9s3d] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 20px 0 8px;
    color: var(--text-muted);
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.cmu-fin .material-symbols-rounded[b-ibuvux9s3d] {
    font-size: 17px;
    color: var(--success);
}

.cmu-sentinel[b-ibuvux9s3d] {
    height: 1px;
}

/* ── Móvil ── */
@media (max-width: 640px) {
    .cmu-page[b-ibuvux9s3d] { padding: 14px 10px 56px; }
    .cmu-head[b-ibuvux9s3d] { margin-bottom: 14px; }
    .cmu-title[b-ibuvux9s3d] { font-size: 21px; }
    .cmu-title-icon[b-ibuvux9s3d] { width: 40px; height: 40px; }
    .cmu-title-icon .material-symbols-rounded[b-ibuvux9s3d] { font-size: 22px; }
    .cmu-feed[b-ibuvux9s3d] { gap: 12px; }
}

.cmu-audiencias[b-ibuvux9s3d] { display:flex; gap:8px; margin-bottom:20px; }
.cmu-audiencias button[b-ibuvux9s3d] { min-height:44px; padding:10px 18px; border:1px solid var(--border-med); border-radius:12px; background:var(--bg-panel); color:var(--text-primary); font:inherit; cursor:pointer; }
.cmu-audiencias button[aria-pressed="true"][b-ibuvux9s3d] { background:var(--brand-teal-deep); color:white; }
.cmu-audiencias button:focus-visible[b-ibuvux9s3d] { outline:3px solid var(--brand-teal); outline-offset:3px; }
/* /Pages/Comunicacion/CrearProyectoCasos.razor.rz.scp.css */
.cpc-page[b-feass0aqlo] {
    background:
        radial-gradient(circle at 20% 20%, rgba(110, 198, 200, 0.06) 0%, transparent 50%),
        radial-gradient(circle at 80% 80%, rgba(217, 119, 6, 0.04) 0%, transparent 50%),
        var(--bg);
    min-height: 100%;
    padding: 32px 24px;
    font-family: var(--font-sans);
    color: var(--text-primary);
}

/* â•â•â•â• Header â•â•â•â• */
.cpc-header[b-feass0aqlo] {
    max-width: 1380px;
    margin: 0 auto 28px;
    text-align: center;
}

.cpc-title[b-feass0aqlo] {
    font-family: var(--font-serif);
    font-size: 32px;
    font-weight: 600;
    color: var(--text-primary);
    letter-spacing: -0.7px;
    margin: 0 0 6px;
}

.cpc-sub[b-feass0aqlo] {
    font-size: 14px;
    color: var(--text-secondary);
    max-width: 620px;
    margin: 0 auto;
    line-height: 1.5;
}

/* â•â•â•â• Cases grid â•â•â•â• */
.cpc-cases[b-feass0aqlo] {
    max-width: 1380px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
}

.cpc-case[b-feass0aqlo] {
    background: var(--bg-panel);
    border-radius: 20px;
    overflow: hidden;
    box-shadow: var(--shadow-md);
    border: 1px solid var(--border-soft);
    display: flex;
    flex-direction: column;
}

.cpc-case-header[b-feass0aqlo] {
    padding: 18px 24px 14px;
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    align-items: center;
    gap: 12px;
}

.cpc-case-num[b-feass0aqlo] {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--brand-teal), var(--brand-teal-dark));
    color: #FFFFFF;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-serif);
    font-weight: 600;
    font-size: 15px;
    flex-shrink: 0;
}

.cpc-case-title-block[b-feass0aqlo] { flex: 1; min-width: 0; }

.cpc-case-actor[b-feass0aqlo] {
    font-size: 11px;
    color: var(--brand-teal-deep);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    margin-bottom: 1px;
}

.cpc-case-title[b-feass0aqlo] {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 500;
    color: var(--text-primary);
    letter-spacing: -0.2px;
}

.cpc-actor-avatar[b-feass0aqlo] {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #FFFFFF;
    font-weight: 700;
    font-size: 13px;
    flex-shrink: 0;
    font-family: var(--font-sans);
}

.cpc-actor-avatar.dir[b-feass0aqlo] { background: linear-gradient(135deg, #8B5CF6, #6D28D9); }
.cpc-actor-avatar.doc[b-feass0aqlo] { background: linear-gradient(135deg, #F4B860, var(--t-nem)); }

.cpc-modal-area[b-feass0aqlo] {
    padding: 24px;
    background: linear-gradient(180deg, #F8F5EE 0%, var(--bg-panel) 60%);
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* â•â•â•â• Footnote â•â•â•â• */
.cpc-footnote[b-feass0aqlo] {
    margin: 18px auto 0;
    max-width: 1380px;
    padding: 14px 22px;
    background: rgba(255, 255, 255, 0.6);
    border: 1px solid var(--border-soft);
    border-radius: 14px;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    backdrop-filter: blur(8px);
}

.cpc-footnote-icon[b-feass0aqlo] {
    width: 32px;
    height: 32px;
    border-radius: 9px;
    background: linear-gradient(135deg, var(--brand-teal), var(--brand-teal-dark));
    color: #FFFFFF;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.cpc-footnote-icon .material-symbols-rounded[b-feass0aqlo] { font-size: 18px !important; }

.cpc-footnote-text[b-feass0aqlo] {
    font-size: 12.5px;
    color: var(--text-secondary);
    line-height: 1.55;
    flex: 1;
}

.cpc-footnote-text strong[b-feass0aqlo] { color: var(--text-primary); }

/* â•â•â•â• Responsive â•â•â•â• */
@media (max-width: 1100px) {
    .cpc-cases[b-feass0aqlo] { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
    .cpc-page[b-feass0aqlo] { padding: 20px 16px; }
    .cpc-title[b-feass0aqlo] { font-size: 24px; }
    .cpc-modal-area[b-feass0aqlo] { padding: 14px; }
}
/* /Pages/Comunicacion/Proyectos.razor.rz.scp.css */
/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Proyectos â€” replica de `micomunidad-proyectos-mockup.html`
   Tokens locales scoped a .prj-page (incluye t-mural/mejora/admin extras)
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */

.prj-page[b-2r1eiyol6r] {
    --bg-canvas: var(--cream);
    --t-nem-bg:    #FEF3C7;
    --t-nem-soft:  #FDE68A;
    --t-pmc-bg:    #EDE9FE;
    --t-pmc-soft:  #DDD6FE;
    --t-evento-bg: #FCE7F3;
    --t-evento-soft:#FBCFE8;
    --t-concurso-bg:#FEE2E2;
    --t-concurso-soft:#FECACA;
    --t-comite-bg: #DBEAFE;
    --t-comite-soft:#BFDBFE;
    --t-mural:     #7E22CE;
    --t-mural-bg:  #F3E8FF;
    --t-mejora:    #B45309;
    --t-mejora-bg: #FEF3C7;
    --t-admin:     #0E7490;
    --t-admin-bg:  #CFFAFE;

    display: grid;
    grid-template-columns: 300px 1fr;
    height: 100dvh;             /* F12 (§70): dvh + descuento de topbar movil abajo (antes 100vh desbordaba) */
    overflow: hidden;
    font-family: var(--font-sans);
    color: var(--text-primary);
    background: var(--bg-canvas);
}

/* F12 (§70): bajo el shell movil (<1024px) hay una topbar de 52px (grid row 1). */
@media (max-width: 1023.98px) {
    .prj-page[b-2r1eiyol6r] { height: calc(100dvh - 52px); }
}

.prj-main[b-2r1eiyol6r] {
    overflow-y: auto;
    background: var(--bg-canvas);
    background-image:
        radial-gradient(circle at 20% 20%, rgba(110, 198, 200, 0.04) 0%, transparent 50%),
        radial-gradient(circle at 80% 80%, rgba(217, 119, 6, 0.03) 0%, transparent 50%);
    scrollbar-width: thin;
    scrollbar-color: #C7C0B1 transparent;
}

.prj-main[b-2r1eiyol6r]::-webkit-scrollbar { width: 10px; }
.prj-main[b-2r1eiyol6r]::-webkit-scrollbar-thumb {
    background: #C7C0B1;
    border-radius: 5px;
    border: 2px solid transparent;
    background-clip: padding-box;
}

/* â•â•â•â• Topbar â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.prj-topbar[b-2r1eiyol6r] {
    padding: 14px 28px;
    background: var(--bg-panel);
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    align-items: center;
    gap: 16px;
    position: sticky;
    top: 0;
    z-index: 5;
}

.prj-breadcrumb[b-2r1eiyol6r] {
    display: flex;
    align-items: center;
    gap: 6px;
    color: var(--text-muted);
    font-size: 12px;
    font-weight: 500;
    flex-wrap: wrap;
}

.prj-breadcrumb .material-symbols-rounded[b-2r1eiyol6r] { font-size: 15px !important; }
.prj-breadcrumb a[b-2r1eiyol6r] { color: var(--text-secondary); text-decoration: none; }
.prj-breadcrumb a:hover[b-2r1eiyol6r] { color: var(--brand-teal-deep); }
.prj-sep[b-2r1eiyol6r] { color: var(--text-muted); }
.prj-current[b-2r1eiyol6r] { color: var(--text-primary); font-weight: 600; }

.prj-topbar-actions[b-2r1eiyol6r] {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 6px;
}

.prj-icon-btn[b-2r1eiyol6r] {
    width: 34px;
    height: 34px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-secondary);
    cursor: pointer;
    transition: all 0.15s;
    border: none;
    background: transparent;
    font-family: inherit;
}

.prj-icon-btn:hover[b-2r1eiyol6r] {
    background: var(--bg-light-teal);
    color: var(--brand-teal-deep);
}

.prj-icon-btn .material-symbols-rounded[b-2r1eiyol6r] { font-size: 20px; }

/* BotÃ³n "volver a la lista" â€” solo visible en mÃ³vil (<900px), ver media query */
.prj-btn-volver[b-2r1eiyol6r] {
    display: none;
    width: 34px;
    height: 34px;
    border-radius: 8px;
    align-items: center;
    justify-content: center;
    color: var(--text-secondary);
    cursor: pointer;
    border: none;
    background: transparent;
    font-family: inherit;
    flex-shrink: 0;
    transition: all 0.15s;
}

.prj-btn-volver:hover[b-2r1eiyol6r] {
    background: var(--bg-light-teal);
    color: var(--brand-teal-deep);
}

.prj-btn-volver .material-symbols-rounded[b-2r1eiyol6r] { font-size: 20px; }

.prj-btn-secondary[b-2r1eiyol6r] {
    padding: 7px 14px;
    font-size: 12.5px;
    font-weight: 600;
    border: 1px solid var(--border-med);
    background: var(--bg-panel);
    color: var(--text-secondary);
    border-radius: 8px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: all 0.15s;
    font-family: inherit;
}

.prj-btn-secondary:hover[b-2r1eiyol6r] {
    border-color: var(--brand-teal);
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
}

.prj-btn-secondary .material-symbols-rounded[b-2r1eiyol6r] { font-size: 16px !important; }

.prj-btn-primary[b-2r1eiyol6r] {
    padding: 7px 14px;
    font-size: 12.5px;
    font-weight: 700;
    border: none;
    background: var(--brand-teal-primary);
    color: var(--text-primary);
    border-radius: 8px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: all 0.15s;
    font-family: inherit;
    box-shadow: 0 2px 6px rgba(110, 198, 200, 0.3);
}

.prj-btn-primary:hover[b-2r1eiyol6r] {
    background: var(--brand-teal-dark);
    transform: translateY(-1px);
    box-shadow: 0 4px 10px rgba(75, 168, 170, 0.4);
}

.prj-btn-primary .material-symbols-rounded[b-2r1eiyol6r] { font-size: 16px !important; }

/* â•â•â•â• HERO â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.prj-hero[b-2r1eiyol6r] {
    margin: 24px 28px 0;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: 20px;
    overflow: hidden;
    box-shadow: var(--shadow-md);
    position: relative;
}

.prj-hero-banner[b-2r1eiyol6r] {
    height: 120px;
    background: linear-gradient(135deg, #FEF3C7 0%, #FDE68A 40%, #FCD34D 80%, #F59E0B 100%);
    position: relative;
    overflow: hidden;
}

.prj-hero-banner[b-2r1eiyol6r]::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(circle at 15% 25%, rgba(255, 255, 255, 0.4) 1px, transparent 2px),
        radial-gradient(circle at 45% 65%, rgba(255, 255, 255, 0.3) 1px, transparent 2px),
        radial-gradient(circle at 75% 35%, rgba(255, 255, 255, 0.4) 1px, transparent 2px),
        radial-gradient(circle at 25% 75%, rgba(255, 255, 255, 0.3) 1px, transparent 2px),
        radial-gradient(circle at 85% 85%, rgba(255, 255, 255, 0.4) 1px, transparent 2px);
    background-size: 60px 60px, 80px 80px, 100px 100px, 70px 70px, 90px 90px;
}

.prj-hero-banner[b-2r1eiyol6r]::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent 50%, rgba(217, 119, 6, 0.15) 100%);
}

.prj-hero-type-chip[b-2r1eiyol6r] {
    position: absolute;
    top: 14px;
    left: 20px;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(8px);
    padding: 5px 11px 5px 8px;
    border-radius: 20px;
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11.5px;
    font-weight: 700;
    color: var(--t-nem);
    letter-spacing: 0.3px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

.prj-hero-type-chip .material-symbols-rounded[b-2r1eiyol6r] { font-size: 14px !important; }

.prj-hero-status-chip[b-2r1eiyol6r] {
    position: absolute;
    top: 14px;
    right: 20px;
    background: rgba(29, 158, 117, 0.95);
    padding: 5px 11px 5px 9px;
    border-radius: 20px;
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    font-weight: 700;
    color: #FFFFFF;
    letter-spacing: 0.3px;
    text-transform: uppercase;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

.prj-hero-status-chip[b-2r1eiyol6r]::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #A7F3D0;
    box-shadow: 0 0 0 2px rgba(167, 243, 208, 0.4);
    animation: prj-pulse-b-2r1eiyol6r 2s infinite;
}

@keyframes prj-pulse-b-2r1eiyol6r {
    0%, 100% { box-shadow: 0 0 0 2px rgba(167, 243, 208, 0.4); }
    50%      { box-shadow: 0 0 0 5px rgba(167, 243, 208, 0.2); }
}

.prj-hero-body[b-2r1eiyol6r] { padding: 22px 28px 24px; }

.prj-hero-title[b-2r1eiyol6r] {
    font-family: var(--font-serif);
    font-size: 30px;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.15;
    letter-spacing: -0.6px;
    margin-bottom: 4px;
}

.prj-hero-subtitle[b-2r1eiyol6r] {
    font-size: 14px;
    color: var(--text-secondary);
    font-style: italic;
    margin-bottom: 18px;
}

.prj-hero-meta-grid[b-2r1eiyol6r] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin-bottom: 18px;
}

.prj-hero-meta[b-2r1eiyol6r] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid var(--border-soft);
    border-radius: 10px;
    background: #FBFAF6;
}

.prj-hero-meta-icon[b-2r1eiyol6r] {
    width: 36px;
    height: 36px;
    border-radius: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: #FFFFFF;
}

.prj-hero-meta-icon.nem[b-2r1eiyol6r] { background: linear-gradient(135deg, #F59E0B, var(--t-nem)); }
.prj-hero-meta-icon.cal[b-2r1eiyol6r] { background: linear-gradient(135deg, #60A5FA, var(--t-comite)); }
.prj-hero-meta-icon.peo[b-2r1eiyol6r] { background: linear-gradient(135deg, #8B5CF6, #6D28D9); }
.prj-hero-meta-icon.stu[b-2r1eiyol6r] { background: linear-gradient(135deg, var(--brand-teal), var(--brand-teal-dark)); }

.prj-hero-meta-icon .material-symbols-rounded[b-2r1eiyol6r] { font-size: 18px !important; }

.prj-hero-meta-text[b-2r1eiyol6r] { min-width: 0; }

.prj-hero-meta-label[b-2r1eiyol6r] {
    font-size: 10.5px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 600;
    margin-bottom: 2px;
}

.prj-hero-meta-value[b-2r1eiyol6r] {
    font-size: 13.5px;
    color: var(--text-primary);
    font-weight: 600;
}

/* Phases */
.prj-phases[b-2r1eiyol6r] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
}

.prj-phase[b-2r1eiyol6r] {
    padding: 10px 12px;
    border-radius: 10px;
    border: 1.5px solid var(--border-soft);
    background: var(--bg-panel);
    position: relative;
    transition: all 0.15s;
}

.prj-phase-num[b-2r1eiyol6r] {
    font-family: var(--font-serif);
    font-size: 22px;
    font-weight: 600;
    line-height: 1;
    color: var(--text-muted);
    margin-bottom: 4px;
}

.prj-phase-title[b-2r1eiyol6r] {
    font-size: 11.5px;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.3;
    margin-bottom: 2px;
}

.prj-phase-dates[b-2r1eiyol6r] {
    font-size: 10px;
    color: var(--text-muted);
    margin-bottom: 10px;
}

.prj-phase-bar[b-2r1eiyol6r] {
    height: 4px;
    background: var(--border-soft);
    border-radius: 2px;
    overflow: hidden;
    margin-bottom: 4px;
}

.prj-phase-fill[b-2r1eiyol6r] {
    height: 100%;
    border-radius: 2px;
    background: var(--border-med);
}

.prj-phase-pct[b-2r1eiyol6r] {
    font-size: 10.5px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.prj-phase.done[b-2r1eiyol6r] {
    border-color: rgba(29, 158, 117, 0.3);
    background: linear-gradient(135deg, rgba(29, 158, 117, 0.06) 0%, var(--bg-panel) 60%);
}

.prj-phase.done .prj-phase-num[b-2r1eiyol6r],
.prj-phase.done .prj-phase-pct[b-2r1eiyol6r] { color: var(--success); }

.prj-phase.done .prj-phase-fill[b-2r1eiyol6r] { background: var(--success); }

.prj-phase.active[b-2r1eiyol6r] {
    border-color: var(--t-nem);
    box-shadow: 0 4px 12px rgba(217, 119, 6, 0.12);
    background: linear-gradient(135deg, rgba(217, 119, 6, 0.06) 0%, var(--bg-panel) 60%);
}

.prj-phase.active .prj-phase-num[b-2r1eiyol6r],
.prj-phase.active .prj-phase-pct[b-2r1eiyol6r] { color: var(--t-nem); }

.prj-phase.active .prj-phase-fill[b-2r1eiyol6r] { background: var(--t-nem); }

.prj-phase-check[b-2r1eiyol6r] {
    position: absolute;
    top: 8px;
    right: 8px;
    color: var(--success);
    font-size: 18px !important;
}

.prj-phase-current[b-2r1eiyol6r] {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--t-nem);
    box-shadow: 0 0 0 3px rgba(217, 119, 6, 0.2);
    animation: prj-pulse-orange-b-2r1eiyol6r 2s infinite;
}

@keyframes prj-pulse-orange-b-2r1eiyol6r {
    0%, 100% { box-shadow: 0 0 0 3px rgba(217, 119, 6, 0.2); }
    50%      { box-shadow: 0 0 0 6px rgba(217, 119, 6, 0.08); }
}

/* â•â•â•â• Learning banner â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.prj-learning[b-2r1eiyol6r] {
    margin: 18px 28px 0;
    padding: 14px 18px;
    background: linear-gradient(90deg, var(--t-nem-bg) 0%, #FFFBEB 100%);
    border: 1px solid var(--t-nem-soft);
    border-radius: 14px;
    display: flex;
    align-items: flex-start;
    gap: 14px;
}

.prj-learning-icon[b-2r1eiyol6r] {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: linear-gradient(135deg, var(--t-nem), #92400E);
    color: #FFFFFF;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.prj-learning-icon .material-symbols-rounded[b-2r1eiyol6r] { font-size: 22px !important; }

.prj-learning-content[b-2r1eiyol6r] { flex: 1; min-width: 0; }

.prj-learning-label[b-2r1eiyol6r] {
    font-size: 10.5px;
    font-weight: 700;
    color: var(--t-nem);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 3px;
}

.prj-learning-title[b-2r1eiyol6r] {
    font-size: 14px;
    font-weight: 700;
    color: var(--text-primary);
    margin-bottom: 6px;
    line-height: 1.4;
}

.prj-learning-fields[b-2r1eiyol6r] {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.prj-field-chip[b-2r1eiyol6r] {
    font-size: 11px;
    font-weight: 600;
    padding: 3px 9px;
    border-radius: 12px;
    background: #FFFFFF;
    border: 1px solid var(--t-nem-soft);
    color: #92400E;
}

/* â•â•â•â• TABS â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.prj-tabs[b-2r1eiyol6r] {
    margin: 20px 28px 0;
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    gap: 2px;
    padding: 0 8px;
    flex-wrap: wrap;
}

.prj-tab[b-2r1eiyol6r] {
    padding: 10px 16px;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--text-secondary);
    cursor: pointer;
    border-bottom: 2.5px solid transparent;
    display: flex;
    align-items: center;
    gap: 7px;
    transition: all 0.15s;
    margin-bottom: -1px;
    background: transparent;
    border-top: none;
    border-left: none;
    border-right: none;
    font-family: inherit;
}

.prj-tab:hover[b-2r1eiyol6r] { color: var(--text-primary); }

.prj-tab.active[b-2r1eiyol6r] {
    color: var(--brand-teal-deep);
    border-bottom-color: var(--brand-teal);
}

.prj-tab .material-symbols-rounded[b-2r1eiyol6r] { font-size: 17px !important; }

.prj-tab-count[b-2r1eiyol6r] {
    font-size: 10.5px;
    font-weight: 700;
    padding: 1px 7px;
    background: #F0ECE2;
    color: var(--text-secondary);
    border-radius: 10px;
}

.prj-tab.active .prj-tab-count[b-2r1eiyol6r] {
    background: var(--bg-light-teal);
    color: var(--brand-teal-deep);
}

/* ---- TAB CANAL ------------------------------------------------- */

.prj-tab-panel-canal[b-2r1eiyol6r] {
    min-height: 580px;
    display: flex;
    flex-direction: column;
}

/* ---- KANBAN ---------------------------------------------------- */

.prj-kanban-container[b-2r1eiyol6r] {
    padding: 20px 28px 40px;
}

.prj-kanban-header[b-2r1eiyol6r] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
}

.prj-kh-icon[b-2r1eiyol6r] {
    color: var(--brand-teal-deep);
    font-size: 22px !important;
}

.prj-kh-title[b-2r1eiyol6r] {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 500;
    color: var(--text-primary);
    letter-spacing: -0.2px;
}

.prj-kh-sub[b-2r1eiyol6r] {
    font-size: 12.5px;
    color: var(--text-muted);
    margin-left: 4px;
}

.prj-view-toggle[b-2r1eiyol6r] {
    margin-left: auto;
    display: flex;
    gap: 2px;
    padding: 3px;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: 9px;
}

.prj-view-btn[b-2r1eiyol6r] {
    padding: 5px 10px;
    font-size: 11.5px;
    font-weight: 600;
    color: var(--text-secondary);
    cursor: pointer;
    border-radius: 6px;
    display: flex;
    align-items: center;
    gap: 4px;
    transition: all 0.15s;
}

.prj-view-btn.active[b-2r1eiyol6r] {
    background: var(--bg-light-teal);
    color: var(--brand-teal-deep);
}

.prj-view-btn .material-symbols-rounded[b-2r1eiyol6r] { font-size: 14px !important; }

.prj-kanban[b-2r1eiyol6r] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
}

.prj-column[b-2r1eiyol6r] {
    background: rgba(255, 255, 255, 0.6);
    border: 1px solid var(--border-soft);
    border-radius: 14px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-height: 400px;
}

.prj-column.active-col[b-2r1eiyol6r] {
    border: 1.5px solid var(--t-nem-soft);
    box-shadow: 0 0 0 3px rgba(217, 119, 6, 0.04);
}

.prj-col-header[b-2r1eiyol6r] {
    padding: 12px 14px 10px;
    display: flex;
    align-items: center;
    gap: 8px;
    border-bottom: 1px solid var(--border-soft);
    background: var(--bg-panel);
}

.prj-column.active-col .prj-col-header[b-2r1eiyol6r] {
    background: linear-gradient(90deg, var(--t-nem-bg) 0%, var(--bg-panel) 100%);
}

.prj-col-marker[b-2r1eiyol6r] {
    width: 8px;
    height: 20px;
    border-radius: 3px;
    flex-shrink: 0;
}

.prj-col-name[b-2r1eiyol6r] {
    font-size: 12px;
    font-weight: 700;
    color: var(--text-primary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    flex: 1;
}

.prj-col-count[b-2r1eiyol6r] {
    font-size: 10.5px;
    font-weight: 700;
    color: var(--text-secondary);
    padding: 2px 7px;
    background: #F0ECE2;
    border-radius: 10px;
}

.prj-col-count.active[b-2r1eiyol6r] {
    background: var(--t-nem-soft);
    color: var(--t-nem);
}

.prj-col-add[b-2r1eiyol6r] {
    width: 22px;
    height: 22px;
    border-radius: 6px;
    border: 1px dashed var(--border-med);
    color: var(--text-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    background: transparent;
    transition: all 0.15s;
}

.prj-col-add:hover[b-2r1eiyol6r] {
    border-color: var(--brand-teal);
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
}

.prj-col-add .material-symbols-rounded[b-2r1eiyol6r] { font-size: 14px !important; }

.prj-col-body[b-2r1eiyol6r] {
    padding: 10px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
}

.prj-col-body[b-2r1eiyol6r]::-webkit-scrollbar { width: 6px; }
.prj-col-body[b-2r1eiyol6r]::-webkit-scrollbar-thumb {
    background: var(--border-med);
    border-radius: 3px;
}

/* â•â•â•â• Task card â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.prj-task[b-2r1eiyol6r] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: 10px;
    padding: 10px 12px;
    cursor: grab;
    transition: all 0.15s;
    box-shadow: var(--shadow-sm);
    position: relative;
}

.prj-task:hover[b-2r1eiyol6r] {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
    border-color: var(--border-med);
}

.prj-task.done[b-2r1eiyol6r] {
    background: #F8FAF6;
    opacity: 0.82;
}

.prj-task.done .prj-task-title[b-2r1eiyol6r] {
    text-decoration: line-through;
    text-decoration-color: rgba(29, 158, 117, 0.5);
    color: var(--text-secondary);
}

.prj-task-tags[b-2r1eiyol6r] {
    display: flex;
    gap: 4px;
    margin-bottom: 6px;
    flex-wrap: wrap;
}

.prj-tag[b-2r1eiyol6r] {
    font-size: 9.5px;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 5px;
    letter-spacing: 0.3px;
    text-transform: uppercase;
    display: inline-flex;
    align-items: center;
    gap: 3px;
}

.prj-tag .material-symbols-rounded[b-2r1eiyol6r] {
    font-size: 11px !important;
    font-variation-settings: "FILL" 1 !important;
}

.prj-tag.mate[b-2r1eiyol6r] { background: var(--bg-light-teal); color: var(--brand-teal-deep); }
.prj-tag.esp[b-2r1eiyol6r]  { background: #FCE7F3; color: #9D174D; }
.prj-tag.hist[b-2r1eiyol6r] { background: #FEF3C7; color: #92400E; }
.prj-tag.fcye[b-2r1eiyol6r] { background: #D1FAE5; color: #065F46; }
.prj-tag.nat[b-2r1eiyol6r]  { background: #DBEAFE; color: #1E40AF; }

.prj-priority[b-2r1eiyol6r] {
    font-size: 9.5px;
    font-weight: 700;
    padding: 2px 6px;
    border-radius: 4px;
}

.prj-priority.high[b-2r1eiyol6r] { background: #FEE2E2; color: #991B1B; }
.prj-priority.med[b-2r1eiyol6r]  { background: #FEF3C7; color: #92400E; }

.prj-task-title[b-2r1eiyol6r] {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.35;
    margin-bottom: 8px;
}

.prj-task-desc[b-2r1eiyol6r] {
    font-size: 11.5px;
    color: var(--text-secondary);
    line-height: 1.4;
    margin-bottom: 8px;
}

.prj-sm-mention[b-2r1eiyol6r] {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 1px 6px 2px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 600;
    vertical-align: baseline;
    margin: 0 1px;
}

.prj-sm-mention .material-symbols-rounded[b-2r1eiyol6r] {
    font-size: 11px !important;
    font-variation-settings: "FILL" 1 !important;
}

.prj-sm-mention.grupo[b-2r1eiyol6r]  { background: rgba(110, 198, 200, 0.15); color: var(--brand-teal-deep); }
.prj-sm-mention.alumno[b-2r1eiyol6r] { background: rgba(186, 117, 23, 0.14);  color: #8B5A10; }
.prj-sm-mention.user[b-2r1eiyol6r]   { background: rgba(245, 158, 11, 0.15);  color: #854D0E; }

/* Task footer */
.prj-task-footer[b-2r1eiyol6r] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-top: 8px;
    border-top: 1px solid var(--border-soft);
    font-size: 11px;
    color: var(--text-muted);
}

.prj-task-due[b-2r1eiyol6r] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-weight: 600;
}

.prj-task-due.urgent[b-2r1eiyol6r]   { color: var(--danger); }
.prj-task-due.soon[b-2r1eiyol6r]     { color: var(--warning); }
.prj-task-due.ok[b-2r1eiyol6r]       { color: var(--text-secondary); }
.prj-task-due.done-due[b-2r1eiyol6r] { color: var(--success); }

.prj-task-due .material-symbols-rounded[b-2r1eiyol6r] { font-size: 13px !important; }

.prj-task-stats[b-2r1eiyol6r] {
    display: inline-flex;
    gap: 8px;
    margin-left: auto;
}

.prj-task-stat[b-2r1eiyol6r] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-weight: 500;
}

.prj-task-stat .material-symbols-rounded[b-2r1eiyol6r] {
    font-size: 13px !important;
    color: var(--text-muted);
}

.prj-task-avatars[b-2r1eiyol6r] {
    display: flex;
    margin-left: 4px;
}

.prj-av[b-2r1eiyol6r] {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 1.5px solid var(--bg-panel);
    margin-left: -5px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #FFFFFF;
    font-size: 9px;
    font-weight: 700;
    font-family: var(--font-sans);
}

.prj-av:first-child[b-2r1eiyol6r] { margin-left: 0; }

.prj-av.av-more[b-2r1eiyol6r] {
    background: #E5E1D8;
    color: var(--text-secondary);
    font-size: 8px;
}

/* Evidence */
.prj-task-evidence[b-2r1eiyol6r] {
    margin-top: 8px;
    display: flex;
    gap: 4px;
}

.prj-evidence-thumb[b-2r1eiyol6r] {
    width: 36px;
    height: 36px;
    border-radius: 6px;
    background: #F0ECE2;
    border: 1px solid var(--border-soft);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-muted);
    font-size: 14px;
    position: relative;
    overflow: hidden;
}

.prj-evidence-thumb.img[b-2r1eiyol6r]   { background: linear-gradient(135deg, #E0E7FF, #C7D2FE); color: #4338CA; }
.prj-evidence-thumb.pdf[b-2r1eiyol6r]   { background: linear-gradient(135deg, #FEE2E2, #FECACA); color: #991B1B; }
.prj-evidence-thumb.doc[b-2r1eiyol6r]   { background: linear-gradient(135deg, #DBEAFE, #BFDBFE); color: #1E40AF; }
.prj-evidence-thumb.video[b-2r1eiyol6r] { background: linear-gradient(135deg, #FEF3C7, #FDE68A); color: #92400E; }

.prj-evidence-thumb .material-symbols-rounded[b-2r1eiyol6r] { font-size: 18px !important; }

.prj-evidence-thumb.evidence-more[b-2r1eiyol6r] {
    background: transparent;
    border: 1px dashed var(--border-med);
    color: var(--text-muted);
    font-size: 10.5px;
    font-weight: 600;
}

/* Linked banner */
.prj-task-linked[b-2r1eiyol6r] {
    margin-top: 6px;
    padding: 6px 8px;
    background: #FAF5FF;
    border: 1px solid #E9D5FF;
    border-radius: 6px;
    font-size: 10.5px;
    color: #6D28D9;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-weight: 600;
}

.prj-task-linked.teal[b-2r1eiyol6r] {
    background: rgba(110, 198, 200, 0.08);
    border-color: rgba(110, 198, 200, 0.3);
    color: var(--brand-teal-deep);
}

.prj-task-linked .material-symbols-rounded[b-2r1eiyol6r] { font-size: 12px !important; }

/* â”€â”€ Bulk selection â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */

.prj-bulk-toolbar[b-2r1eiyol6r] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 16px;
    background: linear-gradient(135deg, #EEF7F8, #E0F4F5);
    border: 1px solid rgba(109, 199, 208, 0.35);
    border-radius: 10px;
    margin-bottom: 12px;
    animation: slideDown-b-2r1eiyol6r .2s ease;
}

@keyframes slideDown-b-2r1eiyol6r {
    from { opacity: 0; transform: translateY(-8px); }
    to   { opacity: 1; transform: translateY(0); }
}

.prj-bulk-count[b-2r1eiyol6r] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--brand-teal-deep, #2C6D6F);
    white-space: nowrap;
}
.prj-bulk-count .material-symbols-rounded[b-2r1eiyol6r] { font-size: 18px; }

.prj-bulk-actions[b-2r1eiyol6r] {
    display: flex;
    gap: 6px;
    flex: 1;
}

.prj-bulk-btn[b-2r1eiyol6r] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 6px 12px;
    border: 1px solid var(--border-med, #E0E0E0);
    border-radius: 6px;
    font-size: 12px;
    font-weight: 500;
    background: #fff;
    cursor: pointer;
    transition: all .15s;
}
.prj-bulk-btn:hover:not(:disabled)[b-2r1eiyol6r] { background: #F5F5F5; }
.prj-bulk-btn:disabled[b-2r1eiyol6r] { opacity: 0.5; cursor: not-allowed; }
.prj-bulk-btn .material-symbols-rounded[b-2r1eiyol6r] { font-size: 16px; }

.prj-bulk-btn.success[b-2r1eiyol6r] { color: #16A34A; border-color: #BBF7D0; }
.prj-bulk-btn.success:hover:not(:disabled)[b-2r1eiyol6r] { background: #F0FDF4; }

.prj-bulk-btn.primary[b-2r1eiyol6r] { color: var(--brand-teal-deep, #2C6D6F); border-color: rgba(109,199,208,0.4); }
.prj-bulk-btn.primary:hover:not(:disabled)[b-2r1eiyol6r] { background: #EEF7F8; }

.prj-bulk-btn.danger[b-2r1eiyol6r] { color: var(--t-concurso); border-color: #FECACA; }
.prj-bulk-btn.danger:hover:not(:disabled)[b-2r1eiyol6r] { background: #FEF2F2; }

.prj-bulk-btn.cancel[b-2r1eiyol6r] { color: #666; }
.prj-bulk-btn.cancel:hover:not(:disabled)[b-2r1eiyol6r] { background: #F5F5F5; }

/* Task card in selection mode */
.prj-task.selection-mode[b-2r1eiyol6r] { cursor: pointer; user-select: none; }
.prj-task.selected[b-2r1eiyol6r] {
    outline: 2px solid var(--brand-teal);
    outline-offset: -2px;
    background: rgba(109, 199, 208, 0.06);
}

.prj-task-checkbox[b-2r1eiyol6r] {
    position: absolute;
    top: 8px;
    right: 8px;
    color: #AAA;
    font-size: 18px;
    line-height: 1;
}
.prj-task-checkbox.checked[b-2r1eiyol6r] { color: var(--brand-teal); }
.prj-task-checkbox .material-symbols-rounded[b-2r1eiyol6r] { font-size: 20px; }

.prj-task.selection-mode[b-2r1eiyol6r] { position: relative; }

/* â”€â”€ Bulk modals â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */

.prj-modal-overlay[b-2r1eiyol6r] {
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: rgba(0,0,0,0.35);
    display: flex;
    align-items: center;
    justify-content: center;
    animation: fadeIn-b-2r1eiyol6r .15s ease;
}

@keyframes fadeIn-b-2r1eiyol6r {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.prj-modal-card[b-2r1eiyol6r] {
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 20px 60px rgba(0,0,0,0.2);
    width: 380px;
    max-width: 90vw;
    max-height: 70vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.prj-modal-header[b-2r1eiyol6r] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 16px 20px;
    border-bottom: 1px solid #F0F0F0;
    font-size: 14px;
    font-weight: 600;
    color: #333;
}
.prj-modal-header .material-symbols-rounded[b-2r1eiyol6r] { font-size: 20px; color: var(--brand-teal); }

.prj-modal-body[b-2r1eiyol6r] {
    padding: 12px 16px;
    overflow-y: auto;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.prj-modal-option[b-2r1eiyol6r] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: none;
    background: transparent;
    border-radius: 8px;
    font-size: 13px;
    color: #333;
    cursor: pointer;
    text-align: left;
    width: 100%;
    transition: background .12s;
}
.prj-modal-option:hover[b-2r1eiyol6r] { background: #F5F5F5; }
.prj-modal-option .material-symbols-rounded[b-2r1eiyol6r] { font-size: 18px; color: #888; }

.prj-modal-role[b-2r1eiyol6r] {
    margin-left: auto;
    font-size: 11px;
    color: #999;
    text-transform: capitalize;
}

.prj-av-sm[b-2r1eiyol6r] {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    color: #fff;
    font-weight: 700;
    flex-shrink: 0;
}

.prj-modal-footer[b-2r1eiyol6r] {
    padding: 12px 16px;
    border-top: 1px solid #F0F0F0;
    display: flex;
    justify-content: flex-end;
}

.prj-modal-btn.cancel[b-2r1eiyol6r] {
    padding: 6px 16px;
    border: 1px solid #E0E0E0;
    border-radius: 6px;
    background: #fff;
    font-size: 12px;
    cursor: pointer;
    color: #666;
}
.prj-modal-btn.cancel:hover[b-2r1eiyol6r] { background: #F5F5F5; }

/* â•â•â•â• Responsive â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

@media (max-width: 1280px) {
    .prj-kanban[b-2r1eiyol6r] { grid-template-columns: repeat(2, 1fr); }
    .prj-hero-meta-grid[b-2r1eiyol6r] { grid-template-columns: repeat(2, 1fr); }
    .prj-phases[b-2r1eiyol6r] { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 900px) {
    .prj-page[b-2r1eiyol6r] { grid-template-columns: 1fr; }

    /* Bug conocido: .ps-sidebar vive en el componente hijo ProjectsSidebar,
       por lo que el CSS isolation de Blazor le asigna un scope distinto al
       de esta hoja (.prj-page.razor.css). Sin ::deep esta regla nunca
       aplica y el sidebar de 300px nunca se oculta en mÃ³vil. */
    .prj-page[b-2r1eiyol6r]  .ps-sidebar { display: none; }

    /* Cuando no hay proyecto seleccionado (o el usuario quiere volver a la
       lista), el sidebar debe poder verse de nuevo: se muestra en vez del
       estado vacÃ­o hasta que el usuario elija un proyecto. */
    .prj-page.prj-sin-seleccion[b-2r1eiyol6r]  .ps-sidebar { display: flex; }
    .prj-page.prj-sin-seleccion .prj-main[b-2r1eiyol6r] { display: none; }

    /* BotÃ³n "volver" visible solo en mÃ³vil, para regresar de un proyecto
       abierto a la lista (sidebar) sin depender de navegaciÃ³n del browser. */
    .prj-btn-volver[b-2r1eiyol6r] { display: flex; }
}

@media (max-width: 720px) {
    .prj-topbar[b-2r1eiyol6r] { padding: 12px 16px; flex-wrap: wrap; }
    .prj-hero[b-2r1eiyol6r] { margin: 16px 16px 0; }
    .prj-hero-body[b-2r1eiyol6r] { padding: 16px 18px 18px; }
    .prj-hero-title[b-2r1eiyol6r] { font-size: 24px; }
    .prj-learning[b-2r1eiyol6r] { margin: 14px 16px 0; }
    .prj-tabs[b-2r1eiyol6r] { margin: 16px 16px 0; padding: 0; overflow-x: auto; flex-wrap: nowrap; }
    .prj-kanban-container[b-2r1eiyol6r] { padding: 16px; }
    .prj-kanban[b-2r1eiyol6r] { grid-template-columns: 1fr; }
}

/* â”€â”€ Loading / Empty states â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.prj-loading[b-2r1eiyol6r] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 80px 20px;
    gap: 14px;
    color: var(--text-muted);
    font-size: 13px;
}

.prj-spin[b-2r1eiyol6r] {
    font-size: 32px !important;
    color: var(--brand-teal);
    animation: prj-rotate-b-2r1eiyol6r 1s linear infinite;
}

@keyframes prj-rotate-b-2r1eiyol6r { to { transform: rotate(360deg); } }

.prj-empty[b-2r1eiyol6r] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 80px 24px;
    color: var(--text-muted);
    flex: 1;
}

.prj-empty .material-symbols-rounded[b-2r1eiyol6r] {
    font-size: 56px !important;
    color: var(--border-med);
    margin-bottom: 16px;
}

.prj-empty h3[b-2r1eiyol6r] {
    font-family: var(--font-serif);
    font-size: 20px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0 0 8px;
    letter-spacing: -0.2px;
}

.prj-empty p[b-2r1eiyol6r] {
    font-size: 13.5px;
    color: var(--text-secondary);
    margin: 0;
    max-width: 400px;
    line-height: 1.5;
}

/* â”€â”€ Inline editor: crear tarea desde el botÃ³n "+" de la columna â”€â”€ */
.prj-task-inline[b-2r1eiyol6r] {
    background: var(--bg-panel);
    border: 1.5px dashed var(--brand-teal);
    border-radius: 10px;
    padding: 10px;
    margin-bottom: 8px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.prj-task-inline-input[b-2r1eiyol6r] {
    width: 100%;
    padding: 8px 10px;
    border: 1px solid var(--border-soft);
    border-radius: 6px;
    background: var(--bg);
    color: var(--text-primary);
    font-family: var(--font-sans);
    font-size: 12.5px;
    outline: none;
    transition: border-color 0.15s ease;
}

.prj-task-inline-input:focus[b-2r1eiyol6r] { border-color: var(--brand-teal); }
.prj-task-inline-input:disabled[b-2r1eiyol6r] { opacity: 0.5; cursor: not-allowed; }

.prj-task-inline-actions[b-2r1eiyol6r] {
    display: flex;
    gap: 6px;
    justify-content: flex-end;
}

.prj-inline-btn[b-2r1eiyol6r] {
    padding: 5px 12px;
    border-radius: 6px;
    border: 1px solid var(--border-soft);
    background: var(--bg-panel);
    color: var(--text-secondary);
    font-family: var(--font-sans);
    font-size: 11.5px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.12s ease;
}

.prj-inline-btn:hover[b-2r1eiyol6r] {
    border-color: var(--brand-teal);
    color: var(--brand-teal-deep);
}

.prj-inline-btn.primary[b-2r1eiyol6r] {
    background: var(--brand-teal);
    border-color: var(--brand-teal);
    color: var(--text-primary);
}

.prj-inline-btn.primary:hover[b-2r1eiyol6r] { background: var(--brand-teal-dark); }
.prj-inline-btn:disabled[b-2r1eiyol6r] { opacity: 0.5; cursor: not-allowed; }

/* Estado completado: tachado del tÃ­tulo */
.prj-task.done .prj-task-title[b-2r1eiyol6r] {
    text-decoration: line-through;
    color: var(--text-muted);
}

.prj-task-title[b-2r1eiyol6r] {
    transition: color 0.12s ease;
}

.prj-task-title:hover[b-2r1eiyol6r] {
    color: var(--brand-teal-deep);
}

/* â”€â”€ Toast local â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.prj-toast[b-2r1eiyol6r] {
    position: fixed;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--text-primary);
    color: #fff;
    padding: 10px 18px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 600;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
    z-index: 1000;
    animation: prj-toast-in-b-2r1eiyol6r 0.2s ease;
}

.prj-toast .material-symbols-rounded[b-2r1eiyol6r] {
    font-size: 18px;
    color: var(--success, #22C55E);
}

@keyframes prj-toast-in-b-2r1eiyol6r {
    from { opacity: 0; transform: translate(-50%, 8px); }
    to   { opacity: 1; transform: translate(-50%, 0); }
}
/* /Pages/Comunicacion/Tareas.razor.rz.scp.css */
/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   Tareas â€” estilos scoped (prefijo trs-).
   Replica `micomunidad-tareas-mockup.html`.
   Tokens vienen de wwwroot/css/tokens.css.
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.trs-page[b-b03l502l42] {
    width: 100%;
    height: 100%;
    overflow: hidden;
    display: flex;
    font-family: var(--font-sans);
    color: var(--text-primary);
}

.trs-main[b-b03l502l42] {
    flex: 1;
    min-width: 0;
    overflow-y: auto;
    background:
        radial-gradient(circle at 15% 10%, rgba(110, 198, 200, 0.06) 0%, transparent 45%),
        radial-gradient(circle at 90% 90%, rgba(217, 119, 6, 0.03) 0%, transparent 50%),
        var(--bg);
    display: flex;
    flex-direction: column;
}

.trs-main[b-b03l502l42]::-webkit-scrollbar { width: 10px; }
.trs-main[b-b03l502l42]::-webkit-scrollbar-thumb {
    background: #C7C0B1;
    border-radius: 5px;
    border: 2px solid transparent;
    background-clip: padding-box;
}

/* â”€â”€ HEADER â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.trs-page-header[b-b03l502l42] {
    padding: 22px 32px 0;
    background: var(--bg);
    position: sticky;
    top: 0;
    z-index: 4;
}

.trs-breadcrumb[b-b03l502l42] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 500;
    color: var(--text-muted);
    margin-bottom: 8px;
}

.trs-breadcrumb[b-b03l502l42]  .material-symbols-rounded { font-size: 14px !important; }

.trs-breadcrumb a[b-b03l502l42] {
    color: var(--text-secondary);
    text-decoration: none;
    cursor: pointer;
}

.trs-breadcrumb a:hover[b-b03l502l42] { color: var(--brand-teal-deep); }

.trs-sep[b-b03l502l42] { color: var(--text-muted); }
.trs-current[b-b03l502l42] { color: var(--text-primary); font-weight: 700; }

.trs-title-row[b-b03l502l42] {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 4px;
}

.trs-title-icon[b-b03l502l42] {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: linear-gradient(135deg, #F59E0B, var(--t-nem));
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(245, 158, 11, 0.25);
}

.trs-title-icon[b-b03l502l42]  .material-symbols-rounded { font-size: 24px !important; }

.trs-title-block[b-b03l502l42] { flex: 1; min-width: 0; }

.trs-title[b-b03l502l42] {
    font-family: var(--font-serif);
    font-size: 28px;
    font-weight: 600;
    color: var(--text-primary);
    letter-spacing: -0.5px;
    line-height: 1.1;
}

.trs-sub[b-b03l502l42] {
    font-size: 13px;
    color: var(--text-secondary);
    margin-top: 4px;
}

.trs-actions[b-b03l502l42] {
    display: flex;
    gap: 6px;
    align-items: center;
}

.trs-icon-btn[b-b03l502l42] {
    width: 36px;
    height: 36px;
    border-radius: 9px;
    border: 1px solid var(--border-soft);
    background: var(--bg-panel);
    color: var(--text-secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.15s;
}

.trs-icon-btn:hover[b-b03l502l42] {
    border-color: var(--brand-teal);
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
}

.trs-icon-btn[b-b03l502l42]  .material-symbols-rounded { font-size: 18px !important; }

.trs-btn-primary[b-b03l502l42] {
    padding: 8px 14px;
    font-size: 12.5px;
    font-weight: 700;
    border-radius: 9px;
    border: none;
    background: var(--brand-teal-primary);
    color: var(--text-primary);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: inherit;
    box-shadow: 0 2px 6px rgba(110, 198, 200, 0.3);
    transition: all 0.15s;
}

.trs-btn-primary:hover[b-b03l502l42] {
    background: var(--brand-teal-dark);
    transform: translateY(-1px);
}

.trs-btn-primary[b-b03l502l42]  .material-symbols-rounded { font-size: 16px !important; }

/* â”€â”€ STATS â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.trs-stats-row[b-b03l502l42] {
    padding: 20px 32px 16px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}

.trs-stat-tile[b-b03l502l42] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: 14px;
    padding: 14px 16px;
    cursor: pointer;
    transition: all 0.18s;
    display: flex;
    align-items: center;
    gap: 12px;
    position: relative;
    overflow: hidden;
}

.trs-stat-tile:hover[b-b03l502l42] {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
    border-color: var(--brand-teal);
}

.trs-stat-tile.danger[b-b03l502l42] {
    border-color: rgba(163, 45, 45, 0.3);
    background: linear-gradient(135deg, #FEF2F2 0%, var(--bg-panel) 60%);
}

.trs-stat-tile.danger:hover[b-b03l502l42] { border-color: var(--danger); }

.trs-stat-icon[b-b03l502l42] {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    flex-shrink: 0;
}

.trs-stat-icon[b-b03l502l42]  .material-symbols-rounded { font-size: 20px !important; }

.trs-stat-icon.danger[b-b03l502l42]  { background: linear-gradient(135deg, var(--t-concurso), #991B1B); }
.trs-stat-icon.warning[b-b03l502l42] { background: linear-gradient(135deg, #F59E0B, var(--t-nem)); }
.trs-stat-icon.teal[b-b03l502l42]    { background: linear-gradient(135deg, var(--brand-teal), var(--brand-teal-dark)); }
.trs-stat-icon.muted[b-b03l502l42]   { background: linear-gradient(135deg, #94A3B8, #64748B); }

.trs-stat-content[b-b03l502l42] { flex: 1; min-width: 0; }

.trs-stat-row[b-b03l502l42] {
    display: flex;
    align-items: baseline;
    gap: 6px;
    margin-bottom: 2px;
}

.trs-stat-value[b-b03l502l42] {
    font-family: var(--font-serif);
    font-size: 24px;
    font-weight: 600;
    letter-spacing: -0.4px;
    line-height: 1;
}

.trs-stat-value.danger[b-b03l502l42] { color: var(--danger); }

.trs-stat-suffix[b-b03l502l42] {
    font-size: 11px;
    color: var(--text-muted);
    font-weight: 500;
}

.trs-stat-label[b-b03l502l42] {
    font-size: 11.5px;
    color: var(--text-secondary);
    font-weight: 600;
}

/* â”€â”€ Responsive: stats en 2 columnas + toolbar con wrap en mÃ³vil â”€â”€â”€â”€ */
@media (max-width: 768px) {
    .trs-stats-row[b-b03l502l42] {
        grid-template-columns: repeat(2, 1fr);
        padding: 16px 16px 12px;
    }

    /* El header no debe exprimir el subtitulo entre el icono y los botones */
    .trs-title-row[b-b03l502l42] {
        flex-wrap: wrap;
        row-gap: 10px;
    }

    .trs-title-block[b-b03l502l42] {
        flex: 1 1 55%;
    }

    .trs-actions[b-b03l502l42] {
        flex: 0 0 auto;
        margin-left: auto;
    }

    .trs-sub[b-b03l502l42] {
        white-space: normal;
    }

    .trs-page-header[b-b03l502l42] {
        padding: 18px 16px 0;
    }

    .trs-toolbar[b-b03l502l42] {
        padding: 8px 16px 14px;
        flex-wrap: wrap;
    }

    .trs-view-toggle[b-b03l502l42] {
        order: 1;
    }

    .trs-view-saved-hint[b-b03l502l42] {
        order: 2;
    }

    .trs-filters[b-b03l502l42] {
        order: 4;
        width: 100%;
    }

    .trs-search-input[b-b03l502l42] {
        order: 3;
        width: 100%;
        margin-left: 0;
    }

    .trs-content[b-b03l502l42] {
        padding: 0 16px 80px;
    }

    .trs-bulk-banner[b-b03l502l42] {
        margin: 0 16px 12px;
        flex-wrap: wrap;
    }
}

/* â”€â”€ TOOLBAR â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.trs-toolbar[b-b03l502l42] {
    padding: 8px 32px 14px;
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.trs-view-toggle[b-b03l502l42] {
    display: flex;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: 10px;
    padding: 3px;
    gap: 2px;
    position: relative;
}

.trs-view-btn[b-b03l502l42] {
    padding: 6px 12px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--text-secondary);
    cursor: pointer;
    border-radius: 7px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    transition: all 0.15s;
    border: none;
    background: transparent;
    font-family: inherit;
}

.trs-view-btn:hover[b-b03l502l42] {
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
}

.trs-view-btn.active[b-b03l502l42] {
    background: var(--brand-teal-primary);
    color: var(--text-primary);
    box-shadow: 0 2px 5px rgba(110, 198, 200, 0.3);
}

.trs-view-btn[b-b03l502l42]  .material-symbols-rounded { font-size: 15px !important; }

.trs-view-saved-hint[b-b03l502l42] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 10.5px;
    color: var(--text-muted);
    padding: 4px 8px;
    background: var(--bg-panel);
    border: 1px dashed var(--border-med);
    border-radius: 12px;
}

.trs-view-saved-hint[b-b03l502l42]  .material-symbols-rounded { font-size: 11px !important; }

.trs-filters[b-b03l502l42] {
    display: flex;
    gap: 5px;
    align-items: center;
    flex-wrap: wrap;
    flex: 1;
}

.trs-filter-chip[b-b03l502l42] {
    padding: 5px 11px;
    font-family: inherit;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
    border-radius: 14px;
    border: 1px solid var(--border-soft);
    background: var(--bg-panel);
    color: var(--text-secondary);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    transition: all 0.15s;
}

.trs-filter-chip:hover[b-b03l502l42] {
    border-color: var(--brand-teal);
    color: var(--brand-teal-deep);
}

.trs-filter-chip:focus-visible[b-b03l502l42] {
    outline: 2px solid var(--brand-teal);
    outline-offset: 2px;
}

.trs-filter-chip.active[b-b03l502l42] {
    background: var(--bg-light-teal);
    border-color: var(--brand-teal);
    color: var(--brand-teal-deep);
}

.trs-filter-chip.active.priority-urgent[b-b03l502l42] {
    background: #FEE2E2;
    border-color: #FCA5A5;
    color: var(--danger);
}

.trs-filter-chip[b-b03l502l42]  .material-symbols-rounded { font-size: 13px !important; }

.trs-filter-clear[b-b03l502l42] {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: 1px solid var(--border-soft);
    background: var(--bg-panel);
    color: var(--text-muted);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 0.15s;
}

.trs-filter-clear:hover[b-b03l502l42] {
    border-color: var(--danger);
    color: var(--danger);
}

.trs-filter-clear[b-b03l502l42]  .material-symbols-rounded { font-size: 14px !important; }

.trs-filter-chip-count[b-b03l502l42] {
    font-size: 10px;
    font-weight: 700;
    padding: 1px 6px;
    background: #F0ECE2;
    border-radius: 8px;
    color: var(--text-muted);
}

.trs-filter-chip.active .trs-filter-chip-count[b-b03l502l42] {
    background: rgba(110, 198, 200, 0.2);
    color: var(--brand-teal-deep);
}

.trs-search-input[b-b03l502l42] {
    padding: 6px 12px 6px 32px;
    font-size: 12.5px;
    border-radius: 9px;
    border: 1px solid var(--border-soft);
    background: var(--bg-panel) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238B9098' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='8'/><line x1='21' y1='21' x2='16.65' y2='16.65'/></svg>") no-repeat 10px center;
    font-family: inherit;
    outline: none;
    color: var(--text-primary);
    width: 200px;
    transition: all 0.15s;
}

.trs-search-input:focus[b-b03l502l42] {
    border-color: var(--brand-teal);
    box-shadow: 0 0 0 3px rgba(110, 198, 200, 0.15);
}

/* â”€â”€ BULK BANNER â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.trs-bulk-banner[b-b03l502l42] {
    margin: 0 32px 12px;
    padding: 10px 14px;
    background: linear-gradient(90deg, rgba(110, 198, 200, 0.12) 0%, rgba(110, 198, 200, 0.04) 100%);
    border: 1px solid rgba(110, 198, 200, 0.4);
    border-radius: 10px;
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 12.5px;
}

.trs-bulk-icon[b-b03l502l42] { color: var(--brand-teal-dark); }

.trs-bulk-text[b-b03l502l42] {
    flex: 1;
    font-weight: 600;
    color: var(--brand-teal-deep);
}

.trs-bulk-text strong[b-b03l502l42] { color: var(--text-primary); }

.trs-bulk-actions[b-b03l502l42] {
    display: flex;
    gap: 6px;
}

.trs-bulk-btn[b-b03l502l42] {
    padding: 5px 11px;
    font-size: 11.5px;
    font-weight: 600;
    border-radius: 7px;
    border: 1px solid var(--border-soft);
    background: var(--bg-panel);
    color: var(--text-secondary);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-family: inherit;
}

.trs-bulk-btn:hover[b-b03l502l42] {
    border-color: var(--brand-teal);
    color: var(--brand-teal-deep);
}

.trs-bulk-btn[b-b03l502l42]  .material-symbols-rounded { font-size: 13px !important; }

.trs-bulk-btn-danger[b-b03l502l42] {
    border-color: rgba(163, 45, 45, 0.3);
    color: var(--danger);
}

.trs-bulk-btn-danger:hover[b-b03l502l42] {
    border-color: var(--danger);
    color: var(--danger);
}

/* â”€â”€ CONTENT â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.trs-content[b-b03l502l42] {
    padding: 0 32px 80px;
    flex: 1;
}

.trs-task-group[b-b03l502l42] { margin-bottom: 4px; }

.trs-group-header[b-b03l502l42] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 4px 10px;
    position: sticky;
    top: 130px;
    background: var(--bg);
    z-index: 2;
}

.trs-group-icon[b-b03l502l42] {
    width: 24px;
    height: 24px;
    border-radius: 7px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    flex-shrink: 0;
}

.trs-group-icon[b-b03l502l42]  .material-symbols-rounded { font-size: 14px !important; }

.trs-group-icon.danger[b-b03l502l42]  { background: var(--danger); }
.trs-group-icon.warning[b-b03l502l42] { background: var(--warning); }
.trs-group-icon.teal[b-b03l502l42]    { background: var(--brand-teal-dark); }
.trs-group-icon.muted[b-b03l502l42]   { background: var(--text-muted); }

.trs-group-label[b-b03l502l42] {
    font-family: var(--font-serif);
    font-size: 16px;
    font-weight: 600;
    color: var(--text-primary);
    letter-spacing: -0.2px;
}

.trs-group-line[b-b03l502l42] {
    flex: 1;
    height: 1px;
    background: var(--border-soft);
}

.trs-group-count[b-b03l502l42] {
    font-size: 10.5px;
    font-weight: 700;
    color: var(--text-muted);
    padding: 2px 8px;
    background: var(--bg-panel);
    border-radius: 10px;
    border: 1px solid var(--border-soft);
}

/* â”€â”€ TASK ROW â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.trs-task[b-b03l502l42] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: 11px;
    padding: 12px 14px;
    margin-bottom: 6px;
    display: grid;
    grid-template-columns: 20px 22px 22px 1fr auto;
    gap: 10px;
    align-items: center;
    cursor: pointer;
    transition: all 0.15s;
    position: relative;
}

.trs-task:hover[b-b03l502l42] {
    border-color: var(--border-med);
    transform: translateY(-1px);
    box-shadow: var(--shadow-sm);
}

.trs-task.selected[b-b03l502l42] {
    border-color: var(--brand-teal);
    background: rgba(110, 198, 200, 0.04);
}

.trs-task.urgent[b-b03l502l42] {
    border-left: 3px solid var(--danger);
    padding-left: 11px;
}

.trs-task.completed[b-b03l502l42] { opacity: 0.6; }

.trs-task.completed .trs-task-title[b-b03l502l42] {
    text-decoration: line-through;
    color: var(--text-muted);
}

.trs-task-select[b-b03l502l42] {
    width: 18px;
    height: 18px;
    border-radius: 5px;
    border: 1.5px solid var(--border-med);
    background: var(--bg-panel);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.15s;
}

.trs-task-select:hover[b-b03l502l42] { border-color: var(--brand-teal); }

.trs-task-select.checked[b-b03l502l42] {
    background: var(--brand-teal);
    border-color: var(--brand-teal);
}

.trs-task-select.checked[b-b03l502l42]  .material-symbols-rounded {
    color: white;
    font-size: 13px !important;
    font-variation-settings: 'FILL' 1, 'wght' 700 !important;
}

.trs-task-check[b-b03l502l42] {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 2px solid var(--border-med);
    background: var(--bg-panel);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.15s;
}

.trs-task-check:hover[b-b03l502l42] { border-color: var(--success); }

.trs-task-check.done[b-b03l502l42] {
    background: var(--success);
    border-color: var(--success);
}

.trs-task-check.done[b-b03l502l42]  .material-symbols-rounded {
    color: white;
    font-size: 13px !important;
    font-variation-settings: 'FILL' 1, 'wght' 700 !important;
}

.trs-task-info[b-b03l502l42] { min-width: 0; }

.trs-task-row1[b-b03l502l42] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px;
    flex-wrap: wrap;
}

.trs-task-title[b-b03l502l42] {
    font-size: 13.5px;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.3;
}

.trs-task-row2[b-b03l502l42] {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 11px;
    color: var(--text-muted);
    flex-wrap: wrap;
}

.trs-task-meta-item[b-b03l502l42] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
}

.trs-task-meta-item[b-b03l502l42]  .material-symbols-rounded { font-size: 12px !important; }

.trs-task-project[b-b03l502l42] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    border-radius: 5px;
    font-size: 10.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.trs-task-project[b-b03l502l42]  .material-symbols-rounded {
    font-size: 11px !important;
    font-variation-settings: 'FILL' 1 !important;
}

.trs-task-project.nem[b-b03l502l42]      { background: rgba(217, 119, 6, 0.12);  color: var(--t-nem); }
.trs-task-project.pmc[b-b03l502l42]      { background: rgba(124, 58, 237, 0.12); color: var(--t-pmc); }
.trs-task-project.evento[b-b03l502l42]   { background: rgba(219, 39, 119, 0.12); color: var(--t-evento); }
.trs-task-project.proceso[b-b03l502l42]  { background: rgba(107, 114, 128, 0.15); color: #4B5563; }
.trs-task-project.concurso[b-b03l502l42] { background: rgba(220, 38, 38, 0.12);  color: var(--t-concurso); }
.trs-task-project.personal[b-b03l502l42] { background: rgba(245, 158, 11, 0.15); color: #854D0E; }

.trs-task-due[b-b03l502l42] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-weight: 600;
}

.trs-task-due[b-b03l502l42]  .material-symbols-rounded { font-size: 12px !important; }

.trs-task-due.urgent[b-b03l502l42] { color: var(--danger); }
.trs-task-due.soon[b-b03l502l42]   { color: var(--warning); }
.trs-task-due.ok[b-b03l502l42]     { color: var(--text-secondary); }

.trs-task-affecting[b-b03l502l42] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 1px 6px;
    background: rgba(110, 198, 200, 0.13);
    color: var(--brand-teal-deep);
    border-radius: 4px;
    font-size: 10.5px;
    font-weight: 600;
}

.trs-task-affecting[b-b03l502l42]  .material-symbols-rounded { font-size: 11px !important; }

.trs-task-actions[b-b03l502l42] {
    display: flex;
    align-items: center;
    gap: 6px;
}

.trs-task-avatars[b-b03l502l42] { display: flex; }

.trs-task-av[b-b03l502l42] {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 1.5px solid var(--bg-panel);
    margin-left: -5px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 9.5px;
    font-weight: 700;
}

.trs-task-av:first-child[b-b03l502l42] { margin-left: 0; }

.trs-task-action-btn[b-b03l502l42] {
    padding: 5px 11px;
    font-size: 11px;
    font-weight: 700;
    border-radius: 6px;
    border: 1px solid var(--brand-teal);
    background: var(--bg-panel);
    color: var(--brand-teal-deep);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
    font-family: inherit;
    transition: all 0.15s;
    white-space: nowrap;
}

.trs-task-action-btn:hover[b-b03l502l42] {
    background: var(--brand-teal-primary);
    color: var(--text-primary);
}

.trs-task-action-btn[b-b03l502l42]  .material-symbols-rounded { font-size: 13px !important; }

.trs-task-icon-btn[b-b03l502l42] {
    width: 26px;
    height: 26px;
    border-radius: 6px;
    border: 1px solid transparent;
    background: transparent;
    color: var(--text-muted);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.trs-task-icon-btn:hover[b-b03l502l42] {
    background: var(--bg-light-teal);
    color: var(--brand-teal-deep);
}

.trs-task-icon-btn[b-b03l502l42]  .material-symbols-rounded { font-size: 14px !important; }

/* â”€â”€ FAB â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.trs-fab[b-b03l502l42] {
    position: fixed;
    bottom: 28px;
    right: 32px;
    width: 56px;
    height: 56px;
    border-radius: 16px;
    background: linear-gradient(135deg, var(--brand-teal), var(--brand-teal-dark));
    color: white;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 8px 20px rgba(110, 198, 200, 0.4);
    transition: all 0.2s;
    z-index: 10;
}

.trs-fab:hover[b-b03l502l42] {
    transform: translateY(-3px) scale(1.05);
    box-shadow: 0 12px 28px rgba(110, 198, 200, 0.5);
}

.trs-fab[b-b03l502l42]  .material-symbols-rounded { font-size: 26px !important; }

/* â”€â”€ KANBAN PREVIEW â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.trs-kanban-preview[b-b03l502l42] {
    margin: 32px 0 24px;
    padding: 22px 24px;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: 16px;
    box-shadow: var(--shadow-sm);
    position: relative;
}

.trs-preview-tag[b-b03l502l42] {
    position: absolute;
    top: -12px;
    left: 22px;
    padding: 4px 12px;
    background: linear-gradient(135deg, var(--carbon-2) 0%, #2A2E35 100%);
    color: var(--brand-teal);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.trs-preview-tag[b-b03l502l42]  .material-symbols-rounded {
    font-size: 12px !important;
    color: var(--brand-teal);
}

.trs-preview-title[b-b03l502l42] {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: 4px;
    letter-spacing: -0.3px;
}

.trs-preview-sub[b-b03l502l42] {
    font-size: 12px;
    color: var(--text-secondary);
    margin-bottom: 16px;
}

.trs-kanban-grid[b-b03l502l42] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
}

.trs-kanban-col[b-b03l502l42] {
    background: rgba(244, 240, 230, 0.6);
    border: 1px solid var(--border-soft);
    border-radius: 10px;
    padding: 10px;
    min-height: 140px;
}

.trs-kanban-col-head[b-b03l502l42] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding-bottom: 8px;
    margin-bottom: 8px;
    border-bottom: 1px solid var(--border-soft);
}

.trs-kanban-col-marker[b-b03l502l42] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}

.trs-kanban-col-name[b-b03l502l42] {
    font-size: 11px;
    font-weight: 700;
    color: var(--text-primary);
    text-transform: uppercase;
    letter-spacing: 0.4px;
    flex: 1;
}

.trs-kanban-col-count[b-b03l502l42] {
    font-size: 10px;
    font-weight: 700;
    padding: 1px 6px;
    background: var(--bg-panel);
    color: var(--text-secondary);
    border-radius: 8px;
}

.trs-kanban-card[b-b03l502l42] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: 8px;
    padding: 8px 10px;
    margin-bottom: 6px;
    cursor: grab;
    font-size: 11.5px;
}

.trs-kanban-card.overdue[b-b03l502l42] { border-left: 3px solid var(--danger); }

.trs-kanban-card.completed[b-b03l502l42] { opacity: 0.6; }

.trs-kanban-card.completed .trs-kanban-card-title[b-b03l502l42] {
    text-decoration: line-through;
}

.trs-kanban-card-tags[b-b03l502l42] {
    display: flex;
    gap: 3px;
    margin-bottom: 4px;
}

.trs-kanban-card-title[b-b03l502l42] {
    font-weight: 600;
    color: var(--text-primary);
    font-size: 11.5px;
    line-height: 1.3;
    margin-bottom: 5px;
}

.trs-kanban-card-foot[b-b03l502l42] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 10px;
    color: var(--text-muted);
}

.trs-mini-tag[b-b03l502l42] {
    font-size: 8.5px;
    font-weight: 700;
    padding: 1px 5px;
    border-radius: 3px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.trs-mini-tag.nem[b-b03l502l42]     { background: rgba(217, 119, 6, 0.12);  color: var(--t-nem); }
.trs-mini-tag.pmc[b-b03l502l42]     { background: rgba(124, 58, 237, 0.12); color: var(--t-pmc); }
.trs-mini-tag.proceso[b-b03l502l42] { background: rgba(107, 114, 128, 0.15); color: #4B5563; }
.trs-mini-tag.evento[b-b03l502l42]  { background: rgba(219, 39, 119, 0.12); color: var(--t-evento); }

/* â”€â”€ Kanban D&D â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */

.trs-kanban-col.drop-target[b-b03l502l42] {
    background: rgba(20, 184, 166, 0.08);
    border-color: var(--brand-teal);
    border-style: dashed;
}

.trs-kanban-card.dragging[b-b03l502l42] {
    opacity: 0.35;
    transform: scale(0.96);
}

.trs-kanban-card:active[b-b03l502l42] {
    cursor: grabbing;
}

.trs-kanban-empty[b-b03l502l42] {
    text-align: center;
    padding: 20px 8px;
    font-size: 11px;
    color: var(--text-muted);
    font-style: italic;
}

.trs-preview-note[b-b03l502l42] {
    margin-top: 14px;
    padding: 10px 14px;
    background: var(--bg-cream);
    border: 1px dashed var(--border-med);
    border-radius: 8px;
    font-size: 11.5px;
    color: var(--text-secondary);
    line-height: 1.5;
    display: flex;
    align-items: flex-start;
    gap: 8px;
}

.trs-preview-note[b-b03l502l42]  .material-symbols-rounded {
    font-size: 14px !important;
    color: var(--brand-teal-deep);
    flex-shrink: 0;
    margin-top: 1px;
}

.trs-preview-note strong[b-b03l502l42] {
    color: var(--text-primary);
    font-weight: 700;
}

/* â”€â”€ Loading / Empty states â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.trs-loading[b-b03l502l42] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 80px 20px;
    gap: 14px;
    color: var(--text-muted);
    font-size: 13px;
}

.trs-spin[b-b03l502l42] {
    font-size: 32px !important;
    color: var(--brand-teal);
    animation: trs-rotate-b-b03l502l42 1s linear infinite;
}

@keyframes trs-rotate-b-b03l502l42 { to { transform: rotate(360deg); } }

.trs-empty[b-b03l502l42] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 60px 24px;
    color: var(--text-muted);
}

.trs-empty .material-symbols-rounded[b-b03l502l42] {
    font-size: 48px !important;
    color: var(--success);
    margin-bottom: 14px;
    opacity: 0.6;
}

.trs-empty h3[b-b03l502l42] {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0 0 6px;
    letter-spacing: -0.2px;
}

.trs-empty p[b-b03l502l42] {
    font-size: 13px;
    color: var(--text-secondary);
    margin: 0;
    max-width: 360px;
    line-height: 1.5;
}

.trs-empty-btn[b-b03l502l42] {
    margin-top: 18px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    border-radius: 999px;
    border: 1px solid var(--border-med);
    background: white;
    color: var(--text-primary);
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s;
}

.trs-empty-btn:hover[b-b03l502l42] {
    border-color: var(--brand-teal);
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
}

.trs-empty-btn[b-b03l502l42]  .material-symbols-rounded {
    font-size: 16px !important;
    color: inherit;
    margin: 0 !important;
    opacity: 1;
}

/* â”€â”€ Pills de prioridad y meta dentro de la fila de tarea â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.trs-task-priority[b-b03l502l42] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 1px 7px;
    border-radius: 8px;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.2px;
    text-transform: uppercase;
}

.trs-task-priority.alta[b-b03l502l42] {
    background: #FEF3C7;
    color: #B45309;
}

.trs-task-priority.urgent[b-b03l502l42] {
    background: #FEE2E2;
    color: var(--danger);
}

.trs-task-priority[b-b03l502l42]  .material-symbols-rounded {
    font-size: 11px !important;
    font-variation-settings: 'FILL' 1 !important;
}

.trs-tag-pill[b-b03l502l42] {
    display: inline-flex;
    align-items: center;
    padding: 1px 7px;
    border-radius: 8px;
    font-size: 10px;
    font-weight: 600;
    background: color-mix(in srgb, var(--tag-color) 18%, transparent);
    color: var(--tag-color);
    white-space: nowrap;
}

/* â”€â”€ Twisty expand/collapse para sub-tareas â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.trs-task-twisty[b-b03l502l42] {
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    border-radius: 4px;
    color: var(--text-muted);
    transition: all 0.15s;
}

.trs-task-twisty:hover[b-b03l502l42] {
    background: var(--bg-hover);
    color: var(--text-main);
}

.trs-task-twisty[b-b03l502l42]  .material-symbols-rounded {
    font-size: 18px !important;
}

.trs-task-twisty-spacer[b-b03l502l42] {
    width: 20px;
}

.trs-subtask-counter[b-b03l502l42] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 1px 7px;
    border-radius: 8px;
    font-size: 10.5px;
    font-weight: 600;
    background: #EEF2FF;
    color: #4F46E5;
    cursor: pointer;
}

.trs-subtask-counter:hover[b-b03l502l42] {
    background: #E0E7FF;
}

.trs-subtask-counter[b-b03l502l42]  .material-symbols-rounded {
    font-size: 11px !important;
    font-variation-settings: 'FILL' 1 !important;
    color: var(--success);
}

/* â”€â”€ Sub-tareas indentadas â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.trs-subtask-list[b-b03l502l42] {
    padding-left: 32px;
    border-left: 2px solid var(--border-soft);
    margin-left: 24px;
    margin-bottom: 4px;
}

.trs-task.trs-task-child[b-b03l502l42] {
    border-radius: 8px;
    padding: 8px 12px;
    margin-bottom: 3px;
    grid-template-columns: 22px 22px 1fr auto;
    gap: 10px;
    background: var(--bg-page, #FAFBFC);
    border-color: transparent;
}

.trs-task.trs-task-child:hover[b-b03l502l42] {
    border-color: var(--border-soft);
    transform: none;
    box-shadow: none;
}

.trs-task.trs-task-child .trs-task-title[b-b03l502l42] {
    font-size: 13px;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   Vista Calendario
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

/* â”€â”€ Sub-toggle (Semana / Agenda / Mes) â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.trs-cal-subtoggle[b-b03l502l42] {
    display: flex;
    gap: 4px;
    padding: 4px;
    background: var(--bg-card, #fff);
    border: 1px solid var(--border-soft);
    border-radius: 10px;
    width: fit-content;
    margin-bottom: 16px;
}

.trs-cal-sub-btn[b-b03l502l42] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: var(--text-secondary);
    font: 500 13px/1 var(--font-sans);
    cursor: pointer;
    transition: all 0.15s ease;
}

.trs-cal-sub-btn .material-symbols-rounded[b-b03l502l42] { font-size: 18px; }

.trs-cal-sub-btn:hover[b-b03l502l42] { background: var(--bg-hover, #f5f4f1); }

.trs-cal-sub-btn.active[b-b03l502l42] {
    background: var(--brand-teal);
    color: var(--text-primary);
    box-shadow: 0 1px 4px rgba(110, 198, 200, 0.35);
}

/* â”€â”€ Week navigation â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.trs-cal-nav[b-b03l502l42] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
}

.trs-cal-today-btn[b-b03l502l42] {
    padding: 4px 12px;
    border: 1px solid var(--border-soft);
    border-radius: 6px;
    background: var(--bg-card, #fff);
    color: var(--text-primary);
    font: 500 13px/1 var(--font-sans);
    cursor: pointer;
    transition: all 0.15s ease;
}

.trs-cal-today-btn:hover[b-b03l502l42] {
    background: var(--brand-teal);
    color: var(--text-primary);
    border-color: var(--brand-teal);
}

.trs-cal-range[b-b03l502l42] {
    font: 500 14px/1 var(--font-sans);
    color: var(--text-primary);
    min-width: 200px;
}

/* â”€â”€ 7-column week grid â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.trs-cal-week-grid[b-b03l502l42] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 1px;
    background: var(--border-soft);
    border: 1px solid var(--border-soft);
    border-radius: 12px;
    overflow: hidden;
    margin-bottom: 16px;
}

.trs-cal-day-col[b-b03l502l42] {
    background: var(--bg-card, #fff);
    min-height: 140px;
    display: flex;
    flex-direction: column;
}

.trs-cal-day-col.trs-cal-today[b-b03l502l42] {
    background: rgba(110, 198, 200, 0.06);
}

.trs-cal-day-header[b-b03l502l42] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    padding: 8px 4px 6px;
    border-bottom: 1px solid var(--border-soft);
}

.trs-cal-day-name[b-b03l502l42] {
    font: 600 10px/1 var(--font-sans);
    color: var(--text-muted);
    letter-spacing: 0.5px;
}

.trs-cal-day-num[b-b03l502l42] {
    font: 600 16px/1 var(--font-sans);
    color: var(--text-primary);
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
}

.trs-cal-today-num[b-b03l502l42] {
    background: var(--brand-teal);
    color: var(--text-primary);
}

.trs-cal-day-body[b-b03l502l42] {
    flex: 1;
    padding: 4px;
    display: flex;
    flex-direction: column;
    gap: 3px;
    overflow-y: auto;
    max-height: 200px;
}

.trs-cal-day-body[b-b03l502l42]::-webkit-scrollbar { width: 3px; }
.trs-cal-day-body[b-b03l502l42]::-webkit-scrollbar-thumb { background: var(--border-soft); border-radius: 3px; }

.trs-cal-day-empty[b-b03l502l42] { flex: 1; }

/* â”€â”€ Calendar task pill â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.trs-cal-task[b-b03l502l42] {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 3px 6px;
    border-radius: 4px;
    font-size: 11px;
    line-height: 1.3;
    cursor: pointer;
    transition: background 0.12s ease;
    background: var(--bg-hover, #f5f4f1);
}

.trs-cal-task:hover[b-b03l502l42] {
    background: var(--bg-skeleton, #eae7de);
}

.trs-cal-task-dot[b-b03l502l42] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex-shrink: 0;
}

.trs-cal-task-nem  .trs-cal-task-dot[b-b03l502l42],
.trs-cal-task-nem.trs-cal-agenda-dot[b-b03l502l42]  { background: var(--brand-teal); }
.trs-cal-task-pmc  .trs-cal-task-dot[b-b03l502l42],
.trs-cal-task-pmc.trs-cal-agenda-dot[b-b03l502l42]  { background: #6366F1; }
.trs-cal-task-evento .trs-cal-task-dot[b-b03l502l42],
.trs-cal-task-evento.trs-cal-agenda-dot[b-b03l502l42] { background: #EC4899; }
.trs-cal-task-proceso .trs-cal-task-dot[b-b03l502l42],
.trs-cal-task-proceso.trs-cal-agenda-dot[b-b03l502l42] { background: #F59E0B; }
.trs-cal-task-concurso .trs-cal-task-dot[b-b03l502l42],
.trs-cal-task-concurso.trs-cal-agenda-dot[b-b03l502l42] { background: #8B5CF6; }
.trs-cal-task-personal .trs-cal-task-dot[b-b03l502l42],
.trs-cal-task-personal.trs-cal-agenda-dot[b-b03l502l42] { background: var(--text-muted); }

.trs-cal-task-title[b-b03l502l42] {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--text-primary);
    font-weight: 500;
}

.trs-cal-task-time[b-b03l502l42] {
    font-size: 10px;
    color: var(--text-muted);
    white-space: nowrap;
}

.trs-cal-task-badge[b-b03l502l42] {
    font-size: 9px;
    font-weight: 700;
    padding: 1px 4px;
    border-radius: 3px;
    background: var(--bg-skeleton, #eae7de);
    color: var(--text-muted);
    white-space: nowrap;
}

.trs-cal-task-done .trs-cal-task-title[b-b03l502l42] {
    text-decoration: line-through;
    color: var(--text-muted);
}

.trs-cal-task-urgent[b-b03l502l42] {
    background: rgba(239, 68, 68, 0.08);
}

.trs-cal-task-urgent .trs-cal-task-title[b-b03l502l42] {
    color: var(--danger);
}

/* â”€â”€ Sin fecha section â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.trs-cal-nofecha[b-b03l502l42] {
    margin-top: 4px;
    padding: 12px 16px;
    background: var(--bg-card, #fff);
    border: 1px solid var(--border-soft);
    border-radius: 10px;
}

.trs-cal-nofecha-header[b-b03l502l42] {
    display: flex;
    align-items: center;
    gap: 6px;
    font: 500 13px/1 var(--font-sans);
    color: var(--text-muted);
    margin-bottom: 8px;
}

.trs-cal-nofecha-header .material-symbols-rounded[b-b03l502l42] { font-size: 18px; }

.trs-cal-nofecha .trs-cal-task[b-b03l502l42] {
    margin-bottom: 4px;
}

/* â”€â”€ Agenda view â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.trs-cal-agenda-group[b-b03l502l42] {
    margin-bottom: 16px;
}

.trs-cal-agenda-header[b-b03l502l42] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-radius: 8px;
    font: 600 13px/1 var(--font-sans);
    margin-bottom: 6px;
}

.trs-cal-agenda-header .material-symbols-rounded[b-b03l502l42] { font-size: 18px; }

.trs-cal-agenda-danger[b-b03l502l42]  { background: rgba(239, 68, 68, 0.08); color: var(--danger); }
.trs-cal-agenda-warning[b-b03l502l42] { background: rgba(245, 158, 11, 0.08); color: var(--warning-dark); }
.trs-cal-agenda-teal[b-b03l502l42]    { background: rgba(110, 198, 200, 0.08); color: var(--brand-teal); }
.trs-cal-agenda-muted[b-b03l502l42]   { background: var(--bg-hover, #f5f4f1); color: var(--text-muted); }

.trs-cal-agenda-count[b-b03l502l42] {
    margin-left: auto;
    background: rgba(0,0,0,0.08);
    padding: 2px 8px;
    border-radius: 10px;
    font-size: 11px;
    font-weight: 700;
}

.trs-cal-agenda-item[b-b03l502l42] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 12px;
    background: var(--bg-card, #fff);
    border: 1px solid var(--border-soft);
    border-radius: 8px;
    margin-bottom: 4px;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.trs-cal-agenda-item:hover[b-b03l502l42] {
    border-color: var(--brand-teal);
    box-shadow: 0 1px 4px rgba(110, 198, 200, 0.12);
}

.trs-cal-agenda-dot[b-b03l502l42] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    margin-top: 5px;
    flex-shrink: 0;
}

.trs-cal-agenda-content[b-b03l502l42] {
    flex: 1;
    min-width: 0;
}

.trs-cal-agenda-title[b-b03l502l42] {
    font: 500 14px/1.4 var(--font-sans);
    color: var(--text-primary);
    margin-bottom: 4px;
}

.trs-cal-agenda-done .trs-cal-agenda-title[b-b03l502l42] {
    text-decoration: line-through;
    color: var(--text-muted);
}

.trs-cal-agenda-urgent[b-b03l502l42] {
    border-left: 3px solid var(--danger);
}

.trs-cal-agenda-meta[b-b03l502l42] {
    display: flex;
    align-items: center;
    gap: 4px;
    font: 400 12px/1 var(--font-sans);
    color: var(--text-muted);
}

.trs-cal-agenda-meta .material-symbols-rounded[b-b03l502l42] { font-size: 14px; }

.trs-cal-agenda-tag[b-b03l502l42] {
    font-size: 10px;
    font-weight: 700;
    padding: 1px 5px;
    border-radius: 3px;
    margin-left: 4px;
}

.trs-cal-agenda-tag.trs-cal-task-nem[b-b03l502l42]     { background: rgba(110,198,200,0.15); color: var(--brand-teal); }
.trs-cal-agenda-tag.trs-cal-task-pmc[b-b03l502l42]     { background: rgba(99,102,241,0.12); color: #6366F1; }
.trs-cal-agenda-tag.trs-cal-task-evento[b-b03l502l42]  { background: rgba(236,72,153,0.12); color: #EC4899; }
.trs-cal-agenda-tag.trs-cal-task-proceso[b-b03l502l42] { background: rgba(245,158,11,0.12); color: var(--t-nem); }

.trs-cal-agenda-action[b-b03l502l42] {
    padding: 4px;
    border: none;
    background: transparent;
    color: var(--text-muted);
    cursor: pointer;
    border-radius: 6px;
    transition: all 0.12s ease;
}

.trs-cal-agenda-action:hover[b-b03l502l42] {
    background: var(--bg-hover, #f5f4f1);
    color: var(--brand-teal);
}

.trs-cal-agenda-action .material-symbols-rounded[b-b03l502l42] { font-size: 18px; }

/* â”€â”€ Responsive: stack week grid on mobile â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
@media (max-width: 768px) {
    .trs-cal-week-grid[b-b03l502l42] {
        grid-template-columns: 1fr;
    }

    .trs-cal-day-col[b-b03l502l42] {
        min-height: auto;
    }

    .trs-cal-day-header[b-b03l502l42] {
        flex-direction: row;
        gap: 8px;
        justify-content: flex-start;
        padding: 6px 12px;
    }

    .trs-cal-day-body[b-b03l502l42] {
        max-height: none;
        padding: 4px 12px 8px;
    }
}

/* â”€â”€ Vista Mes â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.trs-cal-month-weekdays[b-b03l502l42] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 1px;
    background: var(--border-soft);
    border: 1px solid var(--border-soft);
    border-bottom: none;
    border-radius: 12px 12px 0 0;
    overflow: hidden;
}

.trs-cal-month-weekday[b-b03l502l42] {
    background: var(--bg-panel);
    padding: 8px 4px;
    text-align: center;
    font: 700 10px/1 var(--font-sans);
    letter-spacing: 0.5px;
    color: var(--text-muted);
    text-transform: uppercase;
}

.trs-cal-month-grid[b-b03l502l42] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 1px;
    background: var(--border-soft);
    border: 1px solid var(--border-soft);
    border-radius: 0 0 12px 12px;
    overflow: hidden;
    margin-bottom: 16px;
}

.trs-cal-month-cell[b-b03l502l42] {
    background: var(--bg-card, #fff);
    min-height: 96px;
    padding: 6px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    cursor: pointer;
    transition: background 0.12s ease;
}

.trs-cal-month-cell:hover[b-b03l502l42] {
    background: var(--bg-hover, #f5f4f1);
}

.trs-cal-month-cell-out[b-b03l502l42] {
    background: var(--bg-cream);
    opacity: 0.55;
}

.trs-cal-month-cell-out:hover[b-b03l502l42] {
    opacity: 0.8;
}

.trs-cal-month-cell-today[b-b03l502l42] {
    background: rgba(110, 198, 200, 0.08);
}

.trs-cal-month-cell-today:hover[b-b03l502l42] {
    background: rgba(110, 198, 200, 0.14);
}

.trs-cal-month-cell-num[b-b03l502l42] {
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font: 600 12px/1 var(--font-sans);
    color: var(--text-primary);
    flex-shrink: 0;
}

.trs-cal-month-cell-chips[b-b03l502l42] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.trs-cal-month-chip[b-b03l502l42] {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 2px 5px;
    border-radius: 4px;
    font-size: 10px;
    line-height: 1.3;
    cursor: pointer;
    background: var(--bg-hover, #f5f4f1);
    transition: background 0.12s ease;
}

.trs-cal-month-chip:hover[b-b03l502l42] {
    background: var(--bg-skeleton, #eae7de);
}

.trs-cal-month-chip-title[b-b03l502l42] {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--text-primary);
    font-weight: 500;
}

.trs-cal-month-chip-done .trs-cal-month-chip-title[b-b03l502l42] {
    text-decoration: line-through;
    color: var(--text-muted);
}

.trs-cal-month-chip-urgent[b-b03l502l42] {
    background: rgba(239, 68, 68, 0.08);
}

.trs-cal-month-chip-urgent .trs-cal-month-chip-title[b-b03l502l42] {
    color: var(--danger);
}

.trs-cal-month-chip-more[b-b03l502l42] {
    font-size: 9.5px;
    font-weight: 700;
    color: var(--brand-teal-deep);
    padding: 2px 5px;
    cursor: pointer;
}

.trs-cal-month-chip-more:hover[b-b03l502l42] {
    text-decoration: underline;
}

/* Lista mÃ³vil (oculta en desktop) */
.trs-cal-month-mobile-list[b-b03l502l42] { display: none; }

@media (max-width: 768px) {
    .trs-cal-month-weekdays[b-b03l502l42],
    .trs-cal-month-grid[b-b03l502l42] {
        display: none;
    }

    .trs-cal-month-mobile-list[b-b03l502l42] {
        display: flex;
        flex-direction: column;
        gap: 12px;
    }

    .trs-cal-month-mobile-day[b-b03l502l42] {
        border: 1px solid var(--border-soft);
        border-radius: 10px;
        padding: 10px 12px;
        background: var(--bg-card, #fff);
    }

    .trs-cal-month-mobile-day-today[b-b03l502l42] {
        border-color: var(--brand-teal);
        background: rgba(110, 198, 200, 0.05);
    }

    .trs-cal-month-mobile-day-header[b-b03l502l42] {
        display: flex;
        align-items: center;
        justify-content: space-between;
        font: 600 13px/1 var(--font-sans);
        color: var(--text-primary);
        margin-bottom: 8px;
        text-transform: capitalize;
    }

    .trs-cal-month-mobile-day-count[b-b03l502l42] {
        font-size: 11px;
        font-weight: 700;
        color: var(--text-muted);
        background: var(--bg-hover, #f5f4f1);
        padding: 1px 8px;
        border-radius: 10px;
    }
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   Filtros avanzados dot + Kebab menu
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.trs-filtros-btn[b-b03l502l42] { position: relative; }

.trs-filter-dot[b-b03l502l42] {
    position: absolute;
    top: -2px;
    right: -2px;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    border-radius: 8px;
    background: var(--brand-teal);
    color: var(--text-primary);
    font: 700 9px/16px var(--font-sans);
    text-align: center;
}

.trs-kebab-wrap[b-b03l502l42] { position: relative; }

.trs-kebab-backdrop[b-b03l502l42] {
    position: fixed;
    inset: 0;
    z-index: 99;
}

.trs-kebab-menu[b-b03l502l42] {
    position: absolute;
    top: 100%;
    right: 0;
    z-index: 100;
    min-width: 200px;
    padding: 4px;
    background: var(--bg-card, #fff);
    border: 1px solid var(--border-soft);
    border-radius: 10px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
    display: flex;
    flex-direction: column;
}

.trs-kebab-item[b-b03l502l42] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border: none;
    border-radius: 6px;
    background: transparent;
    color: var(--text-primary);
    font: 400 13px/1 var(--font-sans);
    cursor: pointer;
    text-align: left;
    transition: background 0.12s;
}

.trs-kebab-item:hover[b-b03l502l42] { background: var(--bg-hover, #f5f4f1); }

.trs-kebab-item .material-symbols-rounded[b-b03l502l42] { font-size: 18px; color: var(--text-muted); }

.trs-kebab-disabled[b-b03l502l42] {
    opacity: 0.5;
    cursor: default;
    pointer-events: none;
}

.trs-kebab-badge[b-b03l502l42] {
    margin-left: auto;
    font: 600 9px/1 var(--font-sans);
    color: var(--text-muted);
    background: var(--bg-skeleton, #eae7de);
    padding: 2px 6px;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

/* â”€â”€ MenÃº por-tarea (more_horiz) â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.trs-task-menu-wrap[b-b03l502l42] { position: relative; }

.trs-task-menu-backdrop[b-b03l502l42] {
    position: fixed;
    inset: 0;
    z-index: 99;
}

.trs-task-menu[b-b03l502l42] {
    position: absolute;
    top: 100%;
    right: 0;
    z-index: 100;
    min-width: 180px;
    padding: 4px;
    background: var(--bg-card, #fff);
    border: 1px solid var(--border-soft);
    border-radius: 10px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
    display: flex;
    flex-direction: column;
}

.trs-task-menu-item[b-b03l502l42] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border: none;
    border-radius: 6px;
    background: transparent;
    color: var(--text-primary);
    font: 400 13px/1 var(--font-sans);
    cursor: pointer;
    text-align: left;
    transition: background 0.12s;
}

.trs-task-menu-item:hover[b-b03l502l42] { background: var(--bg-hover, #f5f4f1); }

.trs-task-menu-item .material-symbols-rounded[b-b03l502l42] { font-size: 18px; color: var(--text-muted); }

.trs-task-menu-item.danger[b-b03l502l42] { color: var(--danger); }
.trs-task-menu-item.danger .material-symbols-rounded[b-b03l502l42] { color: var(--danger); }
.trs-task-menu-item.danger:hover[b-b03l502l42] { background: rgba(163, 45, 45, 0.08); }

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   Print styles
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

@media print {
    .trs-page-header[b-b03l502l42],
    .trs-stats-row[b-b03l502l42],
    .trs-toolbar[b-b03l502l42],
    .trs-fab[b-b03l502l42],
    .trs-kebab-menu[b-b03l502l42],
    .trs-kebab-backdrop[b-b03l502l42] { display: none !important; }

    .trs-page[b-b03l502l42] { overflow: visible !important; height: auto !important; }
    .trs-main[b-b03l502l42] { overflow: visible !important; }

    .trs-task[b-b03l502l42] { break-inside: avoid; }
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   Bulk Modals (Reasignar / Etiquetar)
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

.trs-modal-overlay[b-b03l502l42] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    z-index: 1100;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.trs-modal-box[b-b03l502l42] {
    background: var(--bg-panel);
    border-radius: 14px;
    box-shadow: 0 20px 48px rgba(0, 0, 0, 0.18);
    width: 100%;
    max-width: 420px;
    max-height: 80vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.trs-modal-header[b-b03l502l42] {
    padding: 16px 20px;
    border-bottom: 1px solid var(--border-soft);
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 700;
    font-size: 14px;
    color: var(--text-primary);
}

.trs-modal-header .material-symbols-rounded:first-child[b-b03l502l42] {
    font-size: 20px;
    color: var(--brand-teal-deep);
}

.trs-modal-close[b-b03l502l42] {
    margin-left: auto;
    border: none;
    background: transparent;
    cursor: pointer;
    color: var(--text-muted);
    border-radius: 6px;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.trs-modal-close:hover[b-b03l502l42] { background: #F3EFE7; }

.trs-modal-body[b-b03l502l42] {
    padding: 16px 20px;
    overflow-y: auto;
    flex: 1;
}

.trs-modal-label[b-b03l502l42] {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
    margin-bottom: 10px;
    display: block;
}

.trs-modal-empty[b-b03l502l42] {
    text-align: center;
    padding: 24px 16px;
    color: var(--text-muted);
    font-size: 13px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.trs-modal-empty .material-symbols-rounded[b-b03l502l42] { font-size: 32px; opacity: 0.4; }

/* User list (Reasignar) */
.trs-modal-user-list[b-b03l502l42] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    max-height: 300px;
    overflow-y: auto;
}

.trs-modal-user-item[b-b03l502l42] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: 1.5px solid var(--border-soft);
    border-radius: 10px;
    background: var(--bg-panel);
    cursor: pointer;
    transition: all 0.12s;
    text-align: left;
    font-family: inherit;
}

.trs-modal-user-item:hover[b-b03l502l42] {
    border-color: var(--brand-teal);
    background: rgba(110, 198, 200, 0.04);
}

.trs-modal-user-item.selected[b-b03l502l42] {
    border-color: var(--brand-teal);
    background: rgba(110, 198, 200, 0.08);
}

.trs-modal-user-avatar[b-b03l502l42] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--brand-teal), var(--brand-teal-deep));
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.trs-modal-user-info[b-b03l502l42] { flex: 1; min-width: 0; }

.trs-modal-user-name[b-b03l502l42] {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
}

.trs-modal-user-role[b-b03l502l42] {
    font-size: 11px;
    color: var(--text-muted);
}

.trs-modal-check[b-b03l502l42] {
    color: var(--brand-teal-deep);
    font-size: 18px !important;
}

/* Tag list (Etiquetar) */
.trs-modal-tag-list[b-b03l502l42] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.trs-modal-tag-item[b-b03l502l42] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border: 1.5px solid var(--border-soft);
    border-radius: 16px;
    background: var(--bg-panel);
    cursor: pointer;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--text-primary);
    font-family: inherit;
    transition: all 0.12s;
}

.trs-modal-tag-item:hover[b-b03l502l42] {
    border-color: var(--brand-teal);
}

.trs-modal-tag-item.selected[b-b03l502l42] {
    border-color: var(--brand-teal);
    background: rgba(110, 198, 200, 0.1);
}

.trs-modal-tag-dot[b-b03l502l42] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}

.trs-modal-tag-item .trs-modal-check[b-b03l502l42] {
    font-size: 14px !important;
}

/* Footer */
.trs-modal-footer[b-b03l502l42] {
    padding: 14px 20px;
    border-top: 1px solid var(--border-soft);
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

.trs-modal-btn[b-b03l502l42] {
    padding: 8px 16px;
    font-size: 12.5px;
    font-weight: 600;
    border-radius: 8px;
    cursor: pointer;
    border: 1px solid transparent;
    font-family: inherit;
    transition: all 0.12s;
}

.trs-modal-btn:disabled[b-b03l502l42] {
    opacity: 0.5;
    cursor: not-allowed;
}

.trs-modal-btn.secondary[b-b03l502l42] {
    border-color: var(--border-med);
    background: var(--bg-panel);
    color: var(--text-secondary);
}

.trs-modal-btn.secondary:hover:not(:disabled)[b-b03l502l42] {
    border-color: var(--text-secondary);
}

.trs-modal-btn.primary[b-b03l502l42] {
    background: var(--brand-teal-primary);
    color: var(--text-primary);
    font-weight: 700;
}

.trs-modal-btn.primary:hover:not(:disabled)[b-b03l502l42] {
    background: var(--brand-teal-dark, #4BA8AA);
}

/* T-052: aviso inline dentro del ConfirmDialog de eliminar (mismas reglas que
   Components/UI/FeedbackInline.razor.css; duplicado porque el aislamiento de
   CSS de Blazor no cruza de ConfirmDialog a esta pagina). */
.fbi[b-b03l502l42] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-top: 12px;
    padding: 9px 11px;
    border-radius: var(--radius-md);
    background: rgba(163, 45, 45, .08);
    border: 1px solid rgba(163, 45, 45, .22);
    text-align: left;
}

.fbi .msr[b-b03l502l42] { font-size: 17px; color: var(--danger); flex: 0 0 auto; margin-top: 1px; }
.fbi-body[b-b03l502l42] { min-width: 0; }
.fbi-tit[b-b03l502l42] { font-size: 12.5px; font-weight: 700; color: var(--danger); line-height: 1.35; }
.fbi-txt[b-b03l502l42] { font-size: 12.5px; color: var(--text-secondary); line-height: 1.45; margin-top: 1px; }

/* Repetir y aviso (contrato v1 2026-10-11): chip event_repeat + RepeticionTexto en lista, kanban y agenda */
.trs-task-rep[b-b03l502l42] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 1px 7px;
    border-radius: 999px;
    background: var(--bg-light-teal);
    color: var(--brand-teal-deep);
    font-size: 10.5px;
    font-weight: 700;
    white-space: nowrap;
}

.trs-task-rep .material-symbols-rounded[b-b03l502l42] { font-size: 12px !important; }

.trs-cal-rep[b-b03l502l42] {
    font-size: 12px !important;
    color: var(--brand-teal-deep);
    flex: none;
}
/* /Pages/Concentrado.razor.rz.scp.css */
/* === Concentrado · v2 wrapper (Fase D) ===================================
   Solo el chrome (container, breadcrumb, header, save button) usa tokens v2.
   El resto del CSS (toolbar, chips, tabla con sticky, drawers) preservado
   tal cual para no romper la matriz funcional.
   ========================================================================= */
.concentrado-container[b-8rzv3k8r4k] {
    padding: 22px 28px 36px;
    max-width: 100%;
    font-family: var(--font-sans);
    color: var(--text-primary);
}

/* === Breadcrumb v2 === */
.cn-breadcrumb[b-8rzv3k8r4k] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 14px;
    font-size: 12px;
    color: var(--text-muted);
    flex-wrap: wrap;
}

.cn-breadcrumb .msr[b-8rzv3k8r4k] { font-size: 14px !important; }

.cn-breadcrumb a[b-8rzv3k8r4k] {
    color: var(--text-secondary);
    text-decoration: none;
    cursor: pointer;
    transition: color 0.15s ease;
}

.cn-breadcrumb a:hover[b-8rzv3k8r4k] { color: var(--brand-teal-deep); }

.cn-sep[b-8rzv3k8r4k] { color: var(--text-muted); }

.cn-clase[b-8rzv3k8r4k] {
    color: var(--text-secondary);
    font-weight: 500;
}

.cn-current[b-8rzv3k8r4k] {
    color: var(--text-primary);
    font-weight: 600;
}

/* === Header v2 === */
.cn-header[b-8rzv3k8r4k] {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}

.cn-header-icon[b-8rzv3k8r4k] {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--brand-teal), var(--brand-teal-dark));
    color: #FFFFFF;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(110, 198, 200, 0.25);
}

.cn-header-icon .msr[b-8rzv3k8r4k] { font-size: 24px !important; }

.cn-title-block[b-8rzv3k8r4k] { flex: 1; min-width: 0; }

.cn-title[b-8rzv3k8r4k] {
    font-family: var(--font-serif);
    font-size: 28px;
    font-weight: 600;
    color: var(--text-primary);
    letter-spacing: -0.5px;
    line-height: 1.1;
    margin: 0;
}

.cn-sub[b-8rzv3k8r4k] {
    font-size: 13px;
    color: var(--text-secondary);
    margin: 4px 0 0;
}

.cn-save-btn[b-8rzv3k8r4k] {
    padding: 9px 18px;
    background: var(--brand-teal-primary);
    color: var(--text-primary);
    border: none;
    border-radius: 9px;
    font-family: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: background 0.15s ease, transform 0.1s ease, box-shadow 0.15s ease;
    box-shadow: 0 2px 6px rgba(110, 198, 200, 0.3);
}

.cn-save-btn:hover:not(:disabled)[b-8rzv3k8r4k] {
    background: var(--brand-teal-dark);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(75, 168, 170, 0.35);
}

.cn-save-btn:disabled[b-8rzv3k8r4k] {
    background: #C5D7D9;
    cursor: not-allowed;
    box-shadow: none;
}

.cn-save-btn .msr[b-8rzv3k8r4k] { font-size: 17px !important; }

/* Loading */
.loading-state[b-8rzv3k8r4k] { display: flex; flex-direction: column; align-items: center; padding: 60px 20px; gap: 16px; color: #999; font-size: 14px; }
.spinner[b-8rzv3k8r4k] { width: 36px; height: 36px; border: 3px solid #E8F4F8; border-top: 3px solid #4BA8AA; border-radius: 50%; animation: spin-b-8rzv3k8r4k 0.8s linear infinite; }
@keyframes spin-b-8rzv3k8r4k { to { transform: rotate(360deg); } }

/* Toolbar */
.concentrado-toolbar[b-8rzv3k8r4k] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-bottom: 12px;
}
.search-box[b-8rzv3k8r4k] {
    display: flex;
    align-items: center;
    gap: 6px;
    border: 1px solid #E0E0E0;
    border-radius: 8px;
    padding: 6px 12px;
    flex: 0 0 220px;
    background: #fff;
}
.search-box input[b-8rzv3k8r4k] {
    border: none;
    outline: none;
    font-size: 13px;
    width: 100%;
    background: transparent;
    font-family: inherit;
}
.search-box .search-icon[b-8rzv3k8r4k] { font-size: 18px; color: #AAA; }

.filter-btn[b-8rzv3k8r4k] {
    display: flex;
    align-items: center;
    gap: 4px;
    border: 1px solid #E0E0E0;
    border-radius: 8px;
    padding: 6px 12px;
    font-size: 12px;
    cursor: pointer;
    background: #fff;
    color: #666;
    transition: all 0.15s;
    font-family: inherit;
}
.filter-btn:hover[b-8rzv3k8r4k] { border-color: #4BA8AA; color: #4BA8AA; }
.filter-btn.active[b-8rzv3k8r4k] { background: #4BA8AA; color: var(--text-primary); border-color: #4BA8AA; }
.filter-btn .msr[b-8rzv3k8r4k] { font-size: 14px; }

.export-btn[b-8rzv3k8r4k] {
    position: relative;
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 4px;
    border: 1px solid #E0E0E0;
    border-radius: 8px;
    padding: 6px 14px;
    font-size: 12px;
    cursor: pointer;
    background: #fff;
    color: #666;
    transition: all 0.15s;
    user-select: none;
}
.export-btn:hover[b-8rzv3k8r4k] { border-color: #4BA8AA; color: #4BA8AA; }
.export-btn .msr[b-8rzv3k8r4k] { font-size: 14px; }
.dropdown-arrow[b-8rzv3k8r4k] { font-size: 10px; margin-left: 2px; }

.export-dropdown[b-8rzv3k8r4k] {
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    background: #fff;
    border: 1px solid #E0E0E0;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    z-index: 100;
    min-width: 160px;
    overflow: hidden;
}
.export-option[b-8rzv3k8r4k] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    font-size: 12px;
    color: #333;
    cursor: pointer;
    transition: background 0.15s;
}
.export-option:hover[b-8rzv3k8r4k] { background: #F5F5F5; color: #4BA8AA; }
.export-option .msr[b-8rzv3k8r4k] { font-size: 16px; }

@media (max-width: 600px) {
    .search-box[b-8rzv3k8r4k] { flex: 1 1 100%; }
    .filter-btn[b-8rzv3k8r4k] { flex: 1 1 calc(50% - 4px); justify-content: center; }
    .export-btn[b-8rzv3k8r4k] { flex: 1 1 100%; justify-content: center; margin-left: 0; }
}

/* Criterio chips */
.criterio-chips[b-8rzv3k8r4k] { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.cchip[b-8rzv3k8r4k] {
    display: flex; align-items: center; gap: 4px; padding: 5px 12px; border-radius: 16px;
    font-size: 11px; cursor: pointer; border: 1px solid; transition: opacity 0.2s;
}
.cchip:hover[b-8rzv3k8r4k] { opacity: 0.85; }
.cchip-count[b-8rzv3k8r4k] { opacity: 0.8; font-weight: 400; margin-left: 2px; }
.cchip-action[b-8rzv3k8r4k] { background: transparent !important; border: 1px dashed #CCC !important; color: #999 !important; }
.cchip-todas[b-8rzv3k8r4k] {
    background: transparent;
    border: 1px solid #AAA;
    color: #666;
    font-weight: 500;
}
.cchip-todas.active[b-8rzv3k8r4k] {
    background: #555;
    border-color: #555;
    color: #fff;
}

/* ========== MATRIX TABLE ========== */
.matrix-wrapper[b-8rzv3k8r4k] {
    overflow: auto;
    border: 1px solid #EBEBEB;
    margin-bottom: 16px;
    max-height: 72vh;
}

.matrix-table[b-8rzv3k8r4k] {
    width: max-content;
    border-collapse: separate;
    border-spacing: 0;
}

/* ----- THEAD ----- */
.hdr-row1 th[b-8rzv3k8r4k] { position: sticky; top: 0; z-index: 3; }
.hdr-row2 th[b-8rzv3k8r4k] { position: sticky; top: 34px; z-index: 3; }

/* Alumno header — sticky corner (top + left) */
.th-alumno[b-8rzv3k8r4k] {
    position: sticky;
    left: 0;
    top: 0;
    z-index: 30;
    background: #555;
    color: white;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    padding: 8px 10px;
    min-width: 200px;
    max-width: 200px;
    text-align: left;
    font-weight: 500;
    border-right: 1px solid #666;
    vertical-align: middle;
    box-shadow: 4px 0 6px -2px rgba(0, 0, 0, 0.12);
}

/* Calif header — no longer sticky, flows with horizontal scroll */
.th-calif[b-8rzv3k8r4k] {
    background: #555;
    color: white;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    padding: 8px 4px;
    min-width: 52px;
    max-width: 52px;
    text-align: center;
    font-weight: 500;
    border-right: 2px solid #444;
    vertical-align: middle;
}

/* Trend indicators (inline in alumno name) */
.trend-up[b-8rzv3k8r4k] { color: #639922; font-size: 11px; font-weight: 700; margin-right: 3px; }
.trend-down[b-8rzv3k8r4k] { color: #E24B4A; font-size: 11px; font-weight: 700; margin-right: 3px; }
.trend-flat[b-8rzv3k8r4k] { color: #CCC; font-size: 10px; margin-right: 3px; }

/* Criterio group header */
.th-criterio[b-8rzv3k8r4k] {
    text-align: center;
    padding: 6px 10px;
    font-size: 11px;
    font-weight: 500;
    white-space: nowrap;
    vertical-align: middle;
    background: #555;
}
.th-criterio span[b-8rzv3k8r4k] { font-weight: 500; }
.th-pct[b-8rzv3k8r4k] { font-size: 9px; margin-left: 4px; opacity: 0.8; }

.th-criterio-clickable[b-8rzv3k8r4k] { cursor: pointer; user-select: none; transition: filter 0.15s; }
.th-criterio-clickable:hover[b-8rzv3k8r4k] { filter: brightness(0.96); }

.th-sortable[b-8rzv3k8r4k] { cursor: pointer; user-select: none; transition: background 0.15s; }
.th-sortable:hover[b-8rzv3k8r4k] { background: #666; }
.sort-ic[b-8rzv3k8r4k] {
    font-size: 13px !important;
    vertical-align: middle;
    opacity: 0.7;
    margin-left: 2px;
}

.chevron-ic[b-8rzv3k8r4k] {
    font-size: 14px !important;
    vertical-align: middle;
    transition: transform 0.2s ease;
    display: inline-block;
}
.chevron-ic.rotated[b-8rzv3k8r4k] { transform: rotate(90deg); }
.th-collapsed[b-8rzv3k8r4k] {
    min-width: 65px;
    padding: 6px 10px;
    white-space: nowrap;
}
.collapsed-name[b-8rzv3k8r4k] {
    font-size: 11px;
    font-weight: 500;
    white-space: nowrap;
    line-height: 1.2;
}
.collapsed-pct[b-8rzv3k8r4k] {
    font-size: 9px;
    opacity: 0.7;
    margin-top: 2px;
}

/* Activity sub-header — 2 lines: name + code */
.th-act[b-8rzv3k8r4k] {
    background: #F7F7F7;
    text-align: center;
    padding: 8px 4px;
    min-width: 65px;
    max-width: 65px;
    min-height: 40px;
    border-bottom: 0.5px solid #EBEBEB;
    border-right: 0.5px solid #F0F0F0;
    vertical-align: middle;
    white-space: normal;
}
.th-act-last[b-8rzv3k8r4k] { border-right: none; }
.act-name[b-8rzv3k8r4k] {
    font-size: 9px;
    color: #555;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 60px;
    margin: 0 auto;
    line-height: 1.2;
}
.act-code[b-8rzv3k8r4k] {
    font-size: 8px;
    font-weight: 500;
    margin-top: 2px;
    line-height: 1;
}

/* ----- TBODY ----- */
tbody td[b-8rzv3k8r4k] { background: white; }
.row-alt td[b-8rzv3k8r4k] { background: #FAFAFA; }

/* Alumno data cell — sticky left */
.td-alumno[b-8rzv3k8r4k] {
    position: sticky;
    left: 0;
    z-index: 20;
    background: white;
    min-width: 200px;
    max-width: 200px;
    padding: 4px 10px;
    border-right: 1px solid #EBEBEB;
    border-bottom: 0.5px solid #F3F3F3;
    vertical-align: middle;
    box-shadow: 4px 0 6px -2px rgba(0, 0, 0, 0.08);
}
.row-alt .td-alumno[b-8rzv3k8r4k] { background: #FAFAFA; }

/* Calif data cell — no longer sticky, flows with horizontal scroll */
.td-calif[b-8rzv3k8r4k] {
    background: white;
    min-width: 52px;
    max-width: 52px;
    text-align: center;
    padding: 4px;
    font-size: 12px;
    font-weight: 600;
    border-right: 2px solid #EBEBEB;
    border-bottom: 0.5px solid #F3F3F3;
    vertical-align: middle;
}
.row-alt .td-calif[b-8rzv3k8r4k] { background: #FAFAFA; }

/* Alumno rows */
.alumno-r1[b-8rzv3k8r4k] { font-size: 11px; font-weight: 500; color: #333; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.alumno-r2[b-8rzv3k8r4k] { display: flex; align-items: center; gap: 4px; margin-top: 2px; flex-wrap: wrap; }
.alumno-extras[b-8rzv3k8r4k] { display: inline-flex; align-items: center; gap: 2px; margin-left: 4px; }

/* Badges */
.badge[b-8rzv3k8r4k] { font-size: 9px; padding: 1px 6px; border-radius: 8px; font-weight: 500; white-space: nowrap; }
.badge-pending[b-8rzv3k8r4k] { background: rgba(243,156,18,0.08); color: #C99A2E; border: 1px solid rgba(243,156,18,0.2); }
.badge-complete[b-8rzv3k8r4k] { background: rgba(75,168,170,0.1); color: #4BA8AA; border: 1px solid rgba(75,168,170,0.25); }
.badge-faltas[b-8rzv3k8r4k] { background: rgba(232,141,141,0.1); color: #D35D52; border: 1px solid rgba(232,141,141,0.2); }

/* ----- GRADE CELLS ----- */
.td-grade[b-8rzv3k8r4k] {
    min-width: 65px;
    max-width: 65px;
    text-align: center;
    vertical-align: middle;
    padding: 3px;
    border-bottom: 0.5px solid #F3F3F3;
    border-right: 0.5px solid #F0F0F0;
    position: relative;
    cursor: pointer;
}
.td-grade-last[b-8rzv3k8r4k] { border-right: none; }

/* Grade pill */
.grade-pill[b-8rzv3k8r4k] {
    width: 52px;
    height: 28px;
    border-radius: 5px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 500;
    margin: auto;
}
.pill-ok[b-8rzv3k8r4k] { }
.pill-pending[b-8rzv3k8r4k] {
    background: rgba(243,156,18,0.1);
    color: #C99A2E;
}
.pill-prom[b-8rzv3k8r4k] {
    font-size: 11px;
    cursor: default;
}

/* Grade popup */
.grade-popup[b-8rzv3k8r4k] {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
    background: white;
    border: 0.5px solid #E0E0E0;
    border-radius: 8px;
    padding: 4px;
    display: flex;
    gap: 3px;
    white-space: nowrap;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
.grade-popup-btn[b-8rzv3k8r4k] {
    width: 28px; height: 24px; border-radius: 5px; display: flex;
    align-items: center; justify-content: center; font-size: 10px;
    cursor: pointer; border: 0.5px solid #E8E8E8; background: #FAFAFA; color: #999;
    transition: all 0.15s;
}
.grade-popup-btn:hover[b-8rzv3k8r4k] { border-color: #BBB; color: #555; }
.grade-popup-btn.selected[b-8rzv3k8r4k] {
    background: rgba(75,168,170,0.15); border: 1.5px solid #4BA8AA;
    color: #4BA8AA; font-weight: 500;
}

/* ========== DASHBOARD ========== */
.dashboard-row[b-8rzv3k8r4k] { display: flex; gap: 14px; flex-wrap: wrap; }
.dash-card[b-8rzv3k8r4k] { background: white; border-radius: 12px; border: 0.5px solid #EBEBEB; padding: 14px 18px; }
.dash-donut[b-8rzv3k8r4k] { display: flex; align-items: center; gap: 14px; flex: 1; min-width: 200px; }
.dash-donut-svg[b-8rzv3k8r4k] { width: 60px; height: 60px; transform: rotate(-90deg); flex-shrink: 0; }
.dash-metrics[b-8rzv3k8r4k] { display: flex; gap: 8px; }
.dash-metric[b-8rzv3k8r4k] { border-radius: 10px; padding: 10px 14px; text-align: center; min-width: 80px; }
.dash-metric-num[b-8rzv3k8r4k] { font-size: 18px; font-weight: 500; }
.dash-metric-lbl[b-8rzv3k8r4k] { font-size: 9px; text-transform: uppercase; letter-spacing: 0.3px; margin-top: 2px; }
.dash-alerts[b-8rzv3k8r4k] { display: flex; gap: 8px; }
.dash-alert[b-8rzv3k8r4k] { border-radius: 10px; padding: 10px 14px; text-align: center; min-width: 80px; }
.dash-alert-num[b-8rzv3k8r4k] { font-size: 18px; font-weight: 500; }
.dash-alert-lbl[b-8rzv3k8r4k] { font-size: 9px; }

/* ========== INSIGHTS ========== */
.insights-grid[b-8rzv3k8r4k] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-top: 16px;
}
.insight-card[b-8rzv3k8r4k] {
    background: #f9f9f9;
    border-radius: 12px;
    padding: 14px 16px;
    border: 1px solid #eee;
}
.insight-full[b-8rzv3k8r4k] { grid-column: span 2; }
.insight-title[b-8rzv3k8r4k] {
    font-size: 13px;
    font-weight: 500;
    color: #888;
    margin: 0 0 10px 0;
    display: flex;
    align-items: center;
    gap: 6px;
}
.insight-row[b-8rzv3k8r4k] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 4px 0;
    font-size: 13px;
}
.insight-name[b-8rzv3k8r4k] {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #333;
}
.insight-val[b-8rzv3k8r4k] {
    font-weight: 500;
    min-width: 50px;
    text-align: right;
    white-space: nowrap;
}
.val-red[b-8rzv3k8r4k] { color: #E24B4A; }
.val-green[b-8rzv3k8r4k] { color: #639922; }
.val-amber[b-8rzv3k8r4k] { color: #EF9F27; }

@media (max-width: 600px) {
    .insights-grid[b-8rzv3k8r4k] { grid-template-columns: 1fr; }
    .insight-full[b-8rzv3k8r4k] { grid-column: span 1; }
}

/* ========== EMPTY CRITERIO STATE (V2 fix) ========== */
.th-act-empty[b-8rzv3k8r4k] {
    min-width: 130px;
    max-width: 160px;
    padding: 6px 8px;
    text-align: center;
    border-bottom: 0.5px solid #EBEBEB;
}
.act-empty-state[b-8rzv3k8r4k] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    padding: 2px 0;
}
.act-empty-text[b-8rzv3k8r4k] {
    font-size: 10px;
    opacity: 0.6;
    font-weight: 400;
}
.act-empty-add[b-8rzv3k8r4k] {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 2px 8px;
    border-radius: 4px;
    border: 1px dashed currentColor;
    background: transparent;
    color: inherit;
    font-size: 10px;
    font-weight: 500;
    cursor: pointer;
    opacity: 0.8;
    font-family: inherit;
    transition: opacity 0.15s, background 0.15s;
}
.act-empty-add:hover[b-8rzv3k8r4k] {
    opacity: 1;
    background: rgba(255,255,255,0.5);
}

.td-empty-placeholder[b-8rzv3k8r4k] {
    text-align: center;
    color: #ccc;
    font-size: 12px;
    min-width: 130px;
    max-width: 160px;
    vertical-align: middle;
    border-bottom: 0.5px solid #F3F3F3;
}

/* ========== ADD BUTTONS / DRAWERS (V2) ========== */
.add-activity-btn[b-8rzv3k8r4k] {
    display: flex;
    align-items: center;
    gap: 4px;
    border: 1.5px dashed #4BA8AA;
    border-radius: 8px;
    padding: 5px 12px;
    font-size: 12px;
    color: #4BA8AA;
    background: transparent;
    cursor: pointer;
    font-family: inherit;
    font-weight: 500;
    transition: background 0.15s;
}
.add-activity-btn:hover[b-8rzv3k8r4k] { background: #E8F4F8; }
.add-activity-btn .msr[b-8rzv3k8r4k] { font-size: 14px; }

.chip-add-criterio[b-8rzv3k8r4k] {
    border: 1.5px dashed #9B59B6 !important;
    color: #9B59B6 !important;
    background: transparent !important;
    display: flex;
    align-items: center;
    gap: 2px;
    font-weight: 500;
}
.chip-add-criterio:hover[b-8rzv3k8r4k] { background: #F3F0F8 !important; }

/* + button inside each category header */
.cat-header-inner[b-8rzv3k8r4k] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    width: 100%;
}
.cat-header-left[b-8rzv3k8r4k] {
    display: flex;
    align-items: center;
    gap: 4px;
    flex: 1;
    min-width: 0;
}
.cat-add-btn[b-8rzv3k8r4k] {
    width: 20px;
    height: 20px;
    border-radius: 4px;
    border: 1px dashed currentColor;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    background: transparent;
    opacity: 0.7;
    flex-shrink: 0;
    padding: 0;
    font-family: inherit;
    transition: opacity 0.15s, background 0.15s;
}
.cat-add-btn:hover[b-8rzv3k8r4k] {
    opacity: 1;
    background: rgba(255,255,255,0.5);
}

/* Drawer overlay + panel (shared pattern) */
.act-panel-overlay[b-8rzv3k8r4k] {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.3);
    z-index: 300;
    display: flex;
    justify-content: flex-end;
}
.act-panel[b-8rzv3k8r4k] {
    width: 400px;
    background: #fff;
    height: 100%;
    overflow-y: auto;
    animation: slideInRight-b-8rzv3k8r4k 0.2s ease;
}
@keyframes slideInRight-b-8rzv3k8r4k {
    from { transform: translateX(100%); }
    to   { transform: translateX(0); }
}
.act-panel-header[b-8rzv3k8r4k] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid #eee;
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 5;
}
.act-panel-title[b-8rzv3k8r4k] {
    font-size: 16px;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 6px;
}
.act-panel-title .msr[b-8rzv3k8r4k] { font-size: 20px; color: #4BA8AA; }
.act-panel-close[b-8rzv3k8r4k] { cursor: pointer; color: #aaa; }
.act-panel-close:hover[b-8rzv3k8r4k] { color: #333; }

.act-panel-body[b-8rzv3k8r4k] { padding: 16px 20px; }

.act-panel-info[b-8rzv3k8r4k] {
    padding: 8px 10px;
    background: #E8F4F8;
    border-left: 3px solid #4BA8AA;
    font-size: 11px;
    color: #3A8E90;
    margin-bottom: 12px;
    line-height: 1.4;
    display: flex;
    align-items: flex-start;
    gap: 4px;
}

.act-pgroup[b-8rzv3k8r4k] { margin-bottom: 12px; }
.act-plabel[b-8rzv3k8r4k] {
    font-size: 11px;
    font-weight: 500;
    color: #888;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    margin-bottom: 4px;
    display: block;
}
.act-pinput[b-8rzv3k8r4k], .act-pselect[b-8rzv3k8r4k] {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-size: 13px;
    font-family: inherit;
    box-sizing: border-box;
}
.act-pinput:focus[b-8rzv3k8r4k], .act-pselect:focus[b-8rzv3k8r4k] { outline: none; border-color: #4BA8AA; }

.act-pdivider[b-8rzv3k8r4k] { height: 1px; background: #eee; margin: 14px 0; }

.act-psave[b-8rzv3k8r4k] {
    width: 100%;
    padding: 10px;
    border: none;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    background: #6EC6C8;
    color: var(--text-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    font-family: inherit;
}
.act-psave:hover[b-8rzv3k8r4k] { background: #4BA8AA; }
.act-psave:disabled[b-8rzv3k8r4k] { opacity: 0.6; cursor: not-allowed; }

.crit-total-bar[b-8rzv3k8r4k] {
    padding: 6px 12px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 500;
    margin-bottom: 14px;
    display: flex;
    align-items: center;
}
.crit-total-bar.ok[b-8rzv3k8r4k]   { background: #EAF3DE; color: #3B6D11; }
.crit-total-bar.warn[b-8rzv3k8r4k] { background: #FCEBEB; color: #A32D2D; }

.crit-toggle-row[b-8rzv3k8r4k] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 0;
}
.crit-toggle-label[b-8rzv3k8r4k] {
    font-size: 13px;
    display: flex;
    align-items: center;
    gap: 4px;
}

.cc-toggle[b-8rzv3k8r4k] {
    width: 40px;
    height: 22px;
    border-radius: 11px;
    background: #ccc;
    position: relative;
    cursor: pointer;
    transition: background 0.2s;
}
.cc-toggle.on[b-8rzv3k8r4k] { background: #4BA8AA; }
.cc-toggle[b-8rzv3k8r4k]::after {
    content: '';
    position: absolute;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #fff;
    top: 2px;
    left: 2px;
    transition: left 0.2s;
}
.cc-toggle.on[b-8rzv3k8r4k]::after { left: 20px; }

.crit-existing-label[b-8rzv3k8r4k] { font-size: 11px; color: #888; margin-bottom: 6px; }
.crit-existing-list[b-8rzv3k8r4k] { margin-bottom: 14px; }
.crit-existing-item[b-8rzv3k8r4k] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 4px 0;
    font-size: 12px;
}
.crit-existing-dot[b-8rzv3k8r4k] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}
.crit-existing-name[b-8rzv3k8r4k] { flex: 1; color: #555; }
.crit-existing-pct[b-8rzv3k8r4k] {
    font-weight: 500;
    color: #4BA8AA;
    min-width: 50px;
    text-align: right;
}

@media (max-width: 480px) {
    .act-panel[b-8rzv3k8r4k] { width: 100%; }
}

/* ========== NEW DRAWER (V2 redesign) ========== */
.drawer-overlay[b-8rzv3k8r4k] {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.3);
    z-index: 300;
    display: flex;
    justify-content: flex-end;
}
.drawer[b-8rzv3k8r4k] {
    width: 400px;
    background: #fff;
    height: 100%;
    overflow-y: auto;
    animation: slideInRight-b-8rzv3k8r4k 0.2s ease;
}
.drawer-header[b-8rzv3k8r4k] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid #eee;
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 5;
}
.drawer-title[b-8rzv3k8r4k] {
    font-size: 16px;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 6px;
    color: #333;
}
.drawer-title .msr[b-8rzv3k8r4k] { font-size: 20px; }
.drawer-close[b-8rzv3k8r4k] { cursor: pointer; color: #aaa; }
.drawer-close:hover[b-8rzv3k8r4k] { color: #333; }

.drawer-body[b-8rzv3k8r4k] { padding: 16px 20px; }

.drawer-group[b-8rzv3k8r4k] { margin-bottom: 16px; }
.drawer-label[b-8rzv3k8r4k] {
    font-size: 11px;
    font-weight: 500;
    color: #888;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    margin-bottom: 6px;
    display: block;
}
.drawer-input[b-8rzv3k8r4k] {
    width: 100%;
    padding: 10px 14px;
    border: 1.5px solid #ddd;
    border-radius: 8px;
    font-size: 13px;
    color: #333;
    font-family: inherit;
    box-sizing: border-box;
}
.drawer-input:focus[b-8rzv3k8r4k] {
    outline: none;
    border-color: #4BA8AA;
}

.drawer-crit-chips[b-8rzv3k8r4k] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.drawer-crit-chip[b-8rzv3k8r4k] {
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 12px;
    border: 1.5px solid #ddd;
    color: #666;
    background: transparent;
    cursor: pointer;
    transition: all 0.12s;
    user-select: none;
}
.drawer-crit-chip:hover[b-8rzv3k8r4k] { opacity: 0.85; }

.drawer-clases-grid[b-8rzv3k8r4k] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}
.drawer-clase-item[b-8rzv3k8r4k] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 8px;
    border-radius: 6px;
    cursor: pointer;
    font-size: 12px;
    color: #555;
    transition: background 0.1s;
}
.drawer-clase-item:hover[b-8rzv3k8r4k] { background: #f5f5f5; }

.drawer-checkbox[b-8rzv3k8r4k] {
    width: 18px;
    height: 18px;
    border-radius: 4px;
    border: 1.5px solid #ccc;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: all 0.12s;
}
.drawer-checkbox.checked[b-8rzv3k8r4k] {
    background: #4BA8AA;
    border-color: #4BA8AA;
}

.drawer-clase-name[b-8rzv3k8r4k] { font-size: 12px; }

.drawer-actions[b-8rzv3k8r4k] {
    display: flex;
    gap: 8px;
    margin-top: 20px;
}
.drawer-cancel[b-8rzv3k8r4k] {
    flex: 1;
    padding: 10px;
    border: 1px solid #ddd;
    border-radius: 8px;
    background: #fff;
    color: #666;
    font-size: 13px;
    cursor: pointer;
    font-family: inherit;
}
.drawer-cancel:hover[b-8rzv3k8r4k] { border-color: #ccc; color: #333; }
.drawer-save[b-8rzv3k8r4k] {
    flex: 1;
    padding: 10px;
    border: none;
    border-radius: 8px;
    background: #6EC6C8;
    color: var(--text-primary);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    font-family: inherit;
}
.drawer-save:hover[b-8rzv3k8r4k] { background: #4BA8AA; }
.drawer-save:disabled[b-8rzv3k8r4k] { opacity: 0.6; cursor: not-allowed; }

@media (max-width: 480px) {
    .drawer[b-8rzv3k8r4k] { width: 100%; }
    .drawer-clases-grid[b-8rzv3k8r4k] { grid-template-columns: 1fr; }
}

/* Toast */
.toast[b-8rzv3k8r4k] {
    position: fixed; bottom: 24px; right: 24px; padding: 12px 20px; border-radius: 10px;
    font-size: 13px; font-weight: 500; display: flex; align-items: center; gap: 8px;
    z-index: 200; animation: slideUp-b-8rzv3k8r4k 0.3s ease;
}
.toast-success[b-8rzv3k8r4k] { background: rgba(75,168,170,0.15); color: #4BA8AA; border: 1px solid rgba(75,168,170,0.3); }
@keyframes slideUp-b-8rzv3k8r4k { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }

/* ========== RESPONSIVE ========== */
@media (max-width: 768px) {
    .concentrado-container[b-8rzv3k8r4k] { padding: 12px; }
    .th-alumno[b-8rzv3k8r4k], .td-alumno[b-8rzv3k8r4k] { min-width: 150px; max-width: 150px; }
    .td-grade[b-8rzv3k8r4k], .th-act[b-8rzv3k8r4k] { min-width: 50px; max-width: 50px; }
    .grade-pill[b-8rzv3k8r4k] { width: 42px; height: 24px; font-size: 11px; }
    .dashboard-row[b-8rzv3k8r4k] { flex-direction: column; }
    .dash-metrics[b-8rzv3k8r4k], .dash-alerts[b-8rzv3k8r4k] { flex-wrap: wrap; }
}

@media (max-width: 550px) {
    .th-alumno[b-8rzv3k8r4k], .td-alumno[b-8rzv3k8r4k] { min-width: 120px; max-width: 120px; }
    .conc-header[b-8rzv3k8r4k] { flex-direction: column; align-items: stretch; }
    .btn-guardar[b-8rzv3k8r4k] { justify-content: center; width: 100%; }
}

/* ========== PRINT ========== */
@media print {
    .breadcrumb[b-8rzv3k8r4k], .conc-header[b-8rzv3k8r4k], .concentrado-toolbar[b-8rzv3k8r4k], .criterio-chips[b-8rzv3k8r4k],
    .dashboard-row[b-8rzv3k8r4k], .insights-grid[b-8rzv3k8r4k], .toast[b-8rzv3k8r4k], .btn-guardar[b-8rzv3k8r4k] { display: none !important; }
    .matrix-wrapper[b-8rzv3k8r4k] { overflow: visible !important; max-height: none !important; border: none !important; }
    .td-alumno[b-8rzv3k8r4k], .th-alumno[b-8rzv3k8r4k] { position: static !important; box-shadow: none !important; }
    .matrix-table[b-8rzv3k8r4k] { width: 100% !important; }
    .concentrado-container[b-8rzv3k8r4k] { padding: 0 !important; }
}
/* /Pages/Configuracion.razor.rz.scp.css */
.cfg-page[b-mx0sqqt8yz] { max-width:1240px; margin:0 auto; padding:36px 32px 56px; color:var(--text-primary); font-family:var(--font-sans); }
.cfg-header[b-mx0sqqt8yz] { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:28px; }
.cfg-eyebrow[b-mx0sqqt8yz] { font-size:10px; font-weight:750; letter-spacing:.16em; color:var(--brand-teal-deep); }
.cfg-header h1[b-mx0sqqt8yz] { font-family:var(--font-serif); font-size:38px; font-weight:500; letter-spacing:-1.2px; margin:8px 0; }
.cfg-header p[b-mx0sqqt8yz] { font-size:14px; color:var(--text-secondary); margin:0; line-height:1.6; }
.cfg-link[b-mx0sqqt8yz] { display:inline-flex; align-items:center; gap:9px; font-size:13px; font-weight:650; color:var(--text-primary); text-decoration:none; white-space:nowrap; }
.cfg-link .msr[b-mx0sqqt8yz] { font-size:20px; }
.cfg-context[b-mx0sqqt8yz] { display:flex; align-items:center; gap:14px; padding:18px 22px; background:var(--bg-panel); border:1px solid var(--border-soft); border-radius:16px; margin-bottom:24px; }
.cfg-context-icon[b-mx0sqqt8yz] { color:var(--brand-teal-deep); font-size:28px; }
.cfg-context>div[b-mx0sqqt8yz] { flex:1; min-width:0; }
.cfg-context label[b-mx0sqqt8yz] { display:block; font-size:9px; letter-spacing:.13em; font-weight:700; color:var(--text-secondary); margin-bottom:4px; }
.cfg-context select[b-mx0sqqt8yz] { width:100%; max-width:540px; min-height:32px; background:transparent; border:0; color:var(--text-primary); font:600 15px var(--font-sans); cursor:pointer; }
.cfg-tag[b-mx0sqqt8yz] { background:var(--bg-light-teal); color:var(--brand-teal-deep); font-size:11px; font-weight:600; border-radius:30px; padding:7px 11px; }
.cfg-grid[b-mx0sqqt8yz] { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(0,1fr); gap:24px; align-items:stretch; }
.cfg-panel[b-mx0sqqt8yz] { border:1px solid var(--border-soft); border-radius:20px; background:var(--bg-panel); padding:26px; box-shadow:var(--shadow-sm); animation:cfg-enter-b-mx0sqqt8yz 220ms ease-out both; }
.cfg-panel-heading[b-mx0sqqt8yz] { display:flex; align-items:center; gap:12px; margin-bottom:24px; }
.cfg-icon[b-mx0sqqt8yz] { width:40px; height:40px; display:grid; place-items:center; border-radius:12px; background:var(--bg-cream); color:var(--brand-teal-deep); flex-shrink:0; }
.cfg-panel h2[b-mx0sqqt8yz] { font-size:17px; font-weight:700; margin:0 0 5px; letter-spacing:-.3px; }
.cfg-panel-heading p[b-mx0sqqt8yz] { font-size:12px; color:var(--text-secondary); margin:0; line-height:1.5; }
.cfg-step[b-mx0sqqt8yz] { margin-left:auto; font-size:12px; color:var(--text-secondary); font-variant-numeric:tabular-nums; }
.cfg-current[b-mx0sqqt8yz] { display:flex; align-items:center; gap:15px; margin-bottom:24px; }
.cfg-avatar[b-mx0sqqt8yz] { width:66px; height:66px; border:1px solid var(--border-soft); border-radius:16px; background:var(--bg-cream); display:grid; place-items:center; flex-shrink:0; overflow:hidden; }
.cfg-avatar img[b-mx0sqqt8yz] { width:100%; height:100%; object-fit:contain; padding:5px; box-sizing:border-box; }
.cfg-avatar .msr[b-mx0sqqt8yz] { font-size:32px; color:var(--text-secondary); }
.cfg-current h3[b-mx0sqqt8yz] { font-size:14px; margin:0 0 6px; line-height:1.4; overflow-wrap:anywhere; }
.cfg-current p[b-mx0sqqt8yz] { font-size:11px; color:var(--text-secondary); margin:0; }
.cfg-drop[b-mx0sqqt8yz] { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px; min-height:188px; border:1.5px dashed var(--border-med); background:var(--bg-cream); border-radius:15px; padding:20px; text-align:center; transition:border-color 180ms ease-out,background-color 180ms ease-out; }
.cfg-drop[b-mx0sqqt8yz]  input { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; z-index:1; }
.cfg-drop:focus-within[b-mx0sqqt8yz] { outline:3px solid var(--brand-teal-deep); outline-offset:3px; }
.cfg-upload-icon[b-mx0sqqt8yz] { font-size:32px; color:var(--brand-teal-deep); margin-bottom:8px; }
.cfg-drop strong[b-mx0sqqt8yz] { font-size:14px; overflow-wrap:anywhere; max-width:100%; }
.cfg-drop>span:not(.cfg-upload-icon)[b-mx0sqqt8yz] { font-size:12px; color:var(--text-secondary); }
.cfg-drop b[b-mx0sqqt8yz] { color:var(--brand-teal-deep); }
.cfg-drop small[b-mx0sqqt8yz] { color:var(--text-secondary); font-size:10px; margin-top:7px; }
.cfg-tip[b-mx0sqqt8yz] { display:flex; gap:8px; font-size:11px; color:var(--text-secondary); line-height:1.7; margin:16px 0 22px; }
.cfg-tip .msr[b-mx0sqqt8yz] { font-size:17px; flex-shrink:0; margin-top:2px; }
.cfg-actions[b-mx0sqqt8yz] { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.cfg-button[b-mx0sqqt8yz] { min-height:42px; border:1px solid var(--border-soft); border-radius:10px; padding:10px 15px; background:var(--bg-panel); color:var(--text-primary); font:600 12px var(--font-sans); display:inline-flex; gap:7px; align-items:center; justify-content:center; cursor:pointer; transition:transform 160ms ease-out,box-shadow 160ms ease-out; }
.cfg-button .msr[b-mx0sqqt8yz] { font-size:18px; }
.cfg-primary[b-mx0sqqt8yz] { background:var(--brand-teal-deep); color:var(--text-on-brand,white); border-color:var(--brand-teal-deep); }
.cfg-quiet[b-mx0sqqt8yz] { border-color:transparent; background:transparent; color:var(--text-secondary); }
.cfg-button:disabled[b-mx0sqqt8yz] { opacity:.5; cursor:not-allowed; }
.cfg-button:active:not(:disabled)[b-mx0sqqt8yz] { transform:scale(.98); }
.cfg-save-note[b-mx0sqqt8yz] { font-size:10px; color:var(--text-secondary); line-height:1.6; margin:12px 0 0; }
.cfg-preview-panel[b-mx0sqqt8yz] { position:relative; overflow:hidden; border:1px solid var(--border-soft); border-radius:20px; padding:28px; background:linear-gradient(145deg,var(--bg-light-teal),var(--bg-panel)); animation:cfg-enter-b-mx0sqqt8yz 260ms ease-out both; }
.cfg-preview-heading[b-mx0sqqt8yz] { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.cfg-live[b-mx0sqqt8yz] { font-size:10px; display:flex; align-items:center; gap:6px; color:var(--brand-teal-deep); }
.cfg-live i[b-mx0sqqt8yz] { width:6px; height:6px; border-radius:50%; background:currentColor; }
.cfg-preview-panel h2[b-mx0sqqt8yz] { font-family:var(--font-serif); font-size:29px; font-weight:500; letter-spacing:-.6px; line-height:1.15; margin:25px 0 10px; max-width:310px; }
.cfg-preview-panel>p[b-mx0sqqt8yz] { font-size:12px; line-height:1.6; color:var(--text-secondary); }
.cfg-card-stage[b-mx0sqqt8yz] { perspective:1000px; padding:25px 8px 18px; }
.cfg-sample-card[b-mx0sqqt8yz] { max-width:304px; margin:0 auto; background:var(--bg-panel); border:1px solid var(--border-soft); border-radius:12px; padding:19px; box-shadow:var(--shadow-lg,var(--shadow-sm)); transform:rotate(-2deg); transition:transform 220ms ease-out; color:var(--text-primary); }
.cfg-sample-header[b-mx0sqqt8yz] { display:flex; align-items:center; gap:10px; padding-bottom:12px; border-bottom:1px solid var(--border-med); }
.cfg-sample-header img[b-mx0sqqt8yz],.cfg-sample-placeholder[b-mx0sqqt8yz] { width:43px; height:43px; object-fit:contain; flex-shrink:0; }
.cfg-sample-placeholder[b-mx0sqqt8yz] { display:grid; place-items:center; border:1px dashed var(--border-med); border-radius:50%; color:var(--text-secondary); }
.cfg-sample-header small[b-mx0sqqt8yz] { display:block; font-size:6px; letter-spacing:.15em; color:var(--text-secondary); margin-bottom:4px; }
.cfg-sample-header strong[b-mx0sqqt8yz] { display:block; font-size:10px; line-height:1.35; text-transform:uppercase; overflow-wrap:anywhere; }
.cfg-sample-name[b-mx0sqqt8yz] { font-size:13px; font-weight:600; margin-top:14px; }
.cfg-sample-details[b-mx0sqqt8yz] { font-size:8px; margin-top:5px; color:var(--text-secondary); }
.cfg-sample-codes[b-mx0sqqt8yz] { display:flex; justify-content:space-between; margin:20px 8px 16px; }
.cfg-sample-codes>div[b-mx0sqqt8yz] { display:flex; flex-direction:column; align-items:center; }
.cfg-sample-codes .msr[b-mx0sqqt8yz] { font-size:62px; }
.cfg-sample-codes small[b-mx0sqqt8yz] { font-size:6px; font-weight:650; margin-top:4px; }
.cfg-sample-card footer[b-mx0sqqt8yz] { display:flex; justify-content:space-between; gap:8px; font-size:6px; color:var(--text-secondary); }
.cfg-preview-panel .cfg-preview-note[b-mx0sqqt8yz] { text-align:center; font-size:10px; max-width:300px; margin:20px auto 0; }
.cfg-details dl[b-mx0sqqt8yz] { margin:0; display:grid; gap:18px; }
.cfg-details dt[b-mx0sqqt8yz] { color:var(--text-secondary); font-size:11px; margin-bottom:6px; }
.cfg-details dd[b-mx0sqqt8yz] { margin:0; font-size:14px; font-weight:550; overflow-wrap:anywhere; }
.cfg-shortcuts>a[b-mx0sqqt8yz] { display:flex; align-items:center; gap:12px; color:var(--text-primary); text-decoration:none; padding:15px 0; border-top:1px solid var(--border-soft); }
.cfg-shortcuts>a>span:first-child[b-mx0sqqt8yz] { color:var(--brand-teal-deep); font-size:22px; }
.cfg-shortcuts>a>span:last-child[b-mx0sqqt8yz] { margin-left:auto; color:var(--text-secondary); }
.cfg-shortcuts strong[b-mx0sqqt8yz],.cfg-shortcuts small[b-mx0sqqt8yz] { display:block; }
.cfg-shortcuts strong[b-mx0sqqt8yz] { font-size:13px; margin-bottom:4px; }
.cfg-shortcuts small[b-mx0sqqt8yz] { color:var(--text-secondary); font-size:11px; }
.cfg-message[b-mx0sqqt8yz] { display:flex; align-items:center; gap:10px; padding:15px 18px; border-radius:12px; font-size:13px; margin-bottom:20px; border:1px solid var(--border-soft); }
.cfg-error[b-mx0sqqt8yz] { background:var(--danger-soft,var(--bg-panel)); color:var(--danger,var(--text-primary)); }
.cfg-success[b-mx0sqqt8yz] { background:var(--bg-light-teal); color:var(--brand-teal-deep); }
.cfg-loading[b-mx0sqqt8yz] { padding:70px 20px; text-align:center; color:var(--text-secondary); display:flex; flex-direction:column; align-items:center; gap:15px; }
.cfg-disabled[b-mx0sqqt8yz] { opacity:.6; }
.cfg-page :is(button,a,select):focus-visible[b-mx0sqqt8yz] { outline:3px solid var(--brand-teal-deep); outline-offset:3px; }
.cfg-phrase-editor[b-mx0sqqt8yz] { border-top:1px solid var(--border-soft); margin:22px 0; padding-top:22px; }
.cfg-phrase-editor label[b-mx0sqqt8yz] { display:block; font-size:14px; font-weight:650; margin-bottom:6px; }
.cfg-phrase-editor p[b-mx0sqqt8yz] { font-size:12px; color:var(--text-secondary); margin:0 0 12px; }
.cfg-phrase-editor select[b-mx0sqqt8yz],.cfg-phrase-editor input[b-mx0sqqt8yz] { width:100%; box-sizing:border-box; padding:11px 12px; border:1px solid var(--border-med); border-radius:9px; background:var(--bg-panel); color:var(--text-primary); font:400 14px var(--font-sans); min-height:44px; }
.cfg-phrase-editor .cfg-custom-label[b-mx0sqqt8yz] { margin-top:14px; }
.cfg-phrase-editor small[b-mx0sqqt8yz] { display:block; margin-top:7px; font-size:11px; color:var(--text-secondary); }
.cfg-phrase-editor .cfg-phrase-error[b-mx0sqqt8yz] { color:var(--danger,var(--text-primary)); margin-top:8px; }
.cfg-sample-body[b-mx0sqqt8yz] { position:relative; aspect-ratio:1.75; margin-top:8px; }
.cfg-sample-student[b-mx0sqqt8yz] { position:absolute; left:0; top:0; width:43%; height:40%; display:flex; flex-direction:column; justify-content:center; }
.cfg-sample-student>small[b-mx0sqqt8yz] { font-size:7px; color:var(--text-secondary); }
.cfg-sample-name[b-mx0sqqt8yz] { text-align:center; margin:4px 0 0; font-size:11px; }
.cfg-sample-family[b-mx0sqqt8yz],.cfg-sample-access[b-mx0sqqt8yz] { position:absolute; width:43%; display:flex; flex-direction:column; align-items:center; }
.cfg-sample-family[b-mx0sqqt8yz] { right:0; top:0; }
.cfg-sample-access[b-mx0sqqt8yz] { left:0; top:40%; }
.cfg-sample-family .msr[b-mx0sqqt8yz],.cfg-sample-access .msr[b-mx0sqqt8yz] { font-size:68px; }
.cfg-sample-family small[b-mx0sqqt8yz],.cfg-sample-access small[b-mx0sqqt8yz] { font-size:6px; color:var(--text-secondary); }
.cfg-sample-details[b-mx0sqqt8yz] { position:absolute; right:0; top:61%; width:43%; height:35%; margin:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; font-size:7px; }
.cfg-sample-phrase[b-mx0sqqt8yz] { text-align:center; color:var(--text-secondary); font-size:8px; line-height:1.35; margin:18px 0 8px; overflow-wrap:anywhere; }
@keyframes cfg-enter-b-mx0sqqt8yz { from { opacity:0; transform:translateY(7px); } to { opacity:1; transform:translateY(0); } }
@media (hover:hover) and (pointer:fine) { .cfg-drop:hover[b-mx0sqqt8yz] { border-color:var(--brand-teal-deep); background:var(--bg-light-teal); } .cfg-card-stage:hover .cfg-sample-card[b-mx0sqqt8yz] { transform:rotate(0deg) translateY(-3px); } .cfg-button:hover:not(:disabled)[b-mx0sqqt8yz] { box-shadow:var(--shadow-sm); } }
@media (max-width:900px) { .cfg-page[b-mx0sqqt8yz] { padding:24px 18px 40px; } .cfg-grid[b-mx0sqqt8yz] { grid-template-columns:1fr; } .cfg-header[b-mx0sqqt8yz] { align-items:flex-start; } .cfg-preview-panel h2[b-mx0sqqt8yz] { max-width:none; } }
@media (max-width:540px) { .cfg-header[b-mx0sqqt8yz] { flex-direction:column; gap:18px; } .cfg-header h1[b-mx0sqqt8yz] { font-size:32px; } .cfg-panel[b-mx0sqqt8yz],.cfg-preview-panel[b-mx0sqqt8yz] { padding:20px; } .cfg-context[b-mx0sqqt8yz] { padding:14px; } .cfg-tag[b-mx0sqqt8yz] { display:none; } .cfg-context select[b-mx0sqqt8yz] { font-size:13px; } .cfg-actions .cfg-primary[b-mx0sqqt8yz] { flex:1; } }
@media (prefers-reduced-motion:reduce) { .cfg-panel[b-mx0sqqt8yz],.cfg-preview-panel[b-mx0sqqt8yz] { animation:none; } .cfg-button[b-mx0sqqt8yz],.cfg-drop[b-mx0sqqt8yz],.cfg-sample-card[b-mx0sqqt8yz] { transition:none; } .cfg-sample-card[b-mx0sqqt8yz] { transform:none; } }
/* /Pages/ConfigurarClase.razor.rz.scp.css */
/* === Configurar Clase · v2 wrapper (Fase D) === */
.cc-container[b-ttp62fvvwi] {
    padding: 22px 28px 36px;
    max-width: 100%;
    font-family: var(--font-sans);
    color: var(--text-primary);
}

/* === Breadcrumb v2 === */
.cc-bc[b-ttp62fvvwi] {
    display: flex; align-items: center; gap: 6px;
    margin-bottom: 14px; font-size: 12px;
    color: var(--text-muted); flex-wrap: wrap;
}
.cc-bc .msr[b-ttp62fvvwi] { font-size: 14px !important; }
.cc-bc a[b-ttp62fvvwi] { color: var(--text-secondary); text-decoration: none; cursor: pointer; transition: color 0.15s ease; }
.cc-bc a:hover[b-ttp62fvvwi] { color: var(--brand-teal-deep); }
.cc-sep[b-ttp62fvvwi] { color: var(--text-muted); }
.cc-clase[b-ttp62fvvwi] { color: var(--text-secondary); font-weight: 500; }
.cc-current[b-ttp62fvvwi] { color: var(--text-primary); font-weight: 600; }

/* === Header v2 === */
.cc-h[b-ttp62fvvwi] {
    display: flex; align-items: center; gap: 14px;
    margin-bottom: 20px;
}
.cc-h-icon[b-ttp62fvvwi] {
    width: 44px; height: 44px; border-radius: 12px;
    background: linear-gradient(135deg, #5C6068, #3F4046);
    color: #FFFFFF;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(92, 96, 104, 0.25);
}
.cc-h-icon .msr[b-ttp62fvvwi] { font-size: 24px !important; }
.cc-h-block[b-ttp62fvvwi] { flex: 1; min-width: 0; }
.cc-h-title[b-ttp62fvvwi] {
    font-family: var(--font-serif);
    font-size: 28px; font-weight: 600;
    color: var(--text-primary);
    letter-spacing: -0.5px; line-height: 1.1;
    margin: 0;
}
.cc-h-sub[b-ttp62fvvwi] { font-size: 13px; color: var(--text-secondary); margin: 4px 0 0; }

/* Pills */
.class-pills[b-ttp62fvvwi] { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 16px; }
.pill[b-ttp62fvvwi] {
    padding: 6px 14px; border-radius: 16px; font-size: 12px; cursor: pointer;
    border: 1px solid #ddd; color: #666; background: transparent; transition: all 0.15s;
}
.pill:hover[b-ttp62fvvwi] { border-color: #4BA8AA; color: #4BA8AA; }
.pill.active[b-ttp62fvvwi] { background: #4BA8AA; color: #fff; border-color: #4BA8AA; }

/* Loading */
.loading-state[b-ttp62fvvwi] { display: flex; flex-direction: column; align-items: center; padding: 60px 20px; gap: 16px; color: #999; font-size: 14px; }
.spinner[b-ttp62fvvwi] { width: 36px; height: 36px; border: 3px solid #E8F4F8; border-top: 3px solid #4BA8AA; border-radius: 50%; animation: spin-b-ttp62fvvwi 0.8s linear infinite; }
@keyframes spin-b-ttp62fvvwi { to { transform: rotate(360deg); } }

/* ===== LAYOUT ===== */
.cc-layout[b-ttp62fvvwi] {
    display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 0;
    align-items: start; border: 1px solid #e0e0e0; border-radius: 12px; overflow: hidden; background: #fff;
}
.cc-sidenav[b-ttp62fvvwi] {
    background: #f7f7f7; border-right: 1px solid #e0e0e0; padding: 8px 0; min-height: 500px;
    position: sticky; top: 0;
}
.cc-nav-item[b-ttp62fvvwi] {
    display: flex; align-items: center; gap: 8px; padding: 10px 16px; font-size: 13px;
    cursor: pointer; color: #666; transition: all 0.12s; border-left: 3px solid transparent;
}
.cc-nav-item:hover[b-ttp62fvvwi] { background: rgba(75,168,170,0.06); color: #4BA8AA; }
.cc-nav-item.active[b-ttp62fvvwi] { background: #E8F4F8; color: #3A8E90; font-weight: 500; border-left-color: #4BA8AA; }
.cc-nav-item .msr[b-ttp62fvvwi] { font-size: 16px; }

.cc-content[b-ttp62fvvwi] { padding: 20px 24px; }
.cc-section[b-ttp62fvvwi] { margin-bottom: 32px; }
.cc-section:last-child[b-ttp62fvvwi] { margin-bottom: 0; }
.cc-sec-title[b-ttp62fvvwi] { font-size: 16px; font-weight: 500; margin-bottom: 14px; display: flex; align-items: center; gap: 6px; }
.cc-sec-title .msr[b-ttp62fvvwi] { font-size: 18px; color: #4BA8AA; }
.cc-divider[b-ttp62fvvwi] { height: 1px; background: #eee; margin: 20px 0; }

/* ===== FORMS ===== */
.cc-form-group[b-ttp62fvvwi] { margin-bottom: 14px; }
.cc-label[b-ttp62fvvwi] { font-size: 11px; font-weight: 500; color: #888; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 4px; display: block; }
.cc-input[b-ttp62fvvwi] {
    width: 100%; padding: 8px 12px; border: 1px solid #ddd; border-radius: 8px;
    font-size: 13px; color: #333; font-family: inherit; box-sizing: border-box;
}
.cc-input:focus[b-ttp62fvvwi] { outline: none; border-color: #4BA8AA; }
.cc-select[b-ttp62fvvwi] {
    width: 100%; padding: 8px 12px; border: 1px solid #ddd; border-radius: 8px;
    font-size: 13px; color: #333; font-family: inherit; box-sizing: border-box;
}
.cc-form-row[b-ttp62fvvwi] { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

/* Toggle */
.cc-toggle-row[b-ttp62fvvwi] {
    display: flex; align-items: center; justify-content: space-between;
    padding: 10px 14px; border: 1px solid #eee; border-radius: 8px; margin-bottom: 8px;
}
.cc-toggle-label[b-ttp62fvvwi] { font-size: 13px; display: flex; align-items: flex-start; gap: 6px; }
.cc-toggle-desc[b-ttp62fvvwi] { display: block; font-size: 11px; font-weight: 400; color: #999; margin-top: 2px; }
.cc-toggle-control[b-ttp62fvvwi] { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.cc-toggle-estado[b-ttp62fvvwi] { font-size: 11px; font-weight: 500; color: #888; min-width: 62px; text-align: right; }
.cc-toggle[b-ttp62fvvwi] {
    width: 40px; height: 22px; border-radius: 11px; background: #ccc;
    position: relative; cursor: pointer; transition: background 0.2s;
}
.cc-toggle.on[b-ttp62fvvwi] { background: #4BA8AA; }
.cc-toggle[b-ttp62fvvwi]::after {
    content: ''; position: absolute; width: 18px; height: 18px; border-radius: 50%;
    background: #fff; top: 2px; left: 2px; transition: left 0.2s;
}
.cc-toggle.on[b-ttp62fvvwi]::after { left: 20px; }
.cc-toggle:focus-visible[b-ttp62fvvwi] { outline: 2px solid #4BA8AA; outline-offset: 2px; }

/* Buttons */
.cc-save-btn[b-ttp62fvvwi] {
    background: #6EC6C8; color: #fff; border: none; border-radius: 8px; padding: 10px 24px;
    font-size: 14px; font-weight: 500; cursor: pointer; display: flex; align-items: center;
    gap: 6px; margin-top: 16px; font-family: inherit; transition: background 0.15s;
}
.cc-save-btn:hover[b-ttp62fvvwi] { background: #4BA8AA; }
.cc-save-btn:disabled[b-ttp62fvvwi] { opacity: 0.6; cursor: not-allowed; }

/* Feedback de guardado junto al dato (nada de toasts): Guardando / Guardado / Error / refresco */
.cc-save-row[b-ttp62fvvwi] { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.cc-pending-badge[b-ttp62fvvwi] {
    display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 500;
    color: #9A6A00; background: #FFF4D6; border: 1px solid #F1D68A; border-radius: 12px; padding: 3px 10px;
}
.cc-save-msg[b-ttp62fvvwi] {
    display: flex; align-items: center; gap: 6px; margin-top: 10px;
    font-size: 13px; border-radius: 8px; padding: 8px 12px;
}
.cc-save-ok[b-ttp62fvvwi] { color: #2E7D32; background: #E9F6EA; border: 1px solid #B6E0B9; }
.cc-save-error[b-ttp62fvvwi] { color: #B3261E; background: #FDECEA; border: 1px solid #F3B7B2; }
.cc-save-warn[b-ttp62fvvwi] { color: #8A5A00; background: #FFF6E5; border: 1px solid #F0D28E; }
.cc-retry-btn[b-ttp62fvvwi] {
    margin-left: auto; background: transparent; border: 1px solid currentColor; border-radius: 6px;
    padding: 4px 12px; font-size: 12px; font-weight: 500; cursor: pointer; color: inherit; font-family: inherit;
}
.cc-retry-btn:hover[b-ttp62fvvwi] { background: rgba(0, 0, 0, 0.04); }
.cc-retry-btn:disabled[b-ttp62fvvwi] { opacity: 0.5; cursor: not-allowed; }
.cc-cancel-btn[b-ttp62fvvwi] {
    background: transparent; border: 1px solid #ddd; border-radius: 8px; padding: 8px 16px;
    font-size: 13px; cursor: pointer; color: #888; font-family: inherit;
}
.cc-cancel-btn:hover[b-ttp62fvvwi] { border-color: #ccc; color: #666; }
.cc-add-row[b-ttp62fvvwi] {
    display: flex; align-items: center; justify-content: center; padding: 10px;
    border: 1px dashed #ddd; border-radius: 8px; font-size: 12px; color: #4BA8AA;
    cursor: pointer; gap: 4px; margin-top: 10px;
}
.cc-add-row:hover[b-ttp62fvvwi] { background: #E8F4F8; border-color: #4BA8AA; }

/* ===== Dialogo de guarda de salida ===== */
.cc-guarda-overlay[b-ttp62fvvwi] {
    position: fixed; inset: 0; z-index: 1000;
    background: rgba(20, 22, 26, 0.55);
    display: flex; align-items: center; justify-content: center; padding: 16px;
}
.cc-guarda-dialog[b-ttp62fvvwi] {
    background: #fff; border-radius: 12px; width: 100%; max-width: 420px;
    box-shadow: 0 20px 48px rgba(0, 0, 0, 0.28);
    overflow: hidden;
}
.cc-guarda-h[b-ttp62fvvwi] {
    display: flex; align-items: center; gap: 10px;
    padding: 16px 20px 0;
}
.cc-guarda-h .msr[b-ttp62fvvwi] { font-size: 20px; color: #4BA8AA; }
.cc-guarda-h h3[b-ttp62fvvwi] { font-size: 16px; font-weight: 600; color: var(--text-primary, #333); margin: 0; }
.cc-guarda-b[b-ttp62fvvwi] { padding: 12px 20px 4px; }
.cc-guarda-b p[b-ttp62fvvwi] { font-size: 13px; color: #666; margin: 0; line-height: 1.5; }
.cc-guarda-f[b-ttp62fvvwi] {
    display: flex; align-items: center; justify-content: flex-end; gap: 8px;
    padding: 16px 20px 20px;
}
.cc-guarda-cancelar[b-ttp62fvvwi] {
    background: transparent; border: 1px solid #ddd; border-radius: 8px; padding: 8px 16px;
    font-size: 13px; cursor: pointer; color: #888; font-family: inherit; transition: all 0.15s;
}
.cc-guarda-cancelar:hover[b-ttp62fvvwi] { border-color: #ccc; color: #666; }
.cc-guarda-cancelar:disabled[b-ttp62fvvwi] { opacity: 0.5; cursor: not-allowed; }
.cc-guarda-descartar[b-ttp62fvvwi] {
    background: #FDECEA; color: #B3261E; border: 1px solid #F3B7B2; border-radius: 8px;
    padding: 8px 16px; font-size: 13px; font-weight: 500; cursor: pointer; font-family: inherit;
    transition: background 0.15s;
}
.cc-guarda-descartar:hover[b-ttp62fvvwi] { background: #FBDAD6; }
.cc-guarda-descartar:disabled[b-ttp62fvvwi] { opacity: 0.5; cursor: not-allowed; }
.cc-guarda-guardar[b-ttp62fvvwi] {
    background: #6EC6C8; color: #fff; border: none; border-radius: 8px; padding: 8px 20px;
    font-size: 13px; font-weight: 500; cursor: pointer; font-family: inherit; transition: background 0.15s;
}
.cc-guarda-guardar:hover[b-ttp62fvvwi] { background: #4BA8AA; }
.cc-guarda-guardar:disabled[b-ttp62fvvwi] { opacity: 0.6; cursor: not-allowed; }

/* ===== CRITERIOS ===== */
.crit-total-bar[b-ttp62fvvwi] {
    padding: 6px 12px; border-radius: 8px; font-size: 12px; font-weight: 500;
    margin-bottom: 14px; display: flex; align-items: center; justify-content: space-between;
}
.crit-total-bar.ok[b-ttp62fvvwi] { background: #EAF3DE; color: #3B6D11; }
.crit-total-bar.warn[b-ttp62fvvwi] { background: #FCEBEB; color: #A32D2D; }
.crit-layout[b-ttp62fvvwi] { display: flex; gap: 20px; align-items: flex-start; margin-bottom: 16px; }
.crit-donut[b-ttp62fvvwi] { flex-shrink: 0; }
.crit-list[b-ttp62fvvwi] { flex: 1; }
.crit-item[b-ttp62fvvwi] { display: flex; align-items: center; gap: 10px; padding: 10px 0; border-bottom: 1px solid #eee; }
.crit-item:last-child[b-ttp62fvvwi] { border-bottom: none; }
.crit-dot[b-ttp62fvvwi] { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }
.crit-info[b-ttp62fvvwi] { flex: 1; min-width: 0; }
.crit-name[b-ttp62fvvwi] { font-size: 13px; font-weight: 500; }
.crit-meta[b-ttp62fvvwi] { font-size: 11px; color: #888; display: flex; align-items: center; gap: 4px; margin-top: 2px; }
.crit-tipo-badge[b-ttp62fvvwi] { font-size: 10px; padding: 1px 6px; border-radius: 8px; background: #F0F0F0; color: #999; }
.crit-tipo-badge.ponderado[b-ttp62fvvwi] { background: rgba(110,198,200,0.1); color: #4A9B9D; }
.crit-pct[b-ttp62fvvwi] { font-size: 14px; font-weight: 500; min-width: 50px; text-align: right; color: #4BA8AA; }
.crit-action-btn[b-ttp62fvvwi] { border: none; background: transparent; cursor: pointer; color: #ccc; padding: 2px; }
.crit-action-btn .msr[b-ttp62fvvwi] { font-size: 16px; }
.crit-action-btn:hover[b-ttp62fvvwi] { color: #888; }
.crit-action-btn.delete:hover[b-ttp62fvvwi] { color: #E24B4A; }
.crit-add-form[b-ttp62fvvwi] { border: 1px solid #E8F4F8; border-radius: 8px; padding: 14px; background: #fafafa; margin-top: 10px; }
.crit-actions[b-ttp62fvvwi] { display: flex; gap: 2px; }

/* ===== HORARIOS ===== */
.hor-item[b-ttp62fvvwi] {
    display: flex; align-items: center; justify-content: space-between;
    padding: 10px 14px; border: 1px solid #eee; border-radius: 8px; margin-bottom: 6px;
}
.hor-day[b-ttp62fvvwi] { font-size: 13px; font-weight: 500; min-width: 80px; }
.hor-time[b-ttp62fvvwi] { font-size: 13px; color: #666; flex: 1; text-align: center; }
.cc-empty[b-ttp62fvvwi] { text-align: center; padding: 20px; color: #aaa; font-size: 13px; }
.cc-empty .msr[b-ttp62fvvwi] { font-size: 32px; display: block; margin-bottom: 6px; opacity: 0.3; }

/* ===== ACTIVIDADES ===== */
.act-category-chips[b-ttp62fvvwi] { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.act-cat-chip[b-ttp62fvvwi] {
    padding: 5px 12px; border-radius: 16px; font-size: 12px; border: 1px solid #ddd;
    cursor: pointer; color: #666; transition: all 0.15s;
}
.act-cat-chip.active[b-ttp62fvvwi] { background: #E8F4F8; border-color: #4BA8AA; color: #3A8E90; }
.act-cat-count[b-ttp62fvvwi] { opacity: 0.6; margin-left: 2px; }
.act-add-bar[b-ttp62fvvwi] { display: flex; gap: 8px; margin-bottom: 12px; }
.act-add-input[b-ttp62fvvwi] {
    flex: 1; padding: 8px 12px; border: 1px solid #ddd; border-radius: 8px;
    font-size: 13px; font-family: inherit; box-sizing: border-box;
}
.act-add-input:focus[b-ttp62fvvwi] { outline: none; border-color: #4BA8AA; }
.act-add-btn[b-ttp62fvvwi] {
    padding: 8px 16px; border-radius: 8px; border: none; background: #4BA8AA; color: #fff;
    font-size: 12px; font-weight: 500; cursor: pointer; white-space: nowrap;
    display: flex; align-items: center; gap: 4px; font-family: inherit;
}
.act-add-btn:hover[b-ttp62fvvwi] { background: #3A8E90; }
.act-add-btn:disabled[b-ttp62fvvwi] { opacity: 0.5; cursor: not-allowed; }
.act-item[b-ttp62fvvwi] {
    display: flex; align-items: center; justify-content: space-between;
    padding: 10px 0; border-bottom: 1px solid #eee;
}
.act-item:last-child[b-ttp62fvvwi] { border-bottom: none; }
.act-info[b-ttp62fvvwi] { flex: 1; min-width: 0; }
.act-name[b-ttp62fvvwi] { font-size: 13px; font-weight: 500; }
.act-stats[b-ttp62fvvwi] { font-size: 11px; color: #888; display: flex; gap: 8px; margin-top: 2px; }
.act-stat-ok[b-ttp62fvvwi] { color: #639922; display: flex; align-items: center; gap: 2px; }
.act-stat-pend[b-ttp62fvvwi] { color: #E24B4A; display: flex; align-items: center; gap: 2px; }
.act-progress[b-ttp62fvvwi] { width: 80px; height: 6px; border-radius: 3px; background: #eee; overflow: hidden; margin: 0 12px; }
.act-progress-fill[b-ttp62fvvwi] { height: 100%; border-radius: 3px; background: #4BA8AA; }
.act-valor-input[b-ttp62fvvwi] {
    width: 58px; padding: 6px; border: 1.5px solid #6EC6C8; border-radius: 6px;
    background: #F0FAFA; color: #4A9B9D; font-size: 13px; font-weight: 600;
    text-align: center; font-family: inherit; box-sizing: border-box; margin: 0 4px;
}
.act-valor-input:focus[b-ttp62fvvwi] { outline: none; border-color: #4BA8AA; }

/* ===== RESPONSIVE ===== */
@media (max-width: 768px) {
    .cc-container[b-ttp62fvvwi] { padding: 12px; }
    .cc-layout[b-ttp62fvvwi] { grid-template-columns: 1fr; }
    .cc-sidenav[b-ttp62fvvwi] {
        display: flex; overflow-x: auto; border-right: none; border-bottom: 1px solid #e0e0e0;
        min-height: auto; padding: 0; position: static;
    }
    .cc-nav-item[b-ttp62fvvwi] { white-space: nowrap; border-left: none; border-bottom: 3px solid transparent; padding: 10px 14px; }
    .cc-nav-item.active[b-ttp62fvvwi] { border-bottom-color: #4BA8AA; border-left-color: transparent; }
    .cc-form-row[b-ttp62fvvwi] { grid-template-columns: 1fr; }
    .crit-layout[b-ttp62fvvwi] { flex-direction: column; }
}

@media (max-width: 480px) {
    .act-add-bar[b-ttp62fvvwi] { flex-direction: column; }
}
/* /Pages/ControlEscolar/AltasBajas.razor.rz.scp.css */
/* T-093 — Cambio de grupo. Familia `mov-*` (scoped). No extiende `fin-*` (deuda de tokens,
   SISTEMA-DISENO §14.4) ni toca control-escolar.css (caliente): el header y el breadcrumb se
   reusan tal cual. Contrastes medidos en el spec §11. */

/* ── Filtros ─────────────────────────────────────────────────────────────────── */
.mov-filtros[b-f2dldhbytu] {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    align-items: flex-end;
    margin: 4px 0 18px;
}

.mov-field[b-f2dldhbytu] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 220px;
}

.mov-field--buscar[b-f2dldhbytu] { flex: 1 1 240px; }

.mov-label[b-f2dldhbytu] {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-secondary);
}

.mov-select[b-f2dldhbytu],
.mov-input[b-f2dldhbytu] {
    height: 40px;
    padding: 0 12px;
    border: 1px solid var(--border-soft);
    border-radius: 10px;
    background: #fff;
    font-size: 14px;
    color: var(--text-primary);
}

.mov-select:focus[b-f2dldhbytu],
.mov-input:focus[b-f2dldhbytu] {
    outline: none;
    border-color: var(--brand-teal-primary);
    box-shadow: 0 0 0 3px rgba(110, 198, 200, .25);
}

.mov-search[b-f2dldhbytu] {
    position: relative;
    display: flex;
    align-items: center;
}

.mov-search .msr[b-f2dldhbytu] {
    position: absolute;
    left: 10px;
    font-size: 20px;
    color: var(--text-muted);
    pointer-events: none;
}

.mov-search .mov-input[b-f2dldhbytu] {
    width: 100%;
    padding-left: 36px;
}

/* ── Pista previa a elegir origen ────────────────────────────────────────────── */
.mov-hint[b-f2dldhbytu] {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 22px;
    border: 1px dashed var(--border-soft);
    border-radius: 14px;
    background: #fff;
    color: var(--text-secondary);
}

.mov-hint .msr[b-f2dldhbytu] { font-size: 28px; color: var(--text-muted); }
.mov-hint-title[b-f2dldhbytu] { font-size: 15px; font-weight: 600; color: var(--text-primary); }
.mov-hint-sub[b-f2dldhbytu] { font-size: 13px; }

/* ── Tarjeta / lista ─────────────────────────────────────────────────────────── */
.mov-card[b-f2dldhbytu] {
    position: relative;
    background: #fff;
    border: 1px solid var(--border-soft);
    border-radius: 14px;
    overflow: hidden;
}

.mov-card-head[b-f2dldhbytu] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 16px 18px 10px;
}

.mov-card-title[b-f2dldhbytu] { font-size: 16px; font-weight: 700; color: var(--text-primary); }
.mov-card-count[b-f2dldhbytu] { font-size: 13px; color: var(--text-secondary); }

.mov-chip[b-f2dldhbytu] {
    font-size: 12px;
    font-weight: 600;
    color: var(--info-ink);
    background: var(--bg-light-teal);
    padding: 3px 10px;
    border-radius: 999px;
}

.mov-selall[b-f2dldhbytu] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 18px;
    border-top: 1px solid var(--border-soft);
    border-bottom: 1px solid var(--border-soft);
    font-size: 13px;
    font-weight: 600;
    color: var(--text-secondary);
    cursor: pointer;
    user-select: none;
}

.mov-lista[b-f2dldhbytu] {
    list-style: none;
    margin: 0;
    padding: 0;
    max-height: 430px;
    overflow-y: auto;
}

.mov-fila[b-f2dldhbytu] {
    display: flex;
    align-items: center;
    gap: 12px;
    height: 52px;
    padding: 0 18px;
    border-bottom: 1px solid var(--border-soft);
    cursor: pointer;
}

.mov-fila:last-child[b-f2dldhbytu] { border-bottom: none; }
.mov-fila--sel[b-f2dldhbytu] { background: var(--bg-light-teal); }
.mov-fila--rechazado[b-f2dldhbytu] { background: #F6E9E9; }

.mov-check[b-f2dldhbytu] {
    width: 18px;
    height: 18px;
    accent-color: var(--brand-teal-deep);
    cursor: pointer;
    flex: none;
}

.mov-avatar[b-f2dldhbytu] {
    width: 34px;
    height: 34px;
    flex: none;
    display: flex;
    align-items: center;
    justify-content: center;
    /* Token del avatar (T-089, EN DISPUTA §4.2). Fallback 50% = circulo (decision de Cesar
       "17 circulo"): el token aun no existe en tokens.css y no se toca (caliente/spec §15). */
    border-radius: var(--avatar-radius, 50%);
    background: #DDEEF2;
    color: var(--info-ink);
    font-size: 12px;
    font-weight: 700;
}

.mov-nombre[b-f2dldhbytu] {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 14px;
    font-weight: 500;
    color: var(--text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.mov-badge[b-f2dldhbytu] {
    font-size: 11px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 6px;
    flex: none;
}

.mov-badge--baja[b-f2dldhbytu] { background: #F6E9E9; color: var(--danger); border: 1px solid var(--danger); }

/* ── Skeletons ───────────────────────────────────────────────────────────────── */
.mov-fila--sk[b-f2dldhbytu] { cursor: default; }
.mov-sk[b-f2dldhbytu] {
    display: inline-block;
    background: linear-gradient(90deg, #EEE 25%, #F6F6F6 37%, #EEE 63%);
    background-size: 400% 100%;
    animation: mov-sk-b-f2dldhbytu 1.4s ease infinite;
    border-radius: 6px;
}
.mov-sk-check[b-f2dldhbytu] { width: 18px; height: 18px; border-radius: 4px; }
.mov-sk-avatar[b-f2dldhbytu] { width: 34px; height: 34px; border-radius: var(--avatar-radius, 50%); }
.mov-sk-nombre[b-f2dldhbytu] { width: 45%; height: 12px; }
@keyframes mov-sk-b-f2dldhbytu { 0% { background-position: 100% 50%; } 100% { background-position: 0 50%; } }

/* ── Barra de lote (sticky) ──────────────────────────────────────────────────── */
.mov-lote[b-f2dldhbytu] {
    position: sticky;
    bottom: 0;
    background: #fff;
    border-top: 1px solid var(--border-soft);
    box-shadow: 0 -6px 16px rgba(0, 0, 0, .06);
    padding: 12px 18px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.mov-lote-info[b-f2dldhbytu] {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
}

.mov-lote-count[b-f2dldhbytu] { font-size: 14px; font-weight: 700; color: var(--text-primary); }
.mov-lote-fuera[b-f2dldhbytu] { font-size: 12px; color: var(--warning-ink); }

.mov-link[b-f2dldhbytu] {
    background: none;
    border: none;
    padding: 0;
    font-size: 13px;
    font-weight: 600;
    color: var(--brand-teal-deep);
    cursor: pointer;
    margin-left: auto;
}
.mov-link:hover[b-f2dldhbytu] { text-decoration: underline; }

.mov-lote-accion[b-f2dldhbytu] {
    display: flex;
    align-items: flex-end;
    gap: 12px;
}

.mov-field--destino[b-f2dldhbytu] { flex: 1 1 auto; min-width: 0; }

.mov-tope[b-f2dldhbytu] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--warning-ink);
    background: #FBF2E3;
    border: 1px solid #F0DFC0;
    border-radius: 8px;
    padding: 8px 12px;
}
.mov-tope .msr[b-f2dldhbytu] { font-size: 18px; }

/* ── Botones ─────────────────────────────────────────────────────────────────── */
.mov-btn[b-f2dldhbytu] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 40px;
    padding: 0 16px;
    border: 1px solid var(--border-soft);
    border-radius: 10px;
    background: #fff;
    font-size: 14px;
    font-weight: 600;
    color: var(--text-primary);
    cursor: pointer;
    text-decoration: none;
}

.mov-btn--primary[b-f2dldhbytu] {
    background: var(--brand-teal-primary);
    border-color: var(--brand-teal-primary);
    color: #1A1C1F; /* carbon sobre teal = 8.60 AAA (spec §11) */
}

.mov-btn--mover[b-f2dldhbytu] { white-space: nowrap; }
.mov-btn .msr[b-f2dldhbytu] { font-size: 18px; }

.mov-btn:disabled[b-f2dldhbytu],
.mov-btn[disabled][b-f2dldhbytu] { opacity: .55; cursor: not-allowed; }

/* ── Estados vacios / error ──────────────────────────────────────────────────── */
.mov-empty[b-f2dldhbytu] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    text-align: center;
    padding: 40px 24px;
    background: #fff;
    border: 1px solid var(--border-soft);
    border-radius: 14px;
    color: var(--text-secondary);
}

.mov-empty .msr[b-f2dldhbytu] { font-size: 40px; color: var(--text-muted); }
.mov-empty-title[b-f2dldhbytu] { font-size: 16px; font-weight: 700; color: var(--text-primary); }
.mov-empty-sub[b-f2dldhbytu] { font-size: 13px; max-width: 380px; }
.mov-empty .mov-btn[b-f2dldhbytu] { margin-top: 6px; }

/* ── Dialogo de confirmacion (contenido inyectado) ───────────────────────────── */
.mov-cd-ruta[b-f2dldhbytu] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 4px 0 10px;
}
.mov-cd-ruta .msr[b-f2dldhbytu] { font-size: 18px; color: var(--brand-teal-deep); }

.mov-cd-nombres[b-f2dldhbytu] {
    list-style: none;
    margin: 0 0 12px;
    padding: 10px 14px;
    background: #F7F7F5;
    border-radius: 10px;
    font-size: 13px;
    color: var(--text-secondary);
    max-height: 160px;
    overflow-y: auto;
}
.mov-cd-nombres li[b-f2dldhbytu] { padding: 2px 0; }
.mov-cd-mas[b-f2dldhbytu] { font-weight: 600; color: var(--text-primary); }

.mov-cd-nota[b-f2dldhbytu] {
    font-size: 13px;
    color: var(--warning-ink);
    background: #FBF2E3;
    border: 1px solid #F0DFC0;
    border-radius: 8px;
    padding: 10px 12px;
    text-align: left;
}

/* ── Responsive (familia Control Escolar: 991.98 / 575.98) ───────────────────── */
@media (max-width: 991.98px) {
    .mov-lote-accion[b-f2dldhbytu] { flex-direction: column; align-items: stretch; }
    .mov-lote-count[b-f2dldhbytu] { width: 100%; }
    .mov-btn--mover[b-f2dldhbytu] { justify-content: center; }
}

@media (max-width: 575.98px) {
    .mov-fila[b-f2dldhbytu] { height: 56px; padding: 0 14px; }
    .mov-check[b-f2dldhbytu] { width: 22px; height: 22px; }
    .mov-field[b-f2dldhbytu] { min-width: 100%; }
}
/* /Pages/ControlEscolar/AvisosAccesoConfiguracion.razor.rz.scp.css */
.aa-page[b-4o8bk88s2n] { max-width: 880px; margin: 0 auto; padding: 16px; display: flex; flex-direction: column; gap: 14px; }
.aa-bc[b-4o8bk88s2n] { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--text-secondary); }
.aa-bc a[b-4o8bk88s2n] { color: var(--brand-teal-deep); }
.aa-h[b-4o8bk88s2n] { display: flex; align-items: center; gap: 12px; }
.aa-h h1[b-4o8bk88s2n] { margin: 0; font-size: 22px; }
.aa-h p[b-4o8bk88s2n] { margin: 2px 0 0; color: var(--text-secondary); }
.aa-h-ico[b-4o8bk88s2n] { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--bg-light-teal); color: var(--brand-teal-deep); }
.aa-lbl[b-4o8bk88s2n] { font-weight: 700; font-size: 13px; }
.aa-select[b-4o8bk88s2n] { min-height: 40px; max-width: 420px; border: 1px solid var(--border-soft); border-radius: var(--radius-md); padding: 6px 10px; background: var(--bg-panel); color: var(--text-primary); }
.aa-card[b-4o8bk88s2n] { border: 1px solid var(--border-soft); border-radius: var(--radius-md); background: var(--bg-panel); padding: 16px; display: flex; flex-direction: column; gap: 10px; }
.aa-row[b-4o8bk88s2n] { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.aa-row h2[b-4o8bk88s2n] { margin: 0; font-size: 16px; }
.aa-help[b-4o8bk88s2n] { margin: 2px 0 0; color: var(--text-secondary); font-size: 13.5px; }
.aa-reglas[b-4o8bk88s2n] { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 6px; font-size: 13.5px; }
.aa-estado[b-4o8bk88s2n] { font-weight: 700; }
.aa-switch[b-4o8bk88s2n] { display: inline-flex; align-items: center; gap: 10px; min-height: 40px; padding: 6px 14px 6px 8px; border: 1px solid var(--border-soft); border-radius: 99px; background: var(--bg-panel); color: var(--text-primary); font: 700 13.5px/1 var(--font-sans); cursor: pointer; }
.aa-switch:disabled[b-4o8bk88s2n] { opacity: 0.6; cursor: progress; }
.aa-track[b-4o8bk88s2n] { position: relative; width: 38px; height: 22px; border-radius: 99px; background: var(--bg-cream); box-shadow: inset 0 0 0 1.5px var(--text-secondary); transition: background-color 0.15s ease; }
.aa-thumb[b-4o8bk88s2n] { position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: var(--text-secondary); transition: transform 0.18s var(--ease); }
.aa-switch.on .aa-track[b-4o8bk88s2n] { background: var(--brand-teal-deep); box-shadow: none; }
.aa-switch.on .aa-thumb[b-4o8bk88s2n] { transform: translateX(16px); background: var(--bg-panel); }
.aa-alert[b-4o8bk88s2n] { padding: 10px 12px; border-radius: var(--radius-md); font-size: 13.5px; }
.aa-alert.err[b-4o8bk88s2n] { background: var(--error-bg); color: var(--danger); }
.aa-alert.ok[b-4o8bk88s2n] { background: var(--bg-light-teal); color: var(--brand-teal-deep); }
/* /Pages/ControlEscolar/Boletas.razor.rz.scp.css */
/* T-085 — Boletas del periodo. Familia bol-*.
   OJO: el bloque @media print NO va aqui. Vive en wwwroot/css/control-escolar.css guardado por
   body:has(.bol-page), porque el CSS scoped no alcanza al sidebar ni a la topbar (mismo motivo
   escrito en ImprimirQRs.razor.css). */

.bol-page[b-f41p3lhpgx] { padding: 20px 24px 48px; max-width: 1180px; }

/* ── Breadcrumb ───────────────────────────────────────────────────────── */
.bol-crumb[b-f41p3lhpgx] { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--text-muted); margin-bottom: 14px; }
.bol-crumb a[b-f41p3lhpgx] { color: var(--text-secondary); text-decoration: none; }
.bol-crumb a:hover[b-f41p3lhpgx] { text-decoration: underline; }
.bol-crumb .cur[b-f41p3lhpgx] { color: var(--text-primary); font-weight: 600; }

/* ── Header de modulo ─────────────────────────────────────────────────── */
.bol-modh[b-f41p3lhpgx] { display: flex; align-items: center; gap: 16px; margin-bottom: 22px; }
.bol-modico[b-f41p3lhpgx] {
    width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center;
    background: linear-gradient(135deg, var(--brand-teal-primary), var(--brand-teal-dark));
}
/* Icono decorativo de 26px: unico blanco sobre teal del diseno (§9). */
.bol-modico .msr[b-f41p3lhpgx] { font-size: 26px; color: #fff; }
.bol-modh h1[b-f41p3lhpgx] { font-family: 'Fraunces', Georgia, serif; font-size: 26px; margin: 0; color: var(--text-primary); }
.bol-modh .sub[b-f41p3lhpgx] { font-size: 13px; color: var(--text-secondary); margin-top: 2px; }

/* ── Toolbar ──────────────────────────────────────────────────────────── */
.bol-tools[b-f41p3lhpgx] {
    display: flex; flex-wrap: wrap; align-items: flex-end; gap: 14px;
    background: #fff; border: 1px solid var(--border-soft, #E7E2D8); border-radius: 14px;
    padding: 16px 18px; margin-bottom: 18px;
}
.bol-field[b-f41p3lhpgx] { display: flex; flex-direction: column; gap: 6px; min-width: 180px; }
.bol-field--wide[b-f41p3lhpgx] { min-width: 260px; flex: 1 1 260px; }
.bol-field label[b-f41p3lhpgx] { font-size: 12px; font-weight: 600; color: var(--text-secondary); }
.bol-select[b-f41p3lhpgx] {
    height: 40px; border-radius: 10px; border: 1px solid var(--border-soft, #E7E2D8);
    padding: 0 10px; font-size: 14px; color: var(--text-primary); background: #fff;
}
.bol-select:disabled[b-f41p3lhpgx] { background: var(--bg-cream, #FAF7F0); color: var(--text-muted); }

/* ── Botones ──────────────────────────────────────────────────────────── */
.bol-btn[b-f41p3lhpgx] {
    display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 16px;
    border-radius: 10px; font-size: 14px; font-weight: 600; border: 1px solid transparent;
    cursor: pointer; text-decoration: none; transition: background .15s ease, border-color .15s ease;
}
.bol-btn .msr[b-f41p3lhpgx] { font-size: 18px; }
.bol-btn:disabled[b-f41p3lhpgx] { opacity: .5; cursor: not-allowed; }
/* CTA: carbon sobre teal (8.60), y el hover CONSERVA el carbon (6.08). Cero blanco sobre teal. */
.bol-btn--primary[b-f41p3lhpgx] { background: var(--brand-teal-primary); color: var(--text-primary); }
.bol-btn--primary:hover:not(:disabled)[b-f41p3lhpgx] { background: var(--brand-teal-dark); color: var(--text-primary); }
.bol-btn--secondary[b-f41p3lhpgx] { background: #fff; color: var(--text-primary); border-color: var(--border-soft, #E7E2D8); }
.bol-btn--secondary:hover:not(:disabled)[b-f41p3lhpgx] { background: var(--bg-cream, #FAF7F0); }
.bol-btn--ghost[b-f41p3lhpgx] { background: transparent; color: var(--text-secondary); }
.bol-btn--ghost:hover:not(:disabled)[b-f41p3lhpgx] { background: var(--bg-cream, #FAF7F0); }

/* ── Resumen + KPIs ───────────────────────────────────────────────────── */
.bol-resumen[b-f41p3lhpgx] {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px;
    background: #fff; border: 1px solid var(--border-soft, #E7E2D8); border-radius: 14px;
    padding: 14px 18px; margin-bottom: 16px;
}
.bol-kpis[b-f41p3lhpgx] { display: flex; flex-wrap: wrap; gap: 26px; }
.bol-kpi[b-f41p3lhpgx] { display: flex; flex-direction: column; }
.bol-kpi .n[b-f41p3lhpgx] { font-size: 22px; font-weight: 700; color: var(--text-primary); font-variant-numeric: tabular-nums; }
.bol-kpi .l[b-f41p3lhpgx] { font-size: 12px; color: var(--text-secondary); }
.bol-acciones[b-f41p3lhpgx] { display: flex; gap: 10px; }

/* ── Progreso ─────────────────────────────────────────────────────────── */
.bol-prog-wrap[b-f41p3lhpgx] { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; }
.bol-prog[b-f41p3lhpgx] { flex: 1; height: 8px; border-radius: 999px; background: var(--bg-cream, #FAF7F0); overflow: hidden; }
.bol-prog-fill[b-f41p3lhpgx] { height: 100%; background: var(--brand-teal-primary); transition: width .2s ease; }
.bol-prog-txt[b-f41p3lhpgx] { display: flex; flex-direction: column; font-size: 12px; color: var(--text-secondary); min-width: 210px; }

/* ── Avisos y vacios ──────────────────────────────────────────────────── */
.bol-warn[b-f41p3lhpgx] {
    display: flex; gap: 12px; align-items: flex-start; border-radius: 12px; padding: 12px 16px;
    margin-bottom: 14px; background: color-mix(in srgb, var(--warning) 14%, #fff);
    color: var(--warning-ink); /* 4.71 sobre el tinte */
}
.bol-warn p[b-f41p3lhpgx] { margin: 4px 0 0; font-size: 13px; }
.bol-warn a[b-f41p3lhpgx] { color: inherit; }

.bol-error-pantalla[b-f41p3lhpgx] {
    display: flex; gap: 12px; align-items: center; border-radius: 12px; padding: 14px 18px;
    margin-bottom: 16px; background: color-mix(in srgb, var(--danger) 12%, #fff); color: var(--danger);
}
.bol-error-pantalla p[b-f41p3lhpgx] { margin: 4px 0 0; font-size: 13px; color: var(--text-secondary); }

.bol-vacio[b-f41p3lhpgx] {
    display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center;
    padding: 48px 24px; border: 1px dashed var(--border-soft, #E7E2D8); border-radius: 14px; background: #fff;
}
.bol-vacio .msr[b-f41p3lhpgx] { font-size: 40px; color: var(--text-muted); }
.bol-vacio p[b-f41p3lhpgx] { margin: 0; font-size: 13px; color: var(--text-secondary); max-width: 460px; }

/* ── Lista de alumnos ─────────────────────────────────────────────────── */
.bol-lista[b-f41p3lhpgx] { background: #fff; border: 1px solid var(--border-soft, #E7E2D8); border-radius: 14px; overflow: hidden; margin-bottom: 22px; }
.bol-fila[b-f41p3lhpgx] {
    display: grid; grid-template-columns: 44px 1fr 120px 64px auto; align-items: center; gap: 12px;
    padding: 8px 16px; border-bottom: 1px solid var(--border-soft, #E7E2D8); min-height: 48px;
}
.bol-fila:last-child[b-f41p3lhpgx] { border-bottom: none; }
.bol-fila--error[b-f41p3lhpgx] { background: color-mix(in srgb, var(--danger) 6%, #fff); }
.bol-fila .nom[b-f41p3lhpgx] { font-size: 14px; color: var(--text-primary); }
.bol-fila .mat[b-f41p3lhpgx] { font-size: 12px; color: var(--text-secondary); }
.bol-fila .prom[b-f41p3lhpgx] { font-size: 14px; font-weight: 700; font-variant-numeric: tabular-nums; text-align: right; }
.bol-fila .prom.reprobado[b-f41p3lhpgx] { color: var(--danger); } /* 7.1 sobre blanco */
.mono[b-f41p3lhpgx] { font-family: ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace; }

.hit[b-f41p3lhpgx] { display: grid; place-items: center; width: 44px; height: 44px; cursor: pointer; }
.hit input[b-f41p3lhpgx] { width: 18px; height: 18px; accent-color: var(--brand-teal-primary); }

.chip[b-f41p3lhpgx] { font-size: 12px; font-weight: 600; border-radius: 999px; padding: 3px 10px; white-space: nowrap; }
.chip--ok[b-f41p3lhpgx] { background: color-mix(in srgb, var(--success) 12%, #fff); color: var(--success-ink); }      /* 5.55 */
.chip--warn[b-f41p3lhpgx] { background: color-mix(in srgb, var(--warning) 14%, #fff); color: var(--warning-ink); }    /* 4.71 */
.chip--error[b-f41p3lhpgx] { background: color-mix(in srgb, var(--danger) 12%, #fff); color: var(--danger); }         /* 5.16 */
.chip--muted[b-f41p3lhpgx] { background: var(--bg-cream, #FAF7F0); color: var(--text-secondary); }

/* ── La hoja ──────────────────────────────────────────────────────────── */
.bol-preview[b-f41p3lhpgx] { display: flex; flex-direction: column; gap: 20px; }
.bol-hoja[b-f41p3lhpgx] {
    background: #fff; border: 1px solid var(--border-soft, #E7E2D8); border-radius: 10px;
    padding: 14mm; max-width: 216mm; margin: 0 auto; width: 100%; color: var(--text-primary);
}
.bol-hd[b-f41p3lhpgx] { display: flex; align-items: center; gap: 14px; border-bottom: 2px solid var(--brand-teal-primary); padding-bottom: 10px; }
/* El logo casi siempre NO existe: EscuelaImpresionDTO.LogoUrl esta documentado como siempre null.
   La hoja trae puesto el placeholder y no depende de una imagen que no llega. */
.bol-logo[b-f41p3lhpgx] { width: 46px; height: 46px; border-radius: 8px; background: var(--bg-cream, #FAF7F0); display: grid; place-items: center; }
.bol-logo .msr[b-f41p3lhpgx] { font-size: 26px; color: var(--text-secondary); }
.bol-esc[b-f41p3lhpgx] { flex: 1; }
.bol-esc .nom[b-f41p3lhpgx] { font-weight: 700; font-size: 15px; }
.bol-esc .meta[b-f41p3lhpgx] { font-size: 12px; color: var(--text-secondary); }
.bol-tit[b-f41p3lhpgx] { text-align: right; }
.bol-tit .t[b-f41p3lhpgx] { font-family: 'Fraunces', Georgia, serif; font-size: 14px; letter-spacing: .06em; }
.bol-tit .c[b-f41p3lhpgx] { font-size: 11px; color: var(--text-secondary); }

.bol-ident[b-f41p3lhpgx] { margin: 14px 0 12px; }
.bol-ident .al[b-f41p3lhpgx] { font-family: 'Fraunces', Georgia, serif; font-size: 19px; }
.bol-ident .datos[b-f41p3lhpgx] { display: flex; flex-wrap: wrap; gap: 18px; font-size: 12px; color: var(--text-secondary); margin-top: 4px; }

.bol-cifras[b-f41p3lhpgx] { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 14px; }
.bol-cif[b-f41p3lhpgx], .bol-cifras .cif[b-f41p3lhpgx] {
    background: var(--bg-cream, #FAF7F0); border-radius: 10px; padding: 10px 14px;
    display: flex; flex-direction: column;
}
.bol-cifras .cif .n[b-f41p3lhpgx] { font-size: 20px; font-weight: 700; font-variant-numeric: tabular-nums; }
.bol-cifras .cif .l[b-f41p3lhpgx] { font-size: 11px; color: var(--text-secondary); }

.bol-tabla[b-f41p3lhpgx] { width: 100%; border-collapse: collapse; font-size: 13px; }
.bol-tabla th[b-f41p3lhpgx] { text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: var(--text-secondary); border-bottom: 1px solid var(--border-soft, #E7E2D8); padding: 6px 8px; }
.bol-tabla td[b-f41p3lhpgx] { padding: 6px 8px; border-bottom: 1px solid var(--border-soft, #E7E2D8); }
.bol-tabla .c[b-f41p3lhpgx] { text-align: center; }
.bol-tabla .doc[b-f41p3lhpgx] { color: var(--text-secondary); font-size: 12px; }
/* Cabecera de campo formativo: tinta oscurecida (5.84-6.55), NO el par --cf-* del sistema (2.86-3.91). */
.bol-tabla tr.cf td[b-f41p3lhpgx] { font-weight: 700; font-size: 12px; }

.bol-nota[b-f41p3lhpgx] { font-size: 11.5px; color: var(--text-secondary); margin: 10px 0 0; }

.bol-firmas[b-f41p3lhpgx] { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 26px; text-align: center; font-size: 11px; color: var(--text-secondary); }
.bol-firmas .linea[b-f41p3lhpgx] { display: block; border-top: 1px solid var(--text-secondary); margin-bottom: 5px; }

.bol-legal[b-f41p3lhpgx] { display: flex; justify-content: space-between; font-size: 10px; color: var(--text-muted); margin-top: 16px; }

/* ── Error por zona (R-T085-4, §5.5 + §6.10) ─────────────────────────── */
/* Cuelga de su fila, no la deforma: la fila es un grid de columnas fijas y meter aqui un bloque
   la partiria. Tinte danger 8% para que se lea como aviso y no como fila reprobada. */
.bol-zona-error[b-f41p3lhpgx] {
    display: flex; align-items: flex-start; gap: 10px;
    margin: -4px 0 8px; padding: 10px 14px;
    border: 1px solid color-mix(in srgb, var(--danger) 28%, #fff);
    border-radius: 10px;
    background: color-mix(in srgb, var(--danger) 8%, #fff);
}
.bol-zona-error .msr[b-f41p3lhpgx] { font-size: 20px; color: var(--danger); flex: none; }
.bol-zona-error > div[b-f41p3lhpgx] { flex: 1 1 auto; }
.bol-zona-error strong[b-f41p3lhpgx] { display: block; font-size: 13px; color: var(--text-primary); }
.bol-zona-error p[b-f41p3lhpgx] { margin: 2px 0 0; font-size: 12px; color: var(--text-secondary); }
.bol-zona-error .bol-btn[b-f41p3lhpgx] { flex: none; }

/* ── CTA «Ver boletas» (R-T085-3, §8) ────────────────────────────────── */
/* Fuera del telefono no existe: en un escritorio la vista previa ya se ve al hacer scroll. */
.bol-ver[b-f41p3lhpgx] { display: none; text-decoration: none; }

/* ── Responsive (§8) ──────────────────────────────────────────────────── */
@media (max-width: 768px) {
    .bol-fila[b-f41p3lhpgx] { grid-template-columns: 44px 1fr 56px auto; }
    .bol-fila .mat[b-f41p3lhpgx] { display: none; }
}
@media (max-width: 640px) {
    .bol-page[b-f41p3lhpgx] { padding: 16px 14px 40px; }
    /* R-T085-3: aqui «Ver boletas» ES el CTA principal y va primero; «Imprimir» sigue estando,
       pero como Secondary — el telefono no tiene impresora que prometer. */
    .bol-ver[b-f41p3lhpgx] { display: inline-flex; order: -1; }
    .bol-acciones[b-f41p3lhpgx] { flex-wrap: wrap; }
    .bol-acciones .bol-btn[b-f41p3lhpgx] { flex: 1 1 100%; justify-content: center; }
    .bol-imprimir.bol-btn--primary[b-f41p3lhpgx] { background: #fff; color: var(--text-primary); border-color: var(--border-soft, #E7E2D8); }
    .bol-imprimir.bol-btn--primary:hover:not(:disabled)[b-f41p3lhpgx] { background: var(--bg-cream, #FAF7F0); color: var(--text-primary); }
    .bol-zona-error[b-f41p3lhpgx] { flex-wrap: wrap; }
    .bol-field[b-f41p3lhpgx], .bol-field--wide[b-f41p3lhpgx] { min-width: 100%; flex: 1 1 100%; }
    .bol-tools .bol-btn[b-f41p3lhpgx] { width: 100%; justify-content: center; }
    .bol-kpis[b-f41p3lhpgx] { gap: 18px; }
    .bol-cifras[b-f41p3lhpgx] { grid-template-columns: repeat(2, 1fr); }
    .bol-firmas[b-f41p3lhpgx] { grid-template-columns: 1fr; }
    .bol-hoja[b-f41p3lhpgx] { padding: 8mm; }
}

/* Puntero grueso: area de toque de 44px real (§8). */
@media (pointer: coarse) {
    .bol-btn[b-f41p3lhpgx], .bol-select[b-f41p3lhpgx] { min-height: 44px; }
    .bol-fila[b-f41p3lhpgx] { min-height: 52px; }
    .hit input[b-f41p3lhpgx] { width: 24px; height: 24px; }
}

@media (prefers-reduced-motion: reduce) {
    .bol-btn[b-f41p3lhpgx], .bol-prog-fill[b-f41p3lhpgx] { transition: none; }
}
/* /Pages/ControlEscolar/Calendario.razor.rz.scp.css */
/* ===================================================================
   CALENDARIO ESCOLAR (T-028) — vestido de TelerikCalendar + lista +
   filtros + drawer. Clases y tokens tomados del mockup aprobado:
   docs/agentes/diseno/T-028-mockup.html
   =================================================================== */


.ui-card[b-et5b6shbd7] {
    background: var(--bg-panel); border: 1px solid var(--border-soft); border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm); padding: 18px 20px;
}

.cal-teal[b-et5b6shbd7] { color: var(--brand-teal-deep); }
.cal-teal-deep[b-et5b6shbd7] { color: var(--brand-teal-deep); }
.cal-gold[b-et5b6shbd7] { color: var(--pin-gold); }
.cal-muted[b-et5b6shbd7] { color: var(--text-muted); }
.cal-cm-mark[b-et5b6shbd7] { font-size: 12px; vertical-align: -2px; margin-right: 3px; opacity: .9; }
.of[b-et5b6shbd7] { font-size: 12px; }

/* ── Callouts ─────────────────────────────────────────────────────── */
.callout[b-et5b6shbd7] {
    display: flex; gap: 10px; padding: 12px 14px; border-radius: var(--radius-md);
    font-size: 12.5px; line-height: 1.5; margin-bottom: 14px;
}
.callout .material-symbols-rounded[b-et5b6shbd7] { font-size: 18px; flex-shrink: 0; }
.callout-info[b-et5b6shbd7] { background: rgba(45, 110, 163, .09); border: 1px solid rgba(45, 110, 163, .24); color: #245C89; }
.callout-info b[b-et5b6shbd7] { color: #1B4569; }
.callout-danger[b-et5b6shbd7] { background: rgba(163, 45, 45, .08); border: 1px solid rgba(163, 45, 45, .22); color: #7C2222; }
.callout-danger b[b-et5b6shbd7] { color: #7C2222; }

/* ── Selector de escuela (multi-escuela) ─────────────────────────── */
.cal-escuela-field[b-et5b6shbd7] { margin-bottom: 14px; max-width: 320px; }
.cal-escuela-field label[b-et5b6shbd7] { display: block; font-size: 12px; font-weight: 600; color: var(--text-secondary); margin-bottom: 4px; }
.cal-escuela-select[b-et5b6shbd7] {
    width: 100%; font-family: var(--font-sans); font-size: 13.5px; padding: 8px 10px;
    border: 1px solid var(--border-soft); border-radius: var(--radius-md); background: #fff; color: var(--text-primary);
}

/* ── Toolbar ──────────────────────────────────────────────────────── */
.cal-toolbar[b-et5b6shbd7] { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.cal-nav[b-et5b6shbd7] { display: flex; align-items: center; gap: 8px; }
.cal-month[b-et5b6shbd7] {
    font-family: var(--font-serif); font-size: 22px; font-weight: 600; letter-spacing: -.4px;
    min-width: 190px; text-transform: capitalize;
    display: inline-flex; align-items: center; gap: 4px;
    background: none; border: none; padding: 0; color: inherit; cursor: pointer; text-align: left;
}
/* El chevron de "saltar de mes" solo tiene sentido donde la rejilla no esta a la vista (movil). */
.cal-month-chev[b-et5b6shbd7] { display: none; font-size: 22px; color: var(--text-secondary); }
.cal-seg[b-et5b6shbd7] {
    display: inline-flex; background: var(--bg-cream); border: 1px solid var(--border-soft);
    border-radius: 99px; padding: 3px; gap: 2px;
}
.cal-seg button[b-et5b6shbd7] {
    border: none; background: transparent; font-family: var(--font-sans); font-size: 12.5px; font-weight: 600;
    color: var(--text-secondary); padding: 6px 14px; border-radius: 99px; cursor: pointer;
    display: inline-flex; align-items: center; gap: 5px;
}
.cal-seg button .material-symbols-rounded[b-et5b6shbd7] { font-size: 15px; }
.cal-seg button.on[b-et5b6shbd7] { background: #fff; color: var(--brand-teal-deep); box-shadow: var(--shadow-sm); }

/* ── Filtros por familia ──────────────────────────────────────────── */
.cal-filters[b-et5b6shbd7] { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 16px; align-items: center; }
.cal-filters-label[b-et5b6shbd7] {
    font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
    color: var(--text-muted); margin-right: 2px;
}
.f-chip[b-et5b6shbd7] {
    display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; font-weight: 700;
    text-transform: uppercase; letter-spacing: .3px; padding: 5px 11px; border-radius: 99px;
    border: 1px solid var(--border-soft); cursor: pointer; background: #fff; color: var(--text-secondary);
}
.f-chip .dot[b-et5b6shbd7] { width: 9px; height: 9px; border-radius: 3px; flex-shrink: 0; }
.f-chip .material-symbols-rounded[b-et5b6shbd7] { font-size: 13px; }
.f-chip.off[b-et5b6shbd7] { opacity: .45; cursor: default; }
.f-chip .cnt[b-et5b6shbd7] { font-variant-numeric: tabular-nums; opacity: .75; font-weight: 600; }
.f-chip.partial[b-et5b6shbd7] { background: #fff; border-color: currentColor; border-style: dashed; }
.f-nc.on[b-et5b6shbd7] { background: var(--ev-nc-bg); color: var(--ev-nc); border-color: transparent; }
.f-ciclo.on[b-et5b6shbd7] { background: var(--ev-ciclo-bg); color: var(--ev-ciclo); border-color: transparent; }
.f-eval.on[b-et5b6shbd7] { background: var(--ev-eval-bg); color: var(--ev-eval); border-color: transparent; }
.f-cte.on[b-et5b6shbd7] { background: var(--ev-cte-bg); color: var(--ev-cte); border-color: transparent; }
.f-tram.on[b-et5b6shbd7] { background: var(--ev-tram-bg); color: var(--ev-tram); border-color: transparent; }
.f-com.on[b-et5b6shbd7] { background: var(--ev-com-bg); color: var(--ev-com); border-color: transparent; }

.f-more[b-et5b6shbd7] {
    margin-left: 4px; display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 600;
    color: var(--brand-teal-deep); background: none; border: none; cursor: pointer; padding: 5px 8px; border-radius: 99px;
}
.f-more:hover[b-et5b6shbd7] { background: var(--bg-light-teal); }
.f-more .material-symbols-rounded[b-et5b6shbd7] { font-size: 16px; }

/* ── Panel "Detalle" (14 tipos) ───────────────────────────────────── */
.tipos-panel[b-et5b6shbd7] {
    background: #fff; border: 1px solid var(--border-soft); border-radius: var(--radius-lg); box-shadow: var(--shadow-md);
    padding: 16px 18px; margin-bottom: 16px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px 22px;
}
.tp-fam[b-et5b6shbd7] { min-width: 0; }
.tp-fam h4[b-et5b6shbd7] {
    display: flex; align-items: center; gap: 6px; font-family: var(--font-sans); font-size: 11px; font-weight: 700;
    letter-spacing: .07em; text-transform: uppercase; margin: 0 0 8px; padding-bottom: 6px; border-bottom: 1px solid var(--border-soft);
}
.tp-fam h4 .dot[b-et5b6shbd7] { width: 9px; height: 9px; border-radius: 3px; flex-shrink: 0; }
.tp-op[b-et5b6shbd7] { display: flex; align-items: center; gap: 7px; font-size: 12.5px; color: var(--text-secondary); padding: 4px 0; cursor: pointer; min-height: 44px; }
.tp-op input[b-et5b6shbd7] { accent-color: var(--brand-teal-deep); width: 15px; height: 15px; flex-shrink: 0; }
.tp-op .material-symbols-rounded[b-et5b6shbd7] { font-size: 15px; flex-shrink: 0; }
.tipos-panel-footer[b-et5b6shbd7] {
    grid-column: 1 / -1; border-top: 1px solid var(--border-soft); padding-top: 11px; font-size: 12px;
    color: var(--text-muted); display: flex; gap: 16px; flex-wrap: wrap;
}
.tipos-panel-footer-total[b-et5b6shbd7] { margin-left: auto; }

/* ── Rejilla mensual (TelerikCalendar vestido) ───────────────────── */
.cal-split[b-et5b6shbd7] { display: grid; grid-template-columns: minmax(0, 1fr) 372px; gap: 20px; align-items: start; }
.cal-split.solo-lista[b-et5b6shbd7] { grid-template-columns: 1fr; }
.cal-rejilla-col[b-et5b6shbd7] { min-width: 0; }

.k-calendar-wrap[b-et5b6shbd7]  .k-calendar {
    background: #fff; border: 1px solid var(--border-soft); border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm); overflow: hidden; width: 100%;
}
.k-calendar-wrap[b-et5b6shbd7]  .k-calendar-view,
.k-calendar-wrap[b-et5b6shbd7]  table { width: 100%; }
.k-calendar-wrap[b-et5b6shbd7]  th {
    padding: 10px 6px; font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
    color: var(--text-muted); text-align: center; background: var(--bg-cream); border-bottom: 1px solid var(--border-soft);
}
.k-calendar-wrap[b-et5b6shbd7]  td {
    min-height: 104px; height: 104px; border-right: 1px solid var(--border-soft); border-bottom: 1px solid var(--border-soft);
    padding: 6px 6px 8px; vertical-align: top; cursor: pointer; transition: background .15s ease;
}
.k-calendar-wrap[b-et5b6shbd7]  td:hover { background: #faf8f2; }
.k-calendar-wrap[b-et5b6shbd7]  td.cal-hoy .k-day-num {
    color: var(--text-primary); background: var(--brand-teal-primary); width: 22px; height: 22px; border-radius: 7px;
    display: inline-flex; align-items: center; justify-content: center; font-size: 12px;
}
.k-calendar-wrap[b-et5b6shbd7]  td.cal-sel { background: var(--bg-light-teal); box-shadow: inset 0 0 0 2px var(--brand-teal); }
.k-calendar-wrap[b-et5b6shbd7]  td.cal-conmem .k-day-num {
    font-weight: 700; color: var(--text-primary); text-decoration: underline dotted var(--border-med) 2px; text-underline-offset: 3px;
}

.cal-cell-inner[b-et5b6shbd7] { display: flex; flex-direction: column; gap: 3px; height: 100%; }
.k-day-num[b-et5b6shbd7] { font-size: 12.5px; font-weight: 600; color: var(--text-secondary); font-variant-numeric: tabular-nums; }

.ev-bar[b-et5b6shbd7] {
    display: flex; align-items: center; gap: 4px; font-size: 11px; font-weight: 600; padding: 3px 6px; border-radius: 5px;
    overflow: hidden; white-space: nowrap; text-overflow: ellipsis; line-height: 1.3;
}
.ev-bar .material-symbols-rounded[b-et5b6shbd7] { font-size: 12px; flex-shrink: 0; }
.ev-bar.atenuado[b-et5b6shbd7] { opacity: .45; }
.ev-bar.conmem[b-et5b6shbd7] { font-weight: 700; }
.ev-nc[b-et5b6shbd7] { background: var(--ev-nc-bg); color: var(--ev-nc); }
.ev-eval[b-et5b6shbd7] { background: var(--ev-eval-bg); color: var(--ev-eval); }
.ev-cte[b-et5b6shbd7] { background: var(--ev-cte-bg); color: var(--ev-cte); }
.ev-com[b-et5b6shbd7] { background: var(--ev-com-bg); color: var(--ev-com); }
.ev-ciclo[b-et5b6shbd7] { background: var(--ev-ciclo-bg); color: var(--ev-ciclo); }
.ev-tram[b-et5b6shbd7] { background: var(--ev-tram-bg); color: var(--ev-tram); }
.ev-more[b-et5b6shbd7] { font-size: 10.5px; font-weight: 700; color: var(--text-muted); padding: 1px 6px; }

/* ── Legend (desktop) ─────────────────────────────────────────────── */
.legend[b-et5b6shbd7] {
    display: flex; gap: 16px; flex-wrap: wrap; font-size: 12px; color: var(--text-secondary); margin-top: 14px;
    padding: 12px 14px; background: var(--bg-cream); border: 1px solid var(--border-soft); border-radius: var(--radius-md);
}
.legend .it[b-et5b6shbd7] { display: flex; align-items: center; gap: 6px; }
.legend .material-symbols-rounded[b-et5b6shbd7] { font-size: 14px; }
.legend .dot[b-et5b6shbd7] { width: 9px; height: 9px; border-radius: 3px; flex-shrink: 0; }
.leg-fams[b-et5b6shbd7] { display: flex; gap: 14px; flex-wrap: wrap; width: 100%; padding-bottom: 10px; margin-bottom: 2px; border-bottom: 1px solid var(--border-soft); }

/* ── Leyenda colapsada (movil, al final de la agenda) ─────────────── */
.leg-m[b-et5b6shbd7] {
    background: var(--bg-cream); border: 1px solid var(--border-soft); border-radius: var(--radius-md);
    margin: 14px 0 0; font-size: 12.5px; display: none;
}
.leg-m > summary[b-et5b6shbd7] {
    list-style: none; cursor: pointer; padding: 11px 13px; display: flex; align-items: center; gap: 7px;
    font-weight: 600; color: var(--text-secondary); min-height: 44px;
}
.leg-m > summary[b-et5b6shbd7]::-webkit-details-marker { display: none; }
.leg-m > summary .material-symbols-rounded[b-et5b6shbd7] { font-size: 16px; color: var(--text-muted); }
.leg-m > summary .chev[b-et5b6shbd7] { margin-left: auto; transition: transform .2s var(--ease); }
.leg-m[open] > summary .chev[b-et5b6shbd7] { transform: rotate(180deg); }
.leg-m .in[b-et5b6shbd7] { padding: 0 13px 13px; display: grid; gap: 9px; }
.leg-m .fam[b-et5b6shbd7] { display: flex; gap: 7px; align-items: flex-start; line-height: 1.4; }
.leg-m .fam .dot[b-et5b6shbd7] { width: 9px; height: 9px; border-radius: 3px; flex-shrink: 0; margin-top: 4px; }
.leg-m .fam b[b-et5b6shbd7] { display: block; font-size: 12.5px; }
.leg-m .fam span[b-et5b6shbd7] { color: var(--text-secondary); font-size: 12px; }
.leg-m .fam.cal-fam-sep[b-et5b6shbd7] { border-top: 1px solid var(--border-soft); padding-top: 9px; }

/* ── Lista de eventos (side) ──────────────────────────────────────── */
.side[b-et5b6shbd7] { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.cal-side-card[b-et5b6shbd7] { padding: 16px 18px; }
.side-h[b-et5b6shbd7] { display: flex; align-items: center; gap: 8px; margin-bottom: 2px; }
.side-h h2[b-et5b6shbd7] { font-family: var(--font-serif); font-size: 18px; font-weight: 600; margin: 0; }
.side-h .n[b-et5b6shbd7] { font-size: 12px; color: var(--text-muted); font-variant-numeric: tabular-nums; }

.day-group[b-et5b6shbd7] { margin-bottom: 14px; }
.day-group:last-child[b-et5b6shbd7] { margin-bottom: 0; }
.day-head[b-et5b6shbd7] { display: flex; align-items: baseline; gap: 8px; margin-bottom: 7px; padding-bottom: 5px; border-bottom: 1px solid var(--border-soft); }
.day-num[b-et5b6shbd7] { font-family: var(--font-serif); font-size: 19px; font-weight: 600; line-height: 1; font-variant-numeric: tabular-nums; }
.day-dow[b-et5b6shbd7] { font-size: 11px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--text-muted); }
.day-today[b-et5b6shbd7] {
    font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--brand-teal-deep);
    background: var(--bg-light-teal); padding: 2px 7px; border-radius: 99px; margin-left: auto;
}

.ev-item[b-et5b6shbd7] {
    display: flex; gap: 10px; padding: 10px 11px; border: 1px solid var(--border-soft); border-radius: var(--radius-md);
    background: #fff; margin-bottom: 7px; transition: border-color .15s ease, box-shadow .15s ease;
}
.ev-item:hover[b-et5b6shbd7] { border-color: var(--border-med); box-shadow: var(--shadow-sm); }
.ev-item.oficial[b-et5b6shbd7] { background: var(--bg-cream); }
.ev-item.atenuado[b-et5b6shbd7] { opacity: .5; }
.ev-rail[b-et5b6shbd7] { width: 4px; border-radius: 99px; flex-shrink: 0; }
.r-nc[b-et5b6shbd7] { background: var(--ev-nc); } .r-eval[b-et5b6shbd7] { background: var(--ev-eval); } .r-cte[b-et5b6shbd7] { background: var(--ev-cte); }
.r-com[b-et5b6shbd7] { background: var(--ev-com); } .r-ciclo[b-et5b6shbd7] { background: var(--ev-ciclo); } .r-tram[b-et5b6shbd7] { background: var(--ev-tram); }
.ev-body[b-et5b6shbd7] { flex: 1; min-width: 0; }
.ev-title[b-et5b6shbd7] { font-size: 13.5px; font-weight: 600; margin-bottom: 3px; line-height: 1.35; }
.ev-item.conmem .ev-title[b-et5b6shbd7] { font-weight: 700; }
.ev-meta[b-et5b6shbd7] { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.tag[b-et5b6shbd7] {
    display: inline-flex; align-items: center; gap: 4px; font-size: 10.5px; font-weight: 700; text-transform: uppercase;
    letter-spacing: .3px; padding: 3px 8px; border-radius: 99px;
}
.tag .material-symbols-rounded[b-et5b6shbd7] { font-size: 11px; }
.t-nc[b-et5b6shbd7] { background: var(--ev-nc-bg); color: var(--ev-nc); }
.t-eval[b-et5b6shbd7] { background: var(--ev-eval-bg); color: var(--ev-eval); }
.t-cte[b-et5b6shbd7] { background: var(--ev-cte-bg); color: var(--ev-cte); }
.t-com[b-et5b6shbd7] { background: var(--ev-com-bg); color: var(--ev-com); }
.t-ciclo[b-et5b6shbd7] { background: var(--ev-ciclo-bg); color: var(--ev-ciclo); }
.t-tram[b-et5b6shbd7] { background: var(--ev-tram-bg); color: var(--ev-tram); }
/* Chips de origen: alpha compuesto sobre el peor fondo real (ficha crema). Ratios en T-028 v2.1. */
.t-oficial[b-et5b6shbd7] { background: rgba(184, 134, 11, .13); color: #7A5807; }
.t-escuela[b-et5b6shbd7] { background: rgba(58, 143, 145, .13); color: #2C6E70; }
.cal-tag-ciclo[b-et5b6shbd7] { background: rgba(139, 144, 152, .14); color: #5C6068; }
.cal-tag-conmem[b-et5b6shbd7] { background: rgba(139, 144, 152, .14); color: #5C6068; }
.ev-desc[b-et5b6shbd7] { font-size: 12.5px; color: var(--text-secondary); margin-top: 6px; line-height: 1.45; }
.ev-actions[b-et5b6shbd7] { display: flex; gap: 4px; flex-shrink: 0; align-items: flex-start; }
.ev-lock[b-et5b6shbd7] { display: flex; align-items: center; gap: 4px; font-size: 11px; color: var(--text-muted); flex-shrink: 0; padding-top: 4px; }
.ev-lock .material-symbols-rounded[b-et5b6shbd7] { font-size: 14px; }
.cal-atenuado-nota[b-et5b6shbd7] {
    font-size: 11.5px; color: var(--text-muted); display: flex; gap: 5px; align-items: flex-start; line-height: 1.4; margin-top: 6px;
}
.cal-atenuado-nota .material-symbols-rounded[b-et5b6shbd7] { font-size: 14px; flex-shrink: 0; }

/* ── Estados: vacio / error / cargando ────────────────────────────── */
.empty[b-et5b6shbd7] { text-align: center; padding: 48px 24px; }
.empty .material-symbols-rounded[b-et5b6shbd7] { font-size: 44px; color: var(--text-muted); opacity: .5; }
.empty h3[b-et5b6shbd7] { font-family: var(--font-serif); font-size: 19px; font-weight: 600; margin: 12px 0 6px; }
.empty p[b-et5b6shbd7] { font-size: 13px; color: var(--text-secondary); margin: 0 auto 16px; max-width: 360px; }
.skeleton[b-et5b6shbd7] {
    background: linear-gradient(90deg, #EDE9E0 25%, #F6F3EC 37%, #EDE9E0 63%); background-size: 400% 100%;
    animation: cal-shimmer-b-et5b6shbd7 1.4s ease-in-out infinite; border-radius: 6px;
}
@keyframes cal-shimmer-b-et5b6shbd7 { 0% { background-position: 100% 50%; } 100% { background-position: 0 50%; } }
.cal-skeleton-grid[b-et5b6shbd7] { display: grid; grid-template-columns: repeat(7, 1fr); background: #fff; border: 1px solid var(--border-soft); border-radius: var(--radius-lg); overflow: hidden; }
.cal-skeleton-cell[b-et5b6shbd7] { min-height: 90px; border-right: 1px solid var(--border-soft); border-bottom: 1px solid var(--border-soft); padding: 8px; }

/* ── Error/callout de campo (validacion inline) ──────────────────── */
.cal-error[b-et5b6shbd7] {
    font-size: 12px; color: var(--danger); margin-top: 6px; display: flex; gap: 4px; align-items: center;
}
.cal-error .material-symbols-rounded[b-et5b6shbd7] { font-size: 14px; }

/* ── Drawer de alta/edicion (§6.10 de la casa) ────────────────────── */
.drawer-back[b-et5b6shbd7] { position: fixed; inset: 0; background: rgba(20, 22, 25, .45); z-index: var(--z-overlay, 1000); }
.drawer[b-et5b6shbd7] {
    position: fixed; top: 0; right: 0; bottom: 0; width: 466px; max-width: 100%; background: #fff;
    box-shadow: var(--shadow-lg); display: flex; flex-direction: column; z-index: calc(var(--z-overlay, 1000) + 1);
}
.drawer-head[b-et5b6shbd7] { display: flex; align-items: flex-start; gap: 12px; padding: 18px 20px; border-bottom: 1px solid var(--border-soft); }
.drawer-head-ic[b-et5b6shbd7] {
    width: 40px; height: 40px; border-radius: 11px; background: var(--ev-com-bg); color: var(--ev-com);
    display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.drawer-head h2[b-et5b6shbd7] { font-family: var(--font-serif); font-size: 20px; font-weight: 600; margin: 0 0 2px; }
.drawer-head .sub[b-et5b6shbd7] { font-size: 12.5px; color: var(--text-secondary); }
.drawer-body[b-et5b6shbd7] { flex: 1; overflow: auto; padding: 20px; }
.drawer-foot[b-et5b6shbd7] { display: flex; justify-content: space-between; gap: 10px; padding: 14px 20px; border-top: 1px solid var(--border-soft); background: var(--bg-cream); }

.field[b-et5b6shbd7] { margin-bottom: 16px; }
.field label[b-et5b6shbd7] { display: block; font-size: 12.5px; font-weight: 600; color: var(--text-secondary); margin-bottom: 6px; }
.field label .opt[b-et5b6shbd7] { font-weight: 400; color: var(--text-muted); }
.field input[b-et5b6shbd7], .field select[b-et5b6shbd7], .field textarea[b-et5b6shbd7] {
    width: 100%; font-family: var(--font-sans); font-size: 14px; padding: 10px 12px;
    border: 1px solid var(--border-soft); border-radius: var(--radius-md); background: #fff; color: var(--text-primary);
}
.field textarea[b-et5b6shbd7] { min-height: 76px; resize: vertical; }
.field input:focus[b-et5b6shbd7], .field select:focus[b-et5b6shbd7], .field textarea:focus[b-et5b6shbd7] {
    outline: none; border-color: var(--brand-teal); box-shadow: 0 0 0 3px rgba(109, 199, 208, .25);
}
.field .hint[b-et5b6shbd7] { font-size: 12px; color: var(--text-muted); margin-top: 6px; }
.field .count[b-et5b6shbd7] { float: right; font-size: 11.5px; color: var(--text-muted); font-variant-numeric: tabular-nums; }
.two[b-et5b6shbd7] { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

.tipo-grid[b-et5b6shbd7] { display: grid; grid-template-columns: 1fr; gap: 8px; }
.tipo-op[b-et5b6shbd7] {
    display: flex; align-items: flex-start; gap: 9px; padding: 10px 11px; border: 1px solid var(--border-soft);
    border-radius: var(--radius-md); font-size: 13px; font-weight: 600; cursor: pointer; background: #fff; min-height: 44px;
}
.tipo-op .material-symbols-rounded[b-et5b6shbd7] { font-size: 18px; flex-shrink: 0; margin-top: 1px; }
.tipo-op small[b-et5b6shbd7] { display: block; font-weight: 400; font-size: 12px; color: var(--text-muted); margin-top: 2px; line-height: 1.35; }
.tipo-op.on[b-et5b6shbd7] { border-color: transparent; box-shadow: inset 0 0 0 2px currentColor; }

.flag-box[b-et5b6shbd7] {
    display: flex; gap: 9px; align-items: flex-start; padding: 11px 12px; border: 1px solid var(--border-soft);
    border-radius: var(--radius-md); background: var(--bg-cream); cursor: pointer; min-height: 44px;
}
.flag-box input[b-et5b6shbd7] { accent-color: var(--brand-teal-deep); width: 16px; height: 16px; margin-top: 2px; flex-shrink: 0; }
.flag-box b[b-et5b6shbd7] { font-size: 13px; }
.flag-box small[b-et5b6shbd7] { display: block; font-size: 12px; color: var(--text-muted); margin-top: 2px; line-height: 1.4; }

/* ── Movil (agenda, sin rejilla) ──────────────────────────────────── */
.m-strip[b-et5b6shbd7] { display: none; gap: 6px; overflow-x: auto; padding: 10px 12px; background: var(--bg-cream); border: 1px solid var(--border-soft); border-radius: var(--radius-md); margin-bottom: 16px; }
.m-day[b-et5b6shbd7] { flex: 0 0 auto; width: 48px; padding: 7px 0 6px; border-radius: var(--radius-md); background: #fff; border: 1px solid var(--border-soft); text-align: center; cursor: pointer; }
.m-day .dw[b-et5b6shbd7] { font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--text-muted); }
.m-day .dn[b-et5b6shbd7] { font-family: var(--font-serif); font-size: 16px; font-weight: 600; line-height: 1.2; font-variant-numeric: tabular-nums; }
.m-day .dots[b-et5b6shbd7] { display: flex; gap: 2px; justify-content: center; height: 5px; margin-top: 3px; }
.m-day .dots i[b-et5b6shbd7] { width: 5px; height: 5px; border-radius: 2px; display: block; }
.m-day.on[b-et5b6shbd7] { background: var(--brand-teal-deep); border-color: transparent; }
.m-day.on .dw[b-et5b6shbd7], .m-day.on .dn[b-et5b6shbd7] { color: #fff; }

/* ==================================================================
   Responsive
   ================================================================== */
@media (max-width: 1080px) {
    .cal-split[b-et5b6shbd7] { grid-template-columns: 1fr; }
    .tipos-panel[b-et5b6shbd7] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
    .tipos-panel[b-et5b6shbd7] { grid-template-columns: 1fr; }
    .cal-filters[b-et5b6shbd7] { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; }
    /* Decision 3 / mockup .m-bar (T-028-mockup.html:285-292): en movil la barra FIJA es SOLO
       la barra de mes -- una fila: '<' 44px | mes centrado tocable (expand_more) | '>' 44px.
       "Hoy" y el segmentado [Mes|Lista] SALEN del cromo fijo: el mockup no los muestra en los
       marcos de telefono; en movil la pantalla es siempre agenda (_vistaLista arranca false y la
       m-strip la gobierna, Calendario.razor:397), y el salto de fecha va por el bottom sheet del
       nombre del mes. Sin ellos la barra baja de 134px (dos filas por el flex:1 + flex-wrap) a una
       sola fila ~64px. La topbar movil (52px) es la fila 1 del grid maestro y .main-shell (fila 2,
       overflow-y:auto) es el scroller ya por debajo de la topbar (Layout/MainLayout.razor.css:43-64);
       por eso top:0 pega la barra justo bajo la topbar. Fondo blanco + border-bottom como el mockup. */
    .cal-toolbar[b-et5b6shbd7] {
        position: sticky; top: 0; z-index: 15;
        flex-wrap: nowrap; gap: 8px;
        background: #fff; border-bottom: 1px solid var(--border-soft);
        padding: 10px 12px; margin: 0 0 8px;
    }
    .cal-nav[b-et5b6shbd7] { flex: 1; }
    .cal-month[b-et5b6shbd7] {
        flex: 1; min-width: 0; justify-content: center; text-align: center; font-size: 17px;
        min-height: 44px;
    }

    .cal-spring[b-et5b6shbd7], .cal-seg[b-et5b6shbd7] { display: none; }
    [b-et5b6shbd7] .cal-hoy-btn { display: none; }
    .cal-nav[b-et5b6shbd7]  .ui-btn.icon { width: 44px; height: 44px; }
    /* Decision 3: en movil NO hay rejilla; solo tira de dias + lista de agenda. */
    .cal-rejilla-col[b-et5b6shbd7] { display: none; }
    .m-strip[b-et5b6shbd7] { display: flex; }
    .legend[b-et5b6shbd7] { display: none; }
    .leg-m[b-et5b6shbd7] { display: block; }
    .drawer[b-et5b6shbd7] { width: 100%; }
    /* El nombre del mes se vuelve el disparador del bottom sheet de salto de fecha. */
    .cal-month-chev[b-et5b6shbd7] { display: inline-flex; }
}

/* ── Bottom sheet: saltar de mes (Decision 3, movil) ─────────────────── */
.salto-back[b-et5b6shbd7] { position: fixed; inset: 0; background: rgba(20, 22, 25, .45); z-index: var(--z-overlay, 1000); }
.salto-sheet[b-et5b6shbd7] {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: calc(var(--z-overlay, 1000) + 1);
    background: #fff; border-radius: var(--radius-xl, 20px) var(--radius-xl, 20px) 0 0;
    padding: 10px 16px 22px; box-shadow: 0 -8px 30px rgba(20, 22, 25, .18);
    display: flex; flex-direction: column; align-items: center;
    animation: salto-in-b-et5b6shbd7 .2s ease;
}
.salto-grip[b-et5b6shbd7] { width: 38px; height: 4px; border-radius: 2px; background: var(--border-med); margin: 4px 0 12px; }
.salto-title[b-et5b6shbd7] { align-self: flex-start; font-family: var(--font-serif); font-size: 17px; font-weight: 600; margin-bottom: 10px; }
@keyframes salto-in-b-et5b6shbd7 { from { transform: translateY(100%); } to { transform: translateY(0); } }
/* En pantallas grandes el salto de mes tambien es accesible (el chevron se muestra en movil, pero
   el sheet, si se abre, se centra como dialogo en vez de pegarse al fondo). */
@media (min-width: 641px) {
    .salto-sheet[b-et5b6shbd7] { left: 50%; right: auto; bottom: auto; top: 50%; transform: translate(-50%, -50%); width: 340px; border-radius: var(--radius-lg, 14px); animation: none; }
}

@media (pointer: coarse) {
    .f-chip[b-et5b6shbd7], .f-more[b-et5b6shbd7], .tp-op[b-et5b6shbd7], .m-day[b-et5b6shbd7] { min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
    .skeleton[b-et5b6shbd7], .leg-m .chev[b-et5b6shbd7] { animation: none !important; transition: none !important; }
    .salto-sheet[b-et5b6shbd7] { animation: none !important; }
}
/* /Pages/ControlEscolar/CambioCiclo.razor.rz.scp.css */
/* T-079 — Cambio de ciclo escolar. Familia cic-*.
   Calca la estructura de Boletas.razor.css (T-085): mismo breadcrumb, mismo header de modulo,
   mismos tokens. No hay bloque @media print: esta pantalla no se imprime.

   CONTRASTE (LEC-G007: todo par que se declare AA lleva SU ratio calculado al lado, y hay que
   decir contra que umbral):
     - CTA normal  : carbon #1F2937 sobre teal #6EC6C8  = 7.39  (AA 4.5:1 texto normal, pasa)
     - CTA de peligro: blanco #FFFFFF sobre rojo #8A1C1C = 9.28  (AA 4.5:1 texto normal, pasa)
   Cero blanco sobre el teal claro (1.99, reprueba): esa es la deuda heredada que NO se copia. */

.cic-page[b-o0acgwna32] { padding: 20px 24px 48px; max-width: 1100px; }

/* ── Breadcrumb ───────────────────────────────────────────────────────── */
.cic-crumb[b-o0acgwna32] { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--text-muted); margin-bottom: 14px; }
.cic-crumb a[b-o0acgwna32] { color: var(--text-secondary); text-decoration: none; }
.cic-crumb a:hover[b-o0acgwna32] { text-decoration: underline; }
.cic-crumb .cur[b-o0acgwna32] { color: var(--text-primary); font-weight: 600; }

/* ── Header de modulo ─────────────────────────────────────────────────── */
.cic-modh[b-o0acgwna32] { display: flex; align-items: center; gap: 16px; margin-bottom: 22px; }
.cic-modico[b-o0acgwna32] {
    width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center;
    background: linear-gradient(135deg, var(--brand-teal-primary), var(--brand-teal-dark));
}
.cic-modico .msr[b-o0acgwna32] { font-size: 26px; color: #fff; }   /* icono decorativo, no texto */
.cic-modh h1[b-o0acgwna32] { font-family: 'Fraunces', Georgia, serif; font-size: 26px; margin: 0; color: var(--text-primary); }
.cic-modh .sub[b-o0acgwna32] { font-size: 13px; color: var(--text-secondary); margin-top: 2px; }

/* ── Barra de pasos ───────────────────────────────────────────────────── */
.cic-pasos[b-o0acgwna32] {
    display: flex; flex-wrap: wrap; gap: 10px; list-style: none; margin: 0 0 18px; padding: 0;
    font-size: 13px; color: var(--text-muted);
}
.cic-pasos li[b-o0acgwna32] {
    padding: 6px 12px; border-radius: 999px; background: var(--bg-cream, #FAF7F0);
    border: 1px solid var(--border-soft, #E7E2D8);
}
.cic-pasos li.on[b-o0acgwna32] { color: var(--text-primary); font-weight: 600; background: var(--brand-teal-primary); }

/* ── Tarjetas ─────────────────────────────────────────────────────────── */
.cic-card[b-o0acgwna32] {
    background: #fff; border: 1px solid var(--border-soft, #E7E2D8); border-radius: 14px;
    padding: 18px 20px; margin-bottom: 18px;
}
.cic-card h2[b-o0acgwna32] {
    font-family: 'Fraunces', Georgia, serif; font-size: 19px; margin: 0 0 12px;
    color: var(--text-primary); display: flex; align-items: center; gap: 8px;
}
.cic-card--ok[b-o0acgwna32] { border-color: var(--brand-teal-dark, #3A8F91); }
.cic-lead[b-o0acgwna32] { font-size: 14px; color: var(--text-secondary); margin: 0 0 14px; }
.cic-vacio[b-o0acgwna32] { font-size: 14px; color: var(--text-muted); margin: 0; }
.cic-hint[b-o0acgwna32] { font-size: 12px; color: var(--text-muted); margin-top: 4px; }

/* ── Campos ───────────────────────────────────────────────────────────── */
.cic-field[b-o0acgwna32] { display: flex; flex-direction: column; gap: 6px; min-width: 200px; margin: 14px 0; }
.cic-field label[b-o0acgwna32] { font-size: 12px; font-weight: 600; color: var(--text-secondary); }
.cic-select[b-o0acgwna32], .cic-input[b-o0acgwna32] {
    height: 40px; border-radius: 10px; border: 1px solid var(--border-soft, #E7E2D8);
    padding: 0 10px; font-size: 14px; color: var(--text-primary); background: #fff; max-width: 320px;
}
.cic-input--sm[b-o0acgwna32] { height: 34px; max-width: 180px; font-size: 13px; }

/* ── Tablas ───────────────────────────────────────────────────────────── */
.cic-tabla[b-o0acgwna32] { width: 100%; border-collapse: collapse; font-size: 14px; }
.cic-tabla th[b-o0acgwna32] {
    text-align: left; font-size: 12px; font-weight: 600; color: var(--text-secondary);
    padding: 8px 10px; border-bottom: 1px solid var(--border-soft, #E7E2D8);
}
.cic-tabla td[b-o0acgwna32] { padding: 9px 10px; border-bottom: 1px solid var(--bg-cream, #FAF7F0); color: var(--text-primary); }
.cic-tabla tr.sel td[b-o0acgwna32] { background: var(--bg-cream, #FAF7F0); }
.cic-tabla--grupos th:nth-child(n+3):nth-child(-n+5)[b-o0acgwna32] { text-align: center; }
.cic-tabla--grupos td:nth-child(n+3):nth-child(-n+5)[b-o0acgwna32] { text-align: center; }

.cic-chip[b-o0acgwna32] {
    display: inline-block; margin-left: 8px; padding: 1px 8px; border-radius: 999px;
    font-size: 11px; font-weight: 600; background: var(--bg-cream, #FAF7F0);
    color: var(--text-secondary); border: 1px solid var(--border-soft, #E7E2D8);
}

/* ── KPIs del resumen ─────────────────────────────────────────────────── */
.cic-kpis[b-o0acgwna32] { display: flex; flex-wrap: wrap; gap: 14px; list-style: none; margin: 0 0 12px; padding: 0; }
.cic-kpis li[b-o0acgwna32] {
    flex: 1 1 130px; background: var(--bg-cream, #FAF7F0); border-radius: 12px;
    border: 1px solid var(--border-soft, #E7E2D8); padding: 12px 14px; text-align: center;
}
.cic-kpis strong[b-o0acgwna32] { display: block; font-size: 24px; color: var(--text-primary); }
.cic-kpis span[b-o0acgwna32] { font-size: 12px; color: var(--text-secondary); }
.cic-cuadre[b-o0acgwna32] { font-size: 13px; color: var(--text-secondary); margin: 0 0 14px; }

/* ── Avisos ───────────────────────────────────────────────────────────── */
.cic-aviso[b-o0acgwna32] {
    background: var(--bg-cream, #FAF7F0); border: 1px solid var(--border-soft, #E7E2D8);
    border-radius: 12px; padding: 12px 14px; font-size: 13px; color: var(--text-primary); margin: 12px 0;
}
.cic-aviso ul[b-o0acgwna32] { margin: 0; padding-left: 18px; }
/* Carbon sobre el rosa palido = 9.72 (AA 4.5:1, pasa). El color solo refuerza; el texto ya lo dice. */
.cic-aviso--malo[b-o0acgwna32] { background: #F2C9C2; border-color: #E9A79C; }
.cic-error-pantalla[b-o0acgwna32] {
    display: flex; gap: 12px; align-items: flex-start; background: #F2C9C2; border: 1px solid #E9A79C;
    border-radius: 12px; padding: 14px 16px; font-size: 14px; color: var(--text-primary); margin-bottom: 18px;
}

/* ── Confirmacion explicita ───────────────────────────────────────────── */
.cic-acepto[b-o0acgwna32] {
    display: flex; gap: 10px; align-items: flex-start; margin: 16px 0;
    font-size: 14px; color: var(--text-primary); cursor: pointer;
}
.cic-acepto input[b-o0acgwna32] { margin-top: 3px; }

/* ── Botones ──────────────────────────────────────────────────────────── */
.cic-acciones[b-o0acgwna32] { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.cic-btn[b-o0acgwna32] {
    display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 16px;
    border-radius: 10px; font-size: 14px; font-weight: 600; cursor: pointer;
    background: #fff; color: var(--text-primary); border: 1px solid var(--border-soft, #E7E2D8);
    transition: background .15s ease, border-color .15s ease;
}
.cic-btn:hover:not(:disabled)[b-o0acgwna32] { background: var(--bg-cream, #FAF7F0); }
.cic-btn:disabled[b-o0acgwna32] { opacity: .5; cursor: not-allowed; }
.cic-btn--sm[b-o0acgwna32] { height: 32px; padding: 0 12px; font-size: 13px; }
/* CTA: carbon sobre teal = 7.39. Nunca blanco sobre teal (1.99). */
.cic-btn--primary[b-o0acgwna32] { background: var(--brand-teal-primary); color: var(--text-primary); border-color: transparent; }
.cic-btn--primary:hover:not(:disabled)[b-o0acgwna32] { background: var(--brand-teal-dark); color: var(--text-primary); }
/* CTA destructivo: blanco sobre #8A1C1C = 9.28. El unico blanco-sobre-color de la pantalla. */
.cic-btn--peligro[b-o0acgwna32] { background: #8A1C1C; color: #fff; border-color: transparent; }
.cic-btn--peligro:hover:not(:disabled)[b-o0acgwna32] { background: #6E1616; color: #fff; }
/* /Pages/ControlEscolar/CargaAcademica.razor.rz.scp.css */
.ca-page[b-d7lxmn3p8l]{max-width:1200px;margin:0 auto;padding:22px 28px 44px;color:var(--text-primary)}
.ca-breadcrumb[b-d7lxmn3p8l]{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary);margin-bottom:18px}.ca-breadcrumb .msr[b-d7lxmn3p8l]{font-size:17px}.ca-breadcrumb a[b-d7lxmn3p8l]{color:var(--brand-teal-deep);font-weight:600;text-decoration:none}.ca-header[b-d7lxmn3p8l]{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.ca-header h1[b-d7lxmn3p8l]{font-family:var(--font-display);font-size:28px;line-height:1.15;margin:0 0 6px}.ca-header p[b-d7lxmn3p8l]{font-size:13px;color:var(--text-secondary);margin:0}
.ca-kpis[b-d7lxmn3p8l]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.ca-tools[b-d7lxmn3p8l]{display:grid;grid-template-columns:minmax(240px,1fr) auto minmax(190px,auto);align-items:end;gap:14px;padding:16px 18px;background:var(--bg-panel);border:1px solid var(--border-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.ca-field[b-d7lxmn3p8l]{display:flex;flex-direction:column;gap:6px}.ca-field label[b-d7lxmn3p8l],.ca-label[b-d7lxmn3p8l]{font-size:12px;font-weight:700;color:var(--text-secondary)}.ca-field input[b-d7lxmn3p8l],.ca-field select[b-d7lxmn3p8l]{width:100%;min-height:40px;border:1px solid var(--border-med);border-radius:var(--radius-md);background:var(--bg-panel);color:var(--text-primary);padding:8px 11px;font:inherit}.ca-search[b-d7lxmn3p8l]{position:relative}.ca-search .msr[b-d7lxmn3p8l]{position:absolute;left:10px;bottom:10px;font-size:20px;color:var(--text-secondary)}.ca-search input[b-d7lxmn3p8l]{padding-left:38px}.ca-segment[b-d7lxmn3p8l]{display:flex;padding:3px;background:var(--bg-cream);border:1px solid var(--border-soft);border-radius:var(--radius-md)}.ca-segment button[b-d7lxmn3p8l]{min-height:34px;padding:6px 14px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-weight:700}.ca-segment button[aria-pressed="true"][b-d7lxmn3p8l]{background:var(--bg-panel);color:var(--brand-teal-deep);box-shadow:var(--shadow-sm)}.ca-count[b-d7lxmn3p8l]{margin:14px 2px 12px;color:var(--text-secondary);font-size:13px}
.ca-groups[b-d7lxmn3p8l]{display:grid;gap:16px}.ca-group[b-d7lxmn3p8l]{overflow:hidden;background:var(--bg-panel);border:1px solid var(--border-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.ca-group-warning[b-d7lxmn3p8l]{border-left:3px solid var(--warning)}.ca-group-header[b-d7lxmn3p8l]{display:flex;align-items:center;gap:12px;padding:16px 18px}.ca-group-title[b-d7lxmn3p8l]{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0;font-family:var(--font-display);font-size:18px}.ca-group-header p[b-d7lxmn3p8l]{margin:3px 0 0;color:var(--text-secondary);font-size:12px}.ca-notice[b-d7lxmn3p8l]{display:flex;align-items:flex-start;gap:9px;margin:0 18px 12px;padding:11px 13px;border-radius:var(--radius-md);font-size:13px;line-height:1.45;color:var(--text-secondary)}.ca-notice .msr[b-d7lxmn3p8l]{font-size:19px}.ca-notice-warning[b-d7lxmn3p8l]{background:rgba(186,117,23,.1);color:var(--text-secondary)}.ca-notice-warning .msr[b-d7lxmn3p8l]{color:var(--warning-ink)}.ca-notice-info[b-d7lxmn3p8l]{background:rgba(45,110,163,.12);color:var(--info-ink)}
.ca-table[b-d7lxmn3p8l]{width:100%;border-collapse:collapse}.ca-table th[b-d7lxmn3p8l]{padding:9px 12px;border-bottom:2px solid var(--border-soft);color:var(--text-secondary);font-size:12px;font-weight:700;text-align:left}.ca-table td[b-d7lxmn3p8l]{padding:11px 12px;border-bottom:1px solid var(--border-soft);font-size:13px;vertical-align:middle}.ca-table tbody tr:last-child td[b-d7lxmn3p8l]{border-bottom:0}.ca-table tbody tr:hover[b-d7lxmn3p8l]{background:var(--bg-cream)}.ca-meta[b-d7lxmn3p8l]{display:block;margin-top:3px;color:var(--text-secondary);font-size:12px}.ca-action[b-d7lxmn3p8l]{text-align:right}.ca-change[b-d7lxmn3p8l]{white-space:nowrap}
.ca-empty[b-d7lxmn3p8l]{display:flex;min-height:350px;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:48px 24px;background:var(--bg-panel);border:1px solid var(--border-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.ca-empty-icon[b-d7lxmn3p8l]{font-size:48px;color:var(--text-secondary);opacity:.65}.ca-empty h2[b-d7lxmn3p8l]{font-family:var(--font-display);font-size:20px;margin:12px 0 8px}.ca-empty p[b-d7lxmn3p8l]{max-width:620px;margin:0 0 20px;color:var(--text-secondary);font-size:13px;line-height:1.55}.ca-empty-actions[b-d7lxmn3p8l]{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.ca-filter-empty[b-d7lxmn3p8l]{min-height:280px}.ca-error-screen .ca-empty-icon[b-d7lxmn3p8l]{color:var(--danger);background:rgba(163,45,45,.12);opacity:1;padding:12px;border-radius:var(--radius-lg)}
.ca-zona-err[b-d7lxmn3p8l]{display:flex;align-items:center;gap:9px;margin-bottom:18px;padding:13px 15px;border:1px solid var(--danger);border-radius:var(--radius-md);background:var(--bg-panel);color:var(--danger);font-size:13px;font-weight:700}
.ca-overlay[b-d7lxmn3p8l]{position:fixed;z-index:var(--z-overlay);inset:0;display:flex;justify-content:flex-end;background:rgba(20,22,25,.48)}.ca-drawer[b-d7lxmn3p8l]{display:flex;width:100%;max-width:470px;height:100%;flex-direction:column;background:var(--bg-panel);box-shadow:-16px 0 48px rgba(20,22,25,.22);animation:ca-slide-b-d7lxmn3p8l .24s var(--ease)}.ca-drawer-header[b-d7lxmn3p8l]{display:flex;gap:12px;padding:20px 22px;border-bottom:1px solid var(--border-soft);background:linear-gradient(180deg,var(--bg-cream),var(--bg-panel))}.ca-drawer-header>.msr[b-d7lxmn3p8l]{display:grid;place-items:center;width:40px;height:40px;flex:0 0 40px;border-radius:var(--radius-lg);background:var(--bg-light-teal);color:var(--brand-teal-deep)}.ca-drawer-header h2[b-d7lxmn3p8l]{margin:0;font-family:var(--font-display);font-size:21px}.ca-drawer-header p[b-d7lxmn3p8l]{margin:3px 0 0;color:var(--text-secondary);font-size:12px}.ca-drawer-body[b-d7lxmn3p8l]{flex:1;overflow:auto;padding:22px}.ca-class-detail[b-d7lxmn3p8l]{display:grid;grid-template-columns:70px 1fr;gap:9px 12px;margin:0 0 20px;padding:15px;background:var(--bg-cream);border-radius:var(--radius-md)}.ca-class-detail dt[b-d7lxmn3p8l]{color:var(--text-secondary);font-size:12px;font-weight:700}.ca-class-detail dd[b-d7lxmn3p8l]{margin:0;font-size:13px}.ca-transfer[b-d7lxmn3p8l]{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;margin-bottom:20px}.ca-transfer>div[b-d7lxmn3p8l]{display:flex;align-items:center;gap:9px;min-width:0}.ca-transfer span span[b-d7lxmn3p8l]{min-width:0}.ca-transfer small[b-d7lxmn3p8l],.ca-transfer strong[b-d7lxmn3p8l]{display:block}.ca-transfer small[b-d7lxmn3p8l]{color:var(--text-secondary);font-size:11px}.ca-transfer strong[b-d7lxmn3p8l]{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.ca-transfer-arrow[b-d7lxmn3p8l]{color:var(--brand-teal-deep)}.ca-hint[b-d7lxmn3p8l]{margin:2px 0 0;color:var(--text-secondary);font-size:12px;line-height:1.45}.ca-hint a[b-d7lxmn3p8l]{color:var(--brand-teal-deep);font-weight:600;text-decoration:underline}.ca-same[b-d7lxmn3p8l]{margin:10px 0;color:var(--warning-ink);font-size:12px;font-weight:700}.ca-consequence[b-d7lxmn3p8l]{display:flex;gap:9px;margin-top:18px;padding:13px;background:rgba(45,110,163,.12);border-radius:var(--radius-md);color:var(--info-ink);font-size:13px;line-height:1.5}.ca-consequence p[b-d7lxmn3p8l]{margin:0}.ca-drawer-footer[b-d7lxmn3p8l]{display:flex;justify-content:flex-end;gap:10px;padding:16px 22px;border-top:1px solid var(--border-soft)}
.ca-skeleton[b-d7lxmn3p8l]{position:relative;overflow:hidden;background:var(--bg-cream);border-radius:var(--radius-md)}.ca-skeleton[b-d7lxmn3p8l]::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent);animation:ca-shimmer-b-d7lxmn3p8l 1.4s ease-in-out infinite}.ca-skeleton-stat[b-d7lxmn3p8l]{height:86px}.ca-skeleton-tools[b-d7lxmn3p8l]{height:78px;margin-bottom:16px}.ca-skeleton-card[b-d7lxmn3p8l]{padding:18px}.ca-skeleton-title[b-d7lxmn3p8l]{width:38%;height:24px;margin-bottom:18px}.ca-skeleton-row[b-d7lxmn3p8l]{height:42px;margin-top:8px}
@keyframes ca-slide-b-d7lxmn3p8l{from{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes ca-shimmer-b-d7lxmn3p8l{to{transform:translateX(100%)}}
@media(max-width:1023.98px){.ca-kpis[b-d7lxmn3p8l]{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.ca-page[b-d7lxmn3p8l]{padding:18px 16px 36px}.ca-header[b-d7lxmn3p8l]{align-items:stretch;flex-direction:column}.ca-header h1[b-d7lxmn3p8l]{font-size:22px}.ca-tools[b-d7lxmn3p8l]{grid-template-columns:1fr}.ca-segment button[b-d7lxmn3p8l]{flex:1}.ca-kpis[b-d7lxmn3p8l]{grid-template-columns:1fr 1fr}.ca-table thead[b-d7lxmn3p8l]{display:none}.ca-table[b-d7lxmn3p8l],.ca-table tbody[b-d7lxmn3p8l],.ca-table tr[b-d7lxmn3p8l],.ca-table td[b-d7lxmn3p8l]{display:block}.ca-table tr[b-d7lxmn3p8l]{padding:10px 14px;border-top:1px solid var(--border-soft)}.ca-table td[b-d7lxmn3p8l]{display:grid;grid-template-columns:92px 1fr;gap:10px;padding:6px 0;border:0}.ca-table td[b-d7lxmn3p8l]::before{content:attr(data-label);color:var(--text-secondary);font-size:12px;font-weight:700}.ca-action[b-d7lxmn3p8l]{display:block!important}.ca-action[b-d7lxmn3p8l]::before{display:none}.ca-change[b-d7lxmn3p8l]{width:100%;justify-content:center;margin-top:5px}.ca-drawer[b-d7lxmn3p8l]{max-width:100%}.ca-drawer-footer>*[b-d7lxmn3p8l]{flex:1}.ca-empty-actions[b-d7lxmn3p8l]{width:100%}.ca-empty-actions a[b-d7lxmn3p8l]{width:100%;justify-content:center}}
@media(max-width:390px){.ca-kpis[b-d7lxmn3p8l]{grid-template-columns:1fr}.ca-breadcrumb[b-d7lxmn3p8l]{flex-wrap:wrap}}
@media(pointer:coarse){.ca-breadcrumb a[b-d7lxmn3p8l],.ca-field input[b-d7lxmn3p8l],.ca-field select[b-d7lxmn3p8l],.ca-segment button[b-d7lxmn3p8l],.ca-change[b-d7lxmn3p8l]{min-height:44px}}
@media(prefers-reduced-motion:reduce){.ca-drawer[b-d7lxmn3p8l],.ca-skeleton[b-d7lxmn3p8l]::after{animation:none}}
.ca-error-lock .ca-empty-icon[b-d7lxmn3p8l],.ca-error-sesion .ca-empty-icon[b-d7lxmn3p8l]{color:var(--warning-ink);background:rgba(186,117,23,.14)}
.ca-sin-docente-ico[b-d7lxmn3p8l]{display:grid;place-items:center;width:36px;height:36px;flex:0 0 36px;border-radius:50%;border:1.5px dashed var(--border-med);background:var(--bg-cream);color:var(--text-secondary)}.ca-sin-docente-ico .msr[b-d7lxmn3p8l]{font-size:19px}.ca-notice-sin-docente a[b-d7lxmn3p8l]{color:var(--brand-teal-deep);font-weight:700;text-decoration:underline}
/* /Pages/ControlEscolar/CiclosEscolares.razor.rz.scp.css */
/* ===================================================================
   CICLOS ESCOLARES (T-xxx W1) — admin de ciclos escolares.
   Hereda fin-* globales de wwwroot/css/finanzas.css.
   =================================================================== */

/* Breadcrumb */
.cics-bc[b-elsuxly2or] {
    display: flex; align-items: center; gap: 6px; font-size: 12.5px;
    color: var(--text-secondary); margin-bottom: 18px; flex-wrap: wrap;
}
.cics-bc a[b-elsuxly2or] { color: var(--brand-teal-deep); text-decoration: none; }
.cics-bc a:hover[b-elsuxly2or] { text-decoration: underline; }
.cics-sep[b-elsuxly2or] { opacity: .4; }
.cics-current[b-elsuxly2or] { color: var(--text-primary); font-weight: 600; }
.cics-bc .msr[b-elsuxly2or] { font-size: 16px; }

/* Fila activa */
.cics-row-activo[b-elsuxly2or] { background: rgba(109, 199, 208, .07); }

/* Badge activo con icono */
.cics-badge-activo[b-elsuxly2or] {
    display: inline-flex; align-items: center; gap: 4px;
}
.cics-badge-activo .msr[b-elsuxly2or] { font-size: 14px; }

/* Confirmacion inline */
.cics-confirm-row[b-elsuxly2or] {
    display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.cics-confirm-txt[b-elsuxly2or] { font-size: 12.5px; color: var(--text-secondary); white-space: nowrap; }

/* Mensaje flotante de resultado */
.cics-msg[b-elsuxly2or] {
    display: flex; align-items: center; gap: 8px; padding: 12px 16px;
    border-radius: var(--radius-md); font-size: 13.5px; font-weight: 600;
    margin-top: 14px;
}
.cics-msg .msr[b-elsuxly2or] { font-size: 18px; flex-shrink: 0; }
.cics-msg-ok[b-elsuxly2or]  { background: #E2F5EE; color: #0F6E56; border: 1px solid #ADDDC8; }
.cics-msg-error[b-elsuxly2or] { background: #FCEAEA; color: #A32D2D; border: 1px solid #F0BBBB; }

/* Hint de formato en drawer */
.cics-hint-warn[b-elsuxly2or] {
    display: flex; align-items: center; gap: 5px; font-size: 12px;
    color: #8A6B00; background: #FFF8E1; border: 1px solid #F5D87A;
    border-radius: var(--radius-md); padding: 8px 10px; margin-top: 6px;
}
.cics-hint-warn .msr[b-elsuxly2or] { font-size: 15px; flex-shrink: 0; }

/* Responsive */
@media (max-width: 640px) {
    .cics-confirm-row[b-elsuxly2or] { flex-direction: column; align-items: flex-start; }
    .cics-confirm-txt[b-elsuxly2or] { white-space: normal; }
}
/* /Pages/ControlEscolar/CitatorioFormato.razor.rz.scp.css */
/* Formato impreso del citatorio. La regla @media print (ocultar shell) vive en wwwroot/css/citatorios.css. */

.citfmt-page[b-utygclzoq8] { padding: 20px 24px 48px; font-family: var(--font-sans); }
.citfmt-bar[b-utygclzoq8] { display: flex; align-items: center; gap: 8px; max-width: 816px; margin: 0 auto 16px; }
.citfmt-grow[b-utygclzoq8] { flex: 1; }
.citfmt-btn[b-utygclzoq8] {
    display: inline-flex; align-items: center; gap: 6px; height: 38px; padding: 0 14px; border-radius: 10px; border: 1px solid transparent;
    font: 600 13.5px/1 var(--font-sans); cursor: pointer; text-decoration: none;
}
.citfmt-btn .msr[b-utygclzoq8] { font-size: 19px; }
.citfmt-btn.ghost[b-utygclzoq8] { background: var(--bg-panel); border-color: var(--border-soft); color: var(--text-primary); }
.citfmt-btn.primary[b-utygclzoq8] { background: linear-gradient(135deg, var(--brand-teal-dark), var(--brand-teal-deep)); color: #fff; box-shadow: 0 6px 14px rgba(44, 109, 111, .28); }
.citfmt-msg[b-utygclzoq8] { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 60px 0; color: var(--text-secondary); }
.citfmt-spin[b-utygclzoq8] { width: 24px; height: 24px; border-radius: 50%; border: 3px solid var(--border-soft); border-top-color: var(--brand-teal-dark); animation: citfmt-rot-b-utygclzoq8 .8s linear infinite; }
@keyframes citfmt-rot-b-utygclzoq8 { to { transform: rotate(360deg); } }

.citfmt-paper[b-utygclzoq8] {
    position: relative; max-width: 816px; margin: 0 auto; background: #fff; color: #1A1C1F; padding: 48px 56px;
    border-radius: 6px; box-shadow: var(--shadow-lg); font-size: 13.5px; line-height: 1.55; overflow: hidden;
}
.citfmt-paper p[b-utygclzoq8] { margin: 0 0 10px; }
.citfmt-stamp[b-utygclzoq8] {
    position: absolute; top: 196px; right: 48px; transform: rotate(-12deg); border: 3px solid currentColor; border-radius: 8px;
    padding: 4px 14px; font: 800 18px/1.2 var(--font-sans); letter-spacing: .12em; opacity: .75;
}
.citfmt-stamp.conf[b-utygclzoq8] { color: var(--cit-conf-ink); }
.citfmt-stamp.ok[b-utygclzoq8] { color: var(--cit-ok-ink); }
.citfmt-stamp.no[b-utygclzoq8] { color: var(--cit-no-ink); }

.citfmt-head[b-utygclzoq8] { display: flex; align-items: center; gap: 14px; padding-bottom: 14px; border-bottom: 2px solid var(--brand-teal-deep); }
.citfmt-shield[b-utygclzoq8] {
    width: 54px; height: 60px; flex: none; display: grid; place-items: center; color: #fff; font: 700 20px/1 var(--font-serif);
    background: linear-gradient(160deg, var(--brand-teal-dark), var(--brand-teal-deep)); border-radius: 10px 10px 26px 26px;
    print-color-adjust: exact; -webkit-print-color-adjust: exact;
}
.citfmt-school[b-utygclzoq8] { flex: 1; display: flex; flex-direction: column; }
.citfmt-school b[b-utygclzoq8] { font-family: var(--font-serif); font-size: 17px; }
.citfmt-school small[b-utygclzoq8] { color: #5C6068; font-size: 12px; }
.citfmt-folio[b-utygclzoq8] { text-align: right; font-size: 11.5px; color: #5C6068; display: flex; flex-direction: column; }
.citfmt-folio b[b-utygclzoq8] { font-size: 15px; color: #1A1C1F; letter-spacing: .04em; }
.citfmt-t[b-utygclzoq8] { text-align: center; font-family: var(--font-serif); font-size: 24px; letter-spacing: .3em; margin: 22px 0 2px; }
.citfmt-sub[b-utygclzoq8] { text-align: center; color: #5C6068; font-size: 12px; margin-bottom: 18px; }
.citfmt-u[b-utygclzoq8] { border-bottom: 1px solid #1A1C1F; padding: 0 4px; font-weight: 600; white-space: pre; }

.citfmt-table[b-utygclzoq8] { width: 100%; border-collapse: collapse; margin: 14px 0 26px; }
.citfmt-table td[b-utygclzoq8] { border: 1px solid #D4CFC5; padding: 8px 10px; vertical-align: top; }
.citfmt-table td.k[b-utygclzoq8] { width: 30%; background: #FAF7F1; font-weight: 700; font-size: 12px; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
.citfmt-inc[b-utygclzoq8] { display: flex; align-items: baseline; gap: 8px; }
.citfmt-tag[b-utygclzoq8] { font-size: 10px; font-weight: 800; letter-spacing: .06em; padding: 1px 6px; border-radius: 4px; border: 1px solid currentColor; }
.citfmt-tag.t2[b-utygclzoq8] { color: var(--cit-no-ink); }
.citfmt-tag.t3[b-utygclzoq8] { color: var(--cit-pend-ink); }
.citfmt-tag.t1[b-utygclzoq8] { color: var(--cit-rep-ink); }
.citfmt-mot[b-utygclzoq8] { margin-top: 4px; font-style: italic; color: #3A3D42; }
.citfmt-lines[b-utygclzoq8] { height: 44px; background: repeating-linear-gradient(to bottom, transparent 0 21px, #B9B3A7 21px 22px); }
.citfmt-lines.one[b-utygclzoq8] { height: 22px; flex: 1; }
.citfmt-lines.short[b-utygclzoq8] { flex: .45; }

.citfmt-sign[b-utygclzoq8] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 46px; text-align: center; font-size: 11px; color: #5C6068; }
.citfmt-sign b[b-utygclzoq8] { display: block; border-top: 1px solid #1A1C1F; padding-top: 6px; font-size: 11.5px; color: #1A1C1F; }
.citfmt-cut[b-utygclzoq8] { margin: 34px 0 12px; border-top: 1px dashed #8B9098; position: relative; text-align: center; }
.citfmt-cut span[b-utygclzoq8] { position: relative; top: -10px; background: #fff; padding: 0 10px; font-size: 11px; color: #8B9098; display: inline-flex; align-items: center; gap: 4px; }
.citfmt-cut .msr[b-utygclzoq8] { font-size: 14px; }
.citfmt-talon[b-utygclzoq8] { display: flex; align-items: flex-end; gap: 10px; font-size: 11.5px; color: #5C6068; flex-wrap: wrap; }
.citfmt-talon b[b-utygclzoq8] { color: #1A1C1F; }

@media (max-width: 720px) {
    .citfmt-page[b-utygclzoq8] { padding: 12px 8px 32px; }
    .citfmt-paper[b-utygclzoq8] { padding: 24px 18px; }
    .citfmt-sign[b-utygclzoq8] { grid-template-columns: 1fr 1fr; }
    .citfmt-stamp[b-utygclzoq8] { top: 90px; right: 12px; font-size: 13px; }
}
/* /Pages/ControlEscolar/CitatorioNuevo.razor.rz.scp.css */
/* Nuevo citatorio (4 pasos + vista previa). Tokens del sistema; estados y WhatsApp en citatorios.css. */

.cn-page[b-gpfy0x4js5] { padding: 20px 24px 48px; max-width: 1240px; font-family: var(--font-sans); color: var(--text-primary); }

.cit-bc[b-gpfy0x4js5] { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--text-muted); margin-bottom: 14px; flex-wrap: wrap; }
.cit-bc .msr[b-gpfy0x4js5] { font-size: 16px; }
.cit-bc a[b-gpfy0x4js5] { color: var(--text-secondary); text-decoration: none; }
.cit-bc a:hover[b-gpfy0x4js5] { text-decoration: underline; }
.cit-sep[b-gpfy0x4js5] { color: var(--border-med); }
.cit-cur[b-gpfy0x4js5] { color: var(--text-primary); font-weight: 600; }

.cn-h[b-gpfy0x4js5] { display: flex; align-items: center; gap: 16px; margin-bottom: 20px; }
.cn-h-icon[b-gpfy0x4js5] {
    width: 50px; height: 50px; border-radius: 15px; display: grid; place-items: center; flex: none;
    background: linear-gradient(135deg, var(--brand-teal-primary), var(--brand-teal-deep)); box-shadow: 0 8px 20px rgba(44, 109, 111, .28);
}
.cn-h-icon .msr[b-gpfy0x4js5] { font-size: 27px; color: #fff; }
.cn-h h1[b-gpfy0x4js5] { font-family: var(--font-serif); font-size: 28px; font-weight: 600; margin: 0; }
.cn-h p[b-gpfy0x4js5] { margin: 2px 0 0; font-size: 13.5px; color: var(--text-secondary); }

.cn-grid[b-gpfy0x4js5] { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 20px; align-items: start; }
.cn-steps[b-gpfy0x4js5] { display: flex; flex-direction: column; gap: 14px; }

/* ── Tarjetas de paso ─────────────────────────────────────────────────── */
.cn-card[b-gpfy0x4js5] {
    background: var(--bg-panel); border: 1px solid var(--border-soft); border-radius: var(--radius-xl); padding: 16px 18px;
    box-shadow: var(--shadow-sm); display: flex; flex-direction: column; gap: 12px;
    transition: box-shadow 220ms var(--ease), border-color 220ms var(--ease), opacity 220ms;
}
.cn-card.active[b-gpfy0x4js5] { border-color: var(--brand-teal-primary); box-shadow: 0 0 0 3px rgba(110, 198, 200, .18), var(--shadow-sm); }
.cn-card.locked[b-gpfy0x4js5] { opacity: .55; }
.cn-sh[b-gpfy0x4js5] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.cn-sh b[b-gpfy0x4js5] { font-size: 15px; }
.cn-sh small[b-gpfy0x4js5] { font-size: 12.5px; color: var(--text-muted); }
.cn-num[b-gpfy0x4js5] {
    width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; flex: none;
    background: var(--bg-cream); color: var(--text-secondary); font-weight: 700; font-size: 13px;
}
.cn-card.active .cn-num[b-gpfy0x4js5] { background: var(--brand-teal-deep); color: #fff; }
.cn-card.done .cn-num[b-gpfy0x4js5] { background: var(--success); color: #fff; }
.cn-num .msr[b-gpfy0x4js5] { font-size: 17px; }
.cn-link[b-gpfy0x4js5] { margin-left: auto; border: none; background: none; color: var(--brand-teal-deep); font: 600 13px/1 var(--font-sans); cursor: pointer; }
.cn-link:hover[b-gpfy0x4js5] { text-decoration: underline; }
.cn-muted[b-gpfy0x4js5] { font-size: 13px; color: var(--text-muted); }

/* Paso 1 */
.cn-chips[b-gpfy0x4js5] { display: flex; flex-wrap: wrap; gap: 6px; }
.cn-chip[b-gpfy0x4js5] {
    height: 34px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--border-soft); background: var(--bg-panel);
    font: 600 13px/1 var(--font-sans); cursor: pointer; color: var(--text-primary);
}
.cn-chip:hover[b-gpfy0x4js5] { border-color: var(--brand-teal-primary); }
.cn-chip.on[b-gpfy0x4js5] { background: var(--bg-sidebar); border-color: var(--bg-sidebar); color: #fff; }
.cn-search[b-gpfy0x4js5] { display: flex; align-items: center; gap: 8px; border: 1px solid var(--border-med); border-radius: 10px; padding: 0 10px; background: var(--bg-panel); }
.cn-search .msr[b-gpfy0x4js5] { color: var(--text-muted); font-size: 20px; }
.cn-search input[b-gpfy0x4js5] { border: none; outline: none; height: 38px; flex: 1; font: 400 14px/1 var(--font-sans); background: transparent; }
.cn-alumnos[b-gpfy0x4js5] { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 6px; max-height: 280px; overflow-y: auto; }
.cn-alumno[b-gpfy0x4js5] {
    display: flex; align-items: center; gap: 8px; padding: 7px 10px; border-radius: 10px; border: 1px solid var(--border-soft);
    background: var(--bg-panel); text-align: left; font: 600 12.5px/1.25 var(--font-sans); cursor: pointer; color: var(--text-primary);
}
.cn-alumno:hover[b-gpfy0x4js5] { background: var(--bg-light-teal); border-color: var(--brand-teal-primary); }
.cn-alumno .cit-av[b-gpfy0x4js5] { width: 26px; height: 26px; font-size: 9.5px; }
.cn-stu[b-gpfy0x4js5] { display: flex; align-items: center; gap: 12px; }
.cn-stu > div[b-gpfy0x4js5] { flex: 1; display: flex; flex-direction: column; }
.cn-stu small[b-gpfy0x4js5] { font-size: 12.5px; color: var(--text-secondary); }
.cn-grade[b-gpfy0x4js5] { background: var(--bg-light-teal); color: var(--brand-teal-deep); font-weight: 700; font-size: 13px; padding: 5px 10px; border-radius: 8px; }
.cn-tutores[b-gpfy0x4js5] { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 8px; }
.cn-tutor[b-gpfy0x4js5] { display: flex; gap: 10px; padding: 10px 12px; border-radius: 12px; background: var(--bg-cream); }
.cn-tutor > .msr[b-gpfy0x4js5] { color: var(--brand-teal-deep); }
.cn-tutor b[b-gpfy0x4js5] { font-size: 13.5px; display: block; }
.cn-tutor small[b-gpfy0x4js5] { font-size: 12px; color: var(--text-secondary); }
.cn-chan[b-gpfy0x4js5] { display: flex; gap: 6px; margin-top: 6px; flex-wrap: wrap; }
.cn-chan span[b-gpfy0x4js5] { display: inline-flex; align-items: center; gap: 4px; font-size: 11.5px; font-weight: 600; padding: 2px 8px; border-radius: 999px; }
.cn-chan .msr[b-gpfy0x4js5] { font-size: 14px; }
.c-wa[b-gpfy0x4js5] { background: #DCF5E5; color: #0B6B3A; }
.c-app[b-gpfy0x4js5] { background: var(--bg-light-teal); color: var(--brand-teal-deep); }
.c-off[b-gpfy0x4js5] { background: var(--cit-can-bg); color: var(--cit-can-ink); }

/* Paso 2 */
.cn-tabs[b-gpfy0x4js5] { display: inline-flex; background: var(--bg-cream); border-radius: 12px; padding: 4px; gap: 4px; align-self: flex-start; flex-wrap: wrap; }
.cn-tabs button[b-gpfy0x4js5] {
    display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 12px; border: none; border-radius: 9px;
    background: transparent; font: 600 13px/1 var(--font-sans); color: var(--text-secondary); cursor: pointer;
}
.cn-tabs button .msr[b-gpfy0x4js5] { font-size: 18px; }
.cn-tabs button.on[b-gpfy0x4js5] { background: var(--bg-panel); color: var(--text-primary); box-shadow: var(--shadow-sm); }
.cn-tabs button:disabled[b-gpfy0x4js5] { opacity: .5; cursor: not-allowed; }
.cn-rep[b-gpfy0x4js5] {
    display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--border-soft);
    background: var(--bg-panel); text-align: left; cursor: pointer; font-family: var(--font-sans); color: var(--text-primary);
    transition: border-color 150ms, background 150ms;
}
.cn-rep:hover[b-gpfy0x4js5] { border-color: var(--brand-teal-primary); }
.cn-rep.on[b-gpfy0x4js5] { border-color: var(--brand-teal-deep); background: var(--bg-light-teal); }
.cn-sev[b-gpfy0x4js5] { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; flex: none; }
.cn-rep-b[b-gpfy0x4js5] { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.cn-rep-b b[b-gpfy0x4js5] { font-size: 13.5px; }
.cn-rep-b small[b-gpfy0x4js5] { font-size: 12px; color: var(--text-secondary); }
.cn-radio[b-gpfy0x4js5] { color: var(--brand-teal-deep); }
.cn-fld[b-gpfy0x4js5] { display: flex; flex-direction: column; gap: 4px; font-size: 12px; font-weight: 700; color: var(--text-secondary); position: relative; }
.cn-fld textarea[b-gpfy0x4js5], .cn-fld input[b-gpfy0x4js5], .cn-fld select[b-gpfy0x4js5] {
    font: 400 14px/1.4 var(--font-sans); color: var(--text-primary); padding: 9px 11px; border-radius: 10px;
    border: 1px solid var(--border-med); background: var(--bg-panel); resize: vertical; min-height: 40px;
}
.cn-fld textarea:focus[b-gpfy0x4js5], .cn-fld input:focus[b-gpfy0x4js5], .cn-fld select:focus[b-gpfy0x4js5] { outline: 2px solid var(--brand-teal-primary); border-color: transparent; }
.cn-count[b-gpfy0x4js5] { position: absolute; right: 10px; bottom: 8px; font-weight: 500; color: var(--text-muted); font-size: 11px; }
.cn-hint[b-gpfy0x4js5] { display: flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--text-secondary); }
.cn-hint .msr[b-gpfy0x4js5] { font-size: 17px; }
.cn-two[b-gpfy0x4js5] { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }

/* Paso 3 */
.cn-resp[b-gpfy0x4js5] { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 8px; }
.cn-r[b-gpfy0x4js5] {
    display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--border-soft);
    background: var(--bg-panel); text-align: left; cursor: pointer; font-family: var(--font-sans); color: var(--text-primary);
    transition: all 150ms var(--ease);
}
.cn-r span:last-child[b-gpfy0x4js5] { display: flex; flex-direction: column; min-width: 0; }
.cn-r b[b-gpfy0x4js5] { font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cn-r small[b-gpfy0x4js5] { font-size: 12px; color: var(--text-muted); }
.cn-r:hover[b-gpfy0x4js5] { border-color: var(--brand-teal-primary); transform: translateY(-1px); }
.cn-r.on[b-gpfy0x4js5] { border-color: var(--brand-teal-deep); background: var(--bg-light-teal); box-shadow: 0 0 0 2px rgba(44, 109, 111, .15); }
.cn-days[b-gpfy0x4js5] { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 2px; }
.cn-days button[b-gpfy0x4js5] {
    flex: none; display: flex; flex-direction: column; align-items: center; width: 54px; padding: 6px 0; border-radius: 12px;
    border: 1px solid var(--border-soft); background: var(--bg-panel); font: 600 11px/1.2 var(--font-sans); color: var(--text-muted); cursor: pointer;
}
.cn-days button b[b-gpfy0x4js5] { font-family: var(--font-serif); font-size: 18px; color: var(--text-primary); }
.cn-days button.on[b-gpfy0x4js5] { background: var(--bg-sidebar); border-color: var(--bg-sidebar); color: var(--text-sidebar); }
.cn-days button.on b[b-gpfy0x4js5] { color: #fff; }
.cn-slots[b-gpfy0x4js5] { display: grid; grid-template-columns: repeat(auto-fill, minmax(66px, 1fr)); gap: 6px; }
.cn-slot[b-gpfy0x4js5] {
    height: 36px; border-radius: 10px; border: 1px solid var(--border-soft); background: var(--bg-panel);
    font: 600 13px/1 var(--font-sans); cursor: pointer; color: var(--text-primary); transition: all 150ms var(--ease);
}
.cn-slot.libre:hover[b-gpfy0x4js5] { border-color: var(--brand-teal-primary); background: var(--bg-light-teal); transform: translateY(-1px); }
.cn-slot.on[b-gpfy0x4js5] { background: var(--brand-teal-deep); border-color: var(--brand-teal-deep); color: #fff; box-shadow: 0 6px 14px rgba(44, 109, 111, .3); }
.cn-slot.clase[b-gpfy0x4js5] { background: repeating-linear-gradient(135deg, var(--cit-clase-a) 0 3px, var(--cit-clase-b) 3px 7px); color: var(--text-muted); cursor: not-allowed; }
.cn-slot.citatorio[b-gpfy0x4js5] { background: var(--cit-conf-bg); color: var(--cit-conf-ink); cursor: not-allowed; }
.cn-slot.pasado[b-gpfy0x4js5] { color: var(--border-med); cursor: not-allowed; text-decoration: line-through; }
.cn-slot-legend[b-gpfy0x4js5] { display: flex; gap: 14px; flex-wrap: wrap; font-size: 12px; color: var(--text-secondary); }
.cn-slot-legend span[b-gpfy0x4js5] { display: inline-flex; align-items: center; gap: 6px; }
.cn-slot-legend i[b-gpfy0x4js5] { width: 12px; height: 12px; border-radius: 4px; border: 1px solid var(--border-med); }
.cn-slot-legend i.lg-clase[b-gpfy0x4js5] { background: repeating-linear-gradient(135deg, var(--cit-clase-a) 0 3px, var(--cit-clase-b) 3px 6px); border: none; }
.cn-slot-legend i.lg-cit[b-gpfy0x4js5] { background: var(--cit-conf-bg); border: none; }
.cn-sug[b-gpfy0x4js5] { display: flex; gap: 6px; flex-wrap: wrap; }
.cn-sug button[b-gpfy0x4js5] {
    height: 28px; padding: 0 10px; border-radius: 999px; border: 1px dashed var(--border-med); background: none;
    font: 500 12px/1 var(--font-sans); color: var(--text-secondary); cursor: pointer;
}
.cn-sug button.on[b-gpfy0x4js5] { border-style: solid; border-color: var(--brand-teal-deep); color: var(--brand-teal-deep); background: var(--bg-light-teal); }

/* Paso 4 */
.cn-tg[b-gpfy0x4js5] { display: flex; align-items: center; gap: 12px; padding: 8px 0; border-top: 1px solid var(--border-soft); cursor: pointer; }
.cn-tg:first-of-type[b-gpfy0x4js5] { border-top: none; }
.cn-tg.off[b-gpfy0x4js5] { opacity: .6; cursor: default; }
.cn-tg-ic[b-gpfy0x4js5] { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; flex: none; }
.cn-tg-b[b-gpfy0x4js5] { flex: 1; display: flex; flex-direction: column; }
.cn-tg-b b[b-gpfy0x4js5] { font-size: 13.5px; }
.cn-tg-b small[b-gpfy0x4js5] { font-size: 12px; color: var(--text-secondary); }
.cn-tg input[type=checkbox][b-gpfy0x4js5] {
    appearance: none; width: 42px; height: 24px; border-radius: 999px; background: var(--border-med); position: relative; cursor: pointer;
    transition: background 150ms var(--ease); flex: none;
}
.cn-tg input[type=checkbox][b-gpfy0x4js5]::after {
    content: ""; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff;
    box-shadow: var(--shadow-sm); transition: transform 150ms var(--ease);
}
.cn-tg input[type=checkbox]:checked[b-gpfy0x4js5] { background: var(--brand-teal-deep); }
.cn-tg input[type=checkbox]:checked[b-gpfy0x4js5]::after { transform: translateX(18px); }
.cn-tg input[type=checkbox]:disabled[b-gpfy0x4js5] { cursor: not-allowed; }
.cn-tg input[type=checkbox]:focus-visible[b-gpfy0x4js5] { outline: 2px solid var(--brand-teal-primary); outline-offset: 2px; }

.cn-err[b-gpfy0x4js5] { display: flex; align-items: center; gap: 8px; padding: 12px 14px; border-radius: 12px; background: var(--cit-no-bg); color: var(--cit-no-ink); font-weight: 600; font-size: 13.5px; }
.cn-send[b-gpfy0x4js5] {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 50px; border: none; border-radius: 14px;
    background: linear-gradient(135deg, var(--brand-teal-dark), var(--brand-teal-deep)); color: #fff; font: 700 15px/1 var(--font-sans);
    cursor: pointer; box-shadow: 0 10px 24px rgba(44, 109, 111, .32); transition: transform 150ms var(--ease), box-shadow 150ms;
}
.cn-send:hover:not(:disabled)[b-gpfy0x4js5] { transform: translateY(-2px); box-shadow: 0 14px 28px rgba(44, 109, 111, .38); }
.cn-send:disabled[b-gpfy0x4js5] { opacity: .45; cursor: not-allowed; box-shadow: none; }
.cn-rot[b-gpfy0x4js5] { animation: cn-rot-b-gpfy0x4js5 1s linear infinite; }
@keyframes cn-rot-b-gpfy0x4js5 { to { transform: rotate(360deg); } }

/* ── Vista previa ─────────────────────────────────────────────────────── */
.cn-preview[b-gpfy0x4js5] { position: sticky; top: 16px; display: flex; flex-direction: column; gap: 12px; }
.cn-preview h5[b-gpfy0x4js5] { display: flex; align-items: center; gap: 6px; margin: 0; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--text-muted); }
.cn-preview h5 .msr[b-gpfy0x4js5] { font-size: 16px; }
.cn-phone[b-gpfy0x4js5] { border-radius: 28px; overflow: hidden; border: 8px solid var(--bg-sidebar); background: var(--cit-wa-bg); box-shadow: var(--shadow-lg); }
.cn-wa-h[b-gpfy0x4js5] { display: flex; align-items: center; gap: 8px; padding: 10px 12px; background: var(--cit-wa-head); color: #fff; }
.cn-wa-h b[b-gpfy0x4js5] { display: block; font-size: 13px; }
.cn-wa-h small[b-gpfy0x4js5] { font-size: 11px; opacity: .8; }
.cn-wa-av[b-gpfy0x4js5] { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: #fff; color: var(--brand-teal-deep); font-family: var(--font-serif); font-style: italic; font-weight: 700; }
.cn-wa-b[b-gpfy0x4js5] { padding: 12px; display: flex; flex-direction: column; gap: 10px; min-height: 380px; }
.cn-daychip[b-gpfy0x4js5] { align-self: center; background: rgba(255, 255, 255, .85); color: var(--text-secondary); font-size: 11px; font-weight: 600; padding: 3px 10px; border-radius: 8px; text-align: center; }
.cn-daychip.soft[b-gpfy0x4js5] { align-self: stretch; }
.cn-daychip.warn[b-gpfy0x4js5] { background: var(--gold-bg); color: var(--gold-text); }
.cn-bub[b-gpfy0x4js5] {
    background: #fff; border-radius: 3px 12px 12px 12px; padding: 8px 10px; font-size: 12.5px; line-height: 1.45;
    box-shadow: 0 1px 1px rgba(0, 0, 0, .08); color: #111; animation: cn-bub-b-gpfy0x4js5 320ms var(--ease);
}
@keyframes cn-bub-b-gpfy0x4js5 { from { opacity: 0; transform: translateY(6px); } }
.cn-bub-hd[b-gpfy0x4js5] { font-weight: 700; margin-bottom: 4px; }
.cn-bub-ft[b-gpfy0x4js5] { color: var(--text-muted); font-size: 11px; }
.cn-push[b-gpfy0x4js5] { display: flex; gap: 10px; padding: 12px; border-radius: 16px; background: var(--bg-panel); border: 1px solid var(--border-soft); box-shadow: var(--shadow-md); }
.cn-push-ic[b-gpfy0x4js5] { width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; background: var(--brand-teal-deep); color: #fff; flex: none; }
.cn-push div[b-gpfy0x4js5] { display: flex; flex-direction: column; font-size: 12.5px; }
.cn-push small[b-gpfy0x4js5] { font-size: 10.5px; color: var(--text-muted); letter-spacing: .04em; }
.cn-entry[b-gpfy0x4js5] { font-size: 12.5px; color: var(--text-secondary); background: var(--bg-cream); border-radius: 12px; padding: 12px; }
.cn-entry b[b-gpfy0x4js5] { display: block; color: var(--text-primary); margin-bottom: 2px; }

@media (max-width: 1100px) {
    .cn-grid[b-gpfy0x4js5] { grid-template-columns: 1fr; }
    .cn-preview[b-gpfy0x4js5] { position: static; }
}
@media (max-width: 640px) {
    .cn-page[b-gpfy0x4js5] { padding: 14px 16px 40px; }
    .cn-two[b-gpfy0x4js5] { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
    .cn-bub[b-gpfy0x4js5], .cn-rot[b-gpfy0x4js5] { animation: none; }
}
/* /Pages/ControlEscolar/Citatorios.razor.rz.scp.css */
/* Citatorios · agenda. Colores via tokens (tokens.css + citatorios.css). Sin hex de marca. */

.cit-page[b-m1aqvjkmqh] { padding: 20px 24px 48px; max-width: 1320px; font-family: var(--font-sans); color: var(--text-primary); }

/* ── Breadcrumb ───────────────────────────────────────────────────────── */
.cit-bc[b-m1aqvjkmqh] { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--text-muted); margin-bottom: 14px; }
.cit-bc .msr[b-m1aqvjkmqh] { font-size: 16px; }
.cit-bc a[b-m1aqvjkmqh] { color: var(--text-secondary); text-decoration: none; }
.cit-bc a:hover[b-m1aqvjkmqh] { text-decoration: underline; }
.cit-sep[b-m1aqvjkmqh] { color: var(--border-med); }
.cit-cur[b-m1aqvjkmqh] { color: var(--text-primary); font-weight: 600; }

/* ── Encabezado ───────────────────────────────────────────────────────── */
.cit-h[b-m1aqvjkmqh] { display: flex; align-items: center; gap: 16px; margin-bottom: 20px; flex-wrap: wrap; }
.cit-h-icon[b-m1aqvjkmqh] {
    width: 50px; height: 50px; border-radius: 15px; display: grid; place-items: center; flex: none;
    background: linear-gradient(135deg, var(--brand-teal-primary), var(--brand-teal-deep));
    box-shadow: 0 8px 20px rgba(44, 109, 111, .28);
}
.cit-h-icon .msr[b-m1aqvjkmqh] { font-size: 27px; color: #fff; }
.cit-h-block[b-m1aqvjkmqh] { flex: 1; min-width: 200px; }
.cit-h-block h1[b-m1aqvjkmqh] { font-family: var(--font-serif); font-size: 28px; font-weight: 600; margin: 0; letter-spacing: -.01em; }
.cit-h-block p[b-m1aqvjkmqh] { margin: 2px 0 0; font-size: 13.5px; color: var(--text-secondary); }
.cit-h-nav[b-m1aqvjkmqh] { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }

/* ── Botones propios del modulo ───────────────────────────────────────── */
.cit-btn[b-m1aqvjkmqh] {
    display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    height: 38px; padding: 0 14px; border-radius: 10px; border: 1px solid transparent;
    font: 600 13.5px/1 var(--font-sans); cursor: pointer; text-decoration: none; white-space: nowrap;
    transition: transform 150ms var(--ease), box-shadow 150ms var(--ease), background 150ms var(--ease);
}
.cit-btn .msr[b-m1aqvjkmqh] { font-size: 19px; }
.cit-btn.icon[b-m1aqvjkmqh] { width: 38px; padding: 0; }
.cit-btn.ghost[b-m1aqvjkmqh] { background: var(--bg-panel); border-color: var(--border-soft); color: var(--text-primary); }
.cit-btn.ghost:hover[b-m1aqvjkmqh] { background: var(--bg-light-teal); border-color: var(--brand-teal-primary); }
.cit-btn.primary[b-m1aqvjkmqh] {
    background: linear-gradient(135deg, var(--brand-teal-dark), var(--brand-teal-deep)); color: #fff;
    box-shadow: 0 6px 16px rgba(44, 109, 111, .30); margin-left: 6px;
}
.cit-btn.primary:hover[b-m1aqvjkmqh] { transform: translateY(-1px); box-shadow: 0 10px 22px rgba(44, 109, 111, .36); }
.cit-btn.light[b-m1aqvjkmqh] { background: #fff; color: var(--brand-teal-deep); }
.cit-btn.light:hover[b-m1aqvjkmqh] { transform: translateY(-1px); }
.cit-btn.glass[b-m1aqvjkmqh] { background: rgba(255, 255, 255, .12); color: #fff; border-color: rgba(255, 255, 255, .22); }
.cit-btn.glass:hover[b-m1aqvjkmqh] { background: rgba(255, 255, 255, .2); }

/* ── Carga y error ────────────────────────────────────────────────────── */
.cit-skel-row[b-m1aqvjkmqh] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 16px; }
.cit-skel-row i[b-m1aqvjkmqh], .cit-skel-grid[b-m1aqvjkmqh] {
    display: block; height: 76px; border-radius: var(--radius-xl);
    background: linear-gradient(90deg, var(--bg-cream) 0%, var(--bg-panel) 50%, var(--bg-cream) 100%);
    background-size: 200% 100%; animation: cit-shimmer-b-m1aqvjkmqh 1.3s linear infinite;
}
.cit-skel-grid[b-m1aqvjkmqh] { height: 460px; }
@keyframes cit-shimmer-b-m1aqvjkmqh { to { background-position: -200% 0; } }

.cit-error[b-m1aqvjkmqh] {
    display: flex; align-items: center; gap: 14px; padding: 18px 20px; border-radius: var(--radius-xl);
    background: var(--error-bg); color: var(--cit-no-ink);
}
.cit-error > .msr[b-m1aqvjkmqh] { font-size: 28px; }
.cit-error div[b-m1aqvjkmqh] { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.cit-error small[b-m1aqvjkmqh] { color: var(--text-secondary); }

/* ── KPIs ─────────────────────────────────────────────────────────────── */
.cit-kpis[b-m1aqvjkmqh] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
.cit-kpi[b-m1aqvjkmqh] {
    display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-radius: var(--radius-xl);
    background: var(--bg-panel); border: 1px solid var(--border-soft); box-shadow: var(--shadow-sm);
    transition: transform 220ms var(--ease), box-shadow 220ms var(--ease);
}
.cit-kpi:hover[b-m1aqvjkmqh] { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.cit-kpi-dot[b-m1aqvjkmqh] { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; flex: none; }
.cit-kpi-dot .msr[b-m1aqvjkmqh] { font-size: 21px; }
.cit-kpi b[b-m1aqvjkmqh] { display: block; font-family: var(--font-serif); font-size: 26px; font-weight: 600; line-height: 1; }
.cit-kpi small[b-m1aqvjkmqh] { font-size: 12.5px; color: var(--text-secondary); }

/* ── Filtros por responsable ──────────────────────────────────────────── */
.cit-filters[b-m1aqvjkmqh] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 16px; }
.cit-filters-lbl[b-m1aqvjkmqh] { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); margin-right: 4px; }
.cit-pchip[b-m1aqvjkmqh] {
    display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 14px 0 6px;
    border-radius: 999px; border: 1px solid var(--border-soft); background: var(--bg-panel);
    font: 600 13px/1 var(--font-sans); color: var(--text-primary); cursor: pointer;
    transition: all 150ms var(--ease);
}
.cit-pchip.all[b-m1aqvjkmqh] { padding-left: 12px; }
.cit-pchip.all .msr[b-m1aqvjkmqh] { font-size: 19px; color: var(--brand-teal-deep); }
.cit-pchip small[b-m1aqvjkmqh] { font-weight: 500; color: var(--text-muted); }
.cit-pchip:hover[b-m1aqvjkmqh] { border-color: var(--brand-teal-primary); }
.cit-pchip[aria-pressed="true"][b-m1aqvjkmqh] { background: var(--bg-sidebar); border-color: var(--bg-sidebar); color: #fff; box-shadow: var(--shadow-md); }
.cit-pchip[aria-pressed="true"] small[b-m1aqvjkmqh] { color: var(--text-sidebar-muted); }
.cit-pchip[aria-pressed="true"].all .msr[b-m1aqvjkmqh] { color: var(--brand-teal-primary); }
.cit-pchip .cit-av[b-m1aqvjkmqh] { width: 28px; height: 28px; font-size: 10.5px; }

/* ── Layout principal ─────────────────────────────────────────────────── */
.cit-layout[b-m1aqvjkmqh] { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 16px; align-items: start; transition: opacity 220ms; }
.cit-layout.is-loading[b-m1aqvjkmqh] { opacity: .55; pointer-events: none; }

.cit-week[b-m1aqvjkmqh] {
    background: var(--bg-panel); border: 1px solid var(--border-soft); border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm); overflow: hidden;
}
.cit-week-head[b-m1aqvjkmqh], .cit-week-body[b-m1aqvjkmqh] { display: grid; grid-template-columns: 54px repeat(var(--cit-dias, 5), minmax(0, 1fr)); }
.cit-week-head[b-m1aqvjkmqh] { background: var(--bg-cream); border-bottom: 1px solid var(--border-soft); }
.cit-dh[b-m1aqvjkmqh] {
    padding: 10px 12px; border-left: 1px solid var(--border-soft); font-size: 11px; font-weight: 700;
    letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); display: flex; align-items: baseline; gap: 6px;
}
.cit-dh b[b-m1aqvjkmqh] { font-family: var(--font-serif); font-size: 20px; font-weight: 600; color: var(--text-primary); letter-spacing: 0; }
.cit-dh.today[b-m1aqvjkmqh] { color: var(--brand-teal-deep); }
.cit-dh.today b[b-m1aqvjkmqh] {
    color: #fff; background: var(--brand-teal-deep); border-radius: 50%;
    width: 32px; height: 32px; display: inline-grid; place-items: center; font-size: 16px;
}

.cit-week-body[b-m1aqvjkmqh] { position: relative; height: calc(var(--cit-horas) * 80px); }
.cit-hours[b-m1aqvjkmqh] { display: flex; flex-direction: column; }
.cit-hour[b-m1aqvjkmqh] {
    height: 80px; flex: none; font-size: 11px; color: var(--text-muted); text-align: right; padding: 3px 8px 0 0;
    font-variant-numeric: tabular-nums;
}
.cit-col[b-m1aqvjkmqh] {
    position: relative; border-left: 1px solid var(--border-soft);
    background-image: repeating-linear-gradient(to bottom, transparent 0 79px, var(--border-soft) 79px 80px);
}
.cit-col.today[b-m1aqvjkmqh] { background-color: rgba(110, 198, 200, .06); }

.cit-clase[b-m1aqvjkmqh] {
    position: absolute; left: 0; right: 0; border-radius: 4px; overflow: hidden;
    background: repeating-linear-gradient(135deg, var(--cit-clase-a) 0 4px, var(--cit-clase-b) 4px 9px);
    font-size: 10.5px; color: var(--text-secondary); padding: 3px 6px;
}
.cit-clase span[b-m1aqvjkmqh] { background: rgba(255, 255, 255, .8); border-radius: 4px; padding: 1px 5px; font-weight: 600; }

.cit-ev[b-m1aqvjkmqh] {
    position: absolute; z-index: 2; border: none; border-left: 4px solid currentColor; border-radius: 8px;
    padding: 5px 8px 5px 8px; text-align: left; cursor: pointer; overflow: hidden;
    display: flex; flex-direction: column; gap: 1px; font-family: var(--font-sans);
    box-shadow: 0 1px 2px rgba(26, 28, 31, .08);
    transition: transform 150ms var(--ease), box-shadow 150ms var(--ease);
    animation: cit-pop-b-m1aqvjkmqh 320ms var(--ease) both;
}
.cit-ev:hover[b-m1aqvjkmqh], .cit-ev.on[b-m1aqvjkmqh] { transform: translateY(-1px) scale(1.01); box-shadow: var(--shadow-md); z-index: 3; }
.cit-ev.on[b-m1aqvjkmqh] { outline: 2px solid currentColor; outline-offset: 1px; }
.cit-ev-t[b-m1aqvjkmqh] { font-size: 10.5px; font-weight: 700; opacity: .85; }
.cit-ev-n[b-m1aqvjkmqh] { font-size: 12.5px; font-weight: 700; color: var(--text-primary); line-height: 1.2; padding-right: 22px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cit-ev-m[b-m1aqvjkmqh] { font-size: 11px; color: var(--text-secondary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cit-ev-av[b-m1aqvjkmqh] { position: absolute; top: 5px; right: 5px; width: 20px; height: 20px; font-size: 8.5px; }
.cit-ev.short .cit-ev-m[b-m1aqvjkmqh], .cit-ev.compact .cit-ev-m[b-m1aqvjkmqh] { display: none; }
.cit-ev.short[b-m1aqvjkmqh] { flex-direction: row; align-items: center; gap: 6px; padding-top: 2px; padding-bottom: 2px; }
.cit-ev.cit-st-can[b-m1aqvjkmqh] { opacity: .6; text-decoration: line-through; }
@keyframes cit-pop-b-m1aqvjkmqh { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }

.cit-now[b-m1aqvjkmqh] { position: absolute; left: -4px; right: 0; height: 2px; background: var(--danger); z-index: 4; pointer-events: none; }
.cit-now[b-m1aqvjkmqh]::before {
    content: ""; position: absolute; left: 0; top: -4px; width: 10px; height: 10px; border-radius: 50%;
    background: var(--danger); box-shadow: 0 0 0 4px rgba(163, 45, 45, .18); animation: cit-pulse-b-m1aqvjkmqh 2s ease-in-out infinite;
}
@keyframes cit-pulse-b-m1aqvjkmqh { 50% { box-shadow: 0 0 0 7px rgba(163, 45, 45, .05); } }

.cit-legend[b-m1aqvjkmqh] { display: flex; flex-wrap: wrap; gap: 14px; padding: 10px 14px; border-top: 1px solid var(--border-soft); font-size: 12px; color: var(--text-secondary); }
.cit-legend span[b-m1aqvjkmqh] { display: inline-flex; align-items: center; gap: 6px; }
.cit-legend i[b-m1aqvjkmqh] { width: 12px; height: 12px; border-radius: 4px; border-left: 3px solid currentColor; }
.cit-legend i.lg-clase[b-m1aqvjkmqh] { background: repeating-linear-gradient(135deg, var(--cit-clase-a) 0 3px, var(--cit-clase-b) 3px 6px); border: none; }

.cit-empty-week[b-m1aqvjkmqh] { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-top: 1px solid var(--border-soft); background: var(--bg-cream); }
.cit-empty-week > .msr[b-m1aqvjkmqh] { font-size: 26px; color: var(--brand-teal-deep); }
.cit-empty-week div[b-m1aqvjkmqh] { display: flex; flex-direction: column; }
.cit-empty-week small[b-m1aqvjkmqh] { color: var(--text-secondary); }

/* Lista (movil) */
.cit-list[b-m1aqvjkmqh] { display: none; }
.cit-list-day[b-m1aqvjkmqh] { border-bottom: 1px solid var(--border-soft); padding: 10px 12px; }
.cit-list-dh[b-m1aqvjkmqh] { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 6px; }
.cit-list-day.today .cit-list-dh[b-m1aqvjkmqh] { color: var(--brand-teal-deep); }
.cit-list-empty[b-m1aqvjkmqh] { font-size: 12.5px; color: var(--text-muted); }
.cit-list-it[b-m1aqvjkmqh] {
    width: 100%; display: flex; align-items: center; gap: 10px; padding: 10px; border-radius: 12px;
    border: 1px solid var(--border-soft); background: var(--bg-panel); text-align: left; margin-bottom: 6px; cursor: pointer;
    font-family: var(--font-sans);
}
.cit-list-h[b-m1aqvjkmqh] { font-weight: 700; font-size: 13px; min-width: 42px; }
.cit-list-b[b-m1aqvjkmqh] { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.cit-list-b small[b-m1aqvjkmqh] { color: var(--text-secondary); font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ── Columna lateral ──────────────────────────────────────────────────── */
.cit-aside[b-m1aqvjkmqh] { display: flex; flex-direction: column; gap: 14px; }
.cit-next[b-m1aqvjkmqh] {
    position: relative; overflow: hidden; border-radius: var(--radius-xl); padding: 18px; color: #fff;
    background: radial-gradient(120% 120% at 100% 0%, rgba(110, 198, 200, .45) 0%, transparent 55%),
                linear-gradient(160deg, var(--bg-sidebar) 0%, var(--brand-teal-deep) 100%);
    box-shadow: var(--shadow-lg);
}
.cit-next-tag[b-m1aqvjkmqh] { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--brand-teal-primary); }
.cit-next-cd[b-m1aqvjkmqh] { font-family: var(--font-serif); font-size: 44px; font-weight: 600; line-height: 1; margin: 8px 0 6px; }
.cit-next-cd small[b-m1aqvjkmqh] { font-size: 16px; font-family: var(--font-sans); opacity: .8; }
.cit-next h4[b-m1aqvjkmqh] { margin: 0; font-size: 16px; font-weight: 700; color: #fff; font-family: var(--font-sans); }
.cit-next p[b-m1aqvjkmqh] { margin: 3px 0 10px; font-size: 12.5px; color: var(--text-sidebar); }
.cit-next-chk[b-m1aqvjkmqh] { display: flex; align-items: center; gap: 6px; font-size: 12.5px; background: rgba(255, 255, 255, .1); border-radius: 10px; padding: 7px 10px; margin-bottom: 12px; }
.cit-next-chk .msr[b-m1aqvjkmqh] { font-size: 18px; color: var(--brand-teal-primary); }
.cit-next-row[b-m1aqvjkmqh] { display: flex; gap: 8px; }
.cit-next-row .cit-btn[b-m1aqvjkmqh] { flex: 1; height: 36px; }

.cit-side[b-m1aqvjkmqh] { background: var(--bg-panel); border: 1px solid var(--border-soft); border-radius: var(--radius-xl); padding: 14px; box-shadow: var(--shadow-sm); }
.cit-side h5[b-m1aqvjkmqh] { margin: 0 0 8px; font-size: 13px; font-weight: 700; }
.cit-side-ok[b-m1aqvjkmqh] { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--success-ink); }
.cit-side-it[b-m1aqvjkmqh] {
    width: 100%; display: flex; align-items: center; gap: 10px; padding: 9px 6px; border: none; background: none;
    border-top: 1px solid var(--border-soft); text-align: left; cursor: pointer; font-family: var(--font-sans); border-radius: 8px;
}
.cit-side-it:first-of-type[b-m1aqvjkmqh] { border-top: none; }
.cit-side-it:hover[b-m1aqvjkmqh] { background: var(--bg-cream); }
.cit-side-b[b-m1aqvjkmqh] { flex: 1; min-width: 0; display: flex; flex-direction: column; font-size: 13px; }
.cit-side-b small[b-m1aqvjkmqh] { font-size: 12px; color: var(--text-secondary); }

/* ── Responsive ───────────────────────────────────────────────────────── */
@media (max-width: 1180px) {
    .cit-layout[b-m1aqvjkmqh] { grid-template-columns: 1fr; }
    .cit-aside[b-m1aqvjkmqh] { display: grid; grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
    .cit-page[b-m1aqvjkmqh] { padding: 14px 16px 40px; }
    .cit-kpis[b-m1aqvjkmqh] { grid-template-columns: 1fr 1fr; }
    .cit-week-head[b-m1aqvjkmqh], .cit-week-body[b-m1aqvjkmqh] { display: none; }
    .cit-list[b-m1aqvjkmqh] { display: block; }
    .cit-aside[b-m1aqvjkmqh] { grid-template-columns: 1fr; order: -1; }
    .cit-layout[b-m1aqvjkmqh] { display: flex; flex-direction: column; }
    .cit-h-nav[b-m1aqvjkmqh] { width: 100%; }
    .cit-h-nav .cit-btn.primary[b-m1aqvjkmqh] { margin-left: auto; }
    .cit-filters[b-m1aqvjkmqh] { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; }
    .cit-pchip[b-m1aqvjkmqh] { flex: none; }
}
@media (prefers-reduced-motion: reduce) {
    .cit-ev[b-m1aqvjkmqh], .cit-now[b-m1aqvjkmqh]::before, .cit-skel-row i[b-m1aqvjkmqh], .cit-skel-grid[b-m1aqvjkmqh] { animation: none; }
}

.cit-otro[b-m1aqvjkmqh] {
    display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 6px 0 12px; border-radius: 999px;
    border: 1px dashed var(--border-med); background: var(--bg-panel); color: var(--text-secondary);
}
.cit-otro .msr[b-m1aqvjkmqh] { font-size: 19px; }
.cit-otro select[b-m1aqvjkmqh] { border: none; background: transparent; font: 600 13px/1 var(--font-sans); color: var(--text-primary); height: 36px; cursor: pointer; }

/* Sin esto, el texto largo de una cita (nowrap) ensancha la columna y la pagina se desborda en movil. */
.cit-layout > *[b-m1aqvjkmqh] { min-width: 0; }
.cit-page[b-m1aqvjkmqh] { overflow-x: clip; }
/* /Pages/ControlEscolar/ClasesAsignadas.razor.rz.scp.css */
/* ============================================================
   ClasesAsignadas — estilos aislados (Blazor CSS isolation).
   Clases asignadas con panel lateral (2026-10-02): migrada a tokens
   (wwwroot/css/tokens.css) y a Components/UI; los tintes se derivan con
   color-mix sobre tokens. Mockup: docs/clases-asignadas-panel/.
   Unica excepcion heredada: el degradado del icono de cabecera
   (registrado en el baseline T-153 del guard de paleta).
   ============================================================ */

/* ── Chrome de pagina ── */
.cei-container[b-muf37hgwmk] { padding: 22px 28px 64px; max-width: 1240px; margin: 0 auto; }

.ca-sr[b-muf37hgwmk] {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.ca-bc[b-muf37hgwmk] { display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--text-secondary); margin-bottom: 16px; flex-wrap: wrap; }
.ca-bc .msr[b-muf37hgwmk] { font-size: 17px; }
.ca-bc a[b-muf37hgwmk] { color: var(--brand-teal-deep); font-weight: 600; text-decoration: none; }
.ca-bc a:hover[b-muf37hgwmk] { text-decoration: underline; text-underline-offset: 2px; }
.ca-bc-cur[b-muf37hgwmk] { color: var(--text-primary); font-weight: 600; }

.ca-hd[b-muf37hgwmk] { display: flex; align-items: center; gap: 16px; margin-bottom: 18px; flex-wrap: wrap; }

.cei-h-icon[b-muf37hgwmk] {
    width: 48px; height: 48px; border-radius: 13px; flex-shrink: 0;
    background: linear-gradient(135deg, #2C6D6F, #1E4E50); color: #FFF;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 4px 12px color-mix(in srgb, var(--brand-teal-deep) 28%, transparent);
}

.cei-h-icon .msr[b-muf37hgwmk] { font-size: 26px; }
.ca-hd-txt[b-muf37hgwmk] { flex: 1; min-width: 240px; }
.ca-hd h1[b-muf37hgwmk] { font-family: var(--font-serif); font-weight: 600; font-size: 26px; letter-spacing: -.4px; line-height: 1.15; margin: 0 0 4px; }
.ca-hd p[b-muf37hgwmk] { margin: 0; color: var(--text-secondary); font-size: 13px; }

.ca-pill[b-muf37hgwmk] {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 6px 12px; border-radius: 99px;
    font-size: 12.5px; font-weight: 600;
    background: var(--bg-panel); border: 1px solid var(--border-soft); color: var(--text-secondary);
}

.ca-pill .msr[b-muf37hgwmk] { font-size: 17px; }
.ca-pill.teal[b-muf37hgwmk] { background: var(--bg-light-teal); border-color: color-mix(in srgb, var(--brand-teal-deep) 18%, transparent); color: var(--brand-teal-deep); }

.ca-escuela-sel[b-muf37hgwmk] { display: inline-flex; align-items: center; gap: 8px; }
.ca-escuela-label[b-muf37hgwmk] { display: inline-flex; align-items: center; gap: 5px; font-size: 12.5px; font-weight: 600; color: var(--text-secondary); }
.ca-escuela-label .msr[b-muf37hgwmk] { font-size: 17px; }

.ca-escuela-select[b-muf37hgwmk] {
    min-height: 36px; padding: 6px 10px; border-radius: var(--radius-md);
    border: 1px solid var(--border-med); background: var(--bg-panel);
    font: inherit; font-size: 13px; color: var(--text-primary); max-width: 280px;
}

.ca-escuela-select:focus[b-muf37hgwmk] { outline: none; border-color: var(--brand-teal-deep); box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand-teal) 25%, transparent); }

/* ── Estados de pantalla (EmptyState de la casa) ── */
.ca-contenido[b-muf37hgwmk]  .ca-estado {
    max-width: none;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    padding: 56px 24px;
}

.ca-contenido[b-muf37hgwmk]  .ca-estado-lock .ui-empty-icon {
    background: color-mix(in srgb, var(--warning) 12%, transparent);
    color: var(--warning-ink);
}

/* ── Esqueleto de carga (misma silueta que el contenido) ── */
.ca-sk-flex[b-muf37hgwmk] { flex: 1; }
.ca-sk-220[b-muf37hgwmk] { width: 220px; }
.ca-sk-150[b-muf37hgwmk] { width: 150px; }
.ca-sk-seg[b-muf37hgwmk] { width: 300px; max-width: 100%; border-radius: var(--radius-lg); margin-bottom: 16px; }
.ca-sk-40[b-muf37hgwmk] { width: 40px; flex: none; }
.ca-sk-mt[b-muf37hgwmk] { margin-top: 6px; }
.ca-sk-filas[b-muf37hgwmk] { padding: 12px 16px; display: grid; gap: 10px; }

/* ── Toolbar ── */
.ca-tb[b-muf37hgwmk] {
    display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
    padding: 12px 14px; margin-bottom: 14px;
    background: var(--bg-panel); border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg); box-shadow: var(--shadow-sm);
}

.ca-srch[b-muf37hgwmk] { position: relative; flex: 1; min-width: 220px; }
.ca-srch .msr[b-muf37hgwmk] { position: absolute; left: 11px; top: 50%; transform: translateY(-50%); font-size: 19px; color: var(--text-secondary); pointer-events: none; }

.ca-search-input[b-muf37hgwmk] {
    width: 100%; min-height: 40px;
    border: 1px solid var(--border-soft); background: var(--bg-cream);
    border-radius: var(--radius-md); padding: 8px 12px 8px 38px;
    font: inherit; font-size: 13.5px; color: var(--text-primary);
}

.ca-search-input[b-muf37hgwmk]::placeholder { color: var(--text-muted); }

.ca-search-input:focus[b-muf37hgwmk] {
    outline: none; border-color: var(--brand-teal-deep); background: var(--bg-panel);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand-teal) 25%, transparent);
}

.ca-ciclos[b-muf37hgwmk], .ca-estado-chips[b-muf37hgwmk] { display: flex; gap: 6px; flex-wrap: wrap; }

.ca-chip[b-muf37hgwmk] {
    display: inline-flex; align-items: center; gap: 5px; min-height: 34px;
    padding: 6px 13px; border-radius: 99px;
    border: 1px solid var(--border-med); background: var(--bg-panel);
    font-size: 12.5px; font-weight: 600; color: var(--text-secondary); cursor: pointer;
    white-space: nowrap;
}

.ca-chip .msr[b-muf37hgwmk] { font-size: 16px; }
.ca-chip:hover[b-muf37hgwmk] { border-color: var(--brand-teal-deep); color: var(--brand-teal-deep); }
.ca-chip[aria-pressed="true"][b-muf37hgwmk] { background: var(--brand-teal-deep); border-color: var(--brand-teal-deep); color: var(--bg-panel); }

.ca-tb-sep[b-muf37hgwmk] { width: 1px; height: 26px; background: var(--border-soft); }

.ca-toggle[b-muf37hgwmk] { display: inline-flex; align-items: center; gap: 8px; font-size: 12.5px; font-weight: 600; color: var(--text-secondary); cursor: pointer; position: relative; }
.ca-toggle input[b-muf37hgwmk] { position: absolute; opacity: 0; width: 34px; height: 20px; margin: 0; cursor: pointer; }

.ca-toggle-pill[b-muf37hgwmk] {
    width: 34px; height: 20px; border-radius: 99px; background: var(--border-med);
    position: relative; flex: none; transition: background .15s ease;
}

.ca-toggle-pill[b-muf37hgwmk]::after {
    content: ""; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px;
    border-radius: 50%; background: var(--bg-panel); box-shadow: var(--shadow-sm);
    transition: transform .15s var(--ease);
}

.ca-toggle input:checked ~ .ca-toggle-pill[b-muf37hgwmk] { background: var(--brand-teal-deep); }
.ca-toggle input:checked ~ .ca-toggle-pill[b-muf37hgwmk]::after { transform: translateX(14px); }
.ca-toggle input:focus-visible ~ .ca-toggle-pill[b-muf37hgwmk] { outline: 2px solid var(--brand-teal); outline-offset: 2px; }

/* ── Segmented (modo de vista) ── */
.ca-seg[b-muf37hgwmk] { display: inline-flex; background: var(--cream-deep); border-radius: var(--radius-lg); padding: 4px; margin-bottom: 16px; }

.ca-seg button[b-muf37hgwmk] {
    border: 0; background: transparent; border-radius: var(--radius-md); min-height: 36px;
    padding: 7px 14px; display: inline-flex; align-items: center; gap: 7px;
    font-weight: 700; font-size: 13px; color: var(--text-secondary); cursor: pointer;
}

.ca-seg button:hover[b-muf37hgwmk] { color: var(--text-primary); }
.ca-seg button[aria-selected="true"][b-muf37hgwmk] { background: var(--bg-panel); color: var(--brand-teal-deep); box-shadow: var(--shadow-sm); }
.ca-seg-n[b-muf37hgwmk] { font-size: 11px; min-width: 22px; padding: 1px 6px; border-radius: 99px; background: color-mix(in srgb, var(--brand-teal-deep) 10%, transparent); color: var(--brand-teal-deep); text-align: center; }

/* ── Escuela sin clases ── */
.ca-intro[b-muf37hgwmk] {
    display: flex; gap: 12px; align-items: flex-start;
    padding: 14px 16px; margin-bottom: 16px; border-radius: var(--radius-lg);
    background: var(--bg-light-teal); border: 1px solid color-mix(in srgb, var(--brand-teal-deep) 18%, transparent);
    color: var(--text-primary); font-size: 13px;
}

.ca-intro .msr[b-muf37hgwmk] { color: var(--brand-teal-deep); font-size: 22px; }
.ca-intro b[b-muf37hgwmk] { display: block; font-family: var(--font-serif); font-weight: 600; font-size: 16px; margin-bottom: 2px; }

/* ── Grid y tarjetas ── */
.ca-grid[b-muf37hgwmk] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }

.ca-card[b-muf37hgwmk] {
    position: relative; background: var(--bg-panel);
    border: 1px solid var(--border-soft); border-radius: 14px; box-shadow: var(--shadow-sm);
    transition: box-shadow .15s ease, border-color .15s ease;
    outline: none;
}

.ca-card:hover[b-muf37hgwmk] { box-shadow: var(--shadow-md); }
.ca-card:focus-visible[b-muf37hgwmk] { outline: 2px solid var(--brand-teal); outline-offset: 2px; }

.ca-card.is-origen[b-muf37hgwmk] {
    z-index: 950;
    border-color: var(--brand-teal-deep);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand-teal-deep) 22%, transparent), var(--shadow-lg);
}

.ca-origen-tag[b-muf37hgwmk] {
    position: absolute; top: -11px; right: 14px;
    display: inline-flex; align-items: center; gap: 4px;
    background: var(--brand-teal-deep); color: var(--bg-panel);
    font-size: 10.5px; font-weight: 800; letter-spacing: .4px; text-transform: uppercase;
    padding: 3px 9px; border-radius: 99px;
}

.ca-origen-tag .msr[b-muf37hgwmk] { font-size: 14px; }

.ca-card.ca-flash[b-muf37hgwmk] { animation: ca-flash-card-b-muf37hgwmk 2.6s var(--ease); }

@keyframes ca-flash-card-b-muf37hgwmk {
    0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--success) 55%, transparent), var(--shadow-md); }
    35% { box-shadow: 0 0 0 6px color-mix(in srgb, var(--success) 18%, transparent), var(--shadow-md); }
    100% { box-shadow: var(--shadow-sm); }
}

.ca-card-h[b-muf37hgwmk] { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-bottom: 1px solid var(--border-soft); }
.ca-card-h-txt[b-muf37hgwmk] { flex: 1; min-width: 0; }
.ca-card-nombre[b-muf37hgwmk] { font-family: var(--font-serif); font-weight: 600; font-size: 17px; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ca-card-meta[b-muf37hgwmk] { font-size: 12px; color: var(--text-secondary); display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-top: 2px; }
.ca-dot-sep[b-muf37hgwmk] { width: 3px; height: 3px; border-radius: 50%; background: var(--border-med); }

/* Contador de la tarjeta: <Chip> de la casa en minusculas (como el mockup) */
.ca-card-h[b-muf37hgwmk]  .ca-cnt { text-transform: none; letter-spacing: 0; font-size: 11.5px; padding: 3px 9px; white-space: nowrap; }

.ca-gb[b-muf37hgwmk] {
    width: 44px; height: 40px; border-radius: 11px; display: grid; place-items: center; flex: none;
    font-family: var(--font-serif); font-weight: 600; font-size: 15px;
    color: var(--brand-teal-deep); background: var(--bg-light-teal);
    border: 1px solid color-mix(in srgb, var(--brand-teal-deep) 15%, transparent);
    overflow: hidden;
}

.ca-gb.v[b-muf37hgwmk] { color: var(--ev-cte); background: var(--ev-cte-bg); border-color: color-mix(in srgb, var(--ev-cte) 18%, transparent); }

.ca-card-empty[b-muf37hgwmk] { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; padding: 16px; color: var(--text-secondary); font-size: 13px; }
.ca-card-empty .msr[b-muf37hgwmk] { color: var(--text-secondary); }
.ca-card-empty[b-muf37hgwmk]  .ca-primera { margin-left: auto; }

/* ── Filas de clase ── */
.ca-rows[b-muf37hgwmk] { list-style: none; margin: 0; padding: 4px 0; }

.ca-row[b-muf37hgwmk] { display: flex; align-items: center; gap: 10px; padding: 9px 12px 9px 16px; min-height: 52px; transition: background .15s ease; }
.ca-row:hover[b-muf37hgwmk] { background: var(--bg-cream); }
.ca-row-main[b-muf37hgwmk] { flex: 1; min-width: 0; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
/* Fila desactivada: atenuada con tinta secundaria, no con opacidad (la opacidad del mockup bajaba
   el contraste del texto por debajo de AA). */
.ca-row--inactiva .ca-materia[b-muf37hgwmk] { color: var(--text-secondary); }
.ca-row--inactiva .ca-mdot[b-muf37hgwmk] { opacity: .45; }
.ca-row--inactiva .ca-gchip[b-muf37hgwmk] { background: var(--bg-cream); color: var(--text-secondary); border-color: var(--border-soft); }
.ca-row--hueco[b-muf37hgwmk] { background: color-mix(in srgb, var(--warning) 5%, transparent); }
.ca-row.ca-flash[b-muf37hgwmk] { animation: ca-flash-fila-b-muf37hgwmk 3s var(--ease); }

@keyframes ca-flash-fila-b-muf37hgwmk {
    0%, 40% { background: color-mix(in srgb, var(--success) 14%, transparent); }
    100% { background: transparent; }
}

.ca-mat[b-muf37hgwmk] { font-weight: 700; font-size: 13.5px; display: inline-flex; align-items: center; gap: 7px; }
.ca-mdot[b-muf37hgwmk] { width: 8px; height: 8px; border-radius: 50%; flex: none; display: inline-block; }

.ca-gchip[b-muf37hgwmk] {
    font-size: 11.5px; font-weight: 700; padding: 2px 8px; border-radius: 7px;
    background: var(--bg-light-teal); color: var(--brand-teal-deep);
    border: 1px solid color-mix(in srgb, var(--brand-teal-deep) 14%, transparent);
}

.ca-gchip.v[b-muf37hgwmk] { background: var(--ev-cte-bg); color: var(--ev-cte); border-color: color-mix(in srgb, var(--ev-cte) 16%, transparent); }
.ca-tag[b-muf37hgwmk] { font-size: 11px; font-weight: 600; color: var(--text-secondary); }
.ca-dmini[b-muf37hgwmk] { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--text-secondary); font-weight: 600; }

.ca-acts[b-muf37hgwmk] { display: flex; align-items: center; gap: 2px; flex: none; }

/* Botones de fila: <Button Variant="Icon"> de la casa, transparentes como el mockup (.ib) */
.ca-acts[b-muf37hgwmk]  .ui-btn.icon.ca-ib {
    width: 32px; height: 32px;
    border-color: transparent; background: transparent; color: var(--text-secondary);
}

.ca-acts[b-muf37hgwmk]  .ui-btn.icon.ca-ib .msr { font-size: 19px; }
.ca-acts[b-muf37hgwmk]  .ui-btn.icon.ca-ib:hover:not(:disabled) { background: var(--bg-light-teal); color: var(--brand-teal-deep); border-color: color-mix(in srgb, var(--brand-teal-deep) 15%, transparent); }
.ca-acts[b-muf37hgwmk]  .ui-btn.icon.ca-ib--dng:hover:not(:disabled) { background: color-mix(in srgb, var(--danger) 10%, transparent); color: var(--danger); border-color: color-mix(in srgb, var(--danger) 20%, transparent); }
.ca-acts[b-muf37hgwmk]  .ui-btn.icon.ca-ib--ok:hover:not(:disabled) { background: color-mix(in srgb, var(--success) 12%, transparent); color: var(--success-ink); }

/* ── Responsive ── */
@media (max-width: 1180px) {
    .ca-grid[b-muf37hgwmk] { grid-template-columns: 1fr; }
}

@media (max-width: 1023.98px) {
    .cei-container[b-muf37hgwmk] { padding: 18px 16px 96px; }
}

@media (max-width: 640px) {
    .ca-hd[b-muf37hgwmk] { gap: 12px; margin-bottom: 14px; }
    .cei-h-icon[b-muf37hgwmk] { width: 42px; height: 42px; }
    .ca-hd h1[b-muf37hgwmk] { font-size: 22px; }
    .ca-hd-txt[b-muf37hgwmk] { min-width: 0; flex-basis: calc(100% - 60px); }
    .ca-tb[b-muf37hgwmk] { padding: 10px; gap: 10px; }
    .ca-tb-sep[b-muf37hgwmk] { display: none; }
    .ca-srch[b-muf37hgwmk] { flex-basis: 100%; min-width: 0; }
    .ca-ciclos[b-muf37hgwmk] { overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none; max-width: 100%; }
    .ca-seg[b-muf37hgwmk] { display: flex; }
    .ca-seg button[b-muf37hgwmk] { flex: 1; justify-content: center; }
    .ca-card-h[b-muf37hgwmk] { padding: 12px 12px 12px 14px; flex-wrap: wrap; }
    .ca-card-h[b-muf37hgwmk]  .ca-add-btn { flex-basis: 100%; order: 5; }
    .ca-card-h[b-muf37hgwmk]  .ca-cnt { margin-left: auto; }
    .ca-row[b-muf37hgwmk] { padding: 8px 6px 8px 14px; gap: 6px; }
    .ca-row .ca-tag[b-muf37hgwmk] { display: none; }
    .ca-acts[b-muf37hgwmk] { margin-left: auto; }
    .ca-contenido[b-muf37hgwmk]  .ca-estado { padding: 40px 18px; }
}

/* Objetivos táctiles >= 44 px (SISTEMA-DISENO §7 regla 4) */
@media (pointer: coarse) {
    .ca-chip[b-muf37hgwmk], .ca-seg button[b-muf37hgwmk], .ca-search-input[b-muf37hgwmk], .ca-escuela-select[b-muf37hgwmk], .ca-toggle[b-muf37hgwmk] { min-height: 44px; }
    .ca-acts[b-muf37hgwmk]  .ui-btn.icon.ca-ib { width: 44px; height: 44px; }
    .ca-card[b-muf37hgwmk]  .ui-btn.sm { min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
    .ca-card[b-muf37hgwmk], .ca-row[b-muf37hgwmk], .ca-card.ca-flash[b-muf37hgwmk], .ca-row.ca-flash[b-muf37hgwmk], .ca-toggle-pill[b-muf37hgwmk], .ca-toggle-pill[b-muf37hgwmk]::after {
        animation: none;
        transition: none;
    }
}
/* /Pages/ControlEscolar/DirectorioEscolar.razor.rz.scp.css */
/* Directorio escolar (etapa 1). Encabezado, breadcrumb y contenedor reutilizan la familia cep-*
   de wwwroot/css/control-escolar.css; aquí solo vive lo propio del directorio. Solo tokens. */

.dir-h[b-mnrhos2b3u] { flex-wrap: wrap; }

.cep-h-icon .msr[b-mnrhos2b3u] { font-size: 26px; }

.dir-h-acc[b-mnrhos2b3u] {
    display: flex;
    gap: 8px;
    margin-left: auto;
}

.dir-aviso-contexto[b-mnrhos2b3u] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 12px 14px;
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--info) 12%, transparent);
    color: var(--info-ink);
    font-size: 13px;
}

/* ── Barra de contexto (fija) ─────────────────────────────────────────── */

.dir-ctx[b-mnrhos2b3u] {
    position: sticky;
    top: 0;
    z-index: 20;
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0 -28px 14px;
    padding: 10px 28px;
    border-bottom: 1px solid var(--border-soft);
    background: color-mix(in srgb, var(--bg) 94%, transparent);
    backdrop-filter: blur(6px);
}

.dir-ctx-controles[b-mnrhos2b3u] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 10px;
}

.dir-escuela[b-mnrhos2b3u],
.dir-campo[b-mnrhos2b3u] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 40px;
    padding: 0 10px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-panel);
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
}

.dir-escuela .msr[b-mnrhos2b3u],
.dir-campo .msr[b-mnrhos2b3u] {
    font-size: 18px;
    color: var(--text-secondary);
}

.dir-campo:focus-within[b-mnrhos2b3u] {
    border-color: var(--brand-teal);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand-teal) 25%, transparent);
}

.dir-campo select[b-mnrhos2b3u] {
    min-height: 38px;
    max-width: 220px;
    border: 0;
    outline: 0;
    background: transparent;
    font-family: var(--font-sans);
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
}

.dir-vista[b-mnrhos2b3u] {
    display: inline-flex;
    gap: 2px;
    padding: 3px;
    border-radius: var(--radius-md);
    background: var(--bg-sidebar);
}

.dir-vista button[b-mnrhos2b3u] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 34px;
    padding: 6px 12px;
    border: 0;
    border-radius: var(--radius-sm);
    background: none;
    font-family: var(--font-sans);
    font-size: 12.5px;
    font-weight: 700;
    color: var(--text-sidebar);
    cursor: pointer;
}

.dir-vista button .msr[b-mnrhos2b3u] { font-size: 17px; }

.dir-vista button[aria-pressed="true"][b-mnrhos2b3u] {
    background: var(--brand-teal-primary);
    color: var(--text-primary);
}

.dir-vista button:focus-visible[b-mnrhos2b3u] {
    outline: 2px solid var(--brand-teal);
    outline-offset: 2px;
}

.dir-ctx-linea[b-mnrhos2b3u] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
    font-size: 12.5px;
    color: var(--text-secondary);
}

.dir-pin[b-mnrhos2b3u] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 10px 3px 6px;
    border-radius: 99px;
    background: var(--bg-sidebar);
    color: var(--text-sidebar-active);
    font-size: 12px;
    font-weight: 600;
}

.dir-pin .msr[b-mnrhos2b3u] {
    font-size: 16px;
    color: var(--brand-teal);
}

.dir-stat[b-mnrhos2b3u] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-variant-numeric: tabular-nums;
}

.dir-stat .msr[b-mnrhos2b3u] { font-size: 16px; }

.dir-stat--aviso[b-mnrhos2b3u] { color: var(--warning-ink); }

/* ── Cuerpo ─────────────────────────────────────────────────────────────── */

.dir-card[b-mnrhos2b3u] {
    overflow: hidden;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    background: var(--bg-panel);
    box-shadow: var(--shadow-sm);
}

.dir-card--estado[b-mnrhos2b3u] { padding: 8px 0; }

.dir-cuerpo[b-mnrhos2b3u] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 400px;
    gap: 18px;
    align-items: start;
}

.dir-ficha-panel[b-mnrhos2b3u] {
    position: sticky;
    top: 132px;
    max-height: calc(100vh - 150px);
    overflow-y: auto;
}

.dir-banda[b-mnrhos2b3u] { margin-bottom: 12px; }

.dir-banda-nota[b-mnrhos2b3u] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 12px;
    padding: 10px 12px;
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--info) 12%, transparent);
    color: var(--info-ink);
    font-size: 12.5px;
}

.dir-banda-nota .msr[b-mnrhos2b3u] { font-size: 16px; }

.dir-sr[b-mnrhos2b3u] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Esqueleto con la silueta de la lista y de la ficha */
.dir-esq-lista[b-mnrhos2b3u] { padding: 6px 0; }

.dir-esq-fila[b-mnrhos2b3u] {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    height: 56px;
    padding: 0 14px;
    border-bottom: 1px solid var(--border-soft);
}

.dir-esq-av[b-mnrhos2b3u] {
    width: 36px;
    height: 36px;
}

.dir-esq-txt[b-mnrhos2b3u] {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.dir-esq-ficha[b-mnrhos2b3u] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 18px;
}

.dir-esq-txt .skeleton[b-mnrhos2b3u],
.dir-esq-ficha .skeleton[b-mnrhos2b3u] { display: block; }

/* ── Responsive ─────────────────────────────────────────────────────────── */

@media (max-width: 1180px) {
    .dir-cuerpo[b-mnrhos2b3u] { grid-template-columns: minmax(0, 1fr) 340px; }
}

@media (max-width: 1023.98px) {
    /* En pantalla angosta la barra ocupa media pantalla: deja de ser fija. */
    .dir-ctx[b-mnrhos2b3u] { position: static; backdrop-filter: none; }
    .dir-cuerpo[b-mnrhos2b3u] { grid-template-columns: 1fr; }
    .dir-ficha-panel[b-mnrhos2b3u] { position: static; max-height: none; }
    .dir-esq-ficha[b-mnrhos2b3u] { display: none; }
}

@media (max-width: 575.98px) {
    .dir-ctx[b-mnrhos2b3u] { margin: 0 -16px 12px; padding: 10px 16px; }
    .dir-h-acc[b-mnrhos2b3u] { margin-left: 0; width: 100%; }
    .dir-campo[b-mnrhos2b3u] { flex: 1 1 100%; }
    .dir-campo select[b-mnrhos2b3u] { flex: 1; max-width: none; font-size: 16px; }
    .dir-vista[b-mnrhos2b3u] { width: 100%; }
    .dir-vista button[b-mnrhos2b3u] { flex: 1; justify-content: center; }
}

@media (pointer: coarse) {
    .dir-escuela[b-mnrhos2b3u],
    .dir-campo[b-mnrhos2b3u],
    .dir-vista button[b-mnrhos2b3u] { min-height: 44px; }
    .dir-h-acc[b-mnrhos2b3u]  .ui-btn { min-height: 44px; }
}
/* /Pages/ControlEscolar/FotoGrupal.razor.rz.scp.css */
/* Foto grupal (boceto «Foto grupal · WebApp» de propuesta-v1). Familia de breakpoints de
   Control Escolar (991.98 / 575.98, SISTEMA-DISENO §9). Solo tokens. */

.fg-page[b-9rffbbs71u] {
    max-width: 1200px;
    margin: 0 auto;
    padding: 22px 28px 48px;
    font-family: var(--font-sans);
    color: var(--text-primary);
}

.fg-bc[b-9rffbbs71u] {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-bottom: 12px;
    font-size: 12px;
    color: var(--text-secondary);
}

.fg-bc a[b-9rffbbs71u] { color: var(--brand-teal-deep); text-decoration: none; font-weight: 600; }
.fg-bc a:hover[b-9rffbbs71u] { text-decoration: underline; }
.fg-bc .msr[b-9rffbbs71u] { font-size: 16px; }

.fg-h[b-9rffbbs71u] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
    margin-bottom: 20px;
}

.fg-h-ico[b-9rffbbs71u] {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border-radius: var(--radius-lg);
    background: var(--bg-light-teal);
    color: var(--brand-teal-deep);
    flex-shrink: 0;
}

.fg-h-ico .msr[b-9rffbbs71u] { font-size: 26px; }

.fg-h-txt[b-9rffbbs71u] { flex: 1; min-width: 220px; }

.fg-h-txt h1[b-9rffbbs71u] {
    margin: 0;
    font-family: var(--font-serif);
    font-weight: 600;
    font-size: 26px;
    letter-spacing: -0.4px;
}

.fg-h-txt p[b-9rffbbs71u] { margin: 2px 0 0; font-size: 13px; color: var(--text-secondary); }

.fg-h-acc[b-9rffbbs71u] { display: flex; flex-wrap: wrap; gap: 8px; }

/* ── Toolbar: grupos + switch ── */
.fg-toolbar[b-9rffbbs71u] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 14px;
}

.fg-grupos[b-9rffbbs71u] { display: flex; flex-wrap: wrap; gap: 6px; }

.fg-chip[b-9rffbbs71u] {
    min-height: 34px;
    padding: 6px 14px;
    border: 1px solid var(--border-soft);
    border-radius: 99px;
    background: var(--bg-panel);
    color: var(--text-secondary);
    font: 600 13px/1 var(--font-sans);
    cursor: pointer;
    transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}

.fg-chip:hover[b-9rffbbs71u] { border-color: var(--brand-teal-deep); color: var(--brand-teal-deep); }

.fg-chip.on[b-9rffbbs71u] {
    border-color: var(--brand-teal-deep);
    background: var(--brand-teal-deep);
    color: var(--bg-panel);
}

/* ── Filtros + progreso ── */
.fg-barra[b-9rffbbs71u] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px 20px;
    margin-bottom: 16px;
}

.fg-filtros[b-9rffbbs71u] {
    display: inline-flex;
    flex-wrap: wrap;
    padding: 3px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-panel);
}

.fg-seg[b-9rffbbs71u] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 32px;
    padding: 5px 12px;
    border: 0;
    border-radius: var(--radius-sm);
    background: transparent;
    color: var(--text-secondary);
    font: 600 13px/1 var(--font-sans);
    cursor: pointer;
}

.fg-seg b[b-9rffbbs71u] {
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    color: var(--text-primary);
}

.fg-seg:hover[b-9rffbbs71u] { background: var(--bg-cream); }

.fg-seg.on[b-9rffbbs71u] {
    background: var(--bg-light-teal);
    color: var(--brand-teal-deep);
    box-shadow: inset 0 0 0 1px var(--brand-teal-deep);
}

.fg-progreso[b-9rffbbs71u] {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    color: var(--text-secondary);
}

.fg-progreso-t[b-9rffbbs71u] { font-weight: 700; color: var(--text-primary); font-variant-numeric: tabular-nums; }

.fg-progreso-bar[b-9rffbbs71u] {
    display: block;
    width: 140px;
    height: 8px;
    border-radius: 99px;
    background: var(--border-soft);
    overflow: hidden;
}

.fg-progreso-bar i[b-9rffbbs71u] {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--brand-teal-deep);
}

/* ── Cuadricula 4 → 3 → 2 ── */
.fg-grid[b-9rffbbs71u] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.fg-card[b-9rffbbs71u] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 8px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    background: var(--bg-panel);
    box-shadow: var(--shadow-sm);
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: box-shadow 0.15s ease, transform 0.15s ease, border-color 0.15s ease;
}

.fg-card:hover:not(.inerte)[b-9rffbbs71u] {
    border-color: var(--border-med);
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
}

.fg-card.inerte[b-9rffbbs71u] { cursor: default; }

.fg-media[b-9rffbbs71u] {
    position: relative;
    display: block;
    aspect-ratio: 4 / 5;
    border-radius: var(--radius-md);
    overflow: hidden;
    background: var(--bg-cream);
}

.fg-media[b-9rffbbs71u]  .fa-retrato {
    width: 100%;
    height: 100%;
    border-radius: inherit;
}

.fg-ini[b-9rffbbs71u] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--fg-from, var(--av-1-from)), var(--fg-to, var(--av-1-to)));
    color: var(--bg-panel);
    font: 700 clamp(18px, 2.4vw, 34px)/1 var(--font-sans);
    letter-spacing: 0.02em;
}

/* Pendiente: se distingue sin color (borde punteado, fondo rayado, icono y texto). */
.fg-card.pendiente .fg-media[b-9rffbbs71u] {
    outline: 2px dashed var(--border-med);
    outline-offset: -2px;
    background: repeating-linear-gradient(135deg, var(--bg-cream) 0 8px, var(--bg-panel) 8px 16px);
}

.fg-card.pendiente .fg-ini[b-9rffbbs71u] {
    inset: auto;
    top: 20%;
    left: 50%;
    width: 46%;
    aspect-ratio: 1;
    transform: translateX(-50%);
    border-radius: 50%;
    background: var(--av-tint-bg);
    color: var(--av-tint-ink);
    font-size: clamp(14px, 1.8vw, 24px);
}

.fg-add[b-9rffbbs71u],
.fg-badge[b-9rffbbs71u] {
    position: absolute;
    left: 50%;
    bottom: 10px;
    transform: translateX(-50%);
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 5px 10px;
    border-radius: 99px;
    background: var(--bg-panel);
    color: var(--brand-teal-deep);
    font: 700 12px/1 var(--font-sans);
    white-space: nowrap;
    box-shadow: var(--shadow-sm);
}

.fg-badge[b-9rffbbs71u] { color: var(--text-secondary); }
.fg-add .msr[b-9rffbbs71u], .fg-badge .msr[b-9rffbbs71u] { font-size: 15px; }

.fg-aut[b-9rffbbs71u] {
    position: absolute;
    top: 8px;
    left: 8px;
    right: 8px;
    z-index: 2;
}

.fg-aut[b-9rffbbs71u]  .fea { background: var(--bg-panel); box-shadow: var(--shadow-sm); white-space: normal; }
.fg-aut[b-9rffbbs71u]  .fea.pendiente { color: var(--warning-ink); }
.fg-aut[b-9rffbbs71u]  .fea.no_autorizado { color: var(--danger); }

.fg-card.sin-aut .fg-ini[b-9rffbbs71u] { opacity: 0.85; }

/* Estado: subiendo con anillo de porcentaje real. */
.fg-ring[b-9rffbbs71u] {
    position: absolute;
    inset: 0;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    background: color-mix(in srgb, var(--bg-rail) 68%, transparent);
    color: var(--bg-panel);
    font: 700 13px/1 var(--font-sans);
    font-variant-numeric: tabular-nums;
}

.fg-ring svg[b-9rffbbs71u] { width: 56px; height: 56px; transform: rotate(-90deg); }
.fg-ring circle[b-9rffbbs71u] { fill: none; stroke-width: 4; }
.fg-ring-fondo[b-9rffbbs71u] { stroke: color-mix(in srgb, var(--bg-panel) 30%, transparent); }
.fg-ring-valor[b-9rffbbs71u] { stroke: var(--bg-panel); stroke-linecap: round; transition: stroke-dasharray 0.2s var(--ease); }

/* Estado: guardada con palomita. */
.fg-ok[b-9rffbbs71u] {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 7px;
    background: var(--success-ink);
    color: var(--bg-panel);
    font: 700 12.5px/1 var(--font-sans);
    animation: fg-aparece-b-9rffbbs71u 0.32s var(--ease) both;
}

.fg-ok .msr[b-9rffbbs71u] { font-size: 16px; }

@keyframes fg-aparece-b-9rffbbs71u {
    from { transform: scale(0.85); opacity: 0; }
    to   { transform: scale(1); opacity: 1; }
}

/* Estado: error con reintentar (toda la tarjeta reabre el dialogo en el paso de error). */
.fg-err[b-9rffbbs71u] {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 7px;
    background: var(--danger);
    color: var(--bg-panel);
    font: 700 12.5px/1.2 var(--font-sans);
}

.fg-err .msr[b-9rffbbs71u] { font-size: 16px; }

.fg-meta[b-9rffbbs71u] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 0 2px 2px;
    min-width: 0;
}

.fg-num[b-9rffbbs71u] {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.4px;
    color: var(--text-secondary);
    font-variant-numeric: tabular-nums;
}

.fg-nom[b-9rffbbs71u] {
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ── Cargando ── */
.fg-sk[b-9rffbbs71u] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 8px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    background: var(--bg-panel);
}

.fg-sk-media[b-9rffbbs71u] { aspect-ratio: 4 / 5; border-radius: var(--radius-md); }

@media (max-width: 991.98px) {
    .fg-grid[b-9rffbbs71u] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 575.98px) {
    .fg-page[b-9rffbbs71u] { padding: 18px 16px 40px; }
    .fg-h-txt h1[b-9rffbbs71u] { font-size: 22px; }
    .fg-grid[b-9rffbbs71u] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .fg-h-acc[b-9rffbbs71u] { width: 100%; }
    .fg-h-acc[b-9rffbbs71u]  .ui-btn { flex: 1 1 auto; justify-content: center; }
    .fg-progreso[b-9rffbbs71u] { width: 100%; }
    .fg-progreso-bar[b-9rffbbs71u] { flex: 1; width: auto; }
    .fg-filtros[b-9rffbbs71u] { width: 100%; }
    .fg-seg[b-9rffbbs71u] { flex: 1 1 auto; justify-content: center; }
}

@media (pointer: coarse) {
    .fg-chip[b-9rffbbs71u], .fg-seg[b-9rffbbs71u] { min-height: 44px; }
    .fg-h-acc[b-9rffbbs71u]  .ui-btn { min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
    .fg-card[b-9rffbbs71u], .fg-chip[b-9rffbbs71u], .fg-ring-valor[b-9rffbbs71u] { transition: none; }
    .fg-card:hover:not(.inerte)[b-9rffbbs71u] { transform: none; }
    .fg-ok[b-9rffbbs71u] { animation: none; }
}
/* /Pages/ControlEscolar/FotosConfiguracion.razor.rz.scp.css */
/* Fotos de alumnos · configuracion (boceto «Configuracion de la escuela · WebApp»). Solo tokens. */
.fc-page[b-ww75d4al1h] {
    max-width: 1100px;
    margin: 0 auto;
    padding: 22px 28px 48px;
    font-family: var(--font-sans);
    color: var(--text-primary);
}

.fc-bc[b-ww75d4al1h] {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-bottom: 12px;
    font-size: 12px;
    color: var(--text-secondary);
}

.fc-bc a[b-ww75d4al1h] { color: var(--brand-teal-deep); font-weight: 600; text-decoration: none; }
.fc-bc a:hover[b-ww75d4al1h] { text-decoration: underline; }
.fc-bc .msr[b-ww75d4al1h] { font-size: 16px; }

.fc-h[b-ww75d4al1h] {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 20px;
}

.fc-h-ico[b-ww75d4al1h] {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border-radius: var(--radius-lg);
    background: var(--bg-light-teal);
    color: var(--brand-teal-deep);
}

.fc-h-ico .msr[b-ww75d4al1h] { font-size: 26px; }

.fc-h h1[b-ww75d4al1h] {
    margin: 0;
    font-family: var(--font-serif);
    font-weight: 600;
    font-size: 26px;
    letter-spacing: -0.4px;
}

.fc-h p[b-ww75d4al1h] { margin: 2px 0 0; font-size: 13px; color: var(--text-secondary); }

.fc-card[b-ww75d4al1h] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 16px;
    padding: 18px 20px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    background: var(--bg-panel);
    box-shadow: var(--shadow-sm);
}

.fc-card h2[b-ww75d4al1h] {
    margin: 0;
    font-family: var(--font-serif);
    font-weight: 600;
    font-size: 18px;
}

.fc-card-h[b-ww75d4al1h] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
}

.fc-ayuda[b-ww75d4al1h] {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    margin: 0;
    font-size: 13px;
    line-height: 1.5;
    color: var(--text-secondary);
}

.fc-ayuda .msr[b-ww75d4al1h] { font-size: 17px; color: var(--brand-teal-deep); flex-shrink: 0; }

.fc-error[b-ww75d4al1h] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 16px;
    padding: 10px 12px;
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--danger) 12%, transparent);
    color: var(--danger);
    font-size: 13.5px;
    font-weight: 600;
}

.fc-error > span:nth-child(2)[b-ww75d4al1h] { flex: 1; }

.fc-x[b-ww75d4al1h] {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border: 0;
    border-radius: var(--radius-sm);
    background: transparent;
    color: var(--danger);
    cursor: pointer;
}

/* Interruptor de activacion */
.fc-switch[b-ww75d4al1h] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 40px;
    padding: 6px 14px 6px 8px;
    border: 1px solid var(--border-soft);
    border-radius: 99px;
    background: var(--bg-panel);
    color: var(--text-primary);
    font: 700 13.5px/1 var(--font-sans);
    cursor: pointer;
}

.fc-switch:disabled[b-ww75d4al1h] { opacity: 0.6; cursor: progress; }

.fc-track[b-ww75d4al1h] {
    position: relative;
    width: 38px;
    height: 22px;
    border-radius: 99px;
    background: var(--bg-cream);
    box-shadow: inset 0 0 0 1.5px var(--text-secondary);
    transition: background-color 0.15s ease;
}

.fc-thumb[b-ww75d4al1h] {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--text-secondary);
    transition: transform 0.18s var(--ease);
}

.fc-switch.on .fc-track[b-ww75d4al1h] { background: var(--brand-teal-deep); box-shadow: none; }
.fc-switch.on .fc-thumb[b-ww75d4al1h] { transform: translateX(16px); background: var(--bg-panel); }

.fc-modulos[b-ww75d4al1h] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 8px;
}

.fc-check[b-ww75d4al1h] {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 40px;
    padding: 6px 10px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    font-size: 13.5px;
    cursor: pointer;
}

.fc-check input[b-ww75d4al1h] { width: 18px; height: 18px; accent-color: var(--brand-teal-deep); }

/* Matriz rol × capacidad: se desplaza dentro de su caja en pantallas angostas. */
.fc-tabla-wrap[b-ww75d4al1h] {
    overflow-x: auto;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
}

.fc-tabla[b-ww75d4al1h] {
    width: 100%;
    min-width: 760px;
    border-collapse: collapse;
    font-size: 13px;
}

.fc-tabla th[b-ww75d4al1h],
.fc-tabla td[b-ww75d4al1h] {
    padding: 10px 10px;
    border-bottom: 1px solid var(--border-soft);
    text-align: left;
    vertical-align: middle;
}

.fc-tabla thead th[b-ww75d4al1h] {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    color: var(--text-secondary);
    background: var(--bg-cream);
}

.fc-tabla tbody th[b-ww75d4al1h] { font-weight: 700; white-space: nowrap; }
.fc-tabla tbody th small[b-ww75d4al1h] { display: block; font-weight: 400; color: var(--text-secondary); }
.fc-tabla tbody tr:last-child th[b-ww75d4al1h],
.fc-tabla tbody tr:last-child td[b-ww75d4al1h] { border-bottom: 0; }

.fc-select[b-ww75d4al1h] {
    min-height: 34px;
    padding: 4px 8px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-sm);
    background: var(--bg-panel);
    font: 600 12.5px var(--font-sans);
    color: var(--text-primary);
}

.fc-select.permitir[b-ww75d4al1h] { border-color: var(--success-ink); color: var(--success-ink); }
.fc-select.denegar[b-ww75d4al1h] { border-color: var(--danger); color: var(--danger); }
.fc-select.sin-regla[b-ww75d4al1h] { color: var(--text-secondary); border-style: dashed; }
.fc-select:disabled[b-ww75d4al1h] { opacity: 0.6; cursor: not-allowed; }

.fc-fijo[b-ww75d4al1h] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-weight: 700;
    color: var(--brand-teal-deep);
}

.fc-fijo .msr[b-ww75d4al1h] { font-size: 16px; }

.fc-vacio[b-ww75d4al1h] { margin: 0; font-size: 13px; color: var(--text-secondary); }

.fc-exc-lista[b-ww75d4al1h] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.fc-exc-lista li[b-ww75d4al1h] {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    font-size: 13px;
}

.fc-exc-nombre[b-ww75d4al1h] { font-weight: 700; }
.fc-exc-cap[b-ww75d4al1h] { color: var(--text-secondary); }

.fc-efecto[b-ww75d4al1h] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-weight: 700;
}

.fc-efecto .msr[b-ww75d4al1h] { font-size: 16px; }
.fc-efecto.permitir[b-ww75d4al1h] { color: var(--success-ink); }
.fc-efecto.denegar[b-ww75d4al1h] { color: var(--danger); }

.fc-exc-form[b-ww75d4al1h] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 10px;
    padding-top: 6px;
}

.fc-exc-form label[b-ww75d4al1h] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 12px;
    font-weight: 700;
    color: var(--text-secondary);
}

.fc-exc-form select[b-ww75d4al1h] {
    min-height: 38px;
    min-width: 180px;
    padding: 6px 10px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    background: var(--bg-cream);
    font: 400 13.5px var(--font-sans);
    color: var(--text-primary);
}

@media (max-width: 767.98px) {
    .fc-exc-lista li[b-ww75d4al1h] { grid-template-columns: 1fr auto; }
}

@media (max-width: 575.98px) {
    .fc-page[b-ww75d4al1h] { padding: 18px 16px 40px; }
    .fc-h h1[b-ww75d4al1h] { font-size: 22px; }
    .fc-exc-form label[b-ww75d4al1h], .fc-exc-form select[b-ww75d4al1h] { width: 100%; }
}

@media (pointer: coarse) {
    .fc-switch[b-ww75d4al1h], .fc-check[b-ww75d4al1h], .fc-select[b-ww75d4al1h], .fc-exc-form select[b-ww75d4al1h] { min-height: 44px; }
    .fc-x[b-ww75d4al1h] { width: 44px; height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
    .fc-thumb[b-ww75d4al1h], .fc-track[b-ww75d4al1h] { transition: none; }
}
/* /Pages/ControlEscolar/FueraDeClase.razor.rz.scp.css */
/* ========================================================================
   FUERA DE CLASE HOY — alerta de ausencia en clase (prefijo fdc-)
   Solo tokens var(--...) + color-mix sobre tokens.
   ======================================================================== */

.fdc-page[b-97lpnpt07v] {
    padding: 22px 28px 36px;
    font-family: var(--font-sans);
    color: var(--text-primary);
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.fdc-bc[b-97lpnpt07v] {
    display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
    font-size: 12px; color: var(--text-muted);
}
.fdc-bc .msr[b-97lpnpt07v] { font-size: 14px; }
.fdc-bc a[b-97lpnpt07v] { color: var(--text-secondary); text-decoration: none; cursor: pointer; }
.fdc-bc a:hover[b-97lpnpt07v] { color: var(--brand-teal-deep); }
.fdc-sep[b-97lpnpt07v] { color: var(--text-muted); }
.fdc-current[b-97lpnpt07v] { color: var(--text-primary); font-weight: 600; }

.fdc-h[b-97lpnpt07v] { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.fdc-h-icon[b-97lpnpt07v] {
    width: 48px; height: 48px; border-radius: 13px; flex-shrink: 0;
    background: linear-gradient(135deg, var(--danger), color-mix(in srgb, var(--danger) 70%, var(--carbon-1)));
    color: white; display: flex; align-items: center; justify-content: center;
    box-shadow: 0 4px 12px color-mix(in srgb, var(--danger) 28%, transparent);
}
.fdc-h-icon .msr[b-97lpnpt07v] { font-size: 26px; }
.fdc-h-block[b-97lpnpt07v] { flex: 1; min-width: 0; }
.fdc-h-title[b-97lpnpt07v] {
    font-family: var(--font-serif); font-size: 26px; font-weight: 600;
    letter-spacing: -0.4px; margin: 0 0 4px; line-height: 1.1;
}
.fdc-h-sub[b-97lpnpt07v] { font-size: 13px; color: var(--text-secondary); margin: 0; }
.fdc-h-actions[b-97lpnpt07v] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }

.fdc-fecha[b-97lpnpt07v] {
    display: inline-flex; align-items: center; gap: 6px;
    background: var(--bg-panel); border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg); padding: 6px 10px; color: var(--text-secondary);
}
.fdc-fecha .msr[b-97lpnpt07v] { font-size: 18px; }
.fdc-fecha input[b-97lpnpt07v] {
    border: 0; background: transparent; font: 600 13px var(--font-sans);
    color: var(--text-primary);
}

.fdc-icon-btn[b-97lpnpt07v] {
    width: 38px; height: 38px; border-radius: var(--radius-lg);
    border: 1px solid var(--border-soft); background: var(--bg-panel);
    color: var(--text-secondary); display: grid; place-items: center; cursor: pointer;
}
.fdc-icon-btn.on[b-97lpnpt07v] { background: var(--carbon-2); color: white; border-color: var(--carbon-2); }
.fdc-icon-btn:disabled[b-97lpnpt07v] { opacity: 0.5; cursor: default; }

.fdc-card[b-97lpnpt07v] {
    background: var(--bg-panel); border: 1px solid var(--border-soft);
    border-radius: 14px;
}

.fdc-ajustes[b-97lpnpt07v] { padding: 4px 0; }
.fdc-ajuste[b-97lpnpt07v] {
    display: flex; align-items: center; justify-content: space-between; gap: 16px;
    padding: 12px 18px; border-bottom: 1px solid var(--border-soft);
}
.fdc-ajuste > div[b-97lpnpt07v] { min-width: 0; }
.fdc-ajuste b[b-97lpnpt07v] { display: block; font-size: 14px; }
.fdc-ajuste p[b-97lpnpt07v] { margin: 2px 0 0; font-size: 13px; color: var(--text-secondary); }
.fdc-ajustes-pie[b-97lpnpt07v] { display: flex; justify-content: flex-end; padding: 12px 18px; }

.fdc-tog[b-97lpnpt07v] {
    flex: none; width: 44px; height: 26px; border-radius: 999px; border: 0;
    background: var(--border-med); position: relative; cursor: pointer;
}
.fdc-tog[b-97lpnpt07v]::after {
    content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px;
    border-radius: 50%; background: white; box-shadow: 0 1px 2px rgba(20, 22, 25, 0.2);
    transition: left 0.15s ease;
}
.fdc-tog.on[b-97lpnpt07v] { background: var(--brand-teal-deep); }
.fdc-tog.on[b-97lpnpt07v]::after { left: 21px; }

.fdc-select[b-97lpnpt07v] {
    border: 1px solid var(--border-soft); background: var(--bg-cream);
    border-radius: var(--radius-lg); padding: 7px 10px;
    font: 600 13px var(--font-sans); color: var(--text-primary);
}

.fdc-btn[b-97lpnpt07v] {
    border: 0; border-radius: var(--radius-lg); padding: 9px 16px;
    background: var(--brand-teal-deep); color: white;
    font: 600 13px var(--font-sans); cursor: pointer;
}
.fdc-btn:disabled[b-97lpnpt07v] { opacity: 0.6; cursor: default; }

.fdc-kpis[b-97lpnpt07v] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.fdc-kpi[b-97lpnpt07v] {
    background: var(--bg-panel); border: 1px solid var(--border-soft);
    border-radius: 14px; padding: 14px 16px; display: flex; flex-direction: column; gap: 2px;
}
.fdc-kpi b[b-97lpnpt07v] {
    font-family: var(--font-serif); font-size: 28px; font-weight: 600;
    font-variant-numeric: tabular-nums; line-height: 1.1;
}
.fdc-kpi span[b-97lpnpt07v] { font-size: 12.5px; color: var(--text-secondary); }
.fdc-kpi.hot b[b-97lpnpt07v] { color: var(--danger); }

.fdc-seg[b-97lpnpt07v] {
    display: inline-flex; align-self: flex-start; background: var(--bg-panel);
    border: 1px solid var(--border-soft); border-radius: 10px; padding: 3px;
}
.fdc-seg button[b-97lpnpt07v] {
    border: 0; background: transparent; border-radius: 8px; padding: 6px 14px;
    font: 600 12.5px var(--font-sans); color: var(--text-secondary); cursor: pointer;
}
.fdc-seg button.on[b-97lpnpt07v] { background: var(--carbon-2); color: white; }

.fdc-vacio[b-97lpnpt07v] {
    padding: 28px 18px; display: flex; flex-direction: column; align-items: center;
    gap: 8px; text-align: center; color: var(--text-secondary);
}
.fdc-vacio .msr[b-97lpnpt07v] { font-size: 30px; color: var(--brand-teal-deep); }
.fdc-vacio p[b-97lpnpt07v] { margin: 0; font-weight: 600; color: var(--text-primary); }
.fdc-vacio small[b-97lpnpt07v] { font-size: 12.5px; }

.fdc-tabla-wrap[b-97lpnpt07v] { overflow-x: auto; }
.fdc-tabla[b-97lpnpt07v] { border-collapse: collapse; width: 100%; min-width: 720px; font-size: 13px; }
.fdc-tabla th[b-97lpnpt07v] {
    text-align: left; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase;
    color: var(--text-secondary); font-weight: 700; padding: 10px 14px;
    border-bottom: 1px solid var(--border-soft); background: var(--bg-cream);
}
.fdc-tabla td[b-97lpnpt07v] { padding: 11px 14px; border-bottom: 1px solid var(--border-soft); vertical-align: middle; }
.fdc-tabla tr:last-child td[b-97lpnpt07v] { border-bottom: 0; }
.fdc-nombre[b-97lpnpt07v] { font-weight: 700; text-transform: uppercase; letter-spacing: 0.02em; }
.fdc-sub[b-97lpnpt07v] { font-size: 12px; color: var(--text-secondary); }
.fdc-num[b-97lpnpt07v] { font-variant-numeric: tabular-nums; white-space: nowrap; }
.fdc-accion[b-97lpnpt07v] { text-align: right; }

.fdc-sev[b-97lpnpt07v] { display: block; width: 4px; height: 32px; border-radius: 4px; background: var(--border-med); }
.fdc-sev.rojo[b-97lpnpt07v] { background: var(--danger); }
.fdc-sev.ambar[b-97lpnpt07v] { background: var(--warning); }
.fdc-sev.verde[b-97lpnpt07v] { background: var(--success); }

.fdc-pill[b-97lpnpt07v] {
    display: inline-flex; align-items: center; font-size: 11.5px; font-weight: 700;
    padding: 3px 9px; border-radius: 999px; white-space: nowrap;
    background: var(--cream-deep); color: var(--text-secondary);
}
.fdc-pill.rojo[b-97lpnpt07v] { background: var(--error-bg); color: var(--danger); }
.fdc-pill.ambar[b-97lpnpt07v] { background: var(--warn-bg); color: var(--warning-ink); }
.fdc-pill.verde[b-97lpnpt07v] { background: var(--success-bg); color: var(--success-ink); }

.fdc-act[b-97lpnpt07v] {
    display: inline-flex; align-items: center; gap: 4px; white-space: nowrap;
    border: 1px solid var(--border-soft); background: var(--bg-panel); border-radius: 9px;
    padding: 6px 10px; font: 600 12px var(--font-sans); color: var(--brand-teal-deep); cursor: pointer;
}
.fdc-act .msr[b-97lpnpt07v] { font-size: 16px; }
.fdc-act:disabled[b-97lpnpt07v] { opacity: 0.5; cursor: default; }

.fdc-icon-btn:focus-visible[b-97lpnpt07v], .fdc-btn:focus-visible[b-97lpnpt07v], .fdc-act:focus-visible[b-97lpnpt07v],
.fdc-tog:focus-visible[b-97lpnpt07v], .fdc-seg button:focus-visible[b-97lpnpt07v] {
    outline: 2px solid var(--brand-teal-deep); outline-offset: 2px;
}

@media (max-width: 760px) {
    .fdc-page[b-97lpnpt07v] { padding: 16px; }
    .fdc-kpis[b-97lpnpt07v] { grid-template-columns: 1fr; }
    .fdc-ajuste[b-97lpnpt07v] { flex-wrap: wrap; }
}
/* /Pages/ControlEscolar/Grupos.razor.rz.scp.css */
/* T-078 - fila del boton primario del drawer + la razon visible cuando el escape
   "Otro ciclo..." queda invalido (patron "deshabilitar solo con la razon visible"). */
.grp-ciclo-footer-primario[b-8ru80e7ghx]{display:flex;align-items:center;gap:10px}
.grp-ciclo-legend[b-8ru80e7ghx]{font-size:12px;color:var(--text-secondary)}

/* T-117 - chip incompleto accionable que reutiliza la anatomia de fin-badge */
.btn-incompleto[b-8ru80e7ghx] {
    border: none;
    cursor: pointer;
    font-family: inherit;
}
.btn-incompleto:hover[b-8ru80e7ghx] {
    filter: brightness(0.95);
}

/* FILTROS-ESCUELA-TURNO: escuela activa (de contexto) + selector de turno comun. */
.grp-contexto[b-8ru80e7ghx] {
    justify-content: space-between;
    gap: 12px 16px;
}

.grp-escuela[b-8ru80e7ghx] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 600;
    color: var(--text-secondary);
    overflow-wrap: break-word;
}

.grp-escuela .msr[b-8ru80e7ghx] {
    font-size: 18px;
    color: var(--brand-teal-deep);
}
/* /Pages/ControlEscolar/ImportarAlumnos.razor.rz.scp.css */
/* T-010 v2 — Importar alumnos (wizard 4 pasos).
   Marca SIEMPRE via tokens de wwwroot/css/tokens.css (var(--brand-teal-deep), --bg-light-teal,
   --ev-ciclo...). Los tonos oscuros del teal se derivan con color-mix sobre el token, nunca a mano
   (regla T-184 / guard de paleta). CSS scoped: cada clase aplica solo a ImportarAlumnos.razor. */

/* ── Tokens locales derivados del token de marca (color-mix sobre --brand-teal-deep).
   Nunca literales de marca a mano: el guard de paleta (T-184) solo permite marca via tokens. ── */
.imp-page[b-y014clzzpq] {
    --imp-teal-darker: color-mix(in srgb, var(--brand-teal-deep) 70%, #000);
    --imp-teal-t08:    color-mix(in srgb, var(--brand-teal-deep) 8%,  transparent);
    --imp-teal-t10:    color-mix(in srgb, var(--brand-teal-deep) 10%, transparent);
    --imp-teal-t12:    color-mix(in srgb, var(--brand-teal-deep) 12%, transparent);
    --imp-teal-t16:    color-mix(in srgb, var(--brand-teal-deep) 16%, transparent);
    --imp-ease: cubic-bezier(.4, 0, .2, 1);
    --imp-spring: cubic-bezier(.34, 1.4, .64, 1);
}

/* ── Layout ──────────────────────────────────────────────────────── */
.imp-page[b-y014clzzpq] { max-width: 1040px; margin: 0 auto; padding: 24px 20px 80px; }

.imp-crumb[b-y014clzzpq] { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--text-muted); margin-bottom: 16px; }
.imp-crumb a[b-y014clzzpq] { color: var(--text-secondary); text-decoration: none; }
.imp-crumb a:hover[b-y014clzzpq] { text-decoration: underline; }
.imp-crumb .sep[b-y014clzzpq] { opacity: .5; }
.imp-crumb .cur[b-y014clzzpq] { color: var(--text-secondary); font-weight: 600; }

.imp-h[b-y014clzzpq] { display: flex; align-items: center; gap: 16px; margin-bottom: 24px; }
.imp-h-icon[b-y014clzzpq] {
    width: 48px; height: 48px; border-radius: var(--radius-lg);
    background: linear-gradient(135deg, var(--brand-teal-deep), var(--imp-teal-darker));
    display: flex; align-items: center; justify-content: center; color: #fff; font-size: 26px; flex-shrink: 0;
}
.imp-h h1[b-y014clzzpq] { font-family: "Fraunces", serif; font-size: 26px; margin: 0; color: var(--text-secondary); }
.imp-h .sub[b-y014clzzpq] { color: var(--text-muted); font-size: 14px; margin-top: 2px; }

.imp-toolbar[b-y014clzzpq] { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; flex-wrap: wrap; }
.imp-toolbar-label[b-y014clzzpq] { font-size: 13px; color: var(--text-muted); }
.imp-select-escuela[b-y014clzzpq] { padding: 6px 10px; border-radius: 8px; border: 1px solid var(--border-med); font-size: 13.5px; background: #fff; }

.imp-card[b-y014clzzpq] {
    background: #fff; border-radius: var(--radius-lg); border: 1px solid var(--border-med);
    padding: 24px; margin-bottom: 20px;
}
.imp-loading[b-y014clzzpq], .imp-empty[b-y014clzzpq] { text-align: center; padding: 40px; color: var(--text-muted); }
.imp-empty .msr[b-y014clzzpq] { font-size: 32px; display: block; margin-bottom: 8px; }

/* ── Transicion de panel entre pasos (P4) ────────────────────────── */
.imp-paso[b-y014clzzpq] { animation: imp-paso-slide-b-y014clzzpq .22s var(--imp-ease) both; }
@keyframes imp-paso-slide-b-y014clzzpq { from { opacity: 0; transform: translateX(14px); } to { opacity: 1; transform: none; } }

/* ── Stepper ─────────────────────────────────────────────────────── */
.imp-steps[b-y014clzzpq] { display: flex; align-items: center; gap: 4px; margin-bottom: 20px; overflow-x: auto; }
.imp-step[b-y014clzzpq] {
    display: flex; align-items: center; gap: 7px; font-size: 13px; color: var(--text-muted);
    padding: 6px 10px; border-radius: 999px; background: none; border: none; cursor: default;
    white-space: nowrap; flex-shrink: 0;
}
.imp-step .n[b-y014clzzpq] {
    width: 22px; height: 22px; border-radius: 50%; background: var(--border-med); color: #fff;
    display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; flex-shrink: 0;
}
.imp-step.on[b-y014clzzpq] { color: var(--text-secondary); font-weight: 700; }
.imp-step.on .n[b-y014clzzpq] { background: var(--brand-teal-deep); transform: scale(1.12); transition: transform .2s var(--imp-spring); }
.imp-step.done[b-y014clzzpq] { cursor: pointer; }
.imp-step.done .n[b-y014clzzpq] { background: #10B981; }
.imp-step.done .n .msr[b-y014clzzpq] { font-size: 14px; line-height: 1; }
.imp-step.done:hover[b-y014clzzpq] { background: rgba(16,185,129,.07); }
.imp-step-line[b-y014clzzpq] { flex: 1 0 16px; height: 2px; background: var(--border-med); }
.imp-step-line.done[b-y014clzzpq] { background: #10B981; }

/* ── Callouts ────────────────────────────────────────────────────── */
.imp-callout[b-y014clzzpq] {
    display: flex; align-items: flex-start; gap: 10px; padding: 12px 14px; border-radius: 10px;
    font-size: 13.5px; margin: 12px 0;
}
.imp-callout .msr[b-y014clzzpq] { font-size: 20px; flex-shrink: 0; }
.imp-callout-info[b-y014clzzpq] { background: var(--bg-light-teal); color: #0B5A5C; }
.imp-callout-warn[b-y014clzzpq] { background: rgba(186,117,23,.11); color: #8A5510; }
.imp-callout-danger[b-y014clzzpq] { background: #FCEBEB; color: #A32D2D; }
.imp-callout-success[b-y014clzzpq] { background: rgba(29,158,117,.09); color: #0B6449; }

/* ── Chips ───────────────────────────────────────────────────────── */
.imp-chip[b-y014clzzpq] {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 3px 8px; border-radius: 999px; font-size: 12px; font-weight: 600;
}
.imp-chip .msr[b-y014clzzpq] { font-size: 14px; }
.imp-chip-teal[b-y014clzzpq] { background: var(--imp-teal-t12); color: var(--imp-teal-darker); }
.imp-chip-ok[b-y014clzzpq]   { background: rgba(16,185,129,.12); color: #065F46; }
.imp-chip-warn[b-y014clzzpq] { background: rgba(186,117,23,.13); color: #8A5510; }
.imp-chip-info[b-y014clzzpq] { background: var(--imp-teal-t10); color: var(--imp-teal-darker); }
.imp-chip-muted[b-y014clzzpq] { background: var(--bg-cream, #F4F0E6); color: var(--text-muted); }
.imp-chip-danger[b-y014clzzpq] { background: #FCEBEB; color: #A32D2D; }
.imp-chip-sm[b-y014clzzpq] { font-size: 11px; padding: 2px 6px; }
.imp-chip-ok-sm[b-y014clzzpq] { background: rgba(16,185,129,.10); color: #065F46; font-size: 12px; padding: 2px 7px; border-radius: 999px; }
.imp-chip-warn-sm[b-y014clzzpq] { background: rgba(186,117,23,.10); color: #8A5510; font-size: 12px; padding: 2px 7px; border-radius: 999px; }

/* ── Buttons ─────────────────────────────────────────────────────── */
.imp-btn-primary[b-y014clzzpq] {
    display: inline-flex; align-items: center; gap: 6px;
    background: var(--brand-teal-deep); color: #fff; border: none; border-radius: var(--radius-md);
    font-family: var(--font-sans); font-weight: 700; font-size: 14px;
    padding: 10px 20px; cursor: pointer; transition: background .15s, opacity .15s;
}
.imp-btn-primary:hover:not(:disabled)[b-y014clzzpq] { background: var(--imp-teal-darker); }
.imp-btn-primary:disabled[b-y014clzzpq] { opacity: .55; cursor: default; }

.imp-btn-sec[b-y014clzzpq] {
    display: inline-flex; align-items: center; gap: 6px;
    background: #fff; color: var(--text-secondary); border: 1px solid var(--border-med);
    border-radius: var(--radius-md); font-family: var(--font-sans); font-weight: 600; font-size: 14px;
    padding: 10px 18px; cursor: pointer; transition: border-color .15s, background .15s;
}
.imp-btn-sec:hover:not(:disabled)[b-y014clzzpq] { border-color: var(--brand-teal-deep); background: var(--bg-light-teal); }
.imp-btn-sec:disabled[b-y014clzzpq] { opacity: .55; cursor: default; }

.imp-btn-icon[b-y014clzzpq] {
    width: 32px; height: 32px; border-radius: 8px; border: none; background: none; cursor: pointer;
    display: flex; align-items: center; justify-content: center; color: var(--text-muted);
}
.imp-btn-icon:hover[b-y014clzzpq] { background: var(--bg-cream); color: var(--text-secondary); }
.imp-btn-icon .msr[b-y014clzzpq] { font-size: 18px; }

.imp-link-btn[b-y014clzzpq] {
    border: none; background: none; padding: 0; font-size: 12.5px;
    color: var(--brand-teal-deep); cursor: pointer; text-decoration: underline;
}
.imp-link-btn:hover[b-y014clzzpq] { color: var(--imp-teal-darker); }

/* ── Dropzone ────────────────────────────────────────────────────── */
.imp-dropzone[b-y014clzzpq] {
    border: 2px dashed var(--border-med); border-radius: var(--radius-lg);
    background: var(--bg-cream, #F4F0E6); padding: 48px 24px;
    text-align: center; transition: border-color .15s, background .15s;
}
.imp-dropzone.imp-drag-over[b-y014clzzpq], .imp-dropzone:hover[b-y014clzzpq] { border-color: var(--brand-teal-deep); background: var(--bg-light-teal); }
.imp-drop-ic[b-y014clzzpq] { font-size: 48px; color: var(--brand-teal-deep); display: block; margin-bottom: 12px; }
.imp-dropzone h3[b-y014clzzpq] { font-family: "Fraunces", serif; font-size: 20px; margin: 0 0 16px; color: var(--text-secondary); }

.imp-choose-btn[b-y014clzzpq] {
    cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    border-radius: var(--radius-md); font-family: var(--font-sans); font-weight: 700;
    font-size: 14px; padding: 10px 20px;
}
.imp-choose-btn-primary[b-y014clzzpq] { background: var(--brand-teal-deep); color: #fff; border: none; }
.imp-choose-btn-primary:hover[b-y014clzzpq] { background: var(--imp-teal-darker); }
.imp-choose-btn .msr[b-y014clzzpq] { font-size: 18px; }

.imp-hints[b-y014clzzpq] { display: flex; align-items: center; gap: 6px; justify-content: center; flex-wrap: wrap; margin-top: 14px; }
.imp-hint-item[b-y014clzzpq] { font-size: 12.5px; color: var(--text-muted); }
.imp-hint-dot[b-y014clzzpq] { color: var(--border-med); }
.imp-hint-anim[b-y014clzzpq] { margin-top: 10px; }
.imp-pestana[b-y014clzzpq] {
    display: inline-block; width: 24px; height: 8px; border-radius: 4px 4px 0 0;
    background: var(--border-med); margin-right: 4px;
}
.imp-hint-anim-txt[b-y014clzzpq] { font-size: 12px; color: var(--text-muted); }

/* ── Leyendo archivo ─────────────────────────────────────────────── */
.imp-leyendo[b-y014clzzpq] { padding: 20px 0; }
.imp-archivo-ficha-mini[b-y014clzzpq] {
    display: flex; align-items: center; gap: 8px; font-size: 13.5px;
    color: var(--text-secondary); margin-bottom: 10px;
}
.imp-leyendo-txt[b-y014clzzpq] { font-size: 13.5px; color: var(--text-muted); margin-bottom: 10px; }
.imp-shimmer[b-y014clzzpq] {
    height: 8px; border-radius: 4px; background: linear-gradient(90deg, var(--border-med) 25%, var(--bg-light-teal) 50%, var(--border-med) 75%);
    background-size: 200% 100%;
    animation: imp-shimmer-b-y014clzzpq 1.4s linear infinite;
}
@keyframes imp-shimmer-b-y014clzzpq { from { background-position: 200% 0; } to { background-position: -200% 0; } }

/* ── Archivo ficha ───────────────────────────────────────────────── */
.imp-archivo-ficha[b-y014clzzpq] {
    display: flex; align-items: center; gap: 12px; padding: 12px 14px;
    background: var(--bg-cream, #F4F0E6); border-radius: 10px; margin-bottom: 14px;
}
.imp-archivo-ficha .ic[b-y014clzzpq] {
    width: 40px; height: 40px; border-radius: 8px; background: var(--imp-teal-t12); color: var(--imp-teal-darker);
    display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 22px;
}
.imp-archivo-ficha .meta[b-y014clzzpq] { flex: 1; min-width: 0; }
.imp-archivo-ficha .nombre[b-y014clzzpq] { font-weight: 600; color: var(--text-secondary); font-size: 14px; }
.imp-archivo-ficha .sub[b-y014clzzpq] { font-size: 12px; color: var(--text-muted); }

/* ── Resumen franja ──────────────────────────────────────────────── */
.imp-resumen-franja[b-y014clzzpq] {
    display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
    padding: 10px 14px; background: var(--bg-light-teal); border-radius: 10px;
    margin-bottom: 16px; font-size: 13.5px; color: var(--imp-teal-darker);
}
.imp-rs-n[b-y014clzzpq] { font-weight: 700; font-size: 16px; color: var(--imp-teal-darker); }
.imp-rs-lbl[b-y014clzzpq] { color: #0B5A5C; }
.imp-rs-arr[b-y014clzzpq] { font-size: 16px; opacity: .7; }

/* ── Tarjetas de grupo ───────────────────────────────────────────── */
.imp-cards[b-y014clzzpq] {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 14px; margin-bottom: 20px;
}
.imp-gcard[b-y014clzzpq] {
    background: #fff; border-radius: 12px; border: 1px solid var(--border-med);
    padding: 16px; display: flex; flex-direction: column; gap: 10px;
    animation: imp-entrada-b-y014clzzpq .3s ease both;
    animation-delay: var(--d, 0ms);
}
@keyframes imp-entrada-b-y014clzzpq { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.imp-gcard.off[b-y014clzzpq] { background: var(--bg-cream, #F4F0E6); opacity: .75; }
.imp-gcard.bad[b-y014clzzpq] { border-color: rgba(186,117,23,.4); background: rgba(186,117,23,.04); }

.imp-gcard-vacia[b-y014clzzpq] {
    padding: 8px 12px; font-size: 12.5px; color: var(--text-muted);
    background: var(--bg-cream, #F4F0E6); border-radius: 8px;
    display: flex; align-items: center; gap: 6px;
}

.imp-gcard-head[b-y014clzzpq] { display: flex; align-items: center; gap: 8px; }
.imp-gcard-ic[b-y014clzzpq] { font-size: 20px; color: var(--brand-teal-deep); }
.imp-gcard-hoja[b-y014clzzpq] { font-size: 13px; font-weight: 600; color: var(--text-secondary); flex: 1; }

.imp-toggle-wrap[b-y014clzzpq] { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.imp-toggle-label[b-y014clzzpq] { font-size: 12px; color: var(--text-muted); }
.imp-toggle[b-y014clzzpq] {
    width: 38px; height: 22px; border-radius: 11px; border: none;
    background: var(--border-med); cursor: pointer; position: relative; transition: background .2s;
    flex-shrink: 0;
}
.imp-toggle.on[b-y014clzzpq] { background: var(--brand-teal-deep); }
.imp-toggle-thumb[b-y014clzzpq] {
    position: absolute; top: 3px; left: 3px; width: 16px; height: 16px;
    border-radius: 50%; background: #fff; transition: left .2s; box-shadow: 0 1px 3px rgba(0,0,0,.2);
}
.imp-toggle.on .imp-toggle-thumb[b-y014clzzpq] { left: 19px; }

.imp-gcard-nombre-wrap[b-y014clzzpq] { display: flex; flex-direction: column; gap: 4px; }
.imp-gcard-nombre-label[b-y014clzzpq] { font-size: 11.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; color: var(--text-muted); }
.imp-gcard-nombre-input[b-y014clzzpq] {
    border: 1px solid var(--border-med); border-radius: 8px;
    padding: 7px 10px; font-size: 13.5px; width: 100%; box-sizing: border-box;
    font-family: var(--font-sans);
}
.imp-gcard-nombre-input:focus[b-y014clzzpq] { outline: none; border-color: var(--brand-teal-deep); box-shadow: 0 0 0 3px var(--imp-teal-t12); }
.imp-gcard-nombre-input.err[b-y014clzzpq] { border-color: #A32D2D; }
.imp-gcard-nombre-cols[b-y014clzzpq] { display: flex; gap: 6px; flex-wrap: wrap; }

.imp-gcard-count[b-y014clzzpq] { display: flex; align-items: baseline; gap: 4px; }
.imp-gcard-count-n[b-y014clzzpq] { font-size: 28px; font-weight: 700; font-family: "Fraunces", serif; color: var(--brand-teal-deep); }
.imp-gcard-count-lbl[b-y014clzzpq] { font-size: 13px; color: var(--text-muted); }

.imp-badges[b-y014clzzpq] { display: flex; gap: 6px; flex-wrap: wrap; }
.imp-header-line[b-y014clzzpq] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 12px; }
.imp-header-fila1[b-y014clzzpq] { color: var(--text-muted); font-style: italic; }
.imp-hint-fila[b-y014clzzpq] { font-size: 12px; color: var(--text-muted); }

.imp-muestra-nombres[b-y014clzzpq] { font-size: 12.5px; color: var(--text-muted); line-height: 1.6; }

.imp-err-txt[b-y014clzzpq] { font-size: 12px; color: #A32D2D; }

/* ── Spinner ─────────────────────────────────────────────────────── */
.imp-spinner[b-y014clzzpq], .imp-spinner-sm[b-y014clzzpq] {
    border: 3px solid var(--border-med); border-top-color: var(--brand-teal-deep); border-radius: 50%;
    animation: imp-spin-b-y014clzzpq .8s linear infinite; display: inline-block;
}
.imp-spinner[b-y014clzzpq] { width: 22px; height: 22px; }
.imp-spinner-sm[b-y014clzzpq] { width: 14px; height: 14px; border-width: 2px; vertical-align: middle; margin-right: 4px; }
@keyframes imp-spin-b-y014clzzpq { to { transform: rotate(360deg); } }

/* ── Footer wizard ───────────────────────────────────────────────── */
.imp-wizard-footer[b-y014clzzpq] {
    display: flex; justify-content: space-between; align-items: center;
    margin-top: 24px; gap: 12px; flex-wrap: wrap;
}
.imp-footer-right[b-y014clzzpq] { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.imp-footer-reason[b-y014clzzpq] { font-size: 12.5px; color: #8A5510; max-width: 300px; text-align: right; }

/* ── Paso 2: columnas ────────────────────────────────────────────── */
.imp-col-fila[b-y014clzzpq] {
    display: flex; align-items: center; gap: 12px; padding: 14px 0;
    border-bottom: 1px solid var(--border-med);
}
.imp-col-fila:last-of-type[b-y014clzzpq] { border-bottom: none; }
.imp-col-fila-ic[b-y014clzzpq] {
    width: 36px; height: 36px; border-radius: 8px;
    background: var(--imp-teal-t10); color: var(--brand-teal-deep);
    display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 20px;
}
.imp-col-fila-body[b-y014clzzpq] { flex: 1; }
.imp-col-fila-titulo[b-y014clzzpq] { font-weight: 700; font-size: 14px; color: var(--text-secondary); }
.imp-col-fila-detalle[b-y014clzzpq] { font-size: 13px; color: var(--text-muted); margin-top: 2px; }
.imp-col-fila-warn[b-y014clzzpq] { color: #8A5510; }

/* D1 card */
.imp-card-d1[b-y014clzzpq] {
    background: var(--bg-cream, #F4F0E6); border-radius: 12px; padding: 16px; margin-top: 16px;
}
.imp-d1-head[b-y014clzzpq] { display: flex; align-items: center; gap: 16px; margin-bottom: 14px; flex-wrap: wrap; }
.imp-d1-head-body[b-y014clzzpq] { flex: 1; min-width: 200px; }
.imp-d1-titulo[b-y014clzzpq] { font-weight: 700; font-size: 14px; color: var(--text-secondary); }
.imp-d1-detalle[b-y014clzzpq] { font-size: 12.5px; color: var(--text-muted); margin-top: 3px; line-height: 1.5; }
.imp-d1-switch-wrap[b-y014clzzpq] { display: flex; align-items: center; gap: 10px; margin-left: auto; }

/* Anillo de porcentaje del patron (P5) */
.imp-d1-ring[b-y014clzzpq] {
    --p: 100;
    width: 54px; height: 54px; border-radius: 50%; flex-shrink: 0;
    background: conic-gradient(#10B981 calc(var(--p) * 1%), var(--border-soft) 0);
    display: grid; place-items: center;
}
.imp-d1-ring[b-y014clzzpq]::before {
    content: ""; width: 42px; height: 42px; border-radius: 50%; background: var(--bg-cream, #F4F0E6); grid-area: 1/1;
}
.imp-d1-ring b[b-y014clzzpq] { grid-area: 1/1; font-size: 12px; font-weight: 700; color: #065F46; }

/* Patron formateado (P5) */
.imp-d1-pattern[b-y014clzzpq] {
    display: inline-flex; align-items: center; font-family: "SFMono-Regular", Consolas, monospace;
    font-size: 12px; background: #fff; border: 1px solid var(--border-soft);
    border-radius: 7px; padding: 3px 7px; color: var(--text-secondary); vertical-align: middle;
}
.imp-d1-pattern .k[b-y014clzzpq] { font-weight: 700; color: var(--text-secondary); }
.imp-d1-pattern em[b-y014clzzpq] { font-style: normal; color: var(--brand-teal-deep); font-weight: 700; padding: 0 4px; }

/* Celdas de la tabla D1 (P5) */
.imp-d1-th-src[b-y014clzzpq], .imp-d1-td-src[b-y014clzzpq] { color: var(--text-muted); }
.imp-d1-td-src[b-y014clzzpq] { font-family: "SFMono-Regular", Consolas, monospace; font-size: 12px; }
.imp-d1-cell[b-y014clzzpq] {
    display: inline-block; padding: 2px 8px; border-radius: 6px;
    background: var(--bg-light-teal); color: var(--brand-teal-deep); font-weight: 600;
}
.imp-d1-cell-nm[b-y014clzzpq] { background: rgba(16,185,129,.12); color: #065F46; }
.imp-d1-vacio[b-y014clzzpq] { background: #fff; color: var(--text-muted); font-weight: 500; font-style: italic; }
.imp-d1-note[b-y014clzzpq] {
    display: flex; align-items: flex-start; gap: 6px; margin-top: 10px;
    font-size: 12.5px; color: var(--text-muted); line-height: 1.5;
}
.imp-d1-note .msr[b-y014clzzpq] { font-size: 15px; flex-shrink: 0; margin-top: 1px; }

/* Tabla */
.imp-tbl-mapeo[b-y014clzzpq], .imp-tbl-preview[b-y014clzzpq] { width: 100%; border-collapse: collapse; font-size: 13.5px; margin: 12px 0; }
.imp-tbl-mapeo th[b-y014clzzpq], .imp-tbl-preview th[b-y014clzzpq] {
    text-align: left; font-size: 11.5px; text-transform: uppercase; letter-spacing: .03em;
    color: var(--text-muted); padding: 8px 10px; border-bottom: 2px solid var(--border-med);
}
.imp-tbl-mapeo td[b-y014clzzpq], .imp-tbl-preview td[b-y014clzzpq] { padding: 8px 10px; border-bottom: 1px solid var(--border-med); vertical-align: top; }
.imp-tbl-mapeo tr.row-omitida[b-y014clzzpq] { opacity: .65; }
.imp-tbl-mapeo tr.row-err[b-y014clzzpq], .imp-tbl-preview tr.row-err[b-y014clzzpq] { background: #FCEBEB; }
.imp-tbl-wrap[b-y014clzzpq] { overflow-x: auto; }
.mono[b-y014clzzpq] { font-family: "SFMono-Regular", Consolas, monospace; font-size: 12.5px; }
.imp-muestra[b-y014clzzpq] { font-size: 11.5px; color: var(--text-muted); margin-top: 2px; }
.imp-select[b-y014clzzpq] { width: 100%; padding: 7px 10px; border-radius: 8px; border: 1px solid var(--border-med); font-size: 13.5px; background: #fff; }
.imp-select.err[b-y014clzzpq] { border-color: #A32D2D; }
.imp-foot[b-y014clzzpq] { font-size: 12px; color: var(--text-muted); margin-top: 8px; }

/* ── Paso 3: opciones (P2 — dos tarjetas grandes) ────────────────── */
.imp-opts-card-h[b-y014clzzpq] { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 18px; }
.imp-opts-card-ic[b-y014clzzpq] {
    width: 44px; height: 44px; border-radius: 12px; flex-shrink: 0;
    background: linear-gradient(135deg, var(--brand-teal-deep), var(--imp-teal-darker));
    color: #fff; display: flex; align-items: center; justify-content: center; font-size: 24px;
}
.imp-opts-card-h h2[b-y014clzzpq] { font-family: "Fraunces", serif; font-size: 20px; font-weight: 700; color: var(--text-secondary); margin: 0; }
.imp-opts-card-h p[b-y014clzzpq] { font-size: 13px; color: var(--text-muted); margin: 3px 0 0; }

.imp-opts[b-y014clzzpq] { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 18px; }
.imp-opt[b-y014clzzpq] {
    border: 1.5px solid var(--border-med); border-radius: 14px; padding: 16px;
    background: #fff; display: flex; flex-direction: column; gap: 12px;
    transition: border-color .2s var(--imp-ease), box-shadow .2s var(--imp-ease), background .2s var(--imp-ease);
    animation: imp-entrada-b-y014clzzpq .3s ease both; animation-delay: var(--d, 0ms);
}
.imp-opt.on[b-y014clzzpq] { border-color: var(--brand-teal-deep); background: var(--imp-teal-t08); box-shadow: 0 2px 12px var(--imp-teal-t10); }
.imp-opt.dis[b-y014clzzpq] { opacity: .72; background: var(--bg-cream, #F4F0E6); }
.imp-opt-top[b-y014clzzpq] { display: flex; align-items: flex-start; gap: 12px; }
.imp-opt-ic[b-y014clzzpq] {
    width: 38px; height: 38px; border-radius: 10px; flex-shrink: 0;
    background: var(--imp-teal-t12); color: var(--brand-teal-deep);
    display: flex; align-items: center; justify-content: center; font-size: 21px;
}
.imp-opt.on .imp-opt-ic[b-y014clzzpq] { background: var(--brand-teal-deep); color: #fff; }
.imp-opt-t[b-y014clzzpq] { flex: 1; min-width: 0; }
.imp-opt-t b[b-y014clzzpq] { display: block; font-size: 14.5px; font-weight: 700; color: var(--text-secondary); }
.imp-opt-t p[b-y014clzzpq] { font-size: 12.5px; color: var(--text-muted); margin: 4px 0 0; line-height: 1.5; }
.imp-opt-top .imp-toggle[b-y014clzzpq] { margin-top: 2px; }
.imp-opt-foot[b-y014clzzpq] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding-top: 2px; border-top: 1px dashed var(--border-soft); margin-top: 2px; padding-top: 12px; }
.imp-opt-foot-note[b-y014clzzpq] { font-size: 12px; color: var(--text-muted); }
.imp-opt-why[b-y014clzzpq] {
    display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-radius: 10px;
    background: rgba(186,117,23,.10); color: #8A5510; font-size: 12.5px;
}
.imp-opt-why .msr[b-y014clzzpq] { font-size: 17px; flex-shrink: 0; }

/* Franja de ciclo (D6) + turno (D8) */
.imp-ciclo-franja[b-y014clzzpq] {
    display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
    padding: 12px 14px; border-radius: 12px; background: var(--bg-light-teal);
    margin-bottom: 18px;
}
.imp-ciclo-ic[b-y014clzzpq] {
    width: 34px; height: 34px; border-radius: 9px; flex-shrink: 0;
    background: #fff; color: var(--brand-teal-deep);
    display: flex; align-items: center; justify-content: center; font-size: 19px;
}
.imp-ciclo-t[b-y014clzzpq] { flex: 1; min-width: 220px; font-size: 12.5px; color: #0B5A5C; line-height: 1.5; }
.imp-ciclo-t b[b-y014clzzpq] { color: var(--imp-teal-darker); }
.imp-opts-turno-label[b-y014clzzpq] { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; color: var(--text-muted); }
.imp-opts-turno-label .msr[b-y014clzzpq] { font-size: 16px; }
.imp-select-turno[b-y014clzzpq] { width: auto; padding: 5px 10px; border-radius: 8px; border: 1px solid var(--border-med); font-size: 13.5px; background: #fff; }

.imp-tbl-grupos[b-y014clzzpq] { width: 100%; border-collapse: collapse; font-size: 13.5px; margin-top: 8px; }
.imp-tbl-grupos th[b-y014clzzpq] {
    text-align: left; font-size: 11.5px; text-transform: uppercase; letter-spacing: .03em;
    color: var(--text-muted); padding: 8px 10px; border-bottom: 2px solid var(--border-med);
}
.imp-tbl-grupos td[b-y014clzzpq] { padding: 10px 10px; border-bottom: 1px solid var(--border-med); vertical-align: middle; }
.txt-num[b-y014clzzpq] { font-weight: 700; color: var(--brand-teal-deep); font-family: "Fraunces", serif; font-size: 15px; text-align: right; width: 60px; }
.txt-num-h[b-y014clzzpq] { text-align: right; }

.imp-clase-reusada[b-y014clzzpq] {
    display: flex; align-items: center; gap: 6px;
    font-size: 12.5px; color: var(--text-muted); font-style: italic;
}
.imp-clase-reusada .msr[b-y014clzzpq] { font-size: 16px; }

/* ── Paso 4: callout revision ────────────────────────────────────── */
.imp-callout-rev-list[b-y014clzzpq] { padding-left: 16px; margin: 6px 0 0; font-size: 13px; }
.imp-callout-rev-list li[b-y014clzzpq] { margin-top: 3px; }
.imp-err-codigo[b-y014clzzpq] { font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; opacity: .7; margin-bottom: 4px; }

/* ── Paso 4: confirmar ───────────────────────────────────────────── */
.imp-stats-row[b-y014clzzpq] { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 12px; margin-bottom: 20px; }
.imp-stat[b-y014clzzpq], .imp-stat-hero[b-y014clzzpq] {
    background: var(--bg-cream, #F4F0E6); border-radius: 12px; padding: 14px; text-align: center;
    animation: imp-entrada-b-y014clzzpq .3s ease both; animation-delay: var(--d, 0ms);
}
.imp-stat-hero[b-y014clzzpq] { background: var(--imp-teal-t08); }
.imp-stat-n[b-y014clzzpq] { font-size: 28px; font-weight: 700; font-family: "Fraunces", serif; color: var(--brand-teal-deep); }
.imp-stat-hero .imp-stat-n[b-y014clzzpq] { font-size: 36px; }
.imp-stat-lbl[b-y014clzzpq] { font-size: 12.5px; color: var(--text-muted); margin-top: 3px; }

/* Filas por grupo (P3): icono de estado, detalle, barra + contador 0/N */
.imp-rows[b-y014clzzpq] { display: flex; flex-direction: column; gap: 8px; margin: 14px 0; }
.imp-row[b-y014clzzpq] {
    display: flex; align-items: center; gap: 12px; padding: 11px 14px;
    border-radius: 10px; background: var(--bg-cream, #F4F0E6); border: 1px solid var(--border-med);
    animation: imp-entrada-b-y014clzzpq .3s ease both; animation-delay: var(--d, 0ms);
    transition: border-color .2s var(--imp-ease), background .2s var(--imp-ease);
}
.imp-row.doing[b-y014clzzpq] { border-color: var(--brand-teal-deep); background: var(--imp-teal-t08); }
.imp-row-st[b-y014clzzpq] {
    width: 26px; height: 26px; border-radius: 7px; flex-shrink: 0;
    background: #fff; color: var(--brand-teal-deep);
    display: flex; align-items: center; justify-content: center;
}
.imp-row-st .msr[b-y014clzzpq] { font-size: 17px; }
.imp-row-t[b-y014clzzpq] { flex: 1; min-width: 0; }
.imp-row-t b[b-y014clzzpq] { font-size: 13.5px; font-weight: 700; color: var(--text-secondary); }
.imp-row-d[b-y014clzzpq] { font-size: 12px; color: var(--text-muted); margin-top: 2px; line-height: 1.5; }
.imp-row-sep[b-y014clzzpq] { margin: 0 5px; opacity: .55; }
.imp-row-p[b-y014clzzpq] { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.imp-pbar[b-y014clzzpq] { width: 88px; height: 6px; border-radius: 999px; background: var(--border-soft); overflow: hidden; }
.imp-pbar > i[b-y014clzzpq] { display: block; height: 100%; border-radius: 999px; background: var(--brand-teal-deep); transition: width .3s var(--imp-ease); }
.imp-pbar.indet[b-y014clzzpq] { position: relative; }
.imp-pbar.indet > i[b-y014clzzpq] { width: 40% !important; animation: imp-indet-b-y014clzzpq 1.1s var(--imp-ease) infinite; }
@keyframes imp-indet-b-y014clzzpq { 0% { margin-left: -40%; } 100% { margin-left: 100%; } }
.imp-row-n[b-y014clzzpq] { font-size: 13px; font-weight: 700; font-family: "Fraunces", serif; color: var(--brand-teal-deep); min-width: 44px; text-align: right; }
.imp-row-n small[b-y014clzzpq] { font-weight: 500; color: var(--text-muted); font-family: var(--font-sans); }

.imp-progreso[b-y014clzzpq] { display: flex; align-items: center; gap: 12px; padding: 16px; color: var(--text-secondary); font-size: 13.5px; }
.imp-progreso b[b-y014clzzpq] { color: var(--text-secondary); font-weight: 700; }

/* ── Cierre (P4): bigcheck pop-in + halo + trazo, confeti, escalonado ─ */
.imp-cierre-exito[b-y014clzzpq] { text-align: center; padding: 20px 0 12px; position: relative; }
.imp-bigcheck[b-y014clzzpq] {
    width: 84px; height: 84px; border-radius: 50%; margin: 0 auto 16px; position: relative;
    background: linear-gradient(135deg, #10B981, #0B6449);
    display: flex; align-items: center; justify-content: center; color: #fff;
    animation: imp-pop-b-y014clzzpq .5s var(--imp-spring) both;
}
.imp-bigcheck .msr[b-y014clzzpq] { font-size: 46px; animation: imp-trazo-b-y014clzzpq .45s var(--imp-ease) .18s both; }
.imp-bigcheck[b-y014clzzpq]::before {
    content: ""; position: absolute; inset: -8px; border-radius: 50%;
    border: 2px solid #10B981; opacity: 0; animation: imp-halo-b-y014clzzpq 1s var(--imp-ease) .25s both;
}
@keyframes imp-pop-b-y014clzzpq { 0% { transform: scale(0); } 60% { transform: scale(1.12); } 100% { transform: scale(1); } }
@keyframes imp-trazo-b-y014clzzpq { from { transform: scale(.3); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes imp-halo-b-y014clzzpq { 0% { transform: scale(.8); opacity: .7; } 100% { transform: scale(1.5); opacity: 0; } }
.imp-cierre-exito h2[b-y014clzzpq] { font-family: "Fraunces", serif; font-size: 23px; margin: 0 0 8px; color: var(--text-secondary); }
.imp-cierre-exito p[b-y014clzzpq] { font-size: 13.5px; color: var(--text-muted); }
.imp-cierre-chips[b-y014clzzpq] { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; margin: 14px 0; }
.imp-cierre-acciones[b-y014clzzpq] { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin-top: 16px; }
.imp-cierre-in[b-y014clzzpq] { animation: imp-cierre-up-b-y014clzzpq .4s var(--imp-ease) both; animation-delay: var(--d, 0ms); }
@keyframes imp-cierre-up-b-y014clzzpq { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* Confeti ligero */
.imp-confeti[b-y014clzzpq] { position: absolute; left: 50%; top: 42px; width: 0; height: 0; pointer-events: none; }
.imp-confeti i[b-y014clzzpq] {
    position: absolute; left: 0; top: 0; width: 8px; height: 8px; border-radius: 2px;
    background: var(--c, var(--brand-teal-deep)); opacity: 0;
    animation: imp-confeti-fly-b-y014clzzpq .9s var(--imp-ease) var(--cd, 0ms) both;
}
@keyframes imp-confeti-fly-b-y014clzzpq {
    0% { opacity: 0; transform: translate(0, 0) rotate(0); }
    15% { opacity: 1; }
    100% { opacity: 0; transform: translate(var(--x, 0), var(--y, 0)) rotate(var(--r, 180deg)); }
}

/* ── Tarjeta "sin columna Nombre": elegir columna (fix 1) ────────── */
.imp-gfix[b-y014clzzpq] { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; }
.imp-gfix-select[b-y014clzzpq] { max-width: 340px; }
.imp-gsample[b-y014clzzpq] {
    font-size: 12px; color: var(--text-muted); line-height: 1.6;
    background: var(--bg-cream, #F4F0E6); border-radius: 8px; padding: 8px 10px;
}
.imp-gsample div[b-y014clzzpq] { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ── Paso 3: subtexto de grupo + celda de control escolar ────────── */
.imp-opt-sub[b-y014clzzpq] { font-size: 11.5px; color: var(--text-muted); margin-top: 2px; }
.imp-ce-cell[b-y014clzzpq] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }

/* ── Paso 4: subtexto del hero (leidos / omitidos) ───────────────── */
.imp-stat-sub[b-y014clzzpq] { font-size: 11.5px; color: var(--text-muted); margin-top: 4px; }

/* ── Lectura escenificada (P1) ───────────────────────────────────── */
.imp-leyendo-linea[b-y014clzzpq] {
    display: flex; align-items: center; gap: 8px; font-size: 14px;
    color: var(--text-secondary); margin: 10px 0;
}
.imp-leyendo-linea b[b-y014clzzpq] { color: var(--text-secondary); font-weight: 700; }
.imp-leyendo-check[b-y014clzzpq] { color: #10B981; font-size: 18px; }
.imp-leyendo-bar[b-y014clzzpq] {
    height: 8px; border-radius: 999px; background: var(--border-soft); overflow: hidden;
}
.imp-leyendo-bar > span[b-y014clzzpq] {
    display: block; height: 100%; border-radius: 999px;
    background: linear-gradient(90deg, var(--brand-teal-dark, var(--brand-teal-deep)), var(--brand-teal-deep));
    transition: width .32s var(--imp-ease);
}
.imp-leyendo-bar.ok > span[b-y014clzzpq] { background: #10B981; }
.imp-leyendo-tabs[b-y014clzzpq] { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 14px; min-height: 32px; }
.imp-leyendo-tab[b-y014clzzpq] {
    display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px;
    border-radius: 9px 9px 3px 3px; background: #fff; border: 1px solid var(--border-soft);
    border-bottom: 3px solid var(--brand-teal-deep); font-size: 12.5px; font-weight: 600;
    color: var(--text-secondary); animation: imp-tab-in-b-y014clzzpq .22s var(--imp-spring) both;
}
.imp-leyendo-tab .msr[b-y014clzzpq] { font-size: 14px; color: var(--brand-teal-deep); }
.imp-leyendo-tab-c[b-y014clzzpq] { color: var(--text-muted); font-weight: 500; }
@keyframes imp-tab-in-b-y014clzzpq { from { opacity: 0; transform: translateY(10px) scale(.7); } to { opacity: 1; transform: none; } }

/* Franja resumen enriquecida (P1) */
.imp-slide-in[b-y014clzzpq] { animation: imp-slide-in-b-y014clzzpq .32s var(--imp-ease) both; }
@keyframes imp-slide-in-b-y014clzzpq { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.imp-resumen-franja[b-y014clzzpq] { align-items: flex-start; }
.imp-rs-cell[b-y014clzzpq] { display: flex; flex-direction: column; gap: 1px; }
.imp-rs-cell .imp-rs-n[b-y014clzzpq], .imp-rs-cell .imp-rs-lbl[b-y014clzzpq] { display: inline; }
.imp-rs-sub[b-y014clzzpq] { font-size: 11.5px; color: var(--text-muted); line-height: 1.35; max-width: 22ch; }

/* ── Estado + candidatos del mapeo (P6) ──────────────────────────── */
.imp-estado-cell[b-y014clzzpq] { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.imp-cands[b-y014clzzpq] { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.imp-cands-lbl[b-y014clzzpq] { font-size: 12px; color: var(--text-secondary); }
.imp-cand-chip[b-y014clzzpq] {
    border: none; cursor: pointer; font-size: 12px; padding: 3px 9px; border-radius: 999px;
    background: var(--bg-light-teal); color: var(--brand-teal-deep); font-weight: 600;
    transition: background .15s var(--imp-ease);
}
.imp-cand-chip:hover[b-y014clzzpq] { background: var(--imp-teal-t16); }

/* ── Vista previa "asi se guardan" (P6) ──────────────────────────── */
.imp-pv-head[b-y014clzzpq] { display: flex; align-items: baseline; gap: 10px; margin: 18px 0 8px; flex-wrap: wrap; }
.imp-pv-head h3[b-y014clzzpq] { font-family: "Fraunces", serif; font-size: 16px; font-weight: 700; margin: 0; color: var(--text-secondary); }
.imp-pv-head span[b-y014clzzpq] { font-size: 12.5px; color: var(--text-muted); }
.imp-pv-wrap[b-y014clzzpq] { overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: var(--radius-lg); }
.imp-tbl-pv[b-y014clzzpq] { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 12.5px; border: 1px solid var(--border-soft); border-radius: var(--radius-lg); overflow: hidden; }
.imp-tbl-pv th[b-y014clzzpq] {
    text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: .04em;
    color: var(--brand-teal-deep); background: var(--bg-light-teal); font-weight: 700;
    padding: 8px 10px; border-bottom: 1px solid var(--border-soft); white-space: nowrap;
    transition: background .22s var(--imp-ease);
}
.imp-tbl-pv th.imp-pv-src[b-y014clzzpq] { color: var(--text-muted); background: var(--bg-cream, #F4F0E6); }
.imp-tbl-pv td[b-y014clzzpq] { padding: 7px 10px; border-bottom: 1px solid var(--border-soft); white-space: nowrap; vertical-align: middle; }
.imp-tbl-pv tr:last-child td[b-y014clzzpq] { border-bottom: none; }
.imp-tbl-pv td.imp-pv-src[b-y014clzzpq] { color: var(--text-muted); font-size: 12px; background: var(--bg-cream, #F4F0E6); }
.imp-tbl-pv th.hl[b-y014clzzpq] { background: var(--imp-teal-t16); }
.imp-tbl-pv td.hl .imp-pv-cell[b-y014clzzpq] { animation: imp-cell-hl-b-y014clzzpq .7s var(--imp-ease); }
@keyframes imp-cell-hl-b-y014clzzpq {
    0%   { box-shadow: 0 0 0 0 var(--imp-teal-t16); }
    100% { box-shadow: 0 0 0 8px color-mix(in srgb, var(--brand-teal-deep) 0%, transparent); }
}
.imp-pv-cell[b-y014clzzpq] { display: inline-block; padding: 2px 8px; border-radius: 6px; background: var(--bg-light-teal); color: var(--brand-teal-deep); font-weight: 600; }
.imp-pv-nm[b-y014clzzpq] { background: rgba(16,185,129,.12); color: #065F46; }
.imp-pv-gr[b-y014clzzpq] { background: var(--imp-teal-t12); color: var(--brand-teal-deep); }
.imp-pv-empty[b-y014clzzpq] { background: var(--bg-cream, #F4F0E6); color: var(--text-muted); font-weight: 500; font-style: italic; }

/* Tira de hojas (P6) */
.imp-sheets-mini[b-y014clzzpq] { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 12px; }
.imp-sheet-mini[b-y014clzzpq] {
    display: inline-flex; align-items: center; gap: 5px; font-size: 12px; padding: 4px 9px;
    border-radius: 7px; background: var(--bg-cream, #F4F0E6); border: 1px solid var(--border-soft); color: var(--text-secondary);
}
.imp-sheet-mini .msr[b-y014clzzpq] { font-size: 13px; color: #10B981; }
.imp-sheet-mini.off[b-y014clzzpq] { opacity: .55; text-decoration: line-through; }
.imp-sheet-mini.bad[b-y014clzzpq] { background: #FCEBEB; color: #A32D2D; border-color: transparent; }
.imp-sheet-mini.bad .msr[b-y014clzzpq] { color: #A32D2D; }

/* ── 403 propio (P7) ─────────────────────────────────────────────── */
.imp-blocked[b-y014clzzpq] { text-align: center; padding: 28px 20px 20px; }
.imp-blocked-ic[b-y014clzzpq] {
    width: 64px; height: 64px; border-radius: 18px; margin: 0 auto 14px;
    background: #FCEBEB; color: #A32D2D; display: flex; align-items: center; justify-content: center;
}
.imp-blocked-ic .msr[b-y014clzzpq] { font-size: 32px; }
.imp-blocked h2[b-y014clzzpq] { font-family: "Fraunces", serif; font-size: 22px; margin: 0 0 6px; color: var(--text-secondary); }
.imp-blocked p[b-y014clzzpq] { color: var(--text-muted); max-width: 520px; margin: 0 auto 16px; font-size: 14px; line-height: 1.55; }
.imp-blocked-acts[b-y014clzzpq] { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.imp-blocked-meta[b-y014clzzpq] {
    display: flex; align-items: center; gap: 6px; justify-content: center; margin-top: 18px;
    font-size: 12px; color: var(--text-muted);
}
.imp-blocked-meta .msr[b-y014clzzpq] { font-size: 15px; }

/* ── prefers-reduced-motion ──────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
    .imp-gcard[b-y014clzzpq], .imp-opt[b-y014clzzpq], .imp-row[b-y014clzzpq], .imp-stat[b-y014clzzpq], .imp-stat-hero[b-y014clzzpq] { animation: none; }
    .imp-shimmer[b-y014clzzpq] { animation: none; background: var(--border-med); }
    .imp-spinner[b-y014clzzpq], .imp-spinner-sm[b-y014clzzpq] { animation: none; }
    .imp-toggle[b-y014clzzpq], .imp-toggle-thumb[b-y014clzzpq] { transition: none; }
    .imp-leyendo-tab[b-y014clzzpq], .imp-slide-in[b-y014clzzpq] { animation: none; }
    .imp-leyendo-bar > span[b-y014clzzpq] { transition: none; }
    .imp-tbl-pv td.hl .imp-pv-cell[b-y014clzzpq] { animation: none; }
    .imp-tbl-pv th[b-y014clzzpq], .imp-cand-chip[b-y014clzzpq] { transition: none; }
    /* P4: cierre + transiciones sin movimiento */
    .imp-paso[b-y014clzzpq] { animation: none; }
    .imp-bigcheck[b-y014clzzpq], .imp-bigcheck .msr[b-y014clzzpq], .imp-bigcheck[b-y014clzzpq]::before { animation: none; }
    .imp-cierre-in[b-y014clzzpq] { animation: none; opacity: 1; transform: none; }
    .imp-confeti[b-y014clzzpq] { display: none; }
    .imp-confeti i[b-y014clzzpq] { animation: none; opacity: 0; }
    .imp-pbar > i[b-y014clzzpq] { transition: none; }
    .imp-pbar.indet > i[b-y014clzzpq] { animation: none; }
    .imp-step.on .n[b-y014clzzpq] { transition: none; transform: none; }
}

/* ── Movil ───────────────────────────────────────────────────────── */
@media (max-width: 640px) {
    .imp-page[b-y014clzzpq] { padding: 14px 12px 60px; }
    .imp-cards[b-y014clzzpq] { grid-template-columns: 1fr; }
    .imp-steps[b-y014clzzpq] { gap: 2px; }
    .imp-step-line[b-y014clzzpq] { flex: 0 0 10px; }
    .imp-step[b-y014clzzpq] { font-size: 12px; padding: 5px 8px; }
    /* Fila de Confirmar: en movil el detalle no cabe junto a la barra+contador;
       se envuelve para que texto y progreso ocupen renglones propios. */
    .imp-row[b-y014clzzpq] { flex-wrap: wrap; }
    .imp-row-t[b-y014clzzpq] { flex-basis: calc(100% - 38px); }
    .imp-row-p[b-y014clzzpq] { flex-basis: 100%; justify-content: flex-end; }
    .imp-wizard-footer[b-y014clzzpq] { flex-direction: column; align-items: stretch; }
    .imp-wizard-footer button[b-y014clzzpq] { width: 100%; min-height: 44px; justify-content: center; }
    .imp-footer-right[b-y014clzzpq] { align-items: stretch; }
    .imp-footer-reason[b-y014clzzpq] { text-align: left; max-width: none; }
    .imp-stats-row[b-y014clzzpq] { grid-template-columns: 1fr 1fr; }
    .imp-tbl-mapeo thead[b-y014clzzpq], .imp-tbl-mapeo th[b-y014clzzpq] { display: none; }
    .imp-tbl-mapeo[b-y014clzzpq], .imp-tbl-mapeo tbody[b-y014clzzpq], .imp-tbl-mapeo tr[b-y014clzzpq], .imp-tbl-mapeo td[b-y014clzzpq] { display: block; width: 100%; }
    .imp-tbl-mapeo tr[b-y014clzzpq] { border: 1px solid var(--border-med); border-radius: 10px; padding: 10px; margin-bottom: 10px; }
    .imp-tbl-mapeo td[b-y014clzzpq] { border: none; padding: 4px 0; }
    .imp-tbl-preview thead[b-y014clzzpq], .imp-tbl-preview th[b-y014clzzpq] { display: none; }
    .imp-tbl-preview[b-y014clzzpq], .imp-tbl-preview tbody[b-y014clzzpq], .imp-tbl-preview tr[b-y014clzzpq], .imp-tbl-preview td[b-y014clzzpq] { display: block; width: 100%; }
    .imp-tbl-preview tr[b-y014clzzpq] { border: 1px solid var(--border-med); border-radius: 10px; padding: 10px; margin-bottom: 10px; }
    .imp-tbl-preview td[b-y014clzzpq] { border: none; padding: 4px 0; }
    .imp-tbl-preview td[data-label][b-y014clzzpq]::before {
        content: attr(data-label); display: block; font-size: 11px; font-weight: 700;
        text-transform: uppercase; letter-spacing: .03em; color: var(--text-muted); margin-bottom: 2px;
    }
    .imp-tbl-wrap[b-y014clzzpq] { overflow-x: visible; }
    .imp-col-fila[b-y014clzzpq] { flex-wrap: wrap; }
    .imp-d1-head[b-y014clzzpq] { flex-direction: column; }
    .imp-d1-switch-wrap[b-y014clzzpq] { margin-left: 0; }

    /* Paso 3 tabla grupos — responsiva tipo card */
    .imp-tbl-grupos thead[b-y014clzzpq], .imp-tbl-grupos th[b-y014clzzpq] { display: none; }
    .imp-tbl-grupos[b-y014clzzpq], .imp-tbl-grupos tbody[b-y014clzzpq], .imp-tbl-grupos tr[b-y014clzzpq], .imp-tbl-grupos td[b-y014clzzpq] { display: block; width: 100%; }
    .imp-tbl-grupos tr[b-y014clzzpq] { border: 1px solid var(--border-med); border-radius: 10px; padding: 10px; margin-bottom: 10px; }
    .imp-tbl-grupos td[b-y014clzzpq] { border: none; padding: 4px 0; }
    .imp-tbl-grupos td[data-label][b-y014clzzpq]::before {
        content: attr(data-label); display: block; font-size: 11px; font-weight: 700;
        text-transform: uppercase; letter-spacing: .03em; color: var(--text-muted); margin-bottom: 2px;
    }
    .txt-num[b-y014clzzpq] { text-align: left; width: auto; }
    .imp-opts-switch-row[b-y014clzzpq] { flex-wrap: wrap; gap: 10px; }
}
/* /Pages/ControlEscolar/ImprimirQRs.razor.rz.scp.css */
/* T-011 — Imprimir codigos QR (estilos EN PANTALLA, scoped).
   El comportamiento de impresion (@media print, oculta el shell y re-acomoda las tarjetas en
   hojas carta) vive GLOBAL en wwwroot/css/control-escolar.css, guardado por body:has(.qrs-page),
   porque el CSS scoped no puede alcanzar al shell (sidebar/topbar son otros componentes). */

.qrs-page[b-vn2p9gsvqb] {
    max-width: 1100px;
    margin: 0 auto;
    padding: 4px 2px 40px;
}

/* Breadcrumb */
.qrs-crumb[b-vn2p9gsvqb] { font-size: 12px; color: var(--text-muted); margin-bottom: 14px; }
.qrs-crumb a[b-vn2p9gsvqb] { color: var(--text-muted); text-decoration: none; }
.qrs-crumb a:hover[b-vn2p9gsvqb] { color: var(--brand-teal-deep); }
.qrs-crumb .sep[b-vn2p9gsvqb] { margin: 0 6px; }
.qrs-crumb .cur[b-vn2p9gsvqb] { color: var(--text-primary); font-weight: 600; }

/* Header de modulo (patron cep-h) */
.qrs-modh[b-vn2p9gsvqb] { display: flex; align-items: center; gap: 16px; margin-bottom: 22px; }
.qrs-modico[b-vn2p9gsvqb] {
    width: 48px; height: 48px; border-radius: 14px; flex: none;
    background: linear-gradient(135deg, var(--brand-teal), var(--brand-teal-dark));
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 4px 12px rgba(109,199,208,.25);
}
.qrs-modico .msr[b-vn2p9gsvqb] { font-size: 26px; color: #fff; }
.qrs-modh h1[b-vn2p9gsvqb] { font-family: var(--font-serif); font-weight: 600; font-size: 26px; letter-spacing: -.4px; margin: 0; }
.qrs-modh .sub[b-vn2p9gsvqb] { font-size: 13px; color: var(--text-secondary); margin-top: 2px; }

/* Toolbar de seleccion */
.qrs-tools[b-vn2p9gsvqb] {
    background: var(--bg-panel); border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg); box-shadow: var(--shadow-sm);
    padding: 18px 20px; display: flex; gap: 14px; align-items: flex-end; flex-wrap: wrap; margin-bottom: 18px;
}
.qrs-field[b-vn2p9gsvqb] { display: flex; flex-direction: column; gap: 6px; min-width: 170px; }
.qrs-field--wide[b-vn2p9gsvqb] { min-width: 240px; }
.qrs-field label[b-vn2p9gsvqb] { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--text-muted); }
.qrs-select[b-vn2p9gsvqb] {
    appearance: none;
    background: var(--bg-panel) url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235C6068' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 12px center;
    border: 1px solid var(--border-soft); border-radius: var(--radius-md);
    font-family: var(--font-sans); font-size: 13.5px; color: var(--text-primary);
    padding: 9px 32px 9px 12px; cursor: pointer; transition: border-color .15s var(--ease);
}
.qrs-select:hover[b-vn2p9gsvqb] { border-color: var(--border-med); }
.qrs-select:focus[b-vn2p9gsvqb] { border-color: var(--brand-teal); box-shadow: 0 0 0 3px rgba(109,199,208,.25); outline: none; }

/* Segmented "Buscar por" */
.qrs-seg[b-vn2p9gsvqb] { display: inline-flex; background: var(--bg-cream); border: 1px solid var(--border-soft); border-radius: var(--radius-md); padding: 3px; gap: 2px; }
.qrs-seg button[b-vn2p9gsvqb] {
    border: none; background: transparent; font-family: var(--font-sans); font-size: 12.5px; font-weight: 600;
    color: var(--text-secondary); padding: 7px 14px; border-radius: 7px; cursor: pointer;
    display: inline-flex; align-items: center; gap: 6px; transition: color .15s var(--ease), background-color .15s var(--ease);
}
.qrs-seg button .msr[b-vn2p9gsvqb] { font-size: 16px; }
.qrs-seg button:hover[b-vn2p9gsvqb] { color: var(--brand-teal-deep); }
.qrs-seg button.on[b-vn2p9gsvqb] { background: var(--bg-panel); color: var(--brand-teal-deep); box-shadow: var(--shadow-sm); }

.qrs-cta[b-vn2p9gsvqb] { margin-left: auto; display: flex; gap: 10px; align-items: center; }

/* Botones */
.qrs-btn[b-vn2p9gsvqb] {
    display: inline-flex; align-items: center; justify-content: center; gap: 7px;
    font-family: var(--font-sans); font-weight: 700; font-size: 13px; padding: 10px 18px;
    border-radius: var(--radius-md); cursor: pointer; border: 1px solid transparent; transition: background-color .15s var(--ease), border-color .15s var(--ease), color .15s var(--ease);
}
.qrs-btn .msr[b-vn2p9gsvqb] { font-size: 16px; }
.qrs-btn--primary[b-vn2p9gsvqb] { background: var(--brand-teal-primary); color: var(--text-primary); box-shadow: 0 2px 6px rgba(44,109,111,.3); }
/* Con carbon (--text-primary) encima, el hover baja a --brand-teal-dark (#4BA8AA = 6.08:1),
   mas oscuro que la base --brand-teal-primary (8.60:1): oscurece para la afordancia y sigue AA.
   NO usar --brand-teal-deep (#2C6D6F): con carbon da 2.87:1, < AA (T-083). */
@media (hover:hover) and (pointer:fine) { .qrs-btn--primary:hover:not(:disabled)[b-vn2p9gsvqb] { background: var(--brand-teal-dark); } }
.qrs-btn--primary:active[b-vn2p9gsvqb] { transform: translateY(0); }
.qrs-btn:disabled[b-vn2p9gsvqb] { opacity: .5; cursor: not-allowed; transform: none; }
.qrs-btn--sec[b-vn2p9gsvqb] { background: var(--bg-panel); border-color: var(--border-soft); color: var(--text-secondary); font-weight: 600; }
.qrs-btn--sec:hover[b-vn2p9gsvqb] { border-color: var(--brand-teal); color: var(--brand-teal-deep); background: var(--bg-light-teal); }
.qrs-spin[b-vn2p9gsvqb] { width: 14px; height: 14px; border: 2px solid rgba(255,255,255,.35); border-top-color: #fff; border-radius: 50%; animation: qrs-rot-b-vn2p9gsvqb .7s linear infinite; }
@keyframes qrs-rot-b-vn2p9gsvqb { to { transform: rotate(360deg); } }

/* Resumen */
.qrs-resumen[b-vn2p9gsvqb] { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--text-secondary); margin: 0 0 18px; flex-wrap: wrap; }
.qrs-resumen .msr[b-vn2p9gsvqb] { font-size: 17px; color: var(--brand-teal-deep); }
.qrs-resumen b[b-vn2p9gsvqb] { color: var(--text-primary); font-variant-numeric: tabular-nums; }
.qrs-resumen .dot[b-vn2p9gsvqb] { color: var(--border-med); }

/* Banner faltantes / error de emision */
.qrs-band[b-vn2p9gsvqb] { border-radius: var(--radius-lg); padding: 14px 18px; display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin-bottom: 18px; }
.qrs-band .msr[b-vn2p9gsvqb] { font-size: 22px; flex: none; }
.qrs-band .t[b-vn2p9gsvqb] { flex: 1; min-width: 240px; }
.qrs-band .t b[b-vn2p9gsvqb] { display: block; font-size: 14px; color: var(--text-primary); }
.qrs-band .t span[b-vn2p9gsvqb] { font-size: 12.5px; color: var(--text-secondary); }
.qrs-band--warn[b-vn2p9gsvqb] { background: rgba(186,117,23,.12); border: 1px solid rgba(186,117,23,.3); }
.qrs-band--warn > .msr[b-vn2p9gsvqb] { color: var(--warning); }
.qrs-band--error[b-vn2p9gsvqb] { background: rgba(163,45,45,.08); border: 1px solid rgba(163,45,45,.3); }
.qrs-band--error > .msr[b-vn2p9gsvqb] { color: var(--danger); }

/* Section header vista previa */
.qrs-sech[b-vn2p9gsvqb] { display: flex; align-items: baseline; gap: 10px; margin: 26px 0 16px; }
.qrs-sech .ico[b-vn2p9gsvqb] { width: 32px; height: 32px; border-radius: 9px; background: var(--bg-light-teal); display: inline-flex; align-items: center; justify-content: center; transform: translateY(6px); }
.qrs-sech .ico .msr[b-vn2p9gsvqb] { font-size: 18px; color: var(--brand-teal-deep); }
.qrs-sech h2[b-vn2p9gsvqb] { font-family: var(--font-serif); font-size: 22px; font-weight: 600; letter-spacing: -.4px; margin: 0; }
.qrs-sech .sub[b-vn2p9gsvqb] { font-size: 13px; color: var(--text-muted); }

/* Vista previa: rejilla continua. En pantalla las hojas/rejillas se aplanan con display:contents,
   asi TODAS las tarjetas (imprimibles + veladas) caen en una sola rejilla. En impresion, el CSS
   global de control-escolar.css re-arma las hojas de 12. */
.qrs-preview[b-vn2p9gsvqb] { display: grid; grid-template-columns: repeat(auto-fill, minmax(215px, 1fr)); gap: 14px; }
.qrs-print-root[b-vn2p9gsvqb], .qrs-sheet[b-vn2p9gsvqb], .qrs-sheet-grid[b-vn2p9gsvqb], .qrs-veiled[b-vn2p9gsvqb] { display: contents; }

/* Nota de seguridad */
.qrs-footnote[b-vn2p9gsvqb] { display: flex; gap: 8px; align-items: flex-start; margin-top: 20px; font-size: 12px; color: var(--text-muted); max-width: 640px; }
.qrs-footnote .msr[b-vn2p9gsvqb] { font-size: 16px; color: var(--info); flex: none; margin-top: 1px; }

/* Vacio / inicial / error */
.qrs-empty[b-vn2p9gsvqb] { background: var(--bg-panel); border: 1px solid var(--border-soft); border-radius: var(--radius-xl); box-shadow: var(--shadow-sm); padding: 56px 32px; text-align: center; max-width: 560px; margin: 24px auto; }
.qrs-empty > .msr[b-vn2p9gsvqb] { font-size: 44px; color: var(--text-muted); opacity: .5; }
.qrs-empty h3[b-vn2p9gsvqb] { font-family: var(--font-serif); font-size: 19px; font-weight: 600; margin: 14px 0 6px; }
.qrs-empty p[b-vn2p9gsvqb] { font-size: 13px; color: var(--text-secondary); margin: 0 0 18px; }
.qrs-empty .qrs-btn[b-vn2p9gsvqb] { margin: 0 auto; }

/* Skeletons */
.qrs-sk[b-vn2p9gsvqb] { background: linear-gradient(90deg, #ECE8DF 25%, #F5F2EA 50%, #ECE8DF 75%); background-size: 200% 100%; animation: qrs-shimmer-b-vn2p9gsvqb 1.4s ease-in-out infinite; border-radius: 6px; }
@keyframes qrs-shimmer-b-vn2p9gsvqb { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
.qrs-skcard[b-vn2p9gsvqb] { background: var(--bg-panel); border: 1.5px dashed var(--border-soft); border-radius: var(--radius-md); padding: 12px 10px; display: flex; flex-direction: column; align-items: center; gap: 8px; }

@media (prefers-reduced-motion: reduce) {
    .qrs-btn--primary:hover[b-vn2p9gsvqb] { transform: none; }
    .qrs-spin[b-vn2p9gsvqb], .qrs-sk[b-vn2p9gsvqb] { animation: none; }
}

/* Responsive: shell pasa a topbar+drawer bajo 1024px */
@media (max-width: 1023.98px) {
    .qrs-tools[b-vn2p9gsvqb] { flex-direction: column; align-items: stretch; }
    .qrs-field[b-vn2p9gsvqb], .qrs-field--wide[b-vn2p9gsvqb] { min-width: 0; }
    .qrs-cta[b-vn2p9gsvqb] { margin-left: 0; flex-direction: column; align-items: stretch; }
    .qrs-btn[b-vn2p9gsvqb] { justify-content: center; padding: 12px 18px; }
}
@media (max-width: 640px) {
    .qrs-preview[b-vn2p9gsvqb] { grid-template-columns: repeat(2, 1fr); gap: 10px; }
    .qrs-tarjeta[b-vn2p9gsvqb] { padding: 10px 8px; }
    .tj-nombre[b-vn2p9gsvqb] { font-size: 11.5px; min-height: 29px; }
    .tj-qr[b-vn2p9gsvqb] { width: 84px; height: 84px; }
    .qrs-seg[b-vn2p9gsvqb] { width: 100%; }
    .qrs-seg button[b-vn2p9gsvqb] { flex: 1; justify-content: center; padding: 10px 8px; }
    .qrs-band[b-vn2p9gsvqb] { flex-direction: column; align-items: stretch; }
    .qrs-band .qrs-btn[b-vn2p9gsvqb] { justify-content: center; }
}
@media (pointer: coarse) {
    .qrs-seg button[b-vn2p9gsvqb], .qrs-btn[b-vn2p9gsvqb], .qrs-select[b-vn2p9gsvqb] { min-height: 44px; }
}

/* Fixed physical dimensions: preview and print use the same card component. */
.qrs-preview[b-vn2p9gsvqb] { display:flex; flex-wrap:wrap; gap:24px; overflow-x:auto; padding:3px 3px 18px; }
.qrs-formats[b-vn2p9gsvqb] { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:22px 0 12px; }
.qrs-format[b-vn2p9gsvqb] { display:flex; gap:12px; align-items:center; padding:16px; text-align:left; background:var(--bg-panel); border:1px solid var(--border-med); border-radius:var(--radius-md); color:var(--text-primary); cursor:pointer; }
.qrs-format.on[b-vn2p9gsvqb] { border-color:var(--brand-teal-deep); box-shadow:inset 0 0 0 1px var(--brand-teal-deep); background:var(--bg-light-teal); }
.qrs-format .msr[b-vn2p9gsvqb] { color:var(--brand-teal-deep); font-size:24px; }
.qrs-format strong[b-vn2p9gsvqb] { display:block; font-size:14px; }
.qrs-format small[b-vn2p9gsvqb] { display:block; margin-top:4px; font-size:12px; color:var(--text-secondary); }
.qrs-format:focus-visible[b-vn2p9gsvqb] { outline:3px solid var(--brand-teal-deep); outline-offset:3px; }
.qrs-print-guide[b-vn2p9gsvqb] { font-size:12px; line-height:1.6; color:var(--text-secondary); }
.qrs-print-guide span[b-vn2p9gsvqb] { display:block; }
@media(max-width:760px) { .qrs-formats[b-vn2p9gsvqb] { grid-template-columns:1fr; } .qrs-sech[b-vn2p9gsvqb] { flex-wrap:wrap; } }
/* A whole letter sheet stays consecutive in preview, exactly as in print. */
.qrs-preview[b-vn2p9gsvqb] { display:block; overflow-x:auto; }
.qrs-print-root[b-vn2p9gsvqb] { display:block; }
.qrs-sheet[b-vn2p9gsvqb] { display:block; box-sizing:border-box; width:215.9mm; min-height:279.4mm; padding:10mm; background:white; margin-bottom:24px; outline:1px solid var(--border-med); }
.qrs-sheet-grid[b-vn2p9gsvqb] { display:grid; grid-template-columns:repeat(3,63mm); grid-auto-rows:51mm; column-gap:3mm; row-gap:2.5mm; justify-content:center; }
.qrs-publico .qrs-sheet-grid[b-vn2p9gsvqb] { grid-template-columns:repeat(5,38mm); grid-auto-rows:40mm; gap:1mm; }
.qrs-interno .qrs-sheet-grid[b-vn2p9gsvqb] { grid-template-columns:repeat(6,31mm); grid-auto-rows:38mm; gap:1mm; }
.qrs-veiled[b-vn2p9gsvqb] { display:flex; flex-wrap:wrap; gap:12px; margin-top:20px; }
.qrs-selection[b-vn2p9gsvqb] { background:var(--bg-panel); border:1px solid var(--border-soft); border-radius:var(--radius-lg); padding:20px; margin:20px 0; }
.qrs-selection-head[b-vn2p9gsvqb] { display:flex; flex-wrap:wrap; justify-content:space-between; gap:16px; }
.qrs-selection h2[b-vn2p9gsvqb] { margin:0; font-size:18px; }
.qrs-selection p[b-vn2p9gsvqb] { font-size:13px; color:var(--text-secondary); }
.qrs-search[b-vn2p9gsvqb] { display:flex; flex-direction:column; gap:6px; font-size:13px; }
.qrs-search input[b-vn2p9gsvqb] { min-width:240px; min-height:44px; border:1px solid var(--border-med); border-radius:8px; padding:10px; font:inherit; }
.qrs-selection-actions[b-vn2p9gsvqb] { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0; }
.qrs-students[b-vn2p9gsvqb] { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:4px 16px; max-height:280px; overflow:auto; }
.qrs-student[b-vn2p9gsvqb] { display:flex; gap:10px; align-items:center; min-height:48px; cursor:pointer; padding:6px; font-size:13px; }
.qrs-student input[b-vn2p9gsvqb] { width:20px; height:20px; flex:none; accent-color:var(--brand-teal-deep); }
.qrs-student small[b-vn2p9gsvqb] { display:block; color:var(--text-secondary); margin-top:3px; }
.qrs-selection :focus-visible[b-vn2p9gsvqb] { outline:3px solid var(--brand-teal-deep); outline-offset:2px; }
@media print { .qrs-sheet[b-vn2p9gsvqb] { width:auto; min-height:0; margin:0; outline:0; } }

/* Replacement batches use the existing warm panels, Fraunces headings and Figtree controls. */
.qrs-batch[b-vn2p9gsvqb] { background:var(--bg-panel); border:1px solid var(--border-soft); border-radius:var(--radius-lg); padding:20px; margin:20px 0; box-shadow:var(--shadow-sm); }
.qrs-selection h2[b-vn2p9gsvqb],.qrs-batch h2[b-vn2p9gsvqb] { font-family:var(--font-serif); font-size:21px; font-weight:600; margin:0; letter-spacing:-.3px; }
.qrs-batch p[b-vn2p9gsvqb] { font-size:13px; line-height:1.6; color:var(--text-secondary); }
.qrs-count[b-vn2p9gsvqb] { display:inline-flex; align-items:center; justify-content:center; min-width:30px; height:30px; padding:0 8px; border-radius:20px; background:var(--bg-light-teal); font-family:var(--font-sans); font-size:14px; color:var(--brand-teal-deep); vertical-align:middle; }
.qrs-batch-list[b-vn2p9gsvqb] { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:8px 18px; max-height:280px; overflow:auto; margin-top:12px; }
.qrs-batch-student[b-vn2p9gsvqb] { display:flex; justify-content:space-between; align-items:center; gap:12px; border-bottom:1px solid var(--border-soft); padding:8px 0; }
.qrs-batch-student strong[b-vn2p9gsvqb] { font-size:13px; font-weight:600; }
.qrs-batch-student small[b-vn2p9gsvqb] { display:block; font-size:12px; color:var(--text-secondary); margin-top:4px; }
.qrs-remove[b-vn2p9gsvqb] { display:inline-flex; flex:none; align-items:center; justify-content:center; width:44px; height:44px; border:0; border-radius:var(--radius-md); background:transparent; color:var(--text-secondary); cursor:pointer; }
.qrs-remove:hover[b-vn2p9gsvqb] { background:var(--bg-cream); color:var(--danger); }
.qrs-batch :focus-visible[b-vn2p9gsvqb] { outline:3px solid var(--brand-teal-deep); outline-offset:2px; }
.qrs-selection-head>div[b-vn2p9gsvqb],.qrs-batch-student>div[b-vn2p9gsvqb] { min-width:0; overflow-wrap:anywhere; }
@media(max-width:640px) { .qrs-selection[b-vn2p9gsvqb],.qrs-batch[b-vn2p9gsvqb] { padding:16px; } .qrs-search[b-vn2p9gsvqb] { width:100%; } .qrs-search input[b-vn2p9gsvqb] { width:100%; min-width:0; } .qrs-students[b-vn2p9gsvqb],.qrs-batch-list[b-vn2p9gsvqb] { grid-template-columns:minmax(0,1fr); } .qrs-selection-actions .qrs-btn[b-vn2p9gsvqb] { width:100%; } }
.qrs-format[b-vn2p9gsvqb] { font-family:var(--font-sans); }
.qrs-preview[aria-busy="true"][b-vn2p9gsvqb] { display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:14px; }

/* The workflow stays on one page; the print action follows the sheet during review. */
.qrs-steps[b-vn2p9gsvqb] { display:flex; gap:24px; list-style:none; padding:0; margin:0 0 28px; color:var(--text-secondary); font-size:13px; }
.qrs-steps li[b-vn2p9gsvqb] { display:flex; gap:8px; align-items:center; }
.qrs-steps li>span[b-vn2p9gsvqb],.qrs-step-heading>span[b-vn2p9gsvqb] { display:inline-flex; align-items:center; justify-content:center; width:28px; height:28px; flex:none; border-radius:50%; background:var(--bg-light-teal); color:var(--brand-teal-deep); font-family:var(--font-sans); font-weight:700; font-size:13px; }
.qrs-step-heading[b-vn2p9gsvqb] { display:flex; align-items:center; gap:10px; margin:24px 0 14px; scroll-margin-top:16px; }
.qrs-step-heading h2[b-vn2p9gsvqb] { margin:0; font-family:var(--font-serif); font-size:22px; font-weight:600; letter-spacing:-.3px; }
.qrs-batch .qrs-step-heading[b-vn2p9gsvqb] { margin:0; }
.qrs-school-context[b-vn2p9gsvqb] { flex-basis:100%; margin:2px 0 0; font-size:12px; line-height:1.6; color:var(--text-secondary); }
.qrs-school-context .msr[b-vn2p9gsvqb] { vertical-align:middle; margin-right:4px; font-size:16px; color:var(--brand-teal-deep); }
.qrs-selection-scope[b-vn2p9gsvqb] { margin:16px 0 8px; font-size:13px; line-height:1.6; color:var(--text-secondary); }
.qrs-selection-scope>strong[b-vn2p9gsvqb] { color:var(--text-primary); }
.qrs-selection-scope p[b-vn2p9gsvqb] { padding:12px 14px; border:1px solid var(--border-med); border-left:3px solid var(--brand-teal-deep); border-radius:var(--radius-md); background:var(--bg-light-teal); color:var(--text-primary); }
.qrs-selection-scope .msr[b-vn2p9gsvqb] { font-size:18px; vertical-align:middle; margin-right:4px; color:var(--brand-teal-deep); }
.qrs-add-actions[b-vn2p9gsvqb] { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-top:16px; }
.qrs-student:hover[b-vn2p9gsvqb] { background:var(--bg-cream); border-radius:var(--radius-md); }
.qrs-student:has(input:checked)[b-vn2p9gsvqb] { background:var(--bg-light-teal); border-radius:var(--radius-md); }
.qrs-next-step[b-vn2p9gsvqb] { margin-bottom:0; }
.qrs-batch-details summary[b-vn2p9gsvqb] { cursor:pointer; min-height:44px; padding:12px 0; color:var(--brand-teal-deep); font-weight:600; font-size:13px; }
.qrs-batch-details[open] summary[b-vn2p9gsvqb] { border-bottom:1px solid var(--border-soft); }
.qrs-print-bar[b-vn2p9gsvqb] { position:sticky; top:0; z-index:5; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 20px; margin:20px 0; border:1px solid var(--border-med); border-top:3px solid var(--brand-teal-deep); border-radius:var(--radius-lg); background:var(--bg-panel); box-shadow:var(--shadow-sm); }
.qrs-print-summary[b-vn2p9gsvqb] { display:flex; flex-direction:column; min-width:0; gap:4px; font-size:12px; color:var(--text-secondary); overflow-wrap:anywhere; }
.qrs-print-summary strong[b-vn2p9gsvqb] { font-size:15px; color:var(--text-primary); font-variant-numeric:tabular-nums; }
.qrs-print-summary strong span[b-vn2p9gsvqb] { font-weight:500; }
.qrs-print-summary small[b-vn2p9gsvqb] { font-size:12px; }
.qrs-preview-controls[b-vn2p9gsvqb] { display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin:0 0 16px; }
.qrs-preview-controls [aria-pressed=true][b-vn2p9gsvqb] { border-color:var(--brand-teal-deep); color:var(--brand-teal-deep); background:var(--bg-light-teal); }
.qrs-preview-controls p[b-vn2p9gsvqb] { flex-basis:100%; margin:2px 0 0; font-size:12px; line-height:1.6; color:var(--text-secondary); }
.qrs-preview--fit .qrs-print-root[b-vn2p9gsvqb] { zoom:var(--qr-preview-scale,1); }
.qrs-page :focus-visible[b-vn2p9gsvqb] { outline:3px solid var(--brand-teal-deep); outline-offset:3px; }
.qrs-page [tabindex="-1"]:focus[b-vn2p9gsvqb] { outline:none; }
.qrs-btn[b-vn2p9gsvqb] { min-height:44px; }
@media(max-width:640px) {
    .qrs-steps[b-vn2p9gsvqb] { gap:10px; font-size:12px; margin-bottom:20px; }
    .qrs-steps li[b-vn2p9gsvqb] { flex:1; align-items:flex-start; gap:5px; }
    .qrs-steps li>span[b-vn2p9gsvqb] { width:22px; height:22px; font-size:11px; }
    .qrs-tools[b-vn2p9gsvqb] { padding:16px; gap:12px; }
    .qrs-step-heading h2[b-vn2p9gsvqb] { font-size:20px; }
    .qrs-selection-actions[b-vn2p9gsvqb] { display:grid; grid-template-columns:1fr 1fr; }
    .qrs-selection-actions .qrs-btn[b-vn2p9gsvqb] { padding:10px 8px; font-size:12px; }
    .qrs-selection-actions [data-qr="solo-resultados"][b-vn2p9gsvqb] { grid-column:1/-1; }
    .qrs-add-actions[b-vn2p9gsvqb] { flex-direction:column; align-items:stretch; }
    .qrs-print-bar[b-vn2p9gsvqb] { padding:12px; gap:10px; flex-wrap:wrap; }
    .qrs-print-bar .qrs-cta[b-vn2p9gsvqb] { width:100%; }
    .qrs-print-summary[b-vn2p9gsvqb] { width:100%; }
    .qrs-print-summary strong[b-vn2p9gsvqb] { font-size:14px; }
    .qrs-preview-controls .qrs-btn[b-vn2p9gsvqb] { flex:1; padding:10px 8px; }
}
@media print {
    .qrs-preview--fit .qrs-print-root[b-vn2p9gsvqb] { zoom:1 !important; }
}

@media screen { .qrs-credencial .qrs-sheet[b-vn2p9gsvqb] { padding:7.2mm 10.45mm; } }
/* /Pages/ControlEscolar/Incorporacion.razor.rz.scp.css */
/* Incorporacion de personal · pagina (prefijo inc-). Solo tokens; familia de breakpoints de Control
   Escolar (575.98 / 991.98, S9). Movimiento corto y util: cambio de pestana y contador que cambia. */
.inc-page[b-w2q0dtx0ni] { max-width: 1200px; padding: 22px 28px 44px; }

.inc-bc[b-w2q0dtx0ni] { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 14px; font-size: 12px; color: var(--text-secondary); }
.inc-bc .msr[b-w2q0dtx0ni] { font-size: 14px; }
.inc-bc a[b-w2q0dtx0ni] { color: var(--text-secondary); text-decoration: none; }
.inc-bc a:hover[b-w2q0dtx0ni] { color: var(--brand-teal-deep); text-decoration: underline; }
.inc-bc-actual[b-w2q0dtx0ni] { color: var(--text-primary); font-weight: 600; }

.inc-h[b-w2q0dtx0ni] { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 16px; }
.inc-h-ico[b-w2q0dtx0ni] {
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: var(--radius-lg);
    background: var(--bg-light-teal);
    color: var(--brand-teal-deep);
    font-size: 26px;
}
.inc-h-txt[b-w2q0dtx0ni] { min-width: 0; }
.inc-titulo[b-w2q0dtx0ni] {
    margin: 0;
    font-family: var(--font-serif);
    font-size: 26px;
    font-weight: 600;
    letter-spacing: -0.4px;
    color: var(--text-primary);
}
.inc-sub[b-w2q0dtx0ni] { margin: 4px 0 0; max-width: 720px; font-size: 14px; line-height: 1.5; color: var(--text-secondary); }

.inc-contexto[b-w2q0dtx0ni] { display: flex; align-items: center; gap: 10px; margin: 0 0 18px; }
.inc-contexto-label[b-w2q0dtx0ni] { font-size: 13px; font-weight: 700; color: var(--text-secondary); }
.inc-select[b-w2q0dtx0ni] { max-width: 360px; }
.inc-contexto--fijo[b-w2q0dtx0ni] {
    display: inline-flex;
    padding: 6px 12px;
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
    background: var(--bg-cream);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
}
.inc-contexto--fijo .msr[b-w2q0dtx0ni] { font-size: 17px; color: var(--brand-teal-deep); }

.inc-sk[b-w2q0dtx0ni] { display: grid; gap: 14px; }

/* ---- pestanas ---- */
.inc-tabs[b-w2q0dtx0ni] {
    display: flex;
    gap: 4px;
    margin-bottom: 18px;
    border-bottom: 1px solid var(--border-med);
}
.inc-tab[b-w2q0dtx0ni] {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    margin-bottom: -1px;
    padding: 10px 16px;
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    color: var(--text-secondary);
    background: transparent;
    border: 0;
    border-bottom: 3px solid transparent;
    border-radius: var(--radius-md) var(--radius-md) 0 0;
    cursor: pointer;
    transition: color 0.15s ease, background 0.15s ease, border-color 0.15s ease;
}
.inc-tab .msr[b-w2q0dtx0ni] { font-size: 19px; }
.inc-tab:hover[b-w2q0dtx0ni] { color: var(--brand-teal-deep); background: var(--bg-cream); }
.inc-tab--on[b-w2q0dtx0ni] { color: var(--text-primary); border-bottom-color: var(--brand-teal-deep); }
.inc-tab--on .msr[b-w2q0dtx0ni] { color: var(--brand-teal-deep); }
.inc-tab-n[b-w2q0dtx0ni] {
    min-width: 22px;
    padding: 2px 7px;
    border-radius: 99px;
    background: rgba(186, 117, 23, 0.14);
    color: var(--warning-ink);
    font-size: 12px;
    font-weight: 700;
    text-align: center;
    font-variant-numeric: tabular-nums;
    animation: inc-pulso-b-w2q0dtx0ni 0.32s var(--ease);
}

.inc-panel[b-w2q0dtx0ni] { animation: inc-entra-b-w2q0dtx0ni 0.18s var(--ease); }
.inc-panel[hidden][b-w2q0dtx0ni] { display: none; }

.inc-sr[b-w2q0dtx0ni] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

@keyframes inc-entra-b-w2q0dtx0ni { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
@keyframes inc-pulso-b-w2q0dtx0ni { 0% { transform: scale(1); } 45% { transform: scale(1.18); } 100% { transform: scale(1); } }

@media (max-width: 991.98px) {
    .inc-page[b-w2q0dtx0ni] { padding: 20px 20px 40px; }
}

@media (max-width: 575.98px) {
    .inc-page[b-w2q0dtx0ni] { padding: 16px 14px 36px; }
    .inc-h-ico[b-w2q0dtx0ni] { display: none; }
    .inc-titulo[b-w2q0dtx0ni] { font-size: 22px; }
    /* Solo el selector (label + select) se apila; la escuela fija conserva icono y nombre en una linea. */
    .inc-contexto:not(.inc-contexto--fijo)[b-w2q0dtx0ni] { flex-direction: column; align-items: stretch; }
    .inc-select[b-w2q0dtx0ni] { max-width: none; }
    .inc-tab[b-w2q0dtx0ni] { flex: 1 1 0; justify-content: center; padding: 10px 8px; font-size: 13px; }
}

@media (pointer: coarse) {
    .inc-bc a[b-w2q0dtx0ni] { display: inline-flex; align-items: center; min-height: 44px; }
    .inc-select[b-w2q0dtx0ni] { min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
    .inc-panel[b-w2q0dtx0ni], .inc-tab-n[b-w2q0dtx0ni] { animation: none; }
    .inc-tab[b-w2q0dtx0ni] { transition: none; }
}
/* /Pages/ControlEscolar/Index.razor.rz.scp.css */
/* ===================================================================
   CONTROL ESCOLAR — Landing (chrome v2 + cards legacy)
   =================================================================== */

/* ── Container + chrome v2 (prefijo cei-) ───────────────────────── */
.cei-container[b-ngeeo2ew6a] {
    padding: 22px 28px 36px;
    max-width: 100%;
    font-family: var(--font-sans);
    color: var(--text-primary);
}

.cei-bc[b-ngeeo2ew6a] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 14px;
    font-size: 12px;
    color: var(--text-muted);
    flex-wrap: wrap;
}

.cei-bc .msr[b-ngeeo2ew6a] { font-size: 14px; }

.cei-bc a[b-ngeeo2ew6a] {
    color: var(--text-secondary);
    text-decoration: none;
    cursor: pointer;
    transition: color 0.15s ease;
}

.cei-bc a:hover[b-ngeeo2ew6a] { color: var(--brand-teal-deep); }

.cei-sep[b-ngeeo2ew6a] { color: var(--text-muted); }
.cei-current[b-ngeeo2ew6a] { color: var(--text-primary); font-weight: 600; }

.cei-h[b-ngeeo2ew6a] {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 22px;
}

.cei-h-icon[b-ngeeo2ew6a] {
    width: 48px;
    height: 48px;
    border-radius: 13px;
    background: linear-gradient(135deg, #4F46E5, #3730A3);
    color: #FFFFFF;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(79, 70, 229, 0.25);
}

.cei-h-icon .msr[b-ngeeo2ew6a] { font-size: 26px; }

.cei-h-block[b-ngeeo2ew6a] { flex: 1; min-width: 0; }

.cei-h-title[b-ngeeo2ew6a] {
    font-family: var(--font-serif);
    font-size: 26px;
    font-weight: 600;
    color: var(--text-primary);
    letter-spacing: -0.4px;
    margin: 0 0 4px;
    line-height: 1.1;
}

.cei-h-sub[b-ngeeo2ew6a] {
    font-size: 13px;
    color: var(--text-secondary);
    margin: 0;
}

/* ── Section label ──────────────────────────────────────────────── */
.ce-section-label[b-ngeeo2ew6a] {
    font-size: 11px;
    color: var(--text-muted);
    letter-spacing: 0.08em;
    margin: 26px 0 12px;
    font-weight: 700;
    text-transform: uppercase;
}

.ce-section-label:first-of-type[b-ngeeo2ew6a] { margin-top: 0; }

/* Sublinea de la franja "En la hoja de ruta" */
.ce-section-sub[b-ngeeo2ew6a] {
    font-size: 12.5px;
    color: var(--text-secondary);
    margin: -6px 0 12px;
}

/* ── Grid de cards ──────────────────────────────────────────────── */
.ce-cards-grid[b-ngeeo2ew6a] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

.ce-card[b-ngeeo2ew6a] {
    background: var(--bg-panel);
    border-radius: 14px;
    border: 1px solid var(--border-soft);
    padding: 22px 14px;
    text-align: center;
    text-decoration: none;
    color: inherit;
    cursor: pointer;
    transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    min-height: 148px;
}

.ce-card:hover[b-ngeeo2ew6a] {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
    border-color: var(--brand-teal);
    text-decoration: none;
    color: inherit;
}

.ce-card-icon[b-ngeeo2ew6a] {
    width: 50px;
    height: 50px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 14px;
}

.ce-card-icon .msr[b-ngeeo2ew6a] { font-size: 26px !important; }

.ce-card-title[b-ngeeo2ew6a] {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: 4px;
}

.ce-card-subtitle[b-ngeeo2ew6a] {
    font-size: 12px;
    color: var(--text-muted);
}

/* ── Card "Próximamente" (no navegable, hoja de ruta) ───────────── */
.ce-card--soon[b-ngeeo2ew6a] {
    border: 1px dashed var(--border-med);
    cursor: default;
    background: var(--bg-panel);
}

.ce-card--soon:hover[b-ngeeo2ew6a] {
    transform: none;
    box-shadow: none;
    border-color: var(--border-med);
}

.ce-card--soon .ce-card-icon[b-ngeeo2ew6a] { background: var(--bg-cream); }
.ce-card--soon .ce-card-icon .msr[b-ngeeo2ew6a] {
    font-size: 26px;
    color: var(--text-muted);
}
.ce-card--soon .ce-card-title[b-ngeeo2ew6a] { color: var(--text-secondary); }

.ce-chip-soon[b-ngeeo2ew6a] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-top: 10px;
    padding: 3px 9px;
    border-radius: 99px;
    background: rgba(45, 110, 163, 0.12);
    color: var(--info);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.3px;
    text-transform: uppercase;
}

.ce-chip-soon .msr[b-ngeeo2ew6a] { font-size: 12px; }

/* ── Responsive ─────────────────────────────────────────────────── */
@media (max-width: 991.98px) {
    .ce-cards-grid[b-ngeeo2ew6a] {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }
    .cei-container[b-ngeeo2ew6a] { padding: 18px 16px 24px; }
}

@media (max-width: 575.98px) {
    .ce-cards-grid[b-ngeeo2ew6a] { gap: 10px; }
    .ce-card[b-ngeeo2ew6a] { padding: 16px 8px; min-height: 128px; }
    .ce-card-icon[b-ngeeo2ew6a] {
        width: 42px; height: 42px;
        border-radius: 10px;
        margin-bottom: 10px;
    }
    .ce-card-icon .msr[b-ngeeo2ew6a] { font-size: 22px !important; }
    .ce-card--soon .ce-card-icon .msr[b-ngeeo2ew6a] { font-size: 22px; }
    .ce-card-title[b-ngeeo2ew6a] { font-size: 13px; }
    .ce-card-subtitle[b-ngeeo2ew6a] { font-size: 11px; }
    .cei-h-title[b-ngeeo2ew6a] { font-size: 22px; }
    .cei-h-icon[b-ngeeo2ew6a] { width: 42px; height: 42px; border-radius: 11px; }
    .cei-h-icon .msr[b-ngeeo2ew6a] { font-size: 22px; }
}

/* TURNOS-01 · selector de turno del hub */
.cei-turno[b-ngeeo2ew6a] { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin: -4px 0 18px; }
.cei-turno-escuela[b-ngeeo2ew6a] { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--text-secondary); }
.cei-turno-escuela .msr[b-ngeeo2ew6a] { font-size: 16px; color: var(--text-muted); }

/* TURNOS-01 rev. 3: sin escuela de contexto elegida no hay selector de turno */
.cei-turno-nota[b-ngeeo2ew6a] { display: flex; align-items: center; gap: 6px; margin: 0 0 16px; color: var(--text-secondary); font-size: 13px; }
.cei-turno-nota .msr[b-ngeeo2ew6a] { font-size: 18px; color: var(--brand-teal-deep); }

/* FILTROS-ESCUELA-TURNO */
.cei-turno-ayuda[b-ngeeo2ew6a] {
    font-size: 12px;
    color: var(--text-muted);
}
/* /Pages/ControlEscolar/Justificantes.razor.rz.scp.css */
/* ========================================================================
   JUSTIFICANTES — PÁGINA (chrome v2 + contenido legacy intacto)
   ======================================================================== */

.just-page[b-7x37b9suyg] {
    padding: 22px 28px 36px;
    max-width: 100%;
    font-family: var(--font-sans);
    color: var(--text-primary);
}

/* ── Chrome v2 ───────────────────────────────────────────────────── */
.just-bc[b-7x37b9suyg] {
    display: flex; align-items: center; gap: 6px;
    margin-bottom: 14px; font-size: 12px;
    color: var(--text-muted); flex-wrap: wrap;
}
.just-bc .msr[b-7x37b9suyg] { font-size: 14px; }
.just-bc a[b-7x37b9suyg] {
    color: var(--text-secondary);
    text-decoration: none; cursor: pointer;
    transition: color 0.15s ease;
}
.just-bc a:hover[b-7x37b9suyg] { color: var(--brand-teal-deep); }
.just-sep[b-7x37b9suyg] { color: var(--text-muted); }
.just-current[b-7x37b9suyg] { color: var(--text-primary); font-weight: 600; }

.just-h[b-7x37b9suyg] {
    display: flex; align-items: center; gap: 14px;
    margin-bottom: 22px;
}
.just-h-icon[b-7x37b9suyg] {
    width: 48px; height: 48px;
    border-radius: 13px;
    background: linear-gradient(135deg, #10B981, #047857);
    color: #FFFFFF;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(16, 185, 129, 0.25);
}
.just-h-icon .msr[b-7x37b9suyg] { font-size: 26px; }
.just-h-block[b-7x37b9suyg] { flex: 1; min-width: 0; }
.just-h-title[b-7x37b9suyg] {
    font-family: var(--font-serif);
    font-size: 26px; font-weight: 600;
    color: var(--text-primary);
    letter-spacing: -0.4px;
    margin: 0 0 4px;
    line-height: 1.1;
}
.just-h-sub[b-7x37b9suyg] {
    font-size: 13px; color: var(--text-secondary);
    margin: 0;
}

@media (max-width: 575.98px) {
    .just-page[b-7x37b9suyg] { padding: 18px 16px 24px; }
    .just-h-title[b-7x37b9suyg] { font-size: 22px; }
    .just-h-icon[b-7x37b9suyg] { width: 42px; height: 42px; border-radius: 11px; }
    .just-h-icon .msr[b-7x37b9suyg] { font-size: 22px; }
}

/* Loading inicial */
.just-loading-state[b-7x37b9suyg] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 40px;
    color: #888;
    font-size: 13px;
}

.just-spinner-big[b-7x37b9suyg] {
    width: 36px; height: 36px;
    border-radius: 50%;
    border: 3px solid #E1F5EE;
    border-top-color: #0F6E56;
    animation: just-spin-b-7x37b9suyg 1s linear infinite;
}

/* Grid 2 columnas */
.just-grid[b-7x37b9suyg] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
    gap: 10px;
    align-items: start;
}

.just-col[b-7x37b9suyg] { display: flex; flex-direction: column; gap: 10px; min-width: 0; }

/* Card base */
.just-card[b-7x37b9suyg] {
    background: white;
    border-radius: 11px;
    border: 0.5px solid rgba(0,0,0,0.06);
    padding: 12px 14px;
    margin-bottom: 10px;
}

.just-col .just-card[b-7x37b9suyg] { margin-bottom: 0; }

.just-card-header[b-7x37b9suyg] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 9px;
    gap: 8px;
}

.just-section-label[b-7x37b9suyg] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 500;
    color: #444;
}

.just-section-icon[b-7x37b9suyg] {
    font-size: 14px !important;
    color: #4BA8AA;
}

.just-section-hint[b-7x37b9suyg] {
    font-size: 10px;
    color: #888;
}

.just-count-badge[b-7x37b9suyg] {
    font-size: 10px;
    color: #0F6E56;
    background: #E1F5EE;
    padding: 2px 7px;
    border-radius: 99px;
    font-weight: 500;
    margin-left: 4px;
}

.just-hint-card[b-7x37b9suyg] {
    background: #F5F7F9;
    border: 1px dashed rgba(0, 0, 0, 0.12);
    border-radius: 11px;
    padding: 20px;
    text-align: center;
    color: #888;
    font-size: 13px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    margin-top: 4px;
}

.just-hint-card .msr[b-7x37b9suyg] { font-size: 20px; color: #BBB; }

.just-empty[b-7x37b9suyg] {
    text-align: center;
    padding: 20px;
    color: #AAA;
    font-size: 11px;
}

/* ========================================================================
   CHIPS DE GRUPO COLORIZADOS
   ======================================================================== */

.just-group-chips[b-7x37b9suyg] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.just-group-chip[b-7x37b9suyg] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 7px 13px;
    border-radius: 99px;
    border: 1px solid;
    font-size: 13px;
    cursor: pointer;
    transition: transform 0.1s ease;
    font-family: inherit;
}

.just-group-chip:hover[b-7x37b9suyg] { transform: translateY(-1px); }

.just-group-chip.active[b-7x37b9suyg] {
    border-width: 1.5px;
    font-weight: 500;
}

.just-grade-badge[b-7x37b9suyg] {
    display: inline-flex;
    align-items: center; justify-content: center;
    width: 20px; height: 20px;
    border-radius: 50%;
    font-size: 10px;
    font-weight: 500;
    flex-shrink: 0;
}

.just-grade-badge-sm[b-7x37b9suyg] {
    display: inline-flex;
    align-items: center; justify-content: center;
    width: 16px; height: 16px;
    border-radius: 50%;
    font-size: 9px;
    font-weight: 500;
    flex-shrink: 0;
}

/* ========================================================================
   MULTI-GROUP STACK (alumnos agrupados por grupo)
   ======================================================================== */

.just-groups-stack[b-7x37b9suyg] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 4px;
}

.just-group-section[b-7x37b9suyg] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.just-group-separator[b-7x37b9suyg] {
    display: flex;
    align-items: center;
    gap: 6px;
}

.just-group-sep-label[b-7x37b9suyg] {
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 0.03em;
}

.just-group-sep-line[b-7x37b9suyg] {
    flex: 1;
    height: 1px;
    margin-left: 3px;
    opacity: 0.18;
}

/* ========================================================================
   CHIPS DE ALUMNOS (inline)
   ======================================================================== */

.just-student-chips[b-7x37b9suyg] {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.just-student-chip[b-7x37b9suyg] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 4px 3px 3px;
    background: #F5F7F9;
    border: 0.5px solid rgba(0, 0, 0, 0.08);
    border-radius: 99px;
    font-size: 11px;
    color: #444;
}

.just-student-avatar[b-7x37b9suyg] {
    width: 22px; height: 22px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center; justify-content: center;
    font-size: 9px;
    font-weight: 500;
    flex-shrink: 0;
}

.just-chip-nombre[b-7x37b9suyg] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
    max-width: 130px;
}

.just-chip-close[b-7x37b9suyg] {
    width: 15px; height: 15px;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.08);
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center; justify-content: center;
    padding: 0;
    transition: background 0.15s ease;
}

.just-chip-close:hover[b-7x37b9suyg] { background: rgba(163, 45, 45, 0.2); }
.just-chip-close .msr[b-7x37b9suyg] { font-size: 10px; color: #888; }
.just-chip-close:hover .msr[b-7x37b9suyg] { color: #A32D2D; }

.just-chip-add[b-7x37b9suyg] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 11px;
    background: transparent;
    border: 1px dashed #4BA8AA;
    border-radius: 99px;
    font-size: 11px;
    color: #0F6E56;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
    transition: background 0.15s ease;
}

.just-chip-add:hover[b-7x37b9suyg] { background: rgba(109, 199, 208, 0.1); }
.just-chip-add .msr[b-7x37b9suyg] { font-size: 12px; color: #4BA8AA; }

/* ========================================================================
   CHIPS DE FECHAS
   ======================================================================== */

.just-date-chips[b-7x37b9suyg] {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.just-date-chip[b-7x37b9suyg] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 5px 4px 10px;
    background: #E6F1FB;
    border: 1px solid #85B7EB;
    border-radius: 99px;
    font-size: 11px;
    color: #0C447C;
    font-weight: 500;
}

.just-date-chip .msr:first-child[b-7x37b9suyg] {
    font-size: 11px;
    color: #185FA5;
}

.just-date-duration[b-7x37b9suyg] {
    font-size: 9px;
    color: #185FA5;
    background: rgba(24, 95, 165, 0.1);
    padding: 0 5px;
    border-radius: 99px;
}

.just-date-chip .just-chip-close[b-7x37b9suyg] {
    background: rgba(24, 95, 165, 0.15);
}

.just-date-chip .just-chip-close .msr[b-7x37b9suyg] {
    color: #185FA5;
}

/* ========================================================================
   SELECTOR DE FECHAS INLINE (modo Día / Rango + calendario Telerik)
   ======================================================================== */

.just-fecha-divider[b-7x37b9suyg] {
    height: 1px;
    background: rgba(0, 0, 0, 0.06);
    margin: 10px 0;
}

.just-fecha-mode-row[b-7x37b9suyg] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    flex-wrap: wrap;
}

.just-fecha-mode-label[b-7x37b9suyg] {
    font-size: 10px;
    font-weight: 500;
    color: #888;
    letter-spacing: 0.06em;
}

.just-fecha-mode-chip[b-7x37b9suyg] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 11px;
    border-radius: 99px;
    font-size: 11px;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
    transition: all 0.15s ease;
    background: white;
    border: 1px solid #DDD;
    color: #666;
}

.just-fecha-mode-chip:hover[b-7x37b9suyg] {
    border-color: #9FE1CB;
    color: #0F6E56;
}

.just-fecha-mode-chip.active[b-7x37b9suyg] {
    background: #E1F5EE;
    border-color: #1D9E75;
    border-width: 1.5px;
    color: #085041;
}

.just-fecha-mode-chip.active .msr[b-7x37b9suyg] {
    color: #1D9E75;
}

.just-fecha-mode-chip .msr[b-7x37b9suyg] {
    font-size: 12px;
    color: #888;
}

.just-fecha-calendar[b-7x37b9suyg] {
    display: flex;
    justify-content: center;
    margin-bottom: 8px;
}

[b-7x37b9suyg] .just-fecha-calendar .k-calendar {
    border: none;
    width: 100%;
}

.just-dias-multiple-preview[b-7x37b9suyg] {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-bottom: 8px;
    padding: 7px;
    background: #F5F7F9;
    border-radius: 7px;
}

.just-dia-pill[b-7x37b9suyg] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 4px 3px 7px;
    background: #E1F5EE;
    border: 1px solid #9FE1CB;
    border-radius: 99px;
    font-size: 10px;
    font-weight: 500;
    color: #085041;
}

.just-dia-pill > .msr[b-7x37b9suyg] {
    font-size: 11px;
    color: #1D9E75;
}

.just-dia-pill button[b-7x37b9suyg] {
    width: 14px; height: 14px;
    border-radius: 50%;
    background: rgba(29, 158, 117, 0.18);
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center; justify-content: center;
    padding: 0;
}

.just-dia-pill button:hover[b-7x37b9suyg] { background: rgba(163, 45, 45, 0.25); }

.just-dia-pill button .msr[b-7x37b9suyg] { font-size: 9px; color: #085041; }
.just-dia-pill button:hover .msr[b-7x37b9suyg] { color: #A32D2D; }

.just-fecha-hint[b-7x37b9suyg] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    background: #F5F7F9;
    border-radius: 6px;
    margin-bottom: 8px;
}

.just-fecha-hint .msr[b-7x37b9suyg] {
    font-size: 12px;
    color: #888;
    flex-shrink: 0;
}

.just-fecha-hint span:last-child[b-7x37b9suyg] {
    font-size: 10px;
    color: #666;
    line-height: 1.4;
}

.just-fecha-summary[b-7x37b9suyg] {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 8px 11px;
    background: #F5F7F9;
    border-radius: 7px;
    margin-bottom: 10px;
    font-size: 11px;
    color: #888;
    font-weight: 500;
    transition: background 0.2s ease;
}

.just-fecha-summary.has-selection[b-7x37b9suyg] {
    background: #E1F5EE;
    color: #0F6E56;
}

.just-fecha-summary .msr[b-7x37b9suyg] {
    font-size: 14px;
    color: #BBB;
}

.just-fecha-summary.has-selection .msr[b-7x37b9suyg] {
    color: #1D9E75;
}

.just-fecha-add-btn[b-7x37b9suyg] {
    width: 100%;
    padding: 9px 12px;
    background: #4BA8AA;
    color: white;
    border: none;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    transition: background 0.15s ease;
}

.just-fecha-add-btn:hover:not(:disabled)[b-7x37b9suyg] {
    background: #3B8D8F;
}

.just-fecha-add-btn:disabled[b-7x37b9suyg] {
    background: #C5D7D9;
    cursor: not-allowed;
}

.just-fecha-add-btn .msr[b-7x37b9suyg] {
    font-size: 14px;
}

/* ========================================================================
   MOTIVO + PLANTILLAS
   ======================================================================== */

.just-textarea[b-7x37b9suyg] {
    width: 100%;
    background: #F9F9F9;
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 7px;
    padding: 9px 11px;
    font-size: 12px;
    color: #444;
    font-family: inherit;
    resize: vertical;
    min-height: 54px;
    outline: none;
    transition: border-color 0.15s ease;
    line-height: 1.5;
    box-sizing: border-box;
}

.just-textarea:focus[b-7x37b9suyg] { border-color: #4BA8AA; }
.just-textarea[b-7x37b9suyg]::placeholder { color: #AAA; }

.just-templates[b-7x37b9suyg] { margin-top: 9px; }

.just-templates-label[b-7x37b9suyg] {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-bottom: 6px;
    font-size: 9px;
    color: #888;
    font-weight: 500;
    letter-spacing: 0.06em;
}

.just-templates-label .msr[b-7x37b9suyg] {
    font-size: 11px;
    color: #7F77DD;
}

.just-templates-chips[b-7x37b9suyg] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.just-template-chip[b-7x37b9suyg] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 3px 9px;
    border-radius: 99px;
    font-size: 10px;
    background: white;
    border: 1px solid #DDD;
    color: #666;
    cursor: pointer;
    font-family: inherit;
    transition: all 0.15s ease;
}

.just-template-chip:hover[b-7x37b9suyg] {
    border-color: #AFA9EC;
    background: #F9F7FF;
    color: #3C3489;
}

.just-template-chip .msr[b-7x37b9suyg] { font-size: 9px; }

/* ========================================================================
   TOGGLES + WHATSAPP PREVIEW
   ======================================================================== */

.just-toggle-row[b-7x37b9suyg] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 3px 0;
    gap: 10px;
}

.just-toggle-row + .just-toggle-row[b-7x37b9suyg] {
    border-top: 0.5px solid rgba(0, 0, 0, 0.05);
    margin-top: 7px;
    padding-top: 10px;
}

.just-toggle-info[b-7x37b9suyg] {
    display: flex;
    align-items: center;
    gap: 7px;
    flex: 1;
    min-width: 0;
}

.just-toggle-info .msr[b-7x37b9suyg] { font-size: 15px; flex-shrink: 0; }

.just-toggle-title[b-7x37b9suyg] { font-size: 11px; color: #444; font-weight: 500; }
.just-toggle-sub[b-7x37b9suyg] { font-size: 9px; color: #888; }

.just-switch[b-7x37b9suyg] {
    position: relative;
    width: 30px;
    height: 17px;
    flex-shrink: 0;
    display: inline-block;
}

.just-switch input[b-7x37b9suyg] {
    opacity: 0;
    width: 0;
    height: 0;
}

.just-slider[b-7x37b9suyg] {
    position: absolute;
    inset: 0;
    background: #CCC;
    border-radius: 99px;
    cursor: pointer;
    transition: background 0.2s ease;
}

.just-slider[b-7x37b9suyg]::before {
    content: "";
    position: absolute;
    width: 13px;
    height: 13px;
    left: 2px;
    top: 2px;
    background: white;
    border-radius: 50%;
    transition: transform 0.2s ease;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
}

.just-switch input:checked + .just-slider[b-7x37b9suyg] { background: #4BA8AA; }
.just-switch input:checked + .just-slider[b-7x37b9suyg]::before { transform: translateX(13px); }

/* WhatsApp preview */
.just-whatsapp-card[b-7x37b9suyg] {
    margin-top: 10px;
    background: white;
    border: 1px solid rgba(37, 211, 102, 0.35);
    border-radius: 9px;
    overflow: hidden;
}

.just-whatsapp-header[b-7x37b9suyg] {
    background: rgba(37, 211, 102, 0.08);
    padding: 7px 9px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.just-whatsapp-icon[b-7x37b9suyg] {
    width: 18px; height: 18px;
    border-radius: 50%;
    background: #25D366;
    display: flex;
    align-items: center; justify-content: center;
    flex-shrink: 0;
}

.just-whatsapp-icon .msr[b-7x37b9suyg] {
    font-size: 10px;
    color: white;
}

.just-whatsapp-title-block[b-7x37b9suyg] {
    flex: 1;
    min-width: 0;
}

.just-whatsapp-title[b-7x37b9suyg] {
    font-size: 10px;
    color: #0F7A3B;
    font-weight: 500;
}

.just-whatsapp-sub[b-7x37b9suyg] {
    font-size: 8px;
    color: #5B8F5B;
}

.just-whatsapp-count[b-7x37b9suyg] {
    font-size: 9px;
    color: #25D366;
    font-weight: 500;
}

.just-whatsapp-body[b-7x37b9suyg] {
    padding: 9px 10px;
    background: #F0F4E8;
    font-size: 10px;
    color: #444;
    line-height: 1.6;
}

.just-whatsapp-url[b-7x37b9suyg] {
    color: #888;
    font-size: 8px;
    margin-bottom: 4px;
}

.wa-placeholder[b-7x37b9suyg] { color: #0F7A3B; font-weight: 500; }
.wa-fecha[b-7x37b9suyg] { color: #185FA5; font-weight: 500; }
.wa-motivo[b-7x37b9suyg] { color: #3C3489; font-weight: 500; }

.wa-cita[b-7x37b9suyg] {
    font-style: italic;
    color: #666;
}

.wa-footer[b-7x37b9suyg] {
    color: #888;
    font-size: 8px;
    font-style: italic;
}

.just-whatsapp-footer-note[b-7x37b9suyg] {
    padding: 5px 9px;
    background: #F7F9F5;
    border-top: 0.5px dashed rgba(37, 211, 102, 0.2);
    display: flex;
    align-items: center;
    gap: 4px;
}

.just-whatsapp-footer-note .msr[b-7x37b9suyg] {
    font-size: 10px;
    color: #888;
}

.just-whatsapp-footer-note span:last-child[b-7x37b9suyg] {
    font-size: 8px;
    color: #888;
}

/* ========================================================================
   BOTONES DE ACCIÓN + TOAST
   ======================================================================== */

.just-actions[b-7x37b9suyg] {
    display: flex;
    gap: 8px;
    margin-top: 4px;
}

.just-btn-secondary[b-7x37b9suyg] {
    flex: 1;
    padding: 12px;
    background: white;
    color: #888;
    border: 1px solid #DDD;
    border-radius: 10px;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
    transition: background 0.15s ease;
}

.just-btn-secondary:hover[b-7x37b9suyg] { background: #F5F7F9; }

.just-btn-primary[b-7x37b9suyg] {
    flex: 2;
    padding: 12px;
    background: #0F6E56;
    color: white;
    border: none;
    border-radius: 10px;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    transition: background 0.15s ease, transform 0.1s ease;
}

.just-btn-primary:hover:not(:disabled)[b-7x37b9suyg] { background: #0B5543; }
.just-btn-primary:active:not(:disabled)[b-7x37b9suyg] { transform: scale(0.98); }
.just-btn-primary:disabled[b-7x37b9suyg] {
    background: #B5D4C7;
    cursor: not-allowed;
}

.just-btn-primary .msr[b-7x37b9suyg] { font-size: 14px; }

.just-spinning[b-7x37b9suyg] { animation: just-spin-b-7x37b9suyg 1s linear infinite; }
@keyframes just-spin-b-7x37b9suyg {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.just-toast[b-7x37b9suyg] {
    margin-top: 8px;
    padding: 10px 12px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
}

.just-toast .msr[b-7x37b9suyg] { font-size: 16px; }
.just-toast-ok[b-7x37b9suyg]    { background: #E1F5EE; color: #0F6E56; }
.just-toast-error[b-7x37b9suyg] { background: #FCEBEB; color: #A32D2D; }

/* ========================================================================
   RESPONSIVE
   ======================================================================== */

@media (max-width: 991.98px) {
    .just-grid[b-7x37b9suyg] { grid-template-columns: 1fr; }
    .just-page[b-7x37b9suyg] { padding: 16px; }
}

@media (max-width: 575.98px) {
    .just-page[b-7x37b9suyg] { padding: 12px; }
    .just-title[b-7x37b9suyg] { font-size: 17px; }
    .just-card[b-7x37b9suyg] { padding: 11px 12px; }
    .just-group-chip[b-7x37b9suyg] { font-size: 12px; padding: 6px 11px; }
    .just-grade-badge[b-7x37b9suyg] { width: 18px; height: 18px; font-size: 9px; }
    .just-btn-primary[b-7x37b9suyg] { font-size: 12px; padding: 11px; }
}
/* /Pages/ControlEscolar/Reportes.razor.rz.scp.css */
/* ========================================================================
   REPORTES — AGREGAR REPORTE DE INCIDENCIA (v1, 2026-10-10)
   Columna izquierda: Components/ReportesIncidencia/SelectorAlumnosBuscador (estilos propios).
   Aqui: chrome de la pagina, faltas en chips, detalle, avisos y guardar.
   ======================================================================== */

.rep-page[b-sliq7djzce] {
    padding: 22px 28px 36px;
    max-width: 100%;
    font-family: var(--font-sans);
    color: var(--text-primary);
    --rep-leve: #9A5B12;  --rep-leve-bg: #FBEFD9;
    --rep-mod: #C2410C;   --rep-mod-bg: #FFEDD5;
    --rep-grave: #B42318; --rep-grave-bg: #FDE4E1;
}

/* ── Chrome v2 ───────────────────────────────────────────────────── */
.rep-bc[b-sliq7djzce] {
    display: flex; align-items: center; gap: 6px;
    margin-bottom: 14px; font-size: 12px;
    color: var(--text-muted); flex-wrap: wrap;
}
.rep-bc .msr[b-sliq7djzce] { font-size: 14px; }
.rep-bc a[b-sliq7djzce] {
    color: var(--text-secondary);
    text-decoration: none; cursor: pointer;
    transition: color 0.15s ease;
}
.rep-bc a:hover[b-sliq7djzce] { color: var(--brand-teal-deep); }
.rep-sep[b-sliq7djzce] { color: var(--text-muted); }
.rep-current[b-sliq7djzce] { color: var(--text-primary); font-weight: 600; }

.rep-h[b-sliq7djzce] {
    display: flex; align-items: center; gap: 14px;
    margin-bottom: 22px;
}
.rep-h-icon[b-sliq7djzce] {
    width: 48px; height: 48px;
    border-radius: 13px;
    background: linear-gradient(135deg, #DC2626, #991B1B);
    color: #FFFFFF;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(220, 38, 38, 0.25);
}
.rep-h-icon .msr[b-sliq7djzce] { font-size: 26px; }
.rep-h-block[b-sliq7djzce] { flex: 1; min-width: 0; }
.rep-h-title[b-sliq7djzce] {
    font-family: var(--font-serif);
    font-size: 26px; font-weight: 600;
    color: var(--text-primary);
    letter-spacing: -0.4px;
    margin: 0 0 4px;
    line-height: 1.1;
}
.rep-h-sub[b-sliq7djzce] {
    font-size: 13px; color: var(--text-secondary);
    margin: 0;
}

/* ===== Loading ===== */
.rep-loading-state[b-sliq7djzce] {
    display: flex; flex-direction: column; align-items: center;
    padding: 60px 20px; gap: 16px; color: var(--text-secondary); font-size: 14px;
}
.rep-spinner-big[b-sliq7djzce] {
    width: 36px; height: 36px;
    border: 3px solid #F0E8E8; border-top: 3px solid var(--danger);
    border-radius: 50%; animation: rep-spin-b-sliq7djzce 0.8s linear infinite;
}
@keyframes rep-spin-b-sliq7djzce { to { transform: rotate(360deg); } }

/* ===== Grid principal (dos columnas, como hoy) ===== */
.rep-grid[b-sliq7djzce] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}
.rep-col[b-sliq7djzce] { display: flex; flex-direction: column; gap: 14px; min-width: 0; }

/* ===== Card base ===== */
.rep-card[b-sliq7djzce] {
    background: var(--bg-panel);
    border-radius: 16px;
    padding: 14px 16px;
    box-shadow: var(--pz-shadow-soft);
}
.rep-card-header[b-sliq7djzce] {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 12px; gap: 8px;
}
.rep-section-label[b-sliq7djzce] {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 10.5px; color: var(--text-muted);
    letter-spacing: 0.12em; font-weight: 800;
}
.rep-section-label .msr[b-sliq7djzce] { font-size: 16px; color: var(--brand-teal-deep); letter-spacing: 0; }
.rep-section-hint[b-sliq7djzce] { font-size: 11px; color: var(--text-muted); font-weight: 600; }

.rep-empty[b-sliq7djzce] { padding: 6px 0; color: var(--text-muted); font-size: 12px; }

/* ===== Desde Mis clases: barra de la clase (degradado carbon -> color del grupo) ===== */
.rep-clase[b-sliq7djzce] {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 12px 14px; border-radius: 16px; color: #FFFFFF;
    background: linear-gradient(135deg, var(--carbon-2), var(--gc, var(--carbon-2)));
}
.rep-clase-b[b-sliq7djzce] { display: flex; flex-direction: column; min-width: 0; }
.rep-clase-b small[b-sliq7djzce] { font-size: 10px; font-weight: 800; letter-spacing: 0.12em; opacity: 0.8; }
.rep-clase-b b[b-sliq7djzce] { font-size: 16px; font-weight: 800; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rep-clase-todos[b-sliq7djzce] {
    display: inline-flex; align-items: center; gap: 6px; flex-shrink: 0;
    height: 36px; padding: 0 12px; border: none; border-radius: 12px; cursor: pointer;
    background: #FFFFFF; color: var(--text-primary); font: inherit; font-size: 13px; font-weight: 800;
}
.rep-clase-todos .msr[b-sliq7djzce] { font-size: 18px; }
.rep-clase-todos:disabled[b-sliq7djzce] { opacity: 0.6; cursor: default; }

/* ===== Faltas: chips con el color de su bloque ===== */
.rep-falta-block[b-sliq7djzce] { margin-bottom: 14px; --c: var(--rep-leve); --cb: var(--rep-leve-bg); }
.rep-falta-block:last-child[b-sliq7djzce] { margin-bottom: 0; }
.rep-falta-block.mod[b-sliq7djzce]   { --c: var(--rep-mod);   --cb: var(--rep-mod-bg); }
.rep-falta-block.grave[b-sliq7djzce] { --c: var(--rep-grave); --cb: var(--rep-grave-bg); }
.rep-falta-header[b-sliq7djzce] {
    display: flex; align-items: center; gap: 6px; margin-bottom: 8px; color: var(--c);
}
.rep-falta-header .msr[b-sliq7djzce] { font-size: 16px; }
.rep-falta-title[b-sliq7djzce] { font-size: 12.5px; font-weight: 800; }
.rep-falta-hint[b-sliq7djzce]  { font-size: 10.5px; color: var(--text-muted); margin-left: auto; font-weight: 600; }
.rep-badge-count[b-sliq7djzce] {
    font-size: 10px; color: var(--c); background: var(--cb);
    padding: 1px 7px; border-radius: 99px; font-weight: 800;
}

.rep-chips[b-sliq7djzce] { display: flex; flex-wrap: wrap; gap: 6px; }
.rep-chip[b-sliq7djzce] {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 6px 11px;
    border-radius: 99px;
    font-size: 12px; font-weight: 600;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    color: var(--text-primary);
    cursor: pointer;
    font-family: inherit;
    transition: border-color 0.15s ease, background 0.15s ease;
}
.rep-chip:hover[b-sliq7djzce] { border-color: var(--c); }
.rep-chip[aria-pressed="true"][b-sliq7djzce] { background: var(--cb); border-color: var(--c); color: var(--c); font-weight: 800; }
.rep-chip .msr[b-sliq7djzce] { font-size: 15px; }
.rep-chip.ver[b-sliq7djzce] { border-style: dashed; color: var(--text-secondary); }

/* ===== Detalle ===== */
.rep-textarea[b-sliq7djzce] {
    width: 100%;
    background: var(--cream);
    border: 1.5px solid var(--border-soft);
    border-radius: 12px;
    padding: 10px 12px;
    font-size: 13px;
    color: var(--text-primary);
    font-family: inherit;
    resize: vertical;
    min-height: 72px;
    outline: none;
    line-height: 1.5;
    box-sizing: border-box;
}
.rep-textarea:focus[b-sliq7djzce] { border-color: var(--brand-teal-primary); background: var(--bg-panel); box-shadow: 0 0 0 4px var(--bg-light-teal); }
.rep-textarea[b-sliq7djzce]::placeholder { color: var(--text-muted); }
.rep-plantillas[b-sliq7djzce] { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.rep-plantillas button[b-sliq7djzce] {
    display: inline-flex; align-items: center; gap: 4px;
    border: 1px dashed var(--border-med); background: transparent; border-radius: 8px;
    padding: 4px 9px; font: inherit; font-size: 11.5px; color: var(--text-secondary); cursor: pointer;
}
.rep-plantillas button:hover[b-sliq7djzce] { border-color: var(--brand-teal-deep); color: var(--brand-teal-deep); }
.rep-plantillas .msr[b-sliq7djzce] { font-size: 14px; }
.rep-char-count[b-sliq7djzce] { font-size: 10px; color: var(--text-muted); text-align: right; margin-top: 4px; }

/* ===== Aviso a la familia ===== */
.rep-toggle-row[b-sliq7djzce] { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.rep-toggle-info[b-sliq7djzce] { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0; }
.rep-toggle-info .msr[b-sliq7djzce] { font-size: 20px; flex-shrink: 0; }
.toggle-icon-fam[b-sliq7djzce] { color: var(--brand-teal-deep); }
.rep-toggle-title[b-sliq7djzce] { font-size: 13px; color: var(--text-primary); font-weight: 700; }
.rep-toggle-sub[b-sliq7djzce]   { font-size: 11px; color: var(--text-secondary); }
.rep-whatsapp-hint[b-sliq7djzce] {
    display: flex; align-items: center; gap: 8px; margin-top: 10px;
    font-size: 11.5px; color: var(--success-ink);
}
.rep-whatsapp-hint .msr[b-sliq7djzce] { font-size: 16px; }

.rep-switch[b-sliq7djzce] { position: relative; display: inline-block; width: 38px; height: 22px; flex-shrink: 0; }
.rep-switch input[b-sliq7djzce] { opacity: 0; width: 0; height: 0; }
.rep-slider[b-sliq7djzce] {
    position: absolute; cursor: pointer; inset: 0;
    background: var(--border-med); border-radius: 99px;
    transition: background 0.2s ease;
}
.rep-slider[b-sliq7djzce]::before {
    content: "";
    position: absolute;
    width: 16px; height: 16px;
    left: 3px; top: 3px;
    background: #FFFFFF;
    border-radius: 50%;
    transition: transform 0.15s ease;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}
.rep-switch input:checked + .rep-slider[b-sliq7djzce] { background: var(--brand-teal-deep); }
.rep-switch input:checked + .rep-slider[b-sliq7djzce]::before { transform: translateX(16px); }
.rep-switch input:focus-visible + .rep-slider[b-sliq7djzce] { outline: 2.5px solid var(--brand-teal-deep); outline-offset: 2px; }

/* ===== Guardar (carbon) ===== */
.rep-submit[b-sliq7djzce] {
    background: var(--carbon-2); color: #FFFFFF;
    border: none;
    padding: 13px 14px;
    border-radius: 14px;
    font-size: 14px; font-weight: 800;
    cursor: pointer;
    display: flex; align-items: center; justify-content: center; gap: 8px;
    font-family: inherit;
    transition: opacity 0.15s ease, transform 0.1s ease;
}
.rep-submit:active:not(:disabled)[b-sliq7djzce] { transform: scale(0.98); }
.rep-submit:disabled[b-sliq7djzce] { opacity: 0.4; cursor: default; }
.rep-submit .msr[b-sliq7djzce] { font-size: 19px; }
.rep-spinning[b-sliq7djzce] { animation: rep-spin-b-sliq7djzce 1s linear infinite; }

/* ===== Toast ===== */
.rep-toast[b-sliq7djzce] {
    position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%);
    z-index: 50; max-width: min(520px, calc(100vw - 32px));
    padding: 12px 16px;
    border-radius: 14px;
    font-size: 13.5px; font-weight: 700;
    display: flex; align-items: center; gap: 8px;
    box-shadow: 0 8px 24px rgba(20, 22, 25, 0.18);
    animation: rep-toast-in-b-sliq7djzce 0.2s ease-out;
}
@keyframes rep-toast-in-b-sliq7djzce { from { opacity: 0; transform: translate(-50%, 8px); } to { opacity: 1; transform: translateX(-50%); } }
.rep-toast .msr[b-sliq7djzce] { font-size: 18px; }
.rep-toast-ok[b-sliq7djzce] { background: #E1F5EE; color: #1D7A52; }
.rep-toast-error[b-sliq7djzce] { background: var(--error-bg); color: var(--danger); }

/* ── Citatorios: sugerencia de citar tras guardar (2026-09-29) ───────────── */
.rep-citar[b-sliq7djzce] {
    display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 14px;
    background: var(--bg-light-teal); border: 1px solid var(--brand-teal-primary); flex-wrap: wrap;
}
.rep-citar > .msr[b-sliq7djzce] { font-size: 24px; color: var(--brand-teal-deep); }
.rep-citar.grave[b-sliq7djzce] { background: var(--error-bg); border-color: var(--danger); }
.rep-citar.grave > .msr[b-sliq7djzce] { color: var(--danger); }
.rep-citar-b[b-sliq7djzce] { flex: 1; min-width: 180px; display: flex; flex-direction: column; }
.rep-citar-b b[b-sliq7djzce] { font-size: 14px; color: var(--text-primary); }
.rep-citar-b small[b-sliq7djzce] { font-size: 12.5px; color: var(--text-secondary); }
.rep-citar-btn[b-sliq7djzce] {
    display: inline-flex; align-items: center; height: 36px; padding: 0 14px; border-radius: 10px; text-decoration: none;
    background: linear-gradient(135deg, var(--brand-teal-dark), var(--brand-teal-deep)); color: #fff; font-weight: 600; font-size: 13px;
}
.rep-citar-x[b-sliq7djzce] { border: none; background: none; cursor: pointer; color: var(--text-muted); display: grid; place-items: center; }

.rep-page button:focus-visible[b-sliq7djzce],
.rep-page textarea:focus-visible[b-sliq7djzce] { outline: 2.5px solid var(--brand-teal-deep); outline-offset: 1px; }

/* ========================================================================
   RESPONSIVE
   ======================================================================== */
@media (max-width: 991.98px) {
    .rep-grid[b-sliq7djzce] { grid-template-columns: 1fr; }
    .rep-page[b-sliq7djzce] { padding: 16px; }
}
@media (max-width: 575.98px) {
    .rep-page[b-sliq7djzce] { padding: 18px 16px 24px; }
    .rep-h-title[b-sliq7djzce] { font-size: 22px; }
    .rep-h-icon[b-sliq7djzce] { width: 42px; height: 42px; border-radius: 11px; }
    .rep-h-icon .msr[b-sliq7djzce] { font-size: 22px; }
    .rep-card[b-sliq7djzce] { padding: 12px 14px; }
    /* El boton queda a la vista al bajar por el formulario en el celular. */
    .rep-toast[b-sliq7djzce] { bottom: 76px; }   /* encima del boton fijo */
    .rep-submit[b-sliq7djzce] {
        position: sticky; bottom: 10px; z-index: 10;
        box-shadow: 0 6px 18px rgba(20, 22, 25, 0.25);
    }
}
/* /Pages/ControlEscolar/RevisionAccesos.razor.rz.scp.css */
.ra-page[b-o5ntpui5ww] { max-width: 960px; margin: 0 auto; padding: 16px; display: flex; flex-direction: column; gap: 14px; }
.ra-bc[b-o5ntpui5ww] { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--text-secondary); }
.ra-bc a[b-o5ntpui5ww] { color: var(--brand-teal-deep); }
.ra-h[b-o5ntpui5ww] { display: flex; align-items: center; gap: 12px; }
.ra-h h1[b-o5ntpui5ww] { margin: 0; font-size: 22px; }
.ra-h p[b-o5ntpui5ww] { margin: 2px 0 0; color: var(--text-secondary); }
.ra-h-ico[b-o5ntpui5ww] { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--bg-light-teal); color: var(--brand-teal-deep); flex-shrink: 0; }
.ra-lbl[b-o5ntpui5ww] { font-weight: 700; font-size: 13px; }
.ra-select[b-o5ntpui5ww] { min-height: 40px; max-width: 420px; border: 1px solid var(--border-soft); border-radius: var(--radius-md); padding: 6px 10px; background: var(--bg-panel); color: var(--text-primary); }
.ra-card[b-o5ntpui5ww] { border: 1px solid var(--border-soft); border-radius: var(--radius-md); background: var(--bg-panel); padding: 16px; display: flex; flex-direction: column; gap: 10px; }
.ra-card h2[b-o5ntpui5ww] { margin: 0; font-size: 16px; }
.ra-help[b-o5ntpui5ww] { margin: 0; color: var(--text-secondary); font-size: 13.5px; }
.ra-vacio[b-o5ntpui5ww] { margin: 0; color: var(--text-secondary); font-size: 13.5px; font-style: italic; }
.ra-lista[b-o5ntpui5ww] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.ra-item[b-o5ntpui5ww] { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 10px 12px; border: 1px solid var(--border-soft); border-radius: var(--radius-md); }
.ra-item-info[b-o5ntpui5ww] { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.ra-alumno[b-o5ntpui5ww] { font-weight: 800; text-transform: uppercase; overflow-wrap: anywhere; }
.ra-meta[b-o5ntpui5ww] { font-size: 13px; color: var(--text-secondary); overflow-wrap: anywhere; }
.ra-chip[b-o5ntpui5ww] { align-self: flex-start; font-size: 12px; font-weight: 700; padding: 2px 8px; border-radius: 99px; background: var(--bg-cream); color: var(--text-primary); }
.ra-chip.pendiente[b-o5ntpui5ww] { background: var(--warning-bg, var(--bg-cream)); color: var(--warning, var(--text-primary)); }
.ra-chip.corregida[b-o5ntpui5ww] { background: var(--bg-light-teal); color: var(--brand-teal-deep); }
.ra-chip.sin_efecto[b-o5ntpui5ww] { background: var(--error-bg); color: var(--danger); }
.ra-acciones[b-o5ntpui5ww] { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.ra-form[b-o5ntpui5ww] { display: flex; flex-direction: column; gap: 6px; width: 100%; max-width: 460px; }
.ra-text[b-o5ntpui5ww] { min-height: 64px; border: 1px solid var(--border-soft); border-radius: var(--radius-md); padding: 8px 10px; background: var(--bg-panel); color: var(--text-primary); font: inherit; }
.ra-btn[b-o5ntpui5ww] { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 6px 14px; border: 1px solid var(--border-soft); border-radius: var(--radius-md); background: var(--bg-panel); color: var(--text-primary); font: 700 13.5px/1 var(--font-sans); cursor: pointer; }
.ra-btn.primario[b-o5ntpui5ww] { background: var(--brand-teal-deep); border-color: var(--brand-teal-deep); color: var(--bg-panel); }
.ra-btn:disabled[b-o5ntpui5ww] { opacity: 0.55; cursor: not-allowed; }
.ra-alert[b-o5ntpui5ww] { padding: 10px 12px; border-radius: var(--radius-md); font-size: 13.5px; }
.ra-alert.err[b-o5ntpui5ww] { background: var(--error-bg); color: var(--danger); }
.ra-alert.ok[b-o5ntpui5ww] { background: var(--bg-light-teal); color: var(--brand-teal-deep); }
@media (max-width: 640px) {
    .ra-item[b-o5ntpui5ww] { flex-direction: column; }
    .ra-btn[b-o5ntpui5ww] { flex: 1 1 auto; justify-content: center; }
}
/* /Pages/ControlEscolar/Roles/AccesoDenegadoCard.razor.rz.scp.css */
/* ============================================================================
   F9 T-1.4 — Acceso denegado explicado (mockup 12). Lienzo crema, card blanca.
   Jerarquía: tile → título serif → lede → acciones → detalle plegable.
   Escala 4/8px; transiciones 180ms solo en interactivos.
   ============================================================================ */

.deny-wrap[b-s8nyyxiqnu] {
    max-width: 620px;
    margin: 40px auto 0;
    padding: 0 16px 32px;
    font-family: var(--font-sans);
}

.deny-hero[b-s8nyyxiqnu] {
    text-align: center;
}

.deny-tile[b-s8nyyxiqnu] {
    display: inline-grid;
    place-items: center;
    width: 64px;
    height: 64px;
    border-radius: 20px;
    background: rgba(163, 45, 45, 0.12);
    margin-bottom: 16px;
}

.deny-tile .msr[b-s8nyyxiqnu] {
    font-size: 34px;
    color: var(--danger);
}

.deny-title[b-s8nyyxiqnu] {
    margin: 0 0 8px;
    font-family: var(--font-serif);
    font-size: 26px;
    font-weight: 600;
    color: var(--text-primary);
}

.deny-lede[b-s8nyyxiqnu] {
    margin: 0 auto 20px;
    max-width: 52ch;
    font-size: 14.5px;
    line-height: 1.55;
    color: var(--text-secondary);
}

.deny-actions[b-s8nyyxiqnu] {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 12px;
}

.deny-btn[b-s8nyyxiqnu] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 16px;
    border: 1px solid var(--border-med);
    border-radius: var(--radius-md);
    background: var(--bg-panel);
    color: var(--text-primary);
    font-family: var(--font-sans);
    font-size: 13.5px;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    transition: background 180ms var(--ease), border-color 180ms var(--ease);
}

.deny-btn:hover[b-s8nyyxiqnu] {
    background: var(--bg-cream);
    border-color: var(--border-sidebar);
}

.deny-btn:focus-visible[b-s8nyyxiqnu] {
    outline: 2px solid var(--brand-teal-deep);
    outline-offset: 2px;
}

.deny-btn .msr[b-s8nyyxiqnu] {
    font-size: 17px;
}

.deny-btn.ghost[b-s8nyyxiqnu] {
    background: transparent;
    border-color: transparent;
    color: var(--brand-teal-deep);
}

.deny-btn.ghost:hover[b-s8nyyxiqnu] {
    background: var(--bg-light-teal);
}

.deny-ruta[b-s8nyyxiqnu] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin: 0;
    font-size: 12px;
    color: var(--text-muted);
}

.deny-ruta .msr[b-s8nyyxiqnu] {
    font-size: 15px;
}

.deny-ruta code[b-s8nyyxiqnu] {
    font-family: var(--font-mono);
    font-size: 11.5px;
    background: var(--cream-deep);
    color: var(--carbon-3);
    padding: 2px 6px;
    border-radius: var(--radius-sm);
}

/* ── Detalle plegable para administradores ─────────────────────────────── */
.deny-card[b-s8nyyxiqnu] {
    margin-top: 24px;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
    padding: 14px 16px;
}

.deny-card summary[b-s8nyyxiqnu] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--text-secondary);
    cursor: pointer;
    list-style: none;
}

.deny-card summary[b-s8nyyxiqnu]::-webkit-details-marker {
    display: none;
}

.deny-card summary .msr[b-s8nyyxiqnu] {
    font-size: 18px;
    color: var(--info-ink);
}

.deny-card summary:hover[b-s8nyyxiqnu] {
    color: var(--text-primary);
}

.deny-steps[b-s8nyyxiqnu] {
    margin-top: 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.deny-step[b-s8nyyxiqnu] {
    display: flex;
    align-items: flex-start;
    gap: 9px;
}

.deny-ico[b-s8nyyxiqnu] {
    flex: none;
    width: 20px;
    height: 20px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    font-size: 12px;
    font-weight: 700;
    margin-top: 1px;
}

.deny-ico.ok[b-s8nyyxiqnu] {
    background: #D1FAE5;
    color: var(--success-ink);
}

.deny-ico.no[b-s8nyyxiqnu] {
    background: rgba(163, 45, 45, 0.12);
    color: var(--danger);
}

.deny-step-text[b-s8nyyxiqnu] {
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--text-secondary);
}

.deny-step-text.strong[b-s8nyyxiqnu] {
    font-weight: 600;
    color: var(--text-primary);
}

.deny-foot[b-s8nyyxiqnu] {
    margin: 12px 0 0;
    font-size: 11.5px;
    line-height: 1.5;
    color: var(--text-muted);
}

@media (max-width: 480px) {
    .deny-wrap[b-s8nyyxiqnu] {
        margin-top: 24px;
    }

    .deny-title[b-s8nyyxiqnu] {
        font-size: 22px;
    }

    .deny-actions[b-s8nyyxiqnu] {
        flex-direction: column;
        align-items: stretch;
    }

    .deny-btn[b-s8nyyxiqnu] {
        justify-content: center;
    }
}
/* /Pages/ControlEscolar/Roles/AsignarRoles.razor.rz.scp.css */
/* F9 · Usuarios y roles — extiende el sistema fin-* (finanzas.css) con las piezas
   propias de la asignacion de roles (mockup 04 aprobado). Escala 4/8px, tokens de tokens.css. */

.rol-helper[b-pvwn46agec] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--text-secondary, #6b7177);
    background: rgba(109, 199, 208, .10);
    border: 1px solid rgba(109, 199, 208, .35);
    border-radius: 10px;
    padding: 8px 12px;
    align-self: flex-end;
}

.rol-helper[b-pvwn46agec]  .msr,
.rol-helper .msr[b-pvwn46agec] { font-size: 18px; color: var(--brand-teal-deep, #2C6D6F); }

.rol-buscar[b-pvwn46agec] { min-width: 260px; }

.rol-celda-accion[b-pvwn46agec] { text-align: right; }

.rol-btn-cambiar[b-pvwn46agec] { white-space: nowrap; }
.rol-btn-cambiar .msr[b-pvwn46agec] { font-size: 17px; }

/* ---- Drawer: hero ---- */
.rol-avatar-hero[b-pvwn46agec] {
    width: 44px;
    height: 44px;
    font-size: 16px;
}

/* ---- Drawer: opciones de rol (cards radio) ---- */
.rol-opciones[b-pvwn46agec] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 4px;
}

.rol-opcion[b-pvwn46agec] {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    text-align: left;
    background: #fff;
    border: 1.5px solid #EAE6DA;
    border-radius: 12px;
    padding: 10px 12px;
    cursor: pointer;
    font: inherit;
    transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}

.rol-opcion:hover[b-pvwn46agec] { border-color: var(--brand-teal, #6DC7D0); background: rgba(109, 199, 208, .06); }

.rol-opcion:focus-visible[b-pvwn46agec] {
    outline: 2px solid var(--brand-teal-deep, #2C6D6F);
    outline-offset: 2px;
}

.rol-opcion.on[b-pvwn46agec] {
    border-color: var(--brand-teal-deep, #2C6D6F);
    background: rgba(109, 199, 208, .12);
    box-shadow: 0 1px 4px rgba(44, 109, 111, .12);
}

.rol-tile[b-pvwn46agec] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    flex: 0 0 auto;
}

.rol-tile .msr[b-pvwn46agec] { font-size: 20px; }
.rol-tile.t-viol[b-pvwn46agec] { background: rgba(122, 90, 190, .14); color: #6a4fae; }
.rol-tile.t-info[b-pvwn46agec] { background: rgba(45, 110, 163, .12); color: var(--info-ink, #2d6ea3); }
.rol-tile.t-neu[b-pvwn46agec]  { background: #F0ECE2; color: var(--text-secondary, #6b7177); }

.rol-opcion-txt[b-pvwn46agec] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
    min-width: 0;
}

.rol-opcion-txt b[b-pvwn46agec] { font-size: 14px; color: var(--text-primary, #22262b); }
.rol-opcion-txt span[b-pvwn46agec] { font-size: 12.5px; color: var(--text-secondary, #6b7177); }

.rol-check[b-pvwn46agec] { color: #C9C3B4; font-size: 20px; transition: color .18s ease; }
.rol-opcion.on .rol-check[b-pvwn46agec] { color: var(--brand-teal-deep, #2C6D6F); }

/* ---- Vigencia ---- */
.rol-nota-vigencia[b-pvwn46agec] {
    font-size: 12.5px;
    color: var(--text-secondary, #6b7177);
    margin: 6px 0 0;
}

/* ---- Error del servidor (candados: viven en el API) ---- */
.rol-error-server[b-pvwn46agec] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-top: 14px;
    padding: 10px 12px;
    border-radius: 10px;
    background: rgba(163, 45, 45, .10);
    border: 1px solid rgba(163, 45, 45, .30);
    color: var(--danger, #a32d2d);
    font-size: 13.5px;
}

.rol-error-server .msr[b-pvwn46agec] { font-size: 18px; margin-top: 1px; }

.rol-nota[b-pvwn46agec] {
    margin-top: 16px;
    font-size: 12.5px;
    color: var(--text-secondary, #6b7177);
    background: #FAF7EF;
    border-radius: 10px;
    padding: 10px 12px;
}

@media (max-width: 640px) {
    .rol-helper[b-pvwn46agec] { align-self: stretch; }
    .rol-celda-accion[b-pvwn46agec] { text-align: left; }
}
/* /Pages/ControlEscolar/Roles/EscuelaSwitcher.razor.rz.scp.css */
/* ============================================================================
   F9 T-1.4 — Conmutador de escuela (vive dentro del sidebar carbón).
   Tokens de wwwroot/css/tokens.css; escala de espaciado 4/8px.
   Contraste (medido en T-028/LEC-G007): texto carbón #1F2937 sobre teal
   #6EC6C8 = 7.39 (AA texto normal) → botón primario teal usa tinta carbón.
   ============================================================================ */

.esc-ctx[b-ur92prlfgw] {
    position: relative;
    padding: 8px 12px 4px;
}

/* ── Chip persistente ──────────────────────────────────────────────────── */
.esc-chip[b-ur92prlfgw] {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 8px 10px;
    background: var(--bg-sidebar-hover);
    border: 1px solid var(--border-sidebar);
    border-radius: var(--radius-md);
    color: var(--text-sidebar);
    font-family: var(--font-sans);
    text-align: left;
    cursor: pointer;
    transition: background 180ms var(--ease), border-color 180ms var(--ease);
}

.esc-chip:hover[b-ur92prlfgw],
.esc-chip.open[b-ur92prlfgw] {
    background: rgba(110, 198, 200, 0.10);
    border-color: rgba(110, 198, 200, 0.45);
}

.esc-chip:focus-visible[b-ur92prlfgw] {
    outline: 2px solid var(--brand-teal);
    outline-offset: 2px;
}

/* Multi-escuela sin contexto fijado: el chip pide la decisión (P4=A). */
.esc-chip.attn[b-ur92prlfgw] {
    border-color: var(--brand-teal);
    background: var(--bg-sidebar-active);
}

.esc-chip-icon[b-ur92prlfgw] {
    font-size: 20px;
    color: var(--brand-teal);
    flex: none;
}

.esc-chip-text[b-ur92prlfgw] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
    flex: 1;
}

.esc-chip-label[b-ur92prlfgw] {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-sidebar-muted);
}

/* FILTROS-ESCUELA-TURNO: el nombre del plantel se lee completo (hasta 3 lineas) en vez de
   cortarse a la mitad con "…"; el title del chip conserva el nombre entero. */
.esc-chip-name[b-ur92prlfgw] {
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
    color: var(--text-sidebar-active);
    white-space: normal;
    overflow: hidden;
    overflow-wrap: break-word;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}

/* Contexto unico (una sola escuela): informativo, no interactivo. */
.esc-chip--fijo[b-ur92prlfgw] {
    cursor: default;
}

.esc-chip--fijo:hover[b-ur92prlfgw] {
    background: var(--bg-sidebar-hover);
    border-color: var(--border-sidebar);
}

.esc-chip-caret[b-ur92prlfgw] {
    font-size: 18px;
    color: var(--text-sidebar-muted);
    flex: none;
}

/* Sidebar colapsado (68px): solo el icono, cuadrado y centrado. */
.esc-ctx.collapsed[b-ur92prlfgw] {
    padding: 8px 12px 4px;
}

.esc-ctx.collapsed .esc-chip[b-ur92prlfgw] {
    justify-content: center;
    padding: 10px 0;
}

.esc-ctx.collapsed .esc-chip-text[b-ur92prlfgw],
.esc-ctx.collapsed .esc-chip-caret[b-ur92prlfgw] {
    display: none;
}

/* ── Popover ───────────────────────────────────────────────────────────── */
.esc-scrim[b-ur92prlfgw] {
    position: fixed;
    inset: 0;
    z-index: var(--z-overlay);
    background: transparent;
}

.esc-pop[b-ur92prlfgw] {
    /* Vive a la DERECHA del sidebar. El sidebar le quita su overflow:hidden mientras el popover
       esta abierto (clase .esc-abierto en Sidebar.razor.css); sin eso quedaba recortado. */
    position: absolute;
    top: 8px;
    left: calc(100% - 4px);
    z-index: calc(var(--z-overlay) + 1);
    width: 340px;
    max-width: calc(100vw - 96px);
    max-height: calc(100vh - 96px);
    overflow-y: auto;
    padding: 14px;
    background: var(--bg-panel);
    border: 1px solid var(--border-med);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-lg);
    color: var(--text-primary);
    font-family: var(--font-sans);
    animation: esc-pop-in-b-ur92prlfgw 180ms var(--ease);
}

@keyframes esc-pop-in-b-ur92prlfgw {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}

.esc-pop-title[b-ur92prlfgw] {
    margin: 0 0 10px;
    font-size: 13px;
    color: var(--text-secondary);
}

.esc-pop-title.strong[b-ur92prlfgw] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 15px;
    font-weight: 700;
    color: var(--text-primary);
}

.esc-pop-title.strong .msr[b-ur92prlfgw] {
    color: var(--brand-teal-deep);
    font-size: 20px;
}

/* Filas de escuela */
.esc-list[b-ur92prlfgw] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.esc-row[b-ur92prlfgw] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    transition: border-color 180ms var(--ease), background 180ms var(--ease);
}

.esc-row:hover[b-ur92prlfgw] {
    border-color: var(--border-med);
    background: var(--bg-cream);
}

.esc-row.sel[b-ur92prlfgw] {
    border-color: var(--brand-teal-dark);
    background: var(--bg-light-teal);
}

.esc-avatar[b-ur92prlfgw] {
    flex: none;
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--cream-deep);
    color: var(--carbon-3);
    font-size: 12px;
    font-weight: 700;
}

.esc-avatar.on[b-ur92prlfgw] {
    background: var(--brand-teal-primary);
    color: #1F2937; /* AA 7.39 sobre teal claro (LEC-G007 corregida) */
}

.esc-row-text[b-ur92prlfgw] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
    flex: 1;
}

.esc-row-text b[b-ur92prlfgw] {
    font-size: 13.5px;
    font-weight: 600;
    line-height: 1.3;
    color: var(--text-primary);
    white-space: normal;
    overflow-wrap: break-word;
}

.esc-row-text small[b-ur92prlfgw] {
    font-size: 11.5px;
    color: var(--text-muted);
}

.esc-check[b-ur92prlfgw] {
    color: var(--brand-teal-deep);
    font-size: 20px;
    flex: none;
}

.esc-pop-hint[b-ur92prlfgw] {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    margin: 10px 0 0;
    font-size: 11.5px;
    line-height: 1.45;
    color: var(--text-muted);
}

.esc-pop-hint .msr[b-ur92prlfgw] {
    font-size: 15px;
    color: var(--pin-gold);
    flex: none;
}

/* ── Confirmación ──────────────────────────────────────────────────────── */
.esc-confirm[b-ur92prlfgw] {
    list-style: none;
    margin: 10px 0 0;
    padding: 10px 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    background: var(--bg-cream);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
}

.esc-confirm li[b-ur92prlfgw] {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--text-secondary);
}

.esc-confirm li .msr[b-ur92prlfgw] {
    font-size: 16px;
    flex: none;
    margin-top: 1px;
}

.esc-confirm li.si .msr[b-ur92prlfgw] { color: var(--success-ink); }
.esc-confirm li.no .msr[b-ur92prlfgw] { color: var(--warning-ink); }

.esc-error[b-ur92prlfgw] {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    margin: 10px 0 0;
    font-size: 12.5px;
    color: var(--danger);
}

.esc-error .msr[b-ur92prlfgw] {
    font-size: 16px;
    flex: none;
}

.esc-actions[b-ur92prlfgw] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 12px;
}

/* ── Botones locales (familia fin-btn, en miniatura) ───────────────────── */
.esc-btn[b-ur92prlfgw] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    border: 1px solid var(--border-med);
    border-radius: var(--radius-md);
    background: var(--bg-panel);
    color: var(--text-primary);
    font-family: var(--font-sans);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: background 180ms var(--ease), border-color 180ms var(--ease);
}

.esc-btn:hover:not(:disabled)[b-ur92prlfgw] {
    background: var(--bg-cream);
}

.esc-btn:focus-visible[b-ur92prlfgw] {
    outline: 2px solid var(--brand-teal-deep);
    outline-offset: 2px;
}

.esc-btn:disabled[b-ur92prlfgw] {
    opacity: 0.55;
    cursor: default;
}

.esc-btn.pri[b-ur92prlfgw] {
    background: var(--brand-teal-primary);
    border-color: var(--brand-teal-dark);
    color: #1F2937; /* AA 7.39 (LEC-G007 corregida) */
}

.esc-btn.pri:hover:not(:disabled)[b-ur92prlfgw] {
    background: var(--brand-teal);
}

.esc-btn.sm[b-ur92prlfgw] {
    padding: 6px 12px;
    font-size: 12.5px;
    flex: none;
}

.esc-spin[b-ur92prlfgw] {
    width: 13px;
    height: 13px;
    border: 2px solid rgba(31, 41, 55, 0.25);
    border-top-color: #1F2937;
    border-radius: 50%;
    animation: esc-spin-b-ur92prlfgw 700ms linear infinite;
}

@keyframes esc-spin-b-ur92prlfgw {
    to { transform: rotate(360deg); }
}

/* Móvil (<1024px): el sidebar es drawer; el popover no cabe a la derecha. */
@media (max-width: 1023.98px) {
    .esc-pop[b-ur92prlfgw] {
        left: 8px;
        right: 8px;
        top: calc(100% + 4px);
        width: auto;
        max-width: none;
    }
}

.esc-pop:focus[b-ur92prlfgw] {
    outline: none;
}

.esc-pop:focus-visible[b-ur92prlfgw] {
    outline: 2px solid var(--brand-teal);
    outline-offset: 2px;
}
/* /Pages/ControlEscolar/Roles/PermisosEfectivos.razor.rz.scp.css */
/* ============================================================================
   F9 · Permisos efectivos + permisos puntuales (mockups 05/07)
   Extiende la familia fin-* (finanzas.css) y los tokens globales (tokens.css).
   Escala de espaciado 4/8px · transiciones 150-200ms · contraste con tokens
   -ink sobre tinte (T-039).
   ============================================================================ */

.pef-toolbar[b-lcvc11x24w] { display: flex; gap: 16px; flex-wrap: wrap; }
.pef-toolbar .mice-field[b-lcvc11x24w] { min-width: 240px; }

/* --- hero ---------------------------------------------------------------- */
.pef-hero[b-lcvc11x24w] {
    display: flex; align-items: center; gap: 16px;
    margin-bottom: 16px; padding: 20px 24px;
}
.pef-hero-tile[b-lcvc11x24w] {
    width: 44px; height: 44px; border-radius: var(--radius-lg);
    display: flex; align-items: center; justify-content: center;
    background: color-mix(in srgb, var(--success) 14%, #fff);
    color: var(--success-ink); flex-shrink: 0;
}
.pef-hero-tile .msr[b-lcvc11x24w] { font-size: 24px; }
.pef-hero-txt h2[b-lcvc11x24w] {
    margin: 0 0 4px; font-family: var(--font-serif);
    font-size: 21px; font-weight: 600; color: var(--text-primary);
}
.pef-hero-txt p[b-lcvc11x24w] { margin: 0; font-size: 14px; color: var(--text-secondary); }

/* --- resumen kv ---------------------------------------------------------- */
.pef-kv[b-lcvc11x24w] {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px; margin-bottom: 16px;
}
.pef-kv > div[b-lcvc11x24w] {
    background: var(--bg-panel); border: 1px solid var(--border-soft);
    border-radius: var(--radius-md); padding: 12px 16px;
    display: flex; flex-direction: column; gap: 4px;
}
.pef-kv-label[b-lcvc11x24w] {
    font-size: 11px; text-transform: uppercase; letter-spacing: .06em;
    color: var(--text-muted); font-weight: 600;
}
.pef-kv b[b-lcvc11x24w] { font-size: 14px; color: var(--text-primary); font-weight: 600; }

/* --- grid de modulos ------------------------------------------------------ */
.pef-grid[b-lcvc11x24w] {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: 16px; margin-bottom: 24px;
}
.pef-modulo[b-lcvc11x24w] { margin: 0; }
.pef-modulo-h[b-lcvc11x24w] {
    display: flex; align-items: center; gap: 8px;
    margin: 0 0 8px; font-family: var(--font-serif);
    font-size: 16px; font-weight: 600; color: var(--text-primary);
    text-transform: capitalize;
}
.pef-mod-tile[b-lcvc11x24w] {
    width: 28px; height: 28px; border-radius: var(--radius-sm);
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--bg-light-teal); color: var(--brand-teal-deep);
}
.pef-mod-tile .msr[b-lcvc11x24w] { font-size: 16px; }

/* --- fila de permiso / excepcion ----------------------------------------- */
.pef-row[b-lcvc11x24w] {
    display: flex; align-items: center; gap: 12px;
    padding: 8px 0; border-top: 1px solid var(--border-soft);
    transition: background-color 150ms ease;
}
.pef-row:first-of-type[b-lcvc11x24w] { border-top: none; }
.pef-row.quitado .pef-row-txt[b-lcvc11x24w] { opacity: .72; }
.pef-row.quitado b[b-lcvc11x24w] { text-decoration: line-through; text-decoration-color: var(--text-muted); }
.pef-row-tile[b-lcvc11x24w] {
    width: 32px; height: 32px; border-radius: var(--radius-sm);
    display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.pef-row-tile .msr[b-lcvc11x24w] { font-size: 18px; }
.pef-row-tile.t-ok[b-lcvc11x24w]   { background: color-mix(in srgb, var(--success) 14%, #fff); color: var(--success-ink); }
.pef-row-tile.t-bad[b-lcvc11x24w]  { background: color-mix(in srgb, var(--danger) 12%, #fff);  color: var(--danger); }
.pef-row-tile.t-warn[b-lcvc11x24w] { background: color-mix(in srgb, var(--warning) 14%, #fff); color: var(--warning-ink); }
.pef-row-tile.t-neu[b-lcvc11x24w]  { background: var(--bg-cream); color: var(--text-secondary); }
.pef-row-txt[b-lcvc11x24w] { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.pef-row-txt b[b-lcvc11x24w] { font-size: 14px; font-weight: 600; color: var(--text-primary); }
.pef-row-sub[b-lcvc11x24w] { font-size: 12px; color: var(--text-muted); display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.pef-row-sub code[b-lcvc11x24w] {
    font-family: var(--font-mono); font-size: 11px;
    background: var(--bg-cream); border: 1px solid var(--border-soft);
    border-radius: 4px; padding: 0 4px; color: var(--text-secondary);
}

/* --- chips de alcance y estado ------------------------------------------- */
.pef-scope[b-lcvc11x24w] {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 12px; font-weight: 600; color: var(--text-secondary);
    padding: 2px 10px; border: 1px solid var(--border-med);
    border-radius: 999px; white-space: nowrap;
}
.pef-scope i[b-lcvc11x24w] { width: 8px; height: 8px; border-radius: 50%; background: var(--text-muted); }
.pef-scope.s-e i[b-lcvc11x24w] { background: var(--info); }
.pef-scope.s-g i[b-lcvc11x24w] { background: var(--success); }
.pef-scope.s-p i[b-lcvc11x24w] { background: var(--brand-teal-dark); }
.pef-scope.s-r i[b-lcvc11x24w] { background: var(--warning); }
.pef-chip[b-lcvc11x24w] {
    display: inline-flex; align-items: center;
    font-size: 11px; font-weight: 700; padding: 2px 8px;
    border-radius: 999px; white-space: nowrap;
}
.pef-chip.ok[b-lcvc11x24w]   { background: color-mix(in srgb, var(--success) 14%, #fff); color: var(--success-ink); }
.pef-chip.bad[b-lcvc11x24w]  { background: color-mix(in srgb, var(--danger) 12%, #fff);  color: var(--danger); }
.pef-chip.warn[b-lcvc11x24w] { background: color-mix(in srgb, var(--warning) 14%, #fff); color: var(--warning-ink); }

/* --- notas ---------------------------------------------------------------- */
.pef-nota-info[b-lcvc11x24w], .pef-nota-warn[b-lcvc11x24w] {
    display: flex; align-items: flex-start; gap: 8px;
    font-size: 13px; border-radius: var(--radius-md);
    padding: 10px 14px; margin: 0 0 16px;
}
.pef-nota-info[b-lcvc11x24w] { background: color-mix(in srgb, var(--info) 10%, #fff); color: var(--info-ink); }
.pef-nota-warn[b-lcvc11x24w] { background: color-mix(in srgb, var(--warning) 12%, #fff); color: var(--warning-ink); margin-top: 12px; }
.pef-nota-info .msr[b-lcvc11x24w], .pef-nota-warn .msr[b-lcvc11x24w] { font-size: 16px; margin-top: 1px; }
.pef-nota-info code[b-lcvc11x24w] { font-family: var(--font-mono); font-size: 12px; }

/* --- seccion permisos puntuales ------------------------------------------- */
.pef-seccion-h[b-lcvc11x24w] { margin: 32px 0 12px; }
.pef-seccion-h h2[b-lcvc11x24w] {
    display: flex; align-items: center; gap: 8px; margin: 0 0 4px;
    font-family: var(--font-serif); font-size: 20px; font-weight: 600;
    color: var(--text-primary);
}
.pef-seccion-h p[b-lcvc11x24w] { margin: 0; font-size: 14px; color: var(--text-secondary); max-width: 720px; }

.pef-tipo-grid[b-lcvc11x24w] {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 12px; margin-bottom: 16px;
}
.pef-tipocard[b-lcvc11x24w] {
    display: flex; align-items: center; gap: 12px; text-align: left;
    background: var(--bg-panel); border: 1.5px solid var(--border-soft);
    border-radius: var(--radius-lg); padding: 14px 16px; cursor: pointer;
    font: inherit; transition: border-color 150ms ease, box-shadow 150ms ease;
}
.pef-tipocard:hover[b-lcvc11x24w] { border-color: var(--border-med); box-shadow: var(--shadow-sm); }
.pef-tipocard:focus-visible[b-lcvc11x24w] { outline: 2px solid var(--brand-teal-deep); outline-offset: 2px; }
.pef-tipocard.sel[b-lcvc11x24w] { border-color: var(--brand-teal-deep); box-shadow: var(--shadow-sm); }
.pef-tipocard-txt[b-lcvc11x24w] { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.pef-tipocard-txt b[b-lcvc11x24w] { font-size: 14px; color: var(--text-primary); }
.pef-tipocard-txt span[b-lcvc11x24w] { font-size: 12px; color: var(--text-muted); }
.pef-radio[b-lcvc11x24w] { color: var(--text-muted); }
.pef-tipocard.sel .pef-radio[b-lcvc11x24w] { color: var(--brand-teal-deep); }

.pef-form-h[b-lcvc11x24w] {
    display: flex; align-items: center; gap: 8px; margin: 0 0 12px;
    font-family: var(--font-serif); font-size: 16px; font-weight: 600;
    color: var(--text-primary);
}
.pef-form-grid[b-lcvc11x24w] {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 12px 16px; margin-bottom: 12px;
}
.pef-presets[b-lcvc11x24w] { display: flex; flex-wrap: wrap; gap: 8px; }
.pef-presets button[b-lcvc11x24w] {
    font: inherit; font-size: 13px; font-weight: 600;
    color: var(--text-secondary); background: var(--bg-panel);
    border: 1px solid var(--border-med); border-radius: 999px;
    padding: 4px 12px; cursor: pointer;
    transition: background-color 150ms ease, color 150ms ease, border-color 150ms ease;
}
.pef-presets button:hover[b-lcvc11x24w] { border-color: var(--brand-teal-dark); color: var(--text-primary); }
.pef-presets button:focus-visible[b-lcvc11x24w] { outline: 2px solid var(--brand-teal-deep); outline-offset: 2px; }
.pef-presets button.on[b-lcvc11x24w] {
    background: var(--bg-light-teal); border-color: var(--brand-teal-deep);
    color: var(--brand-teal-deep);
}
.pef-fecha[b-lcvc11x24w] { margin-top: 8px; max-width: 200px; }
.pef-motivo[b-lcvc11x24w] { resize: vertical; min-height: 56px; font-family: var(--font-sans); }

.pef-form-acciones[b-lcvc11x24w] { display: flex; justify-content: flex-end; gap: 8px; margin-top: 12px; }
.pef-form-msg[b-lcvc11x24w] { font-size: 13px; font-weight: 600; border-radius: var(--radius-sm); padding: 8px 12px; margin-top: 12px; }
.pef-form-msg.ok[b-lcvc11x24w]  { background: color-mix(in srgb, var(--success) 14%, #fff); color: var(--success-ink); }
.pef-form-msg.err[b-lcvc11x24w] { background: color-mix(in srgb, var(--danger) 12%, #fff); color: var(--danger); }

.pef-btn-danger[b-lcvc11x24w] { color: var(--danger); border-color: color-mix(in srgb, var(--danger) 40%, #fff); }
.pef-btn-danger:hover[b-lcvc11x24w] { background: color-mix(in srgb, var(--danger) 8%, #fff); }

.pef-mut[b-lcvc11x24w] { font-size: 13px; color: var(--text-muted); margin: 8px 0 0; }
.pef-mut a[b-lcvc11x24w] { color: var(--brand-teal-deep); }

/* --- estados vacios / error / no disponible ------------------------------- */
.pef-estado[b-lcvc11x24w] { text-align: center; padding: 40px 24px; margin-bottom: 16px; }
.pef-estado-icon[b-lcvc11x24w] {
    font-size: 40px; color: var(--text-muted); display: block; margin: 0 auto 8px;
}
.pef-estado-icon.pef-danger[b-lcvc11x24w] { color: var(--danger); }
.pef-estado h2[b-lcvc11x24w] {
    margin: 0 0 4px; font-family: var(--font-serif);
    font-size: 18px; font-weight: 600; color: var(--text-primary);
}
.pef-estado p[b-lcvc11x24w] { margin: 0 auto 12px; font-size: 14px; color: var(--text-secondary); max-width: 520px; }

/* --- skeleton -------------------------------------------------------------- */
.pef-skeleton[b-lcvc11x24w] { padding: 24px; }
.pef-sk-line[b-lcvc11x24w] {
    height: 14px; border-radius: 999px; margin-bottom: 12px;
    background: linear-gradient(90deg, var(--border-soft) 25%, var(--bg-cream) 50%, var(--border-soft) 75%);
    background-size: 200% 100%;
    animation: pef-pulse-b-lcvc11x24w 1.4s ease infinite;
}
.pef-sk-line.w60[b-lcvc11x24w] { width: 60%; } .pef-sk-line.w70[b-lcvc11x24w] { width: 70%; }
.pef-sk-line.w80[b-lcvc11x24w] { width: 80%; } .pef-sk-line.w90[b-lcvc11x24w] { width: 90%; }
@keyframes pef-pulse-b-lcvc11x24w { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

/* --- responsive ------------------------------------------------------------ */
@media (max-width: 720px) {
    .pef-hero[b-lcvc11x24w] { flex-direction: column; align-items: flex-start; }
    .pef-row[b-lcvc11x24w] { flex-wrap: wrap; }
    .pef-form-acciones[b-lcvc11x24w] { flex-direction: column-reverse; }
    .pef-form-acciones .mice-btn[b-lcvc11x24w] { width: 100%; justify-content: center; }
}
/* /Pages/ControlEscolar/SeguimientoAccesos.razor.rz.scp.css */
/* ========================================================================
   SEGUIMIENTO DE ACCESOS — visor v1 (patrón VisorReportes, prefijo sac-)
   Cero hex: solo tokens var(--...) + color-mix sobre tokens.
   ======================================================================== */

.sac-page[b-kedrfseehl] {
    padding: 22px 28px 36px;
    max-width: 100%;
    font-family: var(--font-sans);
    color: var(--text-primary);
}

/* ── Breadcrumb + header (chrome v2) ─────────────────────────────────── */
.sac-bc[b-kedrfseehl] {
    display: flex; align-items: center; gap: 6px;
    margin-bottom: 14px; font-size: 12px;
    color: var(--text-muted); flex-wrap: wrap;
}
.sac-bc .msr[b-kedrfseehl] { font-size: 14px; }
.sac-bc a[b-kedrfseehl] {
    color: var(--text-secondary);
    text-decoration: none; cursor: pointer;
    transition: color 0.15s ease;
}
.sac-bc a:hover[b-kedrfseehl] { color: var(--brand-teal-deep); }
.sac-sep[b-kedrfseehl] { color: var(--text-muted); }
.sac-current[b-kedrfseehl] { color: var(--text-primary); font-weight: 600; }

.sac-h[b-kedrfseehl] {
    display: flex; align-items: center; gap: 14px;
    margin-bottom: 18px; flex-wrap: wrap;
}
.sac-h-icon[b-kedrfseehl] {
    width: 48px; height: 48px;
    border-radius: 13px;
    background: linear-gradient(135deg, var(--success), var(--pz-green-deep));
    color: white;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 12px color-mix(in srgb, var(--success) 28%, transparent);
}
.sac-h-icon .msr[b-kedrfseehl] { font-size: 26px; }
.sac-h-block[b-kedrfseehl] { flex: 1; min-width: 0; }
.sac-h-title[b-kedrfseehl] {
    font-family: var(--font-serif);
    font-size: 26px; font-weight: 600;
    color: var(--text-primary);
    letter-spacing: -0.4px;
    margin: 0 0 4px;
    line-height: 1.1;
}
.sac-h-sub[b-kedrfseehl] { font-size: 13px; color: var(--text-secondary); margin: 0; }
.sac-h-rango[b-kedrfseehl] { color: var(--pz-green-deep); font-weight: 600; }

/* ── KPIs (patrón .ra-dash de ReporteAsistencia, elevado) ────────────── */
.sac-dash[b-kedrfseehl] {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 10px;
    margin-bottom: 12px;
}

.sac-kpi[b-kedrfseehl] {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 12px 14px;
    border-radius: var(--radius-md);
    border: 1px solid transparent;
}

.sac-kpi-icn[b-kedrfseehl] {
    width: 34px; height: 34px;
    border-radius: var(--radius-sm);
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    background: rgba(255, 255, 255, 0.65);
}
.sac-kpi-icn .msr[b-kedrfseehl] { font-size: 19px; }

.sac-kpi-body[b-kedrfseehl] { min-width: 0; }

.sac-kpi-n[b-kedrfseehl] {
    font-family: var(--font-serif);
    font-size: 21px;
    font-weight: 600;
    line-height: 1.1;
    letter-spacing: -0.3px;
    font-variant-numeric: tabular-nums;
}
.sac-kpi-n.loading[b-kedrfseehl] { animation: sac-pulse-b-kedrfseehl 1.2s ease-in-out infinite; }

.sac-kpi-l[b-kedrfseehl] {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-top: 3px;
    opacity: 0.75;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sac-kpi.tone-teal[b-kedrfseehl] {
    background: var(--bg-light-teal);
    color: var(--brand-teal-deep);
    border-color: color-mix(in srgb, var(--brand-teal) 30%, transparent);
}
.sac-kpi.tone-green[b-kedrfseehl] {
    background: color-mix(in srgb, var(--success) 11%, white);
    color: var(--pz-green-deep);
    border-color: color-mix(in srgb, var(--success) 28%, transparent);
}
.sac-kpi.tone-amber[b-kedrfseehl] {
    background: color-mix(in srgb, var(--warning) 11%, white);
    color: var(--warning);
    border-color: color-mix(in srgb, var(--warning) 26%, transparent);
}
.sac-kpi.tone-info[b-kedrfseehl] {
    background: color-mix(in srgb, var(--info) 9%, white);
    color: var(--info);
    border-color: color-mix(in srgb, var(--info) 24%, transparent);
}

@keyframes sac-pulse-b-kedrfseehl {
    0%, 100% { opacity: 0.35; }
    50%      { opacity: 0.9; }
}

/* ── Card base / filtros ─────────────────────────────────────────────── */
.sac-card[b-kedrfseehl] {
    background: var(--bg-panel);
    border-radius: 11px;
    border: 0.5px solid rgba(0, 0, 0, 0.06);
    padding: 12px 14px;
    margin-bottom: 12px;
}

.sac-filters-head[b-kedrfseehl] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 10px;
}

.sac-filters-title[b-kedrfseehl] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--text-secondary);
}
.sac-filters-title .msr[b-kedrfseehl] { font-size: 16px; color: var(--text-muted); }

.sac-filters-badge[b-kedrfseehl] {
    background: var(--pz-green-deep);
    color: white;
    font-size: 9px;
    font-weight: 600;
    padding: 1px 7px;
    border-radius: 99px;
    line-height: 1.6;
}

.sac-clear-all[b-kedrfseehl] {
    background: transparent;
    border: none;
    color: var(--danger);
    font-size: 11px;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
    padding: 2px 4px;
}
.sac-clear-all:hover[b-kedrfseehl] { text-decoration: underline; }

.sac-filter-label[b-kedrfseehl] {
    font-size: 10px;
    font-weight: 600;
    color: var(--text-muted);
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

/* Chips de grupo (patrón vr-group-chip; colores via GruposHelper inline) */
.sac-chips-row[b-kedrfseehl] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 10px;
}

.sac-group-chip[b-kedrfseehl] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 11px;
    border-radius: 99px;
    border: 1px solid var(--border-med);
    font-size: 11px;
    cursor: pointer;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
    font-family: inherit;
    background: white;
    color: var(--text-secondary);
}
.sac-group-chip:hover[b-kedrfseehl] { transform: translateY(-1px); box-shadow: var(--shadow-sm); }
.sac-group-chip.active[b-kedrfseehl] { border-width: 1.5px; font-weight: 600; }
.sac-group-chip.active-generic[b-kedrfseehl] {
    background: color-mix(in srgb, var(--pz-green) 13%, white);
    border-color: var(--pz-green-deep);
    color: var(--pz-green-deep);
    font-weight: 600;
}

.sac-grade-badge[b-kedrfseehl] {
    display: inline-flex;
    align-items: center; justify-content: center;
    width: 18px; height: 18px;
    border-radius: 50%;
    font-size: 9px;
    font-weight: 500;
    flex-shrink: 0;
}

.sac-grade-badge-sm[b-kedrfseehl] {
    display: inline-flex;
    align-items: center; justify-content: center;
    width: 14px; height: 14px;
    border-radius: 50%;
    font-size: 8px;
    font-weight: 500;
    flex-shrink: 0;
}

.sac-more-link[b-kedrfseehl] {
    background: transparent;
    border: none;
    color: var(--brand-teal-dark);
    font-size: 11px;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
}
.sac-more-link:hover[b-kedrfseehl] { color: var(--brand-teal-deep); }

/* Periodo + estudiante */
.sac-filters-grid[b-kedrfseehl] {
    display: flex;
    flex-wrap: wrap;
    gap: 18px 28px;
    padding-top: 10px;
    border-top: 0.5px dashed rgba(0, 0, 0, 0.08);
}

.sac-filter-group[b-kedrfseehl] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 220px;
}

.sac-presets[b-kedrfseehl] { display: flex; flex-wrap: wrap; gap: 4px; }

.sac-preset[b-kedrfseehl] {
    padding: 4px 11px;
    border-radius: 99px;
    border: 1px solid var(--border-med);
    background: white;
    color: var(--text-secondary);
    font-size: 11px;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
    transition: all 0.15s ease;
}
.sac-preset:hover[b-kedrfseehl] {
    border-color: color-mix(in srgb, var(--pz-green) 55%, white);
    color: var(--pz-green-deep);
}
.sac-preset.active[b-kedrfseehl] {
    background: color-mix(in srgb, var(--pz-green) 13%, white);
    border-color: var(--pz-green);
    color: var(--pz-green-deep);
    font-weight: 600;
}

.sac-date-inputs[b-kedrfseehl] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 2px;
    flex-wrap: wrap;
}
.sac-date-inputs input[type="date"][b-kedrfseehl] {
    padding: 6px 9px;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: var(--radius-sm);
    font-size: 12px;
    color: var(--carbon-3);
    font-family: inherit;
    background: white;
    outline: none;
    transition: border-color 0.15s ease;
}
.sac-date-inputs input[type="date"]:focus[b-kedrfseehl] { border-color: var(--brand-teal-dark); }
.sac-date-arrow[b-kedrfseehl] { color: var(--text-muted); font-size: 12px; }

.sac-btn-apply[b-kedrfseehl] {
    padding: 6px 12px;
    background: var(--pz-green-deep);
    color: white;
    border: none;
    border-radius: var(--radius-sm);
    font-size: 11px;
    font-weight: 600;
    cursor: pointer;
    font-family: inherit;
    transition: background 0.15s ease;
}
.sac-btn-apply:hover:not(:disabled)[b-kedrfseehl] { background: color-mix(in srgb, var(--pz-green-deep) 85%, black); }
.sac-btn-apply:disabled[b-kedrfseehl] { opacity: 0.45; cursor: not-allowed; }

.sac-btn-alumno[b-kedrfseehl] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 13px;
    border-radius: var(--radius-md);
    background: white;
    border: 1px solid var(--border-med);
    color: var(--text-secondary);
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
    align-self: flex-start;
    transition: all 0.15s ease;
}
.sac-btn-alumno .msr[b-kedrfseehl] { font-size: 16px; }
.sac-btn-alumno:hover:not(:disabled)[b-kedrfseehl] {
    border-color: var(--brand-teal-dark);
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
}
.sac-btn-alumno:disabled[b-kedrfseehl] { opacity: 0.5; cursor: not-allowed; }

.sac-hint-inline[b-kedrfseehl] { font-size: 10.5px; color: var(--text-muted); }

.sac-alumno-chip[b-kedrfseehl] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 4px 6px 4px 4px;
    border-radius: 99px;
    font-size: 12px;
    font-weight: 600;
    align-self: flex-start;
    max-width: 100%;
}
.sac-alumno-chip-avatar[b-kedrfseehl] {
    width: 22px; height: 22px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center; justify-content: center;
    font-size: 9px;
    font-weight: 600;
    flex-shrink: 0;
}
.sac-alumno-chip-nombre[b-kedrfseehl] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-transform: uppercase;
    font-size: 11px;
}
.sac-alumno-chip button[b-kedrfseehl] {
    width: 16px; height: 16px;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.1);
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center; justify-content: center;
    padding: 0;
    color: inherit;
    flex-shrink: 0;
    transition: background 0.15s ease;
}
.sac-alumno-chip button .msr[b-kedrfseehl] { font-size: 11px; }
.sac-alumno-chip button:hover[b-kedrfseehl] { background: rgba(0, 0, 0, 0.2); }

/* ── Heatmap (reusa .heatmap-* global de portal-estudiante.css) ──────── */
.sac-heat-card[b-kedrfseehl] { padding: 0; overflow: hidden; }

.sac-card-head[b-kedrfseehl] {
    padding: 13px 16px;
    border-bottom: 0.5px solid rgba(0, 0, 0, 0.06);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}
.sac-card-head h2[b-kedrfseehl] {
    font-family: var(--font-serif);
    font-size: 16px;
    font-weight: 600;
    letter-spacing: -0.2px;
    color: var(--text-primary);
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}
.sac-card-head h2 .msr[b-kedrfseehl] {
    font-size: 19px;
    color: var(--pz-green-deep);
}
.sac-head-meta[b-kedrfseehl] { font-size: 11.5px; color: var(--text-muted); }

.sac-heat-body[b-kedrfseehl] { padding: 16px; }

.sac-heat-legend[b-kedrfseehl] {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-top: 14px;
    padding-top: 12px;
    border-top: 0.5px dashed rgba(0, 0, 0, 0.08);
    font-size: 11px;
    color: var(--text-muted);
    flex-wrap: wrap;
}
.sac-leg-label[b-kedrfseehl] { margin: 0 3px; }
.sac-leg-sep[b-kedrfseehl] { width: 14px; }

/* Los swatches reusan .heatmap-cell (global); aquí solo tamaño fijo */
.sac-heat-legend .sac-sw[b-kedrfseehl] {
    width: 13px; height: 13px;
    aspect-ratio: auto;
    cursor: default;
}
.sac-heat-legend .sac-sw:hover[b-kedrfseehl] { transform: none; box-shadow: none; }

/* ── Estados loading / empty / error ─────────────────────────────────── */
.sac-loading[b-kedrfseehl] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 40px;
    color: var(--text-muted);
    font-size: 13px;
}
.sac-loading .msr[b-kedrfseehl] { font-size: 18px; }

.sac-spinning[b-kedrfseehl] { animation: sac-spin-b-kedrfseehl 1s linear infinite; }
@keyframes sac-spin-b-kedrfseehl {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

.sac-empty-state[b-kedrfseehl] {
    text-align: center;
    padding: 50px 20px;
    color: var(--text-muted);
    background: var(--bg-panel);
    border-radius: 11px;
    border: 0.5px solid rgba(0, 0, 0, 0.06);
}
.sac-empty-state .msr[b-kedrfseehl] {
    font-size: 48px;
    color: var(--carbon-6);
    margin-bottom: 8px;
}
.sac-empty-state h3[b-kedrfseehl] { font-size: 15px; color: var(--carbon-3); margin: 0 0 4px; }
.sac-empty-state p[b-kedrfseehl] { font-size: 12px; margin: 0; }

.sac-error-state .msr[b-kedrfseehl] { color: var(--danger); opacity: 0.6; }

.sac-btn-retry[b-kedrfseehl] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 14px;
    padding: 8px 16px;
    border-radius: var(--radius-md);
    background: var(--pz-green-deep);
    color: white;
    border: none;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    font-family: inherit;
    transition: background 0.15s ease;
}
.sac-btn-retry:hover[b-kedrfseehl] { background: color-mix(in srgb, var(--pz-green-deep) 85%, black); }
.sac-btn-retry .msr[b-kedrfseehl] { font-size: 15px; color: white; margin: 0; }

.sac-link-btn[b-kedrfseehl] {
    background: transparent;
    border: none;
    color: var(--pz-green-deep);
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
    text-decoration: underline;
    padding: 0;
    font-size: inherit;
}

/* ── Tabla desktop ────────────────────────────────────────────────────── */
.sac-table-wrapper[b-kedrfseehl] { margin-bottom: 12px; }

.sac-table[b-kedrfseehl] {
    background: var(--bg-panel);
    border-radius: 11px;
    border: 0.5px solid rgba(0, 0, 0, 0.06);
    overflow: hidden;
}

.sac-table-header[b-kedrfseehl],
.sac-table-row[b-kedrfseehl] {
    display: grid;
    grid-template-columns: minmax(220px, 1.8fr) 160px 100px 90px 110px 120px;
    gap: 10px;
    padding: 10px 14px;
    align-items: center;
}

.sac-table-header[b-kedrfseehl] {
    background: var(--bg-cream);
    border-bottom: 0.5px solid rgba(0, 0, 0, 0.06);
    font-size: 10px;
    color: var(--text-muted);
    font-weight: 600;
    letter-spacing: 0.04em;
}

.sac-table-row[b-kedrfseehl] {
    font-size: 12px;
    border-bottom: 0.5px solid rgba(0, 0, 0, 0.04);
    transition: background 0.15s ease;
}
.sac-table-row:nth-child(even)[b-kedrfseehl] { background: color-mix(in srgb, var(--bg-cream) 45%, white); }
.sac-table-row:hover[b-kedrfseehl] { background: color-mix(in srgb, var(--brand-teal) 7%, white); }
.sac-table-row:last-child[b-kedrfseehl] { border-bottom: none; }

.sac-cell-alumno[b-kedrfseehl] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.sac-avatar[b-kedrfseehl] {
    width: 28px; height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center; justify-content: center;
    font-size: 10px;
    font-weight: 600;
    flex-shrink: 0;
}

/* Convención de la casa: nombre en MAYÚSCULAS + bold */
.sac-nombre[b-kedrfseehl] {
    font-weight: 700;
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: 0.01em;
    color: var(--text-primary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sac-group-pill[b-kedrfseehl] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 8px;
    border-radius: 99px;
    border: 1px solid;
    font-size: 11px;
    font-weight: 500;
    max-width: 100%;
}
.sac-group-pill span:last-child[b-kedrfseehl] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sac-fecha-hoy[b-kedrfseehl] { color: var(--pz-green-deep); font-weight: 600; }
.sac-fecha-normal[b-kedrfseehl] { color: var(--carbon-3); }

/* La hora exacta es LA feature: mono, tabular, firme */
.sac-hora[b-kedrfseehl] {
    font-family: var(--font-mono);
    font-size: 12.5px;
    font-weight: 600;
    color: var(--text-primary);
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.02em;
}

.sac-badge[b-kedrfseehl] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 10px;
    border-radius: 99px;
    border: 1px solid;
    font-size: 11px;
    font-weight: 600;
}
.sac-badge .msr[b-kedrfseehl] { font-size: 13px; }
.sac-badge.entrada[b-kedrfseehl] {
    background: color-mix(in srgb, var(--success) 12%, white);
    border-color: color-mix(in srgb, var(--success) 40%, white);
    color: var(--pz-green-deep);
}
.sac-badge.salida[b-kedrfseehl] {
    background: color-mix(in srgb, var(--info) 10%, white);
    border-color: color-mix(in srgb, var(--info) 35%, white);
    color: var(--info);
}

/* ── Cards móvil ──────────────────────────────────────────────────────── */
.sac-cards-wrapper[b-kedrfseehl] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 12px;
}

.sac-card-acceso[b-kedrfseehl] {
    background: var(--bg-panel);
    border: 0.5px solid rgba(0, 0, 0, 0.06);
    border-radius: 11px;
    padding: 11px 12px;
    display: flex;
    gap: 10px;
    align-items: center;
}

.sac-avatar-lg[b-kedrfseehl] {
    width: 38px; height: 38px;
    border-radius: 50%;
    display: flex;
    align-items: center; justify-content: center;
    font-size: 12px;
    font-weight: 600;
    flex-shrink: 0;
}

.sac-card-content[b-kedrfseehl] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.sac-card-meta[b-kedrfseehl] {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
    font-size: 11px;
    color: var(--text-secondary);
}

.sac-card-derecha[b-kedrfseehl] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 5px;
    flex-shrink: 0;
}

/* ── Paginación ───────────────────────────────────────────────────────── */
.sac-pagination[b-kedrfseehl] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 14px;
    background: var(--bg-panel);
    border-radius: 11px;
    border: 0.5px solid rgba(0, 0, 0, 0.06);
    margin-bottom: 12px;
    flex-wrap: wrap;
    gap: 10px;
}

.sac-page-info[b-kedrfseehl] { font-size: 11px; color: var(--text-muted); }

.sac-page-nav[b-kedrfseehl] {
    display: flex;
    gap: 3px;
    align-items: center;
}

.sac-page-nav button[b-kedrfseehl] {
    min-width: 28px; height: 28px;
    border: 1px solid var(--border-med);
    background: white;
    border-radius: var(--radius-sm);
    cursor: pointer;
    color: var(--text-secondary);
    font-size: 11px;
    font-weight: 500;
    font-family: inherit;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 7px;
    transition: background 0.15s ease;
}
.sac-page-nav button .msr[b-kedrfseehl] { font-size: 15px; }
.sac-page-nav button:hover:not(:disabled)[b-kedrfseehl] { background: var(--bg-cream); }
.sac-page-nav button:disabled[b-kedrfseehl] { opacity: 0.4; cursor: not-allowed; }
.sac-page-nav button.active[b-kedrfseehl] {
    background: var(--pz-green-deep);
    border-color: var(--pz-green-deep);
    color: white;
}
.sac-page-ellipsis[b-kedrfseehl] { color: var(--carbon-6); padding: 0 4px; }

/* ── Responsive ───────────────────────────────────────────────────────── */
@media (min-width: 992px) {
    .sac-desktop-only[b-kedrfseehl] { display: block; }
    .sac-mobile-only[b-kedrfseehl]  { display: none; }
}

@media (max-width: 991.98px) {
    .sac-desktop-only[b-kedrfseehl] { display: none; }
    .sac-mobile-only[b-kedrfseehl]  { display: flex; flex-direction: column; }
    .sac-page[b-kedrfseehl] { padding: 16px; }
    .sac-dash[b-kedrfseehl] { grid-template-columns: repeat(2, 1fr); }
    .sac-dash > .sac-kpi:last-child[b-kedrfseehl] { grid-column: 1 / -1; }
}

@media (max-width: 575.98px) {
    .sac-page[b-kedrfseehl] { padding: 12px; }
    .sac-h-title[b-kedrfseehl] { font-size: 22px; }
    .sac-h-icon[b-kedrfseehl] { width: 42px; height: 42px; border-radius: 11px; }
    .sac-h-icon .msr[b-kedrfseehl] { font-size: 22px; }
    .sac-kpi[b-kedrfseehl] { padding: 10px 12px; gap: 9px; }
    .sac-kpi-icn[b-kedrfseehl] { display: none; }
    .sac-pagination[b-kedrfseehl] { flex-direction: column; align-items: stretch; }
    .sac-page-nav[b-kedrfseehl] { justify-content: center; }
    .sac-filters-grid[b-kedrfseehl] { gap: 14px; }
    .sac-filter-group[b-kedrfseehl] { min-width: 100%; }
}

/* TURNOS-01 · turno de la consulta y etiqueta de turno en grupos homonimos */
.sac-turno[b-kedrfseehl] { margin: 0 0 14px; }
.sac-turno-tag[b-kedrfseehl] {
    margin-left: 4px;
    padding: 1px 6px;
    border-radius: var(--radius-sm);
    background: var(--bg-panel);
    color: var(--text-secondary);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .2px;
    text-transform: uppercase;
}

/* TURNOS-01 rev. 3: sin escuela de contexto elegida no hay selector de turno */
.sac-turno-nota[b-kedrfseehl] { display: flex; align-items: center; gap: 6px; margin: 0 0 12px; color: var(--text-secondary); font-size: 13px; }
.sac-turno-nota .msr[b-kedrfseehl] { font-size: 18px; color: var(--brand-teal-deep); }

/* Ingresos con retardo · KPI, filtro, columna «Entrada» y pestanas de «Hoy» */
.sac-kpi.tone-retardo[b-kedrfseehl] {
    background: color-mix(in srgb, var(--warning) 16%, white);
    color: var(--warning-ink);
    border-color: color-mix(in srgb, var(--warning) 34%, transparent);
}

.sac-toggle-retardo[b-kedrfseehl] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: 99px;
    border: 1px solid var(--carbon-7);
    background: var(--bg-panel);
    color: var(--text-secondary);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
}
.sac-toggle-retardo .msr[b-kedrfseehl] { font-size: 16px; color: var(--warning); }
.sac-toggle-retardo.active[b-kedrfseehl] {
    background: color-mix(in srgb, var(--warning) 14%, white);
    border-color: color-mix(in srgb, var(--warning) 45%, white);
    color: var(--warning-ink);
}

.sac-badge.retardo[b-kedrfseehl] {
    background: color-mix(in srgb, var(--warning) 12%, white);
    border-color: color-mix(in srgb, var(--warning) 40%, white);
    color: var(--warning-ink);
}
.sac-badge.a-tiempo[b-kedrfseehl] {
    background: color-mix(in srgb, var(--success) 12%, white);
    border-color: color-mix(in srgb, var(--success) 40%, white);
    color: var(--success-ink);
}
.sac-badge.revision[b-kedrfseehl] {
    background: color-mix(in srgb, var(--info) 10%, white);
    border-color: color-mix(in srgb, var(--info) 35%, white);
    color: var(--info-ink);
}
.sac-entrada-na[b-kedrfseehl] { color: var(--carbon-6); }
.sac-card-derecha .sac-entrada-na[b-kedrfseehl] { display: none; }

.sac-vistas[b-kedrfseehl] {
    display: inline-flex;
    gap: 4px;
    padding: 3px;
    margin: 0 0 12px;
    border-radius: 99px;
    background: var(--bg-panel);
    border: 0.5px solid rgba(0, 0, 0, 0.08);
    max-width: 100%;
}
.sac-vista[b-kedrfseehl] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    border: none;
    border-radius: 99px;
    background: transparent;
    color: var(--text-secondary);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
}
.sac-vista .msr[b-kedrfseehl] { font-size: 17px; }
.sac-vista.active[b-kedrfseehl] { background: var(--carbon-2); color: white; }
@media (max-width: 575.98px) {
    .sac-vistas[b-kedrfseehl] { display: flex; }
    .sac-vista[b-kedrfseehl] { flex: 1; justify-content: center; padding: 8px 6px; }
}
/* /Pages/ControlEscolar/Turnos.razor.rz.scp.css */
/* TURNOS-01 · Turnos de la escuela (prefijo tur-). Solo tokens. Familia de breakpoints de
   Control Escolar (575.98 / 991.98), ver SISTEMA-DISENO §9. */
.tur-page[b-24q1ovt86j] { max-width: 1040px; }

.tur-bc[b-24q1ovt86j] { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 14px; font-size: 12px; color: var(--text-muted); }
.tur-bc .msr[b-24q1ovt86j] { font-size: 14px; }
.tur-bc a[b-24q1ovt86j] { color: var(--text-secondary); text-decoration: none; }
.tur-bc a:hover[b-24q1ovt86j] { color: var(--brand-teal-deep); }
.tur-bc-actual[b-24q1ovt86j] { color: var(--text-primary); font-weight: 600; }

.tur-cargando[b-24q1ovt86j] { display: flex; align-items: center; gap: 8px; color: var(--text-secondary); }

.tur-card[b-24q1ovt86j] { margin-bottom: 18px; }
.tur-card-h[b-24q1ovt86j] { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 14px; }
.tur-card-h h2[b-24q1ovt86j] { margin: 0; font: 600 20px var(--font-serif); color: var(--text-primary); }
.tur-card-h p[b-24q1ovt86j] { margin: 4px 0 0; font-size: 13.5px; color: var(--text-secondary); }
.tur-ico[b-24q1ovt86j] {
    flex: 0 0 auto; width: 36px; height: 36px; border-radius: var(--radius-md);
    display: grid; place-items: center; background: var(--bg-light-teal); color: var(--brand-teal-deep);
}

.tur-lista[b-24q1ovt86j], .tur-personal[b-24q1ovt86j] { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }

.tur-fila[b-24q1ovt86j] {
    display: grid; grid-template-columns: minmax(140px, 1fr) minmax(160px, 1.4fr) auto;
    align-items: center; gap: 12px; padding: 12px 14px;
    border: 1px solid var(--border-soft); border-radius: var(--radius-lg); background: var(--bg-panel);
}
.tur-fila--on[b-24q1ovt86j] { border-color: var(--border-med); }
.tur-fila-nombre[b-24q1ovt86j] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.tur-fila-nombre strong[b-24q1ovt86j] { font-size: 15px; }
.tur-fila-datos[b-24q1ovt86j] { display: flex; flex-wrap: wrap; gap: 14px; font-size: 13px; color: var(--text-secondary); }
.tur-fila-datos span[b-24q1ovt86j] { display: inline-flex; align-items: center; gap: 4px; }
.tur-fila-datos .msr[b-24q1ovt86j] { font-size: 16px; color: var(--text-muted); }
.tur-fila-accion[b-24q1ovt86j] { justify-self: end; }
.tur-bloqueado[b-24q1ovt86j] { display: inline-flex; align-items: center; gap: 4px; font-size: 12.5px; color: var(--text-secondary); }
.tur-bloqueado .msr[b-24q1ovt86j] { font-size: 16px; }

.tur-msg[b-24q1ovt86j] { display: flex; align-items: flex-start; gap: 8px; padding: 10px 12px; margin: 12px 0; border-radius: var(--radius-md); font-size: 13.5px; border: 1px solid var(--border-soft); }
.tur-msg .msr[b-24q1ovt86j] { font-size: 18px; }
.tur-msg--ok[b-24q1ovt86j] { color: var(--success-ink); background: var(--success-bg); }
.tur-msg--error[b-24q1ovt86j] { color: var(--danger); background: var(--error-bg); }
.tur-msg--warn[b-24q1ovt86j] { color: var(--warning-ink); background: var(--bg-cream); border-color: var(--border-med); }
.tur-msg a[b-24q1ovt86j] { color: var(--brand-teal-deep); font-weight: 700; }

.tur-nota[b-24q1ovt86j] { display: flex; align-items: center; gap: 6px; margin: 12px 0 0; font-size: 13px; color: var(--text-secondary); }
.tur-nota .msr[b-24q1ovt86j] { font-size: 16px; }
.tur-nota-sm[b-24q1ovt86j] { font-size: 12.5px; color: var(--text-secondary); }

.tur-persona[b-24q1ovt86j] {
    display: grid; grid-template-columns: minmax(180px, 1.2fr) minmax(160px, 1.5fr) auto;
    gap: 12px; align-items: center; padding: 12px 14px;
    border: 1px solid var(--border-soft); border-radius: var(--radius-lg);
}
.tur-persona-quien[b-24q1ovt86j] { display: flex; flex-direction: column; }
.tur-persona-quien strong[b-24q1ovt86j] { font-size: 14px; }
.tur-persona-quien span[b-24q1ovt86j] { font-size: 12.5px; color: var(--text-secondary); }
.tur-persona-turnos[b-24q1ovt86j] { display: flex; flex-wrap: wrap; gap: 6px; }
.tur-persona-accion[b-24q1ovt86j] { justify-self: end; text-align: right; }

.tur-edicion[b-24q1ovt86j] { grid-column: 2 / -1; border: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; }
.tur-check[b-24q1ovt86j] { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; min-height: 32px; cursor: pointer; }
.tur-check input[b-24q1ovt86j] { width: 18px; height: 18px; accent-color: var(--brand-teal-deep); }
.tur-principal[b-24q1ovt86j] { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--text-secondary); }
.tur-edicion .tur-nota-sm[b-24q1ovt86j] { flex-basis: 100%; margin: 0; }
.tur-edicion-acciones[b-24q1ovt86j] { display: flex; gap: 8px; }
.tur-sr[b-24q1ovt86j] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

@media (max-width: 991.98px) {
    .tur-fila[b-24q1ovt86j] { grid-template-columns: 1fr auto; }
    .tur-fila-datos[b-24q1ovt86j] { grid-column: 1 / -1; grid-row: 2; }
    .tur-persona[b-24q1ovt86j] { grid-template-columns: 1fr auto; }
    .tur-persona-turnos[b-24q1ovt86j] { grid-column: 1 / -1; grid-row: 2; }
    .tur-edicion[b-24q1ovt86j] { grid-column: 1 / -1; }
}

@media (max-width: 575.98px) {
    .tur-fila[b-24q1ovt86j], .tur-persona[b-24q1ovt86j] { grid-template-columns: 1fr; }
    .tur-fila-accion[b-24q1ovt86j], .tur-persona-accion[b-24q1ovt86j] { justify-self: start; text-align: left; }
}

@media (pointer: coarse) {
    .tur-check[b-24q1ovt86j] { min-height: 44px; }
}

/* TURNOS-01 rev. 3: escuela de contexto, alcance explicito y zona horaria */
.tur-escuela[b-24q1ovt86j] { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin: 0 0 12px; color: var(--text-secondary); font-size: 14px; }
.tur-escuela .msr[b-24q1ovt86j] { font-size: 18px; color: var(--brand-teal-deep); }
.tur-modo[b-24q1ovt86j] { display: flex; gap: 16px; flex-wrap: wrap; flex-basis: 100%; }
.tur-zona[b-24q1ovt86j] { display: flex; flex-direction: column; gap: 4px; margin-top: 16px; max-width: 420px; }
/* /Pages/ControlEscolar/Usuarios.razor.rz.scp.css */
/* ===== T-058: Patrón de entrega de credenciales y notas (.cred-*) ===== */

/* Nota informativa en el drawer */
.cred-note[b-or6a4kvuxq] {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 12px 13px;
    border-radius: var(--radius-md);
    background: var(--bg-light-teal);
    color: var(--text-primary);
    font-size: 12.5px;
    line-height: 1.6;
    margin-top: 6px;
    margin-bottom: 6px;
}

.cred-note .msr[b-or6a4kvuxq] {
    font-size: 20px;
    flex: 0 0 20px;
    color: var(--brand-teal-deep);
    margin-top: 1px;
}

.cred-note b[b-or6a4kvuxq] {
    font-weight: 700;
}

/* Modal de entrega de credencial */
.cred-modal-backdrop[b-or6a4kvuxq] {
    position: fixed;
    inset: 0;
    background: rgba(26, 28, 31, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1050;
    padding: 16px;
}

.cred-modal[b-or6a4kvuxq] {
    width: 520px;
    max-width: 100%;
    background: var(--bg-panel);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-lg);
    overflow: hidden;
}

.cred-head[b-or6a4kvuxq] {
    padding: 22px 24px 16px;
    border-bottom: 1px solid var(--border-soft);
}

.cred-head-top[b-or6a4kvuxq] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.cred-check[b-or6a4kvuxq] {
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    border-radius: var(--radius-md);
    background: rgba(29, 158, 117, 0.12);
    color: var(--success-ink);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
}

.cred-title[b-or6a4kvuxq] {
    font-family: 'Fraunces', serif;
    font-size: 20px;
    font-weight: 600;
    margin: 0;
    line-height: 1.3;
    color: var(--text-primary);
}

.cred-sub[b-or6a4kvuxq] {
    font-size: 13px;
    color: var(--text-secondary);
    line-height: 1.55;
    margin: 10px 0 0;
}

.cred-body[b-or6a4kvuxq] {
    padding: 20px 24px;
}

.cred-card[b-or6a4kvuxq] {
    background: var(--bg-cream);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    overflow: hidden;
}

.cred-row[b-or6a4kvuxq] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--border-soft);
}

.cred-row:last-child[b-or6a4kvuxq] {
    border-bottom: none;
}

.cred-row-main[b-or6a4kvuxq] {
    flex: 1;
    min-width: 0;
}

.cred-k[b-or6a4kvuxq] {
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-secondary);
    margin-bottom: 3px;
}

.cred-v[b-or6a4kvuxq] {
    font-size: 14px;
    color: var(--text-primary);
    word-break: break-all;
}

.cred-row-pass[b-or6a4kvuxq] {
    background: var(--bg-panel);
}

.cred-pass[b-or6a4kvuxq] {
    font-family: ui-monospace, 'Cascadia Mono', 'Consolas', monospace;
    font-size: 21px;
    font-weight: 600;
    letter-spacing: 0.06em;
    color: var(--text-primary);
    font-variant-numeric: tabular-nums;
    user-select: all;
    -webkit-user-select: all;
}

.cred-actions[b-or6a4kvuxq] {
    display: flex;
    gap: 10px;
    align-items: center;
    margin-top: 16px;
    flex-wrap: wrap;
}

.cred-copy-ok[b-or6a4kvuxq] {
    background: rgba(29, 158, 117, 0.12) !important;
    border-color: transparent !important;
    color: var(--success-ink) !important;
    box-shadow: none !important;
}

.cred-copy-ok:hover[b-or6a4kvuxq] {
    background: rgba(29, 158, 117, 0.18) !important;
    border-color: transparent !important;
    color: var(--success-ink) !important;
}

.cred-hint[b-or6a4kvuxq] {
    font-size: 12.5px;
    color: var(--text-secondary);
}

.cred-warn[b-or6a4kvuxq] {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    margin-top: 16px;
    padding: 11px 13px;
    border-radius: var(--radius-md);
    background: rgba(186, 117, 23, 0.14);
    color: var(--warning-ink);
    font-size: 12.5px;
    line-height: 1.6;
}

.cred-warn .msr[b-or6a4kvuxq] {
    font-size: 19px;
    flex: 0 0 19px;
    margin-top: 1px;
}

.cred-inline-err[b-or6a4kvuxq] {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    margin-top: 14px;
    padding: 11px 13px;
    border-radius: var(--radius-md);
    background: rgba(163, 45, 45, 0.12);
    color: var(--danger);
    font-size: 12.5px;
    line-height: 1.6;
}

.cred-inline-err .msr[b-or6a4kvuxq] {
    font-size: 19px;
    flex: 0 0 19px;
    margin-top: 1px;
}

.cred-foot[b-or6a4kvuxq] {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 14px 24px;
    border-top: 1px solid var(--border-soft);
    background: var(--bg-cream);
}

.cred-confirm[b-or6a4kvuxq] {
    padding: 14px 24px;
    border-top: 1px solid var(--border-soft);
    background: rgba(186, 117, 23, 0.14);
}

.cred-confirm-txt[b-or6a4kvuxq] {
    font-size: 13px;
    color: var(--warning-ink);
    line-height: 1.55;
    margin: 0 0 12px;
    font-weight: 600;
}

.cred-confirm-btns[b-or6a4kvuxq] {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

.cred-btn-danger[b-or6a4kvuxq] {
    background: var(--bg-panel);
    border-color: var(--danger);
    color: var(--danger);
}

.cred-btn-danger:hover[b-or6a4kvuxq] {
    background: rgba(163, 45, 45, 0.08);
    border-color: var(--danger);
    color: var(--danger);
}

/* Responsive móvil */
@media (max-width: 640px) {
    .cred-modal-backdrop[b-or6a4kvuxq] {
        padding: 0;
        align-items: flex-end;
    }

    .cred-modal[b-or6a4kvuxq] {
        width: 100%;
        border-radius: 18px 18px 0 0;
    }

    .cred-head[b-or6a4kvuxq] {
        padding: 18px 16px 14px;
    }

    .cred-title[b-or6a4kvuxq] {
        font-size: 18px;
    }

    .cred-body[b-or6a4kvuxq] {
        padding: 16px;
    }

    .cred-pass[b-or6a4kvuxq] {
        font-size: 19px;
    }

    .cred-foot[b-or6a4kvuxq],
    .cred-confirm[b-or6a4kvuxq] {
        padding: 14px 16px;
    }

    .cred-actions .mice-btn[b-or6a4kvuxq],
    .cred-foot .mice-btn[b-or6a4kvuxq],
    .cred-confirm-btns .mice-btn[b-or6a4kvuxq] {
        flex: 1;
        justify-content: center;
    }
}

@media (pointer: coarse) {
    .cred-actions .mice-btn[b-or6a4kvuxq],
    .cred-foot .mice-btn[b-or6a4kvuxq],
    .cred-confirm-btns .mice-btn[b-or6a4kvuxq] {
        min-height: 44px;
    }

    .mice-icon-btn[b-or6a4kvuxq] {
        min-width: 44px;
        min-height: 44px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .cred-modal[b-or6a4kvuxq] {
        animation: none !important;
        transition: none !important;
    }
}
/* /Pages/ControlEscolar/VisorReportes.razor.rz.scp.css */
/* ========================================================================
   VISOR DE REPORTES — PÁGINA (chrome v2 + contenido legacy intacto)
   ======================================================================== */

.vr-page[b-m1zk5ut3an] {
    padding: 22px 28px 36px;
    max-width: 100%;
    font-family: var(--font-sans);
    color: var(--text-primary);
}

/* ── Chrome v2 ───────────────────────────────────────────────────── */
.vr-bc[b-m1zk5ut3an] {
    display: flex; align-items: center; gap: 6px;
    margin-bottom: 14px; font-size: 12px;
    color: var(--text-muted); flex-wrap: wrap;
}
.vr-bc .msr[b-m1zk5ut3an] { font-size: 14px; }
.vr-bc a[b-m1zk5ut3an] {
    color: var(--text-secondary);
    text-decoration: none; cursor: pointer;
    transition: color 0.15s ease;
}
.vr-bc a:hover[b-m1zk5ut3an] { color: var(--brand-teal-deep); }
.vr-sep[b-m1zk5ut3an] { color: var(--text-muted); }
.vr-current[b-m1zk5ut3an] { color: var(--text-primary); font-weight: 600; }

.vr-h[b-m1zk5ut3an] {
    display: flex; align-items: center; gap: 14px;
    margin-bottom: 22px; flex-wrap: wrap;
}
.vr-h-icon[b-m1zk5ut3an] {
    width: 48px; height: 48px;
    border-radius: 13px;
    background: linear-gradient(135deg, #0EA5E9, #0369A1);
    color: #FFFFFF;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(14, 165, 233, 0.25);
}
.vr-h-icon .msr[b-m1zk5ut3an] { font-size: 26px; }
.vr-h-block[b-m1zk5ut3an] { flex: 1; min-width: 0; }
.vr-h-title[b-m1zk5ut3an] {
    font-family: var(--font-serif);
    font-size: 26px; font-weight: 600;
    color: var(--text-primary);
    letter-spacing: -0.4px;
    margin: 0 0 4px;
    line-height: 1.1;
}
.vr-h-sub[b-m1zk5ut3an] {
    font-size: 13px; color: var(--text-secondary);
    margin: 0;
}

.vr-h-actions[b-m1zk5ut3an] { display: flex; gap: 6px; align-items: center; }

.vr-btn-export[b-m1zk5ut3an] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    border-radius: 9px;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    color: var(--text-secondary);
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
    font-family: inherit;
    transition: all 0.15s ease;
}

.vr-btn-export:not(:disabled):hover[b-m1zk5ut3an] {
    border-color: var(--brand-teal);
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
}

.vr-btn-export:disabled[b-m1zk5ut3an] {
    opacity: 0.5;
    cursor: not-allowed;
}

.vr-btn-export .msr[b-m1zk5ut3an] { font-size: 16px; }

@media (max-width: 575.98px) {
    .vr-page[b-m1zk5ut3an] { padding: 18px 16px 24px; }
    .vr-h-title[b-m1zk5ut3an] { font-size: 22px; }
    .vr-h-icon[b-m1zk5ut3an] { width: 42px; height: 42px; border-radius: 11px; }
    .vr-h-icon .msr[b-m1zk5ut3an] { font-size: 22px; }
}

/* ========================================================================
   CARD BASE / FILTROS
   ======================================================================== */

.vr-card[b-m1zk5ut3an] {
    background: white;
    border-radius: 11px;
    border: 0.5px solid rgba(0, 0, 0, 0.06);
    padding: 12px 14px;
    margin-bottom: 12px;
}

.vr-filters-card[b-m1zk5ut3an] { padding: 12px 14px; }

.vr-filters-row[b-m1zk5ut3an] {
    display: flex;
    gap: 8px;
    margin-bottom: 9px;
    align-items: stretch;
}

.vr-search[b-m1zk5ut3an] {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 6px;
    background: #F5F7F9;
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 7px;
    padding: 6px 10px;
}

.vr-search .msr[b-m1zk5ut3an] { font-size: 14px; color: #AAA; }

.vr-search input[b-m1zk5ut3an] {
    flex: 1;
    border: none;
    background: transparent;
    outline: none;
    font-size: 12px;
    color: #444;
    font-family: inherit;
    min-width: 0;
}

.vr-search input[b-m1zk5ut3an]::placeholder { color: #AAA; }

.vr-search-clear[b-m1zk5ut3an] {
    width: 18px; height: 18px;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.08);
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center; justify-content: center;
    padding: 0;
}

.vr-search-clear .msr[b-m1zk5ut3an] { font-size: 11px; color: #888; }

.vr-btn-filters[b-m1zk5ut3an] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 6px 12px;
    background: white;
    border: 1px solid #DDD;
    border-radius: 7px;
    font-size: 12px;
    font-weight: 500;
    color: #666;
    cursor: pointer;
    font-family: inherit;
}

.vr-btn-filters:hover[b-m1zk5ut3an] { background: #F5F7F9; }
.vr-btn-filters.active[b-m1zk5ut3an] { background: #E1F5EE; border-color: #0F6E56; color: #0F6E56; }
.vr-btn-filters .msr[b-m1zk5ut3an] { font-size: 14px; }

.vr-filters-badge[b-m1zk5ut3an] {
    background: #0F6E56;
    color: white;
    font-size: 9px;
    padding: 1px 6px;
    border-radius: 99px;
    font-weight: 500;
}

.vr-group-chips-row[b-m1zk5ut3an] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 6px;
}

.vr-filter-label[b-m1zk5ut3an] {
    font-size: 10px;
    font-weight: 500;
    color: #888;
    letter-spacing: 0.06em;
}

.vr-group-chip[b-m1zk5ut3an] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 11px;
    border-radius: 99px;
    border: 1px solid #DDD;
    font-size: 11px;
    cursor: pointer;
    transition: transform 0.1s ease;
    font-family: inherit;
    background: white;
    color: #666;
}

.vr-group-chip:hover[b-m1zk5ut3an] { transform: translateY(-1px); }

.vr-group-chip.active[b-m1zk5ut3an] { border-width: 1.5px; font-weight: 500; }

.vr-group-chip.active-generic[b-m1zk5ut3an] {
    background: #E1F5EE;
    border-color: #0F6E56;
    color: #0F6E56;
    font-weight: 500;
}

.vr-grade-badge[b-m1zk5ut3an] {
    display: inline-flex;
    align-items: center; justify-content: center;
    width: 18px; height: 18px;
    border-radius: 50%;
    font-size: 9px;
    font-weight: 500;
    flex-shrink: 0;
}

.vr-grade-badge-sm[b-m1zk5ut3an] {
    display: inline-flex;
    align-items: center; justify-content: center;
    width: 14px; height: 14px;
    border-radius: 50%;
    font-size: 8px;
    font-weight: 500;
    flex-shrink: 0;
}

.vr-more-link[b-m1zk5ut3an] {
    background: transparent;
    border: none;
    color: #4BA8AA;
    font-size: 11px;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
}

.vr-advanced-filters[b-m1zk5ut3an] {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 0.5px dashed rgba(0, 0, 0, 0.08);
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}

.vr-filter-group[b-m1zk5ut3an] {
    display: flex;
    flex-direction: column;
    gap: 5px;
    min-width: 200px;
}

.vr-filter-group label[b-m1zk5ut3an] {
    font-size: 10px;
    font-weight: 500;
    color: #888;
    letter-spacing: 0.06em;
}

.vr-filter-group select[b-m1zk5ut3an],
.vr-filter-group input[type="date"][b-m1zk5ut3an] {
    padding: 6px 9px;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 6px;
    font-size: 12px;
    color: #444;
    font-family: inherit;
    background: white;
    outline: none;
}

.vr-date-presets[b-m1zk5ut3an] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.vr-preset[b-m1zk5ut3an] {
    padding: 4px 10px;
    border-radius: 99px;
    border: 1px solid #DDD;
    background: white;
    color: #666;
    font-size: 11px;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
    transition: all 0.15s ease;
}

.vr-preset:hover[b-m1zk5ut3an] { border-color: #9FE1CB; color: #0F6E56; }
.vr-preset.active[b-m1zk5ut3an] { background: #E1F5EE; border-color: #1D9E75; color: #085041; }

.vr-date-range-inputs[b-m1zk5ut3an] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 4px;
}

.vr-btn-apply[b-m1zk5ut3an] {
    padding: 5px 11px;
    background: #0F6E56;
    color: white;
    border: none;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
}

.vr-active-filters[b-m1zk5ut3an] {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 0.5px dashed rgba(0, 0, 0, 0.08);
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    align-items: center;
}

.vr-active-chip[b-m1zk5ut3an] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 4px 3px 9px;
    border: 1px solid;
    border-radius: 99px;
    font-size: 11px;
    font-weight: 500;
}

.vr-active-chip .msr[b-m1zk5ut3an] { font-size: 11px; }

.vr-active-chip button[b-m1zk5ut3an] {
    width: 14px; height: 14px;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.08);
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center; justify-content: center;
    padding: 0;
    margin-left: 2px;
}

.vr-active-chip button .msr[b-m1zk5ut3an] { font-size: 9px; color: inherit; }
.vr-active-chip button:hover[b-m1zk5ut3an] { background: rgba(163, 45, 45, 0.25); }

.vr-chip-grupo[b-m1zk5ut3an]    { background: #EEEDFE; border-color: #AFA9EC; color: #3C3489; }
.vr-chip-docente[b-m1zk5ut3an]  { background: #E6F1FB; border-color: #85B7EB; color: #0C447C; }
.vr-chip-fecha[b-m1zk5ut3an]    { background: #FAEEDA; border-color: #FAC775; color: #854F0B; }
.vr-chip-busqueda[b-m1zk5ut3an] { background: #F1EFE8; border-color: #D3D1C7; color: #444441; }

.vr-clear-all[b-m1zk5ut3an] {
    background: transparent;
    border: none;
    color: #A32D2D;
    font-size: 11px;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
    margin-left: auto;
}

.vr-clear-all:hover[b-m1zk5ut3an] { text-decoration: underline; }

/* ========================================================================
   ESTADOS LOADING / EMPTY
   ======================================================================== */

.vr-loading[b-m1zk5ut3an] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 40px;
    color: #888;
    font-size: 13px;
}

.vr-loading .msr[b-m1zk5ut3an] { font-size: 18px; }

.vr-spinning[b-m1zk5ut3an] { animation: vr-spin-b-m1zk5ut3an 1s linear infinite; }
@keyframes vr-spin-b-m1zk5ut3an {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

.vr-empty-state[b-m1zk5ut3an] {
    text-align: center;
    padding: 50px 20px;
    color: #888;
    background: white;
    border-radius: 11px;
    border: 0.5px solid rgba(0, 0, 0, 0.06);
}

.vr-empty-state .msr[b-m1zk5ut3an] {
    font-size: 48px;
    color: #BBB;
    margin-bottom: 8px;
}

.vr-empty-state h3[b-m1zk5ut3an] { font-size: 15px; color: #444; margin: 0 0 4px; }
.vr-empty-state p[b-m1zk5ut3an] { font-size: 12px; margin: 0; }

.vr-link-btn[b-m1zk5ut3an] {
    background: transparent;
    border: none;
    color: #0F6E56;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
    text-decoration: underline;
    padding: 0;
}

/* ========================================================================
   TABLA DESKTOP
   ======================================================================== */

.vr-table-wrapper[b-m1zk5ut3an] { margin-bottom: 12px; }

.vr-table[b-m1zk5ut3an] {
    background: white;
    border-radius: 11px;
    border: 0.5px solid rgba(0, 0, 0, 0.06);
    overflow: hidden;
}

.vr-table-header[b-m1zk5ut3an],
.vr-table-row[b-m1zk5ut3an] {
    display: grid;
    grid-template-columns: 90px 1.6fr 110px 1.4fr 1.8fr 1fr 100px;
    gap: 10px;
    padding: 10px 14px;
    align-items: center;
}

/* Con columna de ciclo escolar visible (modo Todos) */
.vr-table.vr-table-con-ciclo .vr-table-header[b-m1zk5ut3an],
.vr-table.vr-table-con-ciclo .vr-table-row[b-m1zk5ut3an] {
    grid-template-columns: 90px 1.4fr 110px 1.2fr 1.6fr 1fr 90px 100px;
}

.vr-table-header[b-m1zk5ut3an] {
    background: #F9F9F9;
    border-bottom: 0.5px solid rgba(0, 0, 0, 0.06);
    font-size: 10px;
    color: #888;
    font-weight: 500;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.vr-table-row[b-m1zk5ut3an] {
    font-size: 12px;
    border-bottom: 0.5px solid rgba(0, 0, 0, 0.04);
}

.vr-table-row:nth-child(even)[b-m1zk5ut3an] { background: #FAFBFC; }
.vr-table-row:hover[b-m1zk5ut3an] { background: rgba(109, 199, 208, 0.05); }
.vr-table-row:last-child[b-m1zk5ut3an] { border-bottom: none; }

.vr-cell-fecha .vr-fecha-hoy[b-m1zk5ut3an] {
    color: #0F6E56;
    font-weight: 500;
}

.vr-cell-fecha .vr-fecha-normal[b-m1zk5ut3an] { color: #444; }
.vr-hora[b-m1zk5ut3an] { font-size: 10px; color: #888; }

.vr-cell-alumno[b-m1zk5ut3an] {
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
}

.vr-avatar[b-m1zk5ut3an] {
    width: 26px; height: 26px;
    border-radius: 50%;
    display: flex;
    align-items: center; justify-content: center;
    font-size: 10px;
    font-weight: 500;
    flex-shrink: 0;
}

.vr-nombre-truncate[b-m1zk5ut3an] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vr-group-pill[b-m1zk5ut3an] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 8px;
    border-radius: 99px;
    border: 1px solid;
    font-size: 11px;
    font-weight: 500;
}

.vr-incidencias-pill[b-m1zk5ut3an] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 8px;
    border-radius: 99px;
    font-size: 10px;
    font-weight: 500;
    border: 1px solid;
}

.vr-incidencias-pill.leve[b-m1zk5ut3an] {
    background: #FAEEDA;
    border-color: #FAC775;
    color: #854F0B;
}

.vr-incidencias-pill.grave[b-m1zk5ut3an] {
    background: #FCEBEB;
    border-color: #F0B5B5;
    color: #A32D2D;
}

.vr-incidencias-pill .msr[b-m1zk5ut3an] { font-size: 11px; }

.vr-descripcion-cell[b-m1zk5ut3an] {
    color: #666;
    font-size: 11px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vr-docente-cell[b-m1zk5ut3an] {
    color: #666;
    font-size: 11px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vr-docente-cell > div[b-m1zk5ut3an] {
    overflow: hidden;
    text-overflow: ellipsis;
}

.vr-docente-sub[b-m1zk5ut3an] {
    color: #999;
    font-size: 10px;
}

.vr-actions-col[b-m1zk5ut3an],
.vr-actions-cell[b-m1zk5ut3an] {
    display: flex;
    gap: 4px;
    justify-content: flex-end;
}

.vr-action-btn[b-m1zk5ut3an] {
    width: 28px; height: 28px;
    border-radius: 6px;
    border: 1px solid #DDD;
    background: white;
    cursor: pointer;
    display: flex;
    align-items: center; justify-content: center;
    padding: 0;
    transition: all 0.15s ease;
}

.vr-action-btn .msr[b-m1zk5ut3an] { font-size: 14px; }

.vr-action-btn.edit[b-m1zk5ut3an] { color: #4BA8AA; }
.vr-action-btn.edit:hover[b-m1zk5ut3an] { background: #E1F5EE; border-color: #4BA8AA; }

.vr-action-btn.delete[b-m1zk5ut3an] { color: #A32D2D; }
.vr-action-btn.delete:hover[b-m1zk5ut3an] { background: #FCEBEB; border-color: #A32D2D; }

/* ========================================================================
   CARDS MÓVIL
   ======================================================================== */

.vr-cards-wrapper[b-m1zk5ut3an] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 12px;
}

.vr-card-reporte[b-m1zk5ut3an] {
    background: white;
    border: 0.5px solid rgba(0, 0, 0, 0.06);
    border-radius: 11px;
    padding: 11px 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.vr-card-main[b-m1zk5ut3an] { display: flex; gap: 10px; }

.vr-avatar-lg[b-m1zk5ut3an] {
    width: 36px; height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center; justify-content: center;
    font-size: 12px;
    font-weight: 500;
    flex-shrink: 0;
}

.vr-card-content[b-m1zk5ut3an] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.vr-card-top[b-m1zk5ut3an] {
    display: flex;
    justify-content: space-between;
    gap: 6px;
    align-items: baseline;
    flex-wrap: wrap;
}

.vr-card-alumno[b-m1zk5ut3an] {
    font-size: 13px;
    font-weight: 500;
    color: #444;
}

.vr-card-meta[b-m1zk5ut3an] {
    display: flex;
    align-items: center;
    gap: 5px;
    flex-wrap: wrap;
    font-size: 11px;
    color: #666;
}

.vr-dot[b-m1zk5ut3an] { color: #BBB; }

.vr-card-descripcion[b-m1zk5ut3an] {
    font-size: 11px;
    color: #666;
    line-height: 1.4;
    margin-top: 2px;
}

.vr-card-actions[b-m1zk5ut3an] {
    display: flex;
    gap: 6px;
    border-top: 0.5px solid rgba(0, 0, 0, 0.06);
    padding-top: 8px;
}

.vr-card-action[b-m1zk5ut3an] {
    flex: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 7px;
    border: 1px solid #DDD;
    border-radius: 7px;
    background: white;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
}

.vr-card-action .msr[b-m1zk5ut3an] { font-size: 14px; }
.vr-card-action.edit[b-m1zk5ut3an]   { color: #4BA8AA; }
.vr-card-action.edit:hover[b-m1zk5ut3an] { background: #E1F5EE; }
.vr-card-action.delete[b-m1zk5ut3an] { color: #A32D2D; }
.vr-card-action.delete:hover[b-m1zk5ut3an] { background: #FCEBEB; }

/* ========================================================================
   PAGINACIÓN
   ======================================================================== */

.vr-pagination[b-m1zk5ut3an] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 14px;
    background: white;
    border-radius: 11px;
    border: 0.5px solid rgba(0, 0, 0, 0.06);
    margin-bottom: 12px;
    flex-wrap: wrap;
    gap: 10px;
}

.vr-page-size[b-m1zk5ut3an] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    color: #888;
}

.vr-page-size select[b-m1zk5ut3an] {
    padding: 4px 8px;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 5px;
    font-size: 11px;
    color: #444;
    font-family: inherit;
    background: white;
    outline: none;
}

.vr-page-nav[b-m1zk5ut3an] {
    display: flex;
    gap: 3px;
    align-items: center;
}

.vr-page-nav button[b-m1zk5ut3an] {
    min-width: 28px; height: 28px;
    border: 1px solid #DDD;
    background: white;
    border-radius: 6px;
    cursor: pointer;
    color: #666;
    font-size: 11px;
    font-weight: 500;
    font-family: inherit;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 7px;
}

.vr-page-nav button .msr[b-m1zk5ut3an] { font-size: 14px; }
.vr-page-nav button:hover:not(:disabled)[b-m1zk5ut3an] { background: #F5F7F9; }
.vr-page-nav button:disabled[b-m1zk5ut3an] { opacity: 0.4; cursor: not-allowed; }

.vr-page-nav button.active[b-m1zk5ut3an] {
    background: #0F6E56;
    border-color: #0F6E56;
    color: white;
}

.vr-page-ellipsis[b-m1zk5ut3an] { color: #BBB; padding: 0 4px; }

/* ========================================================================
   CONFIRMAR ELIMINAR + TOAST
   ======================================================================== */

.vr-overlay[b-m1zk5ut3an] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.vr-confirm-dialog[b-m1zk5ut3an] {
    background: white;
    border-radius: 14px;
    padding: 22px 20px 16px;
    width: 100%;
    max-width: 380px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
    text-align: center;
}

.vr-confirm-icon[b-m1zk5ut3an] {
    width: 56px; height: 56px;
    border-radius: 50%;
    background: #FCEBEB;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 10px;
}

.vr-confirm-icon .msr[b-m1zk5ut3an] {
    font-size: 28px;
    color: #A32D2D;
}

.vr-confirm-dialog h3[b-m1zk5ut3an] {
    font-size: 15px;
    color: #444;
    margin: 0 0 6px;
}

.vr-confirm-dialog p[b-m1zk5ut3an] {
    font-size: 12px;
    color: #888;
    margin: 0 0 16px;
    line-height: 1.5;
}

.vr-confirm-actions[b-m1zk5ut3an] {
    display: flex;
    gap: 8px;
}

.vr-btn-secondary[b-m1zk5ut3an],
.vr-btn-danger[b-m1zk5ut3an] {
    flex: 1;
    padding: 10px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
}

.vr-btn-secondary[b-m1zk5ut3an] {
    background: white;
    color: #888;
    border: 1px solid #DDD;
}

.vr-btn-secondary:hover[b-m1zk5ut3an] { background: #F5F7F9; }

.vr-btn-danger[b-m1zk5ut3an] {
    background: #A32D2D;
    color: white;
    border: none;
}

.vr-btn-danger:hover:not(:disabled)[b-m1zk5ut3an] { background: #862525; }
.vr-btn-danger:disabled[b-m1zk5ut3an] { background: #D38C8C; cursor: not-allowed; }
.vr-btn-danger .msr[b-m1zk5ut3an] { font-size: 14px; }

.vr-toast[b-m1zk5ut3an] {
    position: fixed;
    bottom: 20px;
    right: 20px;
    padding: 10px 14px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    font-weight: 500;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    z-index: 1100;
}

.vr-toast .msr[b-m1zk5ut3an] { font-size: 16px; }
.vr-toast-ok[b-m1zk5ut3an]    { background: #E1F5EE; color: #0F6E56; }
.vr-toast-error[b-m1zk5ut3an] { background: #FCEBEB; color: #A32D2D; }

/* ========================================================================
   RESPONSIVE
   ======================================================================== */

@media (min-width: 992px) {
    .vr-desktop-only[b-m1zk5ut3an] { display: block; }
    .vr-mobile-only[b-m1zk5ut3an]  { display: none; }
}

@media (max-width: 991.98px) {
    .vr-desktop-only[b-m1zk5ut3an] { display: none; }
    .vr-mobile-only[b-m1zk5ut3an]  { display: flex; flex-direction: column; }
    .vr-page[b-m1zk5ut3an] { padding: 16px; }
}

/* ── Ciclo escolar ──────────────────────────────────────────────── */
.vr-ciclo-chips-row[b-m1zk5ut3an] { margin-top: 2px; }

.vr-ciclo-badge[b-m1zk5ut3an] {
    display: inline-block;
    padding: 2px 7px;
    border-radius: 6px;
    background: #E1F5EE;
    color: #0F6E56;
    font-size: 10.5px;
    font-weight: 500;
    border: 1px solid #B2DDD0;
    white-space: nowrap;
}

.vr-ciclo-badge.vr-ciclo-vacio[b-m1zk5ut3an] {
    background: #F5F5F5;
    color: #AAA;
    border-color: #DDD;
}

.vr-ciclo-cell[b-m1zk5ut3an] {
    display: flex;
    align-items: center;
}

@media (max-width: 575.98px) {
    .vr-page[b-m1zk5ut3an] { padding: 12px; }
    .vr-title[b-m1zk5ut3an] { font-size: 17px; }
    .vr-pagination[b-m1zk5ut3an] { flex-direction: column; align-items: stretch; }
    .vr-page-nav[b-m1zk5ut3an] { justify-content: center; }
    .vr-toast[b-m1zk5ut3an] { left: 12px; right: 12px; }
}

/* FILTROS-ESCUELA-TURNO: escuela activa + turno comun de Control Escolar. */
.vr-contexto[b-m1zk5ut3an] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px 16px;
    margin-bottom: 14px;
}

.vr-escuela[b-m1zk5ut3an] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 600;
    color: var(--text-secondary);
    overflow-wrap: break-word;
}

.vr-escuela .msr[b-m1zk5ut3an] {
    font-size: 18px;
    color: var(--brand-teal-deep);
}
/* /Pages/EditarAlumnos.razor.rz.scp.css */
/* === Editar Alumnos · v2 wrapper (Fase D) === */
.ea-container[b-e4wb20k277] {
    padding: 22px 28px 36px;
    max-width: 100%;
    font-family: var(--font-sans);
    color: var(--text-primary);
}

/* === Breadcrumb v2 === */
.ea-bc[b-e4wb20k277] {
    display: flex; align-items: center; gap: 6px;
    margin-bottom: 14px; font-size: 12px;
    color: var(--text-muted); flex-wrap: wrap;
}
.ea-bc .msr[b-e4wb20k277] { font-size: 14px !important; }
.ea-bc a[b-e4wb20k277] { color: var(--text-secondary); text-decoration: none; cursor: pointer; transition: color 0.15s ease; }
.ea-bc a:hover[b-e4wb20k277] { color: var(--brand-teal-deep); }
.ea-sep[b-e4wb20k277] { color: var(--text-muted); }
.ea-clase[b-e4wb20k277] { color: var(--text-secondary); font-weight: 500; }
.ea-current[b-e4wb20k277] { color: var(--text-primary); font-weight: 600; }

/* === Header v2 === */
.ea-h[b-e4wb20k277] {
    display: flex; align-items: center; gap: 14px;
    margin-bottom: 14px;
}
.ea-h-icon[b-e4wb20k277] {
    width: 44px; height: 44px; border-radius: 12px;
    background: linear-gradient(135deg, #2563EB, #1D4ED8);
    color: #FFFFFF;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.25);
}
.ea-h-icon .msr[b-e4wb20k277] { font-size: 24px !important; }
.ea-h-block[b-e4wb20k277] { flex: 1; min-width: 0; }
.ea-h-title[b-e4wb20k277] {
    font-family: var(--font-serif);
    font-size: 28px; font-weight: 600;
    color: var(--text-primary);
    letter-spacing: -0.5px; line-height: 1.1;
    margin: 0;
}
.ea-h-sub[b-e4wb20k277] { font-size: 13px; color: var(--text-secondary); margin: 4px 0 0; }
.ea-sub-info[b-e4wb20k277] { font-size: 12px; color: #888; margin-bottom: 14px; display: flex; gap: 12px; }
.ea-count-active[b-e4wb20k277] { font-weight: 500; color: #4BA8AA; }
.ea-count-baja[b-e4wb20k277] { font-weight: 500; color: #E24B4A; }

/* Pills */
.class-pills[b-e4wb20k277] { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 16px; }
.pill[b-e4wb20k277] { padding: 6px 14px; border-radius: 16px; font-size: 12px; cursor: pointer; border: 1px solid #ddd; color: #666; background: transparent; transition: all 0.15s; }
.pill:hover[b-e4wb20k277] { border-color: #4BA8AA; color: #4BA8AA; }
.pill.active[b-e4wb20k277] { background: #4BA8AA; color: #fff; border-color: #4BA8AA; }

/* Loading */
.loading-state[b-e4wb20k277] { display: flex; flex-direction: column; align-items: center; padding: 60px 20px; gap: 16px; color: #999; font-size: 14px; }
.spinner[b-e4wb20k277] { width: 36px; height: 36px; border: 3px solid #E8F4F8; border-top: 3px solid #4BA8AA; border-radius: 50%; animation: spin-b-e4wb20k277 0.8s linear infinite; }
@keyframes spin-b-e4wb20k277 { to { transform: rotate(360deg); } }

/* Toolbar */
.ea-toolbar[b-e4wb20k277] { display: flex; gap: 8px; align-items: center; margin-bottom: 14px; flex-wrap: wrap; }
.ea-search[b-e4wb20k277] { display: flex; align-items: center; gap: 5px; border: 1px solid #ddd; border-radius: 8px; padding: 6px 10px; flex: 1; max-width: 260px; }
.ea-search input[b-e4wb20k277] { border: none; outline: none; font-size: 12px; width: 100%; background: transparent; font-family: inherit; }
.ea-btn[b-e4wb20k277] { display: flex; align-items: center; gap: 4px; border: 1px solid #ddd; border-radius: 8px; padding: 6px 12px; font-size: 12px; cursor: pointer; background: #fff; color: #666; transition: all 0.12s; font-family: inherit; }
.ea-btn:hover[b-e4wb20k277] { border-color: #4BA8AA; color: #4BA8AA; }
.ea-btn .msr[b-e4wb20k277] { font-size: 14px; }
.ea-filter-tabs[b-e4wb20k277] { display: flex; gap: 4px; margin-left: auto; }
.ea-ftab[b-e4wb20k277] { padding: 5px 12px; border-radius: 6px; font-size: 11px; border: 1px solid #ddd; cursor: pointer; background: transparent; color: #888; transition: all 0.12s; font-family: inherit; }
.ea-ftab:hover[b-e4wb20k277] { border-color: #4BA8AA; color: #4BA8AA; }
.ea-ftab.active[b-e4wb20k277] { background: #4BA8AA; color: #fff; border-color: #4BA8AA; }

/* Layout */
.ea-layout[b-e4wb20k277] { display: flex; gap: 0; align-items: stretch; min-height: 500px; }
.ea-list-col[b-e4wb20k277] { flex: 1; min-width: 0; transition: all 0.25s; }
.ea-empty[b-e4wb20k277] { display: flex; flex-direction: column; align-items: center; padding: 40px 20px; gap: 8px; color: #ccc; font-size: 13px; }

/* Letter separator */
.ea-letter-sep[b-e4wb20k277] { display: flex; align-items: center; gap: 8px; padding: 4px 0; margin-top: 10px; }
.ea-letter-sep:first-child[b-e4wb20k277] { margin-top: 0; }
.ea-letter[b-e4wb20k277] { font-size: 14px; font-weight: 500; color: #4BA8AA; min-width: 16px; }
.ea-letter-line[b-e4wb20k277] { flex: 1; height: 1.5px; background: #4BA8AA; border-radius: 1px; }

/* Student row */
.ea-al-row[b-e4wb20k277] { display: flex; align-items: center; padding: 10px 14px; border: 1px solid #eee; border-radius: 10px; margin-bottom: 6px; transition: all 0.12s; gap: 10px; cursor: pointer; }
.ea-al-row:hover[b-e4wb20k277] { border-color: #4BA8AA; background: rgba(75,168,170,0.03); }
.ea-al-row.selected[b-e4wb20k277] { border-color: #4BA8AA; background: #E8F4F8; }
.ea-al-row.baja[b-e4wb20k277] { opacity: 0.5; }
.ea-avatar[b-e4wb20k277] { width: 36px; height: 36px; border-radius: 50%; background: #f0f0f0; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 500; color: #888; flex-shrink: 0; }
.ea-al-info[b-e4wb20k277] { flex: 1; min-width: 0; }
.ea-al-name[b-e4wb20k277] { font-size: 13px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ea-al-phone[b-e4wb20k277] { font-size: 11px; color: #aaa; display: flex; align-items: center; gap: 3px; }
.ea-al-status[b-e4wb20k277] { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.ea-al-status.on[b-e4wb20k277] { background: #639922; }
.ea-al-status.off[b-e4wb20k277] { background: #E24B4A; }
.ea-al-edit[b-e4wb20k277] { border: none; background: transparent; cursor: pointer; color: #ccc; padding: 4px; }
.ea-al-edit:hover[b-e4wb20k277] { color: #4BA8AA; }
.ea-al-edit .msr[b-e4wb20k277] { font-size: 16px; }

/* Baja section */
.ea-baja-section[b-e4wb20k277] { margin-top: 14px; padding: 10px; background: #f9f9f9; border-radius: 8px; }
.ea-baja-title[b-e4wb20k277] { font-size: 12px; font-weight: 500; color: #888; margin-bottom: 6px; }
.ea-baja-row[b-e4wb20k277] { display: flex; align-items: center; gap: 6px; padding: 5px 0; font-size: 12px; cursor: pointer; color: #666; }
.ea-baja-row:hover[b-e4wb20k277] { color: #4BA8AA; }

/* Side panel — flex column: header fijo, body scrollable, footer sticky (Guardar siempre visible) */
.ea-panel[b-e4wb20k277] { width: 360px; flex-shrink: 0; border-left: 1px solid #e0e0e0; background: #fff; max-height: 80vh; position: sticky; top: 0; display: flex; flex-direction: column; overflow: hidden; }
.ea-panel-header[b-e4wb20k277] { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; border-bottom: 1px solid #f0f0f0; flex-shrink: 0; }
.ea-panel-body[b-e4wb20k277] { flex: 1; overflow-y: auto; padding: 16px 20px; }
.ea-panel-footer[b-e4wb20k277] { flex-shrink: 0; padding: 12px 20px 14px; border-top: 1px solid #f0f0f0; background: #fff; }
.ea-save-error[b-e4wb20k277] { display: flex; align-items: center; gap: 6px; font-size: 12px; color: #A32D2D; background: #FCEBEB; border: 1px solid #F7C1C1; border-radius: 6px; padding: 7px 10px; margin-bottom: 8px; }
.ea-panel-title[b-e4wb20k277] { font-size: 16px; font-weight: 500; display: flex; align-items: center; gap: 6px; }
.ea-panel-title .msr[b-e4wb20k277] { font-size: 18px; color: #4BA8AA; }
.ea-panel-close[b-e4wb20k277] { border: none; background: transparent; cursor: pointer; color: #aaa; padding: 2px; }
.ea-panel-close:hover[b-e4wb20k277] { color: #E24B4A; }
.ea-panel-avatar[b-e4wb20k277] { width: 56px; height: 56px; border-radius: 50%; background: #E8F4F8; display: flex; align-items: center; justify-content: center; font-size: 18px; font-weight: 500; color: #3A8E90; margin: 0 auto 14px; }

/* Panel form */
.ea-fg[b-e4wb20k277] { margin-bottom: 12px; }
.ea-fl[b-e4wb20k277] { font-size: 11px; font-weight: 500; color: #888; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 3px; display: block; }
.ea-fi[b-e4wb20k277] { width: 100%; padding: 7px 10px; border: 1px solid #ddd; border-radius: 6px; font-size: 13px; color: #333; font-family: inherit; box-sizing: border-box; }
.ea-fi:focus[b-e4wb20k277] { outline: none; border-color: #4BA8AA; }
.ea-fi.err[b-e4wb20k277] { border-color: #A32D2D; }
.ea-fsel[b-e4wb20k277] { width: 100%; padding: 7px 10px; border: 1px solid #ddd; border-radius: 6px; font-size: 13px; font-family: inherit; box-sizing: border-box; }
.ea-frow[b-e4wb20k277] { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }

/* Toggle */
.ea-toggle-row[b-e4wb20k277] { display: flex; align-items: center; justify-content: space-between; padding: 8px 10px; border: 1px solid #eee; border-radius: 6px; margin-bottom: 12px; }
.ea-toggle-label[b-e4wb20k277] { font-size: 12px; display: flex; align-items: center; gap: 4px; }
.ea-toggle[b-e4wb20k277] { width: 36px; height: 20px; border-radius: 10px; background: #ccc; position: relative; cursor: pointer; transition: background 0.2s; }
.ea-toggle.on[b-e4wb20k277] { background: #4BA8AA; }
.ea-toggle[b-e4wb20k277]::after { content: ''; position: absolute; width: 16px; height: 16px; border-radius: 50%; background: #fff; top: 2px; left: 2px; transition: left 0.2s; }
.ea-toggle.on[b-e4wb20k277]::after { left: 18px; }

/* Section divider */
.ea-sec-divider[b-e4wb20k277] { display: flex; align-items: center; gap: 8px; margin: 14px 0 10px; }
.ea-sec-line[b-e4wb20k277] { flex: 1; height: 0.5px; background: #ddd; }
.ea-sec-text[b-e4wb20k277] { font-size: 11px; font-weight: 500; color: #4BA8AA; white-space: nowrap; }

/* Buttons */
.ea-save-btn[b-e4wb20k277] { width: 100%; min-height: 44px; padding: 12px; box-sizing: border-box; border: none; border-radius: 8px; font-size: 14px; font-weight: 600; cursor: pointer; background: #6EC6C8; color: #fff; display: flex; align-items: center; justify-content: center; gap: 5px; margin-top: 0; transition: background 0.15s; font-family: inherit; }
.ea-save-btn:hover[b-e4wb20k277] { background: #4BA8AA; }
.ea-save-btn:disabled[b-e4wb20k277] { opacity: 0.6; cursor: not-allowed; }
.ea-danger-btn[b-e4wb20k277] { width: 100%; padding: 9px; border: 1px solid #F7C1C1; border-radius: 8px; font-size: 12px; cursor: pointer; background: transparent; color: #A32D2D; display: flex; align-items: center; justify-content: center; gap: 4px; margin-top: 12px; transition: all 0.12s; font-family: inherit; }
.ea-danger-btn:hover[b-e4wb20k277] { background: #FCEBEB; }

/* Responsive */
@media (max-width: 768px) {
    .ea-container[b-e4wb20k277] { padding: 12px; }
    .ea-layout[b-e4wb20k277] { position: relative; }
    .ea-panel[b-e4wb20k277] { position: absolute; top: 0; right: 0; width: 100%; max-width: 360px; height: 100%; border-left: 1px solid #e0e0e0; z-index: 50; box-shadow: -4px 0 12px rgba(0,0,0,0.08); }
    .ea-frow[b-e4wb20k277] { grid-template-columns: 1fr; }
    .ea-toolbar[b-e4wb20k277] { flex-direction: column; align-items: stretch; }
    .ea-search[b-e4wb20k277] { max-width: 100%; }
    .ea-filter-tabs[b-e4wb20k277] { margin-left: 0; justify-content: flex-end; }
}
@media (max-width: 480px) {
    .ea-panel[b-e4wb20k277] { max-width: 100%; }
    .ea-al-row[b-e4wb20k277] { padding: 8px 10px; }
    .ea-avatar[b-e4wb20k277] { width: 30px; height: 30px; font-size: 10px; }
    .ea-al-name[b-e4wb20k277] { font-size: 12px; }
}
/* /Pages/Equipos.razor.rz.scp.css */
/* ============================================================
   Equipos — pagina del modulo (tokens de tokens.css)
   ============================================================ */

.eq-container[b-ouwftw1wqw] {
    padding: 22px 28px 36px;
    max-width: 100%;
    font-family: var(--font-sans);
    color: var(--text-primary);
}

.fill[b-ouwftw1wqw] { font-variation-settings: 'FILL' 1; }

/* === Breadcrumb === */
.eq-bc[b-ouwftw1wqw] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 14px;
    font-size: 12px;
    color: var(--text-muted);
    flex-wrap: wrap;
}

.eq-bc .material-symbols-rounded[b-ouwftw1wqw] { font-size: 14px; }
.eq-bc a[b-ouwftw1wqw] { color: var(--text-secondary); text-decoration: none; cursor: pointer; transition: color 0.15s ease; }
.eq-bc a:hover[b-ouwftw1wqw] { color: var(--brand-teal-deep); }
.eq-sep[b-ouwftw1wqw] { color: var(--text-muted); }
.eq-clase[b-ouwftw1wqw] { color: var(--text-secondary); font-weight: 500; }
.eq-current[b-ouwftw1wqw] { color: var(--text-primary); font-weight: 600; }

/* === Header === */
.eq-h[b-ouwftw1wqw] {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}

.eq-h-icon[b-ouwftw1wqw] {
    width: 46px;
    height: 46px;
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, var(--brand-teal), var(--brand-teal-dark));
    color: #FFFFFF;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(110, 198, 200, 0.3);
}

.eq-h-icon .material-symbols-rounded[b-ouwftw1wqw] { font-size: 26px; }

.eq-h-block[b-ouwftw1wqw] { flex: 1; min-width: 160px; }

.eq-h-title[b-ouwftw1wqw] {
    font-family: var(--font-serif);
    font-size: 26px;
    font-weight: 600;
    letter-spacing: -0.5px;
    line-height: 1.1;
    margin: 0;
}

.eq-h-sub[b-ouwftw1wqw] {
    font-size: 13px;
    color: var(--text-secondary);
    margin: 4px 0 0;
}

.eq-h-dot[b-ouwftw1wqw] { color: var(--text-muted); margin: 0 2px; }

.eq-h-actions[b-ouwftw1wqw] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

/* Toggle tablero / lista */
.eq-vtoggle[b-ouwftw1wqw] {
    display: flex;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    padding: 3px;
    gap: 2px;
}

.eq-vtoggle button[b-ouwftw1wqw] {
    width: 34px;
    height: 30px;
    border: none;
    background: transparent;
    border-radius: var(--radius-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-muted);
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}

.eq-vtoggle button:hover[b-ouwftw1wqw] { color: var(--text-primary); }
.eq-vtoggle button.on[b-ouwftw1wqw] { background: var(--brand-teal-primary); color: var(--text-primary); }
.eq-vtoggle button:focus-visible[b-ouwftw1wqw] { outline: 2px solid var(--brand-teal-dark); outline-offset: 1px; }
.eq-vtoggle .material-symbols-rounded[b-ouwftw1wqw] { font-size: 18px; }

/* === Botones base === */
.btn[b-ouwftw1wqw] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 38px;
    padding: 8px 16px;
    border-radius: var(--radius-md);
    border: 1px solid transparent;
    font-family: var(--font-sans);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s ease, filter 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.btn .material-symbols-rounded[b-ouwftw1wqw] { font-size: 17px; }
.btn:disabled[b-ouwftw1wqw] { opacity: 0.55; cursor: not-allowed; }
.btn:focus-visible[b-ouwftw1wqw] { outline: 2px solid var(--brand-teal-dark); outline-offset: 2px; }
.btn:active:not(:disabled)[b-ouwftw1wqw] { transform: translateY(1px); }

.btn-pri[b-ouwftw1wqw] { background: var(--brand-teal-primary); color: var(--text-primary); }
.btn-pri:hover:not(:disabled)[b-ouwftw1wqw] { filter: brightness(0.92); }

.btn-sec[b-ouwftw1wqw] { background: var(--bg-panel); color: var(--text-secondary); border-color: var(--border-med); }
.btn-sec:hover:not(:disabled)[b-ouwftw1wqw] { border-color: var(--brand-teal-dark); color: var(--brand-teal-deep); }

.btn-ghost[b-ouwftw1wqw] { background: transparent; color: var(--text-secondary); }
.btn-ghost:hover:not(:disabled)[b-ouwftw1wqw] { background: var(--cream-deep); color: var(--text-primary); }

.btn-spinner[b-ouwftw1wqw] {
    width: 14px;
    height: 14px;
    border: 2px solid rgba(255, 255, 255, 0.35);
    border-top-color: #FFFFFF;
    border-radius: 50%;
    animation: eq-girar-b-ouwftw1wqw 0.8s linear infinite;
}

@keyframes eq-girar-b-ouwftw1wqw {
    to { transform: rotate(360deg); }
}

/* Boton icono */
.ib[b-ouwftw1wqw] {
    width: 34px;
    height: 34px;
    border: 1px solid var(--border-soft);
    background: var(--bg-panel);
    border-radius: var(--radius-md);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--text-secondary);
    cursor: pointer;
    padding: 0;
    flex-shrink: 0;
    transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}

.ib:hover:not(:disabled)[b-ouwftw1wqw] { border-color: var(--brand-teal-dark); color: var(--brand-teal-deep); }
.ib:disabled[b-ouwftw1wqw] { opacity: 0.5; cursor: default; }
.ib:focus-visible[b-ouwftw1wqw] { outline: 2px solid var(--brand-teal-dark); outline-offset: 1px; }
.ib .material-symbols-rounded[b-ouwftw1wqw] { font-size: 18px; }
.ib.ok[b-ouwftw1wqw] { color: var(--success); }
.ib.ok:hover:not(:disabled)[b-ouwftw1wqw] { border-color: var(--success); background: rgba(29, 158, 117, 0.08); }
.ib.danger:hover:not(:disabled)[b-ouwftw1wqw] { border-color: var(--danger); color: var(--danger); background: rgba(163, 45, 45, 0.06); }
.ib.lock[b-ouwftw1wqw] { border: none; background: transparent; }
.ib.lock.on[b-ouwftw1wqw] { color: var(--pin-gold); }
.ib.lock.on:hover:not(:disabled)[b-ouwftw1wqw] { color: var(--pin-gold); background: rgba(184, 134, 11, 0.12); }

/* === Estados: error / skeleton / vacio === */
.eq-error[b-ouwftw1wqw] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 60px 20px;
    text-align: center;
    color: var(--text-secondary);
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
}

.eq-error .material-symbols-rounded[b-ouwftw1wqw] { font-size: 40px; color: var(--danger); }
.eq-error p[b-ouwftw1wqw] { margin: 0; font-size: 14px; }

.skel-shimmer[b-ouwftw1wqw] {
    background: linear-gradient(90deg, var(--cream-deep) 25%, var(--cream) 50%, var(--cream-deep) 75%);
    background-size: 200% 100%;
    animation: eq-shimmer-b-ouwftw1wqw 1.4s ease infinite;
    border-radius: var(--radius-md);
}

@keyframes eq-shimmer-b-ouwftw1wqw {
    from { background-position: 200% 0; }
    to { background-position: -200% 0; }
}

.eq-skel-bar[b-ouwftw1wqw] { height: 52px; border-radius: var(--radius-xl); margin-bottom: 16px; }

.eq-skel-card[b-ouwftw1wqw] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.skel-title[b-ouwftw1wqw] { height: 20px; width: 55%; }
.skel-badge[b-ouwftw1wqw] { height: 14px; width: 40%; margin-bottom: 6px; }
.skel-row[b-ouwftw1wqw] { height: 44px; border-radius: var(--radius-lg); }

/* Vacio como card blanca, igual que .mc-empty de Mis Clases */
.eq-empty[b-ouwftw1wqw] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 56px 24px;
    text-align: center;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
}

.eq-empty-icono[b-ouwftw1wqw] {
    width: 76px;
    height: 76px;
    border-radius: 50%;
    background: var(--bg-light-teal);
    color: var(--brand-teal-deep);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 6px;
}

.eq-empty-icono .material-symbols-rounded[b-ouwftw1wqw] { font-size: 40px; }

.eq-empty h3[b-ouwftw1wqw] {
    font-family: var(--font-serif);
    font-size: 20px;
    font-weight: 600;
    margin: 0;
    color: var(--text-primary);
}

.eq-empty p[b-ouwftw1wqw] {
    margin: 0 0 14px;
    font-size: 13px;
    color: var(--text-secondary);
    max-width: 420px;
    line-height: 1.5;
}

/* === Configurador === */
.eq-config[b-ouwftw1wqw] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
    margin-bottom: 16px;
    overflow: visible;
}

/* Header del configurador: toggle + acceso permanente a captura de sexo (4.8) */
.cfg-head[b-ouwftw1wqw] {
    display: flex;
    align-items: center;
    gap: 4px;
    padding-right: 12px;
}

.cfg-head .cfg-toggle[b-ouwftw1wqw] { flex: 1; min-width: 0; }

.cfg-sexo[b-ouwftw1wqw] { position: relative; }

.cfg-sexo.pendiente[b-ouwftw1wqw] {
    border-color: rgba(186, 117, 23, 0.45);
    color: var(--warning);
    background: rgba(186, 117, 23, 0.07);
}

.cfg-sexo.pendiente:hover:not(:disabled)[b-ouwftw1wqw] {
    border-color: var(--warning);
    color: var(--warning);
    background: rgba(186, 117, 23, 0.13);
}

.cfg-sexo-badge[b-ouwftw1wqw] {
    position: absolute;
    top: -7px;
    right: -7px;
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    border-radius: 999px;
    background: var(--carbon-2);
    color: #FFFFFF;
    font-size: 10px;
    font-weight: 700;
    line-height: 17px;
    text-align: center;
    box-shadow: 0 0 0 2px var(--bg-panel);
    box-sizing: border-box;
}

/* Banner suave: alumnos sin dato de sexo (criterio genero/mixto) */
.cfg-banner-sexo[b-ouwftw1wqw] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    padding: 10px 12px;
    background: rgba(186, 117, 23, 0.08);
    border: 1px solid rgba(186, 117, 23, 0.28);
    border-radius: var(--radius-md);
    animation: eq-aparecer-b-ouwftw1wqw 0.2s ease;
}

.cbs-ico[b-ouwftw1wqw] { font-size: 18px; color: var(--warning); flex-shrink: 0; }

.cbs-txt[b-ouwftw1wqw] {
    flex: 1;
    min-width: 180px;
    font-size: 13px;
    color: var(--text-primary);
    line-height: 1.4;
}

.cbs-txt strong[b-ouwftw1wqw] { font-weight: 700; }

.cbs-btn[b-ouwftw1wqw] { flex-shrink: 0; }

.cfg-toggle[b-ouwftw1wqw] {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 14px 16px;
    border: none;
    background: transparent;
    cursor: pointer;
    font-family: var(--font-sans);
    text-align: left;
    border-radius: var(--radius-xl);
    transition: background 0.15s ease;
}

.cfg-toggle:hover[b-ouwftw1wqw] { background: var(--bg-cream); }
.cfg-toggle:focus-visible[b-ouwftw1wqw] { outline: 2px solid var(--brand-teal-dark); outline-offset: -2px; }
.cfg-toggle-ico[b-ouwftw1wqw] { font-size: 20px; color: var(--brand-teal-deep); }
.cfg-toggle-txt[b-ouwftw1wqw] { font-size: 14px; font-weight: 600; color: var(--text-primary); }
.cfg-toggle-hint[b-ouwftw1wqw] {
    flex: 1;
    font-size: 12px;
    color: var(--text-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    text-align: right;
}

.cfg-chevron[b-ouwftw1wqw] { font-size: 20px; color: var(--text-muted); transition: transform 0.2s ease; }
.cfg-chevron.abierto[b-ouwftw1wqw] { transform: rotate(180deg); }

.cfg-body[b-ouwftw1wqw] {
    padding: 4px 18px 16px;
    border-top: 1px solid var(--border-soft);
}

.cfg-grid[b-ouwftw1wqw] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 18px 28px;
    padding-top: 14px;
}

.cfg-wide[b-ouwftw1wqw] { grid-column: 1 / -1; }

.cfg-field[b-ouwftw1wqw] { display: flex; flex-direction: column; gap: 8px; min-width: 0; }

.cfg-label[b-ouwftw1wqw] {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: var(--text-muted);
}

.cfg-hint[b-ouwftw1wqw] {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    color: var(--text-muted);
    margin: 0;
}

.cfg-hint .material-symbols-rounded[b-ouwftw1wqw] { font-size: 14px; }

/* Aviso suave: el ambar (3.9:1) no pasa AA en texto de 12px — solo colorea el icono */
.cfg-hint.warn[b-ouwftw1wqw] { color: var(--text-secondary); font-weight: 500; }
.cfg-hint.warn .material-symbols-rounded[b-ouwftw1wqw] { color: var(--warning); }
.cfg-hint-link[b-ouwftw1wqw] { color: var(--brand-teal-deep); font-weight: 600; text-underline-offset: 2px; }

/* Segmented control */
.cfg-seg[b-ouwftw1wqw] {
    display: inline-flex;
    background: var(--cream);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    padding: 3px;
    gap: 2px;
    align-self: flex-start;
}

.cfg-seg button[b-ouwftw1wqw] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 32px;
    padding: 4px 14px;
    border: none;
    background: transparent;
    border-radius: var(--radius-sm);
    font-family: var(--font-sans);
    font-size: 13px;
    font-weight: 600;
    color: var(--text-secondary);
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.cfg-seg button .material-symbols-rounded[b-ouwftw1wqw] { font-size: 16px; }
.cfg-seg button:hover[b-ouwftw1wqw] { color: var(--text-primary); }
.cfg-seg button.on[b-ouwftw1wqw] { background: var(--bg-panel); color: var(--brand-teal-deep); box-shadow: var(--shadow-sm); }
.cfg-seg button:focus-visible[b-ouwftw1wqw] { outline: 2px solid var(--brand-teal-dark); outline-offset: 1px; }

.cfg-select[b-ouwftw1wqw] {
    padding: 8px 10px;
    border: 1px solid var(--border-med);
    border-radius: var(--radius-md);
    font-family: var(--font-sans);
    font-size: 13px;
    color: var(--text-primary);
    background: var(--bg-panel);
    max-width: 100%;
    min-width: 0;
}

.cfg-select:focus[b-ouwftw1wqw] { outline: none; border-color: var(--brand-teal-dark); box-shadow: 0 0 0 3px rgba(110, 198, 200, 0.2); }

/* Selects de actividad: agrupados por criterio (optgroup = criterio, option = nombre de la actividad) */
.cfg-select optgroup[b-ouwftw1wqw],
.fld-in optgroup[b-ouwftw1wqw] {
    font-size: 11px;
    font-weight: 700;
    font-style: normal;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--text-muted);
}

.cfg-select option[b-ouwftw1wqw],
.fld-in option[b-ouwftw1wqw] {
    font-size: 13px;
    font-weight: 400;
    text-transform: none;
    letter-spacing: normal;
    color: var(--text-primary);
}

/* Modo: # equipos vs integrantes */
.cfg-modo[b-ouwftw1wqw] { display: flex; flex-direction: column; gap: 8px; }

.cfg-opt[b-ouwftw1wqw] {
    position: relative; /* ancla el radio oculto absoluto */
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease;
}

.cfg-opt:hover[b-ouwftw1wqw] { border-color: var(--border-med); }
.cfg-opt.on[b-ouwftw1wqw] { border-color: var(--brand-teal-dark); background: rgba(110, 198, 200, 0.07); }
.cfg-opt:focus-within[b-ouwftw1wqw] { outline: 2px solid var(--brand-teal-dark); outline-offset: 1px; }

.cfg-opt-radio[b-ouwftw1wqw] {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
    pointer-events: none;
}

.cfg-opt-dot[b-ouwftw1wqw] {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 2px solid var(--border-med);
    flex-shrink: 0;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.cfg-opt.on .cfg-opt-dot[b-ouwftw1wqw] {
    border-color: var(--brand-teal-deep);
    box-shadow: inset 0 0 0 3.5px var(--bg-panel), inset 0 0 0 10px var(--brand-teal-deep);
}

.cfg-opt-txt[b-ouwftw1wqw] { flex: 1; font-size: 13px; font-weight: 500; color: var(--text-primary); }

.cfg-num[b-ouwftw1wqw] {
    width: 64px;
    padding: 6px 8px;
    border: 1px solid var(--border-med);
    border-radius: var(--radius-sm);
    font-family: var(--font-sans);
    font-size: 14px;
    font-weight: 600;
    text-align: center;
    color: var(--text-primary);
    background: var(--bg-panel);
}

.cfg-num:disabled[b-ouwftw1wqw] { opacity: 0.5; background: var(--cream); }
.cfg-num:focus[b-ouwftw1wqw] { outline: none; border-color: var(--brand-teal-dark); box-shadow: 0 0 0 3px rgba(110, 198, 200, 0.2); }

/* Preview vivo del reparto */
.cfg-preview[b-ouwftw1wqw] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0;
    padding: 8px 12px;
    background: var(--bg-light-teal);
    border-radius: var(--radius-md);
    font-size: 13px;
    color: var(--brand-teal-deep);
}

.cfg-preview strong[b-ouwftw1wqw] { font-weight: 700; }
.cfg-preview .material-symbols-rounded[b-ouwftw1wqw] { font-size: 16px; }
.cfg-preview .flecha[b-ouwftw1wqw] { font-size: 14px; opacity: 0.7; }

/* Criterio: chips */
.cfg-chips[b-ouwftw1wqw] { display: flex; flex-wrap: wrap; gap: 8px; }

.cfg-chip[b-ouwftw1wqw] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 36px;
    padding: 6px 14px;
    border: 1px solid var(--border-med);
    border-radius: 999px;
    background: var(--bg-panel);
    font-family: var(--font-sans);
    font-size: 13px;
    font-weight: 600;
    color: var(--text-secondary);
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.cfg-chip .material-symbols-rounded[b-ouwftw1wqw] { font-size: 16px; }
.cfg-chip:hover[b-ouwftw1wqw] { border-color: var(--brand-teal-dark); color: var(--brand-teal-deep); }
.cfg-chip.on[b-ouwftw1wqw] { background: var(--brand-teal-primary); border-color: var(--brand-teal-deep); color: var(--text-primary); }
.cfg-chip:focus-visible[b-ouwftw1wqw] { outline: 2px solid var(--brand-teal-dark); outline-offset: 2px; }

/* Reglas de separacion */
.regla-head[b-ouwftw1wqw] { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }

.regla-conteo[b-ouwftw1wqw] {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.3px;
    color: var(--text-muted);
    white-space: nowrap;
}

.regla-chips[b-ouwftw1wqw] { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }

.regla-chip[b-ouwftw1wqw] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 6px 5px 10px;
    border-radius: 999px;
    background: rgba(163, 45, 45, 0.07);
    border: 1px solid rgba(163, 45, 45, 0.2);
    font-size: 12px;
    color: var(--text-primary);
    max-width: 100%;
}

.regla-chip > .material-symbols-rounded[b-ouwftw1wqw] { font-size: 15px; color: var(--danger); flex-shrink: 0; }

.regla-nombre[b-ouwftw1wqw] {
    font-weight: 600;
    max-width: 150px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.regla-y[b-ouwftw1wqw] { color: var(--text-muted); }

.regla-x[b-ouwftw1wqw] {
    width: 22px;
    height: 22px;
    border: none;
    background: transparent;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-muted);
    cursor: pointer;
    padding: 0;
    flex-shrink: 0;
    transition: background 0.15s ease, color 0.15s ease;
}

.regla-x:hover:not(:disabled)[b-ouwftw1wqw] { background: rgba(163, 45, 45, 0.15); color: var(--danger); }
.regla-x:disabled[b-ouwftw1wqw] { opacity: 0.45; cursor: default; }
.regla-x:focus-visible[b-ouwftw1wqw] { outline: 2px solid var(--brand-teal-dark); outline-offset: 1px; }
.regla-x .material-symbols-rounded[b-ouwftw1wqw] { font-size: 14px; }

/* Chips de GRUPO (3+ alumnos): x chica por alumno + divisor + borrar grupo */
.regla-chip.grupo[b-ouwftw1wqw] { padding-right: 5px; }

.regla-x.al[b-ouwftw1wqw] { width: 18px; height: 18px; margin-left: -3px; }
.regla-x.al .material-symbols-rounded[b-ouwftw1wqw] { font-size: 12px; }

.regla-div[b-ouwftw1wqw] {
    width: 1px;
    height: 14px;
    background: rgba(163, 45, 45, 0.25);
    flex-shrink: 0;
    margin: 0 2px;
}

/* Boton "+ Nueva regla" (crea OTRA regla; vive AFUERA del builder) */
.regla-nueva[b-ouwftw1wqw] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }

.regla-nueva-hint[b-ouwftw1wqw] { font-size: 12px; color: var(--text-muted); }

/* Builder de la regla en construccion */
.regla-builder[b-ouwftw1wqw] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 12px;
    border: 1px dashed var(--border-med);
    border-radius: var(--radius-md);
    background: var(--cream);
}

.regla-builder-head[b-ouwftw1wqw] { display: flex; align-items: center; gap: 8px; min-width: 0; }

.rb-ico[b-ouwftw1wqw] { font-size: 16px; color: var(--danger); flex-shrink: 0; }

.rb-titulo[b-ouwftw1wqw] { font-size: 13px; font-weight: 700; color: var(--text-primary); white-space: nowrap; }

.rb-sub[b-ouwftw1wqw] {
    flex: 1;
    min-width: 0;
    font-size: 12px;
    color: var(--text-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.regla-builder-head .rb-cerrar[b-ouwftw1wqw] {
    width: 28px;
    height: 28px;
    margin-left: auto;
    border: none;
    background: transparent;
    flex-shrink: 0;
}

.regla-builder-head .rb-cerrar .material-symbols-rounded[b-ouwftw1wqw] { font-size: 16px; }

.regla-add[b-ouwftw1wqw] {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
}

.regla-add .regla-slot[b-ouwftw1wqw] {
    display: flex;
    align-items: center;
    gap: 4px;
    flex: 1;
    min-width: 170px;
    max-width: 300px;
}

.regla-slot .cfg-select[b-ouwftw1wqw] { flex: 1; min-width: 0; max-width: none; background: var(--bg-panel); }

.regla-slot-x[b-ouwftw1wqw] {
    width: 22px;
    height: 22px;
    border: none;
    background: transparent;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-muted);
    cursor: pointer;
    padding: 0;
    flex-shrink: 0;
    transition: background 0.15s ease, color 0.15s ease;
}

.regla-slot-x:hover:not(:disabled)[b-ouwftw1wqw] { background: var(--cream-deep); color: var(--danger); }
.regla-slot-x:disabled[b-ouwftw1wqw] { opacity: 0.45; cursor: default; }
.regla-slot-x:focus-visible[b-ouwftw1wqw] { outline: 2px solid var(--brand-teal-dark); outline-offset: 1px; }
.regla-slot-x .material-symbols-rounded[b-ouwftw1wqw] { font-size: 14px; }

/* Boton compacto "+person": agrega un alumno a ESTA regla (icono solo, sin texto) */
.regla-mas[b-ouwftw1wqw] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 2px;
    min-height: 38px;
    padding: 0 10px;
    border: 1px solid var(--border-med);
    border-radius: var(--radius-md);
    background: var(--bg-panel);
    color: var(--text-secondary);
    font-family: var(--font-sans);
    font-size: 15px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    flex-shrink: 0;
    transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}

.regla-mas .material-symbols-rounded[b-ouwftw1wqw] { font-size: 18px; }
.regla-mas:hover:not(:disabled)[b-ouwftw1wqw] { border-color: var(--brand-teal-dark); color: var(--brand-teal-deep); }
.regla-mas:disabled[b-ouwftw1wqw] { opacity: 0.5; cursor: not-allowed; }
.regla-mas:focus-visible[b-ouwftw1wqw] { outline: 2px solid var(--brand-teal-dark); outline-offset: 2px; }
.regla-mas:active:not(:disabled)[b-ouwftw1wqw] { transform: translateY(1px); }

/* Spinner oscuro sobre boton secundario (fondo claro) */
.regla-guardar .btn-spinner[b-ouwftw1wqw] {
    border-color: rgba(0, 0, 0, 0.15);
    border-top-color: var(--brand-teal-deep);
}

/* Footer del configurador */
.cfg-footer[b-ouwftw1wqw] {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    margin-top: 18px;
    padding-top: 14px;
    border-top: 1px solid var(--border-soft);
}

.cfg-check[b-ouwftw1wqw] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--text-secondary);
    cursor: pointer;
}

.cfg-check input[b-ouwftw1wqw] { accent-color: var(--brand-teal-deep); width: 16px; height: 16px; flex-shrink: 0; }
.cfg-check input:focus-visible[b-ouwftw1wqw] { outline: 2px solid var(--brand-teal-dark); outline-offset: 2px; }
.cfg-check:hover[b-ouwftw1wqw] { color: var(--text-primary); }

.cfg-actions[b-ouwftw1wqw] {
    display: flex;
    gap: 8px;
    margin-left: auto;
    flex-wrap: wrap;
}

/* === Banner de propuesta === */
.eq-propuesta[b-ouwftw1wqw] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    padding: 12px 16px;
    margin-bottom: 12px;
    background: var(--bg-light-teal);
    border: 1px solid rgba(110, 198, 200, 0.5);
    border-radius: var(--radius-xl);
    animation: eq-aparecer-b-ouwftw1wqw 0.2s ease;
}

@keyframes eq-aparecer-b-ouwftw1wqw {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
}

.prop-icono[b-ouwftw1wqw] {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: var(--brand-teal-primary);
    color: var(--text-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.prop-icono .material-symbols-rounded[b-ouwftw1wqw] { font-size: 20px; }

.prop-info[b-ouwftw1wqw] { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 200px; }
.prop-titulo[b-ouwftw1wqw] { font-size: 14px; color: var(--text-primary); }
.prop-meta[b-ouwftw1wqw] { font-size: 12px; color: var(--text-secondary); }

.prop-actions[b-ouwftw1wqw] { display: flex; gap: 8px; flex-wrap: wrap; }

/* Advertencias del motor (banner ambar).
   Acento en borde + icono; el texto va oscuro para pasar AA (el ambar --warning
   sobre fondo claro ronda 3.9:1 y no alcanza para texto de 13px). */
.eq-warns[b-ouwftw1wqw] {
    display: flex;
    gap: 12px;
    padding: 12px 16px;
    margin-bottom: 12px;
    background: rgba(186, 117, 23, 0.09);
    border: 1px solid rgba(186, 117, 23, 0.3);
    border-left: 4px solid var(--warning);
    border-radius: var(--radius-lg);
    animation: eq-aparecer-b-ouwftw1wqw 0.2s ease;
}

.eq-warns > .material-symbols-rounded[b-ouwftw1wqw] { font-size: 22px; flex-shrink: 0; color: var(--warning); margin-top: 1px; }
.eq-warns-body[b-ouwftw1wqw] { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.eq-warns-titulo[b-ouwftw1wqw] { font-size: 13px; font-weight: 700; color: var(--text-primary); }
.eq-warns ul[b-ouwftw1wqw] { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 4px; }
.eq-warns li[b-ouwftw1wqw] { font-size: 13px; line-height: 1.4; color: var(--text-secondary); }

/* === Toolbar de sets === */
.eq-toolbar[b-ouwftw1wqw] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}

.set-sel-wrap[b-ouwftw1wqw] { position: relative; min-width: 0; }

.set-sel[b-ouwftw1wqw] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 40px;
    padding: 6px 10px 6px 14px;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm);
    font-family: var(--font-sans);
    cursor: pointer;
    max-width: 100%;
    transition: border-color 0.15s ease;
}

.set-sel:hover[b-ouwftw1wqw] { border-color: var(--brand-teal-dark); }
.set-sel:focus-visible[b-ouwftw1wqw] { outline: 2px solid var(--brand-teal-dark); outline-offset: 1px; }

.set-nombre[b-ouwftw1wqw] {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 260px;
}

.set-badge[b-ouwftw1wqw] {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 2px 8px;
    border-radius: 999px;
    flex-shrink: 0;
}

.set-badge.p[b-ouwftw1wqw] { background: var(--bg-light-teal); color: var(--brand-teal-deep); }
.set-badge.a[b-ouwftw1wqw] { background: var(--cf-etica-bg); color: var(--cf-etica); }

/* Fase 1 v1.1: chip de estado del ciclo de vida (Borrador/Publicado/Archivado) */
.set-estado[b-ouwftw1wqw] {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 2px 8px;
    border-radius: 999px;
    flex-shrink: 0;
}
.set-estado.est-Borrador[b-ouwftw1wqw]  { background: var(--pin-gold-bg, #fbeecb); color: var(--pin-gold, #9a6b00); }
.set-estado.est-Publicado[b-ouwftw1wqw] { background: var(--bg-light-teal); color: var(--brand-teal-deep); }
.set-estado.est-Archivado[b-ouwftw1wqw] { background: var(--bg-muted, #ece9e1); color: var(--text-muted); }

/* Nombre de la actividad del set seleccionado (junto al badge "Actividad") */
.set-act-ref[b-ouwftw1wqw] {
    font-size: 12px;
    color: var(--text-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 180px;
}

.set-activo[b-ouwftw1wqw] { display: flex; color: var(--pin-gold); }
.set-activo .material-symbols-rounded[b-ouwftw1wqw] { font-size: 16px; }

.set-chev[b-ouwftw1wqw] { font-size: 18px; color: var(--text-muted); transition: transform 0.2s ease; }
.set-chev.abierto[b-ouwftw1wqw] { transform: rotate(180deg); }

.set-backdrop[b-ouwftw1wqw] { position: fixed; inset: 0; z-index: 1500; background: transparent; }

.set-menu[b-ouwftw1wqw] {
    position: absolute;
    left: 0;
    top: calc(100% + 6px);
    z-index: 1501;
    min-width: 280px;
    max-width: min(90vw, 380px);
    max-height: 320px;
    overflow-y: auto;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    padding: 6px;
    animation: eq-aparecer-b-ouwftw1wqw 0.16s ease;
}

.set-item[b-ouwftw1wqw] {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    min-height: 42px;
    padding: 8px 10px;
    border: none;
    background: transparent;
    border-radius: var(--radius-md);
    font-family: var(--font-sans);
    cursor: pointer;
    text-align: left;
    transition: background 0.15s ease;
}

.set-item:hover[b-ouwftw1wqw] { background: var(--bg-light-teal); }
.set-item:focus-visible[b-ouwftw1wqw] { outline: 2px solid var(--brand-teal-dark); outline-offset: -2px; }
.set-item.sel[b-ouwftw1wqw] { background: var(--cream); }

.set-item-info[b-ouwftw1wqw] { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }

.set-item-nombre[b-ouwftw1wqw] {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Linea secundaria del set: nombre de la actividad + criterio en chico/muted */
.set-item-desc[b-ouwftw1wqw] {
    display: flex;
    align-items: baseline;
    gap: 6px;
    font-size: 11px;
    white-space: nowrap;
    overflow: hidden;
}

.set-item-act[b-ouwftw1wqw] {
    color: var(--text-secondary);
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
}

.set-item-crit[b-ouwftw1wqw] {
    color: var(--text-muted);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    flex-shrink: 0;
}

.set-item-crit[b-ouwftw1wqw]::before { content: "· "; }

.set-item-star[b-ouwftw1wqw] { font-size: 15px; color: var(--pin-gold); flex-shrink: 0; }

.set-item.nuevo[b-ouwftw1wqw] { color: var(--brand-teal-deep); font-size: 13px; font-weight: 600; }
.set-item.nuevo .material-symbols-rounded[b-ouwftw1wqw] { font-size: 17px; }

.set-menu-sep[b-ouwftw1wqw] { height: 1px; background: var(--border-soft); margin: 4px 6px; }

.set-actions[b-ouwftw1wqw] { display: flex; gap: 6px; flex-wrap: wrap; }

.set-edit[b-ouwftw1wqw] { display: flex; align-items: center; gap: 6px; }

.set-edit-input[b-ouwftw1wqw] {
    min-height: 40px;
    padding: 6px 12px;
    border: 1px solid var(--brand-teal-dark);
    border-radius: var(--radius-md);
    font-family: var(--font-sans);
    font-size: 14px;
    font-weight: 600;
    color: var(--text-primary);
    width: min(70vw, 320px);
}

.set-edit-input:focus[b-ouwftw1wqw] { outline: none; box-shadow: 0 0 0 3px rgba(110, 198, 200, 0.25); }

/* === Tablero (grid de zonas) === */
.eq-grid[b-ouwftw1wqw] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
    gap: 14px;
    align-items: start;
}

/* === Vista lista === */
.eq-lista[b-ouwftw1wqw] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
    padding: 6px 16px 16px;
}

.lst-grupo[b-ouwftw1wqw] { padding-top: 14px; }
.lst-grupo + .lst-grupo[b-ouwftw1wqw] { border-top: 1px solid var(--border-soft); margin-top: 14px; }

.lst-head[b-ouwftw1wqw] {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 8px;
}

.lst-nombre[b-ouwftw1wqw] {
    margin: 0;
    font-family: var(--font-serif);
    font-size: 16px;
    font-weight: 600;
    letter-spacing: -0.2px;
    color: var(--text-primary);
}

.lst-badges[b-ouwftw1wqw] { display: flex; gap: 6px; flex-wrap: wrap; margin-left: auto; }

.lst-badge[b-ouwftw1wqw] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 11px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 999px;
    background: var(--cream);
    color: var(--text-secondary);
}

.lst-badge .material-symbols-rounded[b-ouwftw1wqw] { font-size: 13px; }
.lst-badge.h[b-ouwftw1wqw] { background: rgba(45, 110, 163, 0.12); color: var(--info); }
.lst-badge.m[b-ouwftw1wqw] { background: var(--cf-lenguajes-bg); color: var(--cf-lenguajes); }
.lst-badge.prom[b-ouwftw1wqw] { background: var(--bg-light-teal); color: var(--brand-teal-deep); font-family: var(--font-mono); }

.lst-edit-input[b-ouwftw1wqw] {
    flex: 1;
    min-width: 0;
    max-width: 320px;
    padding: 6px 10px;
    border: 1px solid var(--brand-teal-dark);
    border-radius: var(--radius-md);
    font-family: var(--font-sans);
    font-size: 13px;
}

.lst-edit-input:focus[b-ouwftw1wqw] { outline: none; box-shadow: 0 0 0 3px rgba(110, 198, 200, 0.25); }

.lst-scroll[b-ouwftw1wqw] { overflow-x: auto; }

.lst-tabla[b-ouwftw1wqw] {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.lst-tabla th[b-ouwftw1wqw] {
    text-align: left;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--text-muted);
    padding: 6px 10px;
    border-bottom: 1px solid var(--border-soft);
}

.lst-tabla td[b-ouwftw1wqw] {
    padding: 6px 10px;
    border-bottom: 1px solid var(--border-soft);
    vertical-align: middle;
}

.lst-tabla tbody tr[b-ouwftw1wqw] { transition: background 0.15s ease; }
.lst-tabla tbody tr:hover[b-ouwftw1wqw] { background: var(--bg-cream); }
.lst-tabla tbody tr:last-child td[b-ouwftw1wqw] { border-bottom: none; }
.lst-tabla tbody tr.fijado[b-ouwftw1wqw] { background: rgba(184, 134, 11, 0.05); }

.c-alumno[b-ouwftw1wqw] { display: flex; align-items: center; gap: 8px; min-height: 44px; }

.lst-avatar[b-ouwftw1wqw] {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 700;
    flex-shrink: 0;
}

.lst-avatar.sexo-h[b-ouwftw1wqw] { background: rgba(45, 110, 163, 0.14); color: var(--info); }
.lst-avatar.sexo-m[b-ouwftw1wqw] { background: var(--cf-lenguajes-bg); color: var(--cf-lenguajes); }
.lst-avatar.sexo-x[b-ouwftw1wqw] { background: var(--cream-deep); color: var(--carbon-4); }

.lst-al-nombre[b-ouwftw1wqw] {
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 320px;
}

.c-sexo[b-ouwftw1wqw], .c-prom[b-ouwftw1wqw] { color: var(--text-secondary); white-space: nowrap; width: 56px; }
.c-fijar[b-ouwftw1wqw] { width: 48px; }
.c-mover[b-ouwftw1wqw] { width: 150px; }

.lst-mover[b-ouwftw1wqw] {
    width: 100%;
    min-height: 34px;
    padding: 5px 8px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-sm);
    font-family: var(--font-sans);
    font-size: 12px;
    color: var(--text-secondary);
    background: var(--bg-panel);
    cursor: pointer;
    transition: border-color 0.15s ease;
}

.lst-mover:hover:not(:disabled)[b-ouwftw1wqw] { border-color: var(--brand-teal-dark); }
.lst-mover:focus[b-ouwftw1wqw] { outline: none; border-color: var(--brand-teal-dark); box-shadow: 0 0 0 3px rgba(110, 198, 200, 0.2); }

/* === Modales propios === */
.eqm-overlay[b-ouwftw1wqw] {
    position: fixed;
    inset: 0;
    background: rgba(20, 22, 25, 0.45);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 4000;
    animation: eqm-fade-b-ouwftw1wqw 0.15s ease;
    padding: 16px;
}

@keyframes eqm-fade-b-ouwftw1wqw {
    from { opacity: 0; }
    to { opacity: 1; }
}

.eqm-modal[b-ouwftw1wqw] {
    background: var(--bg-panel);
    border-radius: var(--radius-xl);
    width: min(92vw, 440px);
    max-height: 90vh;
    overflow-y: auto;
    box-shadow: var(--shadow-lg);
    padding: 22px;
    animation: eqm-pop-b-ouwftw1wqw 0.18s ease;
}

@keyframes eqm-pop-b-ouwftw1wqw {
    from { transform: scale(0.95); opacity: 0; }
    to { transform: scale(1); opacity: 1; }
}

.eqm-head[b-ouwftw1wqw] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
}

.eqm-head .material-symbols-rounded[b-ouwftw1wqw] { font-size: 22px; color: var(--brand-teal-deep); }

.eqm-head h3[b-ouwftw1wqw] {
    margin: 0;
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
}

.eqm-body[b-ouwftw1wqw] { display: flex; flex-direction: column; gap: 14px; }

.eqm-nota[b-ouwftw1wqw] { margin: 0; font-size: 13px; color: var(--text-secondary); line-height: 1.5; }

/* Criterio de la actividad en la nota del modal de confirmacion */
.eqm-crit[b-ouwftw1wqw] { font-size: 12px; color: var(--text-muted); }

.fld[b-ouwftw1wqw] { display: flex; flex-direction: column; gap: 5px; }

.fld label[b-ouwftw1wqw] {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: var(--text-muted);
}

.fld-in[b-ouwftw1wqw] {
    padding: 9px 12px;
    border: 1px solid var(--border-med);
    border-radius: var(--radius-md);
    font-family: var(--font-sans);
    font-size: 13px;
    color: var(--text-primary);
    background: var(--bg-panel);
    width: 100%;
    box-sizing: border-box;
}

.fld-in:focus[b-ouwftw1wqw] { outline: none; border-color: var(--brand-teal-dark); box-shadow: 0 0 0 3px rgba(110, 198, 200, 0.2); }

.eqm-actions[b-ouwftw1wqw] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 20px;
}

/* === Toasts === */
.eq-toasts[b-ouwftw1wqw] {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 5000;
    display: flex;
    flex-direction: column;
    gap: 8px;
    max-width: min(92vw, 400px);
}

.eq-toast[b-ouwftw1wqw] {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 12px 14px;
    border-radius: var(--radius-lg);
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    box-shadow: var(--shadow-lg);
    animation: eq-toast-in-b-ouwftw1wqw 0.2s ease;
}

@keyframes eq-toast-in-b-ouwftw1wqw {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

.eq-toast > .material-symbols-rounded[b-ouwftw1wqw] { font-size: 20px; flex-shrink: 0; margin-top: 1px; }
.eq-toast.ok > .material-symbols-rounded[b-ouwftw1wqw] { color: var(--success); }
.eq-toast.warn > .material-symbols-rounded[b-ouwftw1wqw] { color: var(--warning); }
.eq-toast.error > .material-symbols-rounded[b-ouwftw1wqw] { color: var(--danger); }
/* Acento lateral por tipo: refuerza la semantica sin pintar el texto */
.eq-toast.ok[b-ouwftw1wqw] { border-left: 4px solid var(--success); }
.eq-toast.warn[b-ouwftw1wqw] { border-color: rgba(186, 117, 23, 0.35); border-left: 4px solid var(--warning); }
.eq-toast.error[b-ouwftw1wqw] { border-color: rgba(163, 45, 45, 0.35); border-left: 4px solid var(--danger); }

.eq-toast-body[b-ouwftw1wqw] { flex: 1; min-width: 0; }
.eq-toast-body strong[b-ouwftw1wqw] { font-size: 13px; color: var(--text-primary); display: block; }
.eq-toast-linea[b-ouwftw1wqw] { font-size: 12px; color: var(--text-secondary); margin-top: 3px; line-height: 1.4; }

.eq-toast-x[b-ouwftw1wqw] {
    width: 24px;
    height: 24px;
    border: none;
    background: transparent;
    border-radius: var(--radius-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-muted);
    cursor: pointer;
    padding: 0;
    flex-shrink: 0;
    transition: background 0.15s ease, color 0.15s ease;
}

.eq-toast-x:hover[b-ouwftw1wqw] { background: var(--cream-deep); color: var(--text-primary); }
.eq-toast-x .material-symbols-rounded[b-ouwftw1wqw] { font-size: 15px; }

/* === Responsive === */
@media (max-width: 900px) {
    .cfg-grid[b-ouwftw1wqw] { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
    .eq-container[b-ouwftw1wqw] { padding: 14px 14px 28px; }
    .eq-h-title[b-ouwftw1wqw] { font-size: 22px; }
    .eq-h-actions[b-ouwftw1wqw] { width: 100%; justify-content: flex-end; }
    .eq-grid[b-ouwftw1wqw] { grid-template-columns: 1fr; }
    .cfg-toggle-hint[b-ouwftw1wqw] { display: none; }
    .cbs-btn[b-ouwftw1wqw] { width: 100%; }
    .cfg-actions[b-ouwftw1wqw] { margin-left: 0; width: 100%; }
    .cfg-actions .btn[b-ouwftw1wqw] { flex: 1; }
    .prop-actions[b-ouwftw1wqw] { width: 100%; }
    .prop-actions .btn[b-ouwftw1wqw] { flex: 1; }
    .regla-add .regla-slot[b-ouwftw1wqw] { max-width: 100%; }
    .set-nombre[b-ouwftw1wqw] { max-width: 160px; }
    .set-act-ref[b-ouwftw1wqw] { max-width: 110px; }
    .eq-toasts[b-ouwftw1wqw] { left: 14px; right: 14px; bottom: 14px; max-width: none; }
    .eqm-actions[b-ouwftw1wqw] { flex-direction: column-reverse; }
    .eqm-actions .btn[b-ouwftw1wqw] { width: 100%; }
}

/* Telefonos angostos (~380px): nada amontonado ni desbordado */
@media (max-width: 420px) {
    .eq-container[b-ouwftw1wqw] { padding: 12px 12px 24px; }
    .eq-h[b-ouwftw1wqw] { gap: 10px; margin-bottom: 16px; }
    .eq-h-icon[b-ouwftw1wqw] { width: 40px; height: 40px; }
    .eq-h-icon .material-symbols-rounded[b-ouwftw1wqw] { font-size: 22px; }
    .eq-h-title[b-ouwftw1wqw] { font-size: 20px; }
    .cfg-body[b-ouwftw1wqw] { padding: 4px 14px 14px; }
    .cfg-seg[b-ouwftw1wqw] { display: flex; align-self: stretch; }
    .cfg-seg button[b-ouwftw1wqw] { flex: 1; justify-content: center; padding: 4px 8px; }
    .regla-add[b-ouwftw1wqw] { flex-direction: column; align-items: stretch; }
    .regla-add .regla-slot[b-ouwftw1wqw] { min-width: 0; max-width: none; }
    .regla-add .btn[b-ouwftw1wqw] { width: 100%; }
    .regla-add .regla-mas[b-ouwftw1wqw] { align-self: flex-start; min-height: 40px; padding: 0 14px; }
    .regla-nombre[b-ouwftw1wqw] { max-width: 110px; }
    .set-nombre[b-ouwftw1wqw] { max-width: 120px; }
    .set-act-ref[b-ouwftw1wqw] { display: none; }
    .set-actions[b-ouwftw1wqw] { width: 100%; justify-content: flex-end; }
    .eq-propuesta[b-ouwftw1wqw] { padding: 12px; }
    .prop-icono[b-ouwftw1wqw] { display: none; }
    .eqm-modal[b-ouwftw1wqw] { padding: 18px 16px; }
}

/* Objetivos tactiles: en pantallas touch todo control chico crece a >=44px */
@media (pointer: coarse) {
    .cfg-hint-link[b-ouwftw1wqw] { min-height: 44px; display: inline-flex; align-items: center; }
    .ib[b-ouwftw1wqw] { width: 44px; height: 44px; }
    .eq-vtoggle button[b-ouwftw1wqw] { width: 44px; height: 38px; }
    .cfg-seg button[b-ouwftw1wqw] { min-height: 40px; }
    .cfg-chip[b-ouwftw1wqw] { min-height: 44px; }
    .cfg-select[b-ouwftw1wqw], .fld-in[b-ouwftw1wqw] { min-height: 44px; }
    .cfg-num[b-ouwftw1wqw] { min-height: 40px; }
    .btn[b-ouwftw1wqw] { min-height: 44px; }
    .regla-x[b-ouwftw1wqw] { width: 34px; height: 34px; }
    .regla-x.al[b-ouwftw1wqw] { width: 28px; height: 28px; }
    .regla-slot-x[b-ouwftw1wqw] { width: 34px; height: 34px; }
    .regla-mas[b-ouwftw1wqw] { min-height: 44px; padding: 0 14px; }
    .regla-builder-head .rb-cerrar[b-ouwftw1wqw] { width: 40px; height: 40px; }
    .set-sel[b-ouwftw1wqw] { min-height: 44px; }
    .set-item[b-ouwftw1wqw] { min-height: 48px; }
    .lst-mover[b-ouwftw1wqw] { min-height: 44px; }
    .eq-toast-x[b-ouwftw1wqw] { width: 36px; height: 36px; }
}
/* /Pages/Evaluar.razor.rz.scp.css */
/* === Evaluar · v2 wrapper (Fase D) === */
.evaluar-container[b-kkp1bvun4x] {
    padding: 22px 28px 36px;
    max-width: 100%;
    font-family: var(--font-sans);
    color: var(--text-primary);
}

/* === Breadcrumb v2 === */
.ev-bc[b-kkp1bvun4x] {
    display: flex; align-items: center; gap: 6px;
    margin-bottom: 14px; font-size: 12px;
    color: var(--text-muted); flex-wrap: wrap;
}
.ev-bc .msr[b-kkp1bvun4x] { font-size: 14px !important; }
.ev-bc a[b-kkp1bvun4x] { color: var(--text-secondary); text-decoration: none; cursor: pointer; transition: color 0.15s ease; }
.ev-bc a:hover[b-kkp1bvun4x] { color: var(--brand-teal-deep); }
.ev-sep[b-kkp1bvun4x] { color: var(--text-muted); }
.ev-clase[b-kkp1bvun4x] { color: var(--text-secondary); font-weight: 500; }
.ev-current[b-kkp1bvun4x] { color: var(--text-primary); font-weight: 600; }

/* === Header v2 === */
.ev-h[b-kkp1bvun4x] {
    display: flex; align-items: center; gap: 14px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}
.ev-h-icon[b-kkp1bvun4x] {
    width: 44px; height: 44px; border-radius: 12px;
    background: linear-gradient(135deg, var(--brand-teal), var(--brand-teal-dark));
    color: #FFFFFF;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(110, 198, 200, 0.25);
}
.ev-h-icon .msr[b-kkp1bvun4x] { font-size: 24px !important; }
.ev-h-block[b-kkp1bvun4x] { flex: 1; min-width: 0; }
.ev-h-title[b-kkp1bvun4x] {
    font-family: var(--font-serif);
    font-size: 28px; font-weight: 600;
    color: var(--text-primary);
    letter-spacing: -0.5px; line-height: 1.1;
    margin: 0;
}
.ev-h-sub[b-kkp1bvun4x] { font-size: 13px; color: var(--text-secondary); margin: 4px 0 0; }
/* === Toggle person|groups (segmented icon-only) ===
   Neutro calido (familia crema) en vez de gris frio; pastilla
   activa blanca con tinta teal-deep (contraste de icono >= 3:1). */
.ev-vista-toggle[b-kkp1bvun4x] {
    display: inline-flex;
    align-items: center;
    background: var(--cream-deep);
    border: 1px solid var(--border-soft);
    border-radius: 10px;
    padding: 2px;
    gap: 2px;
    flex-shrink: 0;
}
.ev-vista-btn[b-kkp1bvun4x] {
    width: 36px;
    height: 32px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    border: none;
    background: transparent;
    color: var(--text-secondary);
    font-family: inherit;
    transition: background 0.15s ease, color 0.15s ease;
}
.ev-vista-btn .msr[b-kkp1bvun4x] { font-size: 20px; }
.ev-vista-btn:hover[b-kkp1bvun4x] { color: var(--text-primary); background: rgba(255, 255, 255, 0.55); }
.ev-vista-btn:focus-visible[b-kkp1bvun4x] { outline: 2px solid var(--brand-teal-dark); outline-offset: 1px; }
.ev-vista-on[b-kkp1bvun4x],
.ev-vista-on:hover[b-kkp1bvun4x] {
    background: #FFFFFF;
    color: var(--brand-teal-deep);
    box-shadow: var(--shadow-sm);
}

/* === Badge del set activo ===
   Tinta #2E6B6D = teal oscurecido para texto chico sobre tinte
   teal/crema (AA 4.5:1); el teal de marca no alcanza contraste. */
.ev-set-badge[b-kkp1bvun4x] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    padding: 8px 14px;
    background: rgba(75,168,170,0.07);
    border: 1px solid rgba(75,168,170,0.2);
    border-radius: 10px;
    font-size: 12px;
    color: var(--text-secondary);
    flex-wrap: wrap;
}
.ev-set-badge-icon[b-kkp1bvun4x] { font-size: 16px; color: #4BA8AA; }
.ev-set-badge-txt[b-kkp1bvun4x] { font-weight: 500; }
.ev-set-badge-txt strong[b-kkp1bvun4x] { color: var(--text-primary); font-weight: 600; }
.ev-set-badge-ambito[b-kkp1bvun4x] {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    padding: 2px 8px;
    border-radius: 10px;
    color: #2E6B6D;
    background: rgba(75,168,170,0.12);
    border: 1px solid rgba(75,168,170,0.25);
    white-space: nowrap;
}
.ev-set-badge-link[b-kkp1bvun4x] {
    margin-left: auto;
    color: #2E6B6D;
    text-decoration: none;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
}
.ev-set-badge-link:hover[b-kkp1bvun4x] { text-decoration: underline; }
.ev-set-badge-link:focus-visible[b-kkp1bvun4x] {
    outline: 2px solid var(--brand-teal-dark);
    outline-offset: 2px;
    border-radius: 4px;
}

/* === Encabezado grupo "Sin equipo" === */
.ev-sinequipo-head[b-kkp1bvun4x] {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--carbon-4);
    margin: 12px 0 4px;
    padding-left: 4px;
}

/* Breadcrumb */
.breadcrumb[b-kkp1bvun4x] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 24px;
    font-size: 13px;
    flex-wrap: wrap;
}
.bc-icon[b-kkp1bvun4x] { font-size: 16px; color: #999; }
.bc-link[b-kkp1bvun4x] { color: #4BA8AA; cursor: pointer; }
.bc-link:hover[b-kkp1bvun4x] { text-decoration: underline; }
.bc-separator[b-kkp1bvun4x] { font-size: 14px; color: #CCC; }
.bc-clase[b-kkp1bvun4x] { color: #666; }
.bc-current[b-kkp1bvun4x] { color: #333; font-weight: 500; }

/* Header */
.section-header[b-kkp1bvun4x] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    flex-wrap: wrap;
    gap: 12px;
}
.header-left[b-kkp1bvun4x] {
    display: flex;
    align-items: center;
    gap: 10px;
}
.header-title[b-kkp1bvun4x] { font-size: 18px; font-weight: 500; color: #333; }
.header-clase[b-kkp1bvun4x] { font-size: 13px; color: #999; }
.btn-guardar[b-kkp1bvun4x] {
    background: #4BA8AA;
    color: var(--text-primary);
    padding: 8px 20px;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 6px;
    border: none;
    font-family: inherit;
    transition: opacity 0.2s;
}
.btn-guardar:hover:not(:disabled)[b-kkp1bvun4x] { opacity: 0.9; }
.btn-guardar:disabled[b-kkp1bvun4x] { opacity: 0.6; cursor: not-allowed; }

/* Activity toolbar */
.activity-toolbar[b-kkp1bvun4x] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}
.activity-selector-wrapper[b-kkp1bvun4x] {
    flex: 1;
    min-width: 200px;
    display: flex;
    align-items: center;
    gap: 8px;
    background: white;
    border: 1.5px solid #4BA8AA;
    border-radius: 10px;
    padding: 8px 14px;
}
.activity-select[b-kkp1bvun4x] {
    flex: 1;
    border: none;
    outline: none;
    font-family: inherit;
    font-size: 13px;
    color: #333;
    background: transparent;
    cursor: pointer;
}
.activity-actions[b-kkp1bvun4x] {
    display: flex;
    gap: 8px;
}
.btn-icon[b-kkp1bvun4x] {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    border: none;
    font-family: inherit;
    transition: opacity 0.2s;
}
.btn-add[b-kkp1bvun4x] {
    background: rgba(75,168,170,0.1);
    color: #4BA8AA;
    border: 1px solid rgba(75,168,170,0.3);
}
.btn-add:hover[b-kkp1bvun4x] { opacity: 0.75; }
.btn-delete[b-kkp1bvun4x] {
    background: rgba(231,76,60,0.06);
    color: #D35D52;
    border: 1px solid rgba(231,76,60,0.2);
}
.btn-delete:hover[b-kkp1bvun4x] { opacity: 0.75; }

/* Loading / Empty */
.loading-state[b-kkp1bvun4x] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 60px 20px;
    gap: 16px;
    color: #999;
    font-size: 14px;
}
.spinner[b-kkp1bvun4x] {
    width: 36px; height: 36px;
    border: 3px solid #E8F4F8;
    border-top: 3px solid #4BA8AA;
    border-radius: 50%;
    animation: spin-b-kkp1bvun4x 0.8s linear infinite;
}
@keyframes spin-b-kkp1bvun4x { to { transform: rotate(360deg); } }

.empty-state[b-kkp1bvun4x] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 60px 20px;
    gap: 12px;
}

/* Stats row */
.stats-row[b-kkp1bvun4x] {
    display: flex;
    gap: 10px;
    margin-bottom: 8px;
}
.stats-card[b-kkp1bvun4x] {
    background: white;
    border-radius: 14px;
    border: 0.5px solid #EBEBEB;
    padding: 10px 16px;
}
.stats-donut[b-kkp1bvun4x] {
    display: flex;
    align-items: center;
    gap: 20px;
    flex: 1;
}
.stats-summary[b-kkp1bvun4x] {
    min-width: 200px;
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.donut-wrapper[b-kkp1bvun4x] {
    position: relative;
    width: 65px;
    height: 65px;
    flex-shrink: 0;
}
.donut-svg[b-kkp1bvun4x] {
    width: 65px;
    height: 65px;
    transform: rotate(-90deg);
}
.donut-center[b-kkp1bvun4x] {
    position: absolute;
    top: 0; left: 0;
    width: 65px; height: 65px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.donut-pct[b-kkp1bvun4x] { font-size: 16px; font-weight: 500; color: #4BA8AA; }
.legend-title[b-kkp1bvun4x] {
    font-size: 11px;
    color: #999;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 4px;
}
.legend-inline[b-kkp1bvun4x] {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 13px;
    color: #555;
}
.legend-sep[b-kkp1bvun4x] { color: #CCC; }
.legend-dot[b-kkp1bvun4x] { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.summary-title[b-kkp1bvun4x] {
    font-size: 11px; color: #999;
    text-transform: uppercase; letter-spacing: 0.5px;
}
.summary-row[b-kkp1bvun4x] {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.summary-label[b-kkp1bvun4x] { font-size: 13px; color: #666; }
.summary-value[b-kkp1bvun4x] { font-size: 15px; font-weight: 500; color: #333; }

/* Filter bar */
.filter-bar[b-kkp1bvun4x] {
    display: flex;
    gap: 8px;
    margin-bottom: 8px;
    flex-wrap: wrap;
}
.filter-pill[b-kkp1bvun4x] {
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 12px;
    cursor: pointer;
    background: #FAFAFA;
    border: 1px solid #EAEAEA;
    color: #888;
    transition: all 0.2s;
    display: flex;
    align-items: center;
    gap: 4px;
}
.filter-pill:hover[b-kkp1bvun4x] { border-color: #CCC; color: #555; }
.filter-active[b-kkp1bvun4x] {
    background: rgba(75,168,170,0.1);
    border-color: rgba(75,168,170,0.3);
    color: #4BA8AA;
    font-weight: 500;
}
.filter-next[b-kkp1bvun4x] {
    background: rgba(75,168,170,0.06);
    border-color: rgba(75,168,170,0.2);
    color: #4BA8AA;
}

/* Smart chips upper */
.chips-upper[b-kkp1bvun4x] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 10px;
}
.smart-chip[b-kkp1bvun4x] {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 12px;
    cursor: pointer;
    transition: opacity 0.2s;
}
.smart-chip:hover[b-kkp1bvun4x] { opacity: 0.75; }
.chip-teal[b-kkp1bvun4x] {
    background: rgba(75,168,170,0.1);
    border: 1px solid rgba(75,168,170,0.3);
    color: #4BA8AA;
}
.chip-orange[b-kkp1bvun4x] {
    background: rgba(243,156,18,0.08);
    border: 1px solid rgba(243,156,18,0.2);
    color: #C99A2E;
}

/* Student table */
.student-table[b-kkp1bvun4x] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    margin-bottom: 20px;
}

/* Student card */
.student-card[b-kkp1bvun4x] {
    background: white;
    border-radius: 12px;
    padding: 6px 18px;
    transition: border-color 0.3s;
}
.student-graded[b-kkp1bvun4x] {
    border: 1.5px solid transparent;
    border-color: #EBEBEB;
    background: var(--bg);
}
.student-ungraded[b-kkp1bvun4x] {
    animation: pulse-border-b-kkp1bvun4x 2s ease-in-out infinite;
    border: 1.5px solid rgba(75,168,170,0.4);
    background: #FFFFFF;
}
@keyframes pulse-border-b-kkp1bvun4x {
    0%, 100% { border-color: rgba(75,168,170,0.25); }
    50% { border-color: rgba(75,168,170,0.7); }
}

/* Row 1 */
.student-row1[b-kkp1bvun4x] {
    display: flex;
    align-items: center;
    gap: 8px;
}
.col-num[b-kkp1bvun4x] {
    width: 30px;
    text-align: center;
    font-size: 12px;
    color: #BBB;
    flex-shrink: 0;
}
.col-name[b-kkp1bvun4x] {
    flex: 1;
    font-size: 13px;
    font-weight: 500;
    color: #333;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 8px;
}
.col-grades[b-kkp1bvun4x] {
    display: flex;
    gap: 6px;
    flex-shrink: 0;
}

/* Grade buttons */
.grade-btn[b-kkp1bvun4x] {
    width: 40px;
    height: 28px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 13px;
    transition: all 0.15s;
    user-select: none;
}
.grade-inactive[b-kkp1bvun4x] {
    background: #FAFAFA;
    color: #CCC;
    border: 0.5px solid #EAEAEA;
}
.grade-inactive:hover[b-kkp1bvun4x] { border-color: #BBB; color: #999; }
.grade-selected[b-kkp1bvun4x] {
    background: rgba(75,168,170,0.15);
    color: #4BA8AA;
    font-weight: 500;
    border: 1.5px solid #4BA8AA;
}
.grade-unreviewed[b-kkp1bvun4x] {
    background: rgba(243,156,18,0.1);
    color: #C99A2E;
    font-weight: 500;
    border: 1px solid rgba(243,156,18,0.3);
}

/* Badges */
.badge[b-kkp1bvun4x] {
    font-size: 10px;
    padding: 2px 8px;
    border-radius: 10px;
    font-weight: 500;
    white-space: nowrap;
    flex-shrink: 0;
}
.badge-sinrevisar[b-kkp1bvun4x] {
    background: rgba(75,168,170,0.1);
    color: #4BA8AA;
}
.badge-pending[b-kkp1bvun4x] {
    background: rgba(243,156,18,0.08);
    color: #C99A2E;
    border: 1px solid rgba(243,156,18,0.2);
}
.badge-faltas[b-kkp1bvun4x] {
    background: rgba(232,141,141,0.1);
    color: #D35D52;
    border: 1px solid rgba(232,141,141,0.2);
}
.badge-complete[b-kkp1bvun4x] {
    background: rgba(75,168,170,0.1);
    color: #4BA8AA;
    border: 1px solid rgba(75,168,170,0.25);
}
.badge-nee[b-kkp1bvun4x] {
    background: rgba(155,89,182,0.1);
    color: #9B59B6;
    border: 1px solid rgba(155,89,182,0.2);
}

/* Row 2 */
.student-row2[b-kkp1bvun4x] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 2px;
    padding-left: 38px;
    flex-wrap: wrap;
}
.row2-left[b-kkp1bvun4x] {
    display: flex;
    gap: 6px;
    align-items: center;
    flex-wrap: wrap;
}
.row2-right[b-kkp1bvun4x] {
    display: flex;
    gap: 10px;
    align-items: center;
    margin-left: auto;
}
.row2-extra[b-kkp1bvun4x] {
    display: flex;
    align-items: center;
    gap: 6px;
}
.extra-icon[b-kkp1bvun4x] { font-size: 16px; color: #F0C56D; }
.extra-label[b-kkp1bvun4x] { font-size: 11px; color: #999; }
.extra-controls[b-kkp1bvun4x] {
    display: flex;
    align-items: center;
    gap: 4px;
}
.extra-btn[b-kkp1bvun4x] {
    width: 26px;
    height: 26px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
    background: #FAFAFA;
    border: 1px solid #EAEAEA;
    color: #888;
    transition: all 0.15s;
    user-select: none;
}
.extra-btn:hover[b-kkp1bvun4x] { border-color: #CCC; color: #555; }
.extra-value[b-kkp1bvun4x] {
    font-size: 13px;
    font-weight: 500;
    color: #333;
    min-width: 20px;
    text-align: center;
}

/* Row 2 actions */
.row2-actions[b-kkp1bvun4x] {
    display: flex;
    gap: 8px;
    margin-left: auto;
}
.action-icon[b-kkp1bvun4x] {
    font-size: 22px;            /* antes 18px: Cesar 2026-10-11 los pidio un poco mas grandes */
    cursor: pointer;
    padding: 4px;
    border-radius: 8px;
    position: relative;
    transition: background 0.15s, color 0.15s;
}
/* Tooltip inmediato al pasar el mouse (el title nativo tarda y no se ve en todos los navegadores). */
.action-icon[data-tip][b-kkp1bvun4x]::after {
    content: attr(data-tip);
    position: absolute;
    bottom: calc(100% + 6px);
    left: 50%;
    transform: translateX(-50%);
    background: #1E2126;
    color: #FFF;
    font-family: 'Figtree', sans-serif;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.2;
    white-space: nowrap;
    padding: 5px 8px;
    border-radius: 6px;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.12s;
    z-index: 20;
}
.action-icon[data-tip]:hover[b-kkp1bvun4x]::after { opacity: 1; }
.row2-actions .action-icon:last-child[data-tip][b-kkp1bvun4x]::after { left: auto; right: 0; transform: none; }
@media (hover: none) { .action-icon[data-tip][b-kkp1bvun4x]::after { display: none; } }
.action-flag[b-kkp1bvun4x] { color: #D35D52; }
.action-flag:hover[b-kkp1bvun4x] { background: rgba(231,76,60,0.08); }
.action-note[b-kkp1bvun4x] { color: #3498DB; }
.action-note:hover[b-kkp1bvun4x] { background: rgba(52,152,219,0.08); }
.action-search[b-kkp1bvun4x] { color: #999; }
.action-search:hover[b-kkp1bvun4x] { background: #F0F0F0; color: #666; }

/* Bitácora section */
.bitacora-section[b-kkp1bvun4x] {
    background: white;
    border-radius: 14px;
    border: 0.5px solid #EBEBEB;
    padding: 20px;
    margin-bottom: 20px;
}
.bitacora-header[b-kkp1bvun4x] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 14px;
    flex-wrap: wrap;
}
.bitacora-title[b-kkp1bvun4x] { font-size: 14px; font-weight: 500; color: #444; }
.bitacora-subtitle[b-kkp1bvun4x] { font-size: 12px; color: #999; }
.bitacora-input[b-kkp1bvun4x] { margin-bottom: 12px; }
.bitacora-textarea[b-kkp1bvun4x] {
    width: 100%;
    min-height: 70px;
    padding: 14px;
    border: 1px solid #E8E8E8;
    border-radius: 10px;
    font-family: 'Poppins', sans-serif;
    font-size: 13px;
    color: #333;
    resize: vertical;
    background: #FBFBFB;
    outline: none;
    transition: border-color 0.2s;
}
.bitacora-textarea:focus[b-kkp1bvun4x] { border-color: #4BA8AA; }
.bitacora-actions[b-kkp1bvun4x] { display: flex; justify-content: flex-end; }
.btn-agregar-nota[b-kkp1bvun4x] {
    background: #4BA8AA;
    color: var(--text-primary);
    padding: 8px 20px;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 6px;
    border: none;
    font-family: inherit;
    transition: opacity 0.2s;
}
.btn-agregar-nota:hover:not(:disabled)[b-kkp1bvun4x] { opacity: 0.9; }
.btn-agregar-nota:disabled[b-kkp1bvun4x] { opacity: 0.5; cursor: not-allowed; }

/* Bitácora historial */
.bitacora-historial[b-kkp1bvun4x] {
    border-top: 0.5px solid #F0F0F0;
    margin-top: 18px;
    padding-top: 16px;
}
.historial-title[b-kkp1bvun4x] {
    font-size: 11px; color: #999;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 12px;
}
.historial-item[b-kkp1bvun4x] {
    display: flex;
    gap: 12px;
    padding: 10px 14px;
    background: #FAFAFA;
    border-radius: 10px;
    margin-bottom: 8px;
}
.historial-item:last-child[b-kkp1bvun4x] { margin-bottom: 0; }
.historial-bar[b-kkp1bvun4x] {
    width: 3px;
    border-radius: 2px;
    flex-shrink: 0;
    min-height: 30px;
}
.historial-content[b-kkp1bvun4x] { flex: 1; }
.historial-nota[b-kkp1bvun4x] { font-size: 12px; color: #555; }
.historial-fecha[b-kkp1bvun4x] { font-size: 11px; color: #BBB; margin-top: 3px; }

/* Toast messages */
.toast[b-kkp1bvun4x] {
    position: fixed;
    bottom: 24px;
    right: 24px;
    padding: 12px 20px;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 8px;
    z-index: 200;
    animation: slideUp-b-kkp1bvun4x 0.3s ease;
}
.toast-success[b-kkp1bvun4x] {
    background: rgba(75,168,170,0.15);
    color: #4BA8AA;
    border: 1px solid rgba(75,168,170,0.3);
}
.toast-error[b-kkp1bvun4x] {
    background: rgba(231,76,60,0.1);
    color: #D35D52;
    border: 1px solid rgba(231,76,60,0.2);
}
.toast-bitacora[b-kkp1bvun4x] {
    background: rgba(75,168,170,0.15);
    color: #4BA8AA;
    border: 1px solid rgba(75,168,170,0.3);
}
@keyframes slideUp-b-kkp1bvun4x {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Modal */
.modal-overlay[b-kkp1bvun4x] {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0,0,0,0.35);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 300;
    animation: fadeIn-b-kkp1bvun4x 0.2s ease;
}
@keyframes fadeIn-b-kkp1bvun4x {
    from { opacity: 0; }
    to { opacity: 1; }
}
.modal-card[b-kkp1bvun4x] {
    background: white;
    border-radius: 16px;
    padding: 24px;
    width: 400px;
    max-width: 90vw;
    box-shadow: 0 8px 32px rgba(0,0,0,0.12);
}
.modal-header[b-kkp1bvun4x] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 18px;
}
.modal-title[b-kkp1bvun4x] { font-size: 16px; font-weight: 500; color: #333; }
.modal-body[b-kkp1bvun4x] { margin-bottom: 20px; }
.modal-footer[b-kkp1bvun4x] {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}
.btn-modal-cancel[b-kkp1bvun4x] {
    padding: 8px 18px;
    border-radius: 8px;
    font-size: 13px;
    cursor: pointer;
    background: #F5F5F5;
    border: 1px solid #E0E0E0;
    color: #666;
    font-family: inherit;
}
.btn-modal-ok[b-kkp1bvun4x] {
    padding: 8px 18px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    background: #4BA8AA;
    border: none;
    color: var(--text-primary);
    font-family: inherit;
    transition: opacity 0.2s;
}
.btn-modal-ok:hover:not(:disabled)[b-kkp1bvun4x] { opacity: 0.9; }
.btn-modal-ok:disabled[b-kkp1bvun4x] { opacity: 0.5; cursor: not-allowed; }
.btn-modal-delete[b-kkp1bvun4x] {
    padding: 8px 18px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    background: #D35D52;
    border: none;
    color: white;
    font-family: inherit;
    transition: opacity 0.2s;
}
.btn-modal-delete:hover[b-kkp1bvun4x] { opacity: 0.9; }

/* ========== RESPONSIVE ========== */

@media (max-width: 1000px) {
    .stats-row[b-kkp1bvun4x] {
        flex-direction: column;
    }
    .stats-summary[b-kkp1bvun4x] {
        min-width: unset;
    }
    .grade-btn[b-kkp1bvun4x] {
        width: 36px;
        height: 34px;
        font-size: 12px;
    }
}

@media (max-width: 768px) {
    .evaluar-container[b-kkp1bvun4x] {
        padding: 16px;
    }
    .section-header[b-kkp1bvun4x] {
        flex-direction: column;
        align-items: stretch;
    }
    .btn-guardar[b-kkp1bvun4x] {
        justify-content: center;
        width: 100%;
    }
    .filter-bar[b-kkp1bvun4x] {
        gap: 6px;
    }
    .filter-pill[b-kkp1bvun4x] {
        font-size: 11px;
        padding: 5px 10px;
    }
    .grade-btn[b-kkp1bvun4x] {
        width: 34px;
        height: 32px;
        font-size: 12px;
    }
    .col-grades[b-kkp1bvun4x] {
        gap: 4px;
    }
    .student-card[b-kkp1bvun4x] {
        padding: 12px 14px;
    }
    .student-row2[b-kkp1bvun4x] {
        padding-left: 30px;
    }
    .action-icon[b-kkp1bvun4x] { font-size: 20px; }
    .extra-btn[b-kkp1bvun4x] { width: 24px; height: 24px; font-size: 13px; }
    .stats-donut[b-kkp1bvun4x] {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }
    .ev-vista-btn[b-kkp1bvun4x] { width: 44px; height: 40px; }
}

@media (max-width: 550px) {
    .evaluar-container[b-kkp1bvun4x] {
        padding: 12px;
    }
    .breadcrumb[b-kkp1bvun4x] { font-size: 11px; }
    .header-title[b-kkp1bvun4x] { font-size: 16px; }
    .activity-toolbar[b-kkp1bvun4x] {
        flex-direction: column;
    }
    .activity-selector-wrapper[b-kkp1bvun4x] {
        min-width: unset;
    }
    .grade-btn[b-kkp1bvun4x] {
        width: 32px;
        height: 30px;
        font-size: 11px;
        border-radius: 6px;
    }
    .col-grades[b-kkp1bvun4x] {
        gap: 3px;
    }
    .col-name[b-kkp1bvun4x] {
        font-size: 12px;
    }
    .col-num[b-kkp1bvun4x] { width: 24px; font-size: 11px; }
    .student-row2[b-kkp1bvun4x] {
        padding-left: 24px;
        gap: 8px;
    }
    .row2-actions[b-kkp1bvun4x] { gap: 6px; }
    .extra-label[b-kkp1bvun4x] { display: none; }
    .filter-pill[b-kkp1bvun4x] { font-size: 10px; padding: 4px 8px; }
    .smart-chip[b-kkp1bvun4x] { font-size: 11px; padding: 5px 10px; }
    .bitacora-section[b-kkp1bvun4x] { padding: 14px; }
    .toast[b-kkp1bvun4x] {
        left: 12px;
        right: 12px;
        bottom: 12px;
    }
}

/* Touch: target de 44px para el toggle de vista (solo zona equipos) */
@media (pointer: coarse) {
    .ev-vista-btn[b-kkp1bvun4x] { width: 44px; height: 44px; }
}

/* --- Estado de guardado de pendientes (junto al dato, no toast) --- */
.ev-pendiente-status[b-kkp1bvun4x] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border-radius: 10px;
    font-size: 13px;
    margin-bottom: 12px;
}

.ev-pendiente-guardando[b-kkp1bvun4x] {
    background: #EAF4F4;
    color: #2C6E6F;
    border: 1px solid #BFE0E0;
}

.ev-pendiente-guardando .msr[b-kkp1bvun4x] {
    animation: ev-pend-spin-b-kkp1bvun4x 1s linear infinite;
}

@keyframes ev-pend-spin-b-kkp1bvun4x {
    to { transform: rotate(360deg); }
}

/* R8: aviso SOLO sin conexion (ambar, no rojo; warning-ink sobre warn-bg 5.77) */
.ev-pendiente-sinconexion[b-kkp1bvun4x] {
    background: var(--warn-bg);
    color: var(--warning-ink);
    border: 1px solid #EAD98A;
}
/* R8: rechazo 4xx en una barrera: se explica, sin boton */
.ev-pendiente-rechazo[b-kkp1bvun4x] {
    background: var(--bg-cream);
    color: var(--text-primary);
    border: 1px solid var(--border-med);
}
.ev-pendiente-txt[b-kkp1bvun4x] { flex: 1; min-width: 0; }
/* Reintentar guardado: outlined teal (BrandTealDeep sobre blanco 5.96), nunca rojo */
.ev-pendiente-retry[b-kkp1bvun4x] {
    margin-left: auto;
    height: 34px;
    padding: 0 14px;
    border-radius: 9px;
    border: 1.5px solid var(--brand-teal-deep);
    background: var(--bg-panel);
    color: var(--brand-teal-deep);
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
    cursor: pointer;
}
.ev-pendiente-retry .msr[b-kkp1bvun4x] { font-size: 15px !important; }

/* R8: indicador discreto del header (sustituye al boton "Guardar pendientes") */
.ev-guardado[b-kkp1bvun4x] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 36px;
    padding: 0 12px;
    border-radius: 9px;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    font-size: 12.5px;
    font-weight: 600;
    color: var(--text-secondary);
    white-space: nowrap;
}
.ev-guardado .msr[b-kkp1bvun4x] { font-size: 16px !important; }
.ev-guardado-ok[b-kkp1bvun4x] { color: var(--success-ink); }
.ev-guardado-guardando .msr[b-kkp1bvun4x] { animation: ev-pend-spin-b-kkp1bvun4x 1s linear infinite; }
.ev-guardado-sinconexion[b-kkp1bvun4x] { color: var(--warning-ink); background: var(--warn-bg); border-color: #EAD98A; }
.ev-guardado-conrechazo[b-kkp1bvun4x] { color: var(--warning-ink); }
.badge-sinenviar[b-kkp1bvun4x] { background: var(--warn-bg); color: var(--warning-ink); border: 1px solid #EAD98A; }
.ev-celda-sinconexion[b-kkp1bvun4x] { color: var(--warning); }
@media (prefers-reduced-motion: reduce) {
    .ev-guardado-guardando .msr[b-kkp1bvun4x] { animation: none; }
}
@media (pointer: coarse) {
    .ev-pendiente-retry[b-kkp1bvun4x] { min-height: 44px; }
}

/* === Indicador de estado de guardado por celda (W4 autosave) ===
   Slot de tamano fijo SIEMPRE presente en cada fila: al aparecer/cambiar el estado
   solo cambia el icono, nunca el layout (la grilla no se mueve, sin parpadeos). */
.ev-celda-estado[b-kkp1bvun4x] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    vertical-align: middle;
}
.ev-celda-estado .msr[b-kkp1bvun4x] {
    font-size: 16px;
    line-height: 1;
}
/* Celda sin tocar: reserva el espacio pero no pinta nada. */
.ev-celda-neutral[b-kkp1bvun4x] { visibility: hidden; }
.ev-celda-pendiente[b-kkp1bvun4x] { color: #C9922E; }
.ev-celda-guardando[b-kkp1bvun4x] { color: #6B7280; }
.ev-celda-guardando .msr[b-kkp1bvun4x] { animation: ev-celda-spin-b-kkp1bvun4x 1s linear infinite; }
.ev-celda-guardado[b-kkp1bvun4x] { color: #3E8E6F; }
.ev-celda-error[b-kkp1bvun4x] { color: #C0392B; cursor: pointer; }

@keyframes ev-celda-spin-b-kkp1bvun4x {
    to { transform: rotate(360deg); }
}
/* /Pages/Finanzas/Cobranza.razor.rz.scp.css */
.cob-toolbar[b-hc5fhf7fpk] {
    align-items: flex-end;
}

.cob-field[b-hc5fhf7fpk] {
    margin-bottom: 0;
}

.cob-field-school[b-hc5fhf7fpk] {
    min-width: 260px;
}

.cob-field-cycle[b-hc5fhf7fpk] {
    min-width: 200px;
}

.cob-space-after[b-hc5fhf7fpk] {
    margin-bottom: 16px;
}

.cob-stats[b-hc5fhf7fpk] {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.cob-stats > *[b-hc5fhf7fpk] {
    min-width: 0;
}

.cob-stats .fin-stat:not(.fin-stat-total) .fin-stat-sub[b-hc5fhf7fpk] {
    color: var(--text-secondary);
}

.cob-stat-vencido[b-hc5fhf7fpk] {
    border-left: 4px solid var(--danger);
}

.cob-stat-cobrado[b-hc5fhf7fpk] {
    border-left: 4px solid var(--success);
}

.cob-stat-facturado[b-hc5fhf7fpk] {
    border-left: 4px solid var(--brand-teal);
}

.cob-stat-link[b-hc5fhf7fpk] {
    display: block;
    color: inherit;
    text-decoration: none;
    transition: box-shadow .15s var(--ease), transform .15s var(--ease);
}

.cob-stat-link:focus-visible[b-hc5fhf7fpk] {
    outline: 2px solid var(--brand-teal);
    outline-offset: 2px;
}

.cob-stat-go[b-hc5fhf7fpk] {
    display: flex;
    align-items: center;
    gap: 3px;
    margin-top: 6px;
    color: var(--info-ink);
    font-size: 12px;
    font-weight: 600;
}

.cob-stat-go .msr[b-hc5fhf7fpk] {
    font-size: 15px;
}

.cob-progress-card[b-hc5fhf7fpk] {
    display: flex;
    align-items: center;
    gap: 22px;
    flex-wrap: wrap;
}

.cob-progress-num[b-hc5fhf7fpk] {
    flex: 0 0 auto;
    font-family: var(--font-serif);
    font-size: 44px;
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    line-height: 1;
}

.cob-progress-num span[b-hc5fhf7fpk] {
    font-size: 24px;
}

.cob-progress-body[b-hc5fhf7fpk] {
    flex: 1 1 260px;
    min-width: 220px;
}

.cob-progress-head[b-hc5fhf7fpk] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 8px;
}

.cob-progress-track[b-hc5fhf7fpk] {
    height: 12px;
    overflow: hidden;
    border-radius: 999px;
    background: var(--cream-deep);
}

.cob-progress-fill[b-hc5fhf7fpk] {
    height: 100%;
    border-radius: 999px;
    transition: width .4s var(--ease);
}

.cob-lvl-ok[b-hc5fhf7fpk] {
    color: var(--success-ink);
}

.cob-lvl-ok .cob-progress-fill[b-hc5fhf7fpk] {
    background: var(--success);
}

.cob-lvl-ok .fin-chip[b-hc5fhf7fpk] {
    color: var(--success-ink);
}

.cob-lvl-warn[b-hc5fhf7fpk] {
    color: var(--warning-ink);
}

.cob-lvl-warn .cob-progress-fill[b-hc5fhf7fpk] {
    background: var(--warning);
}

.cob-lvl-warn .fin-chip[b-hc5fhf7fpk] {
    color: var(--warning-ink);
}

.cob-lvl-bad[b-hc5fhf7fpk] {
    color: var(--danger);
}

.cob-lvl-bad .cob-progress-fill[b-hc5fhf7fpk] {
    background: var(--danger);
}

.cob-lvl-bad .fin-chip[b-hc5fhf7fpk] {
    color: var(--danger);
}

.cob-progress-legend[b-hc5fhf7fpk] {
    margin-top: 8px;
    color: var(--text-secondary);
    font-size: 12.5px;
}

.cob-ciclo-pill[b-hc5fhf7fpk] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 12px;
    border-radius: 999px;
    background: var(--bg-light-teal);
    color: var(--ev-ciclo);
    font-size: 12.5px;
    font-weight: 600;
}

.cob-ciclo-pill .msr[b-hc5fhf7fpk] {
    font-size: 16px;
}

.cob-sincargos[b-hc5fhf7fpk] {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    flex-wrap: wrap;
    border: 1px solid var(--border-soft);
    border-left: 3px solid var(--ev-ciclo);
    background: var(--ev-ciclo-bg);
}

.cob-sincargos-ico[b-hc5fhf7fpk] {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: var(--radius-lg);
    background: var(--bg-panel);
    color: var(--ev-ciclo);
}

.cob-sincargos-ico .msr[b-hc5fhf7fpk] {
    font-size: 22px;
}

.cob-sincargos-body[b-hc5fhf7fpk] {
    flex: 1 1 280px;
    min-width: 0;
}

.cob-sincargos-head[b-hc5fhf7fpk] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 4px;
}

.cob-sincargos-tit[b-hc5fhf7fpk] {
    margin: 0;
    font-family: var(--font-serif);
    font-size: 19px;
    font-weight: 600;
}

.cob-sincargos-txt[b-hc5fhf7fpk] {
    max-width: 62ch;
    color: var(--text-secondary);
    font-size: 13px;
    line-height: 1.5;
}

.cob-sincargos-acc[b-hc5fhf7fpk] {
    margin-top: 12px;
}

.cob-secundarios[b-hc5fhf7fpk] {
    display: flex;
    gap: 24px;
    flex-wrap: wrap;
    margin-top: 6px;
    padding-top: 10px;
}

.cob-sec[b-hc5fhf7fpk] {
    display: flex;
    align-items: center;
    gap: 9px;
}

.cob-sec-val[b-hc5fhf7fpk] {
    font-family: var(--font-serif);
    font-size: 20px;
    font-variant-numeric: tabular-nums;
    font-weight: 700;
}

.cob-sec-lbl[b-hc5fhf7fpk] {
    color: var(--text-secondary);
    font-size: 12.5px;
}

.cob-sec .msr[b-hc5fhf7fpk] {
    color: var(--text-muted);
}

.cob-sec-action[b-hc5fhf7fpk] {
    margin-left: auto;
}

.cob-danger[b-hc5fhf7fpk] {
    color: var(--danger);
}

.cob-state[b-hc5fhf7fpk] {
    padding-inline: 12px;
}

.cob-state-title[b-hc5fhf7fpk] {
    margin-bottom: 6px;
    color: var(--text-primary);
    font-family: var(--font-serif);
    font-size: 19px;
}

.cob-state-copy[b-hc5fhf7fpk] {
    max-width: 460px;
    margin: 0 auto 16px;
    color: var(--text-secondary);
    font-size: 13px;
    line-height: 1.5;
}

.cob-action[b-hc5fhf7fpk] {
    justify-content: center;
}

.cob-action.fin-btn-primary[b-hc5fhf7fpk] {
    color: var(--text-primary);
}

.cob-skeleton-percent[b-hc5fhf7fpk] {
    width: 120px;
    height: 44px;
}

.cob-skeleton-chip[b-hc5fhf7fpk] {
    margin-bottom: 10px;
}

.cob-skeleton-legend[b-hc5fhf7fpk],
.cob-skeleton-value[b-hc5fhf7fpk],
.cob-skeleton-meta[b-hc5fhf7fpk] {
    margin-top: 8px;
}

.cob-loading-label[b-hc5fhf7fpk] {
    margin-top: 10px;
    color: var(--text-secondary);
    font-size: 14px;
    text-align: center;
}

@media (hover: hover) and (pointer: fine) {
    .cob-stat-link:hover[b-hc5fhf7fpk] {
        box-shadow: var(--shadow-md);
        transform: translateY(-1px);
    }
}

@media (max-width: 640px) {
    .fin-page[b-hc5fhf7fpk] {
        min-width: 0;
        padding: 18px 14px;
    }

    .fin-title[b-hc5fhf7fpk] {
        font-size: 23px;
    }

    .fin-header[b-hc5fhf7fpk] {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    .cob-toolbar[b-hc5fhf7fpk] {
        align-items: stretch;
        flex-direction: column;
    }

    .cob-toolbar > .fin-field[b-hc5fhf7fpk] {
        flex: 1 1 100%;
        min-width: 100%;
    }

    .cob-stats[b-hc5fhf7fpk] {
        grid-template-columns: 1fr 1fr;
    }

    .cob-stats .fin-stat-val[b-hc5fhf7fpk] {
        font-size: clamp(16px, 4.5vw, 19px);
        letter-spacing: -.01em;
        white-space: nowrap;
    }

    .cob-progress-card[b-hc5fhf7fpk] {
        align-items: flex-start;
        flex-direction: column;
        gap: 14px;
    }

    .cob-progress-num[b-hc5fhf7fpk] {
        font-size: 36px;
    }

    .cob-progress-num span[b-hc5fhf7fpk] {
        font-size: 20px;
    }

    .cob-sincargos[b-hc5fhf7fpk] {
        gap: 12px;
    }

    .cob-sincargos-tit[b-hc5fhf7fpk] {
        font-size: 17px;
    }

    .cob-sincargos-acc .fin-btn[b-hc5fhf7fpk] {
        box-sizing: border-box;
        width: 100%;
        justify-content: center;
    }

    .cob-progress-body[b-hc5fhf7fpk] {
        width: 100%;
        min-width: 0;
    }

    .cob-secundarios[b-hc5fhf7fpk] {
        gap: 16px;
    }

    .cob-sec-action[b-hc5fhf7fpk] {
        width: 100%;
        margin-left: 0;
    }

    .cob-sec-action .cob-action[b-hc5fhf7fpk],
    .cob-state .cob-action[b-hc5fhf7fpk] {
        box-sizing: border-box;
        width: 100%;
    }
}

@media (pointer: coarse) {
    .cob-stat-link[b-hc5fhf7fpk],
    .cob-action[b-hc5fhf7fpk],
    .cob-field .fin-select[b-hc5fhf7fpk] {
        min-height: 44px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .cob-progress-fill[b-hc5fhf7fpk],
    .cob-stat-link[b-hc5fhf7fpk],
    .skeleton[b-hc5fhf7fpk] {
        animation: none;
        transition: none;
    }
}
/* /Pages/Finanzas/Morosos.razor.rz.scp.css */
.mor-filtros[b-np7rjox7pv] {
    display: grid;
    grid-template-columns: minmax(220px,1.6fr) minmax(150px,1fr) minmax(190px,1.1fr) auto;
    gap: 12px;
    align-items: end;
    margin-bottom: 14px;
}

.mor-filtros .fin-field[b-np7rjox7pv] {
    margin-bottom: 0;
}

.mor-resumen[b-np7rjox7pv] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 12px;
    font-size: 13px;
    color: var(--text-secondary);
}

.mor-resumen-univ[b-np7rjox7pv] {
    font-weight: 600;
    color: var(--text-primary);
}

.mor-chip-filtro[b-np7rjox7pv] {
    background: var(--bg-light-teal);
    color: #14676B;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12.5px;
    font-weight: 600;
}

.mor-chip-filtro .msr[b-np7rjox7pv] {
    font-size: 16px;
}

.mor-sort[b-np7rjox7pv] {
    background: none;
    border: none;
    padding: 0;
    margin: 0;
    font: inherit;
    color: inherit;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-weight: 600;
}

.mor-sort .msr[b-np7rjox7pv] {
    font-size: 16px;
    opacity: .35;
}

.mor-sort[aria-sort="descending"] .msr[b-np7rjox7pv],
.mor-sort[aria-sort="ascending"] .msr[b-np7rjox7pv] {
    opacity: 1;
    color: var(--brand-teal-deep);
}

.mor-sort:focus-visible[b-np7rjox7pv] {
    outline: 2px solid var(--brand-teal);
    outline-offset: 2px;
    border-radius: 4px;
}

.mor-dias[b-np7rjox7pv] {
    font-size: 12px;
    color: var(--text-secondary);
    display: block;
}

.mor-dias.grave[b-np7rjox7pv] {
    color: var(--danger);
    font-weight: 600;
}

.mor-pager[b-np7rjox7pv] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--border-soft);
}

.mor-pager-info[b-np7rjox7pv] {
    font-size: 13px;
    color: var(--text-secondary);
    font-variant-numeric: tabular-nums;
}

.mor-pager-btns[b-np7rjox7pv] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.mor-pager-pos[b-np7rjox7pv] {
    font-size: 13px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    min-width: 96px;
    text-align: center;
}

@media (max-width: 640px) {
    .mor-filtros[b-np7rjox7pv] {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .mor-pager[b-np7rjox7pv] {
        flex-direction: column;
        align-items: stretch;
    }

    .mor-pager-btns[b-np7rjox7pv] {
        justify-content: space-between;
    }

    .mor-pager-btns .fin-btn[b-np7rjox7pv] {
        flex: 1;
        justify-content: center;
    }

    .mor-pager-pos-full[b-np7rjox7pv] {
        display: none;
    }

    .fin-row-actions[b-np7rjox7pv] {
        width: 100%;
    }

    .fin-row-actions .fin-btn[b-np7rjox7pv] {
        flex: 1;
        justify-content: center;
    }
}

@media (pointer: coarse) {
    .mor-sort[b-np7rjox7pv],
    .fin-btn[b-np7rjox7pv] {
        min-height: 44px;
    }
}
/* /Pages/Horario.razor.rz.scp.css */
/* ============================================================
   Horario.razor.css — estilos del shell de /horario (W2)
   Scope: solo elementos de Horario.razor (no los componentes hijos).
   Tokens: NUNCA hex literal aqui; solo var(--...) de tokens.css.
   Responsive: 375px base → 640px → 1023px breakpoints.
   Mocion: todas las animaciones/transiciones desactivadas con
           prefers-reduced-motion: reduce (H11).
   ============================================================ */

/* ── Cabecera de pagina ───────────────────────────────────── */
.ht-header[b-8y0bdce1r6] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 12px 20px;
    padding-block: 16px 12px;
}

.ht-header .ttl h1[b-8y0bdce1r6] {
    font-family: var(--font-serif);
    font-size: 22px;
    font-weight: 700;
    color: var(--text-primary);
    margin: 0;
    line-height: 1.2;
}

.ht-header .eyebrow[b-8y0bdce1r6] {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: var(--brand-teal-deep);
    margin-bottom: 4px;
}

.ht-header .sub[b-8y0bdce1r6] {
    font-size: 12px;
    color: var(--text-muted);
    margin-top: 2px;
}

.ht-header .ctl[b-8y0bdce1r6] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}

/* ── Tabs Semana | Mes ───────────────────────────────────── */
.tabs[b-8y0bdce1r6] {
    display: flex;
    gap: 2px;
    background: var(--bg-cream);
    border-radius: var(--radius-md);
    padding: 3px;
}

.tab[b-8y0bdce1r6] {
    padding: 6px 14px;
    border: none;
    background: transparent;
    border-radius: var(--radius-sm);
    font-size: 13px;
    font-weight: 600;
    color: var(--text-secondary);
    cursor: pointer;
    transition: background var(--ease) .15s, color var(--ease) .15s;
    min-height: 32px;
}

.tab.active[b-8y0bdce1r6],
.tab[aria-selected="true"][b-8y0bdce1r6] {
    background: var(--bg-panel);
    color: var(--brand-teal-deep);
    box-shadow: var(--shadow-sm);
}

.tab:disabled[b-8y0bdce1r6] {
    opacity: .5;
    cursor: not-allowed;
}

/* ── Navegacion < Hoy > ─────────────────────────────────── */
.navr[b-8y0bdce1r6] {
    display: flex;
    align-items: center;
    gap: 4px;
}

.icon-btn[b-8y0bdce1r6] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-sm);
    background: var(--bg-panel);
    cursor: pointer;
    color: var(--text-secondary);
    transition: background var(--ease) .15s;
}

.icon-btn:hover[b-8y0bdce1r6] { background: var(--bg-cream); }
.icon-btn:focus-visible[b-8y0bdce1r6] { outline: 2px solid var(--brand-teal-dark); outline-offset: 2px; }
.icon-btn:disabled[b-8y0bdce1r6] { opacity: .45; cursor: not-allowed; }

.btn-hoy[b-8y0bdce1r6] {
    padding: 5px 12px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-sm);
    background: var(--bg-panel);
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
    cursor: pointer;
    min-height: 32px;
    transition: background var(--ease) .15s;
}

.btn-hoy:hover[b-8y0bdce1r6] { background: var(--bg-cream); }
.btn-hoy:disabled[b-8y0bdce1r6] { opacity: .45; cursor: not-allowed; }

/* ── Etiqueta de rango (aria-live) ──────────────────────── */
.rng[b-8y0bdce1r6] {
    display: flex;
    flex-direction: column;
    font-size: 12px;
    color: var(--text-muted);
    line-height: 1.3;
}

.rng b[b-8y0bdce1r6] {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-primary);
}

/* ── Fin de semana toggle ───────────────────────────────── */
.finde[b-8y0bdce1r6] {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    color: var(--text-secondary);
    cursor: pointer;
}

/* ── Estado SKELETON ────────────────────────────────────── */
.ht-sk[b-8y0bdce1r6] {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 16px 0;
    animation: ht-pulse-b-8y0bdce1r6 1.6s ease-in-out infinite;
}

.wk-card[b-8y0bdce1r6] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    padding: 16px;
}

.sk-grid[b-8y0bdce1r6] {
    display: grid;
    grid-template-columns: 60px repeat(5, 1fr);
    gap: 8px;
    margin-bottom: 12px;
}

.skb[b-8y0bdce1r6] {
    height: 12px;
    background: var(--border-soft);
    border-radius: var(--radius-sm);
    animation: ht-pulse-b-8y0bdce1r6 1.6s ease-in-out infinite;
}

.skb.h[b-8y0bdce1r6] { height: 32px; }
.skb.s[b-8y0bdce1r6] { height: 8px; }
.skb.big[b-8y0bdce1r6] { height: 28px; margin-bottom: 4px; }
.skb.bar[b-8y0bdce1r6] { height: 6px; border-radius: 3px; }

.sk-msg[b-8y0bdce1r6] {
    font-size: 13px;
    color: var(--text-muted);
    text-align: center;
    margin-top: 8px;
}

.ht-sk-cinta[b-8y0bdce1r6] {
    display: flex;
    gap: 12px;
    overflow: hidden;
}

.ht-sk-cinta .kpi[b-8y0bdce1r6] {
    flex: 1;
    min-width: 0;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

@keyframes ht-pulse-b-8y0bdce1r6 {
    0%, 100% { opacity: 1; }
    50%       { opacity: .5; }
}

/* ── Estado VACIO / SIN-CICLO / ERROR ───────────────────── */
.empty[b-8y0bdce1r6] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 10px;
    min-height: 260px;
    padding: 24px;
}

.empty .msr[b-8y0bdce1r6] {
    font-size: 44px;
    color: var(--text-muted);
}

.empty h3[b-8y0bdce1r6] {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0;
}

.empty p[b-8y0bdce1r6] {
    font-size: 14px;
    color: var(--text-secondary);
    max-width: 360px;
    margin: 0;
    line-height: 1.55;
}

.empty a[b-8y0bdce1r6],
.empty .btn[b-8y0bdce1r6] {
    margin-top: 4px;
}

.empty.err .msr[b-8y0bdce1r6] { color: var(--danger); opacity: .6; }

/* ── Banner sin calendario oficial ─────────────────────── */
.ht-banner-cal[b-8y0bdce1r6] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    background: var(--bg-cream);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    padding: 10px 14px;
    font-size: 13px;
    color: var(--text-secondary);
    margin-bottom: 12px;
}

.ht-banner-cal .msr[b-8y0bdce1r6] { font-size: 18px; color: var(--info); flex-shrink: 0; }

.ht-banner-cal a[b-8y0bdce1r6] {
    color: var(--brand-teal-deep);
    font-weight: 600;
    white-space: nowrap;
    text-decoration: none;
    margin-left: auto;
    padding-left: 8px;
}

/* ── Panel tabpanel ─────────────────────────────────────── */
section[role="tabpanel"][b-8y0bdce1r6] {
    outline: none;
}

/* ── Fila 2: hero + pildoras (H1) ────────────────────────── */
.ht-top2[b-8y0bdce1r6] {
    display: grid;
    grid-template-columns: 1fr minmax(280px, 360px);
    gap: 16px;
    align-items: start;
    margin: 16px 0;
}

.ht-hero[b-8y0bdce1r6] { min-width: 0; }

.ht-pills[b-8y0bdce1r6] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.ht-pill[b-8y0bdce1r6] {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 7px 12px;
    border-radius: var(--radius-md);
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    box-shadow: var(--shadow-sm);
    font-size: 12.5px;
    min-height: 36px;
}

.ht-pill .dot[b-8y0bdce1r6] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex: none;
    background: var(--brand-teal);
}

.ht-pill.warn .dot[b-8y0bdce1r6] { background: var(--warning); }
.ht-pill.ok .dot[b-8y0bdce1r6]   { background: var(--success); }
.ht-pill.com .dot[b-8y0bdce1r6]  { background: var(--ev-com); }

.ht-pill .txt[b-8y0bdce1r6] {
    color: var(--text-primary);
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ht-pill .txt strong[b-8y0bdce1r6] { font-weight: 600; }

.ht-pill .act[b-8y0bdce1r6] {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 2px;
    font-weight: 600;
    color: var(--brand-teal-deep);
    white-space: nowrap;
    padding: 3px 8px;
    border-radius: var(--radius-sm);
    text-decoration: none;
    flex-shrink: 0;
}

.ht-pill .act:hover[b-8y0bdce1r6] { background: var(--bg-light-teal); }
.ht-pill .act .msr[b-8y0bdce1r6] { font-size: 16px; }

@media (max-width: 900px) {
    .ht-top2[b-8y0bdce1r6] { grid-template-columns: 1fr; }
    .ht-pill .txt[b-8y0bdce1r6] { white-space: normal; }
}

/* ── Resumen de la semana ────────────────────────────────── */
.hor-resumen[b-8y0bdce1r6] {
    margin-top: 24px;
}

.hor-resumen-heading[b-8y0bdce1r6] {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 0 0 12px;
}

/* ═══════════════════════════════════════════════════════════
   RESPONSIVE — 375 px (movil, base)
   H1: hero → chips-dia + horario → pildoras → resumen
   Cero scroll horizontal. Touch targets 44 px en pointer:coarse.
   ═══════════════════════════════════════════════════════════ */

@media (max-width: 639px) {
    .ht-header[b-8y0bdce1r6] {
        flex-direction: column;
        gap: 10px;
    }

    .ht-header .ctl[b-8y0bdce1r6] {
        width: 100%;
        margin-left: 0;
        flex-wrap: wrap;
        gap: 6px;
    }

    /* H1/R7: la jornada manda en el telefono. El orden se sella con `order` REAL
       (no depende del orden del DOM): hero -> chips+horario -> pildoras -> resumen.
       .ht-top2 usa display:contents para que hero y pildoras, que viven juntos en la
       fila 2 de escritorio, se reordenen por separado dentro del flujo movil. */
    .ht-content[b-8y0bdce1r6] {
        display: flex;
        flex-direction: column;
    }

    .ht-top2[b-8y0bdce1r6] {
        display: contents;
    }

    .ht-banner-cal[b-8y0bdce1r6] { order: 0; }
    .ht-hero[b-8y0bdce1r6]       { order: 1; margin: 8px 0; }
    section#panelSemana[b-8y0bdce1r6],
    section#panelMes[b-8y0bdce1r6] { order: 2; }
    .ht-pills[b-8y0bdce1r6]      { order: 3; margin: 8px 0; }
    .hor-resumen[b-8y0bdce1r6]   { order: 4; }

    .ht-sk-cinta[b-8y0bdce1r6] {
        flex-direction: column;
    }

    .sk-grid[b-8y0bdce1r6] {
        grid-template-columns: 40px repeat(3, 1fr);
    }
}

@media (pointer: coarse) {
    /* Touch: targets minimos de 44 px (H1-responsive, WCAG 2.5.5) */
    .tab[b-8y0bdce1r6] {
        min-height: 44px;
        padding: 10px 14px;
    }

    .icon-btn[b-8y0bdce1r6] {
        width: 44px;
        height: 44px;
    }

    .btn-hoy[b-8y0bdce1r6] {
        min-height: 44px;
        padding: 10px 16px;
    }
}

/* ─── 640 px ──────────────────────────────────────────── */
@media (min-width: 640px) {
    .ht-header[b-8y0bdce1r6] {
        flex-wrap: nowrap;
        align-items: center;
    }

    .sk-grid[b-8y0bdce1r6] {
        grid-template-columns: 52px repeat(5, 1fr);
    }
}

/* ─── 1024 px (escritorio) ───────────────────────────── */
@media (min-width: 1024px) {
    .ht-header .ttl h1[b-8y0bdce1r6] { font-size: 26px; }
}

/* ═══════════════════════════════════════════════════════════
   MOVIMIENTO — desactivar TODO con prefers-reduced-motion (H11)
   ═══════════════════════════════════════════════════════════ */

@media (prefers-reduced-motion: reduce) {
    /* Skeleton pulse */
    .ht-sk[b-8y0bdce1r6],
    .skb[b-8y0bdce1r6] {
        animation: none !important;
    }

    /* Transiciones de tabs y botones */
    .tab[b-8y0bdce1r6],
    .icon-btn[b-8y0bdce1r6],
    .btn-hoy[b-8y0bdce1r6],
    .finde[b-8y0bdce1r6] {
        transition: none !important;
    }

    /* Todas las animaciones declaradas en este archivo */
    *[b-8y0bdce1r6] {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

/* FILTROS-ESCUELA-TURNO: que agenda se ve (escuela/turno de contexto o, elegida, todas mis escuelas). */
.ht-vista[b-8y0bdce1r6] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 16px;
    margin: 0 0 6px;
}

.ht-vista.todas[b-8y0bdce1r6] {
    padding: 10px 14px;
    border: 1px solid var(--brand-teal-dark);
    border-radius: 12px;
    background: var(--bg-light-teal);
}

.ht-ctx[b-8y0bdce1r6],
.ht-vista-tit[b-8y0bdce1r6] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 600;
    color: var(--text-secondary);
}

.ht-vista-tit[b-8y0bdce1r6] { color: var(--text-primary); font-size: 14px; }

.ht-ctx .msr[b-8y0bdce1r6],
.ht-vista-tit .msr[b-8y0bdce1r6],
.ht-vista-btn .msr[b-8y0bdce1r6] {
    font-size: 18px;
    color: var(--brand-teal-deep);
}

.ht-turnos[b-8y0bdce1r6] {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 6px;
}

.ht-turno[b-8y0bdce1r6],
.ht-vista-btn[b-8y0bdce1r6] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 36px;
    padding: 6px 14px;
    border: 1px solid var(--border-med);
    border-radius: 999px;
    background: var(--bg-panel);
    color: var(--text-primary);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

.ht-turno.on[b-8y0bdce1r6] {
    border-color: var(--brand-teal-dark);
    background: var(--bg-light-teal);
}

.ht-vista-btn[b-8y0bdce1r6] { margin-left: auto; }

.ht-turno:focus-visible[b-8y0bdce1r6],
.ht-vista-btn:focus-visible[b-8y0bdce1r6] {
    outline: 2px solid var(--brand-teal);
    outline-offset: 2px;
}

.ht-vista-exp[b-8y0bdce1r6] {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    margin: 0 0 14px;
    font-size: 12.5px;
    color: var(--text-muted);
}

.ht-vista-exp .msr[b-8y0bdce1r6] { font-size: 16px; }
.ht-vista-exp.nota[b-8y0bdce1r6] { margin-top: -8px; }

@media (max-width: 640px) {
    .ht-vista-btn[b-8y0bdce1r6] { margin-left: 0; width: 100%; justify-content: center; }
}
/* /Pages/Inicio.razor.rz.scp.css */
/* ────────────────────────────────────────────────────────────────────
   Inicio — router delgado (Home v3 F3).
   El CSS del Centro de Mando Docente se movió VERBATIM a
   Components/Inicio/CdmDocente.razor.css. Aquí solo vive el estado
   de carga breve mientras se resuelve EsDirectivo + preferencia.
   ──────────────────────────────────────────────────────────────────── */

.rt-loading[b-803lggtgd6] {
    max-width: 1280px;
    margin: 0 auto;
    padding: 26px 28px;
}

.rt-loading .sk-card[b-803lggtgd6] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
    padding: 20px;
}

@media (max-width: 640px) {
    .rt-loading[b-803lggtgd6] { padding: 18px 14px; }
}
/* /Pages/Login.razor.rz.scp.css */
/* Los estilos del cascarón, panel lateral y campos viven en Components/UI/AuthShell.razor.css */
/* /Pages/MisClases.razor.rz.scp.css */
/* ────────────────────────────────────────────────────────────────────
   Mis clases — v2 (Fase D)
   Tokens del sistema v2 + chrome scoped a .mc-*
   ──────────────────────────────────────────────────────────────────── */

.mc-page[b-6lujzwyna2] {
    padding: 28px 36px 60px;
    max-width: 1280px;
    margin: 0 auto;
    font-family: var(--font-sans);
    color: var(--text-primary);
}

/* === Breadcrumb === */
.mc-breadcrumb[b-6lujzwyna2] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: var(--text-muted);
    margin-bottom: 14px;
}

.mc-breadcrumb .msr[b-6lujzwyna2] { font-size: 14px !important; }
.mc-breadcrumb a[b-6lujzwyna2] { color: var(--text-secondary); text-decoration: none; }
.mc-breadcrumb a:hover[b-6lujzwyna2] { color: var(--brand-teal-deep); }
.mc-sep[b-6lujzwyna2] { color: var(--text-muted); }
.mc-current[b-6lujzwyna2] { color: var(--text-primary); font-weight: 600; }

/* === Header === */
.mc-header[b-6lujzwyna2] {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 24px;
}

.mc-header-icon[b-6lujzwyna2] {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--brand-teal), var(--brand-teal-dark));
    color: #FFFFFF;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(110, 198, 200, 0.25);
}

.mc-header-icon .msr[b-6lujzwyna2] { font-size: 24px !important; }

.mc-title-block[b-6lujzwyna2] { flex: 1; min-width: 0; }

.mc-title[b-6lujzwyna2] {
    font-family: var(--font-serif);
    font-size: 28px;
    font-weight: 600;
    color: var(--text-primary);
    letter-spacing: -0.5px;
    line-height: 1.1;
    margin: 0;
}

.mc-sub[b-6lujzwyna2] {
    font-size: 13px;
    color: var(--text-secondary);
    margin: 4px 0 0;
}

.mc-header-actions[b-6lujzwyna2] {
    display: flex;
    gap: 8px;
    flex-shrink: 0;
    align-items: center;
}

/* === Loading / Empty === */
.mc-loading[b-6lujzwyna2] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 60px;
    color: var(--text-muted);
    font-size: 13px;
}

.mc-loading .msr[b-6lujzwyna2] { font-size: 20px; }

.mc-spin[b-6lujzwyna2] { animation: mc-spin-b-6lujzwyna2 1s linear infinite; }
@keyframes mc-spin-b-6lujzwyna2 {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

.mc-empty[b-6lujzwyna2] {
    text-align: center;
    padding: 60px 24px;
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
}

.mc-empty .msr[b-6lujzwyna2] {
    font-size: 56px !important;
    color: var(--border-med);
    margin-bottom: 10px;
}

.mc-empty h3[b-6lujzwyna2] {
    font-family: var(--font-serif);
    font-size: 18px;
    color: var(--text-primary);
    margin: 0 0 6px;
}

.mc-empty p[b-6lujzwyna2] {
    font-size: 13px;
    color: var(--text-secondary);
    margin: 0 auto;
    max-width: 420px;
}

/* === Selector de clases (tarjetas NEM) === */
.mc-class-selector[b-6lujzwyna2] {
    margin-bottom: 26px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--border-soft);
}

.mc-class-selector--cards[b-6lujzwyna2] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(135px, 1fr));
    gap: 6px;
    padding: 4px 0;
    margin-bottom: 1.5rem;
}

@media (max-width: 480px) {
    .mc-class-selector--cards[b-6lujzwyna2] {
        grid-template-columns: 1fr;
        gap: 4px;
    }
}

/* === Section label === */
.mc-section-label[b-6lujzwyna2] {
    font-size: 11px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.7px;
    margin: 22px 0 12px;
}

/* === Quick actions === */
.mc-quick-actions[b-6lujzwyna2] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 14px;
    margin-bottom: 8px;
}

.mc-quick[b-6lujzwyna2] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    padding: 18px 20px;
    cursor: pointer;
    transition: all 0.18s ease;
    box-shadow: var(--shadow-sm);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    position: relative;
    text-align: left;
    font-family: inherit;
}

.mc-quick:hover[b-6lujzwyna2] {
    border-color: var(--brand-teal);
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.mc-quick-icon[b-6lujzwyna2] {
    width: 42px;
    height: 42px;
    border-radius: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #FFFFFF;
}

.mc-quick-icon .msr[b-6lujzwyna2] { font-size: 22px !important; }

.mc-quick-icon.teal[b-6lujzwyna2]   { background: linear-gradient(135deg, var(--brand-teal), var(--brand-teal-dark)); }
.mc-quick-icon.violet[b-6lujzwyna2] { background: linear-gradient(135deg, #8B5CF6, #6D28D9); }
.mc-quick-icon.amber[b-6lujzwyna2]  { background: linear-gradient(135deg, #F59E0B, #D97706); }

.mc-quick-label[b-6lujzwyna2] {
    font-family: var(--font-serif);
    font-size: 17px;
    font-weight: 600;
    color: var(--text-primary);
    letter-spacing: -0.2px;
}

.mc-quick-badge[b-6lujzwyna2] {
    position: absolute;
    top: 12px;
    right: 12px;
    background: rgba(110, 198, 200, 0.18);
    color: var(--brand-teal-deep);
    font-size: 9.5px;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 10px;
    text-transform: uppercase;
    letter-spacing: 0.4px;
}

/* === Options grid === */
.mc-options-grid[b-6lujzwyna2] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 10px;
}

.mc-option[b-6lujzwyna2] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    padding: 14px;
    cursor: pointer;
    transition: all 0.15s ease;
    box-shadow: var(--shadow-sm);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 9px;
    text-align: left;
    font-family: inherit;
    min-height: 110px;
}

.mc-option:hover[b-6lujzwyna2] {
    border-color: var(--brand-teal);
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.mc-option.destacado[b-6lujzwyna2] {
    border-color: var(--brand-teal);
    background: linear-gradient(135deg, rgba(110, 198, 200, 0.06) 0%, var(--bg-panel) 60%);
    box-shadow: 0 4px 14px rgba(110, 198, 200, 0.12);
}

.mc-option-icon[b-6lujzwyna2] {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.mc-option-icon .msr[b-6lujzwyna2] { font-size: 20px !important; }

.mc-option-label[b-6lujzwyna2] {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.2;
}

.mc-option.destacado .mc-option-label[b-6lujzwyna2] { color: var(--brand-teal-deep); }

.mc-option-sub[b-6lujzwyna2] {
    font-size: 11px;
    color: var(--text-muted);
    margin-top: -4px;
}

/* === Responsive === */
@media (max-width: 720px) {
    .mc-page[b-6lujzwyna2] { padding: 18px 16px 40px; }
    .mc-title[b-6lujzwyna2] { font-size: 22px; }
    .mc-class-selector--cards[b-6lujzwyna2] { grid-template-columns: 1fr; }
    .mc-quick-actions[b-6lujzwyna2] { grid-template-columns: 1fr; }
    .mc-options-grid[b-6lujzwyna2] { grid-template-columns: repeat(2, 1fr); }
    .mc-header[b-6lujzwyna2] { flex-wrap: wrap; }
    .mc-header-actions[b-6lujzwyna2] { width: 100%; flex-wrap: wrap; }
    .mc-header-actions .mice-btn[b-6lujzwyna2] { flex: 1; justify-content: center; }
    /* Importar (solo plan individual) toma su propio renglon en celular; Nuevo grupo / Nueva clase siguen lado a lado. */
    .mc-header-actions .mc-btn-importar[b-6lujzwyna2] { flex-basis: 100%; }
}

/* FILTROS-ESCUELA-TURNO: escuela y turno efectivos + selector condicional de turno. */
.mc-contexto[b-6lujzwyna2] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 16px;
    margin: 0 0 14px;
}

.mc-ctx-escuela[b-6lujzwyna2],
.mc-ctx-turno[b-6lujzwyna2] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 600;
    color: var(--text-secondary);
    overflow-wrap: break-word;
}

.mc-ctx-escuela .msr[b-6lujzwyna2],
.mc-ctx-turno .msr[b-6lujzwyna2] {
    font-size: 18px;
    color: var(--brand-teal-deep);
}

.mc-turnos[b-6lujzwyna2] {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 6px;
}

.mc-turno[b-6lujzwyna2] {
    min-height: 36px;
    padding: 6px 14px;
    border: 1px solid var(--border-med);
    border-radius: 999px;
    background: var(--bg-panel);
    color: var(--text-primary);
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

.mc-turno.on[b-6lujzwyna2] {
    border-color: var(--brand-teal-dark);
    background: var(--bg-light-teal);
}

.mc-turno:focus-visible[b-6lujzwyna2] {
    outline: 2px solid var(--brand-teal);
    outline-offset: 2px;
}

.mc-ctx-nota[b-6lujzwyna2] {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    margin: -6px 0 14px;
    font-size: 12.5px;
    color: var(--text-muted);
}

.mc-ctx-nota .msr[b-6lujzwyna2] {
    font-size: 16px;
}

/* Mis clases v6: invitacion discreta a cargar el horario (plan individual sin horario). */
.mc-invita-horario[b-6lujzwyna2] { margin: -6px 0 16px; font-size: 13px; color: var(--text-secondary); }
.mc-invita-horario a[b-6lujzwyna2] { color: var(--brand-teal-deep, #2C6D6F); font-weight: 700; }

/* ── Mis clases v7 (aprobada 2026-10-11) ─────────────────────────────── */
/* Encabezado: escuela y turnos a la derecha; botones chicos (34 px) debajo solo en cuenta individual. */
.mc-header-right[b-6lujzwyna2] { display: grid; justify-items: end; gap: 8px; flex-shrink: 0; min-width: 0; }
.mc-header-right .mc-contexto[b-6lujzwyna2] { margin: 0; justify-content: flex-end; }
.mc-header-right .mc-header-actions .mice-btn[b-6lujzwyna2] { min-height: 34px; padding: 4px 12px; font-size: 12.5px; }

/* 12 opciones en 3 renglones de 4; los 3 primeros resaltados (rotan con el uso). */
.mc-ophead[b-6lujzwyna2] { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 22px 0 12px; }
.mc-ophead .mc-section-label[b-6lujzwyna2] { margin: 0; }
.mc-configurar[b-6lujzwyna2] { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 4px; border: 0; background: transparent; color: var(--brand-teal-deep); font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }
.mc-configurar .msr[b-6lujzwyna2] { font-size: 18px !important; }
.mc-configurar:focus-visible[b-6lujzwyna2] { outline: 3px solid var(--brand-teal-deep); outline-offset: 2px; }
.mc-options-grid[b-6lujzwyna2] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.mc-option[b-6lujzwyna2] { position: relative; min-height: 96px; }
.mc-option.top[b-6lujzwyna2] { background: var(--bg-light-teal); border-color: transparent; }
.mc-option.top .mc-option-label[b-6lujzwyna2] { color: var(--brand-teal-deep); font-weight: 700; }
.mc-option.solo-web[b-6lujzwyna2] { border-style: dashed; }
.mc-option-ult[b-6lujzwyna2] { position: absolute; top: -8px; right: 8px; padding: 1px 7px; border-radius: 99px; background: var(--bg-light-teal); color: var(--brand-teal-deep); font-size: 10px; font-weight: 800; box-shadow: 0 0 0 2px var(--bg); }

@media (max-width: 720px) {
    .mc-header-right[b-6lujzwyna2] { width: 100%; justify-items: stretch; }
    .mc-header-right .mc-contexto[b-6lujzwyna2] { justify-content: flex-start; }
    .mc-options-grid[b-6lujzwyna2] { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
    .mc-option[b-6lujzwyna2] { min-height: 72px; padding: 8px 4px; align-items: center; text-align: center; gap: 4px; }
    .mc-option-icon[b-6lujzwyna2] { width: 30px; height: 30px; }
    .mc-option-label[b-6lujzwyna2] { font-size: 11px; }
    .mc-option-sub[b-6lujzwyna2] { display: none; }
}
/* /Pages/Perfil.razor.rz.scp.css */
.pf-page[b-ei1stnwqe5] {
    max-width: 1060px;
    margin: 0 auto;
    padding: 24px;
}

.pf-header[b-ei1stnwqe5] {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 20px;
}

.pf-header-icon[b-ei1stnwqe5] {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    border-radius: var(--radius-lg);
    color: var(--text-sidebar-active);
    background: linear-gradient(135deg, var(--brand-teal), var(--brand-teal-deep));
    font-size: 27px;
}

.pf-header h1[b-ei1stnwqe5],
.pf-identity-head h2[b-ei1stnwqe5],
.pf-security-head h2[b-ei1stnwqe5],
.pf-empty h2[b-ei1stnwqe5],
.pf-msg h3[b-ei1stnwqe5] {
    margin: 0;
    font-family: var(--font-serif);
    color: var(--text-primary);
}

.pf-header h1[b-ei1stnwqe5] {
    font-size: 26px;
    line-height: 1.12;
}

.pf-header p[b-ei1stnwqe5],
.pf-security-copy > p[b-ei1stnwqe5],
.pf-empty p[b-ei1stnwqe5],
.pf-msg p[b-ei1stnwqe5] {
    margin: 4px 0 0;
    color: var(--text-secondary);
    font-size: 13px;
    line-height: 1.55;
}

.pf-grid[b-ei1stnwqe5] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
    gap: 18px;
    align-items: start;
}

.pf-column[b-ei1stnwqe5] {
    min-width: 0;
}

.pf-column[b-ei1stnwqe5]  .pf-card {
    min-height: 100%;
}

.pf-identity-head[b-ei1stnwqe5],
.pf-security-head[b-ei1stnwqe5],
.pf-security-titleline[b-ei1stnwqe5] {
    display: flex;
    align-items: center;
}

.pf-identity-head[b-ei1stnwqe5] {
    gap: 14px;
}

.pf-avatar[b-ei1stnwqe5] {
    display: grid;
    place-items: center;
    width: 56px;
    height: 56px;
    flex: 0 0 56px;
    border-radius: 14px;
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
    font-family: var(--font-serif);
    font-size: 19px;
    font-weight: 700;
}

.pf-identity-head h2[b-ei1stnwqe5] {
    font-size: 18px;
}

.pf-identity-head p[b-ei1stnwqe5] {
    margin: 3px 0 0;
    color: var(--text-secondary);
    font-size: 12.5px;
}

.pf-data[b-ei1stnwqe5] {
    margin: 22px 0 0;
}

.pf-data > div[b-ei1stnwqe5] {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    gap: 12px;
    padding: 11px 0;
    border-bottom: 1px solid var(--border-soft);
}

.pf-data dt[b-ei1stnwqe5] {
    color: var(--text-secondary);
    font-size: 12.5px;
}

.pf-data dd[b-ei1stnwqe5] {
    margin: 0;
    overflow-wrap: anywhere;
    color: var(--text-primary);
    font-size: 13px;
    font-weight: 600;
}

.pf-data .pf-username[b-ei1stnwqe5] {
    font-family: var(--font-mono);
    font-size: 12.5px;
}

.pf-admin-note[b-ei1stnwqe5] {
    margin: 18px 0 0;
    padding: 12px 14px;
    border-radius: var(--radius-md);
    background: var(--bg-cream);
    color: var(--text-secondary);
    font-size: 12.5px;
    line-height: 1.55;
}

.pf-security-head[b-ei1stnwqe5] {
    align-items: flex-start;
    gap: 12px;
}

.pf-lock[b-ei1stnwqe5],
.pf-empty-icon[b-ei1stnwqe5] {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    border-radius: var(--radius-md);
    color: var(--brand-teal-deep);
    background: var(--bg-light-teal);
}

.pf-security-copy[b-ei1stnwqe5] {
    min-width: 0;
    flex: 1;
}

.pf-security-titleline[b-ei1stnwqe5] {
    justify-content: space-between;
    gap: 10px;
}

.pf-security-head h2[b-ei1stnwqe5] {
    font-size: 16px;
}

.pf-security-copy > p[b-ei1stnwqe5] {
    font-size: 13px;
}

.pf-security[b-ei1stnwqe5]  .pf-open {
    margin-top: 18px;
}

.pf-form[b-ei1stnwqe5] {
    display: grid;
    gap: 17px;
    margin-top: 22px;
    padding-top: 20px;
    border-top: 1px solid var(--border-soft);
}

.pf-field label[b-ei1stnwqe5] {
    display: inline-block;
    margin-bottom: 7px;
    color: var(--text-primary);
    font-size: 12.5px;
    font-weight: 650;
}

.pf-input-wrap[b-ei1stnwqe5] {
    position: relative;
}

.pf-input[b-ei1stnwqe5] {
    width: 100%;
    min-height: 44px;
    box-sizing: border-box;
    padding: 11px 44px 11px 13px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    outline: none;
    background: var(--bg-cream);
    color: var(--text-primary);
    font: inherit;
    transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

.pf-input:focus[b-ei1stnwqe5] {
    border-color: var(--brand-teal);
    background: var(--bg-panel);
    box-shadow: 0 0 0 3px rgba(109, 199, 208, .25);
}

.pf-input:disabled[b-ei1stnwqe5] {
    cursor: wait;
    opacity: .7;
}

.pf-input-wrap--error .pf-input[b-ei1stnwqe5] {
    border-color: var(--danger);
}

.pf-eye[b-ei1stnwqe5] {
    position: absolute;
    top: 50%;
    right: 6px;
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 0;
    border-radius: var(--radius-sm);
    transform: translateY(-50%);
    background: transparent;
    color: var(--text-secondary);
    cursor: pointer;
}

.pf-eye:hover[b-ei1stnwqe5],
.pf-eye:focus-visible[b-ei1stnwqe5] {
    background: var(--bg-light-teal);
    color: var(--brand-teal-deep);
    outline: none;
}

.pf-requirements[b-ei1stnwqe5] {
    display: grid;
    gap: 6px;
    margin: 10px 0 0;
    padding: 0;
    list-style: none;
}

.pf-form[b-ei1stnwqe5]  .pf-requirement {
    display: flex;
    align-items: center;
    gap: 7px;
    color: var(--text-secondary);
    font-size: 12.5px;
}

.pf-form[b-ei1stnwqe5]  .pf-requirement .msr {
    font-size: 17px;
}

.pf-form[b-ei1stnwqe5]  .pf-requirement.is-valid {
    color: var(--success-ink);
    font-weight: 600;
}

.pf-fielderr[b-ei1stnwqe5] {
    margin: 6px 0 0;
    color: var(--danger);
    font-size: 12px;
    line-height: 1.45;
}

.pf-actions[b-ei1stnwqe5] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
}

.pf-disabled-reason[b-ei1stnwqe5] {
    flex-basis: 100%;
    margin: 0;
    color: var(--text-secondary);
    font-size: 12px;
    text-align: right;
}

.pf-msg[b-ei1stnwqe5] {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr);
    gap: 10px;
    margin-top: 18px;
    padding: 13px 14px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
}

.pf-msg > .msr[b-ei1stnwqe5] {
    font-size: 21px;
}

.pf-msg h3[b-ei1stnwqe5] {
    font-size: 14px;
}

.pf-msg--error[b-ei1stnwqe5] {
    border-color: var(--danger);
    background: rgba(163, 45, 45, .08);
}

.pf-msg--error > .msr[b-ei1stnwqe5] {
    color: var(--danger);
}

.pf-msg--success[b-ei1stnwqe5] {
    border-color: var(--success-ink);
    background: rgba(29, 158, 117, .08);
}

.pf-msg--success > .msr[b-ei1stnwqe5] {
    color: var(--success-ink);
}

.pf-msg[b-ei1stnwqe5]  .pf-retry {
    margin-top: 10px;
}

.pf-empty[b-ei1stnwqe5] {
    display: grid;
    justify-items: start;
    gap: 5px;
}

.pf-empty h2[b-ei1stnwqe5] {
    margin-top: 8px;
    font-size: 16px;
}

.pf-empty[b-ei1stnwqe5]  .pf-identity-retry {
    margin-top: 10px;
}

.pf-skeleton[b-ei1stnwqe5] {
    display: block;
    height: 13px;
    border-radius: var(--radius-sm);
    background: linear-gradient(90deg, var(--bg-cream), var(--border-soft), var(--bg-cream));
    background-size: 200% 100%;
    animation: pf-shimmer-b-ei1stnwqe5 1.2s linear infinite;
}

.pf-skeleton-avatar[b-ei1stnwqe5] {
    width: 56px;
    height: 56px;
    border-radius: 14px;
}

.pf-skeleton-copy[b-ei1stnwqe5] {
    display: grid;
    flex: 1;
    gap: 9px;
}

.pf-skeleton-name[b-ei1stnwqe5] {
    width: 68%;
    height: 17px;
}

.pf-skeleton-role[b-ei1stnwqe5] {
    width: 46%;
}

.pf-skeleton-list[b-ei1stnwqe5] {
    display: grid;
    gap: 18px;
    margin-top: 28px;
}

.pf-skeleton-list .pf-skeleton:nth-child(2)[b-ei1stnwqe5] {
    width: 82%;
}

.pf-skeleton-list .pf-skeleton:nth-child(3)[b-ei1stnwqe5] {
    width: 91%;
}

@keyframes pf-shimmer-b-ei1stnwqe5 {
    to { background-position: -200% 0; }
}

@media (max-width: 900px) {
    .pf-grid[b-ei1stnwqe5] {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 640px) {
    .pf-page[b-ei1stnwqe5] {
        padding: 18px 14px;
    }

    .pf-header-icon[b-ei1stnwqe5] {
        width: 40px;
        height: 40px;
        flex-basis: 40px;
        font-size: 23px;
    }

    .pf-header h1[b-ei1stnwqe5] {
        font-size: 22px;
    }

    .pf-data > div[b-ei1stnwqe5] {
        grid-template-columns: minmax(0, 1fr);
        gap: 4px;
    }

    .pf-actions[b-ei1stnwqe5] {
        flex-direction: column-reverse;
        align-items: stretch;
    }

    .pf-actions[b-ei1stnwqe5]  .ui-btn {
        width: 100%;
    }

    .pf-disabled-reason[b-ei1stnwqe5] {
        order: 1;
        text-align: left;
    }
}

@media (pointer: coarse) {
    .pf-input[b-ei1stnwqe5] {
        min-height: 46px;
    }

    .pf-eye[b-ei1stnwqe5] {
        right: 1px;
        width: 44px;
        height: 44px;
    }

    .pf-page[b-ei1stnwqe5]  .ui-btn {
        min-height: 44px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .pf-input[b-ei1stnwqe5] {
        transition: none;
    }

    .pf-skeleton[b-ei1stnwqe5] {
        animation: none;
    }
}
/* /Pages/PizarronEditor.razor.rz.scp.css */
/* PizarronEditor · Scoped CSS */

/* Loading */
.ed-loading[b-la6fimgfen] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100vh;
    gap: 12px;
    color: var(--carbon-5);
    font-family: 'Figtree', sans-serif;
    font-size: 14px;
    text-align: center;
}

/* Editor shell */
.editor-shell[b-la6fimgfen] {
    height: 100vh;
    position: relative;
    background: var(--cream);
    overflow: hidden;
}

/* Canvas wrap: padding cremita alrededor */
.canvas-wrap[b-la6fimgfen] {
    position: absolute;
    inset: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Canvas: lienzo blanco con esquinas redondeadas */
.canvas[b-la6fimgfen] {
    width: 100%;
    height: 100%;
    background: #FFFFFF;
    border-radius: 12px;
    border: 1px solid rgba(20, 22, 25, 0.04);
    position: relative;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(20, 22, 25, 0.04),
                0 4px 12px rgba(20, 22, 25, 0.06);
}

.canvas-bg[b-la6fimgfen] {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 0;
    animation: canvas-bg-fade-b-la6fimgfen 0.4s ease;
}

.canvas.with-bg[b-la6fimgfen] {
    background: transparent;
}

@keyframes canvas-bg-fade-b-la6fimgfen {
    from {
        opacity: 0;
        transform: scale(1.02);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

/* === CLUSTER TOP-LEFT: Home + Group chip === */
.cluster-tl[b-la6fimgfen] {
    position: absolute;
    top: 26px;
    left: 26px;
    display: flex;
    align-items: center;
    gap: 8px;
    z-index: 10;
    transition: opacity 0.25s ease, transform 0.25s ease;
}
.cluster-tl.hidden[b-la6fimgfen] {
    opacity: 0;
    pointer-events: none;
    transform: translateY(-6px);
}

.home-btn[b-la6fimgfen] {
    width: 44px;
    height: 44px;
    border-radius: 11px;
    background: var(--carbon-2);
    border: 1px solid rgba(255, 255, 255, 0.06);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: var(--brand-teal);
    flex-shrink: 0;
    padding: 0;
    transition: all 0.15s ease;
    box-shadow: 0 4px 8px rgba(20, 22, 25, 0.08),
                0 16px 32px rgba(20, 22, 25, 0.10);
}
.home-btn:hover[b-la6fimgfen] {
    background: var(--carbon-1);
    color: #FFFFFF;
    transform: translateY(-1px);
}

.group-chip[b-la6fimgfen] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 13px 9px 12px;
    border-radius: 999px;
    font-family: 'Figtree', sans-serif;
    font-size: 13px;
    font-weight: 500;
    border: 1px solid rgba(20, 22, 25, 0.06);
    cursor: pointer;
    flex-shrink: 0;
    transition: all 0.15s ease;
    background: #FFFFFF;
    color: #0C447C;
    box-shadow: 0 4px 8px rgba(20, 22, 25, 0.08),
                0 16px 32px rgba(20, 22, 25, 0.10);
    height: 44px;
}
.group-chip:hover[b-la6fimgfen] {
    transform: translateY(-1px);
}
.chip-dot[b-la6fimgfen] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #378ADD;
}

/* === CLUSTER TOP-RIGHT: Fullscreen + Menu === */
.cluster-tr[b-la6fimgfen] {
    position: absolute;
    top: 26px;
    right: 26px;
    display: flex;
    align-items: center;
    gap: 6px;
    z-index: 10;
    transition: opacity 0.25s ease, transform 0.25s ease;
}
.cluster-tr.hidden[b-la6fimgfen] {
    opacity: 0;
    pointer-events: none;
    transform: translateY(-6px);
}

.float-icon-btn[b-la6fimgfen] {
    width: 44px;
    height: 44px;
    border-radius: 11px;
    background: #FFFFFF;
    border: 1px solid rgba(20, 22, 25, 0.06);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: var(--carbon-3);
    padding: 0;
    transition: all 0.15s ease;
    box-shadow: 0 4px 8px rgba(20, 22, 25, 0.08),
                0 16px 32px rgba(20, 22, 25, 0.10);
}
.float-icon-btn:hover[b-la6fimgfen] {
    background: var(--cream);
    color: var(--carbon-1);
    transform: translateY(-1px);
}

/* === WIDGET BAR === */
.widget-bar[b-la6fimgfen] {
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    background: #FFFFFF;
    border: 1px solid rgba(20, 22, 25, 0.06);
    border-radius: 14px;
    padding: 8px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 4px 2px;
    align-items: center;
    /* width:max-content = ancho natural de UNA fila (centrada por translateX). Sin esto,
       al estar left:50% sin ancho, el shrink-to-fit se topa a la mitad del viewport y la
       barra envuelve de mas en desktop. max-width la recorta en movil -> ahi si envuelve. */
    width: max-content;
    max-width: 96vw;
    box-shadow: 0 4px 8px rgba(20, 22, 25, 0.08),
                0 16px 32px rgba(20, 22, 25, 0.10);
    z-index: 9;
    transition: opacity 0.25s ease, transform 0.25s ease;
}
.widget-bar.hidden[b-la6fimgfen] {
    opacity: 0;
    pointer-events: none;
    transform: translateX(-50%) translateY(8px);
}

.w-btn[b-la6fimgfen] {
    width: 56px;
    height: 60px;
    background: transparent;
    border: none;
    border-radius: 9px;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    color: var(--carbon-4);
    font-family: 'Figtree', sans-serif;
    font-size: 10.5px;
    font-weight: 500;
    padding: 0;
    position: relative;
    transition: all 0.12s ease;
}
.w-btn:hover[b-la6fimgfen] {
    background: var(--cream);
    color: var(--carbon-1);
}
.w-btn:focus-visible[b-la6fimgfen] {
    outline: 2px solid var(--brand-teal-dark);
    outline-offset: 2px;
}
.w-btn[data-active="true"][b-la6fimgfen] {
    background: rgba(109, 199, 208, 0.18);
    color: var(--brand-teal-dark);
}
.w-btn.disabled[b-la6fimgfen] {
    opacity: 0.4;
    cursor: not-allowed;
}
.w-btn.disabled:hover[b-la6fimgfen] {
    background: transparent;
    color: var(--carbon-4);
}
.w-icon[b-la6fimgfen] {
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.w-divider[b-la6fimgfen] {
    width: 1px;
    height: 36px;
    background: var(--cream-deep);
    margin: 0 5px;
}

/* Tooltip for w-btn */
.w-btn[data-tt]:hover[b-la6fimgfen]::before {
    content: attr(data-tt);
    position: absolute;
    bottom: calc(100% + 10px);
    left: 50%;
    transform: translateX(-50%);
    background: var(--carbon-1);
    color: #FFFFFF;
    padding: 5px 10px;
    border-radius: 5px;
    font-size: 11.5px;
    white-space: nowrap;
    pointer-events: none;
    z-index: 20;
    font-weight: 500;
}
.w-btn[data-tt]:hover[b-la6fimgfen]::after {
    content: "";
    position: absolute;
    bottom: calc(100% + 5px);
    left: 50%;
    transform: translateX(-50%);
    border: 5px solid transparent;
    border-top-color: var(--carbon-1);
    pointer-events: none;
    z-index: 20;
}

/* === PANEL "MAS" (widgets secundarios, popover anclado a la barra) === */
.mas-panel[b-la6fimgfen] {
    position: absolute;
    bottom: calc(100% + 12px);
    right: 8px;
    background: #FFFFFF;
    border: 1px solid var(--cream-deep);
    border-radius: 12px;
    padding: 8px;
    /* 8 items -> 4x2 en desktop (respira mejor que 3x3 con hueco);
       en movil (<=720px) cae a 3 columnas, ver media query. */
    display: grid;
    grid-template-columns: repeat(4, minmax(84px, 1fr));
    gap: 4px;
    width: 408px;
    max-width: calc(94vw - 16px);
    box-shadow: 0 4px 8px rgba(20, 22, 25, 0.08),
                0 16px 32px rgba(20, 22, 25, 0.10);
    z-index: 30;
    animation: masPanelIn-b-la6fimgfen 0.18s ease;
}
@keyframes masPanelIn-b-la6fimgfen {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}
.mas-item[b-la6fimgfen] {
    height: 62px;
    background: transparent;
    border: none;
    border-radius: 9px;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    color: var(--carbon-4);
    font-family: 'Figtree', sans-serif;
    font-size: 10.5px;
    font-weight: 500;
    padding: 0;
    transition: background 0.12s ease, color 0.12s ease;
}
.mas-item:hover[b-la6fimgfen] {
    background: var(--cream);
    color: var(--carbon-1);
}
.mas-item:focus-visible[b-la6fimgfen] {
    outline: 2px solid var(--brand-teal-dark);
    outline-offset: 2px;
}

.kbd-hint[b-la6fimgfen] {
    display: inline-block;
    background: rgba(255, 255, 255, 0.18);
    border: 1px solid rgba(255, 255, 255, 0.24);
    color: #FFFFFF;
    font-family: 'Figtree', sans-serif;
    font-size: 10px;
    font-weight: 600;
    padding: 1px 5px;
    border-radius: 3px;
    margin-left: 6px;
    vertical-align: 1px;
}

/* === MINI BAR === */
.mini-bar[b-la6fimgfen] {
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    background: #FFFFFF;
    border: 1px solid rgba(20, 22, 25, 0.06);
    border-radius: 14px;
    padding: 6px;
    display: flex;
    gap: 2px;
    align-items: center;
    box-shadow: 0 4px 8px rgba(20, 22, 25, 0.08),
                0 16px 32px rgba(20, 22, 25, 0.10);
    z-index: 9;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease, transform 0.25s ease;
    transform: translateX(-50%) translateY(8px);
}
.mini-bar.visible[b-la6fimgfen] {
    opacity: 1;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
}
.mini-btn[b-la6fimgfen] {
    width: 40px;
    height: 40px;
    background: transparent;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--carbon-4);
    padding: 0;
    position: relative;
    transition: all 0.12s ease;
}
.mini-btn:hover[b-la6fimgfen] {
    background: var(--cream);
    color: var(--carbon-1);
}
.mini-btn[data-active="true"][b-la6fimgfen] {
    background: rgba(109, 199, 208, 0.18);
    color: var(--brand-teal-dark);
}
.mini-btn[data-tt]:hover[b-la6fimgfen]::before {
    content: attr(data-tt);
    position: absolute;
    bottom: calc(100% + 10px);
    left: 50%;
    transform: translateX(-50%);
    background: var(--carbon-1);
    color: #FFFFFF;
    padding: 5px 10px;
    border-radius: 5px;
    font-size: 11.5px;
    white-space: nowrap;
    pointer-events: none;
    z-index: 20;
    font-weight: 500;
}

/* === PAGES CONTROL === */
.pages-control[b-la6fimgfen] {
    position: absolute;
    bottom: 30px;
    right: 30px;
    background: #FFFFFF;
    border: 1px solid rgba(20, 22, 25, 0.06);
    border-radius: 11px;
    padding: 5px;
    display: flex;
    align-items: center;
    gap: 1px;
    box-shadow: 0 4px 8px rgba(20, 22, 25, 0.08),
                0 16px 32px rgba(20, 22, 25, 0.10);
    z-index: 8;
    transition: opacity 0.25s ease, transform 0.25s ease;
}
.pages-control.hidden[b-la6fimgfen] {
    opacity: 0;
    pointer-events: none;
    transform: translateY(8px);
}
.page-btn[b-la6fimgfen] {
    width: 32px;
    height: 32px;
    background: transparent;
    border: none;
    border-radius: 7px;
    cursor: pointer;
    color: var(--carbon-4);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    transition: all 0.12s ease;
}
.page-btn:hover[b-la6fimgfen] {
    background: var(--cream);
    color: var(--carbon-1);
}
.page-btn:disabled[b-la6fimgfen] {
    opacity: 0.3;
    cursor: not-allowed;
}
.page-btn:disabled:hover[b-la6fimgfen] {
    background: transparent;
    color: var(--carbon-4);
}
.page-num[b-la6fimgfen] {
    font-family: 'Figtree', sans-serif;
    font-size: 12px;
    font-weight: 500;
    padding: 0 8px;
    color: var(--carbon-3);
    min-width: 38px;
    text-align: center;
}
.page-add[b-la6fimgfen] {
    color: var(--pz-green);
}
.page-add:hover[b-la6fimgfen] {
    background: rgba(29, 158, 117, 0.14);
    color: var(--pz-green-deep);
}

/* === GROUP DROPDOWN === */
.dropdown[b-la6fimgfen] {
    position: absolute;
    background: #FFFFFF;
    border: 1px solid var(--cream-deep);
    border-radius: 11px;
    padding: 5px;
    z-index: 30;
    min-width: 240px;
    box-shadow: 0 4px 8px rgba(20, 22, 25, 0.08),
                0 16px 32px rgba(20, 22, 25, 0.10);
}
.dropdown.hidden[b-la6fimgfen] {
    display: none;
}
.group-dd[b-la6fimgfen] {
    top: 80px;
    left: 78px;
}
.dd-item[b-la6fimgfen] {
    padding: 9px 11px;
    font-family: 'Figtree', sans-serif;
    font-size: 13px;
    color: var(--carbon-3);
    cursor: pointer;
    border-radius: 7px;
    display: flex;
    align-items: center;
    gap: 9px;
    width: 100%;
    border: none;
    background: transparent;
    text-align: left;
    transition: background 0.1s ease;
}
.dd-item:hover[b-la6fimgfen] {
    background: var(--cream);
}
.dd-item-dot[b-la6fimgfen] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}
.dd-item-name[b-la6fimgfen] {
    flex: 1;
    display: flex;
    flex-direction: column;
    line-height: 1.2;
    min-width: 0;
}
.dd-item-name span[b-la6fimgfen] {
    font-weight: 500;
    color: var(--carbon-3);
}
.dd-item-name small[b-la6fimgfen] {
    color: var(--carbon-5);
    font-size: 11.5px;
    font-weight: 400;
    margin-top: 1px;
}
.dd-item-check[b-la6fimgfen] {
    color: var(--pz-green);
    flex-shrink: 0;
    display: flex;
}
.dd-divider[b-la6fimgfen] {
    height: 1px;
    background: var(--cream-deep);
    margin: 5px 4px;
}

/* === SIDE PANEL === */
.side-panel[b-la6fimgfen] {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 340px;
    background: #FFFFFF;
    border-left: 1px solid var(--cream-deep);
    z-index: 25;
    transform: translateX(100%);
    transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    box-shadow: -4px 0 24px rgba(20, 22, 25, 0.08);
}
.side-panel.open[b-la6fimgfen] {
    transform: translateX(0);
}

.sp-header[b-la6fimgfen] {
    padding: 18px 20px 14px;
    border-bottom: 1px solid var(--cream-deep);
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-shrink: 0;
}
.sp-header-title[b-la6fimgfen] {
    font-family: 'Fraunces', serif;
    font-size: 16px;
    font-weight: 500;
    color: var(--carbon-1);
    margin: 0;
    letter-spacing: -0.01em;
}
.sp-close[b-la6fimgfen] {
    width: 32px;
    height: 32px;
    background: transparent;
    border: none;
    border-radius: 7px;
    cursor: pointer;
    color: var(--carbon-4);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    transition: all 0.12s ease;
}
.sp-close:hover[b-la6fimgfen] {
    background: var(--cream);
    color: var(--carbon-1);
}

.sp-body[b-la6fimgfen] {
    flex: 1;
    overflow-y: auto;
    padding: 18px 20px;
}

.sp-section[b-la6fimgfen] {
    margin-bottom: 22px;
}
.sp-section:last-child[b-la6fimgfen] {
    margin-bottom: 0;
}

.sp-label[b-la6fimgfen] {
    font-family: 'Figtree', sans-serif;
    font-size: 11px;
    font-weight: 600;
    color: var(--carbon-5);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin: 0 0 9px;
}

.sp-title-input[b-la6fimgfen] {
    width: 100%;
    background: var(--cream);
    border: 1px solid transparent;
    font-family: 'Fraunces', serif;
    font-size: 17px;
    font-weight: 500;
    color: var(--carbon-1);
    padding: 10px 12px;
    border-radius: 8px;
    letter-spacing: -0.01em;
    transition: all 0.12s ease;
}
.sp-title-input:hover[b-la6fimgfen] {
    background: var(--cream-deep);
}
.sp-title-input:focus[b-la6fimgfen] {
    outline: none;
    background: #FFFFFF;
    border-color: var(--pz-green);
    box-shadow: 0 0 0 3px rgba(29, 158, 117, 0.12);
}
.sp-title-input[b-la6fimgfen]::placeholder {
    color: var(--carbon-6);
    font-style: italic;
    font-weight: 400;
}

.sp-saved[b-la6fimgfen] {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 11.5px;
    color: var(--carbon-5);
    margin-top: 7px;
}
.sp-saved .check[b-la6fimgfen] {
    color: var(--pz-green);
    display: flex;
}

.sp-context-row[b-la6fimgfen] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 12px;
    background: var(--cream);
    border-radius: 8px;
    margin-bottom: 6px;
    font-size: 13px;
}
.sp-context-row:last-child[b-la6fimgfen] {
    margin-bottom: 0;
}
.sp-context-row .label[b-la6fimgfen] {
    color: var(--carbon-5);
    font-size: 12.5px;
}
.sp-context-row .value[b-la6fimgfen] {
    color: var(--carbon-1);
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 6px;
}
.sp-context-row .ctx-dot[b-la6fimgfen] {
    width: 7px;
    height: 7px;
    border-radius: 50%;
}
.sp-context-row.clickable[b-la6fimgfen] {
    cursor: pointer;
    transition: background 0.12s ease;
    border: none;
    width: 100%;
    font-family: 'Figtree', sans-serif;
    text-align: left;
}
.sp-context-row.clickable:hover[b-la6fimgfen] {
    background: var(--cream-deep);
}

.sp-action[b-la6fimgfen] {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 10px 12px;
    background: transparent;
    border: none;
    border-radius: 8px;
    font-family: 'Figtree', sans-serif;
    font-size: 13px;
    color: var(--carbon-3);
    cursor: pointer;
    text-align: left;
    transition: background 0.12s ease;
    font-weight: 400;
}
.sp-action:hover[b-la6fimgfen] {
    background: var(--cream);
}
.sp-action .icon[b-la6fimgfen] {
    width: 18px;
    height: 18px;
    color: var(--carbon-4);
    display: flex;
    flex-shrink: 0;
}
.sp-action.danger[b-la6fimgfen] {
    color: var(--danger);
}
.sp-action.danger .icon[b-la6fimgfen] {
    color: var(--danger);
}
.sp-action.danger:hover[b-la6fimgfen] {
    background: rgba(163, 45, 45, 0.06);
}

.mc-lista[b-la6fimgfen] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 2px 0 6px 8px;
    margin: -2px 0 4px;
    max-height: 200px;
    overflow-y: auto;
}
.mc-item[b-la6fimgfen] {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 8px 10px;
    border: none;
    background: transparent;
    border-radius: 7px;
    font-family: 'Figtree', sans-serif;
    font-size: 12.5px;
    color: var(--carbon-3);
    cursor: pointer;
    text-align: left;
    transition: background 0.1s ease;
}
.mc-item:hover[b-la6fimgfen] {
    background: var(--cream);
}
.mc-item.sel[b-la6fimgfen] {
    color: var(--pz-green);
    font-weight: 600;
}
.mc-item svg:last-child[b-la6fimgfen] {
    margin-left: auto;
    flex-shrink: 0;
}

.sp-divider[b-la6fimgfen] {
    height: 1px;
    background: var(--cream-deep);
    margin: 14px -8px;
}

.kbd-hint-dark[b-la6fimgfen] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--cream-deep);
    border: 1px solid var(--carbon-7);
    color: var(--carbon-4);
    font-family: 'Figtree', sans-serif;
    font-size: 10px;
    font-weight: 600;
    padding: 1px 5px;
    border-radius: 3px;
    min-width: 18px;
    margin-left: auto;
}

/* === TOAST === */
.toast[b-la6fimgfen] {
    position: fixed;
    bottom: 80px;
    left: 50%;
    transform: translateX(-50%) translateY(20px);
    background: var(--carbon-1);
    color: #FFFFFF;
    padding: 10px 16px;
    border-radius: 8px;
    font-family: 'Figtree', sans-serif;
    font-size: 13px;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease, transform 0.2s ease;
    z-index: 100;
    font-weight: 500;
    white-space: nowrap;
    box-shadow: 0 4px 8px rgba(20, 22, 25, 0.08),
                0 16px 32px rgba(20, 22, 25, 0.10);
}
.toast.show[b-la6fimgfen] {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

/* === KEYBOARD ONBOARDING HINT === */
.kbd-onboard[b-la6fimgfen] {
    position: absolute;
    bottom: 100px;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(20, 22, 25, 0.92);
    color: #FFFFFF;
    padding: 8px 14px;
    border-radius: 999px;
    font-family: 'Figtree', sans-serif;
    font-size: 12px;
    display: flex;
    align-items: center;
    gap: 8px;
    z-index: 8;
    pointer-events: none;
}
.kbd-onboard.show[b-la6fimgfen] {
    opacity: 1;
}

/* === WIDGETS === */
.widget[b-la6fimgfen] {
    position: absolute;
    cursor: default;
    user-select: none;
    transition: box-shadow 0.12s ease;
}

.widget .w-content[b-la6fimgfen] {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}

/* === Widget Texto: contenedor === */
.widget .w-textbox[b-la6fimgfen] {
    display: block;            /* override .w-content flex */
    align-items: initial;
    justify-content: initial;
    background: white;
    border-radius: 12px;
    padding: 16px 20px;
    box-shadow: 0 2px 8px rgba(20,22,25,0.08),
                0 8px 24px rgba(20,22,25,0.06);
    color: var(--carbon-1);
    font-family: 'Figtree', sans-serif;
    overflow: auto;
    text-align: left;
    box-sizing: border-box;
}

/* Título h4 */
.widget .w-textbox h4[b-la6fimgfen] {
    margin: 0 0 8px;
    font-size: 19px;
    font-weight: 600;
    letter-spacing: -0.005em;
    color: var(--carbon-1);
}

/* Párrafos p */
.widget .w-textbox p[b-la6fimgfen] {
    margin: 4px 0;
    font-size: 16px;
    line-height: 1.55;
    font-weight: 500;
    color: var(--carbon-1);
}

/* Sub-encabezados label-row */
.widget .w-textbox .label-row[b-la6fimgfen] {
    margin-top: 14px;
    font-size: 17px;
    font-weight: 600;
    color: var(--carbon-2);
}

.widget .w-textbox .label-row:first-child[b-la6fimgfen] {
    margin-top: 0;
}

.widget .w-textbox h4:first-child[b-la6fimgfen] {
    margin-top: 0;
}

.widget .w-textbox p:first-child[b-la6fimgfen] {
    margin-top: 0;
}

/* === Modo edición === */
.widget.editing[b-la6fimgfen] {
    z-index: 9999 !important;
}

.widget.editing .w-textbox[b-la6fimgfen] {
    cursor: text;
    box-shadow: 0 0 0 2px var(--brand-teal-primary), 0 2px 12px rgba(110,198,200,0.25);
}

.widget.editing .w-textbox [contenteditable="true"][b-la6fimgfen] {
    outline: none;
    border-radius: 4px;
    transition: background 0.15s;
}

.widget.editing .w-textbox [contenteditable="true"]:focus[b-la6fimgfen] {
    background: rgba(110, 198, 200, 0.06);
}

.widget.editing .w-textbox [contenteditable="true"]:empty[b-la6fimgfen]::before {
    content: "Escribe aquí...";
    color: #aaa;
    font-style: italic;
    pointer-events: none;
}

/* Bloque activo durante edicion (Sprint 12.5) */
[b-la6fimgfen] .widget.editing [data-bloque-activo="true"] {
    border-left: 2.5px solid #2D7FF9;
    padding-left: 8px;
    margin-left: -10.5px;
    transition: border-color 0.15s, padding-left 0.15s;
}

/* ===================================================================== */
/* Texto PREMIUM (editor unico) — escala con la caja (spec §5.2)         */
/* Reglas ADITIVAS sobre las clases nuevas .tx-box / .tx-root; NO afectan */
/* el render clasico .w-textbox mientras la integracion (render+toolbar)  */
/* no aterrice. El tamano BASE es funcion del ancho de la caja y los      */
/* tamanos del docente son multiplos (em) de esa base: al redimensionar   */
/* el widget todo crece/decrece proporcional. Piso 13px = nunca ilegible. */
/* ===================================================================== */
@supports (container-type: size) {
    .widget .tx-box[b-la6fimgfen]  { container-type: size; }
    .widget .tx-root[b-la6fimgfen] { --tx-base: max(13px, min(6cqw, 22cqh)); font-size: var(--tx-base); }
}
@supports not (container-type: size) {
    .widget .tx-root[b-la6fimgfen] { --tx-base: 16px; font-size: 16px; }   /* comportamiento de hoy */
}

.widget .tx-box[b-la6fimgfen] {
    display: block;
    padding: 0; /* anula el padding legacy de .w-textbox; solo la raiz lleva margen interno */
    background: white;
    border-radius: 12px;
    /* padding movido a .tx-root para que cqw/cqh resuelvan contra la caja completa */
    box-shadow: 0 2px 8px rgba(20,22,25,0.08),
                0 8px 24px rgba(20,22,25,0.06);
    color: var(--carbon-1);
    font-family: 'Figtree', sans-serif;
    overflow: hidden;
    text-align: left;
    box-sizing: border-box;
    height: 100%;
}

/* El font-size del docente viaja como em (multiplo de --tx-base) inline en spans;
   estas reglas fijan la proporcion por tipo de bloque. */
.widget .tx-root[b-la6fimgfen] { line-height: 1.15; padding: .375em .5em; } /* padding compacto ~8px; antes en .tx-box */
.widget .tx-root p[b-la6fimgfen]          { font-size: 1em;   line-height: 1.5;  margin: .25em 0; font-weight: 500; }
.widget .tx-root h4[b-la6fimgfen]         { font-size: 1.2em; line-height: 1.25; margin: 0 0 .5em;  font-weight: 600; }
.widget .tx-root .label-row[b-la6fimgfen] { font-size: 1.06em; line-height: 1.4; margin-top: .85em; font-weight: 600; color: var(--carbon-2); }
.widget .tx-root ul[b-la6fimgfen],
.widget .tx-root ol[b-la6fimgfen]         { padding-left: 1.4em; margin: .25em 0; }
.widget .tx-root h4:first-child[b-la6fimgfen],
.widget .tx-root p:first-child[b-la6fimgfen],
.widget .tx-root .label-row:first-child[b-la6fimgfen] { margin-top: 0; }
.widget .tx-root h4:last-child[b-la6fimgfen],
.widget .tx-root p:last-child[b-la6fimgfen],
.widget .tx-root .label-row:last-child[b-la6fimgfen]  { margin-bottom: 0; }

/* Auto-ajustar (§5.4): --tx-fit lo escribe el JS por biseccion; default 1 */
.widget .tx-root[b-la6fimgfen] { font-size: calc(var(--tx-base, 16px) * var(--tx-fit, 1)); }

.widget .tx-root[contenteditable="true"][b-la6fimgfen] { outline: none; }

/* El lienzo pone user-select:none en .widget/handles (evita seleccionar texto al
   arrastrar). En edicion hay que REVERTIRLO en el editor activo, o el docente no puede
   arrastrar el mouse para seleccionar varios renglones (Cesar: "no puedo seleccionar
   mas de un renglon"). Solo aplica al .tx-root editable, no al lienzo ni a otros widgets. */
.widget .tx-root[contenteditable="true"][b-la6fimgfen],
.widget .tx-root[contenteditable="true"] *[b-la6fimgfen] {
    -webkit-user-select: text;
    -moz-user-select: text;
    user-select: text;
    cursor: text;
}

/* Altura minima para que un widget VACIO sea clicable (double-clic para editar)
   aunque su unico <p> no tenga texto todavia. */
.widget .tx-root[b-la6fimgfen] { min-height: 0; }

/* Placeholder VISUAL "Doble clic para editar".
   Se dispara con data-vacio="true" (lo pone Blazor cuando ningun bloque tiene texto,
   y el motor JS lo mantiene al entrar/salir de edicion). NO usa :empty porque Blazor
   inyecta un marcador de comentario en el <p> y este jamas seria :empty.
   Solo en vista (contenteditable=false); NO se proyecta en presentacion. */
.widget .tx-root[data-vacio="true"][contenteditable="false"][b-la6fimgfen]::before {
    content: "Doble clic para editar";
    color: var(--text-muted, #999);
    font-style: italic;
    pointer-events: none;
}

/* Asa de rotacion ABAJO en widgets texto (§2.4): la toolbar de una fila va arriba */
.widget-tipo-texto .handle.rotate[b-la6fimgfen] {
    top: auto;
    bottom: -32px;
}

/* ===================================================================== */
/* Toolbar texto PREMIUM — UNA fila anclada arriba del widget (spec §4)   */
/* Vive como hija del canvas (hermana del .widget). 44px de alto.         */
/* ===================================================================== */
.tx-toolbar[b-la6fimgfen] {
    position: absolute;
    z-index: 1200;
    display: flex;
    align-items: center;
    gap: 2px;
    height: 44px;
    padding: 6px 8px;
    background: var(--bg-panel, #fff);
    border-radius: var(--radius-lg, 14px);
    box-shadow: var(--pz-shadow-float, 0 8px 24px rgba(20,22,25,0.18));
    box-sizing: border-box;
    animation: tx-toolbar-in-b-la6fimgfen 180ms var(--ease, ease);
}

@keyframes tx-toolbar-in-b-la6fimgfen {
    from { opacity: 0; transform: translateY(4px); }
    to   { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    .tx-toolbar[b-la6fimgfen] { animation: none; }
}

.tx-toolbar .tx-divider[b-la6fimgfen] {
    width: 1px;
    height: 20px;
    margin: 0 4px;
    background: var(--cream-deep, #E6E0D2);
    flex: 0 0 auto;
}

.tx-btn[b-la6fimgfen] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: none;
    background: transparent;
    border-radius: var(--radius-sm, 8px);
    color: var(--carbon-1, #141619);
    cursor: pointer;
    padding: 0;
    transition: background .15s ease, opacity .15s;
}
.tx-btn .material-symbols-rounded[b-la6fimgfen] { font-size: 20px; }
.tx-btn:hover[b-la6fimgfen] { background: var(--cream, #F4F0E6); }
.tx-btn:active[b-la6fimgfen] { background: var(--cream-deep, #E6E0D2); }
.tx-btn:focus-visible[b-la6fimgfen] { outline: 2px solid var(--brand-teal, #2C6D6F); outline-offset: 2px; }
.tx-btn:disabled[b-la6fimgfen] { opacity: .4; cursor: not-allowed; }
.tx-btn.tx-active[b-la6fimgfen] { background: rgba(45,127,249,.12); color: #2D7FF9; }
.tx-btn.tx-btn-danger:hover[b-la6fimgfen] { background: rgba(232,116,106,.14); color: var(--danger, #E8746A); }

@media (pointer: coarse) {
    .tx-btn[b-la6fimgfen] { width: 44px; height: 44px; }
}

.tx-familia[b-la6fimgfen] {
    width: auto;
    gap: 2px;
    padding: 0 6px;
    max-width: 148px;
}
.tx-familia-nombre[b-la6fimgfen] {
    font-size: 13px;
    font-weight: 600;
    max-width: 108px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.tx-familia .material-symbols-rounded[b-la6fimgfen] { font-size: 18px; }

.tx-tamano[b-la6fimgfen] {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 1px;
}
.tx-tamano-input[b-la6fimgfen] {
    width: 44px;
    height: 30px;
    border: 1px solid var(--cream-deep, #E6E0D2);
    border-radius: var(--radius-sm, 8px);
    font-family: 'Figtree', sans-serif;
    font-size: 13px;
    font-weight: 600;
    text-align: center;
    color: var(--carbon-1, #141619);
    background: #fff;
}
.tx-tamano-chevron[b-la6fimgfen] { width: 22px; padding: 0; }
.tx-tamano-chevron .material-symbols-rounded[b-la6fimgfen] { font-size: 18px; }

/* Popover de tamanos predeterminados (chevron del input) — estetica del popover de familia */
.tx-pop-tamano[b-la6fimgfen] {
    top: 40px;
    min-width: 88px;
    max-height: 280px;
    overflow-y: auto;
}
.tx-tam-row[b-la6fimgfen] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 32px;
    padding: 0 10px;
    border: none;
    background: transparent;
    border-radius: var(--radius-sm, 8px);
    font-family: 'Figtree', sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: var(--carbon-1, #141619);
    cursor: pointer;
    text-align: left;
}
.tx-tam-row:hover[b-la6fimgfen] { background: var(--cream, #F4F0E6); }
.tx-tam-actual[b-la6fimgfen] { background: var(--cream, #F4F0E6); }
.tx-tam-row .tx-check[b-la6fimgfen] { font-size: 18px; color: var(--pz-green, #3AA76D); }

.tx-color-chip[b-la6fimgfen] {
    display: inline-block;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 1.5px solid var(--cream-deep, #E6E0D2);
}
/* A3: barra de color estilo Word bajo el icono del boton de color/resaltado */
.tx-color-bar[b-la6fimgfen] {
    display: block;
    width: 18px;
    height: 4px;
    border-radius: 2px;
    margin-top: 1px;
}
/* A3: swatch con anillo activo */
.tx-swatch-activo[b-la6fimgfen] {
    outline: 2.5px solid var(--brand-teal, #2C6D6F);
    outline-offset: 2px;
}
/* A3: etiqueta de separacion de la fila neon */
.tx-pop-neon-label[b-la6fimgfen] {
    grid-column: 1 / -1;
    font-size: 10px;
    font-family: 'Figtree', sans-serif;
    color: var(--carbon-7, #8B8B8B);
    text-transform: uppercase;
    letter-spacing: .06em;
    padding: 4px 0 0;
}

/* Popovers de la toolbar (familia, color, resaltado, alineacion, lista, ajustes) */
.tx-popover[b-la6fimgfen] {
    position: absolute;
    top: 48px;
    left: 0;
    z-index: 1300;
    background: var(--bg-panel, #fff);
    border-radius: var(--radius-lg, 14px);
    box-shadow: var(--shadow-lg, 0 12px 32px rgba(20,22,25,0.22));
    padding: 8px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 160px;
}
.tx-pop-color[b-la6fimgfen], .tx-pop-resaltado[b-la6fimgfen] {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 6px;
    min-width: unset;
}
.tx-pop-alin[b-la6fimgfen], .tx-pop-lista[b-la6fimgfen] { flex-direction: row; min-width: unset; }

/* A1: cuando pizarronPopover.colocar toma el control, el popover pasa a position:fixed
   (escapa el overflow:hidden del .canvas que lo recortaba) y su top/left/max-height los
   fija el JS inline segun el viewport. El top:48px absoluto de arriba es solo el fallback
   pre-JS: aqui ya NO se fuerza una posicion fija sin alternativa. */
.tx-popover.tx-pop-colocado[b-la6fimgfen] {
    position: fixed;
    top: auto;
    left: auto;
    margin: 0;
}

.tx-fam-row[b-la6fimgfen] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 36px;
    padding: 0 10px;
    border: none;
    background: transparent;
    border-radius: var(--radius-sm, 8px);
    font-size: 15px;
    color: var(--carbon-1, #141619);
    cursor: pointer;
    text-align: left;
}
.tx-fam-row:hover[b-la6fimgfen] { background: var(--cream, #F4F0E6); }
.tx-fam-row .tx-check[b-la6fimgfen] { font-size: 18px; color: var(--pz-green, #3AA76D); }

.tx-swatch[b-la6fimgfen] {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 1.5px solid rgba(20,22,25,0.12);
    cursor: pointer;
    padding: 0;
}
.tx-swatch:focus-visible[b-la6fimgfen] { outline: 2px solid var(--brand-teal, #2C6D6F); outline-offset: 2px; }

.tx-hex-row[b-la6fimgfen] { grid-column: 1 / -1; display: flex; gap: 4px; margin-top: 6px; align-items: center; }
.tx-hex-input[b-la6fimgfen] {
    flex: 1;
    height: 30px;
    border: 1px solid var(--cream-deep, #E6E0D2);
    border-radius: var(--radius-sm, 8px);
    font-family: 'Figtree', sans-serif;
    font-size: 13px;
    padding: 0 8px;
}
.tx-hex-error[b-la6fimgfen] { grid-column: 1 / -1; color: var(--danger, #E8746A); font-size: 12px; margin-top: 4px; }

.tx-sin-resaltado[b-la6fimgfen] {
    grid-column: 1 / -1;
    margin-top: 6px;
    height: 30px;
    border: 1px solid var(--cream-deep, #E6E0D2);
    border-radius: var(--radius-sm, 8px);
    background: #fff;
    font-size: 13px;
    cursor: pointer;
}

.tx-ajuste-row[b-la6fimgfen] {
    height: 34px;
    padding: 0 10px;
    border: none;
    background: transparent;
    border-radius: var(--radius-sm, 8px);
    font-size: 14px;
    color: var(--carbon-1, #141619);
    text-align: left;
    cursor: pointer;
}
.tx-ajuste-row:hover[b-la6fimgfen] { background: var(--cream, #F4F0E6); }

.widget .w-imagen[b-la6fimgfen],
.widget .w-reloj[b-la6fimgfen],
.widget .w-timer[b-la6fimgfen] {
    background: rgba(20,22,25,0.04);
    border: 1.5px dashed rgba(20,22,25,0.2);
    border-radius: 8px;
    color: var(--carbon-5);
    font-size: 12px;
    font-style: italic;
}

/* Widget imagen con foto real: sin borde dashed ni fondo placeholder */
.widget .w-imagen-llena[b-la6fimgfen] {
    background: none;
    border: none;
    border-radius: 8px;
    overflow: hidden;
}

/* === Widget seleccionado === */
.widget.selected[b-la6fimgfen] {
    outline: 2px solid #2D7FF9;
    outline-offset: 2px;
    z-index: 1000 !important;
}

.widget.selected:not([data-bloqueado="true"])[b-la6fimgfen] {
    cursor: grab;
}

.widget.selected[data-bloqueado="true"][b-la6fimgfen] {
    cursor: not-allowed;
}

/* Durante drag activo */
.widget.dragging[b-la6fimgfen] {
    cursor: grabbing !important;
    transition: none !important;
    user-select: none;
    box-shadow: 0 8px 32px rgba(20, 22, 25, 0.18);
}

/* Durante resize activo */
.widget.resizing[b-la6fimgfen] {
    transition: none !important;
    user-select: none;
    box-shadow: 0 8px 32px rgba(20, 22, 25, 0.18);
}

/* Durante rotate activo */
.widget.rotating[b-la6fimgfen] {
    transition: none !important;
    user-select: none;
    box-shadow: 0 8px 32px rgba(20, 22, 25, 0.18);
}

/* Ocultar mini-bar durante drag/resize/rotate */
.canvas:has(.widget.dragging) .ctx-bar[b-la6fimgfen],
.canvas:has(.widget.resizing) .ctx-bar[b-la6fimgfen],
.canvas:has(.widget.rotating) .ctx-bar[b-la6fimgfen] {
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.1s ease;
}

.ctx-bar[b-la6fimgfen] {
    transition: opacity 0.15s ease;
}

/* === Handles de resize === */
.handle[b-la6fimgfen] {
    position: absolute;
    background: white;
    border: 2px solid #2D7FF9;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    z-index: 10;
    box-sizing: border-box;
}

.handle.tl[b-la6fimgfen] { top: -7px; left: -7px; cursor: nwse-resize; }
.handle.tr[b-la6fimgfen] { top: -7px; right: -7px; cursor: nesw-resize; }
.handle.bl[b-la6fimgfen] { bottom: -7px; left: -7px; cursor: nesw-resize; }
.handle.br[b-la6fimgfen] { bottom: -7px; right: -7px; cursor: nwse-resize; }

.handle.t[b-la6fimgfen] {
    top: -7px; left: 50%; transform: translateX(-50%);
    cursor: ns-resize; border-radius: 4px; width: 16px; height: 6px;
}
.handle.b[b-la6fimgfen] {
    bottom: -7px; left: 50%; transform: translateX(-50%);
    cursor: ns-resize; border-radius: 4px; width: 16px; height: 6px;
}
.handle.l[b-la6fimgfen] {
    left: -7px; top: 50%; transform: translateY(-50%);
    cursor: ew-resize; border-radius: 4px; width: 6px; height: 16px;
}
.handle.r[b-la6fimgfen] {
    right: -7px; top: 50%; transform: translateY(-50%);
    cursor: ew-resize; border-radius: 4px; width: 6px; height: 16px;
}

.handle.rotate[b-la6fimgfen] {
    top: -32px;
    left: 50%;
    transform: translateX(-50%);
    cursor: grab;
    background: white;
    border: 2px solid #2D7FF9;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #2D7FF9;
}

.handle.rotate:active[b-la6fimgfen] { cursor: grabbing; }

.handle.rotate[b-la6fimgfen]::before {
    content: '';
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    width: 1.5px;
    height: 8px;
    background: #2D7FF9;
}

/* === Mini-bar contextual === */
.ctx-bar[b-la6fimgfen] {
    position: absolute;
    background: white;
    border-radius: 10px;
    padding: 4px;
    display: flex;
    align-items: center;
    gap: 2px;
    box-shadow: 0 2px 8px rgba(20,22,25,0.08), 0 12px 32px rgba(20,22,25,0.12);
    z-index: 1100;
}

.ctx-btn[b-la6fimgfen] {
    width: 32px;
    height: 32px;
    border: none;
    background: transparent;
    border-radius: 7px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: var(--carbon-3);
    transition: background 0.12s, color 0.12s;
    padding: 0;
}

.ctx-btn:hover[b-la6fimgfen] {
    background: var(--cream);
    color: var(--carbon-1);
}

.ctx-btn.ctx-btn-active[b-la6fimgfen] {
    background: var(--carbon-1);
    color: #FFFFFF;
}

.ctx-btn.ctx-btn-active:hover[b-la6fimgfen] {
    background: #2A2D33;
    color: #FFFFFF;
}

.ctx-btn.ctx-btn-danger[b-la6fimgfen] {
    color: var(--danger);
}

.ctx-btn.ctx-btn-danger:hover[b-la6fimgfen] {
    background: rgba(163, 45, 45, 0.08);
    color: var(--danger);
}

.ctx-divider[b-la6fimgfen] {
    width: 1px;
    height: 18px;
    background: var(--cream-deep);
    margin: 0 2px;
}

/* === Modo dibujo === */
.canvas.draw-mode[b-la6fimgfen] {
    cursor: crosshair;
    touch-action: none;
}

/* La capa de anotacion no captura clicks: los widgets debajo siguen seleccionables */
.widget.widget-tipo-dibujo[b-la6fimgfen] {
    pointer-events: none;
}

.w-dibujo-host[b-la6fimgfen] {
    width: 100%;
    height: 100%;
}

.draw-toolbar[b-la6fimgfen] {
    position: fixed;
    left: 50%;
    transform: translateX(-50%);
    bottom: 118px; /* la widget-bar llega a ~106px desde abajo (30px offset + ~76px alto) */
    display: flex;
    align-items: center;
    gap: 4px;
    background: #FFFFFF;
    border: 1px solid var(--cream-deep);
    border-radius: 14px;
    padding: 8px 10px;
    box-shadow: 0 2px 8px rgba(20,22,25,0.08), 0 12px 32px rgba(20,22,25,0.14);
    z-index: 1200;
    flex-wrap: wrap;
    max-width: min(92vw, 640px);
    justify-content: center;
}

.dt-btn[b-la6fimgfen] {
    width: 34px;
    height: 34px;
    border: none;
    background: transparent;
    border-radius: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: var(--carbon-3);
    padding: 0;
    transition: background 0.12s, color 0.12s;
}

.dt-btn:hover[b-la6fimgfen] {
    background: var(--cream);
    color: var(--carbon-1);
}

.dt-btn.active[b-la6fimgfen] {
    background: var(--carbon-1);
    color: #FFFFFF;
}

.dt-btn.dt-danger:hover[b-la6fimgfen] {
    background: rgba(163, 45, 45, 0.08);
    color: var(--danger);
}

.dt-color[b-la6fimgfen] {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 2px solid var(--cream-deep);
    cursor: pointer;
    padding: 0;
    margin: 0 2px;
    transition: transform 0.12s, border-color 0.12s;
}

.dt-color:hover[b-la6fimgfen] {
    transform: scale(1.15);
}

.dt-color.active[b-la6fimgfen] {
    border-color: var(--carbon-1);
    transform: scale(1.15);
    box-shadow: 0 0 0 2px #FFFFFF inset;
}

.dt-dot[b-la6fimgfen] {
    background: currentColor;
    border-radius: 50%;
    display: block;
}

.dt-divider[b-la6fimgfen] {
    width: 1px;
    height: 20px;
    background: var(--cream-deep);
    margin: 0 4px;
}

@media (max-width: 720px) {
    .draw-toolbar[b-la6fimgfen] {
        bottom: 84px;
        padding: 6px 8px;
        gap: 2px;
    }
}

/* === Deck de pantallas (side panel) === */
.sp-pantalla-row[b-la6fimgfen] {
    display: flex;
    align-items: center;
    gap: 4px;
    border-radius: 9px;
    padding: 2px 4px;
    transition: background 0.12s;
}

.sp-pantalla-row.actual[b-la6fimgfen] {
    background: var(--cream);
}

.sp-pantalla-jump[b-la6fimgfen] {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 10px;
    border: none;
    background: transparent;
    padding: 7px 6px;
    border-radius: 8px;
    cursor: pointer;
    text-align: left;
    min-width: 0;
}

.sp-pantalla-jump:hover[b-la6fimgfen] {
    background: rgba(20, 22, 25, 0.05);
}

.sp-pantalla-num[b-la6fimgfen] {
    width: 22px;
    height: 22px;
    border-radius: 6px;
    background: #FFFFFF;
    border: 1px solid var(--cream-deep);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 700;
    color: var(--carbon-3);
    flex-shrink: 0;
}

.sp-pantalla-row.actual .sp-pantalla-num[b-la6fimgfen] {
    background: var(--carbon-1);
    border-color: var(--carbon-1);
    color: #FFFFFF;
}

.sp-pantalla-titulo[b-la6fimgfen] {
    font-size: 13px;
    color: var(--carbon-3);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sp-pantalla-btn[b-la6fimgfen] {
    width: 28px;
    height: 28px;
    border: none;
    background: transparent;
    border-radius: 7px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: #6E6C64;
    padding: 0;
    flex-shrink: 0;
    transition: background 0.12s, color 0.12s;
}

.sp-pantalla-btn:hover[b-la6fimgfen] {
    background: rgba(20, 22, 25, 0.06);
    color: var(--carbon-1);
}

.sp-pantalla-btn.danger:hover[b-la6fimgfen] {
    background: rgba(163, 45, 45, 0.08);
    color: var(--danger);
}

.sp-pantalla-btn:disabled[b-la6fimgfen] {
    opacity: 0.35;
    cursor: not-allowed;
}

/* === SNAP LINES === */
.snap-line[b-la6fimgfen] {
    position: absolute;
    background: var(--pz-green);
    pointer-events: none;
    z-index: 999;
    opacity: 0.85;
    box-shadow: 0 0 6px rgba(29, 158, 117, 0.5);
}

.snap-line-vertical[b-la6fimgfen] {
    width: 1.5px;
    top: 0;
    bottom: 0;
}

.snap-line-horizontal[b-la6fimgfen] {
    height: 1.5px;
    left: 0;
    right: 0;
}

/* === AUTOSAVE INDICATOR === */
.autosave-indicator[b-la6fimgfen] {
    font-size: 11px;
    color: var(--carbon-5);
    margin-top: 4px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.autosave-indicator.saving[b-la6fimgfen] {
    color: var(--carbon-3);
}

.autosave-indicator.saved[b-la6fimgfen] {
    color: var(--pz-green);
}

.autosave-spinner[b-la6fimgfen] {
    width: 10px;
    height: 10px;
    border: 1.5px solid var(--cream-deep);
    border-top-color: var(--pz-green);
    border-radius: 50%;
    animation: spin-b-la6fimgfen 0.8s linear infinite;
    display: inline-block;
}

@keyframes spin-b-la6fimgfen {
    to { transform: rotate(360deg); }
}

/* === RESPONSIVE === */

/* La widget-bar centrada (~810px tras mover Horario/Simbolos/Ruidometro al panel Mas)
   alcanza la zona del paginador cerca de ~1020px y se envuelve en 2 filas (flex-wrap)
   por debajo de ~845px, asi que el paginador sube por encima de la altura maxima de
   la barra envuelta. */
@media (max-width: 1024px) {
    .pages-control[b-la6fimgfen] {
        bottom: 178px;
        right: 16px;
    }
}

@media (max-width: 720px) {
    .home-btn[b-la6fimgfen], .float-icon-btn[b-la6fimgfen], .group-chip[b-la6fimgfen] {
        height: 38px;
    }
    .home-btn[b-la6fimgfen], .float-icon-btn[b-la6fimgfen] {
        width: 38px;
    }
    .side-panel[b-la6fimgfen] {
        width: 100%;
    }

    /* Widget bar: icono-solo y envuelta (flex-wrap) en vez de scroll horizontal */
    .widget-bar[b-la6fimgfen] {
        max-width: 94vw;
    }
    .widget-bar .w-btn[b-la6fimgfen] {
        width: 44px;
        height: 44px;
    }
    .widget-bar .w-btn span:not(.w-icon)[b-la6fimgfen] {
        display: none;
    }
    .widget-bar .w-divider[b-la6fimgfen] {
        display: none;
    }
    .mas-panel[b-la6fimgfen] {
        bottom: calc(100% + 10px);
        right: 0;
        /* 8 items en 3 columnas (3+3+2): 4 columnas no caben en <=720px */
        grid-template-columns: repeat(3, minmax(0, 1fr));
        width: 312px;
    }

    /* Pages control: menos padding y reubicado para no encimarse con la widget-bar
       (152px cubre la barra nucleo de 13 botones envuelta a 2 filas en ~375-430px) */
    .pages-control[b-la6fimgfen] {
        padding: 3px;
        bottom: 152px;
        right: 16px;
    }

    /* Mini-bar contextual y toolbar de dibujo: no salirse del viewport */
    .ctx-bar[b-la6fimgfen] {
        max-width: 94vw;
        flex-wrap: wrap;
    }
    .draw-toolbar[b-la6fimgfen] {
        max-width: 94vw;
    }
}

/* Pantallas muy angostas (<=360px): la barra icono-solo cae a 3 filas (6+6+1),
   el paginador necesita mas altura libre. */
@media (max-width: 360px) {
    .pages-control[b-la6fimgfen] {
        bottom: 196px;
    }
}

@media (max-width: 560px) {
    /* (el modo icono-solo de la widget-bar ahora aplica desde 720px) */

    /* Group chip: truncar con ellipsis (el span de texto interno, el chip sigue flex) */
    .cluster-tl .group-chip[b-la6fimgfen] {
        max-width: 40vw;
    }
    .cluster-tl .group-chip span:not(.chip-dot)[b-la6fimgfen] {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        min-width: 0;
    }

    /* Side panel: ancho completo */
    .side-panel[b-la6fimgfen] {
        width: 100vw;
    }
}

/* === Side panel content styles (Reloj y Timer) === */
.sp-field-row[b-la6fimgfen] {
    display: flex;
    gap: 10px;
}

/* === Semaforo / Simbolos: campos de texto simples === */
.sp-field[b-la6fimgfen] {
    display: block;
    margin-bottom: 10px;
}

.sp-field span[b-la6fimgfen] {
    display: block;
    font-size: 12.5px;
    color: var(--carbon-3);
    margin-bottom: 4px;
}

.sp-field input[type="text"][b-la6fimgfen] {
    width: 100%;
    box-sizing: border-box;
    padding: 10px 12px;
    border: 1.5px solid #D0D0D0;
    border-radius: 10px;
    background: white;
    font-size: 14px;
    color: var(--carbon-2);
    font-family: var(--font-sans, 'Figtree', sans-serif);
}

.sp-field input[type="text"]:focus[b-la6fimgfen] {
    outline: none;
    border-color: var(--brand-teal, #6DC7D0);
}

.sp-field textarea[b-la6fimgfen] {
    width: 100%;
    box-sizing: border-box;
    padding: 10px 12px;
    border: 1.5px solid #D0D0D0;
    border-radius: 10px;
    background: white;
    font-size: 14px;
    color: var(--carbon-2);
    font-family: var(--font-sans, 'Figtree', sans-serif);
    resize: vertical;
    min-height: 72px;
}

.sp-field textarea:focus[b-la6fimgfen] {
    outline: none;
    border-color: var(--brand-teal, #6DC7D0);
}

.sp-field-count[b-la6fimgfen] {
    display: block;
    text-align: right;
    font-size: 11px;
    color: var(--carbon-4, #63666B);
    margin-top: 2px;
}

.sp-preset-row[b-la6fimgfen] {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.sp-preset-btn[b-la6fimgfen] {
    flex: 1 1 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px 12px;
    background: #F5F5F5;
    border: 1.5px solid #D0D0D0;
    border-radius: 10px;
    cursor: pointer;
    color: var(--carbon-2);
    font-size: 12.5px;
    font-weight: 600;
    font-family: var(--font-sans, 'Figtree', sans-serif);
    transition: background 0.15s, border-color 0.15s;
    white-space: nowrap;
}

.sp-preset-btn:hover[b-la6fimgfen] { background: #ECECEC; border-color: #B8B8B8; }

.sp-btn-primario[b-la6fimgfen] {
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 14px;
    background: var(--brand-teal-primary, #6EC6C8);
    border: 1.5px solid var(--brand-teal-primary, #6EC6C8);
    border-radius: 10px;
    cursor: pointer;
    color: var(--carbon-2);
    font-size: 14px;
    font-weight: 700;
    font-family: var(--font-sans, 'Figtree', sans-serif);
    transition: background 0.15s, border-color 0.15s;
}

.sp-btn-primario:hover[b-la6fimgfen] { background: var(--brand-teal, #6DC7D0); border-color: var(--brand-teal-dark, #4BA8AA); }

.sp-dado-radios[b-la6fimgfen] {
    display: flex;
    gap: 8px;
}

.sp-dado-radio[b-la6fimgfen] {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px;
    border: 1.5px solid #D0D0D0;
    border-radius: 10px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 600;
    color: var(--carbon-2);
    transition: background 0.15s, border-color 0.15s;
}

.sp-dado-radio input[b-la6fimgfen] { display: none; }

.sp-dado-radio.activo[b-la6fimgfen] {
    background: color-mix(in srgb, var(--brand-teal, #6DC7D0) 18%, white);
    border-color: var(--brand-teal, #6DC7D0);
}

.sp-field-row select[b-la6fimgfen] {
    flex: 1;
    padding: 12px 14px;
    border: 1.5px solid #D0D0D0;
    border-radius: 10px;
    background: white;
    font-size: 15px;
    color: var(--carbon-2);
    cursor: pointer;
}

.sp-sound-btn[b-la6fimgfen] {
    flex: 0 0 50px;
    background: #F5F5F5;
    border: 1.5px solid #D0D0D0;
    border-radius: 10px;
    cursor: pointer;
    color: #555;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sp-radio[b-la6fimgfen] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
    cursor: pointer;
    font-size: 14px;
    color: var(--carbon-2);
}

.sp-radio input[type="radio"][b-la6fimgfen] { accent-color: #6366F1; }

.sp-check[b-la6fimgfen] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
    cursor: pointer;
    font-size: 14px;
    color: var(--carbon-2);
}

.sp-check input[type="checkbox"][b-la6fimgfen] { accent-color: #6366F1; width: 16px; height: 16px; flex-shrink: 0; }

.sp-hint[b-la6fimgfen] {
    font-size: 12.5px;
    color: var(--carbon-3);
    line-height: 1.4;
}

.rw-sp-lista[b-la6fimgfen] {
    max-height: 260px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding-right: 4px;
}

.rw-sp-alumno[b-la6fimgfen] { margin-bottom: 6px; font-size: 13px; }
.rw-sp-alumno span[b-la6fimgfen] { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.sp-toggle-row[b-la6fimgfen] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 14px;
    color: var(--carbon-2);
}

.sp-switch[b-la6fimgfen] {
    width: 44px;
    height: 24px;
    background: #E0E0E0;
    border-radius: 12px;
    position: relative;
    cursor: pointer;
    transition: background 0.15s;
    flex-shrink: 0;
}

.sp-switch.on[b-la6fimgfen] { background: #6366F1; }

.sp-switch[b-la6fimgfen]::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: 20px;
    height: 20px;
    background: white;
    border-radius: 50%;
    transition: left 0.15s;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}

.sp-switch.on[b-la6fimgfen]::after { left: 22px; }

.w-reloj-host[b-la6fimgfen], .w-timer-host[b-la6fimgfen], .w-semaforo-host[b-la6fimgfen], .w-simbolos-host[b-la6fimgfen], .w-ruidometro-host[b-la6fimgfen],
.w-qr-host[b-la6fimgfen], .w-dado-host[b-la6fimgfen], .w-encuesta-host[b-la6fimgfen], .w-actividad-host[b-la6fimgfen] {
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.sp-range[b-la6fimgfen] {
    width: 100%;
    accent-color: #6366F1;
    cursor: pointer;
    margin: 4px 0 2px;
}

.sp-btn-full[b-la6fimgfen] {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 14px;
    background: #F5F5F5;
    border: 1.5px solid #D0D0D0;
    border-radius: 10px;
    cursor: pointer;
    color: var(--carbon-2);
    font-size: 14px;
    font-weight: 600;
    font-family: var(--font-sans, 'Figtree', sans-serif);
    transition: background 0.15s, border-color 0.15s;
}

.sp-btn-full:hover[b-la6fimgfen] { background: #ECECEC; border-color: #B8B8B8; }

/* === Encuesta: selector de grupo, opciones editables, boton peligro === */
.sp-select[b-la6fimgfen] {
    width: 100%;
    box-sizing: border-box;
    padding: 10px 12px;
    border: 1.5px solid #D0D0D0;
    border-radius: 10px;
    background: white;
    font-size: 14px;
    color: var(--carbon-2);
    cursor: pointer;
    font-family: var(--font-sans, 'Figtree', sans-serif);
    margin-bottom: 6px;
}
.sp-select:focus[b-la6fimgfen] { outline: none; border-color: var(--brand-teal, #6DC7D0); }

.sp-btn-danger[b-la6fimgfen] { color: var(--danger, #A32D2D); border-color: color-mix(in srgb, var(--danger, #A32D2D) 35%, #D0D0D0); }
.sp-btn-danger:hover[b-la6fimgfen] { background: color-mix(in srgb, var(--danger, #A32D2D) 8%, white); border-color: var(--danger, #A32D2D); }

/* === Preguntas de salida (IA) === */
.sp-btn-full.sp-btn-primary[b-la6fimgfen] {
    background: #6366F1;
    border-color: #6366F1;
    color: white;
}
.sp-btn-full.sp-btn-primary:hover[b-la6fimgfen] {
    background: #5457E0;
    border-color: #5457E0;
}
.sp-btn-full.sp-btn-primary:disabled[b-la6fimgfen],
.sp-btn-full:disabled[b-la6fimgfen] {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
}
.sp-btn-full + .sp-btn-full[b-la6fimgfen] { margin-top: 8px; }

.sp-opt-row[b-la6fimgfen] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 8px;
}
.sp-opt-dot[b-la6fimgfen] { width: 12px; height: 12px; border-radius: 50%; flex-shrink: 0; }
.sp-opt-input[b-la6fimgfen] {
    flex: 1;
    min-width: 0;
    box-sizing: border-box;
    padding: 8px 10px;
    border: 1.5px solid #D0D0D0;
    border-radius: 9px;
    background: white;
    font-size: 13.5px;
    color: var(--carbon-2);
    font-family: var(--font-sans, 'Figtree', sans-serif);
}
.sp-opt-input:focus[b-la6fimgfen] { outline: none; border-color: var(--brand-teal, #6DC7D0); }
.sp-opt-mini[b-la6fimgfen] {
    flex: 0 0 28px;
    height: 28px;
    display: grid;
    place-items: center;
    border: 1.5px solid #D0D0D0;
    border-radius: 8px;
    background: #F7F7F7;
    color: var(--carbon-3);
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}
.sp-opt-mini:hover:not(:disabled)[b-la6fimgfen] { background: #ECECEC; }
.sp-opt-mini:disabled[b-la6fimgfen] { opacity: 0.4; cursor: default; }
.sp-opt-mini .material-symbols-rounded[b-la6fimgfen] { font-size: 16px; }
.sp-opt-del:hover:not(:disabled)[b-la6fimgfen] { color: var(--danger, #A32D2D); border-color: var(--danger, #A32D2D); background: color-mix(in srgb, var(--danger, #A32D2D) 8%, white); }

.sp-add-opt[b-la6fimgfen] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 6px 12px;
    border: 1.5px dashed #C5C5C5;
    border-radius: 9px;
    background: transparent;
    color: var(--carbon-3);
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
    font-family: var(--font-sans, 'Figtree', sans-serif);
    transition: border-color 0.15s, color 0.15s;
}
.sp-add-opt:hover[b-la6fimgfen] { border-color: var(--brand-teal, #6DC7D0); color: var(--brand-teal-dark, #4BA8AA); }
.sp-add-opt .material-symbols-rounded[b-la6fimgfen] { font-size: 16px; }

/* === Scoreboard: fila de equipo + swatches de la paleta fija === */
.sp-score-row[b-la6fimgfen] { margin-bottom: 6px; }
.sp-score-swatches[b-la6fimgfen] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 14px 2px;
}
.sp-score-swatch[b-la6fimgfen] {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: 2px solid transparent;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
    color: white;
    transition: transform 0.15s, border-color 0.15s;
}
.sp-score-swatch:hover:not(:disabled)[b-la6fimgfen] { transform: scale(1.12); }
.sp-score-swatch.sel[b-la6fimgfen] { border-color: var(--carbon-2); }
.sp-score-swatch:disabled[b-la6fimgfen] { opacity: 0.3; cursor: not-allowed; }
.sp-score-swatch .material-symbols-rounded[b-la6fimgfen] { font-size: 14px; }

/* === Papelera de widgets === */
.float-icon-btn-badge[b-la6fimgfen] {
    position: relative;
}
.float-badge[b-la6fimgfen] {
    position: absolute;
    top: -5px;
    right: -5px;
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    border-radius: 9px;
    background: var(--danger, #A32D2D);
    color: #FFFFFF;
    font-family: var(--font-sans, 'Figtree', sans-serif);
    font-size: 10px;
    font-weight: 700;
    line-height: 17px;
    text-align: center;
    box-shadow: 0 0 0 2px #FFFFFF;
}

.pap-loading[b-la6fimgfen], .pap-empty[b-la6fimgfen] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 40px 12px;
    color: var(--carbon-5);
    text-align: center;
}
.pap-loading .material-symbols-rounded[b-la6fimgfen], .pap-empty-icon[b-la6fimgfen] {
    font-size: 32px;
    opacity: 0.5;
}
.pap-spin[b-la6fimgfen] {
    animation: pap-spin-anim-b-la6fimgfen 1s linear infinite;
}
@keyframes pap-spin-anim-b-la6fimgfen {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}
.pap-empty p[b-la6fimgfen] {
    margin: 0;
    font-family: var(--font-sans, 'Figtree', sans-serif);
    font-size: 13.5px;
}

.pap-item[b-la6fimgfen] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px;
    border-radius: 10px;
    background: var(--cream);
    margin-bottom: 8px;
}
.pap-item-icon[b-la6fimgfen] {
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    border-radius: 9px;
    background: #FFFFFF;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--carbon-3);
}
.pap-item-info[b-la6fimgfen] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.pap-item-nombre[b-la6fimgfen] {
    font-family: var(--font-sans, 'Figtree', sans-serif);
    font-size: 13.5px;
    font-weight: 600;
    color: var(--carbon-1);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.pap-item-fecha[b-la6fimgfen] {
    font-family: var(--font-sans, 'Figtree', sans-serif);
    font-size: 11.5px;
    color: var(--carbon-5);
}
.pap-item-actions[b-la6fimgfen] {
    display: flex;
    gap: 4px;
    flex-shrink: 0;
}
.pap-item-btn[b-la6fimgfen] {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    background: #FFFFFF;
    border: 1px solid rgba(20, 22, 25, 0.08);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--carbon-3);
    cursor: pointer;
    transition: all 0.12s ease;
}
.pap-item-btn:hover[b-la6fimgfen] {
    background: var(--cream-deep);
    color: var(--carbon-1);
}
.pap-item-btn-danger:hover[b-la6fimgfen] {
    background: color-mix(in srgb, var(--danger, #A32D2D) 10%, white);
    color: var(--danger, #A32D2D);
    border-color: color-mix(in srgb, var(--danger, #A32D2D) 35%, #D0D0D0);
}

.pap-hint[b-la6fimgfen] {
    margin-top: -8px;
}

/* Mas -> Reconocimientos: icono Reconocer (medalla con estrella), mismo tamano que los svg. */
.mas-ico-recon[b-la6fimgfen] {
    font-size: 21px;
    line-height: 1;
}
/* /Pages/PizarronHome.razor.rz.scp.css */
.pzh-page[b-wrc4kwm1it] {
    padding: 32px 40px;
    max-width: 1200px;
    margin: 0 auto;
}

/* Header */
.pzh-header[b-wrc4kwm1it] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 24px;
}
.pzh-header-left[b-wrc4kwm1it] {
    display: flex;
    align-items: center;
    gap: 16px;
}
.pzh-header-icon[b-wrc4kwm1it] {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    background: var(--brand-teal);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-primary);
    font-size: 28px;
}
.pzh-title[b-wrc4kwm1it] {
    font-family: 'Fraunces', serif;
    font-size: 26px;
    font-weight: 600;
    color: var(--carbon-1);
    margin: 0;
    line-height: 1.2;
}
.pzh-subtitle[b-wrc4kwm1it] {
    font-family: 'Figtree', sans-serif;
    font-size: 14px;
    color: var(--carbon-4);
    margin: 2px 0 0;
}
.pzh-btn-nueva[b-wrc4kwm1it] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 20px;
    border: none;
    border-radius: 10px;
    background: var(--pz-green);
    color: #fff;
    font-family: 'Figtree', sans-serif;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s;
}
.pzh-btn-nueva:hover:not(:disabled)[b-wrc4kwm1it] {
    background: var(--pz-green-deep);
}
.pzh-btn-nueva:disabled[b-wrc4kwm1it] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Pill proxima clase */
.pzh-pill[b-wrc4kwm1it] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    border-radius: 20px;
    background: #F1EFE8;
    margin-bottom: 20px;
    font-family: 'Figtree', sans-serif;
    font-size: 13px;
    color: var(--carbon-3);
}
.pzh-pill--hoy[b-wrc4kwm1it] {
    background: #E1F5EE;
    color: var(--pz-green-deep);
}
.pzh-pill-icon[b-wrc4kwm1it] {
    font-size: 18px;
}
.pzh-pill-text[b-wrc4kwm1it] {
    line-height: 1.4;
}
.pzh-pill-badge[b-wrc4kwm1it] {
    padding: 2px 10px;
    border-radius: 12px;
    background: var(--pz-green);
    color: #fff;
    font-size: 12px;
    font-weight: 600;
}

/* Toolbar */
.pzh-toolbar[b-wrc4kwm1it] {
    display: flex;
    gap: 12px;
    margin-bottom: 24px;
}
.pzh-search[b-wrc4kwm1it] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1;
    max-width: 360px;
    background: #fff;
    border: 1px solid var(--carbon-7);
    border-radius: 10px;
    padding: 0 12px;
    transition: border-color 0.15s;
}
.pzh-search:focus-within[b-wrc4kwm1it] {
    border-color: var(--brand-teal);
}
.pzh-search .material-symbols-rounded[b-wrc4kwm1it] {
    font-size: 20px;
    color: var(--carbon-5);
}
.pzh-search input[b-wrc4kwm1it] {
    border: none;
    outline: none;
    background: transparent;
    font-family: 'Figtree', sans-serif;
    font-size: 14px;
    padding: 10px 0;
    width: 100%;
    color: var(--carbon-1);
}
.pzh-search input[b-wrc4kwm1it]::placeholder {
    color: var(--carbon-6);
}
.pzh-filtro-grupo[b-wrc4kwm1it] {
    padding: 10px 14px;
    border: 1px solid var(--carbon-7);
    border-radius: 10px;
    background: #fff;
    font-family: 'Figtree', sans-serif;
    font-size: 14px;
    color: var(--carbon-3);
    cursor: pointer;
}
.pzh-filtro-grupo:disabled[b-wrc4kwm1it] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Toggle vista grid/lista */
.pzh-vista-toggle[b-wrc4kwm1it] {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    margin-left: auto;
    background: #fff;
    border: 1px solid var(--carbon-7);
    border-radius: 10px;
    padding: 3px;
    flex-shrink: 0;
}
.pzh-vista-btn[b-wrc4kwm1it] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: none;
    border-radius: 7px;
    background: transparent;
    color: var(--carbon-5);
    cursor: pointer;
    transition: background 0.12s ease, color 0.12s ease;
}
.pzh-vista-btn .material-symbols-rounded[b-wrc4kwm1it] {
    font-size: 20px;
}
.pzh-vista-btn:hover[b-wrc4kwm1it] {
    background: var(--cream);
    color: var(--carbon-3);
}
.pzh-vista-btn.activo[b-wrc4kwm1it] {
    background: var(--carbon-1);
    color: var(--cream);
}

/* Chips de carpetas */
.pzh-carpetas[b-wrc4kwm1it] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 20px;
    overflow-x: auto;
    padding-bottom: 2px;
    scrollbar-width: thin;
}
.pzh-chip[b-wrc4kwm1it] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    border: 1px solid var(--carbon-7);
    border-radius: 20px;
    background: #fff;
    font-family: 'Figtree', sans-serif;
    font-size: 13px;
    font-weight: 500;
    color: var(--carbon-3);
    cursor: pointer;
    white-space: nowrap;
    flex-shrink: 0;
    transition: background 0.12s ease, border-color 0.12s ease, color 0.12s ease;
}
.pzh-chip:hover[b-wrc4kwm1it] {
    border-color: var(--carbon-5);
}
.pzh-chip.activo[b-wrc4kwm1it] {
    background: var(--carbon-1);
    border-color: var(--carbon-1);
    color: var(--cream);
}
.pzh-chip-dot[b-wrc4kwm1it] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}
.pzh-chip-count[b-wrc4kwm1it] {
    font-size: 11px;
    font-weight: 600;
    color: var(--carbon-5);
    background: var(--cream);
    padding: 1px 7px;
    border-radius: 10px;
}
.pzh-chip.activo .pzh-chip-count[b-wrc4kwm1it] {
    background: rgba(244, 240, 230, 0.16);
    color: var(--cream);
}
.pzh-chip--nueva[b-wrc4kwm1it] {
    color: var(--carbon-4);
    border-style: dashed;
}
.pzh-chip--nueva .material-symbols-rounded[b-wrc4kwm1it] {
    font-size: 16px;
}

.pzh-chip-wrap[b-wrc4kwm1it] {
    position: relative;
    display: flex;
    align-items: center;
    flex-shrink: 0;
}
.pzh-chip-wrap .pzh-chip[b-wrc4kwm1it] {
    padding-right: 8px;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    border-right: none;
}
.pzh-chip-menu-btn[b-wrc4kwm1it] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 30px;
    border: 1px solid var(--carbon-7);
    border-left: none;
    border-top-right-radius: 20px;
    border-bottom-right-radius: 20px;
    background: #fff;
    color: var(--carbon-5);
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.12s ease, background 0.12s ease;
    flex-shrink: 0;
}
.pzh-chip-menu-btn .material-symbols-rounded[b-wrc4kwm1it] {
    font-size: 16px;
}
.pzh-chip-wrap:hover .pzh-chip-menu-btn[b-wrc4kwm1it],
.pzh-chip-wrap.menu-abierto .pzh-chip-menu-btn[b-wrc4kwm1it] {
    opacity: 1;
}
.pzh-chip-menu-btn:hover[b-wrc4kwm1it] {
    background: var(--cream);
}

.pzh-chip-menu[b-wrc4kwm1it] {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    z-index: 30;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 4px 8px rgba(20,22,25,0.08), 0 16px 32px rgba(20,22,25,0.10);
    padding: 6px;
    min-width: 150px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.pzh-chip-menu button[b-wrc4kwm1it] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    border: none;
    background: transparent;
    border-radius: 7px;
    font-family: 'Figtree', sans-serif;
    font-size: 13px;
    color: var(--carbon-3);
    cursor: pointer;
    text-align: left;
    white-space: nowrap;
}
.pzh-chip-menu button:hover[b-wrc4kwm1it] {
    background: var(--cream);
}
.pzh-chip-menu button .material-symbols-rounded[b-wrc4kwm1it] {
    font-size: 16px;
    color: var(--carbon-5);
}
.pzh-chip-menu button.danger[b-wrc4kwm1it] {
    color: var(--danger);
}
.pzh-chip-menu button.danger .material-symbols-rounded[b-wrc4kwm1it] {
    color: var(--danger);
}

.pzh-chip-rename[b-wrc4kwm1it] {
    padding: 6px 12px;
    border: 1px solid var(--brand-teal);
    border-radius: 20px;
    font-family: 'Figtree', sans-serif;
    font-size: 13px;
    color: var(--carbon-1);
    outline: none;
    width: 140px;
}

/* Mini-form nueva carpeta */
.pzh-chip-form[b-wrc4kwm1it] {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    background: #fff;
    border: 1px solid var(--carbon-7);
    border-radius: 20px;
    padding: 5px 8px 5px 14px;
    flex-shrink: 0;
}
.pzh-chip-form input[type="text"][b-wrc4kwm1it] {
    border: none;
    outline: none;
    background: transparent;
    font-family: 'Figtree', sans-serif;
    font-size: 13px;
    color: var(--carbon-1);
    width: 130px;
}
.pzh-chip-swatches[b-wrc4kwm1it] {
    display: flex;
    align-items: center;
    gap: 4px;
}
.pzh-swatch[b-wrc4kwm1it] {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 2px solid transparent;
    cursor: pointer;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}
.pzh-swatch.sel[b-wrc4kwm1it] {
    border-color: var(--carbon-1);
}
.pzh-swatch--none[b-wrc4kwm1it] {
    background: var(--cream);
    color: var(--carbon-5);
}
.pzh-swatch--none .material-symbols-rounded[b-wrc4kwm1it] {
    font-size: 12px;
}
.pzh-chip-form-actions[b-wrc4kwm1it] {
    display: flex;
    align-items: center;
    gap: 4px;
}
.pzh-btn-cancelar[b-wrc4kwm1it],
.pzh-btn-crear[b-wrc4kwm1it] {
    padding: 6px 12px;
    border: none;
    border-radius: 14px;
    font-family: 'Figtree', sans-serif;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
}
.pzh-btn-cancelar[b-wrc4kwm1it] {
    background: transparent;
    color: var(--carbon-5);
}
.pzh-btn-cancelar:hover[b-wrc4kwm1it] {
    background: var(--cream);
}
.pzh-btn-crear[b-wrc4kwm1it] {
    background: var(--pz-green);
    color: #fff;
}
.pzh-btn-crear:hover:not(:disabled)[b-wrc4kwm1it] {
    background: var(--pz-green-deep);
}
.pzh-btn-crear:disabled[b-wrc4kwm1it] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Grid */
.pzh-grid[b-wrc4kwm1it] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

/* Card */
.pzh-card[b-wrc4kwm1it] {
    background: #fff;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(20,22,25,0.04), 0 4px 12px rgba(20,22,25,0.06);
    cursor: pointer;
    transition: box-shadow 0.15s, transform 0.15s;
}
.pzh-card:hover[b-wrc4kwm1it] {
    box-shadow: 0 2px 4px rgba(20,22,25,0.05), 0 8px 24px rgba(20,22,25,0.08);
    transform: translateY(-2px);
}
.pzh-card-thumb[b-wrc4kwm1it] {
    position: relative;
    aspect-ratio: 16 / 9;
    background: var(--cream-deep);
    overflow: hidden;
}
.pzh-card-thumb img[b-wrc4kwm1it] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.pzh-card-placeholder[b-wrc4kwm1it] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: var(--carbon-6);
}
.pzh-card-placeholder .material-symbols-rounded[b-wrc4kwm1it] {
    font-size: 40px;
}
.pzh-card--nueva .pzh-card-placeholder[b-wrc4kwm1it] {
    background: var(--cream);
    color: var(--carbon-5);
}
.pzh-card--nueva .pzh-card-placeholder .material-symbols-rounded[b-wrc4kwm1it] {
    font-size: 48px;
}
.pzh-card-pantallas[b-wrc4kwm1it] {
    position: absolute;
    bottom: 8px;
    right: 8px;
    background: rgba(20,22,25,0.72);
    color: #fff;
    font-family: 'Figtree', sans-serif;
    font-size: 11px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 8px;
}
.pzh-card-duplicar[b-wrc4kwm1it] {
    position: absolute;
    top: 8px;
    right: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border: none;
    border-radius: 8px;
    background: rgba(20,22,25,0.72);
    color: #fff;
    cursor: pointer;
    opacity: 0;
    transform: translateY(-4px);
    transition: opacity 0.15s, transform 0.15s, background 0.15s;
    z-index: 2;
}
.pzh-card-duplicar .material-symbols-rounded[b-wrc4kwm1it] {
    font-size: 18px;
}
.pzh-card-duplicar:hover[b-wrc4kwm1it] {
    background: var(--pz-green);
}
.pzh-card:hover .pzh-card-duplicar[b-wrc4kwm1it] {
    opacity: 1;
    transform: translateY(0);
}

.pzh-card-mover-wrap[b-wrc4kwm1it] {
    position: absolute;
    top: 8px;
    right: 44px;
    z-index: 2;
}
.pzh-card-mover[b-wrc4kwm1it] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border: none;
    border-radius: 8px;
    background: rgba(20,22,25,0.72);
    color: #fff;
    cursor: pointer;
    opacity: 0;
    transform: translateY(-4px);
    transition: opacity 0.15s, transform 0.15s, background 0.15s;
}
.pzh-card-mover .material-symbols-rounded[b-wrc4kwm1it] {
    font-size: 18px;
}
.pzh-card-mover:hover[b-wrc4kwm1it] {
    background: var(--pz-green);
}
.pzh-card:hover .pzh-card-mover[b-wrc4kwm1it] {
    opacity: 1;
    transform: translateY(0);
}
.pzh-card-mover-wrap:has(.pzh-mover-menu) .pzh-card-mover[b-wrc4kwm1it] {
    opacity: 1;
    transform: translateY(0);
}
.pzh-mover-menu[b-wrc4kwm1it] {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    z-index: 30;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 4px 8px rgba(20,22,25,0.08), 0 16px 32px rgba(20,22,25,0.10);
    padding: 6px;
    min-width: 160px;
    max-height: 220px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.pzh-mover-menu button[b-wrc4kwm1it] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    border: none;
    background: transparent;
    border-radius: 7px;
    font-family: 'Figtree', sans-serif;
    font-size: 13px;
    color: var(--carbon-3);
    cursor: pointer;
    text-align: left;
    white-space: nowrap;
}
.pzh-mover-menu button:hover[b-wrc4kwm1it] {
    background: var(--cream);
}
.pzh-mover-menu button.sel[b-wrc4kwm1it] {
    color: var(--pz-green-deep);
    font-weight: 600;
}

.pzh-card-body[b-wrc4kwm1it] {
    padding: 12px 14px 14px;
}
.pzh-card-title[b-wrc4kwm1it] {
    font-family: 'Figtree', sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: var(--carbon-1);
    margin: 0 0 4px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.pzh-card-grupo[b-wrc4kwm1it] {
    display: inline-block;
    font-family: 'Figtree', sans-serif;
    font-size: 12px;
    color: #0C447C;
    background: #E6F1FB;
    padding: 1px 8px;
    border-radius: 6px;
    margin-bottom: 4px;
}
.pzh-card-meta[b-wrc4kwm1it] {
    display: block;
    font-family: 'Figtree', sans-serif;
    font-size: 12px;
    color: var(--carbon-5);
    margin-top: 4px;
}

/* Vista lista */
.pzh-lista[b-wrc4kwm1it] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.pzh-fila[b-wrc4kwm1it] {
    display: flex;
    align-items: center;
    gap: 14px;
    background: #fff;
    border-radius: 12px;
    padding: 8px 12px;
    box-shadow: 0 1px 2px rgba(20,22,25,0.04);
    cursor: pointer;
    transition: box-shadow 0.15s, background 0.15s;
}
.pzh-fila:hover[b-wrc4kwm1it] {
    background: var(--cream-deep);
    box-shadow: 0 2px 4px rgba(20,22,25,0.05), 0 8px 20px rgba(20,22,25,0.06);
}
.pzh-fila-thumb[b-wrc4kwm1it] {
    position: relative;
    flex-shrink: 0;
    width: 96px;
    height: 54px;
    border-radius: 8px;
    overflow: hidden;
    background: var(--cream-deep);
}
.pzh-fila-thumb img[b-wrc4kwm1it] {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.pzh-fila-thumb.pzh-card-placeholder .material-symbols-rounded[b-wrc4kwm1it] {
    font-size: 24px;
}
.pzh-fila--nueva .pzh-fila-thumb[b-wrc4kwm1it] {
    background: var(--cream);
    color: var(--carbon-5);
}
.pzh-fila-info[b-wrc4kwm1it] {
    flex: 1;
    min-width: 0;
}
.pzh-fila-title[b-wrc4kwm1it] {
    font-family: 'Fraunces', serif;
    font-size: 15px;
    font-weight: 600;
    color: var(--carbon-1);
    margin: 0 0 4px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.pzh-fila-meta[b-wrc4kwm1it] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.pzh-fila-meta-text[b-wrc4kwm1it] {
    font-family: 'Figtree', sans-serif;
    font-size: 12px;
    color: var(--carbon-5);
}
.pzh-fila-acciones[b-wrc4kwm1it] {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
    position: relative;
}
.pzh-fila-accion[b-wrc4kwm1it] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border: none;
    border-radius: 8px;
    background: var(--cream);
    color: var(--carbon-4);
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}
.pzh-fila-accion .material-symbols-rounded[b-wrc4kwm1it] {
    font-size: 18px;
}
.pzh-fila-accion:hover[b-wrc4kwm1it] {
    background: var(--pz-green);
    color: #fff;
}

/* Loading */
.pzh-loading[b-wrc4kwm1it] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 80px 0;
    color: var(--carbon-5);
    font-family: 'Figtree', sans-serif;
    font-size: 14px;
}

/* Empty state */
.pzh-empty[b-wrc4kwm1it] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 80px 0;
    text-align: center;
}
.pzh-empty-icon[b-wrc4kwm1it] {
    font-size: 56px;
    color: var(--carbon-7);
    margin-bottom: 16px;
}
.pzh-empty h2[b-wrc4kwm1it] {
    font-family: 'Fraunces', serif;
    font-size: 22px;
    color: var(--carbon-3);
    margin: 0 0 8px;
    font-weight: 500;
}
.pzh-empty p[b-wrc4kwm1it] {
    font-family: 'Figtree', sans-serif;
    font-size: 14px;
    color: var(--carbon-5);
    margin: 0 0 20px;
}

/* Error state */
.pzh-error .pzh-empty-icon[b-wrc4kwm1it] {
    color: #C6493F;
}
.pzh-error h2[b-wrc4kwm1it] {
    font-family: 'Fraunces', serif;
    font-size: 22px;
    color: var(--carbon-3);
    margin: 0 0 20px;
    font-weight: 500;
}

/* Toast */
.pzh-toast[b-wrc4kwm1it] {
    position: fixed;
    bottom: 32px;
    left: 50%;
    transform: translateX(-50%) translateY(20px);
    background: var(--carbon-1);
    color: var(--cream);
    padding: 10px 18px;
    border-radius: 10px;
    font-family: 'Figtree', sans-serif;
    font-size: 13px;
    font-weight: 500;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease, transform 0.2s ease;
    z-index: 1000;
    white-space: nowrap;
    box-shadow: 0 4px 8px rgba(20, 22, 25, 0.08),
                0 16px 32px rgba(20, 22, 25, 0.10);
}
.pzh-toast.show[b-wrc4kwm1it] {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

/* Responsive */
@media (max-width: 1100px) {
    .pzh-grid[b-wrc4kwm1it] {
        grid-template-columns: repeat(3, 1fr);
    }
}
@media (max-width: 860px) {
    .pzh-grid[b-wrc4kwm1it] {
        grid-template-columns: repeat(2, 1fr);
    }
    .pzh-page[b-wrc4kwm1it] {
        padding: 24px 20px;
    }
    .pzh-card-duplicar[b-wrc4kwm1it],
    .pzh-card-mover[b-wrc4kwm1it] {
        opacity: 1;
        transform: translateY(0);
    }
}
@media (max-width: 540px) {
    .pzh-grid[b-wrc4kwm1it] {
        grid-template-columns: 1fr;
    }
    .pzh-header[b-wrc4kwm1it] {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }
    .pzh-toolbar[b-wrc4kwm1it] {
        flex-direction: column;
    }
    .pzh-search[b-wrc4kwm1it] {
        max-width: 100%;
    }
    .pzh-chip-menu-btn[b-wrc4kwm1it] {
        opacity: 1;
    }
    .pzh-chip-form input[type="text"][b-wrc4kwm1it] {
        width: 100px;
    }
}
@media (max-width: 560px) {
    .pzh-fila[b-wrc4kwm1it] {
        gap: 10px;
        padding: 6px 8px;
    }
    .pzh-fila-thumb[b-wrc4kwm1it] {
        width: 64px;
        height: 36px;
    }
    .pzh-fila-meta[b-wrc4kwm1it] {
        flex-direction: column;
        align-items: flex-start;
        gap: 2px;
    }
    .pzh-fila-accion[b-wrc4kwm1it] {
        width: 30px;
        height: 30px;
    }
}

/* === Nueva pizarra con IA (F5 5.2) === */
.pzh-header-acciones[b-wrc4kwm1it] {
    display: flex;
    align-items: center;
    gap: 10px;
}
.pzh-empty-acciones[b-wrc4kwm1it] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
}
/* Boton Plantillas NEM (tarea 2.3) — estilo similar a pzh-btn-ia pero con tono biblioteca */
.pzh-btn-plantillas[b-wrc4kwm1it] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 18px;
    border: 1px solid var(--carbon-7, #E5E7EB);
    border-radius: 10px;
    background: #fff;
    color: var(--carbon-2, #374151);
    font-family: 'Figtree', sans-serif;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}
.pzh-btn-plantillas .material-symbols-rounded[b-wrc4kwm1it] {
    font-size: 19px;
    color: var(--brand-teal-deep, #2C6D6F);
}
.pzh-btn-plantillas:hover:not(:disabled)[b-wrc4kwm1it] {
    border-color: var(--brand-teal, #6EC6C8);
    background: #F2FAFA;
    color: var(--carbon-1, #1F2937);
}
.pzh-btn-plantillas:disabled[b-wrc4kwm1it] {
    opacity: 0.5;
    cursor: not-allowed;
}
.pzh-btn-ia[b-wrc4kwm1it] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 18px;
    border: 1px solid var(--carbon-7);
    border-radius: 10px;
    background: #fff;
    color: var(--carbon-2);
    font-family: 'Figtree', sans-serif;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}
.pzh-btn-ia .material-symbols-rounded[b-wrc4kwm1it] {
    font-size: 19px;
    color: var(--brand-teal-deep, #2C6D6F);
    transition: transform 0.2s ease;
}
.pzh-btn-ia:hover[b-wrc4kwm1it] {
    border-color: var(--brand-teal);
    background: #F2FAFA;
    color: var(--carbon-1);
}
.pzh-btn-ia:hover .material-symbols-rounded[b-wrc4kwm1it] {
    transform: rotate(12deg) scale(1.08);
}
.pzh-btn-ia:focus-visible[b-wrc4kwm1it],
.pzh-btn-nueva:focus-visible[b-wrc4kwm1it] {
    outline: 2px solid var(--brand-teal);
    outline-offset: 2px;
}

/* Overlay + panel */
.pzh-ia-overlay[b-wrc4kwm1it] {
    position: fixed;
    inset: 0;
    z-index: 1100;
    background: rgba(20, 22, 25, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    animation: pzh-ia-fade-b-wrc4kwm1it 0.18s ease;
}
.pzh-ia-modal[b-wrc4kwm1it] {
    width: 100%;
    max-width: 520px;
    background: #fff;
    border-radius: 18px;
    padding: 24px;
    box-shadow: 0 8px 16px rgba(20, 22, 25, 0.10),
                0 28px 56px rgba(20, 22, 25, 0.18);
    animation: pzh-ia-subir-b-wrc4kwm1it 0.22s ease;
}
@keyframes pzh-ia-fade-b-wrc4kwm1it {
    from { opacity: 0; }
    to   { opacity: 1; }
}
@keyframes pzh-ia-subir-b-wrc4kwm1it {
    from { opacity: 0; transform: translateY(14px) scale(0.98); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
}

/* Encabezado del formulario */
.pzh-ia-head[b-wrc4kwm1it] {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 20px;
}
.pzh-ia-head-icon[b-wrc4kwm1it] {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 13px;
    background: linear-gradient(135deg, var(--brand-teal) 0%, var(--pz-green) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--carbon-1);
}
.pzh-ia-head-icon .material-symbols-rounded[b-wrc4kwm1it] {
    font-size: 24px;
}
.pzh-ia-head-textos[b-wrc4kwm1it] {
    flex: 1;
    min-width: 0;
}
.pzh-ia-titulo[b-wrc4kwm1it] {
    font-family: 'Fraunces', serif;
    font-size: 20px;
    font-weight: 600;
    color: var(--carbon-1);
    margin: 0;
    line-height: 1.25;
}
.pzh-ia-sub[b-wrc4kwm1it] {
    font-family: 'Figtree', sans-serif;
    font-size: 13px;
    color: var(--carbon-4);
    margin: 4px 0 0;
    line-height: 1.45;
}
.pzh-ia-cerrar[b-wrc4kwm1it] {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: var(--carbon-5);
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}
.pzh-ia-cerrar:hover[b-wrc4kwm1it] {
    background: var(--cream);
    color: var(--carbon-2);
}
.pzh-ia-cerrar .material-symbols-rounded[b-wrc4kwm1it] {
    font-size: 20px;
}

/* Campos */
.pzh-ia-campo[b-wrc4kwm1it] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 16px;
    min-width: 0;
}
.pzh-ia-campo label[b-wrc4kwm1it] {
    font-family: 'Figtree', sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: var(--carbon-2);
}
.pzh-ia-opcional[b-wrc4kwm1it] {
    font-weight: 400;
    color: var(--carbon-5);
}
.pzh-ia-campo input[b-wrc4kwm1it],
.pzh-ia-campo select[b-wrc4kwm1it] {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--carbon-7);
    border-radius: 10px;
    background: #fff;
    font-family: 'Figtree', sans-serif;
    font-size: 14px;
    color: var(--carbon-1);
    outline: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.pzh-ia-campo input:focus[b-wrc4kwm1it],
.pzh-ia-campo select:focus[b-wrc4kwm1it] {
    border-color: var(--brand-teal);
    box-shadow: 0 0 0 3px rgba(110, 198, 200, 0.25);
}
.pzh-ia-campo input[b-wrc4kwm1it]::placeholder {
    color: var(--carbon-6);
}
.pzh-ia-fila[b-wrc4kwm1it] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

/* Footer */
.pzh-ia-footer[b-wrc4kwm1it] {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 4px;
}
.pzh-ia-footer--centrado[b-wrc4kwm1it] {
    justify-content: center;
}
.pzh-ia-btn-sec[b-wrc4kwm1it] {
    padding: 10px 18px;
    border: 1px solid var(--carbon-7);
    border-radius: 10px;
    background: #fff;
    color: var(--carbon-3);
    font-family: 'Figtree', sans-serif;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}
.pzh-ia-btn-sec:hover[b-wrc4kwm1it] {
    background: var(--cream);
    color: var(--carbon-1);
}
.pzh-ia-btn-pri[b-wrc4kwm1it] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 20px;
    border: none;
    border-radius: 10px;
    background: var(--pz-green);
    color: #fff;
    font-family: 'Figtree', sans-serif;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s ease;
}
.pzh-ia-btn-pri .material-symbols-rounded[b-wrc4kwm1it] {
    font-size: 18px;
}
.pzh-ia-btn-pri:hover:not(:disabled)[b-wrc4kwm1it] {
    background: var(--pz-green-deep);
}
.pzh-ia-btn-pri:disabled[b-wrc4kwm1it] {
    opacity: 0.5;
    cursor: not-allowed;
}
.pzh-ia-btn-pri:focus-visible[b-wrc4kwm1it],
.pzh-ia-btn-sec:focus-visible[b-wrc4kwm1it],
.pzh-ia-cerrar:focus-visible[b-wrc4kwm1it] {
    outline: 2px solid var(--brand-teal);
    outline-offset: 2px;
}

/* Estado generando */
.pzh-ia-generando[b-wrc4kwm1it] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 28px 12px 20px;
}
.pzh-ia-spinner[b-wrc4kwm1it] {
    position: relative;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
    color: var(--brand-teal-deep, #2C6D6F);
}
.pzh-ia-spinner[b-wrc4kwm1it]::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 3px solid rgba(110, 198, 200, 0.25);
    border-top-color: var(--brand-teal);
    animation: pzh-ia-girar-b-wrc4kwm1it 0.9s linear infinite;
}
.pzh-ia-spinner .material-symbols-rounded[b-wrc4kwm1it] {
    font-size: 28px;
    animation: pzh-ia-latir-b-wrc4kwm1it 1.8s ease-in-out infinite;
}
@keyframes pzh-ia-girar-b-wrc4kwm1it {
    to { transform: rotate(360deg); }
}
@keyframes pzh-ia-latir-b-wrc4kwm1it {
    0%, 100% { transform: scale(1); opacity: 0.85; }
    50%      { transform: scale(1.12); opacity: 1; }
}
.pzh-ia-generando-msg[b-wrc4kwm1it] {
    font-family: 'Fraunces', serif;
    font-size: 18px;
    font-weight: 600;
    color: var(--carbon-1);
    margin: 0 0 6px;
}
.pzh-ia-generando-nota[b-wrc4kwm1it] {
    font-family: 'Figtree', sans-serif;
    font-size: 13px;
    color: var(--carbon-4);
    margin: 0;
}

/* Estado error */
.pzh-ia-error[b-wrc4kwm1it] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 16px 8px 4px;
}
.pzh-ia-error-icon[b-wrc4kwm1it] {
    font-size: 40px;
    color: #A32D2D;
    margin-bottom: 10px;
}
.pzh-ia-error-titulo[b-wrc4kwm1it] {
    font-family: 'Fraunces', serif;
    font-size: 19px;
    font-weight: 600;
    color: var(--carbon-1);
    margin: 0 0 6px;
}
.pzh-ia-error-msg[b-wrc4kwm1it] {
    font-family: 'Figtree', sans-serif;
    font-size: 14px;
    color: var(--carbon-3);
    line-height: 1.5;
    margin: 0 0 18px;
    max-width: 360px;
}

/* Estado parcial: la pizarra se creo pero algunos widgets se perdieron */
.pzh-ia-parcial[b-wrc4kwm1it] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 16px 8px 4px;
}
.pzh-ia-parcial-icon[b-wrc4kwm1it] {
    font-size: 40px;
    color: var(--brand-teal-deep, #2C6D6F);
    margin-bottom: 10px;
}
.pzh-ia-parcial-titulo[b-wrc4kwm1it] {
    font-family: 'Fraunces', serif;
    font-size: 19px;
    font-weight: 600;
    color: var(--carbon-1);
    margin: 0 0 6px;
}
.pzh-ia-parcial-msg[b-wrc4kwm1it] {
    font-family: 'Figtree', sans-serif;
    font-size: 14px;
    color: var(--carbon-3);
    line-height: 1.5;
    margin: 0 0 18px;
    max-width: 360px;
}

/* Responsive */
@media (max-width: 540px) {
    .pzh-header-acciones[b-wrc4kwm1it] {
        width: 100%;
    }
    .pzh-header-acciones .pzh-btn-plantillas[b-wrc4kwm1it],
    .pzh-header-acciones .pzh-btn-ia[b-wrc4kwm1it],
    .pzh-header-acciones .pzh-btn-nueva[b-wrc4kwm1it] {
        flex: 1;
        justify-content: center;
    }
    .pzh-ia-modal[b-wrc4kwm1it] {
        padding: 20px 16px;
    }
    .pzh-ia-fila[b-wrc4kwm1it] {
        grid-template-columns: 1fr;
        gap: 0;
    }
}
@media (prefers-reduced-motion: reduce) {
    .pzh-ia-overlay[b-wrc4kwm1it],
    .pzh-ia-modal[b-wrc4kwm1it],
    .pzh-ia-spinner .material-symbols-rounded[b-wrc4kwm1it] {
        animation: none;
    }
}

/* T-118: Diálogo de nueva pizarra y menú de opciones por pizarra */
.pzh-dialog-field[b-wrc4kwm1it] {
    margin: 12px 0 16px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    text-align: left;
}
.pzh-dialog-label[b-wrc4kwm1it] {
    font-family: 'Figtree', sans-serif;
    font-size: 13px;
    font-weight: 500;
    color: var(--carbon-3);
}
.pzh-dialog-input[b-wrc4kwm1it] {
    width: 100%;
    box-sizing: border-box;
    padding: 10px 12px;
    border: 1px solid var(--cream-dark);
    border-radius: 8px;
    font-family: 'Figtree', sans-serif;
    font-size: 14px;
    color: var(--carbon-1);
    background: var(--surface);
    outline: none;
    transition: border-color 0.15s;
}
.pzh-dialog-input:focus[b-wrc4kwm1it] {
    border-color: var(--brand-teal);
}

.pzh-card-opciones-wrap[b-wrc4kwm1it] {
    position: absolute;
    top: 8px;
    right: 80px;
    z-index: 2;
}
.pzh-card-opciones[b-wrc4kwm1it] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border: none;
    border-radius: 8px;
    background: rgba(20,22,25,0.72);
    color: #fff;
    cursor: pointer;
    opacity: 0;
    transform: translateY(-4px);
    transition: opacity 0.15s, transform 0.15s, background 0.15s;
}
.pzh-card-opciones .material-symbols-rounded[b-wrc4kwm1it] {
    font-size: 18px;
}
.pzh-card-opciones:hover[b-wrc4kwm1it] {
    background: var(--pz-green);
}
.pzh-card:hover .pzh-card-opciones[b-wrc4kwm1it] {
    opacity: 1;
    transform: translateY(0);
}
.pzh-card-opciones-wrap:has(.pzh-pizarra-menu) .pzh-card-opciones[b-wrc4kwm1it] {
    opacity: 1;
    transform: translateY(0);
}

.pzh-card-menu-wrap[b-wrc4kwm1it] {
    position: relative;
}

.pzh-pizarra-menu[b-wrc4kwm1it] {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    z-index: 30;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 4px 8px rgba(20,22,25,0.08), 0 16px 32px rgba(20,22,25,0.10);
    padding: 6px;
    min-width: 130px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.pzh-pizarra-menu button[b-wrc4kwm1it] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    border: none;
    background: transparent;
    border-radius: 7px;
    font-family: 'Figtree', sans-serif;
    font-size: 13px;
    color: var(--carbon-3);
    cursor: pointer;
    text-align: left;
    white-space: nowrap;
    width: 100%;
}
.pzh-pizarra-menu button:hover[b-wrc4kwm1it] {
    background: var(--cream);
}
.pzh-pizarra-menu button .material-symbols-rounded[b-wrc4kwm1it] {
    font-size: 16px;
    color: var(--carbon-5);
}
.pzh-pizarra-menu button.danger[b-wrc4kwm1it] {
    color: var(--danger);
}
.pzh-pizarra-menu button.danger .material-symbols-rounded[b-wrc4kwm1it] {
    color: var(--danger);
}

@media (max-width: 768px) {
    .pzh-card-opciones[b-wrc4kwm1it] {
        opacity: 1;
        transform: translateY(0);
    }
}
/* /Pages/PizarronPresentar.razor.rz.scp.css */
/* === Modo presentación (D17-D18): lienzo total, UI mínima oscura translúcida === */

.pp-root[b-1fv7ii0sn2] {
    position: fixed;
    inset: 0;
    background: #0B0C0E;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

/* Lienzo 16:9 letterboxed al viewport */
.pp-canvas[b-1fv7ii0sn2] {
    position: relative;
    width: min(100vw, calc(100vh * 16 / 9));
    height: min(100vh, calc(100vw * 9 / 16));
    background: #FDFCF9;
    overflow: hidden;
}

.pp-canvas-bg[b-1fv7ii0sn2] {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    z-index: 0;
}

/* === Widgets solo lectura === */
.pp-widget[b-1fv7ii0sn2] {
    position: absolute;
    user-select: none;
}

.pp-widget-host[b-1fv7ii0sn2] {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.pp-widget.pp-widget-dibujo[b-1fv7ii0sn2] {
    pointer-events: none;
}

.pp-dibujo[b-1fv7ii0sn2] {
    display: block;
}

/* === Texto (contenedor): escala con la caja (spec §5.5 / §5.2) ===
   .pp-textbox = contenedor de tamano (container-type:size).
   .pp-tx-root = raiz del texto; usa cqw relativo a .pp-textbox.
   Estructura espejo del editor: .tx-box / .tx-root -> .pp-textbox / .pp-tx-root.
   Con esto cqw resuelve contra el ancho de la caja de texto, igual que en el editor. */
.pp-textbox[b-1fv7ii0sn2] {
    width: 100%;
    height: 100%;
    background: white;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(20,22,25,0.08), 0 8px 24px rgba(20,22,25,0.06);
    color: var(--carbon-1);
    font-family: var(--font-sans, 'Figtree', sans-serif);
    overflow: hidden;
    text-align: left;
    box-sizing: border-box;
}

@supports (container-type: size) {
    .pp-textbox[b-1fv7ii0sn2]  { container-type: size; } /* padding movido a .pp-tx-root */
    .pp-tx-root[b-1fv7ii0sn2]  { --tx-base: max(13px, min(6cqw, 22cqh)); font-size: var(--tx-base); }
}
@supports not (container-type: size) {
    /* padding en .pp-textbox ya no; se hereda desde .pp-tx-root */
    .pp-tx-root[b-1fv7ii0sn2]  { --tx-base: 16px; font-size: 16px; }
}

.pp-tx-root[b-1fv7ii0sn2] { line-height: 1.15; min-height: 100%; padding: .375em .5em; } /* padding compacto ~8px; antes en .pp-textbox */
.pp-tx-root h4[b-1fv7ii0sn2]         { font-size: 1.2em;  line-height: 1.25; margin: 0 0 .5em;   font-weight: 600; letter-spacing: -0.005em; color: var(--carbon-1); }
.pp-tx-root p[b-1fv7ii0sn2]          { font-size: 1em;    line-height: 1.5;  margin: .25em 0;    font-weight: 500; color: var(--carbon-1); }
.pp-tx-root .label-row[b-1fv7ii0sn2] { font-size: 1.06em; line-height: 1.4;  margin-top: .85em;  font-weight: 600; color: var(--carbon-2); }
.pp-tx-root ul[b-1fv7ii0sn2],
.pp-tx-root ol[b-1fv7ii0sn2]         { padding-left: 1.4em; margin: .25em 0; }
.pp-tx-root h4:first-child[b-1fv7ii0sn2],
.pp-tx-root p:first-child[b-1fv7ii0sn2],
.pp-tx-root .label-row:first-child[b-1fv7ii0sn2] { margin-top: 0; }
.pp-tx-root h4:last-child[b-1fv7ii0sn2],
.pp-tx-root p:last-child[b-1fv7ii0sn2],
.pp-tx-root .label-row:last-child[b-1fv7ii0sn2]  { margin-bottom: 0; }

.pp-imagen[b-1fv7ii0sn2] {
    width: 100%;
    height: 100%;
    display: block;
    border-radius: 8px;
    pointer-events: none;
}

.pp-imagen-host[b-1fv7ii0sn2] {
    width: 100%;
    height: 100%;
    border-radius: 8px;
    overflow: hidden;
    pointer-events: none;
}

/* === UI flotante con auto-hide (JS alterna .pp-oculto en #pp-root) === */
.pp-ui[b-1fv7ii0sn2] {
    transition: opacity 0.35s ease;
    opacity: 1;
}

.pp-root.pp-oculto .pp-ui[b-1fv7ii0sn2] {
    opacity: 0;
    pointer-events: none;
}

.pp-root.pp-oculto[b-1fv7ii0sn2] {
    cursor: none;
}

/* Indicador de grupo (TL) — no interactivo por diseño */
.pp-grupo[b-1fv7ii0sn2] {
    position: fixed;
    top: 18px;
    left: 20px;
    display: flex;
    align-items: center;
    gap: 8px;
    background: rgba(20, 22, 25, 0.86);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    color: var(--cream);
    font-family: var(--font-sans, 'Figtree', sans-serif);
    font-size: 13px;
    font-weight: 600;
    padding: 8px 14px;
    border-radius: 999px;
    pointer-events: none;
    z-index: 2000;
}

.pp-grupo-dot[b-1fv7ii0sn2] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--brand-teal);
}

/* Contador (TR) */
.pp-contador[b-1fv7ii0sn2] {
    position: fixed;
    top: 18px;
    right: 20px;
    background: rgba(20, 22, 25, 0.86);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    color: var(--cream);
    font-family: var(--font-sans, 'Figtree', sans-serif);
    font-size: 13px;
    font-weight: 600;
    padding: 8px 14px;
    border-radius: 999px;
    pointer-events: none;
    z-index: 2000;
}

/* === Barra inferior oscura translúcida (D17) === */
.pp-bar[b-1fv7ii0sn2] {
    position: fixed;
    left: 50%;
    transform: translateX(-50%);
    bottom: 22px;
    display: flex;
    align-items: center;
    gap: 6px;
    background: rgba(20, 22, 25, 0.86);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-radius: 16px;
    padding: 8px 12px;
    z-index: 2100;
    max-width: 94vw;
    flex-wrap: wrap;
    justify-content: center;
}

.pp-bar-btn[b-1fv7ii0sn2] {
    width: 38px;
    height: 38px;
    border: none;
    background: transparent;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: #D9D5C9;
    padding: 0;
    transition: background 0.12s, color 0.12s;
}

.pp-bar-btn .material-symbols-rounded[b-1fv7ii0sn2] {
    font-size: 22px;
}

.pp-bar-btn:hover[b-1fv7ii0sn2] {
    background: rgba(244, 240, 230, 0.12);
    color: #FFFFFF;
}

.pp-bar-btn.active[b-1fv7ii0sn2] {
    background: rgba(109, 199, 208, 0.22);
    color: var(--brand-teal);
}

.pp-bar-btn:disabled[b-1fv7ii0sn2] {
    opacity: 0.3;
    cursor: not-allowed;
}

.pp-bar-num[b-1fv7ii0sn2] {
    color: var(--cream);
    font-family: var(--font-sans, 'Figtree', sans-serif);
    font-size: 13px;
    font-weight: 700;
    min-width: 46px;
    text-align: center;
}

.pp-bar-divider[b-1fv7ii0sn2] {
    width: 1px;
    height: 22px;
    background: rgba(244, 240, 230, 0.18);
    margin: 0 4px;
}

/* Miniaturas del deck: chips numerados */
.pp-minis[b-1fv7ii0sn2] {
    display: flex;
    align-items: center;
    gap: 5px;
    margin: 0 4px;
    max-width: 40vw;
    overflow-x: auto;
    scrollbar-width: none;
}

.pp-minis[b-1fv7ii0sn2]::-webkit-scrollbar {
    display: none;
}

.pp-mini[b-1fv7ii0sn2] {
    min-width: 30px;
    height: 30px;
    border: 1.5px solid rgba(244, 240, 230, 0.25);
    background: transparent;
    border-radius: 8px;
    color: #D9D5C9;
    font-family: var(--font-sans, 'Figtree', sans-serif);
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.12s, border-color 0.12s, color 0.12s;
    padding: 0 6px;
}

.pp-mini:hover[b-1fv7ii0sn2] {
    border-color: rgba(244, 240, 230, 0.55);
    color: #FFFFFF;
}

.pp-mini.active[b-1fv7ii0sn2] {
    background: var(--brand-teal);
    border-color: var(--brand-teal);
    color: var(--carbon-1);
}

/* Salir: acento teal (regla 3.4: barra negra = presentando) */
.pp-bar-salir[b-1fv7ii0sn2] {
    display: flex;
    align-items: center;
    gap: 6px;
    border: none;
    background: var(--brand-teal);
    color: var(--carbon-1);
    font-family: var(--font-sans, 'Figtree', sans-serif);
    font-size: 13px;
    font-weight: 700;
    padding: 9px 16px;
    border-radius: 11px;
    cursor: pointer;
    transition: filter 0.12s;
}

.pp-bar-salir:hover[b-1fv7ii0sn2] {
    filter: brightness(1.08);
}

.pp-bar-salir .material-symbols-rounded[b-1fv7ii0sn2] {
    font-size: 18px;
}

/* === Toolbar de dibujo en presentación === */
.pp-draw-toolbar[b-1fv7ii0sn2] {
    position: fixed;
    left: 50%;
    transform: translateX(-50%);
    bottom: 86px;
    display: flex;
    align-items: center;
    gap: 5px;
    background: rgba(20, 22, 25, 0.92);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-radius: 13px;
    padding: 7px 10px;
    z-index: 2200;
}

.ppd-btn[b-1fv7ii0sn2] {
    width: 34px;
    height: 34px;
    border: none;
    background: transparent;
    border-radius: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: #D9D5C9;
    padding: 0;
    transition: background 0.12s, color 0.12s;
}

.ppd-btn .material-symbols-rounded[b-1fv7ii0sn2] {
    font-size: 20px;
}

.ppd-btn:hover[b-1fv7ii0sn2] {
    background: rgba(244, 240, 230, 0.12);
    color: #FFFFFF;
}

.ppd-btn.active[b-1fv7ii0sn2] {
    background: rgba(109, 199, 208, 0.22);
    color: var(--brand-teal);
}

.ppd-color[b-1fv7ii0sn2] {
    width: 21px;
    height: 21px;
    border-radius: 50%;
    border: 2px solid rgba(244, 240, 230, 0.3);
    cursor: pointer;
    padding: 0;
    margin: 0 2px;
    transition: transform 0.12s, border-color 0.12s;
}

.ppd-color:hover[b-1fv7ii0sn2] {
    transform: scale(1.15);
}

.ppd-color.active[b-1fv7ii0sn2] {
    border-color: var(--brand-teal);
    transform: scale(1.15);
}

.ppd-divider[b-1fv7ii0sn2] {
    width: 1px;
    height: 20px;
    background: rgba(244, 240, 230, 0.18);
    margin: 0 4px;
}

/* === Loading / error === */
.pp-loading[b-1fv7ii0sn2] {
    position: fixed;
    inset: 0;
    background: #0B0C0E;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    color: #D9D5C9;
    font-family: var(--font-sans, 'Figtree', sans-serif);
    z-index: 3000;
}

.pp-loading h2[b-1fv7ii0sn2] {
    font-family: var(--font-serif, 'Fraunces', serif);
    font-size: 20px;
    font-weight: 600;
    color: var(--cream);
    margin: 0;
}

.pp-spinner[b-1fv7ii0sn2] {
    width: 34px;
    height: 34px;
    border: 3px solid rgba(244, 240, 230, 0.15);
    border-top-color: var(--brand-teal);
    border-radius: 50%;
    animation: pp-spin 0.8s linear infinite;
}

@@keyframes pp-spin {
    to[b-1fv7ii0sn2] { transform: rotate(360deg); }
}

.pp-error-icon[b-1fv7ii0sn2] {
    font-size: 44px;
    color: #D97706;
}

.pp-volver-btn[b-1fv7ii0sn2] {
    border: 1px solid rgba(244, 240, 230, 0.3);
    background: transparent;
    color: var(--cream);
    font-family: var(--font-sans, 'Figtree', sans-serif);
    font-size: 14px;
    font-weight: 600;
    padding: 10px 20px;
    border-radius: 10px;
    cursor: pointer;
    transition: background 0.12s;
}

.pp-volver-btn:hover[b-1fv7ii0sn2] {
    background: rgba(244, 240, 230, 0.1);
}

/* === Responsive: la barra se compacta en pantallas chicas === */
@@media (max-width: 720px) {
    .pp-bar[b-1fv7ii0sn2] {
        bottom: 12px;
        padding: 6px 8px;
        gap: 3px;
        border-radius: 13px;
    }

    .pp-bar-btn[b-1fv7ii0sn2] {
        width: 34px;
        height: 34px;
    }

    .pp-minis[b-1fv7ii0sn2] {
        max-width: 30vw;
    }

    .pp-bar-salir span:last-child[b-1fv7ii0sn2] {
        display: none; /* solo icono en movil */
    }

    .pp-grupo[b-1fv7ii0sn2],
    .pp-contador[b-1fv7ii0sn2] {
        font-size: 11px;
        padding: 6px 10px;
        top: 10px;
    }

    .pp-grupo[b-1fv7ii0sn2] {
        left: 12px;
    }

    .pp-contador[b-1fv7ii0sn2] {
        right: 12px;
    }

    .pp-draw-toolbar[b-1fv7ii0sn2] {
        bottom: 66px;
        padding: 5px 7px;
    }
}

/* === Reconocimiento en la pizarra: bocina + menu "como celebrar" (Cesar 2026-10-12) === */
.pp-bar-btn.pp-mudo[b-1fv7ii0sn2] {
    color: #FCA5A5;
}

.pp-cel-wrap[b-1fv7ii0sn2] {
    position: relative;
}

.pp-cel-menu[b-1fv7ii0sn2] {
    position: absolute;
    bottom: calc(100% + 14px);
    left: 50%;
    transform: translateX(-50%);
    width: 290px;
    max-width: 86vw;
    background: rgba(20, 22, 25, 0.96);
    border: 1px solid rgba(244, 240, 230, 0.12);
    border-radius: 14px;
    padding: 10px;
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.45);
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-family: var(--font-sans, 'Figtree', sans-serif);
    color: var(--cream);
}

.pp-cel-tit[b-1fv7ii0sn2] {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #A8A397;
    padding: 6px 6px 2px;
}

.pp-cel-op[b-1fv7ii0sn2] {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    border: none;
    background: transparent;
    color: inherit;
    text-align: left;
    padding: 8px;
    border-radius: 10px;
    cursor: pointer;
}

.pp-cel-op:hover[b-1fv7ii0sn2] {
    background: rgba(244, 240, 230, 0.08);
}

.pp-cel-op.active[b-1fv7ii0sn2] {
    background: rgba(109, 199, 208, 0.18);
}

.pp-cel-op.active .material-symbols-rounded[b-1fv7ii0sn2] {
    color: var(--brand-teal);
}

.pp-cel-txt[b-1fv7ii0sn2] {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.pp-cel-txt b[b-1fv7ii0sn2] {
    font-size: 14px;
}

.pp-cel-txt small[b-1fv7ii0sn2] {
    font-size: 12px;
    color: #A8A397;
}

.pp-cel-chips[b-1fv7ii0sn2] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 2px 6px 4px;
}

.pp-cel-chip[b-1fv7ii0sn2] {
    border: 1px solid rgba(244, 240, 230, 0.18);
    background: transparent;
    color: inherit;
    font: inherit;
    font-size: 13px;
    padding: 5px 11px;
    border-radius: 999px;
    cursor: pointer;
}

.pp-cel-chip.active[b-1fv7ii0sn2] {
    background: var(--brand-teal);
    border-color: var(--brand-teal);
    color: #141619;
    font-weight: 700;
}

.pp-cel-switch[b-1fv7ii0sn2] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    padding: 8px 6px 4px;
    cursor: pointer;
}

.pp-cel-switch input[b-1fv7ii0sn2] {
    accent-color: var(--brand-teal);
    width: 16px;
    height: 16px;
}
/* /Pages/PuntosExtra.razor.rz.scp.css */
/* === Puntos Extra · v2 wrapper (Fase D) === */
.pe-page[b-tdi4d8evnk] {
    padding: 22px 28px 36px;
    max-width: 100%;
    font-family: var(--font-sans);
    color: var(--text-primary);
}

/* === Breadcrumb v2 === */
.pe-bc[b-tdi4d8evnk] {
    display: flex; align-items: center; gap: 6px;
    margin-bottom: 14px; font-size: 12px;
    color: var(--text-muted); flex-wrap: wrap;
}
.pe-bc .msr[b-tdi4d8evnk] { font-size: 14px !important; }
.pe-bc a[b-tdi4d8evnk] { color: var(--text-secondary); text-decoration: none; cursor: pointer; transition: color 0.15s ease; }
.pe-bc a:hover[b-tdi4d8evnk] { color: var(--brand-teal-deep); }
.pe-sep[b-tdi4d8evnk] { color: var(--text-muted); }
.pe-clase[b-tdi4d8evnk] { color: var(--text-secondary); font-weight: 500; }
.pe-current[b-tdi4d8evnk] { color: var(--text-primary); font-weight: 600; }

/* === Header v2 === */
.pe-h[b-tdi4d8evnk] {
    display: flex; align-items: center; gap: 14px;
    margin-bottom: 10px;
}
.pe-h-icon[b-tdi4d8evnk] {
    width: 44px; height: 44px; border-radius: 12px;
    background: linear-gradient(135deg, #1D9E75, #047857);
    color: #FFFFFF;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(29, 158, 117, 0.25);
}
.pe-h-icon .msr[b-tdi4d8evnk] { font-size: 24px !important; }
.pe-h-block[b-tdi4d8evnk] { flex: 1; min-width: 0; }
.pe-h-title[b-tdi4d8evnk] {
    font-family: var(--font-serif);
    font-size: 28px; font-weight: 600;
    color: var(--text-primary);
    letter-spacing: -0.5px; line-height: 1.1;
    margin: 0;
}
.pe-h-sub[b-tdi4d8evnk] { font-size: 13px; color: var(--text-secondary); margin: 4px 0 0; }

.pe-periodo[b-tdi4d8evnk] { font-size: 12px; color: #888; margin-bottom: 14px; display: flex; align-items: center; gap: 4px; }
.pe-periodo strong[b-tdi4d8evnk] { color: var(--pe-primary); }

/* Pills */
.class-pills[b-tdi4d8evnk] { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 16px; }
.pill[b-tdi4d8evnk] {
    padding: 6px 14px; border-radius: 16px; font-size: 12px; cursor: pointer;
    border: 1px solid #ddd; color: #666; background: transparent; transition: all 0.15s;
}
.pill:hover[b-tdi4d8evnk] { border-color: var(--pe-primary); color: var(--pe-primary); }
.theme-decimas .pill.active[b-tdi4d8evnk] { background: #4BA8AA; color: #fff; border-color: #4BA8AA; }
.theme-puntos .pill.active[b-tdi4d8evnk] { background: #EF9F27; color: #fff; border-color: #EF9F27; }

/* Loading */
.loading-state[b-tdi4d8evnk] { display: flex; flex-direction: column; align-items: center; padding: 60px 20px; gap: 16px; color: #999; font-size: 14px; }
.spinner[b-tdi4d8evnk] { width: 36px; height: 36px; border: 3px solid #E8F4F8; border-top: 3px solid #4BA8AA; border-radius: 50%; animation: spin-b-tdi4d8evnk 0.8s linear infinite; }
@keyframes spin-b-tdi4d8evnk { to { transform: rotate(360deg); } }

/* ===== THEME VARIABLES ===== */
.theme-decimas[b-tdi4d8evnk] {
    --pe-primary: #4BA8AA;
    --pe-primary-light: #6EC6C8;
    --pe-bg: #E8F4F8;
    --pe-dark: #3A8E90;
    --pe-text-on-bg: #3A8E90;
    --pe-text-on-primary: #fff;
    --pe-border: #B5DEDE;
}
.theme-puntos[b-tdi4d8evnk] {
    --pe-primary: #EF9F27;
    --pe-primary-light: #FAC775;
    --pe-bg: #FAEEDA;
    --pe-dark: #BA7517;
    --pe-text-on-bg: #854F0B;
    --pe-text-on-primary: #fff;
    --pe-border: #F4C28A;
}

/* Topbar */
.pe-topbar[b-tdi4d8evnk] {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 16px; flex-wrap: wrap; gap: 10px;
}
.pe-mode-toggle[b-tdi4d8evnk] {
    display: flex; border-radius: 8px; overflow: hidden; border: 1.5px solid var(--pe-primary);
}
.pe-mode-btn[b-tdi4d8evnk] {
    padding: 8px 28px; font-size: 13px; font-weight: 500; cursor: pointer;
    border: none; background: transparent; color: var(--pe-primary);
    transition: all 0.15s; font-family: inherit;
}
.pe-mode-btn.active[b-tdi4d8evnk] { background: var(--pe-primary); color: var(--pe-text-on-primary); }
.pe-search[b-tdi4d8evnk] {
    display: flex; align-items: center; gap: 5px; border: 1px solid #ddd;
    border-radius: 8px; padding: 6px 10px; width: 200px;
}
.pe-search input[b-tdi4d8evnk] { border: none; outline: none; font-size: 12px; width: 100%; background: transparent; font-family: inherit; }

/* Info banner */
.pe-info-banner[b-tdi4d8evnk] {
    padding: 10px 14px; font-size: 12px; line-height: 1.5; margin-bottom: 16px;
    background: var(--pe-bg); color: var(--pe-text-on-bg);
    border-left: 3px solid var(--pe-primary); border-radius: 0;
}
.pe-info-banner strong[b-tdi4d8evnk] { font-weight: 500; }

/* Filters */
.pe-filters[b-tdi4d8evnk] { display: flex; gap: 6px; margin-bottom: 14px; }
.pe-fc[b-tdi4d8evnk] {
    padding: 4px 10px; border-radius: 6px; font-size: 11px; border: 1px solid #ddd;
    cursor: pointer; background: transparent; color: #888; transition: all 0.15s; font-family: inherit;
}
.pe-fc:hover[b-tdi4d8evnk] { border-color: var(--pe-primary); color: var(--pe-primary); }
.pe-fc.active[b-tdi4d8evnk] { background: var(--pe-primary); color: #fff; border-color: var(--pe-primary); }

/* Summary */
.pe-summary[b-tdi4d8evnk] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-bottom: 16px; }
.pe-sbox[b-tdi4d8evnk] { text-align: center; padding: 8px; border-radius: 8px; background: var(--pe-bg); color: var(--pe-text-on-bg); }
.pe-sbox-num[b-tdi4d8evnk] { font-size: 18px; font-weight: 500; }
.pe-sbox-label[b-tdi4d8evnk] { font-size: 10px; margin-top: 1px; }

/* List */
.pe-list[b-tdi4d8evnk] { border: 1px solid #e0e0e0; border-radius: 12px; overflow: hidden; }
.pe-list-header[b-tdi4d8evnk] {
    display: grid; grid-template-columns: minmax(0, 1fr) 100px 130px;
    align-items: center; padding: 10px 16px; font-size: 12px; font-weight: 500; gap: 8px;
    background: var(--pe-bg); color: var(--pe-text-on-bg);
}
.pe-list-row[b-tdi4d8evnk] {
    display: grid; grid-template-columns: minmax(0, 1fr) 100px 130px;
    align-items: center; padding: 10px 16px; border-bottom: 0.5px solid #eee; gap: 8px;
    transition: background 0.1s;
}
.pe-list-row:last-child[b-tdi4d8evnk] { border-bottom: none; }
.theme-decimas .pe-list-row:hover[b-tdi4d8evnk] { background: rgba(75,168,170,0.04); }
.theme-puntos .pe-list-row:hover[b-tdi4d8evnk] { background: rgba(239,159,39,0.04); }

.pe-col-name[b-tdi4d8evnk] { overflow: hidden; }
.pe-alumno-name[b-tdi4d8evnk] {
    font-size: 13px; font-weight: 500; white-space: nowrap;
    overflow: hidden; text-overflow: ellipsis; display: block;
}
.pe-col-acum[b-tdi4d8evnk] { font-size: 14px; font-weight: 500; text-align: center; }
.pe-col-ctrl[b-tdi4d8evnk] { text-align: center; }

.pe-controls[b-tdi4d8evnk] { display: flex; align-items: center; gap: 4px; justify-content: center; }
.pe-ctrl-minus[b-tdi4d8evnk] {
    width: 32px; height: 32px; border-radius: 50%; border: 1.5px solid var(--pe-primary);
    color: var(--pe-primary); background: transparent; display: flex; align-items: center;
    justify-content: center; cursor: pointer; transition: all 0.12s;
}
.pe-ctrl-minus:hover[b-tdi4d8evnk] { background: var(--pe-bg); }
.pe-ctrl-minus:active[b-tdi4d8evnk] { transform: scale(0.92); }
.pe-ctrl-val[b-tdi4d8evnk] {
    min-width: 44px; height: 32px; border-radius: 6px; display: flex; align-items: center;
    justify-content: center; font-size: 14px; font-weight: 500;
    background: var(--pe-bg); color: var(--pe-text-on-bg);
}
.pe-ctrl-plus[b-tdi4d8evnk] {
    width: 32px; height: 32px; border-radius: 50%; border: 1.5px solid var(--pe-primary);
    background: var(--pe-primary); color: var(--pe-text-on-primary); display: flex;
    align-items: center; justify-content: center; cursor: pointer; transition: all 0.12s;
}
.pe-ctrl-plus:hover[b-tdi4d8evnk] { background: var(--pe-dark); border-color: var(--pe-dark); }
.pe-ctrl-plus:active[b-tdi4d8evnk] { transform: scale(0.92); }

.acum-pos[b-tdi4d8evnk] { color: #639922; }
.acum-zero[b-tdi4d8evnk] { color: #bbb; }
.acum-neg[b-tdi4d8evnk] { color: #E24B4A; }

.pe-autosave[b-tdi4d8evnk] {
    text-align: center; font-size: 11px; color: #aaa; margin-top: 10px;
    display: flex; align-items: center; justify-content: center; gap: 4px;
}

/* Responsive */
@media (max-width: 600px) {
    .pe-page[b-tdi4d8evnk] { padding: 12px; }
    .pe-topbar[b-tdi4d8evnk] { flex-direction: column; align-items: stretch; }
    .pe-search[b-tdi4d8evnk] { width: 100%; }
    .pe-mode-toggle[b-tdi4d8evnk] { width: 100%; }
    .pe-mode-btn[b-tdi4d8evnk] { flex: 1; }
    .pe-list-header[b-tdi4d8evnk], .pe-list-row[b-tdi4d8evnk] { grid-template-columns: minmax(0, 1fr) 60px 120px; }
}
@media (max-width: 480px) {
    .pe-summary[b-tdi4d8evnk] { grid-template-columns: repeat(2, 1fr); }
}
/* /Pages/Recuperar.razor.rz.scp.css */
/* Estilos específicos de la pantalla Recuperar (código OTP, lista de requisitos, reenvío)
   Los estilos del cascarón común viven en Components/UI/AuthShell.razor.css */

.auth-code[b-aesqmth988] {
    width: 100%;
    min-height: 44px;
    box-sizing: border-box;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    outline: none;
    background: var(--bg-cream);
    color: var(--text-primary);
    font: inherit;
    font-family: var(--font-mono);
    font-size: 24px;
    font-weight: 700;
    letter-spacing: .28em;
    text-align: center;
    padding: 13px;
    transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

.auth-code:focus[b-aesqmth988] {
    border-color: var(--brand-teal-deep);
    background: var(--bg-panel);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand-teal-primary) 35%, transparent);
}

.auth-code:disabled[b-aesqmth988] { cursor: wait; opacity: .7; }
.auth-code.pf-input--error[b-aesqmth988] { border-color: var(--danger); }

.pf-reqs[b-aesqmth988] {
    display: grid;
    gap: 6px;
    margin: 10px 0 0;
    padding: 0;
    list-style: none;
}

.pf-req[b-aesqmth988] {
    display: flex;
    align-items: center;
    gap: 7px;
    color: var(--text-secondary);
    font-size: 12.5px;
}

.pf-req .msr[b-aesqmth988] { font-size: 17px; }
.pf-req--ok[b-aesqmth988] { color: var(--success-ink); font-weight: 650; }

.auth-hint[b-aesqmth988] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 7px;
    color: var(--text-secondary);
    font-size: 12px;
}

.auth-resend[b-aesqmth988] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    margin-top: 14px;
}

.auth-resend-why[b-aesqmth988] { color: var(--text-secondary); font-size: 12px; line-height: 1.4; }

@media (max-width: 520px) {
    .auth-resend[b-aesqmth988] { grid-template-columns: minmax(0, 1fr); }
}
/* /Pages/ReporteAsistencia.razor.rz.scp.css */
/* === Reporte Asistencia · v2 wrapper (Fase D) === */
.ra-container[b-s4ubuaxhht] {
    padding: 22px 28px 36px;
    max-width: 100%;
    font-family: var(--font-sans);
    color: var(--text-primary);
}

/* === Breadcrumb v2 === */
.ra-bc[b-s4ubuaxhht] {
    display: flex; align-items: center; gap: 6px;
    margin-bottom: 14px; font-size: 12px;
    color: var(--text-muted); flex-wrap: wrap;
}
.ra-bc .msr[b-s4ubuaxhht] { font-size: 14px !important; }
.ra-bc a[b-s4ubuaxhht] { color: var(--text-secondary); text-decoration: none; cursor: pointer; transition: color 0.15s ease; }
.ra-bc a:hover[b-s4ubuaxhht] { color: var(--brand-teal-deep); }
.ra-sep[b-s4ubuaxhht] { color: var(--text-muted); }
.ra-clase[b-s4ubuaxhht] { color: var(--text-secondary); font-weight: 500; }
.ra-current[b-s4ubuaxhht] { color: var(--text-primary); font-weight: 600; }

/* === Header v2 === */
.ra-h[b-s4ubuaxhht] {
    display: flex; align-items: center; gap: 14px;
    margin-bottom: 20px;
}
.ra-h-icon[b-s4ubuaxhht] {
    width: 44px; height: 44px; border-radius: 12px;
    background: linear-gradient(135deg, #BA7517, #92400E);
    color: #FFFFFF;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(186, 117, 23, 0.25);
}
.ra-h-icon .msr[b-s4ubuaxhht] { font-size: 24px !important; }
.ra-h-block[b-s4ubuaxhht] { flex: 1; min-width: 0; }
.ra-h-title[b-s4ubuaxhht] {
    font-family: var(--font-serif);
    font-size: 28px; font-weight: 600;
    color: var(--text-primary);
    letter-spacing: -0.5px; line-height: 1.1;
    margin: 0;
}
.ra-h-sub[b-s4ubuaxhht] { font-size: 13px; color: var(--text-secondary); margin: 4px 0 0; }

/* Pills */
.class-pills[b-s4ubuaxhht] { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 16px; }
.pill[b-s4ubuaxhht] { padding: 6px 14px; border-radius: 16px; font-size: 12px; cursor: pointer; border: 1px solid #ddd; color: #666; background: transparent; transition: all 0.15s; }
.pill:hover[b-s4ubuaxhht] { border-color: #4BA8AA; color: #4BA8AA; }
.pill.active[b-s4ubuaxhht] { background: #4BA8AA; color: #fff; border-color: #4BA8AA; }

/* Loading */
.loading-state[b-s4ubuaxhht] { display: flex; flex-direction: column; align-items: center; padding: 60px 20px; gap: 16px; color: #999; font-size: 14px; }
.spinner[b-s4ubuaxhht] { width: 36px; height: 36px; border: 3px solid #E8F4F8; border-top: 3px solid #4BA8AA; border-radius: 50%; animation: spin-b-s4ubuaxhht 0.8s linear infinite; }
@keyframes spin-b-s4ubuaxhht { to { transform: rotate(360deg); } }

/* Toolbar */
.ra-toolbar[b-s4ubuaxhht] { display: flex; gap: 8px; align-items: center; margin-bottom: 12px; flex-wrap: wrap; }
.ra-search[b-s4ubuaxhht] { display: flex; align-items: center; gap: 5px; border: 1px solid #ddd; border-radius: 8px; padding: 6px 10px; width: 200px; }
.ra-search input[b-s4ubuaxhht] { border: none; outline: none; font-size: 12px; width: 100%; background: transparent; font-family: inherit; }
.ra-periodo[b-s4ubuaxhht] { padding: 6px 12px; border: 1px solid #ddd; border-radius: 8px; font-size: 12px; font-family: inherit; }
.ra-btn[b-s4ubuaxhht] { display: flex; align-items: center; gap: 4px; border: 1px solid #ddd; border-radius: 8px; padding: 6px 12px; font-size: 12px; cursor: pointer; background: #fff; color: #666; font-family: inherit; transition: all 0.15s; }
.ra-btn:hover[b-s4ubuaxhht] { border-color: #4BA8AA; color: #4BA8AA; }
.ra-btn .msr[b-s4ubuaxhht] { font-size: 14px; }
.ra-btn-save[b-s4ubuaxhht] { background: #6EC6C8; color: #fff; border-color: #6EC6C8; margin-left: auto; }
.ra-btn-save:hover[b-s4ubuaxhht] { background: #4BA8AA; }
.ra-btn-save:disabled[b-s4ubuaxhht] { opacity: 0.5; cursor: not-allowed; }

/* Legend */
.ra-legend[b-s4ubuaxhht] { display: flex; gap: 12px; margin-bottom: 12px; font-size: 12px; color: #888; }
.ra-lg[b-s4ubuaxhht] { display: flex; align-items: center; gap: 4px; }
.ra-lg-dot[b-s4ubuaxhht] { width: 8px; height: 8px; border-radius: 2px; }

/* Dashboard */
.ra-dash[b-s4ubuaxhht] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-bottom: 14px; }
.ra-dc[b-s4ubuaxhht] { text-align: center; padding: 8px; border-radius: 8px; }
.ra-dc-n[b-s4ubuaxhht] { font-size: 18px; font-weight: 500; }
.ra-dc-l[b-s4ubuaxhht] { font-size: 10px; margin-top: 2px; }
.ra-dc-teal[b-s4ubuaxhht] { background: #E8F4F8; color: #3A8E90; }
.ra-dc-green[b-s4ubuaxhht] { background: #EAF3DE; color: #3B6D11; }
.ra-dc-red[b-s4ubuaxhht] { background: #FCEBEB; color: #A32D2D; }
.ra-dc-purple[b-s4ubuaxhht] { background: #F3F0F8; color: #7B68A8; }

/* Table */
.ra-table-wrap[b-s4ubuaxhht] { border: 1px solid #e0e0e0; border-radius: 12px; overflow: hidden; }
.ra-table-scroll[b-s4ubuaxhht] { overflow-x: auto; }
.ra-table[b-s4ubuaxhht] { border-collapse: separate; border-spacing: 0; width: 100%; min-width: 1000px; }
.ra-table thead[b-s4ubuaxhht] { position: sticky; top: 0; z-index: 10; }
.ra-table th[b-s4ubuaxhht] { background: #E8F4F8; font-weight: 500; font-size: 12px; padding: 10px 6px; text-align: center; border-bottom: 2px solid #6EC6C8; white-space: nowrap; }
.ra-th-al[b-s4ubuaxhht] { text-align: left; padding-left: 14px; min-width: 220px; position: sticky; left: 0; z-index: 15; background: #E8F4F8; box-shadow: 4px 0 6px -2px rgba(0,0,0,0.08); }
.ra-th-cnt[b-s4ubuaxhht] { min-width: 50px; }
.ra-th-dt[b-s4ubuaxhht] { min-width: 110px; font-size: 11px; }
.ra-table td[b-s4ubuaxhht] { padding: 6px; text-align: center; font-size: 13px; border-bottom: 1px solid #eee; }
.ra-td-al[b-s4ubuaxhht] { text-align: left; padding-left: 14px; min-width: 220px; position: sticky; left: 0; z-index: 5; background: #fff; font-weight: 500; box-shadow: 4px 0 6px -2px rgba(0,0,0,0.05); }
.ra-table tr:hover td[b-s4ubuaxhht] { background: rgba(75,168,170,0.03); }
.ra-table tr:hover .ra-td-al[b-s4ubuaxhht] { background: #EFF8F8; }
.ra-cnt-a[b-s4ubuaxhht] { color: #639922; font-weight: 500; }
.ra-cnt-f[b-s4ubuaxhht] { color: #E24B4A; font-weight: 500; }

/* Attendance cell */
.ra-att-cell[b-s4ubuaxhht] { position: relative; }
.ra-att-btn[b-s4ubuaxhht] {
    display: inline-flex; align-items: center; gap: 3px; padding: 4px 10px;
    border-radius: 6px; font-size: 11px; font-weight: 500; cursor: pointer;
    border: 1px solid; min-width: 80px; justify-content: center; transition: all 0.1s;
}
.ra-att-btn:hover[b-s4ubuaxhht] { filter: brightness(0.95); }
.ra-arrow[b-s4ubuaxhht] { font-size: 10px; opacity: 0.5; margin-left: 2px; }

/* State colors */
.ra-att-a[b-s4ubuaxhht] { background: #EAF3DE; color: #3B6D11; border-color: #C0DD97; }
.ra-att-f[b-s4ubuaxhht] { background: #FCEBEB; color: #A32D2D; border-color: #F7C1C1; }
.ra-att-r[b-s4ubuaxhht] { background: #FAEEDA; color: #854F0B; border-color: #FAC775; }
.ra-att-j[b-s4ubuaxhht] { background: #F3F0F8; color: #7B68A8; border-color: #D5CCE8; }
.ra-att-e[b-s4ubuaxhht] { background: #f9f9f9; color: #bbb; border-color: #e0e0e0; }

/* Dropdown */
.ra-dropdown[b-s4ubuaxhht] {
    position: absolute; top: 100%; left: 50%; transform: translateX(-50%);
    background: #fff; border: 1px solid #ddd; border-radius: 8px; padding: 4px;
    z-index: 20; min-width: 140px; box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
.ra-dd-item[b-s4ubuaxhht] { display: flex; align-items: center; gap: 6px; padding: 6px 10px; border-radius: 6px; font-size: 12px; cursor: pointer; }
.ra-dd-item:hover[b-s4ubuaxhht] { background: #f5f5f5; }
.ra-dd-item .msr[b-s4ubuaxhht] { font-size: 14px; }
.ra-dd-a[b-s4ubuaxhht] { color: #3B6D11; }
.ra-dd-a .msr[b-s4ubuaxhht] { color: #639922; }
.ra-dd-f[b-s4ubuaxhht] { color: #A32D2D; }
.ra-dd-f .msr[b-s4ubuaxhht] { color: #E24B4A; }
.ra-dd-r[b-s4ubuaxhht] { color: #854F0B; }
.ra-dd-r .msr[b-s4ubuaxhht] { color: #EF9F27; }
.ra-dd-j[b-s4ubuaxhht] { color: #7B68A8; }
.ra-dd-j .msr[b-s4ubuaxhht] { color: #9B59B6; }

/* Empty */
.ra-empty[b-s4ubuaxhht] { display: flex; flex-direction: column; align-items: center; padding: 40px 20px; gap: 8px; color: #ccc; font-size: 13px; }

/* Responsive */
@media (max-width: 768px) {
    .ra-container[b-s4ubuaxhht] { padding: 12px; }
    .ra-th-al[b-s4ubuaxhht], .ra-td-al[b-s4ubuaxhht] { min-width: 170px; }
}
@media (max-width: 600px) {
    .ra-toolbar[b-s4ubuaxhht] { flex-direction: column; align-items: stretch; }
    .ra-search[b-s4ubuaxhht] { width: 100%; }
    .ra-btn-save[b-s4ubuaxhht] { margin-left: 0; }
    .ra-dash[b-s4ubuaxhht] { grid-template-columns: repeat(2, 1fr); }
}
/* /Pages/Showcase.razor.rz.scp.css */
.sw-page[b-qs7e3zec1e] {
    background:
        radial-gradient(circle at 15% 10%, rgba(110, 198, 200, 0.06) 0%, transparent 45%),
        radial-gradient(circle at 90% 90%, rgba(217, 119, 6, 0.03) 0%, transparent 50%),
        var(--bg);
    min-height: 100%;
}

/* ===== Banner ===== */
.sw-banner[b-qs7e3zec1e] {
    background: linear-gradient(135deg, #1E2126 0%, #2A2E35 100%);
    color: #FFFFFF;
    padding: 28px 36px;
    position: relative;
    overflow: hidden;
}

.sw-banner[b-qs7e3zec1e]::before {
    content: "";
    position: absolute;
    top: -60px;
    right: -60px;
    width: 240px;
    height: 240px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(110, 198, 200, 0.25), transparent 65%);
}

.sw-banner-content[b-qs7e3zec1e] { position: relative; z-index: 1; }

.sw-banner-tag[b-qs7e3zec1e] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 11px;
    background: rgba(110, 198, 200, 0.18);
    color: var(--brand-teal);
    border-radius: 20px;
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    margin-bottom: 12px;
}

.sw-banner-tag .msr[b-qs7e3zec1e] { font-size: 13px !important; }

.sw-banner-title[b-qs7e3zec1e] {
    font-family: var(--font-serif);
    font-size: 32px;
    font-weight: 600;
    letter-spacing: -0.7px;
    line-height: 1.1;
    margin: 0 0 8px;
}

.sw-banner-title em[b-qs7e3zec1e] {
    color: var(--brand-teal);
    font-style: italic;
    font-weight: 500;
}

.sw-banner-desc[b-qs7e3zec1e] {
    font-family: var(--font-sans);
    font-size: 14px;
    color: rgba(255, 255, 255, 0.75);
    line-height: 1.55;
    max-width: 700px;
    margin: 0 0 18px;
}

.sw-banner-meta[b-qs7e3zec1e] {
    display: flex;
    gap: 18px;
    align-items: center;
    flex-wrap: wrap;
    font-family: var(--font-sans);
    font-size: 12px;
    color: rgba(255, 255, 255, 0.6);
}

.sw-meta-item[b-qs7e3zec1e] {
    display: flex;
    align-items: center;
    gap: 5px;
}

.sw-meta-item .msr[b-qs7e3zec1e] {
    font-size: 14px !important;
    color: var(--brand-teal);
}

.sw-meta-item strong[b-qs7e3zec1e] { color: #FFFFFF; font-weight: 600; }

/* ===== Sections ===== */
.sw-section[b-qs7e3zec1e] {
    padding: 32px 36px;
    border-bottom: 1px solid var(--border-soft);
}

.sw-section:last-child[b-qs7e3zec1e] { border-bottom: none; }

.sw-mt[b-qs7e3zec1e] { margin-top: 16px; }

/* ===== Layout diagram ===== */
.sw-layout-diagram[b-qs7e3zec1e] {
    display: grid;
    grid-template-columns: 60px 220px 1fr 240px;
    height: 220px;
    border: 1px solid var(--border-med);
    border-radius: var(--radius-md);
    overflow: hidden;
    margin-bottom: 16px;
}

.sw-zone[b-qs7e3zec1e] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 14px;
    gap: 6px;
    border-right: 1px solid var(--border-med);
    text-align: center;
}

.sw-zone:last-child[b-qs7e3zec1e] { border-right: none; }

.sw-zone-label[b-qs7e3zec1e] {
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.4px;
    text-transform: uppercase;
}

.sw-zone-size[b-qs7e3zec1e] {
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 500;
}

.sw-zone-desc[b-qs7e3zec1e] {
    font-family: var(--font-sans);
    font-size: 10.5px;
    line-height: 1.45;
    margin-top: 4px;
}

.sw-zone.rail-zone[b-qs7e3zec1e] {
    background: var(--bg-rail);
    color: #FFFFFF;
}
.sw-zone.rail-zone .sw-zone-label[b-qs7e3zec1e] { color: rgba(255,255,255,0.5); }
.sw-zone.rail-zone .sw-zone-size[b-qs7e3zec1e],
.sw-zone.rail-zone .sw-zone-desc[b-qs7e3zec1e] { color: rgba(255,255,255,0.7); }

.sw-zone.sidebar-zone[b-qs7e3zec1e] {
    background: var(--bg-sidebar);
    color: #FFFFFF;
}
.sw-zone.sidebar-zone .sw-zone-label[b-qs7e3zec1e] { color: rgba(255,255,255,0.5); }
.sw-zone.sidebar-zone .sw-zone-size[b-qs7e3zec1e],
.sw-zone.sidebar-zone .sw-zone-desc[b-qs7e3zec1e] { color: rgba(255,255,255,0.7); }

.sw-zone.main-zone[b-qs7e3zec1e] {
    background: var(--bg);
    color: var(--text-primary);
}
.sw-zone.main-zone .sw-zone-label[b-qs7e3zec1e] { color: var(--text-muted); }

.sw-zone.aside-zone[b-qs7e3zec1e] {
    background: var(--bg-cream);
    color: var(--text-primary);
}
.sw-zone.aside-zone .sw-zone-label[b-qs7e3zec1e] { color: var(--text-muted); }

.sw-layout-note[b-qs7e3zec1e] {
    font-family: var(--font-sans);
    font-size: 12px;
    color: var(--text-secondary);
    line-height: 1.5;
    padding: 12px 14px;
    background: var(--bg-cream);
    border: 1px dashed var(--border-med);
    border-radius: var(--radius-md);
}

.sw-layout-note strong[b-qs7e3zec1e] { color: var(--text-primary); font-weight: 700; }

/* ===== Token swatches ===== */
.sw-token-group-label[b-qs7e3zec1e] {
    margin-bottom: 14px;
    margin-top: 8px;
    font-family: var(--font-sans);
    font-size: 12.5px;
    color: var(--text-secondary);
    font-weight: 600;
    letter-spacing: 0.04em;
}

.sw-token-grid[b-qs7e3zec1e] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 12px;
    margin-bottom: 22px;
}

.sw-swatch[b-qs7e3zec1e] {
    background: var(--bg-panel);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.sw-swatch:hover[b-qs7e3zec1e] {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.sw-swatch-color[b-qs7e3zec1e] {
    height: 60px;
    border-bottom: 1px solid var(--border-soft);
}

.sw-swatch-info[b-qs7e3zec1e] { padding: 10px 12px; }

.sw-swatch-name[b-qs7e3zec1e] {
    font-family: var(--font-sans);
    font-size: 12px;
    font-weight: 700;
    color: var(--text-primary);
    margin-bottom: 2px;
}

.sw-swatch-hex[b-qs7e3zec1e] {
    font-family: var(--font-mono);
    font-size: 10.5px;
    color: var(--text-muted);
    font-weight: 500;
}

.sw-swatch-token[b-qs7e3zec1e] {
    font-family: var(--font-mono);
    font-size: 9.5px;
    color: var(--brand-teal-deep);
    font-weight: 600;
    margin-top: 3px;
}

/* ===== Type grid ===== */
.sw-type-grid[b-qs7e3zec1e] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.sw-type-label[b-qs7e3zec1e] {
    font-family: var(--font-sans);
    font-size: 10.5px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.6px;
    margin-bottom: 14px;
}

.sw-type-line[b-qs7e3zec1e] {
    display: flex;
    align-items: baseline;
    gap: 12px;
    padding: 6px 0;
    border-bottom: 1px dashed var(--border-soft);
}

.sw-type-line:last-child[b-qs7e3zec1e] { border-bottom: none; }

.sw-type-size[b-qs7e3zec1e] {
    font-family: var(--font-mono);
    font-size: 10.5px;
    color: var(--text-muted);
    flex-shrink: 0;
    width: 60px;
}

/* ===== Component cards ===== */
.sw-component-grid[b-qs7e3zec1e] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.sw-comp-title[b-qs7e3zec1e] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 700;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.6px;
    margin-bottom: 14px;
}

.sw-comp-title .msr[b-qs7e3zec1e] { font-size: 13px !important; }

.sw-row[b-qs7e3zec1e] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-bottom: 12px;
}

.sw-row:last-child[b-qs7e3zec1e] { margin-bottom: 0; }

.sw-row-label[b-qs7e3zec1e] {
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 600;
    color: var(--text-muted);
    width: 80px;
    flex-shrink: 0;
}

/* ===== Responsive ===== */
@media (max-width: 991.98px) {
    .sw-section[b-qs7e3zec1e] { padding: 24px 20px; }
    .sw-banner[b-qs7e3zec1e] { padding: 20px; }
    .sw-banner-title[b-qs7e3zec1e] { font-size: 26px; }
    .sw-layout-diagram[b-qs7e3zec1e] { grid-template-columns: 1fr 1fr; height: auto; }
    .sw-type-grid[b-qs7e3zec1e],
    .sw-component-grid[b-qs7e3zec1e] { grid-template-columns: 1fr; }
}
/* /Pages/Unirse/TarjetaEstadoSolicitud.razor.rz.scp.css */
/* Tarjeta de estado de la solicitud (paso final del recorrido del solicitante).
   Vive dentro de la .auth-card de AuthShell: hereda .auth-eyebrow / .auth-t / .auth-s. */

.inc-estado[b-u81uy6l78b] {
    text-align: center;
    display: grid;
    justify-items: center;
}

.inc-estado-ico[b-u81uy6l78b] {
    display: grid;
    place-items: center;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    margin: 0 auto 14px;
    background: var(--bg-light-teal);
    color: var(--brand-teal-deep);
    animation: inc-estado-pop-b-u81uy6l78b .24s var(--ease) both;
}

.inc-estado-ico .msr[b-u81uy6l78b] {
    font-size: 38px;
}

.inc-tono-exito .inc-estado-ico[b-u81uy6l78b] { background: rgba(29, 158, 117, .12); color: var(--success-ink); }
.inc-tono-aviso .inc-estado-ico[b-u81uy6l78b] { background: rgba(186, 117, 23, .14); color: var(--warning-ink); }
.inc-tono-peligro .inc-estado-ico[b-u81uy6l78b] { background: rgba(163, 45, 45, .12); color: var(--danger); }
.inc-tono-info .inc-estado-ico[b-u81uy6l78b] { background: var(--bg-light-teal); color: var(--brand-teal-deep); }
.inc-tono-neutro .inc-estado-ico[b-u81uy6l78b] { background: var(--bg-cream); color: var(--text-secondary); border: 1px solid var(--border-soft); }

.inc-estado-t[b-u81uy6l78b] {
    overflow-wrap: anywhere;
    max-width: 100%;
}

.inc-estado-status[b-u81uy6l78b] {
    display: grid;
    justify-items: center;
    gap: 10px;
    max-width: 100%;
}

.inc-estado-status p.inc-estado-texto[b-u81uy6l78b] {
    overflow-wrap: anywhere;
    margin: 0 0 4px;
}

.inc-concedido[b-u81uy6l78b] {
    width: 100%;
    margin: 6px 0 14px;
    padding: 12px 14px;
    display: grid;
    gap: 8px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    background: var(--bg-cream);
    text-align: left;
}

.inc-concedido-fila[b-u81uy6l78b] {
    display: grid;
    grid-template-columns: minmax(96px, auto) minmax(0, 1fr);
    gap: 10px;
    align-items: baseline;
}

.inc-concedido dt[b-u81uy6l78b] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--text-secondary);
}

.inc-concedido dt .msr[b-u81uy6l78b] {
    font-size: 16px;
    color: var(--brand-teal-deep);
}

.inc-concedido dd[b-u81uy6l78b] {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
    color: var(--text-primary);
    overflow-wrap: anywhere;
}

.inc-estado-sig[b-u81uy6l78b] {
    font-size: 13px;
    line-height: 1.55;
    color: var(--text-secondary);
    margin: 0 0 18px;
    overflow-wrap: anywhere;
}

.inc-estado-acciones[b-u81uy6l78b] {
    width: 100%;
    display: grid;
    gap: 10px;
}

.inc-estado-acciones:empty[b-u81uy6l78b] {
    display: none;
}

@keyframes inc-estado-pop-b-u81uy6l78b {
    from { opacity: 0; transform: scale(.6); }
    to { opacity: 1; transform: scale(1); }
}

@media (max-width: 480px) {
    .inc-concedido-fila[b-u81uy6l78b] {
        grid-template-columns: minmax(0, 1fr);
        gap: 2px;
    }
}

@media (pointer: coarse) {
    .inc-estado-sig .auth-link[b-u81uy6l78b] {
        display: inline-block;
        padding: 10px 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .inc-estado-ico[b-u81uy6l78b] {
        animation: none;
    }
}
/* /Pages/Unirse/UnirseMisSolicitudes.razor.rz.scp.css */
/* Incorporacion rapida de personal — "Mis solicitudes" (/unirse). Dentro de <AuthShell>.
   Cero hex: solo tokens de wwwroot/css/tokens.css. */

.inc-mias[b-v36cuxsevr] {
    min-width: 0;
    animation: inc-mias-entrar-b-v36cuxsevr .22s var(--ease) both;
}

@keyframes inc-mias-entrar-b-v36cuxsevr {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

.inc-cargando[b-v36cuxsevr] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 140px;
    font-size: 14px;
    color: var(--text-secondary);
}

.inc-mono[b-v36cuxsevr] {
    font-family: var(--font-mono);
    font-size: 12.5px;
    color: var(--text-primary);
    background: var(--bg-cream);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-sm);
    padding: 1px 6px;
    overflow-wrap: anywhere;
}

.inc-pasos-lista[b-v36cuxsevr] {
    list-style: none;
    margin: 0 0 16px;
    padding: 0;
    display: grid;
    gap: 10px;
}

.inc-pasos-lista li[b-v36cuxsevr] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--text-secondary);
}

.inc-pasos-n[b-v36cuxsevr] {
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--brand-teal-deep);
    color: var(--bg-panel);
    font-size: 12px;
    font-weight: 700;
}

.inc-nota[b-v36cuxsevr] {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--text-secondary);
    background: var(--bg-cream);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    padding: 10px 12px;
    margin: 0 0 16px;
}

.inc-nota .msr[b-v36cuxsevr] {
    font-size: 17px;
    color: var(--brand-teal-deep);
    flex: none;
    margin-top: 1px;
}

.inc-vacio[b-v36cuxsevr] {
    text-align: center;
    padding: 24px 8px 8px;
    display: grid;
    justify-items: center;
    gap: 8px;
}

.inc-vacio-ico[b-v36cuxsevr] {
    display: grid;
    place-items: center;
    width: 64px;
    height: 64px;
    border-radius: var(--radius-xl);
    background: var(--bg-cream);
    border: 1px solid var(--border-soft);
    color: var(--text-secondary);
}

.inc-vacio-ico .msr[b-v36cuxsevr] {
    font-size: 32px;
}

.inc-vacio-t[b-v36cuxsevr] {
    font-family: var(--font-serif);
    font-size: 19px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 4px 0 0;
}

.inc-vacio p[b-v36cuxsevr] {
    margin: 0;
    max-width: 380px;
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--text-secondary);
}

.inc-lista[b-v36cuxsevr] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 12px;
}

.inc-item[b-v36cuxsevr] {
    display: grid;
    gap: 10px;
    padding: 14px 16px;
    border: 1px solid var(--border-soft);
    border-left: 4px solid var(--border-med);
    border-radius: var(--radius-lg);
    background: var(--bg-panel);
    min-width: 0;
}

.inc-item.inc-tono-exito[b-v36cuxsevr] { border-left-color: var(--success); }
.inc-item.inc-tono-aviso[b-v36cuxsevr] { border-left-color: var(--warning); }
.inc-item.inc-tono-peligro[b-v36cuxsevr] { border-left-color: var(--danger); }
.inc-item.inc-tono-info[b-v36cuxsevr] { border-left-color: var(--brand-teal-deep); }

.inc-item-cab[b-v36cuxsevr] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 12px;
    align-items: center;
}

.inc-item-avatar[b-v36cuxsevr] {
    --avatar-radius: var(--radius-lg);
    display: inline-flex;
}

.inc-item-txt[b-v36cuxsevr] {
    min-width: 0;
}

.inc-item-escuela[b-v36cuxsevr] {
    font-family: var(--font-serif);
    font-size: 16px;
    font-weight: 600;
    line-height: 1.3;
    color: var(--text-primary);
    margin: 0;
    overflow-wrap: anywhere;
}

.inc-item-fecha[b-v36cuxsevr] {
    margin: 2px 0 0;
    font-size: 12.5px;
    color: var(--text-secondary);
}

.inc-item-texto[b-v36cuxsevr] {
    margin: 0;
    font-size: 13px;
    line-height: 1.5;
    color: var(--text-secondary);
    overflow-wrap: anywhere;
}

.inc-item-concedido[b-v36cuxsevr] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 14px;
    color: var(--text-primary);
    font-weight: 600;
}

.inc-item-concedido > span[b-v36cuxsevr] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.inc-item-concedido .msr[b-v36cuxsevr] {
    font-size: 16px;
    color: var(--brand-teal-deep);
}

.inc-item-accion[b-v36cuxsevr] {
    justify-self: start;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    font-weight: 700;
    color: var(--brand-teal-deep);
    text-decoration: none;
    padding: 4px 0;
}

.inc-item-accion .msr[b-v36cuxsevr] {
    font-size: 17px;
}

.inc-item-accion:hover[b-v36cuxsevr] {
    text-decoration: underline;
}

.inc-item[b-v36cuxsevr]  .inc-item-entrar {
    justify-self: start;
}

@media (pointer: coarse) {
    .inc-item-accion[b-v36cuxsevr] {
        min-height: 44px;
    }

    .inc-item[b-v36cuxsevr]  .inc-item-entrar {
        min-height: 44px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .inc-mias[b-v36cuxsevr] {
        animation: none;
    }
}
/* /Pages/Unirse/UnirseSolicitud.razor.rz.scp.css */
/* Incorporacion rapida de personal — recorrido del solicitante (/unirse/{id}).
   Vive dentro de <AuthShell>: la card, los campos pf-*, .auth-code, .auth-alert, .auth-hint,
   .auth-resend y el spinner .auth-spin vienen de Components/UI/AuthShell.razor.css.
   Aqui solo lo propio del recorrido. Cero hex: solo tokens de wwwroot/css/tokens.css. */

/* ------------------------------------------------------------ transicion entre pasos */
.inc-paso[b-dyb165hz6g] {
    animation: inc-entrar-b-dyb165hz6g .22s var(--ease) both;
    min-width: 0;
}

@keyframes inc-entrar-b-dyb165hz6g {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ------------------------------------------------------------ utilidades */
.inc-vh[b-dyb165hz6g] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

.inc-fuerte[b-dyb165hz6g] {
    color: var(--text-primary);
    font-weight: 650;
    overflow-wrap: anywhere;
}

.inc-opcional[b-dyb165hz6g] {
    font-weight: 500;
    color: var(--text-secondary);
}

.inc-form[b-dyb165hz6g] {
    display: block;
    min-width: 0;
}

.inc-cargando[b-dyb165hz6g] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 140px;
    font-size: 14px;
    color: var(--text-secondary);
}

.inc-sub[b-dyb165hz6g] {
    font-family: var(--font-serif);
    font-size: 17px;
    font-weight: 600;
    color: var(--text-primary);
    margin: 22px 0 10px;
    padding-top: 16px;
    border-top: 1px solid var(--border-soft);
}

/* ------------------------------------------------------------ notas y avisos */
.inc-nota[b-dyb165hz6g] {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--text-secondary);
    background: var(--bg-cream);
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-md);
    padding: 10px 12px;
    margin: 14px 0;
}

.inc-nota .msr[b-dyb165hz6g] {
    font-size: 17px;
    color: var(--brand-teal-deep);
    flex: none;
    margin-top: 1px;
}

.inc-aviso[b-dyb165hz6g] {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    font-size: 13px;
    line-height: 1.45;
    color: var(--info-ink);
    background: var(--bg-light-teal);
    border-radius: var(--radius-md);
    padding: 10px 12px;
    margin-bottom: 14px;
    overflow-wrap: anywhere;
}

.inc-aviso .msr[b-dyb165hz6g] {
    font-size: 18px;
    flex: none;
    margin-top: 1px;
}

.inc-alerta[b-dyb165hz6g] {
    overflow-wrap: anywhere;
}

/* ------------------------------------------------------------ paso 1: codigo */
input.auth-code.inc-codigo[b-dyb165hz6g] {
    text-transform: uppercase;
    letter-spacing: .18em;
}

input.auth-code.inc-codigo[b-dyb165hz6g]::placeholder {
    letter-spacing: .18em;
}

.inc-bloque[b-dyb165hz6g] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    padding: 16px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    background: var(--bg-cream);
    margin-bottom: 16px;
}

.inc-bloque-ico[b-dyb165hz6g] {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: var(--radius-md);
    background: rgba(186, 117, 23, .14);
    color: var(--warning-ink);
}

.inc-bloque-ico .msr[b-dyb165hz6g] {
    font-size: 24px;
}

.inc-bloque-t[b-dyb165hz6g] {
    font-family: var(--font-serif);
    font-size: 17px;
    font-weight: 600;
    margin: 2px 0 6px;
    color: var(--text-primary);
}

.inc-bloque-txt p[b-dyb165hz6g] {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--text-secondary);
}

/* ------------------------------------------------------------ paso 2: escuela */
.inc-escuela[b-dyb165hz6g] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    padding: 16px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    background: var(--bg-cream);
    margin-bottom: 16px;
}

.inc-escuela-logo[b-dyb165hz6g] {
    --avatar-radius: var(--radius-lg);
    display: grid;
    place-items: center;
}

.inc-logo[b-dyb165hz6g] {
    display: block;
    width: 56px;
    height: 56px;
    object-fit: contain;
    border-radius: var(--radius-lg);
    border: 1px solid var(--border-soft);
    background: var(--bg-panel);
}

.inc-escuela-txt[b-dyb165hz6g] {
    min-width: 0;
    display: grid;
    gap: 4px;
}

.inc-escuela-txt p[b-dyb165hz6g] {
    margin: 0;
}

.inc-escuela-nombre[b-dyb165hz6g] {
    font-family: var(--font-serif);
    font-size: 19px;
    font-weight: 600;
    line-height: 1.25;
    color: var(--text-primary);
    overflow-wrap: anywhere;
}

.inc-escuela-meta[b-dyb165hz6g] {
    display: flex;
    gap: 6px;
    align-items: flex-start;
    font-size: 13px;
    line-height: 1.45;
    color: var(--text-secondary);
    overflow-wrap: anywhere;
}

.inc-escuela-meta .msr[b-dyb165hz6g] {
    font-size: 16px;
    color: var(--brand-teal-deep);
    flex: none;
    margin-top: 1px;
}

.inc-acciones[b-dyb165hz6g] {
    display: grid;
    gap: 10px;
}

/* ------------------------------------------------------------ paso 3: cuenta */
.inc-identidad[b-dyb165hz6g] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    padding: 14px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    background: var(--bg-cream);
    margin-bottom: 16px;
}

.inc-identidad-txt[b-dyb165hz6g] {
    min-width: 0;
}

.inc-identidad-txt p[b-dyb165hz6g] {
    margin: 0;
    overflow-wrap: anywhere;
}

.inc-identidad-nombre[b-dyb165hz6g] {
    font-weight: 700;
    font-size: 15px;
    color: var(--text-primary);
}

.inc-identidad-correo[b-dyb165hz6g] {
    font-size: 13px;
    color: var(--text-secondary);
}

.inc-acciones[b-dyb165hz6g]  .inc-continuar-como {
    white-space: normal;
    text-align: center;
    padding-top: 10px;
    padding-bottom: 10px;
}

.inc-btn-txt[b-dyb165hz6g] {
    overflow-wrap: anywhere;
    min-width: 0;
}

.inc-seg[b-dyb165hz6g] {
    border: 0;
    margin: 0 0 16px;
    padding: 4px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4px;
    border-radius: var(--radius-md);
    background: var(--bg-cream);
    box-shadow: inset 0 0 0 1px var(--border-soft);
    position: relative;
}

.inc-seg-opt[b-dyb165hz6g] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 40px;
    padding: 8px 10px;
    border-radius: var(--radius-sm);
    font-size: 13.5px;
    font-weight: 600;
    color: var(--text-secondary);
    cursor: pointer;
    text-align: center;
    transition: background .15s ease, color .15s ease, box-shadow .15s ease;
}

.inc-seg-opt .msr[b-dyb165hz6g] {
    font-size: 18px;
}

.inc-seg-opt:hover[b-dyb165hz6g] {
    color: var(--brand-teal-deep);
}

.inc-seg-opt--on[b-dyb165hz6g] {
    background: var(--bg-panel);
    color: var(--brand-teal-deep);
    font-weight: 700;
    box-shadow: var(--shadow-sm), inset 0 0 0 1px var(--brand-teal-deep);
}

.inc-seg-opt:has(input:focus-visible)[b-dyb165hz6g],
.inc-chip:has(input:focus-visible)[b-dyb165hz6g] {
    outline: 2px solid var(--brand-teal);
    outline-offset: 2px;
}

.inc-link-sm[b-dyb165hz6g] {
    font-size: 12.5px;
}

.inc-fila[b-dyb165hz6g] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 12px;
}

.inc-fila > .pf-field[b-dyb165hz6g] {
    min-width: 0;
}

.inc-faltan[b-dyb165hz6g] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
    color: var(--text-secondary);
    margin: -4px 0 12px;
}

.inc-faltan .msr[b-dyb165hz6g] {
    font-size: 16px;
}

.inc-terminos[b-dyb165hz6g] {
    margin-top: 4px;
}

.inc-terminos label.pf-check[b-dyb165hz6g] {
    align-items: flex-start;
    line-height: 1.5;
}

.inc-terminos label.pf-check input[type="checkbox"][b-dyb165hz6g] {
    margin-top: 2px;
    flex: none;
}

/* ------------------------------------------------------------ paso 4: datos */
.inc-correo-fila[b-dyb165hz6g] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 10px;
    min-height: 44px;
    padding: 9px 13px;
    border: 1px dashed var(--border-med);
    border-radius: var(--radius-md);
    background: var(--bg-panel);
}

.inc-correo-txt[b-dyb165hz6g] {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-primary);
    overflow-wrap: anywhere;
    min-width: 0;
}

.inc-grupo[b-dyb165hz6g] {
    border: 0;
    margin: 0 0 16px;
    padding: 0;
    min-width: 0;
}

.inc-grupo legend[b-dyb165hz6g] {
    padding: 0;
    margin-bottom: 2px;
}

.inc-grupo p.inc-grupo-ayuda.auth-hint[b-dyb165hz6g] {
    margin: 0 0 8px;
}

.inc-chips[b-dyb165hz6g] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.inc-chip[b-dyb165hz6g] {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 38px;
    padding: 7px 14px 7px 11px;
    border: 1px solid var(--border-med);
    border-radius: 99px;
    background: var(--bg-panel);
    color: var(--text-secondary);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    max-width: 100%;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}

.inc-chip span:last-child[b-dyb165hz6g] {
    overflow-wrap: anywhere;
}

.inc-chip .msr[b-dyb165hz6g] {
    font-size: 17px;
}

.inc-chip:hover[b-dyb165hz6g] {
    border-color: var(--brand-teal-deep);
    color: var(--brand-teal-deep);
}

.inc-chip--on[b-dyb165hz6g] {
    background: var(--bg-light-teal);
    border-color: var(--brand-teal-deep);
    color: var(--brand-teal-deep);
    font-weight: 700;
}

.inc-plegable[b-dyb165hz6g] {
    margin: 4px 0 16px;
    border: 1px solid var(--border-soft);
    border-radius: var(--radius-lg);
    background: var(--bg-panel);
}

.inc-plegable-btn[b-dyb165hz6g] {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 48px;
    padding: 10px 14px;
    text-align: left;
    font-size: 14px;
    font-weight: 650;
    color: var(--text-primary);
    border-radius: var(--radius-lg);
}

.inc-plegable-btn:hover[b-dyb165hz6g] {
    background: var(--bg-cream);
}

.inc-plegable-btn > .msr:first-child[b-dyb165hz6g] {
    color: var(--brand-teal-deep);
}

.inc-plegable-t[b-dyb165hz6g] {
    flex: 1;
    min-width: 0;
}

.inc-plegable-ico[b-dyb165hz6g] {
    transition: transform .2s var(--ease);
    color: var(--text-secondary);
}

.inc-plegable--abierto .inc-plegable-ico[b-dyb165hz6g] {
    transform: rotate(180deg);
}

.inc-plegable-cuerpo[b-dyb165hz6g] {
    padding: 0 14px 14px;
    animation: inc-entrar-b-dyb165hz6g .2s var(--ease) both;
}

.inc-plegable-cuerpo[hidden][b-dyb165hz6g] {
    display: none;
}

.inc-plegable-cuerpo .inc-nota[b-dyb165hz6g] {
    margin-top: 0;
}

.inc-tienda[b-dyb165hz6g] {
    margin-bottom: 14px;
}

.inc-tienda:last-child[b-dyb165hz6g] {
    margin-bottom: 0;
}

.inc-tienda-correo[b-dyb165hz6g] {
    margin: 10px 0 0;
}

.inc-resumen[b-dyb165hz6g] {
    margin: 0 0 18px;
    padding: 12px 14px;
    display: grid;
    gap: 8px;
    border-radius: var(--radius-lg);
    background: var(--bg-cream);
    border: 1px solid var(--border-soft);
}

.inc-resumen-fila[b-dyb165hz6g] {
    display: grid;
    grid-template-columns: minmax(110px, 34%) minmax(0, 1fr);
    gap: 10px;
    align-items: baseline;
}

.inc-resumen dt[b-dyb165hz6g] {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--text-secondary);
}

.inc-resumen dd[b-dyb165hz6g] {
    margin: 0;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--text-primary);
    overflow-wrap: anywhere;
}

/* ------------------------------------------------------------ paso 5: verificar */
.inc-cambiar[b-dyb165hz6g] {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--border-soft);
}

.inc-form-cambiar[b-dyb165hz6g] {
    margin-top: 12px;
}

.inc-botones[b-dyb165hz6g] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

/* ------------------------------------------------------------ enlaces con forma de boton */
.inc-link-btn[b-dyb165hz6g] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 4px;
    font-size: 13px;
    font-weight: 600;
    color: var(--brand-teal-deep);
    border-radius: var(--radius-sm);
}

.inc-link-btn .msr[b-dyb165hz6g] {
    font-size: 17px;
}

.inc-link-btn:hover:not(:disabled)[b-dyb165hz6g] {
    text-decoration: underline;
}

.inc-link-btn:disabled[b-dyb165hz6g] {
    opacity: .5;
    cursor: not-allowed;
}

/* ------------------------------------------------------------ responsive */
@media (max-width: 480px) {
    .inc-fila[b-dyb165hz6g] {
        grid-template-columns: minmax(0, 1fr);
    }

    .inc-resumen-fila[b-dyb165hz6g] {
        grid-template-columns: minmax(0, 1fr);
        gap: 2px;
    }

    .inc-escuela[b-dyb165hz6g] {
        grid-template-columns: minmax(0, 1fr);
        justify-items: start;
    }

    input.auth-code.inc-codigo[b-dyb165hz6g] {
        letter-spacing: .12em;
        font-size: 22px;
    }
}

@media (pointer: coarse) {
    .inc-seg-opt[b-dyb165hz6g],
    .inc-chip[b-dyb165hz6g],
    .inc-plegable-btn[b-dyb165hz6g],
    .inc-link-btn[b-dyb165hz6g] {
        min-height: 44px;
    }

    .inc-link-btn[b-dyb165hz6g] {
        padding: 10px 6px;
    }

    .inc-nota .auth-link[b-dyb165hz6g],
    .auth-foot .auth-link[b-dyb165hz6g] {
        display: inline-block;
        padding: 10px 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .inc-paso[b-dyb165hz6g],
    .inc-plegable-cuerpo[b-dyb165hz6g] {
        animation: none;
    }

    .inc-plegable-ico[b-dyb165hz6g],
    .inc-seg-opt[b-dyb165hz6g],
    .inc-chip[b-dyb165hz6g] {
        transition: none;
    }
}
