/* TimeGuard shared enterprise design system. */
/* Extracted from the approved Super Admin dashboard presentation. */

/* =========================================================
   TIMEGUARD ENTERPRISE DESIGN SYSTEM
   Shared visual primitives for Super Admin modules
   ========================================================= */

:root {
    --tg-color-page: #f2f6fc;
    --tg-color-surface: #ffffff;
    --tg-color-primary: #05579e;
    --tg-color-navy: #17364d;
    --tg-color-text: #334e68;
    --tg-color-muted: #8190a2;
    --tg-color-border: #d8e4f0;
    --tg-color-success: #18875b;
    --tg-color-warning: #ce850e;
    --tg-color-danger: #b93240;
    --tg-color-info: #1976b9;
    --tg-color-primary-hover: #04477f;
    --tg-color-primary-soft: #eaf3fb;
    --tg-color-surface-muted: #f7f9fc;
    --tg-color-text-strong: #17364d;
    --tg-color-white: #ffffff;
    --tg-color-overlay: rgba(15, 35, 52, 0.56);
    --tg-color-focus: #2684c7;
    --tg-blue: var(--tg-color-primary);
    --tg-navy: var(--tg-color-navy);
    --tg-green: var(--tg-color-success);
    --tg-amber: var(--tg-color-warning);
    --tg-red: var(--tg-color-danger);
    --tg-border: #e6edf3;
    --tg-space-xs: 0.25rem;
    --tg-space-sm: 0.5rem;
    --tg-space-md: 0.9rem;
    --tg-space-lg: 1rem;
    --tg-space-xl: 1.5rem;
    --tg-space-2xl: 2rem;
    --tg-radius-sm: 7px;
    --tg-radius-card: 10px;
    --tg-radius-pill: 999px;
    --tg-border-default: 1px solid var(--tg-color-border);
    --tg-shadow-card: 0 1px 3px rgba(26, 53, 88, 0.07), 0 4px 12px rgba(26, 53, 88, 0.06);
    --tg-shadow-raised: 0 8px 24px rgba(26, 53, 88, 0.12);
    --tg-shadow-modal: 0 18px 48px rgba(15, 35, 52, 0.2);
    --tg-focus-ring: 0 0 0 3px rgba(38, 132, 199, 0.22);
    --tg-transition-fast: 150ms ease;
    --tg-transition-base: 220ms ease;
    --tg-font-family: "DM Sans", "Segoe UI", Arial, sans-serif;
    --tg-font-size-xs: 0.68rem;
    --tg-font-size-sm: 0.76rem;
    --tg-font-size-label: 0.68rem;
    --tg-font-size-body: 0.78rem;
    --tg-font-size-title: 1.2rem;
    --tg-line-height: 1.5;
    --tg-page-bg: #f2f6fc;
    --tg-surface: #ffffff;
    --tg-surface-secondary: #f7f9fc;
    --tg-surface-elevated: #ffffff;
    --tg-text-primary: #17364d;
    --tg-text-secondary: #334e68;
    --tg-text-muted: #8190a2;
    --tg-border: #d8e4f0;
    --tg-border-soft: #e6edf3;
    --tg-input-bg: #ffffff;
    --tg-input-text: #334e68;
    --tg-table-header-bg: #f7f9fc;
    --tg-table-row-hover: #f5f9fd;
    --tg-modal-bg: #ffffff;
    --tg-topbar-bg: #ffffff;
    --tg-sidebar-bg: #0a1a2f;
    --tg-divider: rgba(52, 78, 104, 0.12);
    --tg-hover-bg: #eaf3fb;
    --tg-active-bg: #e4f0fa;
    --tg-shadow: 0 1px 3px rgba(26, 53, 88, 0.07), 0 4px 12px rgba(26, 53, 88, 0.06);
    --tg-color-page: var(--tg-page-bg);
    --tg-color-surface: var(--tg-surface);
    --tg-color-surface-muted: var(--tg-surface-secondary);
    --tg-color-text-strong: var(--tg-text-primary);
    --tg-color-text: var(--tg-text-secondary);
    --tg-color-muted: var(--tg-text-muted);
    --tg-color-border: var(--tg-border);
    --tg-border-default: 1px solid var(--tg-border);
    --tg-shadow-card: var(--tg-shadow);
}

/* =========================================================
   AUTHENTICATED INTERFACE THEME SURFACES
   Root authority: html[data-tg-theme="light|dark"]
   ========================================================= */
html[data-tg-theme] #main-wrapper,
html[data-tg-theme] #main-wrapper .page-wrapper,
html[data-tg-theme] #main-wrapper .page-breadcrumb,
html[data-tg-theme] #main-wrapper .container-fluid {
    color: var(--tg-text-secondary);
    background-color: var(--tg-page-bg);
}

html[data-tg-theme] #main-wrapper .container-fluid .row {
    background: transparent;
}

html[data-tg-theme] #main-wrapper .topbar .navbar-collapse {
    color: var(--tg-text-secondary);
    background-color: var(--tg-topbar-bg) !important;
}

html[data-tg-theme] #main-wrapper .topbar .navbar-collapse .nav-link,
html[data-tg-theme] #main-wrapper .topbar .navbar-collapse .svg-icon {
    color: var(--tg-text-muted) !important;
}

html[data-tg-theme="dark"],
html[data-tg-theme="dark"] body {
    color: var(--tg-text-secondary);
    background-color: var(--tg-page-bg);
}

html[data-tg-theme="dark"] #main-wrapper .topbar,
html[data-tg-theme="dark"] #main-wrapper .topbar .top-navbar,
html[data-tg-theme="dark"] #main-wrapper .topbar .navbar-collapse,
html[data-tg-theme="dark"] #main-wrapper .topbar .navbar-header,
html[data-tg-theme="dark"] #main-wrapper .topbar [data-navbarbg="skin6"],
html[data-tg-theme="dark"] #main-wrapper .topbar [data-logobg="skin6"] {
    background-color: var(--tg-topbar-bg) !important;
}

html[data-tg-theme="dark"] #main-wrapper .left-sidebar,
html[data-tg-theme="dark"] #main-wrapper .left-sidebar[data-sidebarbg="skin6"],
html[data-tg-theme="dark"] #main-wrapper .scroll-sidebar,
html[data-tg-theme="dark"] #main-wrapper .sidebar-nav {
    background-color: var(--tg-sidebar-bg) !important;
}

html[data-tg-theme="dark"] #main-wrapper .topbar .navbar-collapse .nav-link,
html[data-tg-theme="dark"] #main-wrapper .topbar .navbar-collapse .svg-icon,
html[data-tg-theme="dark"] #main-wrapper .topbar .navbar-collapse .fullname {
    color: var(--tg-text-secondary) !important;
}

html[data-tg-theme="dark"] #main-wrapper .topbar .custom-select,
html[data-tg-theme="dark"] #main-wrapper .page-breadcrumb .custom-select {
    border-color: var(--tg-border) !important;
    color: var(--tg-text-secondary) !important;
    background-color: var(--tg-surface-elevated) !important;
    box-shadow: none !important;
}

html[data-tg-theme] #main-wrapper .card,
html[data-tg-theme] #main-wrapper .tg-card,
html[data-tg-theme] #main-wrapper .tg-form-card,
html[data-tg-theme] #main-wrapper .tg-chart-frame,
html[data-tg-theme] #main-wrapper .tg-report-card,
html[data-tg-theme] #main-wrapper .tg-modal-preview,
html[data-tg-theme] #main-wrapper .tg-security-panel,
html[data-tg-theme] #main-wrapper .tg-nav-demo,
html[data-tg-theme] #main-wrapper .tg-kpi,
html[data-tg-theme] #main-wrapper .tg-colour-swatch,
html[data-tg-theme] #main-wrapper .tg-empty-state {
    border-color: var(--tg-border);
    color: var(--tg-text-secondary);
    background-color: var(--tg-surface);
    box-shadow: var(--tg-shadow);
}

html[data-tg-theme] #main-wrapper .card-header,
html[data-tg-theme] #main-wrapper .card-footer,
html[data-tg-theme] #main-wrapper .tg-card-header,
html[data-tg-theme] #main-wrapper .tg-chart-frame-footer,
html[data-tg-theme] #main-wrapper .tg-summary-stat,
html[data-tg-theme] #main-wrapper .tg-readiness-item,
html[data-tg-theme] #main-wrapper .tg-analytics-panel,
html[data-tg-theme] #main-wrapper .tg-export-bar {
    border-color: var(--tg-border-soft);
    color: var(--tg-text-secondary);
    background-color: var(--tg-surface-secondary);
}

html[data-tg-theme] #main-wrapper .tg-page-title,
html[data-tg-theme] #main-wrapper .tg-section-title,
html[data-tg-theme] #main-wrapper .tg-card-title,
html[data-tg-theme] #main-wrapper .tg-security-title,
html[data-tg-theme] #main-wrapper .tg-empty-state-title,
html[data-tg-theme] #main-wrapper .page-title,
html[data-tg-theme] #main-wrapper .text-dark,
html[data-tg-theme] #main-wrapper h1,
html[data-tg-theme] #main-wrapper h2,
html[data-tg-theme] #main-wrapper h3,
html[data-tg-theme] #main-wrapper h4,
html[data-tg-theme] #main-wrapper h5,
html[data-tg-theme] #main-wrapper h6 {
    color: var(--tg-text-primary) !important;
}

html[data-tg-theme] #main-wrapper .tg-body,
html[data-tg-theme] #main-wrapper .tg-form-label,
html[data-tg-theme] #main-wrapper label,
html[data-tg-theme] #main-wrapper p,
html[data-tg-theme] #main-wrapper td {
    color: var(--tg-text-secondary);
}

html[data-tg-theme] #main-wrapper .tg-caption,
html[data-tg-theme] #main-wrapper .text-muted,
html[data-tg-theme] #main-wrapper small {
    color: var(--tg-text-muted) !important;
}

html[data-tg-theme] #main-wrapper .table,
html[data-tg-theme] #main-wrapper .tg-table {
    color: var(--tg-text-secondary);
    background-color: var(--tg-surface);
}

html[data-tg-theme] #main-wrapper .table thead th,
html[data-tg-theme] #main-wrapper .tg-table th {
    border-color: var(--tg-border);
    color: var(--tg-text-primary);
    background-color: var(--tg-table-header-bg);
}

html[data-tg-theme] #main-wrapper .table td,
html[data-tg-theme] #main-wrapper .tg-table td {
    border-color: var(--tg-border-soft);
    background-color: var(--tg-surface);
}

html[data-tg-theme] #main-wrapper .table-hover tbody tr:hover td,
html[data-tg-theme] #main-wrapper .tg-table tbody tr:hover td {
    background-color: var(--tg-table-row-hover);
}

html[data-tg-theme] #main-wrapper .form-control,
html[data-tg-theme] #main-wrapper .custom-select,
html[data-tg-theme] #main-wrapper .tg-input,
html[data-tg-theme] #main-wrapper .tg-select {
    border-color: var(--tg-border);
    color: var(--tg-input-text);
    background-color: var(--tg-input-bg);
}

html[data-tg-theme] #main-wrapper .form-control::placeholder,
html[data-tg-theme] #main-wrapper .tg-input::placeholder {
    color: var(--tg-text-muted);
}

html[data-tg-theme] #main-wrapper .form-control:focus,
html[data-tg-theme] #main-wrapper .custom-select:focus,
html[data-tg-theme] #main-wrapper .tg-input:focus,
html[data-tg-theme] #main-wrapper .tg-select:focus {
    border-color: var(--tg-color-focus);
    color: var(--tg-input-text);
    background-color: var(--tg-input-bg);
    box-shadow: var(--tg-focus-ring);
}

html[data-tg-theme] #main-wrapper .modal-content,
html[data-tg-theme] #main-wrapper .tg-modal .modal-content {
    border-color: var(--tg-border);
    color: var(--tg-text-secondary);
    background-color: var(--tg-modal-bg);
}

html[data-tg-theme] #main-wrapper .modal-header,
html[data-tg-theme] #main-wrapper .modal-footer,
html[data-tg-theme] #main-wrapper .tg-modal .modal-header,
html[data-tg-theme] #main-wrapper .tg-modal .modal-footer {
    border-color: var(--tg-border);
    background-color: var(--tg-surface-secondary);
}

html[data-tg-theme] #main-wrapper .dropdown-menu {
    border-color: var(--tg-border);
    color: var(--tg-text-secondary);
    background-color: var(--tg-surface-elevated);
    box-shadow: var(--tg-shadow-raised);
}

html[data-tg-theme] #main-wrapper .dropdown-item,
html[data-tg-theme] #main-wrapper .dropdown-header {
    color: var(--tg-text-secondary);
}

html[data-tg-theme] #main-wrapper .dropdown-item:hover,
html[data-tg-theme] #main-wrapper .dropdown-item:focus {
    color: var(--tg-text-primary);
    background-color: var(--tg-hover-bg);
}

html[data-tg-theme] #main-wrapper .dropdown-divider,
html[data-tg-theme] #main-wrapper .tg-tabs,
html[data-tg-theme] #main-wrapper .tg-form-section-heading,
html[data-tg-theme] #main-wrapper .tg-audit-item {
    border-color: var(--tg-divider);
}

html[data-tg-theme] #main-wrapper .tg-tab {
    color: var(--tg-text-muted);
}

html[data-tg-theme] #main-wrapper .tg-tab:hover,
html[data-tg-theme] #main-wrapper .tg-tab.is-active,
html[data-tg-theme] #main-wrapper .tg-tab[aria-selected="true"] {
    color: var(--tg-color-primary);
}

html[data-tg-theme] #main-wrapper .nav-tabs {
    border-color: var(--tg-border);
}

html[data-tg-theme] #main-wrapper .nav-tabs .nav-link {
    border-color: transparent;
    color: var(--tg-text-muted);
    background: transparent;
}

html[data-tg-theme] #main-wrapper .nav-tabs .nav-link:hover {
    border-color: var(--tg-border-soft);
    color: var(--tg-text-primary);
    background: var(--tg-hover-bg);
}

html[data-tg-theme] #main-wrapper .nav-tabs .nav-link.active {
    border-color: var(--tg-border) var(--tg-border) var(--tg-surface);
    color: var(--tg-text-primary);
    background: var(--tg-surface);
}

html[data-tg-theme] #main-wrapper .tg-chart-placeholder,
html[data-tg-theme] #main-wrapper .tg-workforce-placeholder {
    border-color: var(--tg-border);
    color: var(--tg-text-muted);
    background-color: var(--tg-surface-secondary);
}

html[data-tg-theme="dark"] #main-wrapper .timeguard-workforce-placeholder {
    border-color: var(--tg-border);
    color: var(--tg-text-muted);
    background-color: var(--tg-surface-secondary);
}

html[data-tg-theme="dark"] #main-wrapper .c3 text,
html[data-tg-theme="dark"] #main-wrapper .c3-chart-arcs-title,
html[data-tg-theme="dark"] #main-wrapper .ct-label,
html[data-tg-theme="dark"] #main-wrapper .tg-chart-legend,
html[data-tg-theme="dark"] #main-wrapper .tg-chart-legend-label {
    color: var(--tg-text-secondary);
    fill: var(--tg-text-secondary);
}

html[data-tg-theme="dark"] #main-wrapper .c3-axis path,
html[data-tg-theme="dark"] #main-wrapper .c3-axis line,
html[data-tg-theme="dark"] #main-wrapper .c3-grid line {
    stroke: var(--tg-border);
}

html[data-tg-theme="dark"] #main-wrapper .tg-kpi-meta,
html[data-tg-theme="dark"] #main-wrapper .tg-help-text,
html[data-tg-theme="dark"] #main-wrapper .tg-audit-time,
html[data-tg-theme="dark"] #main-wrapper .tg-loading,
html[data-tg-theme="dark"] #main-wrapper .tg-empty-state-text,
html[data-tg-theme="dark"] #main-wrapper .tg-chart-axis,
html[data-tg-theme="dark"] #main-wrapper .tg-chart-legend,
html[data-tg-theme="dark"] #main-wrapper .tg-download-state,
html[data-tg-theme="dark"] #main-wrapper .tg-availability {
    color: var(--tg-text-muted);
}

html[data-tg-theme="dark"] #main-wrapper .tg-input:disabled,
html[data-tg-theme="dark"] #main-wrapper .tg-select:disabled,
html[data-tg-theme="dark"] #main-wrapper .tg-textarea:disabled,
html[data-tg-theme="dark"] #main-wrapper .tg-input[readonly],
html[data-tg-theme="dark"] #main-wrapper .form-control:disabled,
html[data-tg-theme="dark"] #main-wrapper .form-control[readonly] {
    border-color: var(--tg-border-soft);
    color: #a1a8b0;
    background-color: #171a1f;
    opacity: 1;
}

html[data-tg-theme="dark"] #main-wrapper textarea,
html[data-tg-theme="dark"] #main-wrapper .tg-textarea {
    border-color: var(--tg-border);
    color: var(--tg-input-text);
    background-color: var(--tg-input-bg);
}

html[data-tg-theme="dark"] #main-wrapper textarea::placeholder,
html[data-tg-theme="dark"] #main-wrapper .tg-textarea::placeholder {
    color: var(--tg-text-muted);
}

html[data-tg-theme="dark"] #main-wrapper .tg-spinner {
    border-color: #343a41;
    border-top-color: var(--tg-color-primary);
}

html[data-tg-theme="dark"] #main-wrapper .tg-skeleton {
    background: linear-gradient(90deg, #171b20 25%, #252a30 50%, #171b20 75%);
    background-size: 200% 100%;
}

html[data-tg-theme="dark"] #main-wrapper .tg-toast,
html[data-tg-theme="dark"] #main-wrapper .tg-export-format {
    border-color: var(--tg-border);
    color: var(--tg-text-secondary);
    background-color: var(--tg-surface-elevated);
}

html[data-tg-theme="dark"] #main-wrapper .tg-health-item,
html[data-tg-theme="dark"] #main-wrapper .tg-permission-item,
html[data-tg-theme="dark"] #main-wrapper .tg-permission-grid > *,
html[data-tg-theme="dark"] #main-wrapper .tg-setting-row,
html[data-tg-theme="dark"] #main-wrapper .tg-skeleton-row {
    border-color: var(--tg-border-soft);
    color: var(--tg-text-secondary);
}

html[data-tg-theme="dark"] #main-wrapper .tg-validation-success {
    color: var(--tg-color-success);
}

html[data-tg-theme="dark"] #main-wrapper .tg-validation-warning {
    color: var(--tg-color-warning);
}

html[data-tg-theme="dark"] #main-wrapper .tg-validation-error,
html[data-tg-theme="dark"] #main-wrapper .tg-field-error {
    color: var(--tg-color-danger);
}

html[data-tg-theme="dark"] #main-wrapper .tg-sidebar-child.is-development:not(.active) {
    color: rgba(224, 229, 234, 0.7);
}

html[data-tg-theme="dark"] #main-wrapper .tg-sidebar-child.is-development:not(.active) .tg-sidebar-child-icon {
    color: rgba(142, 205, 195, 0.8) !important;
}

html[data-tg-theme="dark"] #main-wrapper .tg-alert-info {
    border-color: #28536c;
    color: #a9d8f2;
    background: #183447;
}

html[data-tg-theme="dark"] #main-wrapper .tg-alert-success {
    border-color: #285845;
    color: #a5ddc4;
    background: #193b30;
}

html[data-tg-theme="dark"] #main-wrapper .tg-alert-warning {
    border-color: #66502b;
    color: #efd08e;
    background: #40341f;
}

html[data-tg-theme="dark"] #main-wrapper .tg-alert-danger {
    border-color: #6d3b43;
    color: #efb2ba;
    background: #45262c;
}

html[data-tg-theme="dark"] #main-wrapper .tg-badge-neutral {
    border-color: #405465;
    color: #c4d0d9;
    background: #263847;
}

html[data-tg-theme="dark"] #main-wrapper .tg-badge-primary,
html[data-tg-theme="dark"] #main-wrapper .tg-badge-info {
    border-color: #315b75;
    color: #9fd3ef;
    background: #203d52;
}

html[data-tg-theme="dark"] #main-wrapper .tg-badge-success {
    border-color: #315b49;
    color: #9dd8bc;
    background: #1d3b31;
}

html[data-tg-theme="dark"] #main-wrapper .tg-badge-warning {
    border-color: #6b542a;
    color: #efd08e;
    background: #433720;
}

html[data-tg-theme="dark"] #main-wrapper .tg-badge-danger {
    border-color: #70404a;
    color: #efb0ba;
    background: #472830;
}

html[data-tg-theme="dark"] #main-wrapper .tg-status-active {
    border-color: #315b49;
    color: #9dd8bc;
    background: #1d3b31;
}

html[data-tg-theme="dark"] #main-wrapper .tg-status-warning {
    border-color: #6b542a;
    color: #efd08e;
    background: #433720;
}

html[data-tg-theme="dark"] #main-wrapper .tg-status-danger {
    border-color: #70404a;
    color: #efb0ba;
    background: #472830;
}

html[data-tg-theme="dark"] #main-wrapper .close {
    color: var(--tg-text-primary);
    text-shadow: none;
}

html[data-tg-theme] #main-wrapper .footer {
    border-color: var(--tg-border-soft);
    color: var(--tg-text-muted) !important;
    background-color: var(--tg-page-bg);
}

html[data-tg-theme="dark"] {
    color-scheme: dark;
    --tg-page-bg: #080a0d;
    --tg-surface: #111419;
    --tg-surface-secondary: #171b20;
    --tg-surface-elevated: #1c2026;
    --tg-text-primary: #f3f5f7;
    --tg-text-secondary: #c9ced4;
    --tg-text-muted: #929aa3;
    --tg-border: #2d3238;
    --tg-border-soft: #23282e;
    --tg-input-bg: #0d1014;
    --tg-input-text: #edf0f3;
    --tg-table-header-bg: #15191e;
    --tg-table-row-hover: #1b2026;
    --tg-modal-bg: #111419;
    --tg-topbar-bg: #090b0e;
    --tg-sidebar-bg: #07090b;
    --tg-divider: rgba(220, 225, 230, 0.12);
    --tg-hover-bg: #1b2026;
    --tg-active-bg: #222830;
    --tg-shadow: 0 2px 5px rgba(0, 0, 0, 0.32), 0 8px 22px rgba(0, 0, 0, 0.28);
    --tg-color-primary: #66b6e8;
    --tg-color-primary-hover: #8bc9ed;
    --tg-color-primary-soft: #182a36;
    --tg-color-info: #6ab8e5;
    --tg-color-success: #5bc99a;
    --tg-color-warning: #efbd63;
    --tg-color-danger: #ee7f8a;
    --tg-shadow-raised: 0 8px 24px rgba(0, 0, 0, 0.4);
    --tg-shadow-modal: 0 18px 48px rgba(0, 0, 0, 0.58);
}

/* =========================================================
   TIMEGUARD COMPONENT LIBRARY V1
   Opt-in enterprise components for current and future modules
   ========================================================= */

/* Brand and typography */
.tg-brand {
    display: inline-flex;
    gap: var(--tg-space-sm);
    align-items: center;
    color: var(--tg-color-text-strong);
    font-family: var(--tg-font-family);
}

.tg-brand-mark {
    display: inline-flex;
    width: 38px;
    height: 38px;
    align-items: center;
    justify-content: center;
    flex: 0 0 38px;
    border-radius: var(--tg-radius-sm);
    color: var(--tg-color-white);
    background: var(--tg-color-primary);
}

.tg-brand-name,
.tg-page-title,
.tg-section-title,
.tg-card-title {
    margin: 0;
    color: var(--tg-color-text-strong);
    font-family: var(--tg-font-family);
    font-weight: 700;
}

.tg-brand-name { font-size: 1rem; }
.tg-page-title { font-size: clamp(1.15rem, 2vw, 1.45rem); }
.tg-section-title { font-size: var(--tg-font-size-title); }
.tg-card-title { font-size: 0.92rem; }

.tg-brand-tagline,
.tg-body,
.tg-caption,
.tg-label {
    font-family: var(--tg-font-family);
    line-height: var(--tg-line-height);
}

.tg-brand-tagline,
.tg-caption {
    color: var(--tg-color-muted);
    font-size: var(--tg-font-size-xs);
}

.tg-body { color: var(--tg-color-text); font-size: var(--tg-font-size-body); }
.tg-label {
    color: var(--tg-color-text);
    font-size: var(--tg-font-size-label);
    font-weight: 700;
    letter-spacing: 0.035em;
    text-transform: uppercase;
}

.tg-text-muted { color: var(--tg-color-muted) !important; }
.tg-text-primary { color: var(--tg-color-primary) !important; }
.tg-text-success { color: var(--tg-color-success) !important; }
.tg-text-warning { color: var(--tg-color-warning) !important; }
.tg-text-danger { color: var(--tg-color-danger) !important; }

/* Layout primitives */
.tg-container {
    width: 100%;
    max-width: 1440px;
    margin-right: auto;
    margin-left: auto;
    padding-right: var(--tg-space-lg);
    padding-left: var(--tg-space-lg);
}

.tg-grid:not(.row) {
    display: grid;
    gap: var(--tg-space-lg);
}

/* Preserve Bootstrap's responsive flex-column system when a shared grid
   utility is used as presentation metadata on an existing .row. */
.row.tg-grid {
    display: flex;
    gap: 0;
}

.tg-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tg-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tg-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tg-form-layout { display: flex; flex-direction: column; }
.tg-form-layout-row { display: grid; gap: var(--tg-space-lg); }
.tg-form-layout-row-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tg-form-layout-row-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tg-stack { display: flex; flex-direction: column; gap: var(--tg-space-md); }
.tg-cluster { display: flex; flex-wrap: wrap; gap: var(--tg-space-sm); align-items: center; }
.tg-divider { border: 0; border-top: var(--tg-border-default); margin: var(--tg-space-lg) 0; }

/* Navigation, reference, and data-visualisation primitives */
.tg-nav-demo { margin: 0; padding: var(--tg-space-sm); border: var(--tg-border-default); border-radius: var(--tg-radius-card); background: var(--tg-color-surface); list-style: none; }
.tg-nav-section { padding: 0.55rem 0.65rem 0.3rem; color: var(--tg-color-muted); font-size: var(--tg-font-size-xs); font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; }
.tg-nav-item { display: flex; min-height: 40px; padding: 0.55rem 0.65rem; border-radius: var(--tg-radius-sm); align-items: center; justify-content: space-between; gap: var(--tg-space-sm); color: var(--tg-color-text); font-size: var(--tg-font-size-sm); font-weight: 600; }
.tg-nav-item:hover { color: var(--tg-color-primary); background: var(--tg-color-primary-soft); text-decoration: none; }
.tg-nav-item.is-active { color: var(--tg-color-primary); background: var(--tg-color-primary-soft); }
.tg-nav-item.is-collapsed .tg-nav-label { display: none; }
.tg-nav-item.is-collapsed { width: 40px; justify-content: center; }

/* Reusable third-level sidebar navigation */
.topbar .tg-appearance-control {
    display: flex;
    align-items: center;
}

.topbar .tg-appearance-trigger {
    display: inline-flex;
    width: 36px;
    height: 36px;
    padding: 0 !important;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 3px;
    color: #8c97a3;
    background: transparent;
    box-shadow: none;
}

.topbar .tg-appearance-trigger::after {
    display: none;
}

.topbar .tg-appearance-trigger:hover,
.topbar .tg-appearance-trigger[aria-expanded="true"] {
    color: var(--tg-color-primary);
    background: rgba(5, 87, 158, 0.06);
}

.topbar .tg-appearance-trigger:focus {
    outline: none;
    box-shadow: none;
}

.topbar .tg-appearance-trigger:focus-visible {
    outline: none;
    background: rgba(5, 87, 158, 0.07);
    box-shadow: 0 0 0 2px rgba(38, 132, 199, 0.2);
}

.topbar .tg-appearance-trigger svg {
    width: 18px;
    height: 18px;
}

.topbar .tg-appearance-menu {
    min-width: 160px;
}

.topbar .tg-appearance-option {
    display: flex;
    align-items: center;
    font-size: var(--tg-font-size-sm);
}

.topbar .tg-appearance-option[aria-checked="true"] {
    color: var(--tg-color-primary);
    background: var(--tg-color-primary-soft);
    font-weight: 700;
}

@media (max-width: 767.98px) {
    .topbar .tg-appearance-trigger {
        width: 34px;
        height: 34px;
    }
}

.sidebar-nav #sidebarnav .tg-sidebar-group-divider {
    height: 1px;
    margin: 0.7rem 1.85rem 0.55rem;
    overflow: hidden;
    background: rgba(216, 228, 240, 0.1);
    list-style: none;
}

.sidebar-nav #sidebarnav .tg-sidebar-nested-group {
    position: relative;
    margin: 0.15rem 0.9rem 0.45rem 1.95rem !important;
    padding: 0.18rem 0 0.2rem 0.9rem !important;
}

.sidebar-nav #sidebarnav .tg-sidebar-nested-group::before {
    position: absolute;
    top: 0.28rem;
    bottom: 0.3rem;
    left: 0;
    width: 1px;
    border-radius: var(--tg-radius-pill);
    background: rgba(98, 194, 174, 0.28);
    content: "";
}

.sidebar-nav #sidebarnav .tg-sidebar-child-item {
    position: relative;
}

.sidebar-nav #sidebarnav .tg-sidebar-child-item::before {
    position: absolute;
    top: 50%;
    left: -0.9rem;
    width: 0.58rem;
    height: 1px;
    background: rgba(98, 194, 174, 0.28);
    content: "";
}

.sidebar-nav #sidebarnav .tg-sidebar-nested-group .tg-sidebar-child {
    min-width: 0;
    min-height: 34px;
    margin: 0.14rem 0 !important;
    padding: 0.42rem 0.62rem !important;
    border: 1px solid transparent;
    border-radius: 2px;
    color: rgba(239, 247, 250, 0.72);
    font-family: var(--tg-font-family);
    line-height: 1.25;
    opacity: 1;
    transition: color var(--tg-transition-fast), background-color var(--tg-transition-fast), border-color var(--tg-transition-fast), box-shadow var(--tg-transition-fast), transform var(--tg-transition-fast);
}

.sidebar-nav #sidebarnav .tg-sidebar-nested-group .tg-sidebar-child:hover {
    border-color: transparent;
    color: var(--tg-color-white);
    background: rgba(255, 255, 255, 0.07);
    box-shadow: inset 2px 0 0 rgba(98, 194, 174, 0.52);
    text-decoration: none;
    transform: translateX(1px);
}

.sidebar-nav #sidebarnav .tg-sidebar-nested-group .tg-sidebar-child.active {
    border-color: transparent;
    color: var(--tg-color-white);
    background: rgba(255, 255, 255, 0.11);
    box-shadow: inset 3px 0 0 rgba(98, 194, 174, 0.82);
    font-weight: 700;
}

.sidebar-nav #sidebarnav .tg-sidebar-nested-group .tg-sidebar-child.is-development:not(.active) {
    color: rgba(224, 235, 240, 0.62);
}

.sidebar-nav #sidebarnav .tg-sidebar-nested-group .tg-sidebar-child.is-development:not(.active) .tg-sidebar-child-icon {
    color: rgba(130, 190, 182, 0.72) !important;
}

.sidebar-nav #sidebarnav .tg-sidebar-nested-group .tg-sidebar-child:focus {
    outline: none !important;
    box-shadow: none;
}

.sidebar-nav #sidebarnav .tg-sidebar-nested-group .tg-sidebar-child:focus-visible {
    outline: none !important;
    border-color: transparent;
    background: rgba(255, 255, 255, 0.09);
    box-shadow: inset 2px 0 0 rgba(98, 194, 174, 0.68);
}

.sidebar-nav #sidebarnav .tg-sidebar-nested-group .tg-sidebar-child .tg-sidebar-child-icon {
    width: 15px;
    height: 15px;
    min-width: 15px;
    margin-right: 0.48rem !important;
    color: rgba(166, 210, 204, 0.78) !important;
    stroke-width: 1.8;
}

.sidebar-nav #sidebarnav .tg-sidebar-nested-group .tg-sidebar-child.active .tg-sidebar-child-icon {
    color: #8ed8ca !important;
}

.sidebar-nav #sidebarnav .tg-sidebar-nested-group .tg-sidebar-child .tg-sidebar-child-text {
    min-width: 0;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.005em;
}

@media (max-width: 767.98px) {
    .sidebar-nav #sidebarnav .tg-sidebar-nested-group {
        margin-right: 0.7rem !important;
        margin-left: 1.7rem !important;
    }
}
.tg-colour-swatch { overflow: hidden; border: var(--tg-border-default); border-radius: var(--tg-radius-sm); background: #fff; }
.tg-colour-swatch-sample { min-height: 58px; background: var(--tg-swatch, var(--tg-color-primary)); }
.tg-colour-swatch-label { padding: 0.5rem; color: var(--tg-color-text); font-size: var(--tg-font-size-xs); font-weight: 700; }
.tg-swatch-primary { --tg-swatch: var(--tg-color-primary); }
.tg-swatch-navy { --tg-swatch: var(--tg-color-navy); }
.tg-swatch-success { --tg-swatch: var(--tg-color-success); }
.tg-swatch-warning { --tg-swatch: var(--tg-color-warning); }
.tg-swatch-danger { --tg-swatch: var(--tg-color-danger); }
.tg-swatch-page { --tg-swatch: var(--tg-color-page); }
.tg-swatch-surface { --tg-swatch: var(--tg-color-surface); }
.tg-swatch-border { --tg-swatch: var(--tg-color-border); }
.tg-kpi { min-height: 112px; padding: var(--tg-space-lg); border: var(--tg-border-default); border-radius: var(--tg-radius-card); background: #fff; box-shadow: var(--tg-shadow-card); }
.tg-kpi-value { display: block; color: var(--tg-color-text-strong); font-size: 1.8rem; font-weight: 700; line-height: 1; }
.tg-kpi-label { display: block; margin-top: 0.5rem; color: var(--tg-color-text); font-size: var(--tg-font-size-sm); font-weight: 700; }
.tg-kpi-meta { display: block; margin-top: 0.25rem; color: var(--tg-color-muted); font-size: var(--tg-font-size-xs); }
.tg-chart-placeholder { position: relative; display: flex; min-height: 240px; padding: var(--tg-space-md); align-items: center; justify-content: center; overflow: hidden; border: 1px dashed #c8d7e6; border-radius: var(--tg-radius-sm); color: var(--tg-color-muted); background: #fbfdff; text-align: center; }
.tg-chart-placeholder-donut,
.tg-chart-donut { box-sizing: border-box; width: min(270px, 100%); height: auto; min-height: 0; aspect-ratio: 1 / 1; margin: 0 auto; border: 46px solid var(--tg-color-primary); border-right-color: var(--tg-color-success); border-bottom-color: var(--tg-color-warning); border-radius: 50%; background: var(--tg-donut-centre-bg, #fff); }
.tg-chart-centre,
.tg-chart-donut-center { position: absolute; display: flex; inset: 50% auto auto 50%; align-items: center; flex-direction: column; color: var(--tg-donut-centre-text, #18222c); transform: translate(-50%, -50%); }
.tg-chart-centre strong,
.tg-chart-donut-center strong { color: inherit; font-size: 1.35rem; font-weight: 800; line-height: 1; }
.tg-chart-centre span,
.tg-chart-donut-center span { margin-top: 0.2rem; color: var(--tg-donut-centre-muted, #5f6b76); font-size: var(--tg-font-size-xs); font-weight: 600; }
.tg-chart-dark-centre,
.tg-chart-donut-wrap.is-dark-centre { --tg-donut-centre-bg: var(--tg-surface-secondary); --tg-donut-centre-text: var(--tg-text-primary); --tg-donut-centre-muted: var(--tg-text-muted); }
.tg-chart-legend { display: flex; margin-top: var(--tg-space-sm); flex-wrap: wrap; gap: var(--tg-space-sm); justify-content: center; color: var(--tg-color-muted); font-size: var(--tg-font-size-xs); }
.tg-chart-legend-item { display: inline-flex; align-items: center; gap: 0.3rem; }
.tg-chart-legend-key { width: 8px; height: 8px; border-radius: 50%; background: var(--tg-key, var(--tg-color-primary)); }
.tg-chart-key-success { --tg-key: var(--tg-color-success); }
.tg-chart-key-warning { --tg-key: var(--tg-color-warning); }
.tg-chart-key-danger { --tg-key: var(--tg-color-danger); }
.tg-bar-demo { display: flex; width: 100%; height: 180px; padding: 0 1rem; align-items: flex-end; justify-content: space-around; gap: var(--tg-space-sm); border-bottom: 1px solid #cad8e6; }
.tg-bar-demo span { width: 15%; min-width: 18px; height: var(--tg-value, 50%); border-radius: 4px 4px 0 0; background: var(--tg-color-primary); }
.tg-bar-40 { --tg-value: 40%; }
.tg-bar-55 { --tg-value: 55%; }
.tg-bar-70 { --tg-value: 70%; }
.tg-bar-85 { --tg-value: 85%; }
.tg-line-demo { width: 100%; height: 140px; color: var(--tg-color-primary); }
.tg-infographic-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--tg-space-lg); }
.tg-chart-frame { min-width: 0; overflow: hidden; border: var(--tg-border-default); border-radius: var(--tg-radius-card); background: var(--tg-color-surface); box-shadow: var(--tg-shadow-card); }
.tg-chart-frame-header { display: flex; min-height: 64px; padding: 0.75rem var(--tg-space-md); border-bottom: 1px solid #edf2f7; align-items: flex-start; justify-content: space-between; gap: var(--tg-space-sm); }
.tg-chart-frame-body { min-width: 0; padding: var(--tg-space-md); }
.tg-chart-frame-footer { padding: 0.65rem var(--tg-space-md); border-top: 1px solid #edf2f7; background: var(--tg-color-surface-muted); }
.tg-chart-donut-wrap { position: relative; display: flex; min-height: 270px; align-items: center; justify-content: center; }
.tg-trend { display: inline-flex; padding: 0.25rem 0.5rem; border-radius: var(--tg-radius-pill); align-items: center; gap: 0.25rem; font-size: var(--tg-font-size-xs); font-weight: 700; }
.tg-trend-up { color: var(--tg-color-success); background: #e8f6f0; }
.tg-trend-down { color: var(--tg-color-danger); background: #fbeaec; }
.tg-trend-neutral { color: var(--tg-color-muted); background: #eef3f8; }
.tg-summary-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--tg-space-sm); }
.tg-summary-stat { min-width: 0; padding: 0.7rem; border: var(--tg-border-default); border-radius: var(--tg-radius-sm); background: var(--tg-color-surface-muted); }
.tg-summary-stat strong { display: block; color: var(--tg-color-text-strong); font-size: 1.15rem; }
.tg-summary-stat span { display: block; margin-top: 0.2rem; color: var(--tg-color-muted); font-size: var(--tg-font-size-xs); overflow-wrap: anywhere; }
.tg-health-list { margin: 0; padding: 0; list-style: none; }
.tg-health-item { display: flex; padding: 0.55rem 0; border-bottom: 1px solid #edf2f7; align-items: center; justify-content: space-between; gap: var(--tg-space-sm); color: var(--tg-color-text); font-size: var(--tg-font-size-sm); }
.tg-health-item:last-child { border-bottom: 0; }
.tg-line-chart { width: 100%; height: auto; min-height: 210px; color: #d5e0ea; }
.tg-line-grid { stroke: currentColor; stroke-width: 1; }
.tg-line-present { fill: none; stroke: var(--tg-color-success); stroke-width: 4; }
.tg-line-absent { fill: none; stroke: var(--tg-color-danger); stroke-width: 3; }
.tg-line-late { fill: none; stroke: var(--tg-color-warning); stroke-width: 3; }
.tg-chart-axis { display: flex; margin-top: 0.35rem; justify-content: space-between; color: var(--tg-color-muted); font-size: var(--tg-font-size-xs); }
.tg-report-card { display: flex; min-height: 106px; padding: var(--tg-space-md); border: var(--tg-border-default); border-radius: var(--tg-radius-card); align-items: flex-start; gap: var(--tg-space-md); background: #fff; box-shadow: var(--tg-shadow-card); }
.tg-report-icon { display: inline-flex; width: 40px; height: 40px; border-radius: var(--tg-radius-sm); align-items: center; justify-content: center; flex: 0 0 40px; color: var(--tg-color-primary); background: var(--tg-color-primary-soft); }
.tg-availability { display: inline-flex; align-items: center; gap: 0.35rem; color: var(--tg-color-muted); font-size: var(--tg-font-size-xs); font-weight: 700; }
.tg-availability::before { width: 8px; height: 8px; border-radius: 50%; background: currentColor; content: ""; }
.tg-availability-ready { color: var(--tg-color-success); }
.tg-availability-pending { color: var(--tg-color-warning); }
.tg-availability-unavailable { color: var(--tg-color-danger); }
.tg-modal-preview { border: var(--tg-border-default); border-radius: var(--tg-radius-card); background: #fff; box-shadow: var(--tg-shadow-modal); }
.tg-permission-grid { display: grid; grid-template-columns: minmax(140px, 1fr) repeat(3, minmax(54px, 0.35fr)); align-items: center; }
.tg-permission-grid > * { min-width: 0; padding: 0.55rem; border-bottom: 1px solid #edf2f7; font-size: var(--tg-font-size-sm); text-align: center; }
.tg-permission-grid > :nth-child(4n + 1) { text-align: left; }
.tg-skeleton-row { display: grid; grid-template-columns: 2fr 1fr 1fr; padding: 0.65rem 0; gap: var(--tg-space-sm); border-bottom: 1px solid #edf2f7; }

/* Executive dashboard and configuration patterns */
.tg-executive-header { display: flex; padding-bottom: var(--tg-space-md); border-bottom: var(--tg-border-default); align-items: center; justify-content: space-between; gap: var(--tg-space-lg); }
.tg-executive-header-main { min-width: 0; }
.tg-executive-meta { display: flex; flex-wrap: wrap; gap: var(--tg-space-sm); align-items: center; justify-content: flex-end; }
.tg-metric-card { position: relative; min-height: 118px; overflow: hidden; }
.tg-metric-card .tg-kpi-value { font-size: clamp(1.8rem, 3vw, 2.25rem); }
.tg-metric-head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--tg-space-sm); }
.tg-metric-icon { display: inline-flex; width: 38px; height: 38px; border-radius: 8px; align-items: center; justify-content: center; flex: 0 0 38px; color: var(--tg-color-primary); background: var(--tg-color-primary-soft); }
.tg-workspace { display: grid; grid-template-columns: minmax(0, 13fr) minmax(300px, 7fr); gap: var(--tg-space-lg); align-items: stretch; }
.tg-workspace-primary,
.tg-workspace-secondary { min-width: 0; }
.tg-analytics-split { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--tg-space-md); }
.tg-analytics-panel { min-width: 0; padding: var(--tg-space-sm); border: 1px solid #edf2f7; border-radius: var(--tg-radius-sm); background: #fbfdff; }
.tg-readiness-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--tg-space-sm); }
.tg-readiness-item { padding: 0.7rem; border: var(--tg-border-default); border-radius: var(--tg-radius-sm); background: var(--tg-color-surface-muted); }
.tg-readiness-item strong { display: block; color: var(--tg-color-text-strong); font-size: var(--tg-font-size-sm); }
.tg-readiness-item span { display: block; margin-top: 0.2rem; color: var(--tg-color-muted); font-size: var(--tg-font-size-xs); }
.tg-progress { height: 7px; margin-top: var(--tg-space-sm); overflow: hidden; border-radius: var(--tg-radius-pill); background: #dfe8f1; }
.tg-progress-bar { display: block; width: var(--tg-progress, 0%); height: 100%; border-radius: inherit; background: var(--tg-color-primary); }
.tg-progress-40 { --tg-progress: 40%; }
.tg-progress-65 { --tg-progress: 65%; }
.tg-progress-85 { --tg-progress: 85%; }
.tg-progress-100 { --tg-progress: 100%; }
.tg-progress-success { background: var(--tg-color-success); }
.tg-progress-warning { background: var(--tg-color-warning); }
.tg-progress-danger { background: var(--tg-color-danger); }
.tg-preview-banner { display: flex; padding: 0.75rem 0.9rem; border: 1px solid #cfe1f2; border-radius: var(--tg-radius-sm); align-items: center; justify-content: space-between; gap: var(--tg-space-md); color: var(--tg-color-primary); background: var(--tg-color-primary-soft); }
.tg-tabs { display: flex; overflow-x: auto; border-bottom: var(--tg-border-default); gap: var(--tg-space-xs); scrollbar-width: thin; }
.tg-tab { min-height: 40px; padding: 0.55rem 0.75rem; border: 0; border-bottom: 2px solid transparent; color: var(--tg-color-muted); background: transparent; font-size: var(--tg-font-size-sm); font-weight: 700; white-space: nowrap; cursor: pointer; }
.tg-tab:hover { color: var(--tg-color-primary); }
.tg-tab.is-active,
.tg-tab[aria-selected="true"] { border-bottom-color: var(--tg-color-primary); color: var(--tg-color-primary); }
.tg-form-section-heading { display: flex; margin-bottom: var(--tg-space-md); padding-bottom: var(--tg-space-sm); border-bottom: 1px solid #edf2f7; align-items: center; justify-content: space-between; gap: var(--tg-space-sm); }
.tg-setting-list { margin: 0; padding: 0; list-style: none; }
.tg-setting-row { display: flex; min-height: 54px; padding: 0.65rem 0; border-bottom: 1px solid #edf2f7; align-items: center; justify-content: space-between; gap: var(--tg-space-md); }
.tg-setting-row:last-child { border-bottom: 0; }
.tg-setting-copy { min-width: 0; }
.tg-setting-copy strong { display: block; color: var(--tg-color-text-strong); font-size: var(--tg-font-size-sm); }
.tg-setting-copy span { display: block; margin-top: 0.15rem; color: var(--tg-color-muted); font-size: var(--tg-font-size-xs); }
.tg-switch { position: relative; display: inline-flex; width: 42px; height: 24px; flex: 0 0 42px; }
.tg-switch input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.tg-switch-track { width: 100%; border-radius: var(--tg-radius-pill); background: #c8d4df; cursor: pointer; transition: background-color var(--tg-transition-fast); }
.tg-switch-track::after { position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(26, 53, 88, 0.25); content: ""; transition: transform var(--tg-transition-fast); }
.tg-switch input:checked + .tg-switch-track { background: var(--tg-color-primary); }
.tg-switch input:checked + .tg-switch-track::after { transform: translateX(18px); }
.tg-switch input:focus-visible + .tg-switch-track { box-shadow: var(--tg-focus-ring); }

/* Buttons and actions */
.tg-btn {
    display: inline-flex;
    min-height: 38px;
    padding: 0.55rem 0.9rem;
    border: 1px solid transparent;
    border-radius: var(--tg-radius-sm);
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    color: var(--tg-color-text);
    background: var(--tg-color-surface);
    font-family: var(--tg-font-family);
    font-size: var(--tg-font-size-sm);
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition: border-color var(--tg-transition-fast), background-color var(--tg-transition-fast), color var(--tg-transition-fast), box-shadow var(--tg-transition-fast), transform var(--tg-transition-fast);
}

.tg-btn:hover { text-decoration: none; transform: translateY(-1px); }
.tg-btn:active { transform: translateY(0); }
.tg-btn:focus-visible { outline: 0; box-shadow: var(--tg-focus-ring); }
.tg-btn-primary { color: #fff; background: var(--tg-color-primary); border-color: var(--tg-color-primary); }
.tg-btn-primary:hover { color: #fff; background: var(--tg-color-primary-hover); border-color: var(--tg-color-primary-hover); }
.tg-btn-secondary { color: var(--tg-color-text-strong); background: var(--tg-color-surface-muted); border-color: var(--tg-color-border); }
.tg-btn-outline { color: var(--tg-color-primary); background: transparent; border-color: var(--tg-color-primary); }
.tg-btn-outline:hover { color: var(--tg-color-primary-hover); background: var(--tg-color-primary-soft); }
.tg-btn-success { color: #fff; background: var(--tg-color-success); border-color: var(--tg-color-success); }
.tg-btn-danger { color: #fff; background: var(--tg-color-danger); border-color: var(--tg-color-danger); }
.tg-btn-ghost { color: var(--tg-color-primary); background: transparent; }
.tg-btn-sm { min-height: 32px; padding: 0.38rem 0.68rem; font-size: var(--tg-font-size-xs); }
.tg-btn-lg { min-height: 44px; padding: 0.7rem 1.1rem; font-size: 0.86rem; }
.tg-btn-block { width: 100%; }
.tg-btn-icon { width: 38px; padding: 0; }
.tg-btn:disabled,
.tg-btn.is-disabled,
.tg-btn[aria-disabled="true"] { opacity: 0.55; pointer-events: none; cursor: not-allowed; transform: none; }

/* Forms and validation */
.tg-field,
.tg-form-group { margin-bottom: var(--tg-space-md); }

.tg-form-label {
    display: inline-block;
    margin-bottom: 0.3rem;
    color: var(--tg-color-text);
    font-size: var(--tg-font-size-sm);
    font-weight: 700;
}

.tg-required { color: var(--tg-color-danger); }
.tg-help-text { margin-top: 0.3rem; color: var(--tg-color-muted); font-size: var(--tg-font-size-xs); }

.tg-input,
.tg-select,
.tg-textarea {
    display: block;
    width: 100%;
    padding: 0.48rem 0.68rem;
    border: var(--tg-border-default);
    background-color: var(--tg-color-surface);
    transition: border-color var(--tg-transition-fast), box-shadow var(--tg-transition-fast), background-color var(--tg-transition-fast);
}

.tg-textarea { min-height: 96px; resize: vertical; }
.tg-input::placeholder,
.tg-textarea::placeholder { color: #9aa8b7; }
.tg-input:focus,
.tg-select:focus,
.tg-textarea:focus { outline: 0; border-color: var(--tg-color-focus); box-shadow: var(--tg-focus-ring); }
.tg-input:disabled,
.tg-select:disabled,
.tg-textarea:disabled,
.tg-input[readonly] { color: #718096; background: #eef3f8; cursor: not-allowed; }

.tg-input-group { display: flex; width: 100%; align-items: stretch; }
.tg-input-group .tg-input { min-width: 0; flex: 1 1 auto; border-radius: 0; }
.tg-input-group .tg-input:first-child { border-radius: var(--tg-radius-sm) 0 0 var(--tg-radius-sm); }
.tg-input-group .tg-input:last-child { border-radius: 0 var(--tg-radius-sm) var(--tg-radius-sm) 0; }
.tg-input-addon {
    display: inline-flex;
    padding: 0 0.68rem;
    border: var(--tg-border-default);
    align-items: center;
    color: var(--tg-color-muted);
    background: var(--tg-color-surface-muted);
    font-size: var(--tg-font-size-sm);
}

.tg-is-valid,
.tg-input.is-valid,
.tg-select.is-valid,
.tg-textarea.is-valid { border-color: var(--tg-color-success); }
.tg-is-invalid,
.tg-input.is-invalid,
.tg-select.is-invalid,
.tg-textarea.is-invalid { border-color: var(--tg-color-danger); }
.tg-validation { display: block; margin-top: 0.3rem; font-size: var(--tg-font-size-xs); }
.tg-validation-success { color: var(--tg-color-success); }
.tg-validation-warning { color: var(--tg-color-warning); }
.tg-validation-error,
.tg-field-error { color: var(--tg-color-danger); }

/* Badges and status indicators */
.tg-badge {
    display: inline-flex;
    min-height: 24px;
    padding: 0.25rem 0.55rem;
    border: 1px solid transparent;
    border-radius: var(--tg-radius-pill);
    align-items: center;
    gap: 0.32rem;
    font-size: var(--tg-font-size-xs);
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}

.tg-badge-neutral { color: #526579; background: #eef3f8; border-color: #dbe5ef; }
.tg-badge-primary { color: var(--tg-color-primary); background: var(--tg-color-primary-soft); border-color: #cfe1f2; }
.tg-badge-info { color: var(--tg-color-info); background: #eaf5fc; border-color: #cce7f7; }
.tg-badge-success { color: var(--tg-color-success); background: #e8f6f0; border-color: #ccebdd; }
.tg-badge-warning { color: #9a6205; background: #fff4df; border-color: #f6ddb0; }
.tg-badge-danger { color: var(--tg-color-danger); background: #fbeaec; border-color: #f1cdd2; }
.tg-status-dot { width: 7px; height: 7px; border-radius: 50%; background: currentColor; }

/* Notifications and feedback */
.tg-alert {
    display: flex;
    padding: 0.8rem 0.9rem;
    border: 1px solid;
    border-radius: var(--tg-radius-sm);
    gap: var(--tg-space-sm);
    align-items: flex-start;
    color: var(--tg-color-text);
    background: var(--tg-color-surface);
}

.tg-alert-icon { flex: 0 0 auto; line-height: 1; }
.tg-alert-content { min-width: 0; flex: 1 1 auto; }
.tg-alert-title { margin: 0 0 0.15rem; color: inherit; font-size: var(--tg-font-size-sm); font-weight: 700; }
.tg-alert-message { margin: 0; font-size: var(--tg-font-size-sm); line-height: var(--tg-line-height); }
.tg-alert-info { color: #155f91; background: #edf7fd; border-color: #c9e7f8; }
.tg-alert-success { color: #126c48; background: #edf8f3; border-color: #ccebdd; }
.tg-alert-warning { color: #805405; background: #fff8e9; border-color: #f3dfb9; }
.tg-alert-danger { color: #922a36; background: #fff0f2; border-color: #efcbd0; }
.tg-alert-dismiss { padding: 0; border: 0; color: inherit; background: transparent; cursor: pointer; opacity: 0.7; }

.tg-toast-stack { position: fixed; z-index: 1080; right: 1rem; bottom: 1rem; display: grid; width: min(360px, calc(100vw - 2rem)); gap: var(--tg-space-sm); }
.tg-toast { padding: 0.8rem; border: var(--tg-border-default); border-left: 4px solid var(--tg-color-primary); border-radius: var(--tg-radius-sm); background: #fff; box-shadow: var(--tg-shadow-raised); }
.tg-toast-success { border-left-color: var(--tg-color-success); }
.tg-toast-warning { border-left-color: var(--tg-color-warning); }
.tg-toast-danger { border-left-color: var(--tg-color-danger); }

/* Empty and loading states */
.tg-empty-state {
    display: flex;
    min-height: 180px;
    padding: var(--tg-space-xl);
    align-items: center;
    justify-content: center;
    flex-direction: column;
    color: var(--tg-color-muted);
    text-align: center;
}
.tg-empty-state-icon { display: inline-flex; width: 48px; height: 48px; margin-bottom: var(--tg-space-md); border-radius: 50%; align-items: center; justify-content: center; color: var(--tg-color-primary); background: var(--tg-color-primary-soft); }
.tg-empty-state-title { margin: 0 0 0.35rem; color: var(--tg-color-text-strong); font-size: 0.92rem; font-weight: 700; }
.tg-empty-state-text { max-width: 440px; margin: 0; font-size: var(--tg-font-size-sm); line-height: var(--tg-line-height); }
.tg-empty-state-actions { display: flex; margin-top: var(--tg-space-md); flex-wrap: wrap; gap: var(--tg-space-sm); justify-content: center; }

.tg-loading { display: inline-flex; align-items: center; gap: var(--tg-space-sm); color: var(--tg-color-muted); }
.tg-spinner { width: 22px; height: 22px; border: 3px solid #dbe7f2; border-top-color: var(--tg-color-primary); border-radius: 50%; animation: tg-spin 0.75s linear infinite; }
.tg-spinner-sm { width: 16px; height: 16px; border-width: 2px; }
.tg-spinner-lg { width: 34px; height: 34px; border-width: 4px; }
.tg-skeleton { display: block; border-radius: 5px; background: linear-gradient(90deg, #edf2f7 25%, #f8fafc 50%, #edf2f7 75%); background-size: 200% 100%; animation: tg-skeleton 1.35s ease-in-out infinite; }
.tg-skeleton-text { height: 0.72rem; margin-bottom: 0.45rem; }
.tg-skeleton-card { min-height: 120px; }

@keyframes tg-spin { to { transform: rotate(360deg); } }
@keyframes tg-skeleton { to { background-position: -200% 0; } }

/* Modal patterns */
.tg-modal .modal-dialog { max-width: 680px; }
.tg-modal-wide .modal-dialog { width: calc(100% - 2rem); max-width: 1120px; }
.tg-modal .modal-content { overflow: hidden; border: 0; border-radius: var(--tg-radius-card); box-shadow: var(--tg-shadow-modal); }
.tg-modal .modal-header { padding: 0.9rem 1rem; border-bottom: var(--tg-border-default); background: var(--tg-color-surface-muted); }
.tg-modal .modal-title { color: var(--tg-color-text-strong); font-size: 1rem; font-weight: 700; }
.tg-modal .modal-body { padding: 1rem; color: var(--tg-color-text); }
.tg-modal-wide .modal-body { max-height: calc(100vh - 11rem); overflow-y: auto; }
.tg-modal .modal-footer { padding: 0.75rem 1rem; border-top: var(--tg-border-default); background: var(--tg-color-surface-muted); }
.tg-modal .close:focus-visible { outline: 0; box-shadow: var(--tg-focus-ring); }
.tg-modal-backdrop { background: var(--tg-color-overlay); }

/* Security, access, and audit interfaces */
.tg-security-panel { padding: var(--tg-space-lg); border: var(--tg-border-default); border-left: 4px solid var(--tg-color-primary); border-radius: var(--tg-radius-card); background: var(--tg-color-surface); box-shadow: var(--tg-shadow-card); }
.tg-security-header { display: flex; gap: var(--tg-space-sm); align-items: center; justify-content: space-between; }
.tg-security-title { margin: 0; color: var(--tg-color-text-strong); font-size: 0.92rem; font-weight: 700; }
.tg-security-score { font-size: 1.35rem; font-weight: 700; color: var(--tg-color-primary); }
.tg-risk-low { color: var(--tg-color-success); }
.tg-risk-medium { color: var(--tg-color-warning); }
.tg-risk-high,
.tg-risk-critical { color: var(--tg-color-danger); }
.tg-permission-list { margin: 0; padding: 0; list-style: none; }
.tg-permission-item { display: flex; min-height: 42px; padding: 0.55rem 0; border-bottom: 1px solid #edf2f7; gap: var(--tg-space-sm); align-items: center; justify-content: space-between; }
.tg-permission-item:last-child { border-bottom: 0; }
.tg-auth-code {
    display: inline-flex;
    width: fit-content;
    max-width: 100%;
    min-height: 44px;
    padding: 0.65rem 1.15rem;
    border: 1px dashed var(--tg-color-border);
    border-radius: var(--tg-radius-sm);
    align-items: center;
    justify-content: center;
    color: var(--tg-color-text-strong);
    background: var(--tg-color-surface-muted);
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 0.92rem;
    font-weight: 600;
    letter-spacing: 0.2em;
    line-height: 1.2;
    text-align: center;
    white-space: nowrap;
}
.tg-auth-shell {
    display: flex;
    width: 100%;
    min-height: 100dvh;
    padding: clamp(1rem, 4vw, 3rem);
    align-items: center;
    justify-content: center;
    color: var(--tg-color-text);
    background: var(--tg-color-page);
}
.tg-auth-card {
    width: min(100%, 460px);
    overflow: hidden;
    border: var(--tg-border-default);
    border-radius: var(--tg-radius-card);
    background: var(--tg-color-surface);
    box-shadow: var(--tg-shadow-raised);
}
.tg-auth-content { padding: clamp(1.35rem, 4vw, 2.25rem); }
.tg-auth-brand { margin-bottom: var(--tg-space-xl); text-align: center; }
.tg-auth-brand-mark { display: block; width: 110px; height: auto; margin: 0 auto var(--tg-space-sm); }
.tg-auth-product { margin: 0; color: var(--tg-color-text-strong); font-size: 1.95rem; font-weight: 700; line-height: 1.12; }
.tg-auth-tagline { margin: 0.35rem 0 0; color: var(--tg-color-text); font-size: var(--tg-font-size-sm); }
.tg-auth-step-header { margin-bottom: var(--tg-space-lg); text-align: center; }
.tg-auth-title { margin: 0; color: var(--tg-color-text-strong); font-size: 1.08rem; font-weight: 700; line-height: 1.25; }
.tg-auth-instruction { margin: 0.45rem 0 0; color: var(--tg-color-text); font-size: var(--tg-font-size-sm); line-height: var(--tg-line-height); }
.tg-auth-form { margin: 0; }
.tg-auth-shell .tg-form-label { color: var(--tg-color-text-strong); }
.tg-auth-form fieldset { min-width: 0; margin: 0 0 var(--tg-space-md); padding: 0; border: 0; }
.tg-auth-actions { display: grid; margin-top: var(--tg-space-lg); gap: var(--tg-space-sm); }
.tg-auth-status { margin-bottom: var(--tg-space-md); }
.tg-auth-footer { margin: var(--tg-space-xl) 0 0; color: var(--tg-color-muted); font-size: var(--tg-font-size-xs); text-align: center; }
.tg-auth-footer span { display: block; }
.tg-otp-group {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    width: 100%;
    gap: clamp(0.35rem, 1.8vw, 0.65rem);
}
.tg-otp-input {
    width: 100%;
    min-height: 44px;
    min-width: 0;
    aspect-ratio: 1 / 1.08;
    padding: 0;
    border: var(--tg-border-default);
    border-radius: var(--tg-radius-sm);
    color: var(--tg-color-text-strong);
    background: var(--tg-input-bg);
    font-family: var(--tg-font-family);
    font-size: clamp(1.15rem, 5vw, 1.55rem);
    font-weight: 700;
    line-height: 1;
    text-align: center;
    caret-color: var(--tg-color-primary);
    transition: border-color var(--tg-transition-fast), box-shadow var(--tg-transition-fast), background-color var(--tg-transition-fast);
}
.tg-otp-input:focus { outline: 0; border-color: var(--tg-color-focus); box-shadow: var(--tg-focus-ring); }
.tg-otp-input:disabled,
.tg-otp-input[readonly] { color: var(--tg-color-muted); background: var(--tg-color-surface-muted); }
.tg-auth-resend { display: flex; min-height: 44px; margin-top: var(--tg-space-md); align-items: center; justify-content: center; gap: 0.35rem; color: var(--tg-color-muted); font-size: var(--tg-font-size-sm); text-align: center; }
.tg-auth-resend .tg-btn { min-height: 44px; }
.tg-btn-spinner { display: inline-block; width: 1rem; height: 1rem; flex: 0 0 1rem; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: tg-spin 0.75s linear infinite; }
@keyframes tg-spin { to { transform: rotate(360deg); } }
.tg-auth-dialog-copy { margin: 0.75rem 0; color: var(--tg-color-muted); font-size: var(--tg-font-size-sm); line-height: var(--tg-line-height); text-align: center; }
.tg-auth-dialog-label { margin: 1rem 0 0.5rem; color: var(--tg-color-text-strong); font-size: var(--tg-font-size-sm); font-weight: 700; text-align: center; }
.tg-auth-dialog .tg-auth-code { margin: 0.15rem auto 0.25rem; }

html[data-tg-theme="dark"] .tg-auth-shell { background: var(--tg-color-page); }
html[data-tg-theme="dark"] .tg-auth-shell .tg-btn-primary { color: var(--tg-color-page); }
@media (max-width: 1199.98px) {
    .tg-auth-brand-mark { width: 96px; }
    .tg-auth-product { font-size: 1.82rem; }
}

@media (max-width: 575.98px) {
    .tg-auth-shell { min-height: 100svh; padding: 0.75rem; align-items: flex-start; }
    .tg-auth-card { margin: auto 0; }
    .tg-auth-content { padding: 1.25rem; }
    .tg-auth-brand { margin-bottom: var(--tg-space-lg); }
    .tg-auth-brand-mark { width: 80px; }
    .tg-auth-product { font-size: 1.68rem; }
    .tg-auth-title { font-size: 1rem; }
    .tg-otp-group { gap: 0.3rem; }
}

@media (max-width: 359.98px) {
    .tg-auth-shell { padding: 0.5rem; }
    .tg-auth-content { padding: 0.75rem; }
    .tg-auth-brand-mark { width: 70px; }
    .tg-otp-group { gap: 0.2rem; }
    .tg-otp-input { border-radius: 6px; font-size: 1.1rem; }
    .tg-auth-code { padding-right: 0.85rem; padding-left: 0.85rem; letter-spacing: 0.16em; }
}
.tg-audit-item { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; padding: 0.65rem 0; border-bottom: 1px solid #edf2f7; gap: var(--tg-space-sm); align-items: start; }
.tg-audit-time { color: var(--tg-color-muted); font-size: var(--tg-font-size-xs); white-space: nowrap; }

/* Export and download interfaces */
.tg-export-bar { display: flex; padding: 0.65rem; border: var(--tg-border-default); border-radius: var(--tg-radius-sm); align-items: center; justify-content: space-between; gap: var(--tg-space-sm); background: var(--tg-color-surface-muted); }
.tg-export-actions { display: flex; flex-wrap: wrap; gap: var(--tg-space-sm); }
.tg-pagination-bar {
    display: flex;
    min-height: 64px;
    padding: 0.75rem var(--tg-space-md);
    border-top: var(--tg-border-default);
    align-items: center;
    justify-content: space-between;
    gap: var(--tg-space-md);
    background: var(--tg-color-surface-muted);
}
.tg-pagination-summary {
    margin: 0;
    color: var(--tg-color-muted);
    font-size: var(--tg-font-size-xs);
    line-height: var(--tg-line-height);
}
.tg-pagination-controls {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: flex-end;
    gap: var(--tg-space-sm);
}
.tg-pagination-indicator {
    display: inline-flex;
    min-height: 38px;
    padding: 0.45rem 0.75rem;
    border: var(--tg-border-default);
    border-radius: var(--tg-radius-sm);
    align-items: center;
    justify-content: center;
    color: var(--tg-color-text-strong);
    background: var(--tg-color-surface);
    font-size: var(--tg-font-size-xs);
    font-weight: 700;
    white-space: nowrap;
}
.tg-pagination-button { min-width: 94px; }
.tg-export-format { display: inline-flex; min-height: 34px; padding: 0.4rem 0.65rem; border: var(--tg-border-default); border-radius: var(--tg-radius-sm); align-items: center; gap: 0.35rem; color: var(--tg-color-text); background: #fff; font-size: var(--tg-font-size-xs); font-weight: 700; }
.tg-download-state { display: inline-flex; align-items: center; gap: 0.35rem; color: var(--tg-color-muted); font-size: var(--tg-font-size-xs); }

/* Accessibility and interaction */
.tg-sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.tg-sr-only-focusable:focus,
.tg-sr-only-focusable:active { position: static !important; width: auto !important; height: auto !important; margin: 0 !important; overflow: visible !important; clip: auto !important; white-space: normal !important; }
.tg-skip-link { position: fixed; z-index: 1200; top: 0.5rem; left: 0.5rem; padding: 0.6rem 0.8rem; border-radius: var(--tg-radius-sm); color: #fff; background: var(--tg-color-primary); transform: translateY(-150%); transition: transform var(--tg-transition-fast); }
.tg-skip-link:focus { transform: translateY(0); }
.tg-focus-ring:focus-visible,
.tg-interactive:focus-visible,
.tg-clickable:focus-visible { outline: 0; box-shadow: var(--tg-focus-ring); }
.tg-touch-target { min-width: 44px; min-height: 44px; }
.tg-interactive,
.tg-clickable { cursor: pointer; transition: background-color var(--tg-transition-fast), border-color var(--tg-transition-fast), box-shadow var(--tg-transition-fast), transform var(--tg-transition-fast); }
.tg-interactive:hover,
.tg-clickable:hover { border-color: #b9cde0; box-shadow: var(--tg-shadow-raised); }
.tg-selected,
[aria-selected="true"].tg-interactive { border-color: var(--tg-color-primary); background: var(--tg-color-primary-soft); }
.tg-collapsible-trigger { display: flex; width: 100%; align-items: center; justify-content: space-between; }
.tg-collapsible-trigger .tg-chevron { transition: transform var(--tg-transition-fast); }
.tg-collapsible-trigger[aria-expanded="true"] .tg-chevron { transform: rotate(180deg); }
[hidden] { display: none !important; }

@media (max-width: 991.98px) {
    .tg-grid-3,
    .tg-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tg-infographic-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tg-summary-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .tg-workspace { grid-template-columns: minmax(0, 1fr); }
    .tg-readiness-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 575.98px) {
    .tg-container { padding-right: var(--tg-space-md); padding-left: var(--tg-space-md); }
    .tg-grid-2,
    .tg-grid-3,
    .tg-grid-4,
    .tg-form-layout-row-2,
    .tg-form-layout-row-3 { grid-template-columns: minmax(0, 1fr); }
    .tg-export-bar,
    .tg-security-header,
    .tg-executive-header,
    .tg-preview-banner { align-items: stretch; flex-direction: column; }
    .tg-executive-meta { justify-content: flex-start; }
    .tg-analytics-split,
    .tg-readiness-grid,
    .tg-infographic-grid,
    .tg-summary-grid { grid-template-columns: minmax(0, 1fr); }
    .tg-export-actions .tg-btn,
    .tg-empty-state-actions .tg-btn { width: 100%; }
    .tg-audit-item { grid-template-columns: auto minmax(0, 1fr); }
    .tg-audit-time { grid-column: 2; }
    .tg-pagination-bar { align-items: stretch; flex-direction: column; }
    .tg-pagination-summary { text-align: center; }
    .tg-pagination-controls { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); width: 100%; gap: var(--tg-space-xs); }
    .tg-pagination-button { width: 100%; min-width: 0; padding-right: 0.55rem; padding-left: 0.55rem; }
    .tg-pagination-indicator { padding-right: 0.55rem; padding-left: 0.55rem; }
}

@media (max-width: 359.98px) {
    .tg-pagination-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tg-pagination-indicator { grid-column: 1 / -1; grid-row: 1; }
}

@media (prefers-reduced-motion: reduce) {
    .tg-btn,
    .tg-interactive,
    .tg-clickable,
    .tg-collapsible-trigger .tg-chevron,
    .tg-skip-link { transition: none !important; }
    .tg-spinner,
    .tg-btn-spinner,
    .tg-skeleton { animation: none !important; }
}

@media (forced-colors: active) {
    .tg-btn,
    .tg-card,
    .tg-alert,
    .tg-badge,
    .tg-input,
    .tg-select,
    .tg-textarea { border: 1px solid CanvasText; }
    .tg-status-dot { forced-color-adjust: none; }
}

@media print {
    .tg-no-print,
    .tg-export-bar,
    .tg-toast-stack { display: none !important; }
    .tg-print-break-before { break-before: page; }
    .tg-print-break-after { break-after: page; }
    .tg-card,
    .tg-chart-card { break-inside: avoid; box-shadow: none !important; }
}

.tg-card.card,
.tg-form-card.card {
    width: 100%;
    border: var(--tg-border-default);
    border-radius: var(--tg-radius-card);
    background: var(--tg-color-surface);
    box-shadow: var(--tg-shadow-card);
}

.tg-card > .card-body,
.tg-form-card > .card-body {
    padding: var(--tg-space-md);
}

.tg-card-header,
.tg-form-card > .card-header {
    padding: 0.75rem var(--tg-space-md);
    border-bottom: 1px solid #e4ebf3;
    background: #f8fbfe;
}

.tg-table {
    margin-bottom: 0;
}

.tg-table th {
    color: #77879a;
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    background: #f7f9fc;
}

.tg-table td {
    color: #526579;
    font-size: var(--tg-font-size-body);
}

.tg-table-actions-cell {
    width: 1%;
    white-space: nowrap;
}

.tg-table-actions {
    display: inline-flex;
    min-width: max-content;
    align-items: center;
    flex-wrap: nowrap;
    gap: var(--tg-space-xs);
    vertical-align: middle;
    white-space: nowrap;
}

.tg-table-actions .tg-btn {
    min-height: 36px;
    flex: 0 0 auto;
    white-space: nowrap;
}

.tg-chart-card > .card-body {
    min-width: 0;
}

.tg-donut-card {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: center;
}

.tg-form-card label,
.tg-form-card .tg-form-label,
.tg-form-card .timeguard-preview-label {
    margin-bottom: 0.28rem;
    color: #486581;
    font-size: var(--tg-font-size-label);
    font-weight: 700;
}

.tg-input,
.tg-select,
.tg-form-card .form-control,
.tg-form-card .custom-select {
    min-height: 36px;
    border-color: var(--tg-color-border);
    border-radius: var(--tg-radius-sm);
    color: var(--tg-color-text);
    font-size: 0.76rem;
}

.tg-form-card .custom-control-label {
    padding-top: 0.05rem;
    color: #526579;
    font-size: 0.74rem;
    font-weight: 500;
}

.tg-status-active,
.tg-status-warning,
.tg-status-danger {
    display: inline-block;
    padding: 0.25rem 0.5rem;
    border-radius: 999px;
    font-size: var(--tg-font-size-label);
    font-weight: 700;
}

.tg-status-active {
    color: var(--tg-color-success);
    background: #e8f6f0;
}

.tg-status-warning {
    color: var(--tg-color-warning);
    background: #fff4df;
}

.tg-status-danger {
    color: var(--tg-color-danger);
    background: #fbeaec;
}

.tg-grid,
.tg-section {
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
}

.tg-section {
    margin-bottom: var(--tg-space-lg);
}

/* Dashboard and intelligence component defaults. */
.super-admin-dashboard {
        overflow-x: hidden;
    }

    .super-admin-dashboard .timeguard-dashboard-heading {
        padding: 0.15rem 0 0.85rem;
        border-bottom: 1px solid var(--tg-border);
    }

    .super-admin-dashboard .timeguard-heading-icon,
    .super-admin-dashboard .timeguard-kpi-icon,
    .super-admin-dashboard .timeguard-status-icon,
    .super-admin-dashboard .timeguard-widget-icon {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        border-radius: 12px;
    }

    .super-admin-dashboard .timeguard-heading-icon {
        width: 42px;
        height: 42px;
        color: #fff;
        background: var(--tg-blue);
        box-shadow: 0 7px 16px rgba(5, 87, 158, 0.2);
    }

    .super-admin-dashboard .timeguard-heading-kicker {
        color: var(--tg-blue);
        font-size: 0.7rem;
        font-weight: 700;
        letter-spacing: 0.08em;
        text-transform: uppercase;
    }

    .super-admin-dashboard .timeguard-dashboard-heading h3,
    .super-admin-dashboard .timeguard-section-title {
        color: var(--tg-navy);
        font-weight: 650;
    }

    .super-admin-dashboard .timeguard-section {
        margin-bottom: 1.25rem;
    }

    .super-admin-dashboard .timeguard-panel {
        width: 100%;
        border: 1px solid var(--tg-border);
        border-radius: 14px;
        background: #fff;
        box-shadow: 0 7px 20px rgba(23, 54, 77, 0.07);
    }

    .super-admin-dashboard .timeguard-kpi-card {
        overflow: hidden;
        border: 0;
        color: #fff;
        background: var(--tg-accent, var(--tg-blue));
        box-shadow: 0 9px 22px rgba(23, 54, 77, 0.14);
    }

    .super-admin-dashboard .timeguard-kpi-card .card-body {
        padding: 1.1rem;
    }

    .super-admin-dashboard .timeguard-kpi-value {
        color: #fff;
        font-size: clamp(1.8rem, 4vw, 2.3rem);
        font-weight: 700;
        line-height: 1;
    }

    .super-admin-dashboard .timeguard-kpi-label {
        color: #fff;
        font-size: 0.78rem;
        font-weight: 700;
        letter-spacing: 0.04em;
        text-transform: uppercase;
    }

    .super-admin-dashboard .timeguard-kpi-description {
        color: rgba(255, 255, 255, 0.78);
        font-size: 0.73rem;
        line-height: 1.35;
    }

    .super-admin-dashboard .timeguard-kpi-icon {
        width: 42px;
        height: 42px;
        color: #fff;
        background: rgba(255, 255, 255, 0.17);
    }

    .super-admin-dashboard .timeguard-accent-blue {
        --tg-accent: var(--tg-blue);
        --tg-soft: #eaf3fb;
    }

    .super-admin-dashboard .timeguard-accent-green {
        --tg-accent: var(--tg-green);
        --tg-soft: #e8f6f0;
    }

    .super-admin-dashboard .timeguard-accent-amber {
        --tg-accent: var(--tg-amber);
        --tg-soft: #fff4df;
    }

    .super-admin-dashboard .timeguard-accent-red {
        --tg-accent: var(--tg-red);
        --tg-soft: #fbeaec;
    }

    .super-admin-dashboard .timeguard-accent-navy {
        --tg-accent: var(--tg-navy);
        --tg-soft: #e9eef2;
    }

    .super-admin-dashboard .timeguard-status-card {
        width: 100%;
        border: 1px solid var(--tg-border);
        border-left: 4px solid var(--tg-accent);
        border-radius: 12px;
        background: #fff;
    }

    .super-admin-dashboard .timeguard-status-card .card-body {
        padding: 0.9rem;
    }

    .super-admin-dashboard .timeguard-status-icon,
    .super-admin-dashboard .timeguard-widget-icon {
        width: 36px;
        height: 36px;
        color: var(--tg-accent);
        background: var(--tg-soft);
    }

    .super-admin-dashboard .timeguard-status-value {
        color: var(--tg-navy);
        font-size: 1.6rem;
        font-weight: 700;
        line-height: 1;
    }

    .super-admin-dashboard .timeguard-chart-card .card-body {
        display: flex;
        min-width: 0;
        min-height: 390px;
        padding: 1rem;
        flex-direction: column;
    }

    .super-admin-dashboard .timeguard-chart-header {
        padding-bottom: 0.75rem;
        border-bottom: 1px solid var(--tg-border);
    }

    .super-admin-dashboard .timeguard-chart-stage {
        display: flex;
        min-width: 0;
        min-height: 290px;
        flex: 1 1 auto;
        align-items: center;
        justify-content: center;
        overflow: hidden;
    }

    .super-admin-dashboard .timeguard-chart-stage svg {
        max-width: 100%;
    }

    .super-admin-dashboard .timeguard-chart-insight {
        padding: 0.4rem 0.6rem;
        color: var(--tg-blue);
        font-size: 0.72rem;
        font-weight: 700;
        border-radius: 9px;
        background: #edf5fb;
    }

    .super-admin-dashboard .timeguard-executive-widget {
        border-left: 4px solid var(--tg-accent);
    }

    .super-admin-dashboard .timeguard-executive-widget .card-body {
        padding: 0.95rem;
    }

    .super-admin-dashboard .timeguard-empty-state {
        width: 100%;
        margin: 0;
        border: 1px dashed #d6e0e9;
        border-radius: 10px;
        background: #f8fafc;
    }

    @media (max-width: 575.98px) {
        .super-admin-dashboard .timeguard-chart-header {
            flex-direction: column;
        }

        .super-admin-dashboard .timeguard-chart-insight {
            margin-top: 0.55rem;
            align-self: flex-start;
        }

        .super-admin-dashboard .timeguard-chart-card .card-body {
            min-height: 365px;
        }

        .super-admin-dashboard .timeguard-chart-stage {
            min-height: 270px;
        }
    }

    .super-admin-dashboard {
        min-height: 100%;
        padding: 0;
        font-family: var(--tg-font-family);
        background: var(--tg-color-page);
    }

    .super-admin-dashboard .timeguard-analytics-shell {
        width: 100%;
        max-width: 1440px;
        margin: 0 auto;
    }

    .super-admin-dashboard .timeguard-analytics-shell,
    .super-admin-dashboard .kpi-strip,
    .super-admin-dashboard .main-panel,
    .super-admin-dashboard .intelligence-summary-strip,
    .super-admin-dashboard .intelligence-row {
        border: none !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    .super-admin-dashboard .timeguard-analytics-header {
        margin-bottom: 0.85rem;
    }

    .super-admin-dashboard .timeguard-analytics-header h3 {
        color: #172b3d;
        font-size: 1.25rem;
        font-weight: 700;
    }

    .super-admin-dashboard .timeguard-analytics-header p {
        color: #718196;
        font-size: 0.82rem;
    }

    .super-admin-dashboard .kpi-strip .kpi-card,
    .super-admin-dashboard .main-panel .table-card,
    .super-admin-dashboard .main-panel .chart-card {
        border-color: #d8e4f0;
        border-radius: 10px;
        background: #fff;
    }

    .super-admin-dashboard .main-panel .table-card,
    .super-admin-dashboard .main-panel .chart-card {
        margin-bottom: 0;
    }

    .super-admin-dashboard .intelligence-summary-strip .tg-card-header {
        background: transparent;
    }

    .super-admin-dashboard .timeguard-analytics-kpi {
        min-height: 118px;
    }

    .super-admin-dashboard .timeguard-analytics-kpi-label {
        color: #718196;
        font-size: 0.68rem;
        font-weight: 700;
        letter-spacing: 0.07em;
        text-transform: uppercase;
    }

    .super-admin-dashboard .timeguard-analytics-kpi-value {
        color: #152d43;
        font-size: clamp(1.8rem, 3vw, 2.25rem);
        font-weight: 700;
        line-height: 1;
    }

    .super-admin-dashboard .timeguard-analytics-kpi-icon {
        display: inline-flex;
        width: 38px;
        height: 38px;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
        color: #05579e;
        border-radius: 8px;
        background: #edf5fb;
    }

    .super-admin-dashboard .timeguard-analytics-support {
        color: #8190a2;
        font-size: 0.73rem;
        line-height: 1.35;
    }

    .super-admin-dashboard .timeguard-analytics-card-title {
        color: #1c3347;
        font-size: 0.92rem;
        font-weight: 700;
    }

    .super-admin-dashboard .timeguard-analytics-card-subtitle {
        color: #8190a2;
        font-size: 0.74rem;
    }

    .super-admin-dashboard .timeguard-business-table {
        min-width: 720px;
    }

    .super-admin-dashboard .timeguard-data-unavailable {
        padding: 1.25rem 1rem;
        color: #8492a4;
        text-align: center;
    }

    .super-admin-dashboard .timeguard-mini-chart {
        min-width: 0;
        min-height: 220px;
    }

    .super-admin-dashboard .timeguard-intelligence-chart {
        width: 100%;
        min-width: 0;
        min-height: 250px;
    }

    .super-admin-dashboard .timeguard-compact-chart {
        display: flex;
        min-height: 260px;
        align-items: center;
        justify-content: center;
    }

    .super-admin-dashboard .analytics-panel-col .card-body {
        padding: 0.95rem;
    }

    .super-admin-dashboard .timeguard-donut-grid {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 0.75rem;
    }

    .super-admin-dashboard .timeguard-donut-panel {
        min-width: 0;
        padding: 0.25rem 0 0;
    }

    .super-admin-dashboard .timeguard-donut-panel + .timeguard-donut-panel {
        padding-top: 0.75rem;
        border-top: 1px solid #edf1f5;
    }

    .super-admin-dashboard .timeguard-donut-panel .c3 {
        width: 100%;
        margin: 0 auto;
    }

    .super-admin-dashboard .timeguard-donut-panel .c3-chart-arcs-title {
        fill: #17364d;
        font-family: "DM Sans", "Segoe UI", Arial, sans-serif;
        font-size: 1.25rem;
        font-weight: 700;
    }

    .super-admin-dashboard .analytics-panel-col .c3-legend-item {
        font-size: 9px;
    }

    .super-admin-dashboard .timeguard-preview-section {
        margin-top: 1rem;
        padding-top: 1rem;
        border-top: 1px solid #d8e4f0;
    }

    .super-admin-dashboard .timeguard-preview-heading {
        margin-bottom: 0.85rem;
    }

    .super-admin-dashboard .timeguard-preview-heading h3 {
        color: #172b3d;
        font-size: 1.05rem;
        font-weight: 700;
    }

    .super-admin-dashboard .timeguard-preview-note {
        color: #8190a2;
        font-size: 0.7rem;
    }

    @media (min-width: 1200px) {
        .super-admin-dashboard .main-panel .business-panel-col {
            flex: 0 0 65%;
            max-width: 65%;
        }

        .super-admin-dashboard .main-panel .analytics-panel-col {
            flex: 0 0 35%;
            max-width: 35%;
        }
    }

    @media (min-width: 768px) and (max-width: 1199.98px) {
        .super-admin-dashboard .timeguard-donut-grid {
            grid-template-columns: repeat(2, minmax(0, 1fr));
        }

        .super-admin-dashboard .timeguard-donut-panel + .timeguard-donut-panel {
            padding-top: 0.25rem;
            padding-left: 0.75rem;
            border-top: 0;
            border-left: 1px solid #edf1f5;
        }
    }

    .super-admin-dashboard .timeguard-attendance-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.65rem;
    }

    .super-admin-dashboard .timeguard-attendance-stat {
        padding: 0.7rem;
        border: 1px solid #e4ebf3;
        border-radius: 8px;
        background: #f9fbfd;
    }

    .super-admin-dashboard .timeguard-attendance-stat strong {
        display: block;
        color: #17364d;
        font-size: 1.15rem;
    }

    .super-admin-dashboard .timeguard-attendance-stat span {
        color: #8190a2;
        font-size: 0.68rem;
    }

    .super-admin-dashboard .timeguard-device-table {
        min-width: 880px;
    }

    .super-admin-dashboard .timeguard-status-pill {
        display: inline-block;
        padding: 0.25rem 0.5rem;
        border-radius: 999px;
        background: #edf5fb;
        color: #05579e;
        font-size: 0.68rem;
        font-weight: 700;
    }

    .super-admin-dashboard .timeguard-workforce-placeholder {
        display: flex;
        min-height: 104px;
        align-items: center;
        justify-content: center;
        color: #8492a4;
        font-size: 0.75rem;
        text-align: center;
        border: 1px dashed #d8e1eb;
        background: #fafbfd;
    }

    .super-admin-dashboard .timeguard-analysis-value {
        color: #17364d;
        font-size: 1.45rem;
        font-weight: 700;
    }

    .super-admin-dashboard .timeguard-analysis-list li {
        padding: 0.45rem 0;
        color: #617286;
        font-size: 0.76rem;
        border-bottom: 1px solid #edf1f5;
    }

    .super-admin-dashboard .timeguard-analysis-list li:last-child {
        border-bottom: 0;
    }

    @media (max-width: 575.98px) {
        .super-admin-dashboard {
            padding: 0;
        }

        .super-admin-dashboard .timeguard-analytics-card .card-body {
            padding: 0.85rem;
        }

        .super-admin-dashboard .timeguard-analytics-kpi {
            min-height: 110px;
        }

        .super-admin-dashboard .timeguard-attendance-grid {
            grid-template-columns: 1fr;
        }
    }

/* ========================================================================
   TIMEGUARD_DESIGN_SYSTEM_IMAGE_UPLOAD_V1
   Reusable image / avatar upload presentation.
   Interaction foundation derived from the existing TimeGuard avatar-upload
   pattern while using governed TimeGuard Design System tokens.
   ======================================================================== */

.tg-image-upload {
    position: relative;
    width: min(100%, 210px);
    margin: 0;
}

.tg-image-upload-preview {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border: var(--tg-border-default);
    border-radius: var(--tg-radius-card);
    background:
        linear-gradient(
            145deg,
            var(--tg-color-surface-muted),
            var(--tg-color-surface)
        );
    box-shadow: var(--tg-shadow-card);
}

.tg-image-upload-preview-image {
    width: 100%;
    height: 100%;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    transition: opacity 180ms ease;
}

.tg-image-upload-placeholder {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--tg-space-sm);
    padding: var(--tg-space-lg);
    color: var(--tg-color-text-muted);
    text-align: center;
}

.tg-image-upload-placeholder svg {
    width: 36px;
    height: 36px;
    stroke-width: 1.6;
}

.tg-image-upload-action {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 2;
    display: inline-flex;
    width: 38px;
    height: 38px;
    align-items: center;
    justify-content: center;
    margin: 0;
    border: var(--tg-border-default);
    border-radius: 50%;
    color: var(--tg-color-primary);
    background: var(--tg-color-surface);
    box-shadow: var(--tg-shadow-card);
    cursor: pointer;
    transition:
        transform 160ms ease,
        background 160ms ease,
        border-color 160ms ease,
        box-shadow 160ms ease;
}

.tg-image-upload-action:hover {
    color: var(--tg-color-primary-hover);
    background: var(--tg-color-primary-soft);
    border-color: var(--tg-color-primary);
    transform: translateY(-1px);
}

.tg-image-upload-action:focus-within,
.tg-image-upload-action:focus-visible {
    outline: 0;
    box-shadow: var(--tg-focus-ring);
}

.tg-image-upload-action svg {
    width: 18px;
    height: 18px;
}

.tg-image-upload-input {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.tg-image-upload-help {
    display: block;
    margin-top: var(--tg-space-sm);
    color: var(--tg-color-text-muted);
    font-size: var(--tg-font-size-xs);
    line-height: var(--tg-line-height);
}

.tg-image-upload-state {
    display: inline-flex;
    margin-top: var(--tg-space-sm);
}

.tg-image-upload.is-invalid .tg-image-upload-preview {
    border-color: var(--tg-color-danger);
    box-shadow: 0 0 0 1px var(--tg-color-danger);
}

.tg-image-upload.is-disabled {
    opacity: 0.62;
}

.tg-image-upload.is-disabled .tg-image-upload-action {
    pointer-events: none;
    cursor: not-allowed;
}

.tg-image-upload.is-disabled .tg-image-upload-preview {
    background: var(--tg-color-surface-muted);
}

html[data-tg-theme="dark"] #main-wrapper .tg-image-upload-preview {
    background:
        linear-gradient(
            145deg,
            var(--tg-color-surface-muted),
            var(--tg-color-surface)
        );
}

html[data-tg-theme="dark"] #main-wrapper .tg-image-upload-action {
    color: var(--tg-color-primary);
    background: var(--tg-color-surface);
    border-color: var(--tg-color-border);
}

@media (max-width: 575.98px) {
    .tg-image-upload {
        width: min(100%, 190px);
    }

    .tg-image-upload-action {
        width: 42px;
        height: 42px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .tg-image-upload-preview-image,
    .tg-image-upload-action {
        transition: none;
    }
}

/* TIMEGUARD_ACCOUNT_MENU_DESIGN_V1_BEGIN */

html[data-tg-theme] #main-wrapper .tg-account-menu {
    min-width: 280px;
    padding: 10px;
    margin-top: 10px;
    overflow: hidden;
    background: var(--tg-color-surface, #ffffff);
    border: 1px solid var(--tg-color-border, #e8eef3);
    border-radius: var(--tg-radius-card, 12px);
    box-shadow: var(--tg-shadow-modal, 0 14px 40px rgba(28,45,65,.14));
}

html[data-tg-theme] #main-wrapper .tg-account-menu .dropdown-item {
    position: relative;
    display: flex;
    min-height: 48px;
    margin: 2px 0;
    padding: .72rem .85rem;
    align-items: center;
    gap: .7rem;
    color: var(--tg-color-text, #52606d);
    font-size: .875rem;
    font-weight: 600;
    line-height: 1.25;
    background: transparent;
    border: 1px solid transparent;
    border-radius: var(--tg-radius-control, 9px);
    transition:
        color 160ms ease,
        background-color 160ms ease,
        border-color 160ms ease,
        transform 160ms ease;
}

html[data-tg-theme] #main-wrapper .tg-account-menu .dropdown-item .svg-icon {
    width: 18px;
    height: 18px;
    min-width: 18px;
    margin: 0 !important;
    color: var(--tg-color-text-muted, #7c8798);
}

html[data-tg-theme] #main-wrapper .tg-account-menu .dropdown-item:hover,
html[data-tg-theme] #main-wrapper .tg-account-menu .dropdown-item:focus {
    color: var(--tg-color-text-strong, #1c2d41);
    background: var(--tg-color-surface-muted, #f5f8fb);
    border-color: var(--tg-color-border, #e8eef3);
    outline: 0;
    transform: translateX(2px);
}

html[data-tg-theme] #main-wrapper .tg-account-menu .dropdown-item:hover .svg-icon,
html[data-tg-theme] #main-wrapper .tg-account-menu .dropdown-item:focus .svg-icon {
    color: var(--tg-color-primary, #5f76e8);
}

html[data-tg-theme] #main-wrapper .tg-account-menu .dropdown-item.active,
html[data-tg-theme] #main-wrapper .tg-account-menu .dropdown-item.active:hover,
html[data-tg-theme] #main-wrapper .tg-account-menu .dropdown-item.active:focus {
    color: var(--tg-color-primary, #5f76e8);
    background: var(--tg-color-primary-soft, #eef1ff);
    border-color: #dfe4fa;
    transform: none;
    box-shadow: none;
}

html[data-tg-theme] #main-wrapper .tg-account-menu .dropdown-item.active::before {
    position: absolute;
    top: 10px;
    bottom: 10px;
    left: 0;
    width: 3px;
    content: "";
    background: var(--tg-color-primary, #5f76e8);
    border-radius: 0 4px 4px 0;
}

html[data-tg-theme] #main-wrapper .tg-account-menu .dropdown-item.active .svg-icon {
    color: var(--tg-color-primary, #5f76e8);
}

html[data-tg-theme] #main-wrapper .tg-account-menu .dropdown-divider {
    margin: 7px 4px;
    border-top-color: var(--tg-color-border, #edf2f9);
}

html[data-tg-theme] #main-wrapper .tg-account-menu .dropdown-item.logout {
    margin-top: 8px;
    color: var(--tg-color-danger, #ff4f70);
    background: var(--tg-color-danger-soft, #fff2f5);
    border-color: #ffdce2;
}

html[data-tg-theme] #main-wrapper .tg-account-menu .dropdown-item.logout .svg-icon {
    color: var(--tg-color-danger, #ff4f70);
}

html[data-tg-theme] #main-wrapper .tg-account-menu .dropdown-item.logout:hover,
html[data-tg-theme] #main-wrapper .tg-account-menu .dropdown-item.logout:focus {
    color: #ffffff;
    background: var(--tg-color-danger, #ff4f70);
    border-color: var(--tg-color-danger, #ff4f70);
    transform: translateY(-1px);
}

html[data-tg-theme] #main-wrapper .tg-account-menu .dropdown-item.logout:hover .svg-icon,
html[data-tg-theme] #main-wrapper .tg-account-menu .dropdown-item.logout:focus .svg-icon {
    color: #ffffff;
}

html[data-tg-theme] #main-wrapper .tg-account-menu .dropdown-item:focus-visible {
    outline: 0;
    box-shadow: var(--tg-focus-ring, 0 0 0 3px rgba(95,118,232,.18));
}

@media (max-width: 575.98px) {
    html[data-tg-theme] #main-wrapper .tg-account-menu {
        width: min(92vw, 320px);
        min-width: 0;
        padding: 8px;
    }

    html[data-tg-theme] #main-wrapper .tg-account-menu .dropdown-item {
        min-height: 50px;
        padding: .78rem .8rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    html[data-tg-theme] #main-wrapper .tg-account-menu .dropdown-item {
        transition: none;
    }
}

/* TIMEGUARD_ACCOUNT_MENU_DESIGN_V1_END */

/* TIMEGUARD_ACCOUNT_ACTIVE_TEXT_V2_BEGIN
   Active account-menu text contrast refinement.
   Preserve soft-primary selector and primary icon/indicator.
*/

html[data-tg-theme] #main-wrapper .tg-account-menu .dropdown-item.active,
html[data-tg-theme] #main-wrapper .tg-account-menu .dropdown-item.active:hover,
html[data-tg-theme] #main-wrapper .tg-account-menu .dropdown-item.active:focus,
html[data-tg-theme] #main-wrapper .tg-account-menu .dropdown-item.active:active {
    color: var(--tg-color-text-strong, #17364d) !important;
    font-weight: 700;
}

html[data-tg-theme] #main-wrapper .tg-account-menu .dropdown-item.active .svg-icon,
html[data-tg-theme] #main-wrapper .tg-account-menu .dropdown-item.active:hover .svg-icon,
html[data-tg-theme] #main-wrapper .tg-account-menu .dropdown-item.active:focus .svg-icon,
html[data-tg-theme] #main-wrapper .tg-account-menu .dropdown-item.active:active .svg-icon {
    color: var(--tg-color-primary, #05579e) !important;
}

/* TIMEGUARD_ACCOUNT_ACTIVE_TEXT_V2_END */

/* TIMEGUARD_GLOBAL_TOPBAR_DESIGN_V1_BEGIN
   Global application-shell navbar.
*/

#main-wrapper[data-tg-global-shell="true"] {
    --tg-shell-topbar-height: 64px;
}

#main-wrapper[data-tg-global-shell="true"]
.topbar[data-tg-global-topbar="true"]
.top-navbar {
    min-height: var(--tg-shell-topbar-height);
}

#main-wrapper[data-tg-global-shell="true"]
.topbar[data-tg-global-topbar="true"]
.top-navbar .navbar-header {
    min-height: var(--tg-shell-topbar-height);
    line-height: var(--tg-shell-topbar-height);
}

#main-wrapper[data-tg-global-shell="true"]
.topbar[data-tg-global-topbar="true"]
.top-navbar .navbar-header .navbar-brand {
    height: var(--tg-shell-topbar-height);
}

#main-wrapper[data-tg-global-shell="true"]
.topbar[data-tg-global-topbar="true"]
.top-navbar
.navbar-nav > .nav-item > .nav-link {
    display: flex;
    min-height: var(--tg-shell-topbar-height);
    padding-top: 0;
    padding-bottom: 0;
    align-items: center;
    line-height: var(--tg-shell-topbar-height);
}

#main-wrapper[data-tg-global-shell="true"]
.topbar[data-tg-global-topbar="true"]
.navbar-collapse {
    min-height: var(--tg-shell-topbar-height);
}

#main-wrapper[data-tg-global-shell="true"]
.tg-global-redundant-settings {
    display: none !important;
}

#main-wrapper[data-tg-global-shell="true"]
.tg-global-account-trigger {
    gap: 8px;
}

#main-wrapper[data-tg-global-shell="true"]
.tg-navbar-legacy-user-image {
    display: none !important;
}

#main-wrapper[data-tg-global-shell="true"]
.tg-navbar-avatar {
    display: inline-flex;
    width: 34px;
    height: 34px;
    min-width: 34px;
    overflow: hidden;
    align-items: center;
    justify-content: center;
    color: var(--tg-color-primary, #05579e);
    background:
        var(--tg-color-primary-soft, #eef5ff)
        center center / cover no-repeat;
    border: 1px solid
        var(--tg-color-border, #e8eef3);
    border-radius: 50%;
    box-shadow:
        0 2px 7px rgba(28,45,65,.08);
}

#main-wrapper[data-tg-global-shell="true"]
.tg-navbar-avatar.has-image {
    color: transparent;
    background-position: center center;
    background-size: cover;
}

#main-wrapper[data-tg-global-shell="true"]
.tg-navbar-avatar.has-image .icon-user {
    visibility: hidden;
}

#main-wrapper[data-tg-global-shell="true"]
.tg-global-notification-control .notify-no {
    top: 8px !important;
    right: 2px !important;
}

#main-wrapper[data-tg-global-shell="true"]
.tg-global-notification-control
.notify-no[hidden] {
    display: none !important;
}

#main-wrapper[data-tg-global-shell="true"]
.tg-navbar-empty-state {
    display: flex;
    min-height: 145px;
    padding: 24px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 7px;
    color: var(--tg-color-text-muted, #7c8798);
    text-align: center;
}

#main-wrapper[data-tg-global-shell="true"]
.tg-navbar-empty-state strong {
    color: var(--tg-color-text-strong, #17364d);
    font-size: .875rem;
}

#main-wrapper[data-tg-global-shell="true"]
.tg-navbar-empty-state span {
    max-width: 220px;
    font-size: .78rem;
    line-height: 1.45;
}

#main-wrapper[data-tg-global-shell="true"]
.tg-global-notification-footer[aria-disabled="true"] {
    cursor: default;
    opacity: .65;
    pointer-events: none;
}

/* Override the vendor fixed-header 80px geometry. */
#main-wrapper[data-tg-global-shell="true"]
[data-tg-global-topbar="true"] {
    min-height: var(--tg-shell-topbar-height);
}

#main-wrapper[data-tg-global-shell="true"]
.left-sidebar {
    padding-top: var(--tg-shell-topbar-height);
}

#main-wrapper[data-tg-global-shell="true"][data-header-position="fixed"]
.page-wrapper {
    padding-top: var(--tg-shell-topbar-height);
}

@media (max-width: 767.98px) {
    #main-wrapper[data-tg-global-shell="true"]
    .topbar
    .top-navbar
    .navbar-collapse {
        top: var(--tg-shell-topbar-height);
    }

    #main-wrapper[data-tg-global-shell="true"]
    .tg-navbar-avatar {
        width: 32px;
        height: 32px;
        min-width: 32px;
    }
}

@media (max-width: 575.98px) {
    #main-wrapper[data-tg-global-shell="true"]
    .topbar
    .top-navbar
    .navbar-nav > .nav-item > .nav-link {
        padding-right: 8px;
        padding-left: 8px;
    }
}

/* TIMEGUARD_GLOBAL_TOPBAR_DESIGN_V1_END */

/* TIMEGUARD_GLOBAL_MOBILE_NAVBAR_V2_BEGIN
   Mobile application-shell control visibility and icon authority.
*/

@media (max-width: 767.98px) {
    #main-wrapper[data-tg-global-shell="true"]
    .tg-mobile-sidebar-toggle,
    #main-wrapper[data-tg-global-shell="true"]
    .tg-mobile-topbar-toggle {
        display: inline-flex !important;
        width: 40px;
        height: 40px;
        align-items: center;
        justify-content: center;
        padding: 0;
        line-height: 1;
    }

    #main-wrapper[data-tg-global-shell="true"]
    .tg-mobile-sidebar-toggle .svg-icon,
    #main-wrapper[data-tg-global-shell="true"]
    .tg-mobile-topbar-toggle .svg-icon {
        width: 20px;
        height: 20px;
    }

    #main-wrapper[data-tg-global-shell="true"]
    .tg-global-language-source {
        display: flex !important;
        align-items: center;
    }

    #main-wrapper[data-tg-global-shell="true"]
    .tg-global-language-source > .nav-link {
        display: flex;
        min-height: var(--tg-shell-topbar-height);
        padding-right: 6px;
        padding-left: 6px;
        align-items: center;
    }

    #main-wrapper[data-tg-global-shell="true"]
    .tg-global-language-source .customize-input {
        margin: 0;
    }

    #main-wrapper[data-tg-global-shell="true"]
    .tg-global-language-source .custom-select {
        width: 62px;
        min-width: 62px;
        height: 38px;
        padding: .25rem 1.45rem .25rem .55rem;
        font-size: .78rem;
        line-height: 1.2;
    }
}

@media (max-width: 420px) {
    #main-wrapper[data-tg-global-shell="true"]
    .tg-global-language-source .custom-select {
        width: 58px;
        min-width: 58px;
    }
}

/* TIMEGUARD_GLOBAL_MOBILE_NAVBAR_V2_END */

/* GLOBAL IDENTITY MEDIA CARD */

.tg-identity-media-card {
    display:grid;
    grid-template-columns:320px 1fr;
    gap:24px;
    align-items:start;
}

.tg-identity-media-card-image {
    width:100%;
    aspect-ratio:1/1;
    overflow:hidden;
}

.tg-identity-media-card-image img {
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
}

.tg-identity-media-card-content {
    min-width:0;
}

@media(max-width:768px){

    .tg-identity-media-card {
        grid-template-columns:1fr;
    }

}


/* 33D1E-H1 IDENTITY MEDIA CARD POLISH */

.tg-identity-media-card {
    min-height:420px;
}

.tg-identity-media-card-image {
    display:flex;
    align-items:center;
    justify-content:center;
    background:#ffffff;
    border-radius:16px;
    overflow:hidden;
    padding:16px;
}

.tg-identity-media-card-image img {
    max-width:100%;
    max-height:360px;
    object-fit:cover;
    object-position:center;
    border-radius:12px;
}

.tg-identity-media-card-content {
    height:100%;
}


@media(max-width:768px){

    .tg-identity-media-card {
        min-height:auto;
    }

}


/* TIMEGUARD USERS COMPACT IDENTITY PRESENTATION */

.tg-user-identity-compact .tg-identity-media-card {
    display:flex;
    align-items:center;
    gap:12px;
    min-height:0;
}

.tg-user-identity-compact .tg-identity-media-card-image {
    flex:0 0 52px;
    width:52px;
    height:52px;
    aspect-ratio:1/1;
    padding:3px;
    border-radius:10px;
}

.tg-user-identity-compact .tg-identity-media-card-image img {
    width:100%;
    height:100%;
    max-width:none;
    max-height:none;
    object-fit:cover;
    border-radius:8px;
}

.tg-user-identity-compact .tg-identity-media-card-content {
    height:auto;
    min-width:0;
}

.tg-user-identity-compact .tg-identity-media-card-content strong {
    display:block;
    line-height:1.25;
}

.tg-user-identity-compact .tg-identity-media-card-content .tg-caption {
    margin-top:2px;
}

@media(max-width:768px) {
    .tg-user-identity-compact .tg-identity-media-card {
        display:flex;
        grid-template-columns:none;
    }

    .tg-user-identity-compact .tg-identity-media-card-image {
        width:44px;
        height:44px;
        flex-basis:44px;
    }
}

/* TIMEGUARD USERS COMPACT IDENTITY PRESENTATION END */

/* TIMEGUARD USER ONBOARDING IMAGE SIDE LAYOUT */

.tg-user-onboarding-identity-grid {
    display:grid;
    grid-template-columns:220px minmax(0, 1fr);
    gap:20px;
    align-items:start;
    width:100%;
}

.tg-user-onboarding-image-column {
    min-width:0;
}

.tg-user-onboarding-fields-column {
    min-width:0;
}

.tg-user-onboarding-fields-column [data-user-new-identity] {
    display:flex;
    flex-direction:column;
    gap:12px;
}

.tg-user-onboarding-fields-column .tg-form-layout-row,
.tg-user-onboarding-fields-column .tg-grid {
    margin-bottom:0;
}

@media(max-width:768px) {
    .tg-user-onboarding-identity-grid {
        grid-template-columns:1fr;
        gap:16px;
    }

    .tg-user-onboarding-image-column {
        max-width:220px;
    }
}

/* TIMEGUARD USER ONBOARDING IMAGE SIDE LAYOUT END */

/* TIMEGUARD ADD ADMINISTRATIVE USER MODAL POLISH */

#timeguard-user-modal .modal-dialog {
    max-width:920px;
}

#timeguard-user-modal .modal-body {
    padding:20px;
}

#timeguard-user-modal .tg-form-layout {
    gap:16px;
}

#timeguard-user-modal .tg-user-onboarding-identity-grid {
    grid-template-columns:190px minmax(0,1fr);
    gap:24px;
    align-items:start;
}

#timeguard-user-modal .tg-user-onboarding-image-column {
    width:190px;
}

#timeguard-user-modal .tg-user-onboarding-fields-column {
    width:100%;
}

#timeguard-user-modal .tg-user-onboarding-fields-column [data-user-new-identity] {
    gap:16px;
}

#timeguard-user-modal .tg-user-onboarding-fields-column .tg-form-layout-row-2 {
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:14px;
    align-items:start;
}

#timeguard-user-modal .tg-user-onboarding-fields-column .tg-grid-3 {
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
}

#timeguard-user-modal .tg-user-onboarding-fields-column .tg-field {
    min-width:0;
    margin-bottom:0;
}

#timeguard-user-modal .tg-user-onboarding-fields-column .tg-help-text {
    margin-top:6px;
    line-height:1.35;
    max-width:320px;
}

#timeguard-user-modal .tg-input,
#timeguard-user-modal .tg-select {
    width:100%;
}

#timeguard-user-modal fieldset[data-user-scope],
#timeguard-user-modal fieldset.tg-field {
    min-width:0;
}

#timeguard-user-modal fieldset.tg-field > label {
    display:inline-flex;
    align-items:flex-start;
    gap:6px;
    width:calc(33.333% - 8px);
    padding:5px 6px;
    margin:0 4px 6px 0;
    vertical-align:top;
    line-height:1.3;
    border-radius:6px;
}

#timeguard-user-modal fieldset.tg-field > label input[type="checkbox"] {
    flex:0 0 auto;
    margin-top:2px;
}

#timeguard-user-modal .modal-footer {
    padding:14px 20px;
}

@media(max-width:768px) {
    #timeguard-user-modal .modal-dialog {
        max-width:none;
        margin:8px;
    }

    #timeguard-user-modal .tg-user-onboarding-identity-grid {
        grid-template-columns:1fr;
        gap:16px;
    }

    #timeguard-user-modal .tg-user-onboarding-image-column {
        width:100%;
        max-width:190px;
    }

    #timeguard-user-modal .tg-user-onboarding-fields-column .tg-form-layout-row-2,
    #timeguard-user-modal .tg-user-onboarding-fields-column .tg-grid-3 {
        grid-template-columns:1fr;
    }

    #timeguard-user-modal fieldset.tg-field > label {
        width:100%;
        margin-right:0;
    }
}

/* TIMEGUARD ADD ADMINISTRATIVE USER MODAL POLISH END */

/* TIMEGUARD SCALABLE USER ACCESS SCOPE */

#timeguard-user-modal .tg-user-scope-fieldset {
    padding:0;
    border:0;
}

#timeguard-user-modal .tg-user-scope-heading {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    margin-bottom:10px;
}

#timeguard-user-modal .tg-user-scope-search {
    margin-bottom:10px;
}

#timeguard-user-modal .tg-user-scope-list {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:6px 12px;
    max-height:240px;
    overflow-y:auto;
    padding:12px;
    border:1px solid var(--tg-border, #dbe3ec);
    border-radius:10px;
    background:#fff;
}

#timeguard-user-modal .tg-user-scope-group-title {
    grid-column:1 / -1;
    margin-top:6px;
    padding:7px 4px 4px;
    font-size:11px;
    font-weight:700;
    letter-spacing:.05em;
    text-transform:uppercase;
    opacity:.7;
    border-bottom:1px solid var(--tg-border, #e7edf3);
}

#timeguard-user-modal .tg-user-scope-group-title:first-child {
    margin-top:0;
}

#timeguard-user-modal .tg-user-scope-option {
    display:flex;
    align-items:flex-start;
    gap:7px;
    width:auto;
    min-width:0;
    padding:7px 8px;
    margin:0;
    border-radius:7px;
    line-height:1.3;
    cursor:pointer;
}

#timeguard-user-modal .tg-user-scope-option:hover {
    background:rgba(0,0,0,.035);
}

#timeguard-user-modal .tg-user-scope-option input {
    flex:0 0 auto;
    margin-top:2px;
}

#timeguard-user-modal .tg-user-scope-option span {
    min-width:0;
    overflow-wrap:anywhere;
}

#timeguard-user-modal .tg-user-scope-empty {
    padding:12px;
}

@media(max-width:768px) {
    #timeguard-user-modal .tg-user-scope-list {
        grid-template-columns:1fr;
        max-height:280px;
    }
}

/* TIMEGUARD SCALABLE USER ACCESS SCOPE END */
