/* TL ICON SYSTEM v1.0 — single reusable icon family
   Thin-line SVG, 1.5px stroke, module-aware colour, context sizing. */
:root{
  --tl-icon-stroke:1.5;
  --tl-icon-inline:18px; --tl-icon-button:18px; --tl-icon-sidebar:20px;
  --tl-icon-page:22px; --tl-icon-section:32px; --tl-icon-card:58px;
  --tl-icon-neutral:#64748B; --tl-icon-primary:#2563EB;
  --tl-icon-success:#16A34A; --tl-icon-warning:#D97706; --tl-icon-danger:#DC2626; --tl-icon-info:#0284C7;
}
.tl-i{--tl-icon-mask:none;display:inline-block;width:var(--tl-icon-inline);height:var(--tl-icon-inline);min-width:var(--tl-icon-inline);flex:0 0 var(--tl-icon-inline);vertical-align:-.16em;background-color:currentColor;-webkit-mask-image:var(--tl-icon-mask);mask-image:var(--tl-icon-mask);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;}

.tl-i-modules-add{--tl-icon-mask:url("/static/images/tl-ui/line/modules/add.svg");}
.tl-i-modules-audit{--tl-icon-mask:url("/static/images/tl-ui/line/modules/audit.svg");}
.tl-i-modules-backup{--tl-icon-mask:url("/static/images/tl-ui/line/modules/backup.svg");}
.tl-i-modules-categories{--tl-icon-mask:url("/static/images/tl-ui/line/modules/categories.svg");}
.tl-i-modules-content-review{--tl-icon-mask:url("/static/images/tl-ui/line/modules/content-review.svg");}
.tl-i-modules-dashboard{--tl-icon-mask:url("/static/images/tl-ui/line/modules/dashboard.svg");}
.tl-i-modules-edit{--tl-icon-mask:url("/static/images/tl-ui/line/modules/edit.svg");}
.tl-i-modules-help{--tl-icon-mask:url("/static/images/tl-ui/line/modules/help.svg");}
.tl-i-modules-knowledge{--tl-icon-mask:url("/static/images/tl-ui/line/modules/knowledge.svg");}
.tl-i-modules-learning-resources{--tl-icon-mask:url("/static/images/tl-ui/line/modules/learning-resources.svg");}
.tl-i-modules-media{--tl-icon-mask:url("/static/images/tl-ui/line/modules/media.svg");}
.tl-i-modules-news{--tl-icon-mask:url("/static/images/tl-ui/line/modules/news.svg");}
.tl-i-modules-overview{--tl-icon-mask:url("/static/images/tl-ui/line/modules/overview.svg");}
.tl-i-modules-projects{--tl-icon-mask:url("/static/images/tl-ui/line/modules/projects.svg");}
.tl-i-modules-publications{--tl-icon-mask:url("/static/images/tl-ui/line/modules/publications.svg");}
.tl-i-modules-reports{--tl-icon-mask:url("/static/images/tl-ui/line/modules/reports.svg");}
.tl-i-modules-research{--tl-icon-mask:url("/static/images/tl-ui/line/modules/research.svg");}
.tl-i-modules-roles{--tl-icon-mask:url("/static/images/tl-ui/line/modules/roles.svg");}
.tl-i-modules-system{--tl-icon-mask:url("/static/images/tl-ui/line/modules/system.svg");}
.tl-i-modules-tags{--tl-icon-mask:url("/static/images/tl-ui/line/modules/tags.svg");}
.tl-i-modules-teaching{--tl-icon-mask:url("/static/images/tl-ui/line/modules/teaching.svg");}
.tl-i-modules-trash{--tl-icon-mask:url("/static/images/tl-ui/line/modules/trash.svg");}
.tl-i-modules-users{--tl-icon-mask:url("/static/images/tl-ui/line/modules/users.svg");}
.tl-i-utility-archive{--tl-icon-mask:url("/static/images/tl-ui/line/utility/archive.svg");}
.tl-i-utility-arrow-left{--tl-icon-mask:url("/static/images/tl-ui/line/utility/arrow-left.svg");}
.tl-i-utility-arrow-right{--tl-icon-mask:url("/static/images/tl-ui/line/utility/arrow-right.svg");}
.tl-i-utility-bookmark{--tl-icon-mask:url("/static/images/tl-ui/line/utility/bookmark.svg");}
.tl-i-utility-box{--tl-icon-mask:url("/static/images/tl-ui/line/utility/box.svg");}
.tl-i-utility-calendar-plus{--tl-icon-mask:url("/static/images/tl-ui/line/utility/calendar-plus.svg");}
.tl-i-utility-calendar{--tl-icon-mask:url("/static/images/tl-ui/line/utility/calendar.svg");}
.tl-i-utility-cancel{--tl-icon-mask:url("/static/images/tl-ui/line/utility/cancel.svg");}
.tl-i-utility-check{--tl-icon-mask:url("/static/images/tl-ui/line/utility/check.svg");}
.tl-i-utility-chevron-left{--tl-icon-mask:url("/static/images/tl-ui/line/utility/chevron-left.svg");}
.tl-i-utility-chevron-right{--tl-icon-mask:url("/static/images/tl-ui/line/utility/chevron-right.svg");}
.tl-i-utility-clock{--tl-icon-mask:url("/static/images/tl-ui/line/utility/clock.svg");}
.tl-i-utility-close{--tl-icon-mask:url("/static/images/tl-ui/line/utility/close.svg");}
.tl-i-utility-copy{--tl-icon-mask:url("/static/images/tl-ui/line/utility/copy.svg");}
.tl-i-utility-database{--tl-icon-mask:url("/static/images/tl-ui/line/utility/database.svg");}
.tl-i-utility-delete{--tl-icon-mask:url("/static/images/tl-ui/line/utility/delete.svg");}
.tl-i-utility-download{--tl-icon-mask:url("/static/images/tl-ui/line/utility/download.svg");}
.tl-i-utility-envelope{--tl-icon-mask:url("/static/images/tl-ui/line/utility/envelope.svg");}
.tl-i-utility-error{--tl-icon-mask:url("/static/images/tl-ui/line/utility/error.svg");}
.tl-i-utility-external-link{--tl-icon-mask:url("/static/images/tl-ui/line/utility/external-link.svg");}
.tl-i-utility-filter{--tl-icon-mask:url("/static/images/tl-ui/line/utility/filter.svg");}
.tl-i-utility-folder{--tl-icon-mask:url("/static/images/tl-ui/line/utility/folder.svg");}
.tl-i-utility-globe{--tl-icon-mask:url("/static/images/tl-ui/line/utility/globe.svg");}
.tl-i-utility-grid{--tl-icon-mask:url("/static/images/tl-ui/line/utility/grid.svg");}
.tl-i-utility-home{--tl-icon-mask:url("/static/images/tl-ui/line/utility/home.svg");}
.tl-i-utility-inbox{--tl-icon-mask:url("/static/images/tl-ui/line/utility/inbox.svg");}
.tl-i-utility-info{--tl-icon-mask:url("/static/images/tl-ui/line/utility/info.svg");}
.tl-i-utility-link{--tl-icon-mask:url("/static/images/tl-ui/line/utility/link.svg");}
.tl-i-utility-lock{--tl-icon-mask:url("/static/images/tl-ui/line/utility/lock.svg");}
.tl-i-utility-login{--tl-icon-mask:url("/static/images/tl-ui/line/utility/login.svg");}
.tl-i-utility-logout{--tl-icon-mask:url("/static/images/tl-ui/line/utility/logout.svg");}
.tl-i-utility-menu{--tl-icon-mask:url("/static/images/tl-ui/line/utility/menu.svg");}
.tl-i-utility-more{--tl-icon-mask:url("/static/images/tl-ui/line/utility/more.svg");}
.tl-i-utility-notification{--tl-icon-mask:url("/static/images/tl-ui/line/utility/notification.svg");}
.tl-i-utility-person-plus{--tl-icon-mask:url("/static/images/tl-ui/line/utility/person-plus.svg");}
.tl-i-utility-play{--tl-icon-mask:url("/static/images/tl-ui/line/utility/play.svg");}
.tl-i-utility-plus{--tl-icon-mask:url("/static/images/tl-ui/line/utility/plus.svg");}
.tl-i-utility-print{--tl-icon-mask:url("/static/images/tl-ui/line/utility/print.svg");}
.tl-i-utility-profile{--tl-icon-mask:url("/static/images/tl-ui/line/utility/profile.svg");}
.tl-i-utility-refresh{--tl-icon-mask:url("/static/images/tl-ui/line/utility/refresh.svg");}
.tl-i-utility-search{--tl-icon-mask:url("/static/images/tl-ui/line/utility/search.svg");}
.tl-i-utility-send{--tl-icon-mask:url("/static/images/tl-ui/line/utility/send.svg");}
.tl-i-utility-server{--tl-icon-mask:url("/static/images/tl-ui/line/utility/server.svg");}
.tl-i-utility-share{--tl-icon-mask:url("/static/images/tl-ui/line/utility/share.svg");}
.tl-i-utility-shield{--tl-icon-mask:url("/static/images/tl-ui/line/utility/shield.svg");}
.tl-i-utility-star{--tl-icon-mask:url("/static/images/tl-ui/line/utility/star.svg");}
.tl-i-utility-success{--tl-icon-mask:url("/static/images/tl-ui/line/utility/success.svg");}
.tl-i-utility-unlock{--tl-icon-mask:url("/static/images/tl-ui/line/utility/unlock.svg");}
.tl-i-utility-upload{--tl-icon-mask:url("/static/images/tl-ui/line/utility/upload.svg");}
.tl-i-utility-view{--tl-icon-mask:url("/static/images/tl-ui/line/utility/view.svg");}
.tl-i-utility-warning{--tl-icon-mask:url("/static/images/tl-ui/line/utility/warning.svg");}

/* Context sizes: use these everywhere instead of page-specific px values. */
.tl-icon-inline,.tl-i.tl-icon-inline{width:var(--tl-icon-inline)!important;height:var(--tl-icon-inline)!important;min-width:var(--tl-icon-inline)!important;}
.tl-icon-button,.btn .tl-i,.tl-button-icon,.tl-quick-action-icon{width:var(--tl-icon-button)!important;height:var(--tl-icon-button)!important;min-width:var(--tl-icon-button)!important;}
.tl-icon-sidebar,.tl-sidebar-icon{width:var(--tl-icon-sidebar)!important;height:var(--tl-icon-sidebar)!important;min-width:var(--tl-icon-sidebar)!important;object-fit:contain;}
.tl-icon-page{width:var(--tl-icon-page)!important;height:var(--tl-icon-page)!important;min-width:var(--tl-icon-page)!important;}
.tl-icon-section,.tl-overview-item-icon,.tl-overview-title-icon{width:var(--tl-icon-section)!important;height:var(--tl-icon-section)!important;min-width:var(--tl-icon-section)!important;object-fit:contain;}
.tl-icon-card,.tl-card-icon,.tl-primary-card-icon{width:var(--tl-icon-card)!important;height:var(--tl-icon-card)!important;min-width:var(--tl-icon-card)!important;object-fit:contain;}
.card-icon{display:flex!important;align-items:center!important;justify-content:center!important;margin-left:auto!important;margin-right:auto!important;background:transparent!important;}
.tl-icon-neutral{color:var(--tl-icon-neutral)!important}.tl-icon-primary{color:var(--tl-icon-primary)!important}.tl-icon-success{color:var(--tl-icon-success)!important}.tl-icon-warning{color:var(--tl-icon-warning)!important}.tl-icon-danger{color:var(--tl-icon-danger)!important}.tl-icon-info{color:var(--tl-icon-info)!important}

.tl-module-dashboard{color:#2563EB!important;}
.tl-module-content-review{color:#0EA5E9!important;}
.tl-module-publications{color:#6366F1!important;}
.tl-module-research{color:#10B981!important;}
.tl-module-teaching{color:#F59E0B!important;}
.tl-module-projects{color:#3B82F6!important;}
.tl-module-knowledge{color:#D97706!important;}
.tl-module-learning-resources{color:#7C3AED!important;}
.tl-module-media{color:#0EA5E9!important;}
.tl-module-news{color:#EF4444!important;}
.tl-module-categories{color:#8B5CF6!important;}
.tl-module-tags{color:#EC4899!important;}
.tl-module-users{color:#2563EB!important;}
.tl-module-roles{color:#7C3AED!important;}
.tl-module-audit{color:#0F766E!important;}
.tl-module-reports{color:#0284C7!important;}
.tl-module-trash{color:#64748B!important;}
.tl-module-backup{color:#4F46E5!important;}
.tl-module-system{color:#475569!important;}
.tl-module-help{color:#2563EB!important;}
.tl-module-add{color:#2563EB!important;}
.tl-module-edit{color:#2563EB!important;}
.tl-module-overview{color:#2563EB!important;}
