/**
 * Portal Responsivo - Base estrutural
 * Foco: usabilidade e responsividade (mobile-first).
 * Não altera cores/branding; apenas legibilidade e toque.
 */

/* ========== 1. Legibilidade mobile ========== */
:root {
    --portal-min-font-size: 15px;
    --portal-line-height: 1.5;
    --portal-touch-min: 44px;
    --portal-container-px: 1rem;
}

@media (max-width: 576px) {
    html {
        font-size: 15px;
    }

    body {
        font-size: var(--portal-min-font-size);
        line-height: var(--portal-line-height);
    }

    .main-content .container {
        padding-left: var(--portal-container-px);
        padding-right: var(--portal-container-px);
        max-width: 100%;
    }

    .main-content p,
    .main-content .card-text,
    .main-content li {
        line-height: 1.55;
    }

    .main-content h1 {
        font-size: 1.5rem;
        line-height: 1.3;
    }

    .main-content h2 {
        font-size: 1.35rem;
    }

    .main-content h3,
    .main-content h4,
    .main-content h5 {
        font-size: 1.15rem;
    }
}

/* ========== 2. Botões: área de toque e .btn-label ========== */
.btn-label {
    display: inline;
}

/* Esconder apenas o texto do botão no mobile quando desejado */
@media (max-width: 576px) {
    .hide-label-mobile .btn-label,
    .sticky-actions .btn-label {
        display: none !important;
    }
}

@media (max-width: 768px) {
    .main-content .btn:not(.btn-sm):not(.btn-lg) {
        min-height: var(--portal-touch-min);
        padding: 0.5rem 1rem;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        white-space: nowrap;
    }

    .main-content .btn i + .btn-label,
    .main-content .btn .btn-label {
        margin-left: 0.35rem;
    }

    .main-content .btn-sm {
        min-height: 2.5rem;
        min-width: 2.5rem;
        padding: 0.35rem 0.65rem;
    }
}

/* Botão só ícone no mobile (quando label escondido) */
@media (max-width: 576px) {
    .main-content .sticky-actions .btn,
    .main-content .sticky-actions a.btn {
        min-width: 2.5rem;
        width: auto;
        padding: 0.35rem;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .main-content .sticky-actions .btn i,
    .main-content .sticky-actions a.btn i {
        margin: 0;
    }
}

/* ========== 3. Tabelas ========== */
.table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

@media (max-width: 576px) {
    .table-responsive {
        font-size: 0.9rem;
    }

    .table-responsive th,
    .table-responsive td {
        padding: 0.5rem 0.4rem;
        vertical-align: middle;
    }

    .table-responsive .sticky-actions {
        min-width: 3.25rem;
    }
}

/* Padrão genérico para coluna de ações fixa à direita (opcional por página) */
.table-responsive .sticky-actions {
    position: sticky;
    right: 0;
    z-index: 1;
    background: var(--bs-table-bg, #fff);
    box-shadow: -4px 0 8px rgba(0, 0, 0, 0.06);
    white-space: nowrap;
}

.table-responsive thead .sticky-actions {
    z-index: 2;
}

.table-responsive tbody tr:hover .sticky-actions {
    background: var(--bs-table-hover-bg, rgba(0, 0, 0, 0.075));
}

.table-responsive th.th-nowrap,
.table-responsive td.td-nowrap {
    white-space: nowrap;
}

/* ========== Admin Customers: tabela + modal Acessar perfil ========== */
@media (max-width: 576px) {
    .table-admin-customers .sticky-actions .btn-label {
        display: none;
    }
    .table-admin-customers .sticky-actions .btn {
        min-width: 2.5rem;
        min-height: 2.5rem;
        padding: 0.35rem;
    }
    .admin-modal-access .modal-footer .btn-submit-full-mobile {
        width: 100%;
    }
}

/* ========== 4. Navbar / Header ========== */
@media (max-width: 991px) {
    .navbar-toggler {
        min-width: var(--portal-touch-min);
        min-height: var(--portal-touch-min);
        padding: 0.5rem;
        border-radius: 6px;
    }

    .navbar-collapse {
        margin-top: 0.5rem;
        padding-top: 0.5rem;
        border-top: 1px solid rgba(0, 0, 0, 0.08);
    }

    .navbar-nav .nav-item {
        border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    }

    .navbar-nav .nav-link {
        min-height: var(--portal-touch-min);
        display: flex;
        align-items: center;
        padding: 0.65rem 1rem !important;
    }

    .navbar-nav .nav-item form .btn-link.nav-link {
        min-height: var(--portal-touch-min);
        width: 100%;
        justify-content: flex-start;
    }
}

/* ========== 5. Cards ========== */
@media (max-width: 576px) {
    .main-content .card {
        margin-bottom: 1rem;
    }

    .main-content .card-header {
        padding: 0.85rem 1rem;
        font-size: 1rem;
    }

    .main-content .card-body {
        padding: 1rem;
    }

    .main-content .card-title {
        font-size: 1.1rem;
        margin-bottom: 0.5rem;
    }

    .main-content .card-text {
        font-size: inherit;
    }
}

/* ========== 6. Utilitários ========== */
@media (max-width: 576px) {
    .main-content .row {
        margin-left: -0.5rem;
        margin-right: -0.5rem;
    }

    .main-content .row > [class*="col-"] {
        padding-left: 0.5rem;
        padding-right: 0.5rem;
    }
}

/* Evitar overflow escondido em textos longos */
.main-content .table-responsive td,
.main-content .card-body {
    word-wrap: break-word;
    overflow-wrap: break-word;
}

.main-content .text-break {
    word-break: break-word;
}

/* ========== Rich content (HTML ex.: avisos, venture updates, dashboard) ========== */
.main-content .rich-content {
    line-height: 1.6;
}

.main-content .rich-content p {
    margin-bottom: 0.85em;
}

.main-content .rich-content p:last-child {
    margin-bottom: 0;
}

.main-content .rich-content ul,
.main-content .rich-content ol {
    padding-left: 1.35em;
    margin-bottom: 0.85em;
}

.main-content .rich-content li {
    margin-bottom: 0.35em;
}

.main-content .rich-content blockquote {
    margin: 0.85em 0;
    padding: 0.5em 1em;
    border-left: 4px solid rgba(0, 0, 0, 0.15);
    background: rgba(0, 0, 0, 0.03);
    border-radius: 0 4px 4px 0;
}

.main-content .rich-content img {
    max-width: 100%;
    height: auto;
    display: block;
}

.main-content .rich-content a {
    text-decoration: underline;
    word-break: break-word;
}

@media (max-width: 576px) {
    .main-content .rich-content {
        line-height: 1.55;
    }

    .main-content .rich-content h1 {
        font-size: 1.35rem;
        margin-top: 0.75em;
        margin-bottom: 0.4em;
        line-height: 1.3;
    }

    .main-content .rich-content h2 {
        font-size: 1.2rem;
        margin-top: 0.7em;
        margin-bottom: 0.35em;
        line-height: 1.3;
    }

    .main-content .rich-content h3,
    .main-content .rich-content h4 {
        font-size: 1.08rem;
        margin-top: 0.6em;
        margin-bottom: 0.3em;
        line-height: 1.35;
    }

    .main-content .rich-content h5,
    .main-content .rich-content h6 {
        font-size: 1rem;
        margin-top: 0.5em;
        margin-bottom: 0.25em;
    }

    .main-content .rich-content ul,
    .main-content .rich-content ol {
        padding-left: 1.25em;
        margin-top: 0.4em;
        margin-bottom: 0.65em;
    }

    .main-content .rich-content li {
        margin-bottom: 0.3em;
    }

    .main-content .rich-content blockquote {
        padding: 0.5em 0.85em;
        margin: 0.65em 0;
    }
}

/* ========== MyVentures: card e book de fotos ========== */
.main-content .venture-card-img {
    object-fit: cover;
    width: 100%;
    height: auto;
    aspect-ratio: 2 / 1;
}

.main-content .venture-card-placeholder {
    aspect-ratio: 2 / 1;
    min-height: 140px;
}

/* Logo padrão quando o empreendimento não tem imagem */
.main-content .venture-card-img.venture-card-img-default {
    object-fit: contain;
    background: var(--bs-light, #f8f9fa);
    padding: 0.75rem;
}

.main-content .myventures-book .venture-photo-grid {
    margin-bottom: 0;
}

.main-content .venture-photo-thumb {
    overflow: hidden;
    border-radius: 0.375rem;
    background: var(--bs-light, #f8f9fa);
}

.main-content .venture-photo-thumb-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* ========== Admin Ventures Edit: book de fotos e ações ========== */
.admin-ventures-edit .venture-photo-thumb {
    overflow: visible;
    border-radius: 0.375rem;
    background: var(--bs-light, #f8f9fa);
}
.admin-ventures-edit .venture-photo-thumb .venture-photo-thumb-img {
    border-radius: 0.375rem;
}

.admin-ventures-edit .venture-photo-thumb-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Botão remover foto: compacto, proporcional ao thumbnail */
.admin-ventures-edit .btn-remove-photo {
    width: 28px;
    height: 28px;
    min-width: 28px;
    min-height: 28px;
    padding: 0;
    border-radius: 0.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.875rem;
}
.admin-ventures-edit .btn-remove-photo .btn-label {
    display: none;
}
.admin-ventures-edit .btn-remove-photo i {
    margin: 0;
}
