:root{--font-public: "Ubuntu Sans", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-handwritten: "Caveat", cursive;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--size-body: 16px;--size-control: 14px;--size-small: 12px;--size-title: 24px;--brand-blue: #0954f5;--brand-blue-hover: #0643cb;--brand-teal: #008dbc;--text-primary: #10284b;--text-secondary: #3d567a;--text-muted: #56677f;--border-soft: #d9e5f8;--border-control: #bdcfee;--border-subtle: #e3e8ef;--surface: #fff;--surface-subtle: #f5f9fe;--surface-soft: #f2f6fc;--surface-page: #f5f7fa;--context-header-bg: #f5f7fb;--context-header-border: #e2e8f2;--context-rail-bg: #edf1f7;--row-zebra: #f7f9fc;--row-hover: #edf2f9;--radius-control: 8px;--radius-panel: 12px;--radius-card: 16px;--shadow-card: 0 2px 8px #1737670d;--control-height: 44px;--space-xsmall: 4px;--space-small: 8px;--space-medium: 16px;--space-large: 24px;--space-xlarge: 32px;--color-success-fg: #17663a;--color-success-bg: #eff8f3;--color-success-border: #cce8d7;--color-success-solid: #1c7c43;--color-warning-fg: #8a4b00;--color-warning-bg: #fff8ec;--color-warning-border: #f3dfb8;--color-warning-solid: #b26a00;--color-danger-fg: #a12636;--color-danger-bg: #fdf2f3;--color-danger-border: #f2cdd3;--color-danger-solid: #b8293d;--color-info-fg: #1648b8;--color-info-bg: #f1f5ff;--color-info-border: #d3dffa;--color-info-solid: var(--brand-blue);--color-error: var(--color-danger-fg);--danger: var(--color-danger-fg);--cat-evaluacion-fg: #5536b8;--cat-evaluacion-bg: #f7f4ff;--cat-evaluacion-bg-active: #ebe5fd;--cat-evaluacion-border: #e0d8fa;--cat-evaluacion-dot: #7c5ce0;--cat-actividades-fg: #1d50b8;--cat-actividades-bg: #f3f7ff;--cat-actividades-bg-active: #e1eafd;--cat-actividades-border: #d4e0fa;--cat-actividades-dot: #4b7be5;--cat-asistencia-fg: #874800;--cat-asistencia-bg: #fff8ed;--cat-asistencia-bg-active: #fdebcc;--cat-asistencia-border: #f2ddb6;--cat-asistencia-dot: #e59a2f;--cat-comunicaciones-fg: #0b6378;--cat-comunicaciones-bg: #f0fafc;--cat-comunicaciones-bg-active: #d8f0f5;--cat-comunicaciones-border: #cae9f0;--cat-comunicaciones-dot: #1f9fbd;--cat-atencion-educativa-fg: #9c2464;--cat-atencion-educativa-bg: #fff4f9;--cat-atencion-educativa-bg-active: #fbe0ee;--cat-atencion-educativa-border: #f4d3e4;--cat-atencion-educativa-dot: #d266a4;--cat-seguimiento-fg: #435574;--cat-seguimiento-bg: #f5f7fa;--cat-seguimiento-bg-active: #e5e9f0;--cat-seguimiento-border: #dce2eb;--cat-seguimiento-dot: #7d8aa3;--disabled-bg: #e9edf3;--disabled-fg: #5a6779;--disabled-border: #d5dce6;--focus-ring-color: #008db7;--focus-ring-width: 3px;--focus-ring: var(--focus-ring-width) solid var(--focus-ring-color);--focus-ring-offset: 3px;--page-max-work: 1640px;--page-max-reading: 1100px;--page-gutter: clamp(16px, 3vw, 48px);--shell-floating-inline-offset: var(--space-medium);--shell-floating-bottom-offset: var(--space-medium);--shell-bottom-bar: 60px}@font-face{font-family:Ubuntu Sans;src:url(/fonts/ubuntu-sans/ubuntu-sans-variable.woff2) format("woff2");font-style:normal;font-weight:100 800;font-display:swap}@font-face{font-family:Caveat;src:url(/fonts/caveat/caveat-variable.woff2) format("woff2");font-style:normal;font-weight:400 700;font-display:swap}.notice{margin:0 0 12px;padding:8px 12px;border:1px solid var(--notice-border, var(--border-subtle));border-left:4px solid var(--notice-mark, var(--text-muted));border-radius:var(--radius-control);background:var(--notice-bg, var(--surface-soft));color:var(--notice-fg, var(--text-primary));font-size:var(--size-control);line-height:1.5}.notice>:first-child{margin-top:0}.notice>:last-child{margin-bottom:0}.notice-info{--notice-border: var(--color-info-border);--notice-mark: var(--color-info-solid);--notice-bg: var(--color-info-bg);--notice-fg: var(--text-primary)}.notice-warning{--notice-border: var(--color-warning-border);--notice-mark: var(--color-warning-solid);--notice-bg: var(--color-warning-bg);--notice-fg: var(--color-warning-fg)}.notice-success{--notice-border: var(--color-success-border);--notice-mark: var(--color-success-solid);--notice-bg: var(--color-success-bg);--notice-fg: var(--color-success-fg)}.notice-danger{--notice-border: var(--color-danger-border);--notice-mark: var(--color-danger-solid);--notice-bg: var(--color-danger-bg);--notice-fg: var(--color-danger-fg)}.cat-evaluacion{--cat-fg: var(--cat-evaluacion-fg);--cat-bg: var(--cat-evaluacion-bg);--cat-bg-active: var(--cat-evaluacion-bg-active);--cat-border: var(--cat-evaluacion-border);--cat-dot: var(--cat-evaluacion-dot)}.cat-actividades{--cat-fg: var(--cat-actividades-fg);--cat-bg: var(--cat-actividades-bg);--cat-bg-active: var(--cat-actividades-bg-active);--cat-border: var(--cat-actividades-border);--cat-dot: var(--cat-actividades-dot)}.cat-asistencia{--cat-fg: var(--cat-asistencia-fg);--cat-bg: var(--cat-asistencia-bg);--cat-bg-active: var(--cat-asistencia-bg-active);--cat-border: var(--cat-asistencia-border);--cat-dot: var(--cat-asistencia-dot)}.cat-comunicaciones{--cat-fg: var(--cat-comunicaciones-fg);--cat-bg: var(--cat-comunicaciones-bg);--cat-bg-active: var(--cat-comunicaciones-bg-active);--cat-border: var(--cat-comunicaciones-border);--cat-dot: var(--cat-comunicaciones-dot)}.cat-atencion-educativa{--cat-fg: var(--cat-atencion-educativa-fg);--cat-bg: var(--cat-atencion-educativa-bg);--cat-bg-active: var(--cat-atencion-educativa-bg-active);--cat-border: var(--cat-atencion-educativa-border);--cat-dot: var(--cat-atencion-educativa-dot)}.cat-seguimiento{--cat-fg: var(--cat-seguimiento-fg);--cat-bg: var(--cat-seguimiento-bg);--cat-bg-active: var(--cat-seguimiento-bg-active);--cat-border: var(--cat-seguimiento-border);--cat-dot: var(--cat-seguimiento-dot)}.cat-chip{display:inline-flex;align-items:center;gap:6px;padding:1px 8px;border:1px solid var(--cat-border, var(--border-subtle));border-radius:999px;background:var(--cat-bg, var(--surface-soft));color:var(--cat-fg, var(--text-secondary));font-size:.75rem;font-weight:var(--weight-semibold);line-height:1.5;white-space:nowrap}.cat-dot{display:inline-block;flex:none;width:8px;height:8px;border-radius:50%;background:var(--cat-dot, var(--text-muted))}.cat-line{border-left:3px solid var(--cat-dot, var(--border-soft))}.cat-filter{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:4px 12px;border:1px solid var(--cat-border, var(--border-soft));border-radius:999px;background:var(--cat-bg, var(--surface));color:var(--cat-fg, var(--text-primary));font:inherit;font-size:var(--size-control);cursor:pointer}@media(hover:hover){.cat-filter:not(:disabled):hover{background:var(--cat-bg-active, var(--row-hover))}}.cat-filter[aria-pressed=true]{border-color:var(--cat-dot, var(--brand-blue));background:var(--cat-bg-active, var(--color-info-bg));font-weight:var(--weight-semibold);box-shadow:inset 0 0 0 1px var(--cat-dot, var(--brand-blue))}.cat-filter[aria-pressed=true]:before{content:"\2713";font-weight:var(--weight-bold)}.cat-filter:disabled,.cat-filter.is-empty{opacity:1;border-style:dashed;background:var(--surface);color:color-mix(in srgb,var(--cat-fg, var(--text-secondary)) 82%,white);cursor:default}.cat-filter:disabled .cat-dot,.cat-filter.is-empty .cat-dot{opacity:.45}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:20px}body{margin:0;color:var(--text-primary);background:var(--surface-subtle);font-family:var(--font-public);font-size:var(--size-body);font-weight:var(--weight-regular)}button,input,a{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.65}:where(a,button,input,select,textarea,summary,[tabindex],[contenteditable=true]):focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset)}[tabindex="-1"]:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset)}html:not([data-input-modality=keyboard]) [tabindex="-1"]:focus{outline-color:transparent!important}a.navigation-link,a.navigation-link:visited{color:var(--brand-blue);text-decoration:none}a.navigation-link:hover{color:var(--brand-blue-hover);text-decoration:underline;text-underline-offset:3px}a.navigation-link:focus-visible{outline:var(--focus-ring);outline-offset:2px;border-radius:3px}a.navigation-link .link-icon{width:.85em;height:.85em;margin-left:.25em;vertical-align:-.05em;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}nav.app-breadcrumb ol{display:flex;flex-wrap:nowrap;align-items:center;margin:0;padding:0;list-style:none;color:var(--text-secondary);font-size:var(--size-control);line-height:1.4}nav.app-breadcrumb li{display:inline-flex;flex:0 1 auto;align-items:center;min-width:0}nav.app-breadcrumb li:first-child{flex-shrink:0}nav.app-breadcrumb li.crumb-long{flex-shrink:40;min-width:6em}nav.app-breadcrumb li:last-child{flex-shrink:0;max-width:60%}nav.app-breadcrumb li>*{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}nav.app-breadcrumb li+li:before{content:"\203a" / "";flex:none;margin-inline:8px;color:var(--text-muted)}nav.app-breadcrumb ol:has(>li:nth-child(5)) li.crumb-long{flex-shrink:0;min-width:0}nav.app-breadcrumb ol:has(>li:nth-child(5)) li.crumb-long>a{padding-inline:4px;font-size:0}nav.app-breadcrumb ol:has(>li:nth-child(5)) li.crumb-long>a:after{content:"\2026";font-size:var(--size-control)}@media(max-width:1050px){nav.app-breadcrumb ol:has(>li:nth-child(4)) li.crumb-long{flex-shrink:0;min-width:0}nav.app-breadcrumb ol:has(>li:nth-child(4)) li.crumb-long>a{padding-inline:4px;font-size:0}nav.app-breadcrumb ol:has(>li:nth-child(4)) li.crumb-long>a:after{content:"\2026";font-size:var(--size-control)}}@media(max-width:600px){nav.app-breadcrumb li:not(:nth-last-child(-n+2)){display:none}nav.app-breadcrumb li:nth-last-child(2):before{content:none}}nav.app-breadcrumb a,nav.app-breadcrumb a:visited{color:var(--text-secondary);text-decoration:none}nav.app-breadcrumb a:hover{color:var(--brand-blue);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}nav.app-breadcrumb a:focus-visible{color:var(--brand-blue);outline:var(--focus-ring);outline-offset:var(--focus-ring-offset);border-radius:2px;text-decoration:none}nav.app-breadcrumb [aria-current=page]{color:var(--text-primary);font-weight:var(--weight-medium);text-decoration:none}strong{font-weight:var(--weight-semibold)}section[id],app-access-card[id]{scroll-margin-top:20px}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.visually-hidden,.sr-only{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}a.back-link{display:inline-block;margin:0 0 6px;font-size:.9rem;font-weight:600;text-decoration:none}a.back-link:hover{text-decoration:underline}.saved-notice{margin:0 0 12px;padding:8px 12px;border:1px solid var(--color-success-border);border-left:4px solid var(--color-success-solid);border-radius:var(--radius-control);background:var(--color-success-bg);color:var(--color-success-fg)}.primary,.outline,.tonal,.provider-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-small);min-height:var(--control-height);padding:10px var(--space-large);border:1px solid transparent;border-radius:var(--radius-control);font-family:var(--font-public);font-size:var(--size-control);font-weight:var(--weight-semibold);line-height:1.4;text-decoration:none;text-align:center}.primary{background:var(--brand-blue);color:#fff}.outline{border-color:var(--brand-blue);background:transparent;color:var(--text-primary)}.tonal{background:var(--color-info-bg);color:var(--brand-blue)}.outline.destructive{border-color:var(--color-danger-solid);background:var(--surface);color:var(--color-danger-fg)}.primary.destructive{border-color:var(--color-danger-solid);background:var(--color-danger-solid);color:#fff}.provider-button{border-color:var(--border-control);background:var(--surface);color:var(--text-primary);font-weight:var(--weight-medium)}@media(hover:hover){.primary:not(:disabled):hover{background:var(--brand-blue-hover)}.tonal:not(:disabled):hover{background:color-mix(in srgb,var(--brand-blue) 12%,white);color:var(--brand-blue-hover)}.outline:not(:disabled):hover,.provider-button:not(:disabled):hover{background:var(--surface-subtle);border-color:var(--brand-blue)}.outline.destructive:not(:disabled):hover{background:var(--color-danger-bg)}.primary.destructive:not(:disabled):hover{background:var(--color-danger-fg)}}:where(.primary,.outline,.tonal,.provider-button).small{min-height:36px;padding:6px 14px}:is(.primary,.outline,.tonal,.provider-button,.contextual-action):is(:disabled,[aria-disabled=true]){border-color:var(--disabled-border);background:var(--disabled-bg);color:var(--disabled-fg);box-shadow:none;opacity:1;cursor:not-allowed}.button-icon{flex:none;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.text-button{border:0;background:none;color:var(--brand-blue);padding:0;cursor:pointer;font:inherit;font-size:inherit}.text-button:disabled,.tertiary:disabled{color:var(--disabled-fg);text-decoration:none;opacity:1;cursor:not-allowed}@media(hover:hover){.text-button:not(:disabled):hover{text-decoration:underline}}.tertiary{display:inline-flex;align-items:center;gap:var(--space-small);min-height:var(--control-height);padding:var(--space-small) 0;border:0;background:transparent;color:var(--text-secondary);font:inherit;font-size:var(--size-control);font-weight:var(--weight-medium);text-decoration:none}@media(hover:hover){.tertiary:not(:disabled):hover{color:var(--brand-blue);text-decoration:underline}}.icon-action{display:inline-grid;place-items:center;width:32px;height:32px;min-width:32px;min-height:32px;padding:0;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text-secondary);cursor:pointer}.icon-action:not(:disabled):hover{border-color:var(--border-soft);background:var(--row-hover);color:var(--brand-blue)}.icon-action svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.icon-action.danger,.tertiary.danger{color:var(--color-danger-fg)}.contextual-action{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--color-info-border);border-radius:var(--radius-control);background:var(--color-info-bg);color:var(--brand-blue);font:inherit;font-size:14px;font-weight:600;text-decoration:none;cursor:pointer}.contextual-action svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8}.contextual-action:not(:disabled):hover{background:#e3ecfd}.form-label,label{display:block;font-weight:var(--weight-semibold);margin-bottom:8px;font-size:14px}.form-input,input:not([type=checkbox]):not([type=radio]):not(.otp){width:100%;padding:12px;border:1px solid var(--border-control);border-radius:var(--radius-control);font:inherit;color:inherit;background:var(--surface)}textarea{box-sizing:border-box;padding:10px 12px;border:1px solid var(--border-control);border-radius:var(--radius-control);color:inherit;background:var(--surface);line-height:1.5;resize:vertical}textarea:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset)}select{min-height:40px;padding:6px 10px;border:1px solid var(--border-control);border-radius:var(--radius-control);color:inherit;background-color:var(--surface)}.field-error,small.field-error{display:block;color:var(--color-error);font-size:var(--size-control);line-height:1.5}small.field-error{min-height:20px}.field-error--icon:before{content:"!";display:inline-grid;place-items:center;width:14px;height:14px;margin-inline-end:6px;border:1.5px solid currentColor;border-radius:50%;font-size:10px;font-weight:var(--weight-bold);line-height:1;vertical-align:baseline}.filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}.filter-bar select,.filter-bar input{min-height:38px;padding:6px 10px;border:1px solid var(--border-control);border-radius:var(--radius-control);background:var(--surface);font:inherit;font-size:14px}.filter-bar input[type=search]{background:var(--surface-subtle)}.filter-bar .search{flex:1 1 240px}.filter-bar .search input{width:100%;box-sizing:border-box}:root{--page-max-width: 1400px}.page-container{width:100%;max-width:var(--page-max-width);margin-inline:auto;padding-inline:var(--page-gutter)}.page-work,.page-reading{width:100%;margin-inline:auto;padding-inline:var(--page-gutter)}.page-work{max-width:var(--page-max-work)}.page-reading{max-width:var(--page-max-reading)}.surface-card{padding:var(--space-medium);border:1px solid var(--border-subtle);border-radius:var(--radius-panel);background:var(--surface)}.scroll-x{position:relative;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;background:linear-gradient(to right,var(--scroll-x-bg, var(--surface)) 30%,transparent) left / 32px 100% no-repeat local,linear-gradient(to left,var(--scroll-x-bg, var(--surface)) 30%,transparent) right / 32px 100% no-repeat local,radial-gradient(farthest-side at 0 50%,#10284b29,transparent) left / 12px 100% no-repeat scroll,radial-gradient(farthest-side at 100% 50%,#10284b29,transparent) right / 12px 100% no-repeat scroll;background-color:var(--scroll-x-bg, var(--surface))}:where(.table-wrap,.table-scroll,.scroll-table){position:relative;max-width:100%}.access-flow-page{max-width:1200px;padding-block:clamp(24px,4vw,48px)}.access-flow-panel{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-card);overflow:hidden}.admin-actions-column{width:190px}.admin-table-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.admin-table-actions>.inspect{white-space:nowrap;flex-shrink:0}.admin-table-actions>details{position:relative;flex-shrink:0}.admin-table-actions>details>summary{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;list-style:none;cursor:pointer;border-radius:var(--radius-control)}.admin-table-actions>details>summary::marker{content:""}.admin-table-actions>details>summary::-webkit-details-marker{display:none}.admin-table-actions>details>summary:hover{background:var(--surface-subtle)}.admin-table-actions>details>summary:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset)}:where(.zebra-list)>li:nth-child(2n),:where(table.zebra-list)>tbody>tr:nth-child(2n){background:var(--row-zebra)}:where(.zebra-list)>li:hover,:where(table.zebra-list)>tbody>tr:hover{background:var(--row-hover)}.summary-tint-blue{--summary-bg: #f5f8ff;--summary-border: #dfe8fb;--summary-icon-bg: #e3ecfd;--summary-icon-fg: var(--brand-blue)}.summary-tint-green{--summary-bg: #f3faf6;--summary-border: #d9efe2;--summary-icon-bg: #dcf2e5;--summary-icon-fg: #1c7c43}.summary-tint-violet{--summary-bg: #f7f5ff;--summary-border: #e4dffa;--summary-icon-bg: #ebe6fd;--summary-icon-fg: #5b3fc4}.summary-tint-lavender{--summary-bg: #f6f7fb;--summary-border: #e3e6f0;--summary-icon-bg: #e8ebf4;--summary-icon-fg: #475978}.summary-tint-cyan{--summary-bg: #f1f9fb;--summary-border: #d5ecf1;--summary-icon-bg: #d9f0f5;--summary-icon-fg: #0e6a85}.summary-tint-amber{--summary-bg: #fffaf1;--summary-border: #f5e4c4;--summary-icon-bg: #fdecc9;--summary-icon-fg: #8a4b00}.summary-tint-rose{--summary-bg: #fff6f6;--summary-border: #f8dede;--summary-icon-bg: #fde4e4;--summary-icon-fg: #b4234a}[data-tooltip]{position:relative}[data-tooltip]:hover:after,[data-tooltip]:focus-visible:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 6px);left:50%;z-index:20;padding:4px 8px;border-radius:6px;background:var(--text-primary);color:#fff;font-size:12px;font-weight:500;line-height:1.3;white-space:nowrap;pointer-events:none;transform:translate(-50%);animation:tooltip-in .12s ease}@keyframes tooltip-in{0%{opacity:0;transform:translate(-50%,2px)}}@media(prefers-reduced-motion:reduce){[data-tooltip]:hover:after,[data-tooltip]:focus-visible:after{animation:none}}.admin-flow-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-block:24px 0}.admin-flow-return{display:flex;margin-block:24px}.admin-technical{margin-block:20px;overflow-wrap:anywhere}.admin-technical summary{cursor:pointer;min-height:44px;display:list-item}.admin-flow-actions .flow-primary{background:var(--brand-blue);color:#fff;border-color:var(--brand-blue)}.admin-flow-actions .flow-danger{background:var(--color-error);color:#fff;border-color:var(--color-error)}.admin-flow-actions :is(button,a):focus-visible,.admin-technical summary:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset)}
