:root{
  --navy:#042569; --navy-dark:#031b4d;
  --green:#4ab90d; --green-dark:#3a9309;
  --amber:#e8a33d; --amber-dark:#c8801a;
  --red:#d63a3a; --red-dark:#b32c2c;
  --blue:#2f80ed; --blue-dark:#1c5fc2;
  --ink:#0f1b2d; --muted:#5c6b80; --bg:#ffffff; --panel:#f4f7fb; --line:#e6ebf2; --radius:18px;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{font-family:'Segoe UI',system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--panel);line-height:1.55;-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px;}

h1,h2,h3{margin:0;font-family:inherit;}
p{margin:0;}

.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:999px;font-weight:700;font-size:.92rem;cursor:pointer;border:2px solid transparent;transition:transform .15s ease, background .15s ease;background:none;}
.btn-primary{background:var(--green);color:#fff;}
.btn-primary:hover{background:var(--green-dark);}
.btn-navy{background:var(--navy);color:#fff;}
.btn-navy:hover{background:var(--navy-dark);}
.btn-outline{border-color:var(--line);color:var(--ink);background:#fff;}
.btn-outline:hover{border-color:var(--navy);}
.btn-danger{background:var(--red);color:#fff;}
.btn-danger:hover{background:var(--red-dark);}
.btn-sm{padding:8px 16px;font-size:.85rem;}
.btn:disabled{opacity:.5;cursor:not-allowed;}

header.app-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.95);border-bottom:1px solid var(--line);}
header.app-header .bar{display:flex;align-items:center;justify-content:space-between;padding:14px 0;max-width:1180px;margin:0 auto;padding-left:24px;padding-right:24px;}
header.app-header .brand{font-weight:800;font-size:1.15rem;color:var(--navy);display:flex;align-items:center;gap:10px;}
header.app-header nav{display:flex;align-items:center;gap:22px;font-size:.92rem;font-weight:600;}
header.app-header nav a{color:var(--muted);}
header.app-header nav a:hover, header.app-header nav a.active{color:var(--navy);}
header.app-header .user{color:var(--muted);font-size:.85rem;display:flex;align-items:center;gap:12px;}
.nav-toggle{display:none;background:none;border:1px solid var(--line);border-radius:8px;font-size:1.2rem;line-height:1;padding:5px 10px;cursor:pointer;color:var(--navy);}
header.app-header .brand-logo{height:38px;width:auto;}
.mobile-quicknav{display:none;}

.hero-public{
  background:linear-gradient(120deg,var(--navy) 0%, var(--navy-dark) 100%);
  color:#fff;
  margin:-36px calc(-50vw + 50%) 44px;
  padding:64px calc(50vw - 50%) 56px;
}
.hero-public-inner{max-width:1180px;margin:0 auto;}
.hero-public h1{font-size:clamp(1.7rem,4vw,2.4rem);font-weight:800;max-width:640px;letter-spacing:-.01em;}
.hero-public p{color:rgba(255,255,255,.82);margin-top:14px;font-size:1.05rem;max-width:560px;}

main{padding:36px 0 64px;}

.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;}
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;}

.loteamento-card{display:block;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:transform .18s ease, box-shadow .18s ease;box-shadow:0 6px 16px -12px rgba(4,37,105,.18);}
.loteamento-card:hover{transform:translateY(-6px);box-shadow:0 24px 38px -20px rgba(4,37,105,.32);}
.loteamento-card .thumb{height:190px;background:var(--panel);position:relative;overflow:hidden;}
.loteamento-card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease;}
.loteamento-card:hover .thumb img{transform:scale(1.05);}
.loteamento-card .body{padding:20px 22px;}
.loteamento-card h3{font-size:1.12rem;font-weight:800;margin-bottom:10px;}
.loteamento-card .counts{display:flex;gap:10px;flex-wrap:wrap;font-size:.78rem;font-weight:700;}
.loteamento-card .counts span{padding:4px 10px;border-radius:999px;}

.ribbon-vendido{position:absolute;top:18px;right:-38px;width:150px;padding:6px 0;background:#c0392b;color:#fff;font-size:.72rem;font-weight:800;text-align:center;transform:rotate(45deg);box-shadow:0 2px 8px rgba(0,0,0,.25);z-index:2;letter-spacing:.02em;text-transform:uppercase;}
.loteamento-card .card-desc{color:var(--muted);font-size:.85rem;line-height:1.45;margin:2px 0 12px;}

.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;}
.pill-disponivel{background:rgba(47,128,237,.14);color:var(--blue-dark);}
.pill-reservado{background:rgba(232,163,61,.18);color:var(--amber-dark);}
.pill-vendido{background:rgba(214,58,58,.14);color:var(--red-dark);}
.pill-cadastro{background:rgba(124,58,237,.12);color:#7c3aed;}

table.data-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;}
table.data-table th, table.data-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--line);font-size:.9rem;}
table.data-table th{background:var(--panel);font-weight:800;color:var(--muted);text-transform:uppercase;font-size:.72rem;letter-spacing:.04em;}
table.data-table tr:last-child td{border-bottom:none;}
table.data-table .actions{display:flex;gap:8px;}

form.form-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px;max-width:520px;}
form.form-card.wide{max-width:760px;}
form.form-card .field{margin-bottom:18px;}
form.form-card .form-row{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;}
form.form-card label{display:block;font-weight:700;font-size:.85rem;margin-bottom:6px;color:var(--ink);}
form.form-card input[type=text], form.form-card input[type=email], form.form-card input[type=password], form.form-card input[type=number], form.form-card input[type=date], form.form-card select, form.form-card textarea{
  width:100%;padding:11px 14px;border:1px solid var(--line);border-radius:10px;font-size:.95rem;font-family:inherit;background:#fff;color:var(--ink);
}
form.form-card input:focus, form.form-card select:focus, form.form-card textarea:focus{outline:2px solid var(--green);outline-offset:1px;}
form.form-card .hint{font-size:.78rem;color:var(--muted);margin-top:5px;}
@media (max-width:640px){form.form-card .form-row{grid-template-columns:1fr;}}

.login-wrap{min-height:calc(100vh - 0px);display:flex;align-items:center;justify-content:center;padding:24px;}
.login-box{width:100%;max-width:380px;}
.login-box .logo{text-align:center;font-weight:800;font-size:1.3rem;color:var(--navy);margin-bottom:26px;}

/* Tela de login — única tela com fundo de marca; o resto do sistema segue branco/limpo. */
.login-hero{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:40px 24px;background:linear-gradient(160deg,var(--navy) 0%, var(--navy-dark) 100%);}
.login-stack{width:100%;max-width:380px;display:flex;flex-direction:column;align-items:center;}
.login-stack .brand-badge{background:#fff;border-radius:16px;padding:14px 24px;margin-bottom:24px;box-shadow:0 14px 32px -16px rgba(0,0,0,.5);}
.login-stack .brand-badge img{height:40px;width:auto;display:block;}
.login-stack h1{color:#fff;font-size:1.5rem;font-weight:800;margin-bottom:8px;text-align:center;letter-spacing:-.01em;}
.login-stack .tagline{color:var(--green);font-style:italic;font-weight:600;font-size:.92rem;margin-bottom:28px;text-align:center;}
.login-stack .form-card{width:100%;}
.login-stack .flash{width:100%;}

.flash{padding:14px 18px;border-radius:12px;margin-bottom:22px;font-size:.9rem;font-weight:600;}
.flash-success{background:rgba(74,185,13,.12);color:var(--green-dark);border:1px solid rgba(74,185,13,.3);}
.flash-error{background:rgba(214,58,58,.1);color:var(--red-dark);border:1px solid rgba(214,58,58,.3);}

.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:28px;}
.page-head h1{font-size:1.6rem;font-weight:800;}
.page-head p{color:var(--muted);margin-top:6px;}
.breadcrumb{font-size:.85rem;color:var(--muted);margin-bottom:18px;}
.breadcrumb a{color:var(--navy);font-weight:700;}

/* Acompanhamento administrativo: resumo e historico sem alterar os fluxos existentes. */
.admin-action-row{display:flex;gap:8px;flex-wrap:wrap;}
.admin-eyebrow{display:block;color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px;}
.admin-progress-head{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 20px;margin-bottom:12px;}
.admin-progress-head strong{font-size:1.15rem;}
.admin-progress{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:24px;}
.admin-progress-step{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.82rem;font-weight:700;padding:10px 8px;border-bottom:3px solid var(--line);}
.admin-progress-step span{width:10px;height:10px;border-radius:50%;background:var(--line);flex:0 0 auto;}
.admin-progress-step.is-done{color:var(--green-dark);border-color:var(--green);}
.admin-progress-step.is-done span{background:var(--green);}
.admin-detail-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:20px;margin-bottom:20px;}
.admin-section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px;}
.admin-section-title h2{font-size:1.05rem;font-weight:800;}
.admin-section-title .hint{margin-top:3px;}
.admin-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:0;}
.admin-facts div{min-width:0;}
.admin-facts dt{font-size:.72rem;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px;}
.admin-facts dd{margin:0;font-weight:700;overflow-wrap:anywhere;}
.admin-next-list{margin:0;padding-left:20px;color:var(--ink);}
.admin-next-list li+li{margin-top:9px;}
.admin-timeline-card{margin-top:20px;}
.admin-timeline{list-style:none;margin:0;padding:0 0 0 8px;border-left:2px solid var(--line);}
.admin-timeline-item{position:relative;padding:0 0 20px 24px;}
.admin-timeline-item:last-child{padding-bottom:0;}
.admin-timeline-dot{position:absolute;left:-7px;top:3px;width:12px;height:12px;border-radius:50%;background:var(--navy);border:3px solid #fff;box-shadow:0 0 0 1px var(--navy);}
.admin-timeline-item.alerta .admin-timeline-dot{background:var(--red);box-shadow:0 0 0 1px var(--red);}
.admin-timeline-item.documento .admin-timeline-dot{background:var(--blue);box-shadow:0 0 0 1px var(--blue);}
.admin-timeline-item.contrato .admin-timeline-dot,.admin-timeline-item.venda .admin-timeline-dot{background:var(--green);box-shadow:0 0 0 1px var(--green);}
.admin-timeline-item strong{display:block;font-size:.92rem;}
.admin-timeline-item time{display:block;color:var(--muted);font-size:.76rem;margin-top:2px;}
.admin-timeline-item p{font-size:.84rem;color:var(--muted);margin-top:4px;}
.admin-filter-bar{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin-bottom:18px;}
.admin-filter-bar label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;min-width:220px;}
.admin-filter-bar input,.admin-filter-bar select{font:inherit;text-transform:none;letter-spacing:normal;font-size:.9rem;color:var(--ink);font-weight:400;padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:#fff;min-width:0;}
.admin-result-count{color:var(--muted);font-size:.85rem;}
.admin-sales-list{display:flex;flex-direction:column;gap:8px;}
.admin-sale-row{display:grid;grid-template-columns:minmax(0,1fr) auto 24px;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:15px 17px;transition:border-color .15s ease,box-shadow .15s ease;}
.admin-sale-row:hover{border-color:var(--navy);box-shadow:0 6px 18px -15px rgba(4,37,105,.7);}
.admin-sale-main{min-width:0;}.admin-sale-main strong,.admin-sale-main span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.admin-sale-main strong{font-size:.94rem;}.admin-sale-main span{color:var(--muted);font-size:.82rem;margin-top:3px;}
.admin-sale-stage{display:flex;align-items:flex-end;flex-direction:column;gap:4px;white-space:nowrap;}.admin-sale-stage small{color:var(--muted);font-size:.72rem;}.admin-sale-arrow{color:var(--navy);font-size:1.2rem;}
@media (max-width:760px){.admin-detail-grid{grid-template-columns:1fr;}.admin-facts{grid-template-columns:repeat(2,1fr);}.admin-progress{overflow-x:auto;grid-template-columns:repeat(5,minmax(120px,1fr));}}
@media (max-width:600px){.admin-filter-bar label{min-width:100%;}.admin-filter-bar .btn{flex:1;justify-content:center;}.admin-sale-row{grid-template-columns:minmax(0,1fr) 20px;}.admin-sale-stage{align-items:flex-start;grid-column:1;grid-row:2;}.admin-sale-arrow{grid-column:2;grid-row:1 / span 2;}.admin-sale-main span{white-space:normal;}}
@media (max-width:420px){.admin-facts{grid-template-columns:1fr;}.admin-progress-head{align-items:flex-start;flex-direction:column;}}

/* Painel admin radical: navegacao lateral, hierarquia de trabalho e menos ruido visual. */
.admin-layout{background:#f3f5f8;}
.admin-sidebar{position:fixed;inset:0 auto 0 0;width:252px;background:#101c2d;color:#dce6f5;z-index:80;padding:24px 16px 18px;display:flex;flex-direction:column;box-shadow:8px 0 24px rgba(10,20,35,.12);}
.admin-sidebar-brand{display:flex;flex-direction:column;align-items:flex-start;gap:9px;padding:0 12px 24px;border-bottom:1px solid rgba(255,255,255,.1);}
.admin-sidebar-brand img{width:auto;height:35px;background:#fff;border-radius:7px;padding:4px 10px;}
.admin-sidebar-brand span{font-size:.62rem;font-weight:800;letter-spacing:.1em;color:#91a5c1;}
.admin-sidebar-group{display:flex;flex-direction:column;gap:3px;margin-top:25px;}
.admin-sidebar-group>span{padding:0 12px 8px;color:#7186a3;font-size:.65rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;}
.admin-sidebar-group a{display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:8px;color:#b8c7dc;font-size:.86rem;font-weight:650;transition:background .15s ease,color .15s ease;}
.admin-sidebar-group a b{display:inline-flex;width:22px;color:#6e84a1;font-size:.65rem;font-weight:800;}
.admin-sidebar-group a:hover{background:rgba(255,255,255,.07);color:#fff;}
.admin-sidebar-group a.active{background:#2a8c54;color:#fff;box-shadow:0 5px 14px rgba(42,140,84,.2);}
.admin-sidebar-group a.active b{color:#d8ffe7;}
.admin-sidebar-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.1);padding:18px 12px 0;display:flex;flex-direction:column;gap:3px;}
.admin-sidebar-footer strong{color:#fff;font-size:.84rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.admin-sidebar-footer span{color:#7186a3;font-size:.72rem;}
.admin-sidebar-footer a{color:#9fb1c9;font-size:.76rem;margin-top:12px;}
.admin-sidebar-footer a:hover{color:#fff;}
.admin-layout header.app-header{margin-left:252px;height:66px;background:#fff;border-bottom:1px solid #e0e5ec;box-shadow:none;}
.admin-layout header.app-header .bar{max-width:none;padding:0 30px;height:66px;}
.admin-layout header.app-header .brand{display:none;}
.admin-layout header.app-header nav{display:none;}
.admin-layout header.app-header .user span,.admin-layout header.app-header .user>a{display:none;}
.admin-layout header.app-header .user{margin-left:auto;}
.admin-layout .mobile-quicknav{display:none;}
.admin-layout main{margin-left:252px;padding:34px 0 64px;}
.admin-layout main>.wrap{max-width:1440px;padding:0 36px;}
.admin-layout .page-head h1{font-size:1.95rem;font-weight:800;}
.admin-layout .page-head p{max-width:720px;}
.admin-layout .card{border-color:#e0e5ec;box-shadow:0 2px 5px rgba(15,27,45,.025);}
.admin-layout .admin-sidebar+.app-header{}
@media (max-width:720px){
  .admin-sidebar{transform:translateX(-105%);transition:transform .2s ease;}
  .admin-layout.admin-sidebar-open .admin-sidebar{transform:translateX(0);}
  .admin-layout header.app-header,.admin-layout main{margin-left:0;}
  .admin-layout header.app-header .bar{padding:0 18px;}
  .admin-layout header.app-header .user span{display:block;font-size:.78rem;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .admin-layout .nav-toggle{display:inline-flex;}
  .admin-layout main>.wrap{padding:0 18px;}
  .admin-layout.admin-sidebar-open:after{content:"";position:fixed;inset:0;background:rgba(5,12,22,.42);z-index:70;}
}

/* MAPA DE VENDAS */
.mapa-legend{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:20px;font-size:.85rem;font-weight:600;}
.mapa-legend .dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:middle;}
.planta-wrap{position:relative;width:100%;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);background:#fff;}
.planta-img{display:block;width:100%;height:auto;}
.marker{
  position:absolute;width:12px;height:12px;border-radius:50%;
  transform:translate(-50%,-50%);
  box-shadow:0 1px 4px rgba(0,0,0,.4);cursor:pointer;
  border:none;padding:0;margin:0;appearance:none;-webkit-appearance:none;outline:none;background-clip:padding-box;
}
.marker.status-disponivel{background-color:var(--blue);}
.marker.status-reservado{background-color:var(--amber);}
.marker.status-vendido{background-color:var(--red);}
.marker.status-cadastro{width:18px;height:18px;background-color:rgba(124,58,237,.12);border:2px solid #7c3aed;box-shadow:0 0 0 2px rgba(255,255,255,.6);}
.marker:hover{filter:brightness(1.1);}
.marker.editor-mode{cursor:crosshair;}
.marker.marker-static{cursor:default;}

.lote-list-unpositioned{margin-top:24px;padding:18px 20px;background:#fff9ec;border:1px solid #f0dfb6;border-radius:14px;font-size:.85rem;}

.modal-overlay{position:fixed;inset:0;background:rgba(4,20,58,.55);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px;overflow-y:auto;}
.modal-overlay.hidden{display:none;}
.modal-box{background:#fff;border-radius:var(--radius);padding:28px;max-width:380px;width:100%;max-height:min(90vh,720px);overflow-y:auto;-webkit-overflow-scrolling:touch;margin:auto;}
.modal-box h3{font-size:1.15rem;font-weight:800;margin-bottom:4px;}
.modal-box .sub{color:var(--muted);font-size:.85rem;margin-bottom:18px;}
.reserva-info{background:#fff4e6;border:1px solid #f0dfb6;border-radius:12px;padding:12px 14px;margin-bottom:18px;}
.reserva-info strong{display:block;font-size:.85rem;color:var(--ink);margin-bottom:4px;}
.reserva-info .countdown{display:block;font-weight:800;font-size:.95rem;color:var(--amber-dark);font-variant-numeric:tabular-nums;}
.modal-box .status-choice{display:flex;flex-direction:column;gap:10px;margin-bottom:20px;}
.modal-box .status-choice.hidden{display:none;}
.modal-box .status-choice label{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;cursor:pointer;font-weight:600;font-size:.9rem;}
.modal-box .status-choice input{accent-color:var(--navy);}
.modal-box .corretor-field{margin-bottom:20px;}
.simulador{background:#f4f7fb;border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:18px;}
.simulador-preco{font-weight:800;font-size:1.1rem;color:var(--navy);margin-bottom:10px;}
.simulador select{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font-size:.85rem;font-family:inherit;margin-bottom:12px;background:#fff;}
.simulador-resultado{font-size:.85rem;line-height:1.7;margin-bottom:12px;white-space:pre-line;color:var(--ink);}
.simulador-resultado .obs{color:var(--muted);font-size:.78rem;display:block;margin-top:4px;}
.modal-box .corretor-field label{display:block;font-weight:700;font-size:.82rem;margin-bottom:6px;}
.modal-box .corretor-field input{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font-size:.9rem;font-family:inherit;}
.modal-box .corretor-field.hidden{display:none;}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;}
.modal-sucesso-titulo{font-weight:800;font-size:1.02rem;color:var(--green-dark);margin-bottom:8px;}

@media (max-width:720px){
  header.app-header .bar{position:relative;}
  .nav-toggle{display:inline-flex;align-items:center;justify-content:center;}
  header.app-header nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:0;padding:6px 0;box-shadow:0 10px 18px rgba(0,0,0,.1);}
  header.app-header nav.open{display:flex;}
  header.app-header nav a{padding:13px 24px;width:100%;box-sizing:border-box;}
  .mobile-quicknav{display:flex;gap:8px;padding:10px 16px;background:#fff;border-top:1px solid var(--line);}
  .mobile-quicknav a{flex:1;text-align:center;padding:11px 6px;border-radius:10px;background:var(--panel);color:var(--navy);font-weight:700;font-size:.82rem;border:1px solid var(--line);}
  .mobile-quicknav a.active{background:var(--navy);color:#fff;border-color:var(--navy);}
  .page-head{flex-direction:column;align-items:flex-start;}
  .modal-overlay{padding:12px;}
  .modal-box{padding:20px;max-width:100%;}
  .marker{width:8px;height:8px;box-shadow:0 0 1px rgba(0,0,0,.5);}
  .marker.status-cadastro{width:12px;height:12px;border-width:1.5px;}
}
@media (max-width:420px){
  .marker{width:6px;height:6px;box-shadow:none;}
  .marker.status-cadastro{width:9px;height:9px;border-width:1px;box-shadow:none;}
}

/* Area administrativa: linguagem mais densa e orientada a operacao. */
.admin-layout{background:#f6f8fb;}
.admin-layout .wrap{max-width:1280px;}
.admin-layout main{padding-top:28px;}
.admin-layout header.app-header{background:#fff;box-shadow:0 2px 10px rgba(15,27,45,.04);}
.admin-layout header.app-header nav{gap:7px;font-size:.84rem;}
.admin-layout header.app-header nav > a{padding:8px 10px;border-radius:8px;}
.admin-layout header.app-header nav > a:hover,.admin-layout header.app-header nav > a.active{background:#edf3ff;color:var(--navy);}
.admin-layout header.app-header nav > a[href="/dashboard.php"],.admin-layout header.app-header nav > a[href="/espaco_corretor.php"]{display:none;}
.admin-layout .nav-label{display:inline-flex;color:var(--muted);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;margin:0 3px 0 8px;align-items:center;}
.admin-layout .nav-label-secondary{border-left:1px solid var(--line);padding-left:12px;}
.admin-layout .btn{border-radius:8px;}
.admin-layout .card{border-radius:12px;padding:20px;box-shadow:0 1px 2px rgba(15,27,45,.02);}
.admin-layout .page-head{margin-bottom:22px;}
.admin-layout .page-head h1{font-size:1.75rem;letter-spacing:0;}
.admin-layout .page-head p{font-size:.9rem;}
.admin-layout table.data-table{border-radius:10px;box-shadow:0 1px 2px rgba(15,27,45,.03);}
.admin-layout table.data-table th{background:#f0f4f9;}
.admin-layout table.data-table td{padding:13px 14px;}
.admin-layout form.form-card{border-radius:12px;box-shadow:0 1px 2px rgba(15,27,45,.03);}
.admin-period-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:18px;}
.admin-period-toolbar .btn{min-width:82px;justify-content:center;}
.admin-section-heading{display:flex;align-items:baseline;gap:10px;margin:24px 0 12px;}
.admin-section-heading h2{font-size:1.05rem;}
.admin-section-heading span{color:var(--muted);font-size:.82rem;}
.admin-alert-card{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px;text-decoration:none;color:inherit;border-left:4px solid var(--amber);}
.admin-alert-card.has-pending{background:#fffaf1;border-color:#efd59d;border-left-color:var(--amber);}
.admin-alert-card.is-clear{border-left-color:var(--green);}
.admin-alert-copy h3{font-size:1.08rem;margin:2px 0 3px;}
.admin-alert-copy .hint{margin:0;}
.admin-alert-action{display:flex;align-items:center;gap:12px;white-space:nowrap;}
.admin-alert-action strong{font-size:2rem;line-height:1;color:var(--amber-dark);}
.admin-layout .stat-row{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;}
.admin-layout .stat-box{text-align:left;border-radius:10px;padding:16px 17px;border-top:3px solid #dbe4ef;}
.admin-layout .stat-box:nth-child(1){border-top-color:var(--amber);}.admin-layout .stat-box:nth-child(2){border-top-color:var(--blue);}.admin-layout .stat-box:nth-child(3){border-top-color:var(--green);}.admin-layout .stat-box:nth-child(4){border-top-color:var(--red);}.admin-layout .stat-box:nth-child(5){border-top-color:var(--navy);}
.admin-layout .stat-box .n{font-size:1.5rem;}.admin-layout .stat-box .l{font-size:.7rem;line-height:1.25;}
.admin-page-admin-aprovacoes .card{border-radius:10px;box-shadow:none;}
.admin-page-admin-aprovacoes #secao-propostas,.admin-page-admin-aprovacoes #secao-vendas{background:#fff !important;border-color:var(--line) !important;border-left:4px solid var(--amber);}
.admin-page-admin-aprovacoes .pedidos-liberacao{gap:7px;margin-bottom:20px;}
.admin-page-admin-aprovacoes .pedido-liberacao-item{background:#fbfcfe;border-color:#e2e8f0;border-radius:9px;padding:13px 15px;}
.admin-page-admin-aprovacoes .pedido-liberacao-item .btn{font-size:.78rem;}
.admin-page-admin-aprovacoes .page-head{margin-bottom:18px;}
@media (max-width:960px){.admin-layout header.app-header nav{gap:2px;}.admin-layout header.app-header nav > a{padding:7px 7px;}.admin-layout .nav-label{display:none;}.admin-layout .nav-label-secondary{border-left:0;padding-left:0;}.admin-layout .stat-row{grid-template-columns:repeat(3,1fr);}}
@media (max-width:720px){.admin-layout header.app-header nav > a[href="/dashboard.php"],.admin-layout header.app-header nav > a[href="/espaco_corretor.php"]{display:none;}.admin-alert-card{align-items:flex-start;flex-direction:column;}.admin-alert-action{width:100%;justify-content:space-between;}.admin-layout .stat-row{grid-template-columns:1fr 1fr;}}

.checkbox-list{display:flex;flex-direction:column;gap:8px;border:1px solid var(--line);border-radius:10px;padding:12px 14px;max-height:260px;overflow-y:auto;}
.checkbox-item{display:flex;align-items:center;gap:8px;font-size:.9rem;cursor:pointer;}
.checkbox-item input{width:auto;margin:0;}

.heatmap-selector{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px;}
.heatmap-legend{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:16px;font-size:.85rem;font-weight:600;}
.heat-dot{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:6px;vertical-align:middle;}
.heat-marker{position:absolute;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 1px 4px rgba(0,0,0,.4);cursor:default;border:2px solid rgba(255,255,255,.8);padding:0;margin:0;appearance:none;-webkit-appearance:none;outline:none;}

.hidden{display:none;}
.relatorio-lote{border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:10px;background:#fff;}
.relatorio-lote h4{font-size:.95rem;font-weight:800;margin-bottom:6px;display:flex;align-items:center;gap:10px;}
.relatorio-lote .stats{font-size:.85rem;color:var(--muted);margin-bottom:6px;}
.relatorio-lote .corretores{font-size:.85rem;color:var(--ink);}
.relatorio-lote .corretores strong{color:var(--navy);}

/* Documentos e contratos (módulo novo) */
.field label{display:block;font-weight:700;font-size:.85rem;margin-bottom:6px;color:var(--ink);}
.field input[type=text], .field select{width:100%;padding:11px 14px;border:1px solid var(--line);border-radius:10px;font-size:.95rem;font-family:inherit;background:#fff;color:var(--ink);}
.field input[type=text]:focus, .field select:focus{outline:2px solid var(--green);outline-offset:1px;}
.field input[type=file]{width:100%;padding:11px 14px;border:1px dashed var(--line);border-radius:10px;font-size:.9rem;font-family:inherit;background:var(--panel);}

.doc-list{display:flex;flex-direction:column;gap:14px;margin-bottom:24px;}
.doc-item{display:flex;justify-content:space-between;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px;flex-wrap:wrap;}
.doc-item .info strong{display:block;font-size:.95rem;}
.doc-item .info span{font-size:.78rem;color:var(--muted);}
.doc-item .actions{display:flex;gap:8px;flex-wrap:wrap;}

.pill-pendente{background:rgba(232,163,61,.18);color:var(--amber-dark);}
.pill-aprovado{background:rgba(74,185,13,.14);color:var(--green-dark);}
.pill-rejeitado{background:rgba(214,58,58,.14);color:var(--red-dark);}
.pill-gerado{background:rgba(4,37,105,.1);color:var(--navy);}
.pill-enviado{background:rgba(74,185,13,.14);color:var(--green-dark);}
.pill-assinado{background:rgba(74,185,13,.14);color:var(--green-dark);}
.pill-pago{background:rgba(74,185,13,.14);color:var(--green-dark);}
.pill-liberada{background:rgba(47,128,237,.14);color:var(--blue-dark);}

/* ESPAÇO DO CORRETOR — cartões de estatística */
.stat-row{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-bottom:8px;}
.stat-box{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;text-align:center;}
.stat-box .n{font-size:1.6rem;font-weight:800;color:var(--navy);}
.stat-box .l{font-size:.76rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:700;margin-top:4px;}
@media (max-width:720px){
  .stat-row{grid-template-columns:1fr 1fr;}
}

/* ESPAÇO DO CORRETOR — esteira de etapas da venda */
.venda-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 20px;margin-bottom:20px;}
.venda-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap;margin-bottom:6px;}
.venda-card-head strong{display:block;font-size:1rem;}
.venda-card-head .hint{margin-top:2px;}

.stepper-wrap{overflow-x:auto;padding:14px 2px 6px;}
.stepper{display:flex;align-items:flex-start;min-width:max-content;}
.stepper-step{display:flex;flex-direction:column;align-items:center;gap:8px;width:96px;flex-shrink:0;cursor:pointer;background:none;border:none;font-family:inherit;padding:4px 2px;border-radius:8px;}
.stepper-step:hover{background:var(--panel);}
.stepper-step:focus-visible{outline:2px solid var(--navy);outline-offset:2px;}
.stepper-circle{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;border:2px solid var(--line);color:var(--muted);background:#fff;flex-shrink:0;transition:background .15s ease,border-color .15s ease,color .15s ease;}
.stepper-label{font-size:.72rem;font-weight:600;color:var(--muted);text-align:center;line-height:1.25;}
.stepper-line{width:30px;height:2px;background:var(--line);margin-top:15px;flex-shrink:0;}
.stepper-line.done{background:var(--green);}
.stepper-step.done .stepper-circle{background:var(--green);border-color:var(--green);color:#fff;}
.stepper-step.done .stepper-label{color:var(--ink);}
.stepper-step.current .stepper-circle{background:var(--navy);border-color:var(--navy);color:#fff;}
.stepper-step.current .stepper-label{color:var(--navy);font-weight:800;}
.stepper-step.andamento .stepper-circle{background:var(--amber);border-color:var(--amber);color:#fff;}
.stepper-step.andamento .stepper-label{color:var(--amber-dark);font-weight:800;}
.stepper-step.selected .stepper-circle{box-shadow:0 0 0 3px rgba(4,37,105,.18);}

.stepper-info{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 16px;font-size:.88rem;}
.stepper-info strong{display:block;margin-bottom:4px;color:var(--ink);font-size:.92rem;}
.stepper-info p{color:var(--muted);margin-bottom:10px;}
.stepper-info .btn{margin-top:2px;}
.stepper-info .stepper-pedido-aviso{color:var(--amber-dark);font-weight:700;}

/* ESPAÇO DO CORRETOR / DASHBOARD — pedidos de liberação pendentes (admin) */
.pedidos-liberacao{display:flex;flex-direction:column;gap:10px;margin-bottom:28px;}
.pedido-liberacao-item{display:flex;justify-content:space-between;align-items:center;gap:14px;background:#fff9ec;border:1px solid #f0dfb6;border-radius:12px;padding:12px 16px;flex-wrap:wrap;font-size:.88rem;}
.pedido-liberacao-item strong{color:var(--ink);}
.pedido-liberacao-item span{color:var(--muted);}

@media (max-width:720px){
  .doc-item{flex-direction:column;align-items:flex-start;}
}

/* GRADE DE QUADRA E LOTE (visão alternativa ao mapa) */
.view-toggle{display:flex;gap:8px;margin-bottom:20px;}
.view-toggle button{padding:9px 18px;border-radius:999px;font-weight:700;font-size:.85rem;border:1px solid var(--line);background:#fff;color:var(--muted);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease;}
.view-toggle button.active{background:var(--navy);color:#fff;border-color:var(--navy);}
.view-toggle button:hover:not(.active){border-color:var(--navy);color:var(--navy);}

.grade-wrap{display:flex;flex-direction:column;gap:24px;}
.grade-quadra h4{font-size:.9rem;font-weight:800;color:var(--navy);text-transform:uppercase;letter-spacing:.04em;margin-bottom:12px;}
.grade-lotes{display:flex;flex-wrap:wrap;gap:8px;}
.lote-square{
  width:44px;height:44px;border-radius:8px;border:none;padding:0;margin:0;cursor:pointer;
  display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:800;
  color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .1s ease,filter .15s ease;
  font-family:inherit;appearance:none;-webkit-appearance:none;
}
.lote-square:hover{transform:translateY(-2px);filter:brightness(1.08);}
.lote-square.status-disponivel{background-color:var(--blue);}
.lote-square.status-reservado{background-color:var(--amber);}
.lote-square.status-vendido{background-color:var(--red);}
.lote-square.status-cadastro{background-color:#fff;border:2px solid #7c3aed;color:#7c3aed;}

@media (max-width:480px){
  .lote-square{width:36px;height:36px;font-size:.7rem;border-radius:7px;}
}

/* ACOMPANHAMENTO ADMINISTRATIVO - esteira operacional */
.acompanhamento-head{margin-bottom:10px;}
.acompanhamento-head h1{font-size:1.12rem;margin-bottom:5px;}
.acompanhamento-head p{margin:0;color:var(--navy);}
.acompanhamento-statusbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 16px;margin-bottom:10px;color:var(--navy);font-size:.82rem;}
.acompanhamento-statusbar strong{margin-left:auto;font-size:.84rem;color:var(--amber-dark);}
.acompanhamento-esteira{background:#fff;border:1px solid var(--line);border-radius:10px;padding:18px 16px 14px;margin-bottom:20px;}
.acompanhamento-esteira-track{display:flex;align-items:flex-start;justify-content:space-between;gap:0;overflow-x:auto;padding:0 4px 12px;}
.acompanhamento-etapa{position:relative;display:flex;flex:1;min-width:88px;flex-direction:column;align-items:center;gap:7px;text-align:center;color:#7c8799;font-size:.67rem;line-height:1.2;}
.acompanhamento-etapa strong{max-width:92px;font-weight:600;}
.acompanhamento-etapa{border:0;background:transparent;font-family:inherit;cursor:pointer;padding:0 4px 4px;}
.acompanhamento-etapa:focus-visible{outline:2px solid var(--navy);outline-offset:3px;border-radius:6px;}
.acompanhamento-etapa.selecionada .acompanhamento-etapa-circle{box-shadow:0 0 0 3px rgba(4,37,105,.14);}
.acompanhamento-etapa-circle{z-index:1;display:flex;width:28px;height:28px;align-items:center;justify-content:center;border:1px solid #d9e1ec;border-radius:50%;background:#fff;color:#62718a;font-size:.75rem;}
.acompanhamento-etapa-line{position:absolute;top:13px;left:calc(50% + 14px);width:calc(100% - 28px);height:1px;background:#d9e1ec;}
.acompanhamento-etapa-line.done{background:var(--green);}
.acompanhamento-etapa.feita{color:var(--navy);}
.acompanhamento-etapa.feita .acompanhamento-etapa-circle{border-color:var(--green);background:var(--green);color:#fff;font-size:1rem;font-weight:800;}
.acompanhamento-etapa.andamento{color:var(--amber-dark);}
.acompanhamento-etapa.andamento strong{font-weight:800;}
.acompanhamento-etapa.andamento .acompanhamento-etapa-circle{border-color:var(--amber);background:var(--amber);color:#fff;font-weight:800;}
.acompanhamento-etapa-info{background:#f4f7fb;border:1px solid #e1e8f1;border-radius:8px;padding:12px 14px;color:var(--navy);}
.acompanhamento-etapa-info strong{display:block;font-size:.82rem;margin-bottom:3px;}
.acompanhamento-etapa-info p{margin:0;color:#62718a;font-size:.78rem;line-height:1.45;}
.acompanhamento-etapa-info #acompanhamento-etapa-acao{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px;}
.acompanhamento-etapa-sem-acao,.acompanhamento-etapa-confirmacao{color:#62718a;font-size:.74rem;}
.central-arquivos,.central-informacoes{margin:20px 0;}
.central-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:16px;}
.central-section-head h2{margin:3px 0 4px;font-size:1.05rem;color:var(--navy);}
.central-section-head .hint{margin:0;}
.central-section-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.central-arquivos-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.central-arquivo-grupo{border:1px solid var(--line);border-radius:8px;padding:12px;background:#fbfcfe;}
.central-arquivo-grupo h3,.central-info-group h3{font-size:.84rem;color:var(--navy);margin-bottom:10px;}
.central-arquivo-grupo h3 span{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:20px;border-radius:10px;background:#e8eef6;color:var(--navy);font-size:.7rem;margin-left:4px;}
.central-arquivo-item{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding:10px 0;}
.central-arquivo-item:first-of-type{border-top:0;}
.central-arquivo-item strong,.central-arquivo-item small{display:block;}
.central-arquivo-item strong{font-size:.8rem;color:var(--navy);}
.central-arquivo-item small{max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#718096;font-size:.7rem;margin-top:3px;}
.central-arquivo-actions{display:flex;align-items:center;gap:5px;flex-wrap:wrap;justify-content:flex-end;}
.central-ver-todos{display:inline-block;margin-top:8px;color:var(--navy);font-size:.76rem;font-weight:700;}
.central-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
.central-info-group{border-top:2px solid #e7edf5;padding-top:12px;}
.central-facts{display:grid;grid-template-columns:1fr;gap:8px;margin:0;}
.central-facts div{display:grid;grid-template-columns:minmax(90px,38%) 1fr;gap:8px;}
.central-facts dt{color:#718096;font-size:.72rem;}
.central-facts dd{margin:0;color:var(--navy);font-size:.78rem;overflow-wrap:anywhere;}
@media (max-width:900px){
  .central-info-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:720px){
  .central-arquivos-grid,.central-info-grid{grid-template-columns:1fr;}
  .central-arquivo-item{align-items:flex-start;flex-direction:column;}
  .central-arquivo-actions{justify-content:flex-start;}
}
.acompanhamento-pendencias{border:1px solid #f0dfb6;border-radius:10px;background:#fff9ec;padding:16px;margin-bottom:12px;}
.acompanhamento-pendencias.sem-pendencias{background:#f5fbf2;border-color:#cfe8c6;}
.acompanhamento-pendencias-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px;}
.acompanhamento-pendencias-head h2{font-size:1rem;margin:3px 0 0;color:var(--navy);}
.acompanhamento-pendencia-lista{display:flex;flex-direction:column;gap:8px;}
.acompanhamento-pendencia{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;border:1px solid #f0dfb6;border-radius:8px;padding:11px 12px;}
.acompanhamento-pendencia.normal{border-color:var(--line);}
.acompanhamento-pendencia strong{display:block;font-size:.84rem;color:var(--navy);}
.acompanhamento-pendencia p{margin:3px 0 0;color:#62718a;font-size:.76rem;}
.acompanhamento-pendencia-acoes{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end;}
.acompanhamento-cancelar-wrap{display:flex;justify-content:flex-end;margin:4px 0 18px;}
.btn-xs{padding:5px 9px;font-size:.7rem;line-height:1.2;}
@media (max-width:720px){
  .acompanhamento-pendencias-head,.acompanhamento-pendencia{align-items:flex-start;flex-direction:column;}
  .acompanhamento-pendencia-acoes{justify-content:flex-start;}
}
@media (max-width:720px){
  .acompanhamento-statusbar strong{width:100%;margin-left:0;}
  .acompanhamento-esteira{padding-left:10px;padding-right:10px;}
  .acompanhamento-esteira-track{justify-content:flex-start;min-width:720px;}
}
