: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 - versión única saneada */
.transport-login-body-pro {
    min-height: 100vh;
    overflow-x: hidden;
    background:
        radial-gradient(circle at 12% 12%, rgba(255, 230, 0, .18), transparent 24rem),
        linear-gradient(135deg, #f4f6f8 0%, #e8edf3 100%);
}

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

.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: 18rem;
    height: 18rem;
    left: -7rem;
    bottom: -6rem;
    background: rgba(255, 230, 0, .14);
}

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

.transport-login-panel {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, .78fr);
    width: min(100%, 980px);
    min-height: 560px;
    border: 1px solid rgba(255, 255, 255, .34);
    border-radius: 28px;
    overflow: hidden;
    background: #ffffff;
    box-shadow: 0 28px 70px rgba(15, 23, 42, .22);
}

.transport-login-hero {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    min-height: 0;
    padding: 0;
    color: var(--transport-text, #1f2933);
    background: #ffffff;
}

.transport-login-hero::before,
.transport-login-hero::after {
    display: none;
    content: none;
}

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

.transport-login-hero-top {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 1rem;
    min-height: 96px;
    padding: 1rem 1.4rem;
    color: #ffffff;
    background: #0f1115;
}

.transport-login-logo-box {
    display: grid;
    place-items: center;
    width: 112px;
    min-height: 62px;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 18px;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 12px 28px rgba(0, 0, 0, .18);
}

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

.transport-login-brand-title,
.transport-login-hero-top .transport-login-brand-title,
.transport-login-hero-top strong,
.transport-login-hero-top span {
    color: #ffffff !important;
    font-size: clamp(1.35rem, 2.4vw, 1.9rem) !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    letter-spacing: -.03em;
    white-space: nowrap;
}

.transport-login-hero-content,
.transport-login-hero-content-clean {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 150px;
    padding: 1.25rem 1rem;
    background: #ffffff;
    text-align: center;
}

.transport-login-company-title,
.transport-login-hero-content h1,
.transport-login-hero-content-clean h1 {
    max-width: 20rem;
    margin: 0 auto;
    color: var(--transport-danger, #a83232);
    font-size: clamp(2rem, 4.2vw, 3rem);
    font-weight: 900;
    line-height: .95;
    letter-spacing: -.045em;
    text-align: center;
    text-transform: uppercase;
    white-space: normal;
}

.transport-login-hero-content p,
.transport-login-hero-content-clean p,
.transport-login-status-pill,
.transport-login-kicker,
.transport-login-feature-grid,
.transport-login-feature {
    display: none !important;
}

.transport-login-card-pro {
    width: auto;
    max-width: none;
    min-height: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(1.7rem, 3vw, 2.7rem);
    border: 0;
    border-radius: 0;
    background: #ffffff;
    box-shadow: none;
}

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

.transport-login-eyebrow {
    display: none !important;
}

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

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

.transport-login-form .mb-3 {
    margin-bottom: .9rem !important;
}

.transport-login-form .mb-4 {
    margin-bottom: 1.05rem !important;
}

.transport-login-form .form-label {
    margin-bottom: .35rem;
    color: var(--transport-text);
    font-weight: 900;
}

.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: 1rem;
}

.transport-login-input-group .form-control {
    min-height: 2.85rem;
    padding: .55rem 1rem .55rem 2.8rem;
    border-color: var(--transport-border);
    border-radius: 14px;
    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 .22rem rgba(255, 230, 0, .16);
}

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

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

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

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

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

    .transport-login-panel {
        display: flex !important;
        flex-direction: column !important;
        width: min(100%, 520px);
        min-height: 0 !important;
        height: auto !important;
        border-radius: 24px;
    }

    .transport-login-hero {
        flex: 0 0 auto !important;
        display: block !important;
        min-height: 0 !important;
        height: auto !important;
        padding: 0 !important;
        background: #ffffff !important;
    }

    .transport-login-hero-top {
        min-height: 88px !important;
        padding: .9rem 1.1rem !important;
    }

    .transport-login-logo-box {
        width: 100px;
        min-height: 56px;
        border-radius: 16px;
    }

    .transport-login-logo-box img {
        max-width: 86px;
    }

    .transport-login-hero-content,
    .transport-login-hero-content-clean {
        min-height: 150px !important;
        height: auto !important;
        padding: 1rem .85rem !important;
    }

    .transport-login-company-title,
    .transport-login-hero-content h1,
    .transport-login-hero-content-clean h1 {
        max-width: 19.5rem !important;
        font-size: clamp(2rem, 8vw, 2.8rem) !important;
        line-height: .95 !important;
        white-space: normal !important;
    }

    .transport-login-card-pro {
        flex: 0 0 auto !important;
        display: block !important;
        min-height: 0 !important;
        height: auto !important;
        margin: 0 !important;
        padding: 1rem 1.35rem 1.15rem !important;
        justify-content: flex-start !important;
    }

    .transport-login-form-header {
        margin-bottom: .85rem !important;
    }

    .transport-login-form-header h2 {
        font-size: 1.65rem !important;
    }
}

@media (max-width: 575.98px) {
    .transport-login-shell-pro {
        padding: .45rem !important;
    }

    .transport-login-panel {
        border-radius: 20px !important;
    }

    .transport-login-hero-top {
        min-height: 84px !important;
        padding: .8rem 1rem !important;
        gap: .9rem !important;
    }

    .transport-login-logo-box {
        width: 96px !important;
        min-height: 54px !important;
    }

    .transport-login-logo-box img {
        max-width: 82px !important;
    }

    .transport-login-brand-title,
    .transport-login-hero-top .transport-login-brand-title,
    .transport-login-hero-top strong,
    .transport-login-hero-top span {
        font-size: 1.32rem !important;
    }

    .transport-login-hero-content,
    .transport-login-hero-content-clean {
        min-height: 150px !important;
        padding: .95rem .75rem !important;
    }

    .transport-login-company-title,
    .transport-login-hero-content h1,
    .transport-login-hero-content-clean h1 {
        max-width: 18.5rem !important;
        font-size: clamp(2.05rem, 9vw, 2.65rem) !important;
        line-height: .95 !important;
        white-space: normal !important;
    }

    .transport-login-card-pro {
        padding: .95rem 1.35rem 1rem !important;
    }

    .transport-login-form-header {
        margin-bottom: .75rem !important;
    }

    .transport-login-form-header p {
        margin-top: .25rem !important;
    }

    .transport-login-form .mb-3 {
        margin-bottom: .78rem !important;
    }

    .transport-login-form .mb-4 {
        margin-bottom: .95rem !important;
    }

    .transport-login-input-group .form-control {
        min-height: 2.7rem !important;
        padding-top: .5rem !important;
        padding-bottom: .5rem !important;
    }

    .transport-login-submit {
        min-height: 2.85rem !important;
    }

    .transport-login-footer-note {
        margin-top: .75rem !important;
    }
}


/* 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 */


/* Fleet Manager - Iteración 1: navegación mobile-first para conductor */
.fleet-menu-group .dropdown-header {
    color: var(--transport-muted);
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.fleet-driver-home {
    margin-bottom: 1.15rem;
}

.fleet-driver-action {
    display: flex;
    min-height: 142px;
    height: 100%;
    flex-direction: column;
    justify-content: space-between;
    gap: .55rem;
    padding: 1rem;
    border: 1px solid var(--transport-border);
    border-radius: var(--transport-radius-lg);
    background: var(--transport-surface);
    color: var(--transport-text);
    text-decoration: none;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .05);
}

.fleet-driver-action:hover,
.fleet-driver-action:focus {
    color: var(--transport-text);
    border-color: var(--transport-primary);
    transform: translateY(-1px);
}

.fleet-driver-action i {
    display: inline-grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 14px;
    background: var(--transport-primary-soft);
    color: var(--transport-primary);
    font-size: 1.35rem;
}

.fleet-driver-action strong {
    display: block;
    font-size: 1.02rem;
    font-weight: 900;
}

.fleet-driver-action small {
    color: var(--transport-muted);
    font-size: .78rem;
    line-height: 1.25;
}

.fleet-mobile-bottom-nav {
    position: fixed;
    right: .7rem;
    bottom: .7rem;
    left: .7rem;
    z-index: 1030;
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 1fr;
    gap: .25rem;
    padding: .45rem;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 1.35rem;
    background: rgba(17, 24, 39, .96);
    box-shadow: 0 18px 45px rgba(15, 23, 42, .28);
    backdrop-filter: blur(10px);
}

.fleet-bottom-nav-link {
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .15rem;
    padding: .45rem .2rem;
    border-radius: 1rem;
    color: rgba(255, 255, 255, .78);
    text-decoration: none;
    font-size: .68rem;
    font-weight: 800;
    line-height: 1;
}

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

.fleet-bottom-nav-link i {
    font-size: 1.15rem;
}

@media (max-width: 991.98px) {
    body {
        padding-bottom: 5.25rem;
    }

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

    .transport-topbar-v4 .transport-module-nav-inline > ul.transport-nav-v4 {
        justify-content: flex-start;
        overflow-x: auto;
        flex-wrap: nowrap;
        padding-bottom: .25rem;
    }

    .transport-topbar-v4 .transport-module-nav-inline .nav-link {
        min-width: max-content;
    }

    .transport-page-shell > .container-fluid {
        padding-right: 1rem !important;
        padding-left: 1rem !important;
    }
}

@media (max-width: 575.98px) {
    .fleet-driver-action {
        min-height: 128px;
        padding: .85rem;
        border-radius: 1rem;
    }

    .fleet-driver-action i {
        width: 38px;
        height: 38px;
        font-size: 1.2rem;
    }

    .fleet-driver-action strong {
        font-size: .94rem;
    }

    .fleet-driver-action small {
        font-size: .73rem;
    }
}

/* Fleet Manager - Iteración 2: pantallas base del conductor */
.fleet-driver-section {
    max-width: 1180px;
    margin: 0 auto;
}

.fleet-driver-hero {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
    padding: 1rem;
    border: 1px solid var(--transport-border);
    border-radius: var(--transport-radius-lg);
    background: var(--transport-surface);
    box-shadow: 0 10px 28px rgba(15, 23, 42, .05);
}

.fleet-driver-hero h1 {
    margin: 0;
    font-size: clamp(1.45rem, 3vw, 2rem);
    font-weight: 900;
}

.fleet-driver-hero p {
    margin: .35rem 0 0;
    color: var(--transport-muted);
}

.fleet-driver-kicker {
    display: inline-flex;
    margin-bottom: .35rem;
    color: var(--transport-primary);
    font-size: .75rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.fleet-driver-card-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem;
}

.fleet-driver-card {
    display: flex;
    align-items: center;
    gap: .75rem;
    min-height: 92px;
    padding: .95rem;
    border: 1px solid var(--transport-border);
    border-radius: var(--transport-radius-md);
    background: var(--transport-surface);
    color: var(--transport-text);
    text-decoration: none;
    box-shadow: 0 8px 22px rgba(15, 23, 42, .045);
}

.fleet-driver-card:hover,
.fleet-driver-card:focus {
    color: var(--transport-text);
    border-color: var(--transport-primary);
}

.fleet-driver-card-icon {
    display: inline-grid;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    place-items: center;
    border-radius: 15px;
    background: var(--transport-primary-soft);
    color: var(--transport-primary);
    font-size: 1.25rem;
}

.fleet-driver-card strong {
    display: block;
    font-weight: 900;
}

.fleet-driver-card small {
    display: block;
    margin-top: .15rem;
    color: var(--transport-muted);
    line-height: 1.25;
}

.fleet-driver-card-disabled {
    opacity: .78;
}

.fleet-driver-feature-card,
.fleet-driver-placeholder,
.fleet-driver-form-preview {
    padding: 1rem;
    border: 1px solid var(--transport-border);
    border-radius: var(--transport-radius-lg);
    background: var(--transport-surface);
    box-shadow: 0 10px 28px rgba(15, 23, 42, .05);
}

.fleet-driver-feature-card > i,
.fleet-driver-placeholder > i {
    display: inline-grid;
    width: 48px;
    height: 48px;
    margin-bottom: .75rem;
    place-items: center;
    border-radius: 16px;
    background: var(--transport-primary-soft);
    color: var(--transport-primary);
    font-size: 1.45rem;
}

.fleet-driver-feature-card h2,
.fleet-driver-placeholder h2 {
    margin: 0 0 .35rem;
    font-size: 1.1rem;
    font-weight: 900;
}

.fleet-driver-feature-card p,
.fleet-driver-placeholder p {
    color: var(--transport-muted);
}

.fleet-driver-checklist {
    display: grid;
    gap: .5rem;
    margin-top: .75rem;
}

.fleet-driver-checklist span {
    display: flex;
    align-items: center;
    gap: .5rem;
    font-weight: 700;
}

.fleet-driver-checklist i {
    color: var(--transport-success);
}

@media (max-width: 767.98px) {
    .fleet-driver-hero {
        flex-direction: column;
        align-items: stretch;
        border-radius: 1rem;
    }

    .fleet-driver-card-grid {
        grid-template-columns: 1fr;
    }

    .fleet-driver-card {
        min-height: 84px;
    }
}
/* Fleet Manager - Iteración 2: fin */

/* Fleet Manager - Iteración 3: viajes, orden y seguimiento */
.fleet-mobile-tabs {
    display: flex;
    gap: .5rem;
    margin-bottom: 1rem;
    overflow-x: auto;
    padding-bottom: .25rem;
}

.fleet-mobile-tabs a {
    flex: 0 0 auto;
    padding: .55rem .85rem;
    border: 1px solid var(--transport-border);
    border-radius: 999px;
    background: var(--transport-surface);
    color: var(--transport-text);
    font-weight: 800;
    text-decoration: none;
}

.fleet-mobile-tabs a.active,
.fleet-mobile-tabs a:focus,
.fleet-mobile-tabs a:hover {
    border-color: var(--transport-primary);
    background: var(--transport-primary-soft);
    color: var(--transport-primary);
}

.fleet-driver-trip-list {
    display: grid;
    gap: 1rem;
}

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

.fleet-trip-card-active {
    border-color: rgba(37, 99, 235, .32);
    box-shadow: 0 16px 36px rgba(37, 99, 235, .1);
}

.fleet-trip-card-header,
.fleet-document-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.fleet-trip-card h2,
.fleet-document-card h2 {
    margin: .45rem 0 .2rem;
    font-size: 1.2rem;
    font-weight: 900;
}

.fleet-trip-card p,
.fleet-document-card p {
    margin: 0;
    color: var(--transport-muted);
}

.fleet-trip-number {
    color: var(--transport-muted);
    font-weight: 900;
}

.fleet-trip-summary-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .65rem;
    margin-top: 1rem;
}

.fleet-trip-summary-grid div {
    padding: .75rem;
    border-radius: var(--transport-radius-md);
    background: var(--transport-background-soft);
}

.fleet-trip-summary-grid small,
.fleet-definition-list dt,
.fleet-status-step small {
    display: block;
    color: var(--transport-muted);
    font-size: .78rem;
    font-weight: 800;
}

.fleet-trip-summary-grid strong,
.fleet-definition-list dd,
.fleet-status-step strong {
    display: block;
    margin: .1rem 0 0;
    font-weight: 900;
}

.fleet-trip-actions,
.fleet-quick-action-grid {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    margin-top: 1rem;
}

.fleet-trip-actions .btn,
.fleet-quick-action-grid .btn {
    min-height: 44px;
    font-weight: 800;
}

.fleet-trip-detail-layout {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.fleet-definition-list {
    display: grid;
    gap: .75rem;
    margin: .75rem 0 0;
}

.fleet-definition-list div {
    display: grid;
    gap: .1rem;
}

.fleet-definition-list dd {
    margin: 0;
}

.fleet-definition-list-compact div {
    padding: .75rem 0;
    border-bottom: 1px solid var(--transport-border);
}

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

.fleet-document-header > i {
    color: var(--transport-danger);
    font-size: 2rem;
}

.fleet-status-timeline {
    display: grid;
    gap: .75rem;
}

.fleet-status-step {
    display: flex;
    align-items: center;
    gap: .8rem;
    padding: .9rem;
    border: 1px solid var(--transport-border);
    border-radius: var(--transport-radius-md);
    background: var(--transport-surface);
}

.fleet-status-step > span {
    display: inline-grid;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 50%;
    background: var(--transport-background-soft);
    color: var(--transport-muted);
    font-size: 1.15rem;
}

.fleet-status-step.done > span {
    background: var(--transport-success-soft);
    color: var(--transport-success);
}

.fleet-status-step.current {
    border-color: rgba(37, 99, 235, .32);
}

.fleet-status-step.current > span {
    background: var(--transport-primary-soft);
    color: var(--transport-primary);
}

@media (max-width: 767.98px) {
    .fleet-trip-card-header,
    .fleet-document-header {
        flex-direction: column;
    }

    .fleet-trip-summary-grid,
    .fleet-trip-detail-layout {
        grid-template-columns: 1fr;
    }

    .fleet-trip-actions,
    .fleet-quick-action-grid {
        display: grid;
        grid-template-columns: 1fr;
    }

    .fleet-trip-actions .btn,
    .fleet-quick-action-grid .btn {
        width: 100%;
    }
}
/* Fleet Manager - Iteración 3: fin */
.transport-status-badge.transport-tone-muted {
    background: var(--transport-background-soft);
    color: var(--transport-muted);
}


/* Fleet Manager - Iteración 4: Chat / Mensajes / Avisos */
.fleet-driver-hero.compact {
    padding-bottom: 1rem;
}

.fleet-chat-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(280px, .85fr);
    gap: 1rem;
    margin-bottom: 1rem;
}

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

.fleet-chat-primary {
    border-color: rgba(37, 99, 235, .24);
}

.fleet-chat-card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.fleet-chat-card-header h2 {
    margin: .25rem 0 .1rem;
    font-size: 1.25rem;
    font-weight: 900;
}

.fleet-chat-card-header p {
    margin: 0;
    color: var(--transport-muted);
}

.fleet-chat-preview-list,
.fleet-alert-list,
.fleet-chat-thread {
    display: grid;
    gap: .75rem;
}

.fleet-message-preview,
.fleet-chat-bubble {
    max-width: 82%;
    padding: .8rem .9rem;
    border-radius: 1rem;
    background: var(--transport-background-soft);
}

.fleet-message-preview p,
.fleet-chat-bubble p {
    margin: .25rem 0 0;
    color: var(--transport-muted);
}

.fleet-message-preview.outgoing,
.fleet-chat-bubble.outgoing {
    justify-self: end;
    background: var(--transport-primary-soft);
    color: var(--transport-primary);
}

.fleet-message-preview.outgoing p,
.fleet-chat-bubble.outgoing p {
    color: inherit;
}

.fleet-chat-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    margin-top: 1rem;
}

.fleet-alert-item {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    padding: .85rem;
    border: 1px solid var(--transport-border);
    border-radius: var(--transport-radius-md);
    background: var(--transport-background-soft);
    color: inherit;
    text-decoration: none;
}

.fleet-alert-item i {
    color: var(--transport-primary);
    font-size: 1.25rem;
}

.fleet-alert-item.urgent {
    border-color: rgba(245, 158, 11, .4);
    background: rgba(245, 158, 11, .08);
}

.fleet-alert-item.urgent i {
    color: var(--transport-warning);
}

.fleet-alert-item.read {
    opacity: .72;
}

.fleet-alert-item strong,
.fleet-alert-item small {
    display: block;
}

.fleet-alert-item small {
    margin-top: .2rem;
    color: var(--transport-muted);
}

.fleet-chat-large-icon {
    color: var(--transport-primary);
    font-size: 2rem;
}

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

.fleet-attachment-grid div {
    display: grid;
    gap: .2rem;
    padding: .9rem;
    border: 1px dashed var(--transport-border);
    border-radius: var(--transport-radius-md);
    background: var(--transport-background-soft);
}

.fleet-attachment-grid i {
    color: var(--transport-primary);
    font-size: 1.5rem;
}

.fleet-attachment-grid small {
    color: var(--transport-muted);
}

.fleet-chat-thread {
    padding: 1rem;
    border: 1px solid var(--transport-border);
    border-radius: var(--transport-radius-lg);
    background: var(--transport-surface);
}

.fleet-chat-day {
    justify-self: center;
    padding: .25rem .75rem;
    border-radius: 999px;
    background: var(--transport-background-soft);
    color: var(--transport-muted);
    font-size: .8rem;
    font-weight: 800;
}

.fleet-chat-bubble small {
    display: block;
    margin-top: .3rem;
    color: var(--transport-muted);
    font-size: .78rem;
}

.fleet-chat-compose {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: .6rem;
    align-items: end;
    margin-top: 1rem;
    padding: .75rem;
    border: 1px solid var(--transport-border);
    border-radius: var(--transport-radius-lg);
    background: var(--transport-surface);
}

.fleet-driver-note {
    display: flex;
    gap: .65rem;
    align-items: flex-start;
    margin-top: 1rem;
    padding: .85rem;
    border-radius: var(--transport-radius-md);
    background: var(--transport-primary-soft);
    color: var(--transport-primary);
    font-weight: 700;
}

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

    .fleet-chat-card-header {
        flex-direction: column;
    }

    .fleet-message-preview,
    .fleet-chat-bubble {
        max-width: 92%;
    }

    .fleet-chat-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .fleet-chat-actions .btn,
    .fleet-chat-compose .btn {
        min-height: 44px;
    }

    .fleet-chat-compose {
        grid-template-columns: auto minmax(0, 1fr) auto;
        position: sticky;
        bottom: 72px;
        z-index: 5;
    }
}
/* Fleet Manager - Iteración 4: fin */

/* Fleet Manager - Iteración 5: Cierres de jornada y repostajes */
.fleet-day-summary-grid {
    display: grid;
    grid-template-columns: 1.25fr .85fr .85fr;
    gap: 1rem;
    margin-bottom: 1rem;
}

.fleet-day-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 180px;
    padding: 1rem;
    border: 1px solid var(--transport-border);
    border-radius: var(--transport-radius-lg);
    background: var(--transport-surface);
    box-shadow: 0 10px 28px rgba(15, 23, 42, .05);
}

.fleet-day-card h2 {
    margin: .35rem 0 .5rem;
    font-size: 1.15rem;
    font-weight: 900;
}

.fleet-day-card p,
.fleet-day-card span,
.fleet-form-block small {
    color: var(--transport-muted);
}

.fleet-day-card strong {
    display: block;
    margin: .15rem 0 .35rem;
    font-size: 1.35rem;
    font-weight: 900;
}

.fleet-day-card i {
    color: var(--transport-primary);
    font-size: 2rem;
}

.fleet-day-card-primary {
    color: #fff;
    background: linear-gradient(135deg, var(--transport-primary), #1d4ed8);
}

.fleet-day-card-primary .fleet-driver-kicker,
.fleet-day-card-primary p {
    color: rgba(255, 255, 255, .82);
}

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

.fleet-panel-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.fleet-panel-title-row h2 {
    margin: .2rem 0 0;
    font-size: 1.25rem;
    font-weight: 900;
}

.fleet-mobile-list {
    display: grid;
    gap: .75rem;
}

.fleet-mobile-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .8rem;
    padding: .85rem;
    border: 1px solid var(--transport-border);
    border-radius: var(--transport-radius-md);
    background: var(--transport-background-soft);
}

.fleet-mobile-row strong,
.fleet-mobile-row span {
    display: block;
}

.fleet-mobile-row > div > span {
    margin-top: .15rem;
    color: var(--transport-muted);
}

.fleet-mobile-form {
    display: grid;
    gap: 1rem;
}

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

.fleet-form-block {
    display: grid;
    gap: .35rem;
}

.fleet-form-block .form-label {
    margin: 0;
    font-weight: 800;
}

.fleet-photo-placeholder {
    display: flex;
    align-items: center;
    gap: .85rem;
    padding: 1rem;
    border: 1px dashed var(--transport-border);
    border-radius: var(--transport-radius-lg);
    background: var(--transport-background-soft);
}

.fleet-photo-placeholder i {
    color: var(--transport-primary);
    font-size: 2rem;
}

.fleet-photo-placeholder strong,
.fleet-photo-placeholder span {
    display: block;
}

.fleet-photo-placeholder span {
    color: var(--transport-muted);
}

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

@media (max-width: 767.98px) {
    .fleet-day-card {
        min-height: 0;
    }

    .fleet-panel-title-row,
    .fleet-mobile-row {
        align-items: stretch;
        flex-direction: column;
    }

    .fleet-panel-title-row .btn,
    .fleet-mobile-row .transport-status-badge {
        align-self: flex-start;
    }

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

    .fleet-driver-hero.compact .btn {
        width: 100%;
    }
}
/* Fleet Manager - Iteración 5: fin */


/* Fleet Manager - Iteración 6: Área personal del conductor */
.fleet-personal-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.fleet-personal-card {
    display: flex;
    align-items: flex-start;
    gap: .9rem;
    min-height: 126px;
    padding: 1rem;
    border: 1px solid var(--transport-border);
    border-radius: var(--transport-radius-lg);
    background: var(--transport-surface);
    color: inherit;
    text-decoration: none;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .05);
}

.fleet-personal-card:hover {
    color: inherit;
    border-color: rgba(37, 99, 235, .35);
    transform: translateY(-1px);
}

.fleet-personal-card strong,
.fleet-personal-card small {
    display: block;
}

.fleet-personal-card strong {
    margin-bottom: .25rem;
    font-size: 1.05rem;
    font-weight: 900;
}

.fleet-personal-card small {
    color: var(--transport-muted);
}

.fleet-personal-card-main {
    grid-row: span 2;
    flex-direction: column;
    justify-content: space-between;
    color: #fff;
    background: linear-gradient(135deg, var(--transport-primary), #1d4ed8);
}

.fleet-personal-card-main small,
.fleet-personal-card-main .fleet-driver-card-icon {
    color: rgba(255, 255, 255, .85);
}

.fleet-personal-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: 1rem;
}

.fleet-personal-profile {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
}

.fleet-personal-profile h2 {
    margin: .15rem 0;
    font-weight: 900;
}

.fleet-personal-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 999px;
    background: var(--transport-primary-soft);
    color: var(--transport-primary);
    font-size: 1.7rem;
}

.fleet-data-list {
    display: grid;
    gap: .75rem;
    margin: 0;
}

.fleet-data-list div {
    padding: .8rem;
    border-radius: var(--transport-radius-md);
    background: var(--transport-background-soft);
}

.fleet-data-list dt {
    color: var(--transport-muted);
    font-size: .82rem;
    font-weight: 800;
    text-transform: uppercase;
}

.fleet-data-list dd {
    margin: .1rem 0 0;
    font-weight: 800;
}

.fleet-note-box {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    padding: .9rem;
    border-radius: var(--transport-radius-md);
    background: var(--transport-primary-soft);
    color: var(--transport-primary);
    font-weight: 700;
}

.fleet-communication-row p {
    margin: .45rem 0 0;
    color: var(--transport-muted);
}

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

    .fleet-personal-card-main {
        grid-row: auto;
    }
}

@media (max-width: 767.98px) {
    .fleet-personal-card {
        min-height: 0;
    }

    .fleet-personal-profile {
        align-items: flex-start;
    }
}
/* Fleet Manager - Iteración 6: fin */


/* Fleet Manager - Iteración 7: navegación final y Más */
.fleet-bottom-nav-link.active {
    color: #fff;
    background: rgba(255, 255, 255, .16);
}

.fleet-bottom-nav-link.active i {
    transform: translateY(-1px);
}

.fleet-more-groups {
    display: grid;
    gap: 1rem;
}

.fleet-more-group {
    padding: 1rem;
    border: 1px solid var(--transport-border);
    border-radius: var(--transport-radius-lg);
    background: var(--transport-surface);
    box-shadow: 0 12px 30px rgba(15, 23, 42, .05);
}

.fleet-more-group-muted {
    background: linear-gradient(180deg, rgba(248, 250, 252, .92), #fff);
}

.fleet-more-list {
    display: grid;
    gap: .7rem;
}

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

.fleet-more-link:hover,
.fleet-more-link:focus {
    border-color: rgba(37, 99, 235, .35);
    color: var(--transport-primary);
    background: var(--transport-primary-soft);
}

.fleet-more-link i {
    display: inline-grid;
    width: 42px;
    height: 42px;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 14px;
    background: var(--transport-primary-soft);
    color: var(--transport-primary);
    font-size: 1.22rem;
}

.fleet-more-link strong,
.fleet-more-link small {
    display: block;
}

.fleet-more-link strong {
    font-weight: 900;
}

.fleet-more-link small {
    color: var(--transport-muted);
    line-height: 1.25;
}

@media (max-width: 575.98px) {
    .fleet-mobile-bottom-nav {
        left: .45rem;
        right: .45rem;
        bottom: .45rem;
        border-radius: 1.1rem;
    }

    .fleet-bottom-nav-link {
        padding: .43rem .1rem;
        font-size: .62rem;
    }

    .fleet-bottom-nav-link i {
        font-size: 1.06rem;
    }

    .fleet-more-group {
        padding: .85rem;
        border-radius: 1rem;
    }
}
/* Fleet Manager - Iteración 7: fin */

/* Fleet Manager - Iteración 8: viaje activo y acciones rápidas */
.fleet-active-trip-hero {
    border-color: rgba(37, 99, 235, .22);
    background: linear-gradient(135deg, rgba(37, 99, 235, .10), rgba(255, 255, 255, .96));
}

.fleet-trip-priority-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .8rem;
    margin: 1rem 0;
}

.fleet-priority-action,
.fleet-trip-dashboard-card,
.fleet-active-trip-status,
.fleet-action-button,
.fleet-trip-mini-summary article {
    border: 1px solid var(--transport-border);
    border-radius: var(--transport-radius-lg);
    background: var(--transport-surface);
    box-shadow: 0 12px 30px rgba(15, 23, 42, .05);
}

.fleet-priority-action {
    display: flex;
    align-items: center;
    gap: .8rem;
    padding: 1rem;
    color: var(--transport-text);
    text-decoration: none;
}

.fleet-priority-action.primary {
    color: #fff;
    background: linear-gradient(135deg, var(--transport-primary), #1d4ed8);
}

.fleet-priority-action i {
    display: inline-grid;
    width: 44px;
    height: 44px;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 15px;
    background: var(--transport-primary-soft);
    color: var(--transport-primary);
    font-size: 1.25rem;
}

.fleet-priority-action.primary i {
    color: #fff;
    background: rgba(255, 255, 255, .18);
}

.fleet-priority-action strong,
.fleet-priority-action small,
.fleet-trip-dashboard-card strong,
.fleet-trip-dashboard-card small,
.fleet-active-trip-status small,
.fleet-active-trip-status strong,
.fleet-active-trip-status span,
.fleet-action-button strong,
.fleet-action-button small,
.fleet-trip-mini-summary small,
.fleet-trip-mini-summary strong,
.fleet-trip-mini-summary span {
    display: block;
}

.fleet-priority-action strong,
.fleet-trip-dashboard-card strong,
.fleet-active-trip-status strong,
.fleet-action-button strong,
.fleet-trip-mini-summary strong {
    font-weight: 900;
}

.fleet-priority-action small,
.fleet-trip-dashboard-card small,
.fleet-active-trip-status span,
.fleet-action-button small,
.fleet-trip-mini-summary small,
.fleet-trip-mini-summary span {
    color: var(--transport-muted);
}

.fleet-priority-action.primary small {
    color: rgba(255, 255, 255, .78);
}

.fleet-active-trip-status {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem;
    margin-bottom: 1rem;
}

.fleet-trip-dashboard-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.fleet-trip-dashboard-card {
    min-height: 170px;
    padding: 1rem;
    color: var(--transport-text);
    text-decoration: none;
}

.fleet-trip-dashboard-card:hover,
.fleet-trip-dashboard-card:focus,
.fleet-priority-action:hover,
.fleet-priority-action:focus {
    color: var(--transport-primary);
    border-color: rgba(37, 99, 235, .35);
    transform: translateY(-1px);
}

.fleet-trip-dashboard-card.primary {
    color: #fff;
    background: linear-gradient(135deg, var(--transport-primary), #1d4ed8);
}

.fleet-trip-dashboard-card.primary small {
    color: rgba(255, 255, 255, .78);
}

.fleet-trip-dashboard-card.danger i {
    color: var(--transport-danger);
}

.fleet-trip-dashboard-card i {
    display: inline-grid;
    width: 48px;
    height: 48px;
    place-items: center;
    margin-bottom: .9rem;
    border-radius: 16px;
    background: var(--transport-primary-soft);
    color: var(--transport-primary);
    font-size: 1.35rem;
}

.fleet-trip-dashboard-card.primary i {
    color: #fff;
    background: rgba(255, 255, 255, .18);
}

.fleet-trip-mini-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.fleet-trip-mini-summary article {
    padding: 1rem;
}

.fleet-action-stack {
    display: grid;
    gap: .75rem;
}

.fleet-action-button {
    display: flex;
    align-items: center;
    width: 100%;
    gap: .9rem;
    padding: 1rem;
    text-align: left;
}

.fleet-action-button i {
    display: inline-grid;
    width: 46px;
    height: 46px;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 15px;
    background: var(--transport-primary-soft);
    color: var(--transport-primary);
    font-size: 1.25rem;
}

.fleet-action-button.done i {
    color: var(--transport-success);
    background: rgba(22, 163, 74, .12);
}

.fleet-action-button.current {
    border-color: rgba(37, 99, 235, .35);
    background: var(--transport-primary-soft);
}

.fleet-mobile-form {
    display: grid;
    gap: 1rem;
    max-width: 720px;
}

.fleet-form-group label {
    display: block;
    margin-bottom: .4rem;
    font-weight: 900;
}

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

@media (max-width: 767.98px) {
    .fleet-trip-priority-actions,
    .fleet-trip-dashboard-grid,
    .fleet-trip-mini-summary {
        grid-template-columns: 1fr;
    }

    .fleet-active-trip-status {
        align-items: stretch;
        flex-direction: column;
    }

    .fleet-trip-dashboard-card {
        min-height: 0;
    }
}
/* Fleet Manager - Iteración 8: fin */


/* Fleet Manager - Iteración 9: fotos y adjuntos */
.fleet-attachments-page {
    padding-bottom: 6rem;
}

.fleet-attachment-context {
    display: flex;
    align-items: center;
    gap: .85rem;
    margin-bottom: 1rem;
}

.fleet-attachment-context i {
    display: inline-grid;
    width: 44px;
    height: 44px;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 14px;
    background: var(--transport-primary-soft);
    color: var(--transport-primary);
    font-size: 1.25rem;
}

.fleet-attachment-context span,
.fleet-attachment-type-card span,
.fleet-upload-dropzone span {
    display: block;
    color: var(--transport-muted);
}

.fleet-attachment-upload-panel {
    display: grid;
    gap: 1rem;
    margin-bottom: 1rem;
}

.fleet-upload-dropzone {
    display: grid;
    gap: .55rem;
    place-items: center;
    padding: 1.35rem;
    text-align: center;
    border: 2px dashed rgba(37, 99, 235, .28);
    border-radius: 22px;
    background: linear-gradient(180deg, rgba(37, 99, 235, .08), rgba(255, 255, 255, .96));
}

.fleet-upload-dropzone > i {
    display: inline-grid;
    width: 62px;
    height: 62px;
    place-items: center;
    border-radius: 20px;
    background: var(--transport-primary);
    color: #fff;
    font-size: 1.8rem;
}

.fleet-upload-actions {
    display: grid;
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    margin-top: .65rem;
}

.fleet-attachment-type-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1rem;
}

.fleet-attachment-type-card {
    padding: 1rem;
    border: 1px solid var(--transport-border);
    border-radius: 18px;
    background: #fff;
    box-shadow: var(--transport-shadow-soft);
}

.fleet-attachment-type-card i {
    display: inline-grid;
    width: 44px;
    height: 44px;
    place-items: center;
    margin-bottom: .75rem;
    border-radius: 14px;
    background: var(--transport-primary-soft);
    color: var(--transport-primary);
    font-size: 1.25rem;
}

.fleet-photo-placeholder-action {
    justify-content: flex-start;
    text-align: left;
}

.fleet-chat-attachment-strip {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    margin: 1rem 0;
}

.fleet-chat-attachment-strip a {
    display: flex;
    align-items: center;
    gap: .65rem;
    padding: .85rem;
    color: var(--transport-primary);
    text-decoration: none;
    border: 1px solid rgba(37, 99, 235, .22);
    border-radius: 16px;
    background: var(--transport-primary-soft);
    font-weight: 800;
}

.fleet-chat-attachment-strip i {
    font-size: 1.2rem;
}

.fleet-driver-note.danger {
    border-color: rgba(220, 38, 38, .18);
    background: rgba(220, 38, 38, .08);
    color: #991b1b;
}

@media (max-width: 767.98px) {
    .fleet-upload-actions,
    .fleet-attachment-type-grid,
    .fleet-chat-attachment-strip {
        grid-template-columns: 1fr;
    }
}
/* Fleet Manager - Iteración 9: fin */

/* Fleet Manager - Iteración 10: panel responsable de tráfico */
.fleet-traffic-page {
    padding-bottom: 5rem;
}

.fleet-traffic-hero {
    background: linear-gradient(135deg, #0f172a, #2563eb);
}

.fleet-office-quick-card,
.fleet-traffic-action-card,
.fleet-traffic-kpi,
.fleet-traffic-row,
.fleet-tracking-column,
.fleet-inbox-thread,
.fleet-incident-card {
    border: 1px solid var(--transport-border);
    border-radius: 20px;
    background: #fff;
    box-shadow: var(--transport-shadow-soft);
}

.fleet-office-quick-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem;
}

.fleet-office-quick-card h2 {
    margin: .1rem 0 .25rem;
    font-size: 1.15rem;
    font-weight: 900;
}

.fleet-office-quick-card p {
    margin: 0;
    color: var(--transport-muted);
}

.fleet-traffic-summary-grid,
.fleet-traffic-action-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1rem;
}

.fleet-traffic-kpi {
    padding: 1rem;
}

.fleet-traffic-kpi span,
.fleet-traffic-kpi small,
.fleet-traffic-action-card small,
.fleet-traffic-row span,
.fleet-inbox-thread span,
.fleet-incident-card span,
.fleet-incident-card small {
    display: block;
    color: var(--transport-muted);
}

.fleet-traffic-kpi strong {
    display: block;
    margin: .15rem 0;
    font-size: 2rem;
    line-height: 1;
}

.fleet-traffic-kpi.warning { border-color: rgba(245, 158, 11, .35); }
.fleet-traffic-kpi.danger { border-color: rgba(220, 38, 38, .35); }
.fleet-traffic-kpi.info { border-color: rgba(37, 99, 235, .35); }
.fleet-traffic-kpi.success { border-color: rgba(22, 163, 74, .35); }

.fleet-traffic-action-card {
    display: flex;
    align-items: flex-start;
    gap: .85rem;
    padding: 1rem;
    color: inherit;
    text-decoration: none;
}

.fleet-traffic-action-card i {
    display: inline-grid;
    width: 46px;
    height: 46px;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 15px;
    color: var(--transport-primary);
    background: var(--transport-primary-soft);
    font-size: 1.25rem;
}

.fleet-traffic-list,
.fleet-traffic-inbox,
.fleet-incident-board {
    display: grid;
    gap: .85rem;
    margin-top: 1rem;
}

.fleet-traffic-row,
.fleet-inbox-thread {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: .85rem;
    padding: 1rem;
}

.fleet-traffic-row.current,
.fleet-tracking-column.current,
.fleet-inbox-thread.unread {
    border-color: rgba(37, 99, 235, .35);
    background: var(--transport-primary-soft);
}

.fleet-traffic-row.warning,
.fleet-incident-card.warning {
    border-color: rgba(245, 158, 11, .35);
    background: rgba(245, 158, 11, .08);
}

.fleet-traffic-row.danger,
.fleet-inbox-thread.urgent,
.fleet-incident-card.danger {
    border-color: rgba(220, 38, 38, .35);
    background: rgba(220, 38, 38, .08);
}

.fleet-tracking-board {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1rem;
}

.fleet-tracking-column {
    display: grid;
    align-content: start;
    gap: .75rem;
    padding: 1rem;
    min-height: 260px;
}

.fleet-tracking-column h2 {
    margin: 0;
    font-size: 1rem;
    font-weight: 900;
}

.fleet-tracking-column.success {
    border-color: rgba(22, 163, 74, .35);
    background: rgba(22, 163, 74, .08);
}

.fleet-tracking-card {
    padding: .85rem;
    border: 1px solid var(--transport-border);
    border-radius: 14px;
    background: #fff;
    font-weight: 800;
}

.fleet-inbox-thread i {
    display: inline-grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 14px;
    color: var(--transport-primary);
    background: #fff;
}

.fleet-inbox-thread {
    grid-template-columns: auto minmax(0, 1fr) auto;
}

.fleet-incident-card {
    display: grid;
    gap: .25rem;
    padding: 1rem;
}

@media (max-width: 991.98px) {
    .fleet-traffic-summary-grid,
    .fleet-traffic-action-grid,
    .fleet-tracking-board {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .fleet-office-quick-card {
        align-items: stretch;
        flex-direction: column;
    }

    .fleet-traffic-summary-grid,
    .fleet-traffic-action-grid,
    .fleet-tracking-board,
    .fleet-traffic-row {
        grid-template-columns: 1fr;
    }

    .fleet-traffic-row,
    .fleet-inbox-thread {
        align-items: stretch;
    }

    .fleet-tracking-column {
        min-height: 0;
    }
}
/* Fleet Manager - Iteración 10: fin */

/* Fleet Manager - Iteración 11: administración y RRHH conductor */
.fleet-admin-driver-page {
    padding-bottom: 5rem;
}

.fleet-admin-driver-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1rem;
}

.fleet-admin-driver-card,
.fleet-admin-form-card,
.fleet-admin-summary-card,
.fleet-doc-row {
    border: 1px solid var(--transport-border);
    border-radius: 20px;
    background: #fff;
    box-shadow: var(--transport-shadow-soft);
}

.fleet-admin-driver-card {
    display: flex;
    align-items: flex-start;
    gap: .9rem;
    padding: 1rem;
    color: inherit;
    min-height: 132px;
    text-decoration: none;
}

.fleet-admin-driver-card-main {
    border-color: rgba(37, 99, 235, .35);
    background: var(--transport-primary-soft);
}

.fleet-admin-driver-card i,
.fleet-doc-row i,
.fleet-attachment-callout i {
    display: inline-grid;
    width: 46px;
    height: 46px;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 15px;
    color: var(--transport-primary);
    background: var(--transport-primary-soft);
    font-size: 1.25rem;
}

.fleet-admin-driver-card strong,
.fleet-admin-driver-card small,
.fleet-admin-summary-card span,
.fleet-admin-summary-card small,
.fleet-doc-row span,
.fleet-attachment-callout span {
    display: block;
}

.fleet-admin-driver-card strong {
    font-size: 1.05rem;
    font-weight: 900;
}

.fleet-admin-driver-card small,
.fleet-admin-summary-card span,
.fleet-admin-summary-card small,
.fleet-doc-row span,
.fleet-attachment-callout span {
    color: var(--transport-muted);
}

.fleet-admin-form-card {
    padding: 1rem;
    margin-top: 1rem;
}

.fleet-admin-form-card h2 {
    margin: 0 0 1rem;
    font-size: 1.15rem;
    font-weight: 900;
}

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

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

.fleet-admin-summary-card {
    padding: 1rem;
}

.fleet-admin-summary-card strong {
    display: block;
    margin: .2rem 0;
    font-size: 1.75rem;
    line-height: 1;
}

.fleet-doc-list {
    display: grid;
    gap: .85rem;
    margin-top: 1rem;
}

.fleet-doc-row,
.fleet-attachment-callout {
    display: flex;
    align-items: center;
    gap: .85rem;
    padding: 1rem;
}

.fleet-doc-row > div,
.fleet-attachment-callout > div {
    min-width: 0;
    flex: 1 1 auto;
}

.fleet-attachment-callout {
    border: 1px dashed rgba(37, 99, 235, .35);
    border-radius: 18px;
    background: var(--transport-primary-soft);
}

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

@media (max-width: 767.98px) {
    .fleet-admin-driver-grid,
    .fleet-admin-summary-grid,
    .fleet-form-grid {
        grid-template-columns: 1fr;
    }

    .fleet-admin-driver-card {
        min-height: 0;
    }

    .fleet-doc-row,
    .fleet-attachment-callout {
        align-items: stretch;
        flex-direction: column;
    }
}
/* Fleet Manager - Iteración 11: fin */


/* Fleet Manager - Iteración 12: mapa funcional y pendientes */
.fleet-functional-map-page,
.fleet-pending-page {
    padding-bottom: 5rem;
}

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

.fleet-map-card,
.fleet-pending-card {
    border: 1px solid var(--transport-border);
    border-radius: 22px;
    background: #fff;
    box-shadow: var(--transport-shadow-soft);
    padding: 1rem;
}

.fleet-map-card-primary {
    border-color: rgba(37, 99, 235, .35);
    background: var(--transport-primary-soft);
}

.fleet-map-card-muted,
.fleet-pending-card-warning {
    border-style: dashed;
    background: rgba(248, 250, 252, .9);
}

.fleet-map-card-header,
.fleet-pending-card {
    display: flex;
    gap: .85rem;
    align-items: flex-start;
}

.fleet-map-card-header i,
.fleet-pending-card > i {
    display: inline-grid;
    width: 46px;
    height: 46px;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 15px;
    color: var(--transport-primary);
    background: var(--transport-primary-soft);
    font-size: 1.25rem;
}

.fleet-map-card-header span {
    display: block;
    color: var(--transport-muted);
    font-size: .78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.fleet-map-card h2,
.fleet-pending-card h2 {
    margin: 0;
    font-size: 1.1rem;
    font-weight: 900;
}

.fleet-map-card p,
.fleet-pending-card p,
.fleet-pending-card li {
    color: var(--transport-muted);
}

.fleet-map-links {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: .85rem;
}

.fleet-map-links a {
    border: 1px solid var(--transport-border);
    border-radius: 999px;
    background: #fff;
    padding: .4rem .65rem;
    color: var(--transport-primary);
    font-size: .85rem;
    font-weight: 800;
    text-decoration: none;
}

.fleet-pending-card ul {
    padding-left: 1.05rem;
    margin-bottom: 0;
}

.fleet-office-quick-card-soft {
    border-style: dashed;
}

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

@media (max-width: 767.98px) {
    .fleet-map-grid,
    .fleet-pending-grid {
        grid-template-columns: 1fr;
    }

    .fleet-map-card-header,
    .fleet-pending-card {
        align-items: stretch;
        flex-direction: column;
    }
}
/* Fleet Manager - Iteración 12: fin */

/* Fleet Manager - Iteración 18: permisos y roles */
.fleet-access-summary-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
    padding: 1rem;
    border: 1px solid var(--transport-border);
    border-radius: 24px;
    background: #fff;
    box-shadow: var(--transport-card-shadow);
}

.fleet-access-summary-card h2 {
    margin: 0;
    font-size: 1.35rem;
    font-weight: 900;
}

.fleet-access-summary-card p {
    margin: .25rem 0 0;
    color: var(--transport-muted);
}

.fleet-access-pill-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .5rem;
}

.fleet-access-pill {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: .45rem .7rem;
    font-size: .78rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.fleet-access-pill.enabled {
    background: rgba(25, 135, 84, .12);
    color: #146c43;
}

.fleet-access-pill.disabled {
    background: rgba(108, 117, 125, .12);
    color: #6c757d;
}

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

.fleet-access-card {
    display: flex;
    gap: .85rem;
    padding: 1rem;
    border: 1px solid var(--transport-border);
    border-radius: 22px;
    background: #fff;
    box-shadow: var(--transport-card-shadow);
}

.fleet-access-card.locked {
    opacity: .72;
    border-style: dashed;
}

.fleet-access-icon {
    display: inline-grid;
    width: 48px;
    height: 48px;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 16px;
    background: var(--transport-primary-soft);
    color: var(--transport-primary);
    font-size: 1.25rem;
}

.fleet-access-card h2 {
    margin: 0;
    font-size: 1rem;
    font-weight: 900;
}

.fleet-access-card p {
    margin: .25rem 0 .6rem;
    color: var(--transport-muted);
}

.fleet-access-state {
    display: inline-flex;
    border-radius: 999px;
    padding: .35rem .55rem;
    background: var(--transport-primary-soft);
    color: var(--transport-primary);
    font-size: .78rem;
    font-weight: 800;
}

.fleet-access-card.locked .fleet-access-state {
    background: rgba(108, 117, 125, .12);
    color: #6c757d;
}

@media (max-width: 767.98px) {
    .fleet-access-summary-card {
        align-items: stretch;
        flex-direction: column;
    }

    .fleet-access-pill-list {
        justify-content: flex-start;
    }

    .fleet-access-grid {
        grid-template-columns: 1fr;
    }
}
/* Fleet Manager - Iteración 18: fin */

/* Iteración 19 - Diagnóstico Fleet */
.fleet-diagnostic-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 1rem;
}

.fleet-diagnostic-card {
    background: var(--bs-body-bg);
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 1rem;
    padding: 1rem;
    box-shadow: 0 .5rem 1.5rem rgba(15, 23, 42, .06);
}

.fleet-diagnostic-card h2 {
    font-size: 1rem;
    margin: .25rem 0 .5rem;
    word-break: break-word;
}

.fleet-diagnostic-card p {
    color: var(--bs-secondary-color);
    margin-bottom: .75rem;
}

.fleet-more-link-static {
    cursor: default;
}

.fleet-more-link-static:hover {
    transform: none;
}

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

/* Iteración 20 - Plan de limpieza pendiente */
.fleet-cleanup-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 1rem;
    margin-top: 1rem;
}

.fleet-cleanup-card {
    border: 1px solid rgba(15, 23, 42, .10);
    border-radius: 1.25rem;
    background: #fff;
    padding: 1rem;
    box-shadow: 0 10px 25px rgba(15, 23, 42, .06);
}

.fleet-cleanup-card-header {
    display: flex;
    gap: .85rem;
    align-items: flex-start;
    margin-bottom: .75rem;
}

.fleet-cleanup-card-header > i {
    width: 2.6rem;
    height: 2.6rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: .9rem;
    background: rgba(13, 110, 253, .08);
    font-size: 1.25rem;
}

.fleet-cleanup-card h2 {
    font-size: 1.05rem;
    margin: 0 0 .35rem;
}

.fleet-cleanup-card p {
    color: #475569;
    margin-bottom: .75rem;
}

.fleet-cleanup-recommendation {
    display: grid;
    gap: .2rem;
    padding: .75rem;
    border-radius: .9rem;
    background: rgba(15, 23, 42, .04);
    margin-bottom: .75rem;
}

.fleet-cleanup-card ul {
    padding-left: 1.1rem;
    margin-bottom: 0;
}

.fleet-cleanup-routes {
    margin-top: 1.25rem;
}

.fleet-route-table {
    display: grid;
    gap: .65rem;
}

.fleet-route-row {
    display: grid;
    grid-template-columns: minmax(90px, .8fr) minmax(140px, 1fr) minmax(160px, 1.2fr) minmax(140px, 1fr);
    gap: .75rem;
    align-items: center;
    padding: .8rem 1rem;
    border: 1px solid rgba(15, 23, 42, .09);
    border-radius: 1rem;
    background: #fff;
}

.fleet-route-row code {
    white-space: normal;
}

.fleet-route-row small {
    color: #64748b;
}

@media (max-width: 768px) {
    .fleet-route-row {
        grid-template-columns: 1fr;
        gap: .25rem;
    }
}

/* Iteracion 21 - Centro Fleet */
.fleet-workspace-hero {
    align-items: stretch;
}

.fleet-workspace-profile {
    min-width: 220px;
    border-radius: 18px;
    background: rgba(255, 255, 255, .16);
    border: 1px solid rgba(255, 255, 255, .22);
    padding: 1rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: .2rem;
}

.fleet-workspace-profile span,
.fleet-workspace-profile small {
    color: rgba(255, 255, 255, .78);
}

.fleet-workspace-profile strong {
    color: #fff;
    font-size: 1.15rem;
}

.fleet-workspace-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: .9rem;
}

.fleet-workspace-card {
    min-height: 170px;
    border-radius: 20px;
    padding: 1rem;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, .08);
    box-shadow: 0 16px 36px rgba(15, 23, 42, .08);
    text-decoration: none;
    color: inherit;
    display: flex;
    flex-direction: column;
    gap: .55rem;
}

.fleet-workspace-card > i {
    font-size: 1.6rem;
    color: var(--bs-primary);
}

.fleet-workspace-card strong {
    font-size: 1.1rem;
}

.fleet-workspace-card small {
    color: #64748b;
    line-height: 1.35;
}

.fleet-workspace-secondary .fleet-more-link {
    align-items: center;
}

.fleet-workspace-secondary em {
    margin-left: auto;
    font-style: normal;
    white-space: nowrap;
}

.fleet-integration-note {
    display: flex;
    gap: .8rem;
    border-radius: 18px;
    padding: 1rem;
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1e3a8a;
}

.fleet-integration-note i {
    font-size: 1.35rem;
}

.fleet-integration-note p {
    margin: .25rem 0 0;
    color: #1e40af;
}

@media (max-width: 767.98px) {
    .fleet-workspace-hero {
        gap: .9rem;
    }

    .fleet-workspace-profile {
        width: 100%;
        min-width: 0;
    }

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

    .fleet-workspace-secondary em {
        display: none;
    }
}

/* Iteracion 22 - Mi dia conductor */
.fleet-day-page {
    gap: 1rem;
}

.fleet-day-hero {
    align-items: center;
}

.fleet-day-main-card {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
    border-radius: 22px;
    padding: 1rem;
    background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);
    color: #fff;
    box-shadow: 0 18px 42px rgba(15, 23, 42, .20);
}

.fleet-day-main-card h2 {
    margin: .15rem 0 .25rem;
    font-size: 1.35rem;
}

.fleet-day-main-card p {
    margin: 0;
    color: rgba(255, 255, 255, .78);
}

.fleet-day-actions {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
}

.fleet-day-list {
    display: flex;
    flex-direction: column;
}

.fleet-day-list-item {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: .75rem;
    padding: .95rem 1rem;
    border-bottom: 1px solid rgba(15, 23, 42, .08);
    color: inherit;
    text-decoration: none;
}

.fleet-day-list-item:last-child {
    border-bottom: 0;
}

.fleet-day-list-item:hover {
    background: rgba(37, 99, 235, .04);
}

.fleet-day-list-icon {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #eff6ff;
    color: var(--bs-primary);
    font-size: 1.1rem;
}

.fleet-day-list-item strong,
.fleet-day-list-item small {
    display: block;
}

.fleet-day-list-item small {
    color: #64748b;
    margin-top: .1rem;
}

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

@media (max-width: 575.98px) {
    .fleet-day-main-card {
        flex-direction: column;
    }

    .fleet-day-actions {
        grid-template-columns: 1fr;
    }

    .fleet-day-list-item {
        grid-template-columns: auto 1fr;
    }

    .fleet-day-list-item em {
        grid-column: 2;
        justify-self: flex-start;
    }
}

/* Iteracion 24 - Trafico operativo con atencion prioritaria */
.fleet-traffic-priority-strip {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    margin: 1rem 0 .75rem;
}

.fleet-traffic-priority-strip h2 {
    margin: .1rem 0 0;
    font-size: 1.15rem;
}

.fleet-traffic-attention-list {
    display: grid;
    gap: .75rem;
    margin-bottom: 1rem;
}

.fleet-traffic-attention-list.expanded {
    gap: 1rem;
}

.fleet-traffic-attention-card {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .75rem;
    align-items: flex-start;
    padding: .95rem 1rem;
    border-radius: 18px;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, .08);
    color: inherit;
    text-decoration: none;
    box-shadow: 0 12px 30px rgba(15, 23, 42, .08);
}

.fleet-traffic-attention-card i {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #eff6ff;
    color: var(--bs-primary);
    font-size: 1.1rem;
}

.fleet-traffic-attention-card span,
.fleet-traffic-attention-card small,
.fleet-traffic-attention-card strong,
.fleet-traffic-attention-card em,
.fleet-traffic-attention-card b {
    display: block;
}

.fleet-traffic-attention-card small {
    font-size: .75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #64748b;
}

.fleet-traffic-attention-card strong {
    margin-top: .1rem;
}

.fleet-traffic-attention-card em,
.fleet-traffic-attention-card b {
    font-style: normal;
    font-weight: 500;
    color: #64748b;
    margin-top: .1rem;
}

.fleet-traffic-attention-card.danger i {
    background: #fef2f2;
    color: #dc2626;
}

.fleet-traffic-attention-card.warning i {
    background: #fffbeb;
    color: #d97706;
}

.fleet-traffic-attention-card.info i {
    background: #eff6ff;
    color: #2563eb;
}

.fleet-traffic-row > div small {
    display: block;
    margin-top: .15rem;
    color: #64748b;
}

@media (max-width: 575.98px) {
    .fleet-traffic-priority-strip {
        align-items: flex-start;
        flex-direction: column;
    }

    .fleet-traffic-attention-card {
        padding: .85rem;
    }
}

/* Iteracion 25 - Mensajes operativos trafico/conductor */
.fleet-message-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin: 1rem 0;
}

.fleet-traffic-inbox.enhanced {
    display: grid;
    gap: .75rem;
}

.fleet-traffic-inbox.enhanced .fleet-inbox-thread {
    grid-template-columns: auto 1fr auto auto;
    align-items: center;
}

.fleet-inbox-meta {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .15rem;
    min-width: 96px;
}

.fleet-inbox-meta em,
.fleet-inbox-meta span {
    font-style: normal;
    font-size: .76rem;
    color: #64748b;
}

.fleet-inbox-meta span {
    display: inline-flex;
    gap: .25rem;
    align-items: center;
}

.fleet-conversation-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
    margin: 1rem 0;
}

.fleet-conversation-summary article {
    border-radius: 18px;
    padding: .9rem 1rem;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, .08);
    box-shadow: 0 10px 24px rgba(15, 23, 42, .06);
}

.fleet-conversation-summary small,
.fleet-conversation-summary strong {
    display: block;
}

.fleet-conversation-summary small {
    color: #64748b;
    font-size: .75rem;
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: .04em;
}

.fleet-traffic-chat-window {
    display: flex;
    flex-direction: column;
    gap: .65rem;
    padding: .85rem;
    border-radius: 22px;
    background: #f8fafc;
    border: 1px solid rgba(15, 23, 42, .08);
}

.fleet-traffic-chat-bubble {
    max-width: 82%;
    padding: .85rem .95rem;
    border-radius: 18px;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, .08);
}

.fleet-traffic-chat-bubble.traffic {
    align-self: flex-end;
    background: #eff6ff;
    border-color: rgba(37, 99, 235, .18);
}

.fleet-traffic-chat-bubble.driver {
    align-self: flex-start;
}

.fleet-traffic-chat-bubble small {
    display: block;
    color: #64748b;
    font-size: .75rem;
    margin-bottom: .25rem;
}

.fleet-traffic-chat-bubble p {
    margin: 0;
}

.fleet-attachment-chip {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    margin-top: .45rem;
    padding: .25rem .55rem;
    border-radius: 999px;
    background: #f1f5f9;
    color: #334155;
    font-size: .78rem;
}

.fleet-quick-replies,
.fleet-traffic-reply-box {
    margin-top: 1rem;
    padding: 1rem;
    border-radius: 20px;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, .08);
    box-shadow: 0 12px 30px rgba(15, 23, 42, .06);
}

.fleet-quick-replies h2 {
    font-size: 1rem;
    margin-bottom: .75rem;
}

.fleet-quick-replies > div {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.fleet-reply-options {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin: .75rem 0;
    color: #475569;
    font-size: .9rem;
}

.fleet-reply-options label {
    display: inline-flex;
    gap: .35rem;
    align-items: center;
}

@media (max-width: 575.98px) {
    .fleet-traffic-inbox.enhanced .fleet-inbox-thread {
        grid-template-columns: auto 1fr;
    }

    .fleet-traffic-inbox.enhanced .fleet-inbox-thread > a,
    .fleet-inbox-meta {
        grid-column: 2;
        justify-self: flex-start;
        align-items: flex-start;
    }

    .fleet-conversation-summary {
        grid-template-columns: 1fr;
    }

    .fleet-traffic-chat-bubble {
        max-width: 96%;
    }
}

/* Iteracion 26 - Gestion operativa de incidencias desde trafico */
.fleet-incident-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .85rem;
    margin: 1rem 0;
}

.fleet-incident-summary-card {
    padding: 1rem;
    border-radius: 20px;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, .08);
    box-shadow: 0 12px 30px rgba(15, 23, 42, .06);
}

.fleet-incident-summary-card span,
.fleet-incident-summary-card small {
    display: block;
    color: #64748b;
}

.fleet-incident-summary-card strong {
    display: block;
    font-size: 1.8rem;
    line-height: 1.1;
    margin: .15rem 0;
}

.fleet-incident-summary-card.danger { border-color: rgba(220, 38, 38, .3); }
.fleet-incident-summary-card.warning { border-color: rgba(245, 158, 11, .35); }
.fleet-incident-summary-card.info { border-color: rgba(37, 99, 235, .28); }
.fleet-incident-summary-card.success { border-color: rgba(22, 163, 74, .28); }

.fleet-incident-filter-note {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.fleet-incident-board.enhanced .fleet-incident-card {
    display: grid;
    gap: .85rem;
    padding: 1rem;
}

.fleet-incident-main,
.fleet-incident-actions-row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
}

.fleet-incident-code {
    display: block;
    margin-bottom: .15rem;
    color: #64748b;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .02em;
    text-transform: uppercase;
}

.fleet-incident-tags {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .35rem;
    min-width: 150px;
}

.fleet-incident-tags span,
.fleet-incident-actions-row > span {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    border-radius: 999px;
    padding: .25rem .55rem;
    background: #f1f5f9;
    color: #334155;
    font-size: .78rem;
    font-weight: 700;
}

.fleet-incident-actions-row {
    align-items: center;
    border-top: 1px solid rgba(15, 23, 42, .08);
    padding-top: .75rem;
}

.fleet-incident-actions-row > div {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.fleet-incident-detail-grid,
.fleet-incident-actions-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin: 1rem 0;
}

.fleet-incident-detail-card.danger { border-color: rgba(220, 38, 38, .3); }
.fleet-incident-detail-card.warning { border-color: rgba(245, 158, 11, .35); }
.fleet-incident-detail-card.info { border-color: rgba(37, 99, 235, .28); }

.fleet-incident-timeline {
    display: grid;
    gap: .7rem;
    margin-top: 1rem;
}

.fleet-incident-timeline-item {
    display: grid;
    grid-template-columns: 64px 1fr;
    gap: .75rem;
    padding: .9rem 1rem;
    border-radius: 18px;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, .08);
}

.fleet-incident-timeline-item > span {
    font-weight: 900;
    color: #0f172a;
}

.fleet-incident-timeline-item strong,
.fleet-incident-timeline-item p {
    display: block;
    margin: 0;
}

.fleet-incident-timeline-item p {
    color: #64748b;
}

.fleet-incident-timeline-item.danger { border-color: rgba(220, 38, 38, .24); }
.fleet-incident-timeline-item.warning { border-color: rgba(245, 158, 11, .32); }
.fleet-incident-timeline-item.info { border-color: rgba(37, 99, 235, .24); }

@media (max-width: 767.98px) {
    .fleet-incident-summary-grid,
    .fleet-incident-detail-grid,
    .fleet-incident-actions-grid {
        grid-template-columns: 1fr;
    }

    .fleet-incident-filter-note,
    .fleet-incident-main,
    .fleet-incident-actions-row {
        align-items: stretch;
        flex-direction: column;
    }

    .fleet-incident-tags,
    .fleet-incident-actions-row > div {
        justify-content: flex-start;
    }
}

/* Iteracion 27 - Monitor de seguimiento de trafico */
.fleet-monitor-page .fleet-monitor-kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin: 1rem 0;
}

.fleet-monitor-kpi {
    background: var(--bs-body-bg, #fff);
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 1rem;
    padding: 1rem;
    box-shadow: 0 .5rem 1.5rem rgba(15, 23, 42, .06);
}

.fleet-monitor-kpi span,
.fleet-monitor-kpi small {
    display: block;
    color: #64748b;
}

.fleet-monitor-kpi strong {
    display: block;
    font-size: 1.8rem;
    line-height: 1.1;
    margin: .25rem 0;
}

.fleet-monitor-kpi.warning { border-left: .35rem solid #f59e0b; }
.fleet-monitor-kpi.danger { border-left: .35rem solid #ef4444; }
.fleet-monitor-kpi.success { border-left: .35rem solid #22c55e; }
.fleet-monitor-kpi.info { border-left: .35rem solid #0ea5e9; }

.fleet-monitor-alerts {
    display: grid;
    gap: .75rem;
    margin-bottom: 1rem;
}

.fleet-monitor-alert {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    background: #fff7ed;
    border: 1px solid rgba(245, 158, 11, .24);
    border-radius: 1rem;
    padding: 1rem;
}

.fleet-monitor-alert.danger {
    background: #fef2f2;
    border-color: rgba(239, 68, 68, .24);
}

.fleet-monitor-alert p {
    margin: .25rem 0 0;
    color: #64748b;
}

.fleet-tracking-board.enhanced {
    align-items: start;
}

.fleet-tracking-column-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .75rem;
    margin-bottom: .75rem;
}

.fleet-tracking-column-header span {
    min-width: 2rem;
    text-align: center;
    border-radius: 999px;
    background: rgba(15, 23, 42, .08);
    font-weight: 700;
}

.fleet-tracking-card.detailed {
    display: block;
    border-left: .35rem solid rgba(15, 23, 42, .12);
}

.fleet-tracking-card.detailed.warning { border-left-color: #f59e0b; }
.fleet-tracking-card.detailed.danger { border-left-color: #ef4444; }
.fleet-tracking-card.detailed.success { border-left-color: #22c55e; }
.fleet-tracking-card.detailed.current { border-left-color: #0ea5e9; }

.fleet-tracking-card-top,
.fleet-tracking-card-meta,
.fleet-monitor-actions {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    align-items: center;
}

.fleet-tracking-card h3 {
    font-size: 1rem;
    margin: .45rem 0 .2rem;
}

.fleet-tracking-card p {
    margin: 0;
    color: #64748b;
}

.fleet-tracking-card-next {
    margin-top: .75rem;
    padding: .65rem;
    border-radius: .75rem;
    background: rgba(15, 23, 42, .04);
    font-size: .9rem;
}

.fleet-monitor-badges {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-top: .75rem;
}

.fleet-monitor-badges span {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    border-radius: 999px;
    background: rgba(14, 165, 233, .1);
    color: #0369a1;
    padding: .25rem .55rem;
    font-size: .8rem;
    font-weight: 700;
}

.fleet-monitor-badges span.danger {
    background: rgba(239, 68, 68, .1);
    color: #b91c1c;
}

.fleet-monitor-actions {
    margin-top: .75rem;
}

.fleet-monitor-actions a {
    flex: 1;
    text-align: center;
    text-decoration: none;
    border: 1px solid rgba(15, 23, 42, .1);
    border-radius: .75rem;
    padding: .5rem;
    font-weight: 700;
}

.fleet-monitor-detail-card {
    background: var(--bs-body-bg, #fff);
    border: 1px solid rgba(15, 23, 42, .08);
    border-left: .35rem solid #0ea5e9;
    border-radius: 1rem;
    padding: 1rem;
    box-shadow: 0 .5rem 1.5rem rgba(15, 23, 42, .06);
}

.fleet-monitor-detail-card.danger { border-left-color: #ef4444; }
.fleet-monitor-detail-card.warning { border-left-color: #f59e0b; }
.fleet-monitor-detail-card.success { border-left-color: #22c55e; }

.fleet-status-pill {
    display: inline-flex;
    border-radius: 999px;
    padding: .25rem .6rem;
    background: rgba(15, 23, 42, .08);
    font-weight: 700;
    font-size: .8rem;
}

.fleet-monitor-detail-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
    margin-top: 1rem;
}

.fleet-monitor-detail-grid div {
    background: rgba(15, 23, 42, .04);
    border-radius: .85rem;
    padding: .75rem;
}

.fleet-monitor-detail-grid span,
.fleet-monitor-detail-grid strong {
    display: block;
}

.fleet-monitor-detail-grid span {
    color: #64748b;
    font-size: .8rem;
}

.fleet-monitor-action-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
    margin: 1rem 0;
}

.fleet-monitor-action-card {
    display: flex;
    gap: .5rem;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-height: 4rem;
    border-radius: 1rem;
    text-decoration: none;
    color: inherit;
    background: var(--bs-body-bg, #fff);
    border: 1px solid rgba(15, 23, 42, .08);
    font-weight: 700;
}

.fleet-monitor-timeline {
    display: grid;
    gap: .75rem;
}

.fleet-monitor-timeline-item {
    display: grid;
    grid-template-columns: 4.5rem 1fr;
    gap: .75rem;
    padding: .85rem;
    border-radius: 1rem;
    background: var(--bs-body-bg, #fff);
    border: 1px solid rgba(15, 23, 42, .08);
}

.fleet-monitor-timeline-item > span {
    font-weight: 800;
}

.fleet-monitor-timeline-item p {
    margin: .2rem 0 0;
    color: #64748b;
}

@media (max-width: 991.98px) {
    .fleet-monitor-page .fleet-monitor-kpis,
    .fleet-monitor-detail-grid,
    .fleet-monitor-action-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .fleet-monitor-page .fleet-monitor-kpis,
    .fleet-monitor-detail-grid,
    .fleet-monitor-action-grid {
        grid-template-columns: 1fr;
    }

    .fleet-monitor-alert {
        align-items: stretch;
        flex-direction: column;
    }

    .fleet-tracking-card-top,
    .fleet-tracking-card-meta,
    .fleet-monitor-actions {
        align-items: stretch;
        flex-direction: column;
    }
}

/* Iteracion 28 - Viajes de conductores desde trafico */
.fleet-trips-page .fleet-trip-filter-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
    margin: 1rem 0;
}

.fleet-trip-filter-card {
    border-radius: 18px;
    padding: .9rem 1rem;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, .08);
    box-shadow: 0 10px 24px rgba(15, 23, 42, .06);
}

.fleet-trip-filter-card span,
.fleet-trip-filter-card strong {
    display: block;
}

.fleet-trip-filter-card span {
    color: #64748b;
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.fleet-trip-filter-card strong {
    font-size: 1.5rem;
    margin-top: .1rem;
}

.fleet-trip-filter-card.warning {
    border-color: rgba(217, 119, 6, .24);
    background: #fffbeb;
}

.fleet-trip-filter-card.danger {
    border-color: rgba(220, 38, 38, .22);
    background: #fef2f2;
}

.fleet-trip-filter-card.success {
    border-color: rgba(22, 163, 74, .22);
    background: #f0fdf4;
}

.fleet-trip-filter-card.info {
    border-color: rgba(37, 99, 235, .18);
    background: #eff6ff;
}

.fleet-trip-operations-note {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    margin-bottom: 1rem;
}

.fleet-trip-operations-note h2 {
    font-size: 1.15rem;
    margin: .1rem 0 .25rem;
}

.fleet-trip-operations-note p {
    margin: 0;
}

.fleet-trip-board {
    display: grid;
    gap: .9rem;
}

.fleet-trip-card {
    border-radius: 22px;
    padding: 1rem;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, .08);
    box-shadow: 0 14px 32px rgba(15, 23, 42, .08);
}

.fleet-trip-card.warning {
    border-color: rgba(217, 119, 6, .24);
}

.fleet-trip-card.danger {
    border-color: rgba(220, 38, 38, .22);
}

.fleet-trip-card.success {
    border-color: rgba(22, 163, 74, .22);
}

.fleet-trip-card-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
}

.fleet-trip-code {
    display: inline-flex;
    padding: .2rem .55rem;
    border-radius: 999px;
    background: #f1f5f9;
    color: #334155;
    font-size: .76rem;
    font-weight: 700;
}

.fleet-trip-card h2 {
    font-size: 1.15rem;
    margin: .45rem 0 .15rem;
}

.fleet-trip-card p {
    margin: 0;
    color: #64748b;
}

.fleet-trip-card-grid,
.fleet-trip-detail-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    margin-top: .85rem;
}

.fleet-trip-card-grid div,
.fleet-trip-detail-grid div {
    border-radius: 16px;
    padding: .8rem;
    background: #f8fafc;
}

.fleet-trip-card-grid span,
.fleet-trip-card-grid strong,
.fleet-trip-card-grid small,
.fleet-trip-detail-grid span,
.fleet-trip-detail-grid strong {
    display: block;
}

.fleet-trip-card-grid span,
.fleet-trip-detail-grid span {
    color: #64748b;
    font-size: .74rem;
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: .04em;
}

.fleet-trip-card-grid small {
    color: #64748b;
    margin-top: .15rem;
}

.fleet-trip-flags,
.fleet-trip-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: .85rem;
}

.fleet-trip-flags span {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .3rem .65rem;
    border-radius: 999px;
    background: #f8fafc;
    border: 1px solid rgba(15, 23, 42, .08);
    color: #475569;
    font-size: .78rem;
    font-weight: 600;
}

.fleet-trip-detail-main {
    border-radius: 22px;
    padding: 1rem;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, .08);
    box-shadow: 0 14px 32px rgba(15, 23, 42, .08);
}

.fleet-trip-detail-main h2 {
    font-size: 1.2rem;
    margin: .5rem 0 .25rem;
}

.fleet-trip-detail-main p {
    margin: 0;
    color: #64748b;
}

.fleet-trip-detail-main.warning,
.fleet-trip-detail-block.warning {
    border-color: rgba(217, 119, 6, .24);
}

.fleet-trip-detail-main.danger,
.fleet-trip-detail-block.danger {
    border-color: rgba(220, 38, 38, .22);
}

.fleet-trip-detail-main.success,
.fleet-trip-detail-block.success {
    border-color: rgba(22, 163, 74, .22);
}

.fleet-trip-detail-blocks {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    margin: 1rem 0;
}

.fleet-trip-detail-block {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .7rem;
    border-radius: 18px;
    padding: .9rem;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, .08);
}

.fleet-trip-detail-block i {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: #eff6ff;
    color: var(--bs-primary);
}

.fleet-trip-detail-block p {
    margin: .15rem 0 0;
    color: #64748b;
}

.fleet-trip-followup-form {
    margin: 1rem 0;
}

.fleet-trip-followup-form form {
    margin-top: .8rem;
}

@media (max-width: 767.98px) {
    .fleet-trips-page .fleet-trip-filter-grid,
    .fleet-trip-detail-blocks {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fleet-trip-operations-note,
    .fleet-trip-card-header {
        align-items: stretch;
        flex-direction: column;
    }
}

@media (max-width: 575.98px) {
    .fleet-trips-page .fleet-trip-filter-grid,
    .fleet-trip-card-grid,
    .fleet-trip-detail-grid,
    .fleet-trip-detail-blocks {
        grid-template-columns: 1fr;
    }

    .fleet-trip-card,
    .fleet-trip-detail-main {
        padding: .9rem;
    }
}

/* Iteracion 29 - Notificaciones MQTT base */
.fleet-realtime-badge {
    position: absolute;
    min-width: 1.1rem;
    height: 1.1rem;
    padding: 0 .25rem;
    border-radius: 999px;
    background: #dc2626;
    color: #fff;
    font-size: .65rem;
    line-height: 1.1rem;
    font-weight: 700;
    transform: translate(.2rem, -.45rem);
}

.fleet-realtime-page .transport-card {
    border-radius: 22px;
}

.fleet-realtime-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: center;
    padding: 1.1rem;
    border-radius: 24px;
    background: linear-gradient(135deg, #eff6ff, #ffffff);
    border: 1px solid rgba(37, 99, 235, .14);
    box-shadow: 0 14px 36px rgba(15, 23, 42, .08);
}

.fleet-realtime-hero h2 {
    margin: 0 0 .25rem;
    font-size: 1.35rem;
}

.fleet-realtime-counters {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .65rem;
}

.fleet-realtime-counters div {
    min-width: 86px;
    padding: .75rem;
    border-radius: 18px;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, .08);
    text-align: center;
}

.fleet-realtime-counters strong {
    display: block;
    font-size: 1.35rem;
}

.fleet-realtime-counters span {
    display: block;
    color: #64748b;
    font-size: .78rem;
}

.fleet-realtime-channel-list,
.fleet-realtime-event-list {
    display: grid;
    gap: .75rem;
}

.fleet-realtime-channel {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .75rem;
    padding: .9rem;
    border-radius: 18px;
    border: 1px solid rgba(15, 23, 42, .08);
    background: #fff;
}

.fleet-realtime-channel > i {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 16px;
    background: #eff6ff;
    color: var(--bs-primary);
}

.fleet-realtime-channel h3 {
    margin: 0;
    font-size: .98rem;
}

.fleet-realtime-channel code {
    display: inline-block;
    margin: .35rem 0;
    font-size: .8rem;
    color: #334155;
    white-space: normal;
    word-break: break-word;
}

.fleet-realtime-channel p,
.fleet-realtime-event p,
.fleet-realtime-note p {
    margin: 0;
    color: #64748b;
}

.fleet-realtime-event {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .75rem;
    padding: .85rem;
    border-radius: 18px;
    background: #f8fafc;
    border: 1px solid rgba(15, 23, 42, .08);
}

.fleet-realtime-event small {
    color: #94a3b8;
}

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

    .fleet-realtime-counters {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .fleet-realtime-counters {
        grid-template-columns: 1fr;
    }
}


/* GTM Fleet Platform Foundation 030 */
.fleet-demo-banner {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1rem;
    padding: .45rem 1rem;
    background: #fff3cd;
    color: #664d03;
    border-bottom: 1px solid #ffecb5;
    font-size: .875rem;
}
.fleet-demo-banner a { color: inherit; font-weight: 700; }
.fleet-diagnostics-page code { font-size: .8rem; }
@media (max-width: 576px) {
    .fleet-demo-banner { justify-content: space-between; font-size: .75rem; }
}


/* GTM Fleet Demo Control Room 034 */
.demo-control-shell{display:grid;gap:1rem;max-width:1180px;margin:0 auto;padding:1rem}.demo-control-hero{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1.4rem;border-radius:1.25rem;background:linear-gradient(135deg,#102a43,#1f5f8b);color:#fff}.demo-control-hero h1{margin:.2rem 0}.demo-control-kicker{font-size:.74rem;letter-spacing:.14em;font-weight:800;opacity:.8}.demo-control-actions{display:flex;gap:.6rem;flex-wrap:wrap}.demo-control-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.demo-control-status{padding:1rem;border:1px solid #d8e2ea;border-radius:1rem;background:#fff;display:grid;gap:.3rem}.demo-control-status span{font-weight:800}.demo-control-status.is-ok{border-color:#83d0a6;background:#f0fff6}.demo-control-status.is-warning{border-color:#e4bb67;background:#fff9e8}.demo-control-progress{padding:1rem;border-radius:1rem;background:#fff;border:1px solid #d8e2ea}.demo-control-progress>div:first-child{display:flex;justify-content:space-between;gap:1rem}.demo-control-progress-track{height:.55rem;background:#e7edf2;border-radius:999px;overflow:hidden;margin-top:.75rem}.demo-control-progress-track span{display:block;height:100%;width:0;background:#198754;transition:width .2s ease}.demo-control-steps{display:grid;gap:.7rem;list-style:none;padding:0;margin:0}.demo-control-step{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem;border:1px solid #d8e2ea;border-radius:1rem;background:#fff}.demo-control-step label{display:flex;align-items:center;gap:.8rem;flex:1;cursor:pointer}.demo-control-step-number{display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:.75rem;background:#e8f1f8;color:#174d73;font-weight:800}.demo-control-step-copy{display:grid;gap:.15rem}.demo-control-step-copy small{color:#607383}.demo-control-step.is-complete{border-color:#83d0a6;background:#f0fff6}.demo-control-step.is-complete .demo-control-step-copy strong{text-decoration:line-through}.demo-control-footer{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem;border-radius:1rem;background:#f3f6f8}.demo-control-footer>div{display:grid;gap:.2rem}.demo-control-footer code{font-size:.78rem}@media(max-width:850px){.demo-control-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.demo-control-hero,.demo-control-footer{align-items:flex-start;flex-direction:column}}@media(max-width:560px){.demo-control-status-grid{grid-template-columns:1fr}.demo-control-step{align-items:stretch;flex-direction:column}.demo-control-step .btn{width:100%}}
/* GTM Fleet Functional Audit 035 */
.demo-audit-shell{max-width:1180px;margin:0 auto;padding:1.25rem}.demo-audit-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem}.demo-audit-kicker{font-size:.75rem;font-weight:800;letter-spacing:.14em;opacity:.65}.demo-audit-header h1{margin:.2rem 0}.demo-audit-header p{margin:0;opacity:.75}.demo-audit-overall{min-width:210px;padding:1rem 1.2rem;border-radius:16px;background:#eef3f4}.demo-audit-overall small,.demo-audit-overall strong{display:block}.demo-audit-overall strong{margin-top:.25rem}.demo-audit-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin-bottom:1rem}.demo-audit-summary article{padding:1rem;border:1px solid rgba(0,0,0,.08);border-radius:14px;background:#fff}.demo-audit-summary span,.demo-audit-summary small,.demo-audit-summary strong{display:block}.demo-audit-summary strong{font-size:1.45rem;margin:.2rem 0}.demo-audit-summary small{overflow-wrap:anywhere;opacity:.65}.demo-audit-warning{padding:1rem;border-radius:12px;background:#fff3cd;margin-bottom:1rem}.demo-audit-list{display:grid;gap:.8rem}.demo-audit-step{display:flex;gap:1rem;padding:1rem;border:1px solid rgba(0,0,0,.08);border-radius:16px;background:#fff}.demo-audit-number{display:grid;place-items:center;flex:0 0 42px;height:42px;border-radius:50%;background:#e8eff0;font-weight:800}.demo-audit-content{min-width:0;flex:1}.demo-audit-title-row{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.demo-audit-title-row h2{font-size:1.05rem;margin:.1rem 0}.demo-audit-title-row small{opacity:.6;font-weight:800}.demo-audit-status{white-space:nowrap;border-radius:999px;padding:.35rem .65rem;font-size:.72rem;font-weight:800;background:#edf1f2}.demo-audit-step--readytotest .demo-audit-status{background:#d1e7dd}.demo-audit-step--requiresdemodata .demo-audit-status{background:#fff3cd}.demo-audit-step--blocked .demo-audit-status,.demo-audit-step--notimplemented .demo-audit-status{background:#f8d7da}.demo-audit-step p{margin:.45rem 0}.demo-audit-step dl{display:flex;flex-wrap:wrap;gap:.5rem 1.3rem;margin:.7rem 0}.demo-audit-step dl div{display:flex;gap:.35rem}.demo-audit-step dt{font-weight:700}.demo-audit-step dd{margin:0}.demo-audit-recommendation{font-size:.9rem;opacity:.75}.demo-audit-open{display:inline-block;margin-top:.35rem;padding:.5rem .75rem;border-radius:9px;text-decoration:none;background:#173b3f;color:#fff}.demo-audit-footer{padding:1rem 0;text-align:right;font-size:.85rem;opacity:.65}@media(max-width:850px){.demo-audit-header{display:block}.demo-audit-overall{margin-top:1rem}.demo-audit-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.demo-audit-summary{grid-template-columns:1fr}.demo-audit-title-row{display:block}.demo-audit-status{display:inline-block;margin-top:.4rem}.demo-audit-step{padding:.8rem}.demo-audit-number{flex-basis:34px;height:34px}}


/* GTM Fleet 036 - Demo scenario */
.demo-scenario-shell{max-width:1380px;margin:0 auto;padding:24px}.demo-scenario-hero{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:28px;border-radius:24px;background:linear-gradient(135deg,#13242a,#24555e);color:#fff;box-shadow:0 18px 45px rgba(16,35,40,.2)}.demo-scenario-kicker{display:block;font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;opacity:.72}.demo-scenario-hero h1{margin:.35rem 0 .3rem;font-size:clamp(1.8rem,4vw,3rem)}.demo-scenario-hero p{margin:0;opacity:.82}.demo-scenario-status{min-width:230px;padding:18px 20px;border-radius:18px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08)}.demo-scenario-status strong,.demo-scenario-status span{display:block}.demo-scenario-status span{margin-top:5px;opacity:.78}.demo-scenario-status.is-ready{box-shadow:inset 5px 0 #61d7a8}.demo-scenario-status.is-pending{box-shadow:inset 5px 0 #ffbf5b}.demo-scenario-meta{display:flex;gap:18px;flex-wrap:wrap;align-items:center;padding:16px 4px}.demo-scenario-meta a{margin-left:auto}.demo-scenario-warning{display:flex;gap:8px;flex-wrap:wrap;padding:15px 18px;border-radius:14px;background:#fff3d7;border:1px solid #f1c56e;color:#6c4a08}.demo-scenario-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-top:18px}.demo-scenario-card{padding:18px;border:1px solid #dce5e7;border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(20,45,50,.06)}.demo-scenario-card.is-ready{border-left:5px solid #38aa7b}.demo-scenario-card.is-missing{border-left:5px solid #dc685d}.demo-scenario-card.is-optional{border-left:5px solid #9aa9ad}.demo-scenario-card-head{display:flex;justify-content:space-between;gap:12px}.demo-scenario-card h2{margin:0;font-size:1rem}.demo-scenario-card-head span{font-size:.7rem;font-weight:900;letter-spacing:.08em}.demo-scenario-value{margin:18px 0 8px;font-size:1.2rem;font-weight:800;overflow-wrap:anywhere}.demo-scenario-card small{color:#68787d}.demo-scenario-links{margin-top:24px;padding:24px;border-radius:22px;background:#eef4f4}.demo-scenario-links h2{margin:.25rem 0 1rem}.demo-scenario-link-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.demo-scenario-link{display:block;padding:16px;border-radius:15px;background:#fff;text-decoration:none;color:inherit;border:1px solid #d7e2e4;transition:transform .15s ease,box-shadow .15s ease}.demo-scenario-link:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(20,45,50,.1)}.demo-scenario-link strong,.demo-scenario-link span{display:block}.demo-scenario-link span{margin-top:5px;font-size:.84rem;color:#67777b}.demo-scenario-notes{margin-top:18px;padding:16px 4px;color:#56666a}@media(max-width:960px){.demo-scenario-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.demo-scenario-link-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.demo-scenario-shell{padding:14px}.demo-scenario-hero{align-items:stretch;flex-direction:column;padding:21px}.demo-scenario-status{min-width:0}.demo-scenario-grid,.demo-scenario-link-grid{grid-template-columns:1fr}.demo-scenario-meta a{margin-left:0}}


/* GTM Fleet Demo Safety 037 */
.demo-safety-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-top:1.25rem}.demo-safety-grid .transport-card{display:flex;flex-direction:column;gap:.35rem}.demo-safety-grid strong{font-size:1.1rem}.demo-safety-list{display:flex;flex-direction:column;gap:.55rem;margin:0;padding-left:1.1rem}.demo-safety-list code{font-size:.92rem}@media(max-width:900px){.demo-safety-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.demo-safety-grid{grid-template-columns:1fr}}

