/*
 * Al Bayraq School Portal — Final UI/UX & Workflow Consistency Gate
 * v1.3.70.38
 *
 * This is a deliberately conservative final override layer. It does not change
 * business workflow or data state. It standardises readability, interaction
 * semantics, focus visibility, responsive containment and dense data surfaces
 * across the current portal routes.
 */

:root{
  --absp-ui-font:"Dubai","Noto Kufi Arabic","Segoe UI",Tahoma,Arial,sans-serif;
  --absp-ui-text:#233847;
  --absp-ui-muted:#667985;
  --absp-ui-line:#dbe5e9;
  --absp-ui-surface:#fff;
  --absp-ui-soft:#f5f8f9;
  --absp-ui-primary:#176f6a;
  --absp-ui-focus:rgba(224,131,38,.38);
  --absp-ui-danger:#a92d3b;
  --absp-ui-success:#147650;
}

:where(
  [data-absp-login],
  [data-teacher-portal],
  [data-head-portal],
  [data-social-portal],
  [data-principal-portal],
  [data-vice-principal-portal],
  [data-registrar-portal],
  [data-secretary-portal],
  [data-admissions-portal],
  [data-building-portal],
  [data-classroom-assistant-portal],
  [data-inclusive-portal],
  [data-library-portal],
  [data-notice-portal],
  [data-safety-portal],
  [data-sen-portal],
  [data-transport-portal],
  [data-improvement-portal],
  [data-smd-portal],
  [data-operations-root],
  [data-eam-root],
  [data-ih-root],
  [data-portal-admin],
  [data-smart-timetable-studio]
){
  font-family:var(--absp-ui-font);
  color:var(--absp-ui-text);
  font-size:14px;
  line-height:1.6;
  min-width:0;
  max-width:100%;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}

:where(
  [data-absp-login], [data-teacher-portal], [data-head-portal], [data-social-portal],
  [data-principal-portal], [data-vice-principal-portal], [data-registrar-portal],
  [data-secretary-portal], [data-admissions-portal], [data-building-portal],
  [data-classroom-assistant-portal], [data-inclusive-portal], [data-library-portal],
  [data-notice-portal], [data-safety-portal], [data-sen-portal], [data-transport-portal],
  [data-improvement-portal], [data-smd-portal], [data-operations-root], [data-eam-root],
  [data-ih-root], [data-portal-admin], [data-smart-timetable-studio]
) *,
:where(
  [data-absp-login], [data-teacher-portal], [data-head-portal], [data-social-portal],
  [data-principal-portal], [data-vice-principal-portal], [data-registrar-portal],
  [data-secretary-portal], [data-admissions-portal], [data-building-portal],
  [data-classroom-assistant-portal], [data-inclusive-portal], [data-library-portal],
  [data-notice-portal], [data-safety-portal], [data-sen-portal], [data-transport-portal],
  [data-improvement-portal], [data-smd-portal], [data-operations-root], [data-eam-root],
  [data-ih-root], [data-portal-admin], [data-smart-timetable-studio]
) *::before,
:where(
  [data-absp-login], [data-teacher-portal], [data-head-portal], [data-social-portal],
  [data-principal-portal], [data-vice-principal-portal], [data-registrar-portal],
  [data-secretary-portal], [data-admissions-portal], [data-building-portal],
  [data-classroom-assistant-portal], [data-inclusive-portal], [data-library-portal],
  [data-notice-portal], [data-safety-portal], [data-sen-portal], [data-transport-portal],
  [data-improvement-portal], [data-smd-portal], [data-operations-root], [data-eam-root],
  [data-ih-root], [data-portal-admin], [data-smart-timetable-studio]
) *::after{
  box-sizing:border-box;
}

/* Readability floor. Legacy modules may retain compact internal values, but visible
 * metadata and table copy may no longer collapse into 6–10px micro-text. */
:where(
  [data-teacher-portal], [data-head-portal], [data-social-portal], [data-principal-portal],
  [data-vice-principal-portal], [data-registrar-portal], [data-secretary-portal],
  [data-admissions-portal], [data-building-portal], [data-classroom-assistant-portal],
  [data-inclusive-portal], [data-library-portal], [data-safety-portal], [data-sen-portal],
  [data-transport-portal], [data-improvement-portal], [data-operations-root], [data-eam-root],
  [data-ih-root], [data-portal-admin], [data-smart-timetable-studio]
) small{
  font-size:12px!important;
  line-height:1.5!important;
}

:where(
  [data-teacher-portal], [data-head-portal], [data-social-portal], [data-principal-portal],
  [data-vice-principal-portal], [data-registrar-portal], [data-secretary-portal],
  [data-admissions-portal], [data-building-portal], [data-classroom-assistant-portal],
  [data-inclusive-portal], [data-library-portal], [data-safety-portal], [data-sen-portal],
  [data-transport-portal], [data-improvement-portal], [data-operations-root], [data-eam-root],
  [data-ih-root], [data-portal-admin], [data-smart-timetable-studio]
) :is([class*="badge"],[class*="status"],[class*="meta"],[class*="eyebrow"],[class*="kicker"]){
  font-size:max(11.5px,.82em)!important;
  line-height:1.45!important;
}

:where(
  [data-teacher-portal], [data-head-portal], [data-social-portal], [data-principal-portal],
  [data-vice-principal-portal], [data-registrar-portal], [data-secretary-portal],
  [data-admissions-portal], [data-building-portal], [data-classroom-assistant-portal],
  [data-inclusive-portal], [data-library-portal], [data-safety-portal], [data-sen-portal],
  [data-transport-portal], [data-improvement-portal], [data-operations-root], [data-eam-root],
  [data-ih-root], [data-portal-admin], [data-smart-timetable-studio]
) :is(p,li,dd,blockquote){
  overflow-wrap:break-word;
  word-break:normal;
}

/* Controls use a shared readable scale and visible keyboard focus. */
:where(
  [data-absp-login], [data-teacher-portal], [data-head-portal], [data-social-portal],
  [data-principal-portal], [data-vice-principal-portal], [data-registrar-portal],
  [data-secretary-portal], [data-admissions-portal], [data-building-portal],
  [data-classroom-assistant-portal], [data-inclusive-portal], [data-library-portal],
  [data-safety-portal], [data-sen-portal], [data-transport-portal], [data-improvement-portal],
  [data-operations-root], [data-eam-root], [data-ih-root], [data-portal-admin],
  [data-smart-timetable-studio]
) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea){
  min-height:40px;
  max-width:100%;
  font-family:inherit!important;
  font-size:14px!important;
  line-height:1.45!important;
}

:where(
  [data-absp-login], [data-teacher-portal], [data-head-portal], [data-social-portal],
  [data-principal-portal], [data-vice-principal-portal], [data-registrar-portal],
  [data-secretary-portal], [data-admissions-portal], [data-building-portal],
  [data-classroom-assistant-portal], [data-inclusive-portal], [data-library-portal],
  [data-safety-portal], [data-sen-portal], [data-transport-portal], [data-improvement-portal],
  [data-operations-root], [data-eam-root], [data-ih-root], [data-portal-admin],
  [data-smart-timetable-studio]
) button{
  max-width:100%;
  font-family:inherit!important;
  font-size:max(12.5px,.82em)!important;
  line-height:1.35!important;
  cursor:pointer;
  text-wrap:balance;
}

:where(
  [data-absp-login], [data-teacher-portal], [data-head-portal], [data-social-portal],
  [data-principal-portal], [data-vice-principal-portal], [data-registrar-portal],
  [data-secretary-portal], [data-admissions-portal], [data-building-portal],
  [data-classroom-assistant-portal], [data-inclusive-portal], [data-library-portal],
  [data-safety-portal], [data-sen-portal], [data-transport-portal], [data-improvement-portal],
  [data-operations-root], [data-eam-root], [data-ih-root], [data-portal-admin],
  [data-smart-timetable-studio]
) :is(button,a,input,select,textarea,summary):focus-visible{
  outline:3px solid var(--absp-ui-focus)!important;
  outline-offset:2px!important;
}

:where(
  [data-teacher-portal], [data-head-portal], [data-social-portal], [data-principal-portal],
  [data-vice-principal-portal], [data-registrar-portal], [data-secretary-portal],
  [data-admissions-portal], [data-building-portal], [data-classroom-assistant-portal],
  [data-inclusive-portal], [data-library-portal], [data-safety-portal], [data-sen-portal],
  [data-transport-portal], [data-improvement-portal], [data-operations-root], [data-eam-root],
  [data-ih-root], [data-portal-admin], [data-smart-timetable-studio]
) button:disabled{
  cursor:not-allowed!important;
  opacity:.58!important;
  filter:saturate(.7);
}

/* Prevent grid/card children and long identifiers from forcing page-level horizontal overflow. */
:where(
  [data-teacher-portal], [data-head-portal], [data-social-portal], [data-principal-portal],
  [data-vice-principal-portal], [data-registrar-portal], [data-secretary-portal],
  [data-admissions-portal], [data-building-portal], [data-classroom-assistant-portal],
  [data-inclusive-portal], [data-library-portal], [data-safety-portal], [data-sen-portal],
  [data-transport-portal], [data-improvement-portal], [data-operations-root], [data-eam-root],
  [data-ih-root], [data-portal-admin], [data-smart-timetable-studio]
) :is(article,section,main,aside,header,footer,div){
  min-width:0;
}

:where(
  [data-teacher-portal], [data-head-portal], [data-social-portal], [data-principal-portal],
  [data-vice-principal-portal], [data-registrar-portal], [data-secretary-portal],
  [data-admissions-portal], [data-building-portal], [data-classroom-assistant-portal],
  [data-inclusive-portal], [data-library-portal], [data-safety-portal], [data-sen-portal],
  [data-transport-portal], [data-improvement-portal], [data-operations-root], [data-eam-root],
  [data-ih-root], [data-portal-admin], [data-smart-timetable-studio]
) :is([class*="actions"],[class*="toolbar"],[class*="filters"]){
  max-width:100%;
}

/* Every table remains available in full, but its overflow is contained inside the
 * table surface rather than pushing the entire portal horizontally. */
:where(
  [data-teacher-portal], [data-head-portal], [data-social-portal], [data-principal-portal],
  [data-vice-principal-portal], [data-registrar-portal], [data-secretary-portal],
  [data-admissions-portal], [data-building-portal], [data-classroom-assistant-portal],
  [data-inclusive-portal], [data-library-portal], [data-safety-portal], [data-sen-portal],
  [data-transport-portal], [data-improvement-portal], [data-operations-root], [data-eam-root],
  [data-ih-root], [data-portal-admin], [data-smart-timetable-studio]
) :is([class*="table-wrap"],[class*="table-card"],[class*="__table"],[class*="-table"]){
  max-width:100%;
}

:where(
  [data-teacher-portal], [data-head-portal], [data-social-portal], [data-principal-portal],
  [data-vice-principal-portal], [data-registrar-portal], [data-secretary-portal],
  [data-admissions-portal], [data-building-portal], [data-classroom-assistant-portal],
  [data-inclusive-portal], [data-library-portal], [data-safety-portal], [data-sen-portal],
  [data-transport-portal], [data-improvement-portal], [data-operations-root], [data-eam-root],
  [data-ih-root], [data-portal-admin], [data-smart-timetable-studio]
) [data-absp-scroll-table="1"]{
  overflow-x:auto!important;
  overscroll-behavior-inline:contain;
  scrollbar-gutter:stable;
  -webkit-overflow-scrolling:touch;
}

:where(
  [data-teacher-portal], [data-head-portal], [data-social-portal], [data-principal-portal],
  [data-vice-principal-portal], [data-registrar-portal], [data-secretary-portal],
  [data-admissions-portal], [data-building-portal], [data-classroom-assistant-portal],
  [data-inclusive-portal], [data-library-portal], [data-safety-portal], [data-sen-portal],
  [data-transport-portal], [data-improvement-portal], [data-operations-root], [data-eam-root],
  [data-ih-root], [data-portal-admin], [data-smart-timetable-studio]
) table :is(th,td){
  font-size:max(12.5px,.8em)!important;
  line-height:1.5!important;
  overflow-wrap:break-word;
  word-break:normal;
  vertical-align:middle;
}

:where(
  [data-teacher-portal], [data-head-portal], [data-social-portal], [data-principal-portal],
  [data-vice-principal-portal], [data-registrar-portal], [data-secretary-portal],
  [data-admissions-portal], [data-building-portal], [data-classroom-assistant-portal],
  [data-inclusive-portal], [data-library-portal], [data-safety-portal], [data-sen-portal],
  [data-transport-portal], [data-improvement-portal], [data-operations-root], [data-eam-root],
  [data-ih-root], [data-portal-admin], [data-smart-timetable-studio]
) table th{
  font-weight:750!important;
}

/* Dense legacy tables are still horizontally scrollable when needed, but their
 * minimum width is capped to a more reasonable final-delivery footprint. */
@media(max-width:1180px){
  .absp-ptr table,
  .absp-registrar__compliance-table-wrap table,
  .absp-exam__review-table,
  .absp-uam__table,
  .absp-opr__register table,
  .absp-gdc-table-wrap table,
  .absp-pr__excellence-evidence table,
  .absp-pr__activities-report .absp-pr__table-wrap table,
  .absp-admin-news-modal__table,
  .absp-ir-table-wrap table,
  .absp-intervention-registry-table-wrap table,
  .absp-eam__registry-table-card table,
  .absp-library-books-table,
  .absp-library-purchase-table-wrap table,
  .absp-studio__delivery-table table,
  .absp-gov table,
  .absp-ayt__table{
    min-width:900px!important;
  }
}

@media(max-width:760px){
  .absp-ptr table,
  .absp-registrar__compliance-table-wrap table,
  .absp-exam__review-table,
  .absp-uam__table,
  .absp-opr__register table,
  .absp-gdc-table-wrap table,
  .absp-pr__excellence-evidence table,
  .absp-pr__activities-report .absp-pr__table-wrap table,
  .absp-admin-news-modal__table,
  .absp-ir-table-wrap table,
  .absp-intervention-registry-table-wrap table,
  .absp-eam__registry-table-card table,
  .absp-library-books-table,
  .absp-library-purchase-table-wrap table,
  .absp-studio__delivery-table table,
  .absp-gov table,
  .absp-ayt__table{
    min-width:780px!important;
  }
}

/* Feedback, loading, empty and error states use a consistent readable treatment. */
:where(
  [data-teacher-portal], [data-head-portal], [data-social-portal], [data-principal-portal],
  [data-vice-principal-portal], [data-registrar-portal], [data-secretary-portal],
  [data-admissions-portal], [data-building-portal], [data-classroom-assistant-portal],
  [data-inclusive-portal], [data-library-portal], [data-safety-portal], [data-sen-portal],
  [data-transport-portal], [data-improvement-portal], [data-operations-root], [data-eam-root],
  [data-ih-root], [data-portal-admin], [data-smart-timetable-studio]
) :is([class*="feedback"],[class*="notice"],[class*="empty"],[class*="loading"],[class*="error"]){
  font-size:13px!important;
  line-height:1.6!important;
  overflow-wrap:break-word;
}

:where(
  [data-teacher-portal], [data-head-portal], [data-social-portal], [data-principal-portal],
  [data-vice-principal-portal], [data-registrar-portal], [data-secretary-portal],
  [data-admissions-portal], [data-building-portal], [data-classroom-assistant-portal],
  [data-inclusive-portal], [data-library-portal], [data-safety-portal], [data-sen-portal],
  [data-transport-portal], [data-improvement-portal], [data-operations-root], [data-eam-root],
  [data-ih-root], [data-portal-admin], [data-smart-timetable-studio]
) [aria-busy="true"]{
  cursor:progress;
}

/* Modal containment. No business modal is restructured; only viewport escape is
 * prevented and close controls remain reachable. */
:where(
  [data-teacher-portal], [data-head-portal], [data-social-portal], [data-principal-portal],
  [data-vice-principal-portal], [data-registrar-portal], [data-secretary-portal],
  [data-admissions-portal], [data-building-portal], [data-classroom-assistant-portal],
  [data-inclusive-portal], [data-library-portal], [data-safety-portal], [data-sen-portal],
  [data-transport-portal], [data-improvement-portal], [data-operations-root], [data-eam-root],
  [data-ih-root], [data-portal-admin], [data-smart-timetable-studio]
) :is([class$="-modal-card"],[class$="__modal-card"],[class*="modal__card"]){
  max-width:min(96vw,1180px)!important;
  max-height:92vh!important;
  overflow:auto!important;
  overscroll-behavior:contain;
}

/* Platform Admin route navigator: all routes stay available, but no longer create
 * a 20-item horizontal ribbon inside Teacher / Department Head headers. */
.absp-multi-role-switcher.is-platform-navigator{
  position:relative;
  display:block;
  width:min(310px,100%);
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
  direction:inherit;
  z-index:150;
}
.absp-multi-role-switcher.is-platform-navigator>summary{
  list-style:none;
  display:grid;
  grid-template-columns:32px minmax(0,1fr) auto 20px;
  align-items:center;
  gap:8px;
  width:100%;
  min-height:44px;
  padding:6px 9px;
  border:1px solid #d9e4e8;
  border-radius:14px;
  background:rgba(255,255,255,.97);
  color:#274352;
  box-shadow:0 7px 20px rgba(28,54,72,.08);
  cursor:pointer;
}
.absp-multi-role-switcher.is-platform-navigator>summary::-webkit-details-marker{display:none}
.absp-route-nav__mark{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:#edf7f5;color:#13786f;font-size:15px;font-weight:900}
.absp-route-nav__summary-copy{display:flex;min-width:0;flex-direction:column;gap:1px;text-align:start}
.absp-route-nav__summary-copy b{font-size:12.5px;line-height:1.25;color:#17384c}
.absp-route-nav__summary-copy small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10.5px!important;color:#71818b}
.absp-route-nav__count{display:grid;place-items:center;min-width:27px;height:24px;padding:0 6px;border-radius:999px;background:#eef3f5;color:#46606e;font-size:10px;font-weight:850}
.absp-route-nav__chevron{font-size:15px;color:#71818b;transition:transform .18s ease}
.absp-multi-role-switcher.is-platform-navigator[open] .absp-route-nav__chevron{transform:rotate(180deg)}
.absp-route-nav__panel{
  display:block!important;
  flex:none!important;
  position:absolute;
  top:calc(100% + 8px);
  inset-inline-end:0;
  width:min(760px,calc(100vw - 36px))!important;
  max-height:min(72vh,640px);
  overflow:auto;
  padding:14px;
  border:1px solid #dce6e9;
  border-radius:18px;
  background:#fff;
  box-shadow:0 24px 60px rgba(17,45,64,.2);
  direction:inherit;
}
.absp-route-nav__panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:0 0 10px;padding:2px 2px 10px;border-bottom:1px solid #e7edef}
.absp-route-nav__panel>header div{display:flex;flex-direction:column;gap:3px;min-width:0}
.absp-route-nav__panel>header strong{font-size:14px;color:#183c51}
.absp-route-nav__panel>header small{font-size:11px!important;color:#6a7d88;line-height:1.55!important}
.absp-route-nav__search{display:grid;grid-template-columns:26px minmax(0,1fr);align-items:center;gap:5px;margin-bottom:12px;padding:0 10px;border:1px solid #d9e4e8;border-radius:12px;background:#f7fafb;color:#71818b}
.absp-route-nav__search input{width:100%;min-height:38px!important;border:0!important;outline:0!important;background:transparent!important;box-shadow:none!important;padding:6px 0!important;font-size:13px!important}
.absp-route-nav__groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.absp-route-nav__group{min-width:0;padding:10px;border:1px solid #e2eaed;border-radius:14px;background:#fbfcfd}
.absp-route-nav__group h4{margin:0 0 7px;font-size:11px!important;color:#6a7b85;font-weight:850;letter-spacing:.02em}
.absp-route-nav__group>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.absp-route-nav__group a{display:flex!important;align-items:center!important;width:100%!important;min-width:0!important;flex:none!important;gap:7px!important;padding:8px!important;border:1px solid transparent!important;border-radius:10px!important;background:#fff!important;color:#31505f!important;text-decoration:none!important;font-size:11.5px!important;font-weight:750!important;box-shadow:none!important;transform:none!important}
.absp-route-nav__group a:hover{border-color:#cfe1df!important;background:#f2f9f7!important;color:#126e68!important}
.absp-route-nav__group a.is-active{border-color:#efc898!important;background:#fff7ec!important;color:#934d0c!important}
.absp-route-nav__group a i{display:grid!important;place-items:center!important;flex:0 0 25px!important;width:25px!important;height:25px!important;border-radius:8px!important;background:#eef4f5!important;font-size:12px!important;font-style:normal!important;box-shadow:none!important}
.absp-route-nav__group a span{display:block!important;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.absp-route-nav__empty{padding:18px;text-align:center;color:#75858e;font-size:12px}

@media(max-width:820px){
  .absp-multi-role-switcher.is-platform-navigator{width:100%;max-width:360px}
  .absp-route-nav__panel{position:fixed;top:76px;inset-inline:18px;width:auto!important;max-height:calc(100vh - 100px);overflow:auto!important}
  .absp-route-nav__groups{grid-template-columns:1fr}
}
@media(max-width:520px){
  .absp-route-nav__group>div{grid-template-columns:1fr}
}

/* RTL/LTR alignment must follow the active portal language, including modules that
 * historically relied only on their local stylesheet. */
html.absp-language-en :where(
  [data-teacher-portal], [data-head-portal], [data-social-portal], [data-principal-portal],
  [data-vice-principal-portal], [data-registrar-portal], [data-secretary-portal],
  [data-admissions-portal], [data-building-portal], [data-classroom-assistant-portal],
  [data-inclusive-portal], [data-library-portal], [data-safety-portal], [data-sen-portal],
  [data-transport-portal], [data-improvement-portal], [data-operations-root], [data-eam-root],
  [data-ih-root], [data-portal-admin], [data-smart-timetable-studio]
){
  direction:ltr;
  text-align:left;
}
html:not(.absp-language-en) :where(
  [data-teacher-portal], [data-head-portal], [data-social-portal], [data-principal-portal],
  [data-vice-principal-portal], [data-registrar-portal], [data-secretary-portal],
  [data-admissions-portal], [data-building-portal], [data-classroom-assistant-portal],
  [data-inclusive-portal], [data-library-portal], [data-safety-portal], [data-sen-portal],
  [data-transport-portal], [data-improvement-portal], [data-operations-root], [data-eam-root],
  [data-ih-root], [data-portal-admin], [data-smart-timetable-studio]
){
  text-align:right;
}

@media(max-width:900px){
  :where(
    [data-teacher-portal], [data-head-portal], [data-social-portal], [data-principal-portal],
    [data-vice-principal-portal], [data-registrar-portal], [data-secretary-portal],
    [data-admissions-portal], [data-building-portal], [data-classroom-assistant-portal],
    [data-inclusive-portal], [data-library-portal], [data-safety-portal], [data-sen-portal],
    [data-transport-portal], [data-improvement-portal], [data-operations-root], [data-eam-root],
    [data-ih-root], [data-portal-admin], [data-smart-timetable-studio]
  ) :is([class*="actions"],[class*="toolbar"],[class*="filters"]){
    flex-wrap:wrap;
  }
}

@media(prefers-reduced-motion:reduce){
  :where(
    [data-teacher-portal], [data-head-portal], [data-social-portal], [data-principal-portal],
    [data-vice-principal-portal], [data-registrar-portal], [data-secretary-portal],
    [data-admissions-portal], [data-building-portal], [data-classroom-assistant-portal],
    [data-inclusive-portal], [data-library-portal], [data-safety-portal], [data-sen-portal],
    [data-transport-portal], [data-improvement-portal], [data-operations-root], [data-eam-root],
    [data-ih-root], [data-portal-admin], [data-smart-timetable-studio]
  ) *,
  .absp-multi-role-switcher.is-platform-navigator *{
    scroll-behavior:auto!important;
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
  }
}

@media print{
  .absp-multi-role-switcher.is-platform-navigator{display:none!important}
}
