:root {
    --tsm-canvas: #f4f6f9;
    --tsm-surface: #ffffff;
    --tsm-surface-soft: #f8fafc;
    --tsm-border: #e2e8f0;
    --tsm-border-strong: #cbd5e1;
    --tsm-text: #172033;
    --tsm-muted: #657087;
    --tsm-primary: #2563eb;
    --tsm-primary-dark: #1d4ed8;
    --tsm-primary-soft: #eff6ff;
    --tsm-success: #11845b;
    --tsm-danger: #c53939;
    --tsm-sidebar: #111827;
    --tsm-sidebar-hover: #1d293d;
    --tsm-radius: .75rem;
    --tsm-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 24px rgba(15, 23, 42, .04);
}

body.tsm-cabinet-v2,
body.tsm-cabinet-v2 button,
body.tsm-cabinet-v2 input,
body.tsm-cabinet-v2 select,
body.tsm-cabinet-v2 textarea {
    font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
    text-transform: none !important;
}

body.tsm-cabinet-v2 {
    padding-top: 100px !important;
    color: var(--tsm-text);
    background: var(--tsm-canvas);
    -webkit-font-smoothing: antialiased;
}

.tsm-cabinet-v2 .content-wrapper-before {
    display: none !important;
}

.tsm-cabinet-v2 .app-content,
.tsm-cabinet-v2 .app-content .content-wrapper {
    background: var(--tsm-canvas) !important;
}

.tsm-cabinet-v2 .app-content .content-wrapper {
    min-height: calc(100vh - 80px);
    padding: 1.6rem 1.75rem 3rem;
}

/* Shared cabinet shell. All original links, permissions and menu behavior remain intact. */
.tsm-cabinet-v2 .main-menu.menu-light {
    color: #d7deea;
    background: var(--tsm-sidebar) !important;
    border-right: 0;
    box-shadow: 4px 0 24px rgba(15, 23, 42, .08);
}

/* Keep the navigation rail continuous even when a short role menu or a legacy
   page calculates its height from the list rather than from the viewport. */
body.tsm-cabinet-v2 .main-menu.menu-fixed {
    top: 0 !important;
    bottom: 0 !important;
    height: 100vh !important;
    min-height: 100vh !important;
}

body.tsm-cabinet-v2 .main-menu .navigation-background {
    height: 100% !important;
    min-height: 100% !important;
}

@supports (height: 100dvh) {
    body.tsm-cabinet-v2 .main-menu.menu-fixed {
        height: 100dvh !important;
        min-height: 100dvh !important;
    }
}

.tsm-cabinet-v2 .main-menu .navbar-header,
.tsm-cabinet-v2 .main-menu .navigation-background,
.tsm-cabinet-v2 .main-menu.menu-light .navigation,
.tsm-cabinet-v2 .main-menu.menu-light .navigation > li ul {
    background: var(--tsm-sidebar) !important;
}

.tsm-cabinet-v2 .main-menu .navbar-header {
    border-bottom: 1px solid rgba(255, 255, 255, .08);
}

.tsm-cabinet-v2 .main-menu .navbar-header .brand-text {
    color: #fff !important;
    font-family: Inter, sans-serif !important;
    font-weight: 700;
    letter-spacing: .04em;
}

.tsm-cabinet-v2 .main-menu.menu-light .navigation > li > a,
.tsm-cabinet-v2 .main-menu.menu-light .navigation > li ul li > a {
    margin: 2px 10px;
    color: #b7c0cf;
    border-radius: 8px;
}

/* Legacy links contain formatted whitespace after the title; Chrome can replace
   the whole label with an ellipsis even when the visible title itself fits. */
body.tsm-cabinet-v2.menu-expanded .main-menu .navigation > li > a,
body.tsm-cabinet-v2.menu-collapsed .main-menu.expanded .navigation > li > a {
    overflow: visible !important;
    text-overflow: clip !important;
}

.tsm-cabinet-v2 .main-menu.menu-light .navigation > li > a > i,
.tsm-cabinet-v2 .main-menu.menu-light .navigation > li ul li > a > i {
    color: #7f8ba0;
}

.tsm-cabinet-v2 .main-menu.menu-light .navigation > li.active > a,
.tsm-cabinet-v2 .main-menu.menu-light .navigation > li.open > a,
.tsm-cabinet-v2 .main-menu.menu-light .navigation > li > a:hover,
.tsm-cabinet-v2 .main-menu.menu-light .navigation > li ul li > a:hover,
.tsm-cabinet-v2 .main-menu.menu-light .navigation > li ul li.active > a {
    color: #fff !important;
    background: #25334a !important;
    box-shadow: inset 3px 0 #4f8cff;
}

.tsm-cabinet-v2 .main-menu.menu-light .navigation > li.active > a > i,
.tsm-cabinet-v2 .main-menu.menu-light .navigation > li.open > a > i,
.tsm-cabinet-v2 .main-menu.menu-light .navigation > li > a:hover > i {
    color: #78a7ff !important;
}

body.tsm-cabinet-v2 .header-navbar.navbar-semi-light,
body.tsm-cabinet-v2 .header-navbar .navbar-container {
    color: var(--tsm-text);
    background: linear-gradient(90deg, rgba(255, 255, 255, .99) 0%, rgba(248, 251, 255, .99) 60%, rgba(241, 246, 255, .99) 100%) !important;
}

body.tsm-cabinet-v2 .header-navbar {
    border-bottom: 1px solid #d9e4f2;
    box-shadow: 0 8px 24px rgba(30, 64, 112, .08);
}

body.tsm-cabinet-v2 .header-navbar .nav-link,
body.tsm-cabinet-v2 .header-navbar .menu-text,
body.tsm-cabinet-v2 .header-navbar .ficon {
    color: #526078 !important;
}

/* The mission is the primary message of the fixed header, not utility text. */
body.tsm-cabinet-v2 .header-navbar .text_three {
    display: flex !important;
    width: 380px !important;
    height: auto !important;
    min-height: 0 !important;
    align-items: flex-start;
    gap: .65rem;
    margin: .55rem 0 !important;
    padding: .6rem .85rem !important;
    color: #fff !important;
    background: linear-gradient(135deg, #2563eb 0%, #315fca 58%, #237d91 130%) !important;
    border: 1px solid rgba(255, 255, 255, .32) !important;
    border-radius: .72rem !important;
    box-shadow: 0 7px 18px rgba(37, 99, 235, .2) !important;
    font-size: .76rem !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
}

body.tsm-cabinet-v2 .header-navbar .text_three::before {
    display: block !important;
    width: .5rem;
    height: .5rem;
    flex: 0 0 .5rem;
    margin-top: .27rem;
    background: #fff;
    border: 0 !important;
    border-radius: 50%;
    box-shadow: 0 0 0 4px rgba(255, 255, 255, .18);
    content: "" !important;
}

.tsm-cabinet-v2 .tsm-header-logout {
    display: flex;
    align-items: center;
}

.tsm-cabinet-v2 .tsm-header-logout-button {
    display: inline-flex !important;
    height: 2.35rem;
    align-items: center;
    justify-content: center;
    gap: .42rem;
    margin: .65rem .1rem .65rem .25rem;
    padding: .5rem .72rem !important;
    color: #526078 !important;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: .5rem;
    cursor: pointer;
    font-size: .72rem;
    font-weight: 600;
    line-height: 1;
    transition: color .15s, background .15s, border-color .15s;
}

.tsm-cabinet-v2 .tsm-header-logout-button:hover,
.tsm-cabinet-v2 .tsm-header-logout-button:focus {
    color: #b42318 !important;
    background: #fff7f6;
    border-color: #f2c7c3;
    outline: none;
}

.tsm-cabinet-v2 .tsm-header-logout-button i {
    font-size: .9rem;
}

.tsm-cabinet-v2 .content-header {
    margin: 0 0 1rem;
}

.tsm-cabinet-v2 .content-header-left {
    padding: 0;
}

.tsm-cabinet-v2 .content-header-title,
.tsm-cabinet-v2 h3.content-header-title {
    color: #121b2d !important;
    font-size: 1.7rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -.025em;
}

.tsm-cabinet-v2 .card {
    background: var(--tsm-surface);
    border: 1px solid var(--tsm-border);
    border-radius: var(--tsm-radius);
    box-shadow: var(--tsm-shadow);
}

.tsm-cabinet-v2 .card .card {
    box-shadow: none;
}

.tsm-cabinet-v2 .card-header {
    color: var(--tsm-text);
    background: transparent;
    border-color: var(--tsm-border);
    font-size: .95rem;
    font-weight: 700;
}

.tsm-cabinet-v2 .card-body {
    padding: 1.15rem;
}

.tsm-cabinet-v2 .form-group label,
.tsm-cabinet-v2 label {
    color: #536075;
    font-size: .7rem;
    font-weight: 600;
}

.tsm-cabinet-v2 .form-control,
.tsm-cabinet-v2 .custom-select,
.tsm-cabinet-v2 .multiselect__tags,
.tsm-cabinet-v2 .vue-tel-input {
    color: #253047;
    background-color: #fff;
    border: 1px solid var(--tsm-border-strong) !important;
    border-radius: .45rem !important;
    box-shadow: none !important;
    font-size: .76rem;
}

.tsm-cabinet-v2 .form-control,
.tsm-cabinet-v2 .custom-select {
    min-height: 2.45rem;
    padding: .5rem .7rem;
}

.tsm-cabinet-v2 .form-control:focus,
.tsm-cabinet-v2 .custom-select:focus,
.tsm-cabinet-v2 .multiselect--active .multiselect__tags,
.tsm-cabinet-v2 .vue-tel-input:focus-within {
    border-color: #75a2f3 !important;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, .09) !important;
}

.tsm-cabinet-v2 .multiselect__placeholder,
.tsm-cabinet-v2 .form-control::placeholder {
    color: #9aa5b5;
}

.tsm-cabinet-v2 .multiselect__content-wrapper {
    margin-top: .35rem;
    background: #fff;
    border: 1px solid var(--tsm-border);
    border-radius: .5rem;
    box-shadow: 0 12px 28px rgba(15, 23, 42, .14);
}

.tsm-cabinet-v2 .multiselect__option--highlight,
.tsm-cabinet-v2 .multiselect__option--highlight::after {
    color: #1e4f9a;
    background: var(--tsm-primary-soft);
}

.tsm-cabinet-v2 .btn {
    border-radius: .5rem;
    box-shadow: none;
    font-size: .75rem;
    font-weight: 600;
}

.tsm-cabinet-v2 .btn-primary,
.tsm-cabinet-v2 .btn-info,
.tsm-cabinet-v2 .btn-bg-gradient-x-purple-blue,
.tsm-cabinet-v2 .btn-bg-gradient-x-blue-cyan {
    color: #fff !important;
    background: var(--tsm-primary) !important;
    border-color: var(--tsm-primary) !important;
    background-image: none !important;
}

.tsm-cabinet-v2 .btn-primary:hover,
.tsm-cabinet-v2 .btn-info:hover,
.tsm-cabinet-v2 .btn-bg-gradient-x-purple-blue:hover,
.tsm-cabinet-v2 .btn-bg-gradient-x-blue-cyan:hover {
    background: var(--tsm-primary-dark) !important;
    border-color: var(--tsm-primary-dark) !important;
}

.tsm-cabinet-v2 .btn-warning {
    color: #8a4d08 !important;
    background: #fff7e6 !important;
    border-color: #f7d7a7 !important;
}

.tsm-cabinet-v2 .btn-danger {
    color: #b52d2d !important;
    background: #fff0f0 !important;
    border-color: #ffd3d3 !important;
}

.tsm-cabinet-v2 .table-responsive {
    border: 1px solid var(--tsm-border);
    border-radius: .65rem;
}

.tsm-cabinet-v2 .table {
    margin-bottom: 0;
    color: #3d495e;
}

.tsm-cabinet-v2 .table thead th {
    padding: .72rem .8rem !important;
    color: #667389;
    background: var(--tsm-surface-soft);
    border-top: 0;
    border-bottom: 1px solid var(--tsm-border);
    font-size: .62rem;
    font-weight: 700;
    line-height: 1.35;
    text-transform: uppercase !important;
    letter-spacing: .035em;
    white-space: nowrap;
}

.tsm-cabinet-v2 .table tbody td {
    padding: .72rem .8rem !important;
    background: #fff;
    border-top: 1px solid #edf0f4;
    font-size: .7rem;
    line-height: 1.45;
    vertical-align: middle;
}

.tsm-cabinet-v2 .table tbody tr:hover td {
    background: #fbfdff;
}

.tsm-cabinet-v2 .badge {
    border-radius: .3rem;
    font-size: .58rem;
    font-weight: 600;
}

.tsm-cabinet-v2 .pagination {
    margin-top: 1rem;
}

.tsm-cabinet-v2 .page-link {
    min-width: 2rem;
    height: 2rem;
    margin: 0 .1rem;
    padding: .4rem .55rem;
    color: #5b677b;
    background: #fff;
    border: 1px solid var(--tsm-border);
    border-radius: .4rem !important;
    font-size: .67rem;
    text-align: center;
}

.tsm-cabinet-v2 .page-item.active .page-link {
    color: #fff;
    background: var(--tsm-primary);
    border-color: var(--tsm-primary);
}

.tsm-cabinet-v2 .modal-content,
.tsm-cabinet-v2 .dropdown-menu {
    border: 1px solid var(--tsm-border);
    border-radius: .65rem;
    box-shadow: 0 16px 38px rgba(15, 23, 42, .17);
}

.tsm-cabinet-v2 .modal-header,
.tsm-cabinet-v2 .modal-footer,
.tsm-cabinet-v2 .dropdown-divider {
    border-color: var(--tsm-border);
}

.tsm-cabinet-v2 .dropdown-item {
    color: #3d495e;
    font-size: .75rem;
}

.tsm-cabinet-v2 .dropdown-item:hover,
.tsm-cabinet-v2 .dropdown-item:focus {
    color: #1e4f9a;
    background: var(--tsm-primary-soft);
}

.tsm-cabinet-v2 footer {
    color: var(--tsm-muted);
    background: var(--tsm-canvas);
    font-size: .7rem;
}

.tsm-cabinet-v2 #cookie-warning {
    color: var(--tsm-text);
    background: #fff;
    border: 1px solid var(--tsm-border);
    border-radius: .75rem;
    box-shadow: 0 18px 42px rgba(15, 23, 42, .18);
    text-transform: none !important;
}

@media (max-width: 1199.98px) {
    .tsm-cabinet-v2 .app-content .content-wrapper {
        padding: 1.2rem 1rem 2.5rem;
    }
}

@media (min-width: 1200px) and (max-width: 1340px) {
    body.tsm-cabinet-v2 .header-navbar .text_three {
        width: 340px !important;
        gap: .5rem;
        padding: .5rem .65rem !important;
        font-size: .7rem !important;
    }
}

@media (max-width: 767.98px) {
    .tsm-cabinet-v2 .app-content .content-wrapper {
        padding: 1rem .75rem 2rem;
    }

    .tsm-cabinet-v2 .content-header-title,
    .tsm-cabinet-v2 h3.content-header-title {
        font-size: 1.45rem;
    }

    .tsm-cabinet-v2 .card-body {
        padding: .9rem;
    }
}
