/* Identidade visual "Marinho clássico" — carregado depois do CSS de cada página */
:root {
  --primary:#14213D; --primary-dark:#0D1830; --primary-light:#E6EBF4;
  --primary-soft:#2F4A7A;
  --accent:#B8913A; --accent-light:#F3E8CC;
  --bg:#F3F4F6; --white:#FFFFFF; --text:#1B2230; --muted:#5F6B7C; --border:#DDE1E8;
  --red:#8E2B2B; --red-light:#F5E4E2;
  --green:#2F6B4F; --green-light:#E3EFE8;
  --info:#2F4A7A;
  --radius:10px;
  --shadow:0 1px 2px rgba(20,33,61,.06),0 4px 14px rgba(20,33,61,.06);
}
body { font-family:'Inter',system-ui,sans-serif; background:var(--bg); color:var(--text); }
h1,h2,h3,.brand-name { font-family:'Fraunces',Georgia,serif; font-weight:600; letter-spacing:-.01em; }

/* cabeçalho */
.app-header { background:var(--primary-dark) !important; border-bottom:3px solid var(--accent); box-shadow:0 2px 10px rgba(20,33,61,.2) !important; }
.brand-icon { background:none !important; padding:0 !important; width:36px; height:36px; }
.brand-icon img { width:36px; height:36px; display:block; }
.brand-sub { opacity:.75 !important; }

/* botões e controles */
button.btn-primary,.btn-primary { background:var(--primary) !important; color:#fff !important; border-color:var(--primary) !important; }
button.btn-primary:hover,.btn-primary:hover { background:var(--primary-soft) !important; }
input:focus,select:focus,textarea:focus { outline:none; border-color:var(--primary-soft) !important; box-shadow:0 0 0 3px rgba(47,74,122,.18) !important; }
.card,.panel,.box { border-radius:var(--radius); border-color:var(--border); box-shadow:var(--shadow); }
a { color:var(--primary); }

/* login */
.login-page { background:var(--bg); }
.login-container { border:1px solid var(--border); box-shadow:0 18px 50px rgba(20,33,61,.12) !important; border-radius:16px !important; }
.login-header { background:var(--primary-dark) !important; border-bottom:4px solid var(--accent); padding:34px 30px !important; }
.login-header img { width:56px; height:56px; margin-bottom:14px; }
.login-header h1 { font-size:1.7em !important; color:#fff; }
.login-header p { color:var(--accent-light); opacity:.9; }
.form-group label { color:var(--text) !important; }
.form-group input { border:1.5px solid var(--border) !important; background:#fff; }
.form-group input:focus { border-color:var(--primary-soft) !important; box-shadow:0 0 0 3px rgba(47,74,122,.18) !important; }
.btn-login { background:var(--primary) !important; }
.btn-login:hover { background:var(--primary-soft) !important; box-shadow:0 8px 18px rgba(20,33,61,.28) !important; }
.error-message { background:var(--red-light) !important; color:var(--red) !important; border-left-color:var(--red) !important; }
.success-message { background:var(--green-light) !important; color:var(--green) !important; border-left-color:var(--primary-soft) !important; }
.spinner { border-top-color:var(--primary) !important; }
.forgot-password a { color:var(--primary) !important; }

/* menu lateral compartilhado (casos e usuarios; index e clientes têm o seu próprio layout) */
body.has-sidebar { padding-top:var(--header-h); }
body.has-sidebar .sidebar {
  width:240px; background:var(--white); border-right:1px solid var(--border);
  position:fixed; top:var(--header-h); left:0; bottom:0; padding:28px 0 20px; overflow-y:auto; z-index:100;
}
body.has-sidebar .side-nav { padding:0 12px; display:flex; flex-direction:column; gap:4px; }
body.has-sidebar .side-nav-link { display:flex; align-items:center; gap:10px; padding:11px 14px; border-radius:8px;
  font-size:.9em; font-weight:600; color:var(--text); text-decoration:none; transition:background .15s; }
body.has-sidebar .side-nav-link:hover { background:var(--bg); }
body.has-sidebar .side-nav-link.active { background:var(--primary-light); color:var(--primary-dark); }
body.has-sidebar .page { margin:32px 0 32px 240px; max-width:none; padding:0 40px; }
body.has-sidebar .page > * { max-width:960px; }
@media (max-width:720px) {
  body.has-sidebar .sidebar { position:static; width:auto; border-right:0; border-bottom:1px solid var(--border); padding:12px 0; }
  body.has-sidebar { padding-top:var(--header-h); }
  body.has-sidebar .side-nav { flex-direction:row; flex-wrap:wrap; }
  body.has-sidebar .page { margin:20px 0; padding:0 16px; }
}

/* cards da tela Gerar Peça: todos iguais (sem cores por tipo) */
.card, .card-green, .card-amber, .card-muted {
  background:var(--white) !important; border:1px solid var(--border) !important;
  border-left:1px solid var(--border) !important; border-radius:var(--radius);
  box-shadow:var(--shadow); padding:20px 22px;
}
.card-title {
  color:var(--primary-dark); font-size:.95em; padding-bottom:12px; margin-bottom:16px;
  border-bottom:1px solid var(--border);
}
.metric { background:var(--white) !important; border-color:var(--border) !important; }

/* tabela de Minhas Análises ocupa a altura toda da tela */
body.has-sidebar .page.page-fill { height:calc(100vh - var(--header-h) - 48px); margin-top:24px; margin-bottom:24px; display:flex; flex-direction:column; }
.page-fill > .card { flex:1; min-height:0; display:flex; flex-direction:column; margin-bottom:0; }
.page-fill .table-wrap { flex:1; min-height:0; overflow:auto; }
.page-fill thead th { position:sticky; top:0; z-index:1; }
.page-fill > * { max-width:none !important; }

/* ===== campos de formulário (select, inputs, textarea) ===== */
select, textarea,
input[type="text"], input[type="email"], input[type="search"], input[type="password"],
input[type="number"], input[type="tel"], input[type="date"] {
  font-family:'Inter',system-ui,sans-serif !important; font-size:.9rem !important; color:var(--text) !important;
  background-color:#fff !important; border:1.5px solid var(--border) !important; border-radius:8px !important;
  padding:9px 12px !important; line-height:1.3; transition:border-color .15s, box-shadow .15s;
}
select:hover, input:hover:not([readonly]):not(:disabled), textarea:hover { border-color:#C4CAD6 !important; }
select:focus, textarea:focus, input:focus {
  outline:none !important; border-color:var(--primary-soft) !important; box-shadow:0 0 0 3px rgba(47,74,122,.18) !important;
}
input::placeholder, textarea::placeholder { color:#9AA3B2; }
input[readonly], input:disabled, select:disabled { background-color:#F3F4F6 !important; color:var(--muted) !important; cursor:not-allowed; }

/* select com seta própria */
select {
  -webkit-appearance:none; appearance:none; cursor:pointer; padding-right:34px !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5l5 5 5-5' stroke='%2314213D' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important; background-position:right 12px center !important; background-size:12px 8px !important;
}
select:disabled { background-image:none !important; }

/* dentro de tabelas: mais compactos */
td select, td input[type="text"] { padding:6px 10px !important; padding-right:30px !important; font-size:.85rem !important; border-radius:7px !important; }
td input[type="text"] { padding-right:10px !important; }

/* checkbox/radio no tom da marca */
input[type="checkbox"], input[type="radio"] { accent-color:var(--primary); }

/* Gerenciar Usuários: usa a largura toda */
body.has-sidebar .page.page-wide { margin-right:0; max-width:none; }
body.has-sidebar .page.page-wide > * { max-width:none !important; }
.btn-success { background:var(--primary-soft) !important; }
.btn-success:hover { background:var(--primary) !important; }

/* ===== calendário (flatpickr) — neutraliza o estilo global dos campos e aplica a marca ===== */
.flatpickr-calendar select, .flatpickr-calendar input {
  all:unset; box-sizing:border-box;
}
.flatpickr-calendar {
  width:316px !important; border:1px solid var(--border) !important; border-radius:12px !important;
  box-shadow:0 12px 32px rgba(20,33,61,.18) !important; font-family:'Inter',sans-serif; padding:6px 6px 10px;
}
.flatpickr-calendar:before, .flatpickr-calendar:after { display:none !important; }
.flatpickr-months { align-items:center; padding:4px 0 2px; }
.flatpickr-months .flatpickr-month { height:40px; }
.flatpickr-current-month { display:flex !important; align-items:center; justify-content:center; gap:6px; padding:0 !important; height:40px; left:0 !important; width:100% !important; font-size:1rem !important; }
.flatpickr-current-month .flatpickr-monthDropdown-months {
  appearance:none !important; -webkit-appearance:none !important; cursor:pointer; background:transparent !important;
  font:600 .95rem 'Inter',sans-serif !important; color:var(--primary-dark) !important; padding:6px 10px !important;
  border-radius:8px !important; border:0 !important; width:auto !important; height:auto !important; margin:0 !important;
}
.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-current-month .numInputWrapper select {
  appearance:none !important; -webkit-appearance:none !important; cursor:pointer;
  font:600 .95rem 'Inter',sans-serif !important; color:var(--primary-dark) !important;
  padding:6px 24px 6px 10px !important; border-radius:8px !important; border:0 !important; height:auto !important;
  background-color:transparent !important; background-repeat:no-repeat !important; background-position:right 8px center !important;
  background-size:10px 6px !important; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%2314213D' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
}
.flatpickr-current-month .numInputWrapper { width:auto !important; }
.flatpickr-current-month .numInputWrapper select:hover { background-color:var(--primary-light) !important; }
.flatpickr-current-month .numInputWrapper span.arrowUp, .flatpickr-current-month .numInputWrapper span.arrowDown { display:none !important; }
.flatpickr-current-month .flatpickr-monthDropdown-months:hover { background:var(--primary-light) !important; }
.flatpickr-current-month .flatpickr-monthDropdown-months option { color:var(--text); background:#fff; font-weight:500; }
.flatpickr-current-month input.cur-year {
  font:600 .95rem 'Inter',sans-serif !important; color:var(--primary-dark) !important; padding:6px 4px !important;
  height:auto !important; width:100% !important; border:0 !important; background:transparent !important; text-align:center;
}
.flatpickr-current-month .numInputWrapper span { border:0 !important; width:14px; right:2px; }
.flatpickr-current-month .numInputWrapper span:after { border-left-width:4px; border-right-width:4px; }
.flatpickr-months .flatpickr-prev-month, .flatpickr-months .flatpickr-next-month {
  height:34px; width:34px; padding:0; display:flex; align-items:center; justify-content:center; top:6px; border-radius:8px; color:var(--primary);
}
.flatpickr-months .flatpickr-prev-month:hover, .flatpickr-months .flatpickr-next-month:hover { background:var(--primary-light); }
.flatpickr-months .flatpickr-prev-month svg, .flatpickr-months .flatpickr-next-month svg { width:12px; height:12px; fill:var(--primary) !important; }
span.flatpickr-weekday { color:var(--muted) !important; font-weight:600; font-size:.78rem; }
.flatpickr-day { border-radius:8px !important; max-width:none; height:38px; line-height:38px; color:var(--text); font-weight:500; }
.flatpickr-day.today { border-color:var(--accent) !important; }
.flatpickr-day.today:hover { background:var(--accent-light) !important; color:var(--text) !important; }
.flatpickr-day.selected, .flatpickr-day.selected:hover { background:var(--primary) !important; border-color:var(--primary) !important; color:#fff !important; }
.flatpickr-day.prevMonthDay, .flatpickr-day.nextMonthDay, .flatpickr-day.flatpickr-disabled { color:#B6BCC8 !important; }
.flatpickr-day:hover { background:var(--primary-light) !important; border-color:transparent !important; }
.dayContainer { width:100%; min-width:0; max-width:none; }
.flatpickr-innerContainer, .flatpickr-days { width:100% !important; }

/* botões de ação do formulário: mesmo tamanho */
.btn.btn-act {
  min-width:170px; height:40px; padding:0 18px !important; font-size:.88rem !important;
  display:inline-flex; align-items:center; justify-content:center; gap:6px; white-space:nowrap;
}
#analyzeBtn { background:var(--primary) !important; }
#analyzeBtn:hover { background:var(--primary-soft) !important; box-shadow:0 6px 16px rgba(20,33,61,.25); }

/* ===== Timeline: barra de ações acima da linha do tempo ===== */
.tl-toolbar { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; margin-bottom:16px; }
.tl-toolbar-actions { display:flex; gap:8px; flex-wrap:wrap; }
.btn.btn-outline { background:#fff !important; color:var(--primary) !important; border:1.5px solid var(--primary) !important; }
.btn.btn-outline:hover { background:var(--primary-light) !important; }

/* ===== Tipografia uniforme: "Análise atual" (lateral) e seção Análise ===== */
.sidebar-status, .sidebar-status * { font-size:.85rem !important; color:var(--text) !important; font-weight:500 !important; }
.sidebar-status .sidebar-status-title { font-weight:700 !important; color:var(--primary-dark) !important; }
.sidebar-stat-val { font-weight:600 !important; }

.analysis-section h3 { font-size:.95rem !important; font-weight:700; color:var(--primary-dark); }
.analysis-section, .analysis-section * { font-family:'Inter',sans-serif; }
.analysis-section .metric, .analysis-section .metric[style] { background:var(--bg) !important; border:1px solid var(--border) !important; padding:14px !important; }
.analysis-section .metric-value, .analysis-section .metric-value[style] {
  font-size:1.25rem !important; font-weight:700 !important; color:var(--text) !important; margin-bottom:2px;
}
.analysis-section .metric-label { font-size:.75rem !important; color:var(--muted) !important; }
.analysis-section .notes {
  background:var(--bg) !important; color:var(--text) !important; border:1px solid var(--border) !important;
  border-left:3px solid var(--primary) !important; font-size:.9rem !important; line-height:1.6;
}
.analysis-section .notes strong { color:var(--text); font-weight:600; }

.btn-ghost { background:transparent !important; color:var(--text) !important; border:1px solid var(--border) !important; }
.btn-ghost:hover { background:var(--primary-light) !important; }

/* modal */
.modal-bg { position:fixed; inset:0; background:rgba(13,24,48,.55); z-index:1000; align-items:center; justify-content:center; padding:20px; }
.modal-box { background:#fff; border-radius:14px; padding:24px; width:100%; max-width:640px; max-height:90vh; overflow:auto; box-shadow:0 24px 60px rgba(13,24,48,.35); }
