/* Final UI contract for readable, crisp Blade pages. Loaded after legacy and page styles. */
:root {
    --tms-ui-canvas: #f3f6fb;
    --tms-ui-surface: #ffffff;
    --tms-ui-surface-soft: #f7f9fc;
    --tms-ui-heading: #071a3d;
    --tms-ui-text: #263a55;
    --tms-ui-muted: #566980;
    --tms-ui-link: #075fca;
    --tms-ui-border: #d7e2ef;
    --tms-ui-border-strong: #b9c9dc;
    --tms-ui-primary: #0b63ce;
    --tms-ui-primary-dark: #084da3;
    --tms-ui-success: #087443;
    --tms-ui-danger: #c5293f;
    --tms-ui-warning: #f5a20b;
    --tms-ui-info: #087c80;
    --tms-ui-radius: 8px;
    --tms-ui-focus: 0 0 0 3px rgba(11, 99, 206, .18);
    --tms-ui-shadow: 0 10px 26px rgba(15, 35, 75, .07);
}

body.tms-body,
body.tms-admin-body,
body.tms-portal-body {
    color: var(--tms-ui-text);
    background: var(--tms-ui-canvas) !important;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

.tms-shell-main,
.tms-content,
.tms-content-inner,
.tms-portal-main,
.ct-auth-content {
    min-width: 0;
}

.tms-content,
.tms-content-inner,
.tms-portal-main,
.tms-page-header,
.tms-shell-topbar,
.tms-shell-sidebar {
    filter: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

.tms-content-inner,
.tms-portal-main,
.ct-auth-content {
    color: var(--tms-ui-text);
    line-height: 1.5;
}

.tms-content-inner > :is(h1, h2, h3, h4, h5, h6),
.tms-portal-main > :is(h1, h2, h3, h4, h5, h6),
.tms-page-header :is(h1, h2, h3, .page-title, .title),
.ui-surface-light :is(h1, h2, h3, h4, h5, h6, .title) {
    color: var(--tms-ui-heading) !important;
    opacity: 1;
    letter-spacing: 0 !important;
    text-shadow: none;
}

.tms-content-inner > :is(p, .subtitle, .description),
.tms-portal-main > :is(p, .subtitle, .description),
.tms-page-header :is(p, small, .subtitle, .description),
.ui-surface-light :is(p, small, .subtitle, .description, .text-muted) {
    color: var(--tms-ui-muted) !important;
}

.tms-content-inner a:not([class]),
.tms-portal-main a:not([class]),
.ct-auth-content a:not([class]) {
    color: var(--tms-ui-link);
    font-weight: 700;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

.tms-content-inner a:not([class]):hover,
.tms-portal-main a:not([class]):hover,
.ct-auth-content a:not([class]):hover {
    color: var(--tms-ui-primary-dark);
}

/* Default light surfaces. Colored cards keep their page-specific styling. */
.tms-content-inner :is(.card, .tms-card, .panel, .box, .modal-content, .dropdown-menu):not([class*="bg-"]):not([class*="-hero"]),
.tms-portal-main :is(.card, .tms-card, .panel, .box, .modal-content, .dropdown-menu):not([class*="bg-"]):not([class*="-hero"]),
.ui-surface-light {
    color: var(--tms-ui-text);
    border-color: var(--tms-ui-border);
}

.tms-content-inner :is(.card, .tms-card, .panel, .box, .modal-content, .dropdown-menu):not([class*="bg-"]):not([class*="-hero"]) > :is(.card-header, .panel-heading, .box-header),
.tms-portal-main :is(.card, .tms-card, .panel, .box, .modal-content, .dropdown-menu):not([class*="bg-"]):not([class*="-hero"]) > :is(.card-header, .panel-heading, .box-header) {
    color: var(--tms-ui-heading) !important;
    background: var(--tms-ui-surface-soft) !important;
    border-color: var(--tms-ui-border) !important;
}

/* Explicit dark surfaces win over legacy generic card rules. */
.tms-content-inner :is(.bg-slate-900, .bg-slate-950, .bg-gray-900, .bg-gray-950, .bg-blue-950, .bg-indigo-950, .bg-black),
.tms-portal-main :is(.bg-slate-900, .bg-slate-950, .bg-gray-900, .bg-gray-950, .bg-blue-950, .bg-indigo-950, .bg-black),
.ui-surface-dark {
    color: #f8fbff !important;
    background-color: #0b1f3a !important;
    border-color: rgba(255, 255, 255, .16) !important;
}

.tms-content-inner :is(.bg-slate-900, .bg-slate-950, .bg-gray-900, .bg-gray-950, .bg-blue-950, .bg-indigo-950, .bg-black) :is(h1, h2, h3, h4, h5, h6, p, span, small, strong, b, label, li, .title, .subtitle, .description),
.tms-portal-main :is(.bg-slate-900, .bg-slate-950, .bg-gray-900, .bg-gray-950, .bg-blue-950, .bg-indigo-950, .bg-black) :is(h1, h2, h3, h4, h5, h6, p, span, small, strong, b, label, li, .title, .subtitle, .description),
.ui-surface-dark :is(h1, h2, h3, h4, h5, h6, p, span, small, strong, b, label, li, .title, .subtitle, .description) {
    color: #f8fbff !important;
}

.tms-content-inner :is(.bg-slate-900, .bg-slate-950, .bg-gray-900, .bg-gray-950, .bg-blue-950, .bg-indigo-950, .bg-black) :is(.text-muted, .muted, .help-text, .note, .hint),
.tms-portal-main :is(.bg-slate-900, .bg-slate-950, .bg-gray-900, .bg-gray-950, .bg-blue-950, .bg-indigo-950, .bg-black) :is(.text-muted, .muted, .help-text, .note, .hint),
.ui-surface-dark :is(.text-muted, .muted, .help-text, .note, .hint) {
    color: #d9e8f8 !important;
}

/* Forms remain legible across native, Bootstrap, and custom Blade controls. */
.tms-content-inner :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]), select, textarea, .form-control, .form-select),
.tms-portal-main :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]), select, textarea, .form-control, .form-select),
.ct-auth-content :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]), select, textarea, .form-control, .form-select) {
    color: #10233f !important;
    background-color: #ffffff !important;
    border-color: var(--tms-ui-border-strong) !important;
    -webkit-text-fill-color: #10233f;
    opacity: 1;
}

.tms-content-inner :is(input, textarea)::placeholder,
.tms-portal-main :is(input, textarea)::placeholder,
.ct-auth-content :is(input, textarea)::placeholder {
    color: #687a91 !important;
    opacity: 1 !important;
}

.tms-content-inner :is(select option, select optgroup),
.tms-portal-main :is(select option, select optgroup),
.ct-auth-content :is(select option, select optgroup) {
    color: #10233f;
    background: #ffffff;
}

.tms-content-inner :is(label, legend, .form-label),
.tms-portal-main :is(label, legend, .form-label),
.ct-auth-content :is(label, legend, .form-label) {
    color: #213955 !important;
    font-weight: 750;
}

.tms-content-inner :is(input, select, textarea, .form-control, .form-select):focus,
.tms-portal-main :is(input, select, textarea, .form-control, .form-select):focus,
.ct-auth-content :is(input, select, textarea, .form-control, .form-select):focus {
    border-color: var(--tms-ui-primary) !important;
    box-shadow: var(--tms-ui-focus) !important;
    outline: none;
}

.tms-content-inner :is(input, select, textarea, button):disabled,
.tms-portal-main :is(input, select, textarea, button):disabled {
    color: #5f7085 !important;
    background-color: #edf2f7 !important;
    border-color: #d3deea !important;
    -webkit-text-fill-color: #5f7085;
    opacity: .78 !important;
    cursor: not-allowed;
}

/* Controls: shape is shared; semantic classes own their color. */
.tms-content-inner :is(button.btn, a.btn, .button, [class$="-btn"], [class*="-btn "]),
.tms-portal-main :is(button.btn, a.btn, .button, [class$="-btn"], [class*="-btn "]),
.ct-auth-content :is(button.btn, a.btn, .button, [class$="-btn"], [class*="-btn "]) {
    min-height: 38px;
    max-width: 100%;
    border-radius: var(--tms-ui-radius) !important;
    font-weight: 800 !important;
    letter-spacing: 0 !important;
    line-height: 1.2;
    text-decoration: none !important;
    white-space: normal;
    overflow-wrap: anywhere;
}

.tms-content-inner :is(.btn, .button, [class$="-btn"], [class*="-btn "]) :is(span, strong, b, small, svg),
.tms-portal-main :is(.btn, .button, [class$="-btn"], [class*="-btn "]) :is(span, strong, b, small, svg),
.ct-auth-content :is(.btn, .button, [class$="-btn"], [class*="-btn "]) :is(span, strong, b, small, svg) {
    color: inherit !important;
    fill: currentColor;
    stroke: currentColor;
}

.tms-content-inner button[type="submit"]:not([class]),
.tms-portal-main button[type="submit"]:not([class]),
.ct-auth-content button[type="submit"]:not([class]),
.tms-content-inner :is(.btn-primary, .button-primary, .settings-btn-primary, .ri-btn-primary, .fd-btn-primary),
.tms-portal-main :is(.btn-primary, .button-primary),
.ct-auth-content :is(.btn-primary, .button-primary) {
    color: #ffffff !important;
    background: var(--tms-ui-primary) !important;
    border-color: var(--tms-ui-primary) !important;
}

.tms-content-inner :is(.btn-primary, .button-primary, .settings-btn-primary, .ri-btn-primary, .fd-btn-primary):hover,
.tms-portal-main :is(.btn-primary, .button-primary):hover,
.ct-auth-content :is(.btn-primary, .button-primary):hover {
    color: #ffffff !important;
    background: var(--tms-ui-primary-dark) !important;
    border-color: var(--tms-ui-primary-dark) !important;
}

.tms-content-inner :is(.btn-success, .button-success),
.tms-portal-main :is(.btn-success, .button-success) {
    color: #ffffff !important;
    background: var(--tms-ui-success) !important;
    border-color: var(--tms-ui-success) !important;
}

.tms-content-inner :is(.btn-danger, .button-danger),
.tms-portal-main :is(.btn-danger, .button-danger) {
    color: #ffffff !important;
    background: var(--tms-ui-danger) !important;
    border-color: var(--tms-ui-danger) !important;
}

.tms-content-inner :is(.btn-info, .button-info),
.tms-portal-main :is(.btn-info, .button-info) {
    color: #ffffff !important;
    background: var(--tms-ui-info) !important;
    border-color: var(--tms-ui-info) !important;
}

.tms-content-inner :is(.btn-warning, .button-warning),
.tms-portal-main :is(.btn-warning, .button-warning) {
    color: #251500 !important;
    background: var(--tms-ui-warning) !important;
    border-color: #d88700 !important;
}

.tms-content-inner :is(.btn-secondary, .button-secondary, .btn-light, .btn-white, .btn-outline-primary, .btn-outline-secondary),
.tms-portal-main :is(.btn-secondary, .button-secondary, .btn-light, .btn-white, .btn-outline-primary, .btn-outline-secondary) {
    color: #173758 !important;
    background: #ffffff !important;
    border-color: var(--tms-ui-border-strong) !important;
}

.tms-content-inner :is(.btn-secondary, .button-secondary, .btn-light, .btn-white, .btn-outline-primary, .btn-outline-secondary):hover,
.tms-portal-main :is(.btn-secondary, .button-secondary, .btn-light, .btn-white, .btn-outline-primary, .btn-outline-secondary):hover {
    color: var(--tms-ui-primary-dark) !important;
    background: #eef5ff !important;
    border-color: #9cbbe0 !important;
}

/* Tailwind color utilities remain authoritative after legacy CSS. */
.tms-content-inner :is(.bg-blue-600, .bg-blue-700, .bg-indigo-600, .bg-indigo-700, .bg-sky-600),
.tms-portal-main :is(.bg-blue-600, .bg-blue-700, .bg-indigo-600, .bg-indigo-700, .bg-sky-600),
.tms-content-inner :is(.bg-emerald-600, .bg-green-600, .bg-teal-600),
.tms-portal-main :is(.bg-emerald-600, .bg-green-600, .bg-teal-600),
.tms-content-inner :is(.bg-red-600, .bg-rose-600),
.tms-portal-main :is(.bg-red-600, .bg-rose-600) {
    color: #ffffff !important;
}

.tms-content-inner .text-white,
.tms-portal-main .text-white,
.ct-auth-content .text-white {
    color: #ffffff !important;
}

.tms-content-inner :is(.text-gray-950, .text-gray-900, .text-slate-950, .text-slate-900),
.tms-portal-main :is(.text-gray-950, .text-gray-900, .text-slate-950, .text-slate-900) {
    color: #071a3d !important;
}

.tms-content-inner :is(.text-gray-700, .text-gray-600, .text-slate-700, .text-slate-600),
.tms-portal-main :is(.text-gray-700, .text-gray-600, .text-slate-700, .text-slate-600) {
    color: #344a63 !important;
}

.tms-content-inner :is(.text-gray-500, .text-gray-400, .text-slate-500, .text-slate-400, .text-muted),
.tms-portal-main :is(.text-gray-500, .text-gray-400, .text-slate-500, .text-slate-400, .text-muted) {
    color: var(--tms-ui-muted) !important;
}

.tms-content-inner :is(.text-blue-600, .text-blue-700, .text-indigo-600, .text-indigo-700),
.tms-portal-main :is(.text-blue-600, .text-blue-700, .text-indigo-600, .text-indigo-700) {
    color: #075fca !important;
}

.tms-content-inner :is(.text-green-600, .text-green-700, .text-emerald-600, .text-emerald-700, .text-teal-700),
.tms-portal-main :is(.text-green-600, .text-green-700, .text-emerald-600, .text-emerald-700, .text-teal-700) {
    color: #087443 !important;
}

.tms-content-inner :is(.text-red-600, .text-red-700, .text-rose-600, .text-rose-700),
.tms-portal-main :is(.text-red-600, .text-red-700, .text-rose-600, .text-rose-700) {
    color: #b72036 !important;
}

/* Dark surfaces override utility text colors without changing control variants. */
.tms-content-inner :is(.bg-slate-900, .bg-slate-950, .bg-gray-900, .bg-gray-950, .bg-blue-950, .bg-indigo-950, .bg-black) :is(.text-gray-950, .text-gray-900, .text-gray-700, .text-gray-600, .text-gray-500, .text-gray-400, .text-slate-950, .text-slate-900, .text-slate-700, .text-slate-600, .text-slate-500, .text-slate-400),
.tms-portal-main :is(.bg-slate-900, .bg-slate-950, .bg-gray-900, .bg-gray-950, .bg-blue-950, .bg-indigo-950, .bg-black) :is(.text-gray-950, .text-gray-900, .text-gray-700, .text-gray-600, .text-gray-500, .text-gray-400, .text-slate-950, .text-slate-900, .text-slate-700, .text-slate-600, .text-slate-500, .text-slate-400) {
    color: #f8fbff !important;
}

.tms-content-inner :is(.bg-slate-900, .bg-slate-950, .bg-gray-900, .bg-gray-950, .bg-blue-950, .bg-indigo-950, .bg-black) :is(.text-muted, .muted, .help-text, .note, .hint, .description, .subtitle),
.tms-portal-main :is(.bg-slate-900, .bg-slate-950, .bg-gray-900, .bg-gray-950, .bg-blue-950, .bg-indigo-950, .bg-black) :is(.text-muted, .muted, .help-text, .note, .hint, .description, .subtitle) {
    color: #d9e8f8 !important;
}

/* Tables and repeated records stay scannable without repainting badge children. */
.tms-content-inner :is(.table-responsive, .table-wrap, .tms-table-wrap, [class*="-table-wrap"]),
.tms-portal-main :is(.table-responsive, .table-wrap, .tms-table-wrap, [class*="-table-wrap"]) {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
}

.tms-content-inner table,
.tms-portal-main table {
    color: var(--tms-ui-text) !important;
    background: #ffffff;
}

.tms-content-inner table thead th,
.tms-portal-main table thead th {
    color: #203a58 !important;
    background: #f2f6fb !important;
    border-color: var(--tms-ui-border) !important;
    font-weight: 850 !important;
}

.tms-content-inner table tbody td,
.tms-portal-main table tbody td {
    color: #293f59 !important;
    border-color: #e2eaf3 !important;
}

/* Status colors have tested foreground/background pairs. */
.tms-content-inner :is(.badge, .status, .label, .pill, .tag),
.tms-portal-main :is(.badge, .status, .label, .pill, .tag) {
    opacity: 1;
    text-shadow: none;
    letter-spacing: 0 !important;
}

.tms-content-inner :is(.badge-success, .status-success, .status-paid, .status-completed, .status-delivered),
.tms-portal-main :is(.badge-success, .status-success, .status-paid, .status-completed, .status-delivered) {
    color: #075b34 !important;
    background: #d8f7e7 !important;
    border-color: #9ee5c0 !important;
}

.tms-content-inner :is(.badge-danger, .status-danger, .status-overdue, .status-cancelled, .status-rejected),
.tms-portal-main :is(.badge-danger, .status-danger, .status-overdue, .status-cancelled, .status-rejected) {
    color: #9d1830 !important;
    background: #ffe3e8 !important;
    border-color: #f7b6c2 !important;
}

.tms-content-inner :is(.badge-warning, .status-warning, .status-pending, .status-draft),
.tms-portal-main :is(.badge-warning, .status-warning, .status-pending, .status-draft) {
    color: #754400 !important;
    background: #fff1c9 !important;
    border-color: #f1d07e !important;
}

.tms-content-inner :is(.badge-info, .status-info, .status-active, .status-in-transit),
.tms-portal-main :is(.badge-info, .status-info, .status-active, .status-in-transit) {
    color: #075a69 !important;
    background: #d9f5f5 !important;
    border-color: #a6dddd !important;
}

/* Sidebar and topbar use explicit states, including keyboard focus. */
body.tms-admin-body .tms-shell-sidebar,
body.tms-admin-body .ct-sidebar {
    color: #263a55 !important;
    background: #ffffff !important;
    border-color: var(--tms-ui-border) !important;
}

body.tms-admin-body .ct-sidebar :is(.ct-nav-link, .ct-submenu-link, .ct-grandmenu-link) {
    color: #263a55 !important;
}

body.tms-admin-body .ct-sidebar :is(.ct-nav-link, .ct-submenu-link, .ct-grandmenu-link):hover {
    color: #083e86 !important;
    background: #eef5ff !important;
    border-color: #cfe0f4 !important;
}

body.tms-admin-body .ct-sidebar :is(.ct-nav-link.active, .ct-submenu-link.active, .ct-grandmenu-link.active),
body.tms-admin-body .ct-sidebar :is(.ct-nav-link.active, .ct-submenu-link.active, .ct-grandmenu-link.active):visited {
    color: #ffffff !important;
    background: #0b63ce !important;
    border-color: #0b63ce !important;
    box-shadow: inset 4px 0 0 #35d4cf, 0 9px 20px rgba(11, 99, 206, .18) !important;
}

body.tms-admin-body .ct-sidebar :is(.ct-nav-link.active, .ct-submenu-link.active, .ct-grandmenu-link.active) :is(span, strong, small, em) {
    color: #ffffff !important;
}

body.tms-admin-body .ct-sidebar .ct-nav-link.active .ct-nav-icon {
    color: #0b4fa8 !important;
    background: #ffffff !important;
    border-color: #ffffff !important;
}

body.tms-admin-body .ct-sidebar .ct-logout-button {
    color: #a91e2f !important;
    background: #fff5f6 !important;
    border-color: #f5c3cb !important;
}

body.tms-admin-body .ct-sidebar .ct-logout-button:hover {
    color: #ffffff !important;
    background: var(--tms-ui-danger) !important;
    border-color: var(--tms-ui-danger) !important;
}

body.tms-admin-body .tms-shell-topbar,
body.tms-admin-body .tms-topbar {
    color: #18304d !important;
    background: #ffffff !important;
    border-color: var(--tms-ui-border) !important;
}

body.tms-admin-body .tms-shell-topbar :is(strong, b, .tms-topbar-title) {
    color: var(--tms-ui-heading) !important;
}

body.tms-admin-body .tms-shell-topbar :is(span, small, p) {
    color: #465b74;
}

:is(.tms-content-inner, .tms-portal-main, .ct-auth-content, .ct-sidebar) :is(a, button, input, select, textarea):focus-visible {
    outline: 2px solid var(--tms-ui-primary) !important;
    outline-offset: 2px;
    box-shadow: var(--tms-ui-focus);
}

/* Layout guards for dense workflows and narrow screens. */
.tms-content-inner :is(.row, .grid, [class*="-grid"], [class*="-row"], .card-body, .panel-body, .toolbar, [class*="-toolbar"], [class*="-actions"]) > *,
.tms-portal-main :is(.row, .grid, [class*="-grid"], [class*="-row"], .card-body, .panel-body, .toolbar, [class*="-toolbar"], [class*="-actions"]) > * {
    min-width: 0;
}

.tms-content-inner :is(.toolbar, [class*="-toolbar"], [class*="-actions"], .tms-page-actions),
.tms-portal-main :is(.toolbar, [class*="-toolbar"], [class*="-actions"], .tms-page-actions) {
    flex-wrap: wrap;
}

.tms-content-inner :is(h1, h2, h3, h4, h5, h6, p, td, th, label, a, button),
.tms-portal-main :is(h1, h2, h3, h4, h5, h6, p, td, th, label, a, button) {
    overflow-wrap: anywhere;
}

@media (max-width: 760px) {
    .tms-content {
        padding: 12px !important;
    }

    .tms-content-inner,
    .tms-portal-main {
        width: 100%;
        max-width: 100%;
    }

    .tms-page-header,
    .tms-content-inner :is(.toolbar, [class*="-toolbar"], [class*="-actions"], .tms-page-actions),
    .tms-portal-main :is(.toolbar, [class*="-toolbar"], [class*="-actions"], .tms-page-actions) {
        align-items: stretch;
    }

    .tms-page-header > *,
    .tms-content-inner :is(.toolbar, [class*="-toolbar"], [class*="-actions"], .tms-page-actions) > *,
    .tms-portal-main :is(.toolbar, [class*="-toolbar"], [class*="-actions"], .tms-page-actions) > * {
        max-width: 100%;
    }

    .tms-content-inner :is(.btn, .button, button[type="submit"]),
    .tms-portal-main :is(.btn, .button, button[type="submit"]) {
        min-width: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .tms-shell-sidebar *,
    .tms-content-inner *,
    .tms-portal-main * {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}