:root {
    --app-bg: #f4f7fb;
    --surface: #ffffff;
    --surface-soft: #f8fafc;
    --text: #182033;
    --text-soft: #667085;
    --heading: #101828;
    --border: #e4e7ec;
    --border-strong: #d0d5dd;
    --primary: #155eef;
    --primary-dark: #0b4ed0;
    --primary-soft: #eef4ff;
    --primary-rgb: 21, 94, 239;
    --sidebar: #0b4ed0;
    --sidebar-dark: #061020;
    --sidebar-soft: #12234f;
    --sidebar-text: #dce5f7;
    --sidebar-muted: #8190b0;
    --success: #039855;
    --success-soft: #ecfdf3;
    --warning: #dc6803;
    --warning-soft: #fffaeb;
    --danger: #d92d20;
    --danger-soft: #fef3f2;
    --purple: #6938ef;
    --purple-soft: #f4f3ff;
    --shadow-sm: 0 1px 2px rgba(16, 24, 40, 0.04), 0 1px 3px rgba(16, 24, 40, 0.08);
    --shadow-md: 0 8px 24px rgba(16, 24, 40, 0.08);
    --sidebar-width: 272px;
    --topbar-height: 76px;
}

* {
    box-sizing: border-box;
}

html {
    min-height: 100%;
}

body {
    min-height: 100vh;
    margin: 0;
    background: var(--app-bg);
    color: var(--text);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    -webkit-font-smoothing: antialiased;
}

body.sidebar-open {
    overflow: hidden;
}

a {
    color: var(--primary);
}

.app-shell {
    min-height: 100vh;
}

/* Sidebar */
.sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 1040;
    display: flex;
    width: var(--sidebar-width);
    min-height: 100vh;
    flex-direction: column;
    overflow-y: auto;
    background:
        radial-gradient(circle at 25% 0%, rgba(var(--primary-rgb), 0.42), transparent 32%),
        linear-gradient(180deg, var(--sidebar) 0%, var(--sidebar-dark) 100%);
    color: var(--sidebar-text);
    box-shadow: 10px 0 30px rgba(3, 10, 30, 0.08);
}

.sidebar-brand {
    display: flex;
    min-height: 88px;
    align-items: center;
    justify-content: space-between;
    padding: 18px 20px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.brand-link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: #ffffff;
    text-decoration: none;
}

.brand-link:hover {
    color: #ffffff;
}

.brand-mark {
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 14px;
    background: linear-gradient(145deg, var(--primary), var(--primary-dark));
    box-shadow: 0 8px 18px rgba(var(--primary-rgb), 0.34);
    font-size: 1.25rem;
}

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

.brand-copy strong {
    font-size: 1.16rem;
    font-weight: 750;
    letter-spacing: 0.01em;
}

.brand-copy small {
    margin-top: 5px;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.sidebar-close {
    display: none;
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.08);
    color: #ffffff;
}

.sidebar-tenant {
    display: flex;
    align-items: center;
    gap: 11px;
    margin: 16px 16px 8px;
    padding: 12px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 13px;
    background: rgba(255, 255, 255, 0.045);
}

.tenant-icon {
    display: grid;
    width: 34px;
    height: 34px;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 10px;
    background: rgba(var(--primary-rgb), 0.36);
    color: #ffffff;
}

.tenant-copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.tenant-copy small {
    color: var(--sidebar-muted);
    font-size: 0.69rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.tenant-copy strong {
    overflow: hidden;
    margin-top: 2px;
    color: #ffffff;
    font-size: 0.86rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sidebar-nav {
    flex: 1;
    padding: 5px 14px 20px;
}

.nav-section {
    margin-top: 19px;
}

.nav-section-title {
    display: block;
    padding: 0 12px 8px;
    color: var(--sidebar-muted);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.sidebar .nav-link {
    position: relative;
    display: flex;
    min-height: 44px;
    align-items: center;
    gap: 12px;
    margin: 3px 0;
    padding: 10px 12px;
    border-radius: 11px;
    color: #b8c5df;
    font-size: 0.92rem;
    font-weight: 550;
    text-decoration: none;
    transition: background-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.sidebar .nav-link i {
    width: 21px;
    flex: 0 0 21px;
    font-size: 1.06rem;
    text-align: center;
}

.sidebar .nav-link:hover {
    transform: translateX(2px);
    background: rgba(255, 255, 255, 0.065);
    color: #ffffff;
}

.sidebar .nav-link.active {
    background: linear-gradient(90deg, rgba(var(--primary-rgb), 0.48), rgba(var(--primary-rgb), 0.20));
    color: #ffffff;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.14);
}

.sidebar .nav-link.active::before {
    position: absolute;
    top: 10px;
    bottom: 10px;
    left: -14px;
    width: 3px;
    border-radius: 0 3px 3px 0;
    background: rgba(255, 255, 255, 0.92);
    content: "";
}

.sidebar-footer {
    margin-top: auto;
    padding: 14px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.sidebar-user {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
    padding: 7px 6px;
}

.user-avatar,
.topbar-avatar {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    background: linear-gradient(145deg, #e6efff, #d1e2ff);
    color: #155eef;
    font-weight: 750;
}

.user-avatar {
    width: 38px;
    height: 38px;
    font-size: 0.78rem;
}

.sidebar .user-avatar {
    background: rgba(255, 255, 255, 0.16);
    color: #ffffff;
}

.user-copy {
    display: flex;
    min-width: 0;
    flex: 1;
    flex-direction: column;
}

.user-copy strong {
    overflow: hidden;
    color: #ffffff;
    font-size: 0.84rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.user-copy small {
    margin-top: 2px;
    color: var(--sidebar-muted);
    font-size: 0.73rem;
}

.sidebar-logout {
    display: flex;
    width: 100%;
    min-height: 42px;
    align-items: center;
    gap: 11px;
    padding: 9px 12px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: #b8c5df;
    font-size: 0.88rem;
    font-weight: 600;
    text-align: left;
    transition: background-color 0.18s ease, color 0.18s ease;
}

.sidebar-logout:hover {
    background: rgba(217, 45, 32, 0.14);
    color: #ffb4ae;
}

.sidebar-backdrop {
    display: none;
}

/* Área principal */
.content {
    display: flex;
    min-height: 100vh;
    margin-left: var(--sidebar-width);
    flex-direction: column;
}

.topbar {
    position: sticky;
    top: 0;
    z-index: 1020;
    display: flex;
    min-height: var(--topbar-height);
    align-items: center;
    justify-content: space-between;
    padding: 12px 30px;
    border-bottom: 1px solid rgba(228, 231, 236, 0.9);
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 1px 4px rgba(16, 24, 40, 0.03);
    backdrop-filter: blur(14px);
}

.topbar-left,
.topbar-user {
    display: flex;
    align-items: center;
}

.topbar-left {
    gap: 14px;
}

.sidebar-toggle {
    display: none;
    width: 42px;
    height: 42px;
    border: 1px solid var(--border);
    border-radius: 11px;
    background: #ffffff;
    color: var(--heading);
    font-size: 1.35rem;
}

.page-heading {
    display: flex;
    flex-direction: column;
}

.page-eyebrow {
    color: var(--text-soft);
    font-size: 0.72rem;
    font-weight: 650;
}

.page-heading strong {
    margin-top: 1px;
    color: var(--heading);
    font-size: 1.1rem;
    font-weight: 750;
}

.topbar-user {
    gap: 10px;
}

.topbar-avatar {
    width: 38px;
    height: 38px;
    font-size: 0.76rem;
}

.topbar-user > span:last-child {
    display: flex;
    flex-direction: column;
}

.topbar-user strong {
    color: var(--heading);
    font-size: 0.82rem;
}

.topbar-user small {
    color: var(--text-soft);
    font-size: 0.72rem;
}

.page-content {
    width: 100%;
    max-width: 1700px;
    flex: 1;
    align-self: center;
    padding: 30px;
}

.app-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 30px;
    border-top: 1px solid var(--border);
    color: var(--text-soft);
    font-size: 0.76rem;
}


/* Busca rápida no cabeçalho */
.topbar-tools {
    display: flex;
    align-items: center;
    gap: 18px;
}

.global-search {
    position: relative;
    width: clamp(250px, 26vw, 390px);
}

.global-search > i {
    position: absolute;
    top: 50%;
    left: 13px;
    z-index: 2;
    transform: translateY(-50%);
    color: #98a2b3;
    pointer-events: none;
}

.content .global-search .form-control {
    min-height: 42px;
    padding: 8px 40px 8px 39px;
    border-color: var(--border);
    border-radius: 11px;
    background: #f8fafc;
    font-size: 0.82rem;
}

.content .global-search .form-control:focus {
    border-color: #84adff;
    background: #ffffff;
    box-shadow: 0 0 0 4px rgba(21, 94, 239, 0.1);
}

.global-search-shortcut {
    position: absolute;
    top: 50%;
    right: 11px;
    width: 22px;
    height: 22px;
    align-items: center;
    justify-content: center;
    transform: translateY(-50%);
    border: 1px solid var(--border);
    border-radius: 6px;
    background: #ffffff;
    color: #98a2b3;
    font-size: 0.72rem;
    font-weight: 700;
}

.global-alert {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 22px;
}

/* Detalhes e rastreabilidade do pacote */
.package-details-page {
    display: flex;
    flex-direction: column;
    gap: 22px;
}

.package-details-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
}

.package-title-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

.package-title-row h1 {
    margin: 0;
    color: var(--heading);
    font-size: clamp(1.55rem, 3vw, 2rem);
    font-weight: 790;
    letter-spacing: -0.035em;
}

.package-details-header p {
    margin: 7px 0 0;
    color: var(--text-soft);
    font-size: 0.88rem;
}

.package-header-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
}

.package-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.package-summary-card {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 13px;
    padding: 17px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--surface);
    box-shadow: var(--shadow-sm);
}

.package-summary-card > span {
    display: grid;
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    place-items: center;
    border-radius: 11px;
    background: var(--primary-soft);
    color: var(--primary);
}

.package-summary-card > div {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.package-summary-card small,
.package-data-list small {
    color: var(--text-soft);
    font-size: 0.71rem;
    font-weight: 650;
    text-transform: uppercase;
    letter-spacing: 0.045em;
}

.package-summary-card strong {
    overflow: hidden;
    margin-top: 3px;
    color: var(--heading);
    font-size: 0.86rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.package-summary-card a {
    text-decoration: none;
}

.package-details-columns {
    display: grid;
    grid-template-columns: minmax(270px, 0.72fr) minmax(0, 1.55fr);
    gap: 18px;
    align-items: start;
}

.package-data-panel,
.package-timeline-panel {
    overflow: hidden;
}

.panel-header-icon {
    color: var(--primary);
    font-size: 1.3rem;
}

.package-data-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    padding: 4px 20px 20px;
}

.package-data-list > div {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 5px;
    padding: 16px 0;
    border-bottom: 1px solid #edf0f4;
}

.package-data-list > div:nth-child(odd):not(.package-data-wide) {
    padding-right: 14px;
}

.package-data-list > div:nth-child(even) {
    padding-left: 14px;
    border-left: 1px solid #edf0f4;
}

.package-data-list .package-data-wide {
    grid-column: 1 / -1;
}

.package-data-list strong {
    overflow-wrap: anywhere;
    color: var(--heading);
    font-size: 0.86rem;
    line-height: 1.5;
}

.timeline-count {
    display: inline-flex;
    padding: 5px 9px;
    border-radius: 999px;
    background: #f2f4f7;
    color: #475467;
    font-size: 0.7rem;
    font-weight: 700;
}

.package-timeline {
    margin: 0;
    padding: 8px 20px 20px;
    list-style: none;
}

.timeline-item {
    position: relative;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 13px;
    padding: 13px 0;
}

.timeline-item:not(:last-child)::before {
    position: absolute;
    top: 50px;
    bottom: -13px;
    left: 20px;
    width: 2px;
    background: #e4e7ec;
    content: "";
}

.timeline-marker {
    position: relative;
    z-index: 1;
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border: 4px solid #ffffff;
    border-radius: 50%;
    font-size: 0.92rem;
    box-shadow: 0 0 0 1px var(--border);
}

.timeline-blue {
    background: var(--primary-soft);
    color: var(--primary);
}

.timeline-green {
    background: var(--success-soft);
    color: var(--success);
}

.timeline-amber {
    background: var(--warning-soft);
    color: var(--warning);
}

.timeline-purple {
    background: var(--purple-soft);
    color: var(--purple);
}

.timeline-neutral {
    background: #f2f4f7;
    color: #667085;
}

.timeline-content {
    min-width: 0;
    padding: 14px 15px;
    border: 1px solid var(--border);
    border-radius: 13px;
    background: #fcfdff;
}

.timeline-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.timeline-heading > div {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.timeline-heading strong {
    color: var(--heading);
    font-size: 0.88rem;
}

.timeline-heading time {
    margin-top: 3px;
    color: var(--text-soft);
    font-size: 0.7rem;
}

.timeline-trip-link {
    flex: 0 0 auto;
    font-size: 0.72rem;
    font-weight: 700;
    text-decoration: none;
}

.timeline-status-change {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 11px;
    color: #475467;
    font-size: 0.74rem;
}

.timeline-status-change span {
    padding: 4px 7px;
    border-radius: 7px;
    background: #f2f4f7;
    font-weight: 650;
}

.timeline-content p {
    margin: 11px 0 0;
    color: #475467;
    font-size: 0.8rem;
    line-height: 1.55;
}

.timeline-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    margin-top: 11px;
}

.timeline-meta span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: var(--text-soft);
    font-size: 0.7rem;
}

/* Elementos globais */
.content h1,
.content h2,
.content h3,
.content h4,
.content h5,
.content h6 {
    color: var(--heading);
}

.content h2 {
    margin-bottom: 22px;
    font-size: 1.65rem;
    font-weight: 750;
}

.content h4 {
    font-weight: 700;
}

.content .card {
    border: 1px solid var(--border);
    border-radius: 15px;
    background: var(--surface);
    box-shadow: var(--shadow-sm);
}

.content .card-header {
    padding: 15px 18px;
    border-bottom: 1px solid var(--border);
    background: var(--surface);
    color: var(--heading);
    font-weight: 700;
}

.content .card-body {
    padding: 20px;
}

.content .btn {
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border-radius: 9px;
    font-weight: 650;
}

.content .btn-sm {
    min-height: 32px;
    border-radius: 8px;
}

.content .btn-primary {
    border-color: var(--primary);
    background: var(--primary);
}

.content .btn-primary:hover,
.content .btn-primary:focus {
    border-color: var(--primary-dark);
    background: var(--primary-dark);
}

.content .btn-outline-primary {
    border-color: #b8cdfb;
    color: var(--primary);
}

.content .btn-outline-primary:hover {
    border-color: var(--primary);
    background: var(--primary-soft);
    color: var(--primary-dark);
}

.content .btn-info {
    border-color: var(--primary);
    background: var(--primary);
    color: #ffffff;
}

.content .btn-info:hover {
    border-color: var(--primary-dark);
    background: var(--primary-dark);
    color: #ffffff;
}

.content .form-label {
    margin-bottom: 7px;
    color: #344054;
    font-size: 0.88rem;
    font-weight: 650;
}

.content .form-control,
.content .form-select {
    min-height: 43px;
    border-color: var(--border-strong);
    border-radius: 9px;
    color: var(--heading);
}

.content textarea.form-control {
    min-height: 100px;
}

.content .form-control:focus,
.content .form-select:focus {
    border-color: #84adff;
    box-shadow: 0 0 0 4px rgba(21, 94, 239, 0.1);
}

.content > form:not(.d-inline),
.content > .container-fluid > form:not(.d-inline),
.content .container-fluid > form:not(.d-inline) {
    margin-bottom: 24px;
    padding: 22px;
    border: 1px solid var(--border);
    border-radius: 15px;
    background: var(--surface);
    box-shadow: var(--shadow-sm);
}

.content .table-responsive {
    border-radius: 12px;
}

.content table {
    margin-bottom: 0;
    background: var(--surface);
}

.content table thead th {
    padding: 12px 14px;
    border-bottom: 1px solid #dfe4eb;
    background: #f8fafc;
    color: #475467;
    font-size: 0.75rem;
    font-weight: 750;
    letter-spacing: 0.035em;
    text-transform: uppercase;
    vertical-align: middle;
    white-space: nowrap;
}

.content table tbody td {
    padding: 13px 14px;
    border-color: #edf0f4;
    color: #344054;
    font-size: 0.88rem;
    vertical-align: middle;
}

.content table tbody tr:hover {
    background: #f9fbff;
}

.content table thead tr:nth-child(2) th {
    padding: 9px;
    background: #f1f5fb;
    color: #344054;
    text-transform: none;
}

.content > .table-responsive,
.content > form > .table-responsive,
.content > .container-fluid > .table-responsive,
.content .container-fluid > form > .table-responsive {
    overflow: hidden;
    border: 1px solid var(--border);
    background: var(--surface);
    box-shadow: var(--shadow-sm);
}

.content .badge {
    padding: 6px 10px;
    border-radius: 999px;
    font-weight: 650;
}

.content .alert {
    border: 1px solid transparent;
    border-radius: 11px;
    box-shadow: none;
}

/* Dashboard */
.dashboard-page {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.dashboard-welcome {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
}

.section-kicker {
    display: block;
    margin-bottom: 6px;
    color: var(--primary);
    font-size: 0.71rem;
    font-weight: 750;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.dashboard-welcome h1 {
    margin: 0;
    color: var(--heading);
    font-size: clamp(1.7rem, 3vw, 2.15rem);
    font-weight: 780;
    letter-spacing: -0.035em;
}

.dashboard-welcome p {
    margin: 7px 0 0;
    color: var(--text-soft);
    font-size: 0.94rem;
}

.dashboard-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.metrics-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.metric-card {
    position: relative;
    display: flex;
    min-height: 150px;
    align-items: flex-start;
    gap: 16px;
    overflow: hidden;
    padding: 21px;
    border: 1px solid var(--border);
    border-radius: 17px;
    background: var(--surface);
    box-shadow: var(--shadow-sm);
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.metric-card::after {
    position: absolute;
    right: -28px;
    bottom: -42px;
    width: 118px;
    height: 118px;
    border-radius: 50%;
    background: currentColor;
    content: "";
    opacity: 0.055;
}

.metric-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.metric-icon {
    display: grid;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    place-items: center;
    border-radius: 13px;
    font-size: 1.18rem;
}

.metric-card > div {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.metric-label {
    min-height: 38px;
    color: #475467;
    font-size: 0.82rem;
    font-weight: 650;
    line-height: 1.3;
}

.metric-value {
    margin-top: 5px;
    color: var(--heading);
    font-size: 2.05rem;
    font-weight: 790;
    letter-spacing: -0.045em;
    line-height: 1;
}

.metric-card small {
    margin-top: 9px;
    color: var(--text-soft);
    font-size: 0.72rem;
}

.metric-blue {
    color: var(--primary);
}

.metric-blue .metric-icon {
    background: var(--primary-soft);
    color: var(--primary);
}

.metric-amber {
    color: var(--warning);
}

.metric-amber .metric-icon {
    background: var(--warning-soft);
    color: var(--warning);
}

.metric-purple {
    color: var(--purple);
}

.metric-purple .metric-icon {
    background: var(--purple-soft);
    color: var(--purple);
}

.metric-green {
    color: var(--success);
}

.metric-green .metric-icon {
    background: var(--success-soft);
    color: var(--success);
}

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

.summary-card {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 18px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--surface);
    box-shadow: var(--shadow-sm);
}

.summary-icon {
    display: grid;
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    place-items: center;
    border-radius: 11px;
}

.summary-icon-blue {
    background: var(--primary-soft);
    color: var(--primary);
}

.summary-icon-purple {
    background: var(--purple-soft);
    color: var(--purple);
}

.summary-icon-green {
    background: var(--success-soft);
    color: var(--success);
}

.summary-card > div {
    display: flex;
    flex: 1;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}

.summary-card small {
    color: var(--text-soft);
    font-size: 0.8rem;
    font-weight: 600;
}

.summary-card strong {
    color: var(--heading);
    font-size: 1.45rem;
    font-weight: 780;
}

.dashboard-columns {
    display: grid;
    grid-template-columns: minmax(0, 1.75fr) minmax(310px, 0.75fr);
    gap: 18px;
    align-items: start;
}

.panel-card {
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 17px;
    background: var(--surface);
    box-shadow: var(--shadow-sm);
}

.panel-header {
    display: flex;
    min-height: 82px;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 18px 20px;
    border-bottom: 1px solid var(--border);
}

.panel-header .section-kicker {
    margin-bottom: 3px;
}

.panel-header h2 {
    margin: 0;
    font-size: 1.08rem;
    font-weight: 750;
    letter-spacing: -0.015em;
}

.panel-link {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 7px;
    font-size: 0.8rem;
    font-weight: 700;
    text-decoration: none;
}

.dashboard-table thead th {
    background: #fbfcfe;
}

.dashboard-table tbody td {
    padding-top: 14px;
    padding-bottom: 14px;
}

.package-code {
    color: var(--heading);
    font-size: 0.85rem;
}

.status-pill,
.waiting-time,
.live-badge {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    font-size: 0.71rem;
    font-weight: 700;
    white-space: nowrap;
}

.status-pill {
    padding: 5px 9px;
}

.status-info,
.status-primary {
    background: var(--primary-soft);
    color: var(--primary-dark);
}

.status-warning {
    background: var(--warning-soft);
    color: var(--warning);
}

.status-success {
    background: var(--success-soft);
    color: var(--success);
}

.status-danger {
    background: var(--danger-soft);
    color: var(--danger);
}

.status-neutral {
    background: #f2f4f7;
    color: #475467;
}

.waiting-time {
    padding: 5px 8px;
}

.waiting-normal,
.waiting-neutral {
    background: #f2f4f7;
    color: #475467;
}

.waiting-warning {
    background: var(--warning-soft);
    color: var(--warning);
}

.waiting-critical {
    background: var(--danger-soft);
    color: var(--danger);
}

.empty-state {
    display: flex;
    min-height: 260px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    padding: 30px;
    text-align: center;
}

.empty-state.compact {
    min-height: 300px;
}

.empty-state > span {
    display: grid;
    width: 54px;
    height: 54px;
    place-items: center;
    border-radius: 16px;
    background: var(--primary-soft);
    color: var(--primary);
    font-size: 1.35rem;
}

.empty-state h3 {
    margin: 14px 0 5px;
    font-size: 1rem;
    font-weight: 750;
}

.empty-state p {
    margin: 0;
    color: var(--text-soft);
    font-size: 0.82rem;
}

.trip-list {
    display: flex;
    max-height: 545px;
    flex-direction: column;
    gap: 11px;
    overflow-y: auto;
    padding: 14px;
}

.trip-item {
    padding: 15px;
    border: 1px solid var(--border);
    border-radius: 13px;
    background: #fcfdff;
}

.trip-item-top,
.trip-item-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.trip-number {
    color: var(--heading);
    font-size: 0.8rem;
    font-weight: 750;
}

.live-badge {
    gap: 6px;
    padding: 5px 8px;
    background: var(--success-soft);
    color: var(--success);
}

.live-badge > span {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
    box-shadow: 0 0 0 3px rgba(3, 152, 85, 0.12);
}

.trip-driver {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 15px 0;
}

.trip-driver > span {
    color: var(--primary);
    font-size: 1.45rem;
}

.trip-driver > div {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.trip-driver strong {
    overflow: hidden;
    color: var(--heading);
    font-size: 0.83rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.trip-driver small {
    margin-top: 2px;
    color: var(--text-soft);
    font-size: 0.7rem;
}

.trip-item-bottom {
    padding-top: 11px;
    border-top: 1px solid #edf0f4;
    color: var(--text-soft);
    font-size: 0.74rem;
}

.trip-item-bottom a {
    font-weight: 700;
    text-decoration: none;
}

/* Relatórios */
.content .relatorios-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-top: 22px;
}

.content .relatorio-card {
    display: block;
    min-height: 135px;
    padding: 22px;
    border: 1px solid var(--border);
    border-radius: 15px;
    background: var(--surface);
    box-shadow: var(--shadow-sm);
    color: #344054;
    text-decoration: none;
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.content .relatorio-card:hover {
    transform: translateY(-2px);
    border-color: #b8cdfb;
    box-shadow: var(--shadow-md);
}

.content .relatorio-card h3 {
    margin-bottom: 9px;
    color: var(--heading);
    font-size: 1.05rem;
    font-weight: 750;
}

.content .relatorio-card p {
    margin: 0;
    color: var(--text-soft);
    font-size: 0.86rem;
    line-height: 1.55;
}


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

    .package-details-columns {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 991.98px) {
    .topbar {
        flex-wrap: wrap;
        row-gap: 10px;
    }

    .topbar-tools {
        flex: 1;
        justify-content: flex-end;
    }

    .global-search {
        width: min(420px, 52vw);
    }
}

@media (max-width: 767.98px) {
    .topbar-left {
        min-width: 0;
    }

    .topbar-tools {
        width: 100%;
        flex-basis: 100%;
        order: 3;
    }

    .global-search {
        width: 100%;
    }

    .package-details-header {
        align-items: stretch;
        flex-direction: column;
    }

    .package-header-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

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

    .timeline-heading {
        flex-direction: column;
    }

    .timeline-trip-link {
        align-self: flex-start;
    }
}

@media (max-width: 479.98px) {
    .package-header-actions {
        grid-template-columns: 1fr;
    }

    .package-data-list {
        grid-template-columns: 1fr;
        padding-right: 16px;
        padding-left: 16px;
    }

    .package-data-list > div:nth-child(odd):not(.package-data-wide),
    .package-data-list > div:nth-child(even) {
        padding-right: 0;
        padding-left: 0;
        border-left: 0;
    }

    .package-data-list .package-data-wide {
        grid-column: auto;
    }

    .package-timeline {
        padding-right: 14px;
        padding-left: 14px;
    }

    .timeline-item {
        grid-template-columns: 36px minmax(0, 1fr);
        gap: 9px;
    }

    .timeline-item:not(:last-child)::before {
        top: 44px;
        left: 17px;
    }

    .timeline-marker {
        width: 36px;
        height: 36px;
        font-size: 0.8rem;
    }

    .timeline-content {
        padding: 12px;
    }
}

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

    .dashboard-columns {
        grid-template-columns: 1fr;
    }

    .trip-list {
        max-height: none;
    }
}

@media (max-width: 991.98px) {
    .sidebar {
        transform: translateX(-100%);
        transition: transform 0.22s ease;
    }

    .sidebar-open .sidebar {
        transform: translateX(0);
    }

    .sidebar-close,
    .sidebar-toggle {
        display: grid;
        place-items: center;
    }

    .sidebar-backdrop {
        position: fixed;
        inset: 0;
        z-index: 1035;
        display: block;
        visibility: hidden;
        background: rgba(9, 19, 47, 0.54);
        opacity: 0;
        transition: opacity 0.22s ease, visibility 0.22s ease;
    }

    .sidebar-open .sidebar-backdrop {
        visibility: visible;
        opacity: 1;
    }

    .content {
        margin-left: 0;
    }

    .topbar {
        padding-right: 20px;
        padding-left: 20px;
    }

    .page-content {
        padding: 24px 20px;
    }

    .app-footer {
        padding-right: 20px;
        padding-left: 20px;
    }
}

@media (max-width: 767.98px) {
    .dashboard-welcome {
        align-items: stretch;
        flex-direction: column;
    }

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

    .metrics-grid,
    .trip-summary-grid,
    .content .relatorios-grid {
        grid-template-columns: 1fr;
    }

    .metric-card {
        min-height: 130px;
    }

    .summary-card > div {
        align-items: center;
    }

    .panel-header {
        min-height: 74px;
        padding: 16px;
    }

    .dashboard-waiting-panel .table-responsive {
        border-radius: 0;
    }

    .content > form:not(.d-inline),
    .content > .container-fluid > form:not(.d-inline),
    .content .container-fluid > form:not(.d-inline) {
        padding: 16px;
    }

    .app-footer {
        align-items: flex-start;
        flex-direction: column;
        gap: 5px;
    }
}

@media (max-width: 479.98px) {
    :root {
        --sidebar-width: min(88vw, 300px);
    }

    .topbar {
        min-height: 68px;
        padding: 10px 14px;
    }

    .page-content {
        padding: 20px 14px;
    }

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

    .metric-card {
        padding: 18px;
    }

    .app-footer {
        padding: 16px 14px;
    }
}

/* Login */
.login-body {
    min-height: 100vh;
    padding: 24px;
    background:
        radial-gradient(circle at 10% 10%, rgba(21, 94, 239, 0.13), transparent 30%),
        linear-gradient(145deg, #eef4ff 0%, #f7f9fc 55%, #eef2f7 100%);
}

.login-layout {
    display: grid;
    width: min(1080px, 100%);
    min-height: min(680px, calc(100vh - 48px));
    margin: 0 auto;
    grid-template-columns: minmax(0, 1.08fr) minmax(420px, 0.92fr);
    overflow: hidden;
    border: 1px solid rgba(208, 213, 221, 0.75);
    border-radius: 24px;
    background: #ffffff;
    box-shadow: 0 28px 80px rgba(16, 24, 40, 0.14);
}

.login-brand-panel {
    position: relative;
    display: flex;
    overflow: hidden;
    flex-direction: column;
    justify-content: space-between;
    padding: 42px;
    background:
        radial-gradient(circle at 75% 18%, rgba(40, 120, 255, 0.38), transparent 30%),
        radial-gradient(circle at 10% 85%, rgba(17, 183, 223, 0.17), transparent 26%),
        linear-gradient(160deg, #0b1739 0%, #0b1c46 58%, #09142f 100%);
    color: #ffffff;
}

.login-brand-panel::after {
    position: absolute;
    right: -95px;
    bottom: 55px;
    width: 270px;
    height: 270px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 50%;
    box-shadow: 0 0 0 48px rgba(255, 255, 255, 0.025), 0 0 0 96px rgba(255, 255, 255, 0.018);
    content: "";
}

.login-brand,
.login-mobile-brand {
    display: flex;
    align-items: center;
    gap: 12px;
}

.login-brand {
    position: relative;
    z-index: 1;
}

.login-brand-mark {
    display: grid;
    width: 48px;
    height: 48px;
    flex: 0 0 auto;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 15px;
    background: linear-gradient(145deg, #2878ff, #11b7df);
    color: #ffffff;
    box-shadow: 0 9px 22px rgba(21, 94, 239, 0.32);
    font-size: 1.25rem;
}

.login-brand > span:last-child {
    display: flex;
    flex-direction: column;
    line-height: 1.05;
}

.login-brand strong {
    font-size: 1.28rem;
    font-weight: 780;
}

.login-brand small {
    margin-top: 5px;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.7rem;
    font-weight: 750;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.login-brand-content {
    position: relative;
    z-index: 1;
    max-width: 470px;
}

.login-kicker {
    display: block;
    color: #6da8ff;
    font-size: 0.73rem;
    font-weight: 760;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.login-brand-content .login-kicker {
    color: rgba(255, 255, 255, 0.72);
}

.login-brand-content h1 {
    margin: 16px 0 18px;
    color: #ffffff;
    font-size: clamp(2rem, 4vw, 3.25rem);
    font-weight: 790;
    letter-spacing: -0.045em;
    line-height: 1.08;
}

.login-brand-content p {
    max-width: 420px;
    margin: 0;
    color: #b7c5df;
    font-size: 1rem;
    line-height: 1.65;
}

.login-brand-footer {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    color: #8391ad;
    font-size: 0.73rem;
}

.login-brand-footer span:first-child {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.login-form-panel {
    display: grid;
    place-items: center;
    padding: 54px;
    background: #ffffff;
}

.login-form-wrap {
    width: 100%;
    max-width: 390px;
}

.login-mobile-brand {
    display: none;
    margin-bottom: 38px;
}

.login-mobile-brand strong {
    color: var(--heading);
    font-size: 1.05rem;
}

.login-heading h2 {
    margin: 8px 0 7px;
    color: var(--heading);
    font-size: 1.8rem;
    font-weight: 780;
    letter-spacing: -0.03em;
}

.login-heading p {
    margin: 0;
    color: var(--text-soft);
    font-size: 0.9rem;
}

.login-alert {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin: 24px 0 0;
    border-color: #fecdca;
    background: var(--danger-soft);
    color: #b42318;
    font-size: 0.82rem;
}

.login-form {
    display: flex;
    flex-direction: column;
    gap: 19px;
    margin-top: 28px;
}

.login-form .form-label {
    color: #344054;
    font-size: 0.82rem;
    font-weight: 680;
}

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

.login-input-group > i {
    position: absolute;
    top: 50%;
    left: 15px;
    z-index: 2;
    transform: translateY(-50%);
    color: #98a2b3;
}

.login-input-group .form-control {
    min-height: 50px;
    padding-right: 15px;
    padding-left: 43px;
    border-color: var(--border-strong);
    border-radius: 10px;
    color: var(--heading);
}

.login-input-group .form-control::placeholder {
    color: #98a2b3;
}

.login-input-group .form-control:focus {
    border-color: #84adff;
    box-shadow: 0 0 0 4px rgba(21, 94, 239, 0.1);
}

.login-submit {
    display: inline-flex;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    gap: 9px;
    margin-top: 3px;
    border-color: var(--primary);
    border-radius: 10px;
    background: var(--primary);
    font-weight: 700;
}

.login-submit:hover,
.login-submit:focus {
    border-color: var(--primary-dark);
    background: var(--primary-dark);
}

.login-support {
    margin: 24px 0 0;
    color: #98a2b3;
    font-size: 0.72rem;
    line-height: 1.5;
    text-align: center;
}

@media (max-width: 899.98px) {
    .login-layout {
        max-width: 520px;
        grid-template-columns: 1fr;
    }

    .login-brand-panel {
        display: none;
    }

    .login-mobile-brand {
        display: flex;
    }

    .login-form-panel {
        padding: 50px 42px;
    }
}

@media (max-width: 479.98px) {
    .login-body {
        padding: 0;
        background: #ffffff;
    }

    .login-layout {
        min-height: 100vh;
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }

    .login-form-panel {
        align-items: start;
        padding: 38px 22px;
    }
}


/* Sprint 5 - Central de relatórios */
.report-hub,
.report-page { display: flex; flex-direction: column; gap: 24px; }
.report-hub-heading,
.report-page-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.report-hub-heading h1,
.report-page-header h1 { margin: 7px 0 6px; color: var(--heading); font-size: clamp(1.65rem, 3vw, 2.2rem); font-weight: 780; letter-spacing: -.035em; }
.report-hub-heading p,
.report-page-header p,
.report-section-heading p { max-width: 720px; margin: 0; color: var(--text-soft); }
.page-kicker { color: var(--primary); font-size: .72rem; font-weight: 760; letter-spacing: .12em; text-transform: uppercase; }
.report-metrics-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
.report-metric { display: flex; min-width: 0; align-items: center; gap: 13px; padding: 18px; border: 1px solid var(--border); border-radius: 15px; background: var(--surface); box-shadow: var(--shadow-sm); }
.report-metric-icon { display: grid; width: 42px; height: 42px; flex: 0 0 auto; place-items: center; border-radius: 12px; background: var(--primary-soft); color: var(--primary); font-size: 1.15rem; }
.report-metric div { display:flex; min-width:0; flex-direction:column; }
.report-metric strong { color:var(--heading); font-size:1.35rem; line-height:1.1; }
.report-metric span:last-child { margin-top:5px; color:var(--text-soft); font-size:.76rem; line-height:1.25; }
.report-metric-success .report-metric-icon { background:var(--success-soft); color:var(--success); }
.report-metric-warning .report-metric-icon { background:var(--warning-soft); color:var(--warning); }
.report-metric-danger .report-metric-icon { background:var(--danger-soft); color:var(--danger); }
.report-metric-purple .report-metric-icon { background:var(--purple-soft); color:var(--purple); }
.report-section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-top:6px; }
.report-section-heading h2 { margin:0 0 4px; color:var(--heading); font-size:1.15rem; font-weight:740; }
.report-catalog-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.report-catalog-card { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:16px; padding:22px; border:1px solid var(--border); border-radius:17px; background:var(--surface); color:inherit; box-shadow:var(--shadow-sm); text-decoration:none; transition:.18s ease; }
.report-catalog-card:hover { transform:translateY(-2px); border-color:#b9ccf8; color:inherit; box-shadow:var(--shadow-md); }
.report-catalog-icon { display:grid; width:50px; height:50px; place-items:center; border-radius:14px; background:var(--primary-soft); color:var(--primary); font-size:1.3rem; }
.report-catalog-card h3 { margin:0 0 5px; color:var(--heading); font-size:1rem; font-weight:730; }
.report-catalog-card p { margin:0; color:var(--text-soft); font-size:.83rem; line-height:1.5; }
.report-card-arrow { color:#98a2b3; }
.report-print-header { display:none; }
.report-summary-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.report-summary-card { display:flex; align-items:center; gap:11px; min-width:0; padding:15px; border:1px solid var(--border); border-radius:14px; background:var(--surface); box-shadow:var(--shadow-sm); }
.report-summary-card > i { display:grid; width:38px; height:38px; flex:0 0 auto; place-items:center; border-radius:11px; background:var(--primary-soft); color:var(--primary); }
.report-summary-card div { display:flex; min-width:0; flex-direction:column; }
.report-summary-card strong { color:var(--heading); font-size:1.18rem; line-height:1.1; }
.report-summary-card span { margin-top:4px; color:var(--text-soft); font-size:.7rem; line-height:1.25; }
.report-summary-success > i { background:var(--success-soft); color:var(--success); }
.report-summary-warning > i { background:var(--warning-soft); color:var(--warning); }
.report-summary-danger > i { background:var(--danger-soft); color:var(--danger); }
.report-summary-purple > i { background:var(--purple-soft); color:var(--purple); }
.report-summary-neutral > i { background:#f2f4f7; color:#475467; }
.report-panel { padding:20px; border:1px solid var(--border); border-radius:16px; background:var(--surface); box-shadow:var(--shadow-sm); }
.report-filter-form .form-label { font-size:.78rem; font-weight:680; }
.report-actions { display:flex; flex-wrap:wrap; gap:9px; margin-top:18px; }
.report-actions .btn { display:inline-flex; align-items:center; justify-content:center; gap:7px; }
.report-table-card { overflow:hidden; border:1px solid var(--border); border-radius:16px; background:var(--surface); box-shadow:var(--shadow-sm); }
.report-table-heading { display:flex; align-items:center; justify-content:space-between; padding:17px 20px; border-bottom:1px solid var(--border); }
.report-table-heading h2 { margin:0; color:var(--heading); font-size:1rem; font-weight:730; }
.report-table-heading span { display:block; margin-top:3px; color:var(--text-soft); font-size:.72rem; }
.report-table { margin:0; }
.report-table thead th { padding:13px 16px; border-bottom:1px solid var(--border); background:var(--surface-soft); color:#475467; font-size:.7rem; font-weight:740; letter-spacing:.04em; text-transform:uppercase; white-space:nowrap; }
.report-table tbody td { padding:14px 16px; border-color:#eef0f3; color:#344054; font-size:.82rem; }
.report-table tbody tr:last-child td { border-bottom:0; }
.report-empty-row td { padding:38px !important; color:var(--text-soft) !important; text-align:center; }
.status-pill { display:inline-flex; align-items:center; min-height:25px; padding:4px 9px; border-radius:999px; background:#f2f4f7; color:#475467; font-size:.7rem; font-weight:680; white-space:nowrap; }
.finance-report-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.finance-report-card { display:flex; flex-direction:column; gap:8px; padding:17px; border:1px solid var(--border); border-radius:14px; background:var(--surface); box-shadow:var(--shadow-sm); }
.finance-report-card span { color:var(--text-soft); font-size:.73rem; }
.finance-report-card strong { color:var(--heading); font-size:1.16rem; }
.finance-positive { border-left:3px solid var(--success); }
.finance-warning { border-left:3px solid var(--warning); }
.finance-negative { border-left:3px solid var(--danger); }
@media (max-width:1199.98px) { .report-metrics-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .report-summary-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } .finance-report-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:767.98px) {
    .report-page-header { align-items:stretch; flex-direction:column; }
    .report-page-header .btn { align-self:flex-start; }
    .report-metrics-grid,.report-catalog-grid,.report-summary-grid,.finance-report-grid { grid-template-columns:1fr; }
    .report-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
    .report-actions .btn { width:100%; }
    .report-table-card .table-responsive { overflow:visible; }
    .report-table:not(.report-table-wide) thead { display:none; }
    .report-table:not(.report-table-wide), .report-table:not(.report-table-wide) tbody, .report-table:not(.report-table-wide) tr, .report-table:not(.report-table-wide) td { display:block; width:100%; }
    .report-table:not(.report-table-wide) tbody { padding:10px; }
    .report-table:not(.report-table-wide) tbody tr { margin-bottom:10px; overflow:hidden; border:1px solid var(--border); border-radius:12px; background:#fff; }
    .report-table:not(.report-table-wide) tbody tr:last-child { margin-bottom:0; }
    .report-table:not(.report-table-wide) tbody td { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:10px 12px; border-bottom:1px solid #eef0f3; text-align:right; }
    .report-table:not(.report-table-wide) tbody td::before { flex:0 0 42%; color:var(--text-soft); content:attr(data-label); font-size:.69rem; font-weight:730; text-align:left; text-transform:uppercase; }
    .report-table:not(.report-table-wide) .report-empty-row td { display:block; text-align:center; }
    .report-table:not(.report-table-wide) .report-empty-row td::before { display:none; }
}
@media (max-width:479.98px) { .report-actions { grid-template-columns:1fr; } .report-panel { padding:16px; } .report-catalog-card { grid-template-columns:auto 1fr; padding:18px; } .report-card-arrow { display:none; } }
@media print {
    @page { size:auto; margin:12mm; }
    body { background:#fff !important; color:#111 !important; font-size:10pt; }
    .sidebar,.topbar,.app-footer,.sidebar-backdrop,.no-print { display:none !important; }
    .app-main { margin:0 !important; width:100% !important; }
    .page-content,.content { padding:0 !important; }
    .report-print-header { display:flex; flex-direction:column; gap:2px; margin-bottom:16px; padding-bottom:10px; border-bottom:2px solid #1f4e78; }
    .report-print-header strong { font-size:16pt; color:#1f4e78; }
    .report-print-header span { font-size:10pt; font-weight:700; }
    .report-print-header small { color:#555; }
    .report-page { gap:14px; }
    .report-page-header { display:none; }
    .report-summary-grid,.finance-report-grid { grid-template-columns:repeat(4,1fr); gap:6px; }
    .report-summary-card,.finance-report-card { padding:8px; border-color:#bbb; box-shadow:none; break-inside:avoid; }
    .report-summary-card > i { display:none; }
    .report-table-card { overflow:visible; border:0; border-radius:0; box-shadow:none; break-inside:auto; }
    .report-table-heading { padding:7px 0; }
    .report-table { width:100% !important; font-size:8pt; }
    .report-table thead { display:table-header-group !important; }
    .report-table tbody { display:table-row-group !important; padding:0 !important; }
    .report-table tr { display:table-row !important; break-inside:avoid; border:0 !important; }
    .report-table th,.report-table td { display:table-cell !important; width:auto !important; padding:5px !important; border:1px solid #ccc !important; text-align:left !important; }
    .report-table td::before { display:none !important; }
    .table-responsive { overflow:visible !important; }
    .status-pill { padding:0; background:transparent; color:#111; }
}


/* Sprint 6 - Configurações, marca e gestão comercial */
.tenant-logo { display:grid; width:42px; height:42px; flex:0 0 auto; place-items:center; overflow:hidden; border:1px solid rgba(255,255,255,.14); border-radius:12px; background:#fff; }
.tenant-logo img { width:100%; height:100%; object-fit:contain; padding:4px; }
.license-alert { display:flex; align-items:center; gap:10px; margin-bottom:18px; padding:12px 15px; border:1px solid; border-radius:12px; font-size:.82rem; font-weight:620; }
.license-alert-info { border-color:#b2ddff; background:#eff8ff; color:#175cd3; }
.license-alert-warning { border-color:#fedf89; background:#fffaeb; color:#b54708; }
.license-alert-danger { border-color:#fecdca; background:#fef3f2; color:#b42318; }
.tenant-admin-page,.tenant-edit-page,.settings-page { display:flex; flex-direction:column; gap:22px; }
.tenant-admin-heading,.tenant-edit-heading,.settings-page-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.tenant-admin-heading h1,.tenant-edit-heading h1,.settings-page-heading h1 { margin:6px 0; color:var(--heading); font-size:clamp(1.65rem,3vw,2.15rem); font-weight:780; letter-spacing:-.035em; }
.tenant-admin-heading p,.tenant-edit-heading p,.settings-page-heading p { margin:0; color:var(--text-soft); }
.tenant-admin-heading .btn { display:inline-flex; align-items:center; gap:7px; white-space:nowrap; }
.tenant-metrics-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.tenant-metrics-grid article { display:flex; align-items:center; gap:13px; padding:18px; border:1px solid var(--border); border-radius:15px; background:var(--surface); box-shadow:var(--shadow-sm); }
.tenant-metrics-grid i { display:grid; width:42px; height:42px; place-items:center; border-radius:12px; background:var(--primary-soft); color:var(--primary); font-size:1.1rem; }
.tenant-metrics-grid div { display:flex; flex-direction:column; }
.tenant-metrics-grid strong { color:var(--heading); font-size:1.35rem; line-height:1; }
.tenant-metrics-grid span { margin-top:5px; color:var(--text-soft); font-size:.75rem; }
.tenant-metrics-grid .metric-success i { background:var(--success-soft); color:var(--success); }
.tenant-metrics-grid .metric-info i { background:#eff8ff; color:#1570ef; }
.tenant-metrics-grid .metric-danger i { background:var(--danger-soft); color:var(--danger); }
.tenant-table-card { overflow:hidden; border:1px solid var(--border); border-radius:16px; background:var(--surface); box-shadow:var(--shadow-sm); }
.tenant-table-heading { padding:17px 20px; border-bottom:1px solid var(--border); }
.tenant-table-heading h2 { margin:0; color:var(--heading); font-size:1rem; font-weight:740; }
.tenant-table-heading span { color:var(--text-soft); font-size:.73rem; }
.tenant-table thead th { padding:13px 15px; background:var(--surface-soft); color:#475467; font-size:.69rem; letter-spacing:.04em; text-transform:uppercase; white-space:nowrap; }
.tenant-table tbody td { padding:15px; border-color:#eef0f3; font-size:.81rem; }
.tenant-table td:first-child strong,.tenant-table td:first-child small { display:block; }
.tenant-table td:first-child small { margin-top:3px; color:var(--text-soft); }
.tenant-usage { color:var(--text-soft); white-space:nowrap; }
.tenant-usage b { color:var(--heading); }
.tenant-empty td { padding:38px !important; color:var(--text-soft); text-align:center; }
.back-link { display:inline-flex; align-items:center; gap:6px; margin-bottom:9px; color:var(--text-soft); font-size:.8rem; font-weight:650; text-decoration:none; }
.back-link:hover { color:var(--primary); }
.tenant-status-badge,.plan-chip { display:inline-flex; align-items:center; gap:7px; min-height:34px; padding:7px 12px; border-radius:999px; font-size:.75rem; }
.plan-chip { background:var(--primary-soft); color:var(--primary); font-weight:720; }
.tenant-detail-metrics { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.tenant-detail-metrics article { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:4px 11px; padding:15px; border:1px solid var(--border); border-radius:14px; background:#fff; box-shadow:var(--shadow-sm); }
.tenant-detail-metrics i { grid-row:1/3; display:grid; width:38px; height:38px; place-items:center; border-radius:11px; background:var(--primary-soft); color:var(--primary); }
.tenant-detail-metrics strong { color:var(--heading); font-size:1.18rem; line-height:1; }
.tenant-detail-metrics span { color:var(--text-soft); font-size:.69rem; }
.settings-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; align-items:start; gap:18px; }
.settings-main { display:flex; min-width:0; flex-direction:column; gap:18px; }
.settings-side { min-width:0; }
.settings-card { padding:22px; border:1px solid var(--border); border-radius:16px; background:#fff; box-shadow:var(--shadow-sm); }
.settings-card-heading { display:flex; align-items:flex-start; gap:12px; margin-bottom:20px; padding-bottom:15px; border-bottom:1px solid var(--border); }
.settings-card-heading > i { display:grid; width:39px; height:39px; flex:0 0 auto; place-items:center; border-radius:11px; background:var(--primary-soft); color:var(--primary); }
.settings-card h2,.settings-card-heading h2 { margin:0; color:var(--heading); font-size:1rem; font-weight:740; }
.settings-card-heading p { margin:4px 0 0; color:var(--text-soft); font-size:.76rem; }
.settings-card .form-label { color:#344054; font-size:.77rem; font-weight:680; }
.sticky-settings-card { position:sticky; top:calc(var(--topbar-height) + 18px); }
.tenant-summary-list,.license-card dl { display:flex; flex-direction:column; gap:0; margin:18px 0; }
.tenant-summary-list > div,.license-card dl > div { display:flex; justify-content:space-between; gap:14px; padding:11px 0; border-bottom:1px solid var(--border); }
.tenant-summary-list dt,.license-card dt { color:var(--text-soft); font-size:.72rem; font-weight:600; }
.tenant-summary-list dd,.license-card dd { margin:0; color:var(--heading); font-size:.76rem; font-weight:680; text-align:right; }
.branding-editor { display:grid; grid-template-columns:180px minmax(0,1fr); gap:22px; }
.logo-preview { display:grid; min-height:150px; place-items:center; overflow:hidden; border:1px dashed var(--border-strong); border-radius:14px; background:var(--surface-soft); }
.logo-preview img { width:100%; height:150px; object-fit:contain; padding:15px; }
.logo-preview span { display:flex; align-items:center; flex-direction:column; gap:7px; color:#98a2b3; }
.logo-preview i { font-size:1.5rem; }
.branding-fields { display:flex; min-width:0; flex-direction:column; }
.color-field { margin-top:18px; }
.color-input-wrap { display:flex; align-items:center; gap:12px; }
.color-input-wrap input[type=color] { width:54px; height:42px; padding:3px; border:1px solid var(--border-strong); border-radius:9px; background:#fff; }
.color-input-wrap code { color:var(--heading); font-size:.78rem; }
.license-card { display:flex; align-items:stretch; flex-direction:column; }
.license-card-icon { display:grid; width:48px; height:48px; margin-bottom:14px; place-items:center; border-radius:14px; background:var(--primary-soft); color:var(--primary); font-size:1.3rem; }
.license-card > span { color:var(--text-soft); font-size:.72rem; }
.license-card > strong { margin-top:3px; color:var(--heading); font-size:1.35rem; }
.license-status { display:inline-flex; align-self:flex-start; align-items:center; gap:7px; margin-top:10px; padding:6px 9px; border-radius:999px; background:var(--success-soft); color:var(--success); font-size:.71rem; font-weight:700; }
.license-status i { font-size:.45rem; }
.license-card > p { margin:0 0 17px; color:var(--text-soft); font-size:.72rem; line-height:1.5; }
@media (max-width:1199.98px) { .tenant-metrics-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .tenant-detail-metrics { grid-template-columns:repeat(3,minmax(0,1fr)); } .settings-layout { grid-template-columns:minmax(0,1fr) 270px; } }
@media (max-width:991.98px) { .settings-layout { grid-template-columns:1fr; } .sticky-settings-card { position:static; } .settings-side { order:-1; } .license-card { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:0 14px; } .license-card-icon { grid-row:1/4; margin:0; } .license-card dl,.license-card > p,.license-card > .btn { grid-column:1/-1; } }
@media (max-width:767.98px) {
    .tenant-admin-heading,.tenant-edit-heading,.settings-page-heading { align-items:stretch; flex-direction:column; }
    .tenant-admin-heading .btn,.tenant-status-badge,.plan-chip { align-self:flex-start; }
    .tenant-detail-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .tenant-table-card .table-responsive { overflow:visible; }
    .tenant-table thead { display:none; }
    .tenant-table,.tenant-table tbody,.tenant-table tr,.tenant-table td { display:block; width:100%; }
    .tenant-table tbody { padding:10px; }
    .tenant-table tbody tr { margin-bottom:10px; overflow:hidden; border:1px solid var(--border); border-radius:12px; }
    .tenant-table tbody td { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:10px 12px; text-align:right; }
    .tenant-table tbody td::before { flex:0 0 35%; color:var(--text-soft); content:attr(data-label); font-size:.67rem; font-weight:730; text-align:left; text-transform:uppercase; }
    .tenant-table tbody td:first-child { text-align:right; }
    .tenant-table .tenant-actions { justify-content:flex-end; }
    .tenant-table .tenant-actions::before { display:none; }
    .tenant-table .tenant-actions .btn { width:100%; }
    .tenant-table .tenant-empty td { display:block; text-align:center; }
    .tenant-table .tenant-empty td::before { display:none; }
    .branding-editor { grid-template-columns:1fr; }
    .logo-preview { max-width:260px; }
}
@media (max-width:479.98px) { .tenant-metrics-grid,.tenant-detail-metrics { grid-template-columns:1fr; } .settings-card { padding:17px; } .tenant-table-heading { padding:15px; } .license-card { display:flex; } .license-card-icon { margin-bottom:14px; } }


/* Sprint 7 - Mensalidades, avisos e bloqueio */
.nav-alert-badge { display:inline-grid; min-width:21px; height:21px; margin-left:auto; padding:0 6px; place-items:center; border:1px solid rgba(255,255,255,.28); border-radius:999px; background:#f04438; color:#fff; font-size:.64rem; font-weight:800; line-height:1; }
.tenant-heading-actions { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:9px; }
.billing-page { display:flex; flex-direction:column; gap:20px; }
.billing-metrics-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.billing-metrics-grid article { display:flex; align-items:center; gap:13px; padding:18px; border:1px solid var(--border); border-radius:15px; background:#fff; box-shadow:var(--shadow-sm); }
.billing-metrics-grid i { display:grid; width:44px; height:44px; flex:0 0 auto; place-items:center; border-radius:12px; background:var(--primary-soft); color:var(--primary); font-size:1.12rem; }
.billing-metrics-grid div { display:flex; min-width:0; flex-direction:column; }
.billing-metrics-grid strong { color:var(--heading); font-size:1.26rem; line-height:1.05; }
.billing-metrics-grid span { margin-top:5px; color:var(--text-soft); font-size:.72rem; }
.billing-metrics-grid .billing-danger i { background:#fef3f2; color:#d92d20; }
.billing-metrics-grid .billing-warning i { background:#fffaeb; color:#dc6803; }
.billing-metrics-grid .billing-info i { background:#eff8ff; color:#1570ef; }
.billing-critical-alert { display:flex; align-items:center; gap:13px; padding:15px 17px; border:1px solid #fecdca; border-radius:14px; background:#fef3f2; color:#912018; }
.billing-critical-alert > i { font-size:1.35rem; }
.billing-critical-alert div { display:flex; flex-direction:column; }
.billing-critical-alert strong { font-size:.84rem; }
.billing-critical-alert span { margin-top:3px; font-size:.74rem; }
.billing-table td small { display:block; margin-top:3px; color:var(--text-soft); font-size:.68rem; }
.billing-row-overdue { background:#fff8f7; }
.billing-actions { display:flex; align-items:center; justify-content:flex-end; gap:7px; }
.billing-modal-summary { display:flex; align-items:center; gap:12px; margin-bottom:18px; padding:14px; border:1px solid var(--border); border-radius:13px; background:var(--surface-soft); }
.billing-modal-summary > i { display:grid; width:42px; height:42px; flex:0 0 auto; place-items:center; border-radius:12px; background:var(--primary-soft); color:var(--primary); font-size:1.1rem; }
.billing-modal-summary div { display:flex; min-width:0; flex-direction:column; }
.billing-modal-summary strong { color:var(--heading); }
.billing-modal-summary span { margin-top:3px; color:var(--text-soft); font-size:.74rem; }
.billing-modal-note { display:flex; align-items:flex-start; gap:8px; margin:16px 0 0; color:var(--text-soft); font-size:.72rem; line-height:1.45; }
@media (max-width:1199.98px) { .billing-metrics-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:767.98px) {
    .tenant-heading-actions { align-items:stretch; justify-content:flex-start; flex-direction:column; width:100%; }
    .tenant-heading-actions .btn { width:100%; }
    .billing-actions { width:100%; }
    .billing-actions .btn { flex:1; }
    .billing-critical-alert { align-items:flex-start; }
}
@media (max-width:479.98px) { .billing-metrics-grid { grid-template-columns:1fr; } }


/* Sprint 8 - Financeiro operacional e remuneração */
.entity-page,.finance-page{display:flex;flex-direction:column;gap:20px}.entity-page-header,.finance-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:22px}.entity-page-header h1,.finance-heading h1{margin:7px 0 6px;color:var(--heading);font-size:clamp(1.65rem,3vw,2.2rem);font-weight:780;letter-spacing:-.035em}.entity-page-header p,.finance-heading p{max-width:760px;margin:0;color:var(--text-soft)}.entity-form-grid{display:grid;grid-template-columns:minmax(0,1fr) 290px;align-items:start;gap:18px}.entity-form-main{display:flex;min-width:0;flex-direction:column;gap:18px}.entity-form-side{min-width:0}.form-side-icon{display:grid;width:48px;height:48px;margin-bottom:14px;place-items:center;border-radius:14px;background:var(--primary-soft);color:var(--primary);font-size:1.25rem}.entity-form-side h2{margin:0 0 8px;color:var(--heading);font-size:1rem}.entity-form-side p{color:var(--text-soft);font-size:.78rem;line-height:1.55}.form-text{display:block;margin-top:5px;color:var(--text-soft);font-size:.69rem}.remuneration-note{display:flex;align-items:flex-start;gap:9px;padding:12px 14px;border:1px solid rgba(var(--primary-rgb),.18);border-radius:12px;background:var(--primary-soft);color:#344054;font-size:.74rem;line-height:1.45}.remuneration-note i{margin-top:1px;color:var(--primary)}.remuneration-field-hidden{display:none!important}.driver-table td small{display:block;margin-top:3px;color:var(--text-soft);font-size:.68rem}.driver-actions{white-space:nowrap;text-align:right}.driver-actions form{display:inline-block}.finance-heading-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:9px}.finance-period-filter{display:flex;align-items:flex-end;gap:10px;padding:14px 16px;border:1px solid var(--border);border-radius:14px;background:#fff;box-shadow:var(--shadow-sm)}.finance-period-filter>div{display:flex;flex-direction:column;gap:5px}.finance-period-filter label{color:var(--text-soft);font-size:.7rem;font-weight:700}.finance-metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.finance-metrics-grid article{display:flex;min-width:0;align-items:center;gap:13px;padding:18px;border:1px solid var(--border);border-radius:15px;background:#fff;box-shadow:var(--shadow-sm)}.finance-metrics-grid article>div{display:flex;min-width:0;flex-direction:column}.finance-metrics-grid small{color:var(--text-soft);font-size:.72rem}.finance-metrics-grid strong{margin-top:3px;color:var(--heading);font-size:1.25rem;line-height:1.1}.finance-metrics-grid span:not(.finance-metric-icon){margin-top:5px;color:var(--text-soft);font-size:.68rem}.finance-metric-icon{display:grid;width:44px;height:44px;flex:0 0 auto;place-items:center;border-radius:12px;font-size:1.08rem}.finance-metric-icon.income{background:var(--success-soft);color:var(--success)}.finance-metric-icon.expense{background:var(--danger-soft);color:var(--danger)}.finance-metric-icon.balance{background:var(--primary-soft);color:var(--primary)}.finance-metric-icon.realized{background:#eff8ff;color:#1570ef}.finance-metrics-three{grid-template-columns:repeat(3,minmax(0,1fr))}.finance-breakdown-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.finance-breakdown-grid article{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:3px 11px;padding:15px;border:1px solid var(--border);border-radius:14px;background:#fff;box-shadow:var(--shadow-sm)}.finance-breakdown-grid i{grid-row:1/3;display:grid;width:39px;height:39px;place-items:center;border-radius:11px;background:var(--primary-soft);color:var(--primary)}.finance-breakdown-grid span{color:var(--text-soft);font-size:.69rem}.finance-breakdown-grid strong{color:var(--heading);font-size:1rem}.finance-shortcuts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.finance-shortcuts-grid>a{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:19px;border:1px solid var(--border);border-radius:15px;background:#fff;color:inherit;text-decoration:none;box-shadow:var(--shadow-sm);transition:.18s ease}.finance-shortcuts-grid>a:hover{transform:translateY(-2px);border-color:rgba(var(--primary-rgb),.28);box-shadow:var(--shadow-md)}.finance-shortcuts-grid>a>span{display:grid;width:44px;height:44px;place-items:center;border-radius:12px;background:var(--primary-soft);color:var(--primary)}.finance-shortcuts-grid div{display:flex;flex-direction:column}.finance-shortcuts-grid strong{color:var(--heading);font-size:.9rem}.finance-shortcuts-grid small{margin-top:4px;color:var(--text-soft);font-size:.7rem}.finance-shortcuts-grid>a>i{color:#98a2b3}.finance-lists-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.finance-list-card{overflow:hidden;border:1px solid var(--border);border-radius:15px;background:#fff;box-shadow:var(--shadow-sm)}.finance-list-card>header{padding:15px 17px;border-bottom:1px solid var(--border)}.finance-list-card h2{margin:0;color:var(--heading);font-size:.9rem}.finance-compact-list{display:flex;flex-direction:column}.finance-compact-list>div{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;padding:13px 16px;border-bottom:1px solid #eef0f3}.finance-compact-list>div:last-child{border-bottom:0}.finance-compact-list>div>div,.finance-compact-list>div>span:last-child{display:flex;min-width:0;flex-direction:column}.finance-compact-list strong{overflow:hidden;color:var(--heading);font-size:.76rem;text-overflow:ellipsis;white-space:nowrap}.finance-compact-list small{margin-top:3px;color:var(--text-soft);font-size:.65rem}.finance-compact-list>div>span:last-child{align-items:flex-end}.finance-list-icon{display:grid;width:35px;height:35px;place-items:center;border-radius:10px}.finance-list-icon.receita{background:var(--success-soft);color:var(--success)}.finance-list-icon.despesa{background:var(--danger-soft);color:var(--danger)}.finance-empty{margin:0;padding:28px;color:var(--text-soft);font-size:.76rem;text-align:center}.finance-rule-alert{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border:1px solid rgba(var(--primary-rgb),.18);border-radius:14px;background:var(--primary-soft)}.finance-rule-alert>i{color:var(--primary);font-size:1.15rem}.finance-rule-alert div{display:flex;flex-direction:column}.finance-rule-alert strong{color:var(--heading);font-size:.8rem}.finance-rule-alert span{margin-top:4px;color:var(--text-soft);font-size:.72rem}.driver-payment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.driver-payment-grid article{padding:16px;border:1px solid var(--border);border-radius:14px;background:#fff;box-shadow:var(--shadow-sm)}.driver-payment-grid header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.driver-payment-grid header>div{display:flex;min-width:0;flex-direction:column}.driver-payment-grid header strong{color:var(--heading);font-size:.82rem}.driver-payment-grid header small{margin-top:3px;color:var(--text-soft);font-size:.66rem}.driver-payment-grid header>span{color:var(--danger);font-size:.84rem;font-weight:760}.driver-payment-grid article>div{display:grid;grid-template-columns:1fr auto;gap:7px 12px;margin:14px 0;padding:12px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.driver-payment-grid article>div small{color:var(--text-soft);font-size:.68rem}.driver-payment-grid article>div strong{color:var(--heading);font-size:.73rem;text-align:right}.report-table td>small{display:block;margin-top:3px;color:var(--text-soft);font-size:.67rem}
@media(max-width:1199.98px){.finance-metrics-grid,.finance-breakdown-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.driver-payment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.entity-form-grid{grid-template-columns:minmax(0,1fr) 260px}}
@media(max-width:991.98px){.entity-form-grid{grid-template-columns:1fr}.entity-form-side{order:-1}.finance-lists-grid{grid-template-columns:1fr}.finance-period-filter{flex-wrap:wrap}.finance-period-filter>div{flex:1 1 180px}}
@media(max-width:767.98px){.entity-page-header,.finance-heading{align-items:stretch;flex-direction:column}.entity-page-header .btn,.finance-heading-actions{width:100%}.finance-heading-actions{display:grid;grid-template-columns:1fr}.finance-heading-actions .btn{width:100%}.finance-metrics-grid,.finance-metrics-three,.finance-breakdown-grid,.finance-shortcuts-grid,.driver-payment-grid{grid-template-columns:1fr}.finance-period-filter{align-items:stretch;flex-direction:column}.finance-period-filter>div{width:100%}.finance-period-filter .btn{width:100%}.driver-table-card .table-responsive{overflow:visible}.driver-table thead{display:none}.driver-table,.driver-table tbody,.driver-table tr,.driver-table td{display:block;width:100%}.driver-table tbody{padding:10px}.driver-table tbody tr{margin-bottom:10px;overflow:hidden;border:1px solid var(--border);border-radius:12px}.driver-table tbody td{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:10px 12px;text-align:right}.driver-table tbody td::before{flex:0 0 34%;color:var(--text-soft);content:attr(data-label);font-size:.67rem;font-weight:730;text-align:left;text-transform:uppercase}.driver-table tbody td>small{max-width:60%}.driver-actions{display:flex!important;justify-content:flex-end!important}.driver-actions::before{display:none}.driver-actions form{margin-left:5px}.finance-compact-list>div{grid-template-columns:auto minmax(0,1fr)}.finance-compact-list>div>span:last-child{grid-column:2;align-items:flex-start}}
@media(max-width:479.98px){.settings-card{padding:17px}.finance-metrics-grid article,.finance-breakdown-grid article{padding:15px}.finance-shortcuts-grid>a{padding:16px}.finance-rule-alert{align-items:flex-start}}

/* Sprint 9 - Central de Suporte e Auditoria */
.support-page,.audit-page{display:flex;flex-direction:column;gap:20px}.support-heading,.support-ticket-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.support-heading h1,.support-ticket-heading h1{margin:3px 0 6px;color:var(--heading);font-size:clamp(1.45rem,2.4vw,2rem);font-weight:780}.support-heading p,.support-ticket-heading p{max-width:760px;margin:0;color:var(--text-soft);font-size:.82rem}.support-heading-form{display:block}.support-metrics-grid,.audit-metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.support-metrics-grid article,.audit-metrics-grid article{display:flex;align-items:center;gap:13px;padding:18px;border:1px solid var(--border);border-radius:15px;background:#fff;box-shadow:var(--shadow-sm)}.support-metrics-grid i,.audit-metrics-grid i{display:grid;width:44px;height:44px;flex:0 0 auto;place-items:center;border-radius:12px;background:var(--primary-soft);color:var(--primary);font-size:1.12rem}.support-metrics-grid strong,.audit-metrics-grid strong{display:block;color:var(--heading);font-size:1.25rem;line-height:1}.support-metrics-grid span,.audit-metrics-grid span{display:block;margin-top:5px;color:var(--text-soft);font-size:.72rem}.support-filters,.audit-filters{display:grid;grid-template-columns:minmax(210px,1.4fr) repeat(4,minmax(140px,.75fr)) auto;align-items:end;gap:11px;padding:16px;border:1px solid var(--border);border-radius:15px;background:#fff;box-shadow:var(--shadow-sm)}.audit-filters{grid-template-columns:minmax(190px,1.2fr) repeat(6,minmax(125px,.7fr)) auto}.support-filters label,.audit-filters label{display:block;margin-bottom:6px;color:#475467;font-size:.69rem;font-weight:700}.support-filter-actions,.audit-filter-actions{display:flex;gap:7px}.support-list-card{overflow:hidden;border:1px solid var(--border);border-radius:16px;background:#fff;box-shadow:var(--shadow-sm)}.support-list-card>header{display:flex;align-items:center;justify-content:space-between;padding:17px 20px;border-bottom:1px solid var(--border)}.support-list-card>header h2{margin:0;color:var(--heading);font-size:1rem;font-weight:740}.support-list-card>header span{color:var(--text-soft);font-size:.72rem}.support-table thead th,.audit-table thead th{padding:13px 15px;background:var(--surface-soft);color:#475467;font-size:.67rem;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.support-table tbody td,.audit-table tbody td{padding:14px 15px;border-color:#eef0f3;color:#475467;font-size:.78rem;vertical-align:middle}.support-table td strong,.support-table td small,.audit-table td strong,.audit-table td small{display:block}.support-table td strong,.audit-table td strong{color:var(--heading);font-weight:690}.support-table td small,.audit-table td small{margin-top:3px;color:var(--text-soft);font-size:.67rem}.support-actions{text-align:right;white-space:nowrap}.support-row-urgent{background:#fff8f7}.support-status,.support-priority,.audit-action-chip{display:inline-flex;align-items:center;min-height:29px;padding:5px 9px;border-radius:999px;font-size:.68rem;font-weight:740;white-space:nowrap}.support-status.status-open{background:#eff8ff;color:#175cd3}.support-status.status-analysis{background:#f4f3ff;color:#5925dc}.support-status.status-waiting{background:#fffaeb;color:#b54708}.support-status.status-resolved{background:#ecfdf3;color:#067647}.support-status.status-closed{background:#f2f4f7;color:#475467}.support-priority{background:#f2f4f7;color:#475467}.support-priority.priority-urgente{background:#fef3f2;color:#b42318}.support-priority.priority-alta{background:#fff6ed;color:#c4320a}.support-priority.priority-normal{background:#eff8ff;color:#175cd3}.support-priority.priority-baixa{background:#f2f4f7;color:#475467}.support-tenant-name{color:var(--heading);font-weight:650}.support-empty{display:flex;align-items:center;flex-direction:column;gap:7px;padding:50px 24px;color:var(--text-soft);text-align:center}.support-empty i{font-size:2rem;color:#98a2b3}.support-empty strong{color:var(--heading);font-size:.9rem}.support-empty span{font-size:.75rem}.support-form-layout,.support-ticket-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;align-items:start;gap:18px}.support-form-main,.support-conversation-column{display:flex;min-width:0;flex-direction:column;gap:18px}.support-form-side,.support-ticket-sidebar{min-width:0}.support-help-icon{display:grid;width:50px;height:50px;margin-bottom:14px;place-items:center;border-radius:14px;background:var(--primary-soft);color:var(--primary);font-size:1.3rem}.support-help-list{display:flex;flex-direction:column;gap:10px;margin:17px 0;padding:0;list-style:none}.support-help-list li{position:relative;padding-left:20px;color:#475467;font-size:.75rem;line-height:1.45}.support-help-list li:before{position:absolute;top:3px;left:0;color:var(--primary);font-family:"bootstrap-icons";content:"\f26a"}.support-origin{display:flex;flex-direction:column;gap:5px;margin-bottom:16px;padding:11px;border:1px solid var(--border);border-radius:11px;background:var(--surface-soft)}.support-origin span{color:var(--text-soft);font-size:.66rem}.support-origin code{overflow:hidden;color:var(--heading);font-size:.7rem;text-overflow:ellipsis}.form-text{display:block;margin-top:6px;color:var(--text-soft);font-size:.68rem}.support-ticket-title{display:flex;align-items:center;gap:10px;margin-bottom:8px}.support-ticket-title>span:last-child{color:var(--text-soft);font-size:.75rem;font-weight:680}.support-conversation{display:flex;flex-direction:column;gap:13px}.support-message{padding:17px;border:1px solid var(--border);border-radius:15px;background:#fff;box-shadow:var(--shadow-sm)}.support-message.from-cliven{border-left:4px solid var(--primary);background:linear-gradient(90deg,var(--primary-soft),#fff 18%)}.support-message header{display:flex;align-items:center;gap:11px;margin-bottom:13px}.support-message-avatar{display:grid;width:38px;height:38px;flex:0 0 auto;place-items:center;border-radius:11px;background:var(--surface-soft);color:#475467}.support-message.from-cliven .support-message-avatar{background:var(--primary-soft);color:var(--primary)}.support-message header strong,.support-message header span{display:block}.support-message header strong{color:var(--heading);font-size:.79rem}.support-message header span{margin-top:2px;color:var(--text-soft);font-size:.66rem}.support-message-body{color:#344054;font-size:.8rem;line-height:1.65;overflow-wrap:anywhere}.support-attachment{display:flex;align-items:center;gap:11px;margin-top:14px;padding:11px 12px;border:1px solid var(--border);border-radius:11px;background:var(--surface-soft);color:var(--heading);text-decoration:none}.support-attachment:hover{border-color:rgba(var(--primary-rgb),.35);color:var(--primary)}.support-attachment>i:first-child{font-size:1.05rem}.support-attachment>span{display:flex;min-width:0;flex:1;flex-direction:column}.support-attachment strong{overflow:hidden;font-size:.72rem;text-overflow:ellipsis;white-space:nowrap}.support-attachment small{color:var(--text-soft);font-size:.63rem}.support-reply-card{margin-top:2px}.support-ticket-meta{display:flex;flex-direction:column;margin:0}.support-ticket-meta>div{display:flex;justify-content:space-between;gap:13px;padding:10px 0;border-bottom:1px solid var(--border)}.support-ticket-meta dt{color:var(--text-soft);font-size:.68rem;font-weight:620}.support-ticket-meta dd{max-width:62%;margin:0;color:var(--heading);font-size:.72rem;font-weight:670;text-align:right;overflow-wrap:anywhere}.support-ticket-meta code{font-size:.65rem}.support-contact-card{display:flex;align-items:flex-start;gap:10px;margin-top:16px;padding:12px;border-radius:12px;background:var(--primary-soft);color:var(--primary)}.support-contact-card>i{margin-top:1px}.support-contact-card strong,.support-contact-card span{display:block}.support-contact-card strong{font-size:.72rem}.support-contact-card span{margin-top:3px;font-size:.65rem;line-height:1.45}.audit-action-chip{background:var(--primary-soft);color:var(--primary)}.audit-table td:nth-last-child(2){min-width:230px}.audit-table td:last-child{min-width:130px}.audit-table td:last-child span,.audit-table td:last-child small{display:block}.audit-table td:last-child small{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:1399.98px){.support-filters{grid-template-columns:minmax(200px,1.3fr) repeat(2,minmax(135px,.7fr))}.support-filters>div:nth-of-type(n+4){grid-row:2}.support-filter-actions{grid-row:2}.audit-filters{grid-template-columns:repeat(4,minmax(145px,1fr))}.audit-filter-search{grid-column:span 2}}
@media(max-width:991.98px){.support-metrics-grid,.audit-metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.support-form-layout,.support-ticket-layout{grid-template-columns:1fr}.support-form-side,.support-ticket-sidebar{order:-1}.support-ticket-sidebar .sticky-settings-card{position:static}.support-filters,.audit-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.support-filter-search,.audit-filter-search{grid-column:1/-1}.support-filter-actions,.audit-filter-actions{grid-row:auto}}
@media(max-width:767.98px){.support-heading,.support-ticket-heading{align-items:stretch;flex-direction:column}.support-heading>.btn{align-self:flex-start}.support-list-card .table-responsive{overflow:visible}.support-table thead,.audit-table thead{display:none}.support-table,.support-table tbody,.support-table tr,.support-table td,.audit-table,.audit-table tbody,.audit-table tr,.audit-table td{display:block;width:100%}.support-table tbody,.audit-table tbody{padding:10px}.support-table tbody tr,.audit-table tbody tr{margin-bottom:10px;overflow:hidden;border:1px solid var(--border);border-radius:12px;background:#fff}.support-table tbody td,.audit-table tbody td{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:10px 12px;text-align:right}.support-table tbody td:before,.audit-table tbody td:before{flex:0 0 36%;color:var(--text-soft);content:attr(data-label);font-size:.64rem;font-weight:730;text-align:left;text-transform:uppercase}.support-table tbody td>*{margin-left:auto}.support-actions:before{display:none!important}.support-actions .btn{width:100%}.audit-table td:nth-last-child(2),.audit-table td:last-child{min-width:0}.support-message{padding:14px}.support-ticket-meta dd{max-width:58%}}
@media(max-width:575.98px){.support-metrics-grid,.audit-metrics-grid,.support-filters,.audit-filters{grid-template-columns:1fr}.support-filter-search,.audit-filter-search{grid-column:auto}.support-filter-actions,.audit-filter-actions{display:grid;grid-template-columns:1fr 1fr}.support-form-layout .settings-card,.support-ticket-layout .settings-card{padding:16px}.support-ticket-title{align-items:flex-start;flex-direction:column}.support-attachment{align-items:flex-start}.support-table tbody td,.audit-table tbody td{gap:10px}.support-table tbody td:before,.audit-table tbody td:before{flex-basis:34%}}

/* =========================================================
   Sprint 10 — responsividade total e preparação para lançamento
   ========================================================= */

.skip-link {
    position: fixed;
    top: 8px;
    left: 8px;
    z-index: 2000;
    transform: translateY(-140%);
    padding: 10px 14px;
    border-radius: 9px;
    background: #101828;
    color: #fff;
    font-weight: 700;
    text-decoration: none;
    transition: transform .15s ease;
}

.skip-link:focus {
    transform: translateY(0);
    color: #fff;
}

.mobile-search-toggle,
.mobile-quick-nav {
    display: none;
}

.network-status {
    position: fixed;
    top: max(10px, env(safe-area-inset-top));
    left: 50%;
    z-index: 2100;
    display: flex;
    width: min(92vw, 560px);
    align-items: center;
    justify-content: center;
    gap: 9px;
    transform: translateX(-50%);
    padding: 11px 15px;
    border-radius: 12px;
    box-shadow: 0 12px 32px rgba(16, 24, 40, .18);
    font-size: .82rem;
    font-weight: 700;
}

.network-status[hidden] {
    display: none;
}

.network-status.is-offline {
    border: 1px solid #fecdca;
    background: #fef3f2;
    color: #b42318;
}

.network-status.is-online {
    border: 1px solid #abefc6;
    background: #ecfdf3;
    color: #027a48;
}

.content img,
.content svg,
.content video,
.content canvas {
    max-width: 100%;
}

.content pre,
.content code,
.content .text-break-mobile {
    overflow-wrap: anywhere;
    word-break: break-word;
}

.content .btn,
.sidebar button,
.mobile-quick-nav a,
.mobile-quick-nav button {
    touch-action: manipulation;
}

.content .form-control,
.content .form-select,
.login-form .form-control {
    max-width: 100%;
}

.modal-content {
    overflow: hidden;
    border: 0;
    border-radius: 16px;
    box-shadow: 0 24px 64px rgba(16, 24, 40, .22);
}

.modal-header,
.modal-footer {
    flex: 0 0 auto;
}

.modal-body {
    overscroll-behavior: contain;
}

.responsive-card-table td,
.responsive-card-table th {
    vertical-align: middle;
}

.responsive-card-table td:last-child .btn,
.responsive-card-table td:last-child form {
    margin-top: 2px;
    margin-bottom: 2px;
}

@media (max-width: 991.98px) {
    .sidebar {
        padding-top: env(safe-area-inset-top);
        padding-bottom: env(safe-area-inset-bottom);
    }

    .sidebar-open .sidebar-backdrop {
        backdrop-filter: blur(2px);
    }

    .page-content {
        max-width: 100%;
    }

    .content .container,
    .content .container-fluid {
        max-width: 100%;
        padding-right: 0;
        padding-left: 0;
    }
}

@media (max-width: 767.98px) {
    html {
        scroll-padding-top: 82px;
    }

    body {
        padding-bottom: calc(70px + env(safe-area-inset-bottom));
    }

    body.login-body {
        padding-bottom: env(safe-area-inset-bottom);
    }

    .topbar {
        min-height: 64px;
        padding-top: calc(9px + env(safe-area-inset-top));
        padding-right: 14px;
        padding-bottom: 9px;
        padding-left: 14px;
    }

    .topbar-left {
        flex: 1;
    }

    .page-heading {
        min-width: 0;
    }

    .page-heading strong,
    .page-eyebrow {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .page-heading strong {
        max-width: min(56vw, 290px);
        font-size: .98rem;
    }

    .page-eyebrow {
        max-width: min(52vw, 270px);
        font-size: .66rem;
    }

    .topbar-tools {
        width: auto;
        flex: 0 0 auto;
        order: initial;
    }

    .mobile-search-toggle {
        display: grid;
        width: 42px;
        height: 42px;
        place-items: center;
        border: 1px solid var(--border);
        border-radius: 11px;
        background: #fff;
        color: var(--heading);
        font-size: 1.05rem;
    }

    .global-search {
        position: absolute;
        top: calc(100% + 8px);
        right: 14px;
        left: 14px;
        display: none;
        width: auto;
        padding: 10px;
        border: 1px solid var(--border);
        border-radius: 14px;
        background: #fff;
        box-shadow: 0 14px 34px rgba(16, 24, 40, .16);
    }

    .global-search.is-open {
        display: block;
        animation: sprint10SearchIn .16s ease-out;
    }

    .content .global-search .form-control {
        min-height: 46px;
        font-size: 16px;
    }

    @keyframes sprint10SearchIn {
        from { opacity: 0; transform: translateY(-5px); }
        to { opacity: 1; transform: translateY(0); }
    }

    .page-content {
        padding-top: 18px;
        padding-right: 14px;
        padding-bottom: 24px;
        padding-left: 14px;
    }

    .content h1,
    .content h2 {
        overflow-wrap: anywhere;
    }

    .content h2 {
        margin-bottom: 16px;
        font-size: 1.38rem;
    }

    .content .card-body,
    .content .card-header {
        padding-right: 15px;
        padding-left: 15px;
    }

    .content .form-control,
    .content .form-select,
    .login-form .form-control {
        min-height: 46px;
        font-size: 16px;
    }

    .content textarea.form-control {
        min-height: 110px;
    }

    .content .form-check-input {
        width: 1.2rem;
        height: 1.2rem;
    }

    .content .btn:not(.btn-sm),
    .modal .btn:not(.btn-sm) {
        min-height: 44px;
    }

    .content .btn-sm,
    .modal .btn-sm {
        min-height: 38px;
        padding-right: 11px;
        padding-left: 11px;
    }

    .content .d-flex.gap-2.mb-3,
    .content .d-flex.justify-content-between,
    .content .d-flex.align-items-center.justify-content-between {
        flex-wrap: wrap;
    }

    .content .d-flex.gap-2.mb-3 > .btn,
    .content .d-flex.justify-content-between > .btn {
        flex: 1 1 180px;
    }

    .table-responsive {
        overflow: visible;
    }

    .responsive-card-table {
        display: block;
        width: 100%;
        margin-bottom: 0;
        border: 0 !important;
        background: transparent !important;
    }

    .responsive-card-table thead {
        display: none;
    }

    .responsive-card-table tbody {
        display: grid;
        gap: 12px;
        width: 100%;
    }

    .responsive-card-table tr {
        display: block;
        overflow: hidden;
        width: 100%;
        border: 1px solid var(--border) !important;
        border-radius: 14px;
        background: #fff;
        box-shadow: var(--shadow-sm);
    }

    .responsive-card-table td {
        display: flex;
        width: 100%;
        min-height: 43px;
        align-items: flex-start;
        justify-content: space-between;
        gap: 14px;
        padding: 10px 12px !important;
        border: 0 !important;
        border-bottom: 1px solid #eef1f5 !important;
        text-align: right;
        overflow-wrap: anywhere;
    }

    .responsive-card-table td:last-child {
        border-bottom: 0 !important;
    }

    .responsive-card-table td::before {
        flex: 0 0 34%;
        color: var(--text-soft);
        content: attr(data-label);
        font-size: .66rem;
        font-weight: 750;
        letter-spacing: .03em;
        text-align: left;
        text-transform: uppercase;
    }

    .responsive-card-table td > form,
    .responsive-card-table td > div,
    .responsive-card-table td > span,
    .responsive-card-table td > strong,
    .responsive-card-table td > a {
        max-width: 64%;
        margin-left: auto;
    }

    .responsive-card-table td > form {
        display: flex;
        flex-wrap: wrap;
        justify-content: flex-end;
        gap: 7px;
    }

    .responsive-card-table td .btn {
        margin: 2px;
    }

    .responsive-card-table tr.responsive-empty-row td {
        display: block;
        max-width: none;
        padding: 22px 14px !important;
        text-align: center;
    }

    .responsive-card-table tr.responsive-empty-row td::before {
        display: none;
    }

    .modal-dialog,
    .modal-dialog-centered,
    .modal-dialog-scrollable {
        width: 100%;
        max-width: none;
        min-height: 100%;
        margin: 0;
    }

    .modal-content {
        min-height: 100vh;
        min-height: 100dvh;
        border-radius: 0;
    }

    .modal-header {
        padding-top: calc(14px + env(safe-area-inset-top));
    }

    .modal-footer {
        display: grid;
        grid-template-columns: 1fr 1fr;
        padding-bottom: calc(14px + env(safe-area-inset-bottom));
    }

    .modal-footer .btn {
        width: 100%;
        margin: 0;
    }

    .mobile-quick-nav {
        position: fixed;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 1030;
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        min-height: calc(62px + env(safe-area-inset-bottom));
        padding: 6px 5px calc(6px + env(safe-area-inset-bottom));
        border-top: 1px solid rgba(228, 231, 236, .95);
        background: rgba(255, 255, 255, .96);
        box-shadow: 0 -8px 28px rgba(16, 24, 40, .08);
        backdrop-filter: blur(14px);
    }

    .mobile-quick-nav a,
    .mobile-quick-nav button {
        display: flex;
        min-width: 0;
        min-height: 50px;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        gap: 2px;
        padding: 4px 2px;
        border: 0;
        border-radius: 10px;
        background: transparent;
        color: #667085;
        font-size: .62rem;
        font-weight: 700;
        text-decoration: none;
    }

    .mobile-quick-nav i {
        font-size: 1.15rem;
    }

    .mobile-quick-nav a.active {
        background: var(--primary-soft);
        color: var(--primary);
    }

    .app-footer {
        display: none;
    }

    .login-body {
        padding-top: max(14px, env(safe-area-inset-top));
        padding-right: 14px;
        padding-left: 14px;
    }
}

@media (max-width: 479.98px) {
    .page-heading strong {
        max-width: 48vw;
    }

    .responsive-card-table td {
        gap: 9px;
    }

    .responsive-card-table td::before {
        flex-basis: 31%;
    }

    .responsive-card-table td > form,
    .responsive-card-table td > div,
    .responsive-card-table td > span,
    .responsive-card-table td > strong,
    .responsive-card-table td > a {
        max-width: 67%;
    }

    .modal-footer {
        grid-template-columns: 1fr;
    }
}

@media (orientation: landscape) and (max-height: 560px) and (max-width: 991.98px) {
    .sidebar-brand {
        min-height: 68px;
        padding-top: 10px;
        padding-bottom: 10px;
    }

    .sidebar-tenant {
        margin-top: 8px;
    }

    .nav-section {
        margin-top: 10px;
    }

    .sidebar .nav-link {
        min-height: 40px;
        padding-top: 7px;
        padding-bottom: 7px;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* Sprint 10 - filtros operacionais e detalhes de viagem */
.operation-filter-card {
    margin-bottom: 20px;
}

.operation-filter-grid {
    display: grid;
    gap: 14px;
}

.operation-filter-grid-packages {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.operation-filter-grid-trips {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.operation-filter-actions {
    display: flex;
    justify-content: flex-end;
    gap: 9px;
    margin-top: 16px;
}

.trip-detail-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 20px;
}

.trip-detail-summary article {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 13px;
    padding: 17px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: #fff;
    box-shadow: var(--shadow-sm);
}

.trip-detail-summary article > span {
    display: grid;
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    place-items: center;
    border-radius: 11px;
    background: var(--primary-soft);
    color: var(--primary);
}

.trip-detail-summary article > div {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 3px;
}

.trip-detail-summary small {
    color: var(--text-soft);
    font-size: .69rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.trip-detail-summary strong {
    overflow: hidden;
    color: var(--heading);
    font-size: .86rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.trip-detail-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 18px;
}

@media (max-width: 1199.98px) {
    .operation-filter-grid-packages,
    .operation-filter-grid-trips,
    .trip-detail-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .operation-filter-grid-packages,
    .operation-filter-grid-trips,
    .trip-detail-summary {
        grid-template-columns: 1fr;
    }

    .operation-filter-actions,
    .trip-detail-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .operation-filter-actions .btn,
    .trip-detail-actions .btn,
    .trip-detail-actions form,
    .trip-detail-actions form .btn {
        width: 100%;
    }

    .mobile-quick-nav {
        grid-template-columns: repeat(auto-fit, minmax(58px, 1fr));
    }
}

/* Beta 12 - finalização de viagem e comprovantes */
.trip-close-list {
    display: grid;
    gap: 16px;
}

.trip-close-card {
    overflow: hidden;
    border: 1px solid var(--border);
    border-radius: 16px;
    background: #fff;
    box-shadow: var(--shadow-sm);
}

.trip-close-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 18px;
    border-bottom: 1px solid var(--border);
    background: #f8fafc;
}

.trip-close-card-header > div {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 12px;
}

.trip-close-card-header strong,
.trip-close-card-header small {
    display: block;
}

.trip-close-card-header small {
    margin-top: 2px;
    color: var(--text-soft);
}

.trip-close-number {
    display: grid;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    place-items: center;
    border-radius: 11px;
    background: var(--primary-soft);
    color: var(--primary);
    font-weight: 800;
}

.delivery-return-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 9px 12px;
    border: 1px solid #fecaca;
    border-radius: 999px;
    background: #fff1f2;
    color: #b91c1c;
    font-weight: 700;
    cursor: pointer;
}

.delivery-return-toggle input {
    width: 18px;
    height: 18px;
    margin: 0;
}

.trip-close-recipient {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    padding: 14px 18px 0;
}

.trip-close-recipient div {
    min-width: 0;
}

.trip-close-recipient small,
.trip-close-recipient strong {
    display: block;
}

.trip-close-recipient small {
    color: var(--text-soft);
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
}

.trip-close-recipient strong {
    margin-top: 3px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.delivery-result-fields,
.delivery-return-fields {
    padding: 16px 18px 18px;
}

.delivery-return-fields {
    background: #fff7ed;
}

.trip-close-submit {
    position: sticky;
    bottom: 14px;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-top: 20px;
    padding: 16px 18px;
    border: 1px solid var(--border);
    border-radius: 16px;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 15px 35px rgba(15, 23, 42, .14);
    backdrop-filter: blur(10px);
}

.trip-close-submit strong,
.trip-close-submit span {
    display: block;
}

.trip-close-submit span {
    margin-top: 3px;
    color: var(--text-soft);
    font-size: .84rem;
}

.package-label-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.package-label-actions .label-count {
    min-width: 22px;
    padding: 2px 7px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .2);
    text-align: center;
    font-size: .78rem;
}

.label-selection-cell {
    width: 42px;
    text-align: center;
}

.delivery-proof-card {
    margin-top: 18px;
}

.delivery-proof-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.delivery-proof-grid > div {
    min-width: 0;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: #f8fafc;
}

.delivery-proof-grid small,
.delivery-proof-grid strong {
    display: block;
}

.delivery-proof-grid small {
    color: var(--text-soft);
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
}

.delivery-proof-grid strong {
    margin-top: 5px;
    overflow-wrap: anywhere;
}

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

@media (max-width: 767.98px) {
    .trip-close-card-header,
    .trip-close-submit {
        align-items: stretch;
        flex-direction: column;
    }

    .delivery-return-toggle {
        justify-content: center;
    }

    .trip-close-recipient,
    .delivery-proof-grid {
        grid-template-columns: 1fr;
    }

    .trip-close-submit {
        bottom: calc(78px + env(safe-area-inset-bottom));
    }

    .trip-close-submit .btn {
        width: 100%;
    }
}

/* RC1 - criação versátil de viagens */
.trip-create-modes {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}
.trip-create-mode {
    cursor: pointer;
    margin: 0;
}
.trip-create-mode > input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.trip-create-mode > span {
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: .85rem;
    align-items: center;
    min-height: 100%;
    padding: 1rem;
    border: 1px solid var(--border-color, #dbe3ef);
    border-radius: 1rem;
    background: #fff;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.trip-create-mode > span > i {
    grid-row: 1 / span 2;
    width: 2.6rem;
    height: 2.6rem;
    display: grid;
    place-items: center;
    border-radius: .8rem;
    background: color-mix(in srgb, var(--primary-color) 12%, white);
    color: var(--primary-color);
    font-size: 1.25rem;
}
.trip-create-mode small {
    color: #64748b;
}
.trip-create-mode input:checked + span {
    border-color: var(--primary-color);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary-color) 14%, transparent);
}
.trip-package-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: end;
    margin-bottom: 1rem;
}
.trip-selection-count {
    min-width: 8rem;
    padding: .7rem 1rem;
    border-radius: .8rem;
    background: #f8fafc;
    text-align: center;
}
.trip-selection-count strong {
    display: block;
    color: var(--primary-color);
    font-size: 1.35rem;
}
.trip-package-selection {
    display: grid;
    gap: .65rem;
    max-height: 34rem;
    overflow: auto;
    padding-right: .25rem;
}
.trip-package-option {
    display: grid;
    grid-template-columns: auto minmax(10rem, .8fr) minmax(12rem, 1fr) minmax(10rem, .8fr);
    gap: .9rem;
    align-items: center;
    padding: .85rem 1rem;
    border: 1px solid #e2e8f0;
    border-radius: .85rem;
    background: #fff;
    cursor: pointer;
}
.trip-package-option:hover {
    border-color: color-mix(in srgb, var(--primary-color) 45%, #e2e8f0);
}
.trip-package-option > input {
    position: absolute;
    opacity: 0;
}
.trip-package-check {
    width: 1.7rem;
    height: 1.7rem;
    border: 2px solid #cbd5e1;
    border-radius: .45rem;
    display: grid;
    place-items: center;
    color: transparent;
}
.trip-package-option:has(input:checked) {
    border-color: var(--primary-color);
    background: color-mix(in srgb, var(--primary-color) 5%, white);
}
.trip-package-option input:checked + .trip-package-check {
    border-color: var(--primary-color);
    background: var(--primary-color);
    color: #fff;
}
.trip-package-option strong,
.trip-package-option small {
    display: block;
}
.trip-package-option small {
    color: #64748b;
    margin-top: .15rem;
}
@media (max-width: 767.98px) {
    .trip-create-modes,
    .trip-package-toolbar {
        grid-template-columns: 1fr;
    }
    .trip-package-option {
        grid-template-columns: auto minmax(0, 1fr);
    }
    .trip-package-option > span:nth-of-type(n+3) {
        grid-column: 2;
    }
    .trip-selection-count {
        width: 100%;
    }
}
