/* Canonical icon contract. Aliases are names only: every glyph is Lucide. */
@import url("icon-glyphs.css?v=20260925-3");
@font-face {
    font-family: "lucide";
    src: url("../../webfonts/lucide.woff2") format("woff2");
    font-style: normal;
    font-weight: 400;
    font-display: block;
}
:root {
    --ss-icon-size: 16px;
    --ss-icon-navigation-size: 18px;
    --ss-icon-action-size: 32px;
}
.ac-module-nav {
    --ac-module-tone: var(--ac-icon-slate);
    --ac-module-tone-soft: var(--ac-icon-slate-soft);
}
.ac-module-nav--settings { --ac-module-tone: var(--ac-module-settings); --ac-module-tone-soft: var(--ac-module-settings-soft); }
.ac-module-nav--calendar { --ac-module-tone: var(--ac-module-calendar); --ac-module-tone-soft: var(--ac-module-calendar-soft); }
.ac-module-nav--academics { --ac-module-tone: var(--ac-module-academics); --ac-module-tone-soft: var(--ac-module-academics-soft); }
.ac-module-nav--reception { --ac-module-tone: var(--ac-module-reception); --ac-module-tone-soft: var(--ac-module-reception-soft); }
.ac-module-nav--students { --ac-module-tone: var(--ac-module-students); --ac-module-tone-soft: var(--ac-module-students-soft); }
.ac-module-nav--attendance { --ac-module-tone: var(--ac-module-attendance); --ac-module-tone-soft: var(--ac-module-attendance-soft); }
.ac-module-nav--tasks { --ac-module-tone: var(--ac-module-tasks); --ac-module-tone-soft: var(--ac-module-tasks-soft); }
.ac-module-nav--grades { --ac-module-tone: var(--ac-module-grades); --ac-module-tone-soft: var(--ac-module-grades-soft); }
.ac-module-nav--conduct { --ac-module-tone: var(--ac-module-conduct); --ac-module-tone-soft: var(--ac-module-conduct-soft); }
.ac-module-nav--staff { --ac-module-tone: var(--ac-module-staff); --ac-module-tone-soft: var(--ac-module-staff-soft); }
.ac-module-nav--finance { --ac-module-tone: var(--ac-module-finance); --ac-module-tone-soft: var(--ac-module-finance-soft); }
.ac-module-nav--inventory { --ac-module-tone: var(--ac-module-inventory); --ac-module-tone-soft: var(--ac-module-inventory-soft); }
.ac-module-nav--communication { --ac-module-tone: var(--ac-module-communication); --ac-module-tone-soft: var(--ac-module-communication-soft); }
.ac-module-nav--website { --ac-module-tone: var(--ac-module-website); --ac-module-tone-soft: var(--ac-module-website-soft); }
.ac-module-nav--transport { --ac-module-tone: var(--ac-module-transport); --ac-module-tone-soft: var(--ac-module-transport-soft); }
.ac-module-nav--services { --ac-module-tone: var(--ac-module-services); --ac-module-tone-soft: var(--ac-module-services-soft); }
.ac-module-nav--library { --ac-module-tone: var(--ac-module-library); --ac-module-tone-soft: var(--ac-module-library-soft); }
.icon-settings,
.icon-cog,
.icon-sliders-horizontal,
.icon-wrench {
    --ac-icon-tone: var(--ac-module-settings);
    --ac-icon-soft: var(--ac-module-settings-soft);
}
.icon-calendar,
.icon-calendar-days,
.icon-calendar-check,
.icon-calendar-clock,
.icon-calendar-minus,
.icon-clock,
.icon-hourglass,
.icon-alarm-clock {
    --ac-icon-tone: var(--ac-module-calendar);
    --ac-icon-soft: var(--ac-module-calendar-soft);
}
.icon-book-open,
.icon-book-open-check,
.icon-book,
.icon-library,
.icon-graduation-cap,
.icon-graduation,
.icon-school,
.icon-flask,
.icon-flask-conical,
.icon-superscript,
.icon-file-check-2 {
    --ac-icon-tone: var(--ac-module-academics);
    --ac-icon-soft: var(--ac-module-academics-soft);
}
.icon-user,
.icon-users,
.icon-user-plus,
.icon-user-check,
.icon-circle-user-round,
.icon-user-round,
.icon-user-round-check,
.icon-user-round-plus,
.icon-user-round-x,
.icon-users-round,
.icon-id-card {
    --ac-icon-tone: var(--ac-module-students);
    --ac-icon-soft: var(--ac-module-students-soft);
}
.icon-clipboard-check,
.icon-calendar-plus,
.icon-calendar-x,
.icon-check-square,
.icon-square-check {
    --ac-icon-tone: var(--ac-module-attendance);
    --ac-icon-soft: var(--ac-module-attendance-soft);
}
.icon-list,
.icon-list-checks,
.icon-list-ordered,
.icon-clipboard-list,
.icon-file-list,
.icon-file-text {
    --ac-icon-tone: var(--ac-module-tasks);
    --ac-icon-soft: var(--ac-module-tasks-soft);
}
.icon-chart-no-axes-column,
.icon-chart-column,
.icon-chart-line,
.icon-line-chart,
.icon-pie-chart,
.icon-chart-pie,
.icon-chart-area,
.icon-bar-chart-3 {
    --ac-icon-tone: var(--ac-module-grades);
    --ac-icon-soft: var(--ac-module-grades-soft);
}
.icon-scale,
.icon-gavel,
.icon-tag,
.icon-tags,
.icon-trophy,
.icon-venus-and-mars,
.icon-shield-alert {
    --ac-icon-tone: var(--ac-module-conduct);
    --ac-icon-soft: var(--ac-module-conduct-soft);
}
.icon-landmark,
.icon-banknote,
.icon-credit-card,
.icon-wallet,
.icon-receipt,
.icon-circle-dollar-sign,
.icon-hand-coins {
    --ac-icon-tone: var(--ac-module-finance);
    --ac-icon-soft: var(--ac-module-finance-soft);
}
.icon-box,
.icon-boxes,
.icon-package,
.icon-archive,
.icon-file-archive,
.icon-warehouse {
    --ac-icon-tone: var(--ac-module-inventory);
    --ac-icon-soft: var(--ac-module-inventory-soft);
}
.icon-message-circle,
.icon-message-square,
.icon-messages-square,
.icon-megaphone,
.icon-send,
.icon-mail,
.icon-mail-open,
.icon-at-sign,
.icon-phone,
.icon-phone-call,
.icon-smartphone {
    --ac-icon-tone: var(--ac-module-communication);
    --ac-icon-soft: var(--ac-module-communication-soft);
}
.icon-globe,
.icon-earth,
.icon-panels-top-left,
.icon-layout-dashboard,
.icon-external-link {
    --ac-icon-tone: var(--ac-module-website);
    --ac-icon-soft: var(--ac-module-website-soft);
}
.icon-bus,
.icon-car,
.icon-route {
    --ac-icon-tone: var(--ac-module-transport);
    --ac-icon-soft: var(--ac-module-transport-soft);
}
.icon-download,
.icon-upload,
.icon-cloud-download,
.icon-cloud-upload,
.icon-folder-down,
.icon-folder-up {
    --ac-icon-tone: var(--ac-module-services);
    --ac-icon-soft: var(--ac-module-services-soft);
}
.icon-folder,
.icon-folder-open,
.icon-notebook,
.icon-bookmark,
.icon-newspaper {
    --ac-icon-tone: var(--ac-module-library);
    --ac-icon-soft: var(--ac-module-library-soft);
}
.icon-gauge,
.icon-compass,
.icon-target,
.icon-crosshair,
.icon-flag,
.icon-orbit,
.icon-layout-grid,
.icon-grid-2x2,
.icon-grid-3x3,
.icon-panel-left {
    --ac-icon-tone: var(--ac-icon-indigo);
    --ac-icon-soft: var(--ac-icon-indigo-soft);
}
.icon-badge,
.icon-contact,
.icon-briefcase,
.icon-briefcase-business,
.icon-building-2,
.icon-building,
.icon-handshake {
    --ac-icon-tone: var(--ac-module-staff);
    --ac-icon-soft: var(--ac-module-staff-soft);
}
.icon-laptop,
.icon-monitor,
.icon-tablet,
.icon-tv,
.icon-video {
    --ac-icon-tone: var(--ac-module-academics);
    --ac-icon-soft: var(--ac-module-academics-soft);
}
.icon-camera,
.icon-image,
.icon-paintbrush,
.icon-wand-sparkles {
    --ac-icon-tone: var(--ac-icon-purple);
    --ac-icon-soft: var(--ac-icon-purple-soft);
}
.icon-heart,
.icon-heart-pulse,
.icon-smile {
    --ac-icon-tone: var(--ac-icon-rose);
    --ac-icon-soft: var(--ac-icon-rose-soft);
}
.icon-lightbulb,
.icon-zap {
    --ac-icon-tone: var(--ac-icon-amber);
    --ac-icon-soft: var(--ac-icon-amber-soft);
}
.icon-pencil,
.icon-pen,
.icon-square-pen,
.icon-edit,
.icon-edit-2,
.icon-edit-3 {
    --ac-icon-tone: var(--ac-icon-blue);
    --ac-icon-soft: var(--ac-icon-blue-soft);
}
.icon-plus,
.icon-plus-circle,
.icon-circle-plus,
.icon-square-plus,
.icon-copy-plus,
.icon-save {
    --ac-icon-tone: var(--ac-icon-green);
    --ac-icon-soft: var(--ac-icon-green-soft);
}
.icon-check,
.icon-check-check,
.icon-circle-check,
.icon-circle-dot,
.icon-ok,
.icon-badge-check {
    --ac-icon-tone: var(--ac-icon-green);
    --ac-icon-soft: var(--ac-icon-green-soft);
}
.icon-x,
.icon-circle-x,
.icon-trash,
.icon-trash-2,
.icon-ban,
.icon-eraser,
.icon-minus-circle {
    --ac-icon-tone: var(--ac-icon-red);
    --ac-icon-soft: var(--ac-icon-red-soft);
}
.icon-triangle-alert,
.icon-circle-alert,
.icon-bell,
.icon-bell-off,
.icon-bell-ring {
    --ac-icon-tone: var(--ac-icon-amber);
    --ac-icon-soft: var(--ac-icon-amber-soft);
}
.icon-info,
.icon-circle-help,
.icon-help-circle,
.icon-circle-question-mark {
    --ac-icon-tone: var(--ac-icon-blue);
    --ac-icon-soft: var(--ac-icon-blue-soft);
}
.icon-search,
.icon-filter,
.icon-funnel,
.icon-eye,
.icon-eye-off,
.icon-scan,
.icon-scan-barcode,
.icon-qr-code,
.icon-barcode {
    --ac-icon-tone: var(--ac-icon-cyan);
    --ac-icon-soft: var(--ac-icon-cyan-soft);
}
.icon-lock,
.icon-lock-keyhole,
.icon-unlock,
.icon-key,
.icon-key-round,
.icon-user-lock,
.icon-shield {
    --ac-icon-tone: var(--ac-icon-slate);
    --ac-icon-soft: var(--ac-icon-slate-soft);
}
.icon-copy,
.icon-files,
.icon-file,
.icon-file-spreadsheet,
.icon-file-down,
.icon-file-up,
.icon-file-image,
.icon-file-video-camera,
.icon-clipboard,
.icon-database,
.icon-inbox,
.icon-reply,
.icon-forward,
.icon-share-2,
.icon-paperclip,
.icon-link,
.icon-unfold-horizontal,
.icon-printer,
.icon-table {
    --ac-icon-tone: var(--ac-icon-blue);
    --ac-icon-soft: var(--ac-icon-blue-soft);
}
.icon-calculator,
.icon-percent {
    --ac-icon-tone: var(--ac-module-finance);
    --ac-icon-soft: var(--ac-module-finance-soft);
}
.icon-refresh-cw,
.icon-history,
.icon-rotate-ccw,
.icon-undo-2,
.icon-arrow-left-right,
.icon-arrow-right-left,
.icon-shuffle {
    --ac-icon-tone: var(--ac-icon-teal);
    --ac-icon-soft: var(--ac-icon-teal-soft);
}
.icon-arrow-left,
.icon-arrow-right,
.icon-arrow-up,
.icon-arrow-down,
.icon-chevron-left,
.icon-chevron-right,
.icon-chevron-up,
.icon-chevron-down,
.icon-chevrons-left,
.icon-chevrons-right,
.icon-corner-left-down,
.icon-menu,
.icon-columns-2,
.icon-more-vertical,
.icon-more-horizontal,
.icon-ellipsis-vertical,
.icon-loader-circle {
    --ac-icon-tone: var(--ac-icon-slate);
    --ac-icon-soft: var(--ac-icon-slate-soft);
}
.ac-icon-status { --ss-icon-size: 32px; color: var(--ss-success); }
.btn.ac-icon-action:not(:has(> .icon-save)):not([type="submit"]:not(.table *, table.dataTable *)),
.btn.ac-icon-action:not(:has(> .icon-save)):not([type="submit"]:not(.table *, table.dataTable *)):is(:hover, :focus, :active, :disabled, .active, .disabled) {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    flex: 0 0 var(--ss-icon-action-size);
    width: var(--ss-icon-action-size);
    height: var(--ss-icon-action-size);
    min-width: var(--ss-icon-action-size);
    min-height: var(--ss-icon-action-size);
    padding: 0 !important;
    margin: 0;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: var(--ss-icon-action-color) !important;
    line-height: 1;
}
.btn.ac-icon-action:not(:has(> .icon-save)):not([type="submit"]:not(.table *, table.dataTable *)):hover { color: var(--ss-icon-action-hover-color) !important; }
.main-header {
    --ss-icon-action-color: var(--ss-primary-contrast);
    --ss-icon-action-hover-color: var(--ss-primary-contrast);
}
.btn.ac-icon-action:not(:has(> .icon-save)):not([type="submit"]:not(.table *, table.dataTable *)):focus-visible {
    outline: 2px solid var(--ss-primary);
    outline-offset: 2px;
}
.btn.ac-icon-action:not(:has(> .icon-save)):not([type="submit"]:not(.table *, table.dataTable *)) > i { margin: 0 !important; }
.content-wrapper :is([class^="icon-"], [class*=" icon-"]),
.right-side :is([class^="icon-"], [class*=" icon-"]),
.modal :is([class^="icon-"], [class*=" icon-"]),
.popover :is([class^="icon-"], [class*=" icon-"]) {
    color: var(--ac-icon-tone, var(--ss-icon-action-color, var(--ac-icon-slate))) !important;
}
.content-wrapper :is(.dt-buttons, .dataTables_wrapper, .table) :is([class^="icon-"], [class*=" icon-"]),
.right-side :is(.dt-buttons, .dataTables_wrapper, .table) :is([class^="icon-"], [class*=" icon-"]) {
    color: var(--ac-icon-tone, var(--ac-icon-slate)) !important;
}
.content-wrapper :is(.btn, button, a) > :is([class^="icon-"], [class*=" icon-"]),
.right-side :is(.btn, button, a) > :is([class^="icon-"], [class*=" icon-"]),
.modal :is(.btn, button, a) > :is([class^="icon-"], [class*=" icon-"]) {
    color: var(--ac-icon-tone, currentColor) !important;
}
/* Form commands retain visible labels; compact table actions remain icon-only. */
:is(.content-wrapper, .right-side, .modal) .btn:is(:has(> .icon-save), [type="submit"]:not(.table *, table.dataTable *)) > .sr-only {
    position: static;
    width: auto;
    height: auto;
    margin: 0;
    padding: 0;
    overflow: visible;
    clip: auto;
    clip-path: none;
    white-space: normal;
}
/* Labeled buttons share one foreground color for their text and Lucide glyph. */
:is(.content-wrapper, .right-side, .modal, .popover) .btn:is(:not(.ac-icon-action), :has(> .icon-save), [type="submit"]:not(.table *, table.dataTable *)) :is([class^="icon-"], [class*=" icon-"]) {
    color: currentColor !important;
}
.content-wrapper .ac-context-panel-col :is(.tablists, .ac-context-nav, .nav.nav-pills.nav-stacked) > li > a :is([class^="icon-"], [class*=" icon-"]),
.right-side .ac-context-panel-col :is(.tablists, .ac-context-nav, .nav.nav-pills.nav-stacked) > li > a :is([class^="icon-"], [class*=" icon-"]),
.content-wrapper .ac-context-nav-column :is(.tablists, .ac-context-nav, .nav.nav-pills.nav-stacked) > li > a :is([class^="icon-"], [class*=" icon-"]),
.right-side .ac-context-nav-column :is(.tablists, .ac-context-nav, .nav.nav-pills.nav-stacked) > li > a :is([class^="icon-"], [class*=" icon-"]) {
    color: var(--ac-icon-tone, var(--ac-icon-slate)) !important;
}
/* Pseudo-elements isolate the font from labels and plugin text. */
:is([class^="icon-"], [class*=" icon-"])::before {
    font-family: "lucide" !important;
    font-style: normal !important;
    font-size: var(--ss-icon-size, 16px);
    font-weight: 400 !important;
    font-variant: normal !important;
    text-transform: none !important;
    text-shadow: none !important;
    letter-spacing: 0 !important;
    -webkit-font-smoothing: antialiased;
    display: inline-block;
    line-height: 1;
}
i:is([class^="icon-"], [class*=" icon-"]),
span:is([class^="icon-"], [class*=" icon-"]) {
    display: inline-block;
    font-size: var(--ss-icon-size);
    line-height: 1;
    vertical-align: -0.125em;
    background: transparent;
    box-shadow: none;
    font-style: normal;
}
.main-sidebar .sidebar-menu > li > a > i:first-child {
    --ss-icon-size: var(--ss-icon-navigation-size);
    font-size: var(--ss-icon-navigation-size);
}
.main-sidebar .sidebar-menu > li.ac-module-nav > a > i.ac-module-nav__icon:first-child {
    align-items: center;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    color: currentColor !important;
    display: inline-flex;
    flex: 0 0 22px;
    height: 22px;
    justify-content: center;
    margin-right: 4px;
    text-align: center;
    width: 22px;
}
.main-sidebar .sidebar-menu > li.ac-module-nav:hover > a > i.ac-module-nav__icon:first-child,
.main-sidebar .sidebar-menu > li.ac-module-nav.active > a > i.ac-module-nav__icon:first-child,
.main-sidebar .sidebar-menu > li.ac-module-nav.menu-open > a > i.ac-module-nav__icon:first-child {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    color: currentColor !important;
}
.main-sidebar .sidebar-menu > li.ac-module-nav > a > i.ac-module-nav__icon:first-child::before {
    font-size: 18px;
}
.main-sidebar .sidebar-menu > li.ac-module-nav > a > .icon-chevron-left {
    background: transparent !important;
    border: 0 !important;
    color: rgba(var(--ac-white-rgb), .74) !important;
    flex: 0 0 auto;
    height: auto;
    width: auto;
}
.main-sidebar .sidebar-menu .treeview-menu > li > a > .icon-circle-small {
    display: none !important;
}
.sidebar-collapse .main-sidebar:not(:hover):not(:focus-within) .sidebar-menu > li.ac-module-nav > a > i.ac-module-nav__icon:first-child {
    margin-right: 0;
}
.ss-topbar__toggle .icon-menu,
.ss-topbar__menu > li > a > [class^="icon-"] {
    --ss-icon-size: var(--ss-icon-navigation-size);
    font-size: var(--ss-icon-navigation-size);
    line-height: 1;
}
@keyframes ac-icon-spin { to { transform: rotate(360deg); } }
.ac-icon-spin { animation: ac-icon-spin 1.5s linear infinite; }
.ac-icon-fw { width: 1.25em; text-align: center; }
@media (prefers-reduced-motion: reduce) {
    .ac-icon-spin { animation: none; }
}
