/* GERAL */
:root {
  --nilara-blue-dark: #003d73; /* Azul escuro Nilara */
  --nilara-blue-medium: #005c9e; /* Azul médio Nilara */
  --nilara-blue-light: #4a90e2; /* Azul claro Nilara */
  --nilara-orange-accent: #f7a823; /* Laranja para CTAs e destaques */
  --success-green: #28a745;
  --danger-red: #dc3545;
  --warning-yellow: #ffc107;
  --info-blue: #17a2b8; /* Um azul diferente para informações gerais */

  --neutral-lightest: #f8f9fa; /* Quase branco */
  --neutral-lighter: #e9ecef; /* Cinza bem claro */
  --neutral-light: #dee2e6; /* Cinza claro para bordas */
  --neutral-medium: #adb5bd; /* Cinza médio para texto secundário */
  --neutral-dark: #495057; /* Cinza escuro para texto principal */
  --neutral-darkest: #212529; /* Quase preto */

  --font-family-primary: "Roboto", sans-serif;
  --border-radius-sm: 0.2rem;
  --border-radius-md: 0.3rem;
  --border-radius-lg: 0.5rem;
  --box-shadow-light: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
  --box-shadow-medium: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
}

/* Estilos para ícones (placeholders) - Substitua por seus SVGs */
[class^="icon-"],
[class*=" icon-"] {
  display: inline-block;
  width: 1.2em; /* Ajuste conforme o tamanho do seu ícone */
  height: 1.2em;
  margin-right: 0.4em;
  vertical-align: middle;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: contain;
}
/* Exemplo de como adicionar SVGs (você precisará dos arquivos SVG) */
/* .icon-cloud { background-image: url('../images/icons/cloud.svg'); } */
/* .icon-audio-waves { background-image: url('../images/icons/audio-waves.svg'); } */
/* ... e assim por diante para todos os ícones ... */

/* Para demonstração, usando placeholders de texto simples se SVGs não carregarem */
.icon-cloud::before {
  content: "☁️";
  font-size: 1.2em;
}
.icon-audio-waves::before {
  content: "🔊";
  font-size: 1.2em;
}
.icon-map-pin::before {
  content: "📍";
  font-size: 1.2em;
}
.icon-zap::before {
  content: "⚡";
  font-size: 1.2em;
}
.icon-solution::before {
  content: "💡";
  font-size: 1.2em;
}
.icon-piggy-bank::before {
  content: "💰";
  font-size: 1.2em;
}
.icon-rocket::before {
  content: "🚀";
  font-size: 1.2em;
}
.icon-cog::before {
  content: "⚙️";
  font-size: 1.2em;
}
.icon-phone::before {
  content: "📱";
  font-size: 1.2em;
}
.icon-message-square::before {
  content: "💬";
  font-size: 1.2em;
}
.icon-check-circle::before {
  content: "✅";
  font-size: 1.2em;
}
.icon-x-circle::before {
  content: "❌";
  font-size: 1.2em;
}
.icon-printer::before {
  content: "🖨️";
  font-size: 1.2em;
}
.icon-plus::before {
  content: "+"; /* Simples + para adicionar item */
  font-weight: bold;
  font-size: 1.2em;
}

/* Reset Básico e Tipografia */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
html {
  font-size: 16px; /* Base para REM */
}
body {
  font-family: var(--font-family-primary);
  line-height: 1.6;
  color: var(--neutral-dark);
  background-color: var(--neutral-lightest); /* Fundo geral do body */
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
.proposal-body {
  /* Específico para a página da proposta */
  background-color: var(--neutral-lighter);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: 700;
  line-height: 1.3;
  color: var(--nilara-blue-dark);
}
h1 {
  font-size: 2.25rem;
  margin-bottom: 1rem;
}
h2 {
  font-size: 1.75rem;
  margin-bottom: 0.875rem;
}
h3 {
  font-size: 1.5rem;
  margin-bottom: 0.75rem;
}
h4 {
  font-size: 1.25rem;
  margin-bottom: 0.625rem;
}
p {
  margin-bottom: 1rem;
}
a {
  color: var(--nilara-blue-medium);
  text-decoration: none;
  transition: color 0.2s ease-in-out;
}
a:hover {
  color: var(--nilara-blue-dark);
  text-decoration: underline;
}

.container {
  width: 90%;
  max-width: 1140px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 15px;
  padding-right: 15px;
}
.main-content-area {
  background-color: #fff;
  padding-top: 2rem;
  padding-bottom: 2rem;
  border-radius: var(--border-radius-md);
  box-shadow: var(--box-shadow-light);
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
}

/* Botões */
.btn {
  display: inline-block;
  font-weight: 500;
  text-align: center;
  vertical-align: middle;
  cursor: pointer;
  user-select: none;
  background-color: transparent;
  border: 1px solid transparent;
  padding: 0.6rem 1.2rem;
  font-size: 1rem;
  line-height: 1.5;
  border-radius: var(--border-radius-md);
  transition: all 0.2s ease-in-out;
  text-decoration: none !important;
}
.btn-primary {
  color: #fff;
  background-color: var(--nilara-blue-medium);
  border-color: var(--nilara-blue-medium);
}
.btn-primary:hover {
  background-color: var(--nilara-blue-dark);
  border-color: var(--nilara-blue-dark);
  color: #fff;
}
.btn-secondary {
  color: #fff;
  background-color: var(--neutral-medium);
  border-color: var(--neutral-medium);
}
.btn-secondary:hover {
  background-color: var(--neutral-dark);
  border-color: var(--neutral-dark);
  color: #fff;
}
.btn-success {
  color: #fff;
  background-color: var(--success-green);
  border-color: var(--success-green);
}
.btn-success:hover {
  background-color: #1e7e34;
  border-color: #1e7e34;
  color: #fff;
}
.btn-danger {
  color: #fff;
  background-color: var(--danger-red);
  border-color: var(--danger-red);
}
.btn-danger:hover {
  background-color: #bd2130;
  border-color: #bd2130;
  color: #fff;
}
.btn-lg {
  padding: 0.8rem 1.8rem;
  font-size: 1.15rem;
}
.btn-sm {
  padding: 0.25rem 0.5rem;
  font-size: 0.875rem;
  line-height: 1.5;
  border-radius: var(--border-radius-sm);
}
.btn-block {
  display: block;
  width: 100%;
}
.btn-outline-secondary {
  color: var(--neutral-dark);
  border-color: var(--neutral-medium);
}
.btn-outline-secondary:hover {
  color: #fff;
  background-color: var(--neutral-medium);
  border-color: var(--neutral-medium);
}

/* Formulários (para a ação do cliente e sistema) */
.form-group {
  margin-bottom: 1.5rem;
}
.form-group label {
  display: block;
  margin-bottom: 0.5rem;
  font-weight: 500;
  color: var(--neutral-darkest);
}
.form-group input[type="text"],
.form-group input[type="email"],
.form-group input[type="password"],
.form-group input[type="number"],
.form-group input[type="date"],
.form-group select,
.form-group textarea,
.form-control /* Classe genérica para inputs estilizados */ {
  display: block;
  width: 100%;
  padding: 0.75rem 1rem;
  font-size: 1rem;
  line-height: 1.5;
  color: var(--neutral-dark);
  background-color: #fff;
  background-clip: padding-box;
  border: 1px solid var(--neutral-light);
  border-radius: var(--border-radius-md);
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus,
.form-control:focus {
  border-color: var(--nilara-blue-light);
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(74, 144, 226, 0.25); /* Azul claro Nilara com opacidade */
}
.form-check-inline {
  display: flex;
  align-items: center;
  margin-bottom: 0.5rem;
}
.form-check-inline input[type="checkbox"] {
  margin-right: 0.5rem;
  width: auto;
}
.form-check-inline label {
  margin-bottom: 0;
  font-weight: normal;
}

/* Mensagens de Feedback na Proposta e Sistema */
.message {
  padding: 1rem 1.5rem;
  margin-bottom: 1.5rem;
  border-radius: var(--border-radius-md);
  border: 1px solid transparent;
}
.message p:last-child {
  margin-bottom: 0;
}
.success-message,
.proposal-message.success {
  background-color: #d4edda;
  color: #155724;
  border-color: #c3e6cb;
}
.error-message,
.proposal-message.error {
  background-color: #f8d7da;
  color: #721c24;
  border-color: #f5c6cb;
}
.warning-message {
  background-color: #fff3cd;
  color: #856404;
  border-color: #ffeeba;
}

/* Estrutura da Página da Proposta (ver_proposta.php) */
.proposal-page-container {
  background-color: #ffffff;
  padding: 2rem;
  margin: 2rem auto;
  border-radius: var(--border-radius-lg);
  box-shadow: var(--box-shadow-medium);
  max-width: 960px;
}
.proposal-page-container.error-page {
  text-align: center;
  padding: 3rem;
}
.proposal-page-container.error-page h2 {
  color: var(--danger-red);
  margin-bottom: 1rem;
}

.proposal-main-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  border-bottom: 3px solid var(--nilara-blue-medium);
  padding-bottom: 1.5rem;
  margin-bottom: 2.5rem;
}
.proposal-logo {
  max-height: 70px;
  width: auto;
}
.proposal-header-info {
  text-align: right;
}
.proposal-header-info h1 {
  font-size: 1.8rem;
  color: var(--nilara-blue-dark);
  margin: 0 0 0.25rem 0;
}
.proposal-header-info p {
  font-size: 0.9rem;
  color: var(--neutral-medium);
  margin: 0;
}

/* Seções da Proposta */
.proposal-intro-section,
.proposal-why-nilara,
.proposal-client-info,
.proposal-investment-details,
.proposal-financial-summary,
.proposal-status-section,
.client-comments-display,
.proposal-inspirational-quote,
.proposal-client-actions,
.proposal-final-thanks {
  margin-bottom: 2.5rem;
  padding: 1.5rem;
  background-color: var(--neutral-lightest);
  border-radius: var(--border-radius-md);
  border: 1px solid var(--neutral-lighter);
}
.proposal-intro-section h2 {
  color: var(--nilara-blue-medium);
  font-size: 1.6rem;
}
.proposal-intro-section p {
  font-size: 1.05rem;
  line-height: 1.7;
}

.proposal-why-nilara h3 {
  text-align: center;
  font-size: 1.6rem;
  color: var(--nilara-blue-dark);
  margin-bottom: 2rem;
}
.advantages-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem;
}
.advantage-item {
  background-color: #fff;
  padding: 1.5rem;
  border-radius: var(--border-radius-md);
  box-shadow: var(--box-shadow-light);
  text-align: center;
  transition: transform 0.2s ease-out, box-shadow 0.2s ease-out;
}
.advantage-item:hover {
  transform: translateY(-5px);
  box-shadow: var(--box-shadow-medium);
}
.advantage-icon-wrapper {
  font-size: 2.5rem;
  color: var(--nilara-blue-light);
  margin-bottom: 1rem;
}
.advantage-item h4 {
  font-size: 1.15rem;
  color: var(--nilara-blue-dark);
  margin: 0.5rem 0;
}
.advantage-item p {
  font-size: 0.95rem;
  color: var(--neutral-dark);
}

.proposal-client-info {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  background-color: var(--nilara-blue-dark);
  color: var(--neutral-lightest);
  padding: 1.5rem;
  border-radius: var(--border-radius-md);
}
.proposal-client-info .info-block h4 {
  font-size: 1rem;
  color: var(--nilara-blue-light);
  margin-bottom: 0.3rem;
}
.proposal-client-info .info-block p {
  margin: 0.2rem 0;
  font-size: 0.95rem;
  color: var(--neutral-lighter);
}
.proposal-client-info .info-block p strong {
  color: #fff;
}
.proposal-client-info .preparer-info {
  text-align: right;
}

.proposal-investment-details h3,
.proposal-financial-summary h3 {
  font-size: 1.6rem;
  color: var(--nilara-blue-dark);
  margin-bottom: 1.5rem;
  text-align: center;
}
.investment-category {
  margin-bottom: 2rem;
  padding: 1.5rem;
  border: 1px solid var(--neutral-light);
  border-radius: var(--border-radius-md);
  background-color: #fff;
}
.investment-category h4 {
  font-size: 1.3rem;
  color: var(--nilara-blue-medium);
  margin-bottom: 0.75rem;
  display: flex;
  align-items: center;
}
.investment-category h4 [class^="icon-"] {
  color: var(--nilara-orange-accent);
  font-size: 1.3em;
}
.category-description {
  font-size: 0.95rem;
  color: var(--neutral-dark);
  margin-bottom: 1.5rem;
  font-style: italic;
}
.items-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 1rem;
}
.items-table th,
.items-table td {
  padding: 0.75rem;
  border: 1px solid var(--neutral-light);
  text-align: left;
  font-size: 0.95rem;
}
.items-table th {
  background-color: var(--neutral-lighter);
  font-weight: 600;
  color: var(--nilara-blue-dark);
}
.items-table .text-center {
  text-align: center;
}
.items-table .text-right {
  text-align: right;
}

.summary-box {
  max-width: 500px;
  margin: 0 auto;
  padding: 1.5rem;
  background-color: #fff;
  border-radius: var(--border-radius-md);
  border: 1px solid var(--neutral-light);
}
.summary-line {
  display: flex;
  justify-content: space-between;
  padding: 0.6rem 0;
  font-size: 1rem;
}
.summary-line span:first-child {
  color: var(--neutral-dark);
}
.summary-line span:last-child {
  font-weight: 600;
  color: var(--neutral-darkest);
}
.summary-line.discount-line span:last-child {
  color: var(--danger-red);
}
.total-line {
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--nilara-blue-dark);
  border-top: 2px solid var(--nilara-blue-medium);
  margin-top: 0.75rem;
  padding-top: 0.75rem;
}
.total-line span:first-child {
  color: var(--nilara-blue-dark);
}

.proposal-status-section {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  align-items: center;
  padding: 1.5rem;
  background-color: var(--neutral-lighter);
  border-radius: var(--border-radius-md);
  font-size: 1rem;
}
.status-block {
  margin: 0.5rem 1rem;
  text-align: center;
}
.status-block strong {
  color: var(--nilara-blue-dark);
}

/* Badges de Status */
.status-badge {
  padding: 0.4em 0.8em;
  font-size: 0.85rem;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
  vertical-align: baseline;
  border-radius: var(--border-radius-sm);
  color: #fff;
  margin-left: 0.5em;
}
.status-draft {
  background-color: var(--neutral-medium);
}
.status-sent {
  background-color: var(--info-blue);
}
.status-viewed {
  background-color: var(--warning-yellow);
  color: var(--neutral-darkest);
}
.status-approved {
  background-color: var(--success-green);
}
.status-rejected {
  background-color: var(--danger-red);
}
.status-expired {
  background-color: var(--neutral-darkest);
}
.status-pending {
  background-color: #95a5a6;
} /* Para solicitações de orçamento */
.status-in_progress {
  background-color: var(--nilara-orange-accent);
  color: var(--neutral-darkest);
} /* Para solicitações de orçamento */
.status-proposal_sent {
  background-color: var(--nilara-blue-light);
} /* Para solicitações de orçamento */
.status-archived {
  background-color: #bdc3c7;
  color: var(--neutral-darkest);
} /* Para solicitações de orçamento */
.status-spam {
  background-color: var(--danger-red);
} /* Para solicitações de orçamento */
.status-canceled {
  background-color: var(--neutral-dark);
} /* Para propostas canceladas */

.client-comments-display h4 {
  font-size: 1.3rem;
  color: var(--nilara-blue-dark);
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
}
.comment-box {
  background-color: #fff;
  padding: 1.5rem;
  border-radius: var(--border-radius-md);
  border: 1px solid var(--neutral-light);
  font-style: italic;
  color: var(--neutral-dark);
}

.proposal-inspirational-quote {
  text-align: center;
  padding: 3rem 1.5rem;
  border-radius: var(--border-radius-md);
  background-size: cover;
  background-position: center center;
  position: relative;
  color: #fff;
}
.quote-overlay {
  background-color: rgba(0, 61, 115, 0.7);
  padding: 2rem;
  border-radius: var(--border-radius-sm);
  display: inline-block;
}
.proposal-inspirational-quote p {
  font-size: 1.3rem;
  font-weight: 500;
  font-style: italic;
  margin: 0;
  position: relative;
  z-index: 1;
}

.proposal-client-actions {
  background-color: var(--nilara-blue-dark);
  color: #fff;
  padding: 2rem 1.5rem;
  border-radius: var(--border-radius-md);
}
.proposal-client-actions h3 {
  color: #fff;
  text-align: center;
  font-size: 1.5rem;
}
.proposal-client-actions p {
  font-size: 1.1rem;
  text-align: center;
  margin-bottom: 1.5rem;
  color: var(--neutral-lighter);
}
.action-form label {
  color: var(--neutral-lightest);
}
.action-form textarea {
  border-color: var(--nilara-blue-light);
  background-color: rgba(255, 255, 255, 0.1);
  color: #fff;
}
.action-form textarea::placeholder {
  color: var(--neutral-light);
}
.action-buttons-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1.5rem;
  margin-top: 1.5rem;
}
.action-buttons-container .btn {
  flex-grow: 1;
  max-width: 300px;
}

.proposal-final-thanks {
  text-align: center;
}
.proposal-final-thanks h4 {
  font-size: 1.4rem;
  color: var(--nilara-blue-dark);
}
.proposal-final-thanks p {
  font-size: 1.05rem;
  color: var(--neutral-dark);
}

.print-button-container {
  text-align: center;
  margin-top: 2.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--neutral-light);
}
.proposal-footer {
  text-align: center;
  padding: 1.5rem;
  margin-top: 2rem;
  font-size: 0.85rem;
  color: var(--neutral-medium);
}

/* Estrutura Geral do Sistema (login, painéis, etc.) */
.site-header {
  background-color: var(--nilara-blue-dark);
  color: var(--neutral-lightest);
  padding: 1rem 0;
  box-shadow: var(--box-shadow-light);
}
.site-header .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.site-header .logo {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--neutral-lightest);
  text-decoration: none;
}
.site-header .logo img {
  max-height: 50px;
  vertical-align: middle;
}
.site-header nav ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
}
.site-header nav ul li {
  margin-left: 1.5rem;
}
.site-header nav ul li a {
  color: var(--neutral-lightest);
  text-decoration: none;
  font-weight: 500;
  transition: color 0.2s;
}
.site-header nav ul li a:hover {
  color: var(--nilara-orange-accent);
}

.site-main {
  padding: 0;
  flex-grow: 1; /* Faz o main ocupar o espaço restante */
}

.site-footer {
  background-color: var(--nilara-blue-dark);
  color: var(--neutral-lightest);
  text-align: center;
  padding: 1.5rem 0;
  margin-top: auto; /* Empurra para o final se o conteúdo for curto */
}

/* Formulários gerais do sistema (login, criar_proposta, etc.) */
.form-container {
  background-color: #fff;
  padding: 2rem;
  border-radius: var(--border-radius-lg);
  box-shadow: var(--box-shadow-medium);
  margin: 0 auto 2rem auto; /* Removido margin-top para ser controlado pelo .main-content-area */
  max-width: 700px;
}
.form-container.proposal-form {
  max-width: 800px; /* Mais largo para o form de proposta */
}
.form-container h2 {
  text-align: center;
  margin-bottom: 1.5rem;
  color: var(--nilara-blue-dark);
}
.form-footer-link {
  text-align: center;
  margin-top: 1rem;
  font-size: 0.9rem;
}
.form-section {
  margin-bottom: 2rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--neutral-lighter);
}
.form-section:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}
.form-section h3 {
  font-size: 1.3rem;
  color: var(--nilara-blue-medium);
  margin-bottom: 1rem;
}
.grid-2-cols {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 1.5rem;
}

/* Itens da Proposta no formulário criar_proposta.php */
.proposal-item {
  background-color: var(--neutral-lightest);
  padding: 1.5rem;
  border: 1px solid var(--neutral-light);
  border-radius: var(--border-radius-md);
  margin-bottom: 1.5rem;
}
.proposal-item .item-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px dashed var(--neutral-light);
}
.proposal-item .item-header h5 {
  margin: 0;
  font-size: 1.1rem;
  color: var(--nilara-blue-dark);
}
.item-group-header {
  /* Para agrupar itens de template */
  font-size: 1.2rem;
  color: var(--nilara-blue-dark);
  margin-top: 2rem;
  margin-bottom: 0.5rem;
  padding-bottom: 0.3rem;
  border-bottom: 1px solid var(--nilara-blue-medium);
}
.internal-note-display {
  font-size: 0.85rem;
  color: var(--neutral-medium);
  background-color: #f0f0f0;
  padding: 0.5rem;
  border-radius: var(--border-radius-sm);
  margin-top: 0.5rem;
  font-style: italic;
}
#loadingItemsMessage /* ID para mensagem de carregamento */,
#noItemsMessage /* ID para mensagem de "nenhum item" */ {
  padding: 1rem;
  text-align: center;
  color: var(--neutral-medium);
}
.error-message {
  /* Já definido, mas pode ser usado aqui também */
  color: var(--danger-red);
  text-align: center;
  padding: 1rem;
}

/* Tabelas gerais do sistema (painéis) */
.table-responsive {
  overflow-x: auto;
  margin-bottom: 1rem;
}
table.data-table {
  /* Classe específica para tabelas de dados */
  width: 100%;
  margin-bottom: 1rem;
  background-color: #fff;
  border-collapse: collapse;
  box-shadow: var(--box-shadow-light);
}
table.data-table th,
table.data-table td {
  padding: 0.75rem;
  vertical-align: middle; /* Centralizado verticalmente */
  border: 1px solid var(--neutral-light);
  text-align: left;
}
table.data-table thead th {
  vertical-align: bottom;
  border-bottom: 2px solid var(--nilara-blue-medium);
  background-color: var(--neutral-lighter);
  color: var(--nilara-blue-dark);
  font-weight: 600;
}
table.data-table tbody tr:nth-of-type(odd) {
  background-color: rgba(0, 0, 0, 0.02);
}
table.data-table tbody tr:hover {
  background-color: rgba(74, 144, 226, 0.1); /* Azul claro Nilara com opacidade */
}
table.data-table .actions a,
table.data-table .actions button {
  margin-right: 0.5rem;
}
table.data-table .actions .btn-sm {
  padding: 0.2rem 0.4rem;
  font-size: 0.8rem;
}

/* Painéis (Admin, Vendedor) */
.dashboard-header {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 2rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--neutral-light);
}
.dashboard-header h1 {
  margin-bottom: 0;
}
.dashboard-links {
  list-style: none;
  padding: 0;
  margin: 0;
} /* Para listas de links/botões */
.dashboard-links li {
  margin-bottom: 0.75rem;
}
.dashboard-links li .btn {
  display: block;
  text-align: left;
} /* Botões como links de navegação */

.filters-bar {
  margin-bottom: 1.5rem;
  padding: 1rem;
  background-color: var(--neutral-lighter);
  border-radius: var(--border-radius-md);
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}
.filters-bar span {
  margin-right: 0.5rem;
  font-weight: 500;
}

.request-details-content {
  /* Para detalhes de solicitações de orçamento */
  padding: 1rem;
  background-color: #fdfdfd;
  border: 1px solid var(--neutral-light);
  border-top: none;
}
.request-details-content h4 {
  margin-top: 0;
  color: var(--nilara-blue-medium);
}

/* Responsividade */
@media (max-width: 768px) {
  .proposal-main-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
  }
  .proposal-header-info {
    text-align: left;
    width: 100%;
  }
  .proposal-client-info {
    flex-direction: column;
    gap: 1rem;
  }
  .proposal-client-info .preparer-info {
    text-align: left;
  }
  .proposal-status-section {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
  }
  .status-block {
    text-align: left;
    margin: 0.25rem 0;
  }
  .action-buttons-container .btn {
    width: 100%;
    max-width: none;
  }
  .items-table th,
  .items-table td {
    font-size: 0.85rem;
    padding: 0.5rem;
  }
  .proposal-page-container {
    margin: 1rem;
    padding: 1rem;
  }
  h1 {
    font-size: 1.8rem;
  }
  h2 {
    font-size: 1.5rem;
  }
  h3 {
    font-size: 1.3rem;
  }
  .grid-2-cols {
    grid-template-columns: 1fr; /* Coluna única em mobile */
  }
  .site-header .container {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
  }
  .site-header nav ul {
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
  }
  .site-header nav ul li {
    margin-left: 0;
    margin-top: 0.5rem;
    width: 100%;
  }
  .site-header nav ul li a {
    display: block;
    padding: 0.5rem 0;
  }
}

/* Estilos de Impressão (para ver_proposta.php) */
@media print {
  body,
  .proposal-body {
    background-color: #fff !important;
    color: #000 !important;
    font-size: 11pt;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  .no-print,
  .proposal-client-actions .action-form,
  .print-button-container,
  .proposal-footer,
  .site-header,
  .site-footer {
    display: none !important;
  }
  .proposal-page-container {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0.5cm !important;
    box-shadow: none !important;
    border: none !important;
    background-color: #fff !important;
  }
  .proposal-intro-section,
  .proposal-why-nilara,
  .proposal-client-info,
  .proposal-investment-details,
  .proposal-financial-summary,
  .proposal-status-section,
  .client-comments-display,
  .proposal-inspirational-quote,
  .proposal-client-actions,
  .proposal-final-thanks {
    background-color: #fff !important;
    padding: 0.5cm 0 !important;
    border: none !important;
    box-shadow: none !important;
    color: #000 !important;
  }
  .proposal-client-info,
  .proposal-client-actions {
    color: #000 !important;
  }
  .proposal-client-info .info-block h4,
  .proposal-client-info .info-block p,
  .proposal-client-actions h3,
  .proposal-client-actions p {
    color: #000 !important;
  }
  .proposal-client-info .info-block p strong {
    color: #000 !important;
  }

  table,
  table th,
  table td {
    border: 1px solid #ccc !important;
    font-size: 9pt;
  }
  .status-badge {
    border: 1px solid #999;
    color: #fff !important;
  }
  .status-viewed {
    color: #000 !important;
  }
  .status-draft {
    background-color: var(--neutral-medium) !important;
  }
  .status-sent {
    background-color: var(--info-blue) !important;
  }
  .status-viewed {
    background-color: var(--warning-yellow) !important;
  }
  .status-approved {
    background-color: var(--success-green) !important;
  }
  .status-rejected {
    background-color: var(--danger-red) !important;
  }
  .status-expired {
    background-color: var(--neutral-darkest) !important;
  }
  .status-canceled {
    background-color: var(--neutral-dark) !important;
  }

  a {
    text-decoration: none;
    color: inherit !important;
  }
  .advantage-item {
    box-shadow: none !important;
    border: 1px solid #eee;
  }
  .proposal-inspirational-quote {
    background-image: none !important;
    padding: 1cm 0 !important;
  }
  .quote-overlay {
    background-color: transparent !important;
    padding: 0 !important;
  }
  .proposal-inspirational-quote p {
    color: #000 !important;
  }
  [class^="icon-"]::before {
    color: #000 !important;
  }
}

/* Estilos Kanban para criar_proposta.php */
.kanban-board {
  display: flex;
  gap: 1.5rem;
  margin-top: 1rem;
  margin-bottom: 2rem;
  min-height: 400px; /* Altura mínima para as colunas */
}

.kanban-column {
  flex: 1;
  background-color: var(--neutral-lighter);
  border-radius: var(--border-radius-md);
  padding: 1rem;
  box-shadow: var(--box-shadow-light);
}

.kanban-column h4 {
  font-size: 1.1rem;
  color: var(--nilara-blue-dark);
  margin-top: 0;
  margin-bottom: 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--neutral-light);
}
.kanban-column h4 .float-right {
  float: right; /* Para o botão de adicionar manual */
}

.kanban-list {
  min-height: 300px; /* Para que a área de drop seja visível mesmo vazia */
  background-color: #fff;
  border-radius: var(--border-radius-sm);
  padding: 0.5rem;
  overflow-y: auto; /* Scroll se muitos itens */
  max-height: 500px; /* Limite de altura com scroll */
}
.kanban-list .loading-message,
.kanban-list .error-message,
.kanban-list p:empty {
  /* Para mensagens de placeholder */
  text-align: center;
  color: var(--neutral-medium);
  padding: 1rem;
  font-style: italic;
}

.kanban-card {
  background-color: #fff;
  border: 1px solid var(--neutral-light);
  border-radius: var(--border-radius-sm);
  padding: 0.8rem;
  margin-bottom: 0.8rem;
  cursor: grab;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
  transition: box-shadow 0.2s ease;
}
.kanban-card:hover {
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1);
}
.kanban-card .card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.5rem;
}
.kanban-card .card-header .item-name-display {
  font-weight: 600;
  color: var(--nilara-blue-medium);
}
.kanban-card .card-content .item-desc-display {
  font-size: 0.85rem;
  color: var(--neutral-dark);
  margin-bottom: 0.5rem;
}
.kanban-card .card-content .internal-note-display {
  font-size: 0.8rem;
  color: var(--info-blue);
  background-color: #e8f4f8;
  padding: 0.3rem;
  border-radius: var(--border-radius-sm);
  margin-top: 0.3rem;
}

.kanban-card .form-group {
  margin-bottom: 0.5rem; /* Menor margem dentro dos cards */
}
.kanban-card .form-group label {
  font-size: 0.8rem;
  margin-bottom: 0.2rem;
  font-weight: 500;
}
.kanban-card .form-control {
  padding: 0.4rem 0.6rem;
  font-size: 0.9rem;
}
.kanban-card .price-qty-group {
  display: flex;
  gap: 0.5rem;
}
.kanban-card .price-qty-group > div {
  flex: 1;
}
.kanban-card .item-optional-check {
  font-size: 0.85rem;
  margin-bottom: 0.5rem;
}
.kanban-card .item-optional-check input {
  margin-right: 0.3rem;
}
.kanban-card .removeItemCardBtn {
  padding: 0.1rem 0.4rem;
  font-size: 0.8rem;
  line-height: 1;
}
.kanban-group-header {
  /* Para agrupar itens na lista de disponíveis */
  font-size: 0.9rem;
  font-weight: bold;
  color: var(--neutral-dark);
  margin-top: 1rem;
  margin-bottom: 0.3rem;
  padding-left: 0.2rem;
}
.kanban-group-header:first-of-type {
  margin-top: 0;
}

/* Resumo Financeiro Dinâmico */
.financial-summary-live {
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid var(--neutral-light);
}
.financial-summary-live p {
  font-size: 1rem;
  display: flex;
  justify-content: space-between;
  margin-bottom: 0.5rem;
}
.financial-summary-live h4 {
  font-size: 1.2rem;
  display: flex;
  justify-content: space-between;
  color: var(--nilara-blue-dark);
  margin-top: 0.5rem;
}
.financial-summary-live span {
  font-weight: bold;
}

/* Ajustes para responsividade do Kanban */
@media (max-width: 992px) {
  /* Telas médias, empilhar colunas */
  .kanban-board {
    flex-direction: column;
  }
}

/* ... (outros estilos responsivos e de impressão) ... */
