/* ============================================================
   SHARED.CSS — ConectaPro Serviços
   Estilos compartilhados entre todas as páginas
============================================================ */

:root {
  --preto:        #0D0D0D;
  --preto-mid:    #1A1A1A;
  --preto-soft:   #242424;
  --dourado:      #D4AF37;
  --dourado-l:    #F0CE5E;
  --dourado-d:    #A08820;
  --branco:       #FFFFFF;
  --cinza:        #8A8A8A;
  --cinza-claro:  #F5F5F0;
  --borda:        rgba(212,175,55,0.15);
  --borda-clara:  #E8E8E0;
  --verde:        #00C853;
  --vermelho:     #FF3D3D;
  --azul:         #1E88E5;
  --laranja:      #FF6D00;
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; width:100%; }
body { font-family:'DM Sans',sans-serif; overflow-x:hidden; width:100%; margin:0; padding:0; }

/* ── TOPBAR ── */
.topbar {
  background:var(--preto);
  padding:0 32px; height:64px;
  display:flex; align-items:center; justify-content:space-between;
  border-bottom:1px solid var(--borda);
  position:sticky; top:0; z-index:100;
}
.topbar-logo {
  font-family:'Playfair Display',serif;
  font-size:20px; font-weight:900; color:#fff;
}
.topbar-logo span { color:var(--dourado); }
.topbar-right { display:flex; align-items:center; gap:14px; }
.topbar-user {
  display:flex; align-items:center; gap:10px;
  font-size:14px; color:rgba(255,255,255,0.7); font-weight:500;
}
.topbar-av {
  width:34px; height:34px;
  background:linear-gradient(135deg,var(--dourado-d),var(--dourado));
  border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:13px; font-weight:800; color:var(--preto);
}
.btn-sair {
  background:rgba(255,255,255,0.08); border:none;
  color:rgba(255,255,255,0.5); padding:8px 16px;
  border-radius:8px; font-size:13px; cursor:pointer;
  font-family:'DM Sans',sans-serif; transition:background 0.2s;
}
.btn-sair:hover { background:rgba(255,255,255,0.14); }

/* ── LAYOUT ── */
.app { display:flex; flex-direction:column; min-height:100vh; }
.main-layout { display:flex; flex:1; min-height:0; }

.sidebar {
  width:220px; min-width:220px; max-width:220px;
  background:#fff;
  border-right:1px solid var(--borda-clara);
  padding:20px 0; flex-shrink:0;
  position:sticky; top:64px; height:calc(100vh - 64px);
  overflow-y:auto;
}
.nav-item {
  display:flex; align-items:center; gap:12px;
  padding:13px 24px; font-size:14px; font-weight:500;
  color:#6B6B6B; cursor:pointer; transition:all 0.2s;
  border-left:3px solid transparent;
}
.nav-item:hover { color:#1A1A1A; background:var(--cinza-claro); }
.nav-item.active {
  color:var(--preto); background:#FBF8EC;
  border-left-color:var(--dourado); font-weight:600;
}
.nav-icon { font-size:18px; width:22px; text-align:center; }
.nav-badge {
  margin-left:auto; background:var(--dourado);
  color:var(--preto); font-size:11px; font-weight:800;
  padding:2px 8px; border-radius:50px;
}
.nav-divider {
  height:1px; background:var(--borda-clara);
  margin:12px 16px;
}

.content { flex:1; min-width:0; padding:32px; background:var(--cinza-claro); overflow-x:hidden; }

/* ── TIPOGRAFIA ── */
.page-title {
  font-family:'Playfair Display',serif;
  font-size:26px; font-weight:900; letter-spacing:-0.5px; margin-bottom:4px;
}
.page-sub { font-size:14px; color:var(--cinza); margin-bottom:28px; }
.sec-label {
  font-size:11px; font-weight:700; color:var(--dourado);
  letter-spacing:2.5px; text-transform:uppercase; margin-bottom:10px;
}

/* ── CARDS ── */
.card {
  background:#fff; border:1px solid var(--borda-clara);
  border-radius:18px; padding:24px;
}
.card-header {
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:20px; padding-bottom:16px;
  border-bottom:1px solid var(--borda-clara);
}
.card-title {
  font-family:'Playfair Display',serif;
  font-size:17px; font-weight:900;
}

/* ── MÉTRICAS ── */
.metricas { display:grid; gap:14px; margin-bottom:24px; }
.metricas-3 { grid-template-columns:repeat(3,1fr); }
.metricas-4 { grid-template-columns:repeat(4,1fr); }
.metrica {
  background:#fff; border:1px solid var(--borda-clara);
  border-radius:14px; padding:20px;
}
.metrica-label {
  font-size:11px; color:var(--cinza); font-weight:600;
  text-transform:uppercase; letter-spacing:0.5px; margin-bottom:8px;
}
.metrica-val {
  font-family:'Playfair Display',serif;
  font-size:28px; font-weight:900; color:var(--preto); line-height:1;
}
.metrica-val.gold { color:var(--dourado-d); }
.metrica-val.green { color:#059669; }
.metrica-val.red { color:var(--vermelho); }

/* ── BOTÕES ── */
.btn {
  padding:11px 22px; border-radius:10px; font-size:14px; font-weight:600;
  cursor:pointer; transition:all 0.2s; border:none;
  font-family:'DM Sans',sans-serif; display:inline-flex; align-items:center; gap:8px;
}
.btn-gold {
  background:linear-gradient(135deg,var(--dourado),var(--dourado-l));
  color:var(--preto);
}
.btn-gold:hover { transform:translateY(-1px); box-shadow:0 6px 20px rgba(212,175,55,0.35); }
.btn-dark { background:var(--preto); color:#fff; }
.btn-dark:hover { background:var(--preto-mid); }
.btn-outline {
  background:none; border:1.5px solid var(--dourado); color:var(--dourado);
}
.btn-outline:hover { background:rgba(212,175,55,0.08); }
.btn-ghost { background:rgba(0,0,0,0.05); color:var(--cinza); }
.btn-ghost:hover { background:rgba(0,0,0,0.1); color:#333; }
.btn-danger { background:#FEE2E2; color:var(--vermelho); }
.btn-danger:hover { background:#FECACA; }
.btn-success { background:#D1FAE5; color:#065F46; }
.btn-sm { padding:7px 14px; font-size:12px; border-radius:8px; }
.btn-full { width:100%; justify-content:center; }
.btn:disabled { opacity:0.5; cursor:not-allowed; transform:none !important; }

/* ── FIELDS ── */
.field { display:flex; flex-direction:column; gap:6px; margin-bottom:14px; }
.field label {
  font-size:11px; font-weight:700; color:var(--cinza);
  text-transform:uppercase; letter-spacing:1px;
}
.field input, .field select, .field textarea {
  border:1.5px solid var(--borda-clara); border-radius:10px;
  padding:11px 14px; font-family:'DM Sans',sans-serif;
  font-size:14px; color:#1A1A1A; outline:none;
  transition:border-color 0.2s; background:#fff; width:100%;
}
.field input:focus, .field select:focus, .field textarea:focus {
  border-color:var(--dourado); box-shadow:0 0 0 3px rgba(212,175,55,0.1);
}
.field select option { color:#333; }
.field textarea { resize:none; height:90px; }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.field-hint { font-size:11px; color:var(--cinza); margin-top:4px; }

/* ── STATUS BADGES ── */
.badge {
  display:inline-flex; align-items:center; gap:5px;
  padding:4px 10px; border-radius:50px;
  font-size:11px; font-weight:700; white-space:nowrap;
}
.badge-pendente  { background:#FEF9C3; color:#854D0E; }
.badge-ativo     { background:#D1FAE5; color:#065F46; }
.badge-inativo   { background:#FEE2E2; color:#991B1B; }
.badge-aceito    { background:#DBEAFE; color:#1E40AF; }
.badge-concluido { background:#F3F4F6; color:#6B7280; }
.badge-trial     { background:#EDE9FE; color:#5B21B6; }
.badge-premium   { background:#FBF8EC; color:var(--dourado-d); border:1px solid var(--dourado); }
.badge-dot { width:6px; height:6px; border-radius:50%; background:currentColor; }

/* ── TABELA ── */
.table-wrap { overflow-x:auto; }
table { width:100%; border-collapse:collapse; }
th {
  background:var(--cinza-claro); padding:11px 16px; text-align:left;
  font-size:11px; font-weight:700; color:var(--cinza);
  text-transform:uppercase; letter-spacing:0.8px;
}
td {
  padding:14px 16px; font-size:14px;
  border-top:1px solid var(--borda-clara); vertical-align:middle;
}
tr:hover td { background:#FAFAF8; }
.td-bold { font-weight:600; }

/* ── EMPTY STATE ── */
.empty {
  text-align:center; padding:60px 20px; color:var(--cinza);
}
.empty-icon { font-size:48px; margin-bottom:14px; }
.empty h3 { font-size:17px; font-weight:700; color:#333; margin-bottom:6px; }
.empty p { font-size:14px; line-height:1.5; }

/* ── TOAST ── */
.toast {
  position:fixed; bottom:28px; left:50%;
  transform:translateX(-50%) translateY(100px);
  background:var(--preto); color:#fff;
  font-weight:600; padding:13px 24px; border-radius:50px;
  font-size:14px; z-index:9999; white-space:nowrap;
  transition:transform 0.4s cubic-bezier(0.34,1.56,0.64,1);
  box-shadow:0 8px 32px rgba(0,0,0,0.3);
}
.toast.show { transform:translateX(-50%) translateY(0); }

/* ── MODAL ── */
.modal-overlay {
  position:fixed; inset:0; background:rgba(0,0,0,0.6);
  backdrop-filter:blur(6px); z-index:999;
  display:none; align-items:center; justify-content:center; padding:20px;
}
.modal-overlay.open { display:flex; }
.modal {
  background:#fff; border-radius:22px;
  width:100%; max-width:520px; max-height:90vh; overflow-y:auto;
}
.modal-head {
  padding:24px 28px 0; position:sticky; top:0; background:#fff; z-index:5;
}
.modal-close {
  float:right; background:var(--cinza-claro); border:none;
  width:30px; height:30px; border-radius:50%; font-size:15px;
  cursor:pointer; display:flex; align-items:center; justify-content:center;
  color:var(--cinza); margin-bottom:12px;
}
.modal-close:hover { background:#E0E0D8; }
.modal-title {
  font-family:'Playfair Display',serif;
  font-size:22px; font-weight:900; margin-bottom:4px; clear:both;
}
.modal-title span { color:var(--dourado-d); }
.modal-sub { font-size:13px; color:var(--cinza); margin-bottom:20px; }
.modal-body { padding:0 28px 28px; }

/* ── LOGIN SCREEN (páginas internas) ── */
.auth-screen {
  min-height:100vh; background:var(--preto);
  display:flex; align-items:center; justify-content:center; padding:24px;
  position:relative; overflow:hidden;
}
.auth-screen::before {
  content:''; position:absolute; inset:0;
  background:radial-gradient(ellipse 70% 50% at 50% 20%,rgba(212,175,55,0.1) 0%,transparent 60%);
  pointer-events:none;
}
.auth-box {
  background:rgba(255,255,255,0.04);
  backdrop-filter:blur(20px);
  border:1px solid rgba(212,175,55,0.2);
  border-radius:24px; padding:44px 40px;
  width:100%; max-width:420px; position:relative; z-index:5;
}
.auth-logo {
  font-family:'Playfair Display',serif;
  font-size:22px; font-weight:900; color:#fff; margin-bottom:4px;
}
.auth-logo span { color:var(--dourado); }
.auth-sub { font-size:13px; color:rgba(255,255,255,0.4); margin-bottom:28px; }
.auth-tabs {
  display:flex; background:rgba(255,255,255,0.06);
  border-radius:12px; padding:4px; margin-bottom:24px;
}
.auth-tab {
  flex:1; text-align:center; padding:10px; border-radius:9px;
  font-size:13px; font-weight:600; cursor:pointer;
  color:rgba(255,255,255,0.4); transition:all 0.2s;
  background:none; border:none; font-family:'DM Sans',sans-serif;
}
.auth-tab.active { background:var(--dourado); color:var(--preto); }
.auth-field { display:flex; flex-direction:column; gap:7px; margin-bottom:14px; }
.auth-field label {
  font-size:11px; font-weight:700;
  color:rgba(255,255,255,0.45); text-transform:uppercase; letter-spacing:1px;
}
.auth-field input, .auth-field select {
  background:rgba(255,255,255,0.07); border:1px solid rgba(255,255,255,0.12);
  border-radius:11px; padding:12px 15px; color:#fff;
  font-family:'DM Sans',sans-serif; font-size:14px; outline:none;
  transition:border-color 0.2s; width:100%;
}
.auth-field input:focus, .auth-field select:focus { border-color:var(--dourado); }
.auth-field select option { background:var(--preto-mid); color:#fff; }
.btn-auth {
  width:100%;
  background:linear-gradient(135deg,var(--dourado),var(--dourado-l));
  color:var(--preto); font-family:'Playfair Display',serif;
  font-size:16px; font-weight:900; padding:15px;
  border:none; border-radius:12px; cursor:pointer; margin-top:6px;
  transition:transform 0.2s, box-shadow 0.2s;
}
.btn-auth:hover { transform:translateY(-1px); box-shadow:0 8px 28px rgba(212,175,55,0.35); }
.auth-link { text-align:center; font-size:13px; color:rgba(255,255,255,0.3); margin-top:14px; }
.auth-link a { color:var(--dourado); cursor:pointer; }

/* ── PROPOSTA CARD ── */
.proposta-card {
  background:#fff; border:1.5px solid var(--borda-clara);
  border-radius:16px; padding:20px; margin-bottom:12px;
  transition:border-color 0.2s, box-shadow 0.2s;
}
.proposta-card:hover { border-color:rgba(212,175,55,0.4); box-shadow:0 4px 16px rgba(0,0,0,0.06); }
.proposta-card.selecionada { border-color:var(--dourado); border-width:2px; background:#FBF8EC; }
.proposta-prof { display:flex; align-items:center; gap:12px; margin-bottom:12px; }
.proposta-av {
  width:44px; height:44px;
  background:linear-gradient(135deg,var(--dourado-d),var(--dourado));
  border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:20px; flex-shrink:0;
}
.proposta-nome { font-size:15px; font-weight:700; }
.proposta-cat { font-size:12px; color:var(--dourado-d); font-weight:600; margin-top:1px; }
.proposta-stars { color:var(--dourado); font-size:12px; margin-top:2px; }
.proposta-valor {
  font-family:'Playfair Display',serif;
  font-size:26px; font-weight:900; color:var(--preto);
}
.proposta-msg { font-size:13px; color:var(--cinza); line-height:1.5; margin:10px 0; }
.proposta-actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:14px; }

/* ── CHAMADO CARD ── */
.chamado-card {
  background:#fff; border:1px solid var(--borda-clara);
  border-radius:16px; padding:20px; margin-bottom:12px;
  transition:box-shadow 0.2s;
}
.chamado-card:hover { box-shadow:0 4px 16px rgba(0,0,0,0.07); }
.chamado-top { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:10px; }
.chamado-servico {
  font-family:'Playfair Display',serif;
  font-size:17px; font-weight:900;
}
.chamado-info { display:flex; flex-wrap:wrap; gap:12px; font-size:13px; color:var(--cinza); }
.chamado-info span { display:flex; align-items:center; gap:4px; }
.chamado-actions { display:flex; gap:8px; margin-top:14px; flex-wrap:wrap; }

/* ── PERFIL MINI-SITE ── */
.perfil-hero {
  background:var(--preto);
  padding:48px 32px; text-align:center;
  position:relative; overflow:hidden;
}
.perfil-hero::before {
  content:''; position:absolute; inset:0;
  background:radial-gradient(ellipse 70% 60% at 50% 0%,rgba(212,175,55,0.15) 0%,transparent 70%);
}
.perfil-av-big {
  width:100px; height:100px;
  background:linear-gradient(135deg,var(--dourado-d),var(--dourado));
  border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:44px; margin:0 auto 16px; border:4px solid rgba(212,175,55,0.3);
  position:relative; z-index:2;
}
.perfil-nome-big {
  font-family:'Playfair Display',serif;
  font-size:28px; font-weight:900; color:#fff; position:relative; z-index:2;
}
.perfil-cat-big { color:var(--dourado); font-size:14px; font-weight:600; margin-top:4px; position:relative; z-index:2; }
.perfil-stars-big { color:var(--dourado); font-size:16px; margin-top:6px; position:relative; z-index:2; }

/* ── RESPONSIVE ── */
@media(max-width:768px){
  .topbar { padding:0 12px; }
  .topbar-logo { font-size:16px; }
  .topbar-user span { display:none; }
  .btn-mob { display:block !important; }
  .main-layout { display:block; }
  .content { padding:16px; width:100%; max-width:100% !important; }
  .sidebar {
    display:none;
    position:fixed;
    top:0; left:0;
    width:75vw; max-width:280px;
    height:100vh;
    z-index:9999;
    overflow-y:auto;
    padding-top:16px;
    box-shadow:4px 0 24px rgba(0,0,0,0.4);
  }
  .sidebar.aberto { display:block !important; }
  .metricas-3, .metricas-4 { grid-template-columns:repeat(2,1fr); }
  .field-row { grid-template-columns:1fr; }
  .chamado-actions { flex-direction:column; }
  .proposta-actions { flex-direction:column; }
}
@media(max-width:520px){
  .metricas-3, .metricas-4 { grid-template-columns:1fr; }
  .auth-box { padding:32px 20px; }
  .content { padding:12px; }
}
