/* Liceo Euler — Calendario institucional (sitio y panel) · v3.18.0 · Desarrollado por LEMA Digital Agency */
.lc-sec { position: relative; overflow: hidden; isolation: isolate; padding: clamp(36px, 6vw, 80px) 0 clamp(56px, 8vw, 100px); background: linear-gradient(180deg, #fff, #f4f7fc); }
.lc-sec__orb { position: absolute; z-index: -1; border-radius: 50%; pointer-events: none; }
.lc-sec__orb.o1 { left: -160px; top: -120px; width: 480px; height: 480px; background: radial-gradient(circle, rgba(53,167,224,.12), transparent 64%); }
.lc-sec__orb.o2 { right: -160px; bottom: -160px; width: 520px; height: 520px; background: radial-gradient(circle, rgba(124,92,208,.10), transparent 64%); }
.lc { display: flex; flex-wrap: wrap; gap: clamp(18px, 2.4vw, 28px); align-items: flex-start; }
.lc-card { flex: 999 1 560px; min-width: 0; background: #fff; border: 1px solid #e1e8f4; border-radius: 26px; padding: clamp(12px, 2.2vw, 26px); box-shadow: 0 2px 4px rgba(16,32,80,.04), 0 36px 70px -46px rgba(29,63,153,.45); }
.lc-side { flex: 1 1 300px; min-width: 0; display: grid; gap: clamp(16px, 2vw, 22px); }
.lc-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: clamp(12px, 2vw, 20px); }
.lc-title { margin: 0; font-family: var(--ff-disp, Georgia, serif); font-weight: 600; font-size: clamp(1.5rem, 3vw, 2rem); letter-spacing: -.01em; color: #12285f; text-align: center; }
.lc-nav { display: grid; place-items: center; flex: none; width: 42px; height: 42px; border-radius: 13px; border: 1px solid #dbe3f0; background: #fff; color: #12285f; cursor: pointer; transition: border-color .3s, background .3s, transform .3s; }
.lc-nav:hover { border-color: #35a7e0; background: #f3f8ff; color: #12285f; }
.lc-nav[data-lc-prev]:hover { transform: translateX(-2px); } .lc-nav[data-lc-next]:hover { transform: translateX(2px); }
.lc-nav svg { width: 18px; height: 18px; }
.lc-grid { border: 1px solid #e4e9f2; border-radius: 18px; overflow: hidden; background: #fff; min-height: 300px; }
.lc.is-ready .lc-grid { min-height: 0; }
.lc-noscript { margin: 0; padding: 24px; color: #7a849c; font-size: .9rem; }
.lc-dows { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); background: linear-gradient(180deg, #f6f9fe, #eef3fb); border-bottom: 1px solid #e4e9f2; }
.lc-dows > div { padding: 11px 4px; text-align: center; font-size: .6875rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: #5b6680; }
.lc-dows > .is-we { color: #8a95ad; }
.lc-week { position: relative; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-bottom: 1px solid #eef2f8; }
.lc-week:last-child { border-bottom: 0; }
.lc-cell { position: relative; min-width: 0; padding: 7px 8px; border-right: 1px solid #eef2f8; background: #fff; transition: background .3s; outline: none; }
.lc-cell:nth-child(7) { border-right: 0; }
.lc-cell.is-we { background: #fbfcfe; }
.lc-cell.is-out { background: repeating-linear-gradient(135deg, #f8fafd 0 6px, #f3f6fb 6px 12px); }
.lc-cell[data-day] { cursor: pointer; }
.lc-cell[data-day]:hover { background: #f7faff; }
.lc-cell[data-day]:focus-visible { box-shadow: inset 0 0 0 2px #35a7e0; }
.lc-cell.is-sel { background: #eef5ff; box-shadow: inset 0 0 0 2px rgba(53,167,224,.55); }
.lc-n { display: inline-block; padding: 4px 2px; font-size: .8125rem; font-weight: 700; color: #1b2742; font-variant-numeric: tabular-nums; }
.lc-cell.is-we .lc-n { color: #7a849c; }
.lc-cell.is-today .lc-n { position: relative; display: inline-grid; place-items: center; min-width: 26px; height: 26px; padding: 0 6px; border-radius: 9px; background: linear-gradient(135deg, #16307a, #2a52c4); color: #fff; font-weight: 800; box-shadow: 0 6px 14px -6px rgba(42,82,196,.9); }
.lc-cell.is-today .lc-n::after { content: ""; position: absolute; inset: 0; border-radius: 9px; border: 2px solid #2a52c4; animation: lcPulse 2.2s ease-out infinite; }
@keyframes lcPulse { 0% { transform: scale(.8); opacity: .7; } 100% { transform: scale(1.9); opacity: 0; } }
.lc-more { position: absolute; left: 8px; bottom: 5px; font-size: .6875rem; font-weight: 700; color: #1d3f99; }
.lc-bar { position: absolute; left: calc(var(--l) + 4px); width: calc(var(--w) - 8px); top: var(--t); height: 18px; display: flex; align-items: center; padding: 0 7px; margin: 0; overflow: hidden; white-space: nowrap; border-radius: 7px; border: 1px solid var(--c); background: var(--c); color: #fff; font: inherit; font-size: .6875rem; font-weight: 700; line-height: 1; text-align: left; cursor: default; transform-origin: left center; transition: opacity .3s, box-shadow .3s, transform .3s; z-index: 1; }
.lc-bar span { overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.lc-bar.is-multi { background: color-mix(in srgb, var(--c) 13%, #fff); border-color: color-mix(in srgb, var(--c) 35%, #fff); color: var(--c); }
@supports not (background: color-mix(in srgb, red 10%, #fff)) { .lc-bar.is-multi { background: #eef2fb; border-color: #c9d5ef; } }
.lc-bar.cont-l { border-top-left-radius: 2px; border-bottom-left-radius: 2px; }
.lc-bar.cont-r { border-top-right-radius: 2px; border-bottom-right-radius: 2px; }
.lc.has-hov .lc-bar:not(.is-hov) { opacity: .25; }
.lc-bar.is-hov { box-shadow: 0 6px 16px -4px color-mix(in srgb, var(--c) 70%, transparent); transform: translateY(-1px); }
.lc--admin .lc-bar { cursor: pointer; }
.lc-grid.is-compact .lc-bar { height: 5px; padding: 0; border-radius: 4px; font-size: 0; }
.lc-grid.is-compact .lc-bar.is-multi { background: color-mix(in srgb, var(--c) 55%, #fff); }
.lc-grid.is-compact .lc-bar.cont-l, .lc-grid.is-compact .lc-bar.cont-r { border-radius: 2px; }
.lc-grid.is-compact .lc-cell { padding: 4px 4px; }
.lc-grid.is-compact .lc-n { font-size: .75rem; padding: 3px 1px; }
.lc-grid.is-compact .lc-cell.is-today .lc-n { min-width: 22px; height: 22px; padding: 0 4px; border-radius: 7px; }
.lc-grid.is-compact .lc-more { left: 4px; bottom: 3px; font-size: .625rem; }
.lc-grid.is-compact .lc-dows > div { padding: 9px 2px; font-size: .5625rem; letter-spacing: .08em; }
.lc-legend { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.lc-lg { display: inline-flex; align-items: center; gap: 7px; padding: 6px 12px; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--c) 30%, #fff); background: color-mix(in srgb, var(--c) 6%, #fff); font: inherit; font-size: .78rem; font-weight: 600; color: #46506a; cursor: pointer; transition: opacity .3s, border-color .3s, background .3s; }
.lc-lg i { width: 9px; height: 9px; border-radius: 3px; background: var(--c); box-shadow: 0 0 0 3px color-mix(in srgb, var(--c) 15%, transparent); }
.lc-lg:hover { border-color: #b9c8e2; }
.lc-lg.is-off { opacity: .45; border-color: #e4e9f2; background: #f5f7fb; }
.lc-lg.is-off i { box-shadow: none; }
.lc-lg:focus-visible, .lc-nav:focus-visible, .lc-pi:focus-visible, .lc-bar:focus-visible, .lc-ib:focus-visible { outline: 3px solid #8fd0f2; outline-offset: 2px; }
.lc-box { background: #fff; border: 1px solid #e1e8f4; border-radius: 22px; padding: clamp(16px, 2vw, 22px); box-shadow: 0 2px 4px rgba(16,32,80,.04), 0 24px 50px -40px rgba(29,63,153,.45); min-width: 0; }
.lc-box h3 { display: flex; align-items: center; gap: 9px; margin: 0 0 12px; font-size: .97rem; font-weight: 800; color: #12285f; }
.lc-box h3 .ic { width: 17px; height: 17px; color: #2a52c4; flex: none; }
.lc-daybar { margin: -4px 0 10px; }
.lc-daybar button { display: inline-flex; align-items: center; gap: 4px; padding: 5px 10px; border: 1px solid #dbe3f0; border-radius: 999px; background: #fff; color: #1d3f99; font: inherit; font-size: .78rem; font-weight: 700; cursor: pointer; }
.lc-daybar button:hover { background: #f3f8ff; border-color: #35a7e0; }
.lc-daybar .ic { width: 14px; height: 14px; }
.lc-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.lc-li { display: flex; gap: 13px; align-items: flex-start; padding: 9px; border-radius: 14px; transition: background .3s, transform .3s; }
.lc-li.is-hov { background: #f3f8ff; transform: translateX(3px); }
.lc-tile { flex: none; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 46px; height: 48px; border-radius: 13px; background: color-mix(in srgb, var(--c) 12%, #fff); color: var(--c); font-size: .59rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.lc-tile b { font-size: 1.06rem; line-height: 1; letter-spacing: 0; margin-bottom: 3px; font-variant-numeric: tabular-nums; }
.lc-li strong, .lc-pi strong { display: block; font-size: .875rem; line-height: 1.35; color: #12285f; min-width: 0; overflow-wrap: anywhere; }
.lc-li small { display: block; margin-top: 3px; font-size: .75rem; color: #7a849c; }
.lc-li p { margin: 4px 0 0; font-size: .78rem; line-height: 1.5; color: #46506a; }
.lc-li > div { min-width: 0; }
.lc-empty { padding: 14px; border-radius: 12px; background: #f5f8fd; font-size: .84rem; color: #7a849c; }
.lc-list--sm { padding-left: 2px; }
.lc-pi { display: flex; gap: 13px; align-items: center; width: 100%; padding: 8px 9px; border: 0; border-radius: 14px; background: transparent; font: inherit; text-align: left; cursor: pointer; transition: background .3s; color: inherit; }
.lc-pi:hover, .lc-pi.is-hov { background: #f5f8fd; }
.lc-pi .lc-tile { width: 42px; height: 44px; }
.lc-pi strong { font-size: .84rem; }
/* Panel */
.lc--admin { gap: 18px; }
.lc--admin .lc-card { border-radius: 20px; padding: clamp(10px, 1.4vw, 16px); box-shadow: 0 1px 2px rgba(16,32,80,.04), 0 20px 44px -34px rgba(16,32,80,.4); }
.lc--admin .lc-grid { border-radius: 14px; }
.lc--admin .lc-legend { gap: 6px; margin-top: 12px; }
.lc--admin .lc-lg { padding: 5px 10px; font-size: .75rem; }
.lc-box--admin { flex: 1 1 300px; padding: 0; overflow: hidden; border-radius: 20px; }
.lc-box__h { padding: 16px 18px; border-bottom: 1px solid #eef2f8; }
.lc-box__h h2 { margin: 0; font-size: .94rem; font-weight: 800; color: #12285f; }
.lc-box--admin .lc-daybar { margin: 12px 12px 0; }
.lc-alist { list-style: none; margin: 0; padding: 12px; display: grid; gap: 8px; }
.lc-ai { display: flex; align-items: center; gap: 12px; padding: 12px; border-radius: 14px; border: 1px solid #e4e9f2; background: #fff; transition: border-color .3s, background .3s, box-shadow .3s; }
.lc-ai.is-hov { border-color: color-mix(in srgb, var(--c) 45%, #fff); background: color-mix(in srgb, var(--c) 5%, #fff); box-shadow: 0 12px 24px -18px color-mix(in srgb, var(--c) 90%, transparent); }
.lc-ai__ic { flex: none; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 11px; background: var(--c); color: #fff; box-shadow: 0 8px 16px -8px var(--c); }
.lc-ai__ic svg { width: 16px; height: 16px; }
.lc-ai__t { flex: 1; min-width: 0; }
.lc-ai__t b { display: block; font-size: .84rem; line-height: 1.35; color: #12285f; overflow-wrap: anywhere; }
.lc-ai__t small { display: block; margin-top: 3px; font-size: .72rem; line-height: 1.45; color: #7a849c; }
.lc-ai__acts { flex: none; display: flex; gap: 6px; }
.lc-ib { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; border: 1px solid #dbe3f0; background: #fff; color: #46506a; cursor: pointer; transition: border-color .25s, color .25s, background .25s; }
.lc-ib:hover { border-color: #35a7e0; color: #1d3f99; background: #f3f8ff; }
.lc-ib.is-del { border-color: #f4cdd4; color: #d23a52; }
.lc-ib.is-del:hover { background: #fdecef; border-color: #e2384f; }
.lc-ib svg { width: 14px; height: 14px; }
.lc--admin .lc-alist .lc-empty { list-style: none; }
.btn--sheen { position: relative; overflow: hidden; }
.btn--sheen::after { content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 30%; background: linear-gradient(90deg, transparent, rgba(255,255,255,.3), transparent); animation: lcSheen 3.6s ease-in-out infinite; pointer-events: none; }
@keyframes lcSheen { 0% { transform: translateX(-120%); } 100% { transform: translateX(380%); } }
@media (prefers-reduced-motion: reduce) { .lc-cell.is-today .lc-n::after, .btn--sheen::after { animation: none; } .lc-bar, .lc-li, .lc-cell { transition: none; } }
