/* Component rules and adapters for HTML generated by Bootstrap, Select2 and Collective. */
/* One public contact component is shared by the platform and school sites. */
.idbarah-ui-v2 .publicWhatsappContact {
  background-color: var(--id-paper);
  border: var(--id-border-width) solid var(--id-border);
  box-shadow: var(--id-shadow-live);
}
.idbarah-ui-v2 .publicWhatsappContact h3 {
  color: var(--id-ink);
  font-size: clamp(20px, 2vw, 26px);
  font-weight: var(--id-weight-semibold);
  line-height: var(--id-leading);
}
.idbarah-ui-v2 .publicWhatsappContact p {
  color: var(--id-text);
  font-size: var(--id-type-body);
  line-height: var(--id-leading);
}
.idbarah-ui-v2 .publicWhatsappContact .publicWhatsappContact__icon {
  background-color: var(--id-contact-action);
  box-shadow: none;
}
/* Replace the legacy 8px feature stripe with the shared full card surface. */
.idbarah-ui-v2 .features .card::before { width: auto; height: auto; }
.idbarah-ui-v2 .features .card {
  min-height: 88px;
  gap: var(--id-space-4);
  box-shadow: var(--id-shadow-live) !important;
}
.idbarah-ui-v2 .features .card > div:first-child { flex-shrink: 0; }
.idbarah-ui-v2 .features .card span { color: var(--id-ink); line-height: var(--id-leading); }
/* Payment labels are readable chips, not clipped, pale legacy ribbons. */
.idbarah-ui-v2 .pricing .pricingBox .badge {
  position: relative;
  inset: auto;
  width: fit-content;
  height: auto;
  min-height: 36px;
  align-self: flex-start;
  padding: var(--id-space-2) var(--id-space-4);
  clip-path: var(--control-contour);
  font-size: var(--id-type-body);
  font-weight: var(--id-weight-semibold);
  line-height: var(--id-leading);
  background: var(--id-ink) !important;
  color: #fff !important;
}
.idbarah-ui-v2 .pricing .pricingBox .badge.prepaid { background: var(--id-patina) !important; }
.idbarah-ui-v2 .publicWhatsappContact .publicWhatsappContact__button {
  background-color: var(--id-contact-action);
  border-color: var(--id-contact-action);
  color: #fff;
  min-width: min(250px, 100%);
}
.idbarah-ui-v2 .publicWhatsappContact .publicWhatsappContact__button:hover {
  background-color: var(--id-contact-action-hover);
  border-color: var(--id-contact-action-hover);
  color: #fff;
}
.idbarah-ui-v2 { text-align: start; }
.idbarah-ui-v2 h1 { font-size: var(--id-type-display); line-height: 1.5; }
.idbarah-ui-v2 h2 { font-size: var(--id-type-title); line-height: 1.6; }
.idbarah-ui-v2 :is(h3,h4) { font-size: var(--id-type-section); line-height: var(--id-leading); }
.idbarah-ui-v2 [hidden] { display: none !important; }
.idbarah-ui-v2 .ui-page { max-width: var(--id-page-max); margin-inline: auto; }
.idbarah-ui-v2 .page-title { font-size: var(--id-type-display); line-height: 1.5; font-weight: var(--id-weight-semibold); }
/* Fixed-size title icons must not inherit the heading's large line box. */
.idbarah-ui-v2 .page-title .page-title-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: middle;
  flex-shrink: 0;
  line-height: 1;
}
.idbarah-ui-v2 .page-title .page-title-icon > i { line-height: 1; }
.idbarah-ui-v2 .card-title { font-size: var(--id-type-section); line-height: var(--id-leading); text-transform: none; }
.idbarah-ui-v2 .ui-help { display: block; color: var(--id-muted); font-size: var(--id-type-label); line-height: var(--id-leading); }
.idbarah-ui-v2 .ui-actions, .idbarah-ui-v2 .ui-filters { display: flex; flex-wrap: wrap; gap: var(--id-space-3); align-items: center; }
.idbarah-ui-v2 .ui-filters { align-items: end; margin-block: var(--id-space-5); }
.idbarah-ui-v2 .ui-filters .ui-field { flex: 1 1 200px; margin: 0; }
.idbarah-ui-v2 .ui-icon { font-size: 20px; line-height: 1; flex-shrink: 0; }
.idbarah-ui-v2 .btn, .idbarah-ui-v2 .ui-button {
  min-height: var(--id-control-md); padding: var(--id-space-2) var(--id-space-5);
  font-size: var(--id-type-label); font-weight: var(--id-weight-medium); line-height: 1.6;
  text-decoration: none; vertical-align: middle;
}
.idbarah-ui-v2 .ui-button { display: inline-flex; align-items: center; justify-content: center; gap: var(--id-space-2); }
.idbarah-ui-v2 .ui-button--sm, .idbarah-ui-v2 .btn-sm { min-height: var(--id-control-sm); padding: var(--id-space-1) var(--id-space-3); }
.idbarah-ui-v2 .ui-button--lg, .idbarah-ui-v2 .btn-lg { min-height: var(--id-control-lg); }
.idbarah-ui-v2 :is(.btn-primary,.btn-theme) { background: var(--id-ink) !important; color: white !important; border-color: transparent !important; }
.idbarah-ui-v2 :is(.btn-primary,.btn-theme):hover { background: var(--id-primary-hover) !important; }
.idbarah-ui-v2 .btn-secondary { background: var(--id-mist) !important; color: var(--id-ink) !important; border-color: transparent !important; }
.idbarah-ui-v2 .btn-outline-primary { color: var(--id-ink); border-color: var(--id-ink); background: transparent; }
.idbarah-ui-v2 .btn-link { color: var(--id-ink); background: transparent; border: 0; }
.idbarah-ui-v2 .btn-danger { background: var(--id-danger) !important; color: white !important; }
.idbarah-ui-v2 .btn-success { background: var(--id-patina) !important; color: white !important; }
.idbarah-ui-v2 .btn-info { background: var(--id-mist) !important; color: var(--id-ink) !important; }
.idbarah-ui-v2 .btn-dark { background: var(--id-ink) !important; color: white !important; }
.idbarah-ui-v2 .btn-light { background: var(--id-glass) !important; color: var(--id-ink) !important; }
.idbarah-ui-v2 .btn-warning { background: var(--id-warning-soft) !important; color: var(--id-warning) !important; }
.idbarah-ui-v2 :is(.btn-outline-secondary,.btn-outline-info) { color: var(--id-ink); border-color: var(--id-border); background: transparent; }
.idbarah-ui-v2 .btn-outline-success { color: var(--id-patina); border-color: var(--id-patina); background: transparent; }
.idbarah-ui-v2 .btn-outline-danger { color: var(--id-danger); border-color: var(--id-danger); background: transparent; }
.idbarah-ui-v2 .btn-outline-warning { color: var(--id-warning); border-color: var(--id-warning); background: transparent; }
.idbarah-ui-v2 :is(button,.btn,input[type=submit]):disabled,
.idbarah-ui-v2 :is(.btn,.ui-button)[aria-disabled=true] { opacity: .65; cursor: default; transform: none; }
.idbarah-ui-v2 .ui-button[aria-busy=true]::before { content: ''; width: 1em; height: 1em; border: 2px solid currentColor; border-inline-end-color: transparent; border-radius: 50%; animation: ui-spin 1s linear infinite; }
@keyframes ui-spin { to { transform: rotate(360deg); } }
.idbarah-ui-v2 .form-control { font-size: var(--id-type-body); line-height: var(--id-leading); padding: var(--id-space-2) var(--id-space-4); height: auto; color: var(--id-text); }
.idbarah-ui-v2 .form-control.lp-input { padding-inline: var(--id-space-10); }
.idbarah-ui-v2 .badge-success-light, .idbarah-ui-v2 .btn-toggle-group .active-success { background: var(--id-patina-soft); color: var(--id-patina); }
.idbarah-ui-v2 .badge-warning-light, .idbarah-ui-v2 .btn-toggle-group .active-warning { background: var(--id-warning-soft); color: var(--id-warning); }
.idbarah-ui-v2 .badge-primary-light, .idbarah-ui-v2 .badge-secondary-light, .idbarah-ui-v2 .btn-toggle-group :is(.active-primary,.active-secondary) { background: var(--id-mist); color: var(--id-ink); }
.idbarah-ui-v2 .btn-toggle-group .active-danger { background: var(--id-danger-soft); color: var(--id-danger); }
.idbarah-ui-v2 .btn-toggle-group [class*='active-'] { pointer-events: none; }
.idbarah-ui-v2 .btn-outline-primary:is(:hover,.active) { background: var(--id-ink); color: white; }
.idbarah-ui-v2 .btn[class*='btn-outline-'] { background-image: none; }
.idbarah-ui-v2 .btn:is(.btn-inverse-primary,.btn-inverse-dark,.btn-inverse-info) { color: var(--id-ink) !important; background: var(--id-mist) !important; border-color: transparent !important; }
.idbarah-ui-v2 .btn.btn-inverse-success { color: var(--id-patina) !important; background: var(--id-patina-soft) !important; border-color: transparent !important; }
.idbarah-ui-v2 .btn:is(.btn-inverse-danger,.delete-form) { color: var(--id-danger) !important; background: var(--id-danger-soft) !important; border-color: transparent !important; }
.idbarah-ui-v2 .btn.btn-inverse-warning { color: var(--id-warning) !important; background: var(--id-warning-soft) !important; border-color: transparent !important; }
.idbarah-ui-v2 .btn > :is(i,.ui-icon) { vertical-align: middle; margin: 0; }
.idbarah-ui-v2 .dropdown-item { display: flex; align-items: center; gap: var(--id-space-2); }
.idbarah-ui-v2 .dropdown-item > i { margin: 0 !important; width: 20px; text-align: center; flex-shrink: 0; }
.idbarah-ui-v2 .dropdown-item.delete-form { color: var(--id-danger) !important; }
.idbarah-ui-v2 .form-control::placeholder { color: var(--id-muted) !important; opacity: 1; }
.idbarah-ui-v2 .form-check .form-check-label input:checked + .input-helper::before { background: var(--id-ink) !important; border-color: var(--id-ink) !important; }
.idbarah-ui-v2 .form-check .form-check-label input[type=radio]:checked + .input-helper::after { background: white !important; }
.idbarah-ui-v2 .form-check input:focus-visible + .input-helper::before { outline: 3px solid var(--id-patina); outline-offset: 3px; }
.idbarah-ui-v2 .fixed-table-loading .loading-text { font: 400 var(--id-type-body)/var(--id-leading) var(--id-font) !important; }
.idbarah-ui-v2 .ui-numeric { direction: ltr; unicode-bidi: isolate; display: inline-block; white-space: nowrap; max-width: 100%; }
.idbarah-ui-v2 td.ui-numeric { display: table-cell; }
.idbarah-ui-v2 .bootstrap-table .card-view { align-items: flex-start; gap: var(--id-space-3); }
.idbarah-ui-v2 .bootstrap-table .fixed-table-container .table .card-view .card-view-title { text-align: start !important; flex: 0 0 30%; }
.idbarah-ui-v2 .card-view-value { flex: 1; min-width: 0; }
.idbarah-ui-v2 .card-view-value .badge { white-space: normal; overflow-wrap: anywhere; text-align: start; max-width: 100%; }
.idbarah-ui-v2 .card-view-value ol { text-align: start; margin-block: 0; padding-inline-start: 1.25em; }
.idbarah-ui-v2 .card-view-value li + li { margin-block-start: var(--id-space-2); }
.idbarah-ui-v2 .color-code-box { direction: ltr; unicode-bidi: isolate; }
.idbarah-ui-v2 .datepicker.dropdown-menu { padding: 12px; min-width: 280px; }
.idbarah-ui-v2 .datepicker table { width: 100%; font: 400 var(--id-type-label)/var(--id-leading) var(--id-font); }
.idbarah-ui-v2 .datepicker table tr :is(td,th) { width: 36px; height: 36px; border-radius: 10px; }
.idbarah-ui-v2 .datepicker table tr td.active, .idbarah-ui-v2 .datepicker table tr td.active:hover { background: var(--id-ink) !important; color: white !important; text-shadow: none; }
.idbarah-ui-v2 .datepicker table tr td.today:not(.active) { background: var(--id-patina-soft) !important; color: var(--id-patina) !important; }
.idbarah-ui-v2 .datepicker table tr td:is(.today,.active)::before { display: none !important; }
.idbarah-ui-v2 .datepicker :is(.prev,.next) { font-size: 22px; color: var(--id-ink); }
.idbarah-ui-v2 :is(.datepicker .prev,.datepicker .next,.page-pre .page-link,.page-next .page-link) { direction: ltr; unicode-bidi: isolate; }
.idbarah-ui-v2 label { font-size: var(--id-type-label); line-height: var(--id-leading); }
.idbarah-ui-v2 .form-control:disabled, .idbarah-ui-v2 .form-control[readonly] { background-color: var(--id-mist); color: var(--id-disabled-text); }
.idbarah-ui-v2 .form-control[aria-invalid=true], .idbarah-ui-v2 .form-control.is-invalid, .idbarah-ui-v2 .form-control.error { background-color: var(--id-danger-soft); }
.idbarah-ui-v2 .form-control.is-valid { background-color: var(--id-patina-soft); }
.idbarah-ui-v2 .ui-field-error, .idbarah-ui-v2 label.error, .idbarah-ui-v2 .invalid-feedback { display: block; color: var(--id-danger); font-size: var(--id-type-label); }
.idbarah-ui-v2 .ui-choice { display: inline-flex; gap: var(--id-space-2); align-items: center; min-height: var(--id-control-md); cursor: pointer; }
.idbarah-ui-v2 input:is([type=checkbox],[type=radio]) { accent-color: var(--id-ink); width: 18px; height: 18px; flex-shrink: 0; }
.idbarah-ui-v2 input.ui-switch { appearance: none; width: 38px; height: 22px; border: 1px solid var(--id-border); border-radius: 20px; background: var(--id-mist); position: relative; }
.idbarah-ui-v2 input.ui-switch::after { content: ''; position: absolute; inset-block-start: 2px; inset-inline-start: 2px; width: 16px; height: 16px; border-radius: 50%; background: var(--id-muted); }
.idbarah-ui-v2 input.ui-switch:checked { background: var(--id-patina); }
.idbarah-ui-v2 input.ui-switch:checked::after { inset-inline-start: 18px; background: white; }
.idbarah-ui-v2 :is(input,button,a,select,textarea,summary,[tabindex]):focus-visible { outline: 3px solid var(--id-patina); outline-offset: 3px; }
/* The pseudo-surface owns the contour. Card contents and dropdowns are never clipped. */
.idbarah-ui-v2 .card { isolation: isolate; background: transparent !important; border: 0 !important; box-shadow: var(--id-shadow-rest) !important; border-radius: var(--id-radius-card); }
.idbarah-ui-v2 .card::before { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: var(--id-polymer); border-radius: var(--id-radius-card); clip-path: var(--control-contour); box-shadow: inset 0 1px 1px white; }
/* Do not create a containing block for fixed legacy modals or override floating card positioning. */
.idbarah-ui-v2 .card:has(.modal) { isolation: auto; }
.idbarah-ui-v2 .card:has(.dropdown.show,.select2-container--open) { z-index: var(--id-z-menu); }
.idbarah-ui-v2 .modal-header button.close { font-size: 24px; line-height: 1; flex-shrink: 0; opacity: 1; }
.idbarah-ui-v2 .modal-header button.close span { font-size: inherit; }
.idbarah-ui-v2 .ui-toast > .ui-button { border: 0; background: transparent; color: inherit; font-size: 22px; padding: 4px; min-width: 36px; min-height: 36px; }
.idbarah-ui-v2 .card-body { padding: var(--id-space-8); min-width: 0; }
.idbarah-ui-v2 .ui-card--ink { color: white; }
.idbarah-ui-v2 .ui-card--ink::before { background: var(--id-polymer-ink); }
.idbarah-ui-v2 .ui-card--ink .card-title { color: white; }
.idbarah-ui-v2 .ui-card--paper::before { background: var(--id-paper); }
.idbarah-ui-v2 .ui-card--glass::before { background: var(--id-glass); backdrop-filter: blur(22px) saturate(125%); }
.idbarah-ui-v2 :is(.badge,.ui-alert) { font-size: var(--id-type-meta); line-height: var(--id-leading); border-radius: var(--id-radius-badge); }
.idbarah-ui-v2 .badge { padding: var(--id-space-1) var(--id-space-3); font-weight: var(--id-weight-medium); }
.idbarah-ui-v2 :is(.ui-tone-neutral,.badge-secondary,.badge-light,.badge-info,.ui-tone-info,.sub-badge-plan,.badge-plan,.sub-badge-secondary) { background: var(--id-mist) !important; color: var(--id-ink) !important; }
.idbarah-ui-v2 :is(.ui-tone-success,.badge-success,.alert-success,.sub-badge-success) { background: var(--id-patina-soft) !important; color: var(--id-patina) !important; }
.idbarah-ui-v2 :is(.ui-tone-danger,.ui-tone-error,.badge-danger,.alert-danger,.sub-badge-danger) { background: var(--id-danger-soft) !important; color: var(--id-danger) !important; }
.idbarah-ui-v2 :is(.text-success,.sub-metric-subtitle:not(.text-muted):not(.text-danger)) { color: var(--id-patina) !important; }
.idbarah-ui-v2 .text-info { color: var(--id-ink) !important; }
.idbarah-ui-v2 .text-warning { color: var(--id-warning) !important; }
.idbarah-ui-v2 :is(.ui-tone-warning,.badge-warning,.alert-warning) { background: var(--id-warning-soft) !important; color: var(--id-warning) !important; }
.idbarah-ui-v2 .ui-alert { padding: var(--id-space-4) var(--id-space-5); border: 1px solid var(--id-divider); }
.idbarah-ui-v2 .ui-state { padding: var(--id-space-10) var(--id-space-4); text-align: center; color: var(--id-muted); }
.idbarah-ui-v2 .ui-state h3 { font-size: var(--id-type-section); color: var(--id-ink); margin-block: var(--id-space-3); }
.idbarah-ui-v2 .ui-table-region, .idbarah-ui-v2 .table-responsive { max-width: 100%; overflow: auto; overscroll-behavior-inline: contain; }
.idbarah-ui-v2 .table :is(th,td) { padding: var(--id-table-cell-y) var(--id-table-cell-x); border-color: var(--id-divider) !important; }
.idbarah-ui-v2 .ui-table--compact { --id-table-cell-y: 8px; --id-table-cell-x: 12px; }
.idbarah-ui-v2 .ui-table--sticky thead th { position: sticky; top: 0; z-index: 2; }
.idbarah-ui-v2 .ui-table-actions { white-space: nowrap; width: 1%; }
.idbarah-ui-v2 .table-striped tbody tr:nth-of-type(odd) { background: var(--id-mist); }
.idbarah-ui-v2 .table tbody tr.selected { background: var(--id-selected); }
.idbarah-ui-v2 .ui-table td a:not(.btn):not(.dropdown-item) { color: var(--id-ink); }
.idbarah-ui-v2 .ui-table td a:not(.btn):not(.dropdown-item):hover { color: var(--id-patina); }
.idbarah-ui-v2 .table-list-type { color: var(--id-muted); margin-inline: var(--id-space-2) !important; font-size: var(--id-type-meta); }
.idbarah-ui-v2 .table-list-type.active { color: var(--id-ink); font-weight: var(--id-weight-semibold); }
.idbarah-ui-v2 .table-list-type:hover { color: var(--id-patina); text-decoration: underline; }
.idbarah-ui-v2 .table td .btn { min-width: var(--id-control-sm); padding-inline: var(--id-space-2); }
.idbarah-ui-v2 .ui-table td:has(> .btn + .btn) { white-space: nowrap; min-width: 112px; }
.idbarah-ui-v2 .fixed-table-container { max-width: 100%; }
.idbarah-ui-v2 .fixed-table-body { overscroll-behavior-inline: contain; }
.idbarah-ui-v2 .fixed-table-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--id-space-2); }
.idbarah-ui-v2 .fixed-table-toolbar > * { max-width: 100%; }
.idbarah-ui-v2 .fixed-table-toolbar .search { flex: 1 1 220px; order: 1; margin-inline: 0; }
/* Table actions are separate controls, ordered by the page's writing direction. */
.idbarah-ui-v2 .fixed-table-toolbar > .columns { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: var(--id-space-2); direction: inherit; order: 2; float: none !important; margin-inline: auto 0 !important; }
.idbarah-ui-v2 .fixed-table-toolbar > .columns > :is(.btn,.btn-group) { flex: 0 0 auto; margin: 0 !important; }
.idbarah-ui-v2 .fixed-table-toolbar .columns .btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--id-space-2); margin: 0 !important; }
.idbarah-ui-v2 .fixed-table-toolbar .columns .btn > :is(i,.caret),
.idbarah-ui-v2 .fixed-table-toolbar .columns .dropdown-toggle::after { margin-inline: 0; }
.idbarah-ui-v2 .fixed-table-toolbar .columns .dropdown-menu { text-align: start; }
.idbarah-ui-v2 .fixed-table-pagination { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--id-space-3); }
.idbarah-ui-v2 .pagination { flex-wrap: wrap; gap: var(--id-space-1); }
.idbarah-ui-v2 .page-link { min-width: var(--id-control-sm); min-height: var(--id-control-sm); display: grid; place-items: center; }
.idbarah-ui-v2 .ui-tabs { display: flex; flex-wrap: wrap; gap: var(--id-space-2); border-bottom: 1px solid var(--id-divider); padding-block-end: var(--id-space-2); margin-block-end: var(--id-space-5); position: relative; isolation: isolate; }
.idbarah-ui-v2 .ui-tabs [role=tab] { border: 0; background: transparent; color: var(--id-muted); position: relative; z-index: 1; }
.idbarah-ui-v2 .ui-tabs [aria-selected=true] { color: var(--id-ink); background: var(--id-mist); }
.idbarah-ui-v2 .ui-selection-indicator { position: absolute; inset: 0 auto auto 0; z-index: 0; pointer-events: none; background: var(--id-glass); clip-path: var(--control-contour); transform-origin: 0 0; }
.idbarah-ui-v2 .modal { backdrop-filter: blur(8px); z-index: var(--id-z-dialog); }
.idbarah-ui-v2 .modal-backdrop { z-index: calc(var(--id-z-dialog) - 10); }
.idbarah-ui-v2 .modal-dialog { width: calc(100% - 24px); max-width: var(--id-modal-md); min-height: calc(100dvh - 64px); display: flex; align-items: center; filter: drop-shadow(var(--id-shadow-overlay)); }
.idbarah-ui-v2 .modal-dialog.modal-sm { max-width: var(--id-modal-sm); }
.idbarah-ui-v2 .modal-dialog.modal-lg { max-width: var(--id-modal-lg); }
.idbarah-ui-v2 .modal-dialog.modal-xl { max-width: var(--id-modal-xl); }
.idbarah-ui-v2 .modal-content { background: var(--id-overlay) !important; border: 0; border-radius: var(--id-radius-card); clip-path: var(--control-contour); max-height: calc(100dvh - 64px); overflow: auto; }
.idbarah-ui-v2 :is(.modal-header,.modal-footer) { padding: var(--id-space-5) var(--id-space-6); gap: var(--id-space-3); flex-wrap: wrap; }
.idbarah-ui-v2 .modal-header { flex-wrap: nowrap; align-items: flex-start; }
.idbarah-ui-v2 .modal-title { min-width: 0; }
.idbarah-ui-v2 .modal-header .close { margin: 0; margin-inline-start: auto; padding: var(--id-space-2); min-width: var(--id-control-sm); min-height: var(--id-control-sm); }
.idbarah-ui-v2 .modal-header .close, .idbarah-ui-v2 .modal-header .close * { color: var(--id-muted) !important; }
.idbarah-ui-v2 .modal-title { font-size: var(--id-type-title); line-height: 1.5; }
.idbarah-ui-v2 .modal-body { padding: var(--id-space-6); background: transparent; }
.idbarah-ui-v2 .modal-footer { background: transparent !important; }
/* Assignment review keeps readable text on the shared light modal surface. */
.idbarah-ui-v2 #editModal.ui-assignment-review :is(.modal-title,.student-info h6) { color: var(--id-text); }
.idbarah-ui-v2 #editModal.ui-assignment-review .modal-header > div { min-width: 0; }
.idbarah-ui-v2 #editModal.ui-assignment-review .modal-subtitle {
  color: var(--id-ink); font-size: var(--id-type-body); line-height: 1.8;
  margin-block: 8px 0; overflow-wrap: anywhere;
}
.idbarah-ui-v2 .ui-assignment-review :is(.student-meta,.max-label,.section-title,.text-muted) {
  color: var(--id-ink) !important; font-size: var(--id-type-body); line-height: 1.7; letter-spacing: normal;
}
.idbarah-ui-v2 .ui-assignment-review .student-info h6 {
  font-size: var(--id-type-section); line-height: 1.7; margin-block-end: 4px; overflow-wrap: anywhere;
}
.idbarah-ui-v2 .ui-assignment-review :is(.student-meta,.max-label) { font-weight: var(--id-weight-regular); }
.idbarah-ui-v2 .ui-assignment-review .student-avatar-circle { background: var(--id-mist); color: var(--id-ink); }
.idbarah-ui-v2 .ui-assignment-review .modal-header .close,
.idbarah-ui-v2 .ui-assignment-review .modal-header .close * { color: var(--id-ink) !important; }
.idbarah-ui-v2 .dropdown-menu { background: var(--id-floating-surface); min-width: 180px; padding: var(--id-space-2); z-index: var(--id-z-menu); }
.idbarah-ui-v2 .dropdown-item { padding: var(--id-space-2) var(--id-space-4); font-size: var(--id-type-label); }
.idbarah-ui-v2 .ui-toasts { position: fixed; inset-inline-end: var(--id-space-6); bottom: var(--id-space-6); z-index: var(--id-z-toast); width: min(360px, calc(100vw - 32px)); display: grid; gap: var(--id-space-2); }
.idbarah-ui-v2 .ui-toast, .idbarah-ui-v2 .jq-toast-single { background: var(--id-floating-surface) !important; color: var(--id-text) !important; border: 1px solid var(--id-edge); box-shadow: var(--id-shadow-live); padding: var(--id-space-4); border-radius: var(--id-radius-textarea); font-family: var(--id-font); font-size: var(--id-type-label); }
.idbarah-ui-v2 .ui-toast { display: flex; align-items: center; gap: var(--id-space-3); }
.idbarah-ui-v2 .ui-toast button { margin-inline-start: auto; }
.idbarah-ui-v2 .swal2-container.swal2-backdrop-show {
  background: var(--id-backdrop);
  backdrop-filter: blur(var(--id-confirm-blur));
  -webkit-backdrop-filter: blur(var(--id-confirm-blur));
}
.idbarah-ui-v2 .swal2-popup {
  font-family: var(--id-font); background: var(--id-confirm-surface) !important;
  color: var(--id-text); border-radius: var(--id-radius-card);
  border: 1px solid var(--id-edge); box-shadow: var(--id-shadow-overlay);
  backdrop-filter: blur(var(--id-confirm-blur));
  -webkit-backdrop-filter: blur(var(--id-confirm-blur));
}
.idbarah-ui-v2 .swal2-title { color: var(--id-ink); font-size: var(--id-type-title); font-weight: var(--id-weight-semibold); }
.idbarah-ui-v2 .swal2-popup:not(.swal2-toast) { padding-block: var(--id-space-6); }
.idbarah-ui-v2 .swal2-popup:not(.swal2-toast) .swal2-icon { margin: 0 auto var(--id-space-4); }
.idbarah-ui-v2 .swal2-popup:not(.swal2-toast) .swal2-title { padding: 0 var(--id-space-6); }
.idbarah-ui-v2 .swal2-html-container { color: var(--id-text); font-size: var(--id-type-body); line-height: var(--id-leading); }
.idbarah-ui-v2 .swal2-popup:not(.swal2-toast) .swal2-actions {
  width: min(var(--id-confirm-actions-width), calc(100% - 48px));
  gap: var(--id-space-3); align-items: stretch; flex-wrap: nowrap;
  margin: var(--id-space-6) auto var(--id-space-2);
}
.idbarah-ui-v2 .swal2-actions > :is(.swal2-confirm,.swal2-cancel,.swal2-deny) {
  box-sizing: border-box; flex: 1 1 0; min-width: 0; min-height: var(--id-control-lg);
  margin: 0; padding: var(--id-space-3) var(--id-space-4);
  font: var(--id-weight-medium) var(--id-type-body)/1.6 var(--id-font);
  border: 0 !important; box-shadow: none !important; text-shadow: none;
  white-space: normal; overflow-wrap: anywhere;
  transition: background-color var(--id-hover-opacity) var(--id-ease-out);
}
.idbarah-ui-v2 .swal2-actions > .swal2-confirm { background: var(--id-ink) !important; color: #fff !important; }
.idbarah-ui-v2 .swal2-actions > .swal2-confirm:hover { background: var(--id-primary-hover) !important; }
.idbarah-ui-v2 .swal2-actions > .swal2-cancel { background: var(--id-mist) !important; color: var(--id-ink) !important; }
.idbarah-ui-v2 .swal2-actions > .swal2-cancel:hover { background: var(--id-border) !important; }
.idbarah-ui-v2 .swal2-actions > .swal2-deny { background: var(--id-danger-soft) !important; color: var(--id-danger) !important; }
.idbarah-ui-v2 .swal2-actions > button:focus-visible {
  outline: 0; box-shadow: inset 0 0 0 2px var(--id-paper), inset 0 0 0 4px var(--id-patina) !important;
}
.idbarah-ui-v2 .swal2-icon:is(.swal2-question,.swal2-info) { color: var(--id-ink); border-color: var(--id-border); }
.idbarah-ui-v2 .swal2-icon.swal2-warning { color: var(--id-warning); border-color: var(--id-warning); }
.idbarah-ui-v2 .swal2-icon.swal2-error { color: var(--id-danger); border-color: var(--id-danger); }
.idbarah-ui-v2 .swal2-icon.swal2-error [class^=swal2-x-mark-line] { background-color: var(--id-danger); }
/* SweetAlert's ring uses physical coordinates; legacy RTL offsets shift it off-center. */
.idbarah-ui-v2 .swal2-icon.swal2-success .swal2-success-ring { inset: -.25em auto auto -.25em; margin: 0; }
/* Timetable design 1: light cards with a logical leading brand edge. */
.idbarah-ui-v2 .ui-timetable {
  --fc-event-bg-color: var(--id-paper);
  --fc-event-border-color: var(--id-border);
  --fc-event-text-color: var(--id-text);
  --fc-today-bg-color: var(--id-selected);
  --fc-neutral-bg-color: var(--id-mist);
  --fc-border-color: var(--id-border);
}
.idbarah-ui-v2 :is(.ui-timetable .fc-event,.ui-timetable-subject) {
  background: var(--id-paper) !important;
  border: 1px solid var(--id-border) !important;
  border-inline-start: 4px solid var(--id-ink) !important;
  border-radius: 12px !important;
  color: var(--id-text) !important;
  box-shadow: none !important;
  padding: 0 !important;
  text-align: start;
}
/* Legacy contrast handlers set inline text colors after events are rendered. */
.idbarah-ui-v2 :is(.ui-timetable .fc-event,.ui-timetable-subject) * { color: var(--id-text) !important; }
.idbarah-ui-v2 .ui-timetable :is(.calendar-wrapper,#calendar-wrapper) { overflow-x: auto; min-width: 0; }
.idbarah-ui-v2 .ui-timetable #calendar { min-width: 1540px; }
.idbarah-ui-v2 .ui-timetable .fc .fc-timegrid-slot { height: 240px !important; }
.idbarah-ui-v2 .ui-timetable .fc .fc-timegrid-slot-label { vertical-align: top; }
.idbarah-ui-v2 .ui-timetable .fc .fc-timegrid-event .fc-event-main { padding: 0; overflow: auto; }
.idbarah-ui-v2 :is(.ui-timetable-lesson,.ui-timetable-subject-content) {
  display: flex; flex-direction: column; gap: 7px; min-width: 0; padding: 10px 12px;
  font-family: var(--id-font); font-size: 14px; line-height: 1.65; font-weight: 400;
  white-space: normal; overflow-wrap: anywhere;
}
.idbarah-ui-v2 :is(.ui-timetable .fc-event,.ui-timetable-subject) .ui-timetable-name {
  font-size: 16px; font-weight: 600; line-height: 1.65;
}
.idbarah-ui-v2 :is(.ui-timetable .fc-event,.ui-timetable-subject) :is(.ui-timetable-time,.ui-timetable-kind,.ui-timetable-teacher,.ui-timetable-class) {
  color: var(--id-ink) !important; font-size: 14px; line-height: 1.65; font-weight: 400;
}
.idbarah-ui-v2 .ui-timetable .fc-event .ui-timetable-time {
  padding-block-end: 7px; border-bottom: 1px solid var(--id-border); font-weight: 600;
  text-align: end; white-space: nowrap; font-variant-numeric: tabular-nums;
}
.idbarah-ui-v2 .ui-timetable .ui-timetable-remove {
  align-self: flex-end; display: inline-grid; place-items: center; width: 28px; height: 28px;
  flex: 0 0 28px; padding: 0; border: 1px solid var(--id-border); border-radius: 8px;
  background: var(--id-mist); font: 22px/1 Arial, sans-serif; cursor: pointer;
}
.idbarah-ui-v2 .ui-timetable .ui-timetable-footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.idbarah-ui-v2 .ui-timetable .ui-timetable-remove:focus-visible { outline: 2px solid var(--id-ink); outline-offset: 2px; }
.idbarah-ui-v2 .ui-timetable #external-events {
  background: var(--id-mist); border-color: var(--id-border); color: var(--id-ink); padding: 12px; width: 100%;
}
.idbarah-ui-v2 .ui-timetable #external-events .fc-event { display: block; height: auto; margin: 0 0 12px; cursor: grab; }
.idbarah-ui-v2 .ui-timetable .fc-event.ui-timetable-subject { width: auto; }
.idbarah-ui-v2 .ui-timetable .fc :is(th,td) { border-color: var(--id-border) !important; }
.idbarah-ui-v2 .ui-timetable .fc th { background: var(--id-mist) !important; color: var(--id-ink) !important; }
.idbarah-ui-v2 .ui-timetable .fc .fc-col-header-cell-cushion { color: var(--id-ink); }
.idbarah-ui-v2 .ui-skip { position: fixed; top: -100px; inset-inline-start: var(--id-space-4); z-index: 2000; background: var(--id-paper); padding: var(--id-space-3); }
.idbarah-ui-v2 .ui-skip:focus { top: var(--id-space-3); }
.idbarah-ui-v2 .breadcrumb { background: transparent; border: 0; padding: 0; gap: var(--id-space-2); font-size: var(--id-type-meta); color: var(--id-muted); }
.idbarah-ui-v2 .breadcrumb-item { display: inline-flex; align-items: center; gap: var(--id-space-2); padding: 0; }
.idbarah-ui-v2 .breadcrumb-item::before { padding: 0; color: var(--id-muted); }
.idbarah-ui-v2 .breadcrumb a { color: var(--id-ink); }
.idbarah-ui-v2 .breadcrumb a:hover { color: var(--id-patina); text-decoration: underline; }
.idbarah-ui-v2 .ui-showcase-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,300px),1fr)); gap: var(--id-space-6); }
.idbarah-ui-v2 .ui-showcase > * + * { margin-block-start: var(--id-space-6); }
.idbarah-ui-v2 .ui-swatches { display: flex; flex-wrap: wrap; gap: var(--id-space-3); }
.idbarah-ui-v2 .ui-swatch { padding: var(--id-space-4); border-radius: var(--id-radius-badge); min-width: 120px; border: 1px solid var(--id-divider); }
.idbarah-ui-v2 .ui-swatch--ink { background: var(--id-ink); color: white; }
.idbarah-ui-v2 .ui-swatch--paper { background: var(--id-paper); }
.idbarah-ui-v2 .ui-swatch--mist { background: var(--id-mist); }
.idbarah-ui-v2 .ui-swatch--patina { background: var(--id-patina-soft); color: var(--id-patina); }
@media(max-width:850px) {
  .idbarah-ui-v2 .content-wrapper { padding: var(--id-space-6) var(--id-space-4); }
  .idbarah-ui-v2 .page-header { flex-wrap: wrap; gap: var(--id-space-4); }
}
@media(max-width:620px) {
  .idbarah-ui-v2 .card-body { padding: var(--id-space-5); }
  .idbarah-ui-v2 .table { min-width: 470px; }
  .idbarah-ui-v2 .table:has(.card-view) { min-width: 0 !important; }
  .idbarah-ui-v2 .card-view { overflow-wrap: anywhere; }
  .idbarah-ui-v2 .fixed-table-toolbar .search input { min-width: 0; width: 100%; }
  .idbarah-ui-v2 .fixed-table-toolbar .columns { flex-wrap: wrap; }
  .idbarah-ui-v2 .modal-dialog { margin: var(--id-space-3) auto; }
  .idbarah-ui-v2 .modal-content { max-height: calc(100dvh - 24px); }
  .idbarah-ui-v2 .modal-footer { justify-content: stretch; }
  .idbarah-ui-v2 .modal-footer .btn { flex: 1; }
  .idbarah-ui-v2 .ui-showcase-grid { grid-template-columns: 1fr; }
  .idbarah-ui-v2 :is(.btn,.page-link,.ui-button) { min-height: var(--id-control-md); }
}
@media(prefers-reduced-motion:reduce) {
  .idbarah-ui-v2 .ui-button[aria-busy=true]::before { animation: none; }
  .idbarah-ui-v2 .modal-dialog { transform: none !important; }
}
/* Optional labelled records for wide tables with contextual details. */
@media(max-width:991.98px) {
  .idbarah-ui-v2 .ui-table--cards { min-width: 0 !important; }
  .idbarah-ui-v2 .ui-table--cards, .idbarah-ui-v2 .ui-table--cards > tbody, .idbarah-ui-v2 .ui-table--cards .ui-table-record, .idbarah-ui-v2 .ui-table--cards .ui-table-record > td { display: block; width: 100%; }
  .idbarah-ui-v2 .ui-table--cards colgroup { display: none; }
  .idbarah-ui-v2 .ui-table--cards thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .idbarah-ui-v2 .ui-table--cards .ui-table-record { border: 1px solid var(--id-border); border-radius: var(--id-radius-textarea); margin-block-end: var(--id-space-4); overflow: hidden; }
  .idbarah-ui-v2 .ui-table--cards .ui-table-record > td { display: grid; grid-template-columns: minmax(90px,30%) minmax(0,1fr); gap: var(--id-space-3); padding: var(--id-space-3); }
  .idbarah-ui-v2 .ui-table--cards .ui-table-record > td::before { content: attr(data-label); color: var(--id-muted); font-size: var(--id-type-meta); font-weight: var(--id-weight-medium); }
}
.idbarah-ui-v2 .filter-chip { display: inline-flex; gap: var(--id-space-2); padding: var(--id-space-2) var(--id-space-3); border: 1px solid var(--id-border); border-radius: var(--id-radius-badge); background: var(--id-mist); color: var(--id-ink); font-size: var(--id-type-meta); }
.idbarah-ui-v2 .filter-chip:hover { background: var(--id-selected); color: var(--id-ink); }
@media(forced-colors:active) {
  .idbarah-ui-v2 :is(.btn,button,input,select,textarea,a):focus-visible { outline: 3px solid Highlight !important; outline-offset: -4px; }
  .idbarah-ui-v2 .form-control { border: 1px solid CanvasText !important; }
}
/* Profile photo: a clickable avatar and a contained, uncropped preview. */
.idbarah-ui-v2 .ui-profile-photo { display: flex; align-items: center; gap: var(--id-space-4); margin-block-end: var(--id-space-6); }
.idbarah-ui-v2 .ui-profile-photo-trigger { padding: 0; border: 0; background: transparent; flex-shrink: 0; }
.idbarah-ui-v2 .ui-profile-photo-frame { position: relative; display: grid; place-items: center; width: 96px; height: 96px; overflow: hidden; background: var(--id-ink); color: white; font-size: 24px; }
.idbarah-ui-v2 .ui-profile-photo-frame img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.idbarah-ui-v2 .ui-profile-photo-preview { display: grid; place-items: center; min-height: 160px; margin-block-end: var(--id-space-4); }
.idbarah-ui-v2 .ui-profile-photo-preview img { width: 100%; max-width: 420px; max-height: 50dvh; object-fit: contain; }
.idbarah-ui-v2 .ui-profile-photo-placeholder { display: grid; place-items: center; width: 160px; height: 160px; background: var(--id-ink); color: white; font-size: 36px; }
.idbarah-ui-v2 :is(.ui-profile-photo,.ui-profile-photo-modal) [hidden] { display: none !important; }
/* Shared dashboard statistic cards: the approved independent purple design. */
.idbarah-ui-v2 .ui-stats { container-type: inline-size; margin-block-end: var(--id-space-6); }
.idbarah-ui-v2 .ui-stats-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--id-space-4); }
.idbarah-ui-v2 .ui-stat-card { min-width: 0; box-shadow: none !important; }
.idbarah-ui-v2 .ui-stat-card__echo {
  position: absolute;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background: var(--id-echo-material);
  border: 1px solid #fff;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  clip-path: var(--control-contour);
  transform: translateX(var(--id-echo-rest-x));
  opacity: 0;
  transition: transform var(--id-hover-position) var(--id-ease-out), opacity var(--id-hover-opacity) var(--id-ease-out);
}
.idbarah-ui-v2 .ui-stat-card__echo:first-child { opacity: .7; }
.idbarah-ui-v2 .ui-stat-card__body { display: flex; flex-direction: column; padding: var(--id-space-5); min-height: 230px; height: 100%; }
.idbarah-ui-v2 .ui-stat-card__label { margin: 0; min-height: 3.6em; color: var(--id-paper); font-size: var(--id-type-body); font-weight: var(--id-weight-medium); line-height: 1.8; overflow-wrap: anywhere; }
.idbarah-ui-v2 .ui-stat-card__value { display: block; color: var(--id-paper); font-size: clamp(40px, 3.5vw, 52px); font-weight: var(--id-weight-semibold); line-height: 1.25; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; margin-block: var(--id-space-1) var(--id-space-4); }
.idbarah-ui-v2 .ui-stat-card__footer { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--id-space-3); margin-block-start: auto; padding-block-start: var(--id-space-4); border-block-start: 1px solid #ffffff24; }
.idbarah-ui-v2 .ui-stat-card__unit { color: var(--id-on-ink-muted); font-size: var(--id-type-meta); line-height: 1.6; }
.idbarah-ui-v2 .ui-stat-card__paper { display: grid; place-items: center; width: 38px; height: 46px; flex-shrink: 0; background: var(--id-stat-paper); color: var(--id-ink); border-radius: var(--id-radius-image-fallback); transform: rotate(-10deg); box-shadow: 5px 2px 0 #ffffff30, 10px 4px 0 #ffffff18; }
.idbarah-ui-v2 .ui-stat-card__paper .ui-icon { width: 22px; height: 22px; }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .idbarah-ui-v2:not([data-reduced-motion]) .ui-stat-card__paper { transition: transform 240ms var(--id-ease-out), box-shadow 240ms var(--id-ease-out); }
  .idbarah-ui-v2:not([data-reduced-motion]) .ui-stat-card:hover .ui-stat-card__paper { transform: translateY(-2px) rotate(0deg); box-shadow: 3px 3px 0 #ffffff30, 6px 6px 0 #ffffff18; }
  /* Canonical Right Echo: positive physical X in both writing directions. */
  .idbarah-ui-v2:not([data-reduced-motion]) .ui-stat-card:hover .ui-stat-card__echo { transform: translateX(var(--id-echo-hover-secondary-x)); }
  .idbarah-ui-v2:not([data-reduced-motion]) .ui-stat-card:hover .ui-stat-card__echo:first-child { transform: translateX(var(--id-echo-hover-x)); opacity: .75; }
  .idbarah-ui-v2:not([data-reduced-motion]) .ui-stat-card:hover .ui-stat-card__echo:nth-child(2) { opacity: .13; }
}
.idbarah-ui-v2[data-reduced-motion] .ui-stat-card__echo { transition: none; }
@container (max-width: 850px) { .idbarah-ui-v2 .ui-stats-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@container (max-width: 560px) {
  .idbarah-ui-v2 .ui-stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--id-space-3); }
  .idbarah-ui-v2 .ui-stats-grid > :last-child:nth-child(odd) { grid-column: 1 / -1; }
  .idbarah-ui-v2 .ui-stat-card__body { padding: var(--id-space-4); min-height: 212px; }
  .idbarah-ui-v2 .ui-stats-grid > :last-child:nth-child(odd) .ui-stat-card__body { min-height: 0; }
  .idbarah-ui-v2 .ui-stats-grid > :last-child:nth-child(odd) .ui-stat-card__label { min-height: 0; }
}
