/* VERSAO: 2026-07-06-v1 */
:root{--green:#3A3535;--green-dark:#2a2626;--blue:#1E4D8C;--blue-light:#eef2ff;--text1:#1a1a1a;--text2:#444;--text3:#888;--border:#e0e0e0;--bg:#f5f5f5;--radius:6px;--success:#2e7d32;--danger:#b91c1c;}
*{box-sizing:border-box;margin:0;padding:0;}
html,body{height:100%;}
body{font-family:'Segoe UI',Arial,sans-serif;font-size:14px;color:var(--text1);background:var(--bg);display:flex;flex-direction:column;min-height:100vh;}
a{color:var(--blue);text-decoration:none;}
a:hover{text-decoration:underline;}

/* HEADER */
.site-header{background:var(--green);display:flex;align-items:center;justify-content:space-between;padding:0 20px;position:sticky;top:0;z-index:100;box-shadow:0 2px 8px rgba(0,0,0,.25);min-height:56px;flex-shrink:0;}
.header-left{display:flex;align-items:center;gap:24px;}
.logo{display:flex;align-items:center;gap:8px;}
.logo-text{font-size:16px;font-weight:800;color:white;letter-spacing:.02em;}
.logo-badge{background:var(--blue);color:white;padding:2px 8px;border-radius:4px;font-size:10px;font-weight:700;}
.main-nav{display:flex;align-items:center;gap:2px;}
.main-nav>a{padding:18px 12px;font-size:13px;color:rgba(255,255,255,.78);text-decoration:none;display:inline-block;}
.main-nav>a:hover,.main-nav>a.active{color:white;text-decoration:none;}
.main-nav>a.active{font-weight:600;}
.nav-drop{position:relative;display:inline-block;}
.nav-drop>a{padding:18px 12px;font-size:13px;color:rgba(255,255,255,.78);text-decoration:none;display:inline-block;}
.nav-drop>a:hover,.nav-drop>a.active{color:white;text-decoration:none;}
.nav-drop-menu{display:none;position:absolute;top:100%;left:0;background:var(--green-dark);min-width:200px;border-radius:0 0 6px 6px;box-shadow:0 4px 12px rgba(0,0,0,.3);z-index:200;margin-top:0;}
.nav-drop:hover .nav-drop-menu{display:block;}
.nav-drop-menu a{display:block;padding:10px 16px;font-size:13px;color:rgba(255,255,255,.8);border-bottom:1px solid rgba(255,255,255,.07);text-decoration:none;}
.nav-drop-menu a:hover{background:rgba(255,255,255,.08);color:white;}
.imovel-drop{padding-bottom:8px;}
.imovel-drop>a{font-size:13px;color:rgba(255,255,255,.78);padding:0;display:inline-block;}
.imovel-drop .nav-drop-menu{right:0;left:auto;min-width:180px;}
.nav-drop-form{margin:0;}
.nav-drop-form button{display:block;width:100%;text-align:left;padding:10px 16px;font-size:13px;color:rgba(255,255,255,.8);border:none;border-bottom:1px solid rgba(255,255,255,.07);background:none;cursor:pointer;font-family:inherit;}
.nav-drop-form button:hover{background:rgba(255,255,255,.08);color:white;}
.nav-drop-form button.current{background:var(--blue);color:white;font-weight:600;}
.header-right{display:flex;align-items:center;gap:16px;}
.imovel-nome{font-size:12px;color:rgba(255,255,255,.65);}
.imovel-select{background:transparent;border:1px solid rgba(255,255,255,.3);color:white;font-size:12px;padding:4px 8px;border-radius:4px;}
.user-menu{position:relative;padding-bottom:8px;}
.user-name{font-size:13px;color:rgba(255,255,255,.78);cursor:pointer;}
.user-drop{display:none;position:absolute;top:100%;right:0;background:var(--green-dark);min-width:180px;border-radius:0 0 6px 6px;box-shadow:0 4px 12px rgba(0,0,0,.3);z-index:200;margin-top:0;}
.user-menu:hover .user-drop{display:block;}
.user-drop-info{padding:10px 16px;font-size:11px;color:rgba(255,255,255,.5);border-bottom:1px solid rgba(255,255,255,.1);}
.user-drop a{display:block;padding:10px 16px;font-size:13px;color:rgba(255,255,255,.8);text-decoration:none;}
.user-drop a:hover{background:rgba(255,255,255,.08);color:white;}
.logout-link{color:#ff8a8a!important;}

/* PAGE BODY */
.page-body{padding:24px 20px;flex:1 0 auto;width:100%;box-sizing:border-box;display:flex;flex-direction:column;}
.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px;}
.page-title{font-size:20px;font-weight:700;color:var(--text1);margin-bottom:2px;}
.page-subtitle{font-size:13px;color:var(--text3);}

/* CARDS */
.card{background:white;border-radius:8px;border:1px solid var(--border);margin-bottom:20px;}
.card-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border);}
.card-title{font-size:15px;font-weight:600;color:var(--text1);}
.card-body{padding:18px;}
.mb-2{margin-bottom:10px;}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius);font-size:13px;font-weight:600;cursor:pointer;border:1px solid transparent;text-decoration:none;white-space:nowrap;}
.btn:hover{opacity:.88;text-decoration:none;}
.btn-primary{background:var(--green);color:white!important;border-color:var(--green);}
.btn-secondary{background:white;color:var(--text2);border-color:var(--border);}
.btn-secondary:hover{background:var(--bg);}
.btn-danger{background:var(--danger);color:white!important;}
.btn-gold{background:var(--blue);color:white!important;border-color:var(--blue);}
.btn-sm{padding:4px 10px;font-size:12px;}
.btn-group{display:flex;gap:8px;flex-wrap:wrap;}

/* FORMS */
.field{display:flex;flex-direction:column;gap:4px;}
.field label{font-size:12px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.04em;}
.field input,.field select,.field textarea{padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);font-size:13px;color:var(--text1);background:white;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(30,77,140,.1);}
.field textarea{resize:vertical;min-height:70px;}
.field-hint{font-size:11px;color:var(--text3);}
.field-required label::after{content:' *';color:var(--danger);}
.form-section{font-size:11px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;padding:6px 0 4px;border-bottom:1px solid var(--border);margin-bottom:10px;}
.form-grid{display:grid;gap:14px;}
.form-grid-2{grid-template-columns:1fr 1fr;}
.form-grid-3{grid-template-columns:1fr 1fr 1fr;}
@media(max-width:640px){.form-grid-2,.form-grid-3{grid-template-columns:1fr;}}

/* TABLES */
.table-wrap{overflow-x:auto;}
.data-table{width:100%;border-collapse:collapse;font-size:13px;}
.data-table thead tr{background:var(--green);}
.data-table thead th{padding:10px 12px;text-align:left;font-size:12px;font-weight:700;color:white;white-space:nowrap;}
.data-table tbody tr{border-bottom:1px solid #f0f0f0;}
.data-table tbody tr:hover{background:#fafafa;}
.data-table tbody td{padding:10px 12px;vertical-align:middle;}
.data-table.compact-rows tbody td{padding:4px 12px;}

/* Padroes reutilizaveis de rolagem fixa (usar em qualquer tela) */
/* Requer que o container pai (ate o .page-body) seja flex-column, para o table-scroll preencher a altura disponivel */
.sticky-toolbar{position:sticky;top:56px;z-index:90;background:var(--bg);padding-top:4px;padding-bottom:4px;}
.table-scroll{flex:1;min-height:0;overflow-y:auto;}
.table-scroll thead th{position:sticky;top:0;z-index:10;background:var(--green);}
.td-num{text-align:right!important;}
.td-center{text-align:center!important;}
.td-actions{text-align:center!important;white-space:nowrap;}
.font-mono{font-family:monospace;}
.text-sm{font-size:12px;}
.text-muted{color:var(--text3);}

/* BADGES */
.badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;}
.badge-green{background:#e8f5e9;color:#2e7d32;}
.badge-yellow{background:#fff8e1;color:#b45309;}
.badge-red{background:#fdecea;color:#b91c1c;}
.badge-gray{background:#f0f0f0;color:#555;}
.badge-blue{background:var(--blue-light);color:var(--blue);}

/* MONTHS NAV */
.months-nav{display:flex;align-items:center;gap:4px;margin-bottom:20px;flex-wrap:wrap;}
.month-btn{padding:6px 12px;border-radius:var(--radius);border:1px solid var(--border);background:white;font-size:12px;font-weight:600;color:var(--text2);cursor:pointer;text-decoration:none;}
.month-btn:hover{border-color:var(--green);color:var(--green);text-decoration:none;}
.month-btn.active{background:var(--green);color:white;border-color:var(--green);}
.year-badge{padding:6px 14px;border-radius:var(--radius);background:var(--green);color:white;font-size:13px;font-weight:700;}
.nav-arrow{padding:6px 10px;border-radius:var(--radius);border:1px solid var(--border);background:white;font-size:14px;color:var(--text2);cursor:pointer;text-decoration:none;}
.nav-arrow:hover{border-color:var(--green);text-decoration:none;}

/* MODAL */
.modal-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:500;align-items:center;justify-content:center;padding:20px;}
.modal-bg.open{display:flex;}
.modal{background:white;border-radius:10px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px rgba(0,0,0,.25);}
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:var(--green);border-radius:10px 10px 0 0;}
.modal-title{font-size:15px;font-weight:700;color:white;}
.modal-close{background:none;border:none;color:white;font-size:18px;cursor:pointer;padding:0 4px;line-height:1;}
.modal-body{padding:20px;}
.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--border);}

/* UPLOAD */
.upload-zone{border:2px dashed var(--border);border-radius:var(--radius);padding:20px;text-align:center;cursor:pointer;}
.upload-zone input[type=file]{display:none;}

/* FLASH */
.flash{padding:12px 16px;border-radius:var(--radius);margin-bottom:16px;font-size:13px;font-weight:500;display:flex;justify-content:space-between;align-items:center;}
.flash button{background:none;border:none;cursor:pointer;font-size:14px;color:inherit;}
.flash-success{background:#e8f5e9;color:#2e7d32;border-left:4px solid #2e7d32;}
.flash-error{background:#fdecea;color:var(--danger);border-left:4px solid var(--danger);}

/* STATS */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:20px;}
.stat-card{background:white;border:1px solid var(--border);border-radius:8px;padding:14px 16px;border-left:4px solid var(--green);}
.stat-card.stat-gold{border-left-color:var(--blue);}
.stat-label{font-size:11px;color:var(--text3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;}
.stat-value{font-size:22px;font-weight:700;color:var(--text1);}
.stat-sub{font-size:11px;color:var(--text3);margin-top:2px;}

/* LOGIN */
.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);}
.login-box{background:white;border-radius:10px;padding:36px 32px;width:100%;max-width:400px;box-shadow:0 4px 24px rgba(0,0,0,.1);}
.login-logo{text-align:center;margin-bottom:28px;}
.l-text{font-size:22px;font-weight:900;color:var(--green);letter-spacing:.02em;}
.l-badge{background:var(--blue);color:white;padding:2px 10px;border-radius:4px;font-size:11px;font-weight:700;margin-left:6px;}
.l-sub{font-size:12px;color:var(--text3);margin-top:4px;}

/* FOOTER */
.site-footer{background:var(--green);color:white;padding:12px 20px;font-size:11px;margin-top:40px;display:flex;justify-content:space-between;align-items:center;flex-shrink:0;}
.site-footer a{color:rgba(255,255,255,.7);}

.spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:white;border-radius:50%;animation:spin .7s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
.alert-info{background:#e8f0fc;border-left:3px solid var(--blue);padding:10px 14px;border-radius:5px;font-size:12px;}
.text-blue{color:var(--blue)!important;}
.font-bold{font-weight:700;}
.progress-wrap{background:#e0e0e0;border-radius:99px;height:8px;overflow:hidden;}
.progress-bar{height:100%;background:var(--green);border-radius:99px;}
