@font-face{font-family:display;src:url(../media/bricolage_grotesque_latin_variable-s.p.1zacozkvj86kq.woff2)format("woff2");font-display:swap;font-weight:200 800}@font-face{font-family:display Fallback;src:local(Arial);ascent-override:91.48%;descent-override:26.56%;line-gap-override:0.0%;size-adjust:101.66%}.u1I4NG_className{font-family:display,display Fallback}.u1I4NG_variable{--font-display:"display", "display Fallback"}
@font-face{font-family:body;src:url(../media/instrument_sans_latin_variable-s.p.2f3gc356dbkq4.woff2)format("woff2");font-display:swap;font-weight:400 700}@font-face{font-family:body Fallback;src:local(Arial);ascent-override:93.97%;descent-override:24.22%;line-gap-override:0.0%;size-adjust:103.22%}.fgF4Na_className{font-family:body,body Fallback}.fgF4Na_variable{--font-body:"body", "body Fallback"}
:root{--octc-color-accent:#1f78d1;--octc-color-success:#117a3d;--octc-color-success-bg:#e8f6ee;--octc-color-warning:#f9c74f;--octc-color-warning-text:#8a5a00;--octc-color-warning-bg:#fdf2d8;--octc-color-warning-strong:#e8b931;--octc-color-danger:#b3261e;--octc-stage-1:#e63946;--octc-stage-2:#f3722c;--octc-stage-3:#f9c74f;--octc-stage-4:#2a9d8f;--octc-stage-5:#1f78d1;--octc-stage-6:#b5179e;--octc-color-bg:#fcfcfd;--octc-color-bg-muted:#f5f5f7;--octc-color-bg-dark:#10141d;--octc-color-bg-dark-2:#171c27;--octc-color-surface:#fff;--octc-color-surface-elevated:#f2f2f4;--octc-color-text:#0a0a0c;--octc-color-text-secondary:#33333b;--octc-color-text-muted:#62626e;--octc-color-text-subtle:#8f8f9a;--octc-color-border:#e7e7ec;--octc-color-border-strong:#d8d8e0;--octc-color-border-dark:#232329;--octc-color-on-dark:#f4f4f6;--octc-color-on-dark-muted:#a2a2ae;--octc-space-xs:4px;--octc-space-sm:8px;--octc-space-md:16px;--octc-space-lg:24px;--octc-space-xl:32px;--octc-space-2xl:48px;--octc-space-3xl:64px;--octc-radius-input:8px;--octc-radius-button:8px;--octc-radius-control:10px;--octc-radius-card:12px;--octc-radius-shell:16px;--octc-radius-pill:999px;--octc-hit-target-min:44px;--octc-shadow-card:0 1px 2px #0a0a0c0a, 0 8px 24px -12px #0a0a0c1a;--octc-shadow-float:0 24px 60px -24px #0a0a0c40;--octc-text-body:16px;--octc-text-sm:14px;--octc-text-xs:12px;--octc-leading-body:1.55;--octc-leading-tight:1.15}
:root{--isa-ink:#8a3d5c;--juan-ink:#245a86;--casa-ink:#5a5346;--lane-tarea:#1d6fd8;--lane-formativo:#c47a12;--lane-sumativo:#c43a2b;--lane-evento:#2a8a5a;--lane-aviso:#6b4fc4;--lane-horario:#5a5346}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--octc-color-bg);color:var(--octc-color-text);font-family:var(--font-body), -apple-system, sans-serif;font-size:var(--octc-text-body);line-height:var(--octc-leading-body);-webkit-font-smoothing:antialiased}a{color:inherit}button,input{font:inherit}:focus-visible{outline:2px solid var(--octc-color-accent);outline-offset:3px}h1,h2{font-family:var(--font-display), sans-serif;letter-spacing:-.02em;font-weight:640;line-height:1.15}.logo-mark{background:url(/brand/logo-mark.png) 50%/contain no-repeat;width:36px;height:36px;display:inline-block}.family-shell{background:radial-gradient(900px 480px at 85% -10%, #1f78d124, transparent 60%), var(--octc-color-bg);place-items:center;min-height:100dvh;padding:24px;display:grid}.family-card{background:var(--octc-color-surface);border:1px solid var(--octc-color-border);border-radius:var(--octc-radius-card);width:100%;max-width:420px;box-shadow:var(--octc-shadow-card);gap:16px;padding:32px 28px;display:grid}.family-eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--octc-color-text-muted);font-size:12px}.family-card h1{font-size:28px}.family-card p{color:var(--octc-color-text-secondary);font-size:15px}.family-label{letter-spacing:.06em;text-transform:uppercase;color:var(--octc-color-text-muted);gap:6px;font-size:12px;display:grid}.family-input{border-radius:var(--octc-radius-input);border:1px solid var(--octc-color-border-strong);background:var(--octc-color-bg);color:var(--octc-color-text);text-transform:none;letter-spacing:normal;padding:12px 14px;font-size:16px}.family-submit{border-radius:var(--octc-radius-button);background:var(--octc-color-text);color:#fff;border:none;min-height:46px;font-weight:600}.family-submit:disabled{opacity:.55}.family-error{border-left:2px solid var(--octc-color-danger);color:var(--octc-color-text-secondary);background:#b3261e0d;padding:10px 12px;font-size:14px}.family-ok{border-left:2px solid var(--octc-color-success);background:var(--octc-color-success-bg);color:var(--octc-color-text-secondary);padding:10px 12px;font-size:14px}.family-meta{color:var(--octc-color-text-muted);font-size:13px}.family-logout{border:1px solid var(--octc-color-border-strong);border-radius:var(--octc-radius-button);color:var(--octc-color-text-secondary);background:0 0;justify-self:start;padding:8px 14px}@media (max-width:640px){.family-card{padding:24px 18px}.family-card h1{font-size:24px}}.family-week-shell{background:var(--octc-color-bg);align-content:start;gap:14px;width:100%;max-width:40rem;min-height:100dvh;margin:0 auto;padding:20px 16px 48px;display:grid}.family-week-top{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.family-week-shell h1{text-transform:capitalize;align-items:baseline;gap:10px;font-size:26px;display:flex}.family-day-cycle{font-family:var(--font-body), sans-serif;letter-spacing:normal;text-transform:none;color:var(--octc-color-text-muted);font-size:12px;font-weight:500}.family-week-bar{gap:10px;display:grid}.family-banner{border-left:2px solid var(--octc-color-success);background:var(--octc-color-success-bg);color:var(--octc-color-text-secondary);padding:6px 10px;font-size:13px}.family-banner-stale{border-left-color:var(--octc-color-warning-strong);background:var(--octc-color-warning-bg);color:var(--octc-color-warning-text)}.family-who{flex-wrap:wrap;gap:6px;display:flex}.family-who a{min-height:var(--octc-hit-target-min);border-radius:var(--octc-radius-pill);border:1px solid var(--octc-color-border-strong);align-items:center;padding:0 14px;font-size:14px;text-decoration:none;display:inline-flex}.family-who-off{background:var(--octc-color-surface);color:var(--octc-color-text-muted)}.family-who-on{background:var(--octc-color-text);border-color:var(--octc-color-text);color:#fff;font-weight:650}.family-strip-wrap{grid-template-columns:auto 1fr auto;align-items:stretch;gap:6px;width:100%;display:grid}.family-strip-nav{min-width:var(--octc-hit-target-min);border:1px solid var(--octc-color-border);border-radius:var(--octc-radius-card);background:var(--octc-color-surface);color:var(--octc-color-text-muted);place-items:center;padding:0 8px;font-size:22px;line-height:1;text-decoration:none;display:grid}.family-strip{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;width:100%;display:grid}.family-strip-day{border:1px solid var(--octc-color-border);border-radius:var(--octc-radius-card);background:var(--octc-color-surface);min-height:var(--octc-hit-target-min);gap:2px;padding:8px 6px;text-decoration:none;display:grid}.family-strip-on{border-color:var(--octc-color-accent);box-shadow:inset 0 0 0 1px var(--octc-color-accent)}.family-strip-name{letter-spacing:.06em;text-transform:uppercase;color:var(--octc-color-text-muted);font-size:11px}.family-strip-cycle{font-variant-numeric:tabular-nums;color:var(--octc-color-text-secondary);font-size:11px}.family-glance-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:0 0 16px;display:grid}.family-glance-cell{border:1px solid var(--octc-color-border);border-radius:var(--octc-radius-card);background:var(--octc-color-surface);min-width:0;color:inherit;padding:8px;text-decoration:none}.family-glance-head{justify-content:space-between;margin:0 0 6px;font-size:12px;font-weight:650;display:flex}.family-glance-cell ul{color:var(--octc-color-text-secondary);gap:4px;margin:0;padding:0;font-size:12px;line-height:1.35;list-style:none;display:grid}.family-glance-off{color:var(--octc-color-text-muted);margin:0;font-size:12px}@media (max-width:720px){.family-glance-grid{grid-template-columns:1fr}}.family-strip-num{font-family:var(--font-display), sans-serif;font-size:18px;font-weight:640}.family-strip-dots{flex-wrap:wrap;gap:3px;min-height:8px;display:flex}.family-dot{background:var(--casa-ink);border-radius:50%;width:7px;height:7px}.family-lane-tarea{--lane:var(--lane-tarea)}.family-lane-formativo{--lane:var(--lane-formativo)}.family-lane-sumativo{--lane:var(--lane-sumativo)}.family-lane-evento{--lane:var(--lane-evento)}.family-lane-aviso{--lane:var(--lane-aviso)}.family-lane-horario{--lane:var(--lane-horario)}.family-dot.family-lane-tarea,.family-dot.family-lane-formativo,.family-dot.family-lane-sumativo,.family-dot.family-lane-evento,.family-dot.family-lane-aviso{background:var(--lane)}.family-mark{letter-spacing:.1em;text-transform:uppercase;flex:none;font-size:10px;font-weight:700}.family-mark-isabella{color:var(--isa-ink)}.family-mark-juan{color:var(--juan-ink)}.family-mark-casa{color:var(--casa-ink)}.family-day{align-content:start;gap:16px;min-width:0;display:grid}.family-franja{gap:8px;min-width:0;display:grid}.family-franja-head{font-family:var(--font-body), sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--octc-color-text-muted);align-items:center;gap:6px;font-size:11px;font-weight:700;display:flex}.family-franja-count{letter-spacing:normal;opacity:.75;font-weight:600}.family-franja-list{gap:8px;min-width:0;list-style:none;display:grid}.family-franja-list>li{min-width:0}.family-row{border-left:4px solid var(--lane,var(--casa-ink));border-radius:0 var(--octc-radius-card) var(--octc-radius-card) 0;background:color-mix(in srgb, var(--lane,var(--casa-ink)) 9%, var(--octc-color-surface));gap:2px;padding:10px 12px;display:grid}.family-row-head{flex-wrap:wrap;align-items:baseline;gap:8px;font-size:11px;line-height:1.5;display:flex}.family-row-head:empty{display:none}.family-row-clock{font-family:var(--font-display), sans-serif;font-variant-numeric:tabular-nums;color:var(--octc-color-text);font-size:12px;font-weight:640}.family-row-course{color:var(--octc-color-text-secondary);font-size:11px;font-weight:600}.family-row-title{color:var(--octc-color-text);font-size:15px;font-weight:680;line-height:1.3}a.family-row-title{text-underline-offset:2px;text-decoration:underline;display:block}.family-row-sub{color:var(--octc-color-text-secondary);font-size:13px;line-height:1.4}.family-row-more>summary{cursor:pointer;letter-spacing:.06em;text-transform:uppercase;min-height:24px;color:var(--octc-color-text-muted);align-items:center;gap:5px;font-size:11px;list-style:none;display:inline-flex}.family-row-more>summary::-webkit-details-marker{display:none}.family-row-more>summary:before{content:"▸"}.family-row-more[open]>summary:before{content:"▾"}.family-row-do{color:var(--octc-color-text-secondary);font-size:12px;line-height:1.45}.family-row-meta{color:var(--octc-color-text-muted);font-size:11px;line-height:1.45}.family-semana{gap:10px;min-width:0;list-style:none;display:grid}.family-semana-card{border:1px solid var(--octc-color-border);border-left-width:3px;border-radius:6px;min-width:0;padding:8px 10px 10px}.family-semana-isabella{border-left-color:color-mix(in srgb, var(--isa-ink) 55%, transparent)}.family-semana-juan{border-left-color:color-mix(in srgb, var(--juan-ink) 55%, transparent)}.family-semana-head{align-items:baseline;gap:6px;margin:0 0 4px;display:flex}.family-semana-course{color:var(--octc-color-text);font-size:13px;font-weight:680}.family-semana-tema,.family-semana-resumen,.family-semana-atl,.family-semana-atl-off,.family-semana-myp,.family-semana-indaga{color:var(--octc-color-text-secondary);margin:0 0 6px;font-size:12px;line-height:1.45}.family-semana-atl-off{color:var(--octc-color-text-muted)}.family-semana-dias{color:var(--octc-color-text-secondary);gap:3px;margin:0;padding:0;font-size:12px;line-height:1.4;list-style:none;display:grid}.family-semana-dias>li{grid-template-columns:2.2rem 1fr;gap:6px;display:grid}.family-semana-dias>li:not(:has(.family-semana-day)){grid-template-columns:1fr}.family-semana-day{font-variant-numeric:tabular-nums;color:var(--octc-color-text-muted)}.family-semana-hoy{color:var(--octc-color-text);font-weight:600}.family-materias{gap:0;min-width:0;list-style:none;display:grid}.family-materias>li{min-width:0}.family-period{border-left:2px solid var(--octc-color-border-strong);padding-left:8px}.family-period-isabella{border-left-color:color-mix(in srgb, var(--isa-ink) 45%, transparent)}.family-period-juan{border-left-color:color-mix(in srgb, var(--juan-ink) 45%, transparent)}.family-period-line,.family-lesson>summary{white-space:nowrap;min-height:30px;color:var(--octc-color-text-secondary);align-items:center;gap:6px;padding:4px 0;font-size:13px;line-height:1.4;list-style:none;display:flex}.family-lesson>summary{cursor:pointer}.family-lesson>summary::-webkit-details-marker{display:none}.family-lesson>summary:after{content:"▸";color:var(--octc-color-text-muted);flex:none}.family-lesson[open]>summary:after{content:"▾"}.family-period-clock{font-variant-numeric:tabular-nums;min-width:3rem;color:var(--octc-color-text-muted);flex:none}.family-period-course{text-overflow:ellipsis;min-width:0;color:var(--octc-color-text);flex:0 auto;font-weight:620;overflow:hidden}.family-period-room{font-variant-numeric:tabular-nums;color:var(--octc-color-text-muted);flex:none}.family-period-prep{text-overflow:ellipsis;min-width:0;color:var(--octc-color-text-muted);flex:0 auto;margin-left:auto;font-size:12px;overflow:hidden}.family-period-flag{letter-spacing:.06em;text-transform:uppercase;color:var(--octc-color-accent);flex:none;font-size:10px;font-weight:700}.family-lesson-pack{gap:4px;padding:2px 0 8px 2px;display:grid}.family-lesson-row{gap:1px;display:grid}.family-lesson-row dt{letter-spacing:.08em;text-transform:uppercase;color:var(--octc-color-text-muted);font-size:10px;font-weight:700}.family-lesson-row dd{color:var(--octc-color-text-secondary);margin:0;font-size:12px;line-height:1.4}.family-lesson-link{text-underline-offset:2px;color:var(--octc-color-text-muted);padding-bottom:8px;font-size:11px;text-decoration:underline;display:inline-block}.family-empty{color:var(--octc-color-text-muted);font-size:13px;line-height:1.45}@media (max-width:640px){.family-week-shell{padding:16px 12px 40px}.family-week-shell h1{font-size:22px}.family-row{padding:9px 10px}}
