html,
body {
    background: #f6f8fa;
    height: 100%;
    margin: 0;
    font-size: 0.92rem;
    line-height: 1.25;
}
.app-shell {
    min-height: 100vh;
}
.main-card {
    min-height: calc(100vh - 0.75rem);
}
.card-body {
    padding: 0.5rem !important;
}
.compact-title {
    margin-bottom: 0;
    font-size: 1rem;
}
.compact-section-title {
    margin-bottom: 0.35rem;
    font-size: 0.8rem;
}
.compact-form .form-label {
    margin-bottom: 0.1rem;
    font-size: 0.8rem;
}
.compact-form .form-control {
    padding: 0.2rem 0.45rem;
    font-size: 0.85rem;
}
.compact-form .vstack {
    gap: 0.35rem !important;
}
.nav-tabs {
    gap: 0.2rem;
    margin-bottom: 0.5rem !important;
}
.nav-tabs .nav-link {
    padding: 0.2rem 0.45rem;
    font-size: 0.8rem;
    line-height: 1.1;
}
.btn,
.badge {
    font-size: 0.75rem;
    line-height: 1.1;
    padding-top: 0.2rem;
    padding-bottom: 0.2rem;
}
.alert {
    margin-bottom: 0.35rem;
    padding: 0.3rem 0.45rem;
    font-size: 0.8rem;
}
.row.g-4 {
    --bs-gutter-y: 0.4rem;
    --bs-gutter-x: 0.4rem;
}
.small {
    font-size: 0.78rem !important;
}
dl.row dt,
dl.row dd {
    margin-bottom: 0.18rem;
}
.today-layout {
    --bs-gutter-x: 0.4rem;
    --bs-gutter-y: 0.4rem;
}
.today-table-wrap {
    max-height: calc(100vh - 14rem);
    overflow-y: auto;
    border: 1px solid #dee2e6;
    border-radius: 0.35rem;
    background: #fff;
}
.today-table {
    margin-bottom: 0;
    font-size: 0.76rem;
}
.today-table th,
.today-table td {
    padding: 0.2rem 0.3rem;
    vertical-align: middle;
    white-space: nowrap;
}
.today-point-row {
    cursor: pointer;
}
.today-point-row.is-hovered {
    background: #e7f1ff;
}
#map-current,
#map-today {
    width: 100%;
    min-height: calc(100vh - 11rem);
    border-radius: 0.4rem;
}
@media (max-width: 992px) {
    #map-current,
    #map-today {
        min-height: calc(100vh - 15rem);
    }
    .today-table-wrap {
        max-height: 16rem;
    }
}
@media (max-width: 576px) {
    body {
        font-size: 0.88rem;
    }
    .main-card {
        min-height: 100vh;
        border-radius: 0;
    }
    .card {
        border-radius: 0.35rem;
    }
    .compact-title {
        font-size: 0.95rem;
    }
    .nav-tabs .nav-link {
        padding: 0.2rem 0.35rem;
        font-size: 0.76rem;
    }
    #map-current,
    #map-today {
        min-height: calc(100vh - 12rem);
        border-radius: 0.3rem;
    }
    .today-table-wrap {
        max-height: 13rem;
    }
}
