:root {
  --ink: #173531;
  --ink-soft: #355650;
  --muted: #70817d;
  --line: #dce6e2;
  --surface: #ffffff;
  --surface-soft: #f6f8f5;
  --cream: #f5f1e8;
  --teal: #0f6b63;
  --teal-dark: #0a4f4a;
  --teal-soft: #dff0eb;
  --plum: #65517a;
  --plum-soft: #eee8f3;
  --orange: #c9773d;
  --orange-soft: #faeadc;
  --blue: #3c6f82;
  --blue-soft: #e1eef2;
  --danger: #a44a45;
  --shadow: 0 20px 50px rgba(24, 58, 52, 0.09);
  --radius-lg: 26px;
  --radius-md: 18px;
  --radius-sm: 12px;
}

* { box-sizing: border-box; }

/* O atributo hidden precisa vencer as classes que definem display (ex.: .simulation-grid). */
[hidden] { display: none !important; }

html {
  max-width: 100%;
  overflow-x: hidden;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  min-width: 320px;
  max-width: 100%;
  overflow-x: hidden;
  color: var(--ink);
  background: var(--surface-soft);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.5;
}

/* ---------- acesso e autenticacao ---------- */

.auth-shell {
  display: grid;
  min-height: 100vh;
  grid-template-columns: minmax(360px, 44%) 1fr;
  background: #f3f6f3;
}

.auth-shell > *, .auth-card-wrap, .auth-card, .auth-promise { min-width: 0; }

.auth-visual {
  position: relative;
  display: flex;
  overflow: hidden;
  min-height: 100vh;
  flex-direction: column;
  justify-content: space-between;
  padding: clamp(32px, 5vw, 72px);
  color: white;
  background:
    radial-gradient(circle at 80% 15%, rgba(255,255,255,.14) 0 9%, transparent 9.3%),
    radial-gradient(circle at 15% 84%, rgba(255,255,255,.08) 0 18%, transparent 18.3%),
    linear-gradient(145deg, #0a514b, #0f6b63 56%, #193f3b);
}

.auth-visual::after {
  position: absolute;
  right: -90px;
  bottom: 13%;
  width: 270px;
  height: 270px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 50%;
  content: "";
}

.auth-visual > img {
  position: relative;
  z-index: 1;
  width: min(310px, 75%);
  padding: 15px 18px;
  border-radius: 17px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 18px 45px rgba(3,39,35,.18);
  object-fit: contain;
}

.auth-promise { position: relative; z-index: 1; max-width: 540px; }
.auth-promise h1 { margin: 20px 0 14px; font-size: clamp(38px, 4.7vw, 66px); line-height: 1.02; letter-spacing: -.045em; }
.auth-promise p { max-width: 480px; margin: 0; color: rgba(255,255,255,.78); font-size: clamp(14px, 1.35vw, 18px); }

.auth-card-wrap { display: grid; width: 100%; min-height: 100vh; padding: 36px; place-items: center; }
.auth-card { width: min(440px, 100%); max-width: 100%; padding: 42px; border: 1px solid var(--line); border-radius: 26px; background: white; box-shadow: var(--shadow); }
.auth-card h2 { margin: 7px 0 8px; font-size: 29px; line-height: 1.15; }
.auth-intro { margin: 0 0 28px; color: var(--muted); font-size: 13px; }
.auth-card .field { margin-bottom: 17px; }
.auth-card .field > span:first-child { font-weight: 800; }
.auth-submit { margin-top: 7px; }
.auth-submit:disabled, .auth-link:disabled { cursor: wait; opacity: .65; }
.auth-link { display: block; margin: 18px auto 0; padding: 5px; border: 0; color: var(--teal); background: transparent; cursor: pointer; font-size: 12px; font-weight: 800; }
.auth-link:hover { text-decoration: underline; }
.auth-help { margin: 25px 0 0; padding-top: 20px; border-top: 1px solid var(--line); color: var(--muted); font-size: 10.5px; text-align: center; }
.auth-status { min-height: 18px; margin: 15px 0 -5px; color: var(--muted); font-size: 11px; text-align: center; }
.auth-status[data-tone="error"] { color: var(--danger); }
.auth-status[data-tone="success"] { color: var(--teal); }
.password-field { position: relative; display: block !important; }
.password-field input { padding-right: 78px !important; }
.password-toggle { position: absolute; top: 50%; right: 8px; padding: 5px 7px; border: 0; border-radius: 7px; color: var(--teal); background: var(--teal-soft); cursor: pointer; transform: translateY(-50%); font-size: 9px; font-weight: 850; }
.auth-config-card { border-color: #eed8c5; background: #fffaf5; }
.signout-button { flex: 0 0 auto; color: var(--danger); }
.empty-action { margin-top: 16px; }
body:not(.has-session) .mobile-nav { display: none !important; }

button, input, textarea, select { font: inherit; }
button { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }

.app-shell { min-height: 100vh; }

.sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 30;
  display: flex;
  width: 274px;
  flex-direction: column;
  padding: 28px 20px;
  border-right: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.96);
}

.brand {
  display: block;
  color: inherit;
  text-decoration: none;
}

.brand-logo {
  display: block;
  width: 205px;
  max-width: 100%;
  height: auto;
}

.main-nav {
  display: grid;
  gap: 7px;
  margin-top: 34px;
}

.nav-item {
  display: flex;
  width: 100%;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border: 0;
  border-radius: 13px;
  color: var(--ink-soft);
  background: transparent;
  cursor: pointer;
  text-align: left;
  font-size: 14px;
  font-weight: 650;
  transition: 160ms ease;
}

.nav-item span {
  display: grid;
  width: 24px;
  height: 24px;
  place-items: center;
  border-radius: 8px;
  color: var(--teal);
  background: var(--teal-soft);
}

.nav-item:hover { background: #f1f6f4; }
.nav-item.is-active { color: white; background: var(--teal); }
.nav-item.is-active span { color: white; background: rgba(255,255,255,.16); }

.privacy-note {
  display: flex;
  gap: 10px;
  margin-top: auto;
  padding: 14px;
  border: 1px solid #d9e7e3;
  border-radius: 15px;
  background: #f3f9f7;
}

.privacy-icon { color: var(--teal); font-size: 20px; }
.privacy-note strong { font-size: 12px; }
.privacy-note p { margin: 4px 0 0; color: var(--muted); font-size: 10.5px; line-height: 1.45; }

.workspace { min-height: 100vh; margin-left: 274px; }

.topbar {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  min-height: 82px;
  align-items: center;
  gap: 22px;
  padding: 14px 34px;
  border-bottom: 1px solid rgba(220, 230, 226, 0.9);
  background: rgba(246, 248, 245, 0.9);
  backdrop-filter: blur(14px);
}

.topbar-copy { min-width: 180px; }
.topbar-copy strong { display: block; margin-top: 1px; font-size: 17px; }
.eyebrow { color: var(--teal); font-size: 10px; font-weight: 850; letter-spacing: 0.13em; }

.global-search, .local-search {
  display: flex;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: white;
}

.global-search { width: min(420px, 38vw); margin-left: auto; padding: 10px 13px; }
.local-search { width: min(370px, 100%); padding: 11px 14px; }
.global-search span, .local-search span { color: var(--teal); font-size: 20px; }
.global-search input, .local-search input { width: 100%; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: 13px; }

.profile-chip {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 5px 9px 5px 5px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: white;
  cursor: pointer;
}

#profile-initials {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border-radius: 11px;
  color: white;
  background: var(--plum);
  font-size: 12px;
  font-weight: 800;
}

.profile-copy { min-width: 110px; text-align: left; }
.profile-copy strong, .profile-copy small { display: block; max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.profile-copy strong { font-size: 12px; }
.profile-copy small { color: var(--muted); font-size: 9.5px; }

main { width: min(1420px, 100%); min-width: 0; margin: 0 auto; padding: 32px 34px 70px; }
main:focus { outline: none; }
.view { display: none; animation: reveal 220ms ease; }
.view.is-active { display: block; }

@keyframes reveal { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } }

h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { line-height: 1.12; letter-spacing: -0.035em; }
h1 { font-size: clamp(32px, 4vw, 54px); }
h2 { font-size: 23px; }
h3 { font-size: 17px; }

.hero {
  position: relative;
  display: grid;
  overflow: hidden;
  grid-template-columns: 1.4fr .55fr;
  gap: 40px;
  align-items: end;
  min-height: 375px;
  padding: 48px;
  border-radius: var(--radius-lg);
  color: white;
  background:
    radial-gradient(circle at 80% 20%, rgba(215, 158, 119, 0.42), transparent 23%),
    radial-gradient(circle at 70% 100%, rgba(108, 84, 127, 0.72), transparent 40%),
    linear-gradient(130deg, #0b5f59, #173f4a 55%, #503f63);
  box-shadow: var(--shadow);
}

.workspace, .view, .hero, .hero-copy, .hero-panel { min-width: 0; }

.hero::after {
  position: absolute;
  right: 24%;
  bottom: -110px;
  width: 260px;
  height: 260px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 50%;
  content: "";
}

.hero-copy { position: relative; z-index: 1; max-width: 760px; }
.hero h1 { margin: 18px 0 18px; max-width: 800px; }
.hero p { max-width: 650px; margin-bottom: 28px; color: rgba(255,255,255,.79); font-size: 17px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 10px; }

.pill {
  display: inline-flex;
  width: fit-content;
  padding: 6px 9px;
  border-radius: 999px;
  color: var(--teal);
  background: var(--teal-soft);
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .08em;
}

.pill-light { color: white; background: rgba(255,255,255,.14); }

.hero-panel {
  position: relative;
  z-index: 1;
  padding: 22px;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 20px;
  background: rgba(255,255,255,.1);
  backdrop-filter: blur(8px);
}

.hero-panel span, .hero-panel small { display: block; color: rgba(255,255,255,.73); font-size: 11px; }
.hero-panel strong { display: block; margin: 5px 0 10px; font-size: 40px; }
.progress-track { overflow: hidden; height: 7px; margin-bottom: 12px; border-radius: 20px; background: rgba(255,255,255,.18); }
.progress-track span { display: block; width: 0; height: 100%; border-radius: inherit; background: #f6be83; transition: width 300ms ease; }

.button {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  padding: 10px 16px;
  border: 0;
  border-radius: 12px;
  cursor: pointer;
  font-size: 13px;
  font-weight: 780;
  transition: 160ms ease;
}

.button:hover { transform: translateY(-1px); }
.button-primary { color: white; background: var(--teal); box-shadow: 0 8px 18px rgba(15,107,99,.18); }
.hero .button-primary { color: var(--teal-dark); background: white; }
.button-secondary { color: white; background: var(--plum); }
.button-subtle { color: var(--teal); background: var(--teal-soft); }
.button-quiet { color: var(--muted); border: 1px solid var(--line); background: white; }
.button-ghost-light { color: white; border: 1px solid rgba(255,255,255,.24); background: rgba(255,255,255,.06); }
.full-width { width: 100%; }

.section-heading { margin: 38px 0 18px; }
.section-heading h2 { margin: 5px 0 0; }
.section-heading-inline { display: flex; align-items: end; justify-content: space-between; gap: 20px; }
.section-heading.compact { margin: 0 0 16px; }
.text-button { border: 0; color: var(--teal); background: transparent; cursor: pointer; font-size: 12px; font-weight: 800; }

.quick-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 15px; }

.quick-card, .situation-card {
  position: relative;
  display: flex;
  min-height: 170px;
  flex-direction: column;
  align-items: flex-start;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: white;
  cursor: pointer;
  text-align: left;
  transition: 180ms ease;
}

.quick-card:hover, .situation-card:hover { transform: translateY(-3px); border-color: #b7d2ca; box-shadow: var(--shadow); }
.card-icon { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 11px; color: var(--teal); background: var(--teal-soft); font-weight: 900; }
.quick-card strong { margin: auto 0 7px; font-size: 15px; line-height: 1.25; }
.quick-card small { color: var(--muted); }

.dashboard-columns { display: grid; grid-template-columns: 1.25fr .75fr; gap: 18px; margin-top: 28px; }
.panel { padding: 26px; border: 1px solid var(--line); border-radius: var(--radius-md); background: white; }
.panel-accent { display: flex; flex-direction: column; align-items: flex-start; background: linear-gradient(145deg, #f0e9f4, #fff); }
.panel-accent h2 { margin: 18px 0 10px; }
.panel-accent p { color: var(--muted); }
.panel-accent .button { margin-top: auto; }

.journey-list { display: grid; gap: 10px; }
.journey-row { display: grid; grid-template-columns: 42px 1fr auto; gap: 12px; align-items: center; padding: 10px; border-radius: 13px; background: var(--surface-soft); }
.journey-number { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 12px; color: var(--teal); background: var(--teal-soft); font-size: 12px; font-weight: 850; }
.journey-row strong { display: block; font-size: 13px; }
.journey-row small { color: var(--muted); font-size: 10px; }
.journey-row button { border: 0; color: var(--teal); background: transparent; cursor: pointer; font-weight: 900; }

.mini-stats { display: flex; gap: 24px; margin: 14px 0 22px; }
.mini-stats strong, .mini-stats span { display: block; }
.mini-stats strong { font-size: 24px; }
.mini-stats span { color: var(--muted); font-size: 10px; }

.page-intro { margin-bottom: 28px; padding: 20px 4px 0; }
.page-intro h1 { margin: 9px 0 12px; }
.page-intro p { max-width: 720px; color: var(--muted); font-size: 15px; }
.page-intro-split { display: flex; align-items: end; justify-content: space-between; gap: 30px; }

/* align-items:start impede que um modulo aberto estique o card vizinho fechado. */
.module-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; align-items: start; }
.module-card { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-md); background: white; box-shadow: 0 7px 22px rgba(24,58,52,.04); }
.module-top { display: flex; gap: 16px; padding: 24px; }
.module-card[data-color="plum"] .module-number { color: var(--plum); background: var(--plum-soft); }
.module-card[data-color="orange"] .module-number { color: var(--orange); background: var(--orange-soft); }
.module-card[data-color="blue"] .module-number { color: var(--blue); background: var(--blue-soft); }
.module-number { display: grid; flex: 0 0 auto; width: 50px; height: 50px; place-items: center; border-radius: 15px; color: var(--teal); background: var(--teal-soft); font-weight: 900; }
.module-card h2 { margin: 2px 0 8px; font-size: 20px; }
.module-card p { margin-bottom: 0; color: var(--muted); font-size: 12px; }
.module-toggle { width: 100%; padding: 13px 24px; border: 0; border-top: 1px solid var(--line); color: var(--teal); background: #fbfcfb; cursor: pointer; text-align: left; font-size: 12px; font-weight: 800; }
.module-content { display: none; padding: 4px 24px 20px; }
.module-card.is-open .module-content { display: block; }
/* Escopo em "> ul": dentro de .module-content tambem existe a lista de passos (ol),
   que nao pode herdar o marcador de check. */
.module-content > ul { display: grid; gap: 9px; margin: 14px 0 0; padding: 0; list-style: none; }
.module-content > ul > li { display: flex; gap: 9px; color: var(--ink-soft); font-size: 12px; }
.module-content > ul > li::before { color: var(--teal); content: "✓"; font-weight: 900; }

.filter-row { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.filter-button { padding: 8px 13px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink-soft); background: white; cursor: pointer; font-size: 11px; font-weight: 750; }
.filter-button.is-active { color: white; border-color: var(--teal); background: var(--teal); }

.situation-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.situation-card { min-height: 235px; }
.situation-card .pill { margin-left: auto; }
.situation-card h2 { margin: 25px 0 10px; font-size: 18px; }
.situation-card p { margin-bottom: 20px; color: var(--muted); font-size: 12px; }
.situation-card footer { display: flex; width: 100%; align-items: center; justify-content: space-between; margin-top: auto; color: var(--muted); font-size: 10px; }
.situation-card footer strong { color: var(--teal); font-size: 11px; }

.empty-state { padding: 70px 20px; border: 1px dashed #bed0ca; border-radius: var(--radius-md); text-align: center; }
.empty-state span { font-size: 32px; }
.empty-state h2 { margin: 12px 0 6px; }
.empty-state p { color: var(--muted); }

.generator-layout { display: grid; grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr); gap: 22px; align-items: start; }
.generator-form { display: grid; gap: 16px; }
.field-row { display: grid; gap: 14px; }
.two-columns { grid-template-columns: 1fr 1fr; }
.three-columns { grid-template-columns: 1fr 1fr .65fr; }
.field { display: grid; gap: 6px; }
.field > span { color: var(--ink-soft); font-size: 11px; font-weight: 780; }
.field small { color: var(--muted); font-weight: 500; }
.field input, .field textarea, .field select { width: 100%; border: 1px solid var(--line); border-radius: 11px; outline: 0; color: var(--ink); background: #fbfcfb; }
.field input, .field select { height: 43px; padding: 0 12px; }
.field textarea { resize: vertical; padding: 11px 12px; }
.field input:focus, .field textarea:focus, .field select:focus { border-color: #78aaa1; box-shadow: 0 0 0 3px rgba(15,107,99,.08); }
.form-actions { display: flex; flex-wrap: wrap; gap: 9px; padding-top: 6px; }

.proposal-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 13px;
  border: 1px solid #cfe1dc;
  border-radius: 999px;
  color: var(--teal);
  background: #f3f9f7;
  font-size: 11px;
  font-weight: 800;
}

.proposal-badge::before {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #3da77f;
  content: "";
}

.compliance-note {
  display: flex;
  gap: 13px;
  margin: -8px 0 22px;
  padding: 16px 18px;
  border: 1px solid #eadcc8;
  border-radius: 15px;
  background: #fff9ef;
}

.compliance-note-icon {
  display: grid;
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 9px;
  color: #875d2d;
  background: #f2dfbe;
  font-weight: 900;
}

.compliance-note strong { display: block; margin-bottom: 3px; color: #69451f; font-size: 12px; }
.compliance-note p { margin: 0; color: #806344; font-size: 11px; line-height: 1.55; }
.compliance-note a { color: #684a2d; font-weight: 800; }

.proposal-layout {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(470px, 1.1fr);
  gap: 22px;
  align-items: start;
}

.proposal-form { gap: 14px; }

.form-section-title {
  display: flex;
  align-items: center;
  gap: 11px;
  margin-top: 8px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}

.form-section-title:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.form-section-title > span { display: grid; width: 31px; height: 31px; place-items: center; border-radius: 10px; color: var(--teal); background: var(--teal-soft); font-size: 10px; font-weight: 900; }
.form-section-title strong, .form-section-title small { display: block; }
.form-section-title strong { font-size: 12px; }
.form-section-title small { margin-top: 1px; color: var(--muted); font-size: 9.5px; }

.file-field input { padding: 8px 9px; color: var(--muted); font-size: 10px; }
.file-field input::file-selector-button { margin-right: 8px; padding: 6px 9px; border: 0; border-radius: 7px; color: var(--teal); background: var(--teal-soft); cursor: pointer; font-size: 9px; font-weight: 800; }
.proposal-actions .button-primary { min-width: 190px; }

.proposal-stage {
  position: sticky;
  top: 104px;
  overflow: hidden;
  padding: 14px;
  border-radius: var(--radius-md);
  background: #dfe5e2;
}

.proposal-preview {
  position: relative;
  overflow: hidden;
  min-height: 820px;
  color: #263d38;
  background: white;
  box-shadow: 0 12px 30px rgba(20,50,44,.12);
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

.proposal-topline { height: 8px; background: var(--proposal-color, var(--teal)); }
.proposal-doc-body { padding: 38px 42px 34px; }
.proposal-doc-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-bottom: 25px; border-bottom: 1px solid #dfe8e4; }
.proposal-professional { display: flex; align-items: center; gap: 11px; }
.proposal-professional-mark { display: grid; overflow: hidden; width: 42px; height: 42px; flex: 0 0 auto; place-items: center; border-radius: 12px; color: white; background: var(--proposal-color, var(--teal)); font-size: 12px; font-weight: 900; }
.proposal-professional-mark img { width: 100%; height: 100%; object-fit: contain; background: white; }
.proposal-professional strong, .proposal-professional small { display: block; }
.proposal-professional strong { font-size: 12px; }
.proposal-professional small { margin-top: 2px; color: #768681; font-size: 8px; }
.proposal-doc-label { text-align: right; }
.proposal-doc-label strong, .proposal-doc-label span { display: block; }
.proposal-doc-label strong { color: var(--proposal-color, var(--teal)); font-size: 9px; letter-spacing: .1em; }
.proposal-doc-label span { margin-top: 3px; color: #889691; font-size: 8px; }

.proposal-doc-hero { padding: 33px 0 26px; }
.proposal-doc-hero .overline { display: block; margin-bottom: 9px; color: var(--proposal-color, var(--teal)); font-size: 8px; font-weight: 850; letter-spacing: .11em; }
.proposal-doc-hero h2 { max-width: 520px; margin: 0 0 8px; color: #1d3934; font-size: 28px; line-height: 1.08; }
.proposal-doc-hero p { margin: 0; color: #667a75; font-size: 11px; }

.proposal-facts { display: grid; grid-template-columns: repeat(3, 1fr); overflow: hidden; border: 1px solid #dce6e2; border-radius: 13px; }
.proposal-fact { padding: 13px 15px; border-right: 1px solid #dce6e2; background: #f8faf9; }
.proposal-fact:last-child { border-right: 0; }
.proposal-fact span, .proposal-fact strong { display: block; }
.proposal-fact span { color: #879590; font-size: 7px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.proposal-fact strong { margin-top: 4px; color: #354f49; font-size: 10px; }

.proposal-doc-section { margin-top: 25px; }
.proposal-doc-section h3 { margin: 0 0 10px; color: #34544d; font-size: 9px; text-transform: uppercase; letter-spacing: .09em; }
.proposal-doc-section p, .proposal-doc-section li { color: #526963; font-size: 10px; line-height: 1.6; }
.proposal-doc-section p { margin: 0; }
.proposal-doc-list { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 14px; margin: 0; padding: 0; list-style: none; }
.proposal-doc-list li { position: relative; padding: 9px 10px 9px 27px; border-radius: 9px; background: #f5f8f7; }
.proposal-doc-list li::before { position: absolute; top: 9px; left: 10px; color: var(--proposal-color, var(--teal)); content: "✓"; font-weight: 900; }

.proposal-investment-card { display: grid; grid-template-columns: 1fr 1.1fr; gap: 20px; align-items: center; margin-top: 26px; padding: 20px 22px; border-radius: 15px; color: white; background: var(--proposal-color, var(--teal)); }
.proposal-price span, .proposal-price strong { display: block; }
.proposal-price span { color: rgba(255,255,255,.72); font-size: 8px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.proposal-price strong { margin-top: 3px; font-size: 27px; letter-spacing: -.03em; }
.proposal-payment { padding-left: 20px; border-left: 1px solid rgba(255,255,255,.25); }
.proposal-payment span, .proposal-payment strong { display: block; }
.proposal-payment span { color: rgba(255,255,255,.68); font-size: 8px; }
.proposal-payment strong { margin-top: 4px; font-size: 10px; line-height: 1.45; }

.proposal-next-step { margin-top: 22px; padding: 15px 17px; border: 1px solid #dbe6e2; border-left: 4px solid var(--proposal-color, var(--teal)); border-radius: 10px; }
.proposal-next-step span { display: block; margin-bottom: 4px; color: var(--proposal-color, var(--teal)); font-size: 8px; font-weight: 850; text-transform: uppercase; letter-spacing: .08em; }
.proposal-next-step strong { color: #38534d; font-size: 10px; line-height: 1.45; }

.proposal-doc-footer { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-top: 30px; padding-top: 16px; border-top: 1px solid #e1e9e6; }
.proposal-doc-footer p { max-width: 390px; margin: 0; color: #8a9793; font-size: 7px; line-height: 1.45; }
.proposal-doc-footer strong { color: #526a64; font-size: 8px; white-space: nowrap; }

.document-stage { position: sticky; top: 104px; overflow: hidden; padding: 14px; border-radius: var(--radius-md); background: #dfe5e2; }
.document-toolbar { display: flex; align-items: center; justify-content: space-between; padding: 0 5px 12px; color: var(--ink-soft); font-size: 10px; font-weight: 800; }
.status-dot { display: flex; align-items: center; gap: 5px; color: var(--teal); }
.status-dot::before { width: 6px; height: 6px; border-radius: 50%; background: #3ea47b; content: ""; }
.document-preview { min-height: 650px; padding: 48px; color: #263d38; background: white; box-shadow: 0 12px 30px rgba(20,50,44,.12); }
.doc-brand { display: flex; align-items: center; gap: 10px; padding-bottom: 24px; border-bottom: 3px solid var(--doc-color, var(--teal)); }
.doc-brand-mark { display: grid; width: 34px; height: 34px; flex: 0 0 auto; place-items: center; border-radius: 10px; color: white; background: var(--doc-color, var(--teal)); font-size: 11px; font-weight: 900; }
.doc-brand strong, .doc-brand small { display: block; }
.doc-brand strong { font-size: 12px; }
.doc-brand small { color: #72837f; font-size: 8px; }
.doc-brand-logo { width: 96px; height: auto; margin-left: auto; opacity: .92; }
.document-preview h2 { margin: 34px 0 8px; color: var(--doc-color, var(--teal)); font-size: 24px; }
.doc-meta { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 28px; color: #788985; font-size: 8px; }
.doc-section { margin-top: 24px; }
.doc-section h3 { margin-bottom: 8px; color: #36554e; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; }
.doc-section p, .doc-section li { color: #4b635e; font-size: 10px; line-height: 1.65; }
.doc-section ul { margin: 0; padding-left: 17px; }
.doc-empty { color: #9daba8 !important; font-style: italic; }
.doc-footer { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-top: 45px; padding-top: 15px; border-top: 1px solid #e2e9e6; color: #8d9a97; font-size: 8px; }
.doc-footer > span:first-child { max-width: 340px; }
.doc-footer-brand { display: flex; align-items: center; gap: 5px; flex: 0 0 auto; color: #7d8c88; white-space: nowrap; }
.doc-footer-brand img { width: 52px; height: auto; opacity: .85; }
.proposal-doc-sign { display: grid; justify-items: end; gap: 6px; }
.proposal-doc-brand { display: flex; align-items: center; gap: 5px; color: #97a4a0; font-size: 7px; white-space: nowrap; }
.proposal-doc-brand img { width: 46px; height: auto; opacity: .8; }

.level-card { min-width: 180px; padding: 14px 18px; border: 1px solid var(--line); border-radius: 15px; background: white; }
.level-card span, .level-card strong { display: block; }
.level-card span { color: var(--muted); font-size: 10px; }
.level-card strong { margin-top: 4px; color: var(--plum); font-size: 14px; }
.simulation-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.simulation-card { display: flex; min-height: 270px; flex-direction: column; padding: 24px; border: 1px solid #dfd6e7; border-radius: var(--radius-md); background: linear-gradient(155deg, white, #f2edf5); }
.simulation-card header { display: flex; align-items: center; justify-content: space-between; }
.simulation-card .sim-icon { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 13px; color: white; background: var(--plum); }
.simulation-card h2 { margin: 28px 0 8px; font-size: 20px; }
.simulation-card p { color: var(--muted); font-size: 12px; }
.simulation-card footer { display: flex; align-items: center; justify-content: space-between; margin-top: auto; }
.completed-label { color: var(--teal); font-size: 10px; font-weight: 850; }

.simulation-player { max-width: 850px; margin: 0 auto; padding: 30px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: white; box-shadow: var(--shadow); }
.sim-progress { display: flex; gap: 6px; margin-bottom: 25px; }
.sim-progress span { height: 6px; flex: 1; border-radius: 20px; background: #e8ecea; }
.sim-progress span.is-complete { background: var(--plum); }
.sim-context { margin-bottom: 25px; padding: 18px; border-radius: 14px; color: #4c4255; background: var(--plum-soft); font-size: 13px; }
.sim-options { display: grid; gap: 10px; margin-top: 20px; }
.sim-option { padding: 15px; border: 1px solid var(--line); border-radius: 13px; background: white; cursor: pointer; text-align: left; font-size: 13px; }
.sim-option:hover { border-color: var(--plum); background: #fbf9fc; }
.sim-feedback { margin-top: 18px; padding: 16px; border-radius: 13px; background: var(--teal-soft); }
.sim-feedback.is-low { color: #6f413a; background: #f8e8e5; }
.sim-feedback p { margin: 0 0 12px; font-size: 12px; }

.material-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.material-card { display: flex; min-height: 210px; flex-direction: column; padding: 22px; border: 1px solid var(--line); border-radius: var(--radius-md); background: white; }
.material-card header { display: flex; align-items: center; justify-content: space-between; }
.file-type { color: var(--muted); font-size: 9px; font-weight: 850; letter-spacing: .08em; }
.material-card h2 { margin: 25px 0 9px; font-size: 18px; }
.material-card p { color: var(--muted); font-size: 12px; }
.material-card footer { display: flex; align-items: center; justify-content: space-between; margin-top: auto; }
.material-card footer span { color: var(--muted); font-size: 10px; }
.material-card footer button { border: 0; color: var(--teal); background: transparent; cursor: pointer; font-size: 11px; font-weight: 800; }

.modal {
  width: min(760px, calc(100vw - 32px));
  max-height: calc(100vh - 32px);
  padding: 0;
  border: 0;
  border-radius: 24px;
  color: var(--ink);
  background: white;
  box-shadow: 0 30px 100px rgba(17,45,40,.28);
}
.modal::backdrop { background: rgba(10,35,31,.5); backdrop-filter: blur(4px); }
.modal-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 25px 28px 18px; border-bottom: 1px solid var(--line); }
.modal-head h2 { margin: 5px 0 0; }
.icon-button { display: grid; width: 38px; height: 38px; place-items: center; border: 0; border-radius: 11px; color: var(--ink); background: #edf2ef; cursor: pointer; font-size: 20px; }
.situation-detail { padding: 25px 28px 30px; }
.situation-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.detail-block { padding: 16px; border-radius: 14px; background: var(--surface-soft); }
.detail-block.full { grid-column: 1 / -1; }
.detail-block h3 { display: flex; align-items: center; gap: 7px; margin: 0 0 9px; color: var(--teal); font-size: 11px; text-transform: uppercase; letter-spacing: .06em; }
.detail-block p, .detail-block li { color: var(--ink-soft); font-size: 12px; }
.detail-block p { margin: 0; }
.detail-block ul { display: grid; gap: 6px; margin: 0; padding-left: 18px; }
.detail-material { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 16px; padding: 16px; border-radius: 14px; color: white; background: var(--teal); }
.detail-material span, .detail-material strong { display: block; }
.detail-material span { color: rgba(255,255,255,.65); font-size: 9px; }
.detail-material strong { margin-top: 2px; font-size: 12px; }
.favorite-button { border: 1px solid rgba(255,255,255,.25); color: white; background: transparent; }

.profile-modal { width: min(480px, calc(100vw - 32px)); }
.profile-modal form { padding-bottom: 25px; }
.profile-modal .field, .profile-modal .muted, .profile-modal .full-width, .profile-modal .field-row { margin-right: 28px; margin-left: 28px; }
/* width:100% + margem lateral estoura o dialogo; desconta as duas margens. */
.profile-modal .full-width { width: calc(100% - 56px); }
/* campos dentro de uma linha de duas colunas nao levam a margem de novo */
.profile-modal .field-row .field { margin-right: 0; margin-left: 0; }
.profile-modal .muted { color: var(--muted); font-size: 12px; }
.profile-modal .field { margin-bottom: 15px; }
.profile-modal .field-row { margin-bottom: 18px; }

/* foto ou logotipo do perfil */
.mark-row { display: grid; grid-template-columns: 76px 1fr; gap: 14px; align-items: start; }
.mark-preview { display: grid; overflow: hidden; width: 76px; height: 76px; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: white; background: var(--plum); font-size: 22px; font-weight: 850; }
.mark-preview img { width: 100%; height: 100%; object-fit: cover; }
.mark-preview.is-logo { border-radius: 15px; background: white; }
.mark-preview.is-logo img { object-fit: contain; padding: 6px; }
.mark-actions { display: grid; gap: 9px; }
.mark-actions small { color: var(--muted); font-size: 10px; line-height: 1.45; }
.mark-kind { display: flex; gap: 6px; }
.mark-kind input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.mark-kind span { display: inline-flex; padding: 6px 12px; border: 1px solid var(--line); border-radius: 999px; background: white; cursor: pointer; color: var(--ink-soft); font-size: 11px; font-weight: 750; }
.mark-kind input:checked + span { color: white; border-color: var(--teal); background: var(--teal); }
.mark-kind input:focus-visible + span { box-shadow: 0 0 0 3px rgba(15,107,99,.18); }
.mark-buttons { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.mark-upload input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.mark-upload span { display: inline-flex; padding: 9px 13px; border-radius: 10px; color: var(--teal); background: var(--teal-soft); cursor: pointer; font-size: 11px; font-weight: 800; }
.mark-upload span:hover { background: #cfe9e1; }
.mark-upload input:focus-visible + span { box-shadow: 0 0 0 3px rgba(15,107,99,.18); }
.link-danger[hidden] { display: none; }

/* a marca do perfil aplicada nos lugares onde a identidade dela aparece */
#profile-initials.has-mark, .doc-brand-mark.has-mark, .proposal-professional-mark.has-mark { overflow: hidden; padding: 0; background: white; }
#profile-initials.has-mark img, .doc-brand-mark.has-mark img, .proposal-professional-mark.has-mark img { width: 100%; height: 100%; object-fit: cover; }
#profile-initials.is-foto, .doc-brand-mark.is-foto, .proposal-professional-mark.is-foto { border-radius: 50%; }
.doc-brand-mark.has-mark, .proposal-professional-mark.has-mark { border: 1px solid #e2e9e6; }
#profile-initials.is-logo img, .doc-brand-mark.is-logo img, .proposal-professional-mark.is-logo img { object-fit: contain; padding: 2px; }
.sheet-sign { display: inline-flex; align-items: center; gap: 5px; }
.sheet-mark { width: 15px; height: 15px; border-radius: 50%; object-fit: cover; }
.sheet-mark.is-logo { border-radius: 3px; object-fit: contain; }
.color-field input { width: 70px; padding: 4px; }

.toast { position: fixed; right: 25px; bottom: 25px; z-index: 80; max-width: 330px; padding: 12px 16px; border-radius: 12px; color: white; background: var(--ink); box-shadow: var(--shadow); opacity: 0; transform: translateY(10px); pointer-events: none; transition: 180ms ease; font-size: 12px; }
.toast.is-visible { opacity: 1; transform: none; }
.mobile-only, .mobile-nav, .sidebar-backdrop { display: none; }

@media (max-width: 1180px) {
  .quick-grid { grid-template-columns: repeat(2, 1fr); }
  .situation-grid, .material-grid { grid-template-columns: repeat(2, 1fr); }
  .simulation-grid { grid-template-columns: repeat(2, 1fr); }
  .generator-layout { grid-template-columns: 1fr; }
  .document-stage { position: static; }
  .proposal-layout { grid-template-columns: 1fr; }
  .proposal-stage { position: static; }
}

@media (max-width: 900px) {
  .auth-shell { width: 100vw; max-width: 100vw; grid-template-columns: minmax(0, 1fr); }
  .auth-visual { width: 100vw; max-width: 100vw; min-height: 260px; justify-content: flex-start; gap: 44px; padding: 28px; }
  .auth-visual > img { width: min(245px, 70%); padding: 11px 14px; }
  .auth-promise { width: calc(100vw - 56px); max-width: calc(100vw - 56px); }
  .auth-promise h1 { max-width: 100%; margin: 13px 0 8px; overflow-wrap: anywhere; font-size: 34px; }
  .auth-promise p { display: none; }
  .auth-card-wrap { width: 100vw; max-width: 100vw; min-height: auto; margin-top: -30px; padding: 0 18px 38px; overflow: hidden; place-items: start center; }
  .auth-card { position: relative; z-index: 2; width: calc(100vw - 36px); max-width: calc(100vw - 36px); padding: 32px 26px; }
  .sidebar { transform: translateX(-105%); transition: transform 200ms ease; box-shadow: var(--shadow); }
  .sidebar.is-open { transform: none; }
  .sidebar-backdrop { position: fixed; inset: 0; z-index: 25; background: rgba(10,35,31,.42); }
  .sidebar-backdrop.is-visible { display: block; }
  .workspace { margin-left: 0; }
  .mobile-only { display: grid; }
  .topbar { padding: 12px 18px; }
  .topbar-copy { min-width: 0; }
  .topbar-copy .eyebrow, .global-search, .profile-copy { display: none; }
  main { padding: 24px 18px 95px; }
  .hero { grid-template-columns: 1fr; padding: 35px; }
  .hero-panel { max-width: 360px; }
  .dashboard-columns { grid-template-columns: 1fr; }
  .module-grid { grid-template-columns: 1fr; }
  .mobile-nav { position: fixed; right: 12px; bottom: 10px; left: 12px; z-index: 24; display: grid; grid-template-columns: repeat(5, 1fr); padding: 6px; border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,.94); box-shadow: 0 15px 40px rgba(18,50,44,.17); backdrop-filter: blur(12px); }
  .mobile-nav button { display: grid; min-width: 0; gap: 2px; place-items: center; padding: 7px 2px; border: 0; border-radius: 12px; color: var(--muted); background: transparent; font-size: 8px; font-weight: 800; }
  .mobile-nav button span { font-size: 17px; }
  .mobile-nav button.is-active { color: var(--teal); background: var(--teal-soft); }
}

@media (max-width: 640px) {
  .auth-visual { min-height: 230px; gap: 31px; }
  .auth-promise h1 { font-size: 29px; }
  .auth-card h2 { font-size: 25px; }
  .profile-chip { padding-right: 5px; }
  .hero { min-height: auto; padding: 28px 22px; }
  .hero h1 { font-size: 35px; }
  .hero p { font-size: 14px; }
  .hero-actions .button { width: 100%; }
  .quick-grid, .situation-grid, .simulation-grid, .material-grid { grid-template-columns: 1fr; }
  .page-intro-split { display: grid; }
  .two-columns { grid-template-columns: 1fr; }
  .three-columns { grid-template-columns: 1fr; }
  .document-preview { min-height: 520px; padding: 28px 22px; }
  .proposal-actions .button { width: 100%; }
  .proposal-doc-body { padding: 28px 22px 25px; }
  .proposal-doc-header { align-items: flex-start; }
  .proposal-doc-label { max-width: 110px; }
  .proposal-doc-hero h2 { font-size: 24px; }
  .proposal-facts { grid-template-columns: 1fr; }
  .proposal-fact { border-right: 0; border-bottom: 1px solid #dce6e2; }
  .proposal-fact:last-child { border-bottom: 0; }
  .proposal-doc-list { grid-template-columns: 1fr; }
  .proposal-investment-card { grid-template-columns: 1fr; }
  .proposal-payment { padding: 12px 0 0; border-top: 1px solid rgba(255,255,255,.25); border-left: 0; }
  .proposal-doc-footer { display: grid; }
  .situation-detail-grid { grid-template-columns: 1fr; }
  .detail-block.full { grid-column: auto; }
  .modal-head, .situation-detail { padding-right: 20px; padding-left: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: 1ms !important; transition-duration: 1ms !important; }
}

/* ---------- jornada: problema, passo a passo e atalhos ---------- */

.module-problem { margin: 0 24px 18px; padding: 15px 17px; border: 1px solid #eddcc6; border-radius: 14px; background: #fff8ee; }
.problem-tag { display: block; margin-bottom: 8px; color: #a8672c; font-size: 9px; font-weight: 900; letter-spacing: .1em; }
.module-problem ul { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.module-problem li { display: flex; gap: 8px; color: #7b5f3f; font-size: 12px; line-height: 1.45; }
.module-problem li::before { flex: 0 0 auto; color: #cf9a5c; content: "•"; font-weight: 900; }

.module-steps { display: grid; gap: 12px; margin: 16px 0 0; padding: 0; list-style: none; counter-reset: none; }
.module-step { display: grid; grid-template-columns: 28px 1fr; gap: 12px; }
.step-num { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 9px; color: white; background: var(--teal); font-size: 11px; font-weight: 900; }
.module-card[data-color="plum"] .step-num { background: var(--plum); }
.module-card[data-color="orange"] .step-num { background: var(--orange); }
.module-card[data-color="blue"] .step-num { background: var(--blue); }
.module-step strong { display: block; font-size: 13px; line-height: 1.35; }
.module-step p { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.step-link { margin-top: 7px; padding: 6px 10px; border: 1px solid var(--line); border-radius: 8px; color: var(--teal); background: white; cursor: pointer; font-size: 10.5px; font-weight: 800; text-align: left; }
.step-link:hover { border-color: var(--teal); background: var(--teal-soft); }

.module-links { margin-top: 18px; padding-top: 15px; border-top: 1px solid var(--line); }
.module-links-title { display: block; margin-bottom: 9px; color: var(--muted); font-size: 9px; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.chip-material { border-style: dashed; }

/* ---------- entregaveis ---------- */

.format-row { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0 14px; }
.format-tag { padding: 4px 8px; border-radius: 7px; font-size: 9.5px; font-weight: 800; }
.format-tag.is-imprimivel { color: var(--teal); background: var(--teal-soft); }
.format-tag.is-formulario { color: #7a5a2e; background: var(--orange-soft); }
.format-tag.is-planilha { color: #2f5c6d; background: var(--blue-soft); }
.format-tag.is-mensagem { color: #56436b; background: var(--plum-soft); }

.material-guide { margin-top: 16px; }
.material-guide > summary { padding: 12px 15px; border: 1px solid var(--line); border-radius: 12px; background: white; cursor: pointer; color: var(--ink-soft); font-size: 12px; font-weight: 800; list-style: none; }
.material-guide > summary::-webkit-details-marker { display: none; }
.material-guide > summary::after { float: right; color: var(--teal); content: "▾"; font-size: 11px; }
.material-guide[open] > summary { margin-bottom: 12px; border-color: var(--teal); color: var(--teal); background: var(--teal-soft); }
.material-guide[open] > summary::after { content: "▴"; }

.deliverable-zone { padding: 18px; border: 1px solid #cfe4dd; border-radius: 16px; background: linear-gradient(150deg, #f1f9f6, white); }
.deliverable-zone header { margin-bottom: 13px; }
.deliverable-zone h3 { margin: 4px 0 0; font-size: 16px; }
.deliverable-list { display: grid; gap: 9px; }
.deliverable-card { display: grid; grid-template-columns: 42px 1fr auto; gap: 13px; align-items: center; width: 100%; padding: 14px 15px; border: 1px solid var(--line); border-left: 4px solid var(--teal); border-radius: 13px; background: white; cursor: pointer; text-align: left; transition: 160ms ease; }
.deliverable-card:hover { transform: translateX(2px); box-shadow: var(--shadow); }
.deliverable-card.is-formulario { border-left-color: var(--orange); }
.deliverable-card.is-planilha { border-left-color: var(--blue); }
.deliverable-card.is-mensagem { border-left-color: var(--plum); }
.deliverable-icon { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 12px; color: var(--teal); background: var(--teal-soft); font-size: 18px; }
.deliverable-card.is-formulario .deliverable-icon { color: var(--orange); background: var(--orange-soft); }
.deliverable-card.is-planilha .deliverable-icon { color: var(--blue); background: var(--blue-soft); }
.deliverable-card.is-mensagem .deliverable-icon { color: var(--plum); background: var(--plum-soft); }
.deliverable-card strong { display: block; font-size: 13px; }
.deliverable-card p { margin: 3px 0 0; color: var(--muted); font-size: 11.5px; line-height: 1.5; }
.deliverable-card small { display: block; margin-top: 5px; color: #97a4a0; font-size: 10px; }
.deliverable-card em { color: var(--teal); font-style: normal; font-weight: 900; }

.deliverable-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.deliverable-lead { margin: 0 0 16px; color: var(--muted); font-size: 12.5px; line-height: 1.55; }
.deliverable-stage { padding: 14px; border-radius: var(--radius-md); background: #dfe5e2; }

/* a folha em si — mesma linguagem do documento gerado */
.sheet { padding: 34px 36px 30px; color: #263d38; background: white; box-shadow: 0 12px 30px rgba(20,50,44,.12); }
.sheet-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 22px; padding-bottom: 16px; border-bottom: 3px solid var(--doc-color, var(--teal)); }
.sheet-kicker { display: block; margin-bottom: 4px; color: var(--doc-color, var(--teal)); font-size: 8px; font-weight: 900; letter-spacing: .11em; }
.sheet-head strong { display: block; font-size: 19px; line-height: 1.2; letter-spacing: -.02em; }
.sheet-head small { display: block; margin-top: 6px; color: #74847f; font-size: 10px; line-height: 1.5; }
.sheet-brand { display: grid; flex: 0 0 auto; justify-items: end; gap: 4px; text-align: right; }
.sheet-brand img { width: 92px; height: auto; opacity: .92; }
.sheet-brand span { color: #8b9793; font-size: 8px; }
.sheet-note { margin: 16px 0 0; padding: 10px 12px; border-radius: 9px; color: #4e6660; background: #f3f8f6; font-size: 10.5px; line-height: 1.5; }
.sheet-block { margin-top: 20px; }
.sheet-block h4 { margin: 0 0 7px; color: #2f544c; font-size: 11px; letter-spacing: .02em; }
.sheet-block ul { display: grid; gap: 5px; margin: 0; padding-left: 16px; }
.sheet-block li { color: #4b635e; font-size: 10.5px; line-height: 1.6; }
.sheet-lines { display: grid; gap: 13px; margin-top: 12px; }
.sheet-lines span { display: block; height: 1px; background: repeating-linear-gradient(90deg, #cdd9d5 0 6px, transparent 6px 10px); }
.sheet-foot { margin-top: 26px; padding-top: 13px; border-top: 1px solid #e2e9e6; color: #8d9a97; font-size: 8.5px; line-height: 1.5; }
.sheet-table-wrap { overflow-x: auto; margin-top: 16px; }
.sheet-table { width: 100%; border-collapse: collapse; font-size: 9.5px; }
.sheet-table th { padding: 8px 9px; border: 1px solid #d5e0dc; color: white; background: var(--doc-color, var(--teal)); text-align: left; font-size: 8.5px; letter-spacing: .04em; }
.sheet-table td { height: 26px; padding: 5px 9px; border: 1px solid #dfe8e5; color: #4b635e; }
.sheet-table tbody tr:nth-child(even) td { background: #f8faf9; }

.message-set { display: grid; gap: 11px; }
.message-name { margin-bottom: 4px; }
.message-name input { height: 43px; padding: 0 12px; border: 1px solid var(--line); border-radius: 11px; outline: 0; background: white; }
.message-name input:focus { border-color: #78aaa1; box-shadow: 0 0 0 3px rgba(15,107,99,.08); }
.message-card { padding: 15px 16px; border: 1px solid #ded6e6; border-radius: 14px; background: white; }
.message-card header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.message-card strong { font-size: 12.5px; }
.message-text { margin: 0; padding: 13px 15px; border-left: 3px solid var(--plum); border-radius: 0 10px 10px 0; background: var(--plum-soft); color: #46394f; font-family: inherit; font-size: 12px; line-height: 1.6; white-space: pre-wrap; word-break: break-word; }

/* ---------- formas de pagamento ---------- */

.field-note { margin: -6px 0 4px; padding: 9px 12px; border-radius: 9px; color: #806344; background: #fff9ef; font-size: 10.5px; line-height: 1.5; }
.pay-picker { display: flex; flex-wrap: wrap; gap: 8px; }
.pay-option input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.pay-chip { display: inline-flex; align-items: center; gap: 7px; padding: 9px 13px; border: 1px solid var(--line); border-radius: 11px; background: white; cursor: pointer; color: var(--ink-soft); font-size: 11.5px; font-weight: 750; transition: 150ms ease; }
.pay-icon { display: grid; width: 20px; height: 20px; place-items: center; color: var(--muted); }
.pay-icon svg { width: 20px; height: 20px; }
.pay-option input:checked + .pay-chip { border-color: var(--teal); color: var(--teal); background: var(--teal-soft); }
.pay-option input:checked + .pay-chip .pay-icon { color: var(--teal); }
.pay-option input:focus-visible + .pay-chip { box-shadow: 0 0 0 3px rgba(15,107,99,.18); }
.pay-chip:hover { border-color: #9cc4ba; }

.pay-marks { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; padding-top: 11px; border-top: 1px solid rgba(255,255,255,.22); }
.pay-mark { display: inline-flex; align-items: center; gap: 6px; padding: 5px 9px 5px 7px; border-radius: 7px; background: rgba(255,255,255,.13); color: white; }
.pay-mark svg { width: 15px; height: 15px; flex: 0 0 auto; }
.pay-mark em { color: rgba(255,255,255,.92); font-size: 8px; font-style: normal; font-weight: 700; letter-spacing: .02em; }

/* ---------- pacientes, triagem e roteiro de situacao ---------- */

.nav-badge {
  display: grid;
  min-width: 20px;
  height: 20px;
  margin-left: auto;
  padding: 0 5px;
  place-items: center;
  border-radius: 999px;
  color: white;
  background: var(--orange);
  font-size: 10px;
  font-style: normal;
  font-weight: 900;
}

.nav-item.is-active .nav-badge { color: var(--orange); background: white; }

.link-button { padding: 0; border: 0; color: var(--teal); background: transparent; cursor: pointer; font-size: 11px; font-weight: 800; text-decoration: underline; }
.link-danger { margin-left: 12px; color: var(--danger); }
.field-hint { margin: -6px 28px 4px; color: var(--muted); font-size: 10.5px; line-height: 1.5; }
.field-hint strong { color: var(--ink-soft); }
.danger-text { color: var(--danger); }

/* alertas no dashboard */
.alert-strip { margin-top: 26px; padding: 20px 22px; border: 1px solid #edd7c4; border-radius: var(--radius-md); background: linear-gradient(150deg, #fff6ec, #fffdfa); }
.alert-strip-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 15px; }
.alert-strip-head h2 { margin: 5px 0 0; font-size: 21px; }
.eyebrow-alert { color: #b4682c; }
.alert-list { display: grid; gap: 8px; }
.alert-row { display: grid; grid-template-columns: 38px 1fr auto; gap: 12px; align-items: center; width: 100%; padding: 11px 14px; border: 1px solid #f0dcc9; border-radius: 13px; background: white; cursor: pointer; text-align: left; transition: 150ms ease; }
.alert-row:hover { border-color: var(--orange); transform: translateX(2px); }
.alert-row strong { display: block; font-size: 12.5px; }
.alert-row small { display: block; margin-top: 2px; color: var(--muted); font-size: 11px; line-height: 1.4; }
.alert-row em { color: var(--orange); font-style: normal; font-weight: 900; }

/* triagem por momento */
.triage { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 18px; }
.triage-card { display: grid; gap: 3px; padding: 18px 16px; border: 1px solid var(--line); border-radius: var(--radius-md); background: white; cursor: pointer; text-align: left; transition: 170ms ease; }
.triage-card:hover { transform: translateY(-2px); border-color: #a9cbc3; box-shadow: var(--shadow); }
.triage-card strong { font-size: 14px; }
.triage-card small { color: var(--muted); font-size: 11px; }
.triage-card em { color: var(--teal); font-size: 10px; font-style: normal; font-weight: 800; }
.triage-icon { display: grid; width: 34px; height: 34px; margin-bottom: 8px; place-items: center; border-radius: 11px; color: var(--teal); background: var(--teal-soft); font-size: 16px; }
.triage-card.is-active { border-color: var(--teal); background: var(--teal); color: white; }
.triage-card.is-active small, .triage-card.is-active em { color: rgba(255,255,255,.8); }
.triage-card.is-active .triage-icon { color: white; background: rgba(255,255,255,.18); }

/* progresso de situacoes resolvidas */
.resolve-bar { display: flex; align-items: center; justify-content: space-between; gap: 26px; margin-bottom: 20px; padding: 15px 20px; border: 1px solid var(--line); border-radius: 15px; background: white; }
.resolve-copy strong { display: block; font-size: 13px; }
.resolve-copy small { display: block; margin-top: 2px; color: var(--muted); font-size: 11px; }
.resolve-track { overflow: hidden; width: min(280px, 40%); height: 8px; flex: 0 0 auto; border-radius: 20px; background: #e8efec; }
.resolve-track span { display: block; width: 0; height: 100%; border-radius: inherit; background: var(--teal); transition: width 320ms ease; }
.situation-card.is-resolved { border-color: #b3d6cc; background: linear-gradient(160deg, #f3faf7, white); }
.situation-card.is-resolved footer span { color: var(--teal); font-weight: 800; }

/* roteiro passo a passo dentro do modal */
.flow { display: grid; gap: 10px; }
.flow-step { padding: 17px 18px; border: 1px solid var(--line); border-radius: 15px; background: var(--surface-soft); }
.flow-step header { display: flex; align-items: center; gap: 10px; margin-bottom: 9px; }
.flow-step h3 { margin: 0; flex: 1; font-size: 14px; }
.flow-num { display: grid; width: 26px; height: 26px; flex: 0 0 auto; place-items: center; border-radius: 9px; color: white; background: var(--teal); font-size: 11px; font-weight: 900; }
.flow-counter { color: var(--teal); font-size: 11px; font-weight: 850; white-space: nowrap; }
.flow-copy { flex: 0 0 auto; padding: 7px 11px; border: 1px solid var(--line); border-radius: 9px; color: var(--teal); background: white; cursor: pointer; font-size: 10.5px; font-weight: 800; white-space: nowrap; }
.flow-copy:hover { border-color: var(--teal); background: var(--teal-soft); }
.flow-lead { margin: 0 0 10px; color: var(--muted); font-size: 11.5px; }
.flow-body { margin: 0; color: var(--ink-soft); font-size: 12.5px; line-height: 1.6; }
.flow-step.is-danger { border-color: #eccfcb; background: #fdf3f1; }
.flow-step.is-danger .flow-num { background: var(--danger); }
.flow-step.is-danger .flow-body { color: #7a4842; }
.flow-step.is-final { border-color: #cfe4dd; background: linear-gradient(150deg, #f1f9f6, white); }

.ask-list { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.ask-item { display: flex; width: 100%; align-items: flex-start; gap: 10px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 11px; background: white; cursor: pointer; text-align: left; color: var(--ink-soft); font-size: 12.5px; line-height: 1.45; transition: 150ms ease; }
.ask-item:hover { border-color: #9cc4ba; }
.ask-check { display: grid; width: 20px; height: 20px; flex: 0 0 auto; place-items: center; margin-top: 1px; border: 1.5px solid #c3d5d0; border-radius: 6px; color: transparent; font-size: 11px; font-weight: 900; transition: 150ms ease; }
.ask-item.is-checked { border-color: var(--teal); background: #f2faf7; }
.ask-item.is-checked .ask-check { color: white; border-color: var(--teal); background: var(--teal); }
.ask-item.is-checked > span:last-child { color: var(--muted); text-decoration: line-through; }

.say-quote { position: relative; margin: 0; padding: 16px 18px 16px 22px; border-left: 4px solid var(--teal); border-radius: 0 12px 12px 0; background: white; color: var(--ink); font-size: 14px; font-style: italic; line-height: 1.55; }
.flow-final-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 14px; }
.material-actions { display: flex; flex: 0 0 auto; gap: 8px; }

/* lista de fichas */
.patient-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 20px; }
.patient-stat { padding: 16px 18px; border: 1px solid var(--line); border-radius: var(--radius-md); background: white; }
.patient-stat strong { display: block; font-size: 30px; letter-spacing: -.04em; }
.patient-stat span { display: block; margin-top: 2px; color: var(--muted); font-size: 11px; }
.patient-stat.is-late { border-color: #e8c6a9; background: #fff7ef; }
.patient-stat.is-late strong { color: var(--orange); }
.patient-stat.is-warn strong { color: var(--plum); }

.patient-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.patient-card { display: flex; flex-direction: column; gap: 14px; padding: 20px; border: 1px solid var(--line); border-left: 4px solid var(--teal); border-radius: var(--radius-md); background: white; transition: 170ms ease; }
.patient-card:hover { box-shadow: var(--shadow); }
.patient-card[data-color="orange"] { border-left-color: var(--orange); }
.patient-card[data-color="plum"] { border-left-color: var(--plum); }
.patient-card[data-color="blue"] { border-left-color: var(--blue); }
.patient-card header { display: flex; min-width: 0; flex-wrap: wrap; align-items: center; gap: 12px; }
.patient-avatar { display: grid; width: 42px; height: 42px; flex: 0 0 auto; place-items: center; border-radius: 13px; color: white; background: var(--ink-soft); font-size: 13px; font-weight: 850; }
.patient-avatar.small { width: 38px; height: 38px; border-radius: 11px; font-size: 12px; }
.patient-id { min-width: 0; flex: 1; }
.patient-id strong { display: block; font-size: 15px; }
.patient-id small { display: block; overflow: hidden; margin-top: 2px; color: var(--muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.stage-pill { flex: 0 0 auto; padding: 6px 10px; border-radius: 999px; color: var(--ink-soft); background: var(--surface-soft); font-size: 10px; font-weight: 800; }
.patient-status { display: flex; align-items: center; gap: 9px; }
.status-flag { padding: 5px 9px; border-radius: 8px; color: var(--teal); background: var(--teal-soft); font-size: 10px; font-weight: 850; }
.status-days { color: var(--muted); font-size: 11px; }
.patient-card.is-atencao .status-flag { color: #8a5a25; background: var(--orange-soft); }
.patient-card.is-atrasado { border-color: #e3bd9c; }
.patient-card.is-atrasado .status-flag { color: white; background: var(--orange); }
.patient-action { padding: 13px 15px; border-radius: 13px; background: var(--surface-soft); }
.patient-action span { color: var(--muted); font-size: 9px; font-weight: 850; letter-spacing: .08em; }
.patient-action p { margin: 5px 0 0; color: var(--ink-soft); font-size: 12.5px; line-height: 1.5; }
.patient-card footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; }
.patient-card footer span { color: var(--muted); font-size: 10.5px; }
.patient-none { padding: 30px; border: 1px dashed #c6d6d1; border-radius: var(--radius-md); color: var(--muted); text-align: center; }

/* ficha aberta */
.patient-modal { width: min(720px, calc(100vw - 32px)); }
.patient-goal { margin: 7px 0 0; max-width: 460px; color: var(--muted); font-size: 12px; }
.patient-detail { display: grid; gap: 12px; padding: 22px 28px 28px; }
.suggestion-card { padding: 20px 22px; border-radius: 16px; color: white; background: linear-gradient(140deg, var(--teal-dark), var(--teal)); }
.suggestion-card.is-atencao { background: linear-gradient(140deg, #8a5423, var(--orange)); }
.suggestion-card.is-atrasado { background: linear-gradient(140deg, #8c3a33, #c2603b); }
.suggestion-flag { display: inline-flex; margin-bottom: 13px; padding: 6px 10px; border-radius: 999px; background: rgba(255,255,255,.17); font-size: 10px; font-weight: 800; }
.suggestion-card .eyebrow { display: block; color: rgba(255,255,255,.72); }
.suggestion-card h3 { margin: 6px 0 10px; font-size: 19px; line-height: 1.25; }
.suggestion-card p { margin: 0; color: rgba(255,255,255,.86); font-size: 12.5px; line-height: 1.55; }

.log-row { display: flex; gap: 9px; }
.log-row input { min-width: 0; flex: 1; height: 44px; padding: 0 13px; border: 1px solid var(--line); border-radius: 11px; outline: 0; background: white; font-size: 12.5px; }
.log-row input:focus { border-color: #78aaa1; box-shadow: 0 0 0 3px rgba(15,107,99,.08); }
.log-hint { display: block; margin-top: 9px; color: var(--muted); font-size: 10.5px; line-height: 1.45; }

.stage-picker { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.stage-option { padding: 11px 13px; border: 1px solid var(--line); border-left: 3px solid var(--teal); border-radius: 11px; background: white; cursor: pointer; text-align: left; transition: 150ms ease; }
.stage-option[data-color="orange"] { border-left-color: var(--orange); }
.stage-option[data-color="plum"] { border-left-color: var(--plum); }
.stage-option[data-color="blue"] { border-left-color: var(--blue); }
.stage-option:hover { border-color: #9cc4ba; background: #f7fbfa; }
.stage-option strong { display: block; font-size: 12px; }
.stage-option small { display: block; margin-top: 2px; color: var(--muted); font-size: 10.5px; line-height: 1.4; }
.stage-option.is-active { color: white; background: var(--ink-soft); }
.stage-option.is-active small { color: rgba(255,255,255,.72); }

.chip-row { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { padding: 9px 13px; border: 1px solid var(--line); border-radius: 999px; background: white; cursor: pointer; color: var(--ink-soft); font-size: 11.5px; font-weight: 700; transition: 150ms ease; }
.chip:hover { border-color: var(--teal); color: var(--teal); background: var(--teal-soft); }

.timeline { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.timeline li { display: grid; grid-template-columns: 96px 1fr; gap: 12px; padding-left: 13px; border-left: 2px solid var(--line); }
.timeline-date { color: var(--muted); font-size: 10.5px; }
.timeline strong { font-size: 12px; }
.timeline p { margin: 3px 0 0; color: var(--ink-soft); font-size: 11.5px; line-height: 1.5; }
.patient-modal-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 4px; }
.patient-form-dates { margin-bottom: 0; }

/* minmax(0, 1fr) e obrigatorio: com "1fr" o minimo vira auto e o card estoura a tela. */
@media (max-width: 1180px) {
  .triage { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .patient-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .patient-grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 640px) {
  .triage { grid-template-columns: minmax(0, 1fr); }
  .patient-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .resolve-bar { display: grid; }
  .resolve-track { width: 100%; }
  .alert-strip-head { display: grid; gap: 10px; }
  .alert-strip { padding: 18px 16px; }
  .stage-picker { grid-template-columns: 1fr; }
  .log-row { display: grid; }
  .flow-step header { flex-wrap: wrap; }
  .flow-step h3 { flex: 1 0 60%; }
  .timeline li { grid-template-columns: 1fr; gap: 3px; }
  .patient-detail { padding: 20px 20px 24px; }
  .doc-footer { display: grid; gap: 10px; }
  .mobile-nav button { font-size: 7.5px; }
  .mobile-nav button span { font-size: 15px; }
}

/* ---------- impressao do documento gerado ----------
   Sem window.open: o CSP (script-src 'self') bloquearia o auto-print
   da janela nova em producao. O documento e clonado para #print-root. */
#print-root { display: none; }

@media print {
  body > *:not(#print-root) { display: none !important; }
  #print-root { display: block !important; }

  html, body { background: white !important; margin: 0; padding: 0; }
  .print-page { max-width: 100%; padding: 0; color: #263d38; font-family: Arial, Helvetica, sans-serif; }
  .print-page .doc-brand { display: flex; align-items: center; gap: 10px; padding-bottom: 20px; border-bottom: 3px solid var(--doc-color, #0f6b63); }
  .print-page .doc-brand-mark { display: grid; overflow: hidden; width: 34px; height: 34px; flex: 0 0 auto; place-items: center; border-radius: 10px; color: white; background: var(--doc-color, #0f6b63); font-size: 11px; font-weight: 900; }
  .print-page .doc-brand-mark.has-mark { background: white; border: 1px solid #e2e9e6; }
  .print-page .doc-brand-mark.is-foto { border-radius: 50%; }
  .print-page .doc-brand-mark img { width: 100%; height: 100%; object-fit: cover; }
  .print-page .doc-brand-mark.is-logo img { object-fit: contain; padding: 2px; }
  .print-sheet .sheet-sign { display: inline-flex; align-items: center; gap: 5px; }
  .print-sheet .sheet-mark { width: 15px; height: 15px; border-radius: 50%; object-fit: cover; }
  .print-sheet .sheet-mark.is-logo { border-radius: 3px; object-fit: contain; }
  .print-page .doc-brand strong, .print-page .doc-brand small { display: block; }
  .print-page .doc-brand strong { font-size: 13px; }
  .print-page .doc-brand small { color: #72837f; font-size: 9px; }
  .print-page .doc-brand-logo { display: block !important; width: 104px; height: auto; margin-left: auto; }
  .print-page h2 { margin: 30px 0 8px; color: var(--doc-color, #0f6b63); font-size: 24px; }
  .print-page .doc-meta { display: flex; gap: 14px; margin-bottom: 24px; color: #788985; font-size: 9px; }
  .print-page .doc-section { margin-top: 22px; page-break-inside: avoid; }
  .print-page .doc-section h3 { margin-bottom: 8px; color: #36554e; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; }
  .print-page .doc-section p, .print-page .doc-section li { color: #4b635e; font-size: 11px; line-height: 1.65; }
  .print-page .doc-empty { color: #9daba8; font-style: italic; }
  .print-page .doc-footer { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-top: 40px; padding-top: 15px; border-top: 1px solid #e2e9e6; color: #8d9a97; font-size: 8px; }
  .print-page .doc-footer-brand { display: flex; align-items: center; gap: 5px; white-space: nowrap; }
  .print-page .doc-footer-brand img { width: 56px; height: auto; }
  #print-root img { -webkit-print-color-adjust: exact; print-color-adjust: exact; }

  /* folhas de entregavel: a estrutura clonada perde o wrapper .sheet, entao as regras
     precisam pendurar em .print-sheet e nao em .sheet. */
  .print-sheet { color: #263d38; font-family: Arial, Helvetica, sans-serif; }
  .print-sheet .sheet-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 22px; padding-bottom: 14px; border-bottom: 3px solid var(--doc-color, #0f6b63); }
  .print-sheet .sheet-kicker { display: block; margin-bottom: 4px; color: var(--doc-color, #0f6b63); font-size: 8px; font-weight: 900; letter-spacing: .11em; }
  .print-sheet .sheet-head strong { display: block; font-size: 19px; line-height: 1.2; }
  .print-sheet .sheet-head small { display: block; margin-top: 6px; color: #74847f; font-size: 10px; }
  .print-sheet .sheet-brand { display: grid; justify-items: end; gap: 4px; text-align: right; }
  .print-sheet .sheet-brand img { width: 96px; height: auto; }
  .print-sheet .sheet-brand span { color: #8b9793; font-size: 8px; }
  .print-sheet .sheet-note { margin: 14px 0 0; padding: 9px 11px; border-radius: 8px; color: #4e6660; background: #f3f8f6; font-size: 10px; }
  .print-sheet .sheet-block { margin-top: 17px; break-inside: avoid; page-break-inside: avoid; }
  .print-sheet .sheet-block h4 { margin: 0 0 6px; color: #2f544c; font-size: 11px; }
  .print-sheet .sheet-block ul { display: grid; gap: 4px; margin: 0; padding-left: 16px; }
  .print-sheet .sheet-block li { color: #4b635e; font-size: 10.5px; line-height: 1.55; }
  .print-sheet .sheet-lines { display: grid; gap: 12px; margin-top: 11px; }
  .print-sheet .sheet-lines span { display: block; height: 1px; background: repeating-linear-gradient(90deg, #b9c8c3 0 6px, transparent 6px 10px); }
  .print-sheet .sheet-foot { margin-top: 24px; padding-top: 12px; border-top: 1px solid #e2e9e6; color: #8d9a97; font-size: 8.5px; }
  .print-sheet .sheet-table-wrap { overflow: visible; margin-top: 14px; }
  .print-sheet .sheet-table { width: 100%; border-collapse: collapse; font-size: 9px; }
  .print-sheet .sheet-table th { padding: 7px 8px; border: 1px solid #cfdbd7; color: white; background: var(--doc-color, #0f6b63); text-align: left; font-size: 8px; }
  .print-sheet .sheet-table td { height: 24px; padding: 4px 8px; border: 1px solid #dfe8e5; color: #4b635e; }
  #print-root .proposal-doc-sign { display: grid; justify-items: end; gap: 6px; }
  #print-root .proposal-doc-brand { display: flex; align-items: center; gap: 5px; color: #97a4a0; font-size: 7px; white-space: nowrap; }
  #print-root .proposal-doc-brand img { width: 48px; height: auto; }
  #print-root .proposal-preview { min-height: 0; box-shadow: none; }
  #print-root .proposal-doc-body { padding: 7mm 6mm 4mm; }
  #print-root .proposal-doc-section,
  #print-root .proposal-investment-card,
  #print-root .proposal-next-step { break-inside: avoid; page-break-inside: avoid; }
  @page { margin: 15mm; }
}
