/* TCLMS PATCH-26M2 — unified THEMS runtime bridge */
:root{--p80-ease:cubic-bezier(.2,.75,.25,1);--p80-shadow:0 20px 60px rgba(0,0,0,.14);--p80-shadow-sm:0 10px 30px rgba(0,0,0,.09)}
html{scroll-behavior:smooth}body.tclms-admin-shell,body.tclms-student-shell,body.tclms-auth-shell{background:var(--t-bg)!important;color:var(--t-text)!important;transition:background .28s ease,color .28s ease}body.tclms-public-shell{background:var(--front-bg)!important;color:var(--front-text)!important;transition:background .28s ease,color .28s ease}
body.tclms-admin-shell *,body.tclms-student-shell *,body.tclms-auth-shell *,body.tclms-public-shell *{box-sizing:border-box}
/* Bridge old/bootstrap/admin widgets into THEMS tokens without editing every Blade view. */
body.tclms-admin-shell :where(.card,.panel,.box,.widget,.modal-content,.dropdown-menu,.list-group-item,.nav-tabs,.accordion-item,.t25d-card,.t25d-panel),body.tclms-student-shell :where(.card,.panel,.box,.widget,.modal-content,.dropdown-menu,.list-group-item){background-color:var(--t-surface)!important;color:var(--t-text)!important;border-color:var(--t-border)!important}
body.tclms-admin-shell :where(.card-header,.card-footer,.panel-heading,.panel-footer,.modal-header,.modal-footer,.dropdown-divider,.table>:not(caption)>*>*),body.tclms-student-shell :where(.card-header,.card-footer,.panel-heading,.panel-footer,.modal-header,.modal-footer,.table>:not(caption)>*>*){border-color:var(--t-border)!important}
body.tclms-admin-shell :where(.table,table),body.tclms-student-shell :where(.table,table){color:var(--t-text)!important;background:transparent!important}
body.tclms-admin-shell :where(.table thead th,table thead th),body.tclms-student-shell :where(.table thead th,table thead th){background:color-mix(in srgb,var(--t-surface-2) 88%,transparent)!important;color:var(--t-text)!important;border-color:var(--t-border)!important}
body.tclms-admin-shell :where(.table tbody td,table tbody td),body.tclms-student-shell :where(.table tbody td,table tbody td){color:var(--t-text)!important;border-color:color-mix(in srgb,var(--t-border) 70%,transparent)!important}
body.tclms-admin-shell :where(input:not([type=checkbox]):not([type=radio]):not([type=color]),select,textarea,.form-control,.form-select),body.tclms-student-shell :where(input:not([type=checkbox]):not([type=radio]):not([type=color]),select,textarea,.form-control,.form-select){background:var(--t-control-bg,var(--t-surface-2))!important;color:var(--t-text)!important;border-color:var(--t-border)!important;border-radius:var(--t-button-radius,10px)!important;min-height:var(--t-control-height,42px)}
body.tclms-admin-shell :where(input,select,textarea,.form-control,.form-select):focus,body.tclms-student-shell :where(input,select,textarea,.form-control,.form-select):focus{border-color:var(--t-focus)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--t-focus) 20%,transparent)!important;outline:0}
body.tclms-admin-shell :where(.text-muted,.help-block,.form-text,.small,small),body.tclms-student-shell :where(.text-muted,.help-block,.form-text,.small,small){color:var(--t-muted)!important}
body.tclms-admin-shell :where(.btn-primary,.button-primary),body.tclms-student-shell :where(.btn-primary,.button-primary){background:var(--t-primary)!important;border-color:var(--t-primary)!important;color:#fff!important}
body.tclms-admin-shell :where(.btn-outline-primary),body.tclms-student-shell :where(.btn-outline-primary){color:var(--t-primary)!important;border-color:var(--t-primary)!important;background:transparent!important}
body.tclms-admin-shell a,body.tclms-student-shell a{transition:color .18s ease,background .18s ease,border .18s ease,transform .18s ease}
body.tclms-admin-shell .tclms-main,body.tclms-student-shell .tclms-main{background:var(--t-bg)!important}
body.tclms-admin-shell .tclms-topbar,body.tclms-student-shell .tclms-topbar{background:color-mix(in srgb,var(--t-surface) 91%,transparent)!important;border-color:var(--t-border)!important;backdrop-filter:blur(16px)}
body.tclms-admin-shell .tclms-sidebar,body.tclms-student-shell .tclms-sidebar{border-color:var(--t-border)!important}
body.tclms-admin-shell .tclms-icon-btn,body.tclms-student-shell .tclms-icon-btn{color:var(--t-text)!important;background:var(--t-surface-2)!important;border:1px solid var(--t-border)!important}
body.tclms-admin-shell .tclms-icon-btn:hover,body.tclms-student-shell .tclms-icon-btn:hover{border-color:var(--t-primary)!important;color:var(--t-primary)!important;transform:translateY(-1px)}
/* Public legacy components also inherit the live front palette. */
body.tclms-public-shell :where(.card,.panel,.box,.modal-content,.dropdown-menu,.list-group-item){background:var(--front-surface)!important;color:var(--front-text)!important;border-color:var(--front-border)!important}
body.tclms-public-shell :where(input:not([type=checkbox]):not([type=radio]),select,textarea,.form-control){background:var(--front-surface-2)!important;color:var(--front-text)!important;border-color:var(--front-border)!important}
/* directional safety */
html[dir=rtl] .p80-dir-auto{text-align:right}html[dir=ltr] .p80-dir-auto{text-align:left}
/* Chart containers and canvas inherit THEMS geometry. */
body.tclms-admin-shell :where(.chart-card,.tclms-chart-card,.dashboard-chart,.analytics-card){background:var(--t-surface)!important;border-color:var(--t-border)!important;border-radius:var(--t-radius)!important;box-shadow:var(--t-card-shadow-effective)!important}
body.tclms-admin-shell canvas{font-family:var(--tclms-font-body)!important}
@media(max-width:767px){body.tclms-admin-shell :where(.table-responsive){border-radius:var(--t-radius);border:1px solid var(--t-border)}body.tclms-admin-shell :where(.table,table){min-width:680px}}

/* PATCH-26M2 component bridge — legacy/internal pages inherit THEMS consistently */
body.tclms-admin-shell :where(.btn,.button,button:not(.tclms-nav-toggle):not(.tclms-icon-btn)),body.tclms-student-shell :where(.btn,.button){border-radius:var(--t-button-radius,10px);min-height:var(--t-control-height,40px);font-family:var(--tclms-font-body);font-weight:600;transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease}
body.tclms-admin-shell :where(.btn,.button,button:not(.tclms-nav-toggle):not(.tclms-icon-btn)):hover{transform:translateY(var(--t-hover-y,-2px))}
body.tclms-admin-shell :where(.table tbody tr,table tbody tr){transition:background .16s ease}.tclms-admin-shell :where(.table tbody tr:hover,table tbody tr:hover){background:color-mix(in srgb,var(--t-primary) 6%,transparent)!important}
body.tclms-admin-shell :where(.badge,.label,.status-badge,.chip){border-radius:999px;font-family:var(--tclms-font-body)}
body.tclms-admin-shell :where(.pagination){gap:6px;flex-wrap:wrap}body.tclms-admin-shell :where(.pagination .page-link,.pagination a,.pagination span){min-width:var(--t-pagination-size,34px);height:var(--t-pagination-size,34px);display:inline-grid;place-items:center;border-radius:9px!important;background:var(--t-surface)!important;color:var(--t-text)!important;border-color:var(--t-border)!important}
body.tclms-admin-shell :where(.pagination .active .page-link,.pagination .active>span){background:var(--t-primary)!important;color:#fff!important;border-color:var(--t-primary)!important}
body.tclms-admin-shell :where(.modal-dialog){max-width:min(var(--t-modal-width,680px),calc(100vw - 28px))}body.tclms-admin-shell :where(.dropdown-menu){min-width:var(--t-dropdown-width,220px);box-shadow:var(--t-card-shadow-effective);border-radius:var(--t-radius)}
body.tclms-admin-shell :where(.nav-link,.sidebar-link,.menu-link){font-size:var(--t-nav-label-size,13px)}body.tclms-admin-shell :where(.nav-link i,.sidebar-link i,.menu-link i){font-size:var(--t-nav-icon-size,18px)}
body.tclms-admin-shell :where(.chart-card,.tclms-chart-card,.dashboard-chart,.analytics-card){min-height:min(var(--t-chart-height,300px),70vh);overflow:hidden}body.tclms-admin-shell :where(.chart-card canvas,.tclms-chart-card canvas,.dashboard-chart canvas,.analytics-card canvas){max-height:var(--t-chart-height,300px)!important}
html[dir=rtl] body.tclms-admin-shell :where(input,textarea,select,.form-control,.form-select,.table,table,.card,.panel){text-align:right}html[dir=ltr] body.tclms-admin-shell :where(input,textarea,select,.form-control,.form-select,.table,table,.card,.panel){text-align:left}
html[dir=ltr] body.tclms-admin-shell .tclms-sidebar{direction:ltr}html[dir=rtl] body.tclms-admin-shell .tclms-sidebar{direction:rtl}
@media(max-width:767px){body.tclms-admin-shell :where(.modal-dialog){margin:12px auto}body.tclms-admin-shell :where(.card,.panel,.box,.widget){border-radius:min(var(--t-radius),14px)}}

/* PATCH-26M3 official TCA brand identity mode. Palette defaults are server-authoritative THEMS tokens. */
html[data-theme="identity"] body.tclms-admin-shell,
html[data-theme="identity"] body.tclms-student-shell,
html[data-theme="identity"] body.tclms-auth-shell{
 background:
  radial-gradient(circle at 10% 0%,color-mix(in srgb,var(--tca-brand-green,#5DBF6A) 10%,transparent),transparent 28rem),
  radial-gradient(circle at 88% 5%,color-mix(in srgb,var(--tca-brand-secondary,#1BA7B8) 14%,transparent),transparent 34rem),
  var(--t-bg)!important;
}
html[data-theme="identity"] .tclms-sidebar{box-shadow:0 0 0 1px color-mix(in srgb,var(--tca-brand-secondary,#1BA7B8) 18%,transparent),-14px 0 46px rgba(25,112,129,.14)}
html[data-theme="identity"] .tclms-sidebar :where(a,button){color:rgba(255,255,255,.88)!important}
html[data-theme="identity"] .tclms-sidebar :where(a.active,.active>button,.tclms-nav-group.open>button){background:linear-gradient(90deg,color-mix(in srgb,var(--tca-brand-primary,#138FC9) 42%,transparent),color-mix(in srgb,var(--tca-brand-accent,#23B7AA) 24%,transparent))!important;color:#fff!important;border-color:rgba(255,255,255,.18)!important}
html[data-theme="identity"] :where(.tclms-kpi-card,.card,.panel,.box,.widget){box-shadow:0 12px 34px rgba(70,112,129,.08)}
html[data-theme="identity"] :where(.btn-primary,.button-primary){background:linear-gradient(135deg,var(--tca-brand-primary,#138FC9),var(--tca-brand-accent,#23B7AA))!important;border-color:transparent!important}
html[data-theme="identity"] :where(a:not(.tclms-brand):not(.btn)){text-decoration-color:color-mix(in srgb,var(--tca-brand-secondary,#1BA7B8) 35%,transparent)}
body.tclms-public-shell[data-front-theme="identity"]{
 background:
  radial-gradient(circle at 85% 0%,color-mix(in srgb,var(--tca-brand-secondary,#1BA7B8) 11%,transparent),transparent 38rem),
  var(--front-bg)!important;
}
body.tclms-public-shell[data-front-theme="identity"] :where(.tclms-front-btn.primary,.btn-primary){background:linear-gradient(135deg,var(--tca-brand-primary,#138FC9),var(--tca-brand-accent,#23B7AA))!important;border-color:transparent!important;color:#fff!important}
body.tclms-public-shell[data-front-theme="identity"] :where(.tclms-section-eyebrow,.eyebrow){color:var(--tca-brand-accent,#23B7AA)!important}
/* Three-state mode selector can be used in any shell. */
.tclms-mode-switch{display:inline-flex;align-items:center;gap:4px;padding:4px;border:1px solid var(--t-border,var(--front-border,#dbe7eb));border-radius:999px;background:var(--t-surface,var(--front-surface,#fff))}
.tclms-mode-switch [data-tclms-mode-option]{border:0;background:transparent;color:var(--t-muted,var(--front-muted,#66838E));border-radius:999px;padding:7px 10px;font:600 12px/1 var(--tclms-font-body,Cairo,Tahoma,sans-serif);cursor:pointer}
.tclms-mode-switch [data-tclms-mode-option].active{background:var(--t-primary,var(--front-primary,#138FC9));color:#fff}


/* PATCH-26M3 v1.0.1 — frontend typography authority bridge.
   Loaded after legacy/public styles so the THEMS public font wins everywhere.
   FontAwesome/Icofont/SVG glyphs and explicit opt-out nodes are preserved. */
html body.tclms-public-shell{
  font-family:var(--tclms-front-font-body,Cairo,Tahoma,Arial,sans-serif)!important;
  font-size:var(--tclms-front-font-size,16px);
  line-height:var(--tclms-front-line-height,1.78);
}
html body.tclms-public-shell :where(*:not(i):not(svg):not(path):not([data-tclms-preserve-font]):not(.tclms-preserve-font):not([class^="fa"]):not([class*=" fa-"]):not([class^="icofont-"]):not([class*=" icofont-"])){
  font-family:var(--tclms-front-font-body,Cairo,Tahoma,Arial,sans-serif)!important;
}
html body.tclms-public-shell :is(h1,h2,h3,h4,h5,h6),
html body.tclms-public-shell :where(.tclms-heading,.section-title,.hero-title,[data-tclms-heading]){
  font-family:var(--tclms-front-font-heading,var(--tclms-front-font-body,Cairo,Tahoma,Arial,sans-serif))!important;
  font-weight:var(--front-heading-weight,700);
}
html body.tclms-public-shell :where(button,input,select,textarea,option,optgroup){font:inherit}


/* PATCH-26M4 — final public typography bridge.
   Applies THEMS font tokens after legacy/component CSS, including form controls. */
html body.tclms-public-shell :where(a,button,input,select,textarea,option,optgroup,label,small,strong,b,em,span,p,li,td,th,blockquote){
  font-family:var(--tclms-front-font-body,Cairo,Tahoma,Arial,sans-serif)!important;
}
html body.tclms-public-shell :where(.p80-heading h1,.p80-heading h2,.p80-heading h3,.tclms-page-banner h1,.p80-card-body h3,.p80-person-card h3){
  font-family:var(--tclms-front-font-heading,var(--tclms-front-font-body,Cairo,Tahoma,Arial,sans-serif))!important;
}
