/* Portal client — optimizat pentru telefon (majoritatea traficului) */

.client-portal-body {
    min-height: 100vh;
    min-height: 100dvh;
    padding-left: env(safe-area-inset-left, 0);
    padding-right: env(safe-area-inset-right, 0);
    padding-bottom: env(safe-area-inset-bottom, 0);
    -webkit-text-size-adjust: 100%;
}

.client-portal-shell {
    background: #f5f7fb;
    min-height: 100vh;
    min-height: 100dvh;
}

.client-portal-main {
    min-width: 0;
    min-height: 0;
}

/* Meniu lateral: gradient ca vechiul sidebar, fără clasa .sidebar (evită regulile admin) */
.client-portal-offcanvas {
    --bs-offcanvas-width: min(288px, 88vw);
    background: linear-gradient(180deg, #111827, #1f2937) !important;
}

@media (min-width: 992px) {
    .client-portal-offcanvas.offcanvas-lg {
        width: 280px !important;
        max-width: 280px;
        flex-shrink: 0;
        transform: none !important;
        visibility: visible !important;
        position: sticky;
        top: 0;
        height: 100vh;
        height: 100dvh;
        border-right: 1px solid rgba(255, 255, 255, 0.08);
    }
}

.client-portal-nav-links .nav-link {
    border-radius: 0.5rem;
    min-height: 44px;
    padding: 0.65rem 0.85rem;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
}

.client-portal-nav-links .nav-link:hover,
.client-portal-nav-links .nav-link:focus {
    background: rgba(255, 255, 255, 0.12);
}

.client-portal-nav-links .nav-link:active {
    background: rgba(255, 255, 255, 0.18);
}

.client-portal-content {
    min-width: 0;
}

/* Topbar fixă pe scroll lung */
.client-portal-topbar {
    z-index: 1030;
    flex-shrink: 0;
}

/* Tabele: derulare tactilă */
.client-portal-body .table-responsive {
    -webkit-overflow-scrolling: touch;
    margin-bottom: 0;
}

.client-portal-body .table {
    font-size: 0.9rem;
}

@media (max-width: 575.98px) {
    .client-portal-body .table {
        font-size: 0.85rem;
    }

    .client-portal-body .table th,
    .client-portal-body .table td {
        padding: 0.45rem 0.35rem;
        vertical-align: middle;
    }
}

/* Butoane / link-uri — ținte confortabile la atingere */
.client-portal-body .btn {
    touch-action: manipulation;
}

.client-portal-body .btn-sm {
    min-height: 38px;
}

@media (max-width: 575.98px) {
    .client-portal-body .btn-sm {
        min-height: 40px;
        padding-left: 0.65rem;
        padding-right: 0.65rem;
    }
}

/* Carduri pe mobil */
@media (max-width: 575.98px) {
    .client-portal-body .card {
        border-radius: 0.75rem;
    }
}

/* Pagini auth (login / register / reset) */
body.client-portal-auth {
    min-height: 100vh;
    min-height: 100dvh;
    padding: env(safe-area-inset-top, 0) env(safe-area-inset-right, 12px) env(safe-area-inset-bottom, 12px) env(safe-area-inset-left, 12px);
    -webkit-text-size-adjust: 100%;
}

body.client-portal-auth .client-portal-auth-card {
    width: 100%;
    max-width: 520px;
}

body.client-portal-auth .form-control,
body.client-portal-auth .form-select {
    font-size: 16px;
}

body.client-portal-auth .btn {
    min-height: 44px;
    touch-action: manipulation;
}
