/* ============================================================
   TL DESIGN SYSTEM v10.9.9 — UNIFIED ALL-PAGE VISUAL BASELINE
   One visual language for Admin / Member / Public / Auth.
   Keeps TL Master thin-line icon family from v10.9.8.
   ============================================================ */
:root{
  --tl1099-topbar:58px;
  --tl1099-sidebar:254px;
  --tl1099-page-x:28px;
  --tl1099-page-y:24px;
  --tl1099-bg:#f6f8fb;
  --tl1099-surface:#fff;
  --tl1099-border:#e2e8f0;
  --tl1099-text:#0f172a;
  --tl1099-muted:#64748b;
  --tl1099-primary:#1677ff;
  --tl1099-sidebar-bg:#1e293b;
  --tl1099-sidebar-text:#dbe4ef;
  --tl1099-radius:10px;
  --tl1099-control-radius:7px;
  --tl1099-card-pad:16px;
  --tl1099-gap:12px;
}

/* --- global rhythm / type --- */
html,body{font-size:10pt!important;}
body{background:var(--tl1099-bg);color:var(--tl1099-text);}
body,button,input,select,textarea,table{font-weight:400!important;}
h1,.page-title,.admin-page-title,.member-page-title,.app-main h1{
  font-size:18pt!important;line-height:1.2!important;font-weight:600!important;
  margin:0 0 3px!important;letter-spacing:-.01em;
}
h2,.section-title,.app-main h2,.admin-panel h2{font-size:13pt!important;line-height:1.25!important;font-weight:600!important;}
h3,h4,h5,h6,.card-title{font-weight:500!important;}
strong,b,.fw-bold{font-weight:600!important;}
.text-secondary,.small,small,.form-text{color:var(--tl1099-muted)!important;}

/* --- one topbar height --- */
.app-navbar,.navbar.fixed-top{height:var(--tl1099-topbar)!important;min-height:var(--tl1099-topbar)!important;background:#111827!important;box-shadow:none!important;}
.admin-layout{padding-top:var(--tl1099-topbar)!important;}
.app-navbar-logo{width:34px!important;height:34px!important;border-radius:8px!important;}

/* --- one sidebar system --- */
.app-sidebar,.admin-sidebar{
  top:var(--tl1099-topbar)!important;bottom:0!important;width:var(--tl1099-sidebar)!important;
  padding:12px 8px!important;background:var(--tl1099-sidebar-bg)!important;border-right:1px solid rgba(255,255,255,.06)!important;
}
.app-sidebar .nav,.admin-sidebar .nav{gap:2px!important;}
.app-sidebar .nav-link,.admin-sidebar .nav-link{
  min-height:38px!important;display:flex!important;align-items:center!important;gap:10px!important;
  padding:8px 12px!important;border-radius:7px!important;color:var(--tl1099-sidebar-text)!important;
  font-size:10pt!important;font-weight:400!important;transform:none!important;box-shadow:none!important;
}
.app-sidebar .nav-link:hover,.admin-sidebar .nav-link:hover{background:rgba(255,255,255,.07)!important;color:#fff!important;}
.app-sidebar .nav-link.active,.admin-sidebar .nav-link.active{
  background:var(--tl1099-primary)!important;color:#fff!important;font-weight:600!important;box-shadow:none!important;
}
.app-sidebar .tl-i,.admin-sidebar .tl-sidebar-icon{width:20px!important;height:20px!important;min-width:20px!important;flex:0 0 20px!important;}
.app-sidebar-footer,.admin-sidebar-footer{left:12px!important;right:12px!important;bottom:12px!important;padding:0!important;margin-top:18px!important;color:#94a3b8!important;}

/* Member sidebar module colours when not active */
.app-sidebar .nav-link:not(.active) .tl-module-publications{color:#8b5cf6!important}
.app-sidebar .nav-link:not(.active) .tl-module-teaching{color:#f59e0b!important}
.app-sidebar .nav-link:not(.active) .tl-module-projects{color:#3b82f6!important}
.app-sidebar .nav-link:not(.active) .tl-module-research{color:#10b981!important}
.app-sidebar .nav-link:not(.active) .tl-module-knowledge{color:#fbbf24!important}
.app-sidebar .nav-link:not(.active) .tl-module-news{color:#ef4444!important}
.app-sidebar .nav-link:not(.active) .tl-module-media{color:#0ea5e9!important}
.app-sidebar .nav-link.active .tl-i{color:#fff!important}

/* --- same page canvas for Admin + Member --- */
.admin-main-content,.app-main{
  margin-left:var(--tl1099-sidebar)!important;
  min-height:calc(100vh - var(--tl1099-topbar))!important;
  padding:calc(var(--tl1099-topbar) + var(--tl1099-page-y)) var(--tl1099-page-x) var(--tl1099-page-y)!important;
  background:var(--tl1099-bg)!important;
}
.admin-main-content{padding-top:var(--tl1099-page-y)!important;}
.app-main>.container-fluid,.admin-main-content>.container-fluid{padding:0!important;max-width:none!important;}
.app-main>.container-fluid>.container-fluid,.app-main>.container-fluid>.container{padding:0!important;max-width:none!important;margin:0!important;}
.app-main .py-4{padding-top:0!important;padding-bottom:0!important;}

/* headers identical everywhere */
.admin-page-header,.app-main .d-flex.flex-wrap.justify-content-between.align-items-center.gap-3.mb-4{
  margin-bottom:16px!important;gap:12px!important;
}
.admin-page-subtitle,.app-main h1+ .text-secondary,.app-main h1~p.text-secondary{margin-top:2px!important;margin-bottom:0!important;}

/* cards / panels / filters */
.dashboard-card,.admin-panel,.admin-form-card,.app-main .card,.admin-main-content .card,.modal-content{
  background:var(--tl1099-surface)!important;border:1px solid var(--tl1099-border)!important;
  border-radius:var(--tl1099-radius)!important;box-shadow:none!important;
}
.dashboard-card:hover{transform:none!important;box-shadow:none!important;}
.dashboard-card.p-4,.admin-panel-body,.admin-panel-header{padding:var(--tl1099-card-pad)!important;}
.dashboard-card.p-3{padding:14px!important;}
.app-main .card-body{padding:14px!important;}
.row.g-4,.g-4{--bs-gutter-x:12px!important;--bs-gutter-y:12px!important;}
.row.g-3,.g-3{--bs-gutter-x:10px!important;--bs-gutter-y:10px!important;}
.mb-4{margin-bottom:16px!important}.mb-3{margin-bottom:12px!important}.mt-4{margin-top:16px!important}

/* controls/buttons one size */
.btn,.form-control,.form-select{min-height:34px!important;border-radius:var(--tl1099-control-radius)!important;font-size:10pt!important;}
.btn{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:6px!important;padding:6px 12px!important;font-weight:400!important;}
.btn-primary{font-weight:600!important;}
.btn-sm{min-height:30px!important;padding:4px 9px!important;font-size:9.5pt!important;}
.form-control,.form-select{padding-top:6px!important;padding-bottom:6px!important;border-color:var(--tl1099-border)!important;}
.form-label,label{font-weight:400!important;margin-bottom:4px!important;}

/* tables / lists */
.table{font-size:10pt!important;background:#fff!important;}
.table>thead>tr>th{padding:9px 10px!important;background:#f8fafc!important;font-weight:600!important;color:#334155!important;}
.table>tbody>tr>td{padding:9px 10px!important;vertical-align:middle!important;}
.list-group-item{padding-top:9px!important;padding-bottom:9px!important;border-color:var(--tl1099-border)!important;}
.badge{font-weight:600!important;}

/* consistent icon sizes across contexts */
.tl-primary-card-icon,.card-icon>.tl-i,.dashboard-card>.card-icon .tl-i{width:50px!important;height:50px!important;min-width:50px!important;}
.card-icon{width:56px!important;height:56px!important;margin-bottom:10px!important;background:transparent!important;border-radius:0!important;}
.tl-overview-item-icon,.tl-overview-title-icon{width:33px!important;height:33px!important;min-width:33px!important;}
.btn .tl-i,a.btn .tl-i,.tl-quick-action-icon,.tl-button-icon{width:18px!important;height:18px!important;min-width:18px!important;}

/* member dashboard cards: match Admin visual hierarchy */
.app-main .row.g-4.mb-4 .dashboard-card{min-height:0!important;}
.app-main .row.g-4.mb-4 .dashboard-card .card-icon{margin-left:0!important;}
.app-main .row.g-4.mb-4 .dashboard-card p{margin-bottom:5px!important;}

/* notifications empty panel should not be excessively tall */
.app-main .dashboard-card>.p-5.text-center{padding:38px 20px!important;}
.app-main .dashboard-card.overflow-hidden:has(.p-5.text-center){min-height:150px!important;}

/* help uses same full-width page grid */
.app-main .container>.row.g-4{margin-top:12px!important;}
.app-main .container>.row.g-4>.col-lg-6>.dashboard-card{min-height:205px!important;}

/* media cards */
.app-main article.card{overflow:hidden!important;}
.app-main article.card .card-img-top{height:160px!important;background:#f8fafc!important;}

/* --- Public site: same typography/radius/spacing language --- */
.public-main{background:#fff!important;min-height:calc(100vh - 260px)!important;}
.site-header .navbar{min-height:64px!important;}
.site-header{box-shadow:none!important;border-bottom:1px solid var(--tl1099-border)!important;}
.site-header .container,.public-main .container,.site-footer .container{max-width:1220px!important;}
.site-header .nav-link{font-size:10pt!important;font-weight:400!important;padding:7px 8px!important;border-radius:6px!important;}
.site-header .nav-link .tl-i{width:16px!important;height:16px!important;min-width:16px!important;vertical-align:-.12em!important;}
.page-hero{padding:38px 0 34px!important;border-bottom:1px solid var(--tl1099-border)!important;}
.page-hero .page-title,.page-hero h1{font-size:18pt!important;font-weight:600!important;margin-bottom:4px!important;}
.page-hero p{margin:0!important;font-size:10pt!important;}
.public-main .card,.public-main [class*="-card"]{border-radius:var(--tl1099-radius)!important;box-shadow:none!important;}

/* mobile */
@media(max-width:991.98px){
  .admin-main-content,.app-main{margin-left:0!important;padding:calc(var(--tl1099-topbar) + 16px) 14px 18px!important;}
  .admin-main-content{padding-top:16px!important;}
  .site-header .navbar{min-height:58px!important;}
}

/* ============================================================
   v10.9.10 visual tuning — approved dashboard proportions
   - Admin primary module icons +5pt (~7px)
   - Overview module icons -3pt (~4px)
   - Member primary module cards centered, icons +3pt (~4px)
   - Account dropdown utility icons use contextual colour
   ============================================================ */

/* Admin dashboard: primary module icons larger */
.admin-main-content .tl-center-card .card-icon{
  width:64px!important;
  height:64px!important;
  margin:0 auto 10px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.admin-main-content .tl-center-card .tl-card-icon,
.admin-main-content .tl-center-card .tl-primary-card-icon{
  width:57px!important;
  height:57px!important;
  min-width:57px!important;
}

/* Admin dashboard: Content Overview icons a little smaller/lighter */
.admin-main-content .tl-overview-item-icon{
  width:29px!important;
  height:29px!important;
  min-width:29px!important;
}
.admin-main-content .tl-overview-title-icon{
  width:29px!important;
  height:29px!important;
  min-width:29px!important;
}

/* Member dashboard: module cards use the same centered hierarchy as Admin */
.tl-member-module-card{
  text-align:center!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:flex-start!important;
}
.tl-member-module-card .card-icon{
  width:60px!important;
  height:60px!important;
  margin:0 auto 8px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:transparent!important;
}
.tl-member-module-card .tl-primary-card-icon{
  width:54px!important;
  height:54px!important;
  min-width:54px!important;
}
.tl-member-module-card p,
.tl-member-module-card h2,
.tl-member-module-card small{
  width:100%!important;
  text-align:center!important;
}

/* Account dropdown — contextual TL colours, still one thin-line family */
.dropdown-menu .tl-i-utility-profile{color:#10b981!important;}
.dropdown-menu .tl-i-utility-grid{color:#3b82f6!important;}
.dropdown-menu .tl-i-utility-folder{color:#f59e0b!important;}
.dropdown-menu .tl-i-modules-media{color:#0ea5e9!important;}
.dropdown-menu .tl-i-utility-notification{color:#ef4444!important;}
.dropdown-menu .tl-i-modules-help{color:#3b82f6!important;}
.dropdown-menu .tl-i-modules-dashboard{color:#8b5cf6!important;}
.dropdown-menu .tl-i-utility-external-link{color:#2563eb!important;}
.dropdown-menu .tl-i-utility-logout{color:#ef4444!important;}
.dropdown-menu .dropdown-item.text-danger .tl-i{color:#ef4444!important;}
.dropdown-menu .tl-i{
  width:18px!important;
  height:18px!important;
  min-width:18px!important;
  vertical-align:-.15em!important;
}

/* ============================================================
   v10.9.11 Dashboard readability + icon centering
   Requested 2026-09-01:
   - Member dashboard typography + ~1–2pt
   - Member module icons centered and slightly larger
   - Admin dashboard typography/icons + ~1–2pt
   ============================================================ */

/* MEMBER DASHBOARD — increase readable scale without over-bolding */
.tl-member-dashboard-page-v10911 {
  font-size:15px!important;
  line-height:1.45!important;
}
.tl-member-dashboard-page-v10911 h1.h3 {
  font-size:26px!important;
  line-height:1.2!important;
  font-weight:600!important;
}
.tl-member-dashboard-page-v10911 h2,
.tl-member-dashboard-page-v10911 .h4,
.tl-member-dashboard-page-v10911 .h5,
.tl-member-dashboard-page-v10911 .h6 {
  font-size:17px!important;
  font-weight:600!important;
}
.tl-member-dashboard-page-v10911 p,
.tl-member-dashboard-page-v10911 small,
.tl-member-dashboard-page-v10911 .small,
.tl-member-dashboard-page-v10911 .text-secondary,
.tl-member-dashboard-page-v10911 .btn,
.tl-member-dashboard-page-v10911 td,
.tl-member-dashboard-page-v10911 th {
  font-size:15px!important;
}
.tl-member-dashboard-page-v10911 .fw-bold,
.tl-member-dashboard-page-v10911 strong {
  font-weight:600!important;
}

/* Member primary module cards: true centered visual axis */
.tl-member-module-card-v10911 {
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:flex-start!important;
  text-align:center!important;
}
.tl-member-module-card-v10911 .card-icon {
  width:64px!important;
  height:64px!important;
  margin:0 auto 10px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  align-self:center!important;
  background:transparent!important;
}
.tl-member-module-card-v10911 .card-icon .tl-i,
.tl-member-module-card-v10911 .card-icon img {
  width:58px!important;
  height:58px!important;
  min-width:58px!important;
  display:block!important;
  margin:0 auto!important;
}
.tl-member-module-card-v10911 > p,
.tl-member-module-card-v10911 > h2,
.tl-member-module-card-v10911 > small {
  width:100%!important;
  text-align:center!important;
}

/* ADMIN DASHBOARD — subtle +1–2pt lift to text and icons */
.tl-admin-dashboard-header-v10911 h1.h3 {
  font-size:26px!important;
  line-height:1.2!important;
  font-weight:600!important;
}
.tl-admin-dashboard-header-v10911 p,
.tl-admin-dashboard-header-v10911 .btn {
  font-size:15px!important;
}
.tl-admin-dashboard-header-v10911 strong {font-weight:600!important;}

.tl-admin-dashboard-page-v10911 {
  font-size:15px!important;
  line-height:1.45!important;
}
.tl-admin-dashboard-page-v10911 h2,
.tl-admin-dashboard-page-v10911 .h5 {
  font-size:18px!important;
  font-weight:600!important;
}
.tl-admin-dashboard-page-v10911 p,
.tl-admin-dashboard-page-v10911 small,
.tl-admin-dashboard-page-v10911 .small,
.tl-admin-dashboard-page-v10911 .text-secondary,
.tl-admin-dashboard-page-v10911 .btn {
  font-size:15px!important;
}
.tl-admin-dashboard-page-v10911 .fw-bold,
.tl-admin-dashboard-page-v10911 strong {font-weight:600!important;}

/* Admin primary module icons + ~2pt */
.tl-admin-dashboard-page-v10911 .tl-center-card .card-icon {
  width:68px!important;
  height:68px!important;
}
.tl-admin-dashboard-page-v10911 .tl-center-card .tl-card-icon,
.tl-admin-dashboard-page-v10911 .tl-center-card .tl-primary-card-icon {
  width:60px!important;
  height:60px!important;
  min-width:60px!important;
}
/* Overview + action icons + ~1–2pt */
.tl-admin-dashboard-page-v10911 .tl-overview-item-icon,
.tl-admin-dashboard-page-v10911 .tl-overview-title-icon {
  width:32px!important;
  height:32px!important;
  min-width:32px!important;
}
.tl-admin-dashboard-page-v10911 .tl-quick-action-icon,
.tl-admin-dashboard-page-v10911 .tl-button-icon {
  width:20px!important;
  height:20px!important;
  min-width:20px!important;
}
