@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap');

/* Tokens — mesma paleta provisória validada nos mockups do painel; trocar aqui
   quando a identidade visual oficial do projeto chegar. */
:root{
  --bg:#121821; --panel:#1a222c; --panel-2:#212b37;
  --border:#2d3a47; --border-soft:#25313d;
  --text:#eef2f5; --text-dim:#93a4b0; --text-faint:#5f707c;
  --brand:#5fae74; --brand-2:#3e8fd9; --amber:#d99a3e; --danger:#c0524a;
  --paper:#f6f4ee; --paper-ink:#26261f;
  --font-display:'Space Grotesk', sans-serif;
  --font-body:'Inter', sans-serif;
  --font-mono:'IBM Plex Mono', monospace;
  --radius:12px;
}

*{box-sizing:border-box;}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);}
a{color:inherit;}

/* ===== TOPO ===== */
.topo{
  display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;
  padding:14px 24px;background:var(--panel);border-bottom:1px solid var(--border);
}
.marca{font-family:var(--font-display);font-weight:700;font-size:17px;color:var(--text);text-decoration:none;}
.topo nav{display:flex;gap:16px;align-items:center;flex-wrap:wrap;font-size:13.5px;}
.topo nav a{color:var(--text-dim);text-decoration:none;}
.topo nav a:hover{color:var(--text);}
.topo .usuario{font-size:12px;color:var(--text-faint);font-family:var(--font-mono);display:flex;align-items:center;gap:10px;}
.topo form{display:inline;}
.link-sutil{background:none;border:none;color:var(--text-faint);font-family:var(--font-body);font-size:12px;cursor:pointer;text-decoration:underline;padding:0;}

#sheet, .conteudo{max-width:1220px;margin:0 auto;padding:24px 24px 60px;}
h1{font-family:var(--font-display);font-size:26px;font-weight:700;margin:0 0 18px;}
h2{font-family:var(--font-display);font-size:18px;font-weight:700;}

/* ===== ALERTAS ===== */
.alerta{padding:11px 14px;border-radius:8px;margin-bottom:16px;font-size:14px;border:1px solid transparent;}
.alerta-sucesso{background:rgba(95,174,116,.12);color:var(--brand);border-color:rgba(95,174,116,.3);}
.alerta-erro{background:rgba(192,82,74,.12);color:#e28a83;border-color:rgba(192,82,74,.3);}

/* ===== BOTÕES ===== */
.btn{
  display:inline-block;padding:9px 15px;border:1px solid var(--border);border-radius:8px;
  background:var(--panel-2);color:var(--text);font-size:13.5px;font-family:var(--font-body);
  font-weight:600;text-decoration:none;cursor:pointer;
}
.btn:hover{border-color:var(--text-faint);}
.btn-primario{background:var(--brand);border-color:var(--brand);color:#0d1710;}
.btn-primario:hover{filter:brightness(1.08);}
.btn-perigo{color:#e28a83;border-color:rgba(192,82,74,.4);}
.btn-vazio{background:transparent;}
.btn-pequeno{padding:6px 11px;font-size:12.5px;}
.acoes-form{display:flex;gap:10px;margin-top:8px;}

/* ===== BREADCRUMB / HEADER DE PÁGINA ===== */
.breadcrumb{font-family:var(--font-mono);font-size:11.5px;color:var(--text-faint);letter-spacing:.5px;margin-bottom:14px;}
.breadcrumb a{color:var(--text-faint);text-decoration:none;}
.breadcrumb span{color:var(--text-dim);}
.header{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;padding-bottom:20px;border-bottom:1px solid var(--border);margin-bottom:22px;}
.header-left h1{margin:0 0 6px;}
.header-left p{margin:0;font-size:13px;color:var(--text-dim);}
.header-meta{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.header-right{display:flex;gap:10px;align-items:center;}
.badge{font-family:var(--font-mono);font-size:11px;letter-spacing:.5px;text-transform:uppercase;padding:4px 10px;border-radius:999px;border:1px solid var(--border);color:var(--text-dim);}
.badge.segment{border-color:var(--brand);color:var(--brand);}
.last-visit{font-size:12px;color:var(--text-faint);text-align:right;}
.last-visit strong{color:var(--text-dim);display:block;font-size:12.5px;}

/* ===== FILTROS ===== */
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:24px;align-items:center;}
.filter-pill{display:flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--border);border-radius:999px;padding:8px 14px;font-size:12.5px;color:var(--text-dim);}
.filter-pill label{font-family:var(--font-mono);font-size:10px;color:var(--text-faint);text-transform:uppercase;}
.filter-pill select, .filter-pill input{background:none;border:none;color:var(--text);font-size:12.5px;font-family:var(--font-body);}
.filter-pill select:focus, .filter-pill input:focus{outline:none;}
.filter-clear{font-size:12px;color:var(--text-faint);text-decoration:underline;}

/* ===== SIGNAL BARS ===== */
.signal{display:inline-flex;align-items:flex-end;gap:2px;height:14px;vertical-align:middle;}
.signal i{display:block;width:3px;border-radius:1px;background:var(--border-soft);}
.signal i:nth-child(1){height:35%;} .signal i:nth-child(2){height:55%;}
.signal i:nth-child(3){height:75%;} .signal i:nth-child(4){height:100%;}
.signal.lv1 i:nth-child(1){background:var(--danger);}
.signal.lv2 i:nth-child(1),.signal.lv2 i:nth-child(2){background:var(--amber);}
.signal.lv3 i:nth-child(1),.signal.lv3 i:nth-child(2),.signal.lv3 i:nth-child(3){background:var(--brand-2);}
.signal.lv4 i{background:var(--brand);}

/* ===== KPI ===== */
.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:28px;}
@media (max-width:920px){.kpi-row{grid-template-columns:repeat(2,1fr);}}
.kpi-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:18px;}
.kpi-label{font-family:var(--font-mono);font-size:10px;color:var(--text-faint);text-transform:uppercase;letter-spacing:.7px;margin-bottom:10px;}
.kpi-value{font-family:var(--font-display);font-size:27px;font-weight:700;display:flex;align-items:baseline;gap:6px;}
.kpi-value small{font-family:var(--font-body);font-size:12px;font-weight:500;color:var(--text-dim);}
.kpi-sub, .kpi-trend{font-size:11.5px;margin-top:8px;font-family:var(--font-mono);color:var(--text-dim);}

/* ===== LAYOUT DE CARDS ===== */
.grid{display:grid;grid-template-columns:1.3fr 1fr;gap:18px;}
@media (max-width:960px){.grid{grid-template-columns:1fr;}}
.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:18px;}
.card-title{font-family:var(--font-display);font-size:16.5px;font-weight:700;display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;}
.card-title .tag{font-family:var(--font-mono);font-size:10px;color:var(--text-faint);font-weight:400;}

/* ===== TABELAS ===== */
.tabela-wrap{background:var(--panel);border:1px solid var(--border);border-radius:8px;overflow-x:auto;}
.tabela{width:100%;border-collapse:collapse;font-size:12.5px;}
.tabela th{text-align:left;font-family:var(--font-mono);font-size:10px;color:var(--text-faint);text-transform:uppercase;font-weight:500;padding:11px 14px;border-bottom:1px solid var(--border);white-space:nowrap;}
.tabela td{padding:11px 14px;border-bottom:1px solid var(--border-soft);}
.tabela tr:last-child td{border-bottom:none;}
.tabela tr:hover td{background:var(--panel-2);}
.tabela .acoes{display:flex;gap:6px;align-items:center;white-space:nowrap;}
.tabela .acoes form{display:inline;margin:0;}
.client-name, .prop-name{font-weight:600;}
.client-sub, .prop-sub{font-size:11px;color:var(--text-faint);font-family:var(--font-mono);margin-top:2px;}
.seg-badge{font-size:10.5px;padding:3px 8px;border-radius:999px;border:1px solid var(--border-soft);color:var(--text-dim);}

/* ===== BARRAS HORIZONTAIS ===== */
.bar-row{margin-bottom:13px;}
.bar-row:last-child{margin-bottom:0;}
.bar-label{display:flex;justify-content:space-between;font-size:12.5px;margin-bottom:5px;}
.bar-label b{font-weight:600;}
.bar-label span{color:var(--text-dim);font-family:var(--font-mono);font-size:11.5px;}
.bar-track{height:7px;background:var(--panel-2);border-radius:4px;overflow:hidden;}
.bar-fill{height:100%;border-radius:4px;background:var(--brand);}

.region-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.region-cell{background:var(--panel-2);border:1px solid var(--border-soft);border-radius:8px;padding:12px;}
.region-cell .rname{font-size:12px;font-weight:600;margin-bottom:4px;}
.region-cell .rval{font-family:var(--font-mono);font-size:11px;color:var(--text-dim);}

/* ===== PROPRIEDADES / STAT LINES ===== */
.prop-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 0;border-top:1px solid var(--border-soft);}
.prop-row:first-of-type{border-top:none;padding-top:0;}
.prop-right{display:flex;align-items:center;gap:14px;}
.prop-area{font-family:var(--font-mono);font-size:13px;color:var(--text-dim);}
.stat-line{display:flex;justify-content:space-between;padding:8px 0;border-top:1px solid var(--border-soft);font-size:13px;}
.stat-line:first-child{border-top:none;padding-top:0;}
.stat-line span:first-child{color:var(--text-dim);}

/* ===== CHIPS / TAGS ===== */
.chip-group{display:flex;flex-wrap:wrap;gap:7px;}
.chip{font-size:11.5px;padding:5px 11px;border-radius:999px;background:var(--panel-2);border:1px solid var(--border-soft);color:var(--text-dim);}
.chip.on{border-color:var(--brand-2);color:var(--brand-2);}

/* ===== FORMULÁRIOS ===== */
.formulario{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:22px;max-width:720px;}
.formulario.largo{max-width:100%;}
.campo{margin-bottom:16px;display:flex;flex-direction:column;gap:6px;}
.campo label{font-size:13px;font-weight:600;}
.campo .ajuda{font-size:11.5px;color:var(--text-faint);}
.campo input[type="text"], .campo input[type="email"], .campo input[type="password"],
.campo input[type="number"], .campo input[type="date"], .campo select, .campo textarea{
  padding:9px 11px;border:1px solid var(--border);border-radius:8px;font-size:14px;
  background:var(--panel-2);color:var(--text);font-family:var(--font-body);width:100%;
}
.campo textarea{resize:vertical;min-height:90px;}
.campo-check label{flex-direction:row;font-weight:400;display:flex;gap:8px;align-items:center;}
.linha{display:flex;gap:16px;flex-wrap:wrap;}
.linha .campo{flex:1;min-width:200px;}
.erro{color:#e28a83;font-size:13px;}
.tags-opcoes{display:flex;flex-wrap:wrap;gap:8px;}
.tags-opcoes label{display:flex;align-items:center;gap:6px;font-weight:400;font-size:13px;background:var(--panel-2);border:1px solid var(--border-soft);padding:6px 10px;border-radius:999px;}

/* grupo repetível */
.grupo-repetivel{border:1px solid var(--border);border-radius:10px;padding:14px;background:var(--panel-2);}
.grupo-item{border:1px solid var(--border-soft);border-radius:8px;padding:14px;margin-bottom:12px;background:var(--panel);position:relative;}
.grupo-item:last-of-type{margin-bottom:0;}
.grupo-item .grupo-remover{position:absolute;top:10px;right:10px;}
.grupo-add{margin-top:10px;}
.grupo-vazio{color:var(--text-faint);font-size:13px;font-style:italic;}
.subgrupo{margin-top:14px;padding-top:14px;border-top:1px dashed var(--border);}
.subgrupo-titulo{font-size:12px;font-weight:600;color:var(--text-dim);margin-bottom:8px;}

.busca{display:flex;gap:8px;margin-bottom:18px;}
.busca input{flex:1;max-width:340px;}
.contador{color:var(--text-dim);font-size:13px;margin:0 0 10px;}
.vazio{color:var(--text-dim);background:var(--panel);border:1px dashed var(--border);border-radius:8px;padding:28px;text-align:center;}

.rodape{text-align:center;color:var(--text-faint);font-size:12px;padding:24px;font-family:var(--font-mono);}
.footer-note{margin-top:10px;font-size:11px;color:var(--text-faint);text-align:center;font-family:var(--font-mono);}

.aviso-offline{display:none;background:rgba(217,154,62,.12);color:var(--amber);border:1px solid rgba(217,154,62,.3);border-radius:8px;padding:11px 14px;margin-bottom:16px;font-size:13.5px;}
.aviso-offline.ativo{display:block;}

/* ===== PRINT / PDF (exportação — seção 6.3 da spec) ===== */
@media print{
  body{background:var(--paper);}
  #sheet, .conteudo{max-width:100%;padding:10px 20px;}
  .btn-export, .topo, .filters, .acoes, .aviso-offline{display:none !important;}
  .card, .kpi-card, .filter-pill, .tabela-wrap{background:#fff;border-color:#ddd8c8;}
  body, .card-title, .kpi-value, h1, .client-name, .prop-name{color:var(--paper-ink) !important;}
  .text-dim, .kpi-label, .client-sub, .prop-sub, .bar-label span, .kpi-sub{color:#7a7a68 !important;}
}
