/* Generated by tools/css_bundle.php from aulacore-signin.src.css. Edit the sources and run the tool. */
/*
 * AulaCore Claro sign-in pages: login, forgot password and both reset-password forms.
 * Standalone pages without Bootstrap or the admin shell. theme.css loads first and supplies the school brand
 * (--bs-primary / --ac-ds-primary*), which tokens.css resolves.
 */

/* aulacore-core/typography.css */
/*
 * AulaCore typography contract.
 * System UI uses Roboto only. Decorative document fonts live in
 * aulacore-document-fonts.css and icons live in aulacore-core/icons.css.
 */

/* Roboto 400/500/600/700 (SIL OFL 1.1), official static WOFF2 files of Google Fonts, Latin and Latin Extended subsets.
   Vertical metrics are overridden (ascent 1.06 em, descent 0.29 em) so every weight keeps the line height of the contract. */
@font-face {
    font-display: swap;
    font-family: "Roboto";
    font-style: normal;
    font-weight: 400;
    ascent-override: 106%;
    descent-override: 29.1%;
    line-gap-override: 0%;
    src: url("../fonts/aulacore-sans-400-latin-ext.woff2") format("woff2");
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-display: swap;
    font-family: "Roboto";
    font-style: normal;
    font-weight: 400;
    ascent-override: 106%;
    descent-override: 29.1%;
    line-gap-override: 0%;
    src: url("../fonts/aulacore-sans-400-latin.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-display: swap;
    font-family: "Roboto";
    font-style: normal;
    font-weight: 500;
    ascent-override: 106%;
    descent-override: 29.1%;
    line-gap-override: 0%;
    src: url("../fonts/aulacore-sans-500-latin-ext.woff2") format("woff2");
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-display: swap;
    font-family: "Roboto";
    font-style: normal;
    font-weight: 500;
    ascent-override: 106%;
    descent-override: 29.1%;
    line-gap-override: 0%;
    src: url("../fonts/aulacore-sans-500-latin.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-display: swap;
    font-family: "Roboto";
    font-style: normal;
    font-weight: 600;
    ascent-override: 106%;
    descent-override: 29.1%;
    line-gap-override: 0%;
    src: url("../fonts/aulacore-sans-600-latin-ext.woff2") format("woff2");
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-display: swap;
    font-family: "Roboto";
    font-style: normal;
    font-weight: 600;
    ascent-override: 106%;
    descent-override: 29.1%;
    line-gap-override: 0%;
    src: url("../fonts/aulacore-sans-600-latin.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-display: swap;
    font-family: "Roboto";
    font-style: normal;
    font-weight: 700;
    ascent-override: 106%;
    descent-override: 29.1%;
    line-gap-override: 0%;
    src: url("../fonts/aulacore-sans-700-latin-ext.woff2") format("woff2");
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-display: swap;
    font-family: "Roboto";
    font-style: normal;
    font-weight: 700;
    ascent-override: 106%;
    descent-override: 29.1%;
    line-gap-override: 0%;
    src: url("../fonts/aulacore-sans-700-latin.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* aulacore-core/tokens-scale.css */
@layer tokens {/*
 * AulaCore theme tokens only this sheet declares (tokens.src.css puts them in the "tokens" layer).
 */


:root {
    /* AulaCore Claro type scale: the only six text sizes of the content area (tools/css_type_scale.php keeps the
       component and screen sources on it). xs captions and pills, sm labels and secondary text, md body, controls
       and tables, lg card and section titles, xl sub-headings, 2xl page titles and key figures. */
    --ac-font-size-xs: 12px;
    --ac-font-size-sm: 13px;
    --ac-font-size-md: 14px;
    --ac-font-size-lg: 16px;
    --ac-font-size-xl: 20px;
    --ac-font-size-2xl: 24px;
    /* The three heights of buttons and controls: compact (table and toolbar actions, xs/sm buttons), default, large. */
    --ac-control-height-sm: 32px;
    --ac-control-height-md: 38px;
    --ac-control-height-lg: 46px;
    --ac-primary: var(--ac-ds-primary);
    --ac-primary-rgb: var(--ac-ds-primary-rgb);
    --ac-white-rgb: 255, 255, 255;
    --ac-black-rgb: 0, 0, 0;
    --ac-blue-rgb: 11, 78, 162;
    --ac-primary-strong: var(--ac-ds-primary-strong);
    --ac-primary-hover: var(--ac-ds-primary-hover);
    --ac-primary-contrast: var(--ac-ds-primary-contrast);
    --ac-ds-danger: var(--bs-danger, #c0392b);
    --ac-ds-danger-hover: #a93226;
    --ac-ds-danger-soft: rgba(192, 57, 43, .12);
    --ac-ds-warning: var(--bs-warning, #f39c12);
    --ac-ds-warning-hover: #d8870f;
    --ac-ds-warning-soft: #fff4df;
    --ac-ds-success: var(--bs-success, #00a65a);
    --ac-ds-success-hover: #008d4c;
    --ac-ds-success-soft: #e8f6ef;
    --ac-ds-info: var(--bs-info, #00c0ef);
    --ac-ds-info-hover: #00a7d0;
    --ac-ds-info-soft: #e8f6fb;
    --ac-success-soft: var(--ac-ds-success-soft);
    --ac-warning-soft: var(--ac-ds-warning-soft);
    --ac-danger-soft: var(--ac-ds-danger-soft);
    --ac-info: var(--ac-ds-info);
    --ac-info-soft: var(--ac-ds-info-soft);
    --ac-pending: var(--ac-ds-warning);
    --ac-pending-soft: var(--ac-ds-warning-soft);
    --ac-approved: var(--ac-ds-success);
    --ac-approved-soft: var(--ac-ds-success-soft);
    --ac-rejected: var(--ac-ds-danger);
    --ac-rejected-soft: var(--ac-ds-danger-soft);
    --ac-overdue: var(--ac-ds-danger);
    --ac-overdue-soft: #fff1f1;
    --ac-disabled: #9ca3af;
    --ac-disabled-soft: #eef2f5;
    --ac-ds-shell-metal-light: rgba(255, 255, 255, .28);
    --ac-ds-shell-metal-mid: rgba(255, 255, 255, .09);
    --ac-ds-shell-metal-dark: rgba(0, 0, 0, .22);
    --ac-ds-shell-metal-border: rgba(255, 255, 255, .24);
    --ac-ds-shell-metal-shadow: rgba(0, 0, 0, .22);
    --ac-ds-subtle-bg: #f9fafb;
    --ac-ds-soft-bg: #f2f4f7;
    --ac-ds-surface-border-strong: #98a2b3;
    --ac-ds-heading-color: #101828;
    --ac-ds-text-secondary: #475467;
    --ac-ds-text-muted: var(--ac-ds-muted-text);
    --ac-ds-text-disabled: #98a2b3;
    --ac-ds-page-bg: #f4f6fa;
    --ac-text: var(--ac-ds-text);
    --ac-text-secondary: var(--ac-ds-text-secondary);
    --ac-text-muted: var(--ac-ds-muted-text);
    --ac-text-disabled: var(--ac-ds-text-disabled);
    --ac-bg: var(--ac-ds-page-bg);
    --ac-surface-soft: var(--ac-ds-surface-muted);
    --ac-surface-glass: var(--ac-ds-glass-bg);
    --ac-border-soft: var(--ac-ds-surface-border-soft);
    --ac-border-strong: var(--ac-ds-surface-border-strong);
    --ac-ds-page-padding-x: 28px;
    --ac-ds-page-padding-y: 24px;
    --ac-ds-page-gap: 16px;
    --ac-ds-grid-gap: 16px;
    --ac-ds-component-gap: 10px;
    --ac-ds-compact-gap: 7px;
    --ac-ds-form-row-gap: 12px;
    --ac-ds-context-nav-width: 45ch;
    --ac-ds-form-panel-width: var(--ac-ds-context-nav-width);
    --ac-ds-result-panel-min-width: 72ch;
    --ac-ds-radius-sm: 8px;
    /* AulaCore Claro (PreSkool composition, 10/11/2026): controls 10 px, cards and surfaces 16 px. */
    --ac-ds-radius-md: 10px;
    --ac-ds-radius-lg: 16px;
    --ac-ds-radius-surface: var(--ac-ds-radius-lg);
    --ac-ds-control-padding-x: 12px;
    --ac-ds-control-padding-y: 6px;
    --ac-ds-tab-height: 40px;
    --ac-ds-tab-padding-x: 14px;
    --ac-ds-field-bg: #fff;
    --ac-ds-field-border: #d0d5dd;
    --ac-ds-input-border: var(--ac-ds-field-border);
    --ac-ds-field-placeholder: #98a2b3;
    --ac-ds-glass-bg: #f5f7f9;
    --ac-ds-glass-bg-strong: #fff;
    --ac-ds-glass-border: var(--ac-ds-surface-border);
    --ac-ds-panel-border: #e8eaed;
    --ac-ds-card-border: #e8eaed;
    --ac-ds-panel-divider: #f2f4f7;
    --ac-ds-panel-header-bg: var(--ac-ds-surface);
    --ac-ds-panel-footer-bg: #fcfcfd;
    --ac-ds-panel-header-padding: 16px 20px;
    --ac-ds-panel-body-padding: 20px;
    --ac-ds-glass-highlight: #fff;
    --ac-ds-glass-shadow: none;
    --ac-ds-glass-shadow-soft: none;
    --ac-ds-glass-blur: 13px;
    --ac-ds-shell-glass-bg: rgba(var(--ac-ds-primary-rgb, 60, 141, 188), .86);
    --ac-ds-shell-glass-border: rgba(255, 255, 255, .24);
    --ac-ds-icon-glass-bg: transparent;
    --ac-ds-icon-glass-bg-hover: var(--ac-ds-primary-soft);
    --ac-ds-icon-glass-border: var(--ac-ds-surface-border);
    /* Card elevation: a hairline plus a soft, wide drop. */
    --ac-ds-card-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 24px rgba(15, 23, 42, .06);
    --ac-ds-component-shadow: var(--ac-ds-card-shadow);
    --ac-ds-component-shadow-soft: 0 1px 2px rgba(16, 24, 40, .04);
    --ac-ds-shadow-sm: 0 1px 2px rgba(16, 24, 40, .05);
    --ac-ds-shadow-md: 0 4px 8px -2px rgba(16, 24, 40, .08), 0 2px 4px -2px rgba(16, 24, 40, .04);
    --ac-ds-overlay-shadow: 0 8px 30px rgba(0, 0, 0, .18);
    --ac-ds-focus-ring: 0 0 0 4px rgba(var(--ac-ds-primary-rgb, 60, 141, 188), .12);
    --ac-ds-table-header-bg: #fcfcfd;
    --ac-ds-table-header-border: #eaecf0;
    --ac-ds-table-row-alt: #fcfcfd;
    --ac-ds-table-text: #344054;
    --ac-ds-dt-button-border: #d0d5dd;
    /* Frame (rail + section column and top bar): light, as PreSkool's structure. The tile and active tones follow
       Apariencia's primary, so a school's colour still reaches the menu. */
    --ac-ds-sidebar-bg: #f8fafc;
    --ac-ds-sidebar-border: #e8eaed;
    --ac-ds-sidebar-text: #4b5568;
    --ac-ds-sidebar-heading: #6b7385;
    --ac-ds-sidebar-hover-bg: #eef1f6;
    --ac-ds-sidebar-tile-bg: #eceff4;
    --ac-ds-sidebar-tile-text: #64748b;
    --ac-ds-sidebar-active-bg: #fff;
    --ac-ds-sidebar-active-text: #111c33;
    --ac-ds-sidebar-active-shadow: 0 2px 8px rgba(15, 23, 42, .08);
    --ac-ds-topbar-bg: #fff;
    --ac-ds-topbar-text: #111c33;
    --ac-ds-topbar-muted: #4b5568;
    --ac-ds-topbar-control-border: #e8eaed;
    --ac-ds-topbar-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 4px 12px rgba(15, 23, 42, .05);
    /* Glass: only floating things (menus, panels, the section column) and the hero/summary cards of a desk. */
    --ac-ds-float-bg: rgba(255, 255, 255, .86);
    --ac-ds-float-border: rgba(232, 234, 237, .9);
    --ac-ds-float-blur: 16px;
    --ac-ds-float-shadow: 0 18px 44px -12px rgba(15, 23, 42, .22);
    --ac-ds-ink-strong: #111c33;
    --ac-ds-control-shadow: 0 1px 2px rgba(15, 23, 42, .04);
    --ac-ds-dock-shadow: 0 -6px 20px -14px rgba(15, 23, 42, .3);
    --ac-ds-dialog-backdrop: rgba(15, 23, 42, .28);
    --ac-shadow-color-rgb: 17, 24, 39;
    /* The ink of the mockups' control shadows (#101828). */
    --ac-shadow-ink-rgb: 16, 24, 40;
    --ac-shadow-blue-rgb: 32, 52, 77;
    --ac-shadow-slate-rgb: 48, 68, 85;
    --ac-shadow-navy-rgb: 24, 36, 61;
    --ac-public-dropdown-accent: #01bafd;
    --ac-public-accordion-bg: #1ea0e0;
    --ac-public-accordion-hover: #005C97;
    --ac-shadow-soft: rgba(var(--ac-shadow-color-rgb), .05);
    --ac-shadow-medium: rgba(var(--ac-shadow-color-rgb), .16);
    --ac-shell-highlight: rgba(255, 255, 255, .28);
    --ac-shell-highlight-soft: rgba(255, 255, 255, .1);
    --ac-shell-shade: rgba(0, 0, 0, .12);
    --ac-icon-blue: #2f72c8;
    --ac-icon-blue-soft: #e9f2ff;
    --ac-icon-indigo: #5964c9;
    --ac-icon-indigo-soft: #eef0ff;
    --ac-icon-violet: #7c5acb;
    --ac-icon-violet-soft: #f1ecff;
    --ac-icon-purple: #9453bd;
    --ac-icon-purple-soft: #f5ebfb;
    --ac-icon-teal: #127573;
    --ac-icon-teal-soft: #e6f5f3;
    --ac-icon-cyan: #0e7a8e;
    --ac-icon-cyan-soft: #e6f6f9;
    --ac-icon-green: #1b7a49;
    --ac-icon-green-soft: #e8f6ef;
    --ac-icon-lime: #5f8d16;
    --ac-icon-lime-soft: #f0f7df;
    --ac-icon-amber: #c9820e;
    --ac-icon-amber-soft: #fff4df;
    --ac-icon-orange: #cf6f23;
    --ac-icon-orange-soft: #fff0e4;
    --ac-icon-rose: #c94f6a;
    --ac-icon-rose-soft: #fcebf0;
    --ac-icon-red: #c8483f;
    --ac-icon-red-soft: #fff0f0;
    --ac-icon-slate: #52616d;
    --ac-icon-slate-soft: #eef2f5;
    --ac-module-settings: var(--ac-icon-slate);
    --ac-module-settings-soft: var(--ac-icon-slate-soft);
    --ac-module-calendar: var(--ac-icon-orange);
    --ac-module-calendar-soft: var(--ac-icon-orange-soft);
    --ac-module-academics: var(--ac-icon-violet);
    --ac-module-academics-soft: var(--ac-icon-violet-soft);
    --ac-module-reception: var(--ac-icon-cyan);
    --ac-module-reception-soft: var(--ac-icon-cyan-soft);
    --ac-module-students: var(--ac-icon-blue);
    --ac-module-students-soft: var(--ac-icon-blue-soft);
    --ac-module-attendance: var(--ac-icon-teal);
    --ac-module-attendance-soft: var(--ac-icon-teal-soft);
    --ac-module-tasks: var(--ac-icon-indigo);
    --ac-module-tasks-soft: var(--ac-icon-indigo-soft);
    --ac-module-grades: var(--ac-icon-purple);
    --ac-module-grades-soft: var(--ac-icon-purple-soft);
    --ac-module-conduct: var(--ac-icon-rose);
    --ac-module-conduct-soft: var(--ac-icon-rose-soft);
    --ac-module-staff: var(--ac-icon-indigo);
    --ac-module-staff-soft: var(--ac-icon-indigo-soft);
    --ac-module-finance: var(--ac-icon-green);
    --ac-module-finance-soft: var(--ac-icon-green-soft);
    --ac-module-inventory: var(--ac-icon-lime);
    --ac-module-inventory-soft: var(--ac-icon-lime-soft);
    --ac-module-communication: var(--ac-icon-cyan);
    --ac-module-communication-soft: var(--ac-icon-cyan-soft);
    --ac-module-website: var(--ac-icon-teal);
    --ac-module-website-soft: var(--ac-icon-teal-soft);
    --ac-module-transport: var(--ac-icon-orange);
    --ac-module-transport-soft: var(--ac-icon-orange-soft);
    --ac-module-services: var(--ac-icon-blue);
    --ac-module-services-soft: var(--ac-icon-blue-soft);
    --ac-module-library: var(--ac-icon-amber);
    --ac-module-library-soft: var(--ac-icon-amber-soft);
    --ac-chart-1: var(--ac-icon-teal);
    --ac-chart-4: var(--ac-icon-orange);
    --ac-chart-5: var(--ac-icon-blue);
    --ac-chart-6: var(--ac-icon-violet);
    --ac-chart-7: var(--ac-icon-rose);
    --ac-chart-8: var(--ac-icon-slate);
    --ac-role-brand: var(--ac-ds-primary);
    --ac-role-brand-hover: var(--ac-ds-primary-hover);
    --ac-role-brand-soft: color-mix(in srgb, var(--ac-ds-primary) 14%, var(--ac-ds-surface) 86%);
    --ac-role-brand-contrast: var(--ac-ds-primary-contrast);
    --ac-role-neutral: var(--ac-icon-slate);
    --ac-role-neutral-soft: color-mix(in srgb, var(--ac-icon-slate) 11%, var(--ac-ds-surface) 89%);
    --ac-role-neutral-muted: var(--ac-ds-muted-text);
    --ac-role-success: var(--ac-ds-success);
    --ac-role-success-soft: color-mix(in srgb, var(--ac-ds-success) 16%, var(--ac-ds-surface) 84%);
    --ac-role-warning: var(--ac-ds-warning);
    --ac-role-warning-soft: color-mix(in srgb, var(--ac-ds-warning) 18%, var(--ac-ds-surface) 82%);
    --ac-role-danger: var(--ac-ds-danger);
    --ac-role-danger-soft: color-mix(in srgb, var(--ac-ds-danger) 15%, var(--ac-ds-surface) 85%);
    --ac-role-info: var(--ac-ds-info);
    --ac-role-info-soft: color-mix(in srgb, var(--ac-ds-info) 16%, var(--ac-ds-surface) 84%);
    /* AulaCore Claro status pills, alerts and neutral controls (content area). */
    --ac-status-success-bg: #ecfdf3;
    --ac-status-success-text: #067647;
    --ac-status-success-dot: #17b26a;
    --ac-status-success-border: #abefc6;
    --ac-status-warning-bg: #fffaeb;
    --ac-status-warning-text: #b54708;
    --ac-status-warning-dot: #f79009;
    --ac-status-warning-border: #fedf89;
    --ac-status-danger-bg: #fef3f2;
    --ac-status-danger-text: #b42318;
    --ac-status-danger-dot: #f04438;
    --ac-status-danger-border: #fecdca;
    --ac-status-info-bg: #eff8ff;
    --ac-status-info-text: #175cd3;
    --ac-status-info-dot: #2e90fa;
    --ac-status-info-border: #b2ddff;
    --ac-status-neutral-bg: #f2f4f7;
    --ac-status-neutral-text: #344054;
    --ac-status-neutral-dot: #98a2b3;
    --ac-status-neutral-border: #eaecf0;
    --ac-status-brand-bg: rgba(var(--ac-ds-primary-rgb), .08);
    --ac-status-brand-text: var(--ac-ds-primary);
    --ac-status-brand-dot: var(--ac-ds-primary);
    --ac-status-brand-border: rgba(var(--ac-ds-primary-rgb), .24);
    --ac-control-text: #344054;
    --ac-control-hover-bg: #f9fafb;
    --ac-control-radius: var(--ac-ds-radius-md);
    --ac-label-color: #344054;
    --ac-modal-radius: 16px;
    --ac-shadow-dropdown: 0 12px 16px -4px rgba(16, 24, 40, .08), 0 4px 6px -2px rgba(16, 24, 40, .03);
    --ac-shadow-modal: 0 20px 24px -4px rgba(16, 24, 40, .08), 0 8px 8px -4px rgba(16, 24, 40, .03);
    --ac-focus-ring-danger: 0 0 0 4px rgba(240, 68, 56, .12);
    --ac-alert-radius: 12px;
    /* Names used by the ui/* components: the same palette. */
    --ac-status-success-fg: var(--ac-status-success-text);
    --ac-status-warning-fg: var(--ac-status-warning-text);
    --ac-status-danger-fg: var(--ac-status-danger-text);
    --ac-status-info-fg: var(--ac-status-info-text);
    --ac-status-neutral-fg: var(--ac-status-neutral-text);
}

body.dark {
    --ac-ds-page-bg: #111827;
    --ac-ds-field-bg: #1f2937;
    --ac-ds-field-border: #3b4452;
    --ac-ds-field-placeholder: #9ca3af;
    --ac-ds-glass-bg: rgba(31, 41, 55, .82);
    --ac-ds-glass-bg-strong: rgba(31, 41, 55, .94);
    --ac-ds-glass-border: rgba(255, 255, 255, .12);
    --ac-ds-glass-highlight: rgba(255, 255, 255, .16);
    --ac-ds-glass-shadow: 0 8px 22px rgba(0, 0, 0, .24);
    --ac-ds-glass-shadow-soft: 0 4px 12px rgba(0, 0, 0, .2);
    --ac-ds-shell-glass-bg: rgba(var(--ac-ds-primary-rgb, 60, 141, 188), .78);
    --ac-ds-shell-glass-border: rgba(255, 255, 255, .14);
    --ac-ds-icon-glass-bg: transparent;
    --ac-ds-icon-glass-bg-hover: var(--ac-ds-primary-soft);
    --ac-ds-icon-glass-border: var(--ac-ds-surface-border);
    --ac-ds-component-shadow: var(--ac-ds-glass-shadow);
    --ac-ds-component-shadow-soft: var(--ac-ds-glass-shadow-soft);
    --ac-ds-shadow-sm: var(--ac-ds-glass-shadow-soft);
    --ac-ds-shadow-md: var(--ac-ds-glass-shadow);
    --ac-ds-table-header-bg: #252d3a;
    --ac-ds-table-header-border: #3b4452;
    --ac-ds-table-row-alt: #202938;
    --ac-ds-table-text: var(--ac-ds-text);
    --ac-ds-dt-button-border: #3b4452;
    --ac-ds-sidebar-bg: #161e2b;
    --ac-ds-sidebar-border: #273142;
    --ac-ds-sidebar-text: #d0d5dd;
    --ac-ds-sidebar-heading: #98a2b3;
    --ac-ds-sidebar-hover-bg: #1f2937;
    --ac-ds-sidebar-tile-bg: #253041;
    --ac-ds-sidebar-tile-text: #d0d5dd;
    --ac-ds-sidebar-active-bg: #253041;
    --ac-ds-sidebar-active-text: #f2f4f7;
    --ac-ds-topbar-bg: #161e2b;
    --ac-ds-topbar-text: #f2f4f7;
    --ac-ds-topbar-muted: #d0d5dd;
    --ac-ds-topbar-control-border: #3b4452;
    --ac-ds-float-bg: rgba(31, 41, 55, .9);
    --ac-ds-float-border: rgba(255, 255, 255, .12);
    --ac-ds-ink-strong: #f2f4f7;
    --ac-ds-panel-border: var(--ac-ds-surface-border);
    --ac-ds-card-border: var(--ac-ds-surface-border);
    --ac-ds-panel-divider: var(--ac-ds-surface-border);
    --ac-ds-panel-header-bg: var(--ac-ds-surface);
    --ac-ds-panel-footer-bg: var(--ac-ds-surface);
    --ac-ds-subtle-bg: #253041;
    --ac-ds-soft-bg: #253041;
    --ac-status-success-bg: rgba(23, 178, 106, .14);
    --ac-status-success-text: #75e0a7;
    --ac-status-success-border: rgba(23, 178, 106, .32);
    --ac-status-warning-bg: rgba(247, 144, 9, .14);
    --ac-status-warning-text: #fec84b;
    --ac-status-warning-border: rgba(247, 144, 9, .32);
    --ac-status-danger-bg: rgba(240, 68, 56, .14);
    --ac-status-danger-text: #fda29b;
    --ac-status-danger-border: rgba(240, 68, 56, .32);
    --ac-status-info-bg: rgba(46, 144, 250, .14);
    --ac-status-info-text: #84caff;
    --ac-status-info-border: rgba(46, 144, 250, .32);
    --ac-status-neutral-bg: #253041;
    --ac-status-neutral-text: #d0d5dd;
    --ac-status-neutral-border: #3b4452;
    --ac-status-brand-bg: rgba(var(--ac-ds-primary-rgb), .22);
    --ac-status-brand-text: var(--ac-ds-text);
    --ac-control-text: var(--ac-ds-text);
    --ac-control-hover-bg: #253041;
    --ac-label-color: var(--ac-ds-text);
    --ac-ds-heading-color: #f2f4f7;
    --ac-ds-text-secondary: #d0d5dd;
}/* Optional surface elevation selected in Settings; flat remains the default. */


body.shadow-applied {
    --ac-ds-component-shadow-soft: 0 3px 12px rgba(var(--ac-ds-primary-rgb), .09);
}

}/* aulacore-core/tokens-shared.css *//*
 * AulaCore theme tokens shared with other sheets: the theme puts them in the "legacy" layer, in source order.
 */



:root {
    --font-default: "Roboto";
    --font-primary: var(--font-default);
    --font-regular: var(--font-default);
    --font-medium: var(--font-default);
    --color-white: #fff;
    /* AulaCore brand blue of the visual contract (focus ring, marks that keep the brand whatever the theme colour). */
    --ac-brand-blue: #05347F;
    --color-black: #000;
    /* Danger button of printed pages (the colours of print_common.src.css; aulacore-public/base.css prints with them). */
    --ac-print-danger: #d9534f;
    --ac-print-danger-border: #d43f3a;
    --ac-ds-body-size: 13px;
    --ac-ds-body-line-height: 1.38;
    --ac-ds-title-size: 14px;
    --ac-ds-title-size-lg: 16px;
    --ac-ds-small-size: 12px;
    --ac-ds-font-weight-normal: 400;
    --ac-ds-font-weight-title: 500;
    --ac-ds-font-weight-emphasis: 500;
    --ac-ds-font-weight-strong: 500;
    --ac-ds-text-shadow: none;
    --ac-teal-rgb: 0, 112, 116;
    --ac-green-rgb: 47, 158, 68;
    --ac-primary-soft: var(--ac-ds-primary-soft);
    --ac-success: var(--ac-ds-success);
    --ac-warning: var(--ac-ds-warning);
    --ac-danger: var(--ac-ds-danger);
    --ac-ds-panel-bg: var(--ac-ds-field-bg);
    --ac-ds-surface-border-soft: #e4e7ec;
    --ac-surface: var(--ac-ds-surface);
    --ac-border: var(--ac-ds-surface-border);
    --ac-focus: var(--ac-ds-focus-ring);
    --ac-ds-control-height: 38px;
    --ac-ds-dt-button-bg: var(--ac-ds-field-bg);
    --ac-chart-2: var(--ac-icon-green);
    --ac-chart-3: var(--ac-icon-amber);
    /* Public website, "Vidrio sobre foto" accents: navy veil over the school photos, gold eyebrows, teal and gold. */
    --ac-glass-navy-rgb: 16, 52, 82;
    --ac-glass-shadow-rgb: 6, 22, 38;
    --ac-glass-ink: #14324C;
    --ac-glass-ink-rgb: 20, 50, 76;
    --ac-glass-muted: #3E5568;
    --ac-glass-deep: #0B2236;
    --ac-glass-gold: #F2C14E;
    --ac-glass-gold-hover: #F6CF6E;
    --ac-glass-teal: #1FA39F;
    --ac-glass-teal-end: #23849A;
    --ac-glass-teal-ink: #0F625F;
    --ac-font-script: "AulaCore Chopin Script", "Brush Script MT", cursive;
    /* Public website v2: the width of the screen with fluid side margins, production rhythm, fine rules. */
    /* Public site content width like production: backgrounds go edge to edge, content stays within --ac-site-max. */
    --ac-site-max: 1340px;
    --ac-site-gutter: max(clamp(20px, 3.5vw, 50px), calc((100vw - var(--ac-site-max)) / 2));
    --ac-site-space: clamp(64px, 9vw, 128px);
    --ac-site-hairline: #D8E3E8;
    --ac-site-line: #CBD5DD;
    --ac-site-mist: #F3F6F8;
    --ac-site-sand: #F1EFEA;
    --ac-site-petrol: #0E526A;
    --ac-site-teal-from: #0F7C78;
    --ac-site-teal-to: #146479;
    --ac-site-footer: #1B1F24;
}

body.dark {
    --ac-ds-surface: var(--bs-card-bg, #1f2937);
    --ac-ds-surface-muted: var(--bs-gray-smoke, #2f3349);
    --ac-ds-surface-hover: var(--bs-fd-tab-content-hover, #3d4157);
    --ac-ds-surface-border: var(--bs-card-border-color, #374151);
    --ac-ds-text: var(--bs-body-color, #e5e7eb);
    --ac-ds-muted-text: var(--bs-text-muted, #939ca9);
    --ac-ds-dt-button-bg: #1f2937;
}/* AulaCore Claro type scale for the content area only: the shell (menu and top bar) keeps its own sizes. */


:is(.content-wrapper, .ac-content, .right-side, .modal, .ac-modal, .popover) {
    --ac-ds-body-size: var(--ac-font-size-md);
    --ac-ds-title-size: var(--ac-font-size-lg);
    --ac-ds-title-size-lg: var(--ac-font-size-lg);
    --ac-ds-small-size: var(--ac-font-size-xs);
    --ac-ds-control-height: var(--ac-control-height-md);
}
:is(.content-wrapper, .ac-content, .right-side, .popover) {
    font-size: var(--ac-ds-body-size);
}/* aulacore-core/tokens-bridge.css *//*
 * Tokens Apariencia (theme.css, unlayered, loaded before the theme) also declares. They stay unlayered so they keep
 * winning over theme.css exactly as before; every other theme rule sits in a cascade layer.
 */




:root {
    --ac-ds-primary: var(--bs-primary, #054348);
    --ac-ds-primary-rgb: var(--bs-primary-rgb, 5, 67, 72);
    --ac-ds-primary-strong: #04343a;
    --ac-ds-primary-hover: var(--bs-primary-hover, var(--ac-ds-primary));
    --ac-ds-primary-active: var(--bs-primary-hover, var(--ac-ds-primary));
    --ac-ds-primary-soft: var(--bs-btn-hover-bg, #ebf0f0);
    --ac-ds-primary-soft-hover: var(--bs-pagination-hover-bg, #d7e1e2);
    --ac-ds-primary-contrast: var(--bs-primary-contrast, var(--color-white, #fff));
    --ac-ds-shell-bg: var(--ac-ds-primary);
    --ac-ds-shell-hover-bg: var(--bs-primary-hover, var(--ac-ds-primary));
    --ac-ds-shell-active-bg: var(--bs-primary-hover, var(--ac-ds-primary));
    --ac-ds-shell-submenu-bg: var(--ac-ds-primary-hover);
    --ac-ds-shell-border: var(--bs-btn-border-color, var(--ac-ds-primary));
    --ac-ds-shell-color: var(--bs-primary-contrast, var(--color-white, #fff));
    --ac-ds-shell-muted: var(--bs-primary-contrast, var(--color-white, #fff));
    --ac-ds-surface: #fff;
    --ac-ds-surface-muted: #f2f4f7;
    --ac-ds-surface-hover: var(--ac-ds-primary-soft);
    --ac-ds-surface-border: #e8eaed;
    --ac-ds-text: var(--bs-body-color, #1d2939);
    --ac-ds-muted-text: #667085;
}/* aulacore-signin/signin.css *//* Sign-in screens: centered card on the page background beside the school image (hidden on narrow screens). *//* Parts of this stylesheet, in cascade order (tools/css_screen_split.php --sections). *//* aulacore-signin/signin/01-brand-the-school-s.css */





:root {
    --ac-signin-label: color-mix(in srgb, var(--ac-ds-heading-color) 55%, var(--ac-ds-text-secondary));
    --ac-signin-base: color-mix(in srgb, var(--ac-ds-primary) 5%, var(--ac-ds-surface-muted));
    --ac-signin-light: var(--ac-ds-surface);
    --ac-signin-shade: color-mix(in srgb, var(--ac-ds-primary) 12%, var(--ac-ds-surface-border-strong));
    --ac-signin-raise: 10px 10px 24px var(--ac-signin-shade), -10px -10px 24px var(--ac-signin-light);
    --ac-signin-raise-sm: 5px 5px 12px var(--ac-signin-shade), -5px -5px 12px var(--ac-signin-light);
    --ac-signin-sunk: inset 5px 5px 10px var(--ac-signin-shade), inset -5px -5px 10px var(--ac-signin-light);
    --ac-signin-card-shadow: var(--ac-signin-raise);
}

body.dark.ac-signin {
    --ac-signin-base: color-mix(in srgb, var(--ac-ds-surface) 70%, var(--ac-ds-text));
    --ac-signin-light: color-mix(in srgb, var(--ac-ds-surface) 60%, var(--ac-ds-text));
    --ac-signin-shade: color-mix(in srgb, var(--ac-ds-surface) 85%, var(--ac-ds-text));
}

.ac-signin {
    margin: 0;
    min-height: 100vh;
    min-height: 100dvh;
    background: var(--ac-signin-base);
    color: var(--ac-ds-text);
    font-family: var(--font-default), system-ui, sans-serif;
    font-size: 14px;
    line-height: 1.45;
    -webkit-font-smoothing: antialiased;
}

.ac-signin *,
.ac-signin *::before,
.ac-signin *::after {
    box-sizing: border-box;
}

.ac-signin__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
    min-height: 100vh;
    min-height: 100dvh;
}

.ac-signin__panel {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 20px;
    padding: 40px 24px;
}

.ac-signin__card {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 404px;
    padding: 32px;
    background: var(--ac-signin-base);
    border-radius: 24px;
    box-shadow: var(--ac-signin-card-shadow);
}/* Brand: the school's logo when it has one, otherwise the AulaCore mark. */


.ac-signin__brand {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 28px;
}

.ac-signin__logo {
    display: block;
    max-width: 220px;
    max-height: 52px;
    width: auto;
    height: auto;
}

.ac-signin__mark {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: var(--ac-ds-primary);
    color: var(--ac-ds-primary-contrast);
    font-size: 20px;
}

.ac-signin__brand-text {
    display: grid;
    min-width: 0;
}

.ac-signin__brand-name {
    color: var(--ac-ds-heading-color);
    font-size: 16px;
    font-weight: 600;
    line-height: 1.2;
}

.ac-signin__brand-tagline {
    color: var(--ac-ds-muted-text);
    font-size: 12px;
}

.ac-signin__title {
    margin: 0 0 4px;
    color: var(--ac-ds-heading-color);
    font-size: 22px;
    font-weight: 600;
    line-height: 1.25;
}

.ac-signin__subtitle {
    margin: 0 0 24px;
    color: var(--ac-ds-muted-text);
    font-size: 14px;
}

.ac-signin__title + .ac-signin__alert,
.ac-signin__title + .ac-signin__form {
    margin-top: 20px;
}/* Messages from the server. */


.ac-signin__alert {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    margin: 0 0 16px;
    padding: 10px 12px;
    border: 1px solid transparent;
    border-radius: var(--ac-ds-radius-md);
    font-size: 13px;
    line-height: 1.4;
}

.ac-signin__alert::before {
    flex: 0 0 auto;
    margin-top: 1px;
    content: "";
    background-color: currentColor;
    font-size: 16px;
    height: 1em;
    line-height: 1;
    mask-position: center;
    mask-repeat: no-repeat;
    mask-size: contain;
    width: 1em;
}

.ac-signin__alert--danger {
    background: var(--ac-ds-danger-soft);
    border-color: color-mix(in srgb, var(--ac-ds-danger) 28%, transparent);
    color: var(--ac-ds-danger-hover);
}

.ac-signin__alert--danger::before {
    mask-image: url("../icons/lucide-sprite.svg?v=5cd3f937#i-circle-alert");
}

.ac-signin__alert--success {
    background: var(--ac-ds-success-soft);
    border-color: color-mix(in srgb, var(--ac-ds-success) 28%, transparent);
    color: var(--ac-ds-success-hover);
}

.ac-signin__alert--success::before {
    mask-image: url("../icons/lucide-sprite.svg?v=5cd3f937#i-circle-check");
}/* Form. */


.ac-signin__form {
    display: grid;
    gap: 16px;
    margin: 0;
}

.ac-signin__field {
    display: grid;
    gap: 6px;
    min-width: 0;
}

.ac-signin__label {
    color: var(--ac-signin-label);
    font-size: 13px;
    font-weight: 500;
}

.ac-signin__control {
    position: relative;
}

.ac-signin__icon,
.ac-signin__chevron {
    position: absolute;
    top: 50%;
    color: var(--ac-ds-muted-text);
    font-size: 16px;
    line-height: 1;
    pointer-events: none;
    transform: translateY(-50%);
}

.ac-signin__icon {
    inset-inline-start: 12px;
}

.ac-signin__chevron {
    inset-inline-end: 12px;
}

.ac-signin__input {
    display: block;
    width: 100%;
    height: 40px;
    margin: 0;
    padding-block: 0;
    padding-inline: 38px 12px;
    background: var(--ac-signin-base);
    border: 1px solid transparent;
    border-radius: 14px;
    box-shadow: var(--ac-signin-sunk);
    color: var(--ac-ds-heading-color);
    font: inherit;
    font-size: 14px;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.ac-signin__input--plain {
    padding-inline-start: 12px;
}

select.ac-signin__input {
    padding-inline-end: 36px;
    appearance: none;
    cursor: pointer;
}

.ac-signin__input::placeholder {
    color: var(--ac-ds-field-placeholder);
    opacity: 1;
}

.ac-signin__input:focus {
    border-color: var(--ac-ds-primary);
    box-shadow: var(--ac-signin-sunk), var(--ac-ds-focus-ring);
    outline: none;
}

.ac-signin__input[aria-invalid="true"] {
    border-color: var(--ac-ds-danger);
    box-shadow: var(--ac-signin-sunk), 0 0 0 3px var(--ac-ds-danger-soft);
}

.ac-signin__control:focus-within .ac-signin__icon {
    color: var(--ac-ds-primary);
}

.ac-signin__error {
    color: var(--ac-ds-danger);
    font-size: 12px;
}

.ac-signin__error:empty {
    display: none;
}

.ac-signin__hint {
    margin: -6px 0 0;
    color: var(--ac-ds-muted-text);
    font-size: 12px;
}/* Two-step verification: setup steps, QR code, manual key and recovery codes. */


.ac-signin__steps {
    margin: 0 0 16px;
    padding-left: 20px;
    color: var(--ac-ds-muted-text);
    font-size: 13px;
    line-height: 1.5;
}

.ac-signin__qr {
    display: grid;
    gap: 12px;
    justify-items: center;
    margin: 0 0 20px;
}

.ac-signin__qr-image {
    width: 200px;
    max-width: 100%;
    height: auto;
    padding: 8px;
    /* Dark modules on white whatever the theme, so every camera reads the code. */
    background: var(--color-white);
    border: 1px solid var(--ac-ds-card-border);
    border-radius: var(--ac-ds-radius-md);
}

.ac-signin__qr .ac-signin__hint {
    margin: 0;
    text-align: center;
}

.ac-signin__key {
    display: block;
    margin-top: 6px;
    font-size: 14px;
    letter-spacing: .08em;
    word-break: break-all;
}

.ac-signin__codes {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 0 0 20px;
    padding: 0;
    list-style: none;
}

.ac-signin__codes code {
    display: block;
    padding: 8px;
    background: var(--ac-ds-subtle-bg);
    border-radius: var(--ac-ds-radius-md);
    font-size: 14px;
    letter-spacing: .06em;
    text-align: center;
}

.ac-signin__codes + .ac-signin__button {
    text-decoration: none;
}/* Captcha, when the school enables it. */


.ac-signin__captcha {
    display: grid;
    grid-template-columns: minmax(0, auto) minmax(0, 1fr);
    gap: 12px;
    align-items: start;
}

.ac-signin__captcha-image {
    display: flex;
    gap: 8px;
    align-items: center;
}

.ac-signin__captcha-image img {
    display: block;
    max-width: 150px;
    height: 40px;
    border-radius: var(--ac-ds-radius-sm);
}

.ac-signin__icon-button {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    background: var(--ac-signin-base);
    border: 1px solid transparent;
    border-radius: 12px;
    box-shadow: var(--ac-signin-raise-sm);
    color: var(--ac-ds-text-secondary);
    font-size: 16px;
    cursor: pointer;
}

.ac-signin__icon-button:hover {
    background: var(--ac-ds-subtle-bg);
}/* Primary action in the school's brand color. */


.ac-signin__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    height: 46px;
    margin-top: 4px;
    padding: 0 16px;
    background: linear-gradient(145deg, var(--ac-ds-primary), var(--ac-ds-primary-active));
    border: 1px solid var(--ac-ds-primary);
    border-radius: 16px;
    box-shadow: 6px 6px 14px rgba(var(--ac-shadow-color-rgb), .28), -5px -5px 12px var(--ac-signin-light);
    color: var(--ac-ds-primary-contrast);
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: background-color .15s ease, box-shadow .15s ease;
}

.ac-signin__button:hover {
    background: var(--ac-ds-primary-active);
    border-color: var(--ac-ds-primary-active);
}

.ac-signin__button:focus-visible,
.ac-signin__icon-button:focus-visible,
.ac-signin__link:focus-visible {
    box-shadow: var(--ac-ds-focus-ring);
    outline: none;
}

.ac-signin__links {
    margin-top: 20px;
    text-align: center;
    font-size: 13px;
}

.ac-signin__link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border-radius: 6px;
    color: var(--ac-ds-primary);
    font-weight: 500;
    text-decoration: none;
}

.ac-signin__link:hover {
    text-decoration: underline;
}

.ac-signin__footer {
    margin: 0;
    color: var(--ac-ds-muted-text);
    font-size: 12px;
    text-align: center;
}/* aulacore-signin/signin/02-text-for-screen-readers.css *//* Text for screen readers only. */




.ac-signin__sr-only {
    border: 0;
    white-space: nowrap;
    overflow: hidden;
    clip: rect(0px, 0px, 0px, 0px);
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    position: absolute;
}/* School image side. */


.ac-signin__art {
    position: relative;
    overflow: hidden;
    background: var(--ac-ds-primary-strong);
    color: var(--color-white);
}

.ac-signin__art-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ac-signin__art::after {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(var(--ac-shadow-navy-rgb), .08) 30%, rgba(var(--ac-shadow-navy-rgb), .72) 100%),
        linear-gradient(120deg, rgba(var(--ac-ds-primary-rgb), .42), rgba(var(--ac-ds-primary-rgb), .06));
    content: "";
}

.ac-signin__art-content {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 20px;
    height: 100%;
    padding: 48px;
}

.ac-signin__art-title {
    margin: 0;
    font-size: 28px;
    font-weight: 600;
    line-height: 1.2;
}

.ac-signin__art-text {
    margin: 6px 0 0;
    font-size: 15px;
    opacity: .86;
}

.ac-signin__news {
    max-width: 520px;
    max-height: 46vh;
    overflow: auto;
    padding: 20px;
    background: rgba(var(--ac-white-rgb), .14);
    border: 1px solid rgba(var(--ac-white-rgb), .24);
    border-radius: var(--ac-ds-radius-lg);
    backdrop-filter: blur(12px);
}

.ac-signin__news-title {
    margin: 0 0 12px;
    font-size: 16px;
    font-weight: 600;
}

.ac-signin__news-item + .ac-signin__news-item {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid rgba(var(--ac-white-rgb), .2);
}

.ac-signin__news-item h3 {
    margin: 0 0 4px;
    font-size: 14px;
    font-weight: 600;
}

.ac-signin__news-item p {
    margin: 0;
    font-size: 13px;
    opacity: .9;
}

.ac-signin__news-item a {
    color: inherit;
    font-weight: 500;
}/* Lock of the credential screen (Auth/views/admin/partials/_signin_intro.php): a raised 3D lock above the brand that
   opens, turns into a spinner and then a check while the form is sent (aulacore-signin.js sets .is-sending on the
   panel). Decoration only: aria-hidden, no pointer. Without CSS animations it is simply a still lock. */


.ac-lock {
    position: relative;
    display: grid;
    place-items: center;
    height: 150px;
    margin: -8px 0 18px;
    border-radius: var(--ac-ds-radius-lg);
    box-shadow: var(--ac-signin-sunk);
    pointer-events: none;
}

.ac-lock__ring {
    position: absolute;
    top: 50%;
    left: 50%;
    border: 1px solid color-mix(in srgb, var(--ac-ds-surface) 90%, transparent);
    border-radius: 50%;
    box-shadow: 0 0 0 1px rgba(var(--ac-shadow-color-rgb), .06);
    animation: ac-lock-wave 4800ms ease-in-out infinite;
}

.ac-lock__ring--1 {
    width: 120px;
    height: 120px;
}

.ac-lock__ring--2 {
    width: 190px;
    height: 190px;
    animation-delay: -2400ms;
}

.ac-lock__body {
    position: relative;
    width: 56px;
    height: 70px;
    animation: ac-lock-float 4200ms ease-in-out infinite;
    transition: opacity .3s ease, transform .4s ease;
}

.ac-lock__shackle {
    position: absolute;
    top: 0;
    left: 12px;
    width: 32px;
    height: 36px;
    border: 7px solid color-mix(in srgb, var(--ac-ds-primary) 55%, var(--ac-ds-surface-border-strong));
    border-bottom: 0;
    border-radius: 20px 20px 0 0;
    box-shadow: 3px 3px 7px var(--ac-signin-shade), -2px -2px 5px var(--ac-signin-light);
    transform-origin: 100% 100%;
    transition: transform .45s cubic-bezier(.3, 1.4, .5, 1);
}

.ac-lock__case {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    display: grid;
    place-items: center;
    height: 44px;
    background: linear-gradient(145deg, var(--ac-ds-primary-hover), var(--ac-ds-primary-strong));
    border-radius: 11px;
    box-shadow: 6px 7px 14px var(--ac-signin-shade), -5px -5px 11px var(--ac-signin-light);
}

.ac-lock__case::after {
    width: 5px;
    height: 12px;
    background: var(--ac-ds-primary-contrast);
    border-radius: 3px;
    content: "";
}

.ac-lock__seal {
    position: absolute;
    display: grid;
    place-items: center;
    width: 84px;
    height: 84px;
    background: linear-gradient(145deg, var(--ac-ds-surface), var(--ac-ds-surface-muted));
    border-radius: 50%;
    box-shadow: 8px 8px 16px var(--ac-signin-shade), -7px -7px 14px var(--ac-signin-light);
    opacity: 0;
    transform: scale(.6);
    transition: opacity .3s ease, transform .45s cubic-bezier(.3, 1.5, .5, 1);
}

.ac-lock__spin {
    position: absolute;
    inset: 8px;
    border: 3px solid transparent;
    border-top-color: var(--ac-ds-primary);
    border-radius: 50%;
    opacity: 0;
}

.ac-lock__check {
    width: 34px;
    height: 34px;
    fill: none;
    stroke: var(--ac-ds-success);
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 5;
    stroke-dasharray: 44;
    stroke-dashoffset: 44;
}

.is-sending .ac-lock__shackle {
    transform: translateY(-6px) rotate(24deg);
}

.is-sending .ac-lock__body {
    opacity: 0;
    transform: scale(.6);
    animation: none;
}

.is-sending .ac-lock__seal {
    opacity: 1;
    transform: scale(1);
}

.is-sending .ac-lock__spin {
    opacity: 1;
    animation: ac-lock-spin .8s linear infinite, ac-lock-hide .15s ease .45s forwards;
}

.is-sending .ac-lock__check {
    animation: ac-lock-draw .5s ease .45s forwards;
}

@keyframes ac-lock-float {
    50% {
        transform: translateY(-5px) rotate(1deg);
    }
}

@keyframes ac-lock-wave {
    0%,
    100% {
        opacity: .35;
        transform: translate(-50%, -50%) scale(.97);
    }

    50% {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1.03);
    }
}

@keyframes ac-lock-spin {
    to {
        transform: rotate(360deg);
    }
}

@keyframes ac-lock-hide {
    to {
        opacity: 0;
    }
}

@keyframes ac-lock-draw {
    to {
        stroke-dashoffset: 0;
    }
}

@media (max-width: 900px) {
    .ac-signin__layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .ac-signin__art {
        display: none;
    }
}

@media (max-width: 480px) {
    .ac-signin__panel {
        justify-content: flex-start;
        padding: 32px 16px 24px;
    }

    .ac-signin__card {
        padding: 24px 20px;
    }

    .ac-signin__title {
        font-size: 20px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ac-signin__input,
    .ac-signin__button {
        transition: none;
    }

    .ac-lock__ring,
    .ac-lock__body,
    .is-sending .ac-lock__spin {
        animation: none;
    }

    .ac-lock__body,
    .ac-lock__seal,
    .ac-lock__shackle {
        transition: none;
    }

    .is-sending .ac-lock__check {
        animation: none;
        stroke-dashoffset: 0;
    }
}/* Keyboard focus of a select or textarea: the white halo around the ring of a11y.css (moved from a11y.css). */


:where(select, textarea):focus-visible {
    box-shadow: 0 0 0 4px var(--ac-focus-halo);
}/* aulacore-core/a11y.css *//*
 * Keyboard accessibility shared by the admin, the portal and the sign-in pages (last in the theme's "legacy" layer,
 * and unlayered on the sign-in page, so it wins over component rules that remove the outline). The focus ring is
 * AulaCore brand blue #05347F (11.3:1 on white, ≥ 3:1 on every light surface) with a white halo, so it stays visible
 * on the brand-coloured topbar too.
 */




:root {
    --ac-focus-color: var(--ac-brand-blue);
    --ac-focus-halo: var(--color-white);
    --ac-ds-focus-ring: 0 0 0 2px var(--ac-focus-halo), 0 0 0 4px var(--ac-focus-color);
    --ac-focus: var(--ac-ds-focus-ring);
}/* One focus ring for every control. The white halo of selects and textareas belongs to their owner: forms.css in the
   admin, signin.css on the sign-in page. */


:where(a[href], button, input:not([type="hidden"]), select, textarea, summary, label[tabindex], [tabindex]:not([tabindex="-1"]), [role="button"], [role="tab"], [role="menuitem"], [role="option"], [role="switch"], [contenteditable="true"]):focus-visible {
    outline: 2px solid var(--ac-focus-color) !important;
    outline-offset: 2px !important;
}

:where(a[href], button, input:not([type="hidden"]), summary, label[tabindex], [tabindex]:not([tabindex="-1"]), [role="button"], [role="tab"], [role="menuitem"], [role="option"], [role="switch"], [contenteditable="true"]):focus-visible {
    box-shadow: 0 0 0 4px var(--ac-focus-halo);
}/* On the topbar and the side menu (dark in Apariencia) the brand blue ring is lost (1.4:1): there it takes the colour of
   the control's own text, which Apariencia already keeps readable on that background (white: ≥ 3:1). The logo sits on
   the light page background and the open menus are white panels, so both keep the brand blue. */


:where(.ac-shell-header, .ac-shell-sidebar) :where(a[href], button, input:not([type="hidden"]), select, textarea, summary, [tabindex]:not([tabindex="-1"]), [role="button"], [role="menuitem"]):not(.ac-shell-brand):not(:where(.ac-dropdown__menu, .dropdown-menu) *):focus-visible {
    outline-color: currentColor !important;
}/* Sortable table headers and the table's page buttons draw this ring in their owners (tables-base.css,
   datatables-pagination.css). *//* «Saltar al contenido»: first stop of the keyboard, visible only while focused. */




.ac-skip-link {
    background: var(--ac-focus-color);
    border-radius: 0 0 10px 10px;
    color: var(--ac-focus-halo);
    font-weight: 600;
    left: 16px;
    padding: 10px 16px;
    position: fixed;
    top: 0;
    transform: translateY(-120%);
    z-index: 2000;
}

.ac-skip-link:focus,
.ac-skip-link:focus-visible {
    color: var(--ac-focus-halo);
    text-decoration: none;
    transform: none;
}/* The <main> landmark takes the place of the content in the shell's column layout. */


.ac-main {
    display: flex;
    flex: 1 0 auto;
    flex-direction: column;
    min-width: 0;
}

.ac-main:focus {
    outline: 0;
}

@media (prefers-reduced-motion: no-preference) {
    .ac-skip-link {
        transition: transform .15s ease-out;
    }
}

