:root {
    --transport-bg: #f4f6f8;
    --transport-surface: #ffffff;
    --transport-border: #e3e7ec;
    --transport-text: #1f2933;
    --transport-muted: #6b7280;
    --transport-soft: #f8fafc;
    --transport-goitia-yellow: #ffe600;
    --transport-goitia-yellow-soft: #fff7a6;
    --transport-graphite: #20242a;
    --transport-primary: #1f5f8b;
    --transport-primary-soft: #e8f2fb;
    --transport-success: #1f7a4d;
    --transport-success-soft: #e7f6ee;
    --transport-warning: #9a6700;
    --transport-warning-soft: #fff4d5;
    --transport-danger: #a83232;
    --transport-danger-soft: #fdecec;
    --transport-radius-lg: 18px;
    --transport-radius-md: 12px;
    --transport-shadow: 0 16px 40px rgba(15, 23, 42, .08);
}

html, body {
    min-height: 100%;
}

body {
    background: var(--transport-bg);
    color: var(--transport-text);
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.transport-topbar {
    background: linear-gradient(90deg, var(--transport-graphite), #111827);
    border-bottom: 4px solid var(--transport-goitia-yellow);
}

.transport-navbar {
    min-height: 76px;
}

.transport-navbar .navbar-toggler {
    background: #fff;
}

.transport-brand {
    display: flex;
    align-items: center;
    gap: .75rem;
    color: #fff;
    text-decoration: none;
}

.transport-brand:hover {
    color: #fff;
}

.transport-brand-logo-wrap {
    display: grid;
    place-items: center;
    width: 72px;
    height: 44px;
    border-radius: 12px;
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .14);
}

.transport-brand-logo {
    max-width: 62px;
    max-height: 34px;
    object-fit: contain;
}

.transport-brand-text {
    display: flex;
    flex-direction: column;
    line-height: 1.05;
}

.transport-brand-title {
    font-weight: 800;
    letter-spacing: .08em;
}

.transport-brand-subtitle {
    margin-top: .25rem;
    color: rgba(255, 255, 255, .72);
    font-size: .82rem;
}

.transport-nav .nav-link {
    color: rgba(255, 255, 255, .82);
    display: flex;
    align-items: center;
    gap: .4rem;
    border-radius: 999px;
    padding: .55rem .8rem;
}

.transport-nav .nav-link:hover,
.transport-nav .nav-link:focus {
    color: #fff;
    background: rgba(255, 255, 255, .1);
}

.transport-user-chip {
    display: flex;
    align-items: center;
    gap: .45rem;
    color: rgba(255, 255, 255, .86);
    border: 1px solid rgba(255, 255, 255, .14);
    background: rgba(255, 255, 255, .08);
    padding: .45rem .7rem;
    border-radius: 999px;
    font-size: .9rem;
}

.transport-page-shell {
    min-height: calc(100vh - 76px);
}

.transport-module-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.transport-module-kicker {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin-bottom: .35rem;
    color: var(--transport-danger, #a83232);
    font-size: .78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.transport-module-kicker::before {
    content: "";
    display: inline-block;
    width: 10px;
    height: 10px;
    background: var(--transport-goitia-yellow);
    border: 2px solid var(--transport-graphite);
    transform: rotate(45deg);
}

.transport-module-title {
    margin: 0;
    font-size: clamp(1.55rem, 2vw, 2.15rem);
    font-weight: 800;
    color: var(--transport-text);
}

.transport-module-subtitle {
    margin: .35rem 0 0;
    color: var(--transport-muted);
    max-width: 880px;
}

.transport-module-actions {
    display: flex;
    align-items: center;
    gap: .6rem;
    flex-wrap: wrap;
}

.transport-card {
    background: var(--transport-surface);
    border: 1px solid var(--transport-border);
    border-radius: var(--transport-radius-lg);
    box-shadow: var(--transport-shadow);
}

.transport-card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.1rem 1.25rem;
    border-bottom: 1px solid var(--transport-border);
}

.transport-card-header h2 {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 800;
}

.transport-card-header p {
    margin: .2rem 0 0;
    color: var(--transport-muted);
    font-size: .9rem;
}

.transport-toolbar {
    background: var(--transport-surface);
    border: 1px solid var(--transport-border);
    border-radius: var(--transport-radius-lg);
    padding: 1rem;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .05);
}

.transport-toolbar .form-label {
    color: var(--transport-muted);
    font-size: .78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.transport-toolbar .form-control,
.transport-toolbar .form-select {
    border-radius: 12px;
    border-color: var(--transport-border);
}

.transport-summary-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .9rem;
}

.transport-summary-card {
    display: flex;
    gap: .85rem;
    align-items: center;
    padding: 1rem;
    background: var(--transport-surface);
    border: 1px solid var(--transport-border);
    border-radius: var(--transport-radius-lg);
    box-shadow: 0 10px 28px rgba(15, 23, 42, .05);
}

.transport-summary-icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 14px;
    background: var(--transport-soft);
    color: var(--transport-primary);
    flex: 0 0 auto;
}

.transport-summary-label {
    color: var(--transport-muted);
    font-size: .8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.transport-summary-value {
    font-size: 1.45rem;
    font-weight: 800;
    line-height: 1.1;
}

.transport-summary-hint {
    color: var(--transport-muted);
    font-size: .82rem;
    margin-top: .15rem;
}

.transport-table-scroll {
    max-height: 66vh;
}

.transport-table {
    margin: 0;
    font-size: .88rem;
}

.transport-table thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #f8fafc;
    color: var(--transport-muted);
    font-size: .76rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    border-bottom: 1px solid var(--transport-border);
    white-space: nowrap;
}

.transport-table tbody td {
    border-color: #eef1f5;
    white-space: nowrap;
}

.transport-table tbody tr:hover {
    background: #fffdf0;
}

.transport-status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 24px;
    padding: .18rem .55rem;
    border-radius: 999px;
    font-size: .76rem;
    font-weight: 800;
    border: 1px solid transparent;
    white-space: nowrap;
}

.transport-alert {
    border-radius: var(--transport-radius-md);
    display: flex;
    align-items: center;
    gap: .55rem;
}

.transport-empty-state {
    padding: 3rem 1rem;
    text-align: center;
    color: var(--transport-muted);
}

.transport-empty-icon {
    display: grid;
    place-items: center;
    width: 58px;
    height: 58px;
    margin: 0 auto 1rem;
    border-radius: 18px;
    background: var(--transport-soft);
    color: var(--transport-muted);
    font-size: 1.6rem;
}

.transport-empty-title {
    color: var(--transport-text);
    font-weight: 800;
    font-size: 1.05rem;
    margin-bottom: .25rem;
}

.transport-grid-two {
    display: grid;
    grid-template-columns: 1.35fr .85fr;
    gap: 1rem;
}

.transport-shortcut-list {
    display: grid;
    gap: .65rem;
    padding: 1rem;
}

.transport-shortcut {
    display: flex;
    align-items: center;
    gap: .85rem;
    padding: .85rem;
    color: var(--transport-text);
    text-decoration: none;
    border: 1px solid var(--transport-border);
    border-radius: var(--transport-radius-md);
    background: #fff;
}

.transport-shortcut:hover {
    background: #fffdf0;
    border-color: #f2d94a;
}

.transport-shortcut-icon {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: var(--transport-goitia-yellow-soft);
    color: var(--transport-graphite);
}

.transport-shortcut small {
    display: block;
    margin-top: .1rem;
    color: var(--transport-muted);
}

.transport-note-list {
    display: grid;
    gap: .85rem;
    padding: 1rem 1.25rem 1.25rem;
    color: var(--transport-muted);
}

.transport-note-list i {
    color: var(--transport-success);
    margin-right: .4rem;
}

.btn-primary {
    --bs-btn-bg: var(--transport-graphite);
    --bs-btn-border-color: var(--transport-graphite);
    --bs-btn-hover-bg: #111827;
    --bs-btn-hover-border-color: #111827;
    --bs-btn-color: #fff;
}

.btn-primary i,
.btn-outline-secondary i {
    margin-right: .25rem;
}

@media (max-width: 1199.98px) {
    .transport-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .transport-grid-two {
        grid-template-columns: 1fr;
    }

    .transport-module-header {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 575.98px) {
    .transport-summary-grid {
        grid-template-columns: 1fr;
    }

    .transport-brand-subtitle {
        display: none;
    }
}

.transport-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
    gap: 1rem;
}

.transport-card-body {
    padding: 1.15rem 1.25rem 1.25rem;
}

.transport-definition-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .8rem;
}

.transport-definition-grid-wide {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.transport-definition-grid div {
    min-width: 0;
    padding: .8rem;
    border: 1px solid var(--transport-border);
    border-radius: var(--transport-radius-md);
    background: #fff;
}

.transport-definition-grid span,
.transport-detail-description span,
.transport-document-state span {
    display: block;
    margin-bottom: .25rem;
    color: var(--transport-muted);
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.transport-definition-grid strong {
    display: block;
    min-width: 0;
    color: var(--transport-text);
    font-size: .95rem;
    overflow: hidden;
    text-overflow: ellipsis;
}

.transport-detail-description {
    padding: .9rem;
    border: 1px solid var(--transport-border);
    border-radius: var(--transport-radius-md);
    background: var(--transport-soft);
}

.transport-detail-description p {
    margin: 0;
    color: var(--transport-text);
}

.transport-action-stack {
    display: grid;
    gap: .85rem;
}

.transport-cell-main {
    max-width: 320px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.transport-document-state {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .8rem;
}

.transport-document-state div {
    padding: .9rem;
    border: 1px solid var(--transport-border);
    border-radius: var(--transport-radius-md);
    background: #fff;
}

.transport-document-state strong {
    font-size: 1.15rem;
}

.dropdown-item i {
    margin-right: .35rem;
}

@media (max-width: 1199.98px) {
    .transport-detail-grid,
    .transport-definition-grid,
    .transport-definition-grid-wide,
    .transport-document-state {
        grid-template-columns: 1fr;
    }
}

.transport-document-counters {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .45rem;
    flex-wrap: wrap;
}

.transport-document-upload {
    padding: 1rem;
    border: 1px dashed var(--transport-border);
    border-radius: var(--transport-radius-md);
    background: var(--transport-soft);
}

.transport-inline-empty {
    display: flex;
    align-items: center;
    gap: .65rem;
    padding: .9rem 1rem;
    border: 1px solid var(--transport-border);
    border-radius: var(--transport-radius-md);
    background: var(--transport-soft);
    color: var(--transport-muted);
    font-weight: 600;
}

.transport-inline-empty i {
    color: var(--transport-primary);
    font-size: 1.15rem;
}

.transport-row-muted {
    opacity: .62;
}

.transport-row-muted td {
    background: #fafafa;
}

.transport-user-area {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-left: auto;
}

.transport-user-chip {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    min-height: 2.35rem;
    padding: .35rem .75rem;
    border: 1px solid var(--transport-border);
    border-radius: 999px;
    background: #fff;
    color: var(--transport-text);
    font-size: .88rem;
    font-weight: 700;
}

.transport-user-chip i {
    color: var(--transport-primary);
}

.transport-user-role,
.transport-user-company {
    color: var(--transport-muted);
    font-size: .76rem;
    font-weight: 800;
    text-transform: uppercase;
}

.transport-user-role::before,
.transport-user-company::before {
    content: "·";
    margin-right: .45rem;
    color: var(--transport-border-strong);
}

.transport-logout-form {
    margin: 0;
}

.transport-login-body {
    min-height: 100vh;
    background:
        radial-gradient(circle at top left, rgba(255, 216, 0, .18), transparent 34rem),
        linear-gradient(135deg, #f4f6f8 0%, #e8edf3 100%);
}

.transport-login-shell {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
}

.transport-login-card {
    width: min(100%, 440px);
    padding: 2rem;
    border: 1px solid var(--transport-border);
    border-radius: 1.35rem;
    background: #fff;
    box-shadow: 0 24px 65px rgba(15, 23, 42, .14);
}

.transport-login-brand {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.7rem;
}

.transport-login-brand img {
    width: 106px;
    height: auto;
}

.transport-login-brand strong {
    display: block;
    color: var(--transport-text);
    font-size: 1.45rem;
    line-height: 1;
}

.transport-login-brand span {
    color: var(--transport-muted);
    font-size: .88rem;
    font-weight: 700;
}

.transport-login-form .form-label {
    color: var(--transport-text);
    font-weight: 800;
}

@media (max-width: 575.98px) {
    .transport-login-shell {
        align-items: flex-start;
        padding: 1rem;
    }

    .transport-login-card {
        padding: 1.35rem;
    }

    .transport-login-brand img {
        width: 88px;
    }

    .transport-user-area {
        align-items: flex-start;
        flex-direction: column;
        margin-top: .75rem;
    }
}

.transport-card-header-compact {
    align-items: center;
    padding: .9rem 1.1rem;
}

.transport-card-header-compact h2 {
    margin: 0;
}

.transport-definition-grid-single {
    grid-template-columns: 1fr;
}

.transport-check-row {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.transport-alert-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .85rem 1rem;
    border: 1px solid var(--transport-warning-soft);
    border-radius: var(--transport-radius-md);
    background: var(--transport-warning-soft);
    color: var(--transport-warning);
    font-weight: 800;
}

.transport-alert-bar i {
    margin-right: .35rem;
}

.transport-row-warning td {
    background: #fffaf0;
}

.transport-section-title {
    margin: 0 0 .8rem;
    color: var(--transport-text);
    font-size: .92rem;
    font-weight: 900;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.transport-form-section {
    padding: 1rem 0 1.25rem;
    border-bottom: 1px solid var(--transport-border);
}

.transport-form-section:first-of-type {
    padding-top: 0;
}

.transport-form-section:last-of-type {
    border-bottom: 0;
    padding-bottom: 0;
}

.transport-form-section h3 {
    margin: 0 0 .9rem;
    color: var(--transport-text);
    font-size: .94rem;
    font-weight: 900;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.transport-client-logo-box {
    display: grid;
    place-items: center;
    min-height: 150px;
    padding: 1rem;
    border: 1px solid var(--transport-border);
    border-radius: var(--transport-radius-md);
    background: #fff;
}

.transport-client-logo-box img {
    max-width: 100%;
    max-height: 130px;
    object-fit: contain;
}

.transport-client-logo-empty {
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: .4rem;
    min-height: 120px;
    color: var(--transport-muted);
    font-weight: 700;
}

.transport-client-logo-empty i {
    font-size: 1.8rem;
    color: var(--transport-primary);
}

.transport-stack {
    display: flex;
    flex-direction: column;
    gap: .75rem;
}

.transport-list-compact {
    display: flex;
    flex-direction: column;
}

.transport-list-row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .75rem 0;
    border-bottom: 1px solid var(--transport-border-soft, #e8edf3);
}

.transport-list-row:last-child {
    border-bottom: 0;
}

.transport-list-row strong,
.transport-list-row span,
.transport-list-row small {
    display: block;
}

.transport-list-row span,
.transport-list-row small {
    color: var(--transport-text-muted, #6c757d);
}

.transport-field {
    display: flex;
    flex-direction: column;
    gap: .2rem;
}

.transport-field span {
    color: var(--transport-muted);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.transport-field strong {
    color: var(--transport-text);
    font-size: .95rem;
    font-weight: 800;
    overflow-wrap: anywhere;
}

.transport-form-actions {
    display: flex;
    justify-content: flex-end;
    gap: .75rem;
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--transport-border);
}

@media (max-width: 575.98px) {
    .transport-form-actions {
        flex-direction: column-reverse;
    }

    .transport-form-actions .btn {
        width: 100%;
    }
}


.transport-report-result {
    max-height: 68vh;
}

.transport-report-result .transport-table {
    font-size: .84rem;
    white-space: nowrap;
}

.transport-table-muted {
    color: var(--transport-muted);
    font-size: .84rem;
    margin-top: .15rem;
}

.transport-table-wrap {
    width: 100%;
    overflow-x: auto;
}

.transport-link-strong {
    font-weight: 700;
    color: var(--transport-primary, #0f4c81);
    text-decoration: none;
}

.transport-link-strong:hover {
    text-decoration: underline;
}

.transport-muted-small {
    color: #667085;
    font-size: .82rem;
}

.transport-detail-list dt {
    color: #667085;
    font-weight: 700;
}

.transport-detail-list dd {
    margin-bottom: .85rem;
}

.transport-info-stack {
    display: grid;
    gap: 1rem;
}

.transport-label {
    color: #667085;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .02em;
    text-transform: uppercase;
}

/* Bloque 14 - Control operativo */
.transport-inline-form {
    display: flex;
    align-items: center;
    gap: .35rem;
    min-width: 280px;
}

.transport-inline-form .form-select,
.transport-inline-form .form-control {
    min-width: 110px;
}

.transport-inline-form .transport-money-input {
    max-width: 100px;
}

.transport-table-control td {
    vertical-align: top;
}

.transport-toolbar-inline {
    background: #f8fafc;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 14px;
}

@media (max-width: 991.98px) {
    .transport-inline-form {
        flex-wrap: wrap;
    }

    .transport-inline-form .form-select,
    .transport-inline-form .form-control {
        min-width: 160px;
    }
}

/* Bloque 15 - hardening operativo */
.transport-user-chip-warning {
    border-color: rgba(217, 45, 32, .35);
    background: rgba(217, 45, 32, .08);
}

.transport-error-page {
    min-height: calc(100vh - 180px);
    display: flex;
    align-items: center;
    justify-content: center;
}

.transport-error-panel {
    width: min(760px, 100%);
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 1.25rem;
    padding: 1.5rem;
    border: 1px solid var(--transport-border);
    border-radius: 1rem;
    background: #fff;
    box-shadow: var(--transport-shadow-sm, 0 8px 24px rgba(15, 23, 42, .06));
}

.transport-error-icon {
    width: 3rem;
    height: 3rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: .9rem;
    background: rgba(245, 158, 11, .12);
    color: #b45309;
    font-size: 1.45rem;
}

.transport-error-icon-danger {
    background: rgba(217, 45, 32, .1);
    color: #b42318;
}

.transport-error-content h1 {
    margin: 0 0 .45rem;
    font-size: clamp(1.45rem, 2vw, 1.9rem);
    font-weight: 800;
    color: var(--transport-ink);
}

.transport-error-content p {
    margin: 0;
    color: var(--transport-muted);
}

.transport-error-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
    margin-top: 1.15rem;
}

.transport-trace-box {
    margin-top: 1rem;
    padding: .65rem .8rem;
    border: 1px solid var(--transport-border);
    border-radius: .65rem;
    background: var(--transport-soft-bg, #f8fafc);
    color: var(--transport-muted);
    font-size: .84rem;
    overflow-wrap: anywhere;
}

.transport-trace-box span {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    color: var(--transport-ink);
}

@media (max-width: 575.98px) {
    .transport-error-panel {
        grid-template-columns: 1fr;
    }

    .transport-error-actions .btn {
        width: 100%;
    }
}

/* Bloque 17 - iconografia operativa legacy GOITIA */
.goitia-op-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    border-radius: .45rem;
    background: rgba(15, 23, 42, .035);
    border: 1px solid rgba(15, 23, 42, .06);
    vertical-align: middle;
    overflow: hidden;
}

.goitia-op-icon img {
    display: block;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.goitia-op-icon i {
    font-size: .95em;
    line-height: 1;
}

.goitia-op-icon-xs {
    width: 1.35rem;
    height: 1.35rem;
    padding: .12rem;
}

.goitia-op-icon-sm {
    width: 1.75rem;
    height: 1.75rem;
    padding: .16rem;
}

.goitia-op-icon-md {
    width: 2.2rem;
    height: 2.2rem;
    padding: .2rem;
}

.goitia-op-icon-lg {
    width: 2.8rem;
    height: 2.8rem;
    padding: .24rem;
}

.goitia-op-icon-success {
    background: rgba(16, 185, 129, .09);
    border-color: rgba(16, 185, 129, .22);
}

.goitia-op-icon-warning {
    background: rgba(245, 158, 11, .1);
    border-color: rgba(245, 158, 11, .24);
}

.goitia-op-icon-danger {
    background: rgba(217, 45, 32, .09);
    border-color: rgba(217, 45, 32, .22);
}

.goitia-op-icon-primary {
    background: rgba(37, 99, 235, .08);
    border-color: rgba(37, 99, 235, .2);
}

.goitia-op-icon-muted {
    opacity: .45;
    filter: grayscale(.35);
}

.goitia-op-cell {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    min-width: 0;
}

.goitia-op-cell > span:not(.goitia-op-icon) {
    min-width: 0;
}

.goitia-op-icon-strip {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    flex-wrap: wrap;
}

.goitia-op-icon-with-label {
    width: auto;
    min-width: 1.75rem;
    gap: .35rem;
    padding-right: .45rem;
}

.goitia-op-icon-label {
    font-size: .78rem;
    font-weight: 700;
    color: var(--transport-ink);
    white-space: nowrap;
}

.dropdown-item .goitia-op-icon,
.btn .goitia-op-icon {
    margin-right: .35rem;
    background: transparent;
    border-color: transparent;
}

.transport-legacy-icon-note {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    color: var(--transport-muted);
    font-size: .82rem;
}

@media (max-width: 575.98px) {
    .goitia-op-icon-md {
        width: 2rem;
        height: 2rem;
    }

    .goitia-op-cell {
        gap: .35rem;
    }
}

/* Bloque 18 - ajuste transversal de cabecera y navegacion
   La barra superior se organiza en dos niveles para evitar desbordes horizontales:
   1) marca + usuario/salir
   2) navegacion operativa completa
*/
html,
body {
    overflow-x: hidden;
}

.transport-topbar {
    width: 100%;
    overflow: visible;
}

.transport-navbar {
    min-height: auto;
    padding: .55rem 0 .5rem;
}

.transport-navbar-grid {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: .45rem;
    min-width: 0;
}

.transport-navbar-head {
    display: flex;
    align-items: center;
    gap: 1rem;
    width: 100%;
    min-width: 0;
}

.transport-navbar-head .navbar-toggler {
    flex: 0 0 auto;
    margin-left: .5rem;
}

.transport-brand {
    flex: 0 1 auto;
    min-width: 0;
    margin-right: 0;
}

.transport-brand-logo-wrap {
    flex: 0 0 auto;
}

.transport-brand-text {
    min-width: 0;
}

.transport-navbar-menu {
    width: 100%;
    flex-basis: 100%;
    min-width: 0;
}

.transport-nav {
    width: 100%;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .25rem .35rem;
    min-width: 0;
    margin: 0;
    padding-top: .1rem;
}

.transport-nav .nav-item {
    flex: 0 0 auto;
}

.transport-nav .nav-link {
    white-space: nowrap;
    font-size: .95rem;
    padding: .46rem .68rem;
}

.transport-user-area,
.transport-user-area-top {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .65rem;
    min-width: 0;
    margin-left: auto;
    flex: 0 1 auto;
}

.transport-user-chip {
    display: inline-flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: .42rem;
    min-width: 0;
    max-width: min(34rem, 100%);
    min-height: 2.3rem;
    padding: .38rem .72rem;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 999px;
    background: rgba(255, 255, 255, .08);
    color: #fff;
    font-size: .88rem;
    font-weight: 750;
    white-space: nowrap;
}

.transport-user-chip i {
    flex: 0 0 auto;
    color: var(--transport-goitia-yellow);
}

.transport-user-name {
    display: inline-block;
    min-width: 0;
    max-width: 14rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: bottom;
}

.transport-user-role,
.transport-user-company {
    flex: 0 0 auto;
    color: rgba(255, 255, 255, .72);
    font-size: .74rem;
    font-weight: 850;
    text-transform: uppercase;
    white-space: nowrap;
}

.transport-user-role::before,
.transport-user-company::before {
    content: "·";
    margin-right: .42rem;
    color: rgba(255, 255, 255, .35);
}

.transport-user-chip-warning {
    border-color: rgba(255, 230, 0, .45);
    background: rgba(154, 103, 0, .35);
    color: #fff;
}

.transport-logout-form {
    flex: 0 0 auto;
    margin: 0;
}

.transport-logout-button {
    white-space: nowrap;
}

@media (min-width: 1400px) {
    .transport-navbar-menu.collapse {
        display: flex !important;
    }
}

@media (max-width: 1399.98px) {
    .transport-navbar-menu {
        padding-top: .65rem;
        border-top: 1px solid rgba(255, 255, 255, .12);
    }

    .transport-nav {
        align-items: stretch;
        flex-direction: column;
        gap: .18rem;
    }

    .transport-nav .nav-item {
        width: 100%;
    }

    .transport-nav .nav-link {
        width: 100%;
        justify-content: flex-start;
        border-radius: 12px;
    }

    .transport-navbar-head .navbar-toggler {
        margin-left: auto;
    }
}

@media (max-width: 991.98px) {
    .transport-navbar-head {
        flex-wrap: wrap;
    }

    .transport-user-area-top {
        order: 4;
        width: 100%;
        justify-content: space-between;
        margin-left: 0;
        margin-top: .2rem;
    }

    .transport-user-chip {
        max-width: calc(100% - 5.5rem);
    }

    .transport-user-name {
        max-width: 11rem;
    }
}

@media (max-width: 575.98px) {
    .transport-navbar-grid {
        padding-right: .25rem;
        padding-left: .25rem;
    }

    .transport-brand-logo-wrap {
        width: 60px;
        height: 38px;
    }

    .transport-brand-logo {
        max-width: 52px;
        max-height: 30px;
    }

    .transport-brand-title {
        font-size: .95rem;
    }

    .transport-user-chip {
        max-width: calc(100% - 4.8rem);
        padding-right: .6rem;
        padding-left: .6rem;
    }

    .transport-user-role,
    .transport-user-company {
        display: none;
    }

    .transport-user-name {
        max-width: 100%;
    }
}

/* Bloque 19 - cabecera estable y agenda menos técnica
   Separación real: fila de identidad/sesión + fila de módulos. No depende de navbar de Bootstrap. */
html,
body {
    max-width: 100%;
    overflow-x: hidden;
}

.transport-topbar-v3 {
    width: 100%;
    background: #111827;
    border-bottom: 5px solid var(--transport-goitia-yellow, #ffe100);
    overflow: visible;
}

.transport-topbar-v3 .transport-header-main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-width: 0;
    padding: .85rem 0 .65rem;
}

.transport-topbar-v3 .transport-brand {
    display: inline-flex;
    align-items: center;
    gap: .85rem;
    min-width: 0;
    margin: 0;
    text-decoration: none;
    color: #fff;
    flex: 0 1 auto;
}

.transport-topbar-v3 .transport-brand-text {
    min-width: 0;
}

.transport-topbar-v3 .transport-user-area-top {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .6rem;
    min-width: 0;
    flex: 0 1 auto;
    margin-left: auto;
}

.transport-module-nav {
    width: 100%;
    padding: .35rem 0 .65rem;
    border-top: 1px solid rgba(255, 255, 255, .10);
    overflow: visible;
}

.transport-nav-v3 {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .22rem .28rem;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0;
}

.transport-nav-v3 .nav-item {
    flex: 0 0 auto;
    min-width: 0;
}

.transport-nav-v3 .nav-link {
    display: inline-flex;
    align-items: center;
    gap: .38rem;
    min-height: 2.15rem;
    padding: .44rem .62rem;
    border-radius: 999px;
    color: rgba(255, 255, 255, .88);
    font-size: .92rem;
    font-weight: 650;
    line-height: 1;
    white-space: nowrap;
}

.transport-nav-v3 .nav-link:hover,
.transport-nav-v3 .nav-link:focus {
    color: #fff;
    background: rgba(255, 255, 255, .10);
}

.transport-nav-v3 .dropdown-menu {
    margin-top: .25rem;
}

.transport-toolbar-agenda .form-label {
    margin-bottom: .45rem;
}

.transport-toolbar-agenda .form-control,
.transport-toolbar-agenda .form-select {
    min-height: 2.95rem;
}

@media (max-width: 1199.98px) {
    .transport-topbar-v3 .transport-header-main {
        flex-wrap: wrap;
    }

    .transport-topbar-v3 .transport-user-area-top {
        width: 100%;
        justify-content: space-between;
        margin-left: 0;
    }

    .transport-user-chip {
        max-width: calc(100% - 5.6rem);
    }

    .transport-nav-v3 .nav-link {
        font-size: .88rem;
        padding: .42rem .56rem;
    }
}

@media (max-width: 575.98px) {
    .transport-topbar-v3 .container-fluid,
    .transport-page-shell .container-fluid {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }

    .transport-brand-logo-wrap {
        width: 58px;
        height: 38px;
    }

    .transport-brand-title {
        font-size: 1rem;
    }

    .transport-brand-subtitle {
        font-size: .72rem;
    }

    .transport-user-role,
    .transport-user-company {
        display: none;
    }
}

/* Bloque 20 - cabecera operativa compacta
   Menú principal vuelve a cabecera horizontal. La cuenta deja de ocupar espacio con nombre largo. */
.transport-topbar-v4 {
    width: 100%;
    background: #111827;
    border-bottom: 5px solid var(--transport-goitia-yellow, #ffe100);
    overflow: visible;
}

.transport-topbar-v4 .transport-header-line {
    display: flex;
    align-items: center;
    gap: .9rem;
    width: 100%;
    min-width: 0;
    min-height: 76px;
    padding: .55rem 0;
}

.transport-topbar-v4 .transport-brand-compact {
    flex: 0 0 auto;
    min-width: 0;
    max-width: 260px;
    margin: 0;
}

.transport-topbar-v4 .transport-brand-logo-wrap {
    width: 66px;
    height: 42px;
    border-radius: 12px;
}

.transport-topbar-v4 .transport-brand-logo {
    max-width: 56px;
    max-height: 32px;
}

.transport-topbar-v4 .transport-brand-title {
    font-size: 1.05rem;
    letter-spacing: .12em;
    line-height: 1;
}

.transport-topbar-v4 .transport-brand-subtitle {
    font-size: .78rem;
    white-space: nowrap;
}

.transport-topbar-v4 .transport-module-nav-inline {
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
    padding: 0;
    border: 0;
    overflow: visible;
}

.transport-topbar-v4 .transport-nav-v4 {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: nowrap;
    gap: .15rem;
    min-width: 0;
    width: 100%;
    margin: 0;
    padding: 0;
}

.transport-topbar-v4 .transport-nav-v4 .nav-item {
    flex: 0 0 auto;
    min-width: 0;
}

.transport-topbar-v4 .transport-nav-v4 .nav-link {
    display: inline-flex;
    align-items: center;
    gap: .28rem;
    min-height: 2.05rem;
    padding: .38rem .46rem;
    border-radius: 999px;
    color: rgba(255, 255, 255, .9);
    font-size: .86rem;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}

.transport-topbar-v4 .transport-nav-v4 .nav-link i {
    font-size: .92rem;
    line-height: 1;
}

.transport-topbar-v4 .transport-nav-v4 .nav-link:hover,
.transport-topbar-v4 .transport-nav-v4 .nav-link:focus {
    color: #fff;
    background: rgba(255, 255, 255, .1);
}

.transport-topbar-v4 .transport-nav-v4 .dropdown-menu {
    margin-top: .45rem;
}

.transport-account-area {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    min-width: 0;
    margin-left: auto;
}

.transport-account-button {
    display: inline-flex;
    align-items: center;
    gap: .38rem;
    min-height: 2.1rem;
    padding: .34rem .62rem;
    border-radius: 10px;
    font-size: .85rem;
    font-weight: 750;
    white-space: nowrap;
}

.transport-account-menu {
    min-width: 260px;
    max-width: 320px;
    border-radius: 14px;
    overflow: hidden;
}

.transport-account-dot {
    width: .5rem;
    height: .5rem;
    border-radius: 999px;
    background: var(--transport-goitia-yellow, #ffe100);
    box-shadow: 0 0 0 3px rgba(255, 230, 0, .18);
}

@media (max-width: 1599.98px) {
    .transport-topbar-v4 .transport-brand-compact {
        max-width: 220px;
    }

    .transport-topbar-v4 .transport-brand-subtitle {
        display: none;
    }

    .transport-topbar-v4 .transport-nav-v4 .nav-link {
        font-size: .82rem;
        padding-right: .38rem;
        padding-left: .38rem;
    }
}

@media (max-width: 1399.98px) {
    .transport-topbar-v4 .transport-header-line {
        align-items: flex-start;
        flex-wrap: wrap;
        gap: .55rem .75rem;
        min-height: auto;
        padding: .55rem 0 .65rem;
    }

    .transport-topbar-v4 .transport-brand-compact {
        order: 1;
        max-width: none;
    }

    .transport-topbar-v4 .transport-account-area {
        order: 2;
        margin-left: auto;
    }

    .transport-topbar-v4 .transport-module-nav-inline {
        order: 3;
        flex: 1 0 100%;
        width: 100%;
    }

    .transport-topbar-v4 .transport-nav-v4 {
        flex-wrap: wrap;
        gap: .2rem .25rem;
    }

    .transport-topbar-v4 .transport-nav-v4 .nav-link {
        font-size: .84rem;
        padding: .38rem .52rem;
    }
}

@media (max-width: 991.98px) {
    .transport-topbar-v4 .transport-nav-v4 .nav-link span {
        display: none;
    }

    .transport-topbar-v4 .transport-nav-v4 .nav-link {
        width: 2.25rem;
        justify-content: center;
        padding-right: .35rem;
        padding-left: .35rem;
    }

    .transport-topbar-v4 .transport-nav-v4 .dropdown-toggle::after {
        display: none;
    }
}

@media (max-width: 575.98px) {
    .transport-topbar-v4 .transport-brand-logo-wrap {
        width: 56px;
        height: 36px;
    }

    .transport-topbar-v4 .transport-brand-logo {
        max-width: 48px;
        max-height: 28px;
    }

    .transport-topbar-v4 .transport-brand-title {
        font-size: .95rem;
    }

    .transport-account-button span {
        display: none;
    }

    .transport-account-button {
        width: 2.25rem;
        justify-content: center;
        padding-right: .35rem;
        padding-left: .35rem;
    }
}

/* Bloque 21 - bloqueo definitivo del menu superior horizontal
   Elimina el comportamiento heredado de .transport-nav en columna para cabeceras operativas.
   Mantiene una sola linea de cabecera y, si no cabe, el menu hace scroll horizontal interno. */
.transport-topbar-v4 {
    position: relative;
    z-index: 1030;
    overflow-x: hidden !important;
    overflow-y: visible !important;
}

.transport-topbar-v4 .transport-header-line {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    min-height: 64px !important;
    gap: .65rem !important;
    padding: .42rem 0 !important;
}

.transport-topbar-v4 .transport-brand-compact {
    flex: 0 0 auto !important;
    max-width: 205px !important;
}

.transport-topbar-v4 .transport-brand-logo-wrap {
    width: 58px !important;
    height: 38px !important;
    border-radius: 11px !important;
}

.transport-topbar-v4 .transport-brand-logo {
    max-width: 50px !important;
    max-height: 30px !important;
}

.transport-topbar-v4 .transport-brand-title {
    font-size: .98rem !important;
    letter-spacing: .12em !important;
}

.transport-topbar-v4 .transport-brand-subtitle {
    display: none !important;
}

.transport-topbar-v4 .transport-module-nav-inline {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    width: auto !important;
    max-width: none !important;
    padding: 0 !important;
    border: 0 !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
}

.transport-topbar-v4 .transport-module-nav-inline::-webkit-scrollbar {
    height: 4px;
}

.transport-topbar-v4 .transport-module-nav-inline::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, .22);
    border-radius: 999px;
}

.transport-topbar-v4 .transport-nav-v4,
.transport-topbar-v4 ul.transport-nav-v4,
.transport-topbar-v4 .transport-module-nav-inline > ul.transport-nav-v4 {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    flex-wrap: nowrap !important;
    width: max-content !important;
    min-width: 0 !important;
    max-width: none !important;
    gap: .12rem !important;
    margin: 0 !important;
    padding: 0 !important;
}

.transport-topbar-v4 .transport-nav-v4 .nav-item,
.transport-topbar-v4 .transport-module-nav-inline .nav-item {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
}

.transport-topbar-v4 .transport-nav-v4 .nav-link,
.transport-topbar-v4 .transport-module-nav-inline .nav-link {
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    min-height: 2rem !important;
    padding: .35rem .42rem !important;
    border-radius: 999px !important;
    font-size: .81rem !important;
    line-height: 1 !important;
    white-space: nowrap !important;
}

.transport-topbar-v4 .transport-nav-v4 .nav-link i,
.transport-topbar-v4 .transport-module-nav-inline .nav-link i {
    font-size: .88rem !important;
    flex: 0 0 auto !important;
}

.transport-topbar-v4 .transport-nav-v4 .nav-link span,
.transport-topbar-v4 .transport-module-nav-inline .nav-link span {
    display: inline !important;
    white-space: nowrap !important;
}

.transport-topbar-v4 .transport-nav-v4 .dropdown-toggle::after,
.transport-topbar-v4 .transport-module-nav-inline .dropdown-toggle::after {
    display: inline-block !important;
    margin-left: .22rem !important;
}

.transport-topbar-v4 .transport-account-area {
    flex: 0 0 auto !important;
    margin-left: .35rem !important;
    min-width: auto !important;
    width: auto !important;
}

.transport-topbar-v4 .transport-account-button {
    min-height: 2rem !important;
    padding: .32rem .55rem !important;
    font-size: .8rem !important;
    border-radius: 10px !important;
}

.transport-topbar-v4 .dropdown-menu {
    position: absolute !important;
}

@media (max-width: 1599.98px) {
    .transport-topbar-v4 .transport-brand-compact {
        max-width: 185px !important;
    }

    .transport-topbar-v4 .transport-nav-v4 .nav-link,
    .transport-topbar-v4 .transport-module-nav-inline .nav-link {
        font-size: .78rem !important;
        padding-left: .35rem !important;
        padding-right: .35rem !important;
        gap: .22rem !important;
    }
}

@media (max-width: 1199.98px) {
    .transport-topbar-v4 .transport-brand-text {
        display: none !important;
    }

    .transport-topbar-v4 .transport-brand-compact {
        max-width: 64px !important;
    }

    .transport-topbar-v4 .transport-nav-v4 .nav-link,
    .transport-topbar-v4 .transport-module-nav-inline .nav-link {
        font-size: .76rem !important;
    }
}

@media (max-width: 991.98px) {
    .transport-topbar-v4 .transport-nav-v4 .nav-link span,
    .transport-topbar-v4 .transport-module-nav-inline .nav-link span {
        display: none !important;
    }

    .transport-topbar-v4 .transport-nav-v4 .nav-link,
    .transport-topbar-v4 .transport-module-nav-inline .nav-link {
        width: 2rem !important;
        min-width: 2rem !important;
        padding-left: .25rem !important;
        padding-right: .25rem !important;
    }
}

@media (max-width: 575.98px) {
    .transport-topbar-v4 .transport-header-line {
        gap: .4rem !important;
    }

    .transport-topbar-v4 .transport-brand-logo-wrap {
        width: 50px !important;
        height: 34px !important;
    }

    .transport-topbar-v4 .transport-account-button span {
        display: none !important;
    }
}

/* Bloque 22 - cabecera horizontal operativa con desplegables visibles
   Repara el efecto no operativo del bloque 21: la navegacion no debe vivir dentro de
   un contenedor con overflow que corte los desplegables. La cuenta vuelve al final,
   los modulos permanecen en cabecera y los dropdowns pueden abrirse completos con
   scroll propio cuando hay muchas opciones. */
.transport-topbar-v4 {
    position: sticky;
    top: 0;
    z-index: 1080;
    overflow: visible !important;
    min-height: 76px !important;
}

.transport-topbar-v4 .transport-header-line {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: .7rem !important;
    min-height: 76px !important;
    padding: .55rem 0 !important;
    overflow: visible !important;
}

.transport-topbar-v4 .transport-brand-compact {
    order: 1 !important;
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: 205px !important;
}

.transport-topbar-v4 .transport-module-nav-inline {
    order: 2 !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    width: auto !important;
    max-width: none !important;
    overflow: visible !important;
    padding: 0 !important;
    border: 0 !important;
}

.transport-topbar-v4 .transport-account-area {
    order: 3 !important;
    flex: 0 0 auto !important;
    margin-left: .35rem !important;
    min-width: auto !important;
    width: auto !important;
}

.transport-topbar-v4 .transport-nav-v4,
.transport-topbar-v4 ul.transport-nav-v4,
.transport-topbar-v4 .transport-module-nav-inline > ul.transport-nav-v4 {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    flex-wrap: nowrap !important;
    gap: .16rem !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: visible !important;
    margin: 0 !important;
    padding: 0 !important;
}

.transport-topbar-v4 .transport-nav-v4 .nav-item,
.transport-topbar-v4 .transport-module-nav-inline .nav-item {
    position: relative !important;
    flex: 0 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
}

.transport-topbar-v4 .transport-nav-v4 .nav-link,
.transport-topbar-v4 .transport-module-nav-inline .nav-link {
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    gap: .28rem !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    min-height: 2.25rem !important;
    padding: .43rem .48rem !important;
    border-radius: 999px !important;
    font-size: .86rem !important;
    font-weight: 750 !important;
    line-height: 1 !important;
    white-space: nowrap !important;
}

.transport-topbar-v4 .transport-nav-v4 .nav-link i,
.transport-topbar-v4 .transport-module-nav-inline .nav-link i {
    font-size: .95rem !important;
    flex: 0 0 auto !important;
}

.transport-topbar-v4 .transport-nav-v4 .nav-link span,
.transport-topbar-v4 .transport-module-nav-inline .nav-link span {
    display: inline !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.transport-topbar-v4 .transport-nav-v4 .dropdown-toggle::after,
.transport-topbar-v4 .transport-module-nav-inline .dropdown-toggle::after {
    display: inline-block !important;
    flex: 0 0 auto !important;
    margin-left: .18rem !important;
}

.transport-topbar-v4 .dropdown-menu {
    z-index: 1200 !important;
    margin-top: .5rem !important;
    max-height: calc(100vh - 110px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    border-radius: 14px !important;
    box-shadow: 0 18px 42px rgba(15, 23, 42, .28) !important;
}

.transport-topbar-v4 .dropdown-menu::-webkit-scrollbar {
    width: 8px;
}

.transport-topbar-v4 .dropdown-menu::-webkit-scrollbar-thumb {
    background: rgba(15, 23, 42, .28);
    border-radius: 999px;
}

.transport-topbar-v4 .transport-account-button {
    min-height: 2.35rem !important;
    padding: .42rem .65rem !important;
    font-size: .85rem !important;
    border-radius: 12px !important;
}

@media (max-width: 1599.98px) {
    .transport-topbar-v4 .transport-header-line {
        gap: .5rem !important;
    }

    .transport-topbar-v4 .transport-brand-compact {
        max-width: 178px !important;
    }

    .transport-topbar-v4 .transport-nav-v4 .nav-link,
    .transport-topbar-v4 .transport-module-nav-inline .nav-link {
        font-size: .8rem !important;
        padding-left: .34rem !important;
        padding-right: .34rem !important;
        gap: .2rem !important;
    }

    .transport-topbar-v4 .transport-account-button {
        padding-left: .55rem !important;
        padding-right: .55rem !important;
    }
}

@media (max-width: 1399.98px) {
    .transport-topbar-v4 .transport-brand-text {
        display: none !important;
    }

    .transport-topbar-v4 .transport-brand-compact {
        max-width: 64px !important;
    }

    .transport-topbar-v4 .transport-nav-v4,
    .transport-topbar-v4 .transport-module-nav-inline > ul.transport-nav-v4 {
        flex-wrap: nowrap !important;
    }

    .transport-topbar-v4 .transport-nav-v4 .nav-link,
    .transport-topbar-v4 .transport-module-nav-inline .nav-link {
        font-size: .78rem !important;
        padding-left: .32rem !important;
        padding-right: .32rem !important;
    }
}

@media (max-width: 1199.98px) {
    .transport-topbar-v4 .transport-header-line {
        min-height: 70px !important;
        gap: .42rem !important;
    }

    .transport-topbar-v4 .transport-nav-v4 .nav-link span,
    .transport-topbar-v4 .transport-module-nav-inline .nav-link span {
        display: none !important;
    }

    .transport-topbar-v4 .transport-nav-v4 .nav-link,
    .transport-topbar-v4 .transport-module-nav-inline .nav-link {
        width: 2.22rem !important;
        min-width: 2.22rem !important;
        padding-left: .28rem !important;
        padding-right: .28rem !important;
    }

    .transport-topbar-v4 .transport-account-button span {
        display: none !important;
    }
}

@media (max-width: 767.98px) {
    .transport-topbar-v4 .transport-module-nav-inline {
        overflow-x: auto !important;
        overflow-y: visible !important;
        scrollbar-width: thin;
        padding-bottom: .25rem !important;
    }

    .transport-topbar-v4 .transport-module-nav-inline::-webkit-scrollbar {
        height: 7px;
    }

    .transport-topbar-v4 .transport-module-nav-inline::-webkit-scrollbar-thumb {
        background: rgba(255, 255, 255, .32);
        border-radius: 999px;
    }

    .transport-topbar-v4 .dropdown-menu {
        max-height: calc(100vh - 100px) !important;
    }
}

/* Login profesional */
.transport-login-body-pro {
    min-height: 100vh;
    overflow-x: hidden;
    background:
        radial-gradient(circle at 12% 12%, rgba(255, 230, 0, .24), transparent 26rem),
        radial-gradient(circle at 88% 18%, rgba(31, 95, 139, .22), transparent 28rem),
        linear-gradient(135deg, #111827 0%, #20242a 46%, #f4f6f8 46%, #e8edf3 100%);
}

.transport-login-shell-pro {
    position: relative;
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: clamp(1rem, 3vw, 3rem);
}

.transport-login-shell-pro::before,
.transport-login-shell-pro::after {
    content: "";
    position: fixed;
    pointer-events: none;
    border-radius: 999px;
    filter: blur(2px);
}

.transport-login-shell-pro::before {
    width: 19rem;
    height: 19rem;
    left: -7rem;
    bottom: -6rem;
    background: rgba(255, 230, 0, .16);
}

.transport-login-shell-pro::after {
    width: 23rem;
    height: 23rem;
    right: -9rem;
    top: -8rem;
    background: rgba(255, 255, 255, .18);
}

.transport-login-panel {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(390px, .92fr);
    width: min(100%, 1060px);
    min-height: 620px;
    border: 1px solid rgba(255, 255, 255, .34);
    border-radius: 28px;
    overflow: hidden;
    background: rgba(255, 255, 255, .78);
    box-shadow: 0 34px 90px rgba(15, 23, 42, .28);
    backdrop-filter: blur(18px);
}

.transport-login-hero {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 100%;
    padding: clamp(2rem, 4vw, 3.25rem);
    color: #fff;
    background:
        linear-gradient(rgba(17, 24, 39, .82), rgba(17, 24, 39, .76)),
        radial-gradient(circle at 18% 18%, rgba(255, 230, 0, .24), transparent 18rem),
        linear-gradient(135deg, #20242a 0%, #111827 100%);
}

.transport-login-hero::before {
    content: "";
    position: absolute;
    inset: auto -8rem -10rem auto;
    width: 24rem;
    height: 24rem;
    border: 1px solid rgba(255, 230, 0, .26);
    border-radius: 50%;
}

.transport-login-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    opacity: .08;
    background-image:
        linear-gradient(90deg, #fff 1px, transparent 1px),
        linear-gradient(180deg, #fff 1px, transparent 1px);
    background-size: 42px 42px;
}

.transport-login-hero > * {
    position: relative;
    z-index: 1;
}

.transport-login-hero-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.transport-login-logo-box {
    display: grid;
    place-items: center;
    width: 126px;
    min-height: 70px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 20px;
    background: rgba(255, 255, 255, .92);
    box-shadow: 0 18px 50px rgba(0, 0, 0, .18);
}

.transport-login-logo-box img {
    max-width: 96px;
    height: auto;
}

.transport-login-status-pill {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .5rem .75rem;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 999px;
    background: rgba(255, 255, 255, .1);
    color: rgba(255, 255, 255, .86);
    font-size: .82rem;
    font-weight: 800;
}

.transport-login-status-pill i {
    color: var(--transport-goitia-yellow);
}

.transport-login-kicker {
    color: var(--transport-goitia-yellow);
}

.transport-login-hero-content h1 {
    max-width: 560px;
    margin: 0;
    font-size: clamp(2.25rem, 4vw, 4.15rem);
    font-weight: 900;
    line-height: .98;
    letter-spacing: -.055em;
}

.transport-login-hero-content p {
    max-width: 500px;
    margin: 1.25rem 0 0;
    color: rgba(255, 255, 255, .74);
    font-size: 1.04rem;
}

.transport-login-feature-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
}

.transport-login-feature {
    display: flex;
    align-items: center;
    gap: .6rem;
    min-width: 0;
    padding: .78rem .85rem;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 16px;
    background: rgba(255, 255, 255, .09);
    color: rgba(255, 255, 255, .86);
    font-weight: 800;
}

.transport-login-feature i {
    color: var(--transport-goitia-yellow);
    font-size: 1.15rem;
}

.transport-login-card-pro {
    width: auto;
    max-width: none;
    min-height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(2rem, 4vw, 3.25rem);
    border: 0;
    border-radius: 0;
    background: rgba(255, 255, 255, .96);
    box-shadow: none;
}

.transport-login-form-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.65rem;
}

.transport-login-eyebrow {
    display: inline-block;
    margin-bottom: .35rem;
    color: var(--transport-danger, #a83232);
    font-size: .78rem;
    font-weight: 900;
    letter-spacing: .14em;
}

.transport-login-form-header h2 {
    margin: 0;
    color: var(--transport-text);
    font-size: clamp(1.8rem, 2vw, 2.35rem);
    font-weight: 900;
    letter-spacing: -.035em;
}

.transport-login-form-header p {
    margin: .45rem 0 0;
    color: var(--transport-muted);
}

.transport-login-input-group {
    position: relative;
}

.transport-login-input-group i {
    position: absolute;
    left: 1rem;
    top: 50%;
    z-index: 2;
    transform: translateY(-50%);
    color: var(--transport-muted);
    font-size: 1.05rem;
}

.transport-login-input-group .form-control {
    min-height: 3.35rem;
    padding-left: 2.8rem;
    border-color: var(--transport-border);
    border-radius: 16px;
    background: #f8fafc;
    font-weight: 700;
    box-shadow: none;
}

.transport-login-input-group .form-control:focus {
    border-color: #d8c100;
    background: #fff;
    box-shadow: 0 0 0 .24rem rgba(255, 230, 0, .18);
}

.transport-login-submit {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .65rem;
    min-height: 3.35rem;
    border-radius: 16px;
    font-weight: 900;
    box-shadow: 0 18px 36px rgba(17, 24, 39, .2);
}

.transport-login-submit i {
    margin: 0;
}

.transport-login-footer-note {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-top: 1.15rem;
    color: var(--transport-muted);
    font-size: .88rem;
    font-weight: 700;
}

.transport-login-footer-note i {
    color: var(--transport-primary);
}

@media (max-width: 991.98px) {
    .transport-login-body-pro {
        background:
            radial-gradient(circle at 12% 12%, rgba(255, 230, 0, .24), transparent 24rem),
            linear-gradient(135deg, #111827 0%, #20242a 100%);
    }

    .transport-login-panel {
        grid-template-columns: 1fr;
        width: min(100%, 520px);
        min-height: auto;
    }

    .transport-login-hero {
        min-height: 330px;
    }

    .transport-login-hero-content h1 {
        font-size: clamp(2rem, 8vw, 3rem);
    }

    .transport-login-card-pro {
        min-height: auto;
    }
}

@media (max-width: 575.98px) {
    .transport-login-shell-pro {
        align-items: stretch;
        place-items: stretch;
        padding: .75rem;
    }

    .transport-login-panel {
        border-radius: 22px;
    }

    .transport-login-hero {
        padding: 1.35rem;
        min-height: 300px;
    }

    .transport-login-hero-top {
        align-items: flex-start;
        flex-direction: column;
    }

    .transport-login-logo-box {
        width: 108px;
        min-height: 60px;
    }

    .transport-login-feature-grid {
        grid-template-columns: 1fr;
    }

    .transport-login-card-pro {
        padding: 1.35rem;
    }
}

/* Bloque accesos operativos agrupados - Inicio */
.transport-access-group-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    padding: 1rem;
}

.transport-access-group {
    overflow: hidden;
    border: 1px solid var(--transport-border);
    border-radius: var(--transport-radius-lg);
    background: linear-gradient(180deg, #ffffff 0%, #fafafa 100%);
    box-shadow: 0 12px 30px rgba(17, 24, 39, .05);
}

.transport-access-group-header {
    display: flex;
    align-items: center;
    gap: .8rem;
    padding: 1rem 1rem .85rem;
    border-bottom: 1px solid var(--transport-border);
    background: #fff;
}

.transport-access-group-header strong {
    display: block;
    color: var(--transport-text);
    font-size: .9rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.transport-access-group-header small {
    display: block;
    margin-top: .12rem;
    color: var(--transport-muted);
    font-size: .8rem;
}

.transport-access-group-icon {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 42px;
    height: 42px;
    border-radius: 14px;
    background: var(--transport-goitia-yellow-soft);
    color: var(--transport-graphite);
    font-size: 1.15rem;
}

.transport-shortcut-list-grouped {
    padding: .75rem;
    gap: .55rem;
}

.transport-shortcut-list-grouped .transport-shortcut {
    min-height: 72px;
    transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}

.transport-shortcut-list-grouped .transport-shortcut:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 24px rgba(17, 24, 39, .07);
}

.transport-shortcut-disabled {
    opacity: .72;
}

.transport-shortcut-disabled:hover {
    transform: none !important;
    box-shadow: none !important;
}

@media (max-width: 991.98px) {
    .transport-access-group-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575.98px) {
    .transport-access-group-grid {
        padding: .75rem;
    }

    .transport-access-group-header {
        padding: .85rem;
    }
}

/* Accesos operativos estilo tarjeta - Inicio */
.transport-section-title {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
}

.transport-section-kicker {
    display: inline-block;
    margin-bottom: .25rem;
    color: var(--transport-danger, #a83232);
    font-size: .76rem;
    font-weight: 900;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.transport-section-title h2 {
    margin: 0;
    color: var(--transport-text);
    font-size: 1.18rem;
    font-weight: 900;
}

.transport-section-title p {
    margin: .2rem 0 0;
    color: var(--transport-muted);
    font-size: .92rem;
}

.transport-access-card {
    overflow: hidden;
    background: linear-gradient(180deg, #ffffff 0%, #fbfcfd 100%);
}

.transport-access-card-header {
    display: flex;
    align-items: flex-start;
    gap: .85rem;
    min-height: 88px;
    padding: 1rem 1rem .9rem;
    border-bottom: 1px solid var(--transport-border);
    background: #fff;
}

.transport-access-card-header h5 {
    margin: 0;
    color: var(--transport-text);
    font-size: .98rem;
    font-weight: 900;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.transport-access-card-header p {
    margin: .25rem 0 0;
    color: var(--transport-muted);
    font-size: .84rem;
    line-height: 1.25;
}

.transport-access-card-icon {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    border-radius: 15px;
    background: var(--transport-goitia-yellow-soft);
    color: var(--transport-graphite);
    font-size: 1.18rem;
}

.transport-access-card-body {
    padding: .9rem;
}

.transport-menu-option {
    display: flex;
    align-items: center;
    gap: .7rem;
    min-height: 48px;
    padding: .65rem .8rem;
    border-radius: 13px;
    text-align: left;
    font-weight: 800;
    justify-content: flex-start;
    background: #fff;
}

.transport-menu-option i {
    width: 1.2rem;
    text-align: center;
    font-size: 1.05rem;
}

.transport-menu-option span {
    flex: 1 1 auto;
    min-width: 0;
}

.transport-menu-option small {
    flex: 0 0 auto;
    padding: .18rem .45rem;
    border-radius: 999px;
    background: var(--transport-soft);
    color: var(--transport-muted);
    font-size: .68rem;
    font-weight: 900;
}

.transport-menu-option-disabled {
    border-color: var(--transport-border) !important;
    color: var(--transport-muted) !important;
    opacity: .76;
}

.transport-menu-option-disabled:hover,
.transport-menu-option-disabled:focus {
    background: #fff !important;
    color: var(--transport-muted) !important;
    box-shadow: none !important;
}
/* Accesos operativos estilo tarjeta - Fin */

/* Ajuste visual home: cabecera mas suave y accesos sin azul Bootstrap */
.transport-topbar,
.transport-topbar-v4 {
    background: linear-gradient(90deg, #2f343b 0%, #3b4148 58%, #343a40 100%) !important;
    border-bottom-color: #d3b900 !important;
}

.transport-topbar-v4 .transport-nav-v4 .nav-link {
    color: rgba(255, 255, 255, .86) !important;
}

.transport-topbar-v4 .transport-nav-v4 .nav-link:hover,
.transport-topbar-v4 .transport-nav-v4 .nav-link:focus {
    color: #fff !important;
    background: rgba(255, 255, 255, .12) !important;
}

.transport-topbar-v4 .transport-account-button {
    border-color: rgba(255, 255, 255, .25) !important;
    color: #fff !important;
}

.transport-access-card {
    border: 1px solid #e1e5ea;
    box-shadow: 0 12px 28px rgba(31, 41, 51, .06);
}

.transport-access-card-header {
    background: linear-gradient(180deg, #ffffff 0%, #f7f8fa 100%);
}

.transport-access-card-icon {
    background: #f5e9e9 !important;
    color: var(--transport-danger, #a83232) !important;
}

.transport-menu-option {
    border: 1px solid #dde2e8 !important;
    color: #343a40 !important;
    background: #fff !important;
    text-decoration: none;
}

.transport-menu-option i {
    color: var(--transport-danger, #a83232) !important;
}

.transport-menu-option:hover,
.transport-menu-option:focus {
    border-color: #c8cfd8 !important;
    color: var(--transport-danger, #a83232) !important;
    background: #fbf7f7 !important;
    box-shadow: 0 8px 18px rgba(168, 50, 50, .08);
}

.transport-menu-option-disabled,
.transport-menu-option-disabled:hover,
.transport-menu-option-disabled:focus {
    color: var(--transport-muted) !important;
    background: #f8fafc !important;
    border-color: var(--transport-border) !important;
}

.transport-menu-option-disabled i {
    color: var(--transport-muted) !important;
}


/* Ajuste final home: navegacion por grupos y acento oro */
:root {
    --transport-goitia-gold: #d3b900;
    --transport-goitia-gold-soft: #fff8cc;
}

.transport-topbar,
.transport-topbar-v4 {
    background: linear-gradient(90deg, #343a40 0%, #444b53 56%, #3b4249 100%) !important;
    border-bottom-color: var(--transport-goitia-gold) !important;
}

.transport-topbar-v4 .transport-nav-v4 .nav-link i,
.transport-topbar .transport-nav .nav-link i {
    color: var(--transport-goitia-gold) !important;
}

.transport-topbar-v4 .transport-nav-v4 .nav-link:hover i,
.transport-topbar-v4 .transport-nav-v4 .nav-link:focus i,
.transport-topbar .transport-nav .nav-link:hover i,
.transport-topbar .transport-nav .nav-link:focus i {
    color: var(--transport-goitia-yellow) !important;
}

.transport-access-card-icon {
    background: var(--transport-goitia-gold-soft) !important;
    color: #3b3420 !important;
    border: 1px solid rgba(211, 185, 0, .55) !important;
}

.transport-menu-option {
    border: 1px solid rgba(211, 185, 0, .75) !important;
    color: #343a40 !important;
    background: #fff !important;
    text-decoration: none;
}

.transport-menu-option i {
    color: #3b3420 !important;
}

.transport-menu-option:hover,
.transport-menu-option:focus {
    border-color: var(--transport-goitia-gold) !important;
    color: #1f2933 !important;
    background: #fffdf0 !important;
    box-shadow: 0 8px 18px rgba(211, 185, 0, .16);
}

.transport-menu-option-disabled,
.transport-menu-option-disabled:hover,
.transport-menu-option-disabled:focus {
    color: var(--transport-muted) !important;
    background: #f8fafc !important;
    border-color: var(--transport-border) !important;
    box-shadow: none !important;
}

.transport-menu-option-disabled i {
    color: var(--transport-muted) !important;
}

/* Fase 1 - Configuracion: submenu operativo de Flota dentro del menu principal */
.transport-topbar-v4 .transport-config-menu {
    min-width: 270px;
}

.transport-topbar-v4 .transport-config-menu .dropdown-header {
    padding-top: .35rem;
    padding-bottom: .2rem;
    color: rgba(71, 85, 105, .92);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.transport-topbar-v4 .transport-config-menu .dropdown-item {
    display: flex;
    align-items: center;
    gap: .45rem;
}

.transport-topbar-v4 .transport-config-menu .dropdown-item i {
    flex: 0 0 auto;
    width: 1rem;
    text-align: center;
}

.transport-topbar-v4 .transport-config-submenu-toggle {
    justify-content: space-between;
    font-weight: 750;
}

.transport-topbar-v4 .transport-config-submenu-toggle span {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
}

.transport-topbar-v4 .transport-config-submenu-chevron {
    width: auto !important;
    transition: transform .18s ease;
}

.transport-topbar-v4 .transport-config-submenu-toggle[aria-expanded="true"] .transport-config-submenu-chevron {
    transform: rotate(180deg);
}

.transport-topbar-v4 .transport-config-submenu-list {
    margin: .15rem .35rem .35rem 1rem;
    padding: .2rem 0 .2rem .45rem;
    border-left: 2px solid rgba(15, 23, 42, .12);
}

.transport-topbar-v4 .transport-config-subitem {
    padding-left: .6rem !important;
    font-size: .88rem;
}

/* Fase 3 - Estandar de listados de Flota */
.transport-list-toolbar .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
}

.transport-list-toolbar-actions {
    display: flex;
    align-items: center;
    gap: .45rem;
    flex-wrap: wrap;
}

.transport-list-toolbar-actions .btn {
    flex: 1 1 auto;
}

.transport-record-summary {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: .55rem;
    flex-wrap: wrap;
}

.transport-record-detail {
    color: var(--transport-muted);
    font-size: .85rem;
    font-weight: 700;
}

.transport-fleet-table .transport-table-action-group {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: .35rem;
    white-space: nowrap;
}

.transport-empty-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    flex-wrap: wrap;
}

@media (max-width: 767.98px) {
    .transport-list-toolbar-actions .btn {
        flex-basis: 100%;
    }

    .transport-record-summary {
        justify-content: flex-start;
    }
}

/* Fase 7 - Estandar de listados comerciales */
.transport-master-table .transport-table-action-group {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: .35rem;
    white-space: nowrap;
}

.transport-inline-badges {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    flex-wrap: wrap;
}

/* Fase 8 - Maestros pequenos y tonos comunes */
.transport-status-badge.transport-tone-primary,
.transport-summary-card.transport-tone-primary .transport-summary-icon {
    background: var(--transport-primary-soft);
    color: var(--transport-primary);
    border-color: rgba(31, 95, 139, .18);
}

.transport-status-badge.transport-tone-success,
.transport-summary-card.transport-tone-success .transport-summary-icon {
    background: var(--transport-success-soft);
    color: var(--transport-success);
    border-color: rgba(31, 122, 77, .18);
}

.transport-status-badge.transport-tone-warning,
.transport-summary-card.transport-tone-warning .transport-summary-icon {
    background: var(--transport-warning-soft);
    color: var(--transport-warning);
    border-color: rgba(154, 103, 0, .2);
}

.transport-status-badge.transport-tone-danger,
.transport-summary-card.transport-tone-danger .transport-summary-icon {
    background: var(--transport-danger-soft);
    color: var(--transport-danger);
    border-color: rgba(168, 50, 50, .18);
}

.transport-status-badge.transport-tone-neutral,
.transport-status-badge.transport-tone-secondary,
.transport-summary-card.transport-tone-neutral .transport-summary-icon,
.transport-summary-card.transport-tone-secondary .transport-summary-icon {
    background: var(--transport-soft);
    color: var(--transport-muted);
    border-color: var(--transport-border);
}

.transport-settings-table .transport-table-action-group {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: .35rem;
    white-space: nowrap;
}

/* Fase 9 - Limpieza transversal de estilos comunes
   Cierre de sistema visual para listados, maestros, estados y acciones.
   No redefine rutas ni estructura: normaliza clases compartidas por Flota,
   Personal, Comercial y Configuracion. */
:root {
    --transport-border-soft: #edf1f5;
    --transport-border-strong: #cbd5e1;
    --transport-text-muted: var(--transport-muted);
    --transport-ink: var(--transport-text);
    --transport-soft-bg: var(--transport-soft);
    --transport-shadow-sm: 0 8px 24px rgba(15, 23, 42, .06);
}

.transport-card,
.transport-toolbar {
    overflow: hidden;
}

.transport-toolbar.transport-list-toolbar {
    margin-bottom: 1rem;
}

.transport-list-toolbar .form-control,
.transport-list-toolbar .form-select {
    min-height: 2.55rem;
}

.transport-list-toolbar .btn,
.transport-empty-actions .btn,
.transport-table-action-group .btn {
    white-space: nowrap;
}

.transport-record-summary {
    min-height: 2.4rem;
}

.transport-record-count {
    display: inline-flex;
    align-items: center;
    min-height: 1.7rem;
    padding: .28rem .65rem;
    border: 1px solid var(--transport-border);
    background: var(--transport-soft) !important;
    color: var(--transport-text) !important;
    font-weight: 850;
}

.transport-record-detail {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    min-height: 1.7rem;
}

.transport-table-scroll {
    width: 100%;
    overflow: auto;
    border-radius: 0 0 var(--transport-radius-lg) var(--transport-radius-lg);
}

.transport-table {
    min-width: 760px;
    vertical-align: middle;
}

.transport-fleet-table,
.transport-master-table,
.transport-settings-table {
    width: 100%;
}

.transport-fleet-table .transport-table-action-group,
.transport-master-table .transport-table-action-group,
.transport-settings-table .transport-table-action-group,
.transport-table-action-group {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: .35rem;
    white-space: nowrap;
}

.transport-table-action-group .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .25rem;
    min-width: 2.15rem;
}

.transport-table-action-group .btn i {
    margin-right: 0;
}

.transport-status-badge {
    line-height: 1.1;
}

.transport-row-muted td {
    color: var(--transport-muted);
}

.transport-row-warning td {
    background: #fffaf0;
}

.transport-empty-state {
    min-height: 220px;
}

.transport-empty-state p {
    max-width: 560px;
    margin-right: auto;
    margin-left: auto;
}

.transport-empty-actions {
    margin-top: 1rem;
}

.transport-inline-badges {
    row-gap: .25rem;
}

.transport-config-menu .dropdown-divider {
    margin: .35rem 0;
}

.transport-config-submenu-list .dropdown-item {
    border-radius: 10px;
}

.transport-config-submenu-list .dropdown-item:hover,
.transport-config-submenu-list .dropdown-item:focus {
    background: #fffdf0;
}

@media (max-width: 991.98px) {
    .transport-module-actions {
        width: 100%;
        justify-content: flex-start;
    }

    .transport-module-actions .btn {
        flex: 1 1 auto;
    }

    .transport-toolbar.transport-list-toolbar {
        padding: .85rem;
    }

    .transport-table {
        min-width: 680px;
    }
}

@media (max-width: 575.98px) {
    .transport-module-actions,
    .transport-list-toolbar-actions,
    .transport-empty-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .transport-module-actions .btn,
    .transport-list-toolbar-actions .btn,
    .transport-empty-actions .btn {
        width: 100%;
    }

    .transport-record-summary {
        justify-content: flex-start;
    }

    .transport-record-detail,
    .transport-record-count {
        width: 100%;
        justify-content: center;
    }

    .transport-table-action-group {
        justify-content: flex-start;
    }
}
/* Fase 9 - Fin */

/* GTM FrontEnd - navegación principal intuitiva (iteración 001) */
.transport-topbar-v4 .transport-nav-v4 .nav-link.active,
.transport-topbar-v4 .transport-module-nav-inline .nav-link.active {
    background: rgba(255, 255, 255, 0.2);
    color: #fff;
    box-shadow: inset 0 -2px 0 rgba(255, 255, 255, 0.9);
}

.transport-topbar-v4 .transport-nav-v4 .dropdown-item i {
    width: 1.35rem;
    margin-right: 0.45rem;
    text-align: center;
}

.transport-topbar-v4 .transport-nav-v4 .dropdown-header {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

@media (max-width: 1399.98px) {
    .transport-topbar-v4 .transport-nav-v4 .nav-link,
    .transport-topbar-v4 .transport-module-nav-inline .nav-link {
        padding-left: 0.55rem;
        padding-right: 0.55rem;
    }
}


/* GTM FrontEnd - cabecera corporativa y usuario autenticado (iteracion 002) */
.transport-topbar-v4 .transport-header-line {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: .35rem;
}

.transport-topbar-v4 .transport-brand-goitia {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: .55rem;
    margin-right: .25rem;
    white-space: nowrap;
}

.transport-topbar-v4 .transport-brand-goitia .transport-brand-logo-wrap {
    width: 58px;
    height: 38px;
    flex: 0 0 58px;
}

.transport-topbar-v4 .transport-brand-goitia .transport-brand-logo {
    max-width: 50px;
    max-height: 30px;
}

.transport-company-badge {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: .35rem .75rem;
    border: 1px solid rgba(255, 255, 255, .7);
    border-radius: 999px;
    background: #fff;
    color: #b4232f;
    box-shadow: 0 3px 10px rgba(0, 0, 0, .14);
    font-size: .82rem;
    font-weight: 900;
    letter-spacing: .035em;
    line-height: 1;
}

.transport-topbar-v4 .transport-module-nav-inline {
    flex: 0 1 auto;
    min-width: 0;
}

.transport-topbar-v4 .transport-global-search {
    flex: 0 0 auto;
    margin-left: auto;
    margin-right: .45rem;
}

.transport-topbar-v4 .transport-global-search .input-group {
    min-width: 300px;
}

.transport-topbar-v4 .transport-account-area {
    flex: 0 0 auto;
    margin-left: 0;
}

.transport-topbar-v4 .transport-account-button {
    max-width: 210px;
}

.transport-topbar-v4 .transport-account-name {
    display: inline-block;
    max-width: 150px;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: bottom;
    white-space: nowrap;
}

@media (max-width: 1599.98px) {
    .transport-company-badge {
        padding-right: .6rem;
        padding-left: .6rem;
        font-size: .75rem;
    }

    .transport-topbar-v4 .transport-brand-goitia {
        gap: .4rem;
    }
}

@media (max-width: 1199.98px) {
    .transport-company-badge {
        display: none;
    }
}

@media (max-width: 767.98px) {
    .transport-topbar-v4 .transport-brand-goitia .transport-brand-logo-wrap {
        width: 52px;
        flex-basis: 52px;
    }

    .transport-topbar-v4 .transport-account-name {
        max-width: 92px;
    }
}
/* GTM FrontEnd - fin iteracion 002 */



/* GTM FrontEnd - Flota workspace 001 */
.transport-fleet-header .transport-module-actions { justify-content: flex-end; }
.transport-fleet-overview { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1rem; }
.transport-fleet-counters { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.transport-fleet-counter { min-height: 76px; display: flex; align-items: center; gap: .8rem; width: 100%; padding: .85rem 1rem; border: 1px solid var(--transport-border); border-radius: var(--transport-radius-lg); background: var(--transport-surface); color: var(--transport-text); text-align: left; box-shadow: 0 8px 24px rgba(15, 23, 42, .05); }
.transport-fleet-counter:hover, .transport-fleet-counter.active { border-color: #e3bd00; background: #fffdf0; }
.transport-fleet-counter small { display: block; color: var(--transport-muted); font-size: .75rem; font-weight: 800; text-transform: uppercase; }
.transport-fleet-counter strong { display: block; font-size: 1.45rem; line-height: 1.1; }
.transport-fleet-alerts { min-height: 76px; border: 1px dashed #d7dde5; border-radius: var(--transport-radius-lg); background: rgba(255,255,255,.58); padding: .75rem 1rem; }
.transport-fleet-alert-heading { display: flex; align-items: center; justify-content: space-between; color: var(--transport-warning); font-weight: 800; }
.transport-fleet-alert-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; margin-top: .55rem; }
.transport-fleet-alert-list a { min-width: 0; padding: .5rem .65rem; border-radius: 10px; background: #fff; border: 1px solid var(--transport-border); color: var(--transport-text); text-decoration: none; }
.transport-fleet-alert-list span, .transport-fleet-alert-list small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.transport-fleet-alert-list span { font-weight: 750; font-size: .82rem; }
.transport-fleet-alert-list small { color: var(--transport-muted); font-size: .74rem; }
.transport-fleet-no-alerts { height: 100%; display: flex; align-items: center; justify-content: center; gap: .55rem; color: var(--transport-success); font-weight: 700; }
.transport-fleet-browser { overflow: hidden; }
.transport-fleet-browser-header { align-items: center; }
.transport-fleet-tabs { display: inline-flex; gap: .35rem; padding: .25rem; border-radius: 999px; background: var(--transport-soft); border: 1px solid var(--transport-border); }
.transport-fleet-tabs button { border: 0; border-radius: 999px; background: transparent; color: var(--transport-muted); padding: .42rem .85rem; font-size: .82rem; font-weight: 800; }
.transport-fleet-tabs button.active { background: var(--transport-graphite); color: #fff; }
.transport-fleet-workspace { display: grid; grid-template-columns: minmax(300px, 38%) minmax(0, 62%); min-height: 520px; }
.transport-fleet-list-panel { border-right: 1px solid var(--transport-border); background: #f8fafc; padding: .75rem; }
.transport-fleet-list { display: flex; flex-direction: column; gap: .5rem; max-height: 620px; overflow-y: auto; }
.transport-fleet-row { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: .75rem; width: 100%; padding: .7rem .8rem; border: 1px solid var(--transport-border); border-radius: 13px; background: #fff; color: var(--transport-text); text-align: left; }
.transport-fleet-row:hover, .transport-fleet-row.active { border-color: #e3bd00; background: #fffbea; box-shadow: 0 6px 18px rgba(15, 23, 42, .06); }
.transport-fleet-row-icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 11px; background: var(--transport-goitia-yellow-soft); color: var(--transport-graphite); }
.transport-fleet-row-text { min-width: 0; }
.transport-fleet-row-text small, .transport-fleet-row-text strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.transport-fleet-row-text small { color: var(--transport-muted); font-size: .69rem; font-weight: 800; letter-spacing: .03em; }
.transport-fleet-row-text strong { margin-top: .12rem; font-size: .95rem; }
.transport-fleet-detail-panel { padding: 1.25rem; background: #fff; }
.transport-fleet-detail-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding-bottom: 1rem; border-bottom: 1px solid var(--transport-border); }
.transport-fleet-detail-title small, .transport-fleet-detail-title strong { display: block; }
.transport-fleet-detail-title small { color: var(--transport-muted); font-size: .75rem; font-weight: 800; text-transform: uppercase; }
.transport-fleet-detail-title strong { font-size: 1.6rem; }
.transport-fleet-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin: 1rem 0 1.25rem; border: 1px solid var(--transport-border); border-radius: 14px; overflow: hidden; }
.transport-fleet-detail-grid div { padding: .75rem .9rem; border-bottom: 1px solid var(--transport-border); }
.transport-fleet-detail-grid div:nth-child(odd) { border-right: 1px solid var(--transport-border); }
.transport-fleet-detail-grid dt { color: var(--transport-muted); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.transport-fleet-detail-grid dd { margin: .15rem 0 0; font-weight: 700; }
.transport-fleet-detail-empty { min-height: 390px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .5rem; color: var(--transport-muted); }
.transport-fleet-detail-empty i { font-size: 2rem; }
@media (max-width: 1199.98px) { .transport-fleet-overview { grid-template-columns: 1fr; } .transport-fleet-alert-list { grid-template-columns: 1fr; } }
@media (max-width: 991.98px) { .transport-fleet-header { align-items: flex-start; flex-direction: column; } .transport-fleet-workspace { grid-template-columns: 1fr; } .transport-fleet-list-panel { border-right: 0; border-bottom: 1px solid var(--transport-border); } .transport-fleet-list { max-height: 340px; } }
@media (max-width: 767.98px) { .transport-fleet-counters { grid-template-columns: 1fr; } .transport-fleet-browser-header { align-items: flex-start; flex-direction: column; } .transport-fleet-tabs { width: 100%; } .transport-fleet-tabs button { flex: 1; padding-inline: .45rem; } .transport-fleet-detail-grid { grid-template-columns: 1fr; } .transport-fleet-detail-grid div:nth-child(odd) { border-right: 0; } }


/* GTM FrontEnd - Flota workspace 002 */
.transport-fleet-overview-alerts-only {
    display: block;
}

.transport-fleet-overview-alerts-only .transport-fleet-alerts {
    width: 100%;
    min-height: 88px;
}

.transport-fleet-overview-alerts-only .transport-fleet-alert-list {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.transport-fleet-browser-header {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) auto minmax(220px, 1fr);
    align-items: center;
    gap: 1rem;
}

.transport-fleet-browser-heading {
    min-width: 0;
}

.transport-fleet-browser-header .transport-fleet-tabs {
    justify-self: center;
}

.transport-fleet-count-badge {
    justify-self: end;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 92px;
    min-height: 32px;
    padding: .35rem .75rem;
    border: 1px solid #e3bd00;
    border-radius: 999px;
    background: #fffbea;
    color: var(--transport-graphite);
    font-size: .78rem;
    font-weight: 850;
    white-space: nowrap;
}

.transport-fleet-workspace {
    grid-template-columns: minmax(250px, 21%) minmax(0, 79%);
}

.transport-fleet-list-panel {
    padding: .65rem;
}

.transport-fleet-row {
    grid-template-columns: 36px minmax(0, 1fr) auto;
    gap: .55rem;
    padding: .55rem .65rem;
    border-radius: 11px;
}

.transport-fleet-row-icon {
    width: 34px;
    height: 34px;
    border-radius: 10px;
}

.transport-fleet-detail-panel {
    padding: 1.5rem;
    background: linear-gradient(145deg, #ffffff 0%, #fbfcfe 100%);
}

.transport-fleet-detail {
    max-width: 1120px;
    margin: 0 auto;
    padding: 1.35rem;
    border: 1px solid var(--transport-border);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 16px 38px rgba(15, 23, 42, .07);
}

.transport-fleet-detail-title {
    padding: .2rem .15rem 1.1rem;
    border-bottom: 2px solid #fff1a8;
}

.transport-fleet-detail-title strong {
    margin-top: .18rem;
    font-size: 1.8rem;
    letter-spacing: .015em;
}

.transport-fleet-detail-grid {
    gap: .75rem;
    margin: 1.15rem 0 0;
    padding: .75rem;
    border: 0;
    border-radius: 16px;
    background: #f7f9fc;
    overflow: visible;
}

.transport-fleet-detail-grid div,
.transport-fleet-detail-grid div:nth-child(odd) {
    min-height: 76px;
    padding: .8rem .9rem;
    border: 1px solid #e7ebf0;
    border-radius: 12px;
    background: #fff;
}

.transport-fleet-detail-grid dt {
    color: #7a8491;
    letter-spacing: .045em;
}

.transport-fleet-detail-grid dd {
    margin-top: .3rem;
    font-size: .96rem;
    color: #17202a;
}

@media (max-width: 1399.98px) {
    .transport-fleet-overview-alerts-only .transport-fleet-alert-list {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .transport-fleet-workspace {
        grid-template-columns: minmax(240px, 25%) minmax(0, 75%);
    }
}

@media (max-width: 991.98px) {
    .transport-fleet-browser-header {
        grid-template-columns: 1fr;
    }

    .transport-fleet-browser-header .transport-fleet-tabs,
    .transport-fleet-count-badge {
        justify-self: start;
    }

    .transport-fleet-workspace {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    .transport-fleet-overview-alerts-only .transport-fleet-alert-list {
        grid-template-columns: 1fr;
    }

    .transport-fleet-count-badge {
        width: 100%;
    }
}
/* GTM FrontEnd - fin Flota workspace 002 */

/* GTM FrontEnd - Flota filtros y carrusel 003 */
.transport-fleet-alert-carousel {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) 40px;
    align-items: center;
    gap: .75rem;
    margin-top: .55rem;
}

.transport-fleet-alert-track {
    min-width: 0;
}

.transport-fleet-alert-slide {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    align-items: center;
    gap: .85rem;
    min-height: 58px;
    padding: .65rem .85rem;
    border: 1px solid #f0d88b;
    border-radius: 13px;
    background: linear-gradient(100deg, #fffdf4, #fff);
    color: var(--transport-text);
    text-decoration: none;
}

.transport-fleet-alert-slide[hidden] {
    display: none;
}

.transport-fleet-alert-slide:hover {
    border-color: #d5ad1c;
    color: var(--transport-text);
    box-shadow: 0 8px 20px rgba(154, 103, 0, .08);
}

.transport-fleet-alert-icon {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border-radius: 11px;
    background: var(--transport-warning-soft);
    color: var(--transport-warning);
}

.transport-fleet-alert-copy,
.transport-fleet-alert-copy strong,
.transport-fleet-alert-copy small {
    display: block;
    min-width: 0;
}

.transport-fleet-alert-copy strong,
.transport-fleet-alert-copy small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.transport-fleet-alert-copy strong {
    font-size: .88rem;
}

.transport-fleet-alert-copy small {
    margin-top: .15rem;
    color: var(--transport-muted);
    font-size: .77rem;
}

.transport-fleet-alert-position {
    color: var(--transport-muted);
    font-size: .75rem;
    font-weight: 800;
    white-space: nowrap;
}

.transport-fleet-alert-control {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border: 1px solid var(--transport-border);
    border-radius: 50%;
    background: #fff;
    color: var(--transport-graphite);
}

.transport-fleet-alert-control:hover:not(:disabled) {
    border-color: #d5ad1c;
    background: #fffbea;
}

.transport-fleet-alert-control:disabled {
    opacity: .35;
    cursor: default;
}

.transport-fleet-filter-center {
    justify-self: center;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .65rem;
    flex-wrap: wrap;
}

.transport-fleet-status-filter {
    display: inline-flex;
    gap: .25rem;
    padding: .25rem;
    border: 1px solid var(--transport-border);
    border-radius: 999px;
    background: #fff;
}

.transport-fleet-status-filter button {
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: var(--transport-muted);
    padding: .42rem .75rem;
    font-size: .78rem;
    font-weight: 800;
}

.transport-fleet-status-filter button.active {
    background: var(--transport-goitia-yellow);
    color: var(--transport-graphite);
}

.transport-fleet-filter-empty {
    padding: 1rem .75rem;
    border: 1px dashed var(--transport-border);
    border-radius: 12px;
    background: #fff;
    color: var(--transport-muted);
    font-size: .84rem;
    text-align: center;
}

@media (max-width: 991.98px) {
    .transport-fleet-filter-center {
        justify-self: start;
        justify-content: flex-start;
    }
}

@media (max-width: 575.98px) {
    .transport-fleet-alert-carousel {
        grid-template-columns: 34px minmax(0, 1fr) 34px;
        gap: .4rem;
    }

    .transport-fleet-alert-control {
        width: 34px;
        height: 34px;
    }

    .transport-fleet-alert-slide {
        grid-template-columns: 34px minmax(0, 1fr);
    }

    .transport-fleet-alert-position {
        display: none;
    }
}
/* GTM FrontEnd - fin Flota filtros y carrusel 003 */

/* GTM FrontEnd - Ficha de flota en tres columnas 004 */
.transport-fleet-detail-layout {
    display: grid;
    grid-template-columns: minmax(190px, 28%) minmax(0, 72%);
    gap: 1rem;
    align-items: stretch;
    margin-top: 1.15rem;
}

.transport-fleet-photo-column {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: .85rem;
    border: 1px solid #e7ebf0;
    border-radius: 16px;
    background: linear-gradient(145deg, #fffdf0, #ffffff);
}

.transport-fleet-photo-frame {
    display: grid;
    place-items: center;
    min-height: 250px;
    overflow: hidden;
    border: 1px solid #eadb8a;
    border-radius: 14px;
    background: #fff;
}

.transport-fleet-photo-frame img {
    display: block;
    width: 100%;
    height: 100%;
    max-height: 300px;
    padding: 1.1rem;
    object-fit: contain;
}

.transport-fleet-photo-frame-person img {
    padding: 0;
    object-fit: cover;
}

.transport-fleet-photo-caption {
    margin-top: .75rem;
    color: var(--transport-muted);
    font-size: .82rem;
    font-weight: 750;
    text-align: center;
}

.transport-fleet-detail-grid-two-columns {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0;
}

@media (max-width: 1199.98px) {
    .transport-fleet-detail-layout {
        grid-template-columns: minmax(170px, 31%) minmax(0, 69%);
    }

    .transport-fleet-photo-frame {
        min-height: 220px;
    }
}

@media (max-width: 767.98px) {
    .transport-fleet-detail-layout {
        grid-template-columns: 1fr;
    }

    .transport-fleet-photo-frame {
        min-height: 210px;
    }

    .transport-fleet-detail-grid-two-columns {
        grid-template-columns: 1fr;
    }
}
/* GTM FrontEnd - fin Ficha de flota en tres columnas 004 */

/* GTM FrontEnd - Flota ficha ampliada y edicion modal 005 */
.transport-fleet-workspace {
    grid-template-columns: minmax(210px, 16%) minmax(0, 84%);
}

.transport-fleet-detail {
    max-width: 1380px;
}

.transport-fleet-identity {
    display: flex;
    align-items: center;
    gap: .7rem;
    flex-wrap: wrap;
    margin-top: .15rem;
}

.transport-fleet-identity strong {
    margin: 0;
}

.transport-fleet-detail-title {
    align-items: center;
}

.transport-fleet-edit-modal .modal-content {
    border: 0;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 24px 70px rgba(15, 23, 42, .22);
}

.transport-fleet-edit-modal .modal-header {
    padding: 1.15rem 1.4rem;
    background: linear-gradient(135deg, #fffdf0, #fff);
    border-bottom: 2px solid #fff1a8;
}

.transport-modal-kicker {
    color: var(--transport-muted);
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.transport-fleet-edit-grid {
    display: grid;
    grid-template-columns: minmax(360px, 41.6667%) minmax(0, 58.3333%);
    gap: 1.25rem;
}

.transport-fleet-image-editor {
    padding: 1rem;
    border: 1px solid var(--transport-border);
    border-radius: 16px;
    background: #f8fafc;
}

.transport-fleet-image-editor img {
    display: block;
    width: 100%;
    height: 250px;
    padding: .75rem;
    border: 1px solid #eadb8a;
    border-radius: 14px;
    background: #fff;
    object-fit: contain;
}

.transport-fleet-form-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.transport-fleet-form-fields .form-label {
    color: var(--transport-muted);
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.transport-fleet-active-switch {
    display: flex;
    align-items: center;
    gap: .55rem;
    min-height: 58px;
    padding: 1.7rem 1rem .5rem 2.9rem;
}

@media (max-width: 1199.98px) {
    .transport-fleet-workspace { grid-template-columns: minmax(220px, 22%) minmax(0, 78%); }
}

@media (max-width: 991.98px) {
    .transport-fleet-workspace,
    .transport-fleet-edit-grid { grid-template-columns: 1fr; }
}

@media (max-width: 575.98px) {
    .transport-fleet-form-fields { grid-template-columns: 1fr; }
    .transport-fleet-detail-title { align-items: flex-start; }
}
/* GTM FrontEnd - fin Flota ficha ampliada y edicion modal 005 */

/* GTM FrontEnd - Flota avisos 6 por pagina y gestion de fotos 006 */
.transport-fleet-alert-page[hidden] {
    display: none;
}

.transport-fleet-alert-page {
    position: relative;
    padding-bottom: 1.4rem;
}

.transport-fleet-alert-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .55rem;
}

.transport-fleet-alert-item {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    align-items: center;
    gap: .65rem;
    min-height: 58px;
    padding: .55rem .7rem;
    border: 1px solid #f0d88b;
    border-radius: 12px;
    background: linear-gradient(100deg, #fffdf4, #fff);
    color: var(--transport-text);
    text-decoration: none;
}

.transport-fleet-alert-item:hover {
    border-color: #d5ad1c;
    color: var(--transport-text);
    box-shadow: 0 8px 20px rgba(154, 103, 0, .08);
}

.transport-fleet-alert-item .transport-fleet-alert-icon {
    width: 32px;
    height: 32px;
    border-radius: 9px;
}

.transport-fleet-alert-page .transport-fleet-alert-position {
    position: absolute;
    right: .15rem;
    bottom: 0;
}

.transport-fleet-image-status {
    display: block;
    min-height: 1.25rem;
    margin-top: .55rem;
    color: var(--transport-muted);
    font-size: .78rem;
}

@media (max-width: 991.98px) {
    .transport-fleet-alert-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 575.98px) {
    .transport-fleet-alert-grid { grid-template-columns: 1fr; }
}
/* GTM FrontEnd - fin Flota avisos 6 por pagina y gestion de fotos 006 */


/* GTM FrontEnd - Flota carrusel 5 en una fila e imagen pendiente 008 */
.transport-fleet-alert-track {
    min-width: 0;
    overflow-x: auto;
}

.transport-fleet-alert-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    grid-template-rows: 1fr;
    flex-wrap: nowrap;
}

.transport-fleet-alert-item {
    min-width: 0;
}

.transport-fleet-image-editor [data-upload-image],
.transport-fleet-image-editor [data-delete-image] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
}

@media (max-width: 1199.98px) {
    .transport-fleet-alert-grid {
        min-width: 980px;
        grid-template-columns: repeat(5, minmax(180px, 1fr));
    }
}
/* GTM FrontEnd - fin carrusel 5 en una fila e imagen pendiente 008 */

/* GTM FrontEnd - Flota 010: listado mas ancho */
@media (min-width: 1200px) { .transport-fleet-workspace { grid-template-columns: minmax(260px, 22%) minmax(0, 78%); } }

/* =========================================================
   GTM_FRONTEND_TABLES_001
   Cabecera corporativa comun para todas las tablas
   ========================================================= */
:root {
    --transport-table-header-bg: #d8aa00;
    --transport-table-header-text: #000000;
}

.table > thead > tr > th,
.table > thead > tr > td,
.transport-table > thead > tr > th,
table > thead > tr > th {
    background-color: var(--transport-table-header-bg) !important;
    color: var(--transport-table-header-text) !important;
    border-color: rgba(0, 0, 0, .22) !important;
    font-weight: 800;
}

.table > thead > tr > th a,
.table > thead > tr > td a,
.transport-table > thead > tr > th a,
table > thead > tr > th a,
.table > thead > tr > th i,
.transport-table > thead > tr > th i {
    color: var(--transport-table-header-text) !important;
}


/* GTM FrontEnd - Flota 012: color, selectores y pestanas de detalle */
:root {
    --transport-goitia-yellow: #f4d84a;
    --transport-goitia-yellow-soft: #fff6bf;
    --transport-table-header-bg: #efd35a;
}

/* Selector segmentado corporativo comun */
.transport-fleet-tabs,
.transport-fleet-status-filter,
.transport-segmented-control,
.transport-filter-tabs {
    display: inline-flex;
    align-items: center;
    gap: .2rem;
    padding: .25rem;
    border: 1px solid var(--transport-border);
    border-radius: 12px;
    background: #f7f8fa;
}

.fleet-type-button,
.fleet-status-button,
.transport-segmented-control > button,
.transport-filter-tabs > button,
.transport-filter-tabs > a {
    min-height: 34px;
    padding: .38rem .78rem;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--transport-muted);
    font-size: .78rem;
    font-weight: 800;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: .025em;
}

.fleet-type-button:hover,
.fleet-status-button:hover,
.transport-segmented-control > button:hover,
.transport-filter-tabs > button:hover,
.transport-filter-tabs > a:hover {
    color: var(--transport-text);
    background: #fff;
}

.fleet-type-button.active,
.fleet-status-button.active,
.transport-segmented-control > .active,
.transport-filter-tabs > .active {
    color: #111827;
    background: var(--transport-goitia-yellow);
    box-shadow: 0 2px 7px rgba(31, 41, 51, .14);
}

.transport-fleet-detail-tabs {
    display: flex;
    flex-wrap: nowrap;
    gap: .25rem;
    margin: .15rem 0 1rem;
    padding: .3rem;
    border: 1px solid var(--transport-border);
    border-radius: 12px;
    background: #f7f8fa;
    overflow-x: auto;
}

.transport-fleet-detail-tabs.nav-tabs { border-bottom: 1px solid var(--transport-border); }
.transport-fleet-detail-tabs .nav-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    min-height: 38px;
    padding: .45rem .85rem;
    border: 0;
    border-radius: 9px;
    color: var(--transport-muted);
    font-size: .78rem;
    font-weight: 800;
    text-transform: uppercase;
    white-space: nowrap;
}
.transport-fleet-detail-tabs .nav-link:hover { color: var(--transport-text); background: #fff; }
.transport-fleet-detail-tabs .nav-link.active {
    color: #111827;
    background: var(--transport-goitia-yellow);
    box-shadow: 0 2px 7px rgba(31, 41, 51, .14);
}
.transport-fleet-detail-tab-content { min-height: 310px; }
.transport-fleet-tab-placeholder {
    display: grid;
    place-items: center;
    align-content: center;
    gap: .55rem;
    min-height: 300px;
    padding: 2rem;
    border: 1px dashed #d9dee6;
    border-radius: 14px;
    background: #fbfcfd;
    color: var(--transport-muted);
    text-align: center;
}
.transport-fleet-tab-placeholder i { font-size: 1.8rem; color: #b28c00; }
.transport-fleet-tab-placeholder strong { color: var(--transport-text); }
/* GTM FrontEnd - fin Flota 012 */

/* GTM FrontEnd - Flota y menu 013: centrado, iconos y segmentados corporativos */
:root {
    --transport-goitia-yellow: #efd35a;
    --transport-goitia-yellow-soft: #fff7cf;
    --transport-table-header-bg: #efd35a;
}

.transport-topbar-v4 .transport-header-line {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    align-items: center;
    gap: .5rem;
}

.transport-topbar-v4 .transport-module-nav-inline {
    display: flex;
    justify-content: center;
    min-width: 0;
}

.transport-topbar-v4 .transport-nav-v4,
.transport-topbar-v4 ul.transport-nav-v4,
.transport-topbar-v4 .transport-module-nav-inline > ul.transport-nav-v4 {
    margin: 0 auto;
    justify-content: center;
}

.transport-topbar-v4 .transport-global-search {
    margin-left: 0;
}

.transport-topbar-v4 .transport-company-badge {
    justify-self: start;
}

.transport-fleet-tabs,
.transport-fleet-status-filter,
.transport-segmented-control,
.transport-filter-tabs,
.transport-fleet-detail-tabs {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    padding: .28rem;
    border: 1px solid rgba(179, 138, 0, .42);
    border-radius: 999px;
    background: linear-gradient(180deg, #fffdf2 0%, #fff8dd 100%);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .7);
}

.transport-fleet-detail-tabs {
    flex-wrap: nowrap;
    margin: 0;
    overflow-x: auto;
}

.fleet-type-button,
.fleet-status-button,
.transport-segmented-control > button,
.transport-filter-tabs > button,
.transport-filter-tabs > a,
.transport-fleet-tabs button,
.transport-fleet-status-filter button,
.transport-fleet-detail-tabs .nav-link {
    min-height: 36px;
    padding: .42rem .9rem;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: var(--transport-muted);
    font-size: .79rem;
    font-weight: 800;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: .025em;
    white-space: nowrap;
}

.fleet-type-button:hover,
.fleet-status-button:hover,
.transport-segmented-control > button:hover,
.transport-filter-tabs > button:hover,
.transport-filter-tabs > a:hover,
.transport-fleet-tabs button:hover,
.transport-fleet-status-filter button:hover,
.transport-fleet-detail-tabs .nav-link:hover {
    color: var(--transport-text);
    background: rgba(255, 255, 255, .92);
}

.fleet-type-button.active,
.fleet-status-button.active,
.transport-segmented-control > .active,
.transport-filter-tabs > .active,
.transport-fleet-tabs button.active,
.transport-fleet-status-filter button.active,
.transport-fleet-detail-tabs .nav-link.active {
    color: #111827;
    background: var(--transport-goitia-yellow);
    box-shadow: 0 3px 8px rgba(31, 41, 51, .14);
}

.transport-fleet-status-filter button.active,
.transport-fleet-detail-tabs .nav-link.active {
    border: 0;
}

.transport-fleet-count-badge {
    border-color: rgba(179, 138, 0, .38);
    background: linear-gradient(180deg, #fffdf2 0%, #fff8dd 100%);
}

@media (min-width: 1200px) {
    .transport-fleet-workspace { grid-template-columns: minmax(320px, 26%) minmax(0, 74%); }
}

.transport-fleet-row {
    grid-template-columns: 46px minmax(0, 1fr) auto;
    gap: .7rem;
}

.transport-fleet-row-icon {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: linear-gradient(180deg, #fff7cf 0%, #ffeeb0 100%);
}

.transport-fleet-row-icon-image img {
    display: block;
    width: 26px;
    height: 26px;
    object-fit: contain;
}

.transport-fleet-row-main {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-top: .14rem;
    min-width: 0;
}

.transport-fleet-row-main strong {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fleet-row-status {
    flex: 0 0 auto;
    min-height: 24px;
    padding: .22rem .58rem;
    font-size: .69rem;
    font-weight: 850;
    letter-spacing: .03em;
}

.transport-status-badge.transport-tone-danger {
    background: #fdecec;
    color: #a83232;
}

.transport-status-badge.transport-tone-success {
    background: #edf8f2;
    color: #1f7a4d;
}

.transport-fleet-detail {
    max-width: 1460px;
}

.transport-fleet-detail-title-with-tabs {
    display: grid;
    grid-template-columns: minmax(220px, auto) minmax(0, 1fr);
    align-items: center;
    gap: 1rem;
}

.transport-fleet-detail-heading-block {
    min-width: 0;
}

.transport-fleet-detail-heading-block small {
    display: block;
}

.transport-fleet-detail-title-tabs {
    display: flex;
    justify-content: center;
    min-width: 0;
}

.transport-fleet-detail-title .transport-fleet-identity {
    display: flex;
    align-items: center;
    gap: .45rem;
    margin-top: .15rem;
}

.transport-fleet-detail-title .transport-fleet-identity strong {
    font-size: 1.9rem;
    line-height: 1.1;
}

.transport-fleet-tab-panel-actions {
    display: flex;
    justify-content: flex-end;
    margin-bottom: .9rem;
}

.transport-fleet-tab-panel-actions .btn,
.transport-fleet-detail-tab-content .btn-outline-primary {
    border-color: rgba(179, 138, 0, .4);
    color: #7a5f00;
    background: #fff;
}

.transport-fleet-tab-panel-actions .btn:hover,
.transport-fleet-detail-tab-content .btn-outline-primary:hover {
    border-color: #cfa200;
    background: #fff7cf;
    color: #4a3b00;
}

.transport-fleet-photo-column-brand {
    background: linear-gradient(145deg, #fff7cf 0%, #ffffff 100%);
}

.transport-fleet-photo-frame-brand {
    background: linear-gradient(180deg, #fffdf5 0%, #fff6d5 100%);
}

.transport-fleet-photo-frame-brand img {
    max-height: 320px;
    padding: 1rem;
    object-fit: contain;
}

.transport-fleet-tab-placeholder {
    background: linear-gradient(180deg, #fffdfa 0%, #fbfcfd 100%);
}

@media (max-width: 1399.98px) {
    .transport-topbar-v4 .transport-header-line {
        grid-template-columns: auto minmax(0, 1fr) auto;
    }

    .transport-topbar-v4 .transport-account-area {
        justify-self: end;
    }
}

@media (max-width: 1199.98px) {
    .transport-topbar-v4 .transport-header-line {
        display: flex;
        flex-wrap: wrap;
    }

    .transport-topbar-v4 .transport-module-nav-inline {
        order: 3;
        width: 100%;
        justify-content: center;
    }

    .transport-topbar-v4 .transport-global-search {
        margin-left: auto;
    }

    .transport-fleet-detail-title-with-tabs {
        grid-template-columns: 1fr;
        align-items: flex-start;
    }

    .transport-fleet-detail-title-tabs {
        justify-content: flex-start;
    }
}

@media (max-width: 767.98px) {
    .transport-fleet-row-main {
        flex-wrap: wrap;
    }

    .transport-fleet-detail-title .transport-fleet-identity strong {
        font-size: 1.55rem;
    }

    .transport-fleet-tab-panel-actions {
        justify-content: stretch;
    }

    .transport-fleet-tab-panel-actions .btn {
        width: 100%;
    }
}
/* GTM FrontEnd - fin Flota y menu 013 */

/* GTM FrontEnd - Agenda 001: carrusel de tractoras y conductores */
.transport-agenda-resource-carousel { margin: 0 0 1rem; padding: .9rem 1rem; border: 1px solid rgba(179,138,0,.35); border-radius: 18px; background: linear-gradient(180deg,#fffdf4 0%,#fff 100%); }
.transport-agenda-resource-carousel-header { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:.7rem; }
.transport-agenda-resource-carousel-header h2 { margin:0; font-size:1rem; }
.transport-agenda-resource-carousel-header p { margin:.15rem 0 0; color:var(--transport-muted); font-size:.78rem; }
.transport-agenda-resource-carousel-header > span { padding:.3rem .7rem; border-radius:999px; background:var(--transport-goitia-yellow-soft); font-size:.75rem; font-weight:800; }
.transport-agenda-resource-carousel-body { display:grid; grid-template-columns:38px minmax(0,1fr) 38px; align-items:center; gap:.65rem; }
.transport-agenda-resource-control { display:grid; place-items:center; width:38px; height:38px; border:1px solid rgba(179,138,0,.35); border-radius:50%; background:#fff; color:#5f4a00; }
.transport-agenda-resource-control:disabled { opacity:.35; }
.transport-agenda-resource-page[hidden] { display:none; }
.transport-agenda-resource-page { position:relative; display:grid; grid-template-columns:repeat(15,minmax(105px,1fr)); gap:.45rem; padding-bottom:1.2rem; }
.transport-agenda-resource-item { min-width:0; padding:.55rem .45rem; border:1px solid #eadb8a; border-radius:13px; background:#fff; text-align:center; }
.transport-agenda-resource-icon { display:grid; place-items:center; height:46px; margin-bottom:.35rem; border-radius:10px; background:var(--transport-goitia-yellow-soft); }
.transport-agenda-resource-icon img { width:54px; height:38px; object-fit:contain; }
.transport-agenda-resource-copy strong,.transport-agenda-resource-copy small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.transport-agenda-resource-copy strong { font-size:.78rem; }
.transport-agenda-resource-copy small { margin-top:.15rem; color:var(--transport-muted); font-size:.68rem; }
.transport-agenda-resource-copy small i { margin-right:.25rem; color:#806600; }
.transport-agenda-resource-page-number { position:absolute; right:.2rem; bottom:0; color:var(--transport-muted); font-size:.68rem; font-weight:800; }
@media (max-width:1599.98px){.transport-agenda-resource-page{grid-template-columns:repeat(10,minmax(105px,1fr));overflow-x:auto}.transport-agenda-resource-item{min-width:110px}}
@media (max-width:991.98px){.transport-agenda-resource-page{grid-template-columns:repeat(5,minmax(120px,1fr));}.transport-agenda-resource-carousel-header{align-items:flex-start;flex-direction:column}}
@media (max-width:575.98px){.transport-agenda-resource-page{grid-template-columns:repeat(2,minmax(125px,1fr));}.transport-agenda-resource-carousel-body{grid-template-columns:32px minmax(0,1fr) 32px}.transport-agenda-resource-control{width:32px;height:32px}}
/* GTM FrontEnd - fin Agenda 001 */

/* GTM_FRONTEND_AGENDA_002 */
.transport-agenda-resource-empty {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:.6rem;
    min-height:88px;
    border:1px dashed rgba(179,138,0,.35);
    border-radius:14px;
    background:#fffdf4;
    color:var(--transport-muted);
    font-weight:700;
}
.transport-agenda-resource-empty i { color:#8a6d00; font-size:1.4rem; }
/* fin GTM_FRONTEND_AGENDA_002 */

/* GTM_FRONTEND_AGENDA_003 - filtros compactos y actualizacion automatica */
.transport-toolbar-agenda-auto .row {
    --bs-gutter-x: .55rem;
}

.transport-toolbar-agenda-auto .form-label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.transport-toolbar-agenda-auto .form-control,
.transport-toolbar-agenda-auto .form-select,
.transport-toolbar-agenda-auto .transport-agenda-clear-button {
    min-height: 42px;
}

.transport-agenda-clear-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    border-color: rgba(179, 138, 0, .5);
    background: #fffdf4;
    color: #6a5200;
    font-weight: 800;
}

.transport-agenda-clear-button:hover,
.transport-agenda-clear-button:focus {
    border-color: #c99d00;
    background: var(--transport-goitia-yellow-soft);
    color: #3f3200;
}

.transport-toolbar-agenda-auto.is-loading {
    position: relative;
    opacity: .72;
    pointer-events: none;
}

.transport-toolbar-agenda-auto.is-loading::after {
    position: absolute;
    right: 1rem;
    bottom: .65rem;
    content: "Actualizando...";
    padding: .22rem .55rem;
    border-radius: 999px;
    background: #20242a;
    color: #fff;
    font-size: .7rem;
    font-weight: 800;
}

@media (min-width: 1200px) {
    .transport-toolbar-agenda-auto .col-xl-1 .form-control,
    .transport-toolbar-agenda-auto .col-xl-1 .form-select {
        padding-right: 1.75rem;
        padding-left: .55rem;
        font-size: .82rem;
    }

    .transport-toolbar-agenda-auto .transport-agenda-clear-button span {
        display: none;
    }
}

@media (max-width: 1199.98px) {
    .transport-agenda-clear-button {
        justify-content: flex-start;
    }
}
/* fin GTM_FRONTEND_AGENDA_003 */

/* GTM_FRONTEND_AGENDA_004 - filtros, contador e icono limpiar */
.transport-agenda-clear-button {
    min-height: 42px;
}

.transport-agenda-clear-icon {
    width: 1.55rem;
    height: 1.55rem;
    color: currentColor;
    flex: 0 0 auto;
}

.transport-agenda-services-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.transport-agenda-services-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 92px;
    min-height: 32px;
    padding: .35rem .75rem;
    border: 1px solid rgba(179, 138, 0, .45);
    border-radius: 999px;
    background: linear-gradient(180deg, #fffdf2 0%, #fff8dd 100%);
    color: var(--transport-graphite);
    font-size: .78rem;
    font-weight: 850;
    white-space: nowrap;
}

@media (min-width: 1200px) {
    .transport-toolbar-agenda-auto .transport-agenda-clear-button span {
        display: none;
    }

    .transport-toolbar-agenda-auto .transport-agenda-clear-icon {
        width: 1.8rem;
        height: 1.8rem;
    }
}

@media (max-width: 575.98px) {
    .transport-agenda-services-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .transport-agenda-services-count {
        width: 100%;
    }
}
/* fin GTM_FRONTEND_AGENDA_004 */

/* GTM FrontEnd - Repostajes 001 */
.transport-repostaje-carousel { margin-top: 1rem; overflow: hidden; }
.transport-repostaje-carousel-shell { display: grid; grid-template-columns: 42px minmax(0,1fr) 42px; align-items: center; gap: .75rem; padding: 1rem; }
.transport-repostaje-carousel-track { min-width: 0; }
.transport-repostaje-page { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: .65rem; }
.transport-repostaje-page[hidden] { display: none; }
.transport-repostaje-item { display: grid; grid-template-columns: 48px minmax(0,1fr); grid-template-areas: "icon copy" "icon type"; align-items: center; gap: .2rem .7rem; min-height: 82px; padding: .7rem; border: 1px solid rgba(179,138,0,.42); border-radius: 15px; background: linear-gradient(145deg,#fff9d9,#fff); color: var(--transport-text); text-decoration: none; }
.transport-repostaje-item:hover { border-color: #cfa200; color: var(--transport-text); box-shadow: 0 8px 20px rgba(154,103,0,.1); }
.transport-repostaje-icon { grid-area: icon; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 13px; background: var(--transport-goitia-yellow); }
.transport-repostaje-icon img { width: 34px; height: 34px; object-fit: contain; }
.transport-repostaje-copy { grid-area: copy; min-width: 0; }
.transport-repostaje-copy strong,.transport-repostaje-copy small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.transport-repostaje-copy small { color:var(--transport-muted); margin-top:.12rem; }
.transport-repostaje-type { grid-area:type; color:#7a5f00; font-size:.7rem; font-weight:850; text-transform:uppercase; }
@media (max-width:1399.98px){.transport-repostaje-page{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media (max-width:767.98px){.transport-repostaje-page{grid-template-columns:1fr;}.transport-repostaje-carousel-shell{grid-template-columns:34px minmax(0,1fr) 34px;gap:.35rem;}}
/* GTM FrontEnd - fin Repostajes 001 */

/* GTM_FLOTA_FORMACIONES_PNG_014 */
.transport-fleet-row-icon-image img {
    display: block;
    width: 28px;
    height: 28px;
    object-fit: contain;
}

.transport-fleet-formation-row {
    align-items: flex-start;
}

.transport-fleet-formation-summary {
    display: grid;
    gap: .22rem;
    margin-top: .42rem;
    color: var(--transport-muted);
    font-size: .72rem;
    font-weight: 750;
}

.transport-fleet-formation-summary span {
    display: flex;
    align-items: center;
    gap: .35rem;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.transport-fleet-formation-summary img {
    width: 22px;
    height: 18px;
    object-fit: contain;
    flex: 0 0 auto;
}

.transport-fleet-formation-detail {
    max-width: 1260px;
}

.transport-fleet-formation-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1.25rem;
}

.transport-fleet-formation-member {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 0;
    padding: 1.25rem;
    border: 1px solid var(--transport-border);
    border-radius: 18px;
    background: linear-gradient(180deg, #fffdf4 0%, #fff 100%);
    text-align: center;
}

.transport-fleet-formation-member small {
    margin-top: .85rem;
    color: var(--transport-muted);
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.transport-fleet-formation-member strong {
    margin-top: .25rem;
    font-size: 1.08rem;
    overflow-wrap: anywhere;
}

.transport-fleet-formation-image {
    display: grid;
    place-items: center;
    width: 100%;
    min-height: 150px;
    border: 1px solid #eadb8a;
    border-radius: 15px;
    background: #fff;
}

.transport-fleet-formation-image img {
    display: block;
    width: min(180px, 85%);
    height: 120px;
    object-fit: contain;
}

.transport-fleet-formation-driver .transport-fleet-formation-image img {
    width: 105px;
    height: 105px;
}

@media (max-width: 991.98px) {
    .transport-fleet-formation-card-grid {
        grid-template-columns: 1fr;
    }
}
/* fin GTM_FLOTA_FORMACIONES_PNG_014 */

/* === GOITIA mixed identity refresh (Frontend + Home) === */
.transport-topbar--brandmix {
    position: sticky;
    top: 0;
    z-index: 1030;
    background: linear-gradient(130deg, #14181f 0%, #20252d 45%, #131720 100%);
    border-bottom: 1px solid rgba(255, 255, 255, .08);
    box-shadow: 0 18px 36px rgba(15, 23, 42, .20);
}

.transport-topbar-accent {
    height: 6px;
    background: #c7181f;
}

.transport-header-line--centered {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 1.2rem;
    min-height: 92px;
}

.transport-brand-goitia {
    gap: .9rem;
}

.transport-brand-logo-wrap--brandmix {
    width: 82px;
    height: 52px;
    padding: .35rem;
    border-radius: 16px;
    background: rgba(255, 255, 255, .96);
    border: 1px solid rgba(255, 230, 0, .28);
    box-shadow: 0 12px 24px rgba(0, 0, 0, .18);
}

.transport-brand-logo-wrap--brandmix .transport-brand-logo {
    max-width: 100%;
    max-height: 100%;
}

.transport-brand-copy {
    display: flex;
    flex-direction: column;
    line-height: 1;
}

.transport-brand-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: .42rem .92rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, .98);
    border: 1px solid rgba(255, 255, 255, .92);
    box-shadow: 0 12px 24px rgba(0, 0, 0, .18);
}

.transport-brand-wordmark {
    font-size: 1rem;
    font-weight: 900;
    letter-spacing: .02em;
    color: #bf1e24;
}

.transport-brand-wordmark--single {
    margin-top: 0;
    line-height: 1;
    white-space: nowrap;
}

.transport-module-nav-inline--center {
    width: 100%;
    justify-self: center;
}

.transport-module-nav-inline--center .navbar-collapse {
    justify-content: center;
}

.transport-topbar--brandmix .transport-nav .nav-link {
    border: 1px solid transparent;
    padding: .6rem .92rem;
    font-weight: 600;
}

.transport-topbar--brandmix .transport-nav .nav-link:hover,
.transport-topbar--brandmix .transport-nav .nav-link:focus,
.transport-topbar--brandmix .transport-nav .nav-link.active {
    background: rgba(255, 230, 0, .12);
    border-color: rgba(255, 230, 0, .28);
    color: #fff;
}

.transport-topbar--brandmix .transport-account-button {
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    padding: .58rem .95rem;
    border-color: rgba(255, 255, 255, .18);
    background: rgba(255, 255, 255, .08);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
}

.transport-login-panel--goitia-mix {
    position: relative;
    overflow: hidden;
    border-radius: 28px;
    background: linear-gradient(130deg, rgba(20, 24, 31, .98), rgba(19, 23, 32, .92));
    box-shadow: 0 35px 70px rgba(15, 23, 42, .22);
}

.transport-login-panel--goitia-mix::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at top left, rgba(255, 230, 0, .14), transparent 30%),
        radial-gradient(circle at bottom right, rgba(177, 18, 23, .18), transparent 36%);
    pointer-events: none;
}

.transport-login-hero--brandmix {
    position: relative;
    z-index: 1;
}

.transport-login-logo-box--brandmark {
    width: 118px;
    height: 74px;
    background: rgba(255, 255, 255, .94);
    border: 1px solid rgba(255, 230, 0, .24);
}

.transport-login-logo-box--brandmark img {
    max-width: 100%;
    max-height: 100%;
}

.transport-login-hero-content--brandmix h1 {
    max-width: 12ch;
}

.transport-login-client-panel {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-top: 1.4rem;
    padding: 1rem 1.15rem;
    border-radius: 20px;
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .12);
    backdrop-filter: blur(10px);
}

.transport-login-client-logo {
    width: 108px;
    max-width: 28%;
    flex: 0 0 auto;
    border-radius: 18px;
    background: rgba(255,255,255,.88);
    padding: .35rem;
}

.transport-login-client-copy {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    color: rgba(255, 255, 255, .88);
}

.transport-login-client-copy strong {
    font-size: 1rem;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.transport-login-client-copy span {
    font-size: .94rem;
    line-height: 1.45;
    color: rgba(255, 255, 255, .72);
}

.transport-login-feature-grid--mix {
    margin-top: 1.15rem;
}

.transport-login-card--brandmix {
    position: relative;
    z-index: 1;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
}

.transport-home-dashboard {
    position: relative;
}

.transport-home-dashboard::before {
    content: "";
    position: absolute;
    top: -1rem;
    right: 0;
    width: 360px;
    height: 360px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 230, 0, .12) 0%, rgba(255, 230, 0, 0) 70%);
    pointer-events: none;
    z-index: 0;
}

.transport-home-dashboard > * {
    position: relative;
    z-index: 1;
}

.transport-home-dashboard .transport-module-header {
    padding: 1.35rem 1.5rem;
    border-radius: 24px;
    background: linear-gradient(135deg, #ffffff 0%, #fffef1 100%);
    border: 1px solid rgba(227, 231, 236, .9);
    box-shadow: 0 18px 34px rgba(15, 23, 42, .08);
}

.transport-home-dashboard .transport-summary-grid {
    margin-top: 1rem;
}

.transport-home-dashboard .transport-summary-card,
.transport-home-dashboard .transport-card {
    border-radius: 22px;
    border-color: rgba(227, 231, 236, .88);
    box-shadow: 0 16px 36px rgba(15, 23, 42, .07);
}

.transport-home-dashboard .transport-summary-card {
    background: linear-gradient(180deg, #ffffff 0%, #fbfcff 100%);
}

.transport-home-dashboard .transport-summary-icon {
    background: linear-gradient(180deg, #fff9c4 0%, #fffdf0 100%);
    color: #b11217;
    box-shadow: inset 0 0 0 1px rgba(255, 230, 0, .2);
}

.transport-home-dashboard .transport-card-header {
    border-bottom-color: rgba(227, 231, 236, .8);
}

.transport-home-dashboard .btn-outline-primary {
    border-color: rgba(177, 18, 23, .3);
    color: #b11217;
}

.transport-home-dashboard .btn-outline-primary:hover,
.transport-home-dashboard .btn-outline-primary:focus {
    background: #b11217;
    border-color: #b11217;
    color: #fff;
}

@media (max-width: 991.98px) {
    .transport-header-line--centered {
        grid-template-columns: 1fr;
        justify-items: stretch;
        min-height: auto;
        padding: .8rem 0 1rem;
    }

    .transport-brand-goitia,
    .transport-account-area {
        justify-self: start;
    }

    .transport-module-nav-inline--center {
        order: 3;
    }
}

@media (max-width: 767.98px) {
    .transport-login-client-panel {
        flex-direction: column;
        align-items: flex-start;
    }

    .transport-login-client-logo {
        max-width: 120px;
        width: 120px;
    }
}

/* AppExperience adoption in GTM: one header grammar across functional views. */
.transport-page-shell .quo-page-header {
    position: relative;
    padding: 1.15rem 1.3rem 1.05rem 1.45rem;
    border: 1px solid rgba(227, 231, 236, .92);
    border-radius: 20px;
    background: linear-gradient(135deg, #ffffff 0%, #fffef4 100%);
    box-shadow: 0 14px 30px rgba(15, 23, 42, .06);
    overflow: hidden;
}

.transport-page-shell .quo-page-header::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 5px;
    background: linear-gradient(180deg, #b11217 0 42%, #ffe600 42% 100%);
}

.transport-page-shell .quo-page-header__eyebrow {
    color: #b11217;
    font-weight: 850;
    letter-spacing: .10em;
    opacity: .78;
}

.transport-page-shell .quo-page-header__title {
    margin-top: .22rem;
    color: #18212d;
    font-size: clamp(1.75rem, 2.2vw, 2.25rem);
    font-weight: 900;
    letter-spacing: -.025em;
}

.transport-page-shell .quo-page-header__subtitle {
    margin-top: .36rem;
    color: #7c8797;
}

.transport-page-shell .quo-page-header__action--primary {
    background: #20242a;
    border-color: #20242a;
    color: #fff;
}

.transport-page-shell .quo-page-header__action--primary:hover {
    background: #111827;
    border-color: #111827;
    color: #fff;
}

.transport-page-shell .quo-page-header__action--secondary:hover,
.transport-page-shell .quo-page-header__action--neutral:hover {
    border-color: rgba(177, 18, 23, .28);
    color: #b11217;
}

.transport-page-shell .quo-signal-panel {
    --quo-signal-warning: #d3a000;
    --quo-signal-danger: #c91d2e;
    --quo-signal-info: #566274;
    --quo-signal-success: #1f7a4d;
    border-color: rgba(227, 231, 236, .9);
    background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(249,250,252,.98));
}

.transport-page-shell .quo-signal-panel__caption {
    color: #20242a;
}

.transport-page-shell .quo-filter-clear {
    min-height: 38px;
    border-color: #cbd2da;
    color: #626e7d;
}


@media (max-width: 767.98px) {
    .transport-brand-badge { min-width: auto; min-height: 40px; padding: .38rem .78rem; }
    .transport-brand-wordmark { font-size: .82rem; }
}


/* === I18 · Situación operativa integrada en el layout === */
.transport-situation-strip {
    position: sticky;
    top: 98px;
    z-index: 1020;
    background: #fff;
    border-bottom: 1px solid #e5e7eb;
    box-shadow: 0 8px 18px rgba(15, 23, 42, .035);
}

.transport-situation-strip__inner {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    min-height: 64px;
    padding: .48rem 0;
}

.transport-situation-strip .quo-signal-panel {
    width: auto;
    max-width: 100%;
    min-height: auto;
    margin: 0;
    padding: .4rem .55rem;
    border: 0;
    border-radius: .8rem;
    background: transparent;
    box-shadow: none;
    overflow: visible;
}

.transport-situation-strip .quo-signal-panel__caption {
    color: #7a8190;
    font-size: .66rem;
    letter-spacing: .12em;
}

.transport-situation-strip .quo-signal-panel__track {
    justify-content: flex-end;
    gap: .32rem;
}

.transport-situation-strip .quo-signal,
.transport-situation-strip .quo-signal-menu > summary {
    min-height: 2.45rem;
    padding: .25rem .45rem .25rem .28rem;
}

.transport-situation-strip .quo-signal__lamp {
    width: 1.86rem;
    height: 1.86rem;
    flex-basis: 1.86rem;
}

.transport-situation-strip .quo-signal__copy strong {
    font-size: .7rem;
}

.transport-situation-strip .quo-signal-menu__popover {
    top: calc(100% + .55rem);
}

@media (max-width: 991.98px) {
    .transport-situation-strip {
        position: static;
    }

    .transport-situation-strip__inner {
        justify-content: flex-start;
        min-height: 58px;
    }

    .transport-situation-strip .quo-signal-panel {
        width: 100%;
        overflow-x: auto;
        overflow-y: visible;
    }

    .transport-situation-strip .quo-signal-panel__track {
        justify-content: flex-start;
    }
}

@media (max-width: 767.98px) {
    .transport-situation-strip .quo-signal__copy strong {
        display: none;
    }
}
/* === fin I18 === */


/* === I19 · refinado de identidad y barra de testigos === */
.transport-main-container {
    padding-top: .75rem !important;
}

.transport-topbar--brandmix .transport-nav .nav-link,
.transport-topbar-v4 .transport-nav-v4 .nav-link,
.transport-topbar-v4 .transport-module-nav-inline .nav-link {
    border: 1px solid rgba(191, 30, 36, .24) !important;
    background: rgba(255, 255, 255, .98) !important;
    color: #bf1e24 !important;
    box-shadow: 0 6px 14px rgba(15, 23, 42, .08);
}

.transport-topbar-v4 .transport-nav-v4 .nav-link i,
.transport-topbar-v4 .transport-module-nav-inline .nav-link i,
.transport-topbar--brandmix .transport-nav .nav-link i {
    color: #bf1e24 !important;
}

.transport-topbar--brandmix .transport-nav .nav-link:hover,
.transport-topbar--brandmix .transport-nav .nav-link:focus,
.transport-topbar--brandmix .transport-nav .nav-link.active,
.transport-topbar-v4 .transport-nav-v4 .nav-link:hover,
.transport-topbar-v4 .transport-nav-v4 .nav-link:focus,
.transport-topbar-v4 .transport-nav-v4 .nav-link.active,
.transport-topbar-v4 .transport-module-nav-inline .nav-link:hover,
.transport-topbar-v4 .transport-module-nav-inline .nav-link:focus,
.transport-topbar-v4 .transport-module-nav-inline .nav-link.active {
    background: #fff7f7 !important;
    border-color: rgba(191, 30, 36, .38) !important;
    color: #a21722 !important;
}

.transport-situation-strip__inner {
    min-height: 34px;
    padding: .16rem 0;
}

.transport-situation-strip .quo-signal-panel__caption {
    display: none;
}

.transport-situation-strip .quo-signal-panel {
    padding: .08rem .22rem;
}

.transport-situation-strip .quo-signal-panel__track {
    gap: .18rem;
}

.transport-situation-strip .quo-signal,
.transport-situation-strip .quo-signal-menu > summary {
    min-height: 1.5rem;
    padding: .08rem;
    border-radius: 999px;
}

.transport-situation-strip .quo-signal__lamp {
    width: 1.24rem;
    height: 1.24rem;
    flex-basis: 1.24rem;
    border-radius: 999px;
}

.transport-situation-strip .quo-signal__copy,
.transport-situation-strip .quo-signal__count {
    display: none !important;
}

.transport-situation-strip .quo-signal-menu__popover {
    top: calc(100% + .35rem);
}

@media (max-width: 991.98px) {
    .transport-main-container {
        padding-top: .6rem !important;
    }

    .transport-situation-strip__inner {
        min-height: 32px;
    }
}
/* === fin I19 === */


/* === I20 · ajuste fino de cabecera GOITIA === */
.transport-topbar-accent {
    height: 3px;
}

.transport-brand-logo-wrap--brandmix {
    height: 52px;
}

.transport-brand-badge {
    min-height: 52px;
    padding: .36rem .95rem;
}

.transport-brand-wordmark {
    font-size: .92rem;
}

.transport-brand-wordmark--single {
    display: inline-flex;
    align-items: center;
    gap: .38rem;
}

.transport-brand-wordmark-part--dark {
    color: #12161d;
}

.transport-brand-wordmark-part--accent {
    color: #bf1e24;
}

.transport-topbar--brandmix .transport-nav .nav-link,
.transport-topbar-v4 .transport-nav-v4 .nav-link,
.transport-topbar-v4 .transport-module-nav-inline .nav-link {
    color: #bf1e24 !important;
}

.transport-topbar--brandmix .transport-nav .nav-link i,
.transport-topbar-v4 .transport-nav-v4 .nav-link i,
.transport-topbar-v4 .transport-module-nav-inline .nav-link i {
    color: #12161d !important;
    transition: color .18s ease;
}

.transport-topbar--brandmix .transport-nav .nav-link:hover,
.transport-topbar--brandmix .transport-nav .nav-link:focus,
.transport-topbar--brandmix .transport-nav .nav-link.active,
.transport-topbar-v4 .transport-nav-v4 .nav-link:hover,
.transport-topbar-v4 .transport-nav-v4 .nav-link:focus,
.transport-topbar-v4 .transport-nav-v4 .nav-link.active,
.transport-topbar-v4 .transport-module-nav-inline .nav-link:hover,
.transport-topbar-v4 .transport-module-nav-inline .nav-link:focus,
.transport-topbar-v4 .transport-module-nav-inline .nav-link.active {
    color: #bf1e24 !important;
}

.transport-topbar--brandmix .transport-nav .nav-link:hover i,
.transport-topbar--brandmix .transport-nav .nav-link:focus i,
.transport-topbar--brandmix .transport-nav .nav-link.active i,
.transport-topbar-v4 .transport-nav-v4 .nav-link:hover i,
.transport-topbar-v4 .transport-nav-v4 .nav-link:focus i,
.transport-topbar-v4 .transport-nav-v4 .nav-link.active i,
.transport-topbar-v4 .transport-module-nav-inline .nav-link:hover i,
.transport-topbar-v4 .transport-module-nav-inline .nav-link:focus i,
.transport-topbar-v4 .transport-module-nav-inline .nav-link.active i {
    color: #bf1e24 !important;
}

.transport-situation-strip {
    margin-top: 1px;
    box-shadow: 0 4px 10px rgba(15, 23, 42, .025);
}

.transport-situation-strip__inner {
    min-height: 32px;
    padding: .08rem 0;
}

@media (max-width: 767.98px) {
    .transport-brand-badge {
        min-height: 40px;
        padding: .28rem .72rem;
    }

    .transport-brand-wordmark {
        font-size: .74rem;
    }

    .transport-brand-wordmark--single {
        gap: .24rem;
    }
}
/* === fin I20 === */


/* === I21 · cabecera compacta + tablero de formaciones === */
.transport-topbar-accent {
    height: 2px;
}

.transport-brand-logo-wrap--brandmix {
    width: 78px;
    height: 48px;
    padding: .28rem;
}

.transport-brand-badge {
    height: 48px;
    min-height: 48px;
    padding: 0 .88rem;
}

.transport-brand-wordmark {
    font-size: .86rem;
}

.transport-situation-strip {
    margin-top: 0;
    border-top: 0;
    box-shadow: none;
}

.transport-situation-strip__inner {
    min-height: 28px;
    padding: 0;
}

.transport-situation-strip .quo-signal-panel {
    margin-top: 0;
}

.transport-situation-strip .quo-signal-panel__track {
    margin-top: 0;
}

.transport-fleet-formations-board {
    width: 100%;
}

.transport-formation-board-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    width: 100%;
    padding: 1.1rem;
}

.transport-formation-lane {
    display: flex;
    flex-direction: column;
    gap: .9rem;
    padding: 1rem;
    border-radius: 1rem;
    border: 1px solid rgba(214, 184, 72, .45);
    background: linear-gradient(180deg, #faf8f1 0%, #f5f2e6 100%);
    min-height: 420px;
}

.transport-formation-lane__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: .7rem;
    border-bottom: 1px solid rgba(191, 30, 36, .14);
}

.transport-formation-lane__header small {
    display: block;
    margin-top: .2rem;
    color: #64748b;
    font-weight: 600;
}

.transport-formation-lane__title {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    font-size: 1rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #0f172a;
}

.transport-formation-lane__title i {
    color: #bf1e24;
}

.transport-formation-lane__stack {
    display: flex;
    flex-direction: column;
    gap: .8rem;
}

.transport-formation-lane__empty {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 140px;
    border-radius: .9rem;
    border: 1px dashed rgba(148, 163, 184, .55);
    background: rgba(255, 255, 255, .68);
    color: #64748b;
    font-weight: 600;
    text-align: center;
    padding: 1rem;
}

.transport-formation-card {
    display: flex;
    flex-direction: column;
    gap: .75rem;
    padding: .95rem 1rem;
    border-radius: 1rem;
    background: #ffffff;
    border: 1px solid rgba(226, 232, 240, .95);
    box-shadow: 0 10px 24px rgba(15, 23, 42, .06);
}

.transport-formation-card__topline {
    display: flex;
    justify-content: flex-end;
}

.transport-formation-card__item {
    display: flex;
    flex-direction: column;
    gap: .25rem;
}

.transport-formation-card__label {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #64748b;
}

.transport-formation-card__label img {
    width: 18px;
    height: 18px;
    object-fit: contain;
}

.transport-formation-card__item strong {
    font-size: .98rem;
    color: #0f172a;
}

@media (max-width: 1399.98px) {
    .transport-formation-board-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .transport-brand-logo-wrap--brandmix {
        width: 70px;
        height: 42px;
    }

    .transport-brand-badge {
        height: 42px;
        min-height: 42px;
        padding: 0 .72rem;
    }

    .transport-brand-wordmark {
        font-size: .72rem;
    }

    .transport-formation-board-grid {
        grid-template-columns: 1fr;
        padding: .85rem;
    }
}
/* === fin I21 === */


/* === I22 · cabeceras de vista más compactas === */
.transport-page-shell .quo-page-header {
    padding: .62rem 1rem .62rem 1.2rem;
    background: linear-gradient(135deg, #ffffff 0%, #f6f7f8 100%);
    border-radius: 16px;
    min-height: 0;
}

.transport-page-shell .quo-page-header::before {
    width: 4px;
    background: linear-gradient(180deg, #b11217 0 42%, #343a40 42% 100%);
}

.transport-page-shell .quo-page-header__eyebrow,
.transport-page-shell .quo-page-header__subtitle {
    display: none !important;
}

.transport-page-shell .quo-page-header__copy {
    display: flex;
    align-items: center;
    min-width: 0;
}

.transport-page-shell .quo-page-header__title {
    margin: 0;
    font-size: clamp(1.55rem, 1.9vw, 1.9rem);
    line-height: 1.05;
}

.transport-page-shell .quo-page-header__actions {
    gap: .5rem;
}

.transport-page-shell .quo-page-header__action {
    min-height: 2.45rem;
    padding: .48rem .8rem;
}

.transport-page-shell .quo-page-header + .transport-card,
.transport-page-shell .quo-page-header + section.transport-card {
    margin-top: .65rem !important;
}
/* === fin I22 === */


/* === I23 · compactación final de cabecera y formaciones === */
.transport-main-container .quo-page-header {
    padding: .55rem .95rem .55rem 1.1rem;
    background: linear-gradient(135deg, #ffffff 0%, #f6f7f8 100%);
    border-radius: 16px;
    min-height: 0;
}

.transport-main-container .quo-page-header::before {
    width: 4px;
    background: linear-gradient(180deg, #b11217 0 42%, #343a40 42% 100%);
}

.transport-main-container .quo-page-header__eyebrow,
.transport-main-container .quo-page-header__subtitle,
.transport-fleet-browser-heading p {
    display: none !important;
}

.transport-main-container .quo-page-header__copy {
    display: flex;
    align-items: center;
    min-width: 0;
}

.transport-main-container .quo-page-header__title {
    margin: 0;
    font-size: clamp(1.55rem, 1.9vw, 1.9rem);
    line-height: 1.05;
}

.transport-main-container .quo-page-header__actions {
    gap: .5rem;
}

.transport-main-container .quo-page-header__action {
    min-height: 2.45rem;
    padding: .48rem .8rem;
}

.transport-main-container .quo-page-header + .transport-card,
.transport-main-container .quo-page-header + section.transport-card {
    margin-top: .55rem !important;
}

.transport-situation-strip {
    margin-top: 0 !important;
    padding-top: 0 !important;
    border-top: 0 !important;
}

.transport-situation-strip__inner {
    min-height: 30px;
    padding: 0 !important;
}

.transport-situation-strip .quo-signal-panel {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.transport-situation-strip .quo-signal-panel__track {
    margin-top: 0 !important;
}

.transport-main-container {
    padding-top: .55rem !important;
}

.transport-fleet-workspace.is-formaciones {
    display: block;
    min-height: auto;
}

.transport-fleet-formations-board {
    grid-column: 1 / -1;
    width: 100%;
}

.transport-fleet-workspace.is-formaciones .transport-fleet-formations-board {
    display: block;
}

.transport-fleet-workspace.is-formaciones .transport-fleet-detail-empty {
    display: none !important;
}

.transport-formation-board-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    width: 100%;
}

.transport-formation-lane {
    min-width: 0;
    border: 1px solid rgba(52, 58, 64, .22);
    background: linear-gradient(180deg, #fafafa 0%, #f3f4f6 100%);
}

@media (max-width: 1399.98px) {
    .transport-fleet-workspace.is-formaciones .transport-formation-board-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .transport-fleet-workspace.is-formaciones .transport-formation-board-grid {
        grid-template-columns: 1fr;
    }
}
/* === fin I23 === */


/* === I24 · cards de formaciones más compactas e iconografía propia === */
.transport-formation-card {
    gap: .68rem;
}

.transport-formation-card__row {
    display: grid;
    gap: .8rem;
    align-items: start;
}

.transport-formation-card__row--driver {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
}

.transport-formation-card__row--equipment.is-trailer {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.transport-formation-card__row--equipment.is-single {
    grid-template-columns: minmax(0, 1fr);
}

.transport-formation-card__item {
    min-width: 0;
}

.transport-formation-card__item strong {
    display: block;
    overflow-wrap: anywhere;
}

.transport-formation-card__status {
    align-self: center;
    white-space: nowrap;
}

.transport-formation-card__label img {
    width: 20px;
    height: 20px;
    object-fit: contain;
    border-radius: 4px;
    flex: 0 0 auto;
}

@media (max-width: 991.98px) {
    .transport-formation-card__row--equipment.is-trailer {
        grid-template-columns: 1fr;
    }

    .transport-formation-card__row--driver {
        grid-template-columns: 1fr;
    }

    .transport-formation-card__status {
        justify-self: start;
    }
}
/* === fin I24 === */


/* === I25 · densidad de formaciones e iconos visibles === */
.transport-formation-card__item strong {
    font-size: 14px;
    line-height: 1.2;
}

.transport-formation-card__row--driver {
    align-items: start;
}

.transport-formation-card__status {
    align-self: start;
    margin-top: 0;
}

.transport-formation-card__label img {
    width: 24px;
    height: 24px;
    padding: 2px;
    border-radius: 6px;
    background: #fff;
    border: 1px solid rgba(31, 41, 55, .12);
    object-fit: contain;
}
/* === fin I25 === */


/* === I26 · contador de formaciones en cabecera de columna === */
.transport-formation-lane__header {
    min-height: 2rem;
    padding-bottom: .48rem;
}

.transport-formation-lane__header small {
    display: none !important;
}

.transport-formation-lane__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.8rem;
    height: 1.55rem;
    padding: 0 .46rem;
    margin-left: auto;
    border-radius: 999px;
    border: 1px solid rgba(52, 58, 64, .18);
    background: #fff;
    color: #343a40;
    font-size: .72rem;
    font-weight: 850;
    line-height: 1;
}
/* === fin I26 === */


/* === I27 · densidad adicional de Flota === */
.transport-formation-card__item strong {
    font-size: 13px;
    line-height: 1.18;
}

/* 5% menos de altura en controles propios de Flota. */
.transport-fleet-browser .fleet-type-button,
.transport-fleet-browser .fleet-status-button,
.transport-fleet-browser .transport-fleet-tabs button,
.transport-fleet-browser .transport-fleet-status-filter button,
.transport-fleet-browser .transport-fleet-detail-tabs .nav-link {
    min-height: 34px;
    padding-top: .39rem;
    padding-bottom: .39rem;
}

.transport-fleet-browser .btn {
    min-height: calc(var(--bs-btn-line-height, 1.5em) + .72rem);
    padding-top: .35rem;
    padding-bottom: .35rem;
}

.transport-main-container:has(.transport-fleet-browser) .quo-page-header__action {
    min-height: 2.33rem;
    padding-top: .455rem;
    padding-bottom: .455rem;
}
/* === fin I27 === */

/* I31 - Ajustes de navegación e identidad visual */
.transport-page-shell .quo-page-header__action--neutral {
    background: #f3f5f7;
    border-color: #cbd2da;
    color: #626e7d;
}

.transport-page-shell .quo-page-header__action--neutral:hover {
    background: #edf1f5;
    border-color: #bcc6d2;
    color: #4f5d6e;
}


/* === I32 · Volver global + Configuración/Empresa compacta === */
.transport-action-back,
.transport-module-actions .transport-action-back {
    background: #f3f5f7 !important;
    border-color: #cbd2da !important;
    color: #626e7d !important;
}

.transport-action-back:hover,
.transport-action-back:focus,
.transport-module-actions .transport-action-back:hover,
.transport-module-actions .transport-action-back:focus {
    background: #edf1f5 !important;
    border-color: #bcc6d2 !important;
    color: #4f5d6e !important;
}

.transport-company-layout {
    align-items: stretch;
}

.transport-company-logo-card,
.transport-company-data-card {
    min-height: 100%;
}

.transport-company-data-flow {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .55rem .9rem;
}

.transport-company-fact {
    display: inline-flex;
    align-items: baseline;
    gap: .35rem;
    min-width: 0;
    padding-right: .9rem;
    border-right: 1px solid rgba(148, 163, 184, .34);
    white-space: nowrap;
}

.transport-company-fact:last-child {
    border-right: 0;
    padding-right: 0;
}

.transport-company-fact span {
    color: #667085;
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .035em;
}

.transport-company-fact strong {
    color: #172033;
    font-size: .86rem;
    font-weight: 800;
}

.transport-export-excel {
    background: #217346 !important;
    border-color: #217346 !important;
    color: #fff !important;
    font-weight: 800;
}

.transport-export-excel:hover,
.transport-export-excel:focus {
    background: #185c37 !important;
    border-color: #185c37 !important;
    color: #fff !important;
}

@media (max-width: 991.98px) {
    .transport-company-fact {
        white-space: normal;
    }
}
/* === fin I32 === */

/* Respaldo global para botones de vuelta que aún no pasan por AppExperience/ModuleHeader. */
a.btn-outline-secondary:has(.bi-arrow-left),
button.btn-outline-secondary:has(.bi-arrow-left),
a.btn-outline-secondary:has(.bi-chevron-left),
button.btn-outline-secondary:has(.bi-chevron-left) {
    background: #f3f5f7;
    border-color: #cbd2da;
    color: #626e7d;
}

a.btn-outline-secondary:has(.bi-arrow-left):hover,
button.btn-outline-secondary:has(.bi-arrow-left):hover,
a.btn-outline-secondary:has(.bi-chevron-left):hover,
button.btn-outline-secondary:has(.bi-chevron-left):hover {
    background: #edf1f5;
    border-color: #bcc6d2;
    color: #4f5d6e;
}

/* === I33 · RESTUS-like Empresa + Empleado 360 + estándares globales === */
.transport-company-layout-restus .transport-company-logo-preview {
    min-height: 220px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.transport-company-data-grid .form-label,
.transport-employee-data-grid .form-label {
    margin-bottom: .28rem;
    font-size: .72rem;
    font-weight: 750;
}

.transport-company-data-grid .quo-readonly-control,
.transport-employee-data-grid .quo-readonly-control {
    min-height: 36px;
    display: flex;
    align-items: center;
    padding: .42rem .58rem;
    border: 1px solid #e2e7ed;
    border-radius: 8px;
    background: #f8fafc;
    color: #172033;
    font-size: .82rem;
    line-height: 1.15;
    overflow-wrap: anywhere;
}

/* Todo botón Volver comparte la estética gris claro de Limpiar. */
.transport-action-back,
.quo-page-header__action--neutral,
a.btn:has(.bi-arrow-left),
button.btn:has(.bi-arrow-left),
a.btn:has(.bi-chevron-left),
button.btn:has(.bi-chevron-left) {
    background: #f3f5f7 !important;
    border-color: #cbd2da !important;
    color: #626e7d !important;
}

.transport-action-back:hover,
.quo-page-header__action--neutral:hover,
a.btn:has(.bi-arrow-left):hover,
button.btn:has(.bi-arrow-left):hover,
a.btn:has(.bi-chevron-left):hover,
button.btn:has(.bi-chevron-left):hover {
    background: #e9edf2 !important;
    border-color: #b8c2ce !important;
    color: #445160 !important;
}

/* LIMPIAR: primero en su grupo y siempre gris claro. */
.transport-clear-action,
.quo-filter-clear,
.gtm010-filter-clear .btn,
.transport-list-clear-button {
    order: -1000;
    background: #f3f5f7 !important;
    border-color: #cbd2da !important;
    color: #626e7d !important;
}

.transport-clear-action:hover,
.quo-filter-clear:hover,
.gtm010-filter-clear .btn:hover,
.transport-list-clear-button:hover {
    background: #e9edf2 !important;
    border-color: #b8c2ce !important;
    color: #445160 !important;
}

/* Tablas ordenables: toda cabecera salvo Acciones. */
table[data-sortable-ready="true"] thead th[data-sortable-column="true"] {
    cursor: pointer;
    user-select: none;
    position: relative;
    padding-right: 1.55rem;
}

table[data-sortable-ready="true"] thead th[data-sortable-column="true"]::after {
    content: "↕";
    position: absolute;
    right: .48rem;
    top: 50%;
    transform: translateY(-50%);
    color: #9aa4b2;
    font-size: .72rem;
    font-weight: 800;
}

table[data-sortable-ready="true"] thead th[data-sort-direction="asc"]::after {
    content: "↑";
    color: #b11217;
}

table[data-sortable-ready="true"] thead th[data-sort-direction="desc"]::after {
    content: "↓";
    color: #b11217;
}

.transport-employee-state-summary {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .65rem;
    margin: .4rem 0 .75rem;
}

.transport-employee-state-item {
    min-width: 0;
    padding: .65rem .75rem;
    border: 1px solid #e3e7ec;
    border-radius: 10px;
    background: #fff;
}

.transport-employee-state-item span {
    display: block;
    margin-bottom: .22rem;
    color: #7b8695;
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.transport-employee-state-item strong {
    display: block;
    color: #172033;
    font-size: .82rem;
    font-weight: 850;
    line-height: 1.15;
    overflow-wrap: anywhere;
}

.transport-employee-photo-frame {
    min-height: 250px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border: 1px solid #e1e6ec;
    border-radius: 12px;
    background: #f7f9fb;
}

.transport-employee-photo-frame img {
    width: 100%;
    max-height: 300px;
    object-fit: contain;
}

.transport-employee-photo-empty {
    min-height: 220px;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: .55rem;
    align-items: center;
    justify-content: center;
    color: #8a95a3;
}

.transport-employee-photo-empty i {
    font-size: 2.2rem;
}

.transport-employee-calendar-summary {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: .65rem;
}

.transport-employee-calendar-summary > div {
    padding: .58rem .7rem;
    border: 1px solid #e4e8ed;
    border-radius: 9px;
    background: #f8fafc;
}

.transport-employee-calendar-summary span {
    display: block;
    color: #7b8695;
    font-size: .66rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.transport-employee-calendar-summary strong {
    display: block;
    margin-top: .15rem;
    color: #172033;
    font-size: .9rem;
    font-weight: 900;
}

.transport-employee-calendar-table-wrap {
    max-height: 390px;
}

.transport-employee-related-actions {
    display: grid;
    gap: .55rem;
}

.transport-employee-related-link {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr);
    gap: .65rem;
    align-items: center;
    padding: .62rem .68rem;
    border: 1px solid #e3e7ec;
    border-radius: 9px;
    color: #283445;
    text-decoration: none;
    background: #fff;
}

.transport-employee-related-link:hover {
    border-color: rgba(177,18,23,.28);
    color: #b11217;
    background: #fffafb;
}

.transport-employee-related-link > i {
    font-size: 1rem;
    text-align: center;
}

.transport-employee-related-link strong,
.transport-employee-related-link small {
    display: block;
}

.transport-employee-related-link small {
    margin-top: .1rem;
    color: #7b8695;
    font-size: .72rem;
}

@media (max-width: 1399.98px) {
    .transport-employee-state-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 991.98px) {
    .transport-employee-calendar-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767.98px) {
    .transport-employee-state-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .transport-employee-calendar-summary { grid-template-columns: 1fr; }
}
/* === fin I33 === */


/* === I36 · formaciones compactas por columna y sin iconos internos === */
.transport-formation-lane__header--compact {
    align-items: center;
    gap: .5rem;
    padding-bottom: .4rem;
}

.transport-formation-lane__title--compact {
    display: inline-flex;
    align-items: center;
    gap: .48rem;
    min-width: 0;
}

.transport-formation-lane__title--compact img {
    width: 28px;
    height: 28px;
    object-fit: contain;
    flex: 0 0 auto;
}

.transport-formation-lane__title--compact span {
    line-height: 1.05;
}

.transport-formation-lane__stack--compact {
    gap: .55rem;
}

.transport-formation-card--compact {
    padding: .6rem .68rem;
    gap: .38rem;
    border-radius: 14px;
    border-color: rgba(52, 58, 64, .18);
    background: #ffffff;
    box-shadow: 0 8px 18px rgba(15, 23, 42, .05);
}

.transport-formation-card__compact-topline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
}

.transport-formation-card__compact-label {
    display: inline-flex;
    align-items: center;
    color: #667085;
    font-size: .65rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    line-height: 1.1;
}

.transport-formation-card__compact-driver {
    display: block;
    margin: 0;
    font-size: .82rem;
    line-height: 1.12;
    color: #0f172a;
    overflow-wrap: anywhere;
}

.transport-formation-card__compact-grid {
    display: grid;
    gap: .45rem;
    align-items: start;
}

.transport-formation-card__compact-grid.is-trailer {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.transport-formation-card__compact-grid.is-single {
    grid-template-columns: minmax(0, 1fr);
}

.transport-formation-card__compact-cell {
    min-width: 0;
}

.transport-formation-card__compact-cell strong {
    display: block;
    margin-top: .12rem;
    font-size: .8rem;
    line-height: 1.12;
    color: #111827;
    overflow-wrap: anywhere;
}

.transport-formation-card__status--compact {
    align-self: center;
    padding: .2rem .48rem;
    font-size: .66rem;
    line-height: 1;
    min-height: 1.25rem;
}

.transport-formation-lane__empty {
    padding: .8rem .7rem;
    font-size: .82rem;
}

@media (max-width: 991.98px) {
    .transport-formation-card__compact-grid.is-trailer {
        grid-template-columns: 1fr;
    }
}
/* === fin I36 === */
