body { background:#f5f7fb; color:#1f2937; }
.card { border:0; box-shadow:0 4px 18px rgba(0,0,0,.06); }
.stat-card { border-left:4px solid #0d6efd; }
.stat-card.warning { border-left-color:#ffc107; }
.stat-card.success { border-left-color:#198754; }
.stat-card h2 { margin:8px 0 0; }
.login-page { min-height:100vh; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,#0d6efd,#173b7a); }
.login-card { width:min(420px,92vw); background:white; border-radius:18px; padding:36px; box-shadow:0 18px 60px rgba(0,0,0,.25); }
.table { background:white; }

:root {
    --ge-bg: #f5f7fa;
    --ge-surface: #ffffff;
    --ge-text: #212529;
    --ge-muted: #6c757d;
    --ge-border: #dee2e6;
}
html[data-theme="dark"] {
    --ge-bg: #111827;
    --ge-surface: #1f2937;
    --ge-text: #f3f4f6;
    --ge-muted: #9ca3af;
    --ge-border: #374151;
}
html[data-theme="dark"] body {
    background: var(--ge-bg);
    color: var(--ge-text);
}
html[data-theme="dark"] .card,
html[data-theme="dark"] .modal-content,
html[data-theme="dark"] .dropdown-menu,
html[data-theme="dark"] .list-group-item,
html[data-theme="dark"] .table {
    background-color: var(--ge-surface);
    color: var(--ge-text);
}
html[data-theme="dark"] .table {
    --bs-table-bg: var(--ge-surface);
    --bs-table-color: var(--ge-text);
}
html[data-theme="dark"] .table-hover > tbody > tr:hover > * {
    --bs-table-accent-bg: #273449;
    color: var(--ge-text);
}
html[data-theme="dark"] .form-control,
html[data-theme="dark"] .form-select {
    background-color: #111827;
    color: var(--ge-text);
    border-color: var(--ge-border);
}
html[data-theme="dark"] .form-control::placeholder {
    color: #9ca3af;
}
html[data-theme="dark"] .text-muted {
    color: var(--ge-muted) !important;
}
html[data-theme="dark"] .card-header {
    background-color: #273449;
    color: var(--ge-text);
}
html[data-theme="dark"] .navbar {
    background-color: #0b1220 !important;
}
html[data-theme="dark"] a {
    color: #93c5fd;
}


/* V14.6 - Sidebar com identidade visual do condomínio */
.app-shell{min-height:100vh;display:flex}
.app-sidebar{width:270px;min-width:270px;position:fixed;left:0;top:0;bottom:0;z-index:1030;display:flex;flex-direction:column;background:#182235;color:#fff;box-shadow:4px 0 18px rgba(0,0,0,.12)}
.sidebar-brand{padding:24px 18px;text-align:center;border-bottom:1px solid rgba(255,255,255,.12)}
.sidebar-logo{width:78px;height:78px;border-radius:16px;object-fit:contain;background:#fff;padding:6px;margin-bottom:10px}
.sidebar-logo-placeholder{display:inline-flex;align-items:center;justify-content:center;font-size:38px}
.sidebar-tenant-name{font-size:1.05rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar-brand small{opacity:.7}
.sidebar-nav{padding:14px 10px;overflow-y:auto;flex:1}
.sidebar-link{display:flex;align-items:center;gap:10px;color:rgba(255,255,255,.82);text-decoration:none;padding:11px 13px;border-radius:9px;margin-bottom:3px;transition:.15s}
.sidebar-link:hover{background:rgba(255,255,255,.1);color:#fff}
.sidebar-section{font-size:.68rem;font-weight:700;letter-spacing:.12em;color:rgba(255,255,255,.45);padding:18px 13px 7px}
.sidebar-bottom{padding:14px;border-top:1px solid rgba(255,255,255,.12)}
.sidebar-user{font-size:.82rem;color:rgba(255,255,255,.7);margin-bottom:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app-main{margin-left:270px;width:calc(100% - 270px);min-height:100vh}
.mobile-topbar{display:none;padding:10px 14px;align-items:center;gap:12px;border-bottom:1px solid var(--bs-border-color);background:var(--bs-body-bg)}
@media(max-width:991.98px){
 .app-sidebar{transform:translateX(-100%);transition:transform .2s ease}
 .app-sidebar.open{transform:translateX(0)}
 .app-main{margin-left:0;width:100%}
 .mobile-topbar{display:flex}
}


/* V14.8 - saída integrada ao menu */
.sidebar-logout{width:100%;border:0;background:transparent;text-align:left;cursor:pointer;font:inherit}
.sidebar-logout:hover{background:rgba(255,255,255,.1);color:#fff}

/* V14.10 - Página de Configurações do Condomínio */
.tenant-settings-page{max-width:1500px;margin:0 auto;padding:4px 4px 30px}
.tenant-settings-header{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:22px}
.tenant-breadcrumb{font-size:.85rem;color:#7b8794;margin-bottom:7px}
.tenant-breadcrumb span{padding:0 6px}
.tenant-settings-header h1{font-size:2rem;font-weight:700;margin:0 0 5px}
.tenant-settings-header p{color:#718096;margin:0}
.tenant-header-actions{display:flex;gap:10px;flex-shrink:0}
.tenant-settings-tabs{display:flex;gap:0;background:var(--bs-body-bg);border:1px solid var(--bs-border-color);border-radius:12px 12px 0 0;padding:0 14px;overflow-x:auto;margin-bottom:18px}
.tenant-tab{padding:15px 20px;color:#687386;font-size:.92rem;white-space:nowrap;border-bottom:3px solid transparent}
.tenant-tab.active{color:#0d6efd;border-bottom-color:#0d6efd;font-weight:600}
.tenant-settings-card{background:var(--bs-body-bg);border:1px solid var(--bs-border-color);border-radius:14px;padding:24px;box-shadow:0 3px 14px rgba(0,0,0,.04)}
.tenant-card-title{margin-bottom:22px}
.tenant-card-title h2{font-size:1.15rem;font-weight:700;margin:0 0 5px}
.tenant-card-title span{font-size:.86rem;color:#748092}
.tenant-settings-card .form-label{font-size:.86rem;font-weight:600;margin-bottom:6px}
.tenant-settings-card .form-label>span{color:#dc3545}
.tenant-settings-card .form-control,.tenant-settings-card .form-select{min-height:42px;border-radius:8px}
.form-help{font-size:.76rem;color:#7a8696;margin-top:5px}
.tenant-logo-preview{height:270px;width:100%;border:1px solid var(--bs-border-color);border-radius:10px;background:var(--bs-body-bg);display:flex;align-items:center;justify-content:center;overflow:hidden;padding:18px}
.tenant-logo-preview img{display:block;max-width:100%;max-height:225px;width:auto;height:auto;object-fit:contain}
.tenant-logo-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:#7a8696;text-align:center}
.tenant-logo-empty span{font-size:45px}
.tenant-logo-empty strong{font-size:.9rem}
.tenant-logo-info{font-size:.78rem;color:#718096;line-height:1.6;margin-top:12px}
.tenant-logo-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:16px}
.tenant-check{border:1px solid var(--bs-border-color);border-radius:9px;padding:10px 12px;background:rgba(127,127,127,.035);height:100%;display:flex;align-items:center;gap:5px}
.tenant-settings-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:20px;padding:5px 2px;color:#7a8696;font-size:.82rem}
@media(max-width:991.98px){
 .tenant-settings-header{align-items:flex-start;flex-direction:column}
 .tenant-header-actions{width:100%}
 .tenant-header-actions .btn{flex:1}
 .tenant-settings-card{padding:18px}
}
@media(max-width:575.98px){
 .tenant-settings-header h1{font-size:1.55rem}
 .tenant-settings-footer{align-items:stretch;flex-direction:column}
 .tenant-settings-footer .btn{flex:1}
 .tenant-logo-preview{height:220px}
}

/* V14.11 - Tema escuro completo na configuração do condomínio */
html[data-theme="dark"] {
    color-scheme: dark;
    --bs-body-bg: #111827;
    --bs-body-color: #f3f4f6;
    --bs-border-color: #374151;
    --bs-secondary-color: #9ca3af;
    --bs-tertiary-bg: #1f2937;
    --bs-emphasis-color: #ffffff;
    --bs-form-control-bg: #111827;
}

html[data-theme="dark"] .tenant-settings-page,
html[data-theme="dark"] .tenant-settings-header,
html[data-theme="dark"] .tenant-settings-header h1,
html[data-theme="dark"] .tenant-card-title h2 {
    color: var(--ge-text);
}

html[data-theme="dark"] .tenant-breadcrumb,
html[data-theme="dark"] .tenant-settings-header p,
html[data-theme="dark"] .tenant-card-title span,
html[data-theme="dark"] .form-help,
html[data-theme="dark"] .tenant-logo-info,
html[data-theme="dark"] .tenant-settings-footer {
    color: var(--ge-muted) !important;
}

html[data-theme="dark"] .tenant-settings-tabs,
html[data-theme="dark"] .tenant-settings-card {
    background-color: var(--ge-surface);
    border-color: var(--ge-border);
    color: var(--ge-text);
}

html[data-theme="dark"] .tenant-tab {
    color: #aeb8c6;
}

html[data-theme="dark"] .tenant-tab.active {
    color: #93c5fd;
    border-bottom-color: #60a5fa;
}

html[data-theme="dark"] .tenant-settings-card .form-label,
html[data-theme="dark"] .tenant-settings-card .form-check-label {
    color: var(--ge-text);
}

html[data-theme="dark"] .tenant-settings-card .form-control,
html[data-theme="dark"] .tenant-settings-card .form-select {
    background-color: #111827;
    color: #f3f4f6;
    border-color: #4b5563;
}

html[data-theme="dark"] .tenant-settings-card .form-control:focus,
html[data-theme="dark"] .tenant-settings-card .form-select:focus {
    background-color: #111827;
    color: #fff;
    border-color: #60a5fa;
    box-shadow: 0 0 0 .2rem rgba(96,165,250,.18);
}

html[data-theme="dark"] .tenant-settings-card .form-control[readonly] {
    background-color: #273449;
    color: #dbe4ef;
}

html[data-theme="dark"] .tenant-logo-preview {
    background-color: #111827;
    border-color: #4b5563;
}

html[data-theme="dark"] .tenant-logo-empty {
    color: #9ca3af;
}

html[data-theme="dark"] .tenant-check {
    background: #273449;
    border-color: #4b5563;
}

html[data-theme="dark"] .tenant-settings-page .btn-outline-secondary {
    color: #d1d5db;
    border-color: #6b7280;
}

html[data-theme="dark"] .tenant-settings-page .btn-outline-secondary:hover {
    background: #374151;
    color: #fff;
}

html[data-theme="dark"] .tenant-settings-card .form-select option {
    background: #111827;
    color: #f3f4f6;
}

/* V15 - Configuração de relatórios padronizada */
.tenant-settings-card .tenant-check{
    min-height:48px;
    margin:0;
    align-items:center;
}

/* V17 - opções de relatório em coluna única, sem sobreposição */
.tenant-report-options{
    display:flex;
    flex-direction:column;
    gap:10px;
    width:100%;
}
.tenant-report-option{
    width:100%;
}
.tenant-report-option .tenant-check{
    width:100%;
    min-height:48px;
    height:auto;
    box-sizing:border-box;
    margin:0;
    padding:12px 14px;
    display:flex;
    align-items:center;
    gap:10px;
    overflow:visible;
}
.tenant-report-option .tenant-check .form-check-input{
    position:static;
    float:none;
    flex:0 0 18px;
    width:18px;
    height:18px;
    margin:0;
}
.tenant-report-option .tenant-check .form-check-label{
    flex:1 1 auto;
    min-width:0;
    margin:0;
    line-height:1.35;
    white-space:normal;
}

/* V20 - PWA e experiência mobile */
html{
    -webkit-text-size-adjust:100%;
}
body{
    min-height:100vh;
    min-height:100dvh;
    padding-bottom:env(safe-area-inset-bottom);
}
button,.btn,a,input,select,textarea{
    -webkit-tap-highlight-color:transparent;
}
.mobile-topbar{
    min-height:58px;
    padding-top:max(10px, env(safe-area-inset-top));
}
.mobile-tenant-name{
    min-width:0;
    flex:1 1 auto;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.mobile-connection-status{
    font-size:.8rem;
    color:#6c757d;
    line-height:1;
}
.mobile-connection-status.online{color:#198754}
.mobile-connection-status.offline{color:#dc3545}
.mobile-install-button{
    flex:0 0 auto;
}
.mobile-bottom-nav{
    display:none;
}
@media(max-width:991.98px){
    .app-main{
        padding-bottom:calc(72px + env(safe-area-inset-bottom));
    }
    .app-sidebar{
        width:min(86vw,320px);
        min-width:0;
        box-shadow:12px 0 30px rgba(0,0,0,.28);
    }
    body.sidebar-open::before{
        content:"";
        position:fixed;
        inset:0;
        z-index:1025;
        background:rgba(0,0,0,.42);
    }
    .sidebar-brand{
        padding:18px 16px;
    }
    .sidebar-logo{
        width:64px;
        height:64px;
    }
    .sidebar-link{
        min-height:46px;
        font-size:.95rem;
    }
    .mobile-bottom-nav{
        position:fixed;
        display:grid;
        grid-template-columns:repeat(4,1fr);
        left:0;
        right:0;
        bottom:0;
        z-index:1040;
        padding:7px 4px calc(7px + env(safe-area-inset-bottom));
        background:var(--ge-surface);
        border-top:1px solid var(--ge-border);
        box-shadow:0 -5px 20px rgba(0,0,0,.10);
    }
    .mobile-bottom-nav a{
        min-height:54px;
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:center;
        gap:2px;
        color:var(--ge-muted);
        text-decoration:none;
        font-size:1.15rem;
        border-radius:10px;
    }
    .mobile-bottom-nav a span{
        font-size:.68rem;
        line-height:1;
    }
    .mobile-bottom-nav a:active,
    .mobile-bottom-nav a:hover{
        background:rgba(13,110,253,.08);
        color:#0d6efd;
    }
    .table-responsive{
        -webkit-overflow-scrolling:touch;
    }
    .card{
        border-radius:14px;
    }
    .btn{
        min-height:42px;
    }
    .form-control,.form-select{
        min-height:44px;
        font-size:16px;
    }
}
@media(max-width:575.98px){
    .mobile-topbar{
        gap:8px;
        padding-left:10px;
        padding-right:10px;
    }
    .mobile-topbar .btn{
        min-height:40px;
    }
    main.container-fluid{
        padding-top:14px !important;
    }
    h1{
        font-size:1.5rem;
    }
    .dashboard-actions,
    .tenant-header-actions{
        width:100%;
    }
    .dashboard-actions .btn{
        flex:1 1 0;
    }
    .row.g-4{
        --bs-gutter-y:1rem;
    }
}
@media(hover:none) and (pointer:coarse){
    .sidebar-link:hover{
        background:transparent;
    }
}
html[data-theme="dark"] .mobile-bottom-nav{
    background:#111827;
    border-color:#374151;
}
html[data-theme="dark"] .mobile-topbar{
    background:#111827;
}


/* V20.6 - Foto de quem retirou */
.retirada-foto-wrapper {
    width: 58px;
    min-height: 58px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.retirada-foto-thumb {
    width: 58px;
    height: 58px;
    object-fit: cover;
    border-radius: 8px;
    border: 1px solid var(--bs-border-color);
    cursor: pointer;
}
.retirada-foto-large {
    width: 180px;
    height: 180px;
    max-width: 180px;
    max-height: 180px;
    object-fit: cover;
    cursor: pointer;
}
.retirada-foto-details {
    display: flex;
    align-items: center;
}

